@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.
Files changed (120) hide show
  1. package/README.md +7 -0
  2. package/button/README.md +3 -0
  3. package/button/latitude-ui-widgets-button.d.ts +5 -0
  4. package/button/public-api.d.ts +2 -0
  5. package/button/src/button.component.d.ts +14 -0
  6. package/button/src/button.types.d.ts +2 -0
  7. package/checkbox/latitude-ui-widgets-checkbox.d.ts +5 -0
  8. package/checkbox/public-api.d.ts +1 -0
  9. package/checkbox/src/checkbox.component.d.ts +7 -0
  10. package/combobox/latitude-ui-widgets-combobox.d.ts +5 -0
  11. package/combobox/public-api.d.ts +2 -0
  12. package/core/README.md +3 -0
  13. package/core/latitude-ui-widgets-core.d.ts +5 -0
  14. package/core/public-api.d.ts +4 -0
  15. package/core/src/illegal.d.ts +2 -0
  16. package/core/src/listeners.d.ts +8 -0
  17. package/core/src/noop.d.ts +1 -0
  18. package/core/src/uid.d.ts +1 -0
  19. package/esm2022/button/latitude-ui-widgets-button.js +5 -0
  20. package/esm2022/button/public-api.js +3 -0
  21. package/esm2022/button/src/button.component.js +44 -0
  22. package/esm2022/button/src/button.types.js +1 -0
  23. package/esm2022/checkbox/latitude-ui-widgets-checkbox.js +5 -0
  24. package/esm2022/checkbox/public-api.js +2 -0
  25. package/esm2022/checkbox/src/checkbox.component.js +33 -0
  26. package/esm2022/combobox/latitude-ui-widgets-combobox.js +5 -0
  27. package/esm2022/combobox/public-api.js +2 -0
  28. package/esm2022/core/latitude-ui-widgets-core.js +5 -0
  29. package/esm2022/core/public-api.js +5 -0
  30. package/esm2022/core/src/illegal.js +5 -0
  31. package/esm2022/core/src/listeners.js +32 -0
  32. package/esm2022/core/src/noop.js +3 -0
  33. package/esm2022/core/src/uid.js +4 -0
  34. package/esm2022/icons/latitude-ui-widgets-icons.js +5 -0
  35. package/esm2022/icons/public-api.js +3 -0
  36. package/esm2022/icons/src/icon.component.js +27 -0
  37. package/esm2022/icons/src/icon.tokens.js +13 -0
  38. package/esm2022/input/latitude-ui-widgets-input.js +5 -0
  39. package/esm2022/input/public-api.js +5 -0
  40. package/esm2022/input/src/input-error/i18n/en.js +9 -0
  41. package/esm2022/input/src/input-error/i18n/ru.js +9 -0
  42. package/esm2022/input/src/input-error/input-error.component.js +22 -0
  43. package/esm2022/input/src/input-error/input-error.i18n.js +65 -0
  44. package/esm2022/input/src/input-label/input-label.component.js +20 -0
  45. package/esm2022/input/src/input.component.js +44 -0
  46. package/esm2022/input/src/input.directive.js +115 -0
  47. package/esm2022/input/src/input.types.js +1 -0
  48. package/esm2022/latitude-ui-widgets.js +5 -0
  49. package/esm2022/listbox/latitude-ui-widgets-listbox.js +5 -0
  50. package/esm2022/listbox/public-api.js +3 -0
  51. package/esm2022/listbox/src/listbox-option.component.js +49 -0
  52. package/esm2022/listbox/src/listbox.component.js +14 -0
  53. package/esm2022/public-api.js +2 -0
  54. package/esm2022/select/latitude-ui-widgets-select.js +5 -0
  55. package/esm2022/select/public-api.js +6 -0
  56. package/esm2022/select/src/select-multiple.component.js +53 -0
  57. package/esm2022/select/src/select-option.component.js +14 -0
  58. package/esm2022/select/src/select-single.component.js +59 -0
  59. package/esm2022/select/src/select-trigger.component.js +28 -0
  60. package/esm2022/select/src/select-value.component.js +13 -0
  61. package/esm2022/select/src/select.component.js +44 -0
  62. package/esm2022/select/src/select.directive.js +93 -0
  63. package/esm2022/switch/latitude-ui-widgets-switch.js +5 -0
  64. package/esm2022/switch/public-api.js +2 -0
  65. package/esm2022/switch/src/switch.component.js +30 -0
  66. package/esm2022/textarea/latitude-ui-widgets-textarea.js +5 -0
  67. package/esm2022/textarea/public-api.js +2 -0
  68. package/esm2022/textarea/src/textarea.component.js +37 -0
  69. package/esm2022/textbox/latitude-ui-widgets-textbox.js +5 -0
  70. package/esm2022/textbox/public-api.js +2 -0
  71. package/esm2022/textbox/src/textbox.component.js +33 -0
  72. package/esm2022/textbox-number/latitude-ui-widgets-textbox-number.js +5 -0
  73. package/esm2022/textbox-number/public-api.js +2 -0
  74. package/esm2022/textbox-number/src/spinners.component.js +22 -0
  75. package/esm2022/textbox-number/src/textbox-number.component.js +136 -0
  76. package/icons/latitude-ui-widgets-icons.d.ts +5 -0
  77. package/icons/public-api.d.ts +2 -0
  78. package/icons/src/icon.component.d.ts +9 -0
  79. package/icons/src/icon.tokens.d.ts +3 -0
  80. package/input/README.md +3 -0
  81. package/input/latitude-ui-widgets-input.d.ts +5 -0
  82. package/input/public-api.d.ts +4 -0
  83. package/input/src/input-error/i18n/en.d.ts +9 -0
  84. package/input/src/input-error/i18n/ru.d.ts +9 -0
  85. package/input/src/input-error/input-error.component.d.ts +9 -0
  86. package/input/src/input-error/input-error.i18n.d.ts +28 -0
  87. package/input/src/input-label/input-label.component.d.ts +11 -0
  88. package/input/src/input.component.d.ts +28 -0
  89. package/input/src/input.directive.d.ts +61 -0
  90. package/input/src/input.types.d.ts +1 -0
  91. package/latitude-ui-widgets.d.ts +5 -0
  92. package/listbox/latitude-ui-widgets-listbox.d.ts +5 -0
  93. package/listbox/public-api.d.ts +2 -0
  94. package/listbox/src/listbox-option.component.d.ts +17 -0
  95. package/listbox/src/listbox.component.d.ts +5 -0
  96. package/package.json +89 -0
  97. package/public-api.d.ts +2 -0
  98. package/select/latitude-ui-widgets-select.d.ts +5 -0
  99. package/select/public-api.d.ts +5 -0
  100. package/select/src/select-multiple.component.d.ts +10 -0
  101. package/select/src/select-option.component.d.ts +18 -0
  102. package/select/src/select-single.component.d.ts +10 -0
  103. package/select/src/select-trigger.component.d.ts +9 -0
  104. package/select/src/select-value.component.d.ts +7 -0
  105. package/select/src/select.component.d.ts +13 -0
  106. package/select/src/select.directive.d.ts +19 -0
  107. package/styles/_index.scss +11 -0
  108. package/switch/latitude-ui-widgets-switch.d.ts +5 -0
  109. package/switch/public-api.d.ts +1 -0
  110. package/switch/src/switch.component.d.ts +7 -0
  111. package/textarea/latitude-ui-widgets-textarea.d.ts +5 -0
  112. package/textarea/public-api.d.ts +1 -0
  113. package/textarea/src/textarea.component.d.ts +15 -0
  114. package/textbox/latitude-ui-widgets-textbox.d.ts +5 -0
  115. package/textbox/public-api.d.ts +1 -0
  116. package/textbox/src/textbox.component.d.ts +13 -0
  117. package/textbox-number/latitude-ui-widgets-textbox-number.d.ts +5 -0
  118. package/textbox-number/public-api.d.ts +1 -0
  119. package/textbox-number/src/spinners.component.d.ts +8 -0
  120. package/textbox-number/src/textbox-number.component.d.ts +37 -0
