@latitude-ui/widgets 0.0.13 → 0.0.15

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.
Files changed (197) hide show
  1. package/README.md +2 -2
  2. package/button/index.d.ts +19 -0
  3. package/checkbox/{src/checkbox.component.d.ts → index.d.ts} +6 -3
  4. package/core/index.d.ts +39 -0
  5. package/fesm2022/latitude-ui-widgets-button.mjs +51 -0
  6. package/fesm2022/latitude-ui-widgets-button.mjs.map +1 -0
  7. package/fesm2022/latitude-ui-widgets-checkbox.mjs +40 -0
  8. package/fesm2022/latitude-ui-widgets-checkbox.mjs.map +1 -0
  9. package/fesm2022/latitude-ui-widgets-core.mjs +116 -0
  10. package/fesm2022/latitude-ui-widgets-core.mjs.map +1 -0
  11. package/fesm2022/latitude-ui-widgets-icons.mjs +118 -0
  12. package/fesm2022/latitude-ui-widgets-icons.mjs.map +1 -0
  13. package/fesm2022/latitude-ui-widgets-input.mjs +225 -0
  14. package/fesm2022/latitude-ui-widgets-input.mjs.map +1 -0
  15. package/fesm2022/latitude-ui-widgets-listbox.mjs +51 -0
  16. package/fesm2022/latitude-ui-widgets-listbox.mjs.map +1 -0
  17. package/fesm2022/latitude-ui-widgets-select.mjs +316 -0
  18. package/fesm2022/latitude-ui-widgets-select.mjs.map +1 -0
  19. package/fesm2022/latitude-ui-widgets-switch.mjs +37 -0
  20. package/fesm2022/latitude-ui-widgets-switch.mjs.map +1 -0
  21. package/fesm2022/latitude-ui-widgets-textbox-number.mjs +168 -0
  22. package/fesm2022/latitude-ui-widgets-textbox-number.mjs.map +1 -0
  23. package/fesm2022/latitude-ui-widgets-textbox.mjs +62 -0
  24. package/fesm2022/latitude-ui-widgets-textbox.mjs.map +1 -0
  25. package/fesm2022/latitude-ui-widgets-toolbar.mjs +20 -0
  26. package/fesm2022/latitude-ui-widgets-toolbar.mjs.map +1 -0
  27. package/fesm2022/latitude-ui-widgets.mjs +6 -0
  28. package/fesm2022/latitude-ui-widgets.mjs.map +1 -0
  29. package/icons/index.d.ts +19 -0
  30. package/index.d.ts +2 -0
  31. package/input/index.d.ts +116 -0
  32. package/listbox/index.d.ts +23 -0
  33. package/package.json +30 -45
  34. package/select/index.d.ts +74 -0
  35. package/switch/{src/switch.component.d.ts → index.d.ts} +6 -3
  36. package/textbox/index.d.ts +26 -0
  37. package/textbox-number/index.d.ts +44 -0
  38. package/toolbar/{src/toolbar.component.d.ts → index.d.ts} +5 -2
  39. package/button/latitude-ui-widgets-button.d.ts +0 -5
  40. package/button/public-api.d.ts +0 -2
  41. package/button/src/button.component.d.ts +0 -14
  42. package/button/src/button.types.d.ts +0 -2
  43. package/checkbox/latitude-ui-widgets-checkbox.d.ts +0 -5
  44. package/checkbox/public-api.d.ts +0 -1
  45. package/combobox/latitude-ui-widgets-combobox.d.ts +0 -5
  46. package/combobox/public-api.d.ts +0 -2
  47. package/core/latitude-ui-widgets-core.d.ts +0 -5
  48. package/core/public-api.d.ts +0 -6
  49. package/core/src/dimensions.d.ts +0 -13
  50. package/core/src/illegal.d.ts +0 -2
  51. package/core/src/listeners.d.ts +0 -8
  52. package/core/src/noop.d.ts +0 -1
  53. package/core/src/root.d.ts +0 -12
  54. package/core/src/uid.d.ts +0 -1
  55. package/esm2022/button/latitude-ui-widgets-button.js +0 -5
  56. package/esm2022/button/public-api.js +0 -3
  57. package/esm2022/button/src/button.component.js +0 -44
  58. package/esm2022/button/src/button.types.js +0 -1
  59. package/esm2022/checkbox/latitude-ui-widgets-checkbox.js +0 -5
  60. package/esm2022/checkbox/public-api.js +0 -2
  61. package/esm2022/checkbox/src/checkbox.component.js +0 -33
  62. package/esm2022/combobox/latitude-ui-widgets-combobox.js +0 -5
  63. package/esm2022/combobox/public-api.js +0 -2
  64. package/esm2022/core/latitude-ui-widgets-core.js +0 -5
  65. package/esm2022/core/public-api.js +0 -7
  66. package/esm2022/core/src/dimensions.js +0 -56
  67. package/esm2022/core/src/illegal.js +0 -5
  68. package/esm2022/core/src/listeners.js +0 -32
  69. package/esm2022/core/src/noop.js +0 -3
  70. package/esm2022/core/src/root.js +0 -20
  71. package/esm2022/core/src/uid.js +0 -4
  72. package/esm2022/icons/latitude-ui-widgets-icons.js +0 -5
  73. package/esm2022/icons/public-api.js +0 -3
  74. package/esm2022/icons/src/icon.component.js +0 -35
  75. package/esm2022/icons/src/icon.service.js +0 -62
  76. package/esm2022/icons/src/icon.tokens.js +0 -19
  77. package/esm2022/input/latitude-ui-widgets-input.js +0 -5
  78. package/esm2022/input/public-api.js +0 -6
  79. package/esm2022/input/src/input-error/i18n/en.js +0 -9
  80. package/esm2022/input/src/input-error/i18n/ru.js +0 -9
  81. package/esm2022/input/src/input-error/input-error.component.js +0 -22
  82. package/esm2022/input/src/input-error/input-error.i18n.js +0 -65
  83. package/esm2022/input/src/input-label/input-label.component.js +0 -20
  84. package/esm2022/input/src/input.component.js +0 -44
  85. package/esm2022/input/src/input.directive.js +0 -116
  86. package/esm2022/input/src/input.module.js +0 -9
  87. package/esm2022/input/src/input.types.js +0 -1
  88. package/esm2022/latitude-ui-widgets.js +0 -5
  89. package/esm2022/listbox/latitude-ui-widgets-listbox.js +0 -5
  90. package/esm2022/listbox/public-api.js +0 -4
  91. package/esm2022/listbox/src/listbox-option.component.js +0 -49
  92. package/esm2022/listbox/src/listbox.component.js +0 -14
  93. package/esm2022/listbox/src/listbox.module.js +0 -7
  94. package/esm2022/lookup/latitude-ui-widgets-lookup.js +0 -5
  95. package/esm2022/lookup/public-api.js +0 -3
  96. package/esm2022/lookup/src/lookup-outlet.directive.js +0 -13
  97. package/esm2022/lookup/src/lookup.component.js +0 -11
  98. package/esm2022/public-api.js +0 -2
  99. package/esm2022/select/latitude-ui-widgets-select.js +0 -5
  100. package/esm2022/select/public-api.js +0 -7
  101. package/esm2022/select/src/select/select.directive.js +0 -86
  102. package/esm2022/select/src/select-dropdown/select-dropdown.component.js +0 -39
  103. package/esm2022/select/src/select-multiple.component.js +0 -60
  104. package/esm2022/select/src/select-option/select-option.component.js +0 -21
  105. package/esm2022/select/src/select-option/select-option.directive.js +0 -19
  106. package/esm2022/select/src/select-single.component.js +0 -51
  107. package/esm2022/select/src/select-trigger/select-trigger.component.js +0 -29
  108. package/esm2022/select/src/select-value/select-value.component.js +0 -15
  109. package/esm2022/select/src/select-values/select-values.component.js +0 -16
  110. package/esm2022/select/src/select.module.js +0 -9
  111. package/esm2022/switch/latitude-ui-widgets-switch.js +0 -5
  112. package/esm2022/switch/public-api.js +0 -2
  113. package/esm2022/switch/src/switch.component.js +0 -30
  114. package/esm2022/textarea/latitude-ui-widgets-textarea.js +0 -5
  115. package/esm2022/textarea/public-api.js +0 -2
  116. package/esm2022/textarea/src/textarea.component.js +0 -26
  117. package/esm2022/textbox/latitude-ui-widgets-textbox.js +0 -5
  118. package/esm2022/textbox/public-api.js +0 -3
  119. package/esm2022/textbox/src/textbox.component.js +0 -25
  120. package/esm2022/textbox/src/textbox.directive.js +0 -25
  121. package/esm2022/textbox-number/latitude-ui-widgets-textbox-number.js +0 -5
  122. package/esm2022/textbox-number/public-api.js +0 -2
  123. package/esm2022/textbox-number/src/spinners.component.js +0 -22
  124. package/esm2022/textbox-number/src/textbox-number.component.js +0 -136
  125. package/esm2022/textbox-search/latitude-ui-widgets-textbox-search.js +0 -5
  126. package/esm2022/textbox-search/public-api.js +0 -2
  127. package/esm2022/textbox-search/src/textbox-search.component.js +0 -41
  128. package/esm2022/toolbar/latitude-ui-widgets-toolbar.js +0 -5
  129. package/esm2022/toolbar/public-api.js +0 -2
  130. package/esm2022/toolbar/src/toolbar.component.js +0 -14
  131. package/icons/latitude-ui-widgets-icons.d.ts +0 -5
  132. package/icons/public-api.d.ts +0 -2
  133. package/icons/src/icon.component.d.ts +0 -11
  134. package/icons/src/icon.service.d.ts +0 -15
  135. package/icons/src/icon.tokens.d.ts +0 -4
  136. package/input/latitude-ui-widgets-input.d.ts +0 -5
  137. package/input/public-api.d.ts +0 -5
  138. package/input/src/input-error/i18n/en.d.ts +0 -9
  139. package/input/src/input-error/i18n/ru.d.ts +0 -9
  140. package/input/src/input-error/input-error.component.d.ts +0 -9
  141. package/input/src/input-error/input-error.i18n.d.ts +0 -28
  142. package/input/src/input-label/input-label.component.d.ts +0 -11
  143. package/input/src/input.component.d.ts +0 -28
  144. package/input/src/input.directive.d.ts +0 -62
  145. package/input/src/input.module.d.ts +0 -4
  146. package/input/src/input.types.d.ts +0 -1
  147. package/latitude-ui-widgets.d.ts +0 -5
  148. package/listbox/latitude-ui-widgets-listbox.d.ts +0 -5
  149. package/listbox/public-api.d.ts +0 -3
  150. package/listbox/src/listbox-option.component.d.ts +0 -17
  151. package/listbox/src/listbox.component.d.ts +0 -5
  152. package/listbox/src/listbox.module.d.ts +0 -3
  153. package/lookup/README.md +0 -3
  154. package/lookup/latitude-ui-widgets-lookup.d.ts +0 -5
  155. package/lookup/public-api.d.ts +0 -2
  156. package/lookup/src/lookup-outlet.directive.d.ts +0 -5
  157. package/lookup/src/lookup.component.d.ts +0 -5
  158. package/public-api.d.ts +0 -2
  159. package/select/latitude-ui-widgets-select.d.ts +0 -5
  160. package/select/public-api.d.ts +0 -6
  161. package/select/src/select/select.directive.d.ts +0 -24
  162. package/select/src/select-dropdown/select-dropdown.component.d.ts +0 -14
  163. package/select/src/select-multiple.component.d.ts +0 -10
  164. package/select/src/select-option/select-option.component.d.ts +0 -10
  165. package/select/src/select-option/select-option.directive.d.ts +0 -14
  166. package/select/src/select-single.component.d.ts +0 -10
  167. package/select/src/select-trigger/select-trigger.component.d.ts +0 -9
  168. package/select/src/select-value/select-value.component.d.ts +0 -7
  169. package/select/src/select-values/select-values.component.d.ts +0 -7
  170. package/select/src/select.module.d.ts +0 -4
  171. package/styles/_colors.scss +0 -99
  172. package/styles/_defaults.scss +0 -135
  173. package/styles/_index.scss +0 -11
  174. package/styles/_typography.scss +0 -37
  175. package/styles/button/_index.scss +0 -199
  176. package/styles/forms/_index.scss +0 -867
  177. package/styles/icons/_index.scss +0 -34
  178. package/styles/list/_index.scss +0 -0
  179. package/styles/listbox/_index.scss +0 -30
  180. package/switch/latitude-ui-widgets-switch.d.ts +0 -5
  181. package/switch/public-api.d.ts +0 -1
  182. package/textarea/latitude-ui-widgets-textarea.d.ts +0 -5
  183. package/textarea/public-api.d.ts +0 -1
  184. package/textarea/src/textarea.component.d.ts +0 -9
  185. package/textbox/latitude-ui-widgets-textbox.d.ts +0 -5
  186. package/textbox/public-api.d.ts +0 -2
  187. package/textbox/src/textbox.component.d.ts +0 -8
  188. package/textbox/src/textbox.directive.d.ts +0 -12
  189. package/textbox-number/latitude-ui-widgets-textbox-number.d.ts +0 -5
  190. package/textbox-number/public-api.d.ts +0 -1
  191. package/textbox-number/src/spinners.component.d.ts +0 -8
  192. package/textbox-number/src/textbox-number.component.d.ts +0 -36
  193. package/textbox-search/latitude-ui-widgets-textbox-search.d.ts +0 -5
  194. package/textbox-search/public-api.d.ts +0 -1
  195. package/textbox-search/src/textbox-search.component.d.ts +0 -15
  196. package/toolbar/latitude-ui-widgets-toolbar.d.ts +0 -5
  197. package/toolbar/public-api.d.ts +0 -1
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
- # widgets
1
+ # @latitude-ui/widgets
2
2
 
