@latitude-ui/widgets 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -0
- package/button/README.md +3 -0
- package/button/latitude-ui-widgets-button.d.ts +5 -0
- package/button/public-api.d.ts +2 -0
- package/button/src/button.component.d.ts +14 -0
- package/button/src/button.types.d.ts +2 -0
- package/checkbox/latitude-ui-widgets-checkbox.d.ts +5 -0
- package/checkbox/public-api.d.ts +1 -0
- package/checkbox/src/checkbox.component.d.ts +7 -0
- package/combobox/latitude-ui-widgets-combobox.d.ts +5 -0
- package/combobox/public-api.d.ts +2 -0
- package/core/README.md +3 -0
- package/core/latitude-ui-widgets-core.d.ts +5 -0
- package/core/public-api.d.ts +4 -0
- package/core/src/illegal.d.ts +2 -0
- package/core/src/listeners.d.ts +8 -0
- package/core/src/noop.d.ts +1 -0
- package/core/src/uid.d.ts +1 -0
- package/esm2022/button/latitude-ui-widgets-button.js +5 -0
- package/esm2022/button/public-api.js +3 -0
- package/esm2022/button/src/button.component.js +44 -0
- package/esm2022/button/src/button.types.js +1 -0
- package/esm2022/checkbox/latitude-ui-widgets-checkbox.js +5 -0
- package/esm2022/checkbox/public-api.js +2 -0
- package/esm2022/checkbox/src/checkbox.component.js +33 -0
- package/esm2022/combobox/latitude-ui-widgets-combobox.js +5 -0
- package/esm2022/combobox/public-api.js +2 -0
- package/esm2022/core/latitude-ui-widgets-core.js +5 -0
- package/esm2022/core/public-api.js +5 -0
- package/esm2022/core/src/illegal.js +5 -0
- package/esm2022/core/src/listeners.js +32 -0
- package/esm2022/core/src/noop.js +3 -0
- package/esm2022/core/src/uid.js +4 -0
- package/esm2022/icons/latitude-ui-widgets-icons.js +5 -0
- package/esm2022/icons/public-api.js +3 -0
- package/esm2022/icons/src/icon.component.js +27 -0
- package/esm2022/icons/src/icon.tokens.js +13 -0
- package/esm2022/input/latitude-ui-widgets-input.js +5 -0
- package/esm2022/input/public-api.js +5 -0
- package/esm2022/input/src/input-error/i18n/en.js +9 -0
- package/esm2022/input/src/input-error/i18n/ru.js +9 -0
- package/esm2022/input/src/input-error/input-error.component.js +22 -0
- package/esm2022/input/src/input-error/input-error.i18n.js +65 -0
- package/esm2022/input/src/input-label/input-label.component.js +20 -0
- package/esm2022/input/src/input.component.js +44 -0
- package/esm2022/input/src/input.directive.js +115 -0
- package/esm2022/input/src/input.types.js +1 -0
- package/esm2022/latitude-ui-widgets.js +5 -0
- package/esm2022/listbox/latitude-ui-widgets-listbox.js +5 -0
- package/esm2022/listbox/public-api.js +3 -0
- package/esm2022/listbox/src/listbox-option.component.js +49 -0
- package/esm2022/listbox/src/listbox.component.js +14 -0
- package/esm2022/public-api.js +2 -0
- package/esm2022/select/latitude-ui-widgets-select.js +5 -0
- package/esm2022/select/public-api.js +6 -0
- package/esm2022/select/src/select-multiple.component.js +53 -0
- package/esm2022/select/src/select-option.component.js +14 -0
- package/esm2022/select/src/select-single.component.js +59 -0
- package/esm2022/select/src/select-trigger.component.js +28 -0
- package/esm2022/select/src/select-value.component.js +13 -0
- package/esm2022/select/src/select.component.js +44 -0
- package/esm2022/select/src/select.directive.js +93 -0
- package/esm2022/switch/latitude-ui-widgets-switch.js +5 -0
- package/esm2022/switch/public-api.js +2 -0
- package/esm2022/switch/src/switch.component.js +30 -0
- package/esm2022/textarea/latitude-ui-widgets-textarea.js +5 -0
- package/esm2022/textarea/public-api.js +2 -0
- package/esm2022/textarea/src/textarea.component.js +37 -0
- package/esm2022/textbox/latitude-ui-widgets-textbox.js +5 -0
- package/esm2022/textbox/public-api.js +2 -0
- package/esm2022/textbox/src/textbox.component.js +33 -0
- package/esm2022/textbox-number/latitude-ui-widgets-textbox-number.js +5 -0
- package/esm2022/textbox-number/public-api.js +2 -0
- package/esm2022/textbox-number/src/spinners.component.js +22 -0
- package/esm2022/textbox-number/src/textbox-number.component.js +136 -0
- package/icons/latitude-ui-widgets-icons.d.ts +5 -0
- package/icons/public-api.d.ts +2 -0
- package/icons/src/icon.component.d.ts +9 -0
- package/icons/src/icon.tokens.d.ts +3 -0
- package/input/README.md +3 -0
- package/input/latitude-ui-widgets-input.d.ts +5 -0
- package/input/public-api.d.ts +4 -0
- package/input/src/input-error/i18n/en.d.ts +9 -0
- package/input/src/input-error/i18n/ru.d.ts +9 -0
- package/input/src/input-error/input-error.component.d.ts +9 -0
- package/input/src/input-error/input-error.i18n.d.ts +28 -0
- package/input/src/input-label/input-label.component.d.ts +11 -0
- package/input/src/input.component.d.ts +28 -0
- package/input/src/input.directive.d.ts +61 -0
- package/input/src/input.types.d.ts +1 -0
- package/latitude-ui-widgets.d.ts +5 -0
- package/listbox/latitude-ui-widgets-listbox.d.ts +5 -0
- package/listbox/public-api.d.ts +2 -0
- package/listbox/src/listbox-option.component.d.ts +17 -0
- package/listbox/src/listbox.component.d.ts +5 -0
- package/package.json +89 -0
- package/public-api.d.ts +2 -0
- package/select/latitude-ui-widgets-select.d.ts +5 -0
- package/select/public-api.d.ts +5 -0
- package/select/src/select-multiple.component.d.ts +10 -0
- package/select/src/select-option.component.d.ts +18 -0
- package/select/src/select-single.component.d.ts +10 -0
- package/select/src/select-trigger.component.d.ts +9 -0
- package/select/src/select-value.component.d.ts +7 -0
- package/select/src/select.component.d.ts +13 -0
- package/select/src/select.directive.d.ts +19 -0
- package/styles/_index.scss +11 -0
- package/switch/latitude-ui-widgets-switch.d.ts +5 -0
- package/switch/public-api.d.ts +1 -0
- package/switch/src/switch.component.d.ts +7 -0
- package/textarea/latitude-ui-widgets-textarea.d.ts +5 -0
- package/textarea/public-api.d.ts +1 -0
- package/textarea/src/textarea.component.d.ts +15 -0
- package/textbox/latitude-ui-widgets-textbox.d.ts +5 -0
- package/textbox/public-api.d.ts +1 -0
- package/textbox/src/textbox.component.d.ts +13 -0
- package/textbox-number/latitude-ui-widgets-textbox-number.d.ts +5 -0
- package/textbox-number/public-api.d.ts +1 -0
- package/textbox-number/src/spinners.component.d.ts +8 -0
- package/textbox-number/src/textbox-number.component.d.ts +37 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, contentChildren, effect, inject, input, linkedSignal, signal, untracked, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { SelectOptionComponent } from './select-option.component';
|
|
3
|
+
import { SelectDirective } from './select.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "./select.directive";
|
|
6
|
+
export class SelectComponent {
|
|
7
|
+
dir = inject((SelectDirective), { self: true });
|
|
8
|
+
placeholder = input();
|
|
9
|
+
options = contentChildren((SelectOptionComponent));
|
|
10
|
+
constructor() {
|
|
11
|
+
effect(() => {
|
|
12
|
+
const options = this.options();
|
|
13
|
+
untracked(() => {
|
|
14
|
+
this.dir.options.update(() => {
|
|
15
|
+
return options.map((option, index) => {
|
|
16
|
+
return {
|
|
17
|
+
value: linkedSignal(() => option.value()),
|
|
18
|
+
label: linkedSignal(() => option.label()),
|
|
19
|
+
disabled: linkedSignal(() => option.disabled()),
|
|
20
|
+
hidden: signal(false),
|
|
21
|
+
setsize: signal(options.length),
|
|
22
|
+
posinset: signal(index),
|
|
23
|
+
selected: signal(false),
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.4", type: SelectComponent, isStandalone: true, selector: "lat-select", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "options", predicate: (SelectOptionComponent), isSignal: true }], exportAs: ["latSelect"], hostDirectives: [{ directive: i1.SelectDirective }], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
32
|
+
}
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectComponent, decorators: [{
|
|
34
|
+
type: Component,
|
|
35
|
+
args: [{
|
|
36
|
+
exportAs: 'latSelect',
|
|
37
|
+
selector: 'lat-select',
|
|
38
|
+
template: '',
|
|
39
|
+
encapsulation: ViewEncapsulation.None,
|
|
40
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
41
|
+
hostDirectives: [SelectDirective],
|
|
42
|
+
}]
|
|
43
|
+
}], ctorParameters: () => [] });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvc2VsZWN0L3NyYy9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULGVBQWUsRUFDZixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxZQUFZLEVBQ1osTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBVXJELE1BQU0sT0FBZ0IsZUFBZTtJQUNuQixHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUEsZUFBdUIsQ0FBQSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFdEQsV0FBVyxHQUFHLEtBQUssRUFBVSxDQUFDO0lBRTlCLE9BQU8sR0FBRyxlQUFlLENBQUMsQ0FBQSxxQkFBaUMsQ0FBQSxDQUFDLENBQUM7SUFFN0U7UUFDRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRS9CLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDM0IsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO3dCQUNuQyxPQUFPOzRCQUNMLEtBQUssRUFBRSxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDOzRCQUN6QyxLQUFLLEVBQUUsWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQzs0QkFDekMsUUFBUSxFQUFFLFlBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7NEJBQy9DLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDOzRCQUNyQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7NEJBQy9CLFFBQVEsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDOzRCQUN2QixRQUFRLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQzt5QkFDTCxDQUFDO29CQUN2QixDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQTNCbUIsZUFBZTsyRkFBZixlQUFlLG9QQUtPLENBQUEscUJBQWlDLENBQUEsMkhBVmpFLEVBQUU7OzJGQUtRLGVBQWU7a0JBUnBDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixRQUFRLEVBQUUsRUFBRTtvQkFDWixhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGNBQWMsRUFBRSxDQUFDLGVBQWUsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb250ZW50Q2hpbGRyZW4sXG4gIGVmZmVjdCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbGlua2VkU2lnbmFsLFxuICBzaWduYWwsXG4gIHVudHJhY2tlZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTZWxlY3RPcHRpb24sIFNlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi9zZWxlY3QuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAnbGF0U2VsZWN0JyxcbiAgc2VsZWN0b3I6ICdsYXQtc2VsZWN0JyxcbiAgdGVtcGxhdGU6ICcnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdERpcmVjdGl2ZXM6IFtTZWxlY3REaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTZWxlY3RDb21wb25lbnQ8VCwgVFZhbHVlPiB7XG4gIHB1YmxpYyByZWFkb25seSBkaXIgPSBpbmplY3QoU2VsZWN0RGlyZWN0aXZlPFRWYWx1ZT4sIHsgc2VsZjogdHJ1ZSB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG9wdGlvbnMgPSBjb250ZW50Q2hpbGRyZW4oU2VsZWN0T3B0aW9uQ29tcG9uZW50PFRba2V5b2YgVF0+KTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoKTtcblxuICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgdGhpcy5kaXIub3B0aW9ucy51cGRhdGUoKCkgPT4ge1xuICAgICAgICAgIHJldHVybiBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgdmFsdWU6IGxpbmtlZFNpZ25hbCgoKSA9PiBvcHRpb24udmFsdWUoKSksXG4gICAgICAgICAgICAgIGxhYmVsOiBsaW5rZWRTaWduYWwoKCkgPT4gb3B0aW9uLmxhYmVsKCkpLFxuICAgICAgICAgICAgICBkaXNhYmxlZDogbGlua2VkU2lnbmFsKCgpID0+IG9wdGlvbi5kaXNhYmxlZCgpKSxcbiAgICAgICAgICAgICAgaGlkZGVuOiBzaWduYWwoZmFsc2UpLFxuICAgICAgICAgICAgICBzZXRzaXplOiBzaWduYWwob3B0aW9ucy5sZW5ndGgpLFxuICAgICAgICAgICAgICBwb3NpbnNldDogc2lnbmFsKGluZGV4KSxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHNpZ25hbChmYWxzZSksXG4gICAgICAgICAgICB9IGFzIFNlbGVjdE9wdGlvbjxUPjtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBoYW5kbGVTZWxlY3RPcHRpb24ob3B0aW9uOiBTZWxlY3RPcHRpb248VD4pOiB2b2lkO1xufVxuXG5cblxuXG4iXX0=
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { delay, of, switchMap } from 'rxjs';
|
|
2
|
+
import { computed, Directive, forwardRef, signal } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { BuildInInputValueAccessor } from '@latitude-ui/widgets/input';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class SelectDirective extends BuildInInputValueAccessor {
|
|
7
|
+
options = signal([]);
|
|
8
|
+
indexes = computed(() => {
|
|
9
|
+
const options = this.options();
|
|
10
|
+
return new Map(options.map((option) => [option.value(), option]));
|
|
11
|
+
});
|
|
12
|
+
overlayWidth = signal(0);
|
|
13
|
+
overlayState = signal(false);
|
|
14
|
+
overlayPositions = signal([
|
|
15
|
+
{
|
|
16
|
+
originX: 'start',
|
|
17
|
+
originY: 'bottom',
|
|
18
|
+
overlayX: 'start',
|
|
19
|
+
overlayY: 'top',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
originX: 'end',
|
|
23
|
+
originY: 'bottom',
|
|
24
|
+
overlayX: 'end',
|
|
25
|
+
overlayY: 'top',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
originX: 'start',
|
|
29
|
+
originY: 'top',
|
|
30
|
+
overlayX: 'start',
|
|
31
|
+
overlayY: 'bottom',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
originX: 'end',
|
|
35
|
+
originY: 'top',
|
|
36
|
+
overlayX: 'end',
|
|
37
|
+
overlayY: 'bottom',
|
|
38
|
+
},
|
|
39
|
+
]);
|
|
40
|
+
overlayPositionSide = signal('bottom');
|
|
41
|
+
overlayExpanded = toSignal(toObservable(this.overlayState).pipe(switchMap((state) => {
|
|
42
|
+
return state ? of(state) : of(state).pipe(delay(100));
|
|
43
|
+
}), takeUntilDestroyed()), { initialValue: false });
|
|
44
|
+
hide() {
|
|
45
|
+
if (!this.overlayState()) {
|
|
46
|
+
return void 0;
|
|
47
|
+
}
|
|
48
|
+
this.overlayState.set(false);
|
|
49
|
+
this.markAsTouched();
|
|
50
|
+
}
|
|
51
|
+
open() {
|
|
52
|
+
if (this.overlayState() || this.disabled() || this.options().length === 0) {
|
|
53
|
+
return void 0;
|
|
54
|
+
}
|
|
55
|
+
this.overlayState.set(true);
|
|
56
|
+
}
|
|
57
|
+
toggle() {
|
|
58
|
+
if (this.overlayState()) {
|
|
59
|
+
this.hide();
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.open();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
updateOverlayPositionSide({ connectionPair }) {
|
|
66
|
+
this.overlayPositionSide.update(() => {
|
|
67
|
+
return connectionPair.originY === 'center'
|
|
68
|
+
? connectionPair.originX === 'start'
|
|
69
|
+
? 'left'
|
|
70
|
+
: 'right'
|
|
71
|
+
: connectionPair.originY;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
75
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0.4", type: SelectDirective, isStandalone: true, providers: [
|
|
76
|
+
{
|
|
77
|
+
provide: BuildInInputValueAccessor,
|
|
78
|
+
useExisting: forwardRef(() => SelectDirective),
|
|
79
|
+
},
|
|
80
|
+
], usesInheritance: true, ngImport: i0 });
|
|
81
|
+
}
|
|
82
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectDirective, decorators: [{
|
|
83
|
+
type: Directive,
|
|
84
|
+
args: [{
|
|
85
|
+
providers: [
|
|
86
|
+
{
|
|
87
|
+
provide: BuildInInputValueAccessor,
|
|
88
|
+
useExisting: forwardRef(() => SelectDirective),
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
}]
|
|
92
|
+
}] });
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvc2VsZWN0L3NyYy9zZWxlY3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFJeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBWXZFLE1BQU0sT0FBTyxlQUFtQixTQUFRLHlCQUE0QjtJQUNsRCxPQUFPLEdBQUcsTUFBTSxDQUFvQixFQUFFLENBQUMsQ0FBQztJQUN4QyxPQUFPLEdBQUcsUUFBUSxDQUEwQixHQUFHLEVBQUU7UUFDL0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRS9CLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBQyxDQUFDO0lBRWEsWUFBWSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUNqQyxZQUFZLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLGdCQUFnQixHQUFHLE1BQU0sQ0FBc0I7UUFDN0Q7WUFDRSxPQUFPLEVBQUUsT0FBTztZQUNoQixPQUFPLEVBQUUsUUFBUTtZQUNqQixRQUFRLEVBQUUsT0FBTztZQUNqQixRQUFRLEVB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cm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UsIENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5cclxuaW1wb3J0IHsgQnVpbGRJbklucHV0VmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BsYXRpdHVkZS11aS93aWRnZXRzL2lucHV0JztcclxuXHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4vc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEJ1aWxkSW5JbnB1dFZhbHVlQWNjZXNzb3IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdERpcmVjdGl2ZSksXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3REaXJlY3RpdmU8VD4gZXh0ZW5kcyBCdWlsZEluSW5wdXRWYWx1ZUFjY2Vzc29yPFQ+IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9ucyA9IHNpZ25hbDxTZWxlY3RPcHRpb248VD5bXT4oW10pO1xyXG4gIHB1YmxpYyByZWFkb25seSBpbmRleGVzID0gY29tcHV0ZWQ8TWFwPFQsIFNlbGVjdE9wdGlvbjxUPj4+KCgpID0+IHtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnMoKTtcclxuXHJcbiAgICByZXR1cm4gbmV3IE1hcChvcHRpb25zLm1hcCgob3B0aW9uKSA9PiBbb3B0aW9uLnZhbHVlKCksIG9wdGlvbl0pKTtcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IG92ZXJsYXlXaWR0aCA9IHNpZ25hbDxudW1iZXI+KDApO1xyXG4gIHB1YmxpYyByZWFkb25seSBvdmVybGF5U3RhdGUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHB1YmxpYyByZWFkb25seSBvdmVybGF5UG9zaXRpb25zID0gc2lnbmFsPENvbm5lY3RlZFBvc2l0aW9uW10+KFtcclxuICAgIHtcclxuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXHJcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxyXG4gICAgICBvdmVybGF5WTogJ3RvcCcsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBvcmlnaW5YOiAnZW5kJyxcclxuICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXHJcbiAgICAgIG92ZXJsYXlYOiAnZW5kJyxcclxuICAgICAgb3ZlcmxheVk6ICd0b3AnLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcclxuICAgICAgb3JpZ2luWTogJ3RvcCcsXHJcbiAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxyXG4gICAgICBvdmVybGF5WTogJ2JvdHRvbScsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBvcmlnaW5YOiAnZW5kJyxcclxuICAgICAgb3JpZ2luWTogJ3RvcCcsXHJcbiAgICAgIG92ZXJsYXlYOiAnZW5kJyxcclxuICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxyXG4gICAgfSxcclxuICBdKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgb3ZlcmxheVBvc2l0aW9uU2lkZSA9IHNpZ25hbDwndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0Jz4oJ2JvdHRvbScpO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgb3ZlcmxheUV4cGFuZGVkID0gdG9TaWduYWwoXHJcbiAgICB0b09ic2VydmFibGUodGhpcy5vdmVybGF5U3RhdGUpLnBpcGUoXHJcbiAgICAgIHN3aXRjaE1hcCgoc3RhdGUpID0+IHtcclxuICAgICAgICByZXR1cm4gc3RhdGUgPyBvZihzdGF0ZSkgOiBvZihzdGF0ZSkucGlwZShkZWxheSgxMDApKTtcclxuICAgICAgfSksXHJcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCgpXHJcbiAgICApLFxyXG4gICAgeyBpbml0aWFsVmFsdWU6IGZhbHNlIH1cclxuICApO1xyXG5cclxuICBwdWJsaWMgaGlkZSgpIHtcclxuICAgIGlmICghdGhpcy5vdmVybGF5U3RhdGUoKSkge1xyXG4gICAgICByZXR1cm4gdm9pZCAwO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub3ZlcmxheVN0YXRlLnNldChmYWxzZSk7XHJcblxyXG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlbigpIHtcclxuICAgIGlmICh0aGlzLm92ZXJsYXlTdGF0ZSgpIHx8IHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLm9wdGlvbnMoKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIHZvaWQgMDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm92ZXJsYXlTdGF0ZS5zZXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3ZlcmxheVN0YXRlKCkpIHtcclxuICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm9wZW4oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVPdmVybGF5UG9zaXRpb25TaWRlKHsgY29ubmVjdGlvblBhaXIgfTogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKSB7XHJcbiAgICB0aGlzLm92ZXJsYXlQb3NpdGlvblNpZGUudXBkYXRlKCgpID0+IHtcclxuICAgICAgcmV0dXJuIGNvbm5lY3Rpb25QYWlyLm9yaWdpblkgPT09ICdjZW50ZXInXHJcbiAgICAgICAgPyBjb25uZWN0aW9uUGFpci5vcmlnaW5YID09PSAnc3RhcnQnXHJcbiAgICAgICAgICA/ICdsZWZ0J1xyXG4gICAgICAgICAgOiAncmlnaHQnXHJcbiAgICAgICAgOiBjb25uZWN0aW9uUGFpci5vcmlnaW5ZO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aXR1ZGUtdWktd2lkZ2V0cy1zd2l0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL3N3aXRjaC9sYXRpdHVkZS11aS13aWRnZXRzLXN3aXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './src/switch.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvc3dpdGNoL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL3N3aXRjaC5jb21wb25lbnQnO1xyXG4iXX0=
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { BuildInInputValueAccessor } from '@latitude-ui/widgets/input';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class SwitchComponent extends BuildInInputValueAccessor {
|
|
5
|
+
handleValueChange() {
|
|
6
|
+
if (!this.disabled()) {
|
|
7
|
+
const value = this.value() ?? false;
|
|
8
|
+
this.writeValue(!value);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SwitchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.4", type: SwitchComponent, isStandalone: true, selector: "lat-switch", host: { listeners: { "click": "handleValueChange()" } }, providers: [
|
|
13
|
+
{
|
|
14
|
+
provide: BuildInInputValueAccessor,
|
|
15
|
+
useExisting: forwardRef(() => SwitchComponent),
|
|
16
|
+
},
|
|
17
|
+
], exportAs: ["latSwitch"], usesInheritance: true, ngImport: i0, template: "<button\r\n type=\"button\"\r\n role=\"switch\"\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 <div\r\n role=\"presentation\"\r\n class=\"lat-switch-thumb\"\r\n ></div>\r\n</button>\r\n<ng-content/>\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SwitchComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ exportAs: 'latSwitch', selector: 'lat-switch', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
22
|
+
{
|
|
23
|
+
provide: BuildInInputValueAccessor,
|
|
24
|
+
useExisting: forwardRef(() => SwitchComponent),
|
|
25
|
+
},
|
|
26
|
+
], host: {
|
|
27
|
+
'(click)': 'handleValueChange()',
|
|
28
|
+
}, template: "<button\r\n type=\"button\"\r\n role=\"switch\"\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 <div\r\n role=\"presentation\"\r\n class=\"lat-switch-thumb\"\r\n ></div>\r\n</button>\r\n<ng-content/>\r\n" }]
|
|
29
|
+
}] });
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvc3dpdGNoL3NyYy9zd2l0Y2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9zd2l0Y2gvc3JjL3N3aXRjaC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFrQnZFLE1BQU0sT0FBTyxlQUFnQixTQUFRLHlCQUFrQztJQUMzRCxpQkFBaUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUM7WUFFcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO3VHQVBVLGVBQWU7MkZBQWYsZUFBZSxrSEFWZjtZQUNUO2dCQUNFLE9BQU8sRUFBRSx5QkFBeUI7Z0JBQ2xDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO2FBQy9DO1NBQ0YsMEVDZEgsK1lBZUE7OzJGRElhLGVBQWU7a0JBaEIzQixTQUFTOytCQUNFLFdBQVcsWUFDWCxZQUFZLGlCQUVQLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7eUJBQy9DO3FCQUNGLFFBQ0s7d0JBQ0osU0FBUyxFQUFFLHFCQUFxQjtxQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdWlsZEluSW5wdXRWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGxhdGl0dWRlLXVpL3dpZGdldHMvaW5wdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdsYXRTd2l0Y2gnLFxyXG4gIHNlbGVjdG9yOiAnbGF0LXN3aXRjaCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N3aXRjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQnVpbGRJbklucHV0VmFsdWVBY2Nlc3NvcixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU3dpdGNoQ29tcG9uZW50KSxcclxuICAgIH0sXHJcbiAgXSxcclxuICBob3N0OiB7XHJcbiAgICAnKGNsaWNrKSc6ICdoYW5kbGVWYWx1ZUNoYW5nZSgpJyxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3dpdGNoQ29tcG9uZW50IGV4dGVuZHMgQnVpbGRJbklucHV0VmFsdWVBY2Nlc3Nvcjxib29sZWFuPiB7XHJcbiAgcHJvdGVjdGVkIGhhbmRsZVZhbHVlQ2hhbmdlKCkge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKCkpIHtcclxuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnZhbHVlKCkgPz8gZmFsc2U7XHJcblxyXG4gICAgICB0aGlzLndyaXRlVmFsdWUoIXZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGJ1dHRvblxyXG4gIHR5cGU9XCJidXR0b25cIlxyXG4gIHJvbGU9XCJzd2l0Y2hcIlxyXG4gIFthdHRyLmlkXT1cImlucHV0SWQoKVwiXHJcbiAgW2F0dHIudmFsdWVdPVwidmFsdWUoKSA/ICdvbicgOiAnb2ZmJ1wiXHJcbiAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQoKSA/IC0xIDogdGFiaW5kZXgoKVwiXHJcbiAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCB1bmRlZmluZWRcIlxyXG4gIFthdHRyLmFyaWEtY2hlY2tlZF09XCJ2YWx1ZSgpIHx8IGZhbHNlXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIHJvbGU9XCJwcmVzZW50YXRpb25cIlxyXG4gICAgY2xhc3M9XCJsYXQtc3dpdGNoLXRodW1iXCJcclxuICA+PC9kaXY+XHJcbjwvYnV0dG9uPlxyXG48bmctY29udGVudC8+XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aXR1ZGUtdWktd2lkZ2V0cy10ZXh0YXJlYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvdGV4dGFyZWEvbGF0aXR1ZGUtdWktd2lkZ2V0cy10ZXh0YXJlYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './src/textarea.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvdGV4dGFyZWEvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvdGV4dGFyZWEuY29tcG9uZW50JztcclxuIl19
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, input, numberAttribute, viewChild, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { BuildInInputValueAccessor } from '@latitude-ui/widgets/input';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class TextAreaComponent extends BuildInInputValueAccessor {
|
|
5
|
+
rows = input(4, { transform: numberAttribute });
|
|
6
|
+
maxlength = input(undefined, { transform: numberAttribute });
|
|
7
|
+
minlength = input(undefined, { transform: numberAttribute });
|
|
8
|
+
placeholder = input();
|
|
9
|
+
inputElementRef = viewChild.required('inputElementRef', { read: (ElementRef) });
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
}
|
|
13
|
+
handleBlurEvent() {
|
|
14
|
+
this.markAsTouched();
|
|
15
|
+
}
|
|
16
|
+
handleInputEvent() {
|
|
17
|
+
const input = this.inputElementRef();
|
|
18
|
+
this.writeValue(input.nativeElement.value);
|
|
19
|
+
}
|
|
20
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.4", type: TextAreaComponent, isStandalone: true, selector: "lat-textarea", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, minlength: { classPropertyName: "minlength", publicName: "minlength", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
22
|
+
{
|
|
23
|
+
provide: BuildInInputValueAccessor,
|
|
24
|
+
useExisting: forwardRef(() => TextAreaComponent),
|
|
25
|
+
},
|
|
26
|
+
], viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElementRef"], descendants: true, read: ElementRef, isSignal: true }], exportAs: ["latTextArea"], usesInheritance: true, ngImport: i0, template: "<textarea\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.rows]=\"rows()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n [style.resize]=\"'none'\"\r\n (blur)=\"handleBlurEvent()\"\r\n (input)=\"handleInputEvent()\"\r\n></textarea>\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TextAreaComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ exportAs: 'latTextArea', selector: 'lat-textarea', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
31
|
+
{
|
|
32
|
+
provide: BuildInInputValueAccessor,
|
|
33
|
+
useExisting: forwardRef(() => TextAreaComponent),
|
|
34
|
+
},
|
|
35
|
+
], template: "<textarea\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.rows]=\"rows()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n [style.resize]=\"'none'\"\r\n (blur)=\"handleBlurEvent()\"\r\n (input)=\"handleInputEvent()\"\r\n></textarea>\r\n" }]
|
|
36
|
+
}], ctorParameters: () => [] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0YXJlYS9zcmMvdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0YXJlYS9zcmMvdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBQ0wsZUFBZSxFQUNmLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBZXZFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSx5QkFBaUM7SUFDdEQsSUFBSSxHQUFHLEtBQUssQ0FBa0IsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDakUsU0FBUyxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDOUUsU0FBUyxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDOUUsV0FBVyxHQUFHLEtBQUssRUFBVSxDQUFDO0lBRTlCLGVBQWUsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUEsVUFBNEIsQ0FBQSxFQUFFLENBQUMsQ0FBQztJQUVoSDtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVTLGVBQWU7UUFDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFUyxnQkFBZ0I7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXJDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO3VHQXBCVSxpQkFBaUI7MkZBQWpCLGlCQUFpQiw4a0JBUGpCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHlCQUF5QjtnQkFDbEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzthQUNqRDtTQUNGLHlIQVErRSxVQUFVLCtGQ2hDNUYsMDFCQXVCQTs7MkZER2EsaUJBQWlCO2tCQWI3QixTQUFTOytCQUNFLGFBQWEsWUFDYixjQUFjLGlCQUVULGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7eUJBQ2pEO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBmb3J3YXJkUmVmLFxyXG4gIGlucHV0LFxyXG4gIG51bWJlckF0dHJpYnV0ZSxcclxuICB2aWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCdWlsZEluSW5wdXRWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGxhdGl0dWRlLXVpL3dpZGdldHMvaW5wdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdsYXRUZXh0QXJlYScsXHJcbiAgc2VsZWN0b3I6ICdsYXQtdGV4dGFyZWEnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogQnVpbGRJbklucHV0VmFsdWVBY2Nlc3NvcixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGV4dEFyZWFDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0QXJlYUNvbXBvbmVudCBleHRlbmRzIEJ1aWxkSW5JbnB1dFZhbHVlQWNjZXNzb3I8c3RyaW5nPiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHJvd3MgPSBpbnB1dDxudW1iZXIsIHVua25vd24+KDQsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IG1heGxlbmd0aCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xyXG4gIHB1YmxpYyByZWFkb25seSBtaW5sZW5ndGggPSBpbnB1dDxudW1iZXIsIHVua25vd24+KHVuZGVmaW5lZCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcclxuICBwdWJsaWMgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBpbnB1dEVsZW1lbnRSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ2lucHV0RWxlbWVudFJlZicsIHsgcmVhZDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB9KTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZUJsdXJFdmVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZUlucHV0RXZlbnQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRFbGVtZW50UmVmKCk7XHJcblxyXG4gICAgdGhpcy53cml0ZVZhbHVlKGlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xyXG4gIH1cclxufVxyXG4iLCI8dGV4dGFyZWFcclxuICAjaW5wdXRFbGVtZW50UmVmXHJcbiAgdHlwZT1cInRleHRcIlxyXG4gIHJvbGU9XCJ0ZXh0Ym94XCJcclxuICBbdmFsdWVdPSd2YWx1ZUFzU3RyaW5nKCknXHJcbiAgW2F0dHIuaWRdPVwiaW5wdXRJZCgpXCJcclxuICBbYXR0ci5yb3dzXT1cInJvd3MoKVwiXHJcbiAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQoKSA/IC0xIDogdGFiaW5kZXgoKVwiXHJcbiAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCB1bmRlZmluZWRcIlxyXG4gIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5KCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heGxlbmd0aCgpXCJcclxuICBbYXR0ci5taW5sZW5ndGhdPVwibWlubGVuZ3RoKClcIlxyXG4gIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxyXG4gIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkKCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cInJlYWRvbmx5KCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkKCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxJZCgpXCJcclxuICBbc3R5bGUucmVzaXplXT1cIidub25lJ1wiXHJcbiAgKGJsdXIpPVwiaGFuZGxlQmx1ckV2ZW50KClcIlxyXG4gIChpbnB1dCk9XCJoYW5kbGVJbnB1dEV2ZW50KClcIlxyXG4+PC90ZXh0YXJlYT5cclxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aXR1ZGUtdWktd2lkZ2V0cy10ZXh0Ym94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94L2xhdGl0dWRlLXVpLXdpZGdldHMtdGV4dGJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './src/textbox.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvdGV4dGJveC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy90ZXh0Ym94LmNvbXBvbmVudCc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, ElementRef, forwardRef, input, numberAttribute, viewChild, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { BuildInInputValueAccessor } from '@latitude-ui/widgets/input';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class TextBoxComponent extends BuildInInputValueAccessor {
|
|
5
|
+
maxlength = input(undefined, { transform: numberAttribute });
|
|
6
|
+
minlength = input(undefined, { transform: numberAttribute });
|
|
7
|
+
placeholder = input();
|
|
8
|
+
inputElementRef = viewChild.required('inputElementRef', { read: (ElementRef) });
|
|
9
|
+
handleBlurEvent() {
|
|
10
|
+
this.markAsTouched();
|
|
11
|
+
}
|
|
12
|
+
handleInputEvent() {
|
|
13
|
+
const input = this.inputElementRef();
|
|
14
|
+
this.writeValue(input.nativeElement.value);
|
|
15
|
+
}
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TextBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.4", type: TextBoxComponent, isStandalone: true, selector: "lat-textbox:not([type]), lat-textbox[type=\"text\"]", inputs: { maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, minlength: { classPropertyName: "minlength", publicName: "minlength", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
18
|
+
{
|
|
19
|
+
provide: BuildInInputValueAccessor,
|
|
20
|
+
useExisting: forwardRef(() => TextBoxComponent),
|
|
21
|
+
},
|
|
22
|
+
], viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElementRef"], descendants: true, read: ElementRef, isSignal: true }], exportAs: ["latTextBox"], usesInheritance: true, ngImport: i0, template: "<input\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"handleBlurEvent()\"\r\n (input)=\"handleInputEvent()\"\r\n/>\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
23
|
+
}
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TextBoxComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ exportAs: 'latTextBox', selector: 'lat-textbox:not([type]), lat-textbox[type="text"]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
27
|
+
{
|
|
28
|
+
provide: BuildInInputValueAccessor,
|
|
29
|
+
useExisting: forwardRef(() => TextBoxComponent),
|
|
30
|
+
},
|
|
31
|
+
], template: "<input\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"handleBlurEvent()\"\r\n (input)=\"handleInputEvent()\"\r\n/>\r\n" }]
|
|
32
|
+
}] });
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL3RleHRib3gvc3JjL3RleHRib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94L3NyYy90ZXh0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQWV2RSxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEseUJBQWlDO0lBQ3JELFNBQVMsR0FBRyxLQUFLLENBQWtCLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLFNBQVMsR0FBRyxLQUFLLENBQWtCLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLFdBQVcsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUU5QixlQUFlLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFBLFVBQTRCLENBQUEsRUFBRSxDQUFDLENBQUM7SUFFdEcsZUFBZTtRQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7dUdBZlUsZ0JBQWdCOzJGQUFoQixnQkFBZ0IsZ2dCQVBoQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSx5QkFBeUI7Z0JBQ2xDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7YUFDaEQ7U0FDRix5SEFPK0UsVUFBVSw4RkM5QjVGLGt4QkFxQkE7OzJGRElhLGdCQUFnQjtrQkFiNUIsU0FBUzsrQkFDRSxZQUFZLFlBQ1osbURBQW1ELGlCQUU5QyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSx5QkFBeUI7NEJBQ2xDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGlCQUFpQixDQUFDO3lCQUNoRDtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgZm9yd2FyZFJlZixcclxuICBpbnB1dCxcclxuICBudW1iZXJBdHRyaWJ1dGUsXHJcbiAgdmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdWlsZEluSW5wdXRWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGxhdGl0dWRlLXVpL3dpZGdldHMvaW5wdXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgZXhwb3J0QXM6ICdsYXRUZXh0Qm94JyxcclxuICBzZWxlY3RvcjogJ2xhdC10ZXh0Ym94Om5vdChbdHlwZV0pLCBsYXQtdGV4dGJveFt0eXBlPVwidGV4dFwiXScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEJ1aWxkSW5JbnB1dFZhbHVlQWNjZXNzb3IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRleHRCb3hDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0Qm94Q29tcG9uZW50IGV4dGVuZHMgQnVpbGRJbklucHV0VmFsdWVBY2Nlc3NvcjxzdHJpbmc+IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgbWF4bGVuZ3RoID0gaW5wdXQ8bnVtYmVyLCB1bmtub3duPih1bmRlZmluZWQsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IG1pbmxlbmd0aCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xyXG4gIHB1YmxpYyByZWFkb25seSBwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oKTtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IGlucHV0RWxlbWVudFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnaW5wdXRFbGVtZW50UmVmJywgeyByZWFkOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IH0pO1xyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlQmx1ckV2ZW50KCk6IHZvaWQge1xyXG4gICAgdGhpcy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlSW5wdXRFdmVudCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5pbnB1dEVsZW1lbnRSZWYoKTtcclxuXHJcbiAgICB0aGlzLndyaXRlVmFsdWUoaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxpbnB1dFxyXG4gICNpbnB1dEVsZW1lbnRSZWZcclxuICB0eXBlPVwidGV4dFwiXHJcbiAgcm9sZT1cInRleHRib3hcIlxyXG4gIFt2YWx1ZV09J3ZhbHVlQXNTdHJpbmcoKSdcclxuICBbYXR0ci5pZF09XCJpbnB1dElkKClcIlxyXG4gIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkKCkgPyAtMSA6IHRhYmluZGV4KClcIlxyXG4gIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seSgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIucmVxdWlyZWRdPVwicmVxdWlyZWQoKSB8fCB1bmRlZmluZWRcIlxyXG4gIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGgoKVwiXHJcbiAgW2F0dHIubWlubGVuZ3RoXT1cIm1pbmxlbmd0aCgpXCJcclxuICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1yZWFkb25seV09XCJyZWFkb25seSgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxhYmVsSWQoKVwiXHJcbiAgKGJsdXIpPVwiaGFuZGxlQmx1ckV2ZW50KClcIlxyXG4gIChpbnB1dCk9XCJoYW5kbGVJbnB1dEV2ZW50KClcIlxyXG4vPlxyXG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aXR1ZGUtdWktd2lkZ2V0cy10ZXh0Ym94LW51bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvdGV4dGJveC1udW1iZXIvbGF0aXR1ZGUtdWktd2lkZ2V0cy10ZXh0Ym94LW51bWJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './src/textbox-number.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvdGV4dGJveC1udW1iZXIvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvdGV4dGJveC1udW1iZXIuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { ButtonComponent } from '@latitude-ui/widgets/button';
|
|
3
|
+
import { IconComponent } from '@latitude-ui/widgets/icons';
|
|
4
|
+
import { TextBoxNumberComponent } from './textbox-number.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class SpinnersComponent {
|
|
7
|
+
textbox = inject(TextBoxNumberComponent);
|
|
8
|
+
handleValueChanged(dir) {
|
|
9
|
+
const value = (this.textbox.value() ?? 0) + (this.textbox.step() ?? 0) * (dir ? 1 : -1);
|
|
10
|
+
if (value < this.textbox.ariaValueMin() || value > this.textbox.ariaValueMax()) {
|
|
11
|
+
return void 0;
|
|
12
|
+
}
|
|
13
|
+
this.textbox.writeValue(value);
|
|
14
|
+
}
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SpinnersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.4", type: SpinnersComponent, isStandalone: true, selector: "lat-spinners", exportAs: ["latSpinners"], ngImport: i0, template: "<lat-button tabindex=\"-1\" variant=\"subtle\" [size]=\"textbox.size()\" [disabled]=\"textbox.disabled()\" (click)=\"handleValueChanged(true)\">\r\n <lat-icon name=\"chevron-up\" />\r\n</lat-button>\r\n<lat-button tabindex=\"-1\" variant=\"subtle\" [size]=\"textbox.size()\" [disabled]=\"textbox.disabled()\" (click)=\"handleValueChanged(false)\">\r\n <lat-icon name=\"chevron-down\" />\r\n</lat-button>\r\n", dependencies: [{ kind: "component", type: ButtonComponent, selector: "lat-button", inputs: ["size", "variant", "tabindex", "disabled"], exportAs: ["latButton"] }, { kind: "component", type: IconComponent, selector: "lat-icon", inputs: ["url", "name"], exportAs: ["latIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SpinnersComponent, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{ exportAs: 'latSpinners', selector: 'lat-spinners', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [ButtonComponent, IconComponent], template: "<lat-button tabindex=\"-1\" variant=\"subtle\" [size]=\"textbox.size()\" [disabled]=\"textbox.disabled()\" (click)=\"handleValueChanged(true)\">\r\n <lat-icon name=\"chevron-up\" />\r\n</lat-button>\r\n<lat-button tabindex=\"-1\" variant=\"subtle\" [size]=\"textbox.size()\" [disabled]=\"textbox.disabled()\" (click)=\"handleValueChanged(false)\">\r\n <lat-icon name=\"chevron-down\" />\r\n</lat-button>\r\n" }]
|
|
21
|
+
}] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bpbm5lcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94LW51bWJlci9zcmMvc3Bpbm5lcnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94LW51bWJlci9zcmMvc3Bpbm5lcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFVcEUsTUFBTSxPQUFPLGlCQUFpQjtJQUNaLE9BQU8sR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUUvQyxrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV4RixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDL0UsT0FBTyxLQUFLLENBQUMsQ0FBQztRQUNoQixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQzt1R0FYVSxpQkFBaUI7MkZBQWpCLGlCQUFpQixtR0NmOUIsMlpBTUEsNENET1ksZUFBZSxxSUFBRSxhQUFhOzsyRkFFN0IsaUJBQWlCO2tCQVI3QixTQUFTOytCQUNFLGFBQWEsWUFDYixjQUFjLGlCQUVULGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxlQUFlLEVBQUUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGxhdGl0dWRlLXVpL3dpZGdldHMvYnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BsYXRpdHVkZS11aS93aWRnZXRzL2ljb25zJztcclxuXHJcbmltcG9ydCB7IFRleHRCb3hOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL3RleHRib3gtbnVtYmVyLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBleHBvcnRBczogJ2xhdFNwaW5uZXJzJyxcclxuICBzZWxlY3RvcjogJ2xhdC1zcGlubmVycycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NwaW5uZXJzLmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtCdXR0b25Db21wb25lbnQsIEljb25Db21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3Bpbm5lcnNDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSB0ZXh0Ym94ID0gaW5qZWN0KFRleHRCb3hOdW1iZXJDb21wb25lbnQpO1xyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlVmFsdWVDaGFuZ2VkKGRpcjogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsdWUgPSAodGhpcy50ZXh0Ym94LnZhbHVlKCkgPz8gMCkgKyAodGhpcy50ZXh0Ym94LnN0ZXAoKSA/PyAwKSAqIChkaXIgPyAxIDogLTEpO1xyXG5cclxuICAgIGlmICh2YWx1ZSA8IHRoaXMudGV4dGJveC5hcmlhVmFsdWVNaW4oKSB8fCB2YWx1ZSA+IHRoaXMudGV4dGJveC5hcmlhVmFsdWVNYXgoKSkge1xyXG4gICAgICByZXR1cm4gdm9pZCAwO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGV4dGJveC53cml0ZVZhbHVlKHZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiPGxhdC1idXR0b24gdGFiaW5kZXg9XCItMVwiIHZhcmlhbnQ9XCJzdWJ0bGVcIiBbc2l6ZV09XCJ0ZXh0Ym94LnNpemUoKVwiIFtkaXNhYmxlZF09XCJ0ZXh0Ym94LmRpc2FibGVkKClcIiAoY2xpY2spPVwiaGFuZGxlVmFsdWVDaGFuZ2VkKHRydWUpXCI+XHJcbiAgPGxhdC1pY29uIG5hbWU9XCJjaGV2cm9uLXVwXCIgLz5cclxuPC9sYXQtYnV0dG9uPlxyXG48bGF0LWJ1dHRvbiB0YWJpbmRleD1cIi0xXCIgdmFyaWFudD1cInN1YnRsZVwiIFtzaXplXT1cInRleHRib3guc2l6ZSgpXCIgW2Rpc2FibGVkXT1cInRleHRib3guZGlzYWJsZWQoKVwiIChjbGljayk9XCJoYW5kbGVWYWx1ZUNoYW5nZWQoZmFsc2UpXCI+XHJcbiAgPGxhdC1pY29uIG5hbWU9XCJjaGV2cm9uLWRvd25cIiAvPlxyXG48L2xhdC1idXR0b24+XHJcbiJdfQ==
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, forwardRef, input, numberAttribute, viewChild, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { Maskito, maskitoInitialCalibrationPlugin } from '@maskito/core';
|
|
3
|
+
import { maskitoNumberOptionsGenerator, maskitoParseNumber, maskitoStringifyNumber } from '@maskito/kit';
|
|
4
|
+
import { BuildInInputValueAccessor } from '@latitude-ui/widgets/input';
|
|
5
|
+
import { SpinnersComponent } from './spinners.component';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class TextBoxNumberComponent extends BuildInInputValueAccessor {
|
|
8
|
+
max = input(undefined, { transform: numberAttribute });
|
|
9
|
+
min = input(undefined, { transform: numberAttribute });
|
|
10
|
+
step = input(undefined, { transform: numberAttribute });
|
|
11
|
+
decimals = input(2);
|
|
12
|
+
decimalMode = input('not-zero');
|
|
13
|
+
decimalSeparator = input(',');
|
|
14
|
+
thousandSeparator = input(' ');
|
|
15
|
+
placeholder = input();
|
|
16
|
+
inputElementRef = viewChild.required('inputElementRef', { read: (ElementRef) });
|
|
17
|
+
ariaValueMax = computed(() => this.max() ?? Number.MAX_SAFE_INTEGER);
|
|
18
|
+
ariaValueMin = computed(() => this.min() ?? Number.MIN_SAFE_INTEGER);
|
|
19
|
+
ariaValueNow = computed(() => this.value() || 0);
|
|
20
|
+
maxlength = computed(() => {
|
|
21
|
+
const { decimalSeparator, thousandSeparator } = this.maskitoNumberParams();
|
|
22
|
+
const decimals = this.decimals();
|
|
23
|
+
const mantissa = decimals && this.valueAsString().includes(decimalSeparator);
|
|
24
|
+
const precision = mantissa ? Math.min(decimals + 1, 20) : 0;
|
|
25
|
+
const thousand = thousandSeparator.repeat(5).length;
|
|
26
|
+
return 18 + precision + thousand;
|
|
27
|
+
});
|
|
28
|
+
maskitoNumberParams = computed(() => {
|
|
29
|
+
const decimalMode = this.decimalMode();
|
|
30
|
+
return {
|
|
31
|
+
max: this.ariaValueMax(),
|
|
32
|
+
min: this.ariaValueMin(),
|
|
33
|
+
minusSign: '-',
|
|
34
|
+
precision: this.decimals(),
|
|
35
|
+
decimalZeroPadding: decimalMode === 'always',
|
|
36
|
+
decimalSeparator: this.decimalSeparator(),
|
|
37
|
+
thousandSeparator: this.thousandSeparator(),
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
constructor() {
|
|
41
|
+
super();
|
|
42
|
+
effect((onCleanup) => {
|
|
43
|
+
const input = this.inputElementRef();
|
|
44
|
+
const formatter = this.maskitoNumberParams();
|
|
45
|
+
const { plugins, ...options } = maskitoNumberOptionsGenerator(formatter);
|
|
46
|
+
const instance = new Maskito(input.nativeElement, {
|
|
47
|
+
...options,
|
|
48
|
+
plugins: [
|
|
49
|
+
...plugins,
|
|
50
|
+
maskitoInitialCalibrationPlugin(maskitoNumberOptionsGenerator({
|
|
51
|
+
...formatter,
|
|
52
|
+
min: Number.MIN_SAFE_INTEGER,
|
|
53
|
+
max: Number.MAX_SAFE_INTEGER,
|
|
54
|
+
})),
|
|
55
|
+
],
|
|
56
|
+
});
|
|
57
|
+
onCleanup(() => instance.destroy());
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
valueStringify(valueAsString) {
|
|
61
|
+
const value = this.parseNumber(valueAsString);
|
|
62
|
+
if (value === null) {
|
|
63
|
+
return '';
|
|
64
|
+
}
|
|
65
|
+
return maskitoStringifyNumber(value, this.maskitoNumberParams());
|
|
66
|
+
}
|
|
67
|
+
valueSimplify(value) {
|
|
68
|
+
const decimalSeparator = new RegExp(this.decimalSeparator(), 'gi');
|
|
69
|
+
const thousandSeparator = new RegExp(this.thousandSeparator(), 'gi');
|
|
70
|
+
return value.replace(thousandSeparator, '').replace(decimalSeparator, '.');
|
|
71
|
+
}
|
|
72
|
+
valueUnsettled(value) {
|
|
73
|
+
return !!(value === '-' ||
|
|
74
|
+
value.match(/^\s*([-+])?\d+\.$/) ||
|
|
75
|
+
value.match(/^\s*([-+])?\d+\.[0-9]*0$/) ||
|
|
76
|
+
value.match(/^\s*([-+])0+$/));
|
|
77
|
+
}
|
|
78
|
+
parseNumber(value) {
|
|
79
|
+
let valueAsNumber = null;
|
|
80
|
+
if (typeof value === 'number') {
|
|
81
|
+
valueAsNumber = value;
|
|
82
|
+
}
|
|
83
|
+
else if (typeof value === 'string') {
|
|
84
|
+
valueAsNumber = Number.parseFloat(value);
|
|
85
|
+
}
|
|
86
|
+
if (Number.isNaN(value)) {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
return valueAsNumber;
|
|
90
|
+
}
|
|
91
|
+
handleBlurEvent() {
|
|
92
|
+
this.markAsTouched();
|
|
93
|
+
const valueAsString = this.valueSimplify(this.valueAsString());
|
|
94
|
+
if (this.valueUnsettled(valueAsString)) {
|
|
95
|
+
this.valueAsString.update(() => this.valueStringify(this.value()));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
handleFocusEvent() {
|
|
99
|
+
const value = maskitoParseNumber(this.valueAsString(), this.decimalSeparator());
|
|
100
|
+
if (Number.isNaN(value) && !this.readonly()) {
|
|
101
|
+
this.valueAsString.set('');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
handleInputEvent() {
|
|
105
|
+
const input = this.inputElementRef();
|
|
106
|
+
const valueAsString = this.valueSimplify(input.nativeElement.value);
|
|
107
|
+
if (this.valueUnsettled(valueAsString)) {
|
|
108
|
+
return this.valueAsString.update(() => input.nativeElement.value);
|
|
109
|
+
}
|
|
110
|
+
const value = this.parseNumber(valueAsString);
|
|
111
|
+
if (value === null) {
|
|
112
|
+
return this.writeValue(value);
|
|
113
|
+
}
|
|
114
|
+
if (value < this.ariaValueMin() || value > this.ariaValueMax()) {
|
|
115
|
+
return void 0;
|
|
116
|
+
}
|
|
117
|
+
this.writeValue(value);
|
|
118
|
+
}
|
|
119
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TextBoxNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
120
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: TextBoxNumberComponent, isStandalone: true, selector: "lat-textbox[type=\"number\"]", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, decimals: { classPropertyName: "decimals", publicName: "decimals", isSignal: true, isRequired: false, transformFunction: null }, decimalMode: { classPropertyName: "decimalMode", publicName: "decimalMode", isSignal: true, isRequired: false, transformFunction: null }, decimalSeparator: { classPropertyName: "decimalSeparator", publicName: "decimalSeparator", isSignal: true, isRequired: false, transformFunction: null }, thousandSeparator: { classPropertyName: "thousandSeparator", publicName: "thousandSeparator", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
121
|
+
{
|
|
122
|
+
provide: BuildInInputValueAccessor,
|
|
123
|
+
useExisting: forwardRef(() => TextBoxNumberComponent),
|
|
124
|
+
},
|
|
125
|
+
], viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElementRef"], descendants: true, read: ElementRef, isSignal: true }], exportAs: ["latTextBox"], usesInheritance: true, ngImport: i0, template: "<input\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"spinbutton\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-valuemax]=\"ariaValueMax()\"\r\n [attr.aria-valuemin]=\"ariaValueMin()\"\r\n [attr.aria-valuenow]=\"ariaValueNow()\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"handleBlurEvent()\"\r\n (focus)=\"handleFocusEvent()\"\r\n (input)=\"handleInputEvent()\"\r\n/>\r\n\r\n@if (step() && !readonly()) {\r\n <lat-spinners />\r\n}\r\n", dependencies: [{ kind: "component", type: SpinnersComponent, selector: "lat-spinners", exportAs: ["latSpinners"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
126
|
+
}
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TextBoxNumberComponent, decorators: [{
|
|
128
|
+
type: Component,
|
|
129
|
+
args: [{ imports: [SpinnersComponent], exportAs: 'latTextBox', selector: 'lat-textbox[type="number"]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
130
|
+
{
|
|
131
|
+
provide: BuildInInputValueAccessor,
|
|
132
|
+
useExisting: forwardRef(() => TextBoxNumberComponent),
|
|
133
|
+
},
|
|
134
|
+
], template: "<input\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"spinbutton\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-valuemax]=\"ariaValueMax()\"\r\n [attr.aria-valuemin]=\"ariaValueMin()\"\r\n [attr.aria-valuenow]=\"ariaValueNow()\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"handleBlurEvent()\"\r\n (focus)=\"handleFocusEvent()\"\r\n (input)=\"handleInputEvent()\"\r\n/>\r\n\r\n@if (step() && !readonly()) {\r\n <lat-spinners />\r\n}\r\n" }]
|
|
135
|
+
}], ctorParameters: () => [] });
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGJveC1udW1iZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94LW51bWJlci9zcmMvdGV4dGJveC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94LW51bWJlci9zcmMvdGV4dGJveC1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1YsVUFBVSxFQUNWLEtBQUssRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFnQnpELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx5QkFBaUM7SUFDM0QsR0FBRyxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDeEUsR0FBRyxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDeEUsSUFBSSxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDekUsUUFBUSxHQUFHLEtBQUssQ0FBUyxDQUFD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QUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDO3lCQUN0RDtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGVmZmVjdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgaW5wdXQsXHJcbiAgbnVtYmVyQXR0cmlidXRlLFxyXG4gIHZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE1hc2tpdG8sIG1hc2tpdG9Jbml0aWFsQ2FsaWJyYXRpb25QbHVnaW4gfSBmcm9tICdAbWFza2l0by9jb3JlJztcclxuaW1wb3J0IHsgbWFza2l0b051bWJlck9wdGlvbnNHZW5lcmF0b3IsIG1hc2tpdG9QYXJzZU51bWJlciwgbWFza2l0b1N0cmluZ2lmeU51bWJlciB9IGZyb20gJ0BtYXNraXRvL2tpdCc7XHJcblxyXG5pbXBvcnQgeyBCdWlsZEluSW5wdXRWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGxhdGl0dWRlLXVpL3dpZGdldHMvaW5wdXQnO1xyXG5cclxuaW1wb3J0IHsgU3Bpbm5lcnNDb21wb25lbnQgfSBmcm9tICcuL3NwaW5uZXJzLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBpbXBvcnRzOiBbU3Bpbm5lcnNDb21wb25lbnRdLFxyXG4gIGV4cG9ydEFzOiAnbGF0VGV4dEJveCcsXHJcbiAgc2VsZWN0b3I6ICdsYXQtdGV4dGJveFt0eXBlPVwibnVtYmVyXCJdJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dGJveC1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEJ1aWxkSW5JbnB1dFZhbHVlQWNjZXNzb3IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRleHRCb3hOdW1iZXJDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dEJveE51bWJlckNvbXBvbmVudCBleHRlbmRzIEJ1aWxkSW5JbnB1dFZhbHVlQWNjZXNzb3I8bnVtYmVyPiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IG1heCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xyXG4gIHB1YmxpYyByZWFkb25seSBtaW4gPSBpbnB1dDxudW1iZXIsIHVua25vd24+KHVuZGVmaW5lZCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc3RlcCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xyXG4gIHB1YmxpYyByZWFkb25seSBkZWNpbWFscyA9IGlucHV0PG51bWJlcj4oMik7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRlY2ltYWxNb2RlID0gaW5wdXQ8J2Fsd2F5cycgfCAnbm90LXplcm8nIHwgJ3BhZCc+KCdub3QtemVybycpO1xyXG4gIHB1YmxpYyByZWFkb25seSBkZWNpbWFsU2VwYXJhdG9yID0gaW5wdXQ8JywnIHwgJy4nPignLCcpO1xyXG4gIHB1YmxpYyByZWFkb25seSB0aG91c2FuZFNlcGFyYXRvciA9IGlucHV0PHN0cmluZz4oJyAnKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBpbnB1dEVsZW1lbnRSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ2lucHV0RWxlbWVudFJlZicsIHsgcmVhZDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB9KTtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IGFyaWFWYWx1ZU1heCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubWF4KCkgPz8gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO1xyXG4gIHB1YmxpYyByZWFkb25seSBhcmlhVmFsdWVNaW4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1pbigpID8/IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgYXJpYVZhbHVlTm93ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy52YWx1ZSgpIHx8IDApO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgbWF4bGVuZ3RoID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3QgeyBkZWNpbWFsU2VwYXJhdG9yLCB0aG91c2FuZFNlcGFyYXRvciB9ID0gdGhpcy5tYXNraXRvTnVtYmVyUGFyYW1zKCk7XHJcblxyXG4gICAgY29uc3QgZGVjaW1hbHMgPSB0aGlzLmRlY2ltYWxzKCk7XHJcblxyXG4gICAgY29uc3QgbWFudGlzc2EgPSBkZWNpbWFscyAmJiB0aGlzLnZhbHVlQXNTdHJpbmcoKS5pbmNsdWRlcyhkZWNpbWFsU2VwYXJhdG9yKTtcclxuICAgIGNvbnN0IHByZWNpc2lvbiA9IG1hbnRpc3NhID8gTWF0aC5taW4oZGVjaW1hbHMgKyAxLCAyMCkgOiAwO1xyXG4gICAgY29uc3QgdGhvdXNhbmQgPSB0aG91c2FuZFNlcGFyYXRvci5yZXBlYXQoNSkubGVuZ3RoO1xyXG5cclxuICAgIHJldHVybiAxOCArIHByZWNpc2lvbiArIHRob3VzYW5kO1xyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgbWFza2l0b051bWJlclBhcmFtcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IGRlY2ltYWxNb2RlID0gdGhpcy5kZWNpbWFsTW9kZSgpO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIG1heDogdGhpcy5hcmlhVmFsdWVNYXgoKSxcclxuICAgICAgbWluOiB0aGlzLmFyaWFWYWx1ZU1pbigpLFxyXG4gICAgICBtaW51c1NpZ246ICctJyxcclxuICAgICAgcHJlY2lzaW9uOiB0aGlzLmRlY2ltYWxzKCksXHJcbiAgICAgIGRlY2ltYWxaZXJvUGFkZGluZzogZGVjaW1hbE1vZGUgPT09ICdhbHdheXMnLFxyXG4gICAgICBkZWNpbWFsU2VwYXJhdG9yOiB0aGlzLmRlY2ltYWxTZXBhcmF0b3IoKSxcclxuICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRoaXMudGhvdXNhbmRTZXBhcmF0b3IoKSxcclxuICAgIH07XHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xyXG4gICAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRFbGVtZW50UmVmKCk7XHJcbiAgICAgIGNvbnN0IGZvcm1hdHRlciA9IHRoaXMubWFza2l0b051bWJlclBhcmFtcygpO1xyXG5cclxuICAgICAgY29uc3QgeyBwbHVnaW5zLCAuLi5vcHRpb25zIH0gPSBtYXNraXRvTnVtYmVyT3B0aW9uc0dlbmVyYXRvcihmb3JtYXR0ZXIpO1xyXG5cclxuICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgTWFza2l0byhpbnB1dC5uYXRpdmVFbGVtZW50LCB7XHJcbiAgICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgICBwbHVnaW5zOiBbXHJcbiAgICAgICAgICAuLi5wbHVnaW5zLFxyXG4gICAgICAgICAgbWFza2l0b0luaXRpYWxDYWxpYnJhdGlvblBsdWdpbihcclxuICAgICAgICAgICAgbWFza2l0b051bWJlck9wdGlvbnNHZW5lcmF0b3Ioe1xyXG4gICAgICAgICAgICAgIC4uLmZvcm1hdHRlcixcclxuICAgICAgICAgICAgICBtaW46IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSLFxyXG4gICAgICAgICAgICAgIG1heDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgb25DbGVhbnVwKCgpID0+IGluc3RhbmNlLmRlc3Ryb3koKSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvdmVycmlkZSB2YWx1ZVN0cmluZ2lmeSh2YWx1ZUFzU3RyaW5nOiB1bmtub3duKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYXJzZU51bWJlcih2YWx1ZUFzU3RyaW5nKTtcclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1hc2tpdG9TdHJpbmdpZnlOdW1iZXIodmFsdWUsIHRoaXMubWFza2l0b051bWJlclBhcmFtcygpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB2YWx1ZVNpbXBsaWZ5KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZGVjaW1hbFNlcGFyYXRvciA9IG5ldyBSZWdFeHAodGhpcy5kZWNpbWFsU2VwYXJhdG9yKCksICdnaScpO1xyXG4gICAgY29uc3QgdGhvdXNhbmRTZXBhcmF0b3IgPSBuZXcgUmVnRXhwKHRoaXMudGhvdXNhbmRTZXBhcmF0b3IoKSwgJ2dpJyk7XHJcblxyXG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UodGhvdXNhbmRTZXBhcmF0b3IsICcnKS5yZXBsYWNlKGRlY2ltYWxTZXBhcmF0b3IsICcuJyk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdmFsdWVVbnNldHRsZWQodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhKFxyXG4gICAgICB2YWx1ZSA9PT0gJy0nIHx8XHJcbiAgICAgIHZhbHVlLm1hdGNoKC9eXFxzKihbLStdKT9cXGQrXFwuJC8pIHx8XHJcbiAgICAgIHZhbHVlLm1hdGNoKC9eXFxzKihbLStdKT9cXGQrXFwuWzAtOV0qMCQvKSB8fFxyXG4gICAgICB2YWx1ZS5tYXRjaCgvXlxccyooWy0rXSkwKyQvKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwYXJzZU51bWJlcih2YWx1ZTogdW5rbm93bik6IG51bWJlciB8IG51bGwge1xyXG4gICAgbGV0IHZhbHVlQXNOdW1iZXI6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgIHZhbHVlQXNOdW1iZXIgPSB2YWx1ZTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICB2YWx1ZUFzTnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChOdW1iZXIuaXNOYU4odmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZUFzTnVtYmVyO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZUJsdXJFdmVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG5cclxuICAgIGNvbnN0IHZhbHVlQXNTdHJpbmcgPSB0aGlzLnZhbHVlU2ltcGxpZnkodGhpcy52YWx1ZUFzU3RyaW5nKCkpO1xyXG5cclxuICAgIGlmICh0aGlzLnZhbHVlVW5zZXR0bGVkKHZhbHVlQXNTdHJpbmcpKSB7XHJcbiAgICAgIHRoaXMudmFsdWVBc1N0cmluZy51cGRhdGUoKCkgPT4gdGhpcy52YWx1ZVN0cmluZ2lmeSh0aGlzLnZhbHVlKCkpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBoYW5kbGVGb2N1c0V2ZW50KCk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsdWUgPSBtYXNraXRvUGFyc2VOdW1iZXIodGhpcy52YWx1ZUFzU3RyaW5nKCksIHRoaXMuZGVjaW1hbFNlcGFyYXRvcigpKTtcclxuXHJcbiAgICBpZiAoTnVtYmVyLmlzTmFOKHZhbHVlKSAmJiAhdGhpcy5yZWFkb25seSgpKSB7XHJcbiAgICAgIHRoaXMudmFsdWVBc1N0cmluZy5zZXQoJycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZUlucHV0RXZlbnQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRFbGVtZW50UmVmKCk7XHJcblxyXG4gICAgY29uc3QgdmFsdWVBc1N0cmluZyA9IHRoaXMudmFsdWVTaW1wbGlmeShpbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcclxuXHJcbiAgICBpZiAodGhpcy52YWx1ZVVuc2V0dGxlZCh2YWx1ZUFzU3RyaW5nKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy52YWx1ZUFzU3RyaW5nLnVwZGF0ZSgoKSA9PiBpbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMucGFyc2VOdW1iZXIodmFsdWVBc1N0cmluZyk7XHJcblxyXG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2YWx1ZSA8IHRoaXMuYXJpYVZhbHVlTWluKCkgfHwgdmFsdWUgPiB0aGlzLmFyaWFWYWx1ZU1heCgpKSB7XHJcbiAgICAgIHJldHVybiB2b2lkIDA7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiPGlucHV0XHJcbiAgI2lucHV0RWxlbWVudFJlZlxyXG4gIHR5cGU9XCJ0ZXh0XCJcclxuICByb2xlPVwic3BpbmJ1dHRvblwiXHJcbiAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXHJcbiAgW3ZhbHVlXT0ndmFsdWVBc1N0cmluZygpJ1xyXG4gIFthdHRyLmlkXT1cImlucHV0SWQoKVwiXHJcbiAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQoKSA/IC0xIDogdGFiaW5kZXgoKVwiXHJcbiAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCB1bmRlZmluZWRcIlxyXG4gIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5KCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heGxlbmd0aCgpXCJcclxuICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS12YWx1ZW1heF09XCJhcmlhVmFsdWVNYXgoKVwiXHJcbiAgW2F0dHIuYXJpYS12YWx1ZW1pbl09XCJhcmlhVmFsdWVNaW4oKVwiXHJcbiAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJhcmlhVmFsdWVOb3coKVwiXHJcbiAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1yZWFkb25seV09XCJyZWFkb25seSgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxhYmVsSWQoKVwiXHJcbiAgKGJsdXIpPVwiaGFuZGxlQmx1ckV2ZW50KClcIlxyXG4gIChmb2N1cyk9XCJoYW5kbGVGb2N1c0V2ZW50KClcIlxyXG4gIChpbnB1dCk9XCJoYW5kbGVJbnB1dEV2ZW50KClcIlxyXG4vPlxyXG5cclxuQGlmIChzdGVwKCkgJiYgIXJlYWRvbmx5KCkpIHtcclxuICA8bGF0LXNwaW5uZXJzIC8+XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class IconComponent {
|
|
3
|
+
readonly resolve: (name: string) => string;
|
|
4
|
+
readonly url: import("@angular/core").InputSignal<string | undefined>;
|
|
5
|
+
readonly name: import("@angular/core").InputSignal<string | undefined>;
|
|
6
|
+
readonly icon: import("@angular/core").Signal<string>;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IconComponent, never>;
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "lat-icon", ["latIcon"], { "url": { "alias": "url"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9
|
+
}
|
package/input/README.md
ADDED