@@ -0,0 +1,44 @@
1
+ import { ChangeDetectionStrategy, Component, computed, contentChild, input, ViewEncapsulation } from '@angular/core';
2
+ import { NgTemplateOutlet } from '@angular/common';
3
+ import { uid } from '@latitude-ui/widgets/core';
4
+ import { BuildInInputValueAccessor } from './input.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class InputComponent {
7
+ id = input();
8
+ size = input();
9
+ input = contentChild.required((BuildInInputValueAccessor));
10
+ htmlId = computed(() => this.id() ?? uid());
11
+ labelId = computed(() => `${this.htmlId()}-label`);
12
+ inputId = computed(() => `${this.htmlId()}-input`);
13
+ value = computed(() => this.input().value());
14
+ valueAsString = computed(() => this.input().valueAsString());
15
+ status = computed(() => this.input().status());
16
+ touched = computed(() => this.input().touched());
17
+ dirty = computed(() => this.input().dirty());
18
+ valid = computed(() => this.input().valid());
19
+ errors = computed(() => this.input().errors());
20
+ invalid = computed(() => this.input().invalid());
21
+ pending = computed(() => this.input().pending());
22
+ pristine = computed(() => this.input().pristine());
23
+ disabled = computed(() => this.input().disabled());
24
+ readonly = computed(() => this.input().readonly());
25
+ required = computed(() => this.input().required());
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: InputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: InputComponent, isStandalone: true, selector: "lat-input", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "attr.id": "htmlId()", "attr.data-size": "size()", "attr.data-input": "inputId()", "attr.data-dirty": "dirty() || undefined", "attr.data-invalid": "invalid() || undefined", "attr.data-pristine": "pristine() || undefined", "attr.data-disabled": "disabled() || undefined", "attr.data-readonly": "readonly() || undefined", "attr.data-required": "required() || undefined" } }, queries: [{ propertyName: "input", first: true, predicate: (BuildInInputValueAccessor), descendants: true, isSignal: true }], exportAs: ["latInput"], ngImport: i0, template: "<ng-content select=\"lat-input-label\"/>\r\n\r\n<ng-content/>\r\n\r\n@if (dirty() && errors()) {\r\n <ng-template [ngTemplateOutlet]=\"assertive\"/>\r\n}\r\n\r\n<ng-template #assertive>\r\n <ng-content select=\"lat-input-error\"/>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: InputComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ imports: [NgTemplateOutlet], exportAs: 'latInput', selector: 'lat-input', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
32
+ role: 'presentation',
33
+ '[attr.id]': 'htmlId()',
34
+ '[attr.data-size]': 'size()',
35
+ '[attr.data-input]': 'inputId()',
36
+ '[attr.data-dirty]': 'dirty() || undefined',
37
+ '[attr.data-invalid]': 'invalid() || undefined',
38
+ '[attr.data-pristine]': 'pristine() || undefined',
39
+ '[attr.data-disabled]': 'disabled() || undefined',
40
+ '[attr.data-readonly]': 'readonly() || undefined',
41
+ '[attr.data-required]': 'required() || undefined',
42
+ }, template: "<ng-content select=\"lat-input-label\"/>\r\n\r\n<ng-content/>\r\n\r\n@if (dirty() && errors()) {\r\n <ng-template [ngTemplateOutlet]=\"assertive\"/>\r\n}\r\n\r\n<ng-template #assertive>\r\n <ng-content select=\"lat-input-error\"/>\r\n</ng-template>\r\n" }]
43
+ }] });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9pbnB1dC9zcmMvaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9pbnB1dC9zcmMvaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBdUI5RCxNQUFNLE9BQU8sY0FBYztJQUNULEVBQUUsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUNyQixJQUFJLEdBQUcsS0FBSyxFQUFhLENBQUM7SUFFMUIsS0FBSyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQSx5QkFBNEIsQ0FBQSxDQUFDLENBQUM7SUFFNUQsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM1QyxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRCxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVuRCxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLGFBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFFN0QsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMvQyxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRWpELEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDN0MsS0FBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUM3QyxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDakQsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNqRCxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkQsUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNuRCxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO3VHQXhCeEQsY0FBYzsyRkFBZCxjQUFjLDJ3QkFJcUIsQ0FBQSx5QkFBNEIsQ0FBQSx3RkNoQzVFLGdRQVdBLDRDREZZLGdCQUFnQjs7MkZBbUJmLGNBQWM7a0JBcEIxQixTQUFTOzhCQUNDLENBQUMsZ0JBQWdCLENBQUMsWUFDakIsVUFBVSxZQUNWLFdBQVcsaUJBRU4saUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDSixJQUFJLEVBQUUsY0FBYzt3QkFDcEIsV0FBVyxFQUFFLFVBQVU7d0JBQ3ZCLGtCQUFrQixFQUFFLFFBQVE7d0JBQzVCLG1CQUFtQixFQUFFLFdBQVc7d0JBQ2hDLG1CQUFtQixFQUFFLHNCQUFzQjt3QkFDM0MscUJBQXFCLEVBQUUsd0JBQXdCO3dCQUMvQyxzQkFBc0IsRUFBRSx5QkFBeUI7d0JBQ2pELHNCQUFzQixFQUFFLHlCQUF5Qjt3QkFDakQsc0JBQXNCLEVBQUUseUJBQXlCO3dCQUNqRCxzQkFBc0IsRUFBRSx5QkFBeUI7cUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGNvbnRlbnRDaGlsZCwgaW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuaW1wb3J0IHsgdWlkIH0gZnJvbSAnQGxhdGl0dWRlLXVpL3dpZGdldHMvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBCdWlsZEluSW5wdXRWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi9pbnB1dC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbnB1dFNpemUgfSBmcm9tICcuL2lucHV0LnR5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0XSxcclxuICBleHBvcnRBczogJ2xhdElucHV0JyxcclxuICBzZWxlY3RvcjogJ2xhdC1pbnB1dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGhvc3Q6IHtcclxuICAgIHJvbGU6ICdwcmVzZW50YXRpb24nLFxyXG4gICAgJ1thdHRyLmlkXSc6ICdodG1sSWQoKScsXHJcbiAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdzaXplKCknLFxyXG4gICAgJ1thdHRyLmRhdGEtaW5wdXRdJzogJ2lucHV0SWQoKScsXHJcbiAgICAnW2F0dHIuZGF0YS1kaXJ0eV0nOiAnZGlydHkoKSB8fCB1bmRlZmluZWQnLFxyXG4gICAgJ1thdHRyLmRhdGEtaW52YWxpZF0nOiAnaW52YWxpZCgpIHx8IHVuZGVmaW5lZCcsXHJcbiAgICAnW2F0dHIuZGF0YS1wcmlzdGluZV0nOiAncHJpc3RpbmUoKSB8fCB1bmRlZmluZWQnLFxyXG4gICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCkgfHwgdW5kZWZpbmVkJyxcclxuICAgICdbYXR0ci5kYXRhLXJlYWRvbmx5XSc6ICdyZWFkb25seSgpIHx8IHVuZGVmaW5lZCcsXHJcbiAgICAnW2F0dHIuZGF0YS1yZXF1aXJlZF0nOiAncmVxdWlyZWQoKSB8fCB1bmRlZmluZWQnLFxyXG4gIH0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dENvbXBvbmVudDxUPiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nPigpO1xyXG4gIHB1YmxpYyByZWFkb25seSBzaXplID0gaW5wdXQ8SW5wdXRTaXplPigpO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXQgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoQnVpbGRJbklucHV0VmFsdWVBY2Nlc3NvcjxUPik7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBodG1sSWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlkKCkgPz8gdWlkKCkpO1xyXG4gIHB1YmxpYyByZWFkb25seSBsYWJlbElkID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5odG1sSWQoKX0tbGFiZWxgKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRJZCA9IGNvbXB1dGVkKCgpID0+IGAke3RoaXMuaHRtbElkKCl9LWlucHV0YCk7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5wdXQoKS52YWx1ZSgpKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVBc1N0cmluZyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5wdXQoKS52YWx1ZUFzU3RyaW5nKCkpO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbnB1dCgpLnN0YXR1cygpKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdG91Y2hlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5wdXQoKS50b3VjaGVkKCkpO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgZGlydHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlucHV0KCkuZGlydHkoKSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IHZhbGlkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbnB1dCgpLnZhbGlkKCkpO1xyXG4gIHB1YmxpYyByZWFkb25seSBlcnJvcnMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlucHV0KCkuZXJyb3JzKCkpO1xyXG4gIHB1YmxpYyByZWFkb25seSBpbnZhbGlkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbnB1dCgpLmludmFsaWQoKSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IHBlbmRpbmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlucHV0KCkucGVuZGluZygpKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgcHJpc3RpbmUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlucHV0KCkucHJpc3RpbmUoKSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pbnB1dCgpLmRpc2FibGVkKCkpO1xyXG4gIHB1YmxpYyByZWFkb25seSByZWFkb25seSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaW5wdXQoKS5yZWFkb25seSgpKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgcmVxdWlyZWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmlucHV0KCkucmVxdWlyZWQoKSk7XHJcbn1cclxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwibGF0LWlucHV0LWxhYmVsXCIvPlxyXG5cclxuPG5nLWNvbnRlbnQvPlxyXG5cclxuQGlmIChkaXJ0eSgpICYmIGVycm9ycygpKSB7XHJcbiAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFzc2VydGl2ZVwiLz5cclxufVxyXG5cclxuPG5nLXRlbXBsYXRlICNhc3NlcnRpdmU+XHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwibGF0LWlucHV0LWVycm9yXCIvPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -0,0 +1,115 @@
1
+ import { booleanAttribute, computed, Directive, inject, input, linkedSignal, numberAttribute, signal, } from '@angular/core';
2
+ import { NgControl } from '@angular/forms';
3
+ import { noop } from '@latitude-ui/widgets/core';
4
+ import { InputComponent } from './input.component';
5
+ import * as i0 from "@angular/core";
6
+ export class BuildInInputValueAccessor {
7
+ dir = inject(NgControl, { self: true });
8
+ inputDirective = inject((InputComponent), { host: true, optional: true });
9
+ id = input();
10
+ size = input();
11
+ tabindex = input(0, { transform: numberAttribute });
12
+ readonly = input(false, { transform: booleanAttribute });
13
+ required = input(false, { transform: booleanAttribute });
14
+ value = computed(() => this._value());
15
+ control = computed(() => this._control());
16
+ valueAsString = linkedSignal({
17
+ source: () => this._value(),
18
+ computation: (value) => this.valueStringify(value),
19
+ });
20
+ status = computed(() => this._control()?.['statusReactive']());
21
+ touched = computed(() => this._control()?.['touchedReactive']());
22
+ pristine = computed(() => this._control()?.['pristineReactive']());
23
+ valid = computed(() => this.status() === 'VALID');
24
+ invalid = computed(() => this.status() === 'INVALID');
25
+ pending = computed(() => this.status() === 'PENDING');
26
+ disabled = computed(() => this.status() === 'DISABLED');
27
+ dirty = computed(() => !this.pristine());
28
+ errors = computed(() => {
29
+ const status = this.status();
30
+ const control = this._control();
31
+ return control !== null && status === 'INVALID' ? { ...control.errors } : null;
32
+ });
33
+ inputId = computed(() => (this.inputDirective ? this.inputDirective.inputId() : this.id()));
34
+ labelId = computed(() => (this.inputDirective ? this.inputDirective.labelId() : undefined));
35
+ inputSize = computed(() => (this.inputDirective ? this.inputDirective.size() : this.size()));
36
+ _value = signal(this.dir.value);
37
+ _control = signal(null);
38
+ constructor() {
39
+ this.dir.valueAccessor = {
40
+ writeValue: (value) => {
41
+ this._writeValue(value);
42
+ },
43
+ registerOnChange: (callback) => {
44
+ this._control.update(() => this.dir.control);
45
+ this._markAsChanged = () => callback(this._value());
46
+ },
47
+ registerOnTouched: (callback) => {
48
+ this._markAsTouched = () => callback();
49
+ },
50
+ };
51
+ }
52
+ /**
53
+ * Sets the "value" property on the input element.
54
+ */
55
+ writeValue(value) {
56
+ if (this._writeValue(value)) {
57
+ this._markAsChanged();
58
+ }
59
+ }
60
+ /**
61
+ * Marks the control as `dirty`.
62
+ */
63
+ markAsChanged() {
64
+ this._markAsChanged();
65
+ }
66
+ /**
67
+ * Marks the control as `touched`.
68
+ */
69
+ markAsTouched() {
70
+ this._markAsTouched();
71
+ }
72
+ /**
73
+ * @nodoc
74
+ */
75
+ valueEquality(value0, value1) {
76
+ return Object.is(value0, value1);
77
+ }
78
+ /**
79
+ * @nodoc
80
+ */
81
+ valueStringify(value) {
82
+ return value !== null && value !== undefined ? value.toString() : '';
83
+ }
84
+ /** @internal */
85
+ _writeValue(value0) {
86
+ const value = this._value();
87
+ if (this.valueEquality(value, value0)) {
88
+ return false;
89
+ }
90
+ this._value.set(value0);
91
+ return true;
92
+ }
93
+ /** @internal */
94
+ _markAsTouched = noop;
95
+ /** @internal */
96
+ _markAsChanged = noop;
97
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: BuildInInputValueAccessor, deps: [], target: i0.ɵɵFactoryTarget.Directive });
98
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.4", type: BuildInInputValueAccessor, isStandalone: true, inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, tabindex: { classPropertyName: "tabindex", publicName: "tabindex", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "presentation" }, properties: { "attr.data-size": "inputSize() || undefined", "attr.data-dirty": "dirty() || undefined", "attr.data-invalid": "invalid() || undefined", "attr.data-pristine": "pristine() || undefined", "attr.data-disabled": "disabled() || undefined", "attr.data-readonly": "readonly() || undefined", "attr.data-required": "required() || undefined" } }, ngImport: i0 });
99
+ }
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: BuildInInputValueAccessor, decorators: [{
101
+ type: Directive,
102
+ args: [{
103
+ host: {
104
+ role: 'presentation',
105
+ '[attr.data-size]': 'inputSize() || undefined',
106
+ '[attr.data-dirty]': 'dirty() || undefined',
107
+ '[attr.data-invalid]': 'invalid() || undefined',
108
+ '[attr.data-pristine]': 'pristine() || undefined',
109
+ '[attr.data-disabled]': 'disabled() || undefined',
110
+ '[attr.data-readonly]': 'readonly() || undefined',
111
+ '[attr.data-required]': 'required() || undefined',
112
+ },
113
+ }]
114
+ }], ctorParameters: () => [] });
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9pbnB1dC9zcmMvaW5wdXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsUUFBUSxFQUNSLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFlBQVksRUFDWixlQUFlLEVBQ2YsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBc0MsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0UsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFlbkQsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQixHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLGNBQWMsR0FBRyxNQUFNLENBQUMsQ0FBQSxjQUFpQixDQUFBLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRTNFLEVBQUUsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUNyQixJQUFJLEdBQUcsS0FBSyxFQUFhLENBQUM7SUFDMUIsUUFBUSxHQUFHLEtBQUssQ0FBa0IsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDckUsUUFBUSxHQUFHLEtBQUssQ0FBbUIsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUMzRSxRQUFRLEdBQUcsS0FBSyxDQUFtQixLQUFLLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRTNFLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdEMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUUxQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQzNDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQzNCLFdBQVcsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUM7S0FDbkQsQ0FBQyxDQUFDO0lBRWEsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUF1QixDQUFDLENBQUM7SUFDcEYsT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFhLENBQUMsQ0FBQztJQUM1RSxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQWEsQ0FBQyxDQUFDO0lBRTlFLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLFVBQVUsQ0FBQyxDQUFDO0lBRXhELEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN6QyxNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWhDLE9BQU8sT0FBTyxLQUFLLElBQUksSUFBSSxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDakYsQ0FBQyxDQUFDLENBQUM7SUFFYSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RixPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM1RixTQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU1RixNQUFNLEdBQUcsTUFBTSxDQUFXLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsUUFBUSxHQUFHLE1BQU0sQ0FBeUIsSUFBSSxDQUFDLENBQUM7SUFFakU7UUFDRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRztZQUN2QixVQUFVLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixDQUFDO1lBQ0QsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFtQyxFQUFFLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELENBQUM7WUFDRCxpQkFBaUIsRUFBRSxDQUFDLFFBQW9CLEVBQUUsRUFBRTtnQkFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6QyxDQUFDO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxLQUFlO1FBQy9CLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNsQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNsQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYSxDQUFDLE1BQWdCLEVBQUUsTUFBZTtRQUNwRCxPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWMsQ0FBQyxLQUFjO1FBQ2xDLE9BQU8sS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQsZ0JBQWdCO0lBQ1IsV0FBVyxDQUFDLE1BQWdCO1FBQ2xDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUU1QixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFeEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZ0JBQWdCO0lBQ1IsY0FBYyxHQUFpQixJQUFJLENBQUM7SUFFNUMsZ0JBQWdCO0lBQ1IsY0FBYyxHQUFpQixJQUFJLENBQUM7dUdBL0dqQyx5QkFBeUI7MkZBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFackMsU0FBUzttQkFBQztvQkFDVCxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLGNBQWM7d0JBQ3BCLGtCQUFrQixFQUFFLDBCQUEwQjt3QkFDOUMsbUJBQW1CLEVBQUUsc0JBQXNCO3dCQUMzQyxxQkFBcUIsRUFBRSx3QkFBd0I7d0JBQy9DLHNCQUFzQixFQUFFLHlCQUF5Qjt3QkFDakQsc0JBQXNCLEVBQUUseUJBQXlCO3dCQUNqRCxzQkFBc0IsRUFBRSx5QkFBeUI7d0JBQ2pELHNCQUFzQixFQUFFLHlCQUF5QjtxQkFDbEQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXHJcbiAgY29tcHV0ZWQsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIGluamVjdCxcclxuICBpbnB1dCxcclxuICBsaW5rZWRTaWduYWwsXHJcbiAgbnVtYmVyQXR0cmlidXRlLFxyXG4gIHNpZ25hbCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbFN0YXR1cywgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgbm9vcCB9IGZyb20gJ0BsYXRpdHVkZS11aS93aWRnZXRzL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2lucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElucHV0U2l6ZSB9IGZyb20gJy4vaW5wdXQudHlwZXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgaG9zdDoge1xyXG4gICAgcm9sZTogJ3ByZXNlbnRhdGlvbicsXHJcbiAgICAnW2F0dHIuZGF0YS1zaXplXSc6ICdpbnB1dFNpemUoKSB8fCB1bmRlZmluZWQnLFxyXG4gICAgJ1thdHRyLmRhdGEtZGlydHldJzogJ2RpcnR5KCkgfHwgdW5kZWZpbmVkJyxcclxuICAgICdbYXR0ci5kYXRhLWludmFsaWRdJzogJ2ludmFsaWQoKSB8fCB1bmRlZmluZWQnLFxyXG4gICAgJ1thdHRyLmRhdGEtcHJpc3RpbmVdJzogJ3ByaXN0aW5lKCkgfHwgdW5kZWZpbmVkJyxcclxuICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdkaXNhYmxlZCgpIHx8IHVuZGVmaW5lZCcsXHJcbiAgICAnW2F0dHIuZGF0YS1yZWFkb25seV0nOiAncmVhZG9ubHkoKSB8fCB1bmRlZmluZWQnLFxyXG4gICAgJ1thdHRyLmRhdGEtcmVxdWlyZWRdJzogJ3JlcXVpcmVkKCkgfHwgdW5kZWZpbmVkJyxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnVpbGRJbklucHV0VmFsdWVBY2Nlc3NvcjxUPiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRpciA9IGluamVjdChOZ0NvbnRyb2wsIHsgc2VsZjogdHJ1ZSB9KTtcclxuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXREaXJlY3RpdmUgPSBpbmplY3QoSW5wdXRDb21wb25lbnQ8VD4sIHsgaG9zdDogdHJ1ZSwgb3B0aW9uYWw6IHRydWUgfSk7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZz4oKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2l6ZSA9IGlucHV0PElucHV0U2l6ZT4oKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgdGFiaW5kZXggPSBpbnB1dDxudW1iZXIsIHVua25vd24+KDAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IHJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbiwgdW5rbm93bj4oZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xyXG4gIHB1YmxpYyByZWFkb25seSByZXF1aXJlZCA9IGlucHV0PGJvb2xlYW4sIHVua25vd24+KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fdmFsdWUoKSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRyb2wgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl9jb250cm9sKCkpO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgdmFsdWVBc1N0cmluZyA9IGxpbmtlZFNpZ25hbCh7XHJcbiAgICBzb3VyY2U6ICgpID0+IHRoaXMuX3ZhbHVlKCksXHJcbiAgICBjb21wdXRhdGlvbjogKHZhbHVlKSA9PiB0aGlzLnZhbHVlU3RyaW5naWZ5KHZhbHVlKSxcclxuICB9KTtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuX2NvbnRyb2woKT8uWydzdGF0dXNSZWFjdGl2ZSddKCkgYXMgRm9ybUNvbnRyb2xTdGF0dXMpO1xyXG4gIHB1YmxpYyByZWFkb25seSB0b3VjaGVkID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fY29udHJvbCgpPy5bJ3RvdWNoZWRSZWFjdGl2ZSddKCkgYXMgYm9vbGVhbik7XHJcbiAgcHVibGljIHJlYWRvbmx5IHByaXN0aW5lID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5fY29udHJvbCgpPy5bJ3ByaXN0aW5lUmVhY3RpdmUnXSgpIGFzIGJvb2xlYW4pO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgdmFsaWQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXR1cygpID09PSAnVkFMSUQnKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgaW52YWxpZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhdHVzKCkgPT09ICdJTlZBTElEJyk7XHJcbiAgcHVibGljIHJlYWRvbmx5IHBlbmRpbmcgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnN0YXR1cygpID09PSAnUEVORElORycpO1xyXG4gIHB1YmxpYyByZWFkb25seSBkaXNhYmxlZCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc3RhdHVzKCkgPT09ICdESVNBQkxFRCcpO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgZGlydHkgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5wcmlzdGluZSgpKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgZXJyb3JzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXMoKTtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9jb250cm9sKCk7XHJcblxyXG4gICAgcmV0dXJuIGNvbnRyb2wgIT09IG51bGwgJiYgc3RhdHVzID09PSAnSU5WQUxJRCcgPyB7IC4uLmNvbnRyb2wuZXJyb3JzIH0gOiBudWxsO1xyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRJZCA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmlucHV0RGlyZWN0aXZlID8gdGhpcy5pbnB1dERpcmVjdGl2ZS5pbnB1dElkKCkgOiB0aGlzLmlkKCkpKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgbGFiZWxJZCA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmlucHV0RGlyZWN0aXZlID8gdGhpcy5pbnB1dERpcmVjdGl2ZS5sYWJlbElkKCkgOiB1bmRlZmluZWQpKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRTaXplID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaW5wdXREaXJlY3RpdmUgPyB0aGlzLmlucHV0RGlyZWN0aXZlLnNpemUoKSA6IHRoaXMuc2l6ZSgpKSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZhbHVlID0gc2lnbmFsPFQgfCBudWxsPih0aGlzLmRpci52YWx1ZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfY29udHJvbCA9IHNpZ25hbDxBYnN0cmFjdENvbnRyb2wgfCBudWxsPihudWxsKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICB0aGlzLmRpci52YWx1ZUFjY2Vzc29yID0ge1xyXG4gICAgICB3cml0ZVZhbHVlOiAodmFsdWU6IFQgfCBudWxsKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fd3JpdGVWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHJlZ2lzdGVyT25DaGFuZ2U6IChjYWxsYmFjazogKHZhbHVlOiBUIHwgbnVsbCkgPT4gdm9pZCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2NvbnRyb2wudXBkYXRlKCgpID0+IHRoaXMuZGlyLmNvbnRyb2wpO1xyXG4gICAgICAgIHRoaXMuX21hcmtBc0NoYW5nZWQgPSAoKSA9PiBjYWxsYmFjayh0aGlzLl92YWx1ZSgpKTtcclxuICAgICAgfSxcclxuICAgICAgcmVnaXN0ZXJPblRvdWNoZWQ6IChjYWxsYmFjazogKCkgPT4gdm9pZCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX21hcmtBc1RvdWNoZWQgPSAoKSA9PiBjYWxsYmFjaygpO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldHMgdGhlIFwidmFsdWVcIiBwcm9wZXJ0eSBvbiB0aGUgaW5wdXQgZWxlbWVudC5cclxuICAgKi9cclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogVCB8IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl93cml0ZVZhbHVlKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLl9tYXJrQXNDaGFuZ2VkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNYXJrcyB0aGUgY29udHJvbCBhcyBgZGlydHlgLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBtYXJrQXNDaGFuZ2VkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbWFya0FzQ2hhbmdlZCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWFya3MgdGhlIGNvbnRyb2wgYXMgYHRvdWNoZWRgLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBtYXJrQXNUb3VjaGVkKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbWFya0FzVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG5vZG9jXHJcbiAgICovXHJcbiAgcHVibGljIHZhbHVlRXF1YWxpdHkodmFsdWUwOiBUIHwgbnVsbCwgdmFsdWUxOiB1bmtub3duKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmlzKHZhbHVlMCwgdmFsdWUxKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBub2RvY1xyXG4gICAqL1xyXG4gIHB1YmxpYyB2YWx1ZVN0cmluZ2lmeSh2YWx1ZTogdW5rbm93bik6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlLnRvU3RyaW5nKCkgOiAnJztcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgKi9cclxuICBwcml2YXRlIF93cml0ZVZhbHVlKHZhbHVlMDogVCB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fdmFsdWUoKTtcclxuXHJcbiAgICBpZiAodGhpcy52YWx1ZUVxdWFsaXR5KHZhbHVlLCB2YWx1ZTApKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLl92YWx1ZS5zZXQodmFsdWUwKTtcclxuXHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKiBAaW50ZXJuYWwgKi9cclxuICBwcml2YXRlIF9tYXJrQXNUb3VjaGVkOiBWb2lkRnVuY3Rpb24gPSBub29wO1xyXG5cclxuICAvKiogQGludGVybmFsICovXHJcbiAgcHJpdmF0ZSBfbWFya0FzQ2hhbmdlZDogVm9pZEZ1bmN0aW9uID0gbm9vcDtcclxufVxyXG4iXX0=
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL2lucHV0L3NyYy9pbnB1dC50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSW5wdXRTaXplID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCcgfCBudWxsIHwgdW5kZWZpbmVkIHwgKHN0cmluZyAmIHt9KTtcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aXR1ZGUtdWktd2lkZ2V0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvbGF0aXR1ZGUtdWktd2lkZ2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aXR1ZGUtdWktd2lkZ2V0cy1saXN0Ym94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9saXN0Ym94L2xhdGl0dWRlLXVpLXdpZGdldHMtbGlzdGJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './src/listbox.component';
2
+ export * from './src/listbox-option.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvbGlzdGJveC9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL2xpc3Rib3guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2xpc3Rib3gtb3B0aW9uLmNvbXBvbmVudCc7XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { booleanAttribute, ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, input, numberAttribute, Renderer2, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ListBoxOptionComponent {
4
+ nativeElement = inject((ElementRef)).nativeElement;
5
+ value = input.required();
6
+ setsize = input(undefined, { transform: numberAttribute });
7
+ posinset = input(undefined, { transform: numberAttribute });
8
+ selected = input(undefined, { transform: booleanAttribute });
9
+ disabled = input(undefined, { transform: booleanAttribute });
10
+ checkbox = input(undefined, { transform: booleanAttribute });
11
+ constructor() {
12
+ this._setUpHostListeners();
13
+ }
14
+ /**
15
+ * https://github.com/angular/angular/issues/9587
16
+ */
17
+ _setUpHostListeners() {
18
+ const render = inject(Renderer2);
19
+ const destroy = inject(DestroyRef);
20
+ const unclick = render.listen(this.nativeElement, 'click', (event) => {
21
+ if (this.disabled()) {
22
+ event.stopImmediatePropagation();
23
+ event.preventDefault();
24
+ }
25
+ });
26
+ const unkeyup = render.listen(this.nativeElement, 'keyup', (event) => {
27
+ if (event.code === 'Space' && !this.disabled()) {
28
+ this.nativeElement.dispatchEvent(new MouseEvent('click', { ...event }));
29
+ }
30
+ });
31
+ destroy.onDestroy(() => {
32
+ unclick();
33
+ unkeyup();
34
+ });
35
+ }
36
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: ListBoxOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.4", type: ListBoxOptionComponent, isStandalone: true, selector: "lat-listbox-option, lat-option", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, setsize: { classPropertyName: "setsize", publicName: "setsize", isSignal: true, isRequired: false, transformFunction: null }, posinset: { classPropertyName: "posinset", publicName: "posinset", isSignal: true, isRequired: false, transformFunction: null }, selected: { classPropertyName: "selected", publicName: "selected", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, checkbox: { classPropertyName: "checkbox", publicName: "checkbox", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "option" }, properties: { "attr.aria-setsize": "setsize()", "attr.aria-posinset": "posinset()", "attr.aria-disabled": "disabled()", "attr.aria-selected": "selected()" } }, exportAs: ["latListBoxOption"], ngImport: i0, template: "<ng-content />\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
38
+ }
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: ListBoxOptionComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ exportAs: 'latListBoxOption', selector: 'lat-listbox-option, lat-option', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
42
+ role: 'option',
43
+ '[attr.aria-setsize]': 'setsize()',
44
+ '[attr.aria-posinset]': 'posinset()',
45
+ '[attr.aria-disabled]': 'disabled()',
46
+ '[attr.aria-selected]': 'selected()',
47
+ }, template: "<ng-content />\r\n" }]
48
+ }], ctorParameters: () => [] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9saXN0Ym94L3NyYy9saXN0Ym94LW9wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL2xpc3Rib3gvc3JjL2xpc3Rib3gtb3B0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFBRSxVQUFVLEVBQ3JCLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLGVBQWUsRUFBRSxTQUFTLEVBQzFCLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQzs7QUFnQnZCLE1BQU0sT0FBTyxzQkFBc0I7SUFDakIsYUFBYSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUU5RCxLQUFLLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBSyxDQUFDO0lBRTVCLE9BQU8sR0FBRyxLQUFLLENBQWtCLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLFFBQVEsR0FBRyxLQUFLLENBQWtCLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLFFBQVEsR0FBRyxLQUFLLENBQW1CLFNBQVMsRUFBRSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDL0UsUUFBUSxHQUFHLEtBQUssQ0FBbUIsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUMvRSxRQUFRLEdBQUcsS0FBSyxDQUFtQixTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBRS9GO1FBQ0UsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQzFFLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO2dCQUNqQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQW9CLEVBQUUsRUFBRTtZQUNsRixJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzFFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JCLE9BQU8sRUFBRSxDQUFDO1lBQ1YsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBdkNVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLHlrQ0N6Qm5DLG9CQUNBOzsyRkR3QmEsc0JBQXNCO2tCQWRsQyxTQUFTOytCQUNFLGtCQUFrQixZQUNsQixnQ0FBZ0MsaUJBRTNCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osSUFBSSxFQUFFLFFBQVE7d0JBQ2QscUJBQXFCLEVBQUUsV0FBVzt3QkFDbEMsc0JBQXNCLEVBQUUsWUFBWTt3QkFDcEMsc0JBQXNCLEVBQUUsWUFBWTt3QkFDcEMsc0JBQXNCLEVBQUUsWUFBWTtxQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBEZXN0cm95UmVmLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsIFJlbmRlcmVyMixcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBleHBvcnRBczogJ2xhdExpc3RCb3hPcHRpb24nLFxuICBzZWxlY3RvcjogJ2xhdC1saXN0Ym94LW9wdGlvbiwgbGF0LW9wdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9saXN0Ym94LW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgcm9sZTogJ29wdGlvbicsXG4gICAgJ1thdHRyLmFyaWEtc2V0c2l6ZV0nOiAnc2V0c2l6ZSgpJyxcbiAgICAnW2F0dHIuYXJpYS1wb3NpbnNldF0nOiAncG9zaW5zZXQoKScsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCknLFxuICAgICdbYXR0ci5hcmlhLXNlbGVjdGVkXSc6ICdzZWxlY3RlZCgpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgTGlzdEJveE9wdGlvbkNvbXBvbmVudDxUPiB7XG4gIHB1YmxpYyByZWFkb25seSBuYXRpdmVFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KS5uYXRpdmVFbGVtZW50O1xuXG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZSA9IGlucHV0LnJlcXVpcmVkPFQ+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNldHNpemUgPSBpbnB1dDxudW1iZXIsIHVua25vd24+KHVuZGVmaW5lZCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgcHVibGljIHJlYWRvbmx5IHBvc2luc2V0ID0gaW5wdXQ8bnVtYmVyLCB1bmtub3duPih1bmRlZmluZWQsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZCA9IGlucHV0PGJvb2xlYW4sIHVua25vd24+KHVuZGVmaW5lZCwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gIHB1YmxpYyByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4sIHVua25vd24+KHVuZGVmaW5lZCwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG4gIHB1YmxpYyByZWFkb25seSBjaGVja2JveCA9IGlucHV0PGJvb2xlYW4sIHVua25vd24+KHVuZGVmaW5lZCwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fc2V0VXBIb3N0TGlzdGVuZXJzKCk7XG4gIH1cblxuICAvKipcbiAgICogIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzk1ODdcbiAgICovXG4gIHByaXZhdGUgX3NldFVwSG9zdExpc3RlbmVycygpIHtcbiAgICBjb25zdCByZW5kZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgICBjb25zdCBkZXN0cm95ID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3QgdW5jbGljayA9IHJlbmRlci5saXN0ZW4odGhpcy5uYXRpdmVFbGVtZW50LCAnY2xpY2snLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgY29uc3QgdW5rZXl1cCA9IHJlbmRlci5saXN0ZW4odGhpcy5uYXRpdmVFbGVtZW50LCAna2V5dXAnLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5jb2RlID09PSAnU3BhY2UnICYmICF0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IE1vdXNlRXZlbnQoJ2NsaWNrJywgeyAuLi5ldmVudCB9KSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBkZXN0cm95Lm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICB1bmNsaWNrKCk7XG4gICAgICB1bmtleXVwKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IC8+XHJcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { Component, ViewEncapsulation } from '@angular/core';
2
+ import { ChangeDetectionStrategy } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class ListBoxComponent {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: ListBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.4", type: ListBoxComponent, isStandalone: true, selector: "lat-listbox", host: { attributes: { "role": "presentation" } }, exportAs: ["latListBox"], ngImport: i0, template: "<div role=\"listbox\">\r\n <ng-content select=\"lat-listbox-option, lat-option\" />\r\n</div>\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: ListBoxComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ exportAs: 'latListBox', selector: 'lat-listbox', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
11
+ role: 'presentation',
12
+ }, template: "<div role=\"listbox\">\r\n <ng-content select=\"lat-listbox-option, lat-option\" />\r\n</div>\r\n" }]
13
+ }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL2xpc3Rib3gvc3JjL2xpc3Rib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9saXN0Ym94L3NyYy9saXN0Ym94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVl4RCxNQUFNLE9BQU8sZ0JBQWdCO3VHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQixtSkNkN0Isb0dBR0E7OzJGRFdhLGdCQUFnQjtrQkFWNUIsU0FBUzsrQkFDRSxZQUFZLFlBQ1osYUFBYSxpQkFFUixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLElBQUksRUFBRSxjQUFjO3FCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAnbGF0TGlzdEJveCcsXG4gIHNlbGVjdG9yOiAnbGF0LWxpc3Rib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdGJveC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgcm9sZTogJ3ByZXNlbnRhdGlvbicsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIExpc3RCb3hDb21wb25lbnQge1xufVxuIiwiPGRpdiByb2xlPVwibGlzdGJveFwiPlxyXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImxhdC1saXN0Ym94LW9wdGlvbiwgbGF0LW9wdGlvblwiIC8+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export default void 0;
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxlQUFlLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgdm9pZCAwO1xyXG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aXR1ZGUtdWktd2lkZ2V0cy1zZWxlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL3NlbGVjdC9sYXRpdHVkZS11aS13aWRnZXRzLXNlbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,6 @@
1
+ export * from './src/select-option.component';
2
+ export * from './src/select-multiple.component';
3
+ export * from './src/select-single.component';
4
+ export * from './src/select.component';
5
+ export * from './src/select.directive';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvc2VsZWN0L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VsZWN0LW11bHRpcGxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZWxlY3Qtc2luZ2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3NlbGVjdC5kaXJlY3RpdmUnO1xuIl19
@@ -0,0 +1,53 @@
1
+ import { afterRenderEffect, ChangeDetectionStrategy, Component, signal, ViewEncapsulation } from '@angular/core';
2
+ import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
3
+ import { IconComponent } from '@latitude-ui/widgets/icons';
4
+ import { ListBoxComponent, ListBoxOptionComponent } from '@latitude-ui/widgets/listbox';
5
+ import { SelectComponent } from './select.component';
6
+ import { SelectTriggerComponent } from './select-trigger.component';
7
+ import { SelectValueComponent } from './select-value.component';
8
+ import * as i0 from "@angular/core";
9
+ export class SelectMultipleComponent extends SelectComponent {
10
+ selected = signal([]);
11
+ constructor() {
12
+ super();
13
+ afterRenderEffect(() => {
14
+ const value = this.dir.value() || [];
15
+ const indexes = this.dir.indexes();
16
+ const selected = [];
17
+ value.forEach((value) => {
18
+ const option = indexes.get(value);
19
+ if (option) {
20
+ option.selected.set(true);
21
+ selected.push(option);
22
+ }
23
+ });
24
+ this.selected.set(selected);
25
+ });
26
+ }
27
+ handleSelectOption(option) {
28
+ const options = this.dir.options();
29
+ option.selected.update((selected) => !selected);
30
+ const value = [];
31
+ options.forEach((option) => {
32
+ if (option.selected()) {
33
+ value.push(option.value());
34
+ }
35
+ });
36
+ this.dir.writeValue(value);
37
+ }
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectMultipleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: SelectMultipleComponent, isStandalone: true, selector: "lat-select[type=\"multiple\"]", exportAs: ["latSelect"], usesInheritance: true, ngImport: i0, template: "<lat-select-trigger cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <lat-select-value>\r\n <div class=\"lat-select-value-scrollable\">\r\n <div class=\"lat-select-value-scrollable-content\">\r\n @for (option of selected(); track option.value()) {\r\n <div class=\"lat-select-tag\">\r\n <span>{{ option.label() }}</span>\r\n </div>\r\n } @empty {\r\n <div>{{ placeholder() }}</div>\r\n }\r\n </div>\r\n </div>\r\n </lat-select-value>\r\n</lat-select-trigger>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n cdkConnectedOverlayLockPosition\r\n cdkConnectedOverlayHasBackdrop\r\n cdkConnectedOverlayPanelClass=\"lat-select-dropdown\"\r\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"dir.overlayExpanded()\"\r\n [cdkConnectedOverlayWidth]=\"dir.overlayWidth() > 0 ? dir.overlayWidth() : 'auto'\"\r\n [cdkConnectedOverlayPositions]=\"dir.overlayPositions()\"\r\n (backdropClick)=\"dir.hide()\"\r\n (detach)=\"dir.hide()\"\r\n (positionChange)=\"dir.updateOverlayPositionSide($event)\"\r\n>\r\n <lat-listbox [style.width.px]=\"dir.overlayWidth()\" [attr.data-side]=\"dir.overlayPositionSide()\">\r\n @for (option of dir.options(); track option.value()) {\r\n <lat-option\r\n [value]=\"option.value()\"\r\n [setsize]=\"option.setsize()\"\r\n [posinset]=\"option.posinset()\"\r\n [disabled]=\"option.disabled()\"\r\n (click)=\"handleSelectOption(option)\"\r\n >\r\n @if (option.selected()) {\r\n <lat-icon name=\"check\"/>\r\n }\r\n {{ option.label() }}\r\n </lat-option>\r\n }\r\n </lat-listbox>\r\n</ng-template>\r\n", dependencies: [{ kind: "component", type: SelectTriggerComponent, selector: "lat-select-trigger", exportAs: ["latSelectTrigger"] }, { kind: "component", type: SelectValueComponent, selector: "lat-select-value", exportAs: ["latSelectValue"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: ListBoxComponent, selector: "lat-listbox", exportAs: ["latListBox"] }, { kind: "component", type: ListBoxOptionComponent, selector: "lat-listbox-option, lat-option", inputs: ["value", "setsize", "posinset", "selected", "disabled", "checkbox"], exportAs: ["latListBoxOption"] }, { kind: "component", type: IconComponent, selector: "lat-icon", inputs: ["url", "name"], exportAs: ["latIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectMultipleComponent, decorators: [{
42
+ type: Component,
43
+ args: [{ imports: [
44
+ SelectTriggerComponent,
45
+ SelectValueComponent,
46
+ CdkOverlayOrigin,
47
+ CdkConnectedOverlay,
48
+ ListBoxComponent,
49
+ ListBoxOptionComponent,
50
+ IconComponent,
51
+ ], exportAs: 'latSelect', selector: 'lat-select[type="multiple"]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<lat-select-trigger cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <lat-select-value>\r\n <div class=\"lat-select-value-scrollable\">\r\n <div class=\"lat-select-value-scrollable-content\">\r\n @for (option of selected(); track option.value()) {\r\n <div class=\"lat-select-tag\">\r\n <span>{{ option.label() }}</span>\r\n </div>\r\n } @empty {\r\n <div>{{ placeholder() }}</div>\r\n }\r\n </div>\r\n </div>\r\n </lat-select-value>\r\n</lat-select-trigger>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n cdkConnectedOverlayLockPosition\r\n cdkConnectedOverlayHasBackdrop\r\n cdkConnectedOverlayPanelClass=\"lat-select-dropdown\"\r\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"dir.overlayExpanded()\"\r\n [cdkConnectedOverlayWidth]=\"dir.overlayWidth() > 0 ? dir.overlayWidth() : 'auto'\"\r\n [cdkConnectedOverlayPositions]=\"dir.overlayPositions()\"\r\n (backdropClick)=\"dir.hide()\"\r\n (detach)=\"dir.hide()\"\r\n (positionChange)=\"dir.updateOverlayPositionSide($event)\"\r\n>\r\n <lat-listbox [style.width.px]=\"dir.overlayWidth()\" [attr.data-side]=\"dir.overlayPositionSide()\">\r\n @for (option of dir.options(); track option.value()) {\r\n <lat-option\r\n [value]=\"option.value()\"\r\n [setsize]=\"option.setsize()\"\r\n [posinset]=\"option.posinset()\"\r\n [disabled]=\"option.disabled()\"\r\n (click)=\"handleSelectOption(option)\"\r\n >\r\n @if (option.selected()) {\r\n <lat-icon name=\"check\"/>\r\n }\r\n {{ option.label() }}\r\n </lat-option>\r\n }\r\n </lat-listbox>\r\n</ng-template>\r\n" }]
52
+ }], ctorParameters: () => [] });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW11bHRpcGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvc2VsZWN0L3NyYy9zZWxlY3QtbXVsdGlwbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9zZWxlY3Qvc3JjL3NlbGVjdC1tdWx0aXBsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQW1CaEUsTUFBTSxPQUFPLHVCQUEyQixTQUFRLGVBQXVCO0lBQ3JELFFBQVEsR0FBRyxNQUFNLENBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBRXpEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFFUixpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDckIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7WUFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUVuQyxNQUFNLFFBQVEsR0FBRyxFQUF1QixDQUFDO1lBQ3pDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFRLEVBQUUsRUFBRTtnQkFDekIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFbEMsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFMUIsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDeEIsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRWtCLGtCQUFrQixDQUFDLE1BQXVCO1FBQzNELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFbkMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFaEQsTUFBTSxLQUFLLEdBQVEsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN6QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUN0QixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7dUdBdENVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLHlJQzdCcEMsa3dEQStDQSw0Q0RoQ0ksc0JBQXNCLCtGQUN0QixvQkFBb0IsMkZBQ3BCLGdCQUFnQix1SUFDaEIsbUJBQW1CLDQrQkFDbkIsZ0JBQWdCLGtGQUNoQixzQkFBc0IseUxBQ3RCLGFBQWE7OzJGQVFKLHVCQUF1QjtrQkFoQm5DLFNBQVM7OEJBQ0M7d0JBQ1Asc0JBQXNCO3dCQUN0QixvQkFBb0I7d0JBQ3BCLGdCQUFnQjt3QkFDaEIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLHNCQUFzQjt3QkFDdEIsYUFBYTtxQkFDZCxZQUNTLFdBQVcsWUFDWCw2QkFBNkIsaUJBRXhCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlclJlbmRlckVmZmVjdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuXHJcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAbGF0aXR1ZGUtdWkvd2lkZ2V0cy9pY29ucyc7XHJcbmltcG9ydCB7IExpc3RCb3hDb21wb25lbnQsIExpc3RCb3hPcHRpb25Db21wb25lbnQgfSBmcm9tICdAbGF0aXR1ZGUtdWkvd2lkZ2V0cy9saXN0Ym94JztcclxuXHJcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBTZWxlY3RUcmlnZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtdHJpZ2dlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3RWYWx1ZUNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LXZhbHVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4vc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgU2VsZWN0VHJpZ2dlckNvbXBvbmVudCxcclxuICAgIFNlbGVjdFZhbHVlQ29tcG9uZW50LFxyXG4gICAgQ2RrT3ZlcmxheU9yaWdpbixcclxuICAgIENka0Nvbm5lY3RlZE92ZXJsYXksXHJcbiAgICBMaXN0Qm94Q29tcG9uZW50LFxyXG4gICAgTGlzdEJveE9wdGlvbkNvbXBvbmVudCxcclxuICAgIEljb25Db21wb25lbnQsXHJcbiAgXSxcclxuICBleHBvcnRBczogJ2xhdFNlbGVjdCcsXHJcbiAgc2VsZWN0b3I6ICdsYXQtc2VsZWN0W3R5cGU9XCJtdWx0aXBsZVwiXScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1tdWx0aXBsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdE11bHRpcGxlQ29tcG9uZW50PFQ+IGV4dGVuZHMgU2VsZWN0Q29tcG9uZW50PFQsIFRbXT4ge1xyXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZCA9IHNpZ25hbDxTZWxlY3RPcHRpb248VD5bXT4oW10pO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gICAgYWZ0ZXJSZW5kZXJFZmZlY3QoKCkgPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZGlyLnZhbHVlKCkgfHwgW107XHJcbiAgICAgIGNvbnN0IGluZGV4ZXMgPSB0aGlzLmRpci5pbmRleGVzKCk7XHJcblxyXG4gICAgICBjb25zdCBzZWxlY3RlZCA9IFtdIGFzIFNlbGVjdE9wdGlvbjxUPltdO1xyXG4gICAgICB2YWx1ZS5mb3JFYWNoKCh2YWx1ZTogVCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbiA9IGluZGV4ZXMuZ2V0KHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKG9wdGlvbikge1xyXG4gICAgICAgICAgb3B0aW9uLnNlbGVjdGVkLnNldCh0cnVlKTtcclxuXHJcbiAgICAgICAgICBzZWxlY3RlZC5wdXNoKG9wdGlvbik7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQuc2V0KHNlbGVjdGVkKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGhhbmRsZVNlbGVjdE9wdGlvbihvcHRpb246IFNlbGVjdE9wdGlvbjxUPik6IHZvaWQge1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZGlyLm9wdGlvbnMoKTtcclxuXHJcbiAgICBvcHRpb24uc2VsZWN0ZWQudXBkYXRlKChzZWxlY3RlZCkgPT4gIXNlbGVjdGVkKTtcclxuXHJcbiAgICBjb25zdCB2YWx1ZTogVFtdID0gW107XHJcbiAgICBvcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4ge1xyXG4gICAgICBpZiAob3B0aW9uLnNlbGVjdGVkKCkpIHtcclxuICAgICAgICB2YWx1ZS5wdXNoKG9wdGlvbi52YWx1ZSgpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5kaXIud3JpdGVWYWx1ZSh2YWx1ZSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIiwiPGxhdC1zZWxlY3QtdHJpZ2dlciBjZGtPdmVybGF5T3JpZ2luICN0cmlnZ2VyPVwiY2RrT3ZlcmxheU9yaWdpblwiPlxyXG4gIDxsYXQtc2VsZWN0LXZhbHVlPlxyXG4gICAgPGRpdiBjbGFzcz1cImxhdC1zZWxlY3QtdmFsdWUtc2Nyb2xsYWJsZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGF0LXNlbGVjdC12YWx1ZS1zY3JvbGxhYmxlLWNvbnRlbnRcIj5cclxuICAgICAgICBAZm9yIChvcHRpb24gb2Ygc2VsZWN0ZWQoKTsgdHJhY2sgb3B0aW9uLnZhbHVlKCkpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYXQtc2VsZWN0LXRhZ1wiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBvcHRpb24ubGFiZWwoKSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH0gQGVtcHR5IHtcclxuICAgICAgICAgIDxkaXY+e3sgcGxhY2Vob2xkZXIoKSB9fTwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2xhdC1zZWxlY3QtdmFsdWU+XHJcbjwvbGF0LXNlbGVjdC10cmlnZ2VyPlxyXG5cclxuPG5nLXRlbXBsYXRlXHJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxyXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlMb2NrUG9zaXRpb25cclxuICBjZGtDb25uZWN0ZWRPdmVybGF5SGFzQmFja2Ryb3BcclxuICBjZGtDb25uZWN0ZWRPdmVybGF5UGFuZWxDbGFzcz1cImxhdC1zZWxlY3QtZHJvcGRvd25cIlxyXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlCYWNrZHJvcENsYXNzPVwiY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3BcIlxyXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInRyaWdnZXJcIlxyXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJkaXIub3ZlcmxheUV4cGFuZGVkKClcIlxyXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5V2lkdGhdPVwiZGlyLm92ZXJsYXlXaWR0aCgpID4gMCA/IGRpci5vdmVybGF5V2lkdGgoKSA6ICdhdXRvJ1wiXHJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlQb3NpdGlvbnNdPVwiZGlyLm92ZXJsYXlQb3NpdGlvbnMoKVwiXHJcbiAgKGJhY2tkcm9wQ2xpY2spPVwiZGlyLmhpZGUoKVwiXHJcbiAgKGRldGFjaCk9XCJkaXIuaGlkZSgpXCJcclxuICAocG9zaXRpb25DaGFuZ2UpPVwiZGlyLnVwZGF0ZU92ZXJsYXlQb3NpdGlvblNpZGUoJGV2ZW50KVwiXHJcbj5cclxuICA8bGF0LWxpc3Rib3ggW3N0eWxlLndpZHRoLnB4XT1cImRpci5vdmVybGF5V2lkdGgoKVwiIFthdHRyLmRhdGEtc2lkZV09XCJkaXIub3ZlcmxheVBvc2l0aW9uU2lkZSgpXCI+XHJcbiAgICBAZm9yIChvcHRpb24gb2YgZGlyLm9wdGlvbnMoKTsgdHJhY2sgb3B0aW9uLnZhbHVlKCkpIHtcclxuICAgICAgPGxhdC1vcHRpb25cclxuICAgICAgICBbdmFsdWVdPVwib3B0aW9uLnZhbHVlKClcIlxyXG4gICAgICAgIFtzZXRzaXplXT1cIm9wdGlvbi5zZXRzaXplKClcIlxyXG4gICAgICAgIFtwb3NpbnNldF09XCJvcHRpb24ucG9zaW5zZXQoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZCgpXCJcclxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbilcIlxyXG4gICAgICA+XHJcbiAgICAgICAgQGlmIChvcHRpb24uc2VsZWN0ZWQoKSkge1xyXG4gICAgICAgICAgPGxhdC1pY29uIG5hbWU9XCJjaGVja1wiLz5cclxuICAgICAgICB9XHJcbiAgICAgICAge3sgb3B0aW9uLmxhYmVsKCkgfX1cclxuICAgICAgPC9sYXQtb3B0aW9uPlxyXG4gICAgfVxyXG4gIDwvbGF0LWxpc3Rib3g+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -0,0 +1,14 @@
1
+ import { booleanAttribute, ChangeDetectionStrategy, Component, input, ViewEncapsulation, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SelectOptionComponent {
4
+ value = input.required();
5
+ label = input();
6
+ disabled = input(undefined, { transform: booleanAttribute });
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
8
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.4", type: SelectOptionComponent, isStandalone: true, selector: "lat-select-option", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["latSelectOption"], ngImport: i0, template: "\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectOptionComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ exportAs: 'latSelectOption', selector: 'lat-select-option', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "\r\n" }]
13
+ }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL3NlbGVjdC9zcmMvc2VsZWN0LW9wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL3NlbGVjdC9zcmMvc2VsZWN0LW9wdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsS0FBSyxFQUNMLGlCQUFpQixHQUVsQixNQUFNLGVBQWUsQ0FBQzs7QUFtQnZCLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUssQ0FBQztJQUU1QixLQUFLLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDeEIsUUFBUSxHQUFHLEtBQUssQ0FBbUIsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQzt1R0FKcEYscUJBQXFCOzJGQUFyQixxQkFBcUIsd2VDMUJsQyxNQUNBOzsyRkR5QmEscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLGlCQUFpQixZQUNqQixtQkFBbUIsaUJBRWQsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGlucHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdE9wdGlvbjxUPiB7XG4gIHJlYWRvbmx5IHZhbHVlOiBXcml0YWJsZVNpZ25hbDxUPjtcbiAgcmVhZG9ubHkgbGFiZWw6IFdyaXRhYmxlU2lnbmFsPHN0cmluZz47XG4gIHJlYWRvbmx5IGhpZGRlbjogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj47XG4gIHJlYWRvbmx5IHNldHNpemU6IFdyaXRhYmxlU2lnbmFsPG51bWJlcj47XG4gIHJlYWRvbmx5IHBvc2luc2V0OiBXcml0YWJsZVNpZ25hbDxudW1iZXI+O1xuICByZWFkb25seSBkaXNhYmxlZDogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj47XG4gIHJlYWRvbmx5IHNlbGVjdGVkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPjtcbn1cblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAnbGF0U2VsZWN0T3B0aW9uJyxcbiAgc2VsZWN0b3I6ICdsYXQtc2VsZWN0LW9wdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Qtb3B0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPiB7XG4gIHB1YmxpYyByZWFkb25seSB2YWx1ZSA9IGlucHV0LnJlcXVpcmVkPFQ+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGxhYmVsID0gaW5wdXQ8c3RyaW5nPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCB1bmtub3duPih1bmRlZmluZWQsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xufVxuIiwiXHJcbiJdfQ==
@@ -0,0 +1,59 @@
1
+ import { ChangeDetectionStrategy, Component, effect, signal, ViewEncapsulation } from '@angular/core';
2
+ import { CdkConnectedOverlay, CdkOverlayOrigin } from '@angular/cdk/overlay';
3
+ import { IconComponent } from '@latitude-ui/widgets/icons';
4
+ import { ListBoxComponent, ListBoxOptionComponent } from '@latitude-ui/widgets/listbox';
5
+ import { SelectComponent } from './select.component';
6
+ import { SelectTriggerComponent } from './select-trigger.component';
7
+ import { SelectValueComponent } from './select-value.component';
8
+ import * as i0 from "@angular/core";
9
+ export class SelectSingleComponent extends SelectComponent {
10
+ selected = signal(null);
11
+ constructor() {
12
+ super();
13
+ effect(() => {
14
+ const value = this.dir.value();
15
+ const indexes = this.dir.indexes();
16
+ this.selected.set(value);
17
+ if (value) {
18
+ const option = indexes.get(value);
19
+ if (option) {
20
+ option.selected.set(true);
21
+ }
22
+ }
23
+ else {
24
+ indexes.forEach((option) => {
25
+ if (option.selected()) {
26
+ option.selected.set(false);
27
+ }
28
+ });
29
+ }
30
+ });
31
+ }
32
+ handleSelectOption(select) {
33
+ const options = this.dir.options();
34
+ options.forEach((option) => {
35
+ if (select === option) {
36
+ select.selected.update((selected) => !selected);
37
+ }
38
+ if (option.selected()) {
39
+ option.selected.set(false);
40
+ }
41
+ });
42
+ this.dir.writeValue(select.selected() ? select.value() : null);
43
+ }
44
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectSingleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
45
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: SelectSingleComponent, isStandalone: true, selector: "lat-select[type=\"single\"]", exportAs: ["latSelect"], usesInheritance: true, ngImport: i0, template: "<lat-select-trigger cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <lat-select-value>\r\n <div>\r\n @if (selected(); as selected) {\r\n {{ selected.label() }}\r\n } @else {\r\n {{ placeholder() }}\r\n }\r\n </div>\r\n </lat-select-value>\r\n</lat-select-trigger>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n cdkConnectedOverlayLockPosition\r\n cdkConnectedOverlayHasBackdrop\r\n cdkConnectedOverlayPanelClass=\"lat-select-dropdown\"\r\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"dir.overlayExpanded()\"\r\n [cdkConnectedOverlayWidth]=\"dir.overlayWidth() > 0 ? dir.overlayWidth() : 'auto'\"\r\n [cdkConnectedOverlayPositions]=\"dir.overlayPositions()\"\r\n (backdropClick)=\"dir.hide()\"\r\n (detach)=\"dir.hide()\"\r\n (positionChange)=\"dir.updateOverlayPositionSide($event)\"\r\n>\r\n <lat-listbox [style.width.px]=\"dir.overlayWidth()\" [attr.data-side]=\"dir.overlayPositionSide()\">\r\n @for (option of dir.options(); track option.value()) {\r\n <lat-option\r\n [value]=\"option.value()\"\r\n [setsize]=\"option.setsize()\"\r\n [posinset]=\"option.posinset()\"\r\n [disabled]=\"option.disabled()\"\r\n (click)=\"handleSelectOption(option)\"\r\n >\r\n @if (option.selected()) {\r\n <lat-icon name=\"check\"/>\r\n }\r\n {{ option.label() }}\r\n </lat-option>\r\n }\r\n </lat-listbox>\r\n</ng-template>\r\n", dependencies: [{ kind: "component", type: SelectTriggerComponent, selector: "lat-select-trigger", exportAs: ["latSelectTrigger"] }, { kind: "component", type: SelectValueComponent, selector: "lat-select-value", exportAs: ["latSelectValue"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "component", type: ListBoxComponent, selector: "lat-listbox", exportAs: ["latListBox"] }, { kind: "component", type: ListBoxOptionComponent, selector: "lat-listbox-option, lat-option", inputs: ["value", "setsize", "posinset", "selected", "disabled", "checkbox"], exportAs: ["latListBoxOption"] }, { kind: "component", type: IconComponent, selector: "lat-icon", inputs: ["url", "name"], exportAs: ["latIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectSingleComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ imports: [
50
+ SelectTriggerComponent,
51
+ SelectValueComponent,
52
+ CdkOverlayOrigin,
53
+ CdkConnectedOverlay,
54
+ ListBoxComponent,
55
+ ListBoxOptionComponent,
56
+ IconComponent,
57
+ ], exportAs: 'latSelect', selector: 'lat-select[type="single"]', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<lat-select-trigger cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\r\n <lat-select-value>\r\n <div>\r\n @if (selected(); as selected) {\r\n {{ selected.label() }}\r\n } @else {\r\n {{ placeholder() }}\r\n }\r\n </div>\r\n </lat-select-value>\r\n</lat-select-trigger>\r\n\r\n<ng-template\r\n cdkConnectedOverlay\r\n cdkConnectedOverlayLockPosition\r\n cdkConnectedOverlayHasBackdrop\r\n cdkConnectedOverlayPanelClass=\"lat-select-dropdown\"\r\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\r\n [cdkConnectedOverlayOrigin]=\"trigger\"\r\n [cdkConnectedOverlayOpen]=\"dir.overlayExpanded()\"\r\n [cdkConnectedOverlayWidth]=\"dir.overlayWidth() > 0 ? dir.overlayWidth() : 'auto'\"\r\n [cdkConnectedOverlayPositions]=\"dir.overlayPositions()\"\r\n (backdropClick)=\"dir.hide()\"\r\n (detach)=\"dir.hide()\"\r\n (positionChange)=\"dir.updateOverlayPositionSide($event)\"\r\n>\r\n <lat-listbox [style.width.px]=\"dir.overlayWidth()\" [attr.data-side]=\"dir.overlayPositionSide()\">\r\n @for (option of dir.options(); track option.value()) {\r\n <lat-option\r\n [value]=\"option.value()\"\r\n [setsize]=\"option.setsize()\"\r\n [posinset]=\"option.posinset()\"\r\n [disabled]=\"option.disabled()\"\r\n (click)=\"handleSelectOption(option)\"\r\n >\r\n @if (option.selected()) {\r\n <lat-icon name=\"check\"/>\r\n }\r\n {{ option.label() }}\r\n </lat-option>\r\n }\r\n </lat-listbox>\r\n</ng-template>\r\n" }]
58
+ }], ctorParameters: () => [] });
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNpbmdsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL3NlbGVjdC9zcmMvc2VsZWN0LXNpbmdsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL3NlbGVjdC9zcmMvc2VsZWN0LXNpbmdsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXhGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFtQmhFLE1BQU0sT0FBTyxxQkFBeUIsU0FBUSxlQUE0QjtJQUN4RCxRQUFRLEdBQUcsTUFBTSxDQUF5QixJQUFJLENBQUMsQ0FBQztJQUVoRTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBRVIsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUVuQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUV6QixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksTUFBTSxFQUFFLENBQUM7b0JBQ1gsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUN6QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO3dCQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDN0IsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFa0Isa0JBQWtCLENBQUMsTUFBdUI7UUFDM0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVuQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDekIsSUFBSSxNQUFNLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUN0QixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQzt1R0F6Q1UscUJBQXFCOzJGQUFyQixxQkFBcUIsdUlDN0JsQyx3aERBMkNBLDRDRDVCSSxzQkFBc0IsK0ZBQ3RCLG9CQUFvQiwyRkFDcEIsZ0JBQWdCLHVJQUNoQixtQkFBbUIsNCtCQUNuQixnQkFBZ0Isa0ZBQ2hCLHNCQUFzQix5TEFDdEIsYUFBYTs7MkZBUUoscUJBQXFCO2tCQWhCakMsU0FBUzs4QkFDQzt3QkFDUCxzQkFBc0I7d0JBQ3RCLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixhQUFhO3FCQUNkLFlBQ1MsV0FBVyxZQUNYLDJCQUEyQixpQkFFdEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGVmZmVjdCwgc2lnbmFsLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuXHJcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAbGF0aXR1ZGUtdWkvd2lkZ2V0cy9pY29ucyc7XHJcbmltcG9ydCB7IExpc3RCb3hDb21wb25lbnQsIExpc3RCb3hPcHRpb25Db21wb25lbnQgfSBmcm9tICdAbGF0aXR1ZGUtdWkvd2lkZ2V0cy9saXN0Ym94JztcclxuXHJcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgeyBTZWxlY3RUcmlnZ2VyQ29tcG9uZW50IH0gZnJvbSAnLi9zZWxlY3QtdHJpZ2dlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZWxlY3RWYWx1ZUNvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LXZhbHVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4vc2VsZWN0LW9wdGlvbi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgU2VsZWN0VHJpZ2dlckNvbXBvbmVudCxcclxuICAgIFNlbGVjdFZhbHVlQ29tcG9uZW50LFxyXG4gICAgQ2RrT3ZlcmxheU9yaWdpbixcclxuICAgIENka0Nvbm5lY3RlZE92ZXJsYXksXHJcbiAgICBMaXN0Qm94Q29tcG9uZW50LFxyXG4gICAgTGlzdEJveE9wdGlvbkNvbXBvbmVudCxcclxuICAgIEljb25Db21wb25lbnQsXHJcbiAgXSxcclxuICBleHBvcnRBczogJ2xhdFNlbGVjdCcsXHJcbiAgc2VsZWN0b3I6ICdsYXQtc2VsZWN0W3R5cGU9XCJzaW5nbGVcIl0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3Qtc2luZ2xlLmNvbXBvbmVudC5odG1sJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0U2luZ2xlQ29tcG9uZW50PFQ+IGV4dGVuZHMgU2VsZWN0Q29tcG9uZW50PFQsIFQgfCBudWxsPiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkID0gc2lnbmFsPFNlbGVjdE9wdGlvbjxUPiB8IG51bGw+KG51bGwpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcblxyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmRpci52YWx1ZSgpO1xyXG4gICAgICBjb25zdCBpbmRleGVzID0gdGhpcy5kaXIuaW5kZXhlcygpO1xyXG5cclxuICAgICAgdGhpcy5zZWxlY3RlZC5zZXQodmFsdWUpO1xyXG5cclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uID0gaW5kZXhlcy5nZXQodmFsdWUpO1xyXG4gICAgICAgIGlmIChvcHRpb24pIHtcclxuICAgICAgICAgIG9wdGlvbi5zZWxlY3RlZC5zZXQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGluZGV4ZXMuZm9yRWFjaCgob3B0aW9uKSA9PiB7XHJcbiAgICAgICAgICBpZiAob3B0aW9uLnNlbGVjdGVkKCkpIHtcclxuICAgICAgICAgICAgb3B0aW9uLnNlbGVjdGVkLnNldChmYWxzZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGhhbmRsZVNlbGVjdE9wdGlvbihzZWxlY3Q6IFNlbGVjdE9wdGlvbjxUPik6IHZvaWQge1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZGlyLm9wdGlvbnMoKTtcclxuXHJcbiAgICBvcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4ge1xyXG4gICAgICBpZiAoc2VsZWN0ID09PSBvcHRpb24pIHtcclxuICAgICAgICBzZWxlY3Quc2VsZWN0ZWQudXBkYXRlKChzZWxlY3RlZCkgPT4gIXNlbGVjdGVkKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKG9wdGlvbi5zZWxlY3RlZCgpKSB7XHJcbiAgICAgICAgb3B0aW9uLnNlbGVjdGVkLnNldChmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGlyLndyaXRlVmFsdWUoc2VsZWN0LnNlbGVjdGVkKCkgPyBzZWxlY3QudmFsdWUoKSA6IG51bGwpO1xyXG4gIH1cclxufVxyXG4iLCI8bGF0LXNlbGVjdC10cmlnZ2VyIGNka092ZXJsYXlPcmlnaW4gI3RyaWdnZXI9XCJjZGtPdmVybGF5T3JpZ2luXCI+XHJcbiAgPGxhdC1zZWxlY3QtdmFsdWU+XHJcbiAgICA8ZGl2PlxyXG4gICAgICBAaWYgKHNlbGVjdGVkKCk7IGFzIHNlbGVjdGVkKSB7XHJcbiAgICAgICAge3sgc2VsZWN0ZWQubGFiZWwoKSB9fVxyXG4gICAgICB9IEBlbHNlIHtcclxuICAgICAgICB7eyBwbGFjZWhvbGRlcigpIH19XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gIDwvbGF0LXNlbGVjdC12YWx1ZT5cclxuPC9sYXQtc2VsZWN0LXRyaWdnZXI+XHJcblxyXG48bmctdGVtcGxhdGVcclxuICBjZGtDb25uZWN0ZWRPdmVybGF5XHJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUxvY2tQb3NpdGlvblxyXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlIYXNCYWNrZHJvcFxyXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlQYW5lbENsYXNzPVwibGF0LXNlbGVjdC1kcm9wZG93blwiXHJcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheUJhY2tkcm9wQ2xhc3M9XCJjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcFwiXHJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiXHJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cImRpci5vdmVybGF5RXhwYW5kZWQoKVwiXHJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aF09XCJkaXIub3ZlcmxheVdpZHRoKCkgPiAwID8gZGlyLm92ZXJsYXlXaWR0aCgpIDogJ2F1dG8nXCJcclxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJkaXIub3ZlcmxheVBvc2l0aW9ucygpXCJcclxuICAoYmFja2Ryb3BDbGljayk9XCJkaXIuaGlkZSgpXCJcclxuICAoZGV0YWNoKT1cImRpci5oaWRlKClcIlxyXG4gIChwb3NpdGlvbkNoYW5nZSk9XCJkaXIudXBkYXRlT3ZlcmxheVBvc2l0aW9uU2lkZSgkZXZlbnQpXCJcclxuPlxyXG4gIDxsYXQtbGlzdGJveCBbc3R5bGUud2lkdGgucHhdPVwiZGlyLm92ZXJsYXlXaWR0aCgpXCIgW2F0dHIuZGF0YS1zaWRlXT1cImRpci5vdmVybGF5UG9zaXRpb25TaWRlKClcIj5cclxuICAgIEBmb3IgKG9wdGlvbiBvZiBkaXIub3B0aW9ucygpOyB0cmFjayBvcHRpb24udmFsdWUoKSkge1xyXG4gICAgICA8bGF0LW9wdGlvblxyXG4gICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWUoKVwiXHJcbiAgICAgICAgW3NldHNpemVdPVwib3B0aW9uLnNldHNpemUoKVwiXHJcbiAgICAgICAgW3Bvc2luc2V0XT1cIm9wdGlvbi5wb3NpbnNldCgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwib3B0aW9uLmRpc2FibGVkKClcIlxyXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVTZWxlY3RPcHRpb24ob3B0aW9uKVwiXHJcbiAgICAgID5cclxuICAgICAgICBAaWYgKG9wdGlvbi5zZWxlY3RlZCgpKSB7XHJcbiAgICAgICAgICA8bGF0LWljb24gbmFtZT1cImNoZWNrXCIvPlxyXG4gICAgICAgIH1cclxuICAgICAgICB7eyBvcHRpb24ubGFiZWwoKSB9fVxyXG4gICAgICA8L2xhdC1vcHRpb24+XHJcbiAgICB9XHJcbiAgPC9sYXQtbGlzdGJveD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -0,0 +1,28 @@
1
+ import { afterRenderEffect, ChangeDetectionStrategy, Component, ElementRef, inject, ViewEncapsulation, } from '@angular/core';
2
+ import { ButtonComponent } from '@latitude-ui/widgets/button';
3
+ import { IconComponent } from '@latitude-ui/widgets/icons';
4
+ import { SelectDirective } from './select.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class SelectTriggerComponent {
7
+ select = inject(SelectDirective);
8
+ nativeElement = inject((ElementRef)).nativeElement;
9
+ constructor() {
10
+ afterRenderEffect((onCleanup) => {
11
+ const observer = new ResizeObserver(() => {
12
+ this.select.overlayWidth.set(this.nativeElement.offsetWidth);
13
+ });
14
+ observer.observe(this.nativeElement);
15
+ onCleanup(() => observer.disconnect());
16
+ });
17
+ }
18
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectTriggerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: SelectTriggerComponent, isStandalone: true, selector: "lat-select-trigger", host: { attributes: { "role": "combobox" }, properties: { "attr.data-size": "select.size()" } }, exportAs: ["latSelectTrigger"], ngImport: i0, template: "<ng-content select=\"lat-select-value\" />\n\n@if (!select.readonly()) {\n <section class=\"lat-select-control\">\n <lat-button tabindex=\"-1\" variant=\"subtle\" [size]=\"select.size()\" [disabled]=\"select.disabled()\" (click)=\"select.toggle()\">\n <lat-icon [name]=\"select.overlayState() ? 'chevron-up' : 'chevron-down'\"/>\n </lat-button>\n </section>\n}\n\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 });
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectTriggerComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ imports: [ButtonComponent, IconComponent], exportAs: 'latSelectTrigger', selector: 'lat-select-trigger', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
24
+ role: 'combobox',
25
+ '[attr.data-size]': 'select.size()',
26
+ }, template: "<ng-content select=\"lat-select-value\" />\n\n@if (!select.readonly()) {\n <section class=\"lat-select-control\">\n <lat-button tabindex=\"-1\" variant=\"subtle\" [size]=\"select.size()\" [disabled]=\"select.disabled()\" (click)=\"select.toggle()\">\n <lat-icon [name]=\"select.overlayState() ? 'chevron-up' : 'chevron-down'\"/>\n </lat-button>\n </section>\n}\n\n" }]
27
+ }], ctorParameters: () => [] });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRyaWdnZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9zZWxlY3Qvc3JjL3NlbGVjdC10cmlnZ2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvc2VsZWN0L3NyYy9zZWxlY3QtdHJpZ2dlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBY3JELE1BQU0sT0FBTyxzQkFBc0I7SUFDakIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNqQyxhQUFhLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDO0lBRTlFO1FBQ0UsaUJBQWlCLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUM5QixNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9ELENBQUMsQ0FBQyxDQUFDO1lBRUgsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFckMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0FkVSxzQkFBc0I7MkZBQXRCLHNCQUFzQiwrTUMxQm5DLDJYQVVBLDRDREtZLGVBQWUscUlBQUUsYUFBYTs7MkZBVzdCLHNCQUFzQjtrQkFabEMsU0FBUzs4QkFDQyxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsWUFDL0Isa0JBQWtCLFlBQ2xCLG9CQUFvQixpQkFFZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLElBQUksRUFBRSxVQUFVO3dCQUNoQixrQkFBa0IsRUFBRSxlQUFlO3FCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgYWZ0ZXJSZW5kZXJFZmZlY3QsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgaW5qZWN0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGxhdGl0dWRlLXVpL3dpZGdldHMvYnV0dG9uJztcclxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BsYXRpdHVkZS11aS93aWRnZXRzL2ljb25zJztcclxuXHJcbmltcG9ydCB7IFNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4vc2VsZWN0LmRpcmVjdGl2ZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBpbXBvcnRzOiBbQnV0dG9uQ29tcG9uZW50LCBJY29uQ29tcG9uZW50XSxcclxuICBleHBvcnRBczogJ2xhdFNlbGVjdFRyaWdnZXInLFxyXG4gIHNlbGVjdG9yOiAnbGF0LXNlbGVjdC10cmlnZ2VyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LXRyaWdnZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaG9zdDoge1xyXG4gICAgcm9sZTogJ2NvbWJvYm94JyxcclxuICAgICdbYXR0ci5kYXRhLXNpemVdJzogJ3NlbGVjdC5zaXplKCknLFxyXG4gIH0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RUcmlnZ2VyQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ID0gaW5qZWN0KFNlbGVjdERpcmVjdGl2ZSk7XHJcbiAgcHVibGljIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pLm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgYWZ0ZXJSZW5kZXJFZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xyXG4gICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3Qub3ZlcmxheVdpZHRoLnNldCh0aGlzLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIG9ic2VydmVyLm9ic2VydmUodGhpcy5uYXRpdmVFbGVtZW50KTtcclxuXHJcbiAgICAgIG9uQ2xlYW51cCgoKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImxhdC1zZWxlY3QtdmFsdWVcIiAvPlxuXG5AaWYgKCFzZWxlY3QucmVhZG9ubHkoKSkge1xuICA8c2VjdGlvbiBjbGFzcz1cImxhdC1zZWxlY3QtY29udHJvbFwiPlxuICAgIDxsYXQtYnV0dG9uIHRhYmluZGV4PVwiLTFcIiB2YXJpYW50PVwic3VidGxlXCIgW3NpemVdPVwic2VsZWN0LnNpemUoKVwiIFtkaXNhYmxlZF09XCJzZWxlY3QuZGlzYWJsZWQoKVwiIChjbGljayk9XCJzZWxlY3QudG9nZ2xlKClcIj5cbiAgICAgIDxsYXQtaWNvbiBbbmFtZV09XCJzZWxlY3Qub3ZlcmxheVN0YXRlKCkgPyAnY2hldnJvbi11cCcgOiAnY2hldnJvbi1kb3duJ1wiLz5cbiAgICA8L2xhdC1idXR0b24+XG4gIDwvc2VjdGlvbj5cbn1cblxuIl19
@@ -0,0 +1,13 @@
1
+ import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';
2
+ import { SelectDirective } from './select.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class SelectValueComponent {
5
+ select = inject(SelectDirective);
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.4", type: SelectValueComponent, isStandalone: true, selector: "lat-select-value", exportAs: ["latSelectValue"], ngImport: i0, template: "<ng-content />\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: SelectValueComponent, decorators: [{
10
+ type: Component,
11
+ args: [{ exportAs: 'latSelectValue', selector: 'lat-select-value', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {}, template: "<ng-content />\r\n" }]
12
+ }] });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvc2VsZWN0L3NyYy9zZWxlY3QtdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy9zZWxlY3Qvc3JjL3NlbGVjdC12YWx1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBVXJELE1BQU0sT0FBTyxvQkFBb0I7SUFDZixNQUFNLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO3VHQUR0QyxvQkFBb0I7MkZBQXBCLG9CQUFvQiwwR0NYakMsb0JBQ0E7OzJGRFVhLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxnQkFBZ0IsWUFDaEIsa0JBQWtCLGlCQUViLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4vc2VsZWN0LmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBleHBvcnRBczogJ2xhdFNlbGVjdFZhbHVlJyxcbiAgc2VsZWN0b3I6ICdsYXQtc2VsZWN0LXZhbHVlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC12YWx1ZS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7fSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0VmFsdWVDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ID0gaW5qZWN0KFNlbGVjdERpcmVjdGl2ZSk7XG59XG4iLCI8bmctY29udGVudCAvPlxyXG4iXX0=