@iamgld/ui 1.20.1 → 1.20.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1413,11 +1413,11 @@ class TableComponent {
1413
1413
  }, {});
1414
1414
  }
1415
1415
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: TableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1416
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: TableComponent, isStandalone: true, selector: "gld-table", inputs: { tableColumns: { classPropertyName: "tableColumns", publicName: "tableColumns", isSignal: true, isRequired: true, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, tableHeight: { classPropertyName: "tableHeight", publicName: "tableHeight", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, selects: { classPropertyName: "selects", publicName: "selects", isSignal: true, isRequired: false, transformFunction: null }, selectsAll: { classPropertyName: "selectsAll", publicName: "selectsAll", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tableColumnAction: "tableColumnAction" }, ngImport: i0, template: "<!-- Search -->\n@if (search()) {\n <section class=\"table-search\">\n <ng-content select=\"gld-table-search\" />\n </section>\n}\n\n<!-- Table -->\n<article\n class=\"table\"\n [class.table--empty]=\"!tableColumnsToShow().length\"\n [style.height]=\"tableHeight()\">\n <!-- Table Content -->\n <section\n class=\"table-content\"\n [class.table-content--actions]=\"tableColumnActions().length\"\n [class.table-content--selects]=\"selects()\">\n <!-- Loading -->\n @if (loading()) {\n <gld-loader loading background minHeight=\"100px\" />\n } @else {\n <!-- Table Columns -->\n @for (tableColumn of tableColumnsToShow(); track tableColumn) {\n <section\n class=\"table-column\"\n [style.flexBasis]=\"tableColumn.width\"\n [style.flexShrink]=\"tableColumn.width === 'auto' ? '1' : '0'\"\n [style.flexGrow]=\"tableColumn.width === 'auto' ? '1' : '0'\"\n [style.minWidth]=\"tableColumn.minWidth\"\n [style.maxWidth]=\"tableColumn.maxWidth\">\n <section class=\"table-header\">\n <span class=\"table-header-ellipsis\">{{ tableColumn.label }}</span>\n </section>\n @for (value of tableColumn.values; track $index) {\n <section\n class=\"table-cell\"\n [style.justifyContent]=\"tableColumn.justify\"\n [style.textAlign]=\"tableColumn.justify\">\n @if (tableColumn.transform(value) !== undefined) {\n @switch (true) {\n @case (tableColumn.template !== undefined) {\n <ng-container\n [ngTemplateOutlet]=\"tableColumn.template\"\n [ngTemplateOutletContext]=\"{ value: tableColumn.transform(value) }\" />\n }\n @default {\n <span class=\"table-cell-ellipsis\">{{ tableColumn.transform(value) }}</span>\n }\n }\n } @else {\n <span>-</span>\n }\n </section>\n }\n </section>\n } @empty {\n <!-- Empty -->\n <section class=\"table-empty\">\n <p>{{ emptyMessage() ? emptyMessage() : 'We have not data to show yet!' }}</p>\n </section>\n }\n }\n </section>\n\n <!-- Table Actions -->\n @if ((tableColumnActions().length || selects()) && !loading() && tableColumnsToShow().length) {\n <section\n class=\"table-column\"\n [class.table-column--actions]=\"tableColumnActions().length\"\n [class.table-column--selects]=\"selects()\">\n <!-- Header -->\n <section\n class=\"table-header\"\n [class.table-header--actions]=\"tableColumnActions().length\"\n [class.table-header--selects]=\"selects()\">\n <!-- Select All Checkbox -->\n @if (selectsAll()) {\n <!-- <mat-checkbox\n color=\"primary\"\n matTooltip=\"Todo\"\n matTooltipClass=\"Tooltip\"\n class=\"Checkbox\"\n [checked]=\"\n dragAndDropColumnSelected().length === dragAndDropColumns().at(0)?.values?.length\n \"\n [indeterminate]=\"\n !!dragAndDropColumnSelected().length &&\n dragAndDropColumnSelected().length !== dragAndDropColumns().at(0)?.values?.length\n \"\n (change)=\"onSelectOrUnselectAll($event, dragAndDropColumns())\"\n /> -->\n }\n </section>\n @for (value of tableColumnsToShow().at(0)?.values; track $index; let index = $index) {\n <!-- Cell -->\n <section class=\"table-cell table-cell--actions\">\n <!-- Select Checkbox -->\n @if (selects()) {\n <!-- <mat-checkbox\n color=\"primary\"\n class=\"Checkbox\"\n matTooltip=\"Seleccionar\"\n matTooltipClass=\"Tooltip\"\n [checked]=\"isSelected(dragAndDropColumns(), index)\"\n (change)=\"onSelect($event, dragAndDropColumns(), index)\" /> -->\n }\n @if (tableColumnActions()) {\n <!-- Dropdown Menu -->\n <gld-dropdown-menu\n background\n name=\"more button of table cell\"\n type=\"iconButton\"\n iconSize=\"small\"\n direction=\"left\"\n [icon]=\"Icons.more2Fill\"\n (changeValue)=\"\n tableActionFunction({\n tableColumnActionAsEvent: $event,\n tableColumns: tableColumns(),\n index,\n })\n \">\n @for (tableColumnAction of tableColumnActions(); track tableColumnAction.type) {\n <gld-dropdown-button\n [value]=\"tableColumnAction\"\n [icon]=\"tableColumnAction.icon\"\n iconSize=\"tiny\">\n {{ tableColumnAction.label }}\n </gld-dropdown-button>\n }\n </gld-dropdown-menu>\n <!-- <gld-icon-button\n background\n name=\"more button of table cell\"\n iconSize=\"small\"\n [icon]=\"Icons.more2Fill\"> -->\n <!-- <gld-tile color=\"blue-to-green\" class=\"Menu\">\n <section class=\"Menu-content\">\n @for (tableColumnAction of tableColumnActions(); track tableColumnAction.type) {\n <button\n class=\"Menu-button {{ tableColumnAction?.classToHover ?? '' }}\"\n [class.Menu-button--hidden]=\"\n !tableColumnAction.showWhen(buildDataStructure({ index }))\n \"\n (click)=\"\n tableActionFunction({\n tableColumnAction,\n tableColumns: tableColumns(),\n index,\n })\n \">\n <gld-icon size=\"tiny\" [icon]=\"tableColumnAction.icon\" />\n <span class=\"Menu-button-ellipsis\">{{ tableColumnAction.label }}</span>\n </button>\n }\n </section>\n </gld-tile> -->\n <!-- </gld-icon-button> -->\n }\n </section>\n }\n </section>\n }\n</article>\n\n<!-- Pagination -->\n@if (pagination()) {\n <section class=\"table-pagination\">\n <ng-content select=\"gld-table-pagination\" />\n </section>\n}\n", styles: ["@charset \"UTF-8\";:root{--gld-break-point--zero: 0;--gld-break-point--mobile: 320px;--gld-break-point--landscape: 576px;--gld-break-point--tablet: 768px;--gld-break-point--desktop: 1080px;--gld-break-point--extra-desktop: 1280px;--gld-font-size--heading-one: 36px;--gld-font-size--heading-two: 26px;--gld-font-size--heading-three: 20px;--gld-font-size--normal: 16px;--gld-font-size--small: 12px;--gld-font-size--tiny: 8px;--gld-font--poppins: \"Poppins\", sans-serif;--gld-radius--z: 0;--gld-radius--xxxs: 4px;--gld-radius--xxs: 6px;--gld-radius--xs: 8px;--gld-radius--s: 12px;--gld-radius--m: 16px;--gld-radius--l: 24px;--gld-radius--xl: 32px;--gld-radius--xxl: 40px;--gld-spacing--z: 0;--gld-spacing--xxxs: 4px;--gld-spacing--xxs: 8px;--gld-spacing--xs: 12px;--gld-spacing--s: 16px;--gld-spacing--m: 24px;--gld-spacing--l: 32px;--gld-spacing--xl: 48px;--gld-spacing--xxl: 70px;--gld-zindex--one: 1000;--gld-zindex--two: 2000;--gld-zindex--three: 3000;--gld-zindex--four: 4000;--gld-zindex--five: 5000;--gld-icon-size--large: 48px;--gld-icon-size--medium: 40px;--gld-icon-size--normal: 32px;--gld-icon-size--small: 24px;--gld-icon-size--tiny: 16px;--gld-red: #ef4444;--gld-red-transparent--005: rgba(239, 68, 68, .05);--gld-red-transparent--010: rgba(239, 68, 68, .1);--gld-red-transparent--020: rgba(239, 68, 68, .2);--gld-blue: #3c82f6;--gld-blue-transparent--005: rgba(60, 130, 246, .05);--gld-blue-transparent--010: rgba(60, 130, 246, .1);--gld-blue-transparent--020: rgba(60, 130, 246, .2);--gld-green: #12b981;--gld-green-transparent--005: rgba(18, 185, 129, .05);--gld-green-transparent--010: rgba(18, 185, 129, .1);--gld-green-transparent--020: rgba(18, 185, 129, .2);--gld-purple: #a855f7;--gld-purple-transparent--005: rgba(168, 85, 247, .05);--gld-purple-transparent--010: rgba(168, 85, 247, .1);--gld-purple-transparent--020: rgba(168, 85, 247, .2);--gld-purple-transparent--080: rgba(168, 85, 247, .8);--gld-mustard: #ebb305;--gld-mustard-transparent--005: rgba(235, 179, 5, .05);--gld-mustard-transparent--010: rgba(235, 179, 5, .1);--gld-mustard-transparent--020: rgba(235, 179, 5, .2);--gld-orange: #f97315;--gld-orange-transparent--005: rgba(249, 115, 21, .05);--gld-orange-transparent--010: rgba(249, 115, 21, .1);--gld-orange-transparent--020: rgba(249, 115, 21, .2);--gld-pink: #ec4899;--gld-pink-transparent--005: rgba(236, 72, 153, .05);--gld-pink-transparent--010: rgba(236, 72, 153, .1);--gld-pink-transparent--020: rgba(236, 72, 153, .2);--gld-gray: #c1c7e1;--gld-gray-transparent--010: rgba(193, 199, 225, .1);--gld-gray-transparent--020: rgba(193, 199, 225, .2);--gld-gray-transparent--030: rgba(193, 199, 225, .3);--gld-gray-transparent--040: rgba(193, 199, 225, .4);--gld-gray-transparent--050: rgba(193, 199, 225, .5);--gld-gray-transparent--060: rgba(193, 199, 225, .6);--gld-gray-transparent--070: rgba(193, 199, 225, .7);--gld-gray-transparent--080: rgba(193, 199, 225, .8);--gld-gray-transparent--090: rgba(193, 199, 225, .9);--gld-white: #fff;--gld-whitelight: #f9fafb;--gld-whitelight-transparent--090: rgba(249, 250, 251, .9);--gld-whitelight-transparent--080: rgba(249, 250, 251, .8);--gld-whitelight-transparent--070: rgba(249, 250, 251, .7);--gld-whitelight-transparent--060: rgba(249, 250, 251, .6);--gld-whitelight-transparent--030: rgba(249, 250, 251, .3);--gld-darkblue: #101827;--gld-darkblue-transparent--090: rgba(16, 24, 39, .9);--gld-darkblue-transparent--080: rgba(16, 24, 39, .8);--gld-darkblue-transparent--070: rgba(16, 24, 39, .7);--gld-darkblue-transparent--060: rgba(16, 24, 39, .6);--gld-darkblue-transparent--030: rgba(16, 24, 39, .3);--gld-darkblue-transparent--010: rgba(16, 24, 39, .1);--gld-border-size: 2px;--gld-animation-time--150: .15s;--gld-animation-time--250: .25s;--gld-animation-time--10s: 10s;--gld-line-height: 1.2;--gld-max-width: 1280px;--gld-navbar-height: 50px;--gld-sidebar-width: 250px}*,*:before,*:after{box-sizing:border-box;min-width:0}html,body{font-family:var(--font--poppins)}body{margin:0}h1,h2,h3,h4,h5,h6{text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}:host{width:100%}.table{--gld-color: light-dark(var(--darkblue), var(--whitelight));--gld-border-color: light-dark(var(--gray-transparent--040), var(--gray-transparent--020));--gld-border-radius: var(--radius--xxs);--gld-background: light-dark(var(--whitelight), var(--darkblue));--gld-background--with-transparent: light-dark( var(--gray-transparent--020), var(--gray-transparent--010) );--gld-column-actions-or-selects-width: 40px;--gld-column-actions-and-selects-width: 80px;--gld-header-height: 40px;--gld-cell-height: 40px;--gld-min-height: 100px;min-height:var(--gld-min-height);display:grid;grid-template-columns:1fr;position:relative;border:var(--gld-border-size) solid var(--gld-border-color);border-radius:var(--gld-border-radius);background:var(--background);overflow:hidden;overflow:auto;scrollbar-width:thin;scrollbar-color:light-dark(var(--gray-transparent--040),var(--gray-transparent--020)) transparent;scroll-behavior:smooth}.table::-webkit-scrollbar{width:var(--gld-spacing--xxs);height:var(--gld-spacing--xxs)}.table::-webkit-scrollbar-track{background:transparent}.table::-webkit-scrollbar-thumb{background:light-dark(var(--gray-transparent--040),var(--gray-transparent--020));will-change:background;transition:background var(--gld-animation-time--150) ease;border-radius:var(--gld-radius--s)}.table::-webkit-scrollbar-thumb:hover{background:light-dark(var(--gray-transparent--060),var(--gray-transparent--040))}.table-content{display:flex;flex-wrap:nowrap;overflow:auto;scrollbar-width:thin;scrollbar-color:light-dark(var(--gray-transparent--040),var(--gray-transparent--020)) transparent;scroll-behavior:smooth}.table-content::-webkit-scrollbar{width:var(--gld-spacing--xxs);height:var(--gld-spacing--xxs)}.table-content::-webkit-scrollbar-track{background:transparent}.table-content::-webkit-scrollbar-thumb{background:light-dark(var(--gray-transparent--040),var(--gray-transparent--020));will-change:background;transition:background var(--gld-animation-time--150) ease;border-radius:var(--gld-radius--s)}.table-content::-webkit-scrollbar-thumb:hover{background:light-dark(var(--gray-transparent--060),var(--gray-transparent--040))}.table-header,.table-cell{color:var(--color);font-family:var(--gld-font--poppins);padding:var(--gld-spacing--xxs) var(--gld-spacing--s);border-bottom:var(--gld-border-size) solid var(--gld-border-color)}.table-header-ellipsis,.table-cell-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table-header-ellipsis--hover,.table-cell-ellipsis--hover{cursor:pointer}.table-header{display:flex;align-items:center;font:600 var(--gld-font-size--small)/var(--gld-line-height) var(--gld-font--poppins);height:var(--gld-header-height);background:var(--gld-background--with-transparent)}.table-header.table-header--actions,.table-header.table-header--selects{justify-content:center}.table-header.table-header--actions.table-header--selects{justify-content:flex-start}.table-header--actions{background:var(--gld-background);border-left:var(--gld-border-size) solid var(--gld-border-color)}.table-header--actions:before{content:\"\";position:absolute;inset:0;background:var(--gld-background--with-transparent)}.table-cell{display:flex;align-items:center;height:var(--gld-cell-height);font:400 var(--gld-font-size--small)/var(--gld-line-height) var(--gld-font--poppins)}.table-cell:last-of-type{margin-bottom:0;border-bottom:none}.table-cell.table-cell--actions,.table-cell.table-cell--selects{justify-content:center;padding:0}.table-cell--actions{position:relative;display:flex;justify-content:center;align-items:center;gap:var(--gld-spacing--xxxs);background:var(--gld-background);border-left:var(--gld-border-size) solid var(--gld-border-color)}.table-column{flex:1 1 auto}.table-column--actions,.table-column--selects,.table-column--actions.table-column--selects{position:absolute;top:0;right:0}.table-column--actions.table-column--selects{width:var(--gld-column-actions-and-selects-width)}.table-column--actions,.table-column--selects{width:var(--gld-column-actions-or-selects-width)}.table-empty{width:100%;display:flex;color:var(--gld-color);background:var(--gld-background--with-transparent);padding:var(--gld-spacing--xs)}.table-empty p{font:400 var(--gld-font-size--normal)/var(--gld-line-height) var(--gld-font--poppins);text-transform:lowercase;margin:auto}.table-empty p:first-letter{text-transform:uppercase}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DropdownButtonComponent, selector: "gld-dropdown-button", inputs: ["value", "icon", "iconSize", "iconSpace", "moveTopToBottom", "moveLeftToRight", "direction"], outputs: ["changeValue"] }, { kind: "component", type: DropdownMenuComponent, selector: "gld-dropdown-menu", inputs: ["name", "type", "color", "size", "icon", "iconSize", "moveTopToBottom", "moveLeftToRight", "disabled", "full", "direction", "background", "selected", "initialValue"], outputs: ["changeValue", "changeFocus"] }, { kind: "component", type: LoaderComponent, selector: "gld-loader", inputs: ["loading", "background", "radius", "minHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1416
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: TableComponent, isStandalone: true, selector: "gld-table", inputs: { tableColumns: { classPropertyName: "tableColumns", publicName: "tableColumns", isSignal: true, isRequired: true, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, tableHeight: { classPropertyName: "tableHeight", publicName: "tableHeight", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, selects: { classPropertyName: "selects", publicName: "selects", isSignal: true, isRequired: false, transformFunction: null }, selectsAll: { classPropertyName: "selectsAll", publicName: "selectsAll", isSignal: true, isRequired: false, transformFunction: null }, search: { classPropertyName: "search", publicName: "search", isSignal: true, isRequired: false, transformFunction: null }, pagination: { classPropertyName: "pagination", publicName: "pagination", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { tableColumnAction: "tableColumnAction" }, ngImport: i0, template: "<!-- Search -->\n@if (search()) {\n <section class=\"table-search\">\n <ng-content select=\"gld-table-search\" />\n </section>\n}\n\n<!-- Table -->\n<article\n class=\"table\"\n [class.table--empty]=\"!tableColumnsToShow().length\"\n [style.height]=\"tableHeight()\">\n <!-- Table Content -->\n <section\n class=\"table-content\"\n [class.table-content--actions]=\"tableColumnActions().length\"\n [class.table-content--selects]=\"selects()\">\n <!-- Loading -->\n @if (loading()) {\n <gld-loader loading background minHeight=\"100px\" />\n } @else {\n <!-- Table Columns -->\n @for (tableColumn of tableColumnsToShow(); track tableColumn) {\n <section\n class=\"table-column\"\n [style.flexBasis]=\"tableColumn.width\"\n [style.flexShrink]=\"tableColumn.width === 'auto' ? '1' : '0'\"\n [style.flexGrow]=\"tableColumn.width === 'auto' ? '1' : '0'\"\n [style.minWidth]=\"tableColumn.minWidth\"\n [style.maxWidth]=\"tableColumn.maxWidth\">\n <section class=\"table-header\">\n <span class=\"table-header-ellipsis\">{{ tableColumn.label }}</span>\n </section>\n @for (value of tableColumn.values; track $index) {\n <section\n class=\"table-cell\"\n [style.justifyContent]=\"tableColumn.justify\"\n [style.textAlign]=\"tableColumn.justify\">\n @if (tableColumn.transform(value) !== undefined) {\n @switch (true) {\n @case (tableColumn.template !== undefined) {\n <ng-container\n [ngTemplateOutlet]=\"tableColumn.template\"\n [ngTemplateOutletContext]=\"{ value: tableColumn.transform(value) }\" />\n }\n @default {\n <span class=\"table-cell-ellipsis\">{{ tableColumn.transform(value) }}</span>\n }\n }\n } @else {\n <span>-</span>\n }\n </section>\n }\n </section>\n } @empty {\n <!-- Empty -->\n <section class=\"table-empty\">\n <p>{{ emptyMessage() ? emptyMessage() : 'We have not data to show yet!' }}</p>\n </section>\n }\n }\n </section>\n\n <!-- Table Actions -->\n @if ((tableColumnActions().length || selects()) && !loading() && tableColumnsToShow().length) {\n <section\n class=\"table-column\"\n [class.table-column--actions]=\"tableColumnActions().length\"\n [class.table-column--selects]=\"selects()\">\n <!-- Header -->\n <section\n class=\"table-header\"\n [class.table-header--actions]=\"tableColumnActions().length\"\n [class.table-header--selects]=\"selects()\">\n <!-- Select All Checkbox -->\n @if (selectsAll()) {\n <!-- <mat-checkbox\n color=\"primary\"\n matTooltip=\"Todo\"\n matTooltipClass=\"Tooltip\"\n class=\"Checkbox\"\n [checked]=\"\n dragAndDropColumnSelected().length === dragAndDropColumns().at(0)?.values?.length\n \"\n [indeterminate]=\"\n !!dragAndDropColumnSelected().length &&\n dragAndDropColumnSelected().length !== dragAndDropColumns().at(0)?.values?.length\n \"\n (change)=\"onSelectOrUnselectAll($event, dragAndDropColumns())\"\n /> -->\n }\n </section>\n @for (value of tableColumnsToShow().at(0)?.values; track $index; let index = $index) {\n <!-- Cell -->\n <section class=\"table-cell table-cell--actions\">\n <!-- Select Checkbox -->\n @if (selects()) {\n <!-- <mat-checkbox\n color=\"primary\"\n class=\"Checkbox\"\n matTooltip=\"Seleccionar\"\n matTooltipClass=\"Tooltip\"\n [checked]=\"isSelected(dragAndDropColumns(), index)\"\n (change)=\"onSelect($event, dragAndDropColumns(), index)\" /> -->\n }\n @if (tableColumnActions()) {\n <!-- Dropdown Menu -->\n <gld-dropdown-menu\n background\n name=\"more button of table cell\"\n type=\"iconButton\"\n color=\"blue\"\n iconSize=\"small\"\n direction=\"left\"\n [icon]=\"Icons.more2Fill\"\n (changeValue)=\"\n tableActionFunction({\n tableColumnActionAsEvent: $event,\n tableColumns: tableColumns(),\n index,\n })\n \">\n @for (tableColumnAction of tableColumnActions(); track tableColumnAction.type) {\n <gld-dropdown-button\n [value]=\"tableColumnAction\"\n [icon]=\"tableColumnAction.icon\"\n iconSize=\"tiny\">\n {{ tableColumnAction.label }}\n </gld-dropdown-button>\n }\n </gld-dropdown-menu>\n <!-- <gld-icon-button\n background\n name=\"more button of table cell\"\n iconSize=\"small\"\n [icon]=\"Icons.more2Fill\"> -->\n <!-- <gld-tile color=\"blue-to-green\" class=\"Menu\">\n <section class=\"Menu-content\">\n @for (tableColumnAction of tableColumnActions(); track tableColumnAction.type) {\n <button\n class=\"Menu-button {{ tableColumnAction?.classToHover ?? '' }}\"\n [class.Menu-button--hidden]=\"\n !tableColumnAction.showWhen(buildDataStructure({ index }))\n \"\n (click)=\"\n tableActionFunction({\n tableColumnAction,\n tableColumns: tableColumns(),\n index,\n })\n \">\n <gld-icon size=\"tiny\" [icon]=\"tableColumnAction.icon\" />\n <span class=\"Menu-button-ellipsis\">{{ tableColumnAction.label }}</span>\n </button>\n }\n </section>\n </gld-tile> -->\n <!-- </gld-icon-button> -->\n }\n </section>\n }\n </section>\n }\n</article>\n\n<!-- Pagination -->\n@if (pagination()) {\n <section class=\"table-pagination\">\n <ng-content select=\"gld-table-pagination\" />\n </section>\n}\n\n", styles: ["@charset \"UTF-8\";:root{--gld-break-point--zero: 0;--gld-break-point--mobile: 320px;--gld-break-point--landscape: 576px;--gld-break-point--tablet: 768px;--gld-break-point--desktop: 1080px;--gld-break-point--extra-desktop: 1280px;--gld-font-size--heading-one: 36px;--gld-font-size--heading-two: 26px;--gld-font-size--heading-three: 20px;--gld-font-size--normal: 16px;--gld-font-size--small: 12px;--gld-font-size--tiny: 8px;--gld-font--poppins: \"Poppins\", sans-serif;--gld-radius--z: 0;--gld-radius--xxxs: 4px;--gld-radius--xxs: 6px;--gld-radius--xs: 8px;--gld-radius--s: 12px;--gld-radius--m: 16px;--gld-radius--l: 24px;--gld-radius--xl: 32px;--gld-radius--xxl: 40px;--gld-spacing--z: 0;--gld-spacing--xxxs: 4px;--gld-spacing--xxs: 8px;--gld-spacing--xs: 12px;--gld-spacing--s: 16px;--gld-spacing--m: 24px;--gld-spacing--l: 32px;--gld-spacing--xl: 48px;--gld-spacing--xxl: 70px;--gld-zindex--one: 1000;--gld-zindex--two: 2000;--gld-zindex--three: 3000;--gld-zindex--four: 4000;--gld-zindex--five: 5000;--gld-icon-size--large: 48px;--gld-icon-size--medium: 40px;--gld-icon-size--normal: 32px;--gld-icon-size--small: 24px;--gld-icon-size--tiny: 16px;--gld-red: #ef4444;--gld-red-transparent--005: rgba(239, 68, 68, .05);--gld-red-transparent--010: rgba(239, 68, 68, .1);--gld-red-transparent--020: rgba(239, 68, 68, .2);--gld-blue: #3c82f6;--gld-blue-transparent--005: rgba(60, 130, 246, .05);--gld-blue-transparent--010: rgba(60, 130, 246, .1);--gld-blue-transparent--020: rgba(60, 130, 246, .2);--gld-green: #12b981;--gld-green-transparent--005: rgba(18, 185, 129, .05);--gld-green-transparent--010: rgba(18, 185, 129, .1);--gld-green-transparent--020: rgba(18, 185, 129, .2);--gld-purple: #a855f7;--gld-purple-transparent--005: rgba(168, 85, 247, .05);--gld-purple-transparent--010: rgba(168, 85, 247, .1);--gld-purple-transparent--020: rgba(168, 85, 247, .2);--gld-purple-transparent--080: rgba(168, 85, 247, .8);--gld-mustard: #ebb305;--gld-mustard-transparent--005: rgba(235, 179, 5, .05);--gld-mustard-transparent--010: rgba(235, 179, 5, .1);--gld-mustard-transparent--020: rgba(235, 179, 5, .2);--gld-orange: #f97315;--gld-orange-transparent--005: rgba(249, 115, 21, .05);--gld-orange-transparent--010: rgba(249, 115, 21, .1);--gld-orange-transparent--020: rgba(249, 115, 21, .2);--gld-pink: #ec4899;--gld-pink-transparent--005: rgba(236, 72, 153, .05);--gld-pink-transparent--010: rgba(236, 72, 153, .1);--gld-pink-transparent--020: rgba(236, 72, 153, .2);--gld-gray: #c1c7e1;--gld-gray-transparent--010: rgba(193, 199, 225, .1);--gld-gray-transparent--020: rgba(193, 199, 225, .2);--gld-gray-transparent--030: rgba(193, 199, 225, .3);--gld-gray-transparent--040: rgba(193, 199, 225, .4);--gld-gray-transparent--050: rgba(193, 199, 225, .5);--gld-gray-transparent--060: rgba(193, 199, 225, .6);--gld-gray-transparent--070: rgba(193, 199, 225, .7);--gld-gray-transparent--080: rgba(193, 199, 225, .8);--gld-gray-transparent--090: rgba(193, 199, 225, .9);--gld-white: #fff;--gld-whitelight: #f9fafb;--gld-whitelight-transparent--090: rgba(249, 250, 251, .9);--gld-whitelight-transparent--080: rgba(249, 250, 251, .8);--gld-whitelight-transparent--070: rgba(249, 250, 251, .7);--gld-whitelight-transparent--060: rgba(249, 250, 251, .6);--gld-whitelight-transparent--030: rgba(249, 250, 251, .3);--gld-darkblue: #101827;--gld-darkblue-transparent--090: rgba(16, 24, 39, .9);--gld-darkblue-transparent--080: rgba(16, 24, 39, .8);--gld-darkblue-transparent--070: rgba(16, 24, 39, .7);--gld-darkblue-transparent--060: rgba(16, 24, 39, .6);--gld-darkblue-transparent--030: rgba(16, 24, 39, .3);--gld-darkblue-transparent--010: rgba(16, 24, 39, .1);--gld-border-size: 2px;--gld-animation-time--150: .15s;--gld-animation-time--250: .25s;--gld-animation-time--10s: 10s;--gld-line-height: 1.2;--gld-max-width: 1280px;--gld-navbar-height: 50px;--gld-sidebar-width: 250px}*,*:before,*:after{box-sizing:border-box;min-width:0}html,body{font-family:var(--font--poppins)}body{margin:0}h1,h2,h3,h4,h5,h6{text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}:host{width:100%}.table{--gld-color: light-dark(var(--darkblue), var(--whitelight));--gld-border-color: light-dark(var(--gray-transparent--040), var(--gray-transparent--020));--gld-border-radius: var(--radius--xxs);--gld-background: light-dark(var(--whitelight), var(--darkblue));--gld-background--with-transparent: light-dark( var(--gray-transparent--020), var(--gray-transparent--010) );--gld-column-actions-or-selects-width: 40px;--gld-column-actions-and-selects-width: 80px;--gld-header-height: 40px;--gld-cell-height: 40px;--gld-min-height: 100px;min-height:var(--gld-min-height);display:grid;grid-template-columns:1fr;position:relative;border:var(--gld-border-size) solid var(--gld-border-color);border-radius:var(--gld-border-radius);background:var(--background);overflow:hidden;overflow:auto;scrollbar-width:thin;scrollbar-color:light-dark(var(--gray-transparent--040),var(--gray-transparent--020)) transparent;scroll-behavior:smooth}.table::-webkit-scrollbar{width:var(--gld-spacing--xxs);height:var(--gld-spacing--xxs)}.table::-webkit-scrollbar-track{background:transparent}.table::-webkit-scrollbar-thumb{background:light-dark(var(--gray-transparent--040),var(--gray-transparent--020));will-change:background;transition:background var(--gld-animation-time--150) ease;border-radius:var(--gld-radius--s)}.table::-webkit-scrollbar-thumb:hover{background:light-dark(var(--gray-transparent--060),var(--gray-transparent--040))}.table-content{display:flex;flex-wrap:nowrap;overflow:auto;scrollbar-width:thin;scrollbar-color:light-dark(var(--gray-transparent--040),var(--gray-transparent--020)) transparent;scroll-behavior:smooth}.table-content::-webkit-scrollbar{width:var(--gld-spacing--xxs);height:var(--gld-spacing--xxs)}.table-content::-webkit-scrollbar-track{background:transparent}.table-content::-webkit-scrollbar-thumb{background:light-dark(var(--gray-transparent--040),var(--gray-transparent--020));will-change:background;transition:background var(--gld-animation-time--150) ease;border-radius:var(--gld-radius--s)}.table-content::-webkit-scrollbar-thumb:hover{background:light-dark(var(--gray-transparent--060),var(--gray-transparent--040))}.table-header,.table-cell{color:var(--color);font-family:var(--gld-font--poppins);padding:var(--gld-spacing--xxs) var(--gld-spacing--s);border-bottom:var(--gld-border-size) solid var(--gld-border-color)}.table-header-ellipsis,.table-cell-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table-header-ellipsis--hover,.table-cell-ellipsis--hover{cursor:pointer}.table-header{display:flex;align-items:center;font:600 var(--gld-font-size--small)/var(--gld-line-height) var(--gld-font--poppins);height:var(--gld-header-height);background:var(--gld-background--with-transparent)}.table-header.table-header--actions,.table-header.table-header--selects{justify-content:center}.table-header.table-header--actions.table-header--selects{justify-content:flex-start}.table-header--actions{background:var(--gld-background);border-left:var(--gld-border-size) solid var(--gld-border-color)}.table-header--actions:before{content:\"\";position:absolute;inset:0;background:var(--gld-background--with-transparent)}.table-cell{display:flex;align-items:center;height:var(--gld-cell-height);font:400 var(--gld-font-size--small)/var(--gld-line-height) var(--gld-font--poppins)}.table-cell:last-of-type{margin-bottom:0;border-bottom:none}.table-cell.table-cell--actions,.table-cell.table-cell--selects{justify-content:center;padding:0}.table-cell--actions{position:relative;display:flex;justify-content:center;align-items:center;gap:var(--gld-spacing--xxxs);background:var(--gld-background);border-left:var(--gld-border-size) solid var(--gld-border-color)}.table-column{flex:1 1 auto}.table-column--actions,.table-column--selects,.table-column--actions.table-column--selects{position:absolute;top:0;right:0}.table-column--actions.table-column--selects{width:var(--gld-column-actions-and-selects-width)}.table-column--actions,.table-column--selects{width:var(--gld-column-actions-or-selects-width)}.table-empty{width:100%;display:flex;color:var(--gld-color);background:var(--gld-background--with-transparent);padding:var(--gld-spacing--xs)}.table-empty p{font:400 var(--gld-font-size--normal)/var(--gld-line-height) var(--gld-font--poppins);text-transform:lowercase;margin:auto}.table-empty p:first-letter{text-transform:uppercase}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DropdownButtonComponent, selector: "gld-dropdown-button", inputs: ["value", "icon", "iconSize", "iconSpace", "moveTopToBottom", "moveLeftToRight", "direction"], outputs: ["changeValue"] }, { kind: "component", type: DropdownMenuComponent, selector: "gld-dropdown-menu", inputs: ["name", "type", "color", "size", "icon", "iconSize", "moveTopToBottom", "moveLeftToRight", "disabled", "full", "direction", "background", "selected", "initialValue"], outputs: ["changeValue", "changeFocus"] }, { kind: "component", type: LoaderComponent, selector: "gld-loader", inputs: ["loading", "background", "radius", "minHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1417
1417
  }
1418
1418
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: TableComponent, decorators: [{
1419
1419
  type: Component,
1420
- args: [{ selector: 'gld-table', standalone: true, imports: [NgTemplateOutlet, ...components], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Search -->\n@if (search()) {\n <section class=\"table-search\">\n <ng-content select=\"gld-table-search\" />\n </section>\n}\n\n<!-- Table -->\n<article\n class=\"table\"\n [class.table--empty]=\"!tableColumnsToShow().length\"\n [style.height]=\"tableHeight()\">\n <!-- Table Content -->\n <section\n class=\"table-content\"\n [class.table-content--actions]=\"tableColumnActions().length\"\n [class.table-content--selects]=\"selects()\">\n <!-- Loading -->\n @if (loading()) {\n <gld-loader loading background minHeight=\"100px\" />\n } @else {\n <!-- Table Columns -->\n @for (tableColumn of tableColumnsToShow(); track tableColumn) {\n <section\n class=\"table-column\"\n [style.flexBasis]=\"tableColumn.width\"\n [style.flexShrink]=\"tableColumn.width === 'auto' ? '1' : '0'\"\n [style.flexGrow]=\"tableColumn.width === 'auto' ? '1' : '0'\"\n [style.minWidth]=\"tableColumn.minWidth\"\n [style.maxWidth]=\"tableColumn.maxWidth\">\n <section class=\"table-header\">\n <span class=\"table-header-ellipsis\">{{ tableColumn.label }}</span>\n </section>\n @for (value of tableColumn.values; track $index) {\n <section\n class=\"table-cell\"\n [style.justifyContent]=\"tableColumn.justify\"\n [style.textAlign]=\"tableColumn.justify\">\n @if (tableColumn.transform(value) !== undefined) {\n @switch (true) {\n @case (tableColumn.template !== undefined) {\n <ng-container\n [ngTemplateOutlet]=\"tableColumn.template\"\n [ngTemplateOutletContext]=\"{ value: tableColumn.transform(value) }\" />\n }\n @default {\n <span class=\"table-cell-ellipsis\">{{ tableColumn.transform(value) }}</span>\n }\n }\n } @else {\n <span>-</span>\n }\n </section>\n }\n </section>\n } @empty {\n <!-- Empty -->\n <section class=\"table-empty\">\n <p>{{ emptyMessage() ? emptyMessage() : 'We have not data to show yet!' }}</p>\n </section>\n }\n }\n </section>\n\n <!-- Table Actions -->\n @if ((tableColumnActions().length || selects()) && !loading() && tableColumnsToShow().length) {\n <section\n class=\"table-column\"\n [class.table-column--actions]=\"tableColumnActions().length\"\n [class.table-column--selects]=\"selects()\">\n <!-- Header -->\n <section\n class=\"table-header\"\n [class.table-header--actions]=\"tableColumnActions().length\"\n [class.table-header--selects]=\"selects()\">\n <!-- Select All Checkbox -->\n @if (selectsAll()) {\n <!-- <mat-checkbox\n color=\"primary\"\n matTooltip=\"Todo\"\n matTooltipClass=\"Tooltip\"\n class=\"Checkbox\"\n [checked]=\"\n dragAndDropColumnSelected().length === dragAndDropColumns().at(0)?.values?.length\n \"\n [indeterminate]=\"\n !!dragAndDropColumnSelected().length &&\n dragAndDropColumnSelected().length !== dragAndDropColumns().at(0)?.values?.length\n \"\n (change)=\"onSelectOrUnselectAll($event, dragAndDropColumns())\"\n /> -->\n }\n </section>\n @for (value of tableColumnsToShow().at(0)?.values; track $index; let index = $index) {\n <!-- Cell -->\n <section class=\"table-cell table-cell--actions\">\n <!-- Select Checkbox -->\n @if (selects()) {\n <!-- <mat-checkbox\n color=\"primary\"\n class=\"Checkbox\"\n matTooltip=\"Seleccionar\"\n matTooltipClass=\"Tooltip\"\n [checked]=\"isSelected(dragAndDropColumns(), index)\"\n (change)=\"onSelect($event, dragAndDropColumns(), index)\" /> -->\n }\n @if (tableColumnActions()) {\n <!-- Dropdown Menu -->\n <gld-dropdown-menu\n background\n name=\"more button of table cell\"\n type=\"iconButton\"\n iconSize=\"small\"\n direction=\"left\"\n [icon]=\"Icons.more2Fill\"\n (changeValue)=\"\n tableActionFunction({\n tableColumnActionAsEvent: $event,\n tableColumns: tableColumns(),\n index,\n })\n \">\n @for (tableColumnAction of tableColumnActions(); track tableColumnAction.type) {\n <gld-dropdown-button\n [value]=\"tableColumnAction\"\n [icon]=\"tableColumnAction.icon\"\n iconSize=\"tiny\">\n {{ tableColumnAction.label }}\n </gld-dropdown-button>\n }\n </gld-dropdown-menu>\n <!-- <gld-icon-button\n background\n name=\"more button of table cell\"\n iconSize=\"small\"\n [icon]=\"Icons.more2Fill\"> -->\n <!-- <gld-tile color=\"blue-to-green\" class=\"Menu\">\n <section class=\"Menu-content\">\n @for (tableColumnAction of tableColumnActions(); track tableColumnAction.type) {\n <button\n class=\"Menu-button {{ tableColumnAction?.classToHover ?? '' }}\"\n [class.Menu-button--hidden]=\"\n !tableColumnAction.showWhen(buildDataStructure({ index }))\n \"\n (click)=\"\n tableActionFunction({\n tableColumnAction,\n tableColumns: tableColumns(),\n index,\n })\n \">\n <gld-icon size=\"tiny\" [icon]=\"tableColumnAction.icon\" />\n <span class=\"Menu-button-ellipsis\">{{ tableColumnAction.label }}</span>\n </button>\n }\n </section>\n </gld-tile> -->\n <!-- </gld-icon-button> -->\n }\n </section>\n }\n </section>\n }\n</article>\n\n<!-- Pagination -->\n@if (pagination()) {\n <section class=\"table-pagination\">\n <ng-content select=\"gld-table-pagination\" />\n </section>\n}\n", styles: ["@charset \"UTF-8\";:root{--gld-break-point--zero: 0;--gld-break-point--mobile: 320px;--gld-break-point--landscape: 576px;--gld-break-point--tablet: 768px;--gld-break-point--desktop: 1080px;--gld-break-point--extra-desktop: 1280px;--gld-font-size--heading-one: 36px;--gld-font-size--heading-two: 26px;--gld-font-size--heading-three: 20px;--gld-font-size--normal: 16px;--gld-font-size--small: 12px;--gld-font-size--tiny: 8px;--gld-font--poppins: \"Poppins\", sans-serif;--gld-radius--z: 0;--gld-radius--xxxs: 4px;--gld-radius--xxs: 6px;--gld-radius--xs: 8px;--gld-radius--s: 12px;--gld-radius--m: 16px;--gld-radius--l: 24px;--gld-radius--xl: 32px;--gld-radius--xxl: 40px;--gld-spacing--z: 0;--gld-spacing--xxxs: 4px;--gld-spacing--xxs: 8px;--gld-spacing--xs: 12px;--gld-spacing--s: 16px;--gld-spacing--m: 24px;--gld-spacing--l: 32px;--gld-spacing--xl: 48px;--gld-spacing--xxl: 70px;--gld-zindex--one: 1000;--gld-zindex--two: 2000;--gld-zindex--three: 3000;--gld-zindex--four: 4000;--gld-zindex--five: 5000;--gld-icon-size--large: 48px;--gld-icon-size--medium: 40px;--gld-icon-size--normal: 32px;--gld-icon-size--small: 24px;--gld-icon-size--tiny: 16px;--gld-red: #ef4444;--gld-red-transparent--005: rgba(239, 68, 68, .05);--gld-red-transparent--010: rgba(239, 68, 68, .1);--gld-red-transparent--020: rgba(239, 68, 68, .2);--gld-blue: #3c82f6;--gld-blue-transparent--005: rgba(60, 130, 246, .05);--gld-blue-transparent--010: rgba(60, 130, 246, .1);--gld-blue-transparent--020: rgba(60, 130, 246, .2);--gld-green: #12b981;--gld-green-transparent--005: rgba(18, 185, 129, .05);--gld-green-transparent--010: rgba(18, 185, 129, .1);--gld-green-transparent--020: rgba(18, 185, 129, .2);--gld-purple: #a855f7;--gld-purple-transparent--005: rgba(168, 85, 247, .05);--gld-purple-transparent--010: rgba(168, 85, 247, .1);--gld-purple-transparent--020: rgba(168, 85, 247, .2);--gld-purple-transparent--080: rgba(168, 85, 247, .8);--gld-mustard: #ebb305;--gld-mustard-transparent--005: rgba(235, 179, 5, .05);--gld-mustard-transparent--010: rgba(235, 179, 5, .1);--gld-mustard-transparent--020: rgba(235, 179, 5, .2);--gld-orange: #f97315;--gld-orange-transparent--005: rgba(249, 115, 21, .05);--gld-orange-transparent--010: rgba(249, 115, 21, .1);--gld-orange-transparent--020: rgba(249, 115, 21, .2);--gld-pink: #ec4899;--gld-pink-transparent--005: rgba(236, 72, 153, .05);--gld-pink-transparent--010: rgba(236, 72, 153, .1);--gld-pink-transparent--020: rgba(236, 72, 153, .2);--gld-gray: #c1c7e1;--gld-gray-transparent--010: rgba(193, 199, 225, .1);--gld-gray-transparent--020: rgba(193, 199, 225, .2);--gld-gray-transparent--030: rgba(193, 199, 225, .3);--gld-gray-transparent--040: rgba(193, 199, 225, .4);--gld-gray-transparent--050: rgba(193, 199, 225, .5);--gld-gray-transparent--060: rgba(193, 199, 225, .6);--gld-gray-transparent--070: rgba(193, 199, 225, .7);--gld-gray-transparent--080: rgba(193, 199, 225, .8);--gld-gray-transparent--090: rgba(193, 199, 225, .9);--gld-white: #fff;--gld-whitelight: #f9fafb;--gld-whitelight-transparent--090: rgba(249, 250, 251, .9);--gld-whitelight-transparent--080: rgba(249, 250, 251, .8);--gld-whitelight-transparent--070: rgba(249, 250, 251, .7);--gld-whitelight-transparent--060: rgba(249, 250, 251, .6);--gld-whitelight-transparent--030: rgba(249, 250, 251, .3);--gld-darkblue: #101827;--gld-darkblue-transparent--090: rgba(16, 24, 39, .9);--gld-darkblue-transparent--080: rgba(16, 24, 39, .8);--gld-darkblue-transparent--070: rgba(16, 24, 39, .7);--gld-darkblue-transparent--060: rgba(16, 24, 39, .6);--gld-darkblue-transparent--030: rgba(16, 24, 39, .3);--gld-darkblue-transparent--010: rgba(16, 24, 39, .1);--gld-border-size: 2px;--gld-animation-time--150: .15s;--gld-animation-time--250: .25s;--gld-animation-time--10s: 10s;--gld-line-height: 1.2;--gld-max-width: 1280px;--gld-navbar-height: 50px;--gld-sidebar-width: 250px}*,*:before,*:after{box-sizing:border-box;min-width:0}html,body{font-family:var(--font--poppins)}body{margin:0}h1,h2,h3,h4,h5,h6{text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}:host{width:100%}.table{--gld-color: light-dark(var(--darkblue), var(--whitelight));--gld-border-color: light-dark(var(--gray-transparent--040), var(--gray-transparent--020));--gld-border-radius: var(--radius--xxs);--gld-background: light-dark(var(--whitelight), var(--darkblue));--gld-background--with-transparent: light-dark( var(--gray-transparent--020), var(--gray-transparent--010) );--gld-column-actions-or-selects-width: 40px;--gld-column-actions-and-selects-width: 80px;--gld-header-height: 40px;--gld-cell-height: 40px;--gld-min-height: 100px;min-height:var(--gld-min-height);display:grid;grid-template-columns:1fr;position:relative;border:var(--gld-border-size) solid var(--gld-border-color);border-radius:var(--gld-border-radius);background:var(--background);overflow:hidden;overflow:auto;scrollbar-width:thin;scrollbar-color:light-dark(var(--gray-transparent--040),var(--gray-transparent--020)) transparent;scroll-behavior:smooth}.table::-webkit-scrollbar{width:var(--gld-spacing--xxs);height:var(--gld-spacing--xxs)}.table::-webkit-scrollbar-track{background:transparent}.table::-webkit-scrollbar-thumb{background:light-dark(var(--gray-transparent--040),var(--gray-transparent--020));will-change:background;transition:background var(--gld-animation-time--150) ease;border-radius:var(--gld-radius--s)}.table::-webkit-scrollbar-thumb:hover{background:light-dark(var(--gray-transparent--060),var(--gray-transparent--040))}.table-content{display:flex;flex-wrap:nowrap;overflow:auto;scrollbar-width:thin;scrollbar-color:light-dark(var(--gray-transparent--040),var(--gray-transparent--020)) transparent;scroll-behavior:smooth}.table-content::-webkit-scrollbar{width:var(--gld-spacing--xxs);height:var(--gld-spacing--xxs)}.table-content::-webkit-scrollbar-track{background:transparent}.table-content::-webkit-scrollbar-thumb{background:light-dark(var(--gray-transparent--040),var(--gray-transparent--020));will-change:background;transition:background var(--gld-animation-time--150) ease;border-radius:var(--gld-radius--s)}.table-content::-webkit-scrollbar-thumb:hover{background:light-dark(var(--gray-transparent--060),var(--gray-transparent--040))}.table-header,.table-cell{color:var(--color);font-family:var(--gld-font--poppins);padding:var(--gld-spacing--xxs) var(--gld-spacing--s);border-bottom:var(--gld-border-size) solid var(--gld-border-color)}.table-header-ellipsis,.table-cell-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table-header-ellipsis--hover,.table-cell-ellipsis--hover{cursor:pointer}.table-header{display:flex;align-items:center;font:600 var(--gld-font-size--small)/var(--gld-line-height) var(--gld-font--poppins);height:var(--gld-header-height);background:var(--gld-background--with-transparent)}.table-header.table-header--actions,.table-header.table-header--selects{justify-content:center}.table-header.table-header--actions.table-header--selects{justify-content:flex-start}.table-header--actions{background:var(--gld-background);border-left:var(--gld-border-size) solid var(--gld-border-color)}.table-header--actions:before{content:\"\";position:absolute;inset:0;background:var(--gld-background--with-transparent)}.table-cell{display:flex;align-items:center;height:var(--gld-cell-height);font:400 var(--gld-font-size--small)/var(--gld-line-height) var(--gld-font--poppins)}.table-cell:last-of-type{margin-bottom:0;border-bottom:none}.table-cell.table-cell--actions,.table-cell.table-cell--selects{justify-content:center;padding:0}.table-cell--actions{position:relative;display:flex;justify-content:center;align-items:center;gap:var(--gld-spacing--xxxs);background:var(--gld-background);border-left:var(--gld-border-size) solid var(--gld-border-color)}.table-column{flex:1 1 auto}.table-column--actions,.table-column--selects,.table-column--actions.table-column--selects{position:absolute;top:0;right:0}.table-column--actions.table-column--selects{width:var(--gld-column-actions-and-selects-width)}.table-column--actions,.table-column--selects{width:var(--gld-column-actions-or-selects-width)}.table-empty{width:100%;display:flex;color:var(--gld-color);background:var(--gld-background--with-transparent);padding:var(--gld-spacing--xs)}.table-empty p{font:400 var(--gld-font-size--normal)/var(--gld-line-height) var(--gld-font--poppins);text-transform:lowercase;margin:auto}.table-empty p:first-letter{text-transform:uppercase}\n"] }]
1420
+ args: [{ selector: 'gld-table', standalone: true, imports: [NgTemplateOutlet, ...components], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- Search -->\n@if (search()) {\n <section class=\"table-search\">\n <ng-content select=\"gld-table-search\" />\n </section>\n}\n\n<!-- Table -->\n<article\n class=\"table\"\n [class.table--empty]=\"!tableColumnsToShow().length\"\n [style.height]=\"tableHeight()\">\n <!-- Table Content -->\n <section\n class=\"table-content\"\n [class.table-content--actions]=\"tableColumnActions().length\"\n [class.table-content--selects]=\"selects()\">\n <!-- Loading -->\n @if (loading()) {\n <gld-loader loading background minHeight=\"100px\" />\n } @else {\n <!-- Table Columns -->\n @for (tableColumn of tableColumnsToShow(); track tableColumn) {\n <section\n class=\"table-column\"\n [style.flexBasis]=\"tableColumn.width\"\n [style.flexShrink]=\"tableColumn.width === 'auto' ? '1' : '0'\"\n [style.flexGrow]=\"tableColumn.width === 'auto' ? '1' : '0'\"\n [style.minWidth]=\"tableColumn.minWidth\"\n [style.maxWidth]=\"tableColumn.maxWidth\">\n <section class=\"table-header\">\n <span class=\"table-header-ellipsis\">{{ tableColumn.label }}</span>\n </section>\n @for (value of tableColumn.values; track $index) {\n <section\n class=\"table-cell\"\n [style.justifyContent]=\"tableColumn.justify\"\n [style.textAlign]=\"tableColumn.justify\">\n @if (tableColumn.transform(value) !== undefined) {\n @switch (true) {\n @case (tableColumn.template !== undefined) {\n <ng-container\n [ngTemplateOutlet]=\"tableColumn.template\"\n [ngTemplateOutletContext]=\"{ value: tableColumn.transform(value) }\" />\n }\n @default {\n <span class=\"table-cell-ellipsis\">{{ tableColumn.transform(value) }}</span>\n }\n }\n } @else {\n <span>-</span>\n }\n </section>\n }\n </section>\n } @empty {\n <!-- Empty -->\n <section class=\"table-empty\">\n <p>{{ emptyMessage() ? emptyMessage() : 'We have not data to show yet!' }}</p>\n </section>\n }\n }\n </section>\n\n <!-- Table Actions -->\n @if ((tableColumnActions().length || selects()) && !loading() && tableColumnsToShow().length) {\n <section\n class=\"table-column\"\n [class.table-column--actions]=\"tableColumnActions().length\"\n [class.table-column--selects]=\"selects()\">\n <!-- Header -->\n <section\n class=\"table-header\"\n [class.table-header--actions]=\"tableColumnActions().length\"\n [class.table-header--selects]=\"selects()\">\n <!-- Select All Checkbox -->\n @if (selectsAll()) {\n <!-- <mat-checkbox\n color=\"primary\"\n matTooltip=\"Todo\"\n matTooltipClass=\"Tooltip\"\n class=\"Checkbox\"\n [checked]=\"\n dragAndDropColumnSelected().length === dragAndDropColumns().at(0)?.values?.length\n \"\n [indeterminate]=\"\n !!dragAndDropColumnSelected().length &&\n dragAndDropColumnSelected().length !== dragAndDropColumns().at(0)?.values?.length\n \"\n (change)=\"onSelectOrUnselectAll($event, dragAndDropColumns())\"\n /> -->\n }\n </section>\n @for (value of tableColumnsToShow().at(0)?.values; track $index; let index = $index) {\n <!-- Cell -->\n <section class=\"table-cell table-cell--actions\">\n <!-- Select Checkbox -->\n @if (selects()) {\n <!-- <mat-checkbox\n color=\"primary\"\n class=\"Checkbox\"\n matTooltip=\"Seleccionar\"\n matTooltipClass=\"Tooltip\"\n [checked]=\"isSelected(dragAndDropColumns(), index)\"\n (change)=\"onSelect($event, dragAndDropColumns(), index)\" /> -->\n }\n @if (tableColumnActions()) {\n <!-- Dropdown Menu -->\n <gld-dropdown-menu\n background\n name=\"more button of table cell\"\n type=\"iconButton\"\n color=\"blue\"\n iconSize=\"small\"\n direction=\"left\"\n [icon]=\"Icons.more2Fill\"\n (changeValue)=\"\n tableActionFunction({\n tableColumnActionAsEvent: $event,\n tableColumns: tableColumns(),\n index,\n })\n \">\n @for (tableColumnAction of tableColumnActions(); track tableColumnAction.type) {\n <gld-dropdown-button\n [value]=\"tableColumnAction\"\n [icon]=\"tableColumnAction.icon\"\n iconSize=\"tiny\">\n {{ tableColumnAction.label }}\n </gld-dropdown-button>\n }\n </gld-dropdown-menu>\n <!-- <gld-icon-button\n background\n name=\"more button of table cell\"\n iconSize=\"small\"\n [icon]=\"Icons.more2Fill\"> -->\n <!-- <gld-tile color=\"blue-to-green\" class=\"Menu\">\n <section class=\"Menu-content\">\n @for (tableColumnAction of tableColumnActions(); track tableColumnAction.type) {\n <button\n class=\"Menu-button {{ tableColumnAction?.classToHover ?? '' }}\"\n [class.Menu-button--hidden]=\"\n !tableColumnAction.showWhen(buildDataStructure({ index }))\n \"\n (click)=\"\n tableActionFunction({\n tableColumnAction,\n tableColumns: tableColumns(),\n index,\n })\n \">\n <gld-icon size=\"tiny\" [icon]=\"tableColumnAction.icon\" />\n <span class=\"Menu-button-ellipsis\">{{ tableColumnAction.label }}</span>\n </button>\n }\n </section>\n </gld-tile> -->\n <!-- </gld-icon-button> -->\n }\n </section>\n }\n </section>\n }\n</article>\n\n<!-- Pagination -->\n@if (pagination()) {\n <section class=\"table-pagination\">\n <ng-content select=\"gld-table-pagination\" />\n </section>\n}\n\n", styles: ["@charset \"UTF-8\";:root{--gld-break-point--zero: 0;--gld-break-point--mobile: 320px;--gld-break-point--landscape: 576px;--gld-break-point--tablet: 768px;--gld-break-point--desktop: 1080px;--gld-break-point--extra-desktop: 1280px;--gld-font-size--heading-one: 36px;--gld-font-size--heading-two: 26px;--gld-font-size--heading-three: 20px;--gld-font-size--normal: 16px;--gld-font-size--small: 12px;--gld-font-size--tiny: 8px;--gld-font--poppins: \"Poppins\", sans-serif;--gld-radius--z: 0;--gld-radius--xxxs: 4px;--gld-radius--xxs: 6px;--gld-radius--xs: 8px;--gld-radius--s: 12px;--gld-radius--m: 16px;--gld-radius--l: 24px;--gld-radius--xl: 32px;--gld-radius--xxl: 40px;--gld-spacing--z: 0;--gld-spacing--xxxs: 4px;--gld-spacing--xxs: 8px;--gld-spacing--xs: 12px;--gld-spacing--s: 16px;--gld-spacing--m: 24px;--gld-spacing--l: 32px;--gld-spacing--xl: 48px;--gld-spacing--xxl: 70px;--gld-zindex--one: 1000;--gld-zindex--two: 2000;--gld-zindex--three: 3000;--gld-zindex--four: 4000;--gld-zindex--five: 5000;--gld-icon-size--large: 48px;--gld-icon-size--medium: 40px;--gld-icon-size--normal: 32px;--gld-icon-size--small: 24px;--gld-icon-size--tiny: 16px;--gld-red: #ef4444;--gld-red-transparent--005: rgba(239, 68, 68, .05);--gld-red-transparent--010: rgba(239, 68, 68, .1);--gld-red-transparent--020: rgba(239, 68, 68, .2);--gld-blue: #3c82f6;--gld-blue-transparent--005: rgba(60, 130, 246, .05);--gld-blue-transparent--010: rgba(60, 130, 246, .1);--gld-blue-transparent--020: rgba(60, 130, 246, .2);--gld-green: #12b981;--gld-green-transparent--005: rgba(18, 185, 129, .05);--gld-green-transparent--010: rgba(18, 185, 129, .1);--gld-green-transparent--020: rgba(18, 185, 129, .2);--gld-purple: #a855f7;--gld-purple-transparent--005: rgba(168, 85, 247, .05);--gld-purple-transparent--010: rgba(168, 85, 247, .1);--gld-purple-transparent--020: rgba(168, 85, 247, .2);--gld-purple-transparent--080: rgba(168, 85, 247, .8);--gld-mustard: #ebb305;--gld-mustard-transparent--005: rgba(235, 179, 5, .05);--gld-mustard-transparent--010: rgba(235, 179, 5, .1);--gld-mustard-transparent--020: rgba(235, 179, 5, .2);--gld-orange: #f97315;--gld-orange-transparent--005: rgba(249, 115, 21, .05);--gld-orange-transparent--010: rgba(249, 115, 21, .1);--gld-orange-transparent--020: rgba(249, 115, 21, .2);--gld-pink: #ec4899;--gld-pink-transparent--005: rgba(236, 72, 153, .05);--gld-pink-transparent--010: rgba(236, 72, 153, .1);--gld-pink-transparent--020: rgba(236, 72, 153, .2);--gld-gray: #c1c7e1;--gld-gray-transparent--010: rgba(193, 199, 225, .1);--gld-gray-transparent--020: rgba(193, 199, 225, .2);--gld-gray-transparent--030: rgba(193, 199, 225, .3);--gld-gray-transparent--040: rgba(193, 199, 225, .4);--gld-gray-transparent--050: rgba(193, 199, 225, .5);--gld-gray-transparent--060: rgba(193, 199, 225, .6);--gld-gray-transparent--070: rgba(193, 199, 225, .7);--gld-gray-transparent--080: rgba(193, 199, 225, .8);--gld-gray-transparent--090: rgba(193, 199, 225, .9);--gld-white: #fff;--gld-whitelight: #f9fafb;--gld-whitelight-transparent--090: rgba(249, 250, 251, .9);--gld-whitelight-transparent--080: rgba(249, 250, 251, .8);--gld-whitelight-transparent--070: rgba(249, 250, 251, .7);--gld-whitelight-transparent--060: rgba(249, 250, 251, .6);--gld-whitelight-transparent--030: rgba(249, 250, 251, .3);--gld-darkblue: #101827;--gld-darkblue-transparent--090: rgba(16, 24, 39, .9);--gld-darkblue-transparent--080: rgba(16, 24, 39, .8);--gld-darkblue-transparent--070: rgba(16, 24, 39, .7);--gld-darkblue-transparent--060: rgba(16, 24, 39, .6);--gld-darkblue-transparent--030: rgba(16, 24, 39, .3);--gld-darkblue-transparent--010: rgba(16, 24, 39, .1);--gld-border-size: 2px;--gld-animation-time--150: .15s;--gld-animation-time--250: .25s;--gld-animation-time--10s: 10s;--gld-line-height: 1.2;--gld-max-width: 1280px;--gld-navbar-height: 50px;--gld-sidebar-width: 250px}*,*:before,*:after{box-sizing:border-box;min-width:0}html,body{font-family:var(--font--poppins)}body{margin:0}h1,h2,h3,h4,h5,h6{text-wrap:balance;margin:0}p{text-wrap:pretty;margin:0}:host{width:100%}.table{--gld-color: light-dark(var(--darkblue), var(--whitelight));--gld-border-color: light-dark(var(--gray-transparent--040), var(--gray-transparent--020));--gld-border-radius: var(--radius--xxs);--gld-background: light-dark(var(--whitelight), var(--darkblue));--gld-background--with-transparent: light-dark( var(--gray-transparent--020), var(--gray-transparent--010) );--gld-column-actions-or-selects-width: 40px;--gld-column-actions-and-selects-width: 80px;--gld-header-height: 40px;--gld-cell-height: 40px;--gld-min-height: 100px;min-height:var(--gld-min-height);display:grid;grid-template-columns:1fr;position:relative;border:var(--gld-border-size) solid var(--gld-border-color);border-radius:var(--gld-border-radius);background:var(--background);overflow:hidden;overflow:auto;scrollbar-width:thin;scrollbar-color:light-dark(var(--gray-transparent--040),var(--gray-transparent--020)) transparent;scroll-behavior:smooth}.table::-webkit-scrollbar{width:var(--gld-spacing--xxs);height:var(--gld-spacing--xxs)}.table::-webkit-scrollbar-track{background:transparent}.table::-webkit-scrollbar-thumb{background:light-dark(var(--gray-transparent--040),var(--gray-transparent--020));will-change:background;transition:background var(--gld-animation-time--150) ease;border-radius:var(--gld-radius--s)}.table::-webkit-scrollbar-thumb:hover{background:light-dark(var(--gray-transparent--060),var(--gray-transparent--040))}.table-content{display:flex;flex-wrap:nowrap;overflow:auto;scrollbar-width:thin;scrollbar-color:light-dark(var(--gray-transparent--040),var(--gray-transparent--020)) transparent;scroll-behavior:smooth}.table-content::-webkit-scrollbar{width:var(--gld-spacing--xxs);height:var(--gld-spacing--xxs)}.table-content::-webkit-scrollbar-track{background:transparent}.table-content::-webkit-scrollbar-thumb{background:light-dark(var(--gray-transparent--040),var(--gray-transparent--020));will-change:background;transition:background var(--gld-animation-time--150) ease;border-radius:var(--gld-radius--s)}.table-content::-webkit-scrollbar-thumb:hover{background:light-dark(var(--gray-transparent--060),var(--gray-transparent--040))}.table-header,.table-cell{color:var(--color);font-family:var(--gld-font--poppins);padding:var(--gld-spacing--xxs) var(--gld-spacing--s);border-bottom:var(--gld-border-size) solid var(--gld-border-color)}.table-header-ellipsis,.table-cell-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.table-header-ellipsis--hover,.table-cell-ellipsis--hover{cursor:pointer}.table-header{display:flex;align-items:center;font:600 var(--gld-font-size--small)/var(--gld-line-height) var(--gld-font--poppins);height:var(--gld-header-height);background:var(--gld-background--with-transparent)}.table-header.table-header--actions,.table-header.table-header--selects{justify-content:center}.table-header.table-header--actions.table-header--selects{justify-content:flex-start}.table-header--actions{background:var(--gld-background);border-left:var(--gld-border-size) solid var(--gld-border-color)}.table-header--actions:before{content:\"\";position:absolute;inset:0;background:var(--gld-background--with-transparent)}.table-cell{display:flex;align-items:center;height:var(--gld-cell-height);font:400 var(--gld-font-size--small)/var(--gld-line-height) var(--gld-font--poppins)}.table-cell:last-of-type{margin-bottom:0;border-bottom:none}.table-cell.table-cell--actions,.table-cell.table-cell--selects{justify-content:center;padding:0}.table-cell--actions{position:relative;display:flex;justify-content:center;align-items:center;gap:var(--gld-spacing--xxxs);background:var(--gld-background);border-left:var(--gld-border-size) solid var(--gld-border-color)}.table-column{flex:1 1 auto}.table-column--actions,.table-column--selects,.table-column--actions.table-column--selects{position:absolute;top:0;right:0}.table-column--actions.table-column--selects{width:var(--gld-column-actions-and-selects-width)}.table-column--actions,.table-column--selects{width:var(--gld-column-actions-or-selects-width)}.table-empty{width:100%;display:flex;color:var(--gld-color);background:var(--gld-background--with-transparent);padding:var(--gld-spacing--xs)}.table-empty p{font:400 var(--gld-font-size--normal)/var(--gld-line-height) var(--gld-font--poppins);text-transform:lowercase;margin:auto}.table-empty p:first-letter{text-transform:uppercase}\n"] }]
1421
1421
  }], ctorParameters: () => [] });
1422
1422
 
1423
1423
  // Angular Imports
@@ -1 +1 @@
1
- {"version":3,"file":"iamgld-ui.mjs","sources":["../../../projects/iamgld-ui/src/lib/utils/date/date.util.ts","../../../projects/iamgld-ui/src/lib/utils/string/string.util.ts","../../../projects/iamgld-ui/src/lib/models/buttons/button.model.ts","../../../projects/iamgld-ui/src/lib/models/buttons/dropdown.model.ts","../../../projects/iamgld-ui/src/lib/models/buttons/link.model.ts","../../../projects/iamgld-ui/src/lib/models/controls/radio.model.ts","../../../projects/iamgld-ui/src/lib/models/controls/select.model.ts","../../../projects/iamgld-ui/src/lib/models/icon/icon.model.ts","../../../projects/iamgld-ui/src/lib/models/tables/table.model.ts","../../../projects/iamgld-ui/src/lib/models/tiles/tile.model.ts","../../../projects/iamgld-ui/src/lib/validators/is-date/is-date.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-document/is-document.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-email/is-email.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-form-select-item/is-form-select-item.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-license-plate/is-license-plate.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-natural-number/is-natural-number.validator.ts","../../../projects/iamgld-ui/src/lib/validators/minimum-age/minimum-age.validator.ts","../../../projects/iamgld-ui/src/lib/validators/must-match/must-match.validator.ts","../../../projects/iamgld-ui/src/lib/validators/must-unmatch/must-unmatch.validator.ts","../../../projects/iamgld-ui/src/lib/directives/dropdown-menu-template/dropdown-menu-template.directive.ts","../../../projects/iamgld-ui/src/lib/directives/input-error-message/input-error-message.directive.ts","../../../projects/iamgld-ui/src/lib/components/icon/icon.component.ts","../../../projects/iamgld-ui/src/lib/components/icon/icon.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/button/button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/button/button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/icon-button/icon-button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/icon-button/icon-button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/link/link.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/link/link.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-button/dropdown-button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-button/dropdown-button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-menu/dropdown-menu.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-menu/dropdown-menu.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-button/toggle-button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-button/toggle-button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-group/toggle-group.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-group/toggle-group.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-error/input-error.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-error/input-error.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input/input.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input/input.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-date/input-date.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-date/input-date.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-hint/input-hint.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-hint/input-hint.component.html","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.html","../../../projects/iamgld-ui/src/lib/components/controls/radio-button/radio-button.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-button/radio-button.component.html","../../../projects/iamgld-ui/src/lib/components/controls/radio-group/radio-group.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-group/radio-group.component.html","../../../projects/iamgld-ui/src/lib/components/controls/select-option/select-option.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/select-option/select-option.component.html","../../../projects/iamgld-ui/src/lib/components/controls/select/select.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/select/select.component.html","../../../projects/iamgld-ui/src/lib/components/image/image.component.ts","../../../projects/iamgld-ui/src/lib/components/image/image.component.html","../../../projects/iamgld-ui/src/lib/components/loaders/loader/loader.component.ts","../../../projects/iamgld-ui/src/lib/components/loaders/loader/loader.component.html","../../../projects/iamgld-ui/src/lib/components/tables/table-pagination/table-pagination.component.ts","../../../projects/iamgld-ui/src/lib/components/tables/table-pagination/table-pagination.component.html","../../../projects/iamgld-ui/src/lib/components/tables/table-search/table-search.component.ts","../../../projects/iamgld-ui/src/lib/components/tables/table-search/table-search.component.html","../../../projects/iamgld-ui/src/lib/components/tables/table/table.component.ts","../../../projects/iamgld-ui/src/lib/components/tables/table/table.component.html","../../../projects/iamgld-ui/src/lib/components/tile/tile.component.ts","../../../projects/iamgld-ui/src/lib/components/tile/tile.component.html","../../../projects/iamgld-ui/src/lib/components/index.ts","../../../projects/iamgld-ui/src/public-api.ts","../../../projects/iamgld-ui/src/iamgld-ui.ts"],"sourcesContent":["export function formatDateToISO(outerDate: string | Date): string | null {\n\tconst date = new Date(outerDate)\n\tif (!isNaN(date.getTime())) return date.toISOString()\n\telse return null\n}\n\nexport function formatDateFromISOToDDMMYYYY(dateAsString: string): string | null {\n\tconst [year, month, day] = dateAsString.split('-')\n\tif (year && month && day) return `${day}/${month}/${year}`\n\telse return null\n}\n\nexport function formatDateFromISOToYYYYMMDD(dateAsString: string | null): string | null {\n\tif (!dateAsString) return null\n\tconst [date] = dateAsString.split('T')\n\n\tif (date) return date\n\telse return null\n}\n\nexport function getDateWithOffsetInYears({ years }: { years: number }): Date {\n\tconst today = new Date()\n\ttoday.setFullYear(today.getFullYear() + years) // Agrega o resta años\n\treturn today\n}\n\n","export function capitalizeFirstLetter(str: string): string {\n\tif (!str) return str // Maneja el caso de string vacío\n\treturn str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()\n}\n\n","export enum ButtonColor {\n pink = 'pink',\n purple = 'purple',\n mustard = 'mustard',\n orange = 'orange',\n red = 'red',\n blue = 'blue',\n green = 'green',\n}\n\nexport enum ButtonSize {\n tiny = 'tiny',\n small = 'small',\n normal = 'normal',\n medium = 'medium',\n large = 'large',\n}\n\n","export enum DropdownType {\n button = 'button',\n iconButton = 'iconButton',\n}\n\nexport enum DropdownDirection {\n left = 'left',\n right = 'right',\n}\n\n","export enum LinkType {\n default = 'default',\n}\n\nexport enum LinkAlign {\n left = 'left',\n right = 'right',\n center = 'center',\n}\n\n","export enum RadioDirection {\r\n horizontal = 'horizontal',\r\n vertical = 'vertical',\r\n}\r\n","export enum SelectType {\r\n default = 'default',\r\n inline = 'inline',\r\n}\r\n","export enum Icons {\r\n arrowDownSLine = 'arrow-down-s-line',\r\n arrowUpSLine = 'arrow-up-s-line',\r\n checkboxCircleLine = 'checkbox-circle-line',\r\n checkboxBlankCircleLine = 'checkbox-blank-circle-line',\r\n loader4Fill = 'loader-4-fill',\r\n logoutCircleLine = 'ri-logout-circle-line',\r\n loginCircleLine = 'ri-login-circle-line',\r\n gitRepositoryLine = 'ri-git-repository-line',\r\n fileList3Line = 'ri-file-list-3-line',\r\n menuLine = 'ri-menu-line',\r\n sunLine = 'ri-sun-line',\r\n moonClearLine = 'ri-moon-clear-line',\r\n englishInput = 'ri-english-input',\r\n translate = 'ri-translate',\r\n user4Line = 'ri-user-4-line',\r\n shapesLine = 'ri-shapes-line',\r\n closeLine = 'ri-close-line',\r\n eyeLine = 'ri-eye-line',\r\n eyeCloseLine = 'ri-eye-close-line',\r\n linkedinBoxFill = 'ri-linkedin-box-fill',\r\n githubFill = 'ri-github-fill',\r\n instagramFill = 'ri-instagram-fill',\r\n twitterXFill = 'ri-twitter-x-fill',\r\n downloadCloud2Line = 'ri-download-cloud-2-line',\r\n globeLine = 'ri-globe-line',\r\n mailSendLine = 'ri-mail-send-line',\r\n pagesLine = 'ri-pages-line',\r\n gitForkLine = 'ri-git-fork-line',\r\n gitRepositoryPrivateLine = 'ri-git-repository-private-line',\r\n starLine = 'ri-star-line',\r\n calendar2Line = 'ri-calendar-2-line',\r\n macLine = 'ri-mac-line',\r\n more2Fill = 'ri-more-2-fill',\r\n editLine = 'ri-edit-line',\r\n deleteBinLine = 'ri-delete-bin-line',\r\n}\r\n\r\nexport enum IconsSize {\r\n tiny = 'tiny',\r\n small = 'small',\r\n normal = 'normal',\r\n medium = 'medium',\r\n large = 'large',\r\n}\r\n\r\nexport enum IconsSpace {\r\n left = 'left',\r\n right = 'right',\r\n none = 'none',\r\n}\r\n","// Angular Imports\nimport { TemplateRef } from '@angular/core'\n// This Module Imports\nimport { Icons } from '../icon/icon.model'\n\n// Table\nexport interface TableColumn {\n name: string\n label: string\n width: string\n minWidth: string\n maxWidth: string\n template: TemplateRef<unknown> | undefined\n justify: 'left' | 'center' | 'right'\n hide: boolean\n transform: (value: unknown) => string | number\n values: unknown[]\n}\n\nexport interface TableColumnStructure {\n name: string\n label: string\n width?: string\n minWidth?: string\n maxWidth?: string\n template?: TemplateRef<unknown>\n justify?: 'left' | 'center' | 'right'\n hide?: boolean\n transform?: (value: unknown) => string | number\n}\n\nexport interface TableColumnToTableColumns {\n tableColumnStructures: TableColumnStructure[]\n tableColumnActions: TableColumnAction[]\n dataStructures: unknown[]\n}\n\nexport interface TableColumnAction {\n label: string\n icon: Icons\n type: TableColumnActionType\n showWhen: (dataStructure: unknown) => boolean\n}\n\nexport enum TableColumnActionType {\n show = 'show',\n open = 'open',\n update = 'update',\n delete = 'delete',\n}\n\nexport interface TableColumnActionOutput {\n tableColumnAction: TableColumnAction\n object: unknown\n}\n\n// Table Search\nexport interface TableSearchOutput {\n action: TableSearchAction\n searching: string\n}\n\nexport enum TableSearchAction {\n searching = 'searching',\n cleared = 'cleared',\n}\n\n// Table Pagination\nexport interface TablePagination {\n itemsPerPage: number\n initialPage: number\n maxItems: number\n}\n","export enum TileColor {\n default = 'default',\n pink = 'pink',\n purple = 'purple',\n mustard = 'mustard',\n orange = 'orange',\n red = 'red',\n blue = 'blue',\n green = 'green',\n}\n\nexport enum TilePaddingSize {\n zero = 'zero',\n tiny = 'tiny',\n small = 'small',\n normal = 'normal',\n medium = 'medium',\n large = 'large',\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n// Shared Imports\nimport { formatDateFromISOToYYYYMMDD } from '../../utils'\n\n// Regex to validate the ISO date format (YYYY-MM-DD)\nconst ISO_DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/\n\nexport function isDateValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = formatDateFromISOToYYYYMMDD(control.value)\n\n if (!value) return null\n\n if (!ISO_DATE_REGEX.test(value))\n return { isDate: 'This field must be a valid date in the format YYYY-MM-DD!' }\n\n // Verify if the date is valid (additional logic)\n const [year, month, day] = value.split('-').map(Number)\n const date = new Date(year, month - 1, day)\n\n // Verify if the date is logical and corresponds to the format\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day)\n return null\n return { isDate: 'This field must be a valid date!' }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isDocumentValidator({ documentType }: { documentType: DocumentType }): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\t// Definir los patrones de acuerdo al tipo de vehículo\n\t\tconst patterns: Patterns = {\n\t\t\tDNI: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{7,8}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener entre 7 y 8 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t\tCT: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{11}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener 11 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t\tCL: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{11}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener 11 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tconst patternsToValid = patterns[documentType]\n\n\t\tif (!value) return null\n\n\t\tconst pattern = patternsToValid.find((pattern) => !pattern.regex.test(value))\n\n\t\treturn pattern ? { isDocument: pattern.message } : null\n\t}\n}\n\ntype DocumentType = 'DNI' | 'CT' | 'CL'\n\ninterface ValidationPattern {\n\tregex: RegExp\n\tmessage: string\n}\n\ninterface Patterns {\n\tDNI: ValidationPattern[]\n\tCT: ValidationPattern[]\n\tCL: ValidationPattern[]\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\n// Regex para validar emails\nconst EMAIL_REGEX = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/\n\nexport function isEmailValidator(): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\tif (!value) return null\n\n\t\tif (EMAIL_REGEX.test(value)) return null\n\t\t return { email: 'This field must be a valid email!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isFormSelectItemValidator(): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\tif (!value) return null\n\t\tif (typeof value === 'string')\n\t\t\treturn { isFormSelectItem: 'Este campo debe ser una opción valida!' }\n\n\t\tif (typeof value === 'object') {\n\t\t\tif ('value' in value && 'label' in value) return null\n\t\t}\n\n\t\treturn { isFormSelectItem: 'Este campo debe ser una opción valida!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isLicensePlateValidator({\n\tvehicleType,\n}: {\n\tvehicleType: 'AUTO' | 'MOTO' | 'BOTH'\n}): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\t// Definir los patrones de acuerdo al tipo de vehículo\n\t\tconst patterns = {\n\t\t\tAUTO: [\n\t\t\t\t/^[a-zA-Z]{3}[\\d]{3}$/, // Auto viejo\n\t\t\t\t/^[a-zA-Z]{2}[\\d]{3}[a-zA-Z]{2}$/, // Auto nuevo\n\t\t\t],\n\t\t\tMOTO: [\n\t\t\t\t/^[\\d]{3}[a-zA-Z]{3}$/, // Moto viejo\n\t\t\t\t/^[a-zA-Z]{1}[\\d]{3}[a-zA-Z]{3}$/, // Moto nuevo\n\t\t\t],\n\t\t\tBOTH: [\n\t\t\t\t/^[a-zA-Z]{3}[\\d]{3}$/, // Auto viejo\n\t\t\t\t/^[a-zA-Z]{2}[\\d]{3}[a-zA-Z]{2}$/, // Auto nuevo\n\t\t\t\t/^[\\d]{3}[a-zA-Z]{3}$/, // Moto viejo\n\t\t\t\t/^[a-zA-Z]{1}[\\d]{3}[a-zA-Z]{3}$/, // Moto nuevo\n\t\t\t],\n\t\t}\n\n\t\tconst patternsToValid = patterns[vehicleType]\n\n\t\tif (!value) return null\n\n\t\tconst isValid = patternsToValid.some((pattern) => pattern.test(value))\n\n\t\treturn isValid ? null : { isLicensePlate: 'El campo debe ser una patente valida!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\n// Regex para validar números naturales (0, 1, 2, 3, ...)\nconst NATURAL_NUMBER_REGEX = /^[0-9]+$/\n\nexport function isNaturalNumberValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value\n\n if (!value) return null\n\n if (NATURAL_NUMBER_REGEX.test(value)) return null\n return { naturalNumber: 'This field must contain only valid numbers!' }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n// Shared Imports\nimport { formatDateFromISOToYYYYMMDD } from '../../utils'\n\nexport function minimumAgeValidator({ minAge }: { minAge: number }): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = formatDateFromISOToYYYYMMDD(control.value)\n\n if (!value) return null\n\n // Verify if the date is valid (additional logic)\n const [year, month, day] = value.split('-').map(Number)\n const birthDay = new Date(year, month - 1, day)\n\n // Get the current date and calculate the difference in years\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n const age = today.getFullYear() - birthDay.getFullYear()\n const isMonthPast = today.getMonth() > birthDay.getMonth()\n const isSameMonthDayPast =\n today.getMonth() === birthDay.getMonth() && today.getDate() >= birthDay.getDate()\n\n const isValidAge = age > minAge || (age === minAge && (isMonthPast || isSameMonthDayPast))\n\n // Retornar el error si la edad es menor al mínimo\n return isValidAge ? null : { minimumAge: { requiredAge: minAge, actualAge: age } }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function mustMatchValidator({\n\tcontrolName,\n\tmustMatchControlName,\n\terrorMessage,\n}: {\n\tcontrolName: string\n\tmustMatchControlName: string\n\terrorMessage: string\n}): ValidatorFn {\n\treturn (formGroup: AbstractControl): ValidationErrors | null => {\n\t\tconst firstControl = formGroup.get(controlName)\n\t\tconst mustMatchControl = formGroup.get(mustMatchControlName)\n\n\t\t// Validar que ambos controles existan\n\t\tif (!firstControl || !mustMatchControl) return null\n\n\t\t// Verificar si los valores coinciden\n\t\tif (firstControl.value && firstControl.value !== mustMatchControl.value) {\n\t\t\tmustMatchControl.setErrors({ ...mustMatchControl.errors, mustMatch: errorMessage ?? true })\n\t\t\treturn { mustMatch: errorMessage ?? true }\n\t\t}\n\n\t\treturn null // Es válido si no hay errores\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function mustUnmatchValidator({\n\tcontrolName,\n\tmustUnmatchControlName,\n\terrorMessage,\n}: {\n\tcontrolName: string\n\tmustUnmatchControlName: string\n\terrorMessage: string\n}): ValidatorFn {\n\treturn (formGroup: AbstractControl): ValidationErrors | null => {\n\t\tconst firstControl = formGroup.get(controlName)\n\t\tconst mustUnmatchControl = formGroup.get(mustUnmatchControlName)\n\n\t\t// Validar que ambos controles existan\n\t\tif (!firstControl || !mustUnmatchControl) return null\n\n\t\t// Verificar si los valores coinciden\n\t\tif (firstControl.value && firstControl.value === mustUnmatchControl.value) {\n\t\t\tmustUnmatchControl.setErrors({\n\t\t\t\t...mustUnmatchControl.errors,\n\t\t\t\tmustUnmatch: errorMessage ?? true,\n\t\t\t})\n\t\t\treturn { mustUnmatch: errorMessage ?? true }\n\t\t}\n\n\t\treturn null // Es válido si no hay errores\n\t}\n}\n\n","// Angular Imports\nimport { Directive } from '@angular/core'\n\n@Directive({\n selector: '[gldDropdownMenuTemplate]',\n})\nexport class DropdownMenuTemplateDirective {}\n\n","// Angular Imports\nimport { Directive } from '@angular/core'\n\n@Directive({\n selector: '[gldInputErrorMessage]',\n})\nexport class InputErrorMessageDirective {}\n\n","// Angular Imports\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n numberAttribute,\r\n output,\r\n} from '@angular/core'\r\n// Shared Imports\r\nimport { Icons, IconsSize, IconsSpace } from '../../models'\r\n\r\n@Component({\r\n selector: 'gld-icon',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './icon.component.html',\r\n styleUrl: './icon.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconComponent {\r\n readonly IconsSpace = IconsSpace\r\n readonly Icons = Icons\r\n\r\n icon = input.required<Icons>()\r\n size = input<keyof typeof IconsSize>(IconsSize.normal)\r\n space = input<keyof typeof IconsSpace>(IconsSpace.none)\r\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n","<span\r\n tabindex=\"-1\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\"\r\n class=\"icon icon--{{ size() }}\"\r\n [class.icon--left]=\"space() === IconsSpace.left\"\r\n [class.icon--right]=\"space() === IconsSpace.right\"\r\n [style.right.px]=\"moveLeftToRight()\"\r\n [style.top.px]=\"moveTopToBottom()\">\r\n @switch (icon()) {\r\n @case (Icons.arrowDownSLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.arrowUpSLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9999 10.8284L7.0502 15.7782L5.63599 14.364L11.9999 8L18.3639 14.364L16.9497 15.7782L11.9999 10.8284Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.checkboxCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11.0026 16L6.75999 11.7574L8.17421 10.3431L11.0026 13.1716L16.6595 7.51472L18.0737 8.92893L11.0026 16Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.checkboxBlankCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.loader4Fill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M18.364 5.63604L16.9497 7.05025C15.683 5.7835 13.933 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12H21C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C14.4853 3 16.7353 4.00736 18.364 5.63604Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.logoutCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 11H13V13H5V16L0 12L5 8V11ZM3.99927 18H6.70835C8.11862 19.2447 9.97111 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C9.97111 4 8.11862 4.75527 6.70835 6H3.99927C5.82368 3.57111 8.72836 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C8.72836 22 5.82368 20.4289 3.99927 18Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.loginCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M10 11V8L15 12L10 16V13H1V11H10ZM2.4578 15H4.58152C5.76829 17.9318 8.64262 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C8.64262 4 5.76829 6.06817 4.58152 9H2.4578C3.73207 4.94289 7.52236 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C7.52236 22 3.73207 19.0571 2.4578 15Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.gitRepositoryLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13 21V23.5L10 21.5L7 23.5V21H6.5C4.567 21 3 19.433 3 17.5V5C3 3.34315 4.34315 2 6 2H20C20.5523 2 21 2.44772 21 3V20C21 20.5523 20.5523 21 20 21H13ZM13 19H19V16H6.5C5.67157 16 5 16.6716 5 17.5C5 18.3284 5.67157 19 6.5 19H7V17H13V19ZM19 14V4H6V14.0354C6.1633 14.0121 6.33024 14 6.5 14H19ZM7 5H9V7H7V5ZM7 8H9V10H7V8ZM7 11H9V13H7V11Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.fileList3Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M19 22H5C3.34315 22 2 20.6569 2 19V3C2 2.44772 2.44772 2 3 2H17C17.5523 2 18 2.44772 18 3V15H22V19C22 20.6569 20.6569 22 19 22ZM18 17V19C18 19.5523 18.4477 20 19 20C19.5523 20 20 19.5523 20 19V17H18ZM16 20V4H4V19C4 19.5523 4.44772 20 5 20H16ZM6 7H14V9H6V7ZM6 11H14V13H6V11ZM6 15H11V17H6V15Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.menuLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path d=\"M3 4H21V6H3V4ZM3 11H21V13H3V11ZM3 18H21V20H3V18Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.sunLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12C18 15.3137 15.3137 18 12 18ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16ZM11 1H13V4H11V1ZM11 20H13V23H11V20ZM3.51472 4.92893L4.92893 3.51472L7.05025 5.63604L5.63604 7.05025L3.51472 4.92893ZM16.9497 18.364L18.364 16.9497L20.4853 19.0711L19.0711 20.4853L16.9497 18.364ZM19.0711 3.51472L20.4853 4.92893L18.364 7.05025L16.9497 5.63604L19.0711 3.51472ZM5.63604 16.9497L7.05025 18.364L4.92893 20.4853L3.51472 19.0711L5.63604 16.9497ZM23 11V13H20V11H23ZM4 11V13H1V11H4Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.moonClearLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M10 6C10 10.4183 13.5817 14 18 14C19.4386 14 20.7885 13.6203 21.9549 12.9556C21.4738 18.0302 17.2005 22 12 22C6.47715 22 2 17.5228 2 12C2 6.79948 5.9698 2.52616 11.0444 2.04507C10.3797 3.21152 10 4.56142 10 6ZM4 12C4 16.4183 7.58172 20 12 20C14.9654 20 17.5757 18.3788 18.9571 15.9546C18.6407 15.9848 18.3214 16 18 16C12.4772 16 8 11.5228 8 6C8 5.67863 8.01524 5.35933 8.04536 5.04293C5.62119 6.42426 4 9.03458 4 12ZM18.1642 2.29104L19 2.5V3.5L18.1642 3.70896C17.4476 3.8881 16.8881 4.4476 16.709 5.16417L16.5 6H15.5L15.291 5.16417C15.1119 4.4476 14.5524 3.8881 13.8358 3.70896L13 3.5V2.5L13.8358 2.29104C14.5524 2.1119 15.1119 1.5524 15.291 0.835829L15.5 0H16.5L16.709 0.835829C16.8881 1.5524 17.4476 2.1119 18.1642 2.29104ZM23.1642 7.29104L24 7.5V8.5L23.1642 8.70896C22.4476 8.8881 21.8881 9.4476 21.709 10.1642L21.5 11H20.5L20.291 10.1642C20.1119 9.4476 19.5524 8.8881 18.8358 8.70896L18 8.5V7.5L18.8358 7.29104C19.5524 7.1119 20.1119 6.5524 20.291 5.83583L20.5 5H21.5L21.709 5.83583C21.8881 6.5524 22.4476 7.1119 23.1642 7.29104Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.englishInput) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M14 10H16L16.0005 10.7574C16.7154 10.279 17.5751 10 18.5 10C20.9853 10 23 12.0147 23 14.5V20H21V14.5C21 13.07 19.8255 12 18.5 12C17.1745 12 16 13.07 16 14.5V20H14V10ZM12 4V6H4V11H12V13H4V18H12V20H2V4H12Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.translate) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 15V17C5 18.0544 5.81588 18.9182 6.85074 18.9945L7 19H10V21H7C4.79086 21 3 19.2091 3 17V15H5ZM18 10L22.4 21H20.245L19.044 18H14.954L13.755 21H11.601L16 10H18ZM17 12.8852L15.753 16H18.245L17 12.8852ZM8 2V4H12V11H8V14H6V11H2V4H6V2H8ZM17 3C19.2091 3 21 4.79086 21 7V9H19V7C19 5.89543 18.1046 5 17 5H14V3H17ZM6 6H4V9H6V6ZM10 6H8V9H10V6Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.user4Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 20H19V22H5V20ZM12 18C7.58172 18 4 14.4183 4 10C4 5.58172 7.58172 2 12 2C16.4183 2 20 5.58172 20 10C20 14.4183 16.4183 18 12 18ZM12 16C15.3137 16 18 13.3137 18 10C18 6.68629 15.3137 4 12 4C8.68629 4 6 6.68629 6 10C6 13.3137 8.68629 16 12 16Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.shapesLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9998 1L6 11H18L11.9998 1ZM11.9998 4.8873L14.4676 9H9.53232L11.9998 4.8873ZM6.75 20C5.23122 20 4 18.7688 4 17.25C4 15.7312 5.23122 14.5 6.75 14.5C8.26878 14.5 9.5 15.7312 9.5 17.25C9.5 18.7688 8.26878 20 6.75 20ZM6.75 22C9.37335 22 11.5 19.8734 11.5 17.25C11.5 14.6266 9.37335 12.5 6.75 12.5C4.12665 12.5 2 14.6266 2 17.25C2 19.8734 4.12665 22 6.75 22ZM15 15.5V19.5H19V15.5H15ZM13 21.5V13.5H21V21.5H13Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.closeLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9997 10.5865L16.9495 5.63672L18.3637 7.05093L13.4139 12.0007L18.3637 16.9504L16.9495 18.3646L11.9997 13.4149L7.04996 18.3646L5.63574 16.9504L10.5855 12.0007L5.63574 7.05093L7.04996 5.63672L11.9997 10.5865Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.eyeLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12.0003 3C17.3924 3 21.8784 6.87976 22.8189 12C21.8784 17.1202 17.3924 21 12.0003 21C6.60812 21 2.12215 17.1202 1.18164 12C2.12215 6.87976 6.60812 3 12.0003 3ZM12.0003 19C16.2359 19 19.8603 16.052 20.7777 12C19.8603 7.94803 16.2359 5 12.0003 5C7.7646 5 4.14022 7.94803 3.22278 12C4.14022 16.052 7.7646 19 12.0003 19ZM12.0003 16.5C9.51498 16.5 7.50026 14.4853 7.50026 12C7.50026 9.51472 9.51498 7.5 12.0003 7.5C14.4855 7.5 16.5003 9.51472 16.5003 12C16.5003 14.4853 14.4855 16.5 12.0003 16.5ZM12.0003 14.5C13.381 14.5 14.5003 13.3807 14.5003 12C14.5003 10.6193 13.381 9.5 12.0003 9.5C10.6196 9.5 9.50026 10.6193 9.50026 12C9.50026 13.3807 10.6196 14.5 12.0003 14.5Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.eyeCloseLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M9.34268 18.7819L7.41083 18.2642L8.1983 15.3254C7.00919 14.8874 5.91661 14.2498 4.96116 13.4534L2.80783 15.6067L1.39362 14.1925L3.54695 12.0392C2.35581 10.6103 1.52014 8.87466 1.17578 6.96818L3.14386 6.61035C3.90289 10.8126 7.57931 14.0001 12.0002 14.0001C16.4211 14.0001 20.0976 10.8126 20.8566 6.61035L22.8247 6.96818C22.4803 8.87466 21.6446 10.6103 20.4535 12.0392L22.6068 14.1925L21.1926 15.6067L19.0393 13.4534C18.0838 14.2498 16.9912 14.8874 15.8021 15.3254L16.5896 18.2642L14.6578 18.7819L13.87 15.8418C13.2623 15.9459 12.6376 16.0001 12.0002 16.0001C11.3629 16.0001 10.7381 15.9459 10.1305 15.8418L9.34268 18.7819Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.linkedinBoxFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M18.3362 18.339H15.6707V14.1622C15.6707 13.1662 15.6505 11.8845 14.2817 11.8845C12.892 11.8845 12.6797 12.9683 12.6797 14.0887V18.339H10.0142V9.75H12.5747V10.9207H12.6092C12.967 10.2457 13.837 9.53325 15.1367 9.53325C17.8375 9.53325 18.337 11.3108 18.337 13.6245V18.339H18.3362ZM7.00373 8.57475C6.14573 8.57475 5.45648 7.88025 5.45648 7.026C5.45648 6.1725 6.14648 5.47875 7.00373 5.47875C7.85873 5.47875 8.55173 6.1725 8.55173 7.026C8.55173 7.88025 7.85798 8.57475 7.00373 8.57475ZM8.34023 18.339H5.66723V9.75H8.34023V18.339ZM19.6697 3H4.32923C3.59498 3 3.00098 3.5805 3.00098 4.29675V19.7033C3.00098 20.4202 3.59498 21 4.32923 21H19.6675C20.401 21 21.001 20.4202 21.001 19.7033V4.29675C21.001 3.5805 20.401 3 19.6675 3H19.6697Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.githubFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12.001 2C6.47598 2 2.00098 6.475 2.00098 12C2.00098 16.425 4.86348 20.1625 8.83848 21.4875C9.33848 21.575 9.52598 21.275 9.52598 21.0125C9.52598 20.775 9.51348 19.9875 9.51348 19.15C7.00098 19.6125 6.35098 18.5375 6.15098 17.975C6.03848 17.6875 5.55098 16.8 5.12598 16.5625C4.77598 16.375 4.27598 15.9125 5.11348 15.9C5.90098 15.8875 6.46348 16.625 6.65098 16.925C7.55098 18.4375 8.98848 18.0125 9.56348 17.75C9.65098 17.1 9.91348 16.6625 10.201 16.4125C7.97598 16.1625 5.65098 15.3 5.65098 11.475C5.65098 10.3875 6.03848 9.4875 6.67598 8.7875C6.57598 8.5375 6.22598 7.5125 6.77598 6.1375C6.77598 6.1375 7.61348 5.875 9.52598 7.1625C10.326 6.9375 11.176 6.825 12.026 6.825C12.876 6.825 13.726 6.9375 14.526 7.1625C16.4385 5.8625 17.276 6.1375 17.276 6.1375C17.826 7.5125 17.476 8.5375 17.376 8.7875C18.0135 9.4875 18.401 10.375 18.401 11.475C18.401 15.3125 16.0635 16.1625 13.8385 16.4125C14.201 16.725 14.5135 17.325 14.5135 18.2625C14.5135 19.6 14.501 20.675 14.501 21.0125C14.501 21.275 14.6885 21.5875 15.1885 21.4875C19.259 20.1133 21.9999 16.2963 22.001 12C22.001 6.475 17.526 2 12.001 2Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.instagramFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13.0281 2.00073C14.1535 2.00259 14.7238 2.00855 15.2166 2.02322L15.4107 2.02956C15.6349 2.03753 15.8561 2.04753 16.1228 2.06003C17.1869 2.1092 17.9128 2.27753 18.5503 2.52503C19.2094 2.7792 19.7661 3.12253 20.3219 3.67837C20.8769 4.2342 21.2203 4.79253 21.4753 5.45003C21.7219 6.0867 21.8903 6.81337 21.9403 7.87753C21.9522 8.1442 21.9618 8.3654 21.9697 8.58964L21.976 8.78373C21.9906 9.27647 21.9973 9.84686 21.9994 10.9723L22.0002 11.7179C22.0003 11.809 22.0003 11.903 22.0003 12L22.0002 12.2821L21.9996 13.0278C21.9977 14.1532 21.9918 14.7236 21.9771 15.2163L21.9707 15.4104C21.9628 15.6347 21.9528 15.8559 21.9403 16.1225C21.8911 17.1867 21.7219 17.9125 21.4753 18.55C21.2211 19.2092 20.8769 19.7659 20.3219 20.3217C19.7661 20.8767 19.2069 21.22 18.5503 21.475C17.9128 21.7217 17.1869 21.89 16.1228 21.94C15.8561 21.9519 15.6349 21.9616 15.4107 21.9694L15.2166 21.9757C14.7238 21.9904 14.1535 21.997 13.0281 21.9992L12.2824 22C12.1913 22 12.0973 22 12.0003 22L11.7182 22L10.9725 21.9993C9.8471 21.9975 9.27672 21.9915 8.78397 21.9768L8.58989 21.9705C8.36564 21.9625 8.14444 21.9525 7.87778 21.94C6.81361 21.8909 6.08861 21.7217 5.45028 21.475C4.79194 21.2209 4.23444 20.8767 3.67861 20.3217C3.12278 19.7659 2.78028 19.2067 2.52528 18.55C2.27778 17.9125 2.11028 17.1867 2.06028 16.1225C2.0484 15.8559 2.03871 15.6347 2.03086 15.4104L2.02457 15.2163C2.00994 14.7236 2.00327 14.1532 2.00111 13.0278L2.00098 10.9723C2.00284 9.84686 2.00879 9.27647 2.02346 8.78373L2.02981 8.58964C2.03778 8.3654 2.04778 8.1442 2.06028 7.87753C2.10944 6.81253 2.27778 6.08753 2.52528 5.45003C2.77944 4.7917 3.12278 4.2342 3.67861 3.67837C4.23444 3.12253 4.79278 2.78003 5.45028 2.52503C6.08778 2.27753 6.81278 2.11003 7.87778 2.06003C8.14444 2.04816 8.36564 2.03847 8.58989 2.03062L8.78397 2.02433C9.27672 2.00969 9.8471 2.00302 10.9725 2.00086L13.0281 2.00073ZM12.0003 7.00003C9.23738 7.00003 7.00028 9.23956 7.00028 12C7.00028 14.7629 9.23981 17 12.0003 17C14.7632 17 17.0003 14.7605 17.0003 12C17.0003 9.23713 14.7607 7.00003 12.0003 7.00003ZM12.0003 9.00003C13.6572 9.00003 15.0003 10.3427 15.0003 12C15.0003 13.6569 13.6576 15 12.0003 15C10.3434 15 9.00028 13.6574 9.00028 12C9.00028 10.3431 10.3429 9.00003 12.0003 9.00003ZM17.2503 5.50003C16.561 5.50003 16.0003 6.05994 16.0003 6.74918C16.0003 7.43843 16.5602 7.9992 17.2503 7.9992C17.9395 7.9992 18.5003 7.4393 18.5003 6.74918C18.5003 6.05994 17.9386 5.49917 17.2503 5.50003Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.twitterXFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M17.6874 3.0625L12.6907 8.77425L8.37045 3.0625H2.11328L9.58961 12.8387L2.50378 20.9375H5.53795L11.0068 14.6886L15.7863 20.9375H21.8885L14.095 10.6342L20.7198 3.0625H17.6874ZM16.6232 19.1225L5.65436 4.78217H7.45745L18.3034 19.1225H16.6232Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.downloadCloud2Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13 13V18.585L14.8284 16.7574L16.2426 18.1716L12 22.4142L7.75736 18.1716L9.17157 16.7574L11 18.585V13H13ZM12 2C15.5934 2 18.5544 4.70761 18.9541 8.19395C21.2858 8.83154 23 10.9656 23 13.5C23 16.3688 20.8036 18.7246 18.0006 18.9776L18.0009 16.9644C19.6966 16.7214 21 15.2629 21 13.5C21 11.567 19.433 10 17.5 10C17.2912 10 17.0867 10.0183 16.8887 10.054C16.9616 9.7142 17 9.36158 17 9C17 6.23858 14.7614 4 12 4C9.23858 4 7 6.23858 7 9C7 9.36158 7.03838 9.7142 7.11205 10.0533C6.91331 10.0183 6.70879 10 6.5 10C4.567 10 3 11.567 3 13.5C3 15.2003 4.21241 16.6174 5.81986 16.934L6.00005 16.9646L6.00039 18.9776C3.19696 18.7252 1 16.3692 1 13.5C1 10.9656 2.71424 8.83154 5.04648 8.19411C5.44561 4.70761 8.40661 2 12 2Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.globeLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13.0003 21H18.0003V23H6.00032V21H11.0003V19.9506C7.70689 19.6236 4.88351 17.6987 3.31641 14.9622L5.05319 13.9697C6.43208 16.3776 9.02674 18 12.0003 18C16.4186 18 20.0003 14.4182 20.0003 9.99995C20.0003 7.02637 18.378 4.43171 15.9701 3.05282L16.9626 1.31604C19.9724 3.03965 22.0003 6.28297 22.0003 9.99995C22.0003 15.1853 18.0536 19.4489 13.0003 19.9506V21ZM12.0003 17C8.13433 17 5.00032 13.8659 5.00032 9.99995C5.00032 6.13396 8.13433 2.99995 12.0003 2.99995C15.8663 2.99995 19.0003 6.13396 19.0003 9.99995C19.0003 13.8659 15.8663 17 12.0003 17ZM12.0003 15C14.7617 15 17.0003 12.7614 17.0003 9.99995C17.0003 7.23853 14.7617 4.99995 12.0003 4.99995C9.2389 4.99995 7.00032 7.23853 7.00032 9.99995C7.00032 12.7614 9.2389 15 12.0003 15Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.mailSendLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M21 3C21.5523 3 22 3.44772 22 4V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V19H20V7.3L12 14.5L2 5.5V4C2 3.44772 2.44772 3 3 3H21ZM8 15V17H0V15H8ZM5 10V12H0V10H5ZM19.5659 5H4.43414L12 11.8093L19.5659 5Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.pagesLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 8V20H19V8H5ZM5 6H19V4H5V6ZM20 22H4C3.44772 22 3 21.5523 3 21V3C3 2.44772 3.44772 2 4 2H20C20.5523 2 21 2.44772 21 3V21C21 21.5523 20.5523 22 20 22ZM7 10H11V14H7V10ZM7 16H17V18H7V16ZM13 11H17V13H13V11Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.gitForkLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M6 5C5.44772 5 5 5.44772 5 6C5 6.55228 5.44772 7 6 7C6.55228 7 7 6.55228 7 6C7 5.44772 6.55228 5 6 5ZM3 6C3 4.34315 4.34315 3 6 3C7.65685 3 9 4.34315 9 6C9 7.30622 8.16519 8.41746 7 8.82929V9C7 10.1046 7.89543 11 9 11H15C16.1046 11 17 10.1046 17 9V8.82929C15.8348 8.41746 15 7.30622 15 6C15 4.34315 16.3431 3 18 3C19.6569 3 21 4.34315 21 6C21 7.30622 20.1652 8.41746 19 8.82929V9C19 11.2091 17.2091 13 15 13H13V15.1707C14.1652 15.5825 15 16.6938 15 18C15 19.6569 13.6569 21 12 21C10.3431 21 9 19.6569 9 18C9 16.6938 9.83481 15.5825 11 15.1707V13H9C6.79086 13 5 11.2091 5 9V8.82929C3.83481 8.41746 3 7.30622 3 6ZM18 5C17.4477 5 17 5.44772 17 6C17 6.55228 17.4477 7 18 7C18.5523 7 19 6.55228 19 6C19 5.44772 18.5523 5 18 5ZM12 17C11.4477 17 11 17.4477 11 18C11 18.5523 11.4477 19 12 19C12.5523 19 13 18.5523 13 18C13 17.4477 12.5523 17 12 17Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.gitRepositoryPrivateLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M6 10V20H19V10H6ZM18 8H20C20.5523 8 21 8.44772 21 9V21C21 21.5523 20.5523 22 20 22H4C3.44772 22 3 21.5523 3 21V9C3 8.44772 3.44772 8 4 8H6V7C6 3.68629 8.68629 1 12 1C15.3137 1 18 3.68629 18 7V8ZM16 8V7C16 4.79086 14.2091 3 12 3C9.79086 3 8 4.79086 8 7V8H16ZM7 11H9V13H7V11ZM7 14H9V16H7V14ZM7 17H9V19H7V17Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.starLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12.0006 18.26L4.94715 22.2082L6.52248 14.2799L0.587891 8.7918L8.61493 7.84006L12.0006 0.5L15.3862 7.84006L23.4132 8.7918L17.4787 14.2799L19.054 22.2082L12.0006 18.26ZM12.0006 15.968L16.2473 18.3451L15.2988 13.5717L18.8719 10.2674L14.039 9.69434L12.0006 5.27502L9.96214 9.69434L5.12921 10.2674L8.70231 13.5717L7.75383 18.3451L12.0006 15.968Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.calendar2Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M9 1V3H15V1H17V3H21C21.5523 3 22 3.44772 22 4V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4C2 3.44772 2.44772 3 3 3H7V1H9ZM20 11H4V19H20V11ZM8 13V15H6V13H8ZM13 13V15H11V13H13ZM18 13V15H16V13H18ZM7 5H4V9H20V5H17V7H15V5H9V7H7V5Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.macLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M14 18V20L16 21V22H8L7.99639 21.0036L10 20V18H2.9918C2.44405 18 2 17.5511 2 16.9925V4.00748C2 3.45107 2.45531 3 2.9918 3H21.0082C21.556 3 22 3.44892 22 4.00748V16.9925C22 17.5489 21.5447 18 21.0082 18H14ZM4 5V14H20V5H4Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.more2Fill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 3C10.9 3 10 3.9 10 5C10 6.1 10.9 7 12 7C13.1 7 14 6.1 14 5C14 3.9 13.1 3 12 3ZM12 17C10.9 17 10 17.9 10 19C10 20.1 10.9 21 12 21C13.1 21 14 20.1 14 19C14 17.9 13.1 17 12 17ZM12 10C10.9 10 10 10.9 10 12C10 13.1 10.9 14 12 14C13.1 14 14 13.1 14 12C14 10.9 13.1 10 12 10Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.editLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M6.41421 15.89L16.5563 5.74785L15.1421 4.33363L5 14.4758V15.89H6.41421ZM7.24264 17.89H3V13.6473L14.435 2.21231C14.8256 1.82179 15.4587 1.82179 15.8492 2.21231L18.6777 5.04074C19.0682 5.43126 19.0682 6.06443 18.6777 6.45495L7.24264 17.89ZM3 19.89H21V21.89H3V19.89Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.deleteBinLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M17 6H22V8H20V21C20 21.5523 19.5523 22 19 22H5C4.44772 22 4 21.5523 4 21V8H2V6H7V3C7 2.44772 7.44772 2 8 2H16C16.5523 2 17 2.44772 17 3V6ZM18 8H6V20H18V8ZM9 11H11V17H9V11ZM13 11H15V17H13V11ZM9 4V6H15V4H9Z\"></path>\r\n </svg>\r\n }\r\n }\r\n</span>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n booleanAttribute,\r\n input,\r\n numberAttribute,\r\n output,\r\n} from '@angular/core'\r\n// This Module Imports\r\nimport { ButtonColor, ButtonSize, Icons, IconsSize } from '../../../models'\r\nimport { IconComponent } from '../../icon/icon.component'\r\n\r\nconst components = [IconComponent]\r\n\r\n@Component({\r\n selector: 'gld-button',\r\n imports: [...components],\r\n templateUrl: './button.component.html',\r\n styleUrl: './button.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonComponent {\r\n name = input.required<string>()\r\n color = input<keyof typeof ButtonColor>(ButtonColor.pink)\r\n size = input<keyof typeof ButtonSize>(ButtonSize.normal)\r\n icon = input<Icons | null>(null)\r\n iconSize = input<keyof typeof IconsSize>()\r\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n full = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n","<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }} button--{{ size() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--full]=\"full()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n @let innerIcon = icon();\r\n @if (innerIcon) {\r\n <gld-icon\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [icon]=\"innerIcon\"\r\n [size]=\"iconSize() ?? size()\"\r\n [disabled]=\"disabled()\" />\r\n }\r\n <!-- Content -->\r\n <span>\r\n <ng-content>no content</ng-content>\r\n </span>\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n","// Angular Imports\nimport {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n input,\n numberAttribute,\n output,\n} from '@angular/core'\n// This Module Imports\nimport { ButtonColor, Icons, IconsSize, IconsSpace } from '../../../models'\nimport { IconComponent } from '../../icon/icon.component'\n\n@Component({\n selector: 'gld-icon-button',\n templateUrl: './icon-button.component.html',\n styleUrl: './icon-button.component.scss',\n imports: [IconComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconButtonComponent {\n icon = input.required<Icons>()\n name = input.required<string>()\n iconSize = input<keyof typeof IconsSize>(IconsSize.normal)\n space = input<keyof typeof IconsSpace>(IconsSpace.none)\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n color = input<keyof typeof ButtonColor>(ButtonColor.pink)\n clicked = output<void>()\n\n emitClick() {\n if (!this.disabled()) this.clicked.emit()\n }\n\n keyup() {\n this.emitClick()\n }\n}\n","<button\n id=\"{{ name() }}\"\n attr.aria-label=\"{{ name() }}\"\n class=\"button button--{{ color() }}\"\n [class.button--disabled]=\"disabled()\"\n [class.button--background]=\"background()\"\n (click)=\"emitClick()\"\n (keyup.enter)=\"keyup()\">\n <!-- Icon -->\n <gld-icon\n [icon]=\"icon()\"\n [size]=\"iconSize()\"\n [space]=\"space()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [disabled]=\"disabled()\" />\n</button>\n\n<!-- Only used by DropdownMenuComponent -->\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\n","// Angular Imports\nimport { Component, ChangeDetectionStrategy, input, output, booleanAttribute } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport { RouterLink } from '@angular/router'\n// This Module Imports\nimport { LinkType, LinkAlign } from '../../../models'\n\n@Component({\n selector: 'gld-link',\n standalone: true,\n imports: [NgTemplateOutlet, RouterLink],\n templateUrl: './link.component.html',\n styleUrl: './link.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LinkComponent {\n readonly LinkType = LinkType\n\n name = input.required<string>()\n redirect = input<string>('')\n active = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n external = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n type = input<keyof typeof LinkType>(LinkType.default)\n align = input<keyof typeof LinkAlign>(LinkAlign.center)\n clicked = output<void>()\n\n emitClick() {\n this.clicked.emit()\n }\n\n keyup() {\n this.emitClick()\n }\n}\n","@if (external()) {\n <!-- It's external link -->\n <ng-container\n [ngTemplateOutlet]=\"buttonTemplate\"\n [ngTemplateOutletContext]=\"{ buttonType: 'anchor' }\" />\n} @else {\n <!-- It isn't external link -->\n <ng-container\n [ngTemplateOutlet]=\"buttonTemplate\"\n [ngTemplateOutletContext]=\"{ buttonType: 'button' }\" />\n}\n\n<!-- Button Template -->\n<ng-template #buttonTemplate let-buttonType=\"buttonType\">\n @switch (buttonType) {\n @case ('anchor') {\n <a\n id=\"{{ name() }}\"\n attr.aria-label=\"{{ name() }}\"\n class=\"link link--{{ align() }}\"\n [class.link--active]=\"active()\"\n [href]=\"redirect()\"\n (click)=\"emitClick()\"\n (keyup.enter)=\"keyup()\"\n target=\"_blank\">\n <ng-container [ngTemplateOutlet]=\"contentButtonTemplate\" />\n </a>\n }\n @case ('button') {\n @if (redirect()) {\n <!-- It has path to redirect -->\n <button\n id=\"{{ name() }}\"\n attr.aria-label=\"{{ name() }}\"\n class=\"link link--{{ align() }}\"\n [class.link--active]=\"active()\"\n (click)=\"emitClick()\"\n (keyup.enter)=\"keyup()\"\n [routerLink]=\"redirect()\">\n <ng-container [ngTemplateOutlet]=\"contentButtonTemplate\" />\n </button>\n } @else {\n <!-- It doesn't have path to redirect -->\n <button\n id=\"{{ name() }}\"\n attr.aria-label=\"{{ name() }}\"\n class=\"link link--{{ align() }}\"\n [class.link--active]=\"active()\"\n (click)=\"emitClick()\"\n (keyup.enter)=\"keyup()\">\n <ng-container [ngTemplateOutlet]=\"contentButtonTemplate\" />\n </button>\n }\n }\n }\n</ng-template>\n\n<!-- Content Button Template -->\n<ng-template #contentButtonTemplate>\n <ng-content />\n</ng-template>\n","// Angular Imports\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n input,\n numberAttribute,\n output,\n signal,\n viewChild,\n} from '@angular/core'\n// This Module Imports\nimport { DropdownDirection, Icons, IconsSize, IconsSpace } from '../../../models'\nimport { IconComponent } from '../../icon/icon.component'\n\nconst components = [IconComponent]\n\n@Component({\n selector: 'gld-dropdown-button',\n imports: [...components],\n templateUrl: './dropdown-button.component.html',\n styleUrl: './dropdown-button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownButtonComponent {\n value = input.required<unknown>()\n icon = input<Icons | null>(null)\n iconSize = input<keyof typeof IconsSize>(IconsSize.normal)\n iconSpace = input<keyof typeof IconsSpace>(IconsSpace.none)\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\n direction = input<keyof typeof DropdownDirection>(DropdownDirection.left)\n changeValue = output<unknown>()\n\n current = signal<unknown>(null)\n disabled = signal<boolean>(false)\n error = signal<boolean>(false)\n selected = computed(() => Boolean(this.current() === this.value()))\n\n buttonChild = viewChild('buttonChild', { read: ElementRef })\n\n select(value: unknown) {\n this.changeValue.emit(value)\n this.buttonChild()?.nativeElement.blur()\n }\n\n keyup(value: unknown) {\n this.select(value)\n }\n}\n\n","<button\n #buttonChild\n [tabindex]=\"disabled() ? '-1' : '0'\"\n class=\"button button--direction-{{ direction() }}\"\n [class.button--selected]=\"selected()\"\n (keyup.enter)=\"keyup(value())\"\n (click)=\"select(value())\">\n <!-- Icon -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [icon]=\"innerIcon\"\n [size]=\"iconSize()\"\n [space]=\"iconSpace()\"\n [disabled]=\"disabled()\" />\n }\n <!-- Content -->\n <span>\n <ng-content> no content </ng-content>\n </span>\n</button>\n\n","// Angular Imports\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n input,\n numberAttribute,\n output,\n AfterContentInit,\n effect,\n} from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\n// This Component Imports\nimport {\n ButtonColor,\n ButtonSize,\n Icons,\n IconsSize,\n DropdownType,\n DropdownDirection,\n} from '../../../models'\nimport { DropdownMenuTemplateDirective } from '../../../directives'\nimport { ButtonComponent } from '../button/button.component'\nimport { IconButtonComponent } from '../icon-button/icon-button.component'\nimport { DropdownButtonComponent } from '../dropdown-button/dropdown-button.component'\n\nconst components = [ButtonComponent, IconButtonComponent]\nconst directives = [DropdownMenuTemplateDirective]\n\n@Component({\n selector: 'gld-dropdown-menu',\n imports: [NgTemplateOutlet, ...components, directives],\n templateUrl: './dropdown-menu.component.html',\n styleUrl: './dropdown-menu.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownMenuComponent implements AfterContentInit {\n readonly DropdownType = DropdownType\n\n name = input.required<string>()\n type = input.required<keyof typeof DropdownType>()\n color = input<keyof typeof ButtonColor>(ButtonColor.pink)\n size = input<keyof typeof ButtonSize>(ButtonSize.normal)\n icon = input<Icons | null>(null)\n iconSize = input<keyof typeof IconsSize>()\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n full = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n direction = input<keyof typeof DropdownDirection>(DropdownDirection.right)\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n selected = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n initialValue = input<unknown>(null)\n changeValue = output<unknown>()\n changeFocus = output<boolean>()\n\n dropdownButtonChildren = contentChildren<DropdownButtonComponent>(DropdownButtonComponent)\n\n constructor() {\n effect(() => {\n const initialValue = this.initialValue()\n if (initialValue) this.updateCurrentInChildren(initialValue)\n })\n }\n\n ngAfterContentInit(): void {\n this.dropdownButtonChildren().map((dropdownButton: DropdownButtonComponent) => {\n dropdownButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\n })\n }\n\n updateCurrentInChildren(value: unknown) {\n this.dropdownButtonChildren().map((dropdownButton: DropdownButtonComponent, index: number) => {\n if (this.selected()) dropdownButton.current.set(value)\n // Set current one time\n if (index === 0) this.changeValue.emit(value)\n })\n }\n\n updateErrorInChildren(error: boolean) {\n this.dropdownButtonChildren().map((dropdownButton: DropdownButtonComponent) =>\n dropdownButton.error.set(error),\n )\n }\n}\n\n","<!-- Button -->\n@if (type() === DropdownType.button) {\n <gld-button\n #buttonChild\n [name]=\"name()\"\n [color]=\"color()\"\n [size]=\"size()\"\n [icon]=\"icon()\"\n [iconSize]=\"iconSize()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [full]=\"full()\">\n <ng-content />\n\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-button>\n} @else {\n <!-- Icon Button -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon-button\n #buttonChild\n [name]=\"name()\"\n [color]=\"color()\"\n [icon]=\"innerIcon\"\n [iconSize]=\"iconSize() ?? size()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [background]=\"background()\">\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-icon-button>\n }\n}\n\n<ng-template #dropdownMenu>\n <!-- Menu -->\n <section\n class=\"dropdown-menu dropdown-menu--{{ type() }} dropdown-menu--{{ size() }}\n dropdown-menu--direction-{{ direction() }}\">\n <ng-content select=\"gld-dropdown-button\">no buttons</ng-content>\n </section>\n</ng-template>\n\n","// Angular Imports\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'\n\n@Component({\n selector: 'gld-toggle-button',\n imports: [],\n templateUrl: './toggle-button.component.html',\n styleUrl: './toggle-button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleButtonComponent {\n value = input.required<unknown>()\n changeValue = output<unknown>()\n\n current = signal<unknown>(null)\n disabled = signal<boolean>(false)\n error = signal<boolean>(false)\n selected = computed(() => Boolean(this.current() === this.value()))\n\n select(value: unknown) {\n this.changeValue.emit(value)\n }\n\n keyup(value: unknown) {\n this.select(value)\n }\n}\n\n","<button\n [tabindex]=\"disabled() ? '-1' : '0'\"\n class=\"button\"\n [class.button--selected]=\"selected()\"\n (keyup.enter)=\"keyup(value())\"\n (click)=\"select(value())\">\n <ng-content> empty button </ng-content>\n</button>\n\n","// Angular Imports\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n input,\n output,\n} from '@angular/core'\n// This Module Imports\nimport { ToggleButtonComponent } from './../toggle-button/toggle-button.component'\n\n@Component({\n selector: 'gld-toggle-group',\n imports: [],\n templateUrl: './toggle-group.component.html',\n styleUrl: './toggle-group.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleGroupComponent implements AfterContentInit {\n name = input.required<string>()\n initialValue = input<unknown>(null)\n changeValue = output<unknown>()\n changeFocus = output<boolean>()\n\n toggleButtonChildren = contentChildren<ToggleButtonComponent>(ToggleButtonComponent)\n\n constructor() {\n effect(() => {\n const initialValue = this.initialValue()\n if (initialValue) this.updateCurrentInChildren(initialValue)\n })\n }\n\n ngAfterContentInit(): void {\n this.toggleButtonChildren().map((toggleButton: ToggleButtonComponent) => {\n toggleButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\n })\n }\n\n updateCurrentInChildren(value: unknown) {\n this.toggleButtonChildren().map((toggleButton: ToggleButtonComponent, index: number) => {\n toggleButton.current.set(value)\n // Set current one time\n if (index === 0) this.changeValue.emit(value)\n })\n }\n\n updateErrorInChildren(error: boolean) {\n this.toggleButtonChildren().map((toggleButton: ToggleButtonComponent) =>\n toggleButton.error.set(error),\n )\n }\n}\n\n","<section class=\"toggle\" [attr.name]=\"name()\">\n <ng-content select=\"gld-toggle-button\" />\n</section>\n\n","// Angular Imports\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n contentChildren,\r\n signal,\r\n effect,\r\n} from '@angular/core'\r\nimport { ValidationErrors } from '@angular/forms'\r\n// This Module Imports\r\nimport { InputErrorMessageDirective } from '../../../directives'\r\n\r\n@Component({\r\n selector: 'gld-input-error',\r\n standalone: true,\r\n imports: [NgTemplateOutlet],\r\n templateUrl: './input-error.component.html',\r\n styleUrl: './input-error.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputErrorComponent {\r\n readonly Boolean = Boolean\r\n errors = input.required<ValidationErrors | null>()\r\n border = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n content = contentChildren(InputErrorMessageDirective, {\r\n descendants: true,\r\n })\r\n\r\n hasContent = signal(false)\r\n\r\n constructor() {\r\n effect(() => this.hasContent.set(this.content()?.length ? true : false))\r\n }\r\n}\r\n","<section class=\"error\" [class.error--with-border]=\"border()\">\r\n <span class=\"error__message\">\r\n @if (hasContent()) {\r\n <ng-content />\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"errorsMessageDefault\" />\r\n }\r\n </span>\r\n</section>\r\n\r\n<ng-template #errorsMessageDefault>\r\n @switch (true) {\r\n @case (Boolean(this.errors()?.['required'])) {\r\n This field is required!\r\n }\r\n @case (Boolean(this.errors()?.['email'])) {\r\n {{ this.errors()?.['email'] }}\r\n }\r\n @case (Boolean(this.errors()?.['maxlength'])) {\r\n This field must have a maximum of\r\n {{ this.errors()?.['maxlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['minlength'])) {\r\n This field must have a minimum of\r\n {{ this.errors()?.['minlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['isDate'])) {\r\n {{ this.errors()?.['isDate'] }}\r\n }\r\n @case (Boolean(this.errors()?.['minimumAge'])) {\r\n This field must meet the minimum age requirement of\r\n {{ this.errors()?.['minimumAge'].requiredAge }} years\r\n }\r\n @case (Boolean(this.errors()?.['naturalNumber'])) {\r\n {{ this.errors()?.['naturalNumber'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustMatch'])) {\r\n {{ this.errors()?.['mustMatch'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustUnmatch'])) {\r\n {{ this.errors()?.['mustUnmatch'] }}\r\n }\r\n @default {\r\n empty error message\r\n }\r\n }\r\n</ng-template>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n OnInit,\r\n booleanAttribute,\r\n forwardRef,\r\n inject,\r\n input,\r\n signal,\r\n} from '@angular/core'\r\nimport {\r\n ReactiveFormsModule,\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n} from '@angular/forms'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { InputType } from '../../../models'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-input',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './input.component.html',\r\n styleUrl: './input.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputComponent implements ControlValueAccessor, OnInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n type = input<InputType>('text')\r\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) this.innerControl().setValue(value, { emitEvent: false })\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) this.innerControl().setValue(value)\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n // this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n this.onTouched()\r\n // this.isMenuOpen.set(false)\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <!-- Input -->\r\n <input\r\n id=\"input-{{ name() }}\"\r\n [tabindex]=\"disabled ? '-1' : '0'\"\r\n [name]=\"name()\"\r\n [type]=\"type()\"\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"innerControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onTouched()\"\r\n (keyup.escape)=\"onBlur()\" />\r\n\r\n <!-- Suffix -->\r\n @if (suffix()) {\r\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n }\r\n</section>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n <span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\r\n <ng-content select=\"[inputSuffix]\" />\r\n </span>\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n<!-- <section>status: {{ control().status }}</section> -->\r\n","// Angular Imports\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n OnInit,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n signal,\n} from '@angular/core'\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\nimport {\n ReactiveFormsModule,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n FormControl,\n} from '@angular/forms'\nimport { NgTemplateOutlet } from '@angular/common'\n// This Module Imports\nimport { InputErrorComponent } from '../input-error/input-error.component'\nimport { formatDateToISO, formatDateFromISOToYYYYMMDD } from '../../../utils'\n// Thirdparty Imports\nimport { debounceTime } from 'rxjs'\n\nconst components = [InputErrorComponent]\n\n@Component({\n selector: 'gld-input-date',\n standalone: true,\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\n templateUrl: './input-date.component.html',\n styleUrl: './input-date.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputDateComponent),\n multi: true,\n },\n ],\n})\nexport class InputDateComponent implements ControlValueAccessor, OnInit {\n readonly #destroyRef = inject(DestroyRef)\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\n\n control = input.required<FormControl<unknown>>()\n name = input.required<string>()\n label = input<string>('')\n min = input<string | null, string>('', {\n transform: (value: string) => formatDateFromISOToYYYYMMDD(value),\n })\n max = input<string | null, string>('', {\n transform: (value: string) => formatDateFromISOToYYYYMMDD(value),\n })\n placeholder = input<string>('')\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n onChange = (value: unknown) => {}\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {}\n\n constructor() {\n this.innerControl()\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((value) => {\n this.onChange(value)\n if (value && typeof value === 'string') {\n const valueTransformed = formatDateFromISOToYYYYMMDD(formatDateToISO(value))\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\n }\n })\n }\n\n ngOnInit(): void {\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\n this.control()\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\n .subscribe(() => this.#changeDetectorRef.detectChanges())\n }\n\n writeValue(value: unknown): void {\n // console.log('writeValue')\n if (value !== this.innerControl().value) this.innerControl().setValue(String(value))\n }\n\n registerOnChange(onChange: (value: unknown) => void): void {\n // console.log('registerOnChange')\n this.onChange = onChange\n }\n\n registerOnTouched(onTouched: () => void): void {\n // console.log('registerOnTouched')\n this.onTouched = onTouched\n }\n}\n\n","@let errors = control().invalid && (control().dirty || control().touched);\n@let disabled = control().disabled || (control().pending && control().disabled);\n\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\n\t<!-- Label -->\n\t@if (label()) {\n\t\t<label [for]=\"name()\">\n\t\t\t{{ label() }}\n\t\t</label>\n\t}\n\n\t<!-- Input -->\n\t<input\n\t\ttype=\"date\"\n\t\tid=\"input-date-{{ name() }}\"\n\t\t[name]=\"name()\"\n\t\t[attr.min]=\"min()\"\n\t\t[attr.max]=\"max()\"\n\t\t[placeholder]=\"placeholder()\"\n\t\t[formControl]=\"innerControl()\"\n\t\t(blur)=\"onTouched()\" />\n\n\t<!-- Suffix -->\n\t@if (suffix()) {\n\t\t<ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\n\t}\n</section>\n<!-- Errors -->\n@if (errors) {\n\t<ng-content select=\"gld-input-error\">\n\t\t<gld-input-error [errors]=\"control().errors\" />\n\t</ng-content>\n} @else {\n\t<!-- Hint -->\n\t<ng-content select=\"gld-input-hint\" />\n}\n\n<!-- Suffix Template -->\n<ng-template #suffixTemplate>\n\t<span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\n\t\t<ng-content select=\"[inputSuffix]\" />\n\t</span>\n</ng-template>\n\n<!-- <h3>Debugging</h3> -->\n<!-- <section>errors: {{ control().errors | json }}</section> -->\n<!-- <section>errors: {{ errors }}</section> -->\n<!-- <section>invalid: {{ control().invalid }}</section> -->\n<!-- <section>dirty: {{ control().dirty }}</section> -->\n<!-- <section>touched: {{ control().touched }}</section> -->\n<!-- <section>disable: {{ control().disabled }}</section> -->\n<!-- <section>status: {{ control().status }}</section> -->\n\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core'\r\n\r\n@Component({\r\n\tselector: 'gld-input-hint',\r\n\tstandalone: true,\r\n\timports: [],\r\n\ttemplateUrl: './input-hint.component.html',\r\n\tstyleUrl: './input-hint.component.scss',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputHintComponent {}\r\n","<section class=\"hint\">\r\n\t<span class=\"hint__message\">\r\n\t\t<ng-content>hint empty</ng-content>\r\n\t</span>\r\n</section>\r\n","// Angular Imports\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n ReactiveFormsModule,\r\n} from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { InputType } from '../../../models'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-textarea',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './textarea.component.html',\r\n styleUrl: './textarea.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextareaComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class TextareaComponent implements ControlValueAccessor, OnInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n type = input<InputType>('text')\r\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) this.innerControl().setValue(value, { emitEvent: false })\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) this.innerControl().setValue(value)\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n // this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n this.onTouched()\r\n // this.isMenuOpen.set(false)\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <!-- Input -->\r\n <textarea\r\n id=\"input-textarea-{{ name() }}\"\r\n [name]=\"name()\"\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"innerControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onTouched()\"\r\n (keyup.escape)=\"onBlur()\"></textarea>\r\n\r\n <!-- Suffix -->\r\n @if (suffix()) {\r\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n }\r\n</section>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- Suffix emplate -->\r\n<ng-template #suffixTemplate>\r\n <span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\r\n <ng-content select=\"[inputSuffix]\" />\r\n </span>\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3>\r\n<section>errors: {{ errors }}</section>\r\n<section>invalid: {{ control().invalid }}</section>\r\n<section>dirty: {{ control().dirty }}</section>\r\n<section>touched: {{ control().touched }}</section>\r\n<section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'gld-radio-button',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './radio-button.component.html',\r\n styleUrl: './radio-button.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RadioButtonComponent {\r\n value = input.required<unknown>()\r\n changeValue = output<unknown>()\r\n changeFocus = output<boolean>()\r\n\r\n current = signal<unknown>(null)\r\n disabled = signal<boolean>(false)\r\n error = signal<boolean>(false)\r\n selected = computed(() => Boolean(this.current() === this.value()))\r\n\r\n select(value: unknown) {\r\n this.changeValue.emit(value)\r\n }\r\n\r\n keyup(value: unknown) {\r\n this.select(value)\r\n }\r\n\r\n onFocus() {\r\n this.changeFocus.emit(true)\r\n }\r\n\r\n onBlur() {\r\n this.changeFocus.emit(false)\r\n }\r\n}\r\n","<button\r\n\t[tabindex]=\"disabled() ? '-1' : '0'\"\r\n\t(keyup.enter)=\"keyup(value())\"\r\n\t(click)=\"select(value())\"\r\n\tclass=\"radio\"\r\n\t[class.radio--selected]=\"selected()\"\r\n\t[class.radio--disabled]=\"disabled()\"\r\n\t[class.radio--error]=\"error()\"\r\n\t(focus)=\"onFocus()\"\r\n\t(blur)=\"onBlur()\"\r\n\t(keyup.escape)=\"onBlur()\">\r\n\t<span class=\"radio__icon\" [class.radio__icon--selected]=\"selected()\"></span>\r\n\r\n\t<span class=\"radio__label\">\r\n\t\t<ng-content>empty radio button</ng-content>\r\n\t</span>\r\n</button>\r\n","// Angular Imports\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n contentChildren,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core'\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { RadioDirection } from '../../../models'\r\nimport { RadioButtonComponent } from '../radio-button/radio-button.component'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-radio-group',\r\n standalone: true,\r\n imports: [...components],\r\n templateUrl: './radio-group.component.html',\r\n styleUrl: './radio-group.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioGroupComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class RadioGroupComponent implements ControlValueAccessor, OnInit, AfterContentInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n direction = input<keyof typeof RadioDirection>(RadioDirection.horizontal)\r\n\r\n radioButtonChildren = contentChildren<RadioButtonComponent>(RadioButtonComponent)\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) this.updateCurrentInChildren(value)\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => {\r\n this.updateErrorInChildren(\r\n this.control().invalid && (this.control().dirty || this.control().touched),\r\n )\r\n this.#changeDetectorRef.detectChanges()\r\n })\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) => {\r\n radioButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\r\n radioButton.changeFocus.subscribe((focus) => {\r\n if (!focus) this.onTouched()\r\n })\r\n })\r\n }\r\n\r\n updateCurrentInChildren(value: unknown) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent, index: number) => {\r\n radioButton.current.set(value)\r\n // Set current one time\r\n if (index === 0) this.onChange(value)\r\n })\r\n }\r\n\r\n updateErrorInChildren(error: boolean) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) =>\r\n radioButton.error.set(error),\r\n )\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) {\r\n this.innerControl().setValue(value)\r\n }\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n setDisabledState(disabled: boolean): void {\r\n // console.log('setDisabledState')\r\n this.#updateDisabledInChildren(disabled)\r\n }\r\n\r\n #updateDisabledInChildren(disabled: boolean) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) =>\r\n radioButton.disabled.set(disabled),\r\n )\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<article class=\"radio\" [class.radio--disabled]=\"disabled\" [attr.name]=\"name()\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label class=\"radio__label\" [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n <section class=\"radio__items radio__items--{{ direction() }}\">\r\n <ng-content select=\"gld-radio-button\" />\r\n </section>\r\n</article>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error border [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input, output } from '@angular/core'\r\n// This Module Imports\r\nimport { InputValue } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-select-option',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './select-option.component.html',\r\n styleUrl: './select-option.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SelectOptionComponent {\r\n value = input.required<InputValue>()\r\n disabled = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n selected = output<InputValue>()\r\n changeFocus = output<boolean>()\r\n\r\n select(): void {\r\n if (!this.disabled()) this.selected.emit(this.value())\r\n }\r\n\r\n keyup() {\r\n this.select()\r\n }\r\n\r\n onFocus() {\r\n this.changeFocus.emit(true)\r\n }\r\n\r\n onBlur() {\r\n this.changeFocus.emit(false)\r\n }\r\n}\r\n","<button\r\n [tabindex]=\"disabled() ? '-1' : '0'\"\r\n (keyup.enter)=\"keyup()\"\r\n (click)=\"select()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n (keyup.escape)=\"onBlur()\">\r\n <span><ng-content> an option </ng-content></span>\r\n</button>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChildren,\r\n AfterContentInit,\r\n ElementRef,\r\n forwardRef,\r\n input,\r\n viewChild,\r\n effect,\r\n OnInit,\r\n inject,\r\n DestroyRef,\r\n ChangeDetectorRef,\r\n signal,\r\n} from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n ReactiveFormsModule,\r\n FormControl,\r\n} from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { IconComponent } from '../../icon/icon.component'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\nimport { SelectOptionComponent } from '../select-option/select-option.component'\r\nimport { Icons, InputValue } from '../../../models'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [IconComponent, InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-select',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './select.component.html',\r\n styleUrl: './select.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SelectComponent implements ControlValueAccessor, OnInit, AfterContentInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n readonly Icons = Icons\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n transform = input<(value: unknown) => string>((value: unknown) => String(value))\r\n\r\n selectElement = viewChild<ElementRef<HTMLElement>>('selectElement')\r\n selectOptionChildren = contentChildren<SelectOptionComponent>(SelectOptionComponent)\r\n\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n isMenuOpen = signal(false)\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.selectOptionChildren()) this.#detectSelectOptionChildren()\r\n })\r\n\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) {\r\n const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\r\n }\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.#detectSelectOptionChildren()\r\n\r\n this.selectOptionChildren().map((selectOption: SelectOptionComponent) => {\r\n selectOption.changeFocus.subscribe((focus) => {\r\n // console.log('focus', focus)\r\n if (focus) this.onFocus()\r\n else this.onBlur()\r\n })\r\n })\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) {\r\n // const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(value)\r\n }\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n // console.log('blur')\r\n this.onTouched()\r\n this.isMenuOpen.set(false)\r\n }\r\n\r\n arrowIconClicked() {\r\n // FIXME: This is a workaround to prevent the menu from closing when the arrow icon is clicked.\r\n // console.log('clicked - init', this.isMenuOpen())\r\n if (this.isMenuOpen()) this.onTouched()\r\n this.isMenuOpen.update((open) => !open)\r\n // console.log('clicked - end', this.isMenuOpen())\r\n }\r\n\r\n #transformValue(value: unknown): string | null {\r\n let valueTransformed: string | null\r\n\r\n if (value === null || value === undefined) valueTransformed = null\r\n else valueTransformed = this.transform()(value)\r\n\r\n return valueTransformed\r\n }\r\n\r\n #detectSelectOptionChildren() {\r\n const selectOptionChildren = this.selectOptionChildren()\r\n const selectElement: HTMLElement | undefined = this.selectElement()?.nativeElement\r\n selectElement?.style.setProperty('--gld-option-items', String(selectOptionChildren.length))\r\n const clientHeight: number | undefined =\r\n selectElement?.querySelector('gld-select-option')?.clientHeight\r\n if (clientHeight) selectElement?.style.setProperty('--gld-option-height', `${clientHeight}px`)\r\n\r\n selectOptionChildren.map((selectOption) => {\r\n selectOption.selected.subscribe((value: InputValue) => {\r\n if (value) {\r\n const buttons = Array.from(\r\n selectElement?.querySelectorAll('gld-select-option button') ?? [],\r\n ) as HTMLButtonElement[]\r\n buttons.map((button) => button.blur())\r\n const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\r\n this.onChange(value)\r\n this.onTouched()\r\n this.isMenuOpen.set(false)\r\n }\r\n })\r\n })\r\n }\r\n}\r\n","\r\n@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section #selectElement class=\"select\">\r\n\t<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n\t\t<!-- Label -->\r\n\t\t@if (label()) {\r\n\t\t\t<label [for]=\"name()\">\r\n\t\t\t\t{{ label() }}\r\n\t\t\t</label>\r\n\t\t}\r\n\t\t<!-- Input -->\r\n\t\t<input\r\n\t\t\ttype=\"text\"\r\n\t\t\tid=\"input-select-{{ name() }}\"\r\n\t\t\t[tabindex]=\"disabled ? '-1' : '0'\"\r\n\t\t\t[name]=\"name()\"\r\n\t\t\t[placeholder]=\"placeholder()\"\r\n\t\t\t[formControl]=\"innerControl()\"\r\n\t\t\t(focus)=\"onFocus()\"\r\n\t\t\t(blur)=\"onBlur()\"\r\n\t\t\t(keyup.escape)=\"onBlur()\" />\r\n\r\n\t\t<!-- Suffix -->\r\n\t\t<ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n\r\n\t\t<!-- Menu -->\r\n\t\t<ng-container [ngTemplateOutlet]=\"menuTemplate\" />\r\n\t</section>\r\n\t<!-- Errors -->\r\n\t@if (errors) {\r\n\t\t<ng-content select=\"gld-input-error\">\r\n\t\t\t<gld-input-error [errors]=\"control().errors\" />\r\n\t\t</ng-content>\r\n\t} @else {\r\n\t\t<!-- Hint -->\r\n\t\t<ng-content select=\"gld-input-hint\" />\r\n\t}\r\n</section>\r\n\r\n<!-- Menu Template -->\r\n<ng-template #menuTemplate>\r\n\t<section class=\"select-menu\" [class.select-menu--opened]=\"isMenuOpen()\">\r\n\t\t<ng-content select=\"gld-select-option\" />\r\n\t</section>\r\n</ng-template>\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n\t@if (control().pending) {\r\n\t\t<gld-icon\r\n\t\t\tsize=\"small\"\r\n\t\t\tclass=\"input-icon input-icon--animated\"\r\n\t\t\t[class.input-icon--error]=\"errors\"\r\n\t\t\t[icon]=\"Icons.loader4Fill\"\r\n\t\t\t[disabled]=\"disabled\" />\r\n\t} @else {\r\n\t\t<gld-icon\r\n\t\t\tsize=\"small\"\r\n\t\t\tclass=\"input-icon\"\r\n\t\t\t[class.input-icon--rotated]=\"isMenuOpen()\"\r\n\t\t\t[class.input-icon--error]=\"errors\"\r\n\t\t\t[icon]=\"Icons.arrowDownSLine\"\r\n\t\t\t[disabled]=\"disabled\"\r\n\t\t\t(clicked)=\"arrowIconClicked()\" />\r\n\t}\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n<!-- <section>status: {{ control().status }}</section> -->\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n\t<gld-icon\r\n\t\tsize=\"small\"\r\n\t\tclass=\"input-icon\"\r\n\t\t[class.input-icon--error]=\"errors\"\r\n\t\t[icon]=\"Icons.arrowDownSLine\" />\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core'\r\nimport { NgOptimizedImage } from '@angular/common'\r\n\r\n@Component({\r\n selector: 'gld-image',\r\n standalone: true,\r\n imports: [NgOptimizedImage],\r\n templateUrl: './image.component.html',\r\n styleUrl: './image.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ImageComponent {\r\n src = input.required<string>()\r\n alt = input.required<string>()\r\n // srcset = input<string>('')\r\n // sizes = input<string>('')\r\n priority = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n}\r\n","<!-- @if (srcset() && sizes()) {\r\n @if (priority()) {\r\n <img fill priority alt=\"{{ alt() }}\" [ngSrc]=\"src()\" [ngSrcset]=\"srcset()\" [sizes]=\"sizes()\" />\r\n } @else {\r\n <img\r\n fill\r\n alt=\"{{ alt() }}\"\r\n [ngSrc]=\"src()\"\r\n [ngSrcset]=\"srcset()\"\r\n [sizes]=\"sizes()\"\r\n loading=\"lazy\" />\r\n }\r\n} @else {\r\n @if (priority()) {\r\n <img fill priority alt=\"{{ alt() }}\" [ngSrc]=\"src()\" />\r\n } @else {\r\n <img fill alt=\"{{ alt() }}\" [ngSrc]=\"src()\" loading=\"lazy\" />\r\n }\r\n} -->\r\n\r\n@if (priority()) {\r\n <img fill priority alt=\"{{ alt() }}\" [ngSrc]=\"src()\" />\r\n} @else {\r\n <img fill alt=\"{{ alt() }}\" [ngSrc]=\"src()\" loading=\"lazy\" />\r\n}\r\n","// Angular Imports\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input } from '@angular/core'\n\n@Component({\n standalone: true,\n selector: 'gld-loader',\n imports: [],\n templateUrl: './loader.component.html',\n styleUrl: './loader.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoaderComponent {\n loading = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n background = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n radius = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n minHeight = input<string>('auto')\n}\n","<article\n class=\"loader\"\n [class.loader--loading]=\"loading()\"\n [class.loader--background]=\"background()\"\n [class.loader--radius]=\"radius()\"\n [style.minHeight]=\"minHeight()\">\n <!-- Content -->\n <ng-content />\n\n <!-- Loader -->\n @if (loading()) {\n <section class=\"loader-loading\">\n <svg class=\"container\" viewBox=\"0 0 40 40\" height=\"40\" width=\"40\">\n <circle\n class=\"track\"\n cx=\"20\"\n cy=\"20\"\n r=\"17.5\"\n pathlength=\"100\"\n stroke-width=\"5px\"\n fill=\"none\" />\n <circle\n class=\"car\"\n cx=\"20\"\n cy=\"20\"\n r=\"17.5\"\n pathlength=\"100\"\n stroke-width=\"5px\"\n fill=\"none\" />\n </svg>\n </section>\n }\n</article>\n","// Angular Imports\nimport {\n Component,\n signal,\n input,\n output,\n computed,\n effect,\n ChangeDetectionStrategy,\n} from '@angular/core'\n// Shared Imports\n// import { IconButtonComponent } from '../../../components'\nimport { Icons, TablePagination } from '../../../models'\n\n@Component({\n selector: 'gld-table-pagination',\n standalone: true,\n imports: [],\n templateUrl: './table-pagination.component.html',\n styleUrl: './table-pagination.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TablePaginationComponent {\n readonly Icons = Icons\n\n pagination = input.required<TablePagination>()\n page = output<number>()\n changeToNext = output<number>()\n changeToPrevious = output<number>()\n\n currentPage = signal<number>(0)\n maxPages = computed(() => {\n if (this.pagination().itemsPerPage > this.pagination().maxItems) return 1\n else return Math.ceil(this.pagination().maxItems / this.pagination().itemsPerPage)\n })\n\n constructor() {\n effect(() => this.page.emit(this.currentPage()))\n effect(() => {\n const initialPage = this.pagination().initialPage\n if (initialPage) this.currentPage.set(initialPage)\n })\n }\n\n nextPage(): void {\n if (this.pagination().maxItems !== 0) {\n if (\n this.currentPage() !==\n Math.ceil(this.pagination().maxItems / this.pagination().itemsPerPage)\n ) {\n this.currentPage.update((previousPage) => previousPage + 1)\n }\n }\n this.changeToNext.emit(this.currentPage())\n }\n\n previousPage(): void {\n if (this.currentPage() === 1) {\n this.currentPage.set(1)\n } else {\n this.currentPage.update((previousPage) => previousPage - 1)\n }\n\n this.changeToPrevious.emit(this.currentPage())\n }\n}\n","<article class=\"Pagination\" >\n <section class=\"Pagination-info\">\n <p class=\"Pagination-label\">Página {{ currentPage() }} de {{ maxPages() }}</p>\n </section>\n <section class=\"Pagination-actions\">\n <!-- <gld-icon-button\n class=\"\"\n name=\"button-next\"\n iconSize=\"small\"\n [icon]=\"Icons.arrowLeftSLine\"\n (clicked)=\"previousPage()\" />\n <gld-icon-button\n class=\"\"\n name=\"button-previous\"\n iconSize=\"small\"\n [icon]=\"Icons.arrowRightSLine\"\n (clicked)=\"nextPage()\" /> -->\n </section>\n</article>\n","// Angular Imports\nimport { ChangeDetectionStrategy, Component, inject, input, output } from '@angular/core'\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms'\n// Shared Imports\n// import { IconComponent } from '../../../components'\nimport { Icons, TableSearchAction, TableSearchOutput } from '../../../models'\n// Thirdparty Imports\nimport { debounceTime } from 'rxjs'\n\n@Component({\n selector: 'gld-table-search',\n standalone: true,\n imports: [ReactiveFormsModule],\n templateUrl: './table-search.component.html',\n styleUrl: './table-search.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableSearchComponent {\n readonly #formBuilder = inject(FormBuilder)\n readonly Icons = Icons\n\n placeholder = input<string>('buscar')\n width = input<string>('auto')\n debounceTime = input<number>(250)\n searching = output<TableSearchOutput>()\n\n control = this.#formBuilder.control('')\n\n constructor() {\n this.control.valueChanges\n .pipe(debounceTime(this.debounceTime()))\n .subscribe((value: string | null) => {\n const action: TableSearchAction =\n value?.length ? TableSearchAction.searching : TableSearchAction.cleared\n const searching: string = value?.length ? value : ''\n\n this.searching.emit({\n action,\n searching,\n })\n })\n }\n}\n","<article class=\"Search\">\n <section class=\"Input\" [style.width]=\"width()\">\n <!-- <gld-icon [icon]=\"Icons.search2Line\" /> -->\n\n <input\n id=\"search\"\n name=\"search\"\n type=\"search\"\n [placeholder]=\"placeholder()\"\n [formControl]=\"control\" />\n </section>\n</article>\n","// Angular Imports\nimport {\n Component,\n computed,\n input,\n booleanAttribute,\n ChangeDetectionStrategy,\n signal,\n output,\n effect,\n} from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\n// Angular Material Imports\n// import { CdkMenuModule } from '@angular/cdk/menu'\n// Shared Imports\nimport {\n Icons,\n TableColumn,\n TableColumnAction,\n TableColumnActionOutput,\n TableColumnStructure,\n TableColumnToTableColumns,\n} from '../../../models'\nimport {\n DropdownButtonComponent,\n DropdownMenuComponent,\n LoaderComponent,\n} from '../../../components'\n\nconst components = [DropdownButtonComponent, DropdownMenuComponent, LoaderComponent]\n\n@Component({\n selector: 'gld-table',\n standalone: true,\n imports: [NgTemplateOutlet, ...components],\n templateUrl: './table.component.html',\n styleUrl: './table.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableComponent {\n readonly Icons = Icons\n\n tableColumns = input.required<TableColumn[]>()\n emptyMessage = input<string>('')\n tableHeight = input<string>('auto')\n loading = input<boolean, boolean | string>(true, { transform: booleanAttribute })\n selects = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n selectsAll = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n search = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n pagination = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n tableColumnAction = output<TableColumnActionOutput>()\n\n tableColumnsToShow = computed(() =>\n this.tableColumns().filter((column: TableColumn) => !column.hide),\n )\n tableColumnActions = signal<TableColumnAction[]>([])\n\n constructor() {\n effect(() => {\n console.log('effect', this.loading())\n })\n }\n\n tableActionFunction({ tableColumnActionAsEvent, tableColumns, index }: TableActionFunction) {\n const tableColumnAction = tableColumnActionAsEvent as TableColumnAction\n const object: unknown = this.#buildObjectFromTableColumn({ tableColumns, index })\n const event: TableColumnActionOutput = {\n tableColumnAction,\n object,\n }\n this.tableColumnAction.emit(event)\n }\n\n changeValue(event: unknown) {\n console.log('event', event)\n }\n\n // We build each column and in case it doesn't exist or update it in case it already exists\n buildTableColumns<T>({\n tableColumnStructures,\n tableColumnActions,\n dataStructures,\n }: TableColumnToTableColumns): TableColumn[] {\n const tableColumns: TableColumn[] = []\n const structures = dataStructures as T[]\n this.tableColumnActions.set(tableColumnActions)\n\n // console.log('buildTableColumns')\n tableColumnStructures.map((column: TableColumnStructure) => {\n structures.map((dataItem: T) => {\n // We check if the property we pass it exists within the object we receive\n // eslint-disable-next-line no-prototype-builtins\n if (dataItem?.hasOwnProperty(column.name)) {\n const propertyValue = dataItem[column.name as keyof T] as T\n // We check if a column already exists in our array with the name of that property\n const currentTableColumn: TableColumn | undefined = tableColumns.find(\n (_column: TableColumn) => _column.name === column.name,\n )\n if (currentTableColumn) {\n // If it exists, we update it\n const tableColumn: TableColumn = currentTableColumn\n tableColumn.values = [...currentTableColumn.values, propertyValue]\n } else {\n // If it doesn't exist, we add it\n const tableColumnToAdd: TableColumn = {\n name: column.name,\n label: column.label,\n width: column.width ? column.width : 'auto',\n minWidth: column.minWidth ? column.minWidth : 'auto',\n maxWidth: column.maxWidth ? column.maxWidth : 'auto',\n hide: column.hide ?? false,\n template: column.template ?? undefined,\n justify: column.justify ? column.justify : 'left',\n transform:\n column.transform ?\n column.transform\n : (value: unknown) => {\n if (typeof value === 'string' || typeof value === 'number') return value\n else return String(value)\n },\n values: [propertyValue],\n }\n tableColumns.push(tableColumnToAdd)\n }\n } else {\n console.error(\n `this column \"${column.name}\" doesn't exist in this data structure`,\n dataStructures,\n )\n }\n })\n })\n\n return tableColumns\n }\n\n buildDataStructure({ index }: { index: number }) {\n return this.#buildObjectFromTableColumn({ tableColumns: this.tableColumns(), index })\n }\n\n #buildObjectFromTableColumn({ tableColumns, index }: BuildObjectFromTableColumn) {\n // We reconstruct the object passed to us from the selected index and the columns we receive\n\n /* INFO:\n\t\t\tUsing this data as an input:\n\t\t\tindex: 0\n\t\t\tcolumns = [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Id',\n\t\t\t\t\tname: 'id',\n\t\t\t\t\tvalues: ['333333', '222222'],\n\t\t\t\t\twidth: '100px',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Name',\n\t\t\t\t\tname: 'name',\n\t\t\t\t\tvalues: ['Buenos Aires', 'Mendoza'],\n\t\t\t\t\twidth: 'auto',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Chargers',\n\t\t\t\t\tname: 'chargers',\n\t\t\t\t\tvalues: [24, 27],\n\t\t\t\t\twidth: '150px',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Hoses',\n\t\t\t\t\tname: 'hoses',\n\t\t\t\t\tvalues: [23, 26],\n\t\t\t\t\twidth: '150px',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Drivers',\n\t\t\t\t\tname: 'drivers',\n\t\t\t\t\tvalues: [25, 29],\n\t\t\t\t\twidth: '150px',\n\t\t\t\t},\n\t\t\t]\n\n\t\t \tWe will receive this result:\n\t\t\t{\n\t\t\t\tchargers: 24\n\t\t\t\tdrivers: 25\n\t\t\t\thoses: 23\n\t\t\t\tid: '333333'\n\t\t\t\tname: 'Buenos Aires'\n\t\t\t}\n\t\t*/\n\n return tableColumns.reduce((previous: Partial<TableColumn>, current: TableColumn) => {\n return { ...previous, [current.name]: current.values[index] }\n }, {})\n }\n}\n\ninterface TableActionFunction {\n tableColumnActionAsEvent: unknown\n tableColumns: TableColumn[]\n index: number\n}\n\ninterface BuildObjectFromTableColumn {\n tableColumns: TableColumn[]\n index: number\n}\n","<!-- Search -->\n@if (search()) {\n <section class=\"table-search\">\n <ng-content select=\"gld-table-search\" />\n </section>\n}\n\n<!-- Table -->\n<article\n class=\"table\"\n [class.table--empty]=\"!tableColumnsToShow().length\"\n [style.height]=\"tableHeight()\">\n <!-- Table Content -->\n <section\n class=\"table-content\"\n [class.table-content--actions]=\"tableColumnActions().length\"\n [class.table-content--selects]=\"selects()\">\n <!-- Loading -->\n @if (loading()) {\n <gld-loader loading background minHeight=\"100px\" />\n } @else {\n <!-- Table Columns -->\n @for (tableColumn of tableColumnsToShow(); track tableColumn) {\n <section\n class=\"table-column\"\n [style.flexBasis]=\"tableColumn.width\"\n [style.flexShrink]=\"tableColumn.width === 'auto' ? '1' : '0'\"\n [style.flexGrow]=\"tableColumn.width === 'auto' ? '1' : '0'\"\n [style.minWidth]=\"tableColumn.minWidth\"\n [style.maxWidth]=\"tableColumn.maxWidth\">\n <section class=\"table-header\">\n <span class=\"table-header-ellipsis\">{{ tableColumn.label }}</span>\n </section>\n @for (value of tableColumn.values; track $index) {\n <section\n class=\"table-cell\"\n [style.justifyContent]=\"tableColumn.justify\"\n [style.textAlign]=\"tableColumn.justify\">\n @if (tableColumn.transform(value) !== undefined) {\n @switch (true) {\n @case (tableColumn.template !== undefined) {\n <ng-container\n [ngTemplateOutlet]=\"tableColumn.template\"\n [ngTemplateOutletContext]=\"{ value: tableColumn.transform(value) }\" />\n }\n @default {\n <span class=\"table-cell-ellipsis\">{{ tableColumn.transform(value) }}</span>\n }\n }\n } @else {\n <span>-</span>\n }\n </section>\n }\n </section>\n } @empty {\n <!-- Empty -->\n <section class=\"table-empty\">\n <p>{{ emptyMessage() ? emptyMessage() : 'We have not data to show yet!' }}</p>\n </section>\n }\n }\n </section>\n\n <!-- Table Actions -->\n @if ((tableColumnActions().length || selects()) && !loading() && tableColumnsToShow().length) {\n <section\n class=\"table-column\"\n [class.table-column--actions]=\"tableColumnActions().length\"\n [class.table-column--selects]=\"selects()\">\n <!-- Header -->\n <section\n class=\"table-header\"\n [class.table-header--actions]=\"tableColumnActions().length\"\n [class.table-header--selects]=\"selects()\">\n <!-- Select All Checkbox -->\n @if (selectsAll()) {\n <!-- <mat-checkbox\n color=\"primary\"\n matTooltip=\"Todo\"\n matTooltipClass=\"Tooltip\"\n class=\"Checkbox\"\n [checked]=\"\n dragAndDropColumnSelected().length === dragAndDropColumns().at(0)?.values?.length\n \"\n [indeterminate]=\"\n !!dragAndDropColumnSelected().length &&\n dragAndDropColumnSelected().length !== dragAndDropColumns().at(0)?.values?.length\n \"\n (change)=\"onSelectOrUnselectAll($event, dragAndDropColumns())\"\n /> -->\n }\n </section>\n @for (value of tableColumnsToShow().at(0)?.values; track $index; let index = $index) {\n <!-- Cell -->\n <section class=\"table-cell table-cell--actions\">\n <!-- Select Checkbox -->\n @if (selects()) {\n <!-- <mat-checkbox\n color=\"primary\"\n class=\"Checkbox\"\n matTooltip=\"Seleccionar\"\n matTooltipClass=\"Tooltip\"\n [checked]=\"isSelected(dragAndDropColumns(), index)\"\n (change)=\"onSelect($event, dragAndDropColumns(), index)\" /> -->\n }\n @if (tableColumnActions()) {\n <!-- Dropdown Menu -->\n <gld-dropdown-menu\n background\n name=\"more button of table cell\"\n type=\"iconButton\"\n iconSize=\"small\"\n direction=\"left\"\n [icon]=\"Icons.more2Fill\"\n (changeValue)=\"\n tableActionFunction({\n tableColumnActionAsEvent: $event,\n tableColumns: tableColumns(),\n index,\n })\n \">\n @for (tableColumnAction of tableColumnActions(); track tableColumnAction.type) {\n <gld-dropdown-button\n [value]=\"tableColumnAction\"\n [icon]=\"tableColumnAction.icon\"\n iconSize=\"tiny\">\n {{ tableColumnAction.label }}\n </gld-dropdown-button>\n }\n </gld-dropdown-menu>\n <!-- <gld-icon-button\n background\n name=\"more button of table cell\"\n iconSize=\"small\"\n [icon]=\"Icons.more2Fill\"> -->\n <!-- <gld-tile color=\"blue-to-green\" class=\"Menu\">\n <section class=\"Menu-content\">\n @for (tableColumnAction of tableColumnActions(); track tableColumnAction.type) {\n <button\n class=\"Menu-button {{ tableColumnAction?.classToHover ?? '' }}\"\n [class.Menu-button--hidden]=\"\n !tableColumnAction.showWhen(buildDataStructure({ index }))\n \"\n (click)=\"\n tableActionFunction({\n tableColumnAction,\n tableColumns: tableColumns(),\n index,\n })\n \">\n <gld-icon size=\"tiny\" [icon]=\"tableColumnAction.icon\" />\n <span class=\"Menu-button-ellipsis\">{{ tableColumnAction.label }}</span>\n </button>\n }\n </section>\n </gld-tile> -->\n <!-- </gld-icon-button> -->\n }\n </section>\n }\n </section>\n }\n</article>\n\n<!-- Pagination -->\n@if (pagination()) {\n <section class=\"table-pagination\">\n <ng-content select=\"gld-table-pagination\" />\n </section>\n}\n","// Angular Imports\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input } from '@angular/core'\n// This Module Imports\nimport { TileColor, TilePaddingSize } from '../../models'\n\n@Component({\n selector: 'gld-tile',\n standalone: true,\n imports: [],\n templateUrl: './tile.component.html',\n styleUrl: './tile.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TileComponent {\n color = input<keyof typeof TileColor>(TileColor.default)\n paddingSize = input<keyof typeof TilePaddingSize>(TilePaddingSize.zero)\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n hover = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n}\n","<article\n class=\"tile tile--{{ color() }} tile--padding-{{ paddingSize() }}\"\n [class.tile--background]=\"background()\"\n [class.tile--hover]=\"hover()\">\n <section class=\"tile-content\">\n <ng-content />\n </section>\n</article>\n","// Always first\r\nexport { IconComponent } from './icon/icon.component'\r\n// Unordered\r\nexport { ButtonComponent } from './buttons/button/button.component'\r\nexport { IconButtonComponent } from './buttons/icon-button/icon-button.component'\r\nexport { LinkComponent } from './buttons/link/link.component'\r\nexport { DropdownButtonComponent } from './buttons/dropdown-button/dropdown-button.component'\r\nexport { DropdownMenuComponent } from './buttons/dropdown-menu/dropdown-menu.component'\r\nexport { ToggleButtonComponent } from './buttons/toggle-button/toggle-button.component'\r\nexport { ToggleGroupComponent } from './buttons/toggle-group/toggle-group.component'\r\nexport { InputComponent } from './controls/input/input.component'\r\nexport { InputDateComponent } from './controls/input-date/input-date.component'\r\nexport { InputHintComponent } from './controls/input-hint/input-hint.component'\r\nexport { InputErrorComponent } from './controls/input-error/input-error.component'\r\nexport { TextareaComponent } from './controls/textarea/textarea.component'\r\nexport { RadioButtonComponent } from './controls/radio-button/radio-button.component'\r\nexport { RadioGroupComponent } from './controls/radio-group/radio-group.component'\r\nexport { SelectOptionComponent } from './controls/select-option/select-option.component'\r\nexport { SelectComponent } from './controls/select/select.component'\r\nexport { ImageComponent } from './image/image.component'\r\nexport { LoaderComponent } from './loaders/loader/loader.component'\r\nexport { TablePaginationComponent } from './tables/table-pagination/table-pagination.component'\r\nexport { TableSearchComponent } from './tables/table-search/table-search.component'\r\nexport { TableComponent } from './tables/table/table.component'\r\nexport { TileComponent } from './tile/tile.component'\r\n","/*\n * Public API Surface of iamgld-ui\n */\n\nexport * from './lib/utils'\nexport * from './lib/models'\nexport * from './lib/validators'\nexport * from './lib/directives'\nexport * from './lib/components'\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["components"],"mappings":"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"}
1
+ {"version":3,"file":"iamgld-ui.mjs","sources":["../../../projects/iamgld-ui/src/lib/utils/date/date.util.ts","../../../projects/iamgld-ui/src/lib/utils/string/string.util.ts","../../../projects/iamgld-ui/src/lib/models/buttons/button.model.ts","../../../projects/iamgld-ui/src/lib/models/buttons/dropdown.model.ts","../../../projects/iamgld-ui/src/lib/models/buttons/link.model.ts","../../../projects/iamgld-ui/src/lib/models/controls/radio.model.ts","../../../projects/iamgld-ui/src/lib/models/controls/select.model.ts","../../../projects/iamgld-ui/src/lib/models/icon/icon.model.ts","../../../projects/iamgld-ui/src/lib/models/tables/table.model.ts","../../../projects/iamgld-ui/src/lib/models/tiles/tile.model.ts","../../../projects/iamgld-ui/src/lib/validators/is-date/is-date.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-document/is-document.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-email/is-email.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-form-select-item/is-form-select-item.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-license-plate/is-license-plate.validator.ts","../../../projects/iamgld-ui/src/lib/validators/is-natural-number/is-natural-number.validator.ts","../../../projects/iamgld-ui/src/lib/validators/minimum-age/minimum-age.validator.ts","../../../projects/iamgld-ui/src/lib/validators/must-match/must-match.validator.ts","../../../projects/iamgld-ui/src/lib/validators/must-unmatch/must-unmatch.validator.ts","../../../projects/iamgld-ui/src/lib/directives/dropdown-menu-template/dropdown-menu-template.directive.ts","../../../projects/iamgld-ui/src/lib/directives/input-error-message/input-error-message.directive.ts","../../../projects/iamgld-ui/src/lib/components/icon/icon.component.ts","../../../projects/iamgld-ui/src/lib/components/icon/icon.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/button/button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/button/button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/icon-button/icon-button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/icon-button/icon-button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/link/link.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/link/link.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-button/dropdown-button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-button/dropdown-button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-menu/dropdown-menu.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/dropdown-menu/dropdown-menu.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-button/toggle-button.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-button/toggle-button.component.html","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-group/toggle-group.component.ts","../../../projects/iamgld-ui/src/lib/components/buttons/toggle-group/toggle-group.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-error/input-error.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-error/input-error.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input/input.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input/input.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-date/input-date.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-date/input-date.component.html","../../../projects/iamgld-ui/src/lib/components/controls/input-hint/input-hint.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input-hint/input-hint.component.html","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.html","../../../projects/iamgld-ui/src/lib/components/controls/radio-button/radio-button.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-button/radio-button.component.html","../../../projects/iamgld-ui/src/lib/components/controls/radio-group/radio-group.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/radio-group/radio-group.component.html","../../../projects/iamgld-ui/src/lib/components/controls/select-option/select-option.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/select-option/select-option.component.html","../../../projects/iamgld-ui/src/lib/components/controls/select/select.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/select/select.component.html","../../../projects/iamgld-ui/src/lib/components/image/image.component.ts","../../../projects/iamgld-ui/src/lib/components/image/image.component.html","../../../projects/iamgld-ui/src/lib/components/loaders/loader/loader.component.ts","../../../projects/iamgld-ui/src/lib/components/loaders/loader/loader.component.html","../../../projects/iamgld-ui/src/lib/components/tables/table-pagination/table-pagination.component.ts","../../../projects/iamgld-ui/src/lib/components/tables/table-pagination/table-pagination.component.html","../../../projects/iamgld-ui/src/lib/components/tables/table-search/table-search.component.ts","../../../projects/iamgld-ui/src/lib/components/tables/table-search/table-search.component.html","../../../projects/iamgld-ui/src/lib/components/tables/table/table.component.ts","../../../projects/iamgld-ui/src/lib/components/tables/table/table.component.html","../../../projects/iamgld-ui/src/lib/components/tile/tile.component.ts","../../../projects/iamgld-ui/src/lib/components/tile/tile.component.html","../../../projects/iamgld-ui/src/lib/components/index.ts","../../../projects/iamgld-ui/src/public-api.ts","../../../projects/iamgld-ui/src/iamgld-ui.ts"],"sourcesContent":["export function formatDateToISO(outerDate: string | Date): string | null {\n\tconst date = new Date(outerDate)\n\tif (!isNaN(date.getTime())) return date.toISOString()\n\telse return null\n}\n\nexport function formatDateFromISOToDDMMYYYY(dateAsString: string): string | null {\n\tconst [year, month, day] = dateAsString.split('-')\n\tif (year && month && day) return `${day}/${month}/${year}`\n\telse return null\n}\n\nexport function formatDateFromISOToYYYYMMDD(dateAsString: string | null): string | null {\n\tif (!dateAsString) return null\n\tconst [date] = dateAsString.split('T')\n\n\tif (date) return date\n\telse return null\n}\n\nexport function getDateWithOffsetInYears({ years }: { years: number }): Date {\n\tconst today = new Date()\n\ttoday.setFullYear(today.getFullYear() + years) // Agrega o resta años\n\treturn today\n}\n\n","export function capitalizeFirstLetter(str: string): string {\n\tif (!str) return str // Maneja el caso de string vacío\n\treturn str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()\n}\n\n","export enum ButtonColor {\n pink = 'pink',\n purple = 'purple',\n mustard = 'mustard',\n orange = 'orange',\n red = 'red',\n blue = 'blue',\n green = 'green',\n}\n\nexport enum ButtonSize {\n tiny = 'tiny',\n small = 'small',\n normal = 'normal',\n medium = 'medium',\n large = 'large',\n}\n\n","export enum DropdownType {\n button = 'button',\n iconButton = 'iconButton',\n}\n\nexport enum DropdownDirection {\n left = 'left',\n right = 'right',\n}\n\n","export enum LinkType {\n default = 'default',\n}\n\nexport enum LinkAlign {\n left = 'left',\n right = 'right',\n center = 'center',\n}\n\n","export enum RadioDirection {\r\n horizontal = 'horizontal',\r\n vertical = 'vertical',\r\n}\r\n","export enum SelectType {\r\n default = 'default',\r\n inline = 'inline',\r\n}\r\n","export enum Icons {\r\n arrowDownSLine = 'arrow-down-s-line',\r\n arrowUpSLine = 'arrow-up-s-line',\r\n checkboxCircleLine = 'checkbox-circle-line',\r\n checkboxBlankCircleLine = 'checkbox-blank-circle-line',\r\n loader4Fill = 'loader-4-fill',\r\n logoutCircleLine = 'ri-logout-circle-line',\r\n loginCircleLine = 'ri-login-circle-line',\r\n gitRepositoryLine = 'ri-git-repository-line',\r\n fileList3Line = 'ri-file-list-3-line',\r\n menuLine = 'ri-menu-line',\r\n sunLine = 'ri-sun-line',\r\n moonClearLine = 'ri-moon-clear-line',\r\n englishInput = 'ri-english-input',\r\n translate = 'ri-translate',\r\n user4Line = 'ri-user-4-line',\r\n shapesLine = 'ri-shapes-line',\r\n closeLine = 'ri-close-line',\r\n eyeLine = 'ri-eye-line',\r\n eyeCloseLine = 'ri-eye-close-line',\r\n linkedinBoxFill = 'ri-linkedin-box-fill',\r\n githubFill = 'ri-github-fill',\r\n instagramFill = 'ri-instagram-fill',\r\n twitterXFill = 'ri-twitter-x-fill',\r\n downloadCloud2Line = 'ri-download-cloud-2-line',\r\n globeLine = 'ri-globe-line',\r\n mailSendLine = 'ri-mail-send-line',\r\n pagesLine = 'ri-pages-line',\r\n gitForkLine = 'ri-git-fork-line',\r\n gitRepositoryPrivateLine = 'ri-git-repository-private-line',\r\n starLine = 'ri-star-line',\r\n calendar2Line = 'ri-calendar-2-line',\r\n macLine = 'ri-mac-line',\r\n more2Fill = 'ri-more-2-fill',\r\n editLine = 'ri-edit-line',\r\n deleteBinLine = 'ri-delete-bin-line',\r\n}\r\n\r\nexport enum IconsSize {\r\n tiny = 'tiny',\r\n small = 'small',\r\n normal = 'normal',\r\n medium = 'medium',\r\n large = 'large',\r\n}\r\n\r\nexport enum IconsSpace {\r\n left = 'left',\r\n right = 'right',\r\n none = 'none',\r\n}\r\n","// Angular Imports\nimport { TemplateRef } from '@angular/core'\n// This Module Imports\nimport { Icons } from '../icon/icon.model'\n\n// Table\nexport interface TableColumn {\n name: string\n label: string\n width: string\n minWidth: string\n maxWidth: string\n template: TemplateRef<unknown> | undefined\n justify: 'left' | 'center' | 'right'\n hide: boolean\n transform: (value: unknown) => string | number\n values: unknown[]\n}\n\nexport interface TableColumnStructure {\n name: string\n label: string\n width?: string\n minWidth?: string\n maxWidth?: string\n template?: TemplateRef<unknown>\n justify?: 'left' | 'center' | 'right'\n hide?: boolean\n transform?: (value: unknown) => string | number\n}\n\nexport interface TableColumnToTableColumns {\n tableColumnStructures: TableColumnStructure[]\n tableColumnActions: TableColumnAction[]\n dataStructures: unknown[]\n}\n\nexport interface TableColumnAction {\n label: string\n icon: Icons\n type: TableColumnActionType\n showWhen: (dataStructure: unknown) => boolean\n}\n\nexport enum TableColumnActionType {\n show = 'show',\n open = 'open',\n update = 'update',\n delete = 'delete',\n}\n\nexport interface TableColumnActionOutput {\n tableColumnAction: TableColumnAction\n object: unknown\n}\n\n// Table Search\nexport interface TableSearchOutput {\n action: TableSearchAction\n searching: string\n}\n\nexport enum TableSearchAction {\n searching = 'searching',\n cleared = 'cleared',\n}\n\n// Table Pagination\nexport interface TablePagination {\n itemsPerPage: number\n initialPage: number\n maxItems: number\n}\n","export enum TileColor {\n default = 'default',\n pink = 'pink',\n purple = 'purple',\n mustard = 'mustard',\n orange = 'orange',\n red = 'red',\n blue = 'blue',\n green = 'green',\n}\n\nexport enum TilePaddingSize {\n zero = 'zero',\n tiny = 'tiny',\n small = 'small',\n normal = 'normal',\n medium = 'medium',\n large = 'large',\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n// Shared Imports\nimport { formatDateFromISOToYYYYMMDD } from '../../utils'\n\n// Regex to validate the ISO date format (YYYY-MM-DD)\nconst ISO_DATE_REGEX = /^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/\n\nexport function isDateValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = formatDateFromISOToYYYYMMDD(control.value)\n\n if (!value) return null\n\n if (!ISO_DATE_REGEX.test(value))\n return { isDate: 'This field must be a valid date in the format YYYY-MM-DD!' }\n\n // Verify if the date is valid (additional logic)\n const [year, month, day] = value.split('-').map(Number)\n const date = new Date(year, month - 1, day)\n\n // Verify if the date is logical and corresponds to the format\n if (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day)\n return null\n return { isDate: 'This field must be a valid date!' }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isDocumentValidator({ documentType }: { documentType: DocumentType }): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\t// Definir los patrones de acuerdo al tipo de vehículo\n\t\tconst patterns: Patterns = {\n\t\t\tDNI: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{7,8}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener entre 7 y 8 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t\tCT: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{11}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener 11 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t\tCL: [\n\t\t\t\t{\n\t\t\t\t\tregex: /^\\d+$/,\n\t\t\t\t\tmessage: 'Este campo debe contener solo números!',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tregex: /^.{11}$/,\n\t\t\t\t\tmessage: 'Este campo debe contener 11 dígitos!',\n\t\t\t\t},\n\t\t\t],\n\t\t}\n\n\t\tconst patternsToValid = patterns[documentType]\n\n\t\tif (!value) return null\n\n\t\tconst pattern = patternsToValid.find((pattern) => !pattern.regex.test(value))\n\n\t\treturn pattern ? { isDocument: pattern.message } : null\n\t}\n}\n\ntype DocumentType = 'DNI' | 'CT' | 'CL'\n\ninterface ValidationPattern {\n\tregex: RegExp\n\tmessage: string\n}\n\ninterface Patterns {\n\tDNI: ValidationPattern[]\n\tCT: ValidationPattern[]\n\tCL: ValidationPattern[]\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\n// Regex para validar emails\nconst EMAIL_REGEX = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$/\n\nexport function isEmailValidator(): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\tif (!value) return null\n\n\t\tif (EMAIL_REGEX.test(value)) return null\n\t\t return { email: 'This field must be a valid email!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isFormSelectItemValidator(): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\tif (!value) return null\n\t\tif (typeof value === 'string')\n\t\t\treturn { isFormSelectItem: 'Este campo debe ser una opción valida!' }\n\n\t\tif (typeof value === 'object') {\n\t\t\tif ('value' in value && 'label' in value) return null\n\t\t}\n\n\t\treturn { isFormSelectItem: 'Este campo debe ser una opción valida!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function isLicensePlateValidator({\n\tvehicleType,\n}: {\n\tvehicleType: 'AUTO' | 'MOTO' | 'BOTH'\n}): ValidatorFn {\n\treturn (control: AbstractControl): ValidationErrors | null => {\n\t\tconst value = control.value\n\n\t\t// Definir los patrones de acuerdo al tipo de vehículo\n\t\tconst patterns = {\n\t\t\tAUTO: [\n\t\t\t\t/^[a-zA-Z]{3}[\\d]{3}$/, // Auto viejo\n\t\t\t\t/^[a-zA-Z]{2}[\\d]{3}[a-zA-Z]{2}$/, // Auto nuevo\n\t\t\t],\n\t\t\tMOTO: [\n\t\t\t\t/^[\\d]{3}[a-zA-Z]{3}$/, // Moto viejo\n\t\t\t\t/^[a-zA-Z]{1}[\\d]{3}[a-zA-Z]{3}$/, // Moto nuevo\n\t\t\t],\n\t\t\tBOTH: [\n\t\t\t\t/^[a-zA-Z]{3}[\\d]{3}$/, // Auto viejo\n\t\t\t\t/^[a-zA-Z]{2}[\\d]{3}[a-zA-Z]{2}$/, // Auto nuevo\n\t\t\t\t/^[\\d]{3}[a-zA-Z]{3}$/, // Moto viejo\n\t\t\t\t/^[a-zA-Z]{1}[\\d]{3}[a-zA-Z]{3}$/, // Moto nuevo\n\t\t\t],\n\t\t}\n\n\t\tconst patternsToValid = patterns[vehicleType]\n\n\t\tif (!value) return null\n\n\t\tconst isValid = patternsToValid.some((pattern) => pattern.test(value))\n\n\t\treturn isValid ? null : { isLicensePlate: 'El campo debe ser una patente valida!' }\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\n// Regex para validar números naturales (0, 1, 2, 3, ...)\nconst NATURAL_NUMBER_REGEX = /^[0-9]+$/\n\nexport function isNaturalNumberValidator(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = control.value\n\n if (!value) return null\n\n if (NATURAL_NUMBER_REGEX.test(value)) return null\n return { naturalNumber: 'This field must contain only valid numbers!' }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n// Shared Imports\nimport { formatDateFromISOToYYYYMMDD } from '../../utils'\n\nexport function minimumAgeValidator({ minAge }: { minAge: number }): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n const value = formatDateFromISOToYYYYMMDD(control.value)\n\n if (!value) return null\n\n // Verify if the date is valid (additional logic)\n const [year, month, day] = value.split('-').map(Number)\n const birthDay = new Date(year, month - 1, day)\n\n // Get the current date and calculate the difference in years\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n const age = today.getFullYear() - birthDay.getFullYear()\n const isMonthPast = today.getMonth() > birthDay.getMonth()\n const isSameMonthDayPast =\n today.getMonth() === birthDay.getMonth() && today.getDate() >= birthDay.getDate()\n\n const isValidAge = age > minAge || (age === minAge && (isMonthPast || isSameMonthDayPast))\n\n // Retornar el error si la edad es menor al mínimo\n return isValidAge ? null : { minimumAge: { requiredAge: minAge, actualAge: age } }\n }\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function mustMatchValidator({\n\tcontrolName,\n\tmustMatchControlName,\n\terrorMessage,\n}: {\n\tcontrolName: string\n\tmustMatchControlName: string\n\terrorMessage: string\n}): ValidatorFn {\n\treturn (formGroup: AbstractControl): ValidationErrors | null => {\n\t\tconst firstControl = formGroup.get(controlName)\n\t\tconst mustMatchControl = formGroup.get(mustMatchControlName)\n\n\t\t// Validar que ambos controles existan\n\t\tif (!firstControl || !mustMatchControl) return null\n\n\t\t// Verificar si los valores coinciden\n\t\tif (firstControl.value && firstControl.value !== mustMatchControl.value) {\n\t\t\tmustMatchControl.setErrors({ ...mustMatchControl.errors, mustMatch: errorMessage ?? true })\n\t\t\treturn { mustMatch: errorMessage ?? true }\n\t\t}\n\n\t\treturn null // Es válido si no hay errores\n\t}\n}\n\n","// Angular Imports\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'\n\nexport function mustUnmatchValidator({\n\tcontrolName,\n\tmustUnmatchControlName,\n\terrorMessage,\n}: {\n\tcontrolName: string\n\tmustUnmatchControlName: string\n\terrorMessage: string\n}): ValidatorFn {\n\treturn (formGroup: AbstractControl): ValidationErrors | null => {\n\t\tconst firstControl = formGroup.get(controlName)\n\t\tconst mustUnmatchControl = formGroup.get(mustUnmatchControlName)\n\n\t\t// Validar que ambos controles existan\n\t\tif (!firstControl || !mustUnmatchControl) return null\n\n\t\t// Verificar si los valores coinciden\n\t\tif (firstControl.value && firstControl.value === mustUnmatchControl.value) {\n\t\t\tmustUnmatchControl.setErrors({\n\t\t\t\t...mustUnmatchControl.errors,\n\t\t\t\tmustUnmatch: errorMessage ?? true,\n\t\t\t})\n\t\t\treturn { mustUnmatch: errorMessage ?? true }\n\t\t}\n\n\t\treturn null // Es válido si no hay errores\n\t}\n}\n\n","// Angular Imports\nimport { Directive } from '@angular/core'\n\n@Directive({\n selector: '[gldDropdownMenuTemplate]',\n})\nexport class DropdownMenuTemplateDirective {}\n\n","// Angular Imports\nimport { Directive } from '@angular/core'\n\n@Directive({\n selector: '[gldInputErrorMessage]',\n})\nexport class InputErrorMessageDirective {}\n\n","// Angular Imports\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n numberAttribute,\r\n output,\r\n} from '@angular/core'\r\n// Shared Imports\r\nimport { Icons, IconsSize, IconsSpace } from '../../models'\r\n\r\n@Component({\r\n selector: 'gld-icon',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './icon.component.html',\r\n styleUrl: './icon.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconComponent {\r\n readonly IconsSpace = IconsSpace\r\n readonly Icons = Icons\r\n\r\n icon = input.required<Icons>()\r\n size = input<keyof typeof IconsSize>(IconsSize.normal)\r\n space = input<keyof typeof IconsSpace>(IconsSpace.none)\r\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n","<span\r\n tabindex=\"-1\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\"\r\n class=\"icon icon--{{ size() }}\"\r\n [class.icon--left]=\"space() === IconsSpace.left\"\r\n [class.icon--right]=\"space() === IconsSpace.right\"\r\n [style.right.px]=\"moveLeftToRight()\"\r\n [style.top.px]=\"moveTopToBottom()\">\r\n @switch (icon()) {\r\n @case (Icons.arrowDownSLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9999 13.1714L16.9497 8.22168L18.3639 9.63589L11.9999 15.9999L5.63599 9.63589L7.0502 8.22168L11.9999 13.1714Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.arrowUpSLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9999 10.8284L7.0502 15.7782L5.63599 14.364L11.9999 8L18.3639 14.364L16.9497 15.7782L11.9999 10.8284Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.checkboxCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11.0026 16L6.75999 11.7574L8.17421 10.3431L11.0026 13.1716L16.6595 7.51472L18.0737 8.92893L11.0026 16Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.checkboxBlankCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.loader4Fill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M18.364 5.63604L16.9497 7.05025C15.683 5.7835 13.933 5 12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12H21C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3C14.4853 3 16.7353 4.00736 18.364 5.63604Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.logoutCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 11H13V13H5V16L0 12L5 8V11ZM3.99927 18H6.70835C8.11862 19.2447 9.97111 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C9.97111 4 8.11862 4.75527 6.70835 6H3.99927C5.82368 3.57111 8.72836 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C8.72836 22 5.82368 20.4289 3.99927 18Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.loginCircleLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M10 11V8L15 12L10 16V13H1V11H10ZM2.4578 15H4.58152C5.76829 17.9318 8.64262 20 12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C8.64262 4 5.76829 6.06817 4.58152 9H2.4578C3.73207 4.94289 7.52236 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22C7.52236 22 3.73207 19.0571 2.4578 15Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.gitRepositoryLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13 21V23.5L10 21.5L7 23.5V21H6.5C4.567 21 3 19.433 3 17.5V5C3 3.34315 4.34315 2 6 2H20C20.5523 2 21 2.44772 21 3V20C21 20.5523 20.5523 21 20 21H13ZM13 19H19V16H6.5C5.67157 16 5 16.6716 5 17.5C5 18.3284 5.67157 19 6.5 19H7V17H13V19ZM19 14V4H6V14.0354C6.1633 14.0121 6.33024 14 6.5 14H19ZM7 5H9V7H7V5ZM7 8H9V10H7V8ZM7 11H9V13H7V11Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.fileList3Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M19 22H5C3.34315 22 2 20.6569 2 19V3C2 2.44772 2.44772 2 3 2H17C17.5523 2 18 2.44772 18 3V15H22V19C22 20.6569 20.6569 22 19 22ZM18 17V19C18 19.5523 18.4477 20 19 20C19.5523 20 20 19.5523 20 19V17H18ZM16 20V4H4V19C4 19.5523 4.44772 20 5 20H16ZM6 7H14V9H6V7ZM6 11H14V13H6V11ZM6 15H11V17H6V15Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.menuLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path d=\"M3 4H21V6H3V4ZM3 11H21V13H3V11ZM3 18H21V20H3V18Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.sunLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 18C8.68629 18 6 15.3137 6 12C6 8.68629 8.68629 6 12 6C15.3137 6 18 8.68629 18 12C18 15.3137 15.3137 18 12 18ZM12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16ZM11 1H13V4H11V1ZM11 20H13V23H11V20ZM3.51472 4.92893L4.92893 3.51472L7.05025 5.63604L5.63604 7.05025L3.51472 4.92893ZM16.9497 18.364L18.364 16.9497L20.4853 19.0711L19.0711 20.4853L16.9497 18.364ZM19.0711 3.51472L20.4853 4.92893L18.364 7.05025L16.9497 5.63604L19.0711 3.51472ZM5.63604 16.9497L7.05025 18.364L4.92893 20.4853L3.51472 19.0711L5.63604 16.9497ZM23 11V13H20V11H23ZM4 11V13H1V11H4Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.moonClearLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M10 6C10 10.4183 13.5817 14 18 14C19.4386 14 20.7885 13.6203 21.9549 12.9556C21.4738 18.0302 17.2005 22 12 22C6.47715 22 2 17.5228 2 12C2 6.79948 5.9698 2.52616 11.0444 2.04507C10.3797 3.21152 10 4.56142 10 6ZM4 12C4 16.4183 7.58172 20 12 20C14.9654 20 17.5757 18.3788 18.9571 15.9546C18.6407 15.9848 18.3214 16 18 16C12.4772 16 8 11.5228 8 6C8 5.67863 8.01524 5.35933 8.04536 5.04293C5.62119 6.42426 4 9.03458 4 12ZM18.1642 2.29104L19 2.5V3.5L18.1642 3.70896C17.4476 3.8881 16.8881 4.4476 16.709 5.16417L16.5 6H15.5L15.291 5.16417C15.1119 4.4476 14.5524 3.8881 13.8358 3.70896L13 3.5V2.5L13.8358 2.29104C14.5524 2.1119 15.1119 1.5524 15.291 0.835829L15.5 0H16.5L16.709 0.835829C16.8881 1.5524 17.4476 2.1119 18.1642 2.29104ZM23.1642 7.29104L24 7.5V8.5L23.1642 8.70896C22.4476 8.8881 21.8881 9.4476 21.709 10.1642L21.5 11H20.5L20.291 10.1642C20.1119 9.4476 19.5524 8.8881 18.8358 8.70896L18 8.5V7.5L18.8358 7.29104C19.5524 7.1119 20.1119 6.5524 20.291 5.83583L20.5 5H21.5L21.709 5.83583C21.8881 6.5524 22.4476 7.1119 23.1642 7.29104Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.englishInput) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M14 10H16L16.0005 10.7574C16.7154 10.279 17.5751 10 18.5 10C20.9853 10 23 12.0147 23 14.5V20H21V14.5C21 13.07 19.8255 12 18.5 12C17.1745 12 16 13.07 16 14.5V20H14V10ZM12 4V6H4V11H12V13H4V18H12V20H2V4H12Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.translate) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 15V17C5 18.0544 5.81588 18.9182 6.85074 18.9945L7 19H10V21H7C4.79086 21 3 19.2091 3 17V15H5ZM18 10L22.4 21H20.245L19.044 18H14.954L13.755 21H11.601L16 10H18ZM17 12.8852L15.753 16H18.245L17 12.8852ZM8 2V4H12V11H8V14H6V11H2V4H6V2H8ZM17 3C19.2091 3 21 4.79086 21 7V9H19V7C19 5.89543 18.1046 5 17 5H14V3H17ZM6 6H4V9H6V6ZM10 6H8V9H10V6Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.user4Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 20H19V22H5V20ZM12 18C7.58172 18 4 14.4183 4 10C4 5.58172 7.58172 2 12 2C16.4183 2 20 5.58172 20 10C20 14.4183 16.4183 18 12 18ZM12 16C15.3137 16 18 13.3137 18 10C18 6.68629 15.3137 4 12 4C8.68629 4 6 6.68629 6 10C6 13.3137 8.68629 16 12 16Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.shapesLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9998 1L6 11H18L11.9998 1ZM11.9998 4.8873L14.4676 9H9.53232L11.9998 4.8873ZM6.75 20C5.23122 20 4 18.7688 4 17.25C4 15.7312 5.23122 14.5 6.75 14.5C8.26878 14.5 9.5 15.7312 9.5 17.25C9.5 18.7688 8.26878 20 6.75 20ZM6.75 22C9.37335 22 11.5 19.8734 11.5 17.25C11.5 14.6266 9.37335 12.5 6.75 12.5C4.12665 12.5 2 14.6266 2 17.25C2 19.8734 4.12665 22 6.75 22ZM15 15.5V19.5H19V15.5H15ZM13 21.5V13.5H21V21.5H13Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.closeLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M11.9997 10.5865L16.9495 5.63672L18.3637 7.05093L13.4139 12.0007L18.3637 16.9504L16.9495 18.3646L11.9997 13.4149L7.04996 18.3646L5.63574 16.9504L10.5855 12.0007L5.63574 7.05093L7.04996 5.63672L11.9997 10.5865Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.eyeLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12.0003 3C17.3924 3 21.8784 6.87976 22.8189 12C21.8784 17.1202 17.3924 21 12.0003 21C6.60812 21 2.12215 17.1202 1.18164 12C2.12215 6.87976 6.60812 3 12.0003 3ZM12.0003 19C16.2359 19 19.8603 16.052 20.7777 12C19.8603 7.94803 16.2359 5 12.0003 5C7.7646 5 4.14022 7.94803 3.22278 12C4.14022 16.052 7.7646 19 12.0003 19ZM12.0003 16.5C9.51498 16.5 7.50026 14.4853 7.50026 12C7.50026 9.51472 9.51498 7.5 12.0003 7.5C14.4855 7.5 16.5003 9.51472 16.5003 12C16.5003 14.4853 14.4855 16.5 12.0003 16.5ZM12.0003 14.5C13.381 14.5 14.5003 13.3807 14.5003 12C14.5003 10.6193 13.381 9.5 12.0003 9.5C10.6196 9.5 9.50026 10.6193 9.50026 12C9.50026 13.3807 10.6196 14.5 12.0003 14.5Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.eyeCloseLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M9.34268 18.7819L7.41083 18.2642L8.1983 15.3254C7.00919 14.8874 5.91661 14.2498 4.96116 13.4534L2.80783 15.6067L1.39362 14.1925L3.54695 12.0392C2.35581 10.6103 1.52014 8.87466 1.17578 6.96818L3.14386 6.61035C3.90289 10.8126 7.57931 14.0001 12.0002 14.0001C16.4211 14.0001 20.0976 10.8126 20.8566 6.61035L22.8247 6.96818C22.4803 8.87466 21.6446 10.6103 20.4535 12.0392L22.6068 14.1925L21.1926 15.6067L19.0393 13.4534C18.0838 14.2498 16.9912 14.8874 15.8021 15.3254L16.5896 18.2642L14.6578 18.7819L13.87 15.8418C13.2623 15.9459 12.6376 16.0001 12.0002 16.0001C11.3629 16.0001 10.7381 15.9459 10.1305 15.8418L9.34268 18.7819Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.linkedinBoxFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M18.3362 18.339H15.6707V14.1622C15.6707 13.1662 15.6505 11.8845 14.2817 11.8845C12.892 11.8845 12.6797 12.9683 12.6797 14.0887V18.339H10.0142V9.75H12.5747V10.9207H12.6092C12.967 10.2457 13.837 9.53325 15.1367 9.53325C17.8375 9.53325 18.337 11.3108 18.337 13.6245V18.339H18.3362ZM7.00373 8.57475C6.14573 8.57475 5.45648 7.88025 5.45648 7.026C5.45648 6.1725 6.14648 5.47875 7.00373 5.47875C7.85873 5.47875 8.55173 6.1725 8.55173 7.026C8.55173 7.88025 7.85798 8.57475 7.00373 8.57475ZM8.34023 18.339H5.66723V9.75H8.34023V18.339ZM19.6697 3H4.32923C3.59498 3 3.00098 3.5805 3.00098 4.29675V19.7033C3.00098 20.4202 3.59498 21 4.32923 21H19.6675C20.401 21 21.001 20.4202 21.001 19.7033V4.29675C21.001 3.5805 20.401 3 19.6675 3H19.6697Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.githubFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12.001 2C6.47598 2 2.00098 6.475 2.00098 12C2.00098 16.425 4.86348 20.1625 8.83848 21.4875C9.33848 21.575 9.52598 21.275 9.52598 21.0125C9.52598 20.775 9.51348 19.9875 9.51348 19.15C7.00098 19.6125 6.35098 18.5375 6.15098 17.975C6.03848 17.6875 5.55098 16.8 5.12598 16.5625C4.77598 16.375 4.27598 15.9125 5.11348 15.9C5.90098 15.8875 6.46348 16.625 6.65098 16.925C7.55098 18.4375 8.98848 18.0125 9.56348 17.75C9.65098 17.1 9.91348 16.6625 10.201 16.4125C7.97598 16.1625 5.65098 15.3 5.65098 11.475C5.65098 10.3875 6.03848 9.4875 6.67598 8.7875C6.57598 8.5375 6.22598 7.5125 6.77598 6.1375C6.77598 6.1375 7.61348 5.875 9.52598 7.1625C10.326 6.9375 11.176 6.825 12.026 6.825C12.876 6.825 13.726 6.9375 14.526 7.1625C16.4385 5.8625 17.276 6.1375 17.276 6.1375C17.826 7.5125 17.476 8.5375 17.376 8.7875C18.0135 9.4875 18.401 10.375 18.401 11.475C18.401 15.3125 16.0635 16.1625 13.8385 16.4125C14.201 16.725 14.5135 17.325 14.5135 18.2625C14.5135 19.6 14.501 20.675 14.501 21.0125C14.501 21.275 14.6885 21.5875 15.1885 21.4875C19.259 20.1133 21.9999 16.2963 22.001 12C22.001 6.475 17.526 2 12.001 2Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.instagramFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13.0281 2.00073C14.1535 2.00259 14.7238 2.00855 15.2166 2.02322L15.4107 2.02956C15.6349 2.03753 15.8561 2.04753 16.1228 2.06003C17.1869 2.1092 17.9128 2.27753 18.5503 2.52503C19.2094 2.7792 19.7661 3.12253 20.3219 3.67837C20.8769 4.2342 21.2203 4.79253 21.4753 5.45003C21.7219 6.0867 21.8903 6.81337 21.9403 7.87753C21.9522 8.1442 21.9618 8.3654 21.9697 8.58964L21.976 8.78373C21.9906 9.27647 21.9973 9.84686 21.9994 10.9723L22.0002 11.7179C22.0003 11.809 22.0003 11.903 22.0003 12L22.0002 12.2821L21.9996 13.0278C21.9977 14.1532 21.9918 14.7236 21.9771 15.2163L21.9707 15.4104C21.9628 15.6347 21.9528 15.8559 21.9403 16.1225C21.8911 17.1867 21.7219 17.9125 21.4753 18.55C21.2211 19.2092 20.8769 19.7659 20.3219 20.3217C19.7661 20.8767 19.2069 21.22 18.5503 21.475C17.9128 21.7217 17.1869 21.89 16.1228 21.94C15.8561 21.9519 15.6349 21.9616 15.4107 21.9694L15.2166 21.9757C14.7238 21.9904 14.1535 21.997 13.0281 21.9992L12.2824 22C12.1913 22 12.0973 22 12.0003 22L11.7182 22L10.9725 21.9993C9.8471 21.9975 9.27672 21.9915 8.78397 21.9768L8.58989 21.9705C8.36564 21.9625 8.14444 21.9525 7.87778 21.94C6.81361 21.8909 6.08861 21.7217 5.45028 21.475C4.79194 21.2209 4.23444 20.8767 3.67861 20.3217C3.12278 19.7659 2.78028 19.2067 2.52528 18.55C2.27778 17.9125 2.11028 17.1867 2.06028 16.1225C2.0484 15.8559 2.03871 15.6347 2.03086 15.4104L2.02457 15.2163C2.00994 14.7236 2.00327 14.1532 2.00111 13.0278L2.00098 10.9723C2.00284 9.84686 2.00879 9.27647 2.02346 8.78373L2.02981 8.58964C2.03778 8.3654 2.04778 8.1442 2.06028 7.87753C2.10944 6.81253 2.27778 6.08753 2.52528 5.45003C2.77944 4.7917 3.12278 4.2342 3.67861 3.67837C4.23444 3.12253 4.79278 2.78003 5.45028 2.52503C6.08778 2.27753 6.81278 2.11003 7.87778 2.06003C8.14444 2.04816 8.36564 2.03847 8.58989 2.03062L8.78397 2.02433C9.27672 2.00969 9.8471 2.00302 10.9725 2.00086L13.0281 2.00073ZM12.0003 7.00003C9.23738 7.00003 7.00028 9.23956 7.00028 12C7.00028 14.7629 9.23981 17 12.0003 17C14.7632 17 17.0003 14.7605 17.0003 12C17.0003 9.23713 14.7607 7.00003 12.0003 7.00003ZM12.0003 9.00003C13.6572 9.00003 15.0003 10.3427 15.0003 12C15.0003 13.6569 13.6576 15 12.0003 15C10.3434 15 9.00028 13.6574 9.00028 12C9.00028 10.3431 10.3429 9.00003 12.0003 9.00003ZM17.2503 5.50003C16.561 5.50003 16.0003 6.05994 16.0003 6.74918C16.0003 7.43843 16.5602 7.9992 17.2503 7.9992C17.9395 7.9992 18.5003 7.4393 18.5003 6.74918C18.5003 6.05994 17.9386 5.49917 17.2503 5.50003Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.twitterXFill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M17.6874 3.0625L12.6907 8.77425L8.37045 3.0625H2.11328L9.58961 12.8387L2.50378 20.9375H5.53795L11.0068 14.6886L15.7863 20.9375H21.8885L14.095 10.6342L20.7198 3.0625H17.6874ZM16.6232 19.1225L5.65436 4.78217H7.45745L18.3034 19.1225H16.6232Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.downloadCloud2Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13 13V18.585L14.8284 16.7574L16.2426 18.1716L12 22.4142L7.75736 18.1716L9.17157 16.7574L11 18.585V13H13ZM12 2C15.5934 2 18.5544 4.70761 18.9541 8.19395C21.2858 8.83154 23 10.9656 23 13.5C23 16.3688 20.8036 18.7246 18.0006 18.9776L18.0009 16.9644C19.6966 16.7214 21 15.2629 21 13.5C21 11.567 19.433 10 17.5 10C17.2912 10 17.0867 10.0183 16.8887 10.054C16.9616 9.7142 17 9.36158 17 9C17 6.23858 14.7614 4 12 4C9.23858 4 7 6.23858 7 9C7 9.36158 7.03838 9.7142 7.11205 10.0533C6.91331 10.0183 6.70879 10 6.5 10C4.567 10 3 11.567 3 13.5C3 15.2003 4.21241 16.6174 5.81986 16.934L6.00005 16.9646L6.00039 18.9776C3.19696 18.7252 1 16.3692 1 13.5C1 10.9656 2.71424 8.83154 5.04648 8.19411C5.44561 4.70761 8.40661 2 12 2Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.globeLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M13.0003 21H18.0003V23H6.00032V21H11.0003V19.9506C7.70689 19.6236 4.88351 17.6987 3.31641 14.9622L5.05319 13.9697C6.43208 16.3776 9.02674 18 12.0003 18C16.4186 18 20.0003 14.4182 20.0003 9.99995C20.0003 7.02637 18.378 4.43171 15.9701 3.05282L16.9626 1.31604C19.9724 3.03965 22.0003 6.28297 22.0003 9.99995C22.0003 15.1853 18.0536 19.4489 13.0003 19.9506V21ZM12.0003 17C8.13433 17 5.00032 13.8659 5.00032 9.99995C5.00032 6.13396 8.13433 2.99995 12.0003 2.99995C15.8663 2.99995 19.0003 6.13396 19.0003 9.99995C19.0003 13.8659 15.8663 17 12.0003 17ZM12.0003 15C14.7617 15 17.0003 12.7614 17.0003 9.99995C17.0003 7.23853 14.7617 4.99995 12.0003 4.99995C9.2389 4.99995 7.00032 7.23853 7.00032 9.99995C7.00032 12.7614 9.2389 15 12.0003 15Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.mailSendLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M21 3C21.5523 3 22 3.44772 22 4V20.0066C22 20.5552 21.5447 21 21.0082 21H2.9918C2.44405 21 2 20.5551 2 20.0066V19H20V7.3L12 14.5L2 5.5V4C2 3.44772 2.44772 3 3 3H21ZM8 15V17H0V15H8ZM5 10V12H0V10H5ZM19.5659 5H4.43414L12 11.8093L19.5659 5Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.pagesLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M5 8V20H19V8H5ZM5 6H19V4H5V6ZM20 22H4C3.44772 22 3 21.5523 3 21V3C3 2.44772 3.44772 2 4 2H20C20.5523 2 21 2.44772 21 3V21C21 21.5523 20.5523 22 20 22ZM7 10H11V14H7V10ZM7 16H17V18H7V16ZM13 11H17V13H13V11Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.gitForkLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M6 5C5.44772 5 5 5.44772 5 6C5 6.55228 5.44772 7 6 7C6.55228 7 7 6.55228 7 6C7 5.44772 6.55228 5 6 5ZM3 6C3 4.34315 4.34315 3 6 3C7.65685 3 9 4.34315 9 6C9 7.30622 8.16519 8.41746 7 8.82929V9C7 10.1046 7.89543 11 9 11H15C16.1046 11 17 10.1046 17 9V8.82929C15.8348 8.41746 15 7.30622 15 6C15 4.34315 16.3431 3 18 3C19.6569 3 21 4.34315 21 6C21 7.30622 20.1652 8.41746 19 8.82929V9C19 11.2091 17.2091 13 15 13H13V15.1707C14.1652 15.5825 15 16.6938 15 18C15 19.6569 13.6569 21 12 21C10.3431 21 9 19.6569 9 18C9 16.6938 9.83481 15.5825 11 15.1707V13H9C6.79086 13 5 11.2091 5 9V8.82929C3.83481 8.41746 3 7.30622 3 6ZM18 5C17.4477 5 17 5.44772 17 6C17 6.55228 17.4477 7 18 7C18.5523 7 19 6.55228 19 6C19 5.44772 18.5523 5 18 5ZM12 17C11.4477 17 11 17.4477 11 18C11 18.5523 11.4477 19 12 19C12.5523 19 13 18.5523 13 18C13 17.4477 12.5523 17 12 17Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.gitRepositoryPrivateLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M6 10V20H19V10H6ZM18 8H20C20.5523 8 21 8.44772 21 9V21C21 21.5523 20.5523 22 20 22H4C3.44772 22 3 21.5523 3 21V9C3 8.44772 3.44772 8 4 8H6V7C6 3.68629 8.68629 1 12 1C15.3137 1 18 3.68629 18 7V8ZM16 8V7C16 4.79086 14.2091 3 12 3C9.79086 3 8 4.79086 8 7V8H16ZM7 11H9V13H7V11ZM7 14H9V16H7V14ZM7 17H9V19H7V17Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.starLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12.0006 18.26L4.94715 22.2082L6.52248 14.2799L0.587891 8.7918L8.61493 7.84006L12.0006 0.5L15.3862 7.84006L23.4132 8.7918L17.4787 14.2799L19.054 22.2082L12.0006 18.26ZM12.0006 15.968L16.2473 18.3451L15.2988 13.5717L18.8719 10.2674L14.039 9.69434L12.0006 5.27502L9.96214 9.69434L5.12921 10.2674L8.70231 13.5717L7.75383 18.3451L12.0006 15.968Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.calendar2Line) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M9 1V3H15V1H17V3H21C21.5523 3 22 3.44772 22 4V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4C2 3.44772 2.44772 3 3 3H7V1H9ZM20 11H4V19H20V11ZM8 13V15H6V13H8ZM13 13V15H11V13H13ZM18 13V15H16V13H18ZM7 5H4V9H20V5H17V7H15V5H9V7H7V5Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.macLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M14 18V20L16 21V22H8L7.99639 21.0036L10 20V18H2.9918C2.44405 18 2 17.5511 2 16.9925V4.00748C2 3.45107 2.45531 3 2.9918 3H21.0082C21.556 3 22 3.44892 22 4.00748V16.9925C22 17.5489 21.5447 18 21.0082 18H14ZM4 5V14H20V5H4Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.more2Fill) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M12 3C10.9 3 10 3.9 10 5C10 6.1 10.9 7 12 7C13.1 7 14 6.1 14 5C14 3.9 13.1 3 12 3ZM12 17C10.9 17 10 17.9 10 19C10 20.1 10.9 21 12 21C13.1 21 14 20.1 14 19C14 17.9 13.1 17 12 17ZM12 10C10.9 10 10 10.9 10 12C10 13.1 10.9 14 12 14C13.1 14 14 13.1 14 12C14 10.9 13.1 10 12 10Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.editLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M6.41421 15.89L16.5563 5.74785L15.1421 4.33363L5 14.4758V15.89H6.41421ZM7.24264 17.89H3V13.6473L14.435 2.21231C14.8256 1.82179 15.4587 1.82179 15.8492 2.21231L18.6777 5.04074C19.0682 5.43126 19.0682 6.06443 18.6777 6.45495L7.24264 17.89ZM3 19.89H21V21.89H3V19.89Z\"></path>\r\n </svg>\r\n }\r\n @case (Icons.deleteBinLine) {\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\r\n <path\r\n d=\"M17 6H22V8H20V21C20 21.5523 19.5523 22 19 22H5C4.44772 22 4 21.5523 4 21V8H2V6H7V3C7 2.44772 7.44772 2 8 2H16C16.5523 2 17 2.44772 17 3V6ZM18 8H6V20H18V8ZM9 11H11V17H9V11ZM13 11H15V17H13V11ZM9 4V6H15V4H9Z\"></path>\r\n </svg>\r\n }\r\n }\r\n</span>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n booleanAttribute,\r\n input,\r\n numberAttribute,\r\n output,\r\n} from '@angular/core'\r\n// This Module Imports\r\nimport { ButtonColor, ButtonSize, Icons, IconsSize } from '../../../models'\r\nimport { IconComponent } from '../../icon/icon.component'\r\n\r\nconst components = [IconComponent]\r\n\r\n@Component({\r\n selector: 'gld-button',\r\n imports: [...components],\r\n templateUrl: './button.component.html',\r\n styleUrl: './button.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonComponent {\r\n name = input.required<string>()\r\n color = input<keyof typeof ButtonColor>(ButtonColor.pink)\r\n size = input<keyof typeof ButtonSize>(ButtonSize.normal)\r\n icon = input<Icons | null>(null)\r\n iconSize = input<keyof typeof IconsSize>()\r\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\r\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n full = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n clicked = output<void>()\r\n\r\n emitClick() {\r\n if (!this.disabled()) this.clicked.emit()\r\n }\r\n\r\n keyup() {\r\n this.emitClick()\r\n }\r\n}\r\n","<button\r\n id=\"{{ name() }}\"\r\n attr.aria-label=\"{{ name() }}\"\r\n class=\"button button--{{ color() }} button--{{ size() }}\"\r\n [class.button--disabled]=\"disabled()\"\r\n [class.button--full]=\"full()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <!-- Icon -->\r\n @let innerIcon = icon();\r\n @if (innerIcon) {\r\n <gld-icon\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [icon]=\"innerIcon\"\r\n [size]=\"iconSize() ?? size()\"\r\n [disabled]=\"disabled()\" />\r\n }\r\n <!-- Content -->\r\n <span>\r\n <ng-content>no content</ng-content>\r\n </span>\r\n</button>\r\n\r\n<!-- Only used by DropdownMenuComponent -->\r\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\r\n","// Angular Imports\nimport {\n ChangeDetectionStrategy,\n Component,\n booleanAttribute,\n input,\n numberAttribute,\n output,\n} from '@angular/core'\n// This Module Imports\nimport { ButtonColor, Icons, IconsSize, IconsSpace } from '../../../models'\nimport { IconComponent } from '../../icon/icon.component'\n\n@Component({\n selector: 'gld-icon-button',\n templateUrl: './icon-button.component.html',\n styleUrl: './icon-button.component.scss',\n imports: [IconComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconButtonComponent {\n icon = input.required<Icons>()\n name = input.required<string>()\n iconSize = input<keyof typeof IconsSize>(IconsSize.normal)\n space = input<keyof typeof IconsSpace>(IconsSpace.none)\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n color = input<keyof typeof ButtonColor>(ButtonColor.pink)\n clicked = output<void>()\n\n emitClick() {\n if (!this.disabled()) this.clicked.emit()\n }\n\n keyup() {\n this.emitClick()\n }\n}\n","<button\n id=\"{{ name() }}\"\n attr.aria-label=\"{{ name() }}\"\n class=\"button button--{{ color() }}\"\n [class.button--disabled]=\"disabled()\"\n [class.button--background]=\"background()\"\n (click)=\"emitClick()\"\n (keyup.enter)=\"keyup()\">\n <!-- Icon -->\n <gld-icon\n [icon]=\"icon()\"\n [size]=\"iconSize()\"\n [space]=\"space()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [disabled]=\"disabled()\" />\n</button>\n\n<!-- Only used by DropdownMenuComponent -->\n<ng-content select=\"[gldDropdownMenuTemplate]\" />\n","// Angular Imports\nimport { Component, ChangeDetectionStrategy, input, output, booleanAttribute } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport { RouterLink } from '@angular/router'\n// This Module Imports\nimport { LinkType, LinkAlign } from '../../../models'\n\n@Component({\n selector: 'gld-link',\n standalone: true,\n imports: [NgTemplateOutlet, RouterLink],\n templateUrl: './link.component.html',\n styleUrl: './link.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LinkComponent {\n readonly LinkType = LinkType\n\n name = input.required<string>()\n redirect = input<string>('')\n active = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n external = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n type = input<keyof typeof LinkType>(LinkType.default)\n align = input<keyof typeof LinkAlign>(LinkAlign.center)\n clicked = output<void>()\n\n emitClick() {\n this.clicked.emit()\n }\n\n keyup() {\n this.emitClick()\n }\n}\n","@if (external()) {\n <!-- It's external link -->\n <ng-container\n [ngTemplateOutlet]=\"buttonTemplate\"\n [ngTemplateOutletContext]=\"{ buttonType: 'anchor' }\" />\n} @else {\n <!-- It isn't external link -->\n <ng-container\n [ngTemplateOutlet]=\"buttonTemplate\"\n [ngTemplateOutletContext]=\"{ buttonType: 'button' }\" />\n}\n\n<!-- Button Template -->\n<ng-template #buttonTemplate let-buttonType=\"buttonType\">\n @switch (buttonType) {\n @case ('anchor') {\n <a\n id=\"{{ name() }}\"\n attr.aria-label=\"{{ name() }}\"\n class=\"link link--{{ align() }}\"\n [class.link--active]=\"active()\"\n [href]=\"redirect()\"\n (click)=\"emitClick()\"\n (keyup.enter)=\"keyup()\"\n target=\"_blank\">\n <ng-container [ngTemplateOutlet]=\"contentButtonTemplate\" />\n </a>\n }\n @case ('button') {\n @if (redirect()) {\n <!-- It has path to redirect -->\n <button\n id=\"{{ name() }}\"\n attr.aria-label=\"{{ name() }}\"\n class=\"link link--{{ align() }}\"\n [class.link--active]=\"active()\"\n (click)=\"emitClick()\"\n (keyup.enter)=\"keyup()\"\n [routerLink]=\"redirect()\">\n <ng-container [ngTemplateOutlet]=\"contentButtonTemplate\" />\n </button>\n } @else {\n <!-- It doesn't have path to redirect -->\n <button\n id=\"{{ name() }}\"\n attr.aria-label=\"{{ name() }}\"\n class=\"link link--{{ align() }}\"\n [class.link--active]=\"active()\"\n (click)=\"emitClick()\"\n (keyup.enter)=\"keyup()\">\n <ng-container [ngTemplateOutlet]=\"contentButtonTemplate\" />\n </button>\n }\n }\n }\n</ng-template>\n\n<!-- Content Button Template -->\n<ng-template #contentButtonTemplate>\n <ng-content />\n</ng-template>\n","// Angular Imports\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n input,\n numberAttribute,\n output,\n signal,\n viewChild,\n} from '@angular/core'\n// This Module Imports\nimport { DropdownDirection, Icons, IconsSize, IconsSpace } from '../../../models'\nimport { IconComponent } from '../../icon/icon.component'\n\nconst components = [IconComponent]\n\n@Component({\n selector: 'gld-dropdown-button',\n imports: [...components],\n templateUrl: './dropdown-button.component.html',\n styleUrl: './dropdown-button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownButtonComponent {\n value = input.required<unknown>()\n icon = input<Icons | null>(null)\n iconSize = input<keyof typeof IconsSize>(IconsSize.normal)\n iconSpace = input<keyof typeof IconsSpace>(IconsSpace.none)\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\n direction = input<keyof typeof DropdownDirection>(DropdownDirection.left)\n changeValue = output<unknown>()\n\n current = signal<unknown>(null)\n disabled = signal<boolean>(false)\n error = signal<boolean>(false)\n selected = computed(() => Boolean(this.current() === this.value()))\n\n buttonChild = viewChild('buttonChild', { read: ElementRef })\n\n select(value: unknown) {\n this.changeValue.emit(value)\n this.buttonChild()?.nativeElement.blur()\n }\n\n keyup(value: unknown) {\n this.select(value)\n }\n}\n\n","<button\n #buttonChild\n [tabindex]=\"disabled() ? '-1' : '0'\"\n class=\"button button--direction-{{ direction() }}\"\n [class.button--selected]=\"selected()\"\n (keyup.enter)=\"keyup(value())\"\n (click)=\"select(value())\">\n <!-- Icon -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [icon]=\"innerIcon\"\n [size]=\"iconSize()\"\n [space]=\"iconSpace()\"\n [disabled]=\"disabled()\" />\n }\n <!-- Content -->\n <span>\n <ng-content> no content </ng-content>\n </span>\n</button>\n\n","// Angular Imports\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n input,\n numberAttribute,\n output,\n AfterContentInit,\n effect,\n} from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\n// This Component Imports\nimport {\n ButtonColor,\n ButtonSize,\n Icons,\n IconsSize,\n DropdownType,\n DropdownDirection,\n} from '../../../models'\nimport { DropdownMenuTemplateDirective } from '../../../directives'\nimport { ButtonComponent } from '../button/button.component'\nimport { IconButtonComponent } from '../icon-button/icon-button.component'\nimport { DropdownButtonComponent } from '../dropdown-button/dropdown-button.component'\n\nconst components = [ButtonComponent, IconButtonComponent]\nconst directives = [DropdownMenuTemplateDirective]\n\n@Component({\n selector: 'gld-dropdown-menu',\n imports: [NgTemplateOutlet, ...components, directives],\n templateUrl: './dropdown-menu.component.html',\n styleUrl: './dropdown-menu.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DropdownMenuComponent implements AfterContentInit {\n readonly DropdownType = DropdownType\n\n name = input.required<string>()\n type = input.required<keyof typeof DropdownType>()\n color = input<keyof typeof ButtonColor>(ButtonColor.pink)\n size = input<keyof typeof ButtonSize>(ButtonSize.normal)\n icon = input<Icons | null>(null)\n iconSize = input<keyof typeof IconsSize>()\n moveTopToBottom = input<number, string | number>(0, { transform: numberAttribute })\n moveLeftToRight = input<number, string | number>(0, { transform: numberAttribute })\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n full = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n direction = input<keyof typeof DropdownDirection>(DropdownDirection.right)\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n selected = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n initialValue = input<unknown>(null)\n changeValue = output<unknown>()\n changeFocus = output<boolean>()\n\n dropdownButtonChildren = contentChildren<DropdownButtonComponent>(DropdownButtonComponent)\n\n constructor() {\n effect(() => {\n const initialValue = this.initialValue()\n if (initialValue) this.updateCurrentInChildren(initialValue)\n })\n }\n\n ngAfterContentInit(): void {\n this.dropdownButtonChildren().map((dropdownButton: DropdownButtonComponent) => {\n dropdownButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\n })\n }\n\n updateCurrentInChildren(value: unknown) {\n this.dropdownButtonChildren().map((dropdownButton: DropdownButtonComponent, index: number) => {\n if (this.selected()) dropdownButton.current.set(value)\n // Set current one time\n if (index === 0) this.changeValue.emit(value)\n })\n }\n\n updateErrorInChildren(error: boolean) {\n this.dropdownButtonChildren().map((dropdownButton: DropdownButtonComponent) =>\n dropdownButton.error.set(error),\n )\n }\n}\n\n","<!-- Button -->\n@if (type() === DropdownType.button) {\n <gld-button\n #buttonChild\n [name]=\"name()\"\n [color]=\"color()\"\n [size]=\"size()\"\n [icon]=\"icon()\"\n [iconSize]=\"iconSize()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [full]=\"full()\">\n <ng-content />\n\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-button>\n} @else {\n <!-- Icon Button -->\n @let innerIcon = icon();\n @if (innerIcon) {\n <gld-icon-button\n #buttonChild\n [name]=\"name()\"\n [color]=\"color()\"\n [icon]=\"innerIcon\"\n [iconSize]=\"iconSize() ?? size()\"\n [disabled]=\"disabled()\"\n [moveTopToBottom]=\"moveTopToBottom()\"\n [moveLeftToRight]=\"moveLeftToRight()\"\n [background]=\"background()\">\n <ng-container gldDropdownMenuTemplate [ngTemplateOutlet]=\"dropdownMenu\" />\n </gld-icon-button>\n }\n}\n\n<ng-template #dropdownMenu>\n <!-- Menu -->\n <section\n class=\"dropdown-menu dropdown-menu--{{ type() }} dropdown-menu--{{ size() }}\n dropdown-menu--direction-{{ direction() }}\">\n <ng-content select=\"gld-dropdown-button\">no buttons</ng-content>\n </section>\n</ng-template>\n\n","// Angular Imports\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'\n\n@Component({\n selector: 'gld-toggle-button',\n imports: [],\n templateUrl: './toggle-button.component.html',\n styleUrl: './toggle-button.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleButtonComponent {\n value = input.required<unknown>()\n changeValue = output<unknown>()\n\n current = signal<unknown>(null)\n disabled = signal<boolean>(false)\n error = signal<boolean>(false)\n selected = computed(() => Boolean(this.current() === this.value()))\n\n select(value: unknown) {\n this.changeValue.emit(value)\n }\n\n keyup(value: unknown) {\n this.select(value)\n }\n}\n\n","<button\n [tabindex]=\"disabled() ? '-1' : '0'\"\n class=\"button\"\n [class.button--selected]=\"selected()\"\n (keyup.enter)=\"keyup(value())\"\n (click)=\"select(value())\">\n <ng-content> empty button </ng-content>\n</button>\n\n","// Angular Imports\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n contentChildren,\n effect,\n input,\n output,\n} from '@angular/core'\n// This Module Imports\nimport { ToggleButtonComponent } from './../toggle-button/toggle-button.component'\n\n@Component({\n selector: 'gld-toggle-group',\n imports: [],\n templateUrl: './toggle-group.component.html',\n styleUrl: './toggle-group.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ToggleGroupComponent implements AfterContentInit {\n name = input.required<string>()\n initialValue = input<unknown>(null)\n changeValue = output<unknown>()\n changeFocus = output<boolean>()\n\n toggleButtonChildren = contentChildren<ToggleButtonComponent>(ToggleButtonComponent)\n\n constructor() {\n effect(() => {\n const initialValue = this.initialValue()\n if (initialValue) this.updateCurrentInChildren(initialValue)\n })\n }\n\n ngAfterContentInit(): void {\n this.toggleButtonChildren().map((toggleButton: ToggleButtonComponent) => {\n toggleButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\n })\n }\n\n updateCurrentInChildren(value: unknown) {\n this.toggleButtonChildren().map((toggleButton: ToggleButtonComponent, index: number) => {\n toggleButton.current.set(value)\n // Set current one time\n if (index === 0) this.changeValue.emit(value)\n })\n }\n\n updateErrorInChildren(error: boolean) {\n this.toggleButtonChildren().map((toggleButton: ToggleButtonComponent) =>\n toggleButton.error.set(error),\n )\n }\n}\n\n","<section class=\"toggle\" [attr.name]=\"name()\">\n <ng-content select=\"gld-toggle-button\" />\n</section>\n\n","// Angular Imports\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n Component,\r\n input,\r\n contentChildren,\r\n signal,\r\n effect,\r\n} from '@angular/core'\r\nimport { ValidationErrors } from '@angular/forms'\r\n// This Module Imports\r\nimport { InputErrorMessageDirective } from '../../../directives'\r\n\r\n@Component({\r\n selector: 'gld-input-error',\r\n standalone: true,\r\n imports: [NgTemplateOutlet],\r\n templateUrl: './input-error.component.html',\r\n styleUrl: './input-error.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputErrorComponent {\r\n readonly Boolean = Boolean\r\n errors = input.required<ValidationErrors | null>()\r\n border = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n content = contentChildren(InputErrorMessageDirective, {\r\n descendants: true,\r\n })\r\n\r\n hasContent = signal(false)\r\n\r\n constructor() {\r\n effect(() => this.hasContent.set(this.content()?.length ? true : false))\r\n }\r\n}\r\n","<section class=\"error\" [class.error--with-border]=\"border()\">\r\n <span class=\"error__message\">\r\n @if (hasContent()) {\r\n <ng-content />\r\n } @else {\r\n <ng-container [ngTemplateOutlet]=\"errorsMessageDefault\" />\r\n }\r\n </span>\r\n</section>\r\n\r\n<ng-template #errorsMessageDefault>\r\n @switch (true) {\r\n @case (Boolean(this.errors()?.['required'])) {\r\n This field is required!\r\n }\r\n @case (Boolean(this.errors()?.['email'])) {\r\n {{ this.errors()?.['email'] }}\r\n }\r\n @case (Boolean(this.errors()?.['maxlength'])) {\r\n This field must have a maximum of\r\n {{ this.errors()?.['maxlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['minlength'])) {\r\n This field must have a minimum of\r\n {{ this.errors()?.['minlength'].requiredLength }}\r\n characters!\r\n }\r\n @case (Boolean(this.errors()?.['isDate'])) {\r\n {{ this.errors()?.['isDate'] }}\r\n }\r\n @case (Boolean(this.errors()?.['minimumAge'])) {\r\n This field must meet the minimum age requirement of\r\n {{ this.errors()?.['minimumAge'].requiredAge }} years\r\n }\r\n @case (Boolean(this.errors()?.['naturalNumber'])) {\r\n {{ this.errors()?.['naturalNumber'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustMatch'])) {\r\n {{ this.errors()?.['mustMatch'] }}\r\n }\r\n @case (Boolean(this.errors()?.['mustUnmatch'])) {\r\n {{ this.errors()?.['mustUnmatch'] }}\r\n }\r\n @default {\r\n empty error message\r\n }\r\n }\r\n</ng-template>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n OnInit,\r\n booleanAttribute,\r\n forwardRef,\r\n inject,\r\n input,\r\n signal,\r\n} from '@angular/core'\r\nimport {\r\n ReactiveFormsModule,\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n} from '@angular/forms'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { InputType } from '../../../models'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-input',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './input.component.html',\r\n styleUrl: './input.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InputComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class InputComponent implements ControlValueAccessor, OnInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n type = input<InputType>('text')\r\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) this.innerControl().setValue(value, { emitEvent: false })\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) this.innerControl().setValue(value)\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n // this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n this.onTouched()\r\n // this.isMenuOpen.set(false)\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <!-- Input -->\r\n <input\r\n id=\"input-{{ name() }}\"\r\n [tabindex]=\"disabled ? '-1' : '0'\"\r\n [name]=\"name()\"\r\n [type]=\"type()\"\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"innerControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onTouched()\"\r\n (keyup.escape)=\"onBlur()\" />\r\n\r\n <!-- Suffix -->\r\n @if (suffix()) {\r\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n }\r\n</section>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n <span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\r\n <ng-content select=\"[inputSuffix]\" />\r\n </span>\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n<!-- <section>status: {{ control().status }}</section> -->\r\n","// Angular Imports\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n OnInit,\n booleanAttribute,\n forwardRef,\n inject,\n input,\n signal,\n} from '@angular/core'\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\nimport {\n ReactiveFormsModule,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n FormControl,\n} from '@angular/forms'\nimport { NgTemplateOutlet } from '@angular/common'\n// This Module Imports\nimport { InputErrorComponent } from '../input-error/input-error.component'\nimport { formatDateToISO, formatDateFromISOToYYYYMMDD } from '../../../utils'\n// Thirdparty Imports\nimport { debounceTime } from 'rxjs'\n\nconst components = [InputErrorComponent]\n\n@Component({\n selector: 'gld-input-date',\n standalone: true,\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\n templateUrl: './input-date.component.html',\n styleUrl: './input-date.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputDateComponent),\n multi: true,\n },\n ],\n})\nexport class InputDateComponent implements ControlValueAccessor, OnInit {\n readonly #destroyRef = inject(DestroyRef)\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\n\n control = input.required<FormControl<unknown>>()\n name = input.required<string>()\n label = input<string>('')\n min = input<string | null, string>('', {\n transform: (value: string) => formatDateFromISOToYYYYMMDD(value),\n })\n max = input<string | null, string>('', {\n transform: (value: string) => formatDateFromISOToYYYYMMDD(value),\n })\n placeholder = input<string>('')\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\n onChange = (value: unknown) => {}\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onTouched = () => {}\n\n constructor() {\n this.innerControl()\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((value) => {\n this.onChange(value)\n if (value && typeof value === 'string') {\n const valueTransformed = formatDateFromISOToYYYYMMDD(formatDateToISO(value))\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\n }\n })\n }\n\n ngOnInit(): void {\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\n this.control()\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\n .subscribe(() => this.#changeDetectorRef.detectChanges())\n }\n\n writeValue(value: unknown): void {\n // console.log('writeValue')\n if (value !== this.innerControl().value) this.innerControl().setValue(String(value))\n }\n\n registerOnChange(onChange: (value: unknown) => void): void {\n // console.log('registerOnChange')\n this.onChange = onChange\n }\n\n registerOnTouched(onTouched: () => void): void {\n // console.log('registerOnTouched')\n this.onTouched = onTouched\n }\n}\n\n","@let errors = control().invalid && (control().dirty || control().touched);\n@let disabled = control().disabled || (control().pending && control().disabled);\n\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\n\t<!-- Label -->\n\t@if (label()) {\n\t\t<label [for]=\"name()\">\n\t\t\t{{ label() }}\n\t\t</label>\n\t}\n\n\t<!-- Input -->\n\t<input\n\t\ttype=\"date\"\n\t\tid=\"input-date-{{ name() }}\"\n\t\t[name]=\"name()\"\n\t\t[attr.min]=\"min()\"\n\t\t[attr.max]=\"max()\"\n\t\t[placeholder]=\"placeholder()\"\n\t\t[formControl]=\"innerControl()\"\n\t\t(blur)=\"onTouched()\" />\n\n\t<!-- Suffix -->\n\t@if (suffix()) {\n\t\t<ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\n\t}\n</section>\n<!-- Errors -->\n@if (errors) {\n\t<ng-content select=\"gld-input-error\">\n\t\t<gld-input-error [errors]=\"control().errors\" />\n\t</ng-content>\n} @else {\n\t<!-- Hint -->\n\t<ng-content select=\"gld-input-hint\" />\n}\n\n<!-- Suffix Template -->\n<ng-template #suffixTemplate>\n\t<span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\n\t\t<ng-content select=\"[inputSuffix]\" />\n\t</span>\n</ng-template>\n\n<!-- <h3>Debugging</h3> -->\n<!-- <section>errors: {{ control().errors | json }}</section> -->\n<!-- <section>errors: {{ errors }}</section> -->\n<!-- <section>invalid: {{ control().invalid }}</section> -->\n<!-- <section>dirty: {{ control().dirty }}</section> -->\n<!-- <section>touched: {{ control().touched }}</section> -->\n<!-- <section>disable: {{ control().disabled }}</section> -->\n<!-- <section>status: {{ control().status }}</section> -->\n\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component } from '@angular/core'\r\n\r\n@Component({\r\n\tselector: 'gld-input-hint',\r\n\tstandalone: true,\r\n\timports: [],\r\n\ttemplateUrl: './input-hint.component.html',\r\n\tstyleUrl: './input-hint.component.scss',\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputHintComponent {}\r\n","<section class=\"hint\">\r\n\t<span class=\"hint__message\">\r\n\t\t<ng-content>hint empty</ng-content>\r\n\t</span>\r\n</section>\r\n","// Angular Imports\r\nimport {\r\n booleanAttribute,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n FormControl,\r\n ReactiveFormsModule,\r\n} from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { InputType } from '../../../models'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-textarea',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './textarea.component.html',\r\n styleUrl: './textarea.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextareaComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class TextareaComponent implements ControlValueAccessor, OnInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n type = input<InputType>('text')\r\n suffix = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) this.innerControl().setValue(value, { emitEvent: false })\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) this.innerControl().setValue(value)\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n // this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n this.onTouched()\r\n // this.isMenuOpen.set(false)\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n\r\n <!-- Input -->\r\n <textarea\r\n id=\"input-textarea-{{ name() }}\"\r\n [name]=\"name()\"\r\n [placeholder]=\"placeholder()\"\r\n [formControl]=\"innerControl()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onTouched()\"\r\n (keyup.escape)=\"onBlur()\"></textarea>\r\n\r\n <!-- Suffix -->\r\n @if (suffix()) {\r\n <ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n }\r\n</section>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- Suffix emplate -->\r\n<ng-template #suffixTemplate>\r\n <span tabindex=\"-1\" class=\"input-icon\" [class.input-icon--error]=\"errors\">\r\n <ng-content select=\"[inputSuffix]\" />\r\n </span>\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3>\r\n<section>errors: {{ errors }}</section>\r\n<section>invalid: {{ control().invalid }}</section>\r\n<section>dirty: {{ control().dirty }}</section>\r\n<section>touched: {{ control().touched }}</section>\r\n<section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'\r\n\r\n@Component({\r\n selector: 'gld-radio-button',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './radio-button.component.html',\r\n styleUrl: './radio-button.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RadioButtonComponent {\r\n value = input.required<unknown>()\r\n changeValue = output<unknown>()\r\n changeFocus = output<boolean>()\r\n\r\n current = signal<unknown>(null)\r\n disabled = signal<boolean>(false)\r\n error = signal<boolean>(false)\r\n selected = computed(() => Boolean(this.current() === this.value()))\r\n\r\n select(value: unknown) {\r\n this.changeValue.emit(value)\r\n }\r\n\r\n keyup(value: unknown) {\r\n this.select(value)\r\n }\r\n\r\n onFocus() {\r\n this.changeFocus.emit(true)\r\n }\r\n\r\n onBlur() {\r\n this.changeFocus.emit(false)\r\n }\r\n}\r\n","<button\r\n\t[tabindex]=\"disabled() ? '-1' : '0'\"\r\n\t(keyup.enter)=\"keyup(value())\"\r\n\t(click)=\"select(value())\"\r\n\tclass=\"radio\"\r\n\t[class.radio--selected]=\"selected()\"\r\n\t[class.radio--disabled]=\"disabled()\"\r\n\t[class.radio--error]=\"error()\"\r\n\t(focus)=\"onFocus()\"\r\n\t(blur)=\"onBlur()\"\r\n\t(keyup.escape)=\"onBlur()\">\r\n\t<span class=\"radio__icon\" [class.radio__icon--selected]=\"selected()\"></span>\r\n\r\n\t<span class=\"radio__label\">\r\n\t\t<ng-content>empty radio button</ng-content>\r\n\t</span>\r\n</button>\r\n","// Angular Imports\r\nimport {\r\n AfterContentInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n contentChildren,\r\n DestroyRef,\r\n forwardRef,\r\n inject,\r\n input,\r\n OnInit,\r\n signal,\r\n} from '@angular/core'\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { RadioDirection } from '../../../models'\r\nimport { RadioButtonComponent } from '../radio-button/radio-button.component'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-radio-group',\r\n standalone: true,\r\n imports: [...components],\r\n templateUrl: './radio-group.component.html',\r\n styleUrl: './radio-group.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => RadioGroupComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class RadioGroupComponent implements ControlValueAccessor, OnInit, AfterContentInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n direction = input<keyof typeof RadioDirection>(RadioDirection.horizontal)\r\n\r\n radioButtonChildren = contentChildren<RadioButtonComponent>(RadioButtonComponent)\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) this.updateCurrentInChildren(value)\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => {\r\n this.updateErrorInChildren(\r\n this.control().invalid && (this.control().dirty || this.control().touched),\r\n )\r\n this.#changeDetectorRef.detectChanges()\r\n })\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) => {\r\n radioButton.changeValue.subscribe((value) => this.updateCurrentInChildren(value))\r\n radioButton.changeFocus.subscribe((focus) => {\r\n if (!focus) this.onTouched()\r\n })\r\n })\r\n }\r\n\r\n updateCurrentInChildren(value: unknown) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent, index: number) => {\r\n radioButton.current.set(value)\r\n // Set current one time\r\n if (index === 0) this.onChange(value)\r\n })\r\n }\r\n\r\n updateErrorInChildren(error: boolean) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) =>\r\n radioButton.error.set(error),\r\n )\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) {\r\n this.innerControl().setValue(value)\r\n }\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n setDisabledState(disabled: boolean): void {\r\n // console.log('setDisabledState')\r\n this.#updateDisabledInChildren(disabled)\r\n }\r\n\r\n #updateDisabledInChildren(disabled: boolean) {\r\n this.radioButtonChildren().map((radioButton: RadioButtonComponent) =>\r\n radioButton.disabled.set(disabled),\r\n )\r\n }\r\n}\r\n","@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<article class=\"radio\" [class.radio--disabled]=\"disabled\" [attr.name]=\"name()\">\r\n <!-- Label -->\r\n @if (label()) {\r\n <label class=\"radio__label\" [for]=\"name()\">\r\n {{ label() }}\r\n </label>\r\n }\r\n <section class=\"radio__items radio__items--{{ direction() }}\">\r\n <ng-content select=\"gld-radio-button\" />\r\n </section>\r\n</article>\r\n<!-- Errors -->\r\n@if (errors) {\r\n <ng-content select=\"gld-input-error\">\r\n <gld-input-error border [errors]=\"control().errors\" />\r\n </ng-content>\r\n} @else {\r\n <!-- Hint -->\r\n <ng-content select=\"gld-input-hint\" />\r\n}\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input, output } from '@angular/core'\r\n// This Module Imports\r\nimport { InputValue } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-select-option',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './select-option.component.html',\r\n styleUrl: './select-option.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SelectOptionComponent {\r\n value = input.required<InputValue>()\r\n disabled = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n selected = output<InputValue>()\r\n changeFocus = output<boolean>()\r\n\r\n select(): void {\r\n if (!this.disabled()) this.selected.emit(this.value())\r\n }\r\n\r\n keyup() {\r\n this.select()\r\n }\r\n\r\n onFocus() {\r\n this.changeFocus.emit(true)\r\n }\r\n\r\n onBlur() {\r\n this.changeFocus.emit(false)\r\n }\r\n}\r\n","<button\r\n [tabindex]=\"disabled() ? '-1' : '0'\"\r\n (keyup.enter)=\"keyup()\"\r\n (click)=\"select()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur()\"\r\n (keyup.escape)=\"onBlur()\">\r\n <span><ng-content> an option </ng-content></span>\r\n</button>\r\n","// Angular Imports\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n contentChildren,\r\n AfterContentInit,\r\n ElementRef,\r\n forwardRef,\r\n input,\r\n viewChild,\r\n effect,\r\n OnInit,\r\n inject,\r\n DestroyRef,\r\n ChangeDetectorRef,\r\n signal,\r\n} from '@angular/core'\r\nimport { NgTemplateOutlet } from '@angular/common'\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n ReactiveFormsModule,\r\n FormControl,\r\n} from '@angular/forms'\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop'\r\n// This Module Imports\r\nimport { IconComponent } from '../../icon/icon.component'\r\nimport { InputErrorComponent } from '../input-error/input-error.component'\r\nimport { SelectOptionComponent } from '../select-option/select-option.component'\r\nimport { Icons, InputValue } from '../../../models'\r\n// Shared Imports\r\nimport { debounceTime } from 'rxjs'\r\n\r\nconst components = [IconComponent, InputErrorComponent]\r\n\r\n@Component({\r\n selector: 'gld-select',\r\n standalone: true,\r\n imports: [ReactiveFormsModule, NgTemplateOutlet, ...components],\r\n templateUrl: './select.component.html',\r\n styleUrl: './select.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class SelectComponent implements ControlValueAccessor, OnInit, AfterContentInit {\r\n readonly #destroyRef = inject(DestroyRef)\r\n readonly #changeDetectorRef = inject(ChangeDetectorRef)\r\n readonly Icons = Icons\r\n\r\n control = input.required<FormControl<unknown>>()\r\n name = input.required<string>()\r\n label = input<string>('')\r\n placeholder = input<string>('')\r\n transform = input<(value: unknown) => string>((value: unknown) => String(value))\r\n\r\n selectElement = viewChild<ElementRef<HTMLElement>>('selectElement')\r\n selectOptionChildren = contentChildren<SelectOptionComponent>(SelectOptionComponent)\r\n\r\n innerControl = signal(new FormControl<unknown>('', { nonNullable: true }))\r\n isMenuOpen = signal(false)\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function, @typescript-eslint/no-unused-vars\r\n onChange = (value: unknown) => {}\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n onTouched = () => {}\r\n\r\n constructor() {\r\n effect(() => {\r\n if (this.selectOptionChildren()) this.#detectSelectOptionChildren()\r\n })\r\n\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value) {\r\n const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\r\n }\r\n })\r\n }\r\n\r\n ngOnInit(): void {\r\n // Subscribes to the form control's events and triggers change detection to update the view accordingly.\r\n this.control()\r\n .events.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe(() => this.#changeDetectorRef.detectChanges())\r\n }\r\n\r\n ngAfterContentInit(): void {\r\n this.#detectSelectOptionChildren()\r\n\r\n this.selectOptionChildren().map((selectOption: SelectOptionComponent) => {\r\n selectOption.changeFocus.subscribe((focus) => {\r\n // console.log('focus', focus)\r\n if (focus) this.onFocus()\r\n else this.onBlur()\r\n })\r\n })\r\n }\r\n\r\n writeValue(value: unknown): void {\r\n // console.log('writeValue')\r\n if (value !== this.innerControl().value) {\r\n // const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(value)\r\n }\r\n }\r\n\r\n registerOnChange(onChange: (value: unknown) => void): void {\r\n // console.log('registerOnChange')\r\n this.onChange = onChange\r\n }\r\n\r\n registerOnTouched(onTouched: () => void): void {\r\n // console.log('registerOnTouched')\r\n this.onTouched = onTouched\r\n }\r\n\r\n onFocus() {\r\n this.isMenuOpen.set(true)\r\n }\r\n\r\n onBlur() {\r\n // console.log('blur')\r\n this.onTouched()\r\n this.isMenuOpen.set(false)\r\n }\r\n\r\n arrowIconClicked() {\r\n // FIXME: This is a workaround to prevent the menu from closing when the arrow icon is clicked.\r\n // console.log('clicked - init', this.isMenuOpen())\r\n if (this.isMenuOpen()) this.onTouched()\r\n this.isMenuOpen.update((open) => !open)\r\n // console.log('clicked - end', this.isMenuOpen())\r\n }\r\n\r\n #transformValue(value: unknown): string | null {\r\n let valueTransformed: string | null\r\n\r\n if (value === null || value === undefined) valueTransformed = null\r\n else valueTransformed = this.transform()(value)\r\n\r\n return valueTransformed\r\n }\r\n\r\n #detectSelectOptionChildren() {\r\n const selectOptionChildren = this.selectOptionChildren()\r\n const selectElement: HTMLElement | undefined = this.selectElement()?.nativeElement\r\n selectElement?.style.setProperty('--gld-option-items', String(selectOptionChildren.length))\r\n const clientHeight: number | undefined =\r\n selectElement?.querySelector('gld-select-option')?.clientHeight\r\n if (clientHeight) selectElement?.style.setProperty('--gld-option-height', `${clientHeight}px`)\r\n\r\n selectOptionChildren.map((selectOption) => {\r\n selectOption.selected.subscribe((value: InputValue) => {\r\n if (value) {\r\n const buttons = Array.from(\r\n selectElement?.querySelectorAll('gld-select-option button') ?? [],\r\n ) as HTMLButtonElement[]\r\n buttons.map((button) => button.blur())\r\n const valueTransformed = this.#transformValue(value)\r\n this.innerControl().setValue(valueTransformed, { emitEvent: false })\r\n this.onChange(value)\r\n this.onTouched()\r\n this.isMenuOpen.set(false)\r\n }\r\n })\r\n })\r\n }\r\n}\r\n","\r\n@let errors = control().invalid && (control().dirty || control().touched);\r\n@let disabled = control().disabled || (control().pending && control().disabled);\r\n\r\n<section #selectElement class=\"select\">\r\n\t<section class=\"input\" [class.input--disabled]=\"disabled\" [class.input--error]=\"errors\">\r\n\t\t<!-- Label -->\r\n\t\t@if (label()) {\r\n\t\t\t<label [for]=\"name()\">\r\n\t\t\t\t{{ label() }}\r\n\t\t\t</label>\r\n\t\t}\r\n\t\t<!-- Input -->\r\n\t\t<input\r\n\t\t\ttype=\"text\"\r\n\t\t\tid=\"input-select-{{ name() }}\"\r\n\t\t\t[tabindex]=\"disabled ? '-1' : '0'\"\r\n\t\t\t[name]=\"name()\"\r\n\t\t\t[placeholder]=\"placeholder()\"\r\n\t\t\t[formControl]=\"innerControl()\"\r\n\t\t\t(focus)=\"onFocus()\"\r\n\t\t\t(blur)=\"onBlur()\"\r\n\t\t\t(keyup.escape)=\"onBlur()\" />\r\n\r\n\t\t<!-- Suffix -->\r\n\t\t<ng-container [ngTemplateOutlet]=\"suffixTemplate\" />\r\n\r\n\t\t<!-- Menu -->\r\n\t\t<ng-container [ngTemplateOutlet]=\"menuTemplate\" />\r\n\t</section>\r\n\t<!-- Errors -->\r\n\t@if (errors) {\r\n\t\t<ng-content select=\"gld-input-error\">\r\n\t\t\t<gld-input-error [errors]=\"control().errors\" />\r\n\t\t</ng-content>\r\n\t} @else {\r\n\t\t<!-- Hint -->\r\n\t\t<ng-content select=\"gld-input-hint\" />\r\n\t}\r\n</section>\r\n\r\n<!-- Menu Template -->\r\n<ng-template #menuTemplate>\r\n\t<section class=\"select-menu\" [class.select-menu--opened]=\"isMenuOpen()\">\r\n\t\t<ng-content select=\"gld-select-option\" />\r\n\t</section>\r\n</ng-template>\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n\t@if (control().pending) {\r\n\t\t<gld-icon\r\n\t\t\tsize=\"small\"\r\n\t\t\tclass=\"input-icon input-icon--animated\"\r\n\t\t\t[class.input-icon--error]=\"errors\"\r\n\t\t\t[icon]=\"Icons.loader4Fill\"\r\n\t\t\t[disabled]=\"disabled\" />\r\n\t} @else {\r\n\t\t<gld-icon\r\n\t\t\tsize=\"small\"\r\n\t\t\tclass=\"input-icon\"\r\n\t\t\t[class.input-icon--rotated]=\"isMenuOpen()\"\r\n\t\t\t[class.input-icon--error]=\"errors\"\r\n\t\t\t[icon]=\"Icons.arrowDownSLine\"\r\n\t\t\t[disabled]=\"disabled\"\r\n\t\t\t(clicked)=\"arrowIconClicked()\" />\r\n\t}\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n<!-- <section>status: {{ control().status }}</section> -->\r\n\r\n<!-- Suffix Template -->\r\n<ng-template #suffixTemplate>\r\n\t<gld-icon\r\n\t\tsize=\"small\"\r\n\t\tclass=\"input-icon\"\r\n\t\t[class.input-icon--error]=\"errors\"\r\n\t\t[icon]=\"Icons.arrowDownSLine\" />\r\n</ng-template>\r\n\r\n<!-- <h3>Debugging</h3> -->\r\n<!-- <section>errors: {{ control().errors | json }}</section> -->\r\n<!-- <section>errors: {{ errors }}</section> -->\r\n<!-- <section>invalid: {{ control().invalid }}</section> -->\r\n<!-- <section>dirty: {{ control().dirty }}</section> -->\r\n<!-- <section>touched: {{ control().touched }}</section> -->\r\n<!-- <section>disable: {{ control().disabled }}</section> -->\r\n","// Angular Imports\r\nimport { booleanAttribute, ChangeDetectionStrategy, Component, input } from '@angular/core'\r\nimport { NgOptimizedImage } from '@angular/common'\r\n\r\n@Component({\r\n selector: 'gld-image',\r\n standalone: true,\r\n imports: [NgOptimizedImage],\r\n templateUrl: './image.component.html',\r\n styleUrl: './image.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ImageComponent {\r\n src = input.required<string>()\r\n alt = input.required<string>()\r\n // srcset = input<string>('')\r\n // sizes = input<string>('')\r\n priority = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n}\r\n","<!-- @if (srcset() && sizes()) {\r\n @if (priority()) {\r\n <img fill priority alt=\"{{ alt() }}\" [ngSrc]=\"src()\" [ngSrcset]=\"srcset()\" [sizes]=\"sizes()\" />\r\n } @else {\r\n <img\r\n fill\r\n alt=\"{{ alt() }}\"\r\n [ngSrc]=\"src()\"\r\n [ngSrcset]=\"srcset()\"\r\n [sizes]=\"sizes()\"\r\n loading=\"lazy\" />\r\n }\r\n} @else {\r\n @if (priority()) {\r\n <img fill priority alt=\"{{ alt() }}\" [ngSrc]=\"src()\" />\r\n } @else {\r\n <img fill alt=\"{{ alt() }}\" [ngSrc]=\"src()\" loading=\"lazy\" />\r\n }\r\n} -->\r\n\r\n@if (priority()) {\r\n <img fill priority alt=\"{{ alt() }}\" [ngSrc]=\"src()\" />\r\n} @else {\r\n <img fill alt=\"{{ alt() }}\" [ngSrc]=\"src()\" loading=\"lazy\" />\r\n}\r\n","// Angular Imports\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input } from '@angular/core'\n\n@Component({\n standalone: true,\n selector: 'gld-loader',\n imports: [],\n templateUrl: './loader.component.html',\n styleUrl: './loader.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LoaderComponent {\n loading = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n background = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n radius = input<boolean, string | boolean>(false, { transform: booleanAttribute })\n minHeight = input<string>('auto')\n}\n","<article\n class=\"loader\"\n [class.loader--loading]=\"loading()\"\n [class.loader--background]=\"background()\"\n [class.loader--radius]=\"radius()\"\n [style.minHeight]=\"minHeight()\">\n <!-- Content -->\n <ng-content />\n\n <!-- Loader -->\n @if (loading()) {\n <section class=\"loader-loading\">\n <svg class=\"container\" viewBox=\"0 0 40 40\" height=\"40\" width=\"40\">\n <circle\n class=\"track\"\n cx=\"20\"\n cy=\"20\"\n r=\"17.5\"\n pathlength=\"100\"\n stroke-width=\"5px\"\n fill=\"none\" />\n <circle\n class=\"car\"\n cx=\"20\"\n cy=\"20\"\n r=\"17.5\"\n pathlength=\"100\"\n stroke-width=\"5px\"\n fill=\"none\" />\n </svg>\n </section>\n }\n</article>\n","// Angular Imports\nimport {\n Component,\n signal,\n input,\n output,\n computed,\n effect,\n ChangeDetectionStrategy,\n} from '@angular/core'\n// Shared Imports\n// import { IconButtonComponent } from '../../../components'\nimport { Icons, TablePagination } from '../../../models'\n\n@Component({\n selector: 'gld-table-pagination',\n standalone: true,\n imports: [],\n templateUrl: './table-pagination.component.html',\n styleUrl: './table-pagination.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TablePaginationComponent {\n readonly Icons = Icons\n\n pagination = input.required<TablePagination>()\n page = output<number>()\n changeToNext = output<number>()\n changeToPrevious = output<number>()\n\n currentPage = signal<number>(0)\n maxPages = computed(() => {\n if (this.pagination().itemsPerPage > this.pagination().maxItems) return 1\n else return Math.ceil(this.pagination().maxItems / this.pagination().itemsPerPage)\n })\n\n constructor() {\n effect(() => this.page.emit(this.currentPage()))\n effect(() => {\n const initialPage = this.pagination().initialPage\n if (initialPage) this.currentPage.set(initialPage)\n })\n }\n\n nextPage(): void {\n if (this.pagination().maxItems !== 0) {\n if (\n this.currentPage() !==\n Math.ceil(this.pagination().maxItems / this.pagination().itemsPerPage)\n ) {\n this.currentPage.update((previousPage) => previousPage + 1)\n }\n }\n this.changeToNext.emit(this.currentPage())\n }\n\n previousPage(): void {\n if (this.currentPage() === 1) {\n this.currentPage.set(1)\n } else {\n this.currentPage.update((previousPage) => previousPage - 1)\n }\n\n this.changeToPrevious.emit(this.currentPage())\n }\n}\n","<article class=\"Pagination\" >\n <section class=\"Pagination-info\">\n <p class=\"Pagination-label\">Página {{ currentPage() }} de {{ maxPages() }}</p>\n </section>\n <section class=\"Pagination-actions\">\n <!-- <gld-icon-button\n class=\"\"\n name=\"button-next\"\n iconSize=\"small\"\n [icon]=\"Icons.arrowLeftSLine\"\n (clicked)=\"previousPage()\" />\n <gld-icon-button\n class=\"\"\n name=\"button-previous\"\n iconSize=\"small\"\n [icon]=\"Icons.arrowRightSLine\"\n (clicked)=\"nextPage()\" /> -->\n </section>\n</article>\n","// Angular Imports\nimport { ChangeDetectionStrategy, Component, inject, input, output } from '@angular/core'\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms'\n// Shared Imports\n// import { IconComponent } from '../../../components'\nimport { Icons, TableSearchAction, TableSearchOutput } from '../../../models'\n// Thirdparty Imports\nimport { debounceTime } from 'rxjs'\n\n@Component({\n selector: 'gld-table-search',\n standalone: true,\n imports: [ReactiveFormsModule],\n templateUrl: './table-search.component.html',\n styleUrl: './table-search.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableSearchComponent {\n readonly #formBuilder = inject(FormBuilder)\n readonly Icons = Icons\n\n placeholder = input<string>('buscar')\n width = input<string>('auto')\n debounceTime = input<number>(250)\n searching = output<TableSearchOutput>()\n\n control = this.#formBuilder.control('')\n\n constructor() {\n this.control.valueChanges\n .pipe(debounceTime(this.debounceTime()))\n .subscribe((value: string | null) => {\n const action: TableSearchAction =\n value?.length ? TableSearchAction.searching : TableSearchAction.cleared\n const searching: string = value?.length ? value : ''\n\n this.searching.emit({\n action,\n searching,\n })\n })\n }\n}\n","<article class=\"Search\">\n <section class=\"Input\" [style.width]=\"width()\">\n <!-- <gld-icon [icon]=\"Icons.search2Line\" /> -->\n\n <input\n id=\"search\"\n name=\"search\"\n type=\"search\"\n [placeholder]=\"placeholder()\"\n [formControl]=\"control\" />\n </section>\n</article>\n","// Angular Imports\nimport {\n Component,\n computed,\n input,\n booleanAttribute,\n ChangeDetectionStrategy,\n signal,\n output,\n effect,\n} from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\n// Angular Material Imports\n// import { CdkMenuModule } from '@angular/cdk/menu'\n// Shared Imports\nimport {\n Icons,\n TableColumn,\n TableColumnAction,\n TableColumnActionOutput,\n TableColumnStructure,\n TableColumnToTableColumns,\n} from '../../../models'\nimport {\n DropdownButtonComponent,\n DropdownMenuComponent,\n LoaderComponent,\n} from '../../../components'\n\nconst components = [DropdownButtonComponent, DropdownMenuComponent, LoaderComponent]\n\n@Component({\n selector: 'gld-table',\n standalone: true,\n imports: [NgTemplateOutlet, ...components],\n templateUrl: './table.component.html',\n styleUrl: './table.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TableComponent {\n readonly Icons = Icons\n\n tableColumns = input.required<TableColumn[]>()\n emptyMessage = input<string>('')\n tableHeight = input<string>('auto')\n loading = input<boolean, boolean | string>(true, { transform: booleanAttribute })\n selects = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n selectsAll = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n search = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n pagination = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n tableColumnAction = output<TableColumnActionOutput>()\n\n tableColumnsToShow = computed(() =>\n this.tableColumns().filter((column: TableColumn) => !column.hide),\n )\n tableColumnActions = signal<TableColumnAction[]>([])\n\n constructor() {\n effect(() => {\n console.log('effect', this.loading())\n })\n }\n\n tableActionFunction({ tableColumnActionAsEvent, tableColumns, index }: TableActionFunction) {\n const tableColumnAction = tableColumnActionAsEvent as TableColumnAction\n const object: unknown = this.#buildObjectFromTableColumn({ tableColumns, index })\n const event: TableColumnActionOutput = {\n tableColumnAction,\n object,\n }\n this.tableColumnAction.emit(event)\n }\n\n changeValue(event: unknown) {\n console.log('event', event)\n }\n\n // We build each column and in case it doesn't exist or update it in case it already exists\n buildTableColumns<T>({\n tableColumnStructures,\n tableColumnActions,\n dataStructures,\n }: TableColumnToTableColumns): TableColumn[] {\n const tableColumns: TableColumn[] = []\n const structures = dataStructures as T[]\n this.tableColumnActions.set(tableColumnActions)\n\n // console.log('buildTableColumns')\n tableColumnStructures.map((column: TableColumnStructure) => {\n structures.map((dataItem: T) => {\n // We check if the property we pass it exists within the object we receive\n // eslint-disable-next-line no-prototype-builtins\n if (dataItem?.hasOwnProperty(column.name)) {\n const propertyValue = dataItem[column.name as keyof T] as T\n // We check if a column already exists in our array with the name of that property\n const currentTableColumn: TableColumn | undefined = tableColumns.find(\n (_column: TableColumn) => _column.name === column.name,\n )\n if (currentTableColumn) {\n // If it exists, we update it\n const tableColumn: TableColumn = currentTableColumn\n tableColumn.values = [...currentTableColumn.values, propertyValue]\n } else {\n // If it doesn't exist, we add it\n const tableColumnToAdd: TableColumn = {\n name: column.name,\n label: column.label,\n width: column.width ? column.width : 'auto',\n minWidth: column.minWidth ? column.minWidth : 'auto',\n maxWidth: column.maxWidth ? column.maxWidth : 'auto',\n hide: column.hide ?? false,\n template: column.template ?? undefined,\n justify: column.justify ? column.justify : 'left',\n transform:\n column.transform ?\n column.transform\n : (value: unknown) => {\n if (typeof value === 'string' || typeof value === 'number') return value\n else return String(value)\n },\n values: [propertyValue],\n }\n tableColumns.push(tableColumnToAdd)\n }\n } else {\n console.error(\n `this column \"${column.name}\" doesn't exist in this data structure`,\n dataStructures,\n )\n }\n })\n })\n\n return tableColumns\n }\n\n buildDataStructure({ index }: { index: number }) {\n return this.#buildObjectFromTableColumn({ tableColumns: this.tableColumns(), index })\n }\n\n #buildObjectFromTableColumn({ tableColumns, index }: BuildObjectFromTableColumn) {\n // We reconstruct the object passed to us from the selected index and the columns we receive\n\n /* INFO:\n\t\t\tUsing this data as an input:\n\t\t\tindex: 0\n\t\t\tcolumns = [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Id',\n\t\t\t\t\tname: 'id',\n\t\t\t\t\tvalues: ['333333', '222222'],\n\t\t\t\t\twidth: '100px',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Name',\n\t\t\t\t\tname: 'name',\n\t\t\t\t\tvalues: ['Buenos Aires', 'Mendoza'],\n\t\t\t\t\twidth: 'auto',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Chargers',\n\t\t\t\t\tname: 'chargers',\n\t\t\t\t\tvalues: [24, 27],\n\t\t\t\t\twidth: '150px',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Hoses',\n\t\t\t\t\tname: 'hoses',\n\t\t\t\t\tvalues: [23, 26],\n\t\t\t\t\twidth: '150px',\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Drivers',\n\t\t\t\t\tname: 'drivers',\n\t\t\t\t\tvalues: [25, 29],\n\t\t\t\t\twidth: '150px',\n\t\t\t\t},\n\t\t\t]\n\n\t\t \tWe will receive this result:\n\t\t\t{\n\t\t\t\tchargers: 24\n\t\t\t\tdrivers: 25\n\t\t\t\thoses: 23\n\t\t\t\tid: '333333'\n\t\t\t\tname: 'Buenos Aires'\n\t\t\t}\n\t\t*/\n\n return tableColumns.reduce((previous: Partial<TableColumn>, current: TableColumn) => {\n return { ...previous, [current.name]: current.values[index] }\n }, {})\n }\n}\n\ninterface TableActionFunction {\n tableColumnActionAsEvent: unknown\n tableColumns: TableColumn[]\n index: number\n}\n\ninterface BuildObjectFromTableColumn {\n tableColumns: TableColumn[]\n index: number\n}\n","<!-- Search -->\n@if (search()) {\n <section class=\"table-search\">\n <ng-content select=\"gld-table-search\" />\n </section>\n}\n\n<!-- Table -->\n<article\n class=\"table\"\n [class.table--empty]=\"!tableColumnsToShow().length\"\n [style.height]=\"tableHeight()\">\n <!-- Table Content -->\n <section\n class=\"table-content\"\n [class.table-content--actions]=\"tableColumnActions().length\"\n [class.table-content--selects]=\"selects()\">\n <!-- Loading -->\n @if (loading()) {\n <gld-loader loading background minHeight=\"100px\" />\n } @else {\n <!-- Table Columns -->\n @for (tableColumn of tableColumnsToShow(); track tableColumn) {\n <section\n class=\"table-column\"\n [style.flexBasis]=\"tableColumn.width\"\n [style.flexShrink]=\"tableColumn.width === 'auto' ? '1' : '0'\"\n [style.flexGrow]=\"tableColumn.width === 'auto' ? '1' : '0'\"\n [style.minWidth]=\"tableColumn.minWidth\"\n [style.maxWidth]=\"tableColumn.maxWidth\">\n <section class=\"table-header\">\n <span class=\"table-header-ellipsis\">{{ tableColumn.label }}</span>\n </section>\n @for (value of tableColumn.values; track $index) {\n <section\n class=\"table-cell\"\n [style.justifyContent]=\"tableColumn.justify\"\n [style.textAlign]=\"tableColumn.justify\">\n @if (tableColumn.transform(value) !== undefined) {\n @switch (true) {\n @case (tableColumn.template !== undefined) {\n <ng-container\n [ngTemplateOutlet]=\"tableColumn.template\"\n [ngTemplateOutletContext]=\"{ value: tableColumn.transform(value) }\" />\n }\n @default {\n <span class=\"table-cell-ellipsis\">{{ tableColumn.transform(value) }}</span>\n }\n }\n } @else {\n <span>-</span>\n }\n </section>\n }\n </section>\n } @empty {\n <!-- Empty -->\n <section class=\"table-empty\">\n <p>{{ emptyMessage() ? emptyMessage() : 'We have not data to show yet!' }}</p>\n </section>\n }\n }\n </section>\n\n <!-- Table Actions -->\n @if ((tableColumnActions().length || selects()) && !loading() && tableColumnsToShow().length) {\n <section\n class=\"table-column\"\n [class.table-column--actions]=\"tableColumnActions().length\"\n [class.table-column--selects]=\"selects()\">\n <!-- Header -->\n <section\n class=\"table-header\"\n [class.table-header--actions]=\"tableColumnActions().length\"\n [class.table-header--selects]=\"selects()\">\n <!-- Select All Checkbox -->\n @if (selectsAll()) {\n <!-- <mat-checkbox\n color=\"primary\"\n matTooltip=\"Todo\"\n matTooltipClass=\"Tooltip\"\n class=\"Checkbox\"\n [checked]=\"\n dragAndDropColumnSelected().length === dragAndDropColumns().at(0)?.values?.length\n \"\n [indeterminate]=\"\n !!dragAndDropColumnSelected().length &&\n dragAndDropColumnSelected().length !== dragAndDropColumns().at(0)?.values?.length\n \"\n (change)=\"onSelectOrUnselectAll($event, dragAndDropColumns())\"\n /> -->\n }\n </section>\n @for (value of tableColumnsToShow().at(0)?.values; track $index; let index = $index) {\n <!-- Cell -->\n <section class=\"table-cell table-cell--actions\">\n <!-- Select Checkbox -->\n @if (selects()) {\n <!-- <mat-checkbox\n color=\"primary\"\n class=\"Checkbox\"\n matTooltip=\"Seleccionar\"\n matTooltipClass=\"Tooltip\"\n [checked]=\"isSelected(dragAndDropColumns(), index)\"\n (change)=\"onSelect($event, dragAndDropColumns(), index)\" /> -->\n }\n @if (tableColumnActions()) {\n <!-- Dropdown Menu -->\n <gld-dropdown-menu\n background\n name=\"more button of table cell\"\n type=\"iconButton\"\n color=\"blue\"\n iconSize=\"small\"\n direction=\"left\"\n [icon]=\"Icons.more2Fill\"\n (changeValue)=\"\n tableActionFunction({\n tableColumnActionAsEvent: $event,\n tableColumns: tableColumns(),\n index,\n })\n \">\n @for (tableColumnAction of tableColumnActions(); track tableColumnAction.type) {\n <gld-dropdown-button\n [value]=\"tableColumnAction\"\n [icon]=\"tableColumnAction.icon\"\n iconSize=\"tiny\">\n {{ tableColumnAction.label }}\n </gld-dropdown-button>\n }\n </gld-dropdown-menu>\n <!-- <gld-icon-button\n background\n name=\"more button of table cell\"\n iconSize=\"small\"\n [icon]=\"Icons.more2Fill\"> -->\n <!-- <gld-tile color=\"blue-to-green\" class=\"Menu\">\n <section class=\"Menu-content\">\n @for (tableColumnAction of tableColumnActions(); track tableColumnAction.type) {\n <button\n class=\"Menu-button {{ tableColumnAction?.classToHover ?? '' }}\"\n [class.Menu-button--hidden]=\"\n !tableColumnAction.showWhen(buildDataStructure({ index }))\n \"\n (click)=\"\n tableActionFunction({\n tableColumnAction,\n tableColumns: tableColumns(),\n index,\n })\n \">\n <gld-icon size=\"tiny\" [icon]=\"tableColumnAction.icon\" />\n <span class=\"Menu-button-ellipsis\">{{ tableColumnAction.label }}</span>\n </button>\n }\n </section>\n </gld-tile> -->\n <!-- </gld-icon-button> -->\n }\n </section>\n }\n </section>\n }\n</article>\n\n<!-- Pagination -->\n@if (pagination()) {\n <section class=\"table-pagination\">\n <ng-content select=\"gld-table-pagination\" />\n </section>\n}\n\n","// Angular Imports\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input } from '@angular/core'\n// This Module Imports\nimport { TileColor, TilePaddingSize } from '../../models'\n\n@Component({\n selector: 'gld-tile',\n standalone: true,\n imports: [],\n templateUrl: './tile.component.html',\n styleUrl: './tile.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TileComponent {\n color = input<keyof typeof TileColor>(TileColor.default)\n paddingSize = input<keyof typeof TilePaddingSize>(TilePaddingSize.zero)\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n hover = input<boolean, boolean | string>(false, { transform: booleanAttribute })\n}\n","<article\n class=\"tile tile--{{ color() }} tile--padding-{{ paddingSize() }}\"\n [class.tile--background]=\"background()\"\n [class.tile--hover]=\"hover()\">\n <section class=\"tile-content\">\n <ng-content />\n </section>\n</article>\n","// Always first\r\nexport { IconComponent } from './icon/icon.component'\r\n// Unordered\r\nexport { ButtonComponent } from './buttons/button/button.component'\r\nexport { IconButtonComponent } from './buttons/icon-button/icon-button.component'\r\nexport { LinkComponent } from './buttons/link/link.component'\r\nexport { DropdownButtonComponent } from './buttons/dropdown-button/dropdown-button.component'\r\nexport { DropdownMenuComponent } from './buttons/dropdown-menu/dropdown-menu.component'\r\nexport { ToggleButtonComponent } from './buttons/toggle-button/toggle-button.component'\r\nexport { ToggleGroupComponent } from './buttons/toggle-group/toggle-group.component'\r\nexport { InputComponent } from './controls/input/input.component'\r\nexport { InputDateComponent } from './controls/input-date/input-date.component'\r\nexport { InputHintComponent } from './controls/input-hint/input-hint.component'\r\nexport { InputErrorComponent } from './controls/input-error/input-error.component'\r\nexport { TextareaComponent } from './controls/textarea/textarea.component'\r\nexport { RadioButtonComponent } from './controls/radio-button/radio-button.component'\r\nexport { RadioGroupComponent } from './controls/radio-group/radio-group.component'\r\nexport { SelectOptionComponent } from './controls/select-option/select-option.component'\r\nexport { SelectComponent } from './controls/select/select.component'\r\nexport { ImageComponent } from './image/image.component'\r\nexport { LoaderComponent } from './loaders/loader/loader.component'\r\nexport { TablePaginationComponent } from './tables/table-pagination/table-pagination.component'\r\nexport { TableSearchComponent } from './tables/table-search/table-search.component'\r\nexport { TableComponent } from './tables/table/table.component'\r\nexport { TileComponent } from './tile/tile.component'\r\n","/*\n * Public API Surface of iamgld-ui\n */\n\nexport * from './lib/utils'\nexport * from './lib/models'\nexport * from './lib/validators'\nexport * from './lib/directives'\nexport * from './lib/components'\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["components"],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@iamgld/ui",
3
- "version": "1.20.1",
3
+ "version": "1.20.2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
7
  "peerDependencies": {
8
- "@angular/common": "19.1.5",
9
- "@angular/core": "19.1.5"
8
+ "@angular/common": "19.1.7",
9
+ "@angular/core": "19.1.7"
10
10
  },
11
11
  "dependencies": {
12
12
  "tslib": "2.8.1"