@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.
- package/button/README.md +3 -3
- package/checkbox/README.md +3 -0
- package/core/README.md +3 -3
- package/fesm2022/latitude-ui-widgets-button.mjs +63 -28
- package/fesm2022/latitude-ui-widgets-button.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-checkbox.mjs +9 -9
- package/fesm2022/latitude-ui-widgets-checkbox.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-core.mjs +9 -103
- package/fesm2022/latitude-ui-widgets-core.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-icons.mjs +18 -96
- package/fesm2022/latitude-ui-widgets-icons.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-input.mjs +113 -118
- package/fesm2022/latitude-ui-widgets-input.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-listbox.mjs +28 -36
- package/fesm2022/latitude-ui-widgets-listbox.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-scrollable.mjs +102 -0
- package/fesm2022/latitude-ui-widgets-scrollable.mjs.map +1 -0
- package/fesm2022/latitude-ui-widgets-select.mjs +79 -90
- package/fesm2022/latitude-ui-widgets-select.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-switch.mjs +9 -9
- package/fesm2022/latitude-ui-widgets-switch.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-tabs.mjs +83 -0
- package/fesm2022/latitude-ui-widgets-tabs.mjs.map +1 -0
- package/fesm2022/latitude-ui-widgets-textbox.mjs +309 -23
- package/fesm2022/latitude-ui-widgets-textbox.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets-toolbar.mjs +55 -9
- package/fesm2022/latitude-ui-widgets-toolbar.mjs.map +1 -1
- package/fesm2022/latitude-ui-widgets.mjs.map +1 -1
- package/icons/README.md +3 -0
- package/input/README.md +3 -3
- package/listbox/README.md +3 -0
- package/package.json +29 -40
- package/scrollable/README.md +3 -0
- package/select/README.md +3 -0
- package/switch/README.md +3 -0
- package/tabs/README.md +3 -0
- package/textbox/README.md +3 -0
- package/toolbar/README.md +3 -0
- package/types/latitude-ui-widgets-button.d.ts +30 -0
- package/{checkbox/index.d.ts → types/latitude-ui-widgets-checkbox.d.ts} +2 -2
- package/types/latitude-ui-widgets-core.d.ts +12 -0
- package/{icons/index.d.ts → types/latitude-ui-widgets-icons.d.ts} +4 -8
- package/{input/index.d.ts → types/latitude-ui-widgets-input.d.ts} +43 -41
- package/types/latitude-ui-widgets-listbox.d.ts +20 -0
- package/types/latitude-ui-widgets-scrollable.d.ts +24 -0
- package/{select/index.d.ts → types/latitude-ui-widgets-select.d.ts} +3 -5
- package/{switch/index.d.ts → types/latitude-ui-widgets-switch.d.ts} +2 -2
- package/types/latitude-ui-widgets-tabs.d.ts +46 -0
- package/types/latitude-ui-widgets-textbox.d.ts +107 -0
- package/types/latitude-ui-widgets-toolbar.d.ts +24 -0
- package/button/index.d.ts +0 -19
- package/core/index.d.ts +0 -39
- package/fesm2022/latitude-ui-widgets-textbox-number.mjs +0 -168
- package/fesm2022/latitude-ui-widgets-textbox-number.mjs.map +0 -1
- package/listbox/index.d.ts +0 -23
- package/styles/_colors.scss +0 -99
- package/styles/_defaults.scss +0 -135
- package/styles/_index.scss +0 -11
- package/styles/_typography.scss +0 -37
- package/styles/button/_index.scss +0 -199
- package/styles/forms/_index.scss +0 -888
- package/styles/icons/_index.scss +0 -34
- package/styles/list/_index.scss +0 -0
- package/styles/listbox/_index.scss +0 -30
- package/textbox/index.d.ts +0 -26
- package/textbox-number/index.d.ts +0 -44
- package/toolbar/index.d.ts +0 -8
- /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`.
|
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,
|
|
3
|
-
|
|
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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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 =
|
|
31
|
+
const childNodes = nativeElement.childNodes;
|
|
19
32
|
if (childNodes.length === 1) {
|
|
20
33
|
const node = childNodes.item(0);
|
|
21
|
-
this.
|
|
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
|
-
|
|
31
|
-
|
|
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: "
|
|
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: '
|
|
37
|
-
'[attr.
|
|
38
|
-
'[attr.
|
|
39
|
-
'[attr.
|
|
40
|
-
'[attr.
|
|
41
|
-
|
|
42
|
-
|
|
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 {
|
|
3
|
+
import { HTMLInputDirective } from '@latitude-ui/widgets/input';
|
|
4
4
|
import { IconComponent } from '@latitude-ui/widgets/icons';
|
|
5
5
|
|
|
6
|
-
class CheckBoxComponent extends
|
|
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: "
|
|
14
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
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:
|
|
16
|
+
provide: HTMLInputDirective,
|
|
17
17
|
useExisting: forwardRef(() => CheckBoxComponent),
|
|
18
18
|
},
|
|
19
|
-
], exportAs: ["latCheckBox"], usesInheritance: true, ngImport: i0, template: "<button\
|
|
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: "
|
|
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:
|
|
27
|
+
provide: HTMLInputDirective,
|
|
28
28
|
useExisting: forwardRef(() => CheckBoxComponent),
|
|
29
29
|
},
|
|
30
30
|
], host: {
|
|
31
31
|
'(click)': 'toggle()',
|
|
32
|
-
}, template: "<button\
|
|
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":["
|
|
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 {
|
|
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
|
|
6
|
-
providedIn: 'root',
|
|
3
|
+
const LAT_ASSETS_PATH = new InjectionToken(ngDevMode ? 'LAT_ASSETS_PATH' : '', {
|
|
7
4
|
factory: () => {
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
60
|
-
|
|
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
|
-
|
|
95
|
-
|
|
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 {
|
|
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,
|
|
3
|
-
import {
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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.
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
|
|
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: "
|
|
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
|
-
'[
|
|
108
|
-
'[attr.data-polyfill]': 'polyfill() || undefined',
|
|
109
|
-
'[style.--lat-icon-url]': '`url(${icon()})`',
|
|
31
|
+
'[style.--lat-iconmask]': 'iconmask()'
|
|
110
32
|
}, template: "" }]
|
|
111
|
-
}],
|
|
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 {
|
|
39
|
+
export { IconComponent, LAT_ICON_RESOLVER };
|
|
118
40
|
//# sourceMappingURL=latitude-ui-widgets-icons.mjs.map
|