@iamgld/ui 1.4.1 → 1.5.0
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
|
@@ -62,6 +62,7 @@ var Icons;
|
|
|
62
62
|
Icons["loginCircleLine"] = " ri-login-circle-line";
|
|
63
63
|
Icons["gitRepositoryLine"] = " ri-git-repository-line";
|
|
64
64
|
Icons["fileList3Line"] = " ri-file-list-3-line";
|
|
65
|
+
Icons["menuLine"] = " ri-menu-line";
|
|
65
66
|
})(Icons || (Icons = {}));
|
|
66
67
|
var IconsSize;
|
|
67
68
|
(function (IconsSize) {
|
|
@@ -297,11 +298,11 @@ class IconComponent {
|
|
|
297
298
|
this.emitClick();
|
|
298
299
|
}
|
|
299
300
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
300
|
-
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 }\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 });
|
|
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 });
|
|
301
302
|
}
|
|
302
303
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: IconComponent, decorators: [{
|
|
303
304
|
type: Component,
|
|
304
|
-
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 }\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"] }]
|
|
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"] }]
|
|
305
306
|
}] });
|
|
306
307
|
|
|
307
308
|
// Angular Imports
|
|
@@ -317,6 +318,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
|
|
|
317
318
|
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"] }]
|
|
318
319
|
}] });
|
|
319
320
|
|
|
321
|
+
// Angular Imports
|
|
322
|
+
class LoaderComponent {
|
|
323
|
+
loading = input(false, { transform: booleanAttribute });
|
|
324
|
+
background = input(false, { transform: booleanAttribute });
|
|
325
|
+
radius = input(false, { transform: booleanAttribute });
|
|
326
|
+
minHeight = input('auto');
|
|
327
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: LoaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
328
|
+
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);background:var(--gld-background)}.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 });
|
|
329
|
+
}
|
|
330
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: LoaderComponent, decorators: [{
|
|
331
|
+
type: Component,
|
|
332
|
+
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);background:var(--gld-background)}.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"] }]
|
|
333
|
+
}] });
|
|
334
|
+
|
|
320
335
|
// Angular Imports
|
|
321
336
|
class ButtonComponent {
|
|
322
337
|
name = input.required();
|
|
@@ -359,11 +374,11 @@ class IconButtonComponent {
|
|
|
359
374
|
this.emitClick();
|
|
360
375
|
}
|
|
361
376
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: IconButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
362
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.1", type: IconButtonComponent, isStandalone: true, selector: "gld-icon-button", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", 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 }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<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", styles: [".Button{--gld-color: inherit;--gld-background: transparent;--gld-background--hover: transparent;--gld-radius: var(--gld-radius--xxxs);--gld-font-size: var(--gld-font-size--normal);outline:none;border:none;padding:
|
|
377
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.1", type: IconButtonComponent, isStandalone: true, selector: "gld-icon-button", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", 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 }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, ngImport: i0, template: "<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", styles: [".Button{--gld-color: inherit;--gld-background: transparent;--gld-background--hover: transparent;--gld-radius: var(--gld-radius--xxxs);--gld-font-size: var(--gld-font-size--normal);outline:none;border:none;padding:var(--gld-spacing--xxxs);border-radius:var(--gld-radius);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size);font-weight:600;line-height:1.25;cursor:pointer;width:inherit;color:var(--gld-color);background:var(--gld-background);display:inline-flex;align-items:center;justify-content:center;gap:var(--gld-spacing--xxxs);-webkit-user-select:none;user-select:none;will-change:background,color;transition:background var(--gld-animation-time--150),color var(--gld-animation-time--150)}.Button:hover,.Button:focus{background:var(--gld-background--hover)}.Button--pink{--gld-color: var(--gld-pink)}.Button--pink.Button--background{--gld-background: var(--gld-pink-transparent--010);--gld-background--hover: var(--gld-pink-transparent--020)}.Button--purple{--gld-color: var(--gld-purple)}.Button--purple.Button--background{--gld-background: var(--gld-purple-transparent--010);--gld-background--hover: var(--gld-purple-transparent--020)}.Button--mustard{--gld-color: var(--gld-mustard)}.Button--mustard.Button--background{--gld-background: var(--gld-mustard-transparent--010);--gld-background--hover: var(--gld-mustard-transparent--020)}.Button--orange{--gld-color: var(--gld-orange)}.Button--orange.Button--background{--gld-background: var(--gld-orange-transparent--010);--gld-background--hover: var(--gld-orange-transparent--020)}.Button--blue{--gld-color: var(--gld-blue)}.Button--blue.Button--background{--gld-background: var(--gld-blue-transparent--010);--gld-background--hover: var(--gld-blue-transparent--020)}.Button--red{--gld-color: var(--gld-red)}.Button--red.Button--background{--gld-background: var(--gld-red-transparent--010);--gld-background--hover: var(--gld-red-transparent--020)}.Button--green{--gld-color: var(--gld-green)}.Button--green.Button--background{--gld-background: var(--gld-green-transparent--010);--gld-background--hover: var(--gld-green-transparent--020)}.Button--disabled{--gld-color: var(--gld-gray-transparent--060);pointer-events:none;cursor:not-allowed}.Button--disabled.Button--background{--gld-background: var(--gld-gray-transparent--010);--gld-background--hover: var(--gld-gray-transparent--020)}\n"], dependencies: [{ kind: "component", type: IconComponent, selector: "gld-icon", inputs: ["icon", "size", "space", "moveTopToBottom", "moveLeftToRight", "disabled"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
363
378
|
}
|
|
364
379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImport: i0, type: IconButtonComponent, decorators: [{
|
|
365
380
|
type: Component,
|
|
366
|
-
args: [{ selector: 'gld-icon-button', imports: [IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [".Button{--gld-color: inherit;--gld-background: transparent;--gld-background--hover: transparent;--gld-radius: var(--gld-radius--xxxs);--gld-font-size: var(--gld-font-size--normal);outline:none;border:none;padding:
|
|
381
|
+
args: [{ selector: 'gld-icon-button', imports: [IconComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<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", styles: [".Button{--gld-color: inherit;--gld-background: transparent;--gld-background--hover: transparent;--gld-radius: var(--gld-radius--xxxs);--gld-font-size: var(--gld-font-size--normal);outline:none;border:none;padding:var(--gld-spacing--xxxs);border-radius:var(--gld-radius);font-family:var(--gld-font--poppins);font-size:var(--gld-font-size);font-weight:600;line-height:1.25;cursor:pointer;width:inherit;color:var(--gld-color);background:var(--gld-background);display:inline-flex;align-items:center;justify-content:center;gap:var(--gld-spacing--xxxs);-webkit-user-select:none;user-select:none;will-change:background,color;transition:background var(--gld-animation-time--150),color var(--gld-animation-time--150)}.Button:hover,.Button:focus{background:var(--gld-background--hover)}.Button--pink{--gld-color: var(--gld-pink)}.Button--pink.Button--background{--gld-background: var(--gld-pink-transparent--010);--gld-background--hover: var(--gld-pink-transparent--020)}.Button--purple{--gld-color: var(--gld-purple)}.Button--purple.Button--background{--gld-background: var(--gld-purple-transparent--010);--gld-background--hover: var(--gld-purple-transparent--020)}.Button--mustard{--gld-color: var(--gld-mustard)}.Button--mustard.Button--background{--gld-background: var(--gld-mustard-transparent--010);--gld-background--hover: var(--gld-mustard-transparent--020)}.Button--orange{--gld-color: var(--gld-orange)}.Button--orange.Button--background{--gld-background: var(--gld-orange-transparent--010);--gld-background--hover: var(--gld-orange-transparent--020)}.Button--blue{--gld-color: var(--gld-blue)}.Button--blue.Button--background{--gld-background: var(--gld-blue-transparent--010);--gld-background--hover: var(--gld-blue-transparent--020)}.Button--red{--gld-color: var(--gld-red)}.Button--red.Button--background{--gld-background: var(--gld-red-transparent--010);--gld-background--hover: var(--gld-red-transparent--020)}.Button--green{--gld-color: var(--gld-green)}.Button--green.Button--background{--gld-background: var(--gld-green-transparent--010);--gld-background--hover: var(--gld-green-transparent--020)}.Button--disabled{--gld-color: var(--gld-gray-transparent--060);pointer-events:none;cursor:not-allowed}.Button--disabled.Button--background{--gld-background: var(--gld-gray-transparent--010);--gld-background--hover: var(--gld-gray-transparent--020)}\n"] }]
|
|
367
382
|
}] });
|
|
368
383
|
|
|
369
384
|
// Angular Imports
|
|
@@ -899,5 +914,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.1", ngImpor
|
|
|
899
914
|
* Generated bundle index. Do not edit.
|
|
900
915
|
*/
|
|
901
916
|
|
|
902
|
-
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 };
|
|
917
|
+
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 };
|
|
903
918
|
//# 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}\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 }\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}\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 } 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) => 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,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
|
+
}
|
|
@@ -7,7 +7,8 @@ export declare enum Icons {
|
|
|
7
7
|
logoutCircleLine = " ri-logout-circle-line",
|
|
8
8
|
loginCircleLine = " ri-login-circle-line",
|
|
9
9
|
gitRepositoryLine = " ri-git-repository-line",
|
|
10
|
-
fileList3Line = " ri-file-list-3-line"
|
|
10
|
+
fileList3Line = " ri-file-list-3-line",
|
|
11
|
+
menuLine = " ri-menu-line"
|
|
11
12
|
}
|
|
12
13
|
export declare enum IconsSize {
|
|
13
14
|
tiny = "tiny",
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iamgld/ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
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",
|