@alyle/ui
Version:
Minimal Design, a set of components for Angular
1 lines • 34.5 kB
Source Map (JSON)
{"version":3,"file":"alyle-ui-drawer.mjs","sources":["../../../lib/drawer/drawer.ts","../../../lib/drawer/drawer.html","../../../lib/drawer/drawer.module.ts","../../../lib/drawer/alyle-ui-drawer.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n forwardRef,\n Input,\n OnChanges,\n Renderer2,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n AfterViewInit,\n OnDestroy,\n ChangeDetectorRef,\n NgZone,\n Inject\n } from '@angular/core';\nimport {\n eachMedia,\n LyTheme2,\n ThemeVariables,\n LY_COMMON_STYLES,\n Placement,\n XPosition,\n DirPosition,\n YPosition,\n st2c,\n StyleRenderer,\n ThemeRef,\n StyleCollection,\n StyleTemplate,\n LyClasses,\n WithStyles } from '@alyle/ui';\nimport { Subscription } from 'rxjs';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { Platform } from '@angular/cdk/platform';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport interface LyDrawerTheme {\n /** Styles for Button Component */\n root?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)>\n | ((classes: LyClasses<typeof STYLES>) => StyleTemplate);\n}\n\nexport interface LyDrawerVariables {\n drawer?: LyDrawerTheme;\n}\n\nexport type LyDrawerPosition = `${Placement}`;\nexport type LyDrawerMode = 'side' | 'over';\nconst DEFAULT_MODE = 'side';\nconst DEFAULT_WIDTH = '230px';\nconst DEFAULT_VALUE = '';\nconst STYLE_PRIORITY = -2;\nconst DEFAULT_POSITION = XPosition.before;\n\nexport const STYLES = (theme: ThemeVariables & LyDrawerVariables, ref: ThemeRef) => {\n const __ = ref.selectorsOf(STYLES);\n return {\n $name: LyDrawerContent.и,\n $priority: STYLE_PRIORITY + 1.9,\n root: () => (theme.drawer\n && theme.drawer.root\n && (theme.drawer.root instanceof StyleCollection\n ? theme.drawer.root.setTransformer(fn => fn(__)).css\n : theme.drawer.root(__))\n ),\n drawerContainer: (_className: string) => `${_className}{display:block;position:relative;overflow:hidden;-webkit-overflow-scrolling:touch;}`,\n drawer: (_className: string) => `${_className}{display:block;position:fixed;z-index:${theme.zIndex.drawer};overflow:auto;visibility:hidden;}`,\n drawerContent: (_className: string) => `${_className}{display:block;}`,\n drawerOpened: (_className: string) => `${_className}{transform:translate(0px,0px);visibility:visible;}`,\n drawerClosed: null,\n backdrop: (_className: string) => `${st2c((LY_COMMON_STYLES.fill), `${_className}`)}${_className}{background-color:${theme.drawer.backdrop};}`,\n transition: (_className: string) => `${_className}{transition:${theme.animations.durations.complex}ms ${theme.animations.curves.deceleration};transition-property:transform,margin,visibility;}`\n };\n};\n\n@Directive({\n selector: 'ly-drawer-content',\n standalone: false\n})\nexport class LyDrawerContent {\n static readonly и = 'LyDrawerContent';\n constructor(\n private _renderer: Renderer2,\n private _el: ElementRef,\n @Inject(forwardRef(() => LyDrawerContainer)) drawerContainer\n ) {\n this._renderer.addClass(this._el.nativeElement, (drawerContainer as LyDrawerContainer).classes.drawerContent);\n }\n _getHostElement() {\n return this._el.nativeElement;\n }\n}\n\n@Directive({\n selector: 'ly-drawer-container',\n providers: [\n StyleRenderer\n ],\n standalone: false\n})\nexport class LyDrawerContainer implements WithStyles {\n /** @docs-private */\n readonly classes = this.sRenderer.renderSheet(STYLES, true);\n _openDrawers = 0;\n @ContentChild(forwardRef(() => LyDrawerContent), { static: true }) _drawerContent: LyDrawerContent;\n constructor(\n private _renderer: Renderer2,\n private _el: ElementRef,\n readonly sRenderer: StyleRenderer\n ) {\n this._renderer.addClass(this._el.nativeElement, this.classes.drawerContainer);\n }\n\n _getHostElement() {\n return this._el.nativeElement;\n }\n}\n\n\n@Component({\n selector: 'ly-drawer',\n templateUrl: './drawer.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'lyDrawer',\n providers: [\n StyleRenderer\n ],\n standalone: false\n})\nexport class LyDrawer implements OnChanges, AfterViewInit, OnDestroy {\n static readonly и = 'LyDrawer';\n /**\n * Styles\n * @docs-private\n */\n readonly classes = this._drawerContainer.classes;\n private _forceModeOverOpened: boolean;\n private _fromToggle: boolean;\n private _opened: boolean;\n private _viewRef?: EmbeddedViewRef<any>;\n private _isAnimation: boolean;\n private _hasBackdrop: boolean | null;\n\n private _position: LyDrawerPosition = DEFAULT_POSITION;\n\n private _drawerRootClass: string;\n private _drawerClass?: string;\n private _drawerContentClass?: string;\n private _tabResizeSub: Subscription;\n private _isOpen: boolean;\n\n @ViewChild(TemplateRef) _backdrop: TemplateRef<any>;\n\n @Input()\n set width(_val: string) {\n console.log(LyDrawer.и, this._el.nativeElement);\n throw new Error(`${LyDrawer.и}: [width] is deprecated instead use [drawerWidth].`);\n }\n\n @Input()\n set height(_val: string) {\n console.log(LyDrawer.и, this._el.nativeElement);\n throw new Error(`${LyDrawer.и}: [height] is deprecated instead use [drawerHeight].`);\n }\n\n @Input()\n set opened(val: BooleanInput) {\n if (val !== this.opened) {\n this._opened = coerceBooleanProperty(val);\n this._isOpen = this._opened;\n }\n }\n get opened(): boolean {\n return this._opened;\n }\n @Input() mode: LyDrawerMode = DEFAULT_MODE;\n\n @Input() spacingAbove: string | number;\n\n @Input() spacingBelow: string | number;\n\n @Input() spacingBefore: string | number;\n\n @Input() spacingAfter: string | number;\n\n @Input() drawerWidth: number | string;\n\n @Input() drawerHeight: number | string;\n\n @Input()\n get hasBackdrop() {\n return this._hasBackdrop;\n }\n set hasBackdrop(val: BooleanInput) {\n this._hasBackdrop = val == null ? null : coerceBooleanProperty(val);\n }\n\n @Input()\n set position(val: LyDrawerPosition) {\n if (val !== this.position) {\n this._position = val;\n this[0x1] = this._styleRenderer.add(`${LyDrawer.и}--position-${val}`,\n (theme: ThemeVariables) => (_className: string) => `${_className}{${theme.getDirection(val as any)}:0;}`, STYLE_PRIORITY, this[0x1]);\n }\n }\n get position(): LyDrawerPosition {\n return this._position;\n }\n [0x1]: string;\n\n constructor(\n private _theme: LyTheme2,\n private _styleRenderer: StyleRenderer,\n private _renderer: Renderer2,\n private _el: ElementRef,\n private _drawerContainer: LyDrawerContainer,\n private _vcr: ViewContainerRef,\n private _viewportRuler: ViewportRuler,\n private _cd: ChangeDetectorRef,\n private _zone: NgZone,\n private _platform: Platform\n ) {\n this._renderer.addClass(this._el.nativeElement, _drawerContainer.classes.drawer);\n }\n\n ngOnChanges() {\n this._updateBackdrop();\n this._updateAnimations();\n\n const __mode = this.mode;\n const __forceModeOverOpened = this._forceModeOverOpened;\n const __opened = this.opened;\n let __width = this.drawerWidth;\n const __height = this.drawerHeight;\n const __position = this.position;\n\n const __spacingAbove = this.spacingAbove;\n const __spacingBelow = this.spacingBelow;\n const __spacingBefore = this.spacingBefore;\n const __spacingAfter = this.spacingAfter;\n\n if (__width && __height) {\n throw new Error(`\\`width\\` and \\`height\\` are defined, you can only define one`);\n } else if (!__width) {\n if (!__height) {\n /** set default __width if `width` & `height` is `undefined` */\n __width = DEFAULT_WIDTH;\n }\n }\n\n if ((this._isOpen && __opened) || (this._isOpen) || __forceModeOverOpened) {\n /** create styles for mode side */\n this._drawerClass = this._theme.updateClass(this._el.nativeElement, this._renderer, this._drawerContainer.classes.drawerOpened, this._drawerClass);\n // styles for <ly-drawer-content>\n if (__mode === 'side') {\n const newKeyDrawerContent = `ly-drawer-content----:${\n __width || DEFAULT_VALUE}·${\n __position || DEFAULT_VALUE}`;\n this._drawerContentClass = this._theme.addStyle(newKeyDrawerContent, (theme: ThemeVariables) => {\n const drawerContentStyles: {\n marginLeft?: string\n marginRight?: string\n marginTop?: string\n marginBottom?: string\n } = {};\n const positionVal = `margin-${__position}`;\n if (__width) {\n eachMedia(__width, (val, media) => {\n const newStyleWidth = val === 'over' ? '0px' : toPx(val);\n if (media) {\n const breakPoint = theme.getBreakpoint(media);\n const styleOfBreakPoint = createEmptyPropOrUseExisting(drawerContentStyles, breakPoint);\n styleOfBreakPoint[positionVal] = newStyleWidth;\n } else {\n drawerContentStyles[positionVal] = newStyleWidth;\n }\n });\n }\n return drawerContentStyles;\n },\n this._drawerContainer._drawerContent._getHostElement(),\n this._drawerContentClass);\n } else if (this._drawerContentClass) {\n /** remove styles for <ly-drawer-content> */\n this._renderer.removeClass(this._drawerContainer._drawerContent._getHostElement(), this._drawerContentClass);\n this._drawerContentClass = undefined;\n }\n } else {\n if (this._drawerContentClass) {\n this._renderer.removeClass(this._drawerContainer._drawerContent._getHostElement(), this._drawerContentClass);\n this._drawerContentClass = undefined;\n }\n if (this._drawerClass) {\n this._renderer.removeClass(this._el.nativeElement, this._drawerClass);\n this._drawerClass = undefined;\n }\n }\n\n /** default styles */\n this._drawerRootClass = this._theme.addStyle(\n `ly-drawer-root:${__width}·${__height}·${__spacingAbove}·${__spacingBelow}·${__spacingBefore}·${__spacingAfter}·${__position}·${__mode}·${__forceModeOverOpened}`,\n (theme: ThemeVariables) => {\n const stylesDrawerRoot: {\n width?: string\n height?: string\n top?: string\n bottom?: string\n left?: number\n right?: number\n before?: string\n after?: string\n transform?: string\n } = { };\n const pos = theme.getDirection(__position as any);\n const positionSign = __position === 'above' ? '-' : '+';\n if (__width) {\n const dirXSign = pos === DirPosition.left ? '-' : '+';\n eachMedia(__width, (val, media) => {\n if ((__mode === 'over' || __forceModeOverOpened) && (val === 0 || val === 'over')) {\n return;\n }\n const newVal = val === 'over' ? '0px' : toPx(val);\n const newStyleWidth = newVal;\n const newTranslateX = `translateX(${dirXSign + newVal})`;\n if (media) {\n const breakPoint = theme.getBreakpoint(media);\n const styleOfBreakPoint = createEmptyPropOrUseExisting(stylesDrawerRoot, breakPoint);\n styleOfBreakPoint.width = newStyleWidth;\n styleOfBreakPoint.transform = newTranslateX;\n } else {\n stylesDrawerRoot.width = newStyleWidth;\n stylesDrawerRoot.transform = newTranslateX;\n }\n });\n } else if (__height) {\n eachMedia(__height, (val, media) => {\n const newStyleHeight = toPx(val);\n const newTranslateY = `translateY(${positionSign + toPx(val)})`;\n if (media) {\n const breakPoint = theme.getBreakpoint(media);\n const styleOfBreakPoint = createEmptyPropOrUseExisting(stylesDrawerRoot, breakPoint);\n styleOfBreakPoint.height = newStyleHeight;\n styleOfBreakPoint.transform = newTranslateY;\n } else {\n stylesDrawerRoot.height = newStyleHeight;\n stylesDrawerRoot.transform = newTranslateY;\n }\n });\n }\n if (__position === 'before' || __position === 'after') {\n eachMedia(__spacingAbove, (val, media) => {\n const newStyleSpacingTop = toPx(val || 0);\n if (media) {\n const breakPoint = theme.getBreakpoint(media);\n const styleOfBreakPoint = createEmptyPropOrUseExisting(stylesDrawerRoot, breakPoint);\n styleOfBreakPoint.top = newStyleSpacingTop;\n } else {\n stylesDrawerRoot.top = newStyleSpacingTop;\n }\n });\n eachMedia(__spacingBelow, (val, media) => {\n const newStyleSpacingBottom = toPx(val || 0);\n if (media) {\n const breakPoint = theme.getBreakpoint(media);\n const styleOfBreakPoint = createEmptyPropOrUseExisting(stylesDrawerRoot, breakPoint);\n styleOfBreakPoint.bottom = newStyleSpacingBottom;\n } else {\n stylesDrawerRoot.bottom = newStyleSpacingBottom;\n }\n });\n } else if (__position === YPosition.above || __position === YPosition.below) {\n eachMedia(__spacingBefore, (val, media) => {\n const newStyleSpacingBefore = toPx(val || 0);\n if (media) {\n const breakPoint = theme.getBreakpoint(media);\n const styleOfBreakPoint = createEmptyPropOrUseExisting(stylesDrawerRoot, breakPoint);\n styleOfBreakPoint.before = newStyleSpacingBefore;\n } else {\n stylesDrawerRoot.before = newStyleSpacingBefore;\n }\n });\n eachMedia(__spacingAfter, (val, media) => {\n const newStyleSpacingAfter = toPx(val || 0);\n if (media) {\n const breakPoint = theme.getBreakpoint(media);\n const styleOfBreakPoint = createEmptyPropOrUseExisting(stylesDrawerRoot, breakPoint);\n styleOfBreakPoint.after = newStyleSpacingAfter;\n } else {\n stylesDrawerRoot.after = newStyleSpacingAfter;\n }\n });\n }\n return stylesDrawerRoot;\n }, this._el.nativeElement, this._drawerRootClass, __mode === 'side' ? STYLE_PRIORITY : STYLE_PRIORITY + 1);\n this._fromToggle = false;\n }\n\n ngAfterViewInit() {\n if (this._platform.isBrowser) {\n this._tabResizeSub = this._viewportRuler.change().subscribe(() => {\n this.ngOnChanges();\n });\n }\n }\n\n ngOnDestroy() {\n if (this._tabResizeSub) {\n this._tabResizeSub.unsubscribe();\n }\n }\n\n toggle() {\n const width = getComputedStyle(this._el.nativeElement).width;\n this._fromToggle = true;\n if (width === '0px') {\n this._forceModeOverOpened = true;\n this._isOpen = true;\n } else {\n if (this._forceModeOverOpened) {\n this._forceModeOverOpened = false;\n this._isOpen = this.opened;\n } else {\n this._isOpen = !this._isOpen;\n }\n }\n this.ngOnChanges();\n }\n\n private _contentHasMargin() {\n const content = this._drawerContainer._drawerContent._getHostElement() as HTMLElement;\n const container = this._drawerContainer._getHostElement() as HTMLElement;\n return (content.offsetWidth === container.offsetWidth);\n }\n\n private _updateBackdrop() {\n if (((this._isOpen && this.opened) || this._isOpen) &&\n (this.hasBackdrop != null\n ? this.hasBackdrop\n : (this.mode === 'over' || (this._forceModeOverOpened && this._contentHasMargin())))) {\n\n // create only if is necessary\n if (!this._viewRef) {\n this._zone.run(() => {\n this._drawerContainer._openDrawers++;\n this._viewRef = this._vcr.createEmbeddedView(this._backdrop);\n this._cd.markForCheck();\n (this._viewRef.rootNodes[0] as HTMLDivElement).style.zIndex = `${this._drawerContainer._openDrawers}`;\n });\n }\n } else if (this._viewRef) {\n this._zone.run(() => {\n this._drawerContainer._openDrawers--;\n this._vcr.clear();\n this._viewRef = undefined;\n this._cd.markForCheck();\n if (this._forceModeOverOpened) {\n this._forceModeOverOpened = false;\n this._isOpen = this.opened;\n }\n });\n }\n }\n\n private _updateAnimations() {\n if (this._fromToggle && !this._isAnimation) {\n this._renderer.addClass(this._el.nativeElement, this.classes.transition);\n this._renderer.addClass(this._drawerContainer._drawerContent._getHostElement(), this.classes.transition);\n this._isAnimation = true;\n } else if (!this._fromToggle && this._isAnimation) {\n this._renderer.removeClass(this._el.nativeElement, this.classes.transition);\n this._renderer.removeClass(this._drawerContainer._drawerContent._getHostElement(), this.classes.transition);\n this._isAnimation = false;\n }\n }\n}\n\n/**\n * convert number to px\n */\nfunction toPx(val: string | number) {\n if (typeof val === 'number') {\n return `${val}px`;\n } else {\n return val;\n }\n}\n\nfunction createEmptyPropOrUseExisting(object: object, key: string, _new?: any) {\n return key in object\n ? object[key]\n : object[key] = _new || {};\n}\n","<ng-content></ng-content>\n<ng-template>\n <div [className]=\"classes.backdrop\" (click)=\"toggle()\"></div>\n</ng-template>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { LyDrawer, LyDrawerContainer, LyDrawerContent } from './drawer';\nimport { LyCommonModule } from '@alyle/ui';\n\n@NgModule({\n imports: [\n CommonModule,\n LyCommonModule\n ],\n exports: [\n LyDrawer,\n LyDrawerContainer,\n LyDrawerContent,\n LyCommonModule\n ],\n declarations: [LyDrawer, LyDrawerContainer, LyDrawerContent],\n})\nexport class LyDrawerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}