@iamgld/ui 1.4.3 → 1.6.1
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.
package/fesm2022/iamgld-ui.mjs
CHANGED
|
@@ -63,6 +63,12 @@ var Icons;
|
|
|
63
63
|
Icons["gitRepositoryLine"] = " ri-git-repository-line";
|
|
64
64
|
Icons["fileList3Line"] = " ri-file-list-3-line";
|
|
65
65
|
Icons["menuLine"] = " ri-menu-line";
|
|
66
|
+
Icons["sunLine"] = " ri-sun-line";
|
|
67
|
+
Icons["moonClearLine"] = " ri-moon-clear-line";
|
|
68
|
+
Icons["englishInput"] = " ri-english-input";
|
|
69
|
+
Icons["translate"] = " ri-translate";
|
|
70
|
+
Icons["user4Line"] = " ri-user-4-line";
|
|
71
|
+
Icons["shapesLine"] = " ri-shapes-line";
|
|
66
72
|
})(Icons || (Icons = {}));
|
|
67
73
|
var IconsSize;
|
|
68
74
|
(function (IconsSize) {
|
|
@@ -298,11 +304,11 @@ class IconComponent {
|
|
|
298
304
|
this.emitClick();
|
|
299
305
|
}
|
|
300
306
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
301
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: IconComponent, isStandalone: true, selector: "gld-icon", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, space: { classPropertyName: "space", publicName: "space", isSignal: true, isRequired: false, transformFunction: null }, moveTopToBottom: { classPropertyName: "moveTopToBottom", publicName: "moveTopToBottom", isSignal: true, isRequired: false, transformFunction: null }, moveLeftToRight: { classPropertyName: "moveLeftToRight", publicName: "moveLeftToRight", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<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 }\r\n</span>\r\n", styles: [":host{color:inherit;display:inline-flex}:host:has(.Icon--left){margin-left:var(--gld-spacing--xxxs)}:host:has(.Icon--right){margin-right:var(--gld-spacing--xxxs)}.Icon{--gld-icon-size: var(--gld-icon-size--normal);position:relative;color:inherit;font-weight:400;width:var(--gld-icon-size);height:var(--gld-icon-size);margin:auto}.Icon--tiny{--gld-icon-size: var(--gld-icon-size--tiny)}.Icon--small{--gld-icon-size: var(--gld-icon-size--small)}.Icon--medium{--gld-icon-size: var(--gld-icon-size--medium)}.Icon--large{--gld-icon-size: var(--gld-icon-size--large)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
307
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: IconComponent, isStandalone: true, selector: "gld-icon", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, space: { classPropertyName: "space", publicName: "space", isSignal: true, isRequired: false, transformFunction: null }, moveTopToBottom: { classPropertyName: "moveTopToBottom", publicName: "moveTopToBottom", isSignal: true, isRequired: false, transformFunction: null }, moveLeftToRight: { classPropertyName: "moveLeftToRight", publicName: "moveLeftToRight", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<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 }\r\n</span>\r\n", styles: [":host{color:inherit;display:inline-flex}:host:has(.Icon--left){margin-left:var(--gld-spacing--xxxs)}:host:has(.Icon--right){margin-right:var(--gld-spacing--xxxs)}.Icon{--gld-icon-size: var(--gld-icon-size--normal);position:relative;color:inherit;font-weight:400;width:var(--gld-icon-size);height:var(--gld-icon-size);margin:auto}.Icon--tiny{--gld-icon-size: var(--gld-icon-size--tiny)}.Icon--small{--gld-icon-size: var(--gld-icon-size--small)}.Icon--medium{--gld-icon-size: var(--gld-icon-size--medium)}.Icon--large{--gld-icon-size: var(--gld-icon-size--large)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
302
308
|
}
|
|
303
309
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: IconComponent, decorators: [{
|
|
304
310
|
type: Component,
|
|
305
|
-
args: [{ selector: 'gld-icon', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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 }\r\n</span>\r\n", styles: [":host{color:inherit;display:inline-flex}:host:has(.Icon--left){margin-left:var(--gld-spacing--xxxs)}:host:has(.Icon--right){margin-right:var(--gld-spacing--xxxs)}.Icon{--gld-icon-size: var(--gld-icon-size--normal);position:relative;color:inherit;font-weight:400;width:var(--gld-icon-size);height:var(--gld-icon-size);margin:auto}.Icon--tiny{--gld-icon-size: var(--gld-icon-size--tiny)}.Icon--small{--gld-icon-size: var(--gld-icon-size--small)}.Icon--medium{--gld-icon-size: var(--gld-icon-size--medium)}.Icon--large{--gld-icon-size: var(--gld-icon-size--large)}\n"] }]
|
|
311
|
+
args: [{ selector: 'gld-icon', standalone: true, imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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 }\r\n</span>\r\n", styles: [":host{color:inherit;display:inline-flex}:host:has(.Icon--left){margin-left:var(--gld-spacing--xxxs)}:host:has(.Icon--right){margin-right:var(--gld-spacing--xxxs)}.Icon{--gld-icon-size: var(--gld-icon-size--normal);position:relative;color:inherit;font-weight:400;width:var(--gld-icon-size);height:var(--gld-icon-size);margin:auto}.Icon--tiny{--gld-icon-size: var(--gld-icon-size--tiny)}.Icon--small{--gld-icon-size: var(--gld-icon-size--small)}.Icon--medium{--gld-icon-size: var(--gld-icon-size--medium)}.Icon--large{--gld-icon-size: var(--gld-icon-size--large)}\n"] }]
|
|
306
312
|
}] });
|
|
307
313
|
|
|
308
314
|
// Angular Imports
|
|
@@ -318,6 +324,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
|
|
|
318
324
|
args: [{ selector: 'gld-image', standalone: true, imports: [NgOptimizedImage], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (priority()) {\r\n\t<img priority=\"true\" [ngSrc]=\"src()\" [alt]=\"alt()\" [fill]=\"true\" />\r\n} @else {\r\n\t<img loading=\"lazy\" [ngSrc]=\"src()\" [alt]=\"alt()\" [fill]=\"true\" />\r\n}\r\n", styles: [":host{position:relative;aspect-ratio:1;overflow:hidden;display:inline-block;width:inherit;height:inherit}img{width:inherit;height:inherit;max-width:100%;max-height:100%;display:inherit;aspect-ratio:inherit;z-index:inherit;object-fit:inherit;border-radius:inherit;border:inherit;background-color:inherit;-webkit-user-select:none;user-select:none;pointer-events:none}\n"] }]
|
|
319
325
|
}] });
|
|
320
326
|
|
|
327
|
+
// Angular Imports
|
|
328
|
+
class LoaderComponent {
|
|
329
|
+
loading = input(false, { transform: booleanAttribute });
|
|
330
|
+
background = input(false, { transform: booleanAttribute });
|
|
331
|
+
radius = input(false, { transform: booleanAttribute });
|
|
332
|
+
minHeight = input('auto');
|
|
333
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
334
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.1", type: LoaderComponent, isStandalone: true, selector: "gld-loader", inputs: { loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, minHeight: { classPropertyName: "minHeight", publicName: "minHeight", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<article\r\n class=\"loader\"\r\n [class.loader--loading]=\"loading()\"\r\n [class.loader--background]=\"background()\"\r\n [class.loader--radius]=\"radius()\"\r\n [style.minHeight]=\"minHeight()\">\r\n <!-- Content -->\r\n <ng-content />\r\n\r\n <!-- Loader -->\r\n @if (loading()) {\r\n <section class=\"loader-loading\">\r\n <svg class=\"container\" viewBox=\"0 0 40 40\" height=\"40\" width=\"40\">\r\n <circle\r\n class=\"track\"\r\n cx=\"20\"\r\n cy=\"20\"\r\n r=\"17.5\"\r\n pathlength=\"100\"\r\n stroke-width=\"5px\"\r\n fill=\"none\" />\r\n <circle\r\n class=\"car\"\r\n cx=\"20\"\r\n cy=\"20\"\r\n r=\"17.5\"\r\n pathlength=\"100\"\r\n stroke-width=\"5px\"\r\n fill=\"none\" />\r\n </svg>\r\n </section>\r\n }\r\n</article>\r\n", styles: [".loader{--gld-color: var(--gld-darkblue);--gld-background: var(--gld-whitelight-transparent--090);position:relative;color:var(--color)}.loader--radius{border-radius:var(--gld-spacing--xxxs)}.loader-loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:1}.loader--background .loader-loading{background:var(--gld-background)}.container{--uib-size: 40px;--uib-color: var(--gld-orange);--uib-speed: .8s;--uib-bg-opacity: .1;width:var(--uib-size);height:var(--uib-size);transform-origin:center;animation:rotate var(--uib-speed) linear infinite;will-change:transform;overflow:visible}.car{fill:none;stroke:var(--uib-color);stroke-dasharray:25,75;stroke-dashoffset:0;stroke-linecap:round;transition:stroke .5s ease}.track{fill:none;stroke:var(--uib-color);opacity:var(--uib-bg-opacity);transition:stroke .5s ease}@keyframes rotate{to{transform:rotate(360deg)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
335
|
+
}
|
|
336
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: LoaderComponent, decorators: [{
|
|
337
|
+
type: Component,
|
|
338
|
+
args: [{ standalone: true, selector: 'gld-loader', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<article\r\n class=\"loader\"\r\n [class.loader--loading]=\"loading()\"\r\n [class.loader--background]=\"background()\"\r\n [class.loader--radius]=\"radius()\"\r\n [style.minHeight]=\"minHeight()\">\r\n <!-- Content -->\r\n <ng-content />\r\n\r\n <!-- Loader -->\r\n @if (loading()) {\r\n <section class=\"loader-loading\">\r\n <svg class=\"container\" viewBox=\"0 0 40 40\" height=\"40\" width=\"40\">\r\n <circle\r\n class=\"track\"\r\n cx=\"20\"\r\n cy=\"20\"\r\n r=\"17.5\"\r\n pathlength=\"100\"\r\n stroke-width=\"5px\"\r\n fill=\"none\" />\r\n <circle\r\n class=\"car\"\r\n cx=\"20\"\r\n cy=\"20\"\r\n r=\"17.5\"\r\n pathlength=\"100\"\r\n stroke-width=\"5px\"\r\n fill=\"none\" />\r\n </svg>\r\n </section>\r\n }\r\n</article>\r\n", styles: [".loader{--gld-color: var(--gld-darkblue);--gld-background: var(--gld-whitelight-transparent--090);position:relative;color:var(--color)}.loader--radius{border-radius:var(--gld-spacing--xxxs)}.loader-loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:1}.loader--background .loader-loading{background:var(--gld-background)}.container{--uib-size: 40px;--uib-color: var(--gld-orange);--uib-speed: .8s;--uib-bg-opacity: .1;width:var(--uib-size);height:var(--uib-size);transform-origin:center;animation:rotate var(--uib-speed) linear infinite;will-change:transform;overflow:visible}.car{fill:none;stroke:var(--uib-color);stroke-dasharray:25,75;stroke-dashoffset:0;stroke-linecap:round;transition:stroke .5s ease}.track{fill:none;stroke:var(--uib-color);opacity:var(--uib-bg-opacity);transition:stroke .5s ease}@keyframes rotate{to{transform:rotate(360deg)}}\n"] }]
|
|
339
|
+
}] });
|
|
340
|
+
|
|
321
341
|
// Angular Imports
|
|
322
342
|
class ButtonComponent {
|
|
323
343
|
name = input.required();
|
|
@@ -710,7 +730,13 @@ class SelectComponent {
|
|
|
710
730
|
});
|
|
711
731
|
this.innerControl()
|
|
712
732
|
.valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))
|
|
713
|
-
.subscribe((value) =>
|
|
733
|
+
.subscribe((value) => {
|
|
734
|
+
this.onChange(value);
|
|
735
|
+
if (value !== null || value !== undefined) {
|
|
736
|
+
const valueTransformed = this.#transformValue(value);
|
|
737
|
+
this.innerControl().setValue(valueTransformed, { emitEvent: false });
|
|
738
|
+
}
|
|
739
|
+
});
|
|
714
740
|
}
|
|
715
741
|
ngOnInit() {
|
|
716
742
|
// Subscribes to the form control's events and triggers change detection to update the view accordingly.
|
|
@@ -900,5 +926,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
|
|
|
900
926
|
* Generated bundle index. Do not edit.
|
|
901
927
|
*/
|
|
902
928
|
|
|
903
|
-
export { ButtonComponent, IconButtonComponent, IconComponent, Icons, IconsSize, IconsSpace, ImageComponent, InputComponent, InputDateComponent, InputErrorComponent, InputErrorMessageDirective, InputHintComponent, RadioButtonComponent, RadioDirection, RadioGroupComponent, SelectComponent, SelectOptionComponent, SelectType, TextareaComponent, TileComponent, capitalizeFirstLetter, formatDateFromISOToYYYYMMDD, formatDateToISO, getDateWithOffsetInYears, isDateValidator, isDocumentValidator, isEmailValidator, isFormSelectItemValidator, isLicensePlateValidator, isNaturalNumberValidator, minimumAgeValidator, mustMatchValidator, mustUnmatchValidator };
|
|
929
|
+
export { ButtonComponent, IconButtonComponent, IconComponent, Icons, IconsSize, IconsSpace, ImageComponent, InputComponent, InputDateComponent, InputErrorComponent, InputErrorMessageDirective, InputHintComponent, LoaderComponent, RadioButtonComponent, RadioDirection, RadioGroupComponent, SelectComponent, SelectOptionComponent, SelectType, TextareaComponent, TileComponent, capitalizeFirstLetter, formatDateFromISOToYYYYMMDD, formatDateToISO, getDateWithOffsetInYears, isDateValidator, isDocumentValidator, isEmailValidator, isFormSelectItemValidator, isLicensePlateValidator, isNaturalNumberValidator, minimumAgeValidator, mustMatchValidator, mustUnmatchValidator };
|
|
904
930
|
//# sourceMappingURL=iamgld-ui.mjs.map
|
|
@@ -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/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/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/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/image/image.component.ts","../../../projects/iamgld-ui/src/lib/components/image/image.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/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-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/input/input.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input/input.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/controls/textarea/textarea.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.html","../../../projects/iamgld-ui/src/lib/components/tiles/tile/tile.component.ts","../../../projects/iamgld-ui/src/lib/components/tiles/tile/tile.component.html","../../../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\n// export 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 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}\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 { 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","import { Directive } from '@angular/core'\n\n@Directive({\n selector: '[gldErrorMessage]',\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 }\r\n</span>\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, booleanAttribute, 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 priority = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n}\r\n","@if (priority()) {\r\n\t<img priority=\"true\" [ngSrc]=\"src()\" [alt]=\"alt()\" [fill]=\"true\" />\r\n} @else {\r\n\t<img loading=\"lazy\" [ngSrc]=\"src()\" [alt]=\"alt()\" [fill]=\"true\" />\r\n}\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input, output } from '@angular/core'\r\n// This Module Imports\r\nimport { ButtonColor, ButtonSize } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-button',\r\n templateUrl: './button.component.html',\r\n styleUrl: './button.component.scss',\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonComponent {\r\n name = input.required<string>()\r\n color = input<ButtonColor>('pink')\r\n size = input<ButtonSize>('normal')\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","<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 (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <span>\r\n <ng-content />\r\n </span>\r\n</button>\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, Icons, IconsSize, IconsSpace } from '../../../models'\r\nimport { IconComponent } from '../../icon/icon.component'\r\n\r\n@Component({\r\n selector: 'gld-icon-button',\r\n templateUrl: './icon-button.component.html',\r\n styleUrl: './icon-button.component.scss',\r\n imports: [IconComponent],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconButtonComponent {\r\n icon = input.required<Icons>()\r\n name = input.required<string>()\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 background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n color = input<ButtonColor>('pink')\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() }}\"\r\n [class.Button--disabled]=\"disabled()\"\r\n [class.Button--background]=\"background()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <gld-icon\r\n [icon]=\"icon()\"\r\n [size]=\"size()\"\r\n [space]=\"space()\"\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [disabled]=\"disabled()\" />\r\n</button>\r\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\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<string>('', { 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), debounceTime(100))\n .subscribe((value) => {\n const valueTransformed = formatDateToISO(value)\n this.onChange(valueTransformed)\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 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>(''))\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), debounceTime(100))\r\n .subscribe((value) => {\r\n const valueTransformed = value\r\n this.onChange(valueTransformed)\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\r\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'\r\n// Shared Imports\r\nimport { InputValue } from '../../../models'\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<InputValue>()\r\n changeValue = output<InputValue>()\r\n changeFocus = output<boolean>()\r\n\r\n current = signal<InputValue>(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: InputValue) {\r\n this.changeValue.emit(value)\r\n }\r\n\r\n keyup(value: InputValue) {\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, InputValue } 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>(''))\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), debounceTime(100))\r\n .subscribe((value) => {\r\n const valueTransformed = value\r\n this.onChange(valueTransformed)\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: InputValue) {\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>(''))\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), debounceTime(100))\r\n .subscribe((value) => this.onChange(value))\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 {\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/controls'\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>(''))\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe((value) => {\r\n const valueTransformed = value\r\n this.onChange(valueTransformed)\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, booleanAttribute, input } from '@angular/core'\r\n// This Module Imports\r\nimport { type TileColor } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-tile',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './tile.component.html',\r\n styleUrl: './tile.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TileComponent {\r\n color = input<TileColor>('blue')\r\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n}\r\n","<article class=\"Tile Tile--{{ color() }} \" [class.Tile--background]=\"background()\">\r\n <section class=\"Tile-content\">\r\n <ng-content />\r\n </section>\r\n</article>\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/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/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/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/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/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/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-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/input/input.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/input/input.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/controls/textarea/textarea.component.ts","../../../projects/iamgld-ui/src/lib/components/controls/textarea/textarea.component.html","../../../projects/iamgld-ui/src/lib/components/tiles/tile/tile.component.ts","../../../projects/iamgld-ui/src/lib/components/tiles/tile/tile.component.html","../../../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\n// export 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 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}\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 { 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","import { Directive } from '@angular/core'\n\n@Directive({\n selector: '[gldErrorMessage]',\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 }\r\n</span>\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, booleanAttribute, 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 priority = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n}\r\n","@if (priority()) {\r\n\t<img priority=\"true\" [ngSrc]=\"src()\" [alt]=\"alt()\" [fill]=\"true\" />\r\n} @else {\r\n\t<img loading=\"lazy\" [ngSrc]=\"src()\" [alt]=\"alt()\" [fill]=\"true\" />\r\n}\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input } from '@angular/core'\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'gld-loader',\r\n imports: [],\r\n templateUrl: './loader.component.html',\r\n styleUrl: './loader.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LoaderComponent {\r\n loading = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n background = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n radius = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n minHeight = input<string>('auto')\r\n}\r\n","<article\r\n class=\"loader\"\r\n [class.loader--loading]=\"loading()\"\r\n [class.loader--background]=\"background()\"\r\n [class.loader--radius]=\"radius()\"\r\n [style.minHeight]=\"minHeight()\">\r\n <!-- Content -->\r\n <ng-content />\r\n\r\n <!-- Loader -->\r\n @if (loading()) {\r\n <section class=\"loader-loading\">\r\n <svg class=\"container\" viewBox=\"0 0 40 40\" height=\"40\" width=\"40\">\r\n <circle\r\n class=\"track\"\r\n cx=\"20\"\r\n cy=\"20\"\r\n r=\"17.5\"\r\n pathlength=\"100\"\r\n stroke-width=\"5px\"\r\n fill=\"none\" />\r\n <circle\r\n class=\"car\"\r\n cx=\"20\"\r\n cy=\"20\"\r\n r=\"17.5\"\r\n pathlength=\"100\"\r\n stroke-width=\"5px\"\r\n fill=\"none\" />\r\n </svg>\r\n </section>\r\n }\r\n</article>\r\n","// Angular Imports\r\nimport { ChangeDetectionStrategy, Component, booleanAttribute, input, output } from '@angular/core'\r\n// This Module Imports\r\nimport { ButtonColor, ButtonSize } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-button',\r\n templateUrl: './button.component.html',\r\n styleUrl: './button.component.scss',\r\n imports: [],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ButtonComponent {\r\n name = input.required<string>()\r\n color = input<ButtonColor>('pink')\r\n size = input<ButtonSize>('normal')\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","<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 (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <span>\r\n <ng-content />\r\n </span>\r\n</button>\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, Icons, IconsSize, IconsSpace } from '../../../models'\r\nimport { IconComponent } from '../../icon/icon.component'\r\n\r\n@Component({\r\n selector: 'gld-icon-button',\r\n templateUrl: './icon-button.component.html',\r\n styleUrl: './icon-button.component.scss',\r\n imports: [IconComponent],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IconButtonComponent {\r\n icon = input.required<Icons>()\r\n name = input.required<string>()\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 background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n disabled = input<boolean, string | boolean>(false, { transform: booleanAttribute })\r\n color = input<ButtonColor>('pink')\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() }}\"\r\n [class.Button--disabled]=\"disabled()\"\r\n [class.Button--background]=\"background()\"\r\n (click)=\"emitClick()\"\r\n (keyup.enter)=\"keyup()\">\r\n <gld-icon\r\n [icon]=\"icon()\"\r\n [size]=\"size()\"\r\n [space]=\"space()\"\r\n [moveTopToBottom]=\"moveTopToBottom()\"\r\n [moveLeftToRight]=\"moveLeftToRight()\"\r\n [disabled]=\"disabled()\" />\r\n</button>\r\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\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<string>('', { 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), debounceTime(100))\n .subscribe((value) => {\n const valueTransformed = formatDateToISO(value)\n this.onChange(valueTransformed)\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 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>(''))\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), debounceTime(100))\r\n .subscribe((value) => {\r\n const valueTransformed = value\r\n this.onChange(valueTransformed)\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\r\nimport { ChangeDetectionStrategy, Component, computed, input, output, signal } from '@angular/core'\r\n// Shared Imports\r\nimport { InputValue } from '../../../models'\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<InputValue>()\r\n changeValue = output<InputValue>()\r\n changeFocus = output<boolean>()\r\n\r\n current = signal<InputValue>(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: InputValue) {\r\n this.changeValue.emit(value)\r\n }\r\n\r\n keyup(value: InputValue) {\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, InputValue } 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>(''))\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), debounceTime(100))\r\n .subscribe((value) => {\r\n const valueTransformed = value\r\n this.onChange(valueTransformed)\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: InputValue) {\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>(''))\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), debounceTime(100))\r\n .subscribe((value) => {\r\n this.onChange(value)\r\n if (value !== null || value !== undefined) {\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 {\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/controls'\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>(''))\r\n\r\n constructor() {\r\n this.innerControl()\r\n .valueChanges.pipe(takeUntilDestroyed(this.#destroyRef), debounceTime(100))\r\n .subscribe((value) => {\r\n const valueTransformed = value\r\n this.onChange(valueTransformed)\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, booleanAttribute, input } from '@angular/core'\r\n// This Module Imports\r\nimport { type TileColor } from '../../../models'\r\n\r\n@Component({\r\n selector: 'gld-tile',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './tile.component.html',\r\n styleUrl: './tile.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TileComponent {\r\n color = input<TileColor>('blue')\r\n background = input<boolean, boolean | string>(false, { transform: booleanAttribute })\r\n}\r\n","<article class=\"Tile Tile--{{ color() }} \" [class.Tile--background]=\"background()\">\r\n <section class=\"Tile-content\">\r\n <ng-content />\r\n </section>\r\n</article>\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,5 +1,6 @@
|
|
|
1
1
|
export * from './icon/icon.component';
|
|
2
2
|
export * from './image/image.component';
|
|
3
|
+
export * from './loaders/loader/loader.component';
|
|
3
4
|
export * from './buttons/button/button.component';
|
|
4
5
|
export * from './buttons/icon-button/icon-button.component';
|
|
5
6
|
export * from './controls/input-date/input-date.component';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class LoaderComponent {
|
|
3
|
+
loading: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
4
|
+
background: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
5
|
+
radius: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
|
|
6
|
+
minHeight: import("@angular/core").InputSignal<string>;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoaderComponent, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoaderComponent, "gld-loader", never, { "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "background": { "alias": "background"; "required": false; "isSignal": true; }; "radius": { "alias": "radius"; "required": false; "isSignal": true; }; "minHeight": { "alias": "minHeight"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
9
|
+
}
|
|
@@ -8,7 +8,13 @@ export declare enum Icons {
|
|
|
8
8
|
loginCircleLine = " ri-login-circle-line",
|
|
9
9
|
gitRepositoryLine = " ri-git-repository-line",
|
|
10
10
|
fileList3Line = " ri-file-list-3-line",
|
|
11
|
-
menuLine = " ri-menu-line"
|
|
11
|
+
menuLine = " ri-menu-line",
|
|
12
|
+
sunLine = " ri-sun-line",
|
|
13
|
+
moonClearLine = " ri-moon-clear-line",
|
|
14
|
+
englishInput = " ri-english-input",
|
|
15
|
+
translate = " ri-translate",
|
|
16
|
+
user4Line = " ri-user-4-line",
|
|
17
|
+
shapesLine = " ri-shapes-line"
|
|
12
18
|
}
|
|
13
19
|
export declare enum IconsSize {
|
|
14
20
|
tiny = "tiny",
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iamgld/ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
7
7
|
"peerDependencies": {
|
|
8
|
-
"@angular/common": "19.0.
|
|
9
|
-
"@angular/core": "19.0.
|
|
8
|
+
"@angular/common": "19.0.6",
|
|
9
|
+
"@angular/core": "19.0.6"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"tslib": "2.
|
|
12
|
+
"tslib": "2.8.1"
|
|
13
13
|
},
|
|
14
14
|
"sideEffects": false,
|
|
15
15
|
"module": "fesm2022/iamgld-ui.mjs",
|