@latitude-ui/widgets 0.0.22 → 0.0.24

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 (68) hide show
  1. package/button/README.md +3 -3
  2. package/checkbox/README.md +3 -0
  3. package/core/README.md +3 -3
  4. package/fesm2022/latitude-ui-widgets-button.mjs +63 -28
  5. package/fesm2022/latitude-ui-widgets-button.mjs.map +1 -1
  6. package/fesm2022/latitude-ui-widgets-checkbox.mjs +9 -9
  7. package/fesm2022/latitude-ui-widgets-checkbox.mjs.map +1 -1
  8. package/fesm2022/latitude-ui-widgets-core.mjs +9 -103
  9. package/fesm2022/latitude-ui-widgets-core.mjs.map +1 -1
  10. package/fesm2022/latitude-ui-widgets-icons.mjs +18 -96
  11. package/fesm2022/latitude-ui-widgets-icons.mjs.map +1 -1
  12. package/fesm2022/latitude-ui-widgets-input.mjs +113 -118
  13. package/fesm2022/latitude-ui-widgets-input.mjs.map +1 -1
  14. package/fesm2022/latitude-ui-widgets-listbox.mjs +28 -36
  15. package/fesm2022/latitude-ui-widgets-listbox.mjs.map +1 -1
  16. package/fesm2022/latitude-ui-widgets-scrollable.mjs +102 -0
  17. package/fesm2022/latitude-ui-widgets-scrollable.mjs.map +1 -0
  18. package/fesm2022/latitude-ui-widgets-select.mjs +79 -90
  19. package/fesm2022/latitude-ui-widgets-select.mjs.map +1 -1
  20. package/fesm2022/latitude-ui-widgets-switch.mjs +9 -9
  21. package/fesm2022/latitude-ui-widgets-switch.mjs.map +1 -1
  22. package/fesm2022/latitude-ui-widgets-tabs.mjs +83 -0
  23. package/fesm2022/latitude-ui-widgets-tabs.mjs.map +1 -0
  24. package/fesm2022/latitude-ui-widgets-textbox.mjs +309 -23
  25. package/fesm2022/latitude-ui-widgets-textbox.mjs.map +1 -1
  26. package/fesm2022/latitude-ui-widgets-toolbar.mjs +55 -9
  27. package/fesm2022/latitude-ui-widgets-toolbar.mjs.map +1 -1
  28. package/fesm2022/latitude-ui-widgets.mjs.map +1 -1
  29. package/icons/README.md +3 -0
  30. package/input/README.md +3 -3
  31. package/listbox/README.md +3 -0
  32. package/package.json +29 -40
  33. package/scrollable/README.md +3 -0
  34. package/select/README.md +3 -0
  35. package/switch/README.md +3 -0
  36. package/tabs/README.md +3 -0
  37. package/textbox/README.md +3 -0
  38. package/toolbar/README.md +3 -0
  39. package/types/latitude-ui-widgets-button.d.ts +30 -0
  40. package/{checkbox/index.d.ts → types/latitude-ui-widgets-checkbox.d.ts} +2 -2
  41. package/types/latitude-ui-widgets-core.d.ts +12 -0
  42. package/{icons/index.d.ts → types/latitude-ui-widgets-icons.d.ts} +4 -8
  43. package/{input/index.d.ts → types/latitude-ui-widgets-input.d.ts} +43 -41
  44. package/types/latitude-ui-widgets-listbox.d.ts +20 -0
  45. package/types/latitude-ui-widgets-scrollable.d.ts +24 -0
  46. package/{select/index.d.ts → types/latitude-ui-widgets-select.d.ts} +3 -5
  47. package/{switch/index.d.ts → types/latitude-ui-widgets-switch.d.ts} +2 -2
  48. package/types/latitude-ui-widgets-tabs.d.ts +46 -0
  49. package/types/latitude-ui-widgets-textbox.d.ts +107 -0
  50. package/types/latitude-ui-widgets-toolbar.d.ts +24 -0
  51. package/button/index.d.ts +0 -19
  52. package/core/index.d.ts +0 -39
  53. package/fesm2022/latitude-ui-widgets-textbox-number.mjs +0 -168
  54. package/fesm2022/latitude-ui-widgets-textbox-number.mjs.map +0 -1
  55. package/listbox/index.d.ts +0 -23
  56. package/styles/_colors.scss +0 -99
  57. package/styles/_defaults.scss +0 -135
  58. package/styles/_index.scss +0 -11
  59. package/styles/_typography.scss +0 -37
  60. package/styles/button/_index.scss +0 -199
  61. package/styles/forms/_index.scss +0 -888
  62. package/styles/icons/_index.scss +0 -34
  63. package/styles/list/_index.scss +0 -0
  64. package/styles/listbox/_index.scss +0 -30
  65. package/textbox/index.d.ts +0 -26
  66. package/textbox-number/index.d.ts +0 -44
  67. package/toolbar/index.d.ts +0 -8
  68. /package/{index.d.ts → types/latitude-ui-widgets.d.ts} +0 -0