3
3
  This library was generated with [Nx](https://nx.dev).
4
4
 
5
5
  ## Running unit tests
6
6
 
7
- Run `nx test widgets` to execute the unit tests.
7
+ Run `nx test @latitude-ui/widgets` to execute the unit tests.
@@ -0,0 +1,19 @@
1
+ import * as _angular_core from '@angular/core';
2
+
3
+ type ButtonSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | null | undefined | (string & {});
4
+ type ButtonVariant = 'default' | 'action' | 'text' | 'subtle' | 'link' | null | undefined | (string & {});
5
+
6
+ declare class ButtonComponent {
7
+ readonly el: any;
8
+ readonly size: _angular_core.InputSignal<ButtonSize>;
9
+ readonly variant: _angular_core.InputSignal<ButtonVariant>;
10
+ readonly tabindex: _angular_core.InputSignalWithTransform<number, unknown>;
11
+ readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
12
+ readonly onlyicon: _angular_core.WritableSignal<boolean>;
13
+ constructor();
14
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
15
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "lat-button", ["latButton"], { "size": { "alias": "size"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
16
+ }
17
+
18
+ export { ButtonComponent };
19
+ export type { ButtonSize, ButtonVariant };
@@ -1,7 +1,10 @@
1
1
  import { BuildInInputValueAccessor } from '@latitude-ui/widgets/input';
2
- import * as i0 from "@angular/core";
3
- export declare class CheckBoxComponent extends BuildInInputValueAccessor<boolean> {
4
- protected handleValueChange(): void;
2
+ import * as i0 from '@angular/core';
3
+
4
+ declare class CheckBoxComponent extends BuildInInputValueAccessor<boolean> {
5
+ toggle(): void;
5
6
  static ɵfac: i0.ɵɵFactoryDeclaration<CheckBoxComponent, never>;
6
7
  static ɵcmp: i0.ɵɵComponentDeclaration<CheckBoxComponent, "lat-checkbox", ["latCheckBox"], {}, {}, never, ["*"], true, never>;
7
8
  }
9
+
10
+ export { CheckBoxComponent };
@@ -0,0 +1,39 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { InjectionToken, InputSignal, Injector } from '@angular/core';
3
+
4
+ declare const LAYOUT_DIMENSIONS: InjectionToken<{
5
+ width: _angular_core.Signal<number>;
6
+ height: _angular_core.Signal<number>;
7
+ }>;
8
+ declare const SCROLLBAR_DIMENSIONS: InjectionToken<_angular_core.Signal<number>>;
9
+ declare const DIMENSIONS: InjectionToken<{
10
+ layout: {
11
+ width: _angular_core.Signal<number>;
12
+ height: _angular_core.Signal<number>;
13
+ };
14
+ scrollbar: _angular_core.Signal<number>;
15
+ }>;
16
+
17
+ declare function illegallySetComponentInput<T>(inputSignal: InputSignal<T>, value: T): void;
18
+
19
+ /**
20
+ * https://github.com/angular/angular/issues/9587
21
+ */
22
+ declare function listenMouseEvent<T extends HTMLElement>(nativeElement: T, options?: {
23
+ disabled?: () => boolean | undefined;
24
+ injector?: Injector;
25
+ }): VoidFunction;
26
+
27
+ declare class RootDirective {
28
+ readonly dimensions: {
29
+ layout: {
30
+ width: _angular_core.Signal<number>;
31
+ height: _angular_core.Signal<number>;
32
+ };
33
+ scrollbar: _angular_core.Signal<number>;
34
+ };
35
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<RootDirective, never>;
36
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RootDirective, never, never, {}, {}, never, never, true, never>;
37
+ }
38
+
39
+ export { DIMENSIONS, LAYOUT_DIMENSIONS, RootDirective, SCROLLBAR_DIMENSIONS, illegallySetComponentInput, listenMouseEvent };
@@ -0,0 +1,51 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, ElementRef, input, numberAttribute, booleanAttribute, signal, afterRenderEffect, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
+ import { listenMouseEvent } from '@latitude-ui/widgets/core';
4
+
5
+ class ButtonComponent {
6
+ el = inject((ElementRef)).nativeElement;
7
+ size = input('md');
8
+ variant = input('default');
9
+ tabindex = input(0, { transform: numberAttribute });
10
+ disabled = input(false, { transform: booleanAttribute });
11
+ onlyicon = signal(false);
12
+ constructor() {
13
+ listenMouseEvent(this.el, { disabled: this.disabled });
14
+ /**
15
+ * Need to find icon without another DOM node
16
+ * */
17
+ afterRenderEffect(() => {
18
+ const childNodes = this.el.childNodes;
19
+ if (childNodes.length === 1) {
20
+ const node = childNodes.item(0);
21
+ this.onlyicon.update(() => {
22
+ if (node instanceof HTMLElement) {
23
+ return node.tagName === 'LAT-ICON' || node.tagName === 'SVG' || node.role === 'img';
24
+ }
25
+ return false;
26
+ });
27
+ }
28
+ });
29
+ }
30
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: ButtonComponent, isStandalone: true, selector: "lat-button", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "button" }, properties: { "attr.tabindex": "disabled() ? -1 : tabindex()", "attr.data-size": "size()", "attr.data-variant": "variant()", "attr.aria-disabled": "disabled()", "class.lat-button": "true", "class.lat-button-icon": "onlyicon()" } }, exportAs: ["latButton"], ngImport: i0, template: "<ng-content />\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ButtonComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ exportAs: 'latButton', selector: 'lat-button', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
36
+ role: 'button',
37
+ '[attr.tabindex]': 'disabled() ? -1 : tabindex()',
38
+ '[attr.data-size]': 'size()',
39
+ '[attr.data-variant]': 'variant()',
40
+ '[attr.aria-disabled]': 'disabled()',
41
+ '[class.lat-button]': 'true',
42
+ '[class.lat-button-icon]': 'onlyicon()',
43
+ }, template: "<ng-content />\n" }]
44
+ }], ctorParameters: () => [] });
45
+
46
+ /**
47
+ * Generated bundle index. Do not edit.
48
+ */
49
+
50
+ export { ButtonComponent };
51
+ //# sourceMappingURL=latitude-ui-widgets-button.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latitude-ui-widgets-button.mjs","sources":["../tmp-esm2022/button/src/button.component.js","../tmp-esm2022/button/latitude-ui-widgets-button.js"],"sourcesContent":["import { afterRenderEffect, booleanAttribute, ChangeDetectionStrategy, Component, ElementRef, inject, input, numberAttribute, signal, ViewEncapsulation, } from '@angular/core';\nimport { listenMouseEvent } from '@latitude-ui/widgets/core';\nimport * as i0 from \"@angular/core\";\nexport class ButtonComponent {\n el = inject((ElementRef)).nativeElement;\n size = input('md');\n variant = input('default');\n tabindex = input(0, { transform: numberAttribute });\n disabled = input(false, { transform: booleanAttribute });\n onlyicon = signal(false);\n constructor() {\n listenMouseEvent(this.el, { disabled: this.disabled });\n /**\n * Need to find icon without another DOM node\n * */\n afterRenderEffect(() => {\n const childNodes = this.el.childNodes;\n if (childNodes.length === 1) {\n const node = childNodes.item(0);\n this.onlyicon.update(() => {\n if (node instanceof HTMLElement) {\n return node.tagName === 'LAT-ICON' || node.tagName === 'SVG' || node.role === 'img';\n }\n return false;\n });\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.6\", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.6\", type: ButtonComponent, isStandalone: true, selector: \"lat-button\", inputs: { size: { classPropertyName: \"size\", publicName: \"size\", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: \"variant\", publicName: \"variant\", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: \"tabindex\", publicName: \"tabindex\", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"role\": \"button\" }, properties: { \"attr.tabindex\": \"disabled() ? -1 : tabindex()\", \"attr.data-size\": \"size()\", \"attr.data-variant\": \"variant()\", \"attr.aria-disabled\": \"disabled()\", \"class.lat-button\": \"true\", \"class.lat-button-icon\": \"onlyicon()\" } }, exportAs: [\"latButton\"], ngImport: i0, template: \"<ng-content />\\n\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.6\", ngImport: i0, type: ButtonComponent, decorators: [{\n type: Component,\n args: [{ exportAs: 'latButton', selector: 'lat-button', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n role: 'button',\n '[attr.tabindex]': 'disabled() ? -1 : tabindex()',\n '[attr.data-size]': 'size()',\n '[attr.data-variant]': 'variant()',\n '[attr.aria-disabled]': 'disabled()',\n '[class.lat-button]': 'true',\n '[class.lat-button-icon]': 'onlyicon()',\n }, template: \"<ng-content />\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvYnV0dG9uL3NyYy9idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9idXR0b24vc3JjL2J1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLGVBQWUsRUFDZixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQW9CN0QsTUFBTSxPQUFPLGVBQWU7SUFDVixFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDO0lBRW5ELElBQUksR0FBRyxLQUFLLENBQWEsSUFBSSxDQUFDLENBQUM7SUFDL0IsT0FBTyxHQUFHLEtBQUssQ0FBZ0IsU0FBUyxDQUFDLENBQUM7SUFDMUMsUUFBUSxHQUFHLEtBQUssQ0FBa0IsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDckUsUUFBUSxHQUFHLEtBQUssQ0FBbUIsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUUzRSxRQUFRLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBRWxEO1FBQ0UsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUV2RDs7YUFFSztRQUNMLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNyQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQztZQUV0QyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRWhDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDeEIsSUFBSSxJQUFJLFlBQVksV0FBVyxFQUFFLENBQUM7d0JBQ2hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUM7b0JBQ3RGLENBQUM7b0JBRUQsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQS9CVSxlQUFlOzJGQUFmLGVBQWUsazNCQ2pDNUIsa0JBQ0E7OzJGRGdDYSxlQUFlO2tCQWhCM0IsU0FBUzsrQkFDRSxXQUFXLFlBQ1gsWUFBWSxpQkFFUCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLElBQUksRUFBRSxRQUFRO3dCQUNkLGlCQUFpQixFQUFFLDhCQUE4Qjt3QkFDakQsa0JBQWtCLEVBQUUsUUFBUTt3QkFDNUIscUJBQXFCLEVBQUUsV0FBVzt3QkFDbEMsc0JBQXNCLEVBQUUsWUFBWTt3QkFDcEMsb0JBQW9CLEVBQUUsTUFBTTt3QkFDNUIseUJBQXlCLEVBQUUsWUFBWTtxQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGFmdGVyUmVuZGVyRWZmZWN0LFxyXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgaW5qZWN0LFxyXG4gIGlucHV0LFxyXG4gIG51bWJlckF0dHJpYnV0ZSxcclxuICBzaWduYWwsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBsaXN0ZW5Nb3VzZUV2ZW50IH0gZnJvbSAnQGxhdGl0dWRlLXVpL3dpZGdldHMvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25TaXplLCBCdXR0b25WYXJpYW50IH0gZnJvbSAnLi9idXR0b24udHlwZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdsYXRCdXR0b24nLFxyXG4gIHNlbGVjdG9yOiAnbGF0LWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBob3N0OiB7XHJcbiAgICByb2xlOiAnYnV0dG9uJyxcclxuICAgICdbYXR0ci50YWJpbmRleF0nOiAnZGlzYWJsZWQoKSA/IC0xIDogdGFiaW5kZXgoKScsXHJcbiAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdzaXplKCknLFxyXG4gICAgJ1thdHRyLmRhdGEtdmFyaWFudF0nOiAndmFyaWFudCgpJyxcclxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZCgpJyxcclxuICAgICdbY2xhc3MubGF0LWJ1dHRvbl0nOiAndHJ1ZScsXHJcbiAgICAnW2NsYXNzLmxhdC1idXR0b24taWNvbl0nOiAnb25seWljb24oKScsXHJcbiAgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1dHRvbkNvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGVsID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KS5uYXRpdmVFbGVtZW50O1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgc2l6ZSA9IGlucHV0PEJ1dHRvblNpemU+KCdtZCcpO1xyXG4gIHB1YmxpYyByZWFkb25seSB2YXJpYW50ID0gaW5wdXQ8QnV0dG9uVmFyaWFudD4oJ2RlZmF1bHQnKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdGFiaW5kZXggPSBpbnB1dDxudW1iZXIsIHVua25vd24+KDAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbiwgdW5rbm93bj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgb25seWljb24gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIGxpc3Rlbk1vdXNlRXZlbnQodGhpcy5lbCwgeyBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9KTtcclxuXHJcbiAgICAvKipcclxuICAgICAqICBOZWVkIHRvIGZpbmQgaWNvbiB3aXRob3V0IGFub3RoZXIgRE9NIG5vZGVcclxuICAgICAqICovXHJcbiAgICBhZnRlclJlbmRlckVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNoaWxkTm9kZXMgPSB0aGlzLmVsLmNoaWxkTm9kZXM7XHJcblxyXG4gICAgICBpZiAoY2hpbGROb2Rlcy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgICBjb25zdCBub2RlID0gY2hpbGROb2Rlcy5pdGVtKDApO1xyXG5cclxuICAgICAgICB0aGlzLm9ubHlpY29uLnVwZGF0ZSgoKSA9PiB7XHJcbiAgICAgICAgICBpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiBub2RlLnRhZ05hbWUgPT09ICdMQVQtSUNPTicgfHwgbm9kZS50YWdOYW1lID09PSAnU1ZHJyB8fCBub2RlLnJvbGUgPT09ICdpbWcnO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgLz5cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aXR1ZGUtdWktd2lkZ2V0cy1idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL2J1dHRvbi9sYXRpdHVkZS11aS13aWRnZXRzLWJ1dHRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import * as i0 from '@angular/core';
2
+ import { forwardRef, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
+ import { BuildInInputValueAccessor } from '@latitude-ui/widgets/input';
4
+ import { IconComponent } from '@latitude-ui/widgets/icons';
5
+
6
+ class CheckBoxComponent extends BuildInInputValueAccessor {
7
+ toggle() {
8
+ if (!this.disabled()) {
9
+ const value = this.value() ?? false;
10
+ this.writeValue(!value);
11
+ }
12
+ }
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CheckBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.6", type: CheckBoxComponent, isStandalone: true, selector: "lat-checkbox", host: { listeners: { "click": "toggle()" } }, providers: [
15
+ {
16
+ provide: BuildInInputValueAccessor,
17
+ useExisting: forwardRef(() => CheckBoxComponent),
18
+ },
19
+ ], exportAs: ["latCheckBox"], usesInheritance: true, ngImport: i0, template: "<button\r\n type=\"button\"\r\n role=\"checkbox\"\r\n [attr.id]=\"inputId()\"\r\n [attr.value]=\"value() ? 'on' : 'off'\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.aria-checked]=\"value() || false\"\r\n>\r\n <lat-icon name=\"check\" />\r\n</button>\r\n<ng-content/>\r\n", dependencies: [{ kind: "component", type: IconComponent, selector: "lat-icon", inputs: ["url", "name"], exportAs: ["latIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CheckBoxComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ imports: [
24
+ IconComponent
25
+ ], exportAs: 'latCheckBox', selector: 'lat-checkbox', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
26
+ {
27
+ provide: BuildInInputValueAccessor,
28
+ useExisting: forwardRef(() => CheckBoxComponent),
29
+ },
30
+ ], host: {
31
+ '(click)': 'toggle()',
32
+ }, template: "<button\r\n type=\"button\"\r\n role=\"checkbox\"\r\n [attr.id]=\"inputId()\"\r\n [attr.value]=\"value() ? 'on' : 'off'\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.aria-checked]=\"value() || false\"\r\n>\r\n <lat-icon name=\"check\" />\r\n</button>\r\n<ng-content/>\r\n" }]
33
+ }] });
34
+
35
+ /**
36
+ * Generated bundle index. Do not edit.
37
+ */
38
+
39
+ export { CheckBoxComponent };
40
+ //# sourceMappingURL=latitude-ui-widgets-checkbox.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latitude-ui-widgets-checkbox.mjs","sources":["../tmp-esm2022/checkbox/src/checkbox.component.js","../tmp-esm2022/checkbox/latitude-ui-widgets-checkbox.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { BuildInInputValueAccessor } from '@latitude-ui/widgets/input';\nimport { IconComponent } from '@latitude-ui/widgets/icons';\nimport * as i0 from \"@angular/core\";\nexport class CheckBoxComponent extends BuildInInputValueAccessor {\n toggle() {\n if (!this.disabled()) {\n const value = this.value() ?? false;\n this.writeValue(!value);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.6\", ngImport: i0, type: CheckBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.0.6\", type: CheckBoxComponent, isStandalone: true, selector: \"lat-checkbox\", host: { listeners: { \"click\": \"toggle()\" } }, providers: [\n {\n provide: BuildInInputValueAccessor,\n useExisting: forwardRef(() => CheckBoxComponent),\n },\n ], exportAs: [\"latCheckBox\"], usesInheritance: true, ngImport: i0, template: \"<button\\r\\n type=\\\"button\\\"\\r\\n role=\\\"checkbox\\\"\\r\\n [attr.id]=\\\"inputId()\\\"\\r\\n [attr.value]=\\\"value() ? 'on' : 'off'\\\"\\r\\n [attr.tabindex]=\\\"disabled() ? -1 : tabindex()\\\"\\r\\n [attr.disabled]=\\\"disabled() || undefined\\\"\\r\\n [attr.aria-checked]=\\\"value() || false\\\"\\r\\n>\\r\\n <lat-icon name=\\\"check\\\" />\\r\\n</button>\\r\\n<ng-content/>\\r\\n\", dependencies: [{ kind: \"component\", type: IconComponent, selector: \"lat-icon\", inputs: [\"url\", \"name\"], exportAs: [\"latIcon\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.6\", ngImport: i0, type: CheckBoxComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n IconComponent\n ], exportAs: 'latCheckBox', selector: 'lat-checkbox', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [\n {\n provide: BuildInInputValueAccessor,\n useExisting: forwardRef(() => CheckBoxComponent),\n },\n ], host: {\n '(click)': 'toggle()',\n }, template: \"<button\\r\\n type=\\\"button\\\"\\r\\n role=\\\"checkbox\\\"\\r\\n [attr.id]=\\\"inputId()\\\"\\r\\n [attr.value]=\\\"value() ? 'on' : 'off'\\\"\\r\\n [attr.tabindex]=\\\"disabled() ? -1 : tabindex()\\\"\\r\\n [attr.disabled]=\\\"disabled() || undefined\\\"\\r\\n [attr.aria-checked]=\\\"value() || false\\\"\\r\\n>\\r\\n <lat-icon name=\\\"check\\\" />\\r\\n</button>\\r\\n<ng-content/>\\r\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9jaGVja2JveC9zcmMvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9jaGVja2JveC9zcmMvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQXFCM0QsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHlCQUFrQztJQUNoRSxNQUFNO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUM7WUFFcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO3VHQVBVLGlCQUFpQjsyRkFBakIsaUJBQWlCLHlHQVZqQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSx5QkFBeUI7Z0JBQ2xDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDakQ7U0FDRiw0RUNsQkgsNFZBWUEsNENETkksYUFBYTs7MkZBaUJKLGlCQUFpQjtrQkFuQjdCLFNBQVM7OEJBQ0M7d0JBQ1AsYUFBYTtxQkFDZCxZQUNTLGFBQWEsWUFDYixjQUFjLGlCQUVULGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7eUJBQ2pEO3FCQUNGLFFBQ0s7d0JBQ0osU0FBUyxFQUFFLFVBQVU7cUJBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnVpbGRJbklucHV0VmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BsYXRpdHVkZS11aS93aWRnZXRzL2lucHV0JztcclxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BsYXRpdHVkZS11aS93aWRnZXRzL2ljb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIEljb25Db21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydEFzOiAnbGF0Q2hlY2tCb3gnLFxyXG4gIHNlbGVjdG9yOiAnbGF0LWNoZWNrYm94JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEJ1aWxkSW5JbnB1dFZhbHVlQWNjZXNzb3IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrQm94Q29tcG9uZW50KSxcclxuICAgIH0sXHJcbiAgXSxcclxuICBob3N0OiB7XHJcbiAgICAnKGNsaWNrKSc6ICd0b2dnbGUoKScsXHJcbiAgfSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoZWNrQm94Q29tcG9uZW50IGV4dGVuZHMgQnVpbGRJbklucHV0VmFsdWVBY2Nlc3Nvcjxib29sZWFuPiB7XHJcbiAgcHVibGljIHRvZ2dsZSgpIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCgpKSB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy52YWx1ZSgpID8/IGZhbHNlO1xyXG5cclxuICAgICAgdGhpcy53cml0ZVZhbHVlKCF2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxidXR0b25cclxuICB0eXBlPVwiYnV0dG9uXCJcclxuICByb2xlPVwiY2hlY2tib3hcIlxyXG4gIFthdHRyLmlkXT1cImlucHV0SWQoKVwiXHJcbiAgW2F0dHIudmFsdWVdPVwidmFsdWUoKSA/ICdvbicgOiAnb2ZmJ1wiXHJcbiAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQoKSA/IC0xIDogdGFiaW5kZXgoKVwiXHJcbiAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCB1bmRlZmluZWRcIlxyXG4gIFthdHRyLmFyaWEtY2hlY2tlZF09XCJ2YWx1ZSgpIHx8IGZhbHNlXCJcclxuPlxyXG4gIDxsYXQtaWNvbiBuYW1lPVwiY2hlY2tcIiAvPlxyXG48L2J1dHRvbj5cclxuPG5nLWNvbnRlbnQvPlxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aXR1ZGUtdWktd2lkZ2V0cy1jaGVja2JveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvY2hlY2tib3gvbGF0aXR1ZGUtdWktd2lkZ2V0cy1jaGVja2JveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19"],"names":[],"mappings":";;;;;AAIO,MAAM,iBAAiB,SAAS,yBAAyB,CAAC;AACjE,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;AAC9B,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK;AAC/C,YAAY,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;AACnC;AACA;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC7K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE;AACrN,YAAY;AACZ,gBAAgB,OAAO,EAAE,yBAAyB;AAClD,gBAAgB,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChE,aAAa;AACb,SAAS,EAAE,QAAQ,EAAE,CAAC,aAAa,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,4VAA4V,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,eAAe,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;AACppB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE;AAC9B,wBAAwB;AACxB,qBAAqB,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE;AAC7K,wBAAwB;AACxB,4BAA4B,OAAO,EAAE,yBAAyB;AAC9D,4BAA4B,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAC5E,yBAAyB;AACzB,qBAAqB,EAAE,IAAI,EAAE;AAC7B,wBAAwB,SAAS,EAAE,UAAU;AAC7C,qBAAqB,EAAE,QAAQ,EAAE,4VAA4V,EAAE;AAC/X,SAAS,CAAC,EAAE,CAAC;;AC/Bb;AACA;AACA;;;;"}
@@ -0,0 +1,116 @@
1
+ import { Subject, startWith, debounceTime } from 'rxjs';
2
+ import * as i0 from '@angular/core';
3
+ import { InjectionToken, inject, DOCUMENT, RendererFactory2, signal, ApplicationInitStatus, ɵSIGNAL as _SIGNAL, Injector, Renderer2, DestroyRef, Directive } from '@angular/core';
4
+
5
+ const LAYOUT_DIMENSIONS = new InjectionToken('LAYOUT_DIMENSIONS', {
6
+ providedIn: 'root',
7
+ factory: () => {
8
+ const document = inject(DOCUMENT);
9
+ const renderer = inject(RendererFactory2).createRenderer(document.documentElement, null);
10
+ const width = signal(0);
11
+ const height = signal(0);
12
+ if (document.defaultView) {
13
+ const subject = new Subject();
14
+ const defaultView = document.defaultView;
15
+ subject.pipe(startWith(null), debounceTime(16)).subscribe(() => {
16
+ width.set(defaultView.innerWidth);
17
+ height.set(defaultView.innerHeight);
18
+ });
19
+ renderer.listen(defaultView, 'resize', () => subject.next(void 0));
20
+ }
21
+ return {
22
+ width: width.asReadonly(),
23
+ height: height.asReadonly(),
24
+ };
25
+ },
26
+ });
27
+ const SCROLLBAR_DIMENSIONS = new InjectionToken('SCROLLBAR_DIMENSIONS', {
28
+ providedIn: 'root',
29
+ factory: () => {
30
+ const document = inject(DOCUMENT);
31
+ const renderer = inject(RendererFactory2).createRenderer(document.documentElement, null);
32
+ const dimensions = signal(0);
33
+ const calculate = () => {
34
+ const div = renderer.createElement('div');
35
+ const style = div.style;
36
+ style.overflow = 'scroll';
37
+ style.visibility = 'hidden';
38
+ style.msOverflowStyle = 'scrollbar';
39
+ renderer.appendChild(document.body, div);
40
+ const scrollable = renderer.createElement('div');
41
+ const width = div.offsetWidth - scrollable.offsetWidth;
42
+ renderer.removeChild(document.body, div);
43
+ return width;
44
+ };
45
+ inject(ApplicationInitStatus).donePromise.then(() => dimensions.set(calculate()));
46
+ return dimensions.asReadonly();
47
+ },
48
+ });
49
+ const DIMENSIONS = new InjectionToken('DIMENSIONS', {
50
+ providedIn: 'root',
51
+ factory: () => {
52
+ return {
53
+ layout: inject(LAYOUT_DIMENSIONS),
54
+ scrollbar: inject(SCROLLBAR_DIMENSIONS),
55
+ };
56
+ },
57
+ });
58
+
59
+ function illegallySetComponentInput(inputSignal, value) {
60
+ inputSignal[_SIGNAL].applyValueToInputSignal(inputSignal[_SIGNAL], value);
61
+ }
62
+
63
+ const falsy = () => false;
64
+ /**
65
+ * https://github.com/angular/angular/issues/9587
66
+ */
67
+ function listenMouseEvent(nativeElement, options = {}) {
68
+ const injector = options.injector ?? inject(Injector);
69
+ const disabled = options.disabled ?? falsy;
70
+ const renderer = injector.get(Renderer2);
71
+ const destroyRef = injector.get(DestroyRef);
72
+ const unregisterClick = renderer.listen(nativeElement, 'click', (event) => {
73
+ if (disabled()) {
74
+ event.stopImmediatePropagation();
75
+ event.preventDefault();
76
+ }
77
+ });
78
+ const unregisterKeyUp = renderer.listen(nativeElement, 'keyup', (event) => {
79
+ if (event.code === 'Space' && !disabled()) {
80
+ nativeElement.dispatchEvent(new MouseEvent('click', { ...event }));
81
+ }
82
+ });
83
+ const unregisterFn = destroyRef.onDestroy(() => {
84
+ unregisterClick();
85
+ unregisterKeyUp();
86
+ });
87
+ return () => {
88
+ unregisterFn();
89
+ unregisterClick();
90
+ unregisterKeyUp();
91
+ };
92
+ }
93
+
94
+ class RootDirective {
95
+ dimensions = inject(DIMENSIONS);
96
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: RootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
97
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.6", type: RootDirective, isStandalone: true, host: { properties: { "style.--lat-layout-width": "`${dimensions.layout.width()}px`", "style.--lat-layout-height": "`${dimensions.layout.height()}px`", "style.--lat-scrollbar-width": "`${dimensions.scrollbar()}px`" }, classAttribute: "lat-root" }, ngImport: i0 });
98
+ }
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: RootDirective, decorators: [{
100
+ type: Directive,
101
+ args: [{
102
+ host: {
103
+ class: 'lat-root',
104
+ '[style.--lat-layout-width]': '`${dimensions.layout.width()}px`',
105
+ '[style.--lat-layout-height]': '`${dimensions.layout.height()}px`',
106
+ '[style.--lat-scrollbar-width]': '`${dimensions.scrollbar()}px`',
107
+ }
108
+ }]
109
+ }] });
110
+
111
+ /**
112
+ * Generated bundle index. Do not edit.
113
+ */
114
+
115
+ export { DIMENSIONS, LAYOUT_DIMENSIONS, RootDirective, SCROLLBAR_DIMENSIONS, illegallySetComponentInput, listenMouseEvent };
116
+ //# sourceMappingURL=latitude-ui-widgets-core.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latitude-ui-widgets-core.mjs","sources":["../tmp-esm2022/core/src/dimensions.js","../tmp-esm2022/core/src/illegal.js","../tmp-esm2022/core/src/listeners.js","../tmp-esm2022/core/src/root.js","../tmp-esm2022/core/latitude-ui-widgets-core.js"],"sourcesContent":["import { debounceTime, startWith, Subject } from 'rxjs';\nimport { ApplicationInitStatus, DOCUMENT, inject, InjectionToken, RendererFactory2, signal } from '@angular/core';\nexport const LAYOUT_DIMENSIONS = new InjectionToken('LAYOUT_DIMENSIONS', {\n providedIn: 'root',\n factory: () => {\n const document = inject(DOCUMENT);\n const renderer = inject(RendererFactory2).createRenderer(document.documentElement, null);\n const width = signal(0);\n const height = signal(0);\n if (document.defaultView) {\n const subject = new Subject();\n const defaultView = document.defaultView;\n subject.pipe(startWith(null), debounceTime(16)).subscribe(() => {\n width.set(defaultView.innerWidth);\n height.set(defaultView.innerHeight);\n });\n renderer.listen(defaultView, 'resize', () => subject.next(void 0));\n }\n return {\n width: width.asReadonly(),\n height: height.asReadonly(),\n };\n },\n});\nexport const SCROLLBAR_DIMENSIONS = new InjectionToken('SCROLLBAR_DIMENSIONS', {\n providedIn: 'root',\n factory: () => {\n const document = inject(DOCUMENT);\n const renderer = inject(RendererFactory2).createRenderer(document.documentElement, null);\n const dimensions = signal(0);\n const calculate = () => {\n const div = renderer.createElement('div');\n const style = div.style;\n style.overflow = 'scroll';\n style.visibility = 'hidden';\n style.msOverflowStyle = 'scrollbar';\n renderer.appendChild(document.body, div);\n const scrollable = renderer.createElement('div');\n const width = div.offsetWidth - scrollable.offsetWidth;\n renderer.removeChild(document.body, div);\n return width;\n };\n inject(ApplicationInitStatus).donePromise.then(() => dimensions.set(calculate()));\n return dimensions.asReadonly();\n },\n});\nexport const DIMENSIONS = new InjectionToken('DIMENSIONS', {\n providedIn: 'root',\n factory: () => {\n return {\n layout: inject(LAYOUT_DIMENSIONS),\n scrollbar: inject(SCROLLBAR_DIMENSIONS),\n };\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvY29yZS9zcmMvZGltZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRTtJQUN2RSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXpGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekIsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztZQUNwQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO1lBRXpDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzdELEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNsQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztZQUVILFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsT0FBTztZQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFO1NBQzVCLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQUMsc0JBQXNCLEVBQUU7SUFDN0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV6RixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFN0IsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFO1lBR3JCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQTZCLENBQUM7WUFFaEQsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDMUIsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7WUFDNUIsS0FBSyxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUM7WUFFcEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRXpDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFakQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO1lBRXZELFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUV6QyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbEYsT0FBTyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBQyxZQUFZLEVBQUU7SUFDekQsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE9BQU87WUFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1lBQ2pDLFNBQVMsRUFBRSxNQUFNLENBQUMsb0JBQW9CLENBQUM7U0FDeEMsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHN0YXJ0V2l0aCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Jbml0U3RhdHVzLCBET0NVTUVOVCwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgUmVuZGVyZXJGYWN0b3J5Miwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBMQVlPVVRfRElNRU5TSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbignTEFZT1VUX0RJTUVOU0lPTlMnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIGNvbnN0IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICBjb25zdCByZW5kZXJlciA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKS5jcmVhdGVSZW5kZXJlcihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIG51bGwpO1xuXG4gICAgY29uc3Qgd2lkdGggPSBzaWduYWwoMCk7XG4gICAgY29uc3QgaGVpZ2h0ID0gc2lnbmFsKDApO1xuXG4gICAgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3KSB7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAgIGNvbnN0IGRlZmF1bHRWaWV3ID0gZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG5cbiAgICAgIHN1YmplY3QucGlwZShzdGFydFdpdGgobnVsbCksIGRlYm91bmNlVGltZSgxNikpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHdpZHRoLnNldChkZWZhdWx0Vmlldy5pbm5lcldpZHRoKTtcbiAgICAgICAgaGVpZ2h0LnNldChkZWZhdWx0Vmlldy5pbm5lckhlaWdodCk7XG4gICAgICB9KTtcblxuICAgICAgcmVuZGVyZXIubGlzdGVuKGRlZmF1bHRWaWV3LCAncmVzaXplJywgKCkgPT4gc3ViamVjdC5uZXh0KHZvaWQgMCkpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogd2lkdGguYXNSZWFkb25seSgpLFxuICAgICAgaGVpZ2h0OiBoZWlnaHQuYXNSZWFkb25seSgpLFxuICAgIH07XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IFNDUk9MTEJBUl9ESU1FTlNJT05TID0gbmV3IEluamVjdGlvblRva2VuKCdTQ1JPTExCQVJfRElNRU5TSU9OUycsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgY29uc3QgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICAgIGNvbnN0IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyRmFjdG9yeTIpLmNyZWF0ZVJlbmRlcmVyKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgbnVsbCk7XG5cbiAgICBjb25zdCBkaW1lbnNpb25zID0gc2lnbmFsKDApO1xuXG4gICAgY29uc3QgY2FsY3VsYXRlID0gKCkgPT4ge1xuICAgICAgdHlwZSBfQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IENTU1N0eWxlRGVjbGFyYXRpb24gJiB7IG1zT3ZlcmZsb3dTdHlsZTogc3RyaW5nIH07XG5cbiAgICAgIGNvbnN0IGRpdiA9IHJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICBjb25zdCBzdHlsZSA9IGRpdi5zdHlsZSBhcyBfQ1NTU3R5bGVEZWNsYXJhdGlvbjtcblxuICAgICAgc3R5bGUub3ZlcmZsb3cgPSAnc2Nyb2xsJztcbiAgICAgIHN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgIHN0eWxlLm1zT3ZlcmZsb3dTdHlsZSA9ICdzY3JvbGxiYXInO1xuXG4gICAgICByZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCBkaXYpO1xuXG4gICAgICBjb25zdCBzY3JvbGxhYmxlID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICAgIGNvbnN0IHdpZHRoID0gZGl2Lm9mZnNldFdpZHRoIC0gc2Nyb2xsYWJsZS5vZmZzZXRXaWR0aDtcblxuICAgICAgcmVuZGVyZXIucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuYm9keSwgZGl2KTtcblxuICAgICAgcmV0dXJuIHdpZHRoO1xuICAgIH07XG5cbiAgICBpbmplY3QoQXBwbGljYXRpb25Jbml0U3RhdHVzKS5kb25lUHJvbWlzZS50aGVuKCgpID0+IGRpbWVuc2lvbnMuc2V0KGNhbGN1bGF0ZSgpKSk7XG5cbiAgICByZXR1cm4gZGltZW5zaW9ucy5hc1JlYWRvbmx5KCk7XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IERJTUVOU0lPTlMgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0RJTUVOU0lPTlMnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBsYXlvdXQ6IGluamVjdChMQVlPVVRfRElNRU5TSU9OUyksXG4gICAgICBzY3JvbGxiYXI6IGluamVjdChTQ1JPTExCQVJfRElNRU5TSU9OUyksXG4gICAgfTtcbiAgfSxcbn0pO1xuIl19","import { ɵSIGNAL as SIGNAL } from '@angular/core';\nexport function illegallySetComponentInput(inputSignal, value) {\n inputSignal[SIGNAL].applyValueToInputSignal(inputSignal[SIGNAL], value);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWxsZWdhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvY29yZS9zcmMvaWxsZWdhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRCxNQUFNLFVBQVUsMEJBQTBCLENBQUksV0FBMkIsRUFBRSxLQUFRO0lBQ2pGLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0U2lnbmFsLCDJtVNJR05BTCBhcyBTSUdOQUwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlsbGVnYWxseVNldENvbXBvbmVudElucHV0PFQ+KGlucHV0U2lnbmFsOiBJbnB1dFNpZ25hbDxUPiwgdmFsdWU6IFQpOiB2b2lkIHtcbiAgaW5wdXRTaWduYWxbU0lHTkFMXS5hcHBseVZhbHVlVG9JbnB1dFNpZ25hbChpbnB1dFNpZ25hbFtTSUdOQUxdLCB2YWx1ZSk7XG59XG4iXX0=","import { DestroyRef, inject, Injector, Renderer2 } from '@angular/core';\nconst falsy = () => false;\n/**\n * https://github.com/angular/angular/issues/9587\n */\nexport function listenMouseEvent(nativeElement, options = {}) {\n const injector = options.injector ?? inject(Injector);\n const disabled = options.disabled ?? falsy;\n const renderer = injector.get(Renderer2);\n const destroyRef = injector.get(DestroyRef);\n const unregisterClick = renderer.listen(nativeElement, 'click', (event) => {\n if (disabled()) {\n event.stopImmediatePropagation();\n event.preventDefault();\n }\n });\n const unregisterKeyUp = renderer.listen(nativeElement, 'keyup', (event) => {\n if (event.code === 'Space' && !disabled()) {\n nativeElement.dispatchEvent(new MouseEvent('click', { ...event }));\n }\n });\n const unregisterFn = destroyRef.onDestroy(() => {\n unregisterClick();\n unregisterKeyUp();\n });\n return () => {\n unregisterFn();\n unregisterClick();\n unregisterKeyUp();\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGVuZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9jb3JlL3NyYy9saXN0ZW5lcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RSxNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7QUFFMUI7O0dBRUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLGFBQWdCLEVBQ2hCLFVBR0ksRUFBRTtJQUVOLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDO0lBRTNDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUUzQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtRQUMvRSxJQUFJLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDZixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNqQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3ZGLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQzFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDN0MsZUFBZSxFQUFFLENBQUM7UUFDbEIsZUFBZSxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLEdBQUcsRUFBRTtRQUNWLFlBQVksRUFBRSxDQUFDO1FBQ2YsZUFBZSxFQUFFLENBQUM7UUFDbEIsZUFBZSxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIGluamVjdCwgSW5qZWN0b3IsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbmNvbnN0IGZhbHN5ID0gKCkgPT4gZmFsc2U7XHJcblxyXG4vKipcclxuICogIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzk1ODdcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBsaXN0ZW5Nb3VzZUV2ZW50PFQgZXh0ZW5kcyBIVE1MRWxlbWVudD4oXHJcbiAgbmF0aXZlRWxlbWVudDogVCxcclxuICBvcHRpb25zOiB7XHJcbiAgICBkaXNhYmxlZD86ICgpID0+IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICBpbmplY3Rvcj86IEluamVjdG9yO1xyXG4gIH0gPSB7fVxyXG4pOiBWb2lkRnVuY3Rpb24ge1xyXG4gIGNvbnN0IGluamVjdG9yID0gb3B0aW9ucy5pbmplY3RvciA/PyBpbmplY3QoSW5qZWN0b3IpO1xyXG4gIGNvbnN0IGRpc2FibGVkID0gb3B0aW9ucy5kaXNhYmxlZCA/PyBmYWxzeTtcclxuXHJcbiAgY29uc3QgcmVuZGVyZXIgPSBpbmplY3Rvci5nZXQoUmVuZGVyZXIyKTtcclxuICBjb25zdCBkZXN0cm95UmVmID0gaW5qZWN0b3IuZ2V0KERlc3Ryb3lSZWYpXHJcblxyXG4gIGNvbnN0IHVucmVnaXN0ZXJDbGljayA9IHJlbmRlcmVyLmxpc3RlbihuYXRpdmVFbGVtZW50LCAnY2xpY2snLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICBpZiAoZGlzYWJsZWQoKSkge1xyXG4gICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgY29uc3QgdW5yZWdpc3RlcktleVVwID0gcmVuZGVyZXIubGlzdGVuKG5hdGl2ZUVsZW1lbnQsICdrZXl1cCcsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xyXG4gICAgaWYgKGV2ZW50LmNvZGUgPT09ICdTcGFjZScgJiYgIWRpc2FibGVkKCkpIHtcclxuICAgICAgbmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBNb3VzZUV2ZW50KCdjbGljaycsIHsgLi4uZXZlbnQgfSkpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBjb25zdCB1bnJlZ2lzdGVyRm4gPSBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XHJcbiAgICB1bnJlZ2lzdGVyQ2xpY2soKTtcclxuICAgIHVucmVnaXN0ZXJLZXlVcCgpO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gKCkgPT4ge1xyXG4gICAgdW5yZWdpc3RlckZuKCk7XHJcbiAgICB1bnJlZ2lzdGVyQ2xpY2soKTtcclxuICAgIHVucmVnaXN0ZXJLZXlVcCgpO1xyXG4gIH07XHJcbn1cclxuIl19","import { Directive, inject } from '@angular/core';\nimport { DIMENSIONS } from './dimensions';\nimport * as i0 from \"@angular/core\";\nexport class RootDirective {\n dimensions = inject(DIMENSIONS);\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.6\", ngImport: i0, type: RootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.0.6\", type: RootDirective, isStandalone: true, host: { properties: { \"style.--lat-layout-width\": \"`${dimensions.layout.width()}px`\", \"style.--lat-layout-height\": \"`${dimensions.layout.height()}px`\", \"style.--lat-scrollbar-width\": \"`${dimensions.scrollbar()}px`\" }, classAttribute: \"lat-root\" }, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.6\", ngImport: i0, type: RootDirective, decorators: [{\n type: Directive,\n args: [{\n host: {\n class: 'lat-root',\n '[style.--lat-layout-width]': '`${dimensions.layout.width()}px`',\n '[style.--lat-layout-height]': '`${dimensions.layout.height()}px`',\n '[style.--lat-scrollbar-width]': '`${dimensions.scrollbar()}px`',\n }\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvY29yZS9zcmMvcm9vdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQVcxQyxNQUFNLE9BQU8sYUFBYTtJQUNmLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7dUdBRDlCLGFBQWE7MkZBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFSekIsU0FBUzttQkFBQztvQkFDVCxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLFVBQVU7d0JBQ2pCLDRCQUE0QixFQUFFLGtDQUFrQzt3QkFDaEUsNkJBQTZCLEVBQUUsbUNBQW1DO3dCQUNsRSwrQkFBK0IsRUFBRSwrQkFBK0I7cUJBQ2pFO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERJTUVOU0lPTlMgfSBmcm9tICcuL2RpbWVuc2lvbnMnO1xuXG5cbkBEaXJlY3RpdmUoe1xuICBob3N0OiB7XG4gICAgY2xhc3M6ICdsYXQtcm9vdCcsXG4gICAgJ1tzdHlsZS4tLWxhdC1sYXlvdXQtd2lkdGhdJzogJ2Ake2RpbWVuc2lvbnMubGF5b3V0LndpZHRoKCl9cHhgJyxcbiAgICAnW3N0eWxlLi0tbGF0LWxheW91dC1oZWlnaHRdJzogJ2Ake2RpbWVuc2lvbnMubGF5b3V0LmhlaWdodCgpfXB4YCcsXG4gICAgJ1tzdHlsZS4tLWxhdC1zY3JvbGxiYXItd2lkdGhdJzogJ2Ake2RpbWVuc2lvbnMuc2Nyb2xsYmFyKCl9cHhgJyxcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBSb290RGlyZWN0aXZlIHtcbiAgcmVhZG9ubHkgZGltZW5zaW9ucyA9IGluamVjdChESU1FTlNJT05TKTtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aXR1ZGUtdWktd2lkZ2V0cy1jb3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9jb3JlL2xhdGl0dWRlLXVpLXdpZGdldHMtY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19"],"names":["SIGNAL"],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, computed, RendererFactory2, Renderer2, ElementRef, Injectable, input, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
+ import { of, map, tap, finalize, share, filter, switchMap } from 'rxjs';
4
+ import { HttpClient } from '@angular/common/http';
5
+ import { toObservable, takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
+
7
+ const ICONS_ASSETS = new InjectionToken('ICONS_ASSETS', {
8
+ providedIn: 'root',
9
+ factory: () => 'assets/latitude-ui/icons',
10
+ });
11
+ const ICONS_RESOLVER = new InjectionToken('ICONS_RESOLVER', {
12
+ providedIn: 'root',
13
+ factory: () => {
14
+ const assets = inject(ICONS_ASSETS);
15
+ return (icon) => `${assets}/${icon.split('.').join('/')}.svg`;
16
+ },
17
+ });
18
+ const ICONS_POLYFILL = new InjectionToken('ICONS_POLYFILL', {
19
+ providedIn: 'root',
20
+ factory: () => {
21
+ return computed(() => !CSS.supports('mask', 'var(--lat-icon-url) no-repeat center / contain'));
22
+ },
23
+ });
24
+
25
+ class IconService {
26
+ http = inject(HttpClient);
27
+ renderer = inject(RendererFactory2).createRenderer(null, null);
28
+ icons = new Map();
29
+ tasks = new Map();
30
+ get(url) {
31
+ if (this.icons.has(url)) {
32
+ return of(this.icons.get(url));
33
+ }
34
+ if (this.tasks.has(url)) {
35
+ return this.tasks.get(url);
36
+ }
37
+ const task = this.http.get(url, { responseType: 'text' }).pipe(map((text) => this.normalize(text)), tap((html) => this.icons.set(url, html)), finalize(() => this.tasks.delete(url)), share());
38
+ this.tasks.set(url, task);
39
+ return task;
40
+ }
41
+ normalize(text) {
42
+ text = text.replace(/style\s*=/g, 'data-style=');
43
+ text = text.replace(/class\s*=/g, 'data-class=');
44
+ const nativeElement = this.renderer.createElement('template');
45
+ this.renderer.setProperty(nativeElement, 'innerHTML', text);
46
+ const glyph = nativeElement.content.firstElementChild;
47
+ if (glyph.tagName.toLowerCase() !== 'svg') {
48
+ throw new Error(`<svg>...</svg> not found for <${glyph.tagName.toLowerCase()}>`);
49
+ }
50
+ const nodes = Array.from(glyph.querySelectorAll('[data-style]'));
51
+ for (const node of nodes) {
52
+ const styles = node.getAttribute('data-style');
53
+ if (styles) {
54
+ styles.split(';').forEach((style) => {
55
+ const [property, value] = style.split(':');
56
+ this.renderer.setStyle(node, property.trim(), value.trim());
57
+ });
58
+ this.renderer.removeAttribute(node, 'data-style');
59
+ }
60
+ }
61
+ this.renderer.setAttribute(glyph, 'width', '1em');
62
+ this.renderer.setAttribute(glyph, 'height', '1em');
63
+ return glyph;
64
+ }
65
+ toObservable(url) {
66
+ const renderer = inject(Renderer2);
67
+ const nativeElement = inject((ElementRef)).nativeElement;
68
+ toObservable(url).pipe(takeUntilDestroyed(), tap(() => {
69
+ nativeElement.childNodes.forEach((node) => {
70
+ renderer.removeChild(nativeElement, node);
71
+ });
72
+ }), filter((url) => url !== undefined), switchMap((url) => this.get(url)), tap((icon) => renderer.appendChild(nativeElement, icon.cloneNode(true)))).subscribe();
73
+ }
74
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: IconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
75
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: IconService, providedIn: 'root' });
76
+ }
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: IconService, decorators: [{
78
+ type: Injectable,
79
+ args: [{ providedIn: 'root' }]
80
+ }] });
81
+
82
+ class IconComponent {
83
+ resolve = inject(ICONS_RESOLVER);
84
+ polyfill = inject(ICONS_POLYFILL);
85
+ url = input();
86
+ name = input();
87
+ icon = computed(() => {
88
+ const url = this.url();
89
+ if (url) {
90
+ return url;
91
+ }
92
+ const name = this.name();
93
+ return name ? this.resolve(name) : '';
94
+ });
95
+ constructor() {
96
+ if (this.polyfill()) {
97
+ inject(IconService).toObservable(this.icon);
98
+ }
99
+ }
100
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
101
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.6", type: IconComponent, isStandalone: true, selector: "lat-icon", inputs: { url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "img" }, properties: { "attr.aria-label": "name()", "attr.data-polyfill": "polyfill() || undefined", "style.--lat-icon-url": "`url(${icon()})`" } }, exportAs: ["latIcon"], ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
102
+ }
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: IconComponent, decorators: [{
104
+ type: Component,
105
+ args: [{ exportAs: 'latIcon', selector: 'lat-icon', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
106
+ role: 'img',
107
+ '[attr.aria-label]': 'name()',
108
+ '[attr.data-polyfill]': 'polyfill() || undefined',
109
+ '[style.--lat-icon-url]': '`url(${icon()})`',
110
+ }, template: "" }]
111
+ }], ctorParameters: () => [] });
112
+
113
+ /**
114
+ * Generated bundle index. Do not edit.
115
+ */
116
+
117
+ export { ICONS_ASSETS, ICONS_POLYFILL, ICONS_RESOLVER, IconComponent };
118
+ //# sourceMappingURL=latitude-ui-widgets-icons.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latitude-ui-widgets-icons.mjs","sources":["../tmp-esm2022/icons/src/icon.tokens.js","../tmp-esm2022/icons/src/icon.service.js","../tmp-esm2022/icons/src/icon.component.js","../tmp-esm2022/icons/latitude-ui-widgets-icons.js"],"sourcesContent":["import { computed, inject, InjectionToken } from '@angular/core';\nexport const ICONS_ASSETS = new InjectionToken('ICONS_ASSETS', {\n providedIn: 'root',\n factory: () => 'assets/latitude-ui/icons',\n});\nexport const ICONS_RESOLVER = new InjectionToken('ICONS_RESOLVER', {\n providedIn: 'root',\n factory: () => {\n const assets = inject(ICONS_ASSETS);\n return (icon) => `${assets}/${icon.split('.').join('/')}.svg`;\n },\n});\nexport const ICONS_POLYFILL = new InjectionToken('ICONS_POLYFILL', {\n providedIn: 'root',\n factory: () => {\n return computed(() => !CSS.supports('mask', 'var(--lat-icon-url) no-repeat center / contain'));\n },\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi50b2tlbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL2ljb25zL3NyYy9pY29uLnRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFTLGNBQWMsRUFBRTtJQUNyRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsMEJBQTBCO0NBQzFDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRTtJQUNqRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXBDLE9BQU8sQ0FBQyxJQUFZLEVBQVUsRUFBRSxDQUFDLEdBQUcsTUFBTSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDaEYsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRTtJQUNqRSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxnREFBZ0QsQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBJQ09OU19BU1NFVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPignSUNPTlNfQVNTRVRTJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+ICdhc3NldHMvbGF0aXR1ZGUtdWkvaWNvbnMnLFxufSk7XG5cbmV4cG9ydCBjb25zdCBJQ09OU19SRVNPTFZFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbignSUNPTlNfUkVTT0xWRVInLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIGNvbnN0IGFzc2V0cyA9IGluamVjdChJQ09OU19BU1NFVFMpO1xuXG4gICAgcmV0dXJuIChpY29uOiBzdHJpbmcpOiBzdHJpbmcgPT4gYCR7YXNzZXRzfS8ke2ljb24uc3BsaXQoJy4nKS5qb2luKCcvJyl9LnN2Z2A7XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IElDT05TX1BPTFlGSUxMID0gbmV3IEluamVjdGlvblRva2VuKCdJQ09OU19QT0xZRklMTCcsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgcmV0dXJuIGNvbXB1dGVkKCgpID0+ICFDU1Muc3VwcG9ydHMoJ21hc2snLCAndmFyKC0tbGF0LWljb24tdXJsKSBuby1yZXBlYXQgY2VudGVyIC8gY29udGFpbicpKTtcbiAgfSxcbn0pO1xuIl19","import { filter, finalize, map, of, share, switchMap, tap } from 'rxjs';\nimport { ElementRef, inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport * as i0 from \"@angular/core\";\nexport class IconService {\n http = inject(HttpClient);\n renderer = inject(RendererFactory2).createRenderer(null, null);\n icons = new Map();\n tasks = new Map();\n get(url) {\n if (this.icons.has(url)) {\n return of(this.icons.get(url));\n }\n if (this.tasks.has(url)) {\n return this.tasks.get(url);\n }\n const task = this.http.get(url, { responseType: 'text' }).pipe(map((text) => this.normalize(text)), tap((html) => this.icons.set(url, html)), finalize(() => this.tasks.delete(url)), share());\n this.tasks.set(url, task);\n return task;\n }\n normalize(text) {\n text = text.replace(/style\\s*=/g, 'data-style=');\n text = text.replace(/class\\s*=/g, 'data-class=');\n const nativeElement = this.renderer.createElement('template');\n this.renderer.setProperty(nativeElement, 'innerHTML', text);\n const glyph = nativeElement.content.firstElementChild;\n if (glyph.tagName.toLowerCase() !== 'svg') {\n throw new Error(`<svg>...</svg> not found for <${glyph.tagName.toLowerCase()}>`);\n }\n const nodes = Array.from(glyph.querySelectorAll('[data-style]'));\n for (const node of nodes) {\n const styles = node.getAttribute('data-style');\n if (styles) {\n styles.split(';').forEach((style) => {\n const [property, value] = style.split(':');\n this.renderer.setStyle(node, property.trim(), value.trim());\n });\n this.renderer.removeAttribute(node, 'data-style');\n }\n }\n this.renderer.setAttribute(glyph, 'width', '1em');\n this.renderer.setAttribute(glyph, 'height', '1em');\n return glyph;\n }\n toObservable(url) {\n const renderer = inject(Renderer2);\n const nativeElement = inject((ElementRef)).nativeElement;\n toObservable(url).pipe(takeUntilDestroyed(), tap(() => {\n nativeElement.childNodes.forEach((node) => {\n renderer.removeChild(nativeElement, node);\n });\n }), filter((url) => url !== undefined), switchMap((url) => this.get(url)), tap((icon) => renderer.appendChild(nativeElement, icon.cloneNode(true)))).subscribe();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.6\", ngImport: i0, type: IconService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.6\", ngImport: i0, type: IconService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.6\", ngImport: i0, type: IconService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9pY29ucy9zcmMvaWNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFcEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUc5RSxNQUFNLE9BQU8sV0FBVztJQUNILElBQUksR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFMUIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFL0QsS0FBSyxHQUFHLElBQUksR0FBRyxFQUFzQixDQUFDO0lBRXRDLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBa0MsQ0FBQztJQUU5RCxHQUFHLENBQUMsR0FBVztRQUNwQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDeEIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFlLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FB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LEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBRXBFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ3BCLGtCQUFrQixFQUFFLEVBQ3BCLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDUCxhQUFhLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQWUsRUFBRSxFQUFFO2dCQUNuRCxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxLQUFLLFNBQVMsQ0FBQyxFQUNsQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDakMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDekUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQixDQUFDO3VHQTdFVSxXQUFXOzJHQUFYLFdBQVcsY0FERSxNQUFNOzsyRkFDbkIsV0FBVztrQkFEdkIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWx0ZXIsIGZpbmFsaXplLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlcjIsIFJlbmRlcmVyRmFjdG9yeTIsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEljb25TZXJ2aWNlIHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyRmFjdG9yeTIpLmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBpY29ucyA9IG5ldyBNYXA8c3RyaW5nLCBTVkdFbGVtZW50PigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSB0YXNrcyA9IG5ldyBNYXA8c3RyaW5nLCBPYnNlcnZhYmxlPFNWR0VsZW1lbnQ+PigpO1xuXG4gIHB1YmxpYyBnZXQodXJsOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNWR0VsZW1lbnQ+IHtcbiAgICBpZiAodGhpcy5pY29ucy5oYXModXJsKSkge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuaWNvbnMuZ2V0KHVybCkgYXMgU1ZHRWxlbWVudCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudGFza3MuaGFzKHVybCkpIHtcbiAgICAgIHJldHVybiB0aGlzLnRhc2tzLmdldCh1cmwpIGFzIE9ic2VydmFibGU8U1ZHRWxlbWVudD47XG4gICAgfVxuXG4gICAgY29uc3QgdGFzayA9IHRoaXMuaHR0cC5nZXQodXJsLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnIH0pLnBpcGUoXG4gICAgICBtYXAoKHRleHQpID0+IHRoaXMubm9ybWFsaXplKHRleHQpKSxcbiAgICAgIHRhcCgoaHRtbCkgPT4gdGhpcy5pY29ucy5zZXQodXJsLCBodG1sKSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PiB0aGlzLnRhc2tzLmRlbGV0ZSh1cmwpKSxcbiAgICAgIHNoYXJlKCksXG4gICAgKTtcblxuICAgIHRoaXMudGFza3Muc2V0KHVybCwgdGFzayk7XG5cbiAgICByZXR1cm4gdGFzaztcbiAgfVxuXG4gIHB1YmxpYyBub3JtYWxpemUodGV4dDogc3RyaW5nKTogU1ZHRWxlbWVudCB7XG4gICAgdGV4dCA9IHRleHQucmVwbGFjZSgvc3R5bGVcXHMqPS9nLCAnZGF0YS1zdHlsZT0nKTtcbiAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKC9jbGFzc1xccyo9L2csICdkYXRhLWNsYXNzPScpO1xuXG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgndGVtcGxhdGUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KG5hdGl2ZUVsZW1lbnQsICdpbm5lckhUTUwnLCB0ZXh0KTtcblxuICAgIGNvbnN0IGdseXBoID0gbmF0aXZlRWxlbWVudC5jb250ZW50LmZpcnN0RWxlbWVudENoaWxkIGFzIFNWR0VsZW1lbnQ7XG4gICAgaWYgKGdseXBoLnRhZ05hbWUudG9Mb3dlckNhc2UoKSAhPT0gJ3N2ZycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgPHN2Zz4uLi48L3N2Zz4gbm90IGZvdW5kIGZvciA8JHtnbHlwaC50YWdOYW1lLnRvTG93ZXJDYXNlKCl9PmApO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGVzID0gQXJyYXkuZnJvbShnbHlwaC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudD4oJ1tkYXRhLXN0eWxlXScpKTtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgIGNvbnN0IHN0eWxlcyA9IG5vZGUuZ2V0QXR0cmlidXRlKCdkYXRhLXN0eWxlJyk7XG5cbiAgICAgIGlmIChzdHlsZXMpIHtcbiAgICAgICAgc3R5bGVzLnNwbGl0KCc7JykuZm9yRWFjaCgoc3R5bGUpID0+IHtcbiAgICAgICAgICBjb25zdCBbcHJvcGVydHksIHZhbHVlXSA9IHN0eWxlLnNwbGl0KCc6Jyk7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShub2RlLCBwcm9wZXJ0eS50cmltKCksIHZhbHVlLnRyaW0oKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKG5vZGUsICdkYXRhLXN0eWxlJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoZ2x5cGgsICd3aWR0aCcsICcxZW0nKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShnbHlwaCwgJ2hlaWdodCcsICcxZW0nKTtcblxuICAgIHJldHVybiBnbHlwaDtcbiAgfVxuXG4gIHB1YmxpYyB0b09ic2VydmFibGUodXJsOiBTaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPikge1xuICAgIGNvbnN0IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50PikubmF0aXZlRWxlbWVudDtcblxuICAgIHRvT2JzZXJ2YWJsZSh1cmwpLnBpcGUoXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgIG5hdGl2ZUVsZW1lbnQuY2hpbGROb2Rlcy5mb3JFYWNoKChub2RlOiBDaGlsZE5vZGUpID0+IHtcbiAgICAgICAgICByZW5kZXJlci5yZW1vdmVDaGlsZChuYXRpdmVFbGVtZW50LCBub2RlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KSxcbiAgICAgIGZpbHRlcigodXJsKSA9PiB1cmwgIT09IHVuZGVmaW5lZCksXG4gICAgICBzd2l0Y2hNYXAoKHVybCkgPT4gdGhpcy5nZXQodXJsKSksXG4gICAgICB0YXAoKGljb24pID0+IHJlbmRlcmVyLmFwcGVuZENoaWxkKG5hdGl2ZUVsZW1lbnQsIGljb24uY2xvbmVOb2RlKHRydWUpKSksXG4gICAgKS5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19","import { ChangeDetectionStrategy, Component, computed, inject, input, ViewEncapsulation } from '@angular/core';\nimport { ICONS_POLYFILL, ICONS_RESOLVER } from './icon.tokens';\nimport { IconService } from './icon.service';\nimport * as i0 from \"@angular/core\";\nexport class IconComponent {\n resolve = inject(ICONS_RESOLVER);\n polyfill = inject(ICONS_POLYFILL);\n url = input();\n name = input();\n icon = computed(() => {\n const url = this.url();\n if (url) {\n return url;\n }\n const name = this.name();\n return name ? this.resolve(name) : '';\n });\n constructor() {\n if (this.polyfill()) {\n inject(IconService).toObservable(this.icon);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.6\", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.0.6\", type: IconComponent, isStandalone: true, selector: \"lat-icon\", inputs: { url: { classPropertyName: \"url\", publicName: \"url\", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { \"role\": \"img\" }, properties: { \"attr.aria-label\": \"name()\", \"attr.data-polyfill\": \"polyfill() || undefined\", \"style.--lat-icon-url\": \"`url(${icon()})`\" } }, exportAs: [\"latIcon\"], ngImport: i0, template: \"\", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.6\", ngImport: i0, type: IconComponent, decorators: [{\n type: Component,\n args: [{ exportAs: 'latIcon', selector: 'lat-icon', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {\n role: 'img',\n '[attr.aria-label]': 'name()',\n '[attr.data-polyfill]': 'polyfill() || undefined',\n '[style.--lat-icon-url]': '`url(${icon()})`',\n }, template: \"\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL2ljb25zL3NyYy9pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvaWNvbnMvc3JjL2ljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRyxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBZTdDLE1BQU0sT0FBTyxhQUFhO0lBQ1IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNqQyxRQUFRLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBRWxDLEdBQUcsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUN0QixJQUFJLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFFdkIsSUFBSSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDbkMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXZCLElBQUksR0FBRyxFQUFFLENBQUM7WUFDUixPQUFPLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFekIsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxDQUFDLENBQUMsQ0FBQztJQUVIO1FBQ0UsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNwQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDO0lBQ0gsQ0FBQzt1R0F2QlUsYUFBYTsyRkFBYixhQUFhLGlnQkNsQjFCLEVBQUE7OzJGRGtCYSxhQUFhO2tCQWJ6QixTQUFTOytCQUNFLFNBQVMsWUFDVCxVQUFVLGlCQUVMLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osSUFBSSxFQUFFLEtBQUs7d0JBQ1gsbUJBQW1CLEVBQUUsUUFBUTt3QkFDN0Isc0JBQXNCLEVBQUUseUJBQXlCO3dCQUNqRCx3QkFBd0IsRUFBRSxrQkFBa0I7cUJBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IElDT05TX1BPTFlGSUxMLCBJQ09OU19SRVNPTFZFUiB9IGZyb20gJy4vaWNvbi50b2tlbnMnO1xuaW1wb3J0IHsgSWNvblNlcnZpY2UgfSBmcm9tICcuL2ljb24uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBleHBvcnRBczogJ2xhdEljb24nLFxuICBzZWxlY3RvcjogJ2xhdC1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIHJvbGU6ICdpbWcnLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsXSc6ICduYW1lKCknLFxuICAgICdbYXR0ci5kYXRhLXBvbHlmaWxsXSc6ICdwb2x5ZmlsbCgpIHx8IHVuZGVmaW5lZCcsXG4gICAgJ1tzdHlsZS4tLWxhdC1pY29uLXVybF0nOiAnYHVybCgke2ljb24oKX0pYCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEljb25Db21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb2x2ZSA9IGluamVjdChJQ09OU19SRVNPTFZFUik7XG4gIHB1YmxpYyByZWFkb25seSBwb2x5ZmlsbCA9IGluamVjdChJQ09OU19QT0xZRklMTCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHVybCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGljb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy51cmwoKTtcblxuICAgIGlmICh1cmwpIHtcbiAgICAgIHJldHVybiB1cmw7XG4gICAgfVxuXG4gICAgY29uc3QgbmFtZSA9IHRoaXMubmFtZSgpO1xuXG4gICAgcmV0dXJuIG5hbWUgPyB0aGlzLnJlc29sdmUobmFtZSkgOiAnJztcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgaWYgKHRoaXMucG9seWZpbGwoKSkge1xuICAgICAgaW5qZWN0KEljb25TZXJ2aWNlKS50b09ic2VydmFibGUodGhpcy5pY29uKTtcbiAgICB9XG4gIH1cbn1cbiIsIiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public-api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aXR1ZGUtdWktd2lkZ2V0cy1pY29ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvaWNvbnMvbGF0aXR1ZGUtdWktd2lkZ2V0cy1pY29ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19"],"names":[],"mappings":"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"}