From 754aaaf2d2f6d419304d0b50a1ddd7b8e30151ad Mon Sep 17 00:00:00 2001 From: anandtiwary <52081890+anandtiwary@users.noreply.github.com> Date: Tue, 18 Jan 2022 12:38:23 -0800 Subject: [PATCH 1/3] feat: adding an attachedTrigger with sheet overlay --- .../sheet/sheet-overlay.component.scss | 35 ++++---- .../sheet/sheet-overlay.component.test.ts | 33 +++++++- .../overlay/sheet/sheet-overlay.component.ts | 81 +++++++++++++------ .../components/src/overlay/sheet/sheet.ts | 3 +- 4 files changed, 104 insertions(+), 48 deletions(-) diff --git a/projects/components/src/overlay/sheet/sheet-overlay.component.scss b/projects/components/src/overlay/sheet/sheet-overlay.component.scss index f0301234c..ec4f34fad 100644 --- a/projects/components/src/overlay/sheet/sheet-overlay.component.scss +++ b/projects/components/src/overlay/sheet/sheet-overlay.component.scss @@ -5,6 +5,7 @@ box-shadow: -3px 1px 24px rgba(0, 0, 0, 0.12), -1px -1px 8px rgba(0, 0, 0, 0.08); border-radius: 16px 0 0 16px; height: 100%; + width: 100%; overflow: hidden; padding: 24px; @@ -13,26 +14,6 @@ flex-direction: column; z-index: 1; - &.sheet-size-responsive-extra-large { - width: 100%; - } - - &.sheet-size-small { - width: 320px; - } - - &.sheet-size-medium { - width: 600px; - } - - &.sheet-size-large { - width: 840px; - } - - &.sheet-size-extra-large { - width: 1280px; - } - .header { display: flex; justify-content: space-between; @@ -62,3 +43,17 @@ } } } + +.attached-trigger { + cursor: pointer; + background: white; + width: 200px; + height: 40px; + transform: translate(calc(-50% - 20px), 0px) rotate(270deg); + position: relative; + top: -50%; + border-radius: 4px; + display: flex; + align-items: center; + justify-content: center; +} diff --git a/projects/components/src/overlay/sheet/sheet-overlay.component.test.ts b/projects/components/src/overlay/sheet/sheet-overlay.component.test.ts index 5692f2d0c..1e4e18b70 100644 --- a/projects/components/src/overlay/sheet/sheet-overlay.component.test.ts +++ b/projects/components/src/overlay/sheet/sheet-overlay.component.test.ts @@ -48,6 +48,7 @@ describe('Sheet Overlay component', () => { provide: PopoverRef, useValue: { height: jest.fn(), + width: jest.fn(), close: jest.fn() } }, @@ -86,11 +87,39 @@ describe('Sheet Overlay component', () => { expect(spectator.query('.header')).toHaveText('expected title'); }); - test('uses the requested size', () => { + test('uses the requested size for small', () => { + spectator = createConfiguredHost({ + size: SheetSize.Small + }); + expect(spectator.inject(PopoverRef)?.width).toHaveBeenCalledWith('320px'); + }); + + test('uses the requested size for medium', () => { + spectator = createConfiguredHost({ + size: SheetSize.Medium + }); + expect(spectator.inject(PopoverRef)?.width).toHaveBeenCalledWith('600px'); + }); + + test('uses the requested size for large', () => { spectator = createConfiguredHost({ size: SheetSize.Large }); - expect(spectator.query('.sheet-overlay')).toHaveClass('sheet-size-large'); + expect(spectator.inject(PopoverRef)?.width).toHaveBeenCalledWith('840px'); + }); + + test('uses the requested size for extra large', () => { + spectator = createConfiguredHost({ + size: SheetSize.ExtraLarge + }); + expect(spectator.inject(PopoverRef)?.width).toHaveBeenCalledWith('1280px'); + }); + + test('uses the requested size for responsive extra large', () => { + spectator = createConfiguredHost({ + size: SheetSize.ResponsiveExtraLarge + }); + expect(spectator.inject(PopoverRef)?.width).toHaveBeenCalledWith('60%'); }); test('closes on close button click', () => { diff --git a/projects/components/src/overlay/sheet/sheet-overlay.component.ts b/projects/components/src/overlay/sheet/sheet-overlay.component.ts index f9f2e3937..cefd2945f 100644 --- a/projects/components/src/overlay/sheet/sheet-overlay.component.ts +++ b/projects/components/src/overlay/sheet/sheet-overlay.component.ts @@ -12,29 +12,36 @@ import { SheetOverlayConfig, SheetSize } from './sheet'; styleUrls: ['./sheet-overlay.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, template: ` -