UNPKG

@alyle/ui

Version:

Minimal Design, a set of components for Angular

1 lines 22.8 kB
{"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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"}