{"version":3,"file":"fundamental-ngx-core-layout-grid.mjs","sources":["../../../../libs/core/layout-grid/constants.ts","../../../../libs/core/layout-grid/directives/layout-grid-col.directive.ts","../../../../libs/core/layout-grid/directives/layout-grid-row.directive.ts","../../../../libs/core/layout-grid/layout-grid.component.ts","../../../../libs/core/layout-grid/layout-grid.component.html","../../../../libs/core/layout-grid/layout-grid.module.ts","../../../../libs/core/layout-grid/fundamental-ngx-core-layout-grid.ts"],"sourcesContent":["/** Describes number of columns in grid horizontal dimension */\nexport const GRID_COLUMNS_NUMBER = 12;\n\nexport const CSS_CLASS_NAME = {\n    layoutGrid: 'fd-container',\n    layoutGridNoHorizontalGap: 'fd-container--no-horizontal-gap',\n    layoutGridNoVerticalGap: 'fd-container--no-vertical-gap',\n    layoutGridNoGap: 'fd-container--no-gap',\n\n    col: 'fd-col',\n    colGrow: 'fd-col--full',\n\n    colSizePrefix: 'fd-col--',\n    mdColSizePrefix: 'fd-col-md--',\n    lgColSizePrefix: 'fd-col-lg--',\n    xlColSizePrefix: 'fd-col-xl--',\n\n    colOffsetPrefix: 'fd-col--offset-',\n    mdColOffsetPrefix: 'fd-col-md--offset-',\n    lgColOffsetPrefix: 'fd-col-lg--offset-',\n    xlColOffsetPrefix: 'fd-col-xl--offset-'\n} as const;\n","import { coerceNumberProperty, NumberInput } from '@angular/cdk/coercion';\nimport { booleanAttribute, computed, Directive, ElementRef, inject, input } from '@angular/core';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\nimport { CSS_CLASS_NAME, GRID_COLUMNS_NUMBER } from '../constants';\n\n@Directive({\n    selector: '[fd-layout-grid-col], [fdLayoutGridCol]',\n    host: {\n        '[class]': '_cssClass()'\n    }\n})\nexport class LayoutGridColDirective implements HasElementRef {\n    /** Defines the width of the element on the layout grid. */\n    readonly fdLayoutGridCol = input<NumberInput>();\n\n    /** Weather the column should take all available width */\n    readonly colGrow = input(false, { transform: booleanAttribute });\n\n    /** Defines the width of the element on the layout grid for middle-size screen devices. */\n    readonly colMd = input<number>();\n\n    /** Defines the width of the element on the layout grid for large screen devices. */\n    readonly colLg = input<number>();\n\n    /** Defines the width of the element on the layout grid for extra-large screen devices. */\n    readonly colXl = input<number>();\n\n    /** Defines the offset width of the element on the layout grid. */\n    readonly colOffset = input<number>();\n\n    /** Defines the offset width of the element on the layout grid for middle-sized screen devices. */\n    readonly colOffsetMd = input<number>();\n\n    /** Defines the offset width of the element on the layout grid for large screen devices. */\n    readonly colOffsetLg = input<number>();\n\n    /** Defines the offset width of the element on the layout grid for extra-large screen devices. */\n    readonly colOffsetXl = input<number>();\n\n    /**\n     * @hidden\n     * Access to the host element's ElementRef.\n     */\n    readonly elementRef = inject(ElementRef);\n\n    /** @hidden */\n    protected readonly _cssClass = computed(() => {\n        const classes: string[] = [\n            CSS_CLASS_NAME.col,\n            this.colGrow() ? CSS_CLASS_NAME.colGrow : '',\n            this._getCssClassWithColWidth(CSS_CLASS_NAME.colSizePrefix, this.fdLayoutGridCol()),\n            this._getCssClassWithColWidth(CSS_CLASS_NAME.mdColSizePrefix, this.colMd()),\n            this._getCssClassWithColWidth(CSS_CLASS_NAME.lgColSizePrefix, this.colLg()),\n            this._getCssClassWithColWidth(CSS_CLASS_NAME.xlColSizePrefix, this.colXl()),\n            this._getCssClassWithColWidth(CSS_CLASS_NAME.colOffsetPrefix, this.colOffset()),\n            this._getCssClassWithColWidth(CSS_CLASS_NAME.mdColOffsetPrefix, this.colOffsetMd()),\n            this._getCssClassWithColWidth(CSS_CLASS_NAME.lgColOffsetPrefix, this.colOffsetLg()),\n            this._getCssClassWithColWidth(CSS_CLASS_NAME.xlColOffsetPrefix, this.colOffsetXl())\n        ].filter((v): v is string => !!v);\n\n        return classes.join(' ');\n    });\n\n    /** @hidden */\n    private _getCssClassWithColWidth(classPrefix: string, colWidth: NumberInput): string | null {\n        if (!colWidth) {\n            return null;\n        }\n\n        const col = coerceNumberProperty(colWidth);\n\n        return col <= GRID_COLUMNS_NUMBER && col >= 1 ? classPrefix + col : null;\n    }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n    selector: '[fd-layout-grid-row], [fdLayoutGridRow]',\n    host: {\n        class: 'fd-row'\n    }\n})\nexport class LayoutGridRowDirective {}\n","import {\n    ChangeDetectionStrategy,\n    Component,\n    ElementRef,\n    ViewEncapsulation,\n    contentChildren,\n    inject,\n    input\n} from '@angular/core';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { HasElementRef } from '@fundamental-ngx/cdk/utils';\nimport { CSS_CLASS_NAME } from './constants';\nimport { LayoutGridRowDirective } from './directives/layout-grid-row.directive';\n\n/**\n * Use a layout grid to arrange components evenly in a grid layout.\n */\n@Component({\n    selector: 'fd-layout-grid, [fdLayoutGrid]',\n    templateUrl: './layout-grid.component.html',\n    styleUrl: './layout-grid.component.scss',\n    host: {\n        class: CSS_CLASS_NAME.layoutGrid,\n        '[class.fd-container--no-gap]': 'noGap()',\n        '[class.fd-container--no-horizontal-gap]': 'noHorizontalGap()',\n        '[class.fd-container--no-vertical-gap]': 'noVerticalGap()'\n    },\n    encapsulation: ViewEncapsulation.None,\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    imports: [NgTemplateOutlet, LayoutGridRowDirective]\n})\nexport class LayoutGridComponent implements HasElementRef {\n    /** Whether the grid should have a gap. */\n    readonly noGap = input(false);\n\n    /** Whether the grid should have a horizontal gap. */\n    readonly noHorizontalGap = input(false);\n\n    /** Whether the grid should have a vertical gap. */\n    readonly noVerticalGap = input(false);\n\n    /** @hidden */\n    readonly _rowsQueryList = contentChildren(LayoutGridRowDirective);\n\n    /**\n     * @hidden\n     * Access to the host element's ElementRef.\n     */\n    public readonly elementRef = inject(ElementRef);\n}\n","@if (_rowsQueryList().length) {\n    <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n} @else {\n    <div fdLayoutGridRow>\n        <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n    </div>\n}\n<!-- To avoid breaking change-->\n<ng-template #content>\n    <ng-content></ng-content>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { LayoutGridColDirective } from './directives/layout-grid-col.directive';\nimport { LayoutGridRowDirective } from './directives/layout-grid-row.directive';\nimport { LayoutGridComponent } from './layout-grid.component';\n\nconst components = [LayoutGridComponent, LayoutGridColDirective, LayoutGridRowDirective];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n    imports: [...components],\n    exports: [...components]\n})\nexport class LayoutGridModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}