package/button/README.md CHANGED
@@ -1,3 +1,3 @@
1
- # @latitude-ui/widgets/button
2
-
3
- Secondary entry point of `@latitude-ui/widgets`. It can be used by importing from `@latitude-ui/widgets/button`.
1
+ # @latitude-ui/widgets/button
2
+
3
+ Secondary entry point of `@latitude-ui/widgets`. It can be used by importing from `@latitude-ui/widgets/button`.
@@ -0,0 +1,3 @@
1
+ # @latitude-ui/widgets/checkbox
2
+
3
+ Secondary entry point of `@latitude-ui/widgets`. It can be used by importing from `@latitude-ui/widgets/checkbox`.
package/core/README.md CHANGED
@@ -1,3 +1,3 @@
1
- # @latitude-ui/widgets/core
2
-
3
- Secondary entry point of `@latitude-ui/widgets`. It can be used by importing from `@latitude-ui/widgets/core`.
1
+ # @latitude-ui/widgets/core
2
+
3
+ Secondary entry point of `@latitude-ui/widgets`. It can be used by importing from `@latitude-ui/widgets/core`.
@@ -1,24 +1,37 @@
1
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';
2
+ import { InjectionToken, inject, ElementRef, input, booleanAttribute, numberAttribute, signal, afterRenderEffect, DestroyRef, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
+
4
+ const BUTTON_OPTIONS = new InjectionToken(ngDevMode ? 'BUTTON_OPTIONS' : '', {
5
+ factory: () => {
6
+ return {
7
+ role: 'button',
8
+ size: 'md',
9
+ variant: 'default',
10
+ };
11
+ }
12
+ });
4
13
 
5
14
  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);
15
+ button = inject((ElementRef));
16
+ options = inject(BUTTON_OPTIONS);
17
+ role = input(this.options.role, ...(ngDevMode ? [{ debugName: "role" }] : []));
18
+ size = input(this.options.size, ...(ngDevMode ? [{ debugName: "size" }] : []));
19
+ variant = input(this.options.variant, ...(ngDevMode ? [{ debugName: "variant" }] : []));
20
+ disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : {}), transform: booleanAttribute });
21
+ tabindex = input(undefined, { ...(ngDevMode ? { debugName: "tabindex" } : {}), transform: numberAttribute });
22
+ icononly = signal(false, ...(ngDevMode ? [{ debugName: "icononly" }] : []));
12
23
  constructor() {
13
- listenMouseEvent(this.el, { disabled: this.disabled });
14
- /**
15
- * Need to find icon without another DOM node
16
- * */
24
+ this._setUpPolyfill();
25
+ this._setUpListener();
26
+ }
27
+ // Need to find icon without another DOM node (Polyfill pseudo :has)
28
+ _setUpPolyfill() {
29
+ const nativeElement = this.button.nativeElement;
17
30
  afterRenderEffect(() => {
18
- const childNodes = this.el.childNodes;
31
+ const childNodes = nativeElement.childNodes;
19
32
  if (childNodes.length === 1) {
20
33
  const node = childNodes.item(0);
21
- this.onlyicon.update(() => {
34
+ this.icononly.update(() => {
22
35
  if (node instanceof HTMLElement) {
23
36
  return node.tagName === 'LAT-ICON' || node.tagName === 'SVG' || node.role === 'img';
24
37
  }
@@ -27,25 +40,47 @@ class ButtonComponent {
27
40
  }
28
41
  });
29
42
  }
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 });
43
+ // https://github.com/angular/angular/issues/9587
44
+ _setUpListener() {
45
+ const nativeElement = this.button.nativeElement;
46
+ const clickFn = (event) => {
47
+ if (this.disabled()) {
48
+ event.stopImmediatePropagation();
49
+ event.preventDefault();
50
+ }
51
+ };
52
+ const keyupFn = (event) => {
53
+ if (event.code === 'Space' && !this.disabled()) {
54
+ const click = new MouseEvent('click', { ...event });
55
+ nativeElement.dispatchEvent(click);
56
+ event.stopImmediatePropagation();
57
+ event.preventDefault();
58
+ }
59
+ };
60
+ nativeElement.addEventListener('click', clickFn);
61
+ nativeElement.addEventListener('keyup', keyupFn);
62
+ inject(DestroyRef).onDestroy(() => {
63
+ nativeElement.removeEventListener('click', clickFn);
64
+ nativeElement.removeEventListener('keyup', keyupFn);
65
+ });
66
+ }
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.3", type: ButtonComponent, isStandalone: true, selector: "lat-button, a[latButton],button[latButton]", inputs: { role: { classPropertyName: "role", publicName: "role", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.role": "role()", "attr.size": "size()", "attr.variant": "variant()", "attr.icononly": "icononly()", "attr.tabindex": "disabled() ? -1 : tabindex()" } }, exportAs: ["latButton"], ngImport: i0, template: "<ng-content />\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
32
69
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: ButtonComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: ButtonComponent, decorators: [{
34
71
  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: () => [] });
72
+ args: [{ exportAs: 'latButton', selector: 'lat-button, a[latButton],button[latButton]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
73
+ '[attr.role]': 'role()',
74
+ '[attr.size]': 'size()',
75
+ '[attr.variant]': 'variant()',
76
+ '[attr.icononly]': 'icononly()',
77
+ '[attr.tabindex]': `disabled() ? -1 : tabindex()`
78
+ }, template: "<ng-content />\r\n" }]
79
+ }], ctorParameters: () => [], propDecorators: { role: [{ type: i0.Input, args: [{ isSignal: true, alias: "role", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], tabindex: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabindex", required: false }] }] } });
45
80
 
46
81
  /**
47
82
  * Generated bundle index. Do not edit.
48
83
  */
49
84
 
50
- export { ButtonComponent };
85
+ export { BUTTON_OPTIONS, ButtonComponent };
51
86
  //# sourceMappingURL=latitude-ui-widgets-button.mjs.map
@@ -1 +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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"}
1
+ {"version":3,"file":"latitude-ui-widgets-button.mjs","sources":["../../../../packages/widgets/button/lib/button.options.ts","../../../../packages/widgets/button/lib/button.component.ts","../../../../packages/widgets/button/lib/button.component.html","../../../../packages/widgets/button/latitude-ui-widgets-button.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { BoxSize } from '@latitude-ui/widgets/core';\n\n\nexport type ButtonOptions = {\n role: string,\n size: BoxSize;\n variant: 'default' | 'action' | 'text' | 'link' | 'inherit' | ({} & string);\n}\n\nexport const BUTTON_OPTIONS = new InjectionToken<ButtonOptions>(\n ngDevMode ? 'BUTTON_OPTIONS' : '',\n {\n factory: () => {\n return {\n role: 'button',\n size: 'md',\n variant: 'default',\n }\n }\n }\n);\n","import {\n afterRenderEffect,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n inject,\n input,\n numberAttribute,\n signal,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { BUTTON_OPTIONS, ButtonOptions } from './button.options';\n\n\n@Component({\n exportAs: 'latButton',\n selector: 'lat-button, a[latButton],button[latButton]',\n templateUrl: './button.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.role]': 'role()',\n '[attr.size]': 'size()',\n '[attr.variant]': 'variant()',\n '[attr.icononly]': 'icononly()',\n '[attr.tabindex]': `disabled() ? -1 : tabindex()`\n }\n})\nexport class ButtonComponent {\n readonly button = inject(ElementRef<HTMLElement>);\n readonly options = inject(BUTTON_OPTIONS);\n\n readonly role = input<ButtonOptions['role']>(this.options.role);\n readonly size = input<ButtonOptions['size']>(this.options.size);\n readonly variant = input<ButtonOptions['variant']>(this.options.variant);\n readonly disabled = input<boolean, unknown>(false, { transform: booleanAttribute });\n readonly tabindex = input<number, unknown>(undefined, { transform: numberAttribute });\n\n readonly icononly = signal<boolean>(false);\n\n constructor() {\n this._setUpPolyfill();\n this._setUpListener();\n }\n\n // Need to find icon without another DOM node (Polyfill pseudo :has)\n _setUpPolyfill(): void {\n const nativeElement = this.button.nativeElement;\n\n afterRenderEffect(() => {\n const childNodes = nativeElement.childNodes;\n\n if (childNodes.length === 1) {\n const node = childNodes.item(0);\n\n this.icononly.update(() => {\n if (node instanceof HTMLElement) {\n return node.tagName === 'LAT-ICON' || node.tagName === 'SVG' || node.role === 'img';\n }\n\n return false;\n });\n }\n });\n }\n\n // https://github.com/angular/angular/issues/9587\n _setUpListener(): void {\n const nativeElement = this.button.nativeElement;\n\n const clickFn = (event: MouseEvent) => {\n if (this.disabled()) {\n event.stopImmediatePropagation();\n event.preventDefault();\n }\n };\n\n const keyupFn = (event: KeyboardEvent) => {\n if (event.code === 'Space' && !this.disabled()) {\n const click = new MouseEvent('click', { ...event });\n\n nativeElement.dispatchEvent(click);\n\n event.stopImmediatePropagation();\n event.preventDefault();\n }\n };\n\n nativeElement.addEventListener('click', clickFn);\n nativeElement.addEventListener('keyup', keyupFn);\n\n inject(DestroyRef).onDestroy(() => {\n nativeElement.removeEventListener('click', clickFn);\n nativeElement.removeEventListener('keyup', keyupFn);\n });\n }\n}\n","<ng-content />\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,35 +1,35 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { forwardRef, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
- import { BuildInInputValueAccessor } from '@latitude-ui/widgets/input';
3
+ import { HTMLInputDirective } from '@latitude-ui/widgets/input';
4
4
  import { IconComponent } from '@latitude-ui/widgets/icons';
5
5
 
6
- class CheckBoxComponent extends BuildInInputValueAccessor {
6
+ class CheckBoxComponent extends HTMLInputDirective {
7
7
  toggle() {
8
8
  if (!this.disabled()) {
9
9
  const value = this.value() ?? false;
10
10
  this.writeValue(!value);
11
11
  }
12
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: [
13
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: CheckBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
14
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.3", type: CheckBoxComponent, isStandalone: true, selector: "lat-checkbox", host: { listeners: { "click": "toggle()" } }, providers: [
15
15
  {
16
- provide: BuildInInputValueAccessor,
16
+ provide: HTMLInputDirective,
17
17
  useExisting: forwardRef(() => CheckBoxComponent),
18
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 });
19
+ ], exportAs: ["latCheckBox"], usesInheritance: true, ngImport: i0, template: "<button\n type=\"button\"\n role=\"checkbox\"\n [attr.id]=\"inputId()\"\n [attr.value]=\"value() ? 'on' : 'off'\"\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\n [attr.disabled]=\"disabled() || undefined\"\n [attr.aria-checked]=\"value() || false\"\n>\n <lat-icon name=\"check\" />\n</button>\n<ng-content/>\n", dependencies: [{ kind: "component", type: IconComponent, selector: "lat-icon", inputs: ["url", "name"], exportAs: ["latIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: CheckBoxComponent, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: CheckBoxComponent, decorators: [{
22
22
  type: Component,
23
23
  args: [{ imports: [
24
24
  IconComponent
25
25
  ], exportAs: 'latCheckBox', selector: 'lat-checkbox', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
26
26
  {
27
- provide: BuildInInputValueAccessor,
27
+ provide: HTMLInputDirective,
28
28
  useExisting: forwardRef(() => CheckBoxComponent),
29
29
  },
30
30
  ], host: {
31
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" }]
32
+ }, template: "<button\n type=\"button\"\n role=\"checkbox\"\n [attr.id]=\"inputId()\"\n [attr.value]=\"value() ? 'on' : 'off'\"\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\n [attr.disabled]=\"disabled() || undefined\"\n [attr.aria-checked]=\"value() || false\"\n>\n <lat-icon name=\"check\" />\n</button>\n<ng-content/>\n" }]
33
33
  }] });
34
34
 
35
35
  /**
@@ -1 +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;;;;"}
1
+ {"version":3,"file":"latitude-ui-widgets-checkbox.mjs","sources":["../../../../packages/widgets/checkbox/lib/checkbox.component.ts","../../../../packages/widgets/checkbox/lib/checkbox.component.html","../../../../packages/widgets/checkbox/latitude-ui-widgets-checkbox.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';\nimport { HTMLInputDirective } from '@latitude-ui/widgets/input';\nimport { IconComponent } from '@latitude-ui/widgets/icons';\n\n@Component({\n imports: [\n IconComponent\n ],\n exportAs: 'latCheckBox',\n selector: 'lat-checkbox',\n templateUrl: './checkbox.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: HTMLInputDirective,\n useExisting: forwardRef(() => CheckBoxComponent),\n },\n ],\n host: {\n '(click)': 'toggle()',\n },\n})\nexport class CheckBoxComponent extends HTMLInputDirective<boolean> {\n toggle() {\n if (!this.disabled()) {\n const value = this.value() ?? false;\n\n this.writeValue(!value);\n }\n }\n}\n","<button\n type=\"button\"\n role=\"checkbox\"\n [attr.id]=\"inputId()\"\n [attr.value]=\"value() ? 'on' : 'off'\"\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\n [attr.disabled]=\"disabled() || undefined\"\n [attr.aria-checked]=\"value() || false\"\n>\n <lat-icon name=\"check\" />\n</button>\n<ng-content/>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAuBM,MAAO,iBAAkB,SAAQ,kBAA2B,CAAA;IAChE,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK;AAEnC,YAAA,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;QACzB;IACF;uGAPW,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAVjB;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AACjD,aAAA;SACF,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBH,oUAYA,4CDNI,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAiBJ,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAnB7B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA;wBACP;qBACD,EAAA,QAAA,EACS,aAAa,EAAA,QAAA,EACb,cAAc,EAAA,aAAA,EAET,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB,CAAC;AACjD,yBAAA;qBACF,EAAA,IAAA,EACK;AACJ,wBAAA,SAAS,EAAE,UAAU;AACtB,qBAAA,EAAA,QAAA,EAAA,oUAAA,EAAA;;;AErBH;;AAEG;;;;"}
@@ -1,116 +1,22 @@
1
- import { Subject, debounceTime, startWith } 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';
1
+ import { InjectionToken } from '@angular/core';
4
2
 
5
- const LAYOUT_DIMENSIONS = new InjectionToken('LAYOUT_DIMENSIONS', {
6
- providedIn: 'root',
3
+ const LAT_ASSETS_PATH = new InjectionToken(ngDevMode ? 'LAT_ASSETS_PATH' : '', {
7
4
  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(debounceTime(66), startWith(null)).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
- },
5
+ return 'assets/latlng';
6
+ }
57
7
  });
58
8
 
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
- };
9
+ function noop() {
10
+ //
92
11
  }
93
12
 
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 });
13
+ function uid() {
14
+ return `${Math.random().toString(36).slice(2, 11)}`;
98
15
  }
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
16
 
111
17
  /**
112
18
  * Generated bundle index. Do not edit.
113
19
  */
114
20
 
115
- export { DIMENSIONS, LAYOUT_DIMENSIONS, RootDirective, SCROLLBAR_DIMENSIONS, illegallySetComponentInput, listenMouseEvent };
21
+ export { LAT_ASSETS_PATH, noop, uid };
116
22
  //# sourceMappingURL=latitude-ui-widgets-core.mjs.map
@@ -1 +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(debounceTime(66), startWith(null)).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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGltZW5zaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvY29yZS9zcmMvZGltZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRTtJQUN2RSxVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXpGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekIsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekIsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztZQUNwQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDO1lBRXpDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzdELEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNsQyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQztZQUVILFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBRUQsT0FBTztZQUNMLEtBQUssRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFO1NBQzVCLENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQUMsc0JBQXNCLEVBQUU7SUFDN0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV6RixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFN0IsTUFBTSxTQUFTLEdBQUcsR0FBRyxFQUFFO1lBR3JCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFMUMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQTZCLENBQUM7WUFFaEQsS0FBSyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7WUFDMUIsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7WUFDNUIsS0FBSyxDQUFDLGVBQWUsR0FBRyxXQUFXLENBQUM7WUFFcEMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBRXpDLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFakQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO1lBRXZELFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUV6QyxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFbEYsT0FBTyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDakMsQ0FBQztDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGNBQWMsQ0FBQyxZQUFZLEVBQUU7SUFDekQsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE9BQU87WUFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1lBQ2pDLFNBQVMsRUFBRSxNQUFNLENBQUMsb0JBQW9CLENBQUM7U0FDeEMsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHN0YXJ0V2l0aCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Jbml0U3RhdHVzLCBET0NVTUVOVCwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgUmVuZGVyZXJGYWN0b3J5Miwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBMQVlPVVRfRElNRU5TSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbignTEFZT1VUX0RJTUVOU0lPTlMnLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIGNvbnN0IGRvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcbiAgICBjb25zdCByZW5kZXJlciA9IGluamVjdChSZW5kZXJlckZhY3RvcnkyKS5jcmVhdGVSZW5kZXJlcihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIG51bGwpO1xuXG4gICAgY29uc3Qgd2lkdGggPSBzaWduYWwoMCk7XG4gICAgY29uc3QgaGVpZ2h0ID0gc2lnbmFsKDApO1xuXG4gICAgaWYgKGRvY3VtZW50LmRlZmF1bHRWaWV3KSB7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAgIGNvbnN0IGRlZmF1bHRWaWV3ID0gZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG5cbiAgICAgIHN1YmplY3QucGlwZShkZWJvdW5jZVRpbWUoNjYpLCBzdGFydFdpdGgobnVsbCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHdpZHRoLnNldChkZWZhdWx0Vmlldy5pbm5lcldpZHRoKTtcbiAgICAgICAgaGVpZ2h0LnNldChkZWZhdWx0Vmlldy5pbm5lckhlaWdodCk7XG4gICAgICB9KTtcblxuICAgICAgcmVuZGVyZXIubGlzdGVuKGRlZmF1bHRWaWV3LCAncmVzaXplJywgKCkgPT4gc3ViamVjdC5uZXh0KHZvaWQgMCkpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB3aWR0aDogd2lkdGguYXNSZWFkb25seSgpLFxuICAgICAgaGVpZ2h0OiBoZWlnaHQuYXNSZWFkb25seSgpLFxuICAgIH07XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IFNDUk9MTEJBUl9ESU1FTlNJT05TID0gbmV3IEluamVjdGlvblRva2VuKCdTQ1JPTExCQVJfRElNRU5TSU9OUycsIHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICBmYWN0b3J5OiAoKSA9PiB7XG4gICAgY29uc3QgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICAgIGNvbnN0IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyRmFjdG9yeTIpLmNyZWF0ZVJlbmRlcmVyKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgbnVsbCk7XG5cbiAgICBjb25zdCBkaW1lbnNpb25zID0gc2lnbmFsKDApO1xuXG4gICAgY29uc3QgY2FsY3VsYXRlID0gKCkgPT4ge1xuICAgICAgdHlwZSBfQ1NTU3R5bGVEZWNsYXJhdGlvbiA9IENTU1N0eWxlRGVjbGFyYXRpb24gJiB7IG1zT3ZlcmZsb3dTdHlsZTogc3RyaW5nIH07XG5cbiAgICAgIGNvbnN0IGRpdiA9IHJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuXG4gICAgICBjb25zdCBzdHlsZSA9IGRpdi5zdHlsZSBhcyBfQ1NTU3R5bGVEZWNsYXJhdGlvbjtcblxuICAgICAgc3R5bGUub3ZlcmZsb3cgPSAnc2Nyb2xsJztcbiAgICAgIHN0eWxlLnZpc2liaWxpdHkgPSAnaGlkZGVuJztcbiAgICAgIHN0eWxlLm1zT3ZlcmZsb3dTdHlsZSA9ICdzY3JvbGxiYXInO1xuXG4gICAgICByZW5kZXJlci5hcHBlbmRDaGlsZChkb2N1bWVudC5ib2R5LCBkaXYpO1xuXG4gICAgICBjb25zdCBzY3JvbGxhYmxlID0gcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cbiAgICAgIGNvbnN0IHdpZHRoID0gZGl2Lm9mZnNldFdpZHRoIC0gc2Nyb2xsYWJsZS5vZmZzZXRXaWR0aDtcblxuICAgICAgcmVuZGVyZXIucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuYm9keSwgZGl2KTtcblxuICAgICAgcmV0dXJuIHdpZHRoO1xuICAgIH07XG5cbiAgICBpbmplY3QoQXBwbGljYXRpb25Jbml0U3RhdHVzKS5kb25lUHJvbWlzZS50aGVuKCgpID0+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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"}
1
+ {"version":3,"file":"latitude-ui-widgets-core.mjs","sources":["../../../../packages/widgets/core/lib/assets.ts","../../../../packages/widgets/core/lib/noop.ts","../../../../packages/widgets/core/lib/uid.ts","../../../../packages/widgets/core/latitude-ui-widgets-core.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\n\r\nexport const LAT_ASSETS_PATH = new InjectionToken(\r\n ngDevMode ? 'LAT_ASSETS_PATH' : '',\r\n {\r\n factory: () => {\r\n return 'assets/latlng';\r\n }\r\n }\r\n);\r\n","\r\n\r\nexport function noop() {\r\n //\r\n}\r\n","export function uid(): string {\r\n return `${Math.random().toString(36).slice(2, 11)}`;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAGO,MAAM,eAAe,GAAG,IAAI,cAAc,CAC/C,SAAS,GAAG,iBAAiB,GAAG,EAAE,EAClC;IACE,OAAO,EAAE,MAAK;AACZ,QAAA,OAAO,eAAe;IACxB;AACD,CAAA;;SCPa,IAAI,GAAA;;AAEpB;;SCJgB,GAAG,GAAA;AACjB,IAAA,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;AACrD;;ACFA;;AAEG;;;;"}
@@ -1,118 +1,40 @@
1
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';
2
+ import { InjectionToken, inject, input, computed, ChangeDetectionStrategy, ViewEncapsulation, Component } from '@angular/core';
3
+ import { LAT_ASSETS_PATH } from '@latitude-ui/widgets/core';
6
4
 
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',
5
+ const LAT_ICON_RESOLVER = new InjectionToken(ngDevMode ? 'LAT_ICON_RESOLVER' : '', {
20
6
  factory: () => {
21
- return computed(() => !CSS.supports('mask', 'var(--lat-icon-url) no-repeat center / contain'));
7
+ const assets = inject(LAT_ASSETS_PATH);
8
+ return (name) => `${assets}/icons/${name}.svg`;
22
9
  },
23
10
  });
24
11
 
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
12
  class IconComponent {
83
- resolve = inject(ICONS_RESOLVER);
84
- polyfill = inject(ICONS_POLYFILL);
85
- url = input();
86
- name = input();
87
- icon = computed(() => {
13
+ iconFn = inject(LAT_ICON_RESOLVER);
14
+ url = input(...(ngDevMode ? [undefined, { debugName: "url" }] : []));
15
+ name = input(...(ngDevMode ? [undefined, { debugName: "name" }] : []));
16
+ iconmask = computed(() => {
88
17
  const url = this.url();
89
18
  if (url) {
90
- return url;
19
+ return `url(${url})`;
91
20
  }
92
21
  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 });
22
+ return name ? `url(${this.iconFn(name)})` : '';
23
+ }, ...(ngDevMode ? [{ debugName: "iconmask" }] : []));
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.1.3", 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: { "style.--lat-iconmask": "iconmask()" } }, exportAs: ["latIcon"], ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
102
26
  }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.6", ngImport: i0, type: IconComponent, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: IconComponent, decorators: [{
104
28
  type: Component,
105
29
  args: [{ exportAs: 'latIcon', selector: 'lat-icon', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
106
30
  role: 'img',
107
- '[attr.aria-label]': 'name()',
108
- '[attr.data-polyfill]': 'polyfill() || undefined',
109
- '[style.--lat-icon-url]': '`url(${icon()})`',
31
+ '[style.--lat-iconmask]': 'iconmask()'
110
32
  }, template: "" }]
111
- }], ctorParameters: () => [] });
33
+ }], propDecorators: { url: [{ type: i0.Input, args: [{ isSignal: true, alias: "url", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }] } });
112
34
 
113
35
  /**
114
36
  * Generated bundle index. Do not edit.
115
37
  */
116
38
 
117
- export { ICONS_ASSETS, ICONS_POLYFILL, ICONS_RESOLVER, IconComponent };
39
+ export { IconComponent, LAT_ICON_RESOLVER };
118
40
  //# sourceMappingURL=latitude-ui-widgets-icons.mjs.map