{"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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"}