@alyle/ui
Version:
Minimal Design, a set of components for Angular
1 lines • 14.4 kB
Source Map (JSON)
{"version":3,"file":"alyle-ui-snack-bar.mjs","sources":["../../../lib/snack-bar/snack-bar-ref.ts","../../../lib/snack-bar/snack-bar.service.ts","../../../lib/snack-bar/snack-bar.ts","../../../lib/snack-bar/snack-bar.module.ts","../../../lib/snack-bar/alyle-ui-snack-bar.ts"],"sourcesContent":["import { EventEmitter } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { OverlayFactory, LyTheme2 } from '@alyle/ui';\nimport { LySnackBarService } from './snack-bar.service';\nimport { LySnackBarDismiss } from './snack-bar';\n\nconst DEFAULT_DURATION = 6e3;\n\nexport class LySnackBarRef {\n private _timer: any;\n private _dismissedByAction = false;\n\n /** Subject for notifying the user that the snack bar has been dismissed. */\n private readonly _afterDismissed = new Subject<void>();\n\n /** Gets an observable that is notified when the snack bar is finished closing. */\n afterDismissed(): Observable<void> {\n return this._afterDismissed.asObservable();\n }\n constructor(\n private _snackBarService: LySnackBarService,\n private _overlay: OverlayFactory | null,\n private _afterDismissedEventEmitter: EventEmitter<LySnackBarDismiss>,\n duration: number | 'Infinity',\n private _theme: LyTheme2\n ) {\n if (duration !== 'Infinity') {\n this._timer = setTimeout(() => {\n this.dismiss();\n }, duration || DEFAULT_DURATION);\n }\n }\n\n dismiss() {\n const snackBar = this._overlay;\n const timer = this._timer;\n this._afterDismissedEventEmitter.emit({dismissedByAction: this._dismissedByAction});\n this._afterDismissed.next();\n this._afterDismissed.complete();\n if (snackBar) {\n if (timer) {\n // clear previous timer\n clearTimeout(timer);\n }\n\n snackBar.containerElement.classList.remove(this._theme.selectorOf('SnackBar:open'));\n setTimeout(() => {\n snackBar.destroy();\n }, 350);\n this._snackBarService._currentSnackBar = null;\n this._overlay = null;\n }\n }\n dismissWithAction() {\n const snackBar = this._overlay;\n if (snackBar) {\n this._dismissedByAction = true;\n this.dismiss();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { LySnackBarRef } from './snack-bar-ref';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LySnackBarService {\n /** @docs-private */\n _currentSnackBar: LySnackBarRef | null;\n}\n","import { Directive, Input, TemplateRef, Output, EventEmitter, OnDestroy } from '@angular/core';\nimport {\n LyTheme2,\n LyOverlay,\n ThemeVariables,\n XPosition,\n YPosition,\n st2c,\n StyleTemplate,\n StyleCollection } from '@alyle/ui';\nimport { LySnackBarService } from './snack-bar.service';\nimport { LySnackBarRef } from './snack-bar-ref';\n\nexport interface LySnackBarTheme {\n /** Styles for SnackBar Component */\n root?: StyleTemplate | StyleCollection;\n}\n\n\nexport interface LySnackBarVariables {\n snackBar?: LySnackBarTheme;\n}\n\n/** Possible values for horizontalPosition on LySnackBarConfig. */\nexport type LySnackBarHorizontalPosition = 'center' | 'before' | 'after' | 'left' | 'right';\n\n/** Possible values for verticalPosition on LySnackBarConfig. */\nexport type LySnackBarVerticalPosition = 'above' | 'below';\n\nconst STYLE_PRIORITY = -2;\nconst DEFAULT_HORIZONTAL_POSITION = XPosition.after;\nconst DEFAULT_VERTICAL_POSITION = YPosition.below;\nexport const STYLES = (theme: ThemeVariables & LySnackBarVariables) => ({\n $priority: STYLE_PRIORITY,\n root: (_className: string) => `${_className}{border-radius:4px;display:flex;justify-content:space-between;align-items:center;margin:8px;padding:0 16px;min-height:48px;min-width:320px;max-width:320px;opacity:0;transition:opacity ${theme.animations.curves.standard} 350ms,transform ${theme.animations.curves.deceleration} 350ms;font-size:${theme.pxToRem(theme.typography.fontSize)};box-sizing:border-box;pointer-events:all !important;}@media ${theme.breakpoints['XSmall']}{${_className}{width:calc(100% - 16px);min-width:calc(100% - 16px);}}${st2c((\n (theme.snackBar\n && theme.snackBar.root) || null), `${_className}`)}`\n});\n\n/** Event that is emitted when a snack bar is dismissed. */\nexport interface LySnackBarDismiss {\n /** Whether the snack bar was dismissed using the action fn. */\n dismissedByAction: boolean;\n}\n\n@Directive({\n selector: 'ng-template[ly-snack-bar]',\n exportAs: 'lySnackBar',\n standalone: false\n})\nexport class LySnackBar implements OnDestroy {\n\n readonly classes = this._theme.renderStyleSheet(STYLES);\n @Input() duration: number | 'Infinity';\n @Input() horizontalPosition: 'center' | XPosition | LySnackBarHorizontalPosition;\n @Input() verticalPosition: YPosition | LySnackBarVerticalPosition;\n @Output() afterDismissed = new EventEmitter<LySnackBarDismiss>();\n\n constructor(\n private _templateRef: TemplateRef<any>,\n private _theme: LyTheme2,\n private _overlay: LyOverlay,\n private _snackBarService: LySnackBarService\n ) { }\n\n ngOnDestroy() {\n this.dismiss();\n }\n /**\n * Open a LySnackBar template\n * @param snackBarData Data to be passed to the snack-bark.\n */\n open(snackBarData?: any) {\n // close previous snackBar if exist\n const sbrPrev = this._snackBarService._currentSnackBar;\n if (sbrPrev) {\n sbrPrev.dismiss();\n }\n\n const duration = this.duration;\n const horizontalPosition = this.horizontalPosition || DEFAULT_HORIZONTAL_POSITION;\n const verticalPosition = this.verticalPosition || DEFAULT_VERTICAL_POSITION;\n\n const snackBar = this._overlay.create(this._templateRef, snackBarData, {\n styles: {\n // this remove previous style\n justifyContent: null\n },\n hasBackdrop: false,\n classes: [\n this.classes.root,\n this._theme.renderStyle(`SnackBar.hp:${horizontalPosition}.vp:${verticalPosition}`, (theme: ThemeVariables) => {\n let marginLeft: 'auto' | undefined;\n let left: 0 | undefined;\n let marginRight: 'auto' | undefined;\n let right: 0 | undefined;\n let transform: string | undefined;\n let top: number | undefined;\n let bottom: number | undefined;\n let hp: string | undefined;\n\n if (verticalPosition === YPosition.above) {\n transform = 'translateY(-180%)';\n top = 0;\n } else if (verticalPosition === YPosition.below) {\n transform = 'translateY(180%)';\n bottom = 0;\n }\n if (horizontalPosition === 'center') {\n marginRight = marginLeft = 'auto';\n left = right = 0;\n } else {\n hp = theme.getDirection(horizontalPosition as any);\n }\n\n return (_className: string) => `${_className}{margin-left:${marginLeft};left:${left};margin-right:${marginRight};right:${right};transform:${transform};top:${top};bottom:${bottom};${hp}:0;}`;\n }, STYLE_PRIORITY)\n ]\n });\n\n this._theme.requestAnimationFrame(() => {\n const newClass = this._theme.renderStyle('SnackBar:open', () => (\n (_className: string) => `${_className}{opacity:1;transform:translateY(0);}`\n ), STYLE_PRIORITY + 1);\n snackBar.containerElement.classList.add(newClass);\n });\n\n window.getComputedStyle(snackBar.containerElement).getPropertyValue('opacity');\n\n const sbr = new LySnackBarRef(this._snackBarService, snackBar, this.afterDismissed, duration, this._theme);\n this._snackBarService._currentSnackBar = sbr;\n return sbr;\n }\n\n /** Dismiss snackBar */\n dismiss() {\n const sbr = this._snackBarService._currentSnackBar;\n if (sbr) {\n sbr.dismissWithAction();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { LyOverlayModule } from '@alyle/ui';\nimport { LySnackBar } from './snack-bar';\n\n@NgModule({\n imports: [LyOverlayModule],\n declarations: [LySnackBar],\n exports: [LySnackBar]\n})\nexport class LySnackBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.LySnackBarService"],"mappings":";;;;;;AAMA,MAAM,gBAAgB,GAAG,GAAG;MAEf,aAAa,CAAA;;IAQxB,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;IAE5C,WACU,CAAA,gBAAmC,EACnC,QAA+B,EAC/B,2BAA4D,EACpE,QAA6B,EACrB,MAAgB,EAAA;QAJhB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;QAChB,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAA2B,CAAA,2BAAA,GAA3B,2BAA2B;QAE3B,IAAM,CAAA,MAAA,GAAN,MAAM;QAdR,IAAkB,CAAA,kBAAA,GAAG,KAAK;;AAGjB,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAQ;AAapD,QAAA,IAAI,QAAQ,KAAK,UAAU,EAAE;AAC3B,YAAA,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAK;gBAC5B,IAAI,CAAC,OAAO,EAAE;AAChB,aAAC,EAAE,QAAQ,IAAI,gBAAgB,CAAC;;;IAIpC,OAAO,GAAA;AACL,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC9B,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM;AACzB,QAAA,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAC,iBAAiB,EAAE,IAAI,CAAC,kBAAkB,EAAC,CAAC;AACnF,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE;QAC/B,IAAI,QAAQ,EAAE;YACZ,IAAI,KAAK,EAAE;;gBAET,YAAY,CAAC,KAAK,CAAC;;AAGrB,YAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;YACnF,UAAU,CAAC,MAAK;gBACd,QAAQ,CAAC,OAAO,EAAE;aACnB,EAAE,GAAG,CAAC;AACP,YAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,IAAI;AAC7C,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;;IAGxB,iBAAiB,GAAA;AACf,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;QAC9B,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI;YAC9B,IAAI,CAAC,OAAO,EAAE;;;AAGnB;;MCtDY,iBAAiB,CAAA;+GAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACwBD,MAAM,cAAc,GAAG,CAAC,CAAC;AACzB,MAAM,2BAA2B,GAAG,SAAS,CAAC,KAAK;AACnD,MAAM,yBAAyB,GAAG,SAAS,CAAC,KAAK;MACpC,MAAM,GAAG,CAAC,KAA2C,MAAM;AACtE,IAAA,SAAS,EAAE,cAAc;IACzB,IAAI,EAAE,CAAC,UAAkB,KAAK,CAAA,EAAG,UAAU,CAAA,wLAAA,EAA2L,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAoB,iBAAA,EAAA,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAA,iBAAA,EAAoB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAgE,6DAAA,EAAA,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAI,CAAA,EAAA,UAAU,CAA0D,uDAAA,EAAA,IAAI,EAC3hB,CAAC,KAAK,CAAC;AACF,WAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,GAAG,CAAA,EAAG,UAAU,CAAA,CAAE,CAAC,CAAE;AAC7D,CAAA;MAaY,UAAU,CAAA;AAQrB,IAAA,WAAA,CACU,YAA8B,EAC9B,MAAgB,EAChB,QAAmB,EACnB,gBAAmC,EAAA;QAHnC,IAAY,CAAA,YAAA,GAAZ,YAAY;QACZ,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAQ,CAAA,QAAA,GAAR,QAAQ;QACR,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB;QAVjB,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC;AAI7C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAqB;;IAShE,WAAW,GAAA;QACT,IAAI,CAAC,OAAO,EAAE;;AAEhB;;;AAGG;AACH,IAAA,IAAI,CAAC,YAAkB,EAAA;;AAErB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB;QACtD,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,OAAO,EAAE;;AAGnB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ;AAC9B,QAAA,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,2BAA2B;AACjF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,yBAAyB;AAE3E,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,EAAE;AACrE,YAAA,MAAM,EAAE;;AAEN,gBAAA,cAAc,EAAE;AACjB,aAAA;AACD,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,OAAO,EAAE;gBACP,IAAI,CAAC,OAAO,CAAC,IAAI;AACjB,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAe,YAAA,EAAA,kBAAkB,CAAO,IAAA,EAAA,gBAAgB,CAAE,CAAA,EAAE,CAAC,KAAqB,KAAI;AAC5G,oBAAA,IAAI,UAA8B;AAClC,oBAAA,IAAI,IAAmB;AACvB,oBAAA,IAAI,WAA+B;AACnC,oBAAA,IAAI,KAAoB;AACxB,oBAAA,IAAI,SAA6B;AACjC,oBAAA,IAAI,GAAuB;AAC3B,oBAAA,IAAI,MAA0B;AAC9B,oBAAA,IAAI,EAAsB;AAE1B,oBAAA,IAAI,gBAAgB,KAAK,SAAS,CAAC,KAAK,EAAE;wBACxC,SAAS,GAAG,mBAAmB;wBAC/B,GAAG,GAAG,CAAC;;AACF,yBAAA,IAAI,gBAAgB,KAAK,SAAS,CAAC,KAAK,EAAE;wBAC/C,SAAS,GAAG,kBAAkB;wBAC9B,MAAM,GAAG,CAAC;;AAEZ,oBAAA,IAAI,kBAAkB,KAAK,QAAQ,EAAE;AACnC,wBAAA,WAAW,GAAG,UAAU,GAAG,MAAM;AACjC,wBAAA,IAAI,GAAG,KAAK,GAAG,CAAC;;yBACX;AACL,wBAAA,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,kBAAyB,CAAC;;oBAGpD,OAAO,CAAC,UAAkB,KAAK,GAAG,UAAU,CAAA,aAAA,EAAgB,UAAU,CAAA,MAAA,EAAS,IAAI,CAAA,cAAA,EAAiB,WAAW,CAAU,OAAA,EAAA,KAAK,CAAc,WAAA,EAAA,SAAS,CAAQ,KAAA,EAAA,GAAG,WAAW,MAAM,CAAA,CAAA,EAAI,EAAE,CAAA,IAAA,CAAM;iBAC9L,EAAE,cAAc;AAClB;AACF,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,MAAK;AACrC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,OACxD,CAAC,UAAkB,KAAK,CAAA,EAAG,UAAU,CAAA,oCAAA,CAAsC,CAC5E,EAAE,cAAc,GAAG,CAAC,CAAC;YACtB,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;AACnD,SAAC,CAAC;AAEF,QAAA,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC;QAE9E,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;AAC1G,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,GAAG;AAC5C,QAAA,OAAO,GAAG;;;IAIZ,OAAO,GAAA;AACL,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB;QAClD,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,iBAAiB,EAAE;;;+GAxFhB,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBALtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE;AACb,iBAAA;4JAIU,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACS,cAAc,EAAA,CAAA;sBAAvB;;;MC/CU,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAHZ,YAAA,EAAA,CAAA,UAAU,CADf,EAAA,OAAA,EAAA,CAAA,eAAe,aAEf,UAAU,CAAA,EAAA,CAAA,CAAA;AAET,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAJjB,eAAe,CAAA,EAAA,CAAA,CAAA;;4FAId,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,eAAe,CAAC;oBAC1B,YAAY,EAAE,CAAC,UAAU,CAAC;oBAC1B,OAAO,EAAE,CAAC,UAAU;AACrB,iBAAA;;;ACRD;;AAEG;;;;"}