{"version":3,"file":"alyle-ui-grid.mjs","sources":["../../../lib/grid/grid.ts","../../../lib/grid/grid.module.ts","../../../lib/grid/alyle-ui-grid.ts"],"sourcesContent":["import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport {\n  LyTheme2,\n  eachMedia,\n  ThemeVariables,\n  StyleCollection,\n  StyleTemplate,\n  StyleRenderer } from '@alyle/ui';\n\nconst STYLE_PRIORITY = -1;\n\nconst ALIGN_ALIAS = {\n  rowReverse: 'row-reverse',\n  columnReverse: 'column-reverse',\n  wrapReverse: 'wrap-reverse',\n  start: 'flex-start',\n  end: 'flex-end',\n  between: 'space-between',\n  around: 'space-around',\n  evenly: 'space-evenly',\n};\n\nexport type AlignItems = 'start' | 'center' | 'end' | 'stretch' | 'baseline';\n\nexport const STYLES = () => ({\n  $priority: STYLE_PRIORITY,\n  $name: LyGrid.и,\n  root: (_className: string) => `${_className}{width:100%;display:flex;flex-wrap:wrap;box-sizing:border-box;}`,\n  item: (_className: string) => `${_className},${_className} > :first-child{box-sizing:border-box;}`\n});\n\nexport type Justify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\nexport type Direction = 'row' | 'rowReverse' | 'column' | 'columnReverse';\n\n/**\n * Grid container\n */\n@Directive({\n  selector: 'ly-grid[container]',\n  standalone: false\n})\nexport class LyGrid {\n  static readonly и = 'LyGrid';\n  /**\n   * Styles\n   * @docs-private\n   */\n  readonly classes = this.theme.renderStyleSheet(STYLES);\n\n  private _spacing: string | number;\n  _spacingClass?: string;\n\n  private _spacingX: string | number;\n  _spacingXClass?: string;\n\n  private _spacingY: string | number;\n  _spacingYClass?: string;\n\n\n  private _negativeMarginClass?: string;\n\n  private _justify: Justify;\n  private _justifyClass?: string;\n\n  private _direction: Direction;\n  private _directionClass?: string;\n\n  private _alignItems: AlignItems;\n  private _alignItemsClass?: string;\n\n  @Input()\n  get spacingX(): string | number {\n    return this._spacingX;\n  }\n  set spacingX(val: string | number) {\n    if (val !== this.spacingX) {\n      this._spacingX = val;\n      this._createSpacingClass(undefined, val);\n    }\n  }\n\n  @Input()\n  get spacingY(): string | number {\n    return this._spacingY;\n  }\n  set spacingY(val: string | number) {\n    if (val !== this.spacingY) {\n      this._spacingY = val;\n      this._createSpacingClass(undefined, undefined, val);\n    }\n  }\n\n  /**\n   * Defines the space between the component with the `item` attribute.\n   * Support breakpoints\n   */\n  @Input()\n  get spacing(): string | number {\n    return this._spacing;\n  }\n  set spacing(val: string | number) {\n    if (val !== this.spacing) {\n      this._spacing = val;\n      this._createSpacingClass(val);\n    }\n  }\n\n  /**\n   * Only one param must be defined\n   */\n  private _createSpacingClass(xy?: string | number, x?: string | number, y?: string | number) {\n    const newSpacingClass = this.theme.addStyle(`lyGrid-spacing:${xy}·${x}·${y}`, (theme: ThemeVariables) => {\n      const val = (xy || x || y) as string | number;\n      const spacingStyles: {\n        padding?: string\n      } = {};\n      eachMedia(val, (value, media) => {\n        const valuePadding = `${(+value) / 2}px`;\n        const padding = xy != null\n          ? valuePadding\n          : x != null\n            ? `0 ${valuePadding}`\n            : `${valuePadding} 0`;\n        if (media) {\n          spacingStyles[theme.getBreakpoint(media)] = {\n            padding\n          };\n        } else {\n          spacingStyles.padding = padding;\n        }\n      });\n      return spacingStyles;\n    }, undefined, undefined, STYLE_PRIORITY);\n\n    if (xy) {\n      this._spacingClass = newSpacingClass;\n    } else {\n      if (x) {\n        this._spacingXClass = newSpacingClass;\n      }\n      if (y) {\n        this._spacingYClass = newSpacingClass;\n      }\n    }\n\n    this._negativeMarginClass = this.theme.addStyle(`lyGrid-negative-margin:${xy}·${x}·${y}`, (theme: ThemeVariables) => {\n      const val = (xy || x || y) as string | number;\n      let negativeMarginStyles: {\n        margin?: string\n        width?: string\n      };\n      eachMedia(val, (value, media) => {\n        const valueMargin = `${(-value) / 2}px`;\n        const margin = xy != null\n          ? valueMargin\n          : x != null\n            ? `0 ${valueMargin}`\n            : `${valueMargin} 0`;\n        const negativeMarginstyles: {\n          margin: string\n          width?: string\n        } = { margin };\n\n        if (xy != null || x != null) {\n          negativeMarginstyles.width = `calc(100% + ${value}px)`;\n        }\n        if (media) {\n          if (!negativeMarginStyles) {\n            negativeMarginStyles = {};\n          }\n          negativeMarginStyles[theme.getBreakpoint(media)] = negativeMarginstyles;\n        } else {\n          negativeMarginStyles = negativeMarginstyles;\n        }\n      });\n      return negativeMarginStyles!;\n    }, this.el.nativeElement, this._negativeMarginClass, STYLE_PRIORITY);\n  }\n\n  /**\n   * Defines the justify-content style property.\n   * Support breakpoints\n   */\n  @Input()\n  get justify(): Justify {\n    return this._justify;\n  }\n  set justify(val: Justify) {\n    if (val !== this.justify) {\n      this._justify = val;\n      this._justifyClass = this.theme.addStyle(`lyGrid-justify:${val}`, (theme: ThemeVariables) => {\n        let justifyStyles: {\n          justifyContent?: string\n        };\n        eachMedia(val, (value, media) => {\n          const newJustifyStyles = {\n            justifyContent: value in ALIGN_ALIAS\n            ? ALIGN_ALIAS[value]\n            : value\n          };\n          if (media) {\n            if (!justifyStyles) {\n              justifyStyles = {};\n            }\n            justifyStyles[theme.getBreakpoint(media)] = newJustifyStyles;\n          } else {\n            justifyStyles = newJustifyStyles;\n          }\n        });\n        return justifyStyles!;\n      }, this.el.nativeElement, this._justifyClass, STYLE_PRIORITY);\n    }\n  }\n\n  /**\n   * Defines the justify-content style property.\n   * Support breakpoints\n   */\n  @Input()\n  get direction(): Direction {\n    return this._direction;\n  }\n  set direction(val: Direction) {\n    if (val !== this.direction) {\n      this._direction = val;\n      this._directionClass = this.theme.addStyle(`lyGrid-direction:${val}`, (theme: ThemeVariables) => {\n        let directionStyles: {\n          flexDirection?: string\n        };\n        eachMedia(val, (value, media) => {\n          const newDirectionStyles = {\n            flexDirection: value in ALIGN_ALIAS\n            ? ALIGN_ALIAS[value]\n            : value\n          };\n          if (media) {\n            if (!directionStyles) {\n              directionStyles = {};\n            }\n            directionStyles[theme.getBreakpoint(media)] = newDirectionStyles;\n          } else {\n            directionStyles = newDirectionStyles;\n          }\n        });\n        return directionStyles!;\n      }, this.el.nativeElement, this._directionClass, STYLE_PRIORITY);\n    }\n  }\n\n  /**\n   * Defines the `align-items` style property.\n   * Support breakpoints\n   */\n  @Input()\n  set alignItems(val: AlignItems) {\n    this._alignItems = val;\n    this._alignItemsClass = this.theme.addStyle(`lyGrid.align:${val}`, (theme: ThemeVariables) => {\n      let alignItemsStyles: {\n        alignItems?: string,\n        [media: string]: {\n          alignItems?: string\n        } | string | undefined\n      };\n      eachMedia(val, (value, media) => {\n        const newAlignItemsStyles = {\n          alignItems: value in ALIGN_ALIAS\n          ? ALIGN_ALIAS[value]\n          : value\n        };\n        if (media) {\n          if (!alignItemsStyles) {\n            alignItemsStyles = {};\n          }\n          alignItemsStyles[theme.getBreakpoint(media)] = newAlignItemsStyles;\n        } else {\n          alignItemsStyles = newAlignItemsStyles;\n        }\n      });\n      return alignItemsStyles!;\n    }, this.el.nativeElement, this._alignItemsClass, STYLE_PRIORITY);\n  }\n  get alignItems() {\n    return this._alignItems;\n  }\n\n  constructor(\n    private theme: LyTheme2,\n    private el: ElementRef,\n  ) {\n    this.el.nativeElement.classList.add(this.classes.root);\n  }\n}\n\n@Directive({\n  selector: 'ly-grid[item], [ly-grid-item], [lyGridItem]',\n  providers: [\n    StyleRenderer\n  ],\n  standalone: false\n})\nexport class LyGridItem implements OnInit {\n  static readonly и = 'LyGridItem';\n  private _col: string | number;\n  private _colClass: string | null;\n\n  private _order: string | number;\n  private _orderClass: string;\n\n  /**\n   * Defines the number of grids\n   * Support breakpoints\n   */\n  @Input()\n  get col(): string | number {\n    return this._col;\n  }\n  set col(val: string | number) {\n    const newVal = this._col = val || 0;\n    this._colClass = this._sr.add(`${LyGridItem.и}--col-${newVal}`, (theme: ThemeVariables) => {\n      const medias = new StyleCollection<StyleTemplate>();\n      eachMedia(newVal, (value, media) => {\n        if (typeof value === 'string') {\n          throw new Error(`${LyGridItem.и}: '${val}' is not valid.`);\n        }\n        const maxWidth = value ? value * 100 / 12 : 100;\n        const flexBasis = value ? value * 100 / 12 : 0;\n        const flexGrow = value ? 0 : 1;\n\n        if (media) {\n          medias.add(\n            (_className: string) => `@media ${theme.breakpoints[media]}{${_className}{max-width:${maxWidth}%;flex-basis:${flexBasis}%;flex-grow:${flexGrow};}}`\n          );\n        } else {\n          medias.add(\n            (_className: string) => `${_className}{max-width:${maxWidth}%;flex-basis:${flexBasis}%;flex-grow:${flexGrow};}`\n          );\n        }\n      });\n      return medias.css;\n    }, STYLE_PRIORITY, this._colClass);\n  }\n\n  @Input('lyGridItem')\n  set gridItemCol(val: string | number) {\n    this.col = val;\n  }\n  get gridItemCol() {\n    return this.col;\n  }\n\n  /**\n   * Defines the order style property.\n   * Support breakpoints\n   */\n  @Input()\n  get order(): string | number {\n    return this._order;\n  }\n  set order(val: string | number) {\n    if (val !== this.order) {\n      this._order = val;\n      this._orderClass = this.theme.addStyle(`lyGrid-order:${val}`, (theme: ThemeVariables) => {\n        let orderStyles: {\n          order?: string | number\n        };\n        eachMedia(`${val}`, (value, media) => {\n          const newOrderStyles = {\n            order: value\n          };\n          if (media) {\n            if (!orderStyles) {\n              orderStyles = {};\n            }\n            orderStyles[theme.getBreakpoint(media)] = newOrderStyles;\n          } else {\n            orderStyles = newOrderStyles;\n          }\n        });\n        return orderStyles!;\n      }, this.el.nativeElement, this._orderClass, STYLE_PRIORITY);\n    }\n  }\n\n  constructor(\n    private gridContainer: LyGrid,\n    private el: ElementRef,\n    renderer: Renderer2,\n    private theme: LyTheme2,\n    private _sr: StyleRenderer\n  ) {\n    if (!gridContainer) {\n      throw new Error(`Require parent <ly-grid container>`);\n    }\n    renderer.addClass(el.nativeElement, this.gridContainer.classes.item);\n  }\n\n  ngOnInit() {\n    this._updateSpacing();\n  }\n\n  private _updateSpacing() {\n    if (this.gridContainer._spacingClass) {\n      this.el.nativeElement.classList.add(this.gridContainer._spacingClass);\n    } else {\n      if (this.gridContainer._spacingXClass) {\n        this.el.nativeElement.classList.add(this.gridContainer._spacingXClass);\n      }\n      if (this.gridContainer._spacingYClass) {\n        this.el.nativeElement.classList.add(this.gridContainer._spacingYClass);\n      }\n    }\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { LyGrid, LyGridItem } from './grid';\n\n@NgModule({\n  exports: [LyGrid, LyGridItem],\n  declarations: [LyGrid, LyGridItem]\n})\nexport class LyGridModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}