UNPKG

ng-devui

Version:

DevUI components based on Angular

1 lines 53 kB
{"version":3,"file":"ng-devui-layout.mjs","sources":["../../devui/layout/layout.types.ts","../../devui/layout/screen-media-query.service.ts","../../devui/layout/class.directive.ts","../../devui/layout/layout-utils.ts","../../devui/layout/col.component.ts","../../devui/layout/elements/aside.component.ts","../../devui/layout/elements/content.component.ts","../../devui/layout/elements/footer.component.ts","../../devui/layout/elements/header.component.ts","../../devui/layout/flex.directive.ts","../../devui/layout/gutter.directive.ts","../../devui/layout/layout.component.ts","../../devui/layout/row.component.ts","../../devui/layout/space.directive.ts","../../devui/layout/style.directive.ts","../../devui/layout/layout.module.ts","../../devui/layout/ng-devui-layout.ts"],"sourcesContent":["export type DJustify = 'start' | 'end' | 'center' | 'around' | 'between';\nexport type DAlign = 'start' | 'center' | 'end' | 'baseline' | 'stretch';\nexport type DAlignSelf = 'start' | 'center' | 'end' | 'baseline' | 'stretch';\nexport type DBreakpoint = 'ss' | 'ms' | 'mm' | 'ml' | 'xs' | 'sm' | 'md' | 'lg' | 'xl';\nexport const DBreakpoints: DBreakpoint[] = ['ss', 'ms', 'mm', 'ml', 'xs', 'sm', 'md', 'lg', 'xl'];\nexport const DBreakpointsMap = {\n ss: 0,\n ms: 360,\n mm: 768,\n ml: 1024,\n xs: 1280,\n sm: 1440,\n md: 1600,\n lg: 1760,\n xl: 1920,\n};\nexport interface DMergedProperty {\n daSpan?: number;\n daOffset?: number;\n daAlign?: DAlign;\n daJustify?: DJustify;\n daAlignSelf?: DAlignSelf;\n daOrder?: number;\n}\n\nexport type DResponseParameter<T> = T | {\n ss?: T;\n ms?: T;\n mm?: T;\n ml?: T;\n xs?: T;\n sm?: T;\n md?: T;\n lg?: T;\n xl?: T;\n};\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { fromEvent, ReplaySubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DBreakpoint, DBreakpoints, DBreakpointsMap } from './layout.types';\n\n@Injectable({ providedIn: 'root' })\nexport class DScreenMediaQueryService implements OnDestroy {\n private currentPoint: DBreakpoint;\n private pointChangeSub: ReplaySubject<{ currentPoint: DBreakpoint; change: number; compare: { [key: string]: number } }> =\n new ReplaySubject(1);\n private destroy$ = new Subject<void>();\n\n // 可以传入一个基准point,返回数据结构{ currentPoint, 变大or变小or没变,比基准point大or小or一样 }\n public getPoint(): ReplaySubject<{ currentPoint: DBreakpoint; change: number; compare: { [key: string]: number } }> {\n if (!this.currentPoint) {\n this.currentPoint = this.getCurrentPoint();\n this.pointChangeSub.next({\n currentPoint: this.currentPoint,\n change: 0,\n compare: this.comparePoints(this.currentPoint),\n });\n\n fromEvent(window, 'resize')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n const tempPoint = this.getCurrentPoint();\n if (this.currentPoint !== tempPoint) {\n const change = this.comparePoints(tempPoint, this.currentPoint) as number;\n this.currentPoint = tempPoint;\n\n this.pointChangeSub.next({\n currentPoint: this.currentPoint,\n change: change,\n compare: this.comparePoints(tempPoint),\n });\n }\n });\n }\n\n return this.pointChangeSub;\n }\n\n // 无p2,则全量对比\n private comparePoints(p1: DBreakpoint, p2?: DBreakpoint) {\n let index1: any;\n let index2: any;\n for (let i = 0; i < DBreakpoints.length; i++) {\n if (p1 === DBreakpoints[i]) {\n index1 = i;\n }\n if (p2 === DBreakpoints[i]) {\n index2 = i;\n }\n }\n\n if (!p2) {\n const res: any = {};\n DBreakpoints.forEach((point, index) => {\n res[point] = index1 - index;\n });\n\n return res;\n }\n\n return index1 - index2;\n }\n\n getCurrentPoint(): DBreakpoint | undefined {\n const currentScreenWidth = window.innerWidth;\n for (let i = 0; i < DBreakpoints.length; i++) {\n if (DBreakpointsMap[DBreakpoints[i]] >= currentScreenWidth || i === DBreakpoints.length - 1) {\n return DBreakpoints[i] as DBreakpoint;\n }\n }\n return;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy, Renderer2 } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DBreakpoints, DResponseParameter } from './layout.types';\nimport { DScreenMediaQueryService } from './screen-media-query.service';\n\n@Directive({\n selector: `[dClass]`,\n})\nexport class DClassDirective implements OnDestroy, AfterViewInit {\n @Input() dClass: DResponseParameter<string[]>;\n\n private destroy$ = new Subject<void>();\n private executedClassList: string[] = [];\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private screenQueryService: DScreenMediaQueryService) {}\n\n ngAfterViewInit(): void {\n this.screenQueryService\n .getPoint()\n .pipe(takeUntil(this.destroy$))\n .subscribe(({ currentPoint }) => {\n this.updateClass(currentPoint);\n });\n }\n\n /* TODO: 参数需要优化,不仅可以设置断点,还可以设置通用 */\n updateClass(currentPoint) {\n let finalClassList = [];\n\n if (!Array.isArray(this.dClass)) {\n for (const point of DBreakpoints) {\n if (this.dClass[point]) {\n finalClassList = [...finalClassList, ...this.dClass[point]];\n }\n if (currentPoint === point) {\n break;\n }\n }\n } else if (this.dClass) {\n finalClassList = [...this.dClass];\n }\n\n this.executedClassList.forEach((className) => {\n this.renderer.removeClass(this.elementRef.nativeElement, className);\n });\n\n finalClassList.forEach((className) => {\n this.renderer.addClass(this.elementRef.nativeElement, className);\n });\n\n this.executedClassList = finalClassList;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { ElementRef, Renderer2 } from '@angular/core';\nimport { DBreakpoint, DBreakpoints, DResponseParameter } from './layout.types';\n\nfunction isResponseValue(value: DResponseParameter<any>) {\n let flag = false;\n if (typeof value === 'object') {\n DBreakpoints.forEach(point => {\n if (value[point]) {\n flag = true;\n }\n });\n }\n return flag;\n}\n\nfunction runResponse(value: DResponseParameter<any>, func: (point: DBreakpoint, value: any) => void) {\n if (value) {\n if (isResponseValue(value)) {\n DBreakpoints.forEach(point => {\n if (value[point]) {\n func(point, value[point]);\n }\n });\n } else {\n func(null, value);\n }\n }\n}\n\nfunction getDSpanClass(point: DBreakpoint, value: any): string {\n const classType = value === 0 ? 'd' : 'col';\n const classValue = value === 0 ? 'none' : value;\n\n return point ? `dl-${classType}-${point}-${classValue}` : `dl-${classType}-${classValue}`;\n}\n\n/* 如果是ss 则表示全局生效 */\nfunction transPoint(point: DBreakpoint) {\n if (point === 'ss') {\n return null;\n }\n\n return point;\n}\n\nfunction pointAndValueMapToClassName(paramName, classList, point, value) {\n const finalPonit = transPoint(point);\n\n const classPrefixMap: { [key: string]: any } = {\n dOffset: 'dl-offset-',\n dAlign: 'dl-align-items-',\n dJustify: 'dl-justify-content-',\n dAlignSelf: 'dl-align-self-',\n dOrder: 'dl-order-',\n // dFlexWrap: '',\n dSpan: getDSpanClass,\n dCols: 'dl-row-cols-',\n };\n\n if (typeof classPrefixMap[paramName] === 'string') {\n classList.push(finalPonit ? `${classPrefixMap[paramName]}${finalPonit}-${value}` : `${classPrefixMap[paramName]}${value}`);\n } else if (typeof classPrefixMap[paramName] === 'function') {\n classList.push(classPrefixMap[paramName](finalPonit, value));\n }\n}\n\n/**\n *\n * 此函数用以绑定当前类中可能需要绑定的Class,并识别响应式Object\n *\n */\nexport function updateClassList(context: any, elementRef: ElementRef, renderer: Renderer2) {\n const classParamsName = ['dSpan', 'dOffset', 'dAlign', 'dJustify', 'dAlignSelf', 'dOrder', 'dCols'];\n\n const tempClassList = [];\n classParamsName.forEach(paramName => {\n if (context[paramName]) {\n runResponse(context[paramName], pointAndValueMapToClassName.bind(this, paramName, tempClassList));\n }\n });\n\n if (context.classList) {\n context.classList.forEach(className => {\n renderer.removeClass(elementRef.nativeElement, className);\n });\n }\n\n context.classList = tempClassList;\n context.classList.forEach(className => {\n renderer.addClass(elementRef.nativeElement, className);\n });\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input, OnChanges, OnInit, Renderer2 } from '@angular/core';\nimport { updateClassList } from './layout-utils';\nimport { DResponseParameter } from './layout.types';\n\n@Component({\n selector: 'd-col',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-content></ng-content>\n `,\n styles: [`\n :host.d-col {\n padding: 0;\n }\n `]\n})\nexport class DColComponent implements OnInit, OnChanges {\n\n /* TODO: d-hide如何对外提供 */\n\n @HostBinding('class.d-col') dCol = true;\n\n @Input() dSpan: DResponseParameter<number | 'auto'> = 'auto';\n @Input() dOffset: DResponseParameter<number>;\n @Input() dPush: DResponseParameter<number>;\n @Input() dPull: DResponseParameter<number>;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n ) { }\n\n ngOnInit(): void {\n updateClassList(this, this.elementRef, this.renderer);\n }\n\n ngOnChanges(): void {\n updateClassList(this, this.elementRef, this.renderer);\n }\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'd-aside',\n exportAs: 'dAside',\n template: '<ng-content></ng-content>',\n})\nexport class AsideComponent {\n @HostBinding('class.d-aside') default = true;\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'd-content',\n template: '<ng-content></ng-content>',\n styleUrls: ['./content.component.scss'],\n})\nexport class ContentComponent {\n @HostBinding('class.d-content') default = true;\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'd-footer',\n template: '<ng-content></ng-content>',\n styleUrls: ['./footer.component.scss']\n})\nexport class FooterComponent {\n @HostBinding('class.d-footer') default = true;\n}\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'd-header',\n template: '<ng-content></ng-content>',\n styleUrls: ['./header.component.scss']\n})\nexport class HeaderComponent {\n @HostBinding('class.d-header') default = true;\n}\n","import { AfterViewInit, Directive, ElementRef, HostBinding, Input, OnChanges, OnDestroy, Renderer2 } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { updateClassList } from './layout-utils';\nimport { DAlign, DAlignSelf, DBreakpoints, DJustify, DResponseParameter } from './layout.types';\nimport { DScreenMediaQueryService } from './screen-media-query.service';\n\n@Directive({\n selector: `[dFlex], d-row, d-col`,\n})\nexport class DFlexDirective implements OnChanges, OnDestroy, AfterViewInit {\n @HostBinding('class.dl-flex-row') get flexRow() {\n return this.dFlexContainer === 'row';\n }\n @HostBinding('class.dl-flex-column') get flexColumn() {\n return this.dFlexContainer === 'column';\n }\n @HostBinding('class.dl-d-flex') get flex() {\n return !!this.dFlexContainer;\n }\n\n @Input() dFlex: DResponseParameter<number | string>;\n\n /* TODO: 这个也需要响应式 */\n @Input() dFlexContainer: 'row' | 'column';\n\n @Input() dOrder: DResponseParameter<number>;\n @Input() dAlign: DResponseParameter<DAlign>;\n @Input() dAlignSelf: DResponseParameter<DAlignSelf>;\n @Input() dJustify: DResponseParameter<DJustify>;\n\n /* TODO:实现这个特性 */\n @Input() dFlexWrap: DResponseParameter<string>;\n\n private destroy$ = new Subject<void>();\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private screenQueryService: DScreenMediaQueryService) {}\n\n ngAfterViewInit(): void {\n this.screenQueryService\n .getPoint()\n .pipe(takeUntil(this.destroy$))\n .subscribe(({ currentPoint }) => {\n this.updateFlex(currentPoint);\n });\n updateClassList(this, this.elementRef, this.renderer);\n }\n\n parseFlex(flex: any): string {\n if (typeof flex === 'number') {\n return `${flex}`;\n } else if (typeof flex === 'string') {\n if (/^\\d+(\\.\\d+)?(px|em|rem|%)$/.test(flex)) {\n return `0 0 ${flex}`;\n }\n }\n return flex;\n }\n\n updateFlex(currentPoint) {\n let finalFlex: number | string = '';\n if (this.dFlex) {\n if (typeof this.dFlex === 'object') {\n for (const point of DBreakpoints) {\n if (this.dFlex[point]) {\n finalFlex = this.dFlex[point];\n }\n if (currentPoint === point) {\n break;\n }\n }\n } else {\n finalFlex = this.dFlex;\n }\n }\n this.renderer.setStyle(this.elementRef.nativeElement, 'flex', this.parseFlex(finalFlex));\n }\n\n ngOnChanges(): void {\n updateClassList(this, this.elementRef, this.renderer);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy, Renderer2 } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DBreakpoints, DResponseParameter } from './layout.types';\nimport { DScreenMediaQueryService } from './screen-media-query.service';\n\n@Directive({\n selector: `[dGutter]`,\n})\nexport class DGutterDirective implements OnDestroy, AfterViewInit {\n private destroy$ = new Subject<void>();\n private executedGutter: [number, number] = [null, null];\n\n @Input() dGutter: DResponseParameter<number | [number, number]>;\n @Input() dGutterDirection: 'vertical' | 'horizontal';\n @Input() dGutterNoOuter: DResponseParameter<boolean>;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private screenQueryService: DScreenMediaQueryService) {}\n\n ngAfterViewInit(): void {\n this.screenQueryService\n .getPoint()\n .pipe(takeUntil(this.destroy$))\n .subscribe(({ currentPoint }) => {\n this.updateGutter(currentPoint);\n });\n }\n\n private getCurrentGutter(currentPoint): [number, number] {\n let finalGutter: [number, number] = [null, null];\n if (Array.isArray(this.dGutter) || typeof this.dGutter === 'number') {\n finalGutter = this._transGutterToArray(this.dGutter);\n } else {\n for (const point of DBreakpoints) {\n if (this.dGutter[point] !== undefined) {\n finalGutter = this._transGutterToArray(this.dGutter[point]);\n }\n if (currentPoint === point) {\n break;\n }\n }\n }\n\n return finalGutter;\n }\n\n private _transGutterToArray(gutter): [number, number] {\n let finalGutter = gutter;\n if (typeof gutter === 'number') {\n finalGutter = [gutter, null];\n }\n if (this.dGutterDirection === 'vertical') {\n finalGutter = finalGutter.reverse() as [number, number];\n }\n\n return finalGutter;\n }\n\n updateGutter(currentPoint) {\n const finalGutter = this.getCurrentGutter(currentPoint);\n\n this.updateChildrenGutter(finalGutter);\n this.updateParentGutter(finalGutter);\n\n this.executedGutter = finalGutter;\n }\n\n updateChildrenGutter(gutter: [number, number]) {\n const items = this.elementRef.nativeElement.children;\n\n for (let i = 0; i < items.length; i++) {\n if (gutter[0] !== null) {\n this.renderer.setStyle(items[i], 'padding-left', gutter[0] / 2 + 'px');\n this.renderer.setStyle(items[i], 'padding-right', gutter[0] / 2 + 'px');\n } else if (this.executedGutter[0] !== null) {\n this.renderer.removeStyle(items[i], 'padding-left');\n this.renderer.removeStyle(items[i], 'padding-right');\n }\n if (gutter[1] !== null) {\n this.renderer.setStyle(items[i], 'padding-top', gutter[1] / 2 + 'px');\n this.renderer.setStyle(items[i], 'padding-bottom', gutter[1] / 2 + 'px');\n } else if (this.executedGutter[1] !== null) {\n this.renderer.removeStyle(items[i], 'padding-top');\n this.renderer.removeStyle(items[i], 'padding-bottom');\n }\n }\n }\n\n updateParentGutter(gutter: [number, number]) {\n if (this.dGutterNoOuter) {\n const element = this.elementRef.nativeElement;\n if (gutter[0] !== null) {\n this.renderer.setStyle(element, 'margin-left', -gutter[0] / 2 + 'px');\n this.renderer.setStyle(element, 'margin-right', -gutter[0] / 2 + 'px');\n } else if (this.executedGutter[0] !== null) {\n this.renderer.removeStyle(element, 'margin-left');\n this.renderer.removeStyle(element, 'margin-right');\n }\n if (gutter[1] !== null) {\n this.renderer.setStyle(element, 'margin-top', -gutter[1] / 2 + 'px');\n this.renderer.setStyle(element, 'margin-bottom', -gutter[1] / 2 + 'px');\n } else if (this.executedGutter[1] !== null) {\n this.renderer.removeStyle(element, 'margin-top');\n this.renderer.removeStyle(element, 'margin-bottom');\n }\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Component, ContentChildren, HostBinding, QueryList } from '@angular/core';\nimport { AsideComponent } from './elements/aside.component';\n\n@Component({\n selector: 'd-layout',\n template: '<ng-content></ng-content>',\n styleUrls: ['./layout.component.scss'],\n preserveWhitespaces: false,\n})\nexport class LayoutComponent {\n @ContentChildren(AsideComponent) listOfSideBarComponent: QueryList<AsideComponent>;\n @HostBinding('class.d-layout-aside')\n get layoutSideBar(): boolean {\n return this.listOfSideBarComponent && this.listOfSideBarComponent.length > 0;\n }\n\n @HostBinding('class.d-layout') default = true;\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n ViewEncapsulation\n} from '@angular/core';\nimport { updateClassList } from './layout-utils';\nimport { DResponseParameter } from './layout.types';\n\n@Component({\n selector: 'd-row',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <ng-content></ng-content>\n `,\n styles: [\n `\n d-row.d-row {\n margin: 0;\n padding: 0;\n }\n `\n ],\n encapsulation: ViewEncapsulation.None,\n preserveWhitespaces: false\n})\nexport class DRowComponent implements OnInit, OnChanges {\n @HostBinding('class.dl-row') dlRow = true;\n @HostBinding('class.dl-flex-row') dlFlexRow = true;\n @HostBinding('class.d-row') dRow = true;\n\n @Input() dCols: DResponseParameter<number>;\n\n constructor(\n private elementRef: ElementRef,\n private renderer: Renderer2,\n ) { }\n\n ngOnInit(): void {\n updateClassList(this, this.elementRef, this.renderer);\n }\n\n ngOnChanges(): void {\n updateClassList(this, this.elementRef, this.renderer);\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy, Renderer2 } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DBreakpoints, DResponseParameter } from './layout.types';\nimport { DScreenMediaQueryService } from './screen-media-query.service';\n\n@Directive({\n selector: `[dSpace]`,\n})\nexport class DSpaceDirective implements OnDestroy, AfterViewInit {\n private destroy$ = new Subject<void>();\n private executedSpace: [number, number] = [null, null];\n\n @Input() dSpace: DResponseParameter<number | [number, number]>;\n @Input() dSpaceDirection: DResponseParameter<'vertical' | 'horizontal'>;\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private screenQueryService: DScreenMediaQueryService) {}\n\n ngAfterViewInit(): void {\n this.screenQueryService\n .getPoint()\n .pipe(takeUntil(this.destroy$))\n .subscribe(({ currentPoint }) => {\n this.updateSpace(currentPoint);\n });\n }\n\n private getCurrentSpace(currentPoint): [number, number] {\n let finalSpace: [number, number] = [null, null];\n if (Array.isArray(this.dSpace) || typeof this.dSpace === 'number') {\n finalSpace = this._transSpaceToArray(this.dSpace);\n } else {\n for (const point of DBreakpoints) {\n if (this.dSpace[point] !== undefined) {\n finalSpace = this._transSpaceToArray(this.dSpace[point]);\n }\n if (currentPoint === point) {\n break;\n }\n }\n }\n\n return finalSpace;\n }\n\n private _transSpaceToArray(space): [number, number] {\n let finalSpace = space;\n if (typeof space === 'number') {\n finalSpace = [space, null];\n }\n if (this.dSpaceDirection === 'horizontal') {\n finalSpace = finalSpace.reverse() as [number, number];\n }\n\n return finalSpace;\n }\n\n updateSpace(currentPoint) {\n const finalSpace = this.getCurrentSpace(currentPoint);\n\n const items = this.elementRef.nativeElement.children;\n\n for (let i = 0; i < items.length - 1; i++) {\n if (finalSpace[0] !== null) {\n this.renderer.setStyle(items[i], 'margin-bottom', finalSpace[0] + 'px');\n } else if (this.executedSpace[0] !== null) {\n this.renderer.removeStyle(items[i], 'margin-bottom');\n }\n if (finalSpace[1] !== null) {\n this.renderer.setStyle(items[i], 'margin-right', finalSpace[1] + 'px');\n } else if (this.executedSpace[1] !== null) {\n this.renderer.removeStyle(items[i], 'margin-right');\n }\n }\n\n this.executedSpace = finalSpace;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { AfterViewInit, Directive, ElementRef, Input, OnDestroy, Renderer2 } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DBreakpoints, DResponseParameter } from './layout.types';\nimport { DScreenMediaQueryService } from './screen-media-query.service';\n\n@Directive({\n selector: `[dStyle]`,\n})\nexport class DStyleDirective implements OnDestroy, AfterViewInit {\n @Input() dStyle: DResponseParameter<Object>;\n\n private destroy$ = new Subject<void>();\n private styleObject = {};\n\n constructor(private elementRef: ElementRef, private renderer: Renderer2, private screenQueryService: DScreenMediaQueryService) {}\n\n ngAfterViewInit(): void {\n this.screenQueryService\n .getPoint()\n .pipe(takeUntil(this.destroy$))\n .subscribe(({ currentPoint }) => {\n this.updateStyle(currentPoint);\n });\n }\n\n updateStyle(currentPoint) {\n let finalStyleObject = {};\n let isResponse = false;\n\n if (this.dStyle) {\n for (const point of DBreakpoints) {\n if (this.dStyle[point]) {\n finalStyleObject = { ...finalStyleObject, ...this.dStyle[point] };\n isResponse = true;\n }\n if (currentPoint === point) {\n break;\n }\n }\n\n if (!isResponse) {\n finalStyleObject = { ...this.dStyle };\n }\n }\n\n Object.keys(this.styleObject).forEach((key) => {\n this.renderer.removeStyle(this.elementRef.nativeElement, key);\n });\n\n Object.keys(finalStyleObject).forEach((key) => {\n this.renderer.setStyle(this.elementRef.nativeElement, key, finalStyleObject[key]);\n });\n\n this.styleObject = finalStyleObject;\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DClassDirective } from './class.directive';\nimport { DColComponent } from './col.component';\nimport { AsideComponent } from './elements/aside.component';\nimport { ContentComponent } from './elements/content.component';\nimport { FooterComponent } from './elements/footer.component';\nimport { HeaderComponent } from './elements/header.component';\nimport { DFlexDirective } from './flex.directive';\nimport { DGutterDirective } from './gutter.directive';\nimport { LayoutComponent } from './layout.component';\nimport { DRowComponent } from './row.component';\nimport { DSpaceDirective } from './space.directive';\nimport { DStyleDirective } from './style.directive';\n\n@NgModule({\n declarations: [\n LayoutComponent,\n HeaderComponent,\n ContentComponent,\n FooterComponent,\n AsideComponent,\n DClassDirective,\n DStyleDirective,\n DFlexDirective,\n DRowComponent,\n DColComponent,\n DSpaceDirective,\n DGutterDirective,\n ],\n exports: [\n LayoutComponent,\n HeaderComponent,\n ContentComponent,\n FooterComponent,\n AsideComponent,\n DClassDirective,\n DStyleDirective,\n DFlexDirective,\n DRowComponent,\n DColComponent,\n DSpaceDirective,\n DGutterDirective,\n ],\n imports: [CommonModule],\n})\nexport class LayoutModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.DScreenMediaQueryService"],"mappings":"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