@latitude-ui/widgets 0.0.12 → 0.0.14

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 (124) hide show
  1. package/cdk/latitude-ui-widgets-cdk.d.ts +5 -0
  2. package/cdk/public-api.d.ts +12 -0
  3. package/cdk/src/collection/collection.d.ts +20 -0
  4. package/cdk/src/expression/expression.d.ts +12 -0
  5. package/cdk/src/expression/filter/filter-criteria-descriptor.d.ts +6 -0
  6. package/cdk/src/expression/filter/filter-descriptor.d.ts +7 -0
  7. package/cdk/src/expression/filter/filter-logic.d.ts +1 -0
  8. package/cdk/src/expression/linq.d.ts +38 -0
  9. package/cdk/src/expression/sort/sort-descriptor.d.ts +7 -0
  10. package/cdk/src/expression/sort/sort-logic.d.ts +1 -0
  11. package/cdk/src/queryable/http-transport/http-transport.d.ts +15 -0
  12. package/cdk/src/queryable/query.d.ts +16 -0
  13. package/cdk/src/queryable/queryable.d.ts +18 -0
  14. package/cdk/src/queryable/transport.d.ts +19 -0
  15. package/checkbox/src/checkbox.component.d.ts +1 -1
  16. package/core/public-api.d.ts +2 -0
  17. package/core/src/dimensions.d.ts +13 -0
  18. package/core/src/listeners.d.ts +1 -1
  19. package/core/src/root.d.ts +12 -0
  20. package/esm2022/button/src/button.component.js +1 -1
  21. package/esm2022/cdk/latitude-ui-widgets-cdk.js +5 -0
  22. package/esm2022/cdk/public-api.js +13 -0
  23. package/esm2022/cdk/src/collection/collection.js +51 -0
  24. package/esm2022/cdk/src/expression/expression.js +21 -0
  25. package/esm2022/cdk/src/expression/filter/filter-criteria-descriptor.js +9 -0
  26. package/esm2022/cdk/src/expression/filter/filter-descriptor.js +9 -0
  27. package/esm2022/cdk/src/expression/filter/filter-logic.js +1 -0
  28. package/esm2022/cdk/src/expression/linq.js +55 -0
  29. package/esm2022/cdk/src/expression/sort/sort-descriptor.js +9 -0
  30. package/esm2022/cdk/src/expression/sort/sort-logic.js +1 -0
  31. package/esm2022/cdk/src/queryable/http-transport/http-transport.js +24 -0
  32. package/esm2022/cdk/src/queryable/query.js +22 -0
  33. package/esm2022/cdk/src/queryable/queryable.js +20 -0
  34. package/esm2022/cdk/src/queryable/transport.js +1 -0
  35. package/esm2022/checkbox/src/checkbox.component.js +4 -4
  36. package/esm2022/core/public-api.js +3 -1
  37. package/esm2022/core/src/dimensions.js +56 -0
  38. package/esm2022/core/src/listeners.js +1 -1
  39. package/esm2022/core/src/root.js +20 -0
  40. package/esm2022/icons/src/icon.component.js +18 -10
  41. package/esm2022/icons/src/icon.service.js +62 -0
  42. package/esm2022/icons/src/icon.tokens.js +8 -2
  43. package/esm2022/input/src/input-error/input-error.component.js +1 -1
  44. package/esm2022/input/src/input-label/input-label.component.js +1 -1
  45. package/esm2022/input/src/input.component.js +1 -1
  46. package/esm2022/input/src/input.directive.js +13 -14
  47. package/esm2022/listbox/src/listbox-option.component.js +5 -26
  48. package/esm2022/listview/latitude-ui-widgets-listview.js +5 -0
  49. package/esm2022/listview/public-api.js +2 -0
  50. package/esm2022/listview/src/listview.component.js +16 -0
  51. package/esm2022/listview/src/listview.tokens.js +3 -0
  52. package/esm2022/lookup/latitude-ui-widgets-lookup.js +5 -0
  53. package/esm2022/lookup/public-api.js +3 -0
  54. package/esm2022/lookup/src/lookup-outlet.directive.js +13 -0
  55. package/esm2022/lookup/src/lookup.component.js +11 -0
  56. package/esm2022/select/public-api.js +4 -4
  57. package/esm2022/select/src/select/select.directive.js +87 -0
  58. package/esm2022/select/src/select-dropdown/select-dropdown.component.js +39 -0
  59. package/esm2022/select/src/select-multiple.component.js +38 -29
  60. package/esm2022/select/src/select-option/select-option.component.js +21 -0
  61. package/esm2022/select/src/select-option/select-option.directive.js +19 -0
  62. package/esm2022/select/src/select-single.component.js +34 -29
  63. package/esm2022/select/src/select-trigger/select-trigger.component.js +29 -0
  64. package/esm2022/select/src/select-value/select-value.component.js +15 -0
  65. package/esm2022/select/src/select-values/select-values.component.js +16 -0
  66. package/esm2022/select/src/select.module.js +2 -2
  67. package/esm2022/switch/src/switch.component.js +4 -4
  68. package/esm2022/textarea/src/textarea.component.js +8 -19
  69. package/esm2022/textbox/public-api.js +2 -1
  70. package/esm2022/textbox/src/textbox.component.js +19 -11
  71. package/esm2022/textbox/src/textbox.directive.js +18 -0
  72. package/esm2022/textbox-number/src/spinners.component.js +2 -2
  73. package/esm2022/textbox-number/src/textbox-number.component.js +45 -38
  74. package/esm2022/textbox-search/src/textbox-search.component.js +17 -15
  75. package/esm2022/toolbar/latitude-ui-widgets-toolbar.js +5 -0
  76. package/esm2022/toolbar/public-api.js +2 -0
  77. package/esm2022/toolbar/src/toolbar.component.js +14 -0
  78. package/icons/src/icon.component.d.ts +3 -1
  79. package/icons/src/icon.service.d.ts +15 -0
  80. package/icons/src/icon.tokens.d.ts +2 -1
  81. package/input/src/input.directive.d.ts +13 -14
  82. package/listbox/src/listbox-option.component.d.ts +2 -5
  83. package/listview/latitude-ui-widgets-listview.d.ts +5 -0
  84. package/listview/public-api.d.ts +1 -0
  85. package/listview/src/listview.component.d.ts +6 -0
  86. package/listview/src/listview.tokens.d.ts +3 -0
  87. package/lookup/README.md +3 -0
  88. package/lookup/latitude-ui-widgets-lookup.d.ts +5 -0
  89. package/lookup/public-api.d.ts +2 -0
  90. package/lookup/src/lookup-outlet.directive.d.ts +5 -0
  91. package/lookup/src/lookup.component.d.ts +5 -0
  92. package/package.json +20 -8
  93. package/select/public-api.d.ts +3 -3
  94. package/select/src/select/select.directive.d.ts +25 -0
  95. package/select/src/select-dropdown/select-dropdown.component.d.ts +14 -0
  96. package/select/src/select-multiple.component.d.ts +7 -7
  97. package/select/src/{select-option.component.d.ts → select-option/select-option.component.d.ts} +2 -2
  98. package/select/src/{select-option.directive.d.ts → select-option/select-option.directive.d.ts} +3 -3
  99. package/select/src/select-single.component.d.ts +6 -7
  100. package/select/src/{select-trigger.component.d.ts → select-trigger/select-trigger.component.d.ts} +2 -2
  101. package/select/src/{select-value.component.d.ts → select-value/select-value.component.d.ts} +1 -1
  102. package/select/src/select-values/select-values.component.d.ts +7 -0
  103. package/select/src/select.module.d.ts +1 -1
  104. package/styles/_defaults.scss +13 -0
  105. package/styles/forms/_index.scss +108 -101
  106. package/styles/icons/_index.scss +2 -2
  107. package/switch/src/switch.component.d.ts +1 -1
  108. package/textarea/src/textarea.component.d.ts +3 -9
  109. package/textbox/public-api.d.ts +1 -0
  110. package/textbox/src/textbox.component.d.ts +9 -8
  111. package/textbox/src/textbox.directive.d.ts +10 -0
  112. package/textbox-number/src/textbox-number.component.d.ts +20 -14
  113. package/textbox-search/src/textbox-search.component.d.ts +9 -9
  114. package/toolbar/latitude-ui-widgets-toolbar.d.ts +5 -0
  115. package/toolbar/public-api.d.ts +1 -0
  116. package/toolbar/src/toolbar.component.d.ts +5 -0
  117. package/esm2022/select/src/select-option.component.js +0 -21
  118. package/esm2022/select/src/select-option.directive.js +0 -19
  119. package/esm2022/select/src/select-trigger.component.js +0 -28
  120. package/esm2022/select/src/select-value.component.js +0 -13
  121. package/esm2022/select/src/select.component.js +0 -44
  122. package/esm2022/select/src/select.directive.js +0 -103
  123. package/select/src/select.component.d.ts +0 -13
  124. package/select/src/select.directive.d.ts +0 -25
@@ -2,21 +2,21 @@ import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, forwa
2
2
  import { Maskito, maskitoInitialCalibrationPlugin } from '@maskito/core';
3
3
  import { maskitoNumberOptionsGenerator, maskitoParseNumber, maskitoStringifyNumber } from '@maskito/kit';
4
4
  import { BuildInInputValueAccessor } from '@latitude-ui/widgets/input';
5
+ import { TextBoxDirective } from '@latitude-ui/widgets/textbox';
5
6
  import { SpinnersComponent } from './spinners.component';
6
7
  import * as i0 from "@angular/core";
7
- export class TextBoxNumberComponent extends BuildInInputValueAccessor {
8
+ export class TextBoxNumberComponent extends TextBoxDirective {
8
9
  max = input(undefined, { transform: numberAttribute });
9
10
  min = input(undefined, { transform: numberAttribute });
10
11
  step = input(undefined, { transform: numberAttribute });
11
12
  decimals = input(2);
12
13
  decimalMode = input('not-zero');
13
14
  decimalSeparator = input(',');
14
- thousandSeparator = input(' ');
15
- placeholder = input();
15
+ thousandSeparator = input('');
16
16
  inputElementRef = viewChild.required('inputElementRef', { read: (ElementRef) });
17
- ariaValueMax = computed(() => this.max() ?? Number.MAX_SAFE_INTEGER);
18
- ariaValueMin = computed(() => this.min() ?? Number.MIN_SAFE_INTEGER);
19
- ariaValueNow = computed(() => this.value() || 0);
17
+ maxvalue = computed(() => this.max() ?? Number.MAX_SAFE_INTEGER);
18
+ minvalue = computed(() => this.min() ?? Number.MIN_SAFE_INTEGER);
19
+ nowvalue = computed(() => this.value() || 0);
20
20
  maxlength = computed(() => {
21
21
  const { decimalSeparator, thousandSeparator } = this.maskitoNumberParams();
22
22
  const decimals = this.decimals();
@@ -28,8 +28,8 @@ export class TextBoxNumberComponent extends BuildInInputValueAccessor {
28
28
  maskitoNumberParams = computed(() => {
29
29
  const decimalMode = this.decimalMode();
30
30
  return {
31
- max: this.ariaValueMax(),
32
- min: this.ariaValueMin(),
31
+ max: this.maxvalue(),
32
+ min: this.minvalue(),
33
33
  minusSign: '-',
34
34
  precision: this.decimals(),
35
35
  decimalZeroPadding: decimalMode === 'always',
@@ -57,25 +57,45 @@ export class TextBoxNumberComponent extends BuildInInputValueAccessor {
57
57
  onCleanup(() => instance.destroy());
58
58
  });
59
59
  }
60
- valueStringify(valueAsString) {
61
- const value = this.parseNumber(valueAsString);
60
+ /** @internal */
61
+ _handleValueChanged() {
62
+ const input = this.inputElementRef();
63
+ const valueAsString = this._valueSimplify(input.nativeElement.value);
64
+ if (this._valueUnsettled(valueAsString)) {
65
+ return this.valueAsString.update(() => input.nativeElement.value);
66
+ }
67
+ const value = this._parseNumber(valueAsString);
68
+ if (value === null) {
69
+ return this.writeValue(value);
70
+ }
71
+ if (value < this.minvalue() || value > this.maxvalue()) {
72
+ return void 0;
73
+ }
74
+ this.writeValue(value);
75
+ }
76
+ /** @internal */
77
+ _valueStringify(valueAsString) {
78
+ const value = this._parseNumber(valueAsString);
62
79
  if (value === null) {
63
80
  return '';
64
81
  }
65
82
  return maskitoStringifyNumber(value, this.maskitoNumberParams());
66
83
  }
67
- valueSimplify(value) {
84
+ /** @internal */
85
+ _valueSimplify(value) {
68
86
  const decimalSeparator = new RegExp(this.decimalSeparator(), 'gi');
69
87
  const thousandSeparator = new RegExp(this.thousandSeparator(), 'gi');
70
88
  return value.replace(thousandSeparator, '').replace(decimalSeparator, '.');
71
89
  }
72
- valueUnsettled(value) {
90
+ /** @internal */
91
+ _valueUnsettled(value) {
73
92
  return !!(value === '-' ||
74
93
  value.match(/^\s*([-+])?\d+\.$/) ||
75
94
  value.match(/^\s*([-+])?\d+\.[0-9]*0$/) ||
76
95
  value.match(/^\s*([-+])0+$/));
77
96
  }
78
- parseNumber(value) {
97
+ /** @internal */
98
+ _parseNumber(value) {
79
99
  let valueAsNumber = null;
80
100
  if (typeof value === 'number') {
81
101
  valueAsNumber = value;
@@ -88,41 +108,28 @@ export class TextBoxNumberComponent extends BuildInInputValueAccessor {
88
108
  }
89
109
  return valueAsNumber;
90
110
  }
91
- handleBlurEvent() {
92
- this.markAsTouched();
93
- const valueAsString = this.valueSimplify(this.valueAsString());
94
- if (this.valueUnsettled(valueAsString)) {
95
- this.valueAsString.update(() => this.valueStringify(this.value()));
96
- }
97
- }
98
- handleFocusEvent() {
111
+ /** @internal */
112
+ _handleFocusEvent() {
99
113
  const value = maskitoParseNumber(this.valueAsString(), this.decimalSeparator());
100
114
  if (Number.isNaN(value) && !this.readonly()) {
101
115
  this.valueAsString.set('');
102
116
  }
103
117
  }
104
- handleInputEvent() {
105
- const input = this.inputElementRef();
106
- const valueAsString = this.valueSimplify(input.nativeElement.value);
107
- if (this.valueUnsettled(valueAsString)) {
108
- return this.valueAsString.update(() => input.nativeElement.value);
109
- }
110
- const value = this.parseNumber(valueAsString);
111
- if (value === null) {
112
- return this.writeValue(value);
113
- }
114
- if (value < this.ariaValueMin() || value > this.ariaValueMax()) {
115
- return void 0;
118
+ /** @internal */
119
+ _handleBlurEvent() {
120
+ this.markAsTouched();
121
+ const valueAsString = this._valueSimplify(this.valueAsString());
122
+ if (this._valueUnsettled(valueAsString)) {
123
+ this.valueAsString.update(() => this._valueStringify(this.value()));
116
124
  }
117
- this.writeValue(value);
118
125
  }
119
126
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TextBoxNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
120
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: TextBoxNumberComponent, isStandalone: true, selector: "lat-textbox[type=\"number\"]", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, decimals: { classPropertyName: "decimals", publicName: "decimals", isSignal: true, isRequired: false, transformFunction: null }, decimalMode: { classPropertyName: "decimalMode", publicName: "decimalMode", isSignal: true, isRequired: false, transformFunction: null }, decimalSeparator: { classPropertyName: "decimalSeparator", publicName: "decimalSeparator", isSignal: true, isRequired: false, transformFunction: null }, thousandSeparator: { classPropertyName: "thousandSeparator", publicName: "thousandSeparator", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
127
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.4", type: TextBoxNumberComponent, isStandalone: true, selector: "lat-textbox[type=\"number\"]", inputs: { max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, decimals: { classPropertyName: "decimals", publicName: "decimals", isSignal: true, isRequired: false, transformFunction: null }, decimalMode: { classPropertyName: "decimalMode", publicName: "decimalMode", isSignal: true, isRequired: false, transformFunction: null }, decimalSeparator: { classPropertyName: "decimalSeparator", publicName: "decimalSeparator", isSignal: true, isRequired: false, transformFunction: null }, thousandSeparator: { classPropertyName: "thousandSeparator", publicName: "thousandSeparator", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
121
128
  {
122
129
  provide: BuildInInputValueAccessor,
123
130
  useExisting: forwardRef(() => TextBoxNumberComponent),
124
131
  },
125
- ], viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElementRef"], descendants: true, read: ElementRef, isSignal: true }], exportAs: ["latTextBox"], usesInheritance: true, ngImport: i0, template: "<input\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"spinbutton\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-valuemax]=\"ariaValueMax()\"\r\n [attr.aria-valuemin]=\"ariaValueMin()\"\r\n [attr.aria-valuenow]=\"ariaValueNow()\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"handleBlurEvent()\"\r\n (focus)=\"handleFocusEvent()\"\r\n (input)=\"handleInputEvent()\"\r\n/>\r\n\r\n@if (step() && !readonly()) {\r\n <lat-spinners />\r\n}\r\n", dependencies: [{ kind: "component", type: SpinnersComponent, selector: "lat-spinners", exportAs: ["latSpinners"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
132
+ ], viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElementRef"], descendants: true, read: ElementRef, isSignal: true }], exportAs: ["latTextBox"], usesInheritance: true, ngImport: i0, template: "<input\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"spinbutton\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-valuemax]=\"maxvalue()\"\r\n [attr.aria-valuemin]=\"minvalue()\"\r\n [attr.aria-valuenow]=\"nowvalue()\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"_handleBlurEvent()\"\r\n (focus)=\"_handleFocusEvent()\"\r\n (input)=\"_handleValueChanged()\"\r\n/>\r\n\r\n@if (step() && !readonly()) {\r\n <lat-spinners />\r\n}\r\n", dependencies: [{ kind: "component", type: SpinnersComponent, selector: "lat-spinners", exportAs: ["latSpinners"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
126
133
  }
127
134
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TextBoxNumberComponent, decorators: [{
128
135
  type: Component,
@@ -131,6 +138,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
131
138
  provide: BuildInInputValueAccessor,
132
139
  useExisting: forwardRef(() => TextBoxNumberComponent),
133
140
  },
134
- ], template: "<input\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"spinbutton\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-valuemax]=\"ariaValueMax()\"\r\n [attr.aria-valuemin]=\"ariaValueMin()\"\r\n [attr.aria-valuenow]=\"ariaValueNow()\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"handleBlurEvent()\"\r\n (focus)=\"handleFocusEvent()\"\r\n (input)=\"handleInputEvent()\"\r\n/>\r\n\r\n@if (step() && !readonly()) {\r\n <lat-spinners />\r\n}\r\n" }]
141
+ ], template: "<input\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"spinbutton\"\r\n autocomplete=\"off\"\r\n autocapitalize=\"off\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-valuemax]=\"maxvalue()\"\r\n [attr.aria-valuemin]=\"minvalue()\"\r\n [attr.aria-valuenow]=\"nowvalue()\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"_handleBlurEvent()\"\r\n (focus)=\"_handleFocusEvent()\"\r\n (input)=\"_handleValueChanged()\"\r\n/>\r\n\r\n@if (step() && !readonly()) {\r\n <lat-spinners />\r\n}\r\n" }]
135
142
  }], ctorParameters: () => [] });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGJveC1udW1iZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94LW51bWJlci9zcmMvdGV4dGJveC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94LW51bWJlci9zcmMvdGV4dGJveC1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1YsVUFBVSxFQUNWLEtBQUssRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFnQnpELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx5QkFBaUM7SUFDM0QsR0FBRyxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDeEUsR0FBRyxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDeEUsSUFBSSxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDekUsUUFBUSxHQUFHLEtBQUssQ0FBUyxDQUFD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QUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDO3lCQUN0RDtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGVmZmVjdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgaW5wdXQsXHJcbiAgbnVtYmVyQXR0cmlidXRlLFxyXG4gIHZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE1hc2tpdG8sIG1hc2tpdG9Jbml0aWFsQ2FsaWJyYXRpb25QbHVnaW4gfSBmcm9tICdAbWFza2l0by9jb3JlJztcclxuaW1wb3J0IHsgbWFza2l0b051bWJlck9wdGlvbnNHZW5lcmF0b3IsIG1hc2tpdG9QYXJzZU51bWJlciwgbWFza2l0b1N0cmluZ2lmeU51bWJlciB9IGZyb20gJ0BtYXNraXRvL2tpdCc7XHJcblxyXG5pbXBvcnQgeyBCdWlsZEluSW5wdXRWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGxhdGl0dWRlLXVpL3dpZGdldHMvaW5wdXQnO1xyXG5cclxuaW1wb3J0IHsgU3Bpbm5lcnNDb21wb25lbnQgfSBmcm9tICcuL3NwaW5uZXJzLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBpbXBvcnRzOiBbU3Bpbm5lcnNDb21wb25lbnRdLFxyXG4gIGV4cG9ydEFzOiAnbGF0VGV4dEJveCcsXHJcbiAgc2VsZWN0b3I6ICdsYXQtdGV4dGJveFt0eXBlPVwibnVtYmVyXCJdJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dGJveC1udW1iZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IEJ1aWxkSW5JbnB1dFZhbHVlQWNjZXNzb3IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRleHRCb3hOdW1iZXJDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dEJveE51bWJlckNvbXBvbmVudCBleHRlbmRzIEJ1aWxkSW5JbnB1dFZhbHVlQWNjZXNzb3I8bnVtYmVyPiB7XHJcbiAgcHVibGljIHJlYWRvbmx5IG1heCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xyXG4gIHB1YmxpYyByZWFkb25seSBtaW4gPSBpbnB1dDxudW1iZXIsIHVua25vd24+KHVuZGVmaW5lZCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcclxuICBwdWJsaWMgcmVhZG9ubHkgc3RlcCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xyXG4gIHB1YmxpYyByZWFkb25seSBkZWNpbWFscyA9IGlucHV0PG51bWJlcj4oMik7XHJcbiAgcHVibGljIHJlYWRvbmx5IGRlY2ltYWxNb2RlID0gaW5wdXQ8J2Fsd2F5cycgfCAnbm90LXplcm8nIHwgJ3BhZCc+KCdub3QtemVybycpO1xyXG4gIHB1YmxpYyByZWFkb25seSBkZWNpbWFsU2VwYXJhdG9yID0gaW5wdXQ8JywnIHwgJy4nPignLCcpO1xyXG4gIHB1YmxpYyByZWFkb25seSB0aG91c2FuZFNlcGFyYXRvciA9IGlucHV0PHN0cmluZz4oJyAnKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBpbnB1dEVsZW1lbnRSZWYgPSB2aWV3Q2hpbGQucmVxdWlyZWQoJ2lucHV0RWxlbWVudFJlZicsIHsgcmVhZDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB9KTtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IGFyaWFWYWx1ZU1heCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubWF4KCkgPz8gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpO1xyXG4gIHB1YmxpYyByZWFkb25seSBhcmlhVmFsdWVNaW4gPSBjb21wdXRlZCgoKSA9PiB0aGlzLm1pbigpID8/IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSKTtcclxuICBwdWJsaWMgcmVhZG9ubHkgYXJpYVZhbHVlTm93ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy52YWx1ZSgpIHx8IDApO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgbWF4bGVuZ3RoID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3QgeyBkZWNpbWFsU2VwYXJhdG9yLCB0aG91c2FuZFNlcGFyYXRvciB9ID0gdGhpcy5tYXNraXRvTnVtYmVyUGFyYW1zKCk7XHJcblxyXG4gICAgY29uc3QgZGVjaW1hbHMgPSB0aGlzLmRlY2ltYWxzKCk7XHJcblxyXG4gICAgY29uc3QgbWFudGlzc2EgPSBkZWNpbWFscyAmJiB0aGlzLnZhbHVlQXNTdHJpbmcoKS5pbmNsdWRlcyhkZWNpbWFsU2VwYXJhdG9yKTtcclxuICAgIGNvbnN0IHByZWNpc2lvbiA9IG1hbnRpc3NhID8gTWF0aC5taW4oZGVjaW1hbHMgKyAxLCAyMCkgOiAwO1xyXG4gICAgY29uc3QgdGhvdXNhbmQgPSB0aG91c2FuZFNlcGFyYXRvci5yZXBlYXQoNSkubGVuZ3RoO1xyXG5cclxuICAgIHJldHVybiAxOCArIHByZWNpc2lvbiArIHRob3VzYW5kO1xyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgcmVhZG9ubHkgbWFza2l0b051bWJlclBhcmFtcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgIGNvbnN0IGRlY2ltYWxNb2RlID0gdGhpcy5kZWNpbWFsTW9kZSgpO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIG1heDogdGhpcy5hcmlhVmFsdWVNYXgoKSxcclxuICAgICAgbWluOiB0aGlzLmFyaWFWYWx1ZU1pbigpLFxyXG4gICAgICBtaW51c1NpZ246ICctJyxcclxuICAgICAgcHJlY2lzaW9uOiB0aGlzLmRlY2ltYWxzKCksXHJcbiAgICAgIGRlY2ltYWxaZXJvUGFkZGluZzogZGVjaW1hbE1vZGUgPT09ICdhbHdheXMnLFxyXG4gICAgICBkZWNpbWFsU2VwYXJhdG9yOiB0aGlzLmRlY2ltYWxTZXBhcmF0b3IoKSxcclxuICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRoaXMudGhvdXNhbmRTZXBhcmF0b3IoKSxcclxuICAgIH07XHJcbiAgfSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xyXG4gICAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRFbGVtZW50UmVmKCk7XHJcbiAgICAgIGNvbnN0IGZvcm1hdHRlciA9IHRoaXMubWFza2l0b051bWJlclBhcmFtcygpO1xyXG5cclxuICAgICAgY29uc3QgeyBwbHVnaW5zLCAuLi5vcHRpb25zIH0gPSBtYXNraXRvTnVtYmVyT3B0aW9uc0dlbmVyYXRvcihmb3JtYXR0ZXIpO1xyXG5cclxuICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgTWFza2l0byhpbnB1dC5uYXRpdmVFbGVtZW50LCB7XHJcbiAgICAgICAgLi4ub3B0aW9ucyxcclxuICAgICAgICBwbHVnaW5zOiBbXHJcbiAgICAgICAgICAuLi5wbHVnaW5zLFxyXG4gICAgICAgICAgbWFza2l0b0luaXRpYWxDYWxpYnJhdGlvblBsdWdpbihcclxuICAgICAgICAgICAgbWFza2l0b051bWJlck9wdGlvbnNHZW5lcmF0b3Ioe1xyXG4gICAgICAgICAgICAgIC4uLmZvcm1hdHRlcixcclxuICAgICAgICAgICAgICBtaW46IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSLFxyXG4gICAgICAgICAgICAgIG1heDogTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgb25DbGVhbnVwKCgpID0+IGluc3RhbmNlLmRlc3Ryb3koKSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvdmVycmlkZSB2YWx1ZVN0cmluZ2lmeSh2YWx1ZUFzU3RyaW5nOiB1bmtub3duKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYXJzZU51bWJlcih2YWx1ZUFzU3RyaW5nKTtcclxuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1hc2tpdG9TdHJpbmdpZnlOdW1iZXIodmFsdWUsIHRoaXMubWFza2l0b051bWJlclBhcmFtcygpKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB2YWx1ZVNpbXBsaWZ5KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgZGVjaW1hbFNlcGFyYXRvciA9IG5ldyBSZWdFeHAodGhpcy5kZWNpbWFsU2VwYXJhdG9yKCksICdnaScpO1xyXG4gICAgY29uc3QgdGhvdXNhbmRTZXBhcmF0b3IgPSBuZXcgUmVnRXhwKHRoaXMudGhvdXNhbmRTZXBhcmF0b3IoKSwgJ2dpJyk7XHJcblxyXG4gICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UodGhvdXNhbmRTZXBhcmF0b3IsICcnKS5yZXBsYWNlKGRlY2ltYWxTZXBhcmF0b3IsICcuJyk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdmFsdWVVbnNldHRsZWQodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhKFxyXG4gICAgICB2YWx1ZSA9PT0gJy0nIHx8XHJcbiAgICAgIHZhbHVlLm1hdGNoKC9eXFxzKihbLStdKT9cXGQrXFwuJC8pIHx8XHJcbiAgICAgIHZhbHVlLm1hdGNoKC9eXFxzKihbLStdKT9cXGQrXFwuWzAtOV0qMCQvKSB8fFxyXG4gICAgICB2YWx1ZS5tYXRjaCgvXlxccyooWy0rXSkwKyQvKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBwYXJzZU51bWJlcih2YWx1ZTogdW5rbm93bik6IG51bWJlciB8IG51bGwge1xyXG4gICAgbGV0IHZhbHVlQXNOdW1iZXI6IG51bWJlciB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XHJcbiAgICAgIHZhbHVlQXNOdW1iZXIgPSB2YWx1ZTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICB2YWx1ZUFzTnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChOdW1iZXIuaXNOYU4odmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2YWx1ZUFzTnVtYmVyO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZUJsdXJFdmVudCgpOiB2b2lkIHtcclxuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xyXG5cclxuICAgIGNvbnN0IHZhbHVlQXNTdHJpbmcgPSB0aGlzLnZhbHVlU2ltcGxpZnkodGhpcy52YWx1ZUFzU3RyaW5nKCkpO1xyXG5cclxuICAgIGlmICh0aGlzLnZhbHVlVW5zZXR0bGVkKHZhbHVlQXNTdHJpbmcpKSB7XHJcbiAgICAgIHRoaXMudmFsdWVBc1N0cmluZy51cGRhdGUoKCkgPT4gdGhpcy52YWx1ZVN0cmluZ2lmeSh0aGlzLnZhbHVlKCkpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBoYW5kbGVGb2N1c0V2ZW50KCk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFsdWUgPSBtYXNraXRvUGFyc2VOdW1iZXIodGhpcy52YWx1ZUFzU3RyaW5nKCksIHRoaXMuZGVjaW1hbFNlcGFyYXRvcigpKTtcclxuXHJcbiAgICBpZiAoTnVtYmVyLmlzTmFOKHZhbHVlKSAmJiAhdGhpcy5yZWFkb25seSgpKSB7XHJcbiAgICAgIHRoaXMudmFsdWVBc1N0cmluZy5zZXQoJycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZUlucHV0RXZlbnQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRFbGVtZW50UmVmKCk7XHJcblxyXG4gICAgY29uc3QgdmFsdWVBc1N0cmluZyA9IHRoaXMudmFsdWVTaW1wbGlmeShpbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcclxuXHJcbiAgICBpZiAodGhpcy52YWx1ZVVuc2V0dGxlZCh2YWx1ZUFzU3RyaW5nKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy52YWx1ZUFzU3RyaW5nLnVwZGF0ZSgoKSA9PiBpbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMucGFyc2VOdW1iZXIodmFsdWVBc1N0cmluZyk7XHJcblxyXG4gICAgaWYgKHZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2YWx1ZSA8IHRoaXMuYXJpYVZhbHVlTWluKCkgfHwgdmFsdWUgPiB0aGlzLmFyaWFWYWx1ZU1heCgpKSB7XHJcbiAgICAgIHJldHVybiB2b2lkIDA7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiPGlucHV0XHJcbiAgI2lucHV0RWxlbWVudFJlZlxyXG4gIHR5cGU9XCJ0ZXh0XCJcclxuICByb2xlPVwic3BpbmJ1dHRvblwiXHJcbiAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXHJcbiAgW3ZhbHVlXT0ndmFsdWVBc1N0cmluZygpJ1xyXG4gIFthdHRyLmlkXT1cImlucHV0SWQoKVwiXHJcbiAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQoKSA/IC0xIDogdGFiaW5kZXgoKVwiXHJcbiAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCB1bmRlZmluZWRcIlxyXG4gIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5KCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heGxlbmd0aCgpXCJcclxuICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS12YWx1ZW1heF09XCJhcmlhVmFsdWVNYXgoKVwiXHJcbiAgW2F0dHIuYXJpYS12YWx1ZW1pbl09XCJhcmlhVmFsdWVNaW4oKVwiXHJcbiAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJhcmlhVmFsdWVOb3coKVwiXHJcbiAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1yZWFkb25seV09XCJyZWFkb25seSgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxhYmVsSWQoKVwiXHJcbiAgKGJsdXIpPVwiaGFuZGxlQmx1ckV2ZW50KClcIlxyXG4gIChmb2N1cyk9XCJoYW5kbGVGb2N1c0V2ZW50KClcIlxyXG4gIChpbnB1dCk9XCJoYW5kbGVJbnB1dEV2ZW50KClcIlxyXG4vPlxyXG5cclxuQGlmIChzdGVwKCkgJiYgIXJlYWRvbmx5KCkpIHtcclxuICA8bGF0LXNwaW5uZXJzIC8+XHJcbn1cclxuIl19
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGJveC1udW1iZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94LW51bWJlci9zcmMvdGV4dGJveC1udW1iZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94LW51bWJlci9zcmMvdGV4dGJveC1udW1iZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLE1BQU0sRUFDTixVQUFVLEVBQ1YsVUFBVSxFQUNWLEtBQUssRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFnQnpELE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBd0I7SUFDekQsR0FBRyxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDeEUsR0FBRyxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDeEUsSUFBSSxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUs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RXZCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7eUJBQ3REO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgaW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgdmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1hc2tpdG8sIG1hc2tpdG9Jbml0aWFsQ2FsaWJyYXRpb25QbHVnaW4gfSBmcm9tICdAbWFza2l0by9jb3JlJztcbmltcG9ydCB7IG1hc2tpdG9OdW1iZXJPcHRpb25zR2VuZXJhdG9yLCBtYXNraXRvUGFyc2VOdW1iZXIsIG1hc2tpdG9TdHJpbmdpZnlOdW1iZXIgfSBmcm9tICdAbWFza2l0by9raXQnO1xuXG5pbXBvcnQgeyBCdWlsZEluSW5wdXRWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGxhdGl0dWRlLXVpL3dpZGdldHMvaW5wdXQnO1xuaW1wb3J0IHsgVGV4dEJveERpcmVjdGl2ZSB9IGZyb20gJ0BsYXRpdHVkZS11aS93aWRnZXRzL3RleHRib3gnO1xuXG5pbXBvcnQgeyBTcGlubmVyc0NvbXBvbmVudCB9IGZyb20gJy4vc3Bpbm5lcnMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtTcGlubmVyc0NvbXBvbmVudF0sXG4gIGV4cG9ydEFzOiAnbGF0VGV4dEJveCcsXG4gIHNlbGVjdG9yOiAnbGF0LXRleHRib3hbdHlwZT1cIm51bWJlclwiXScsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0Ym94LW51bWJlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBCdWlsZEluSW5wdXRWYWx1ZUFjY2Vzc29yLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGV4dEJveE51bWJlckNvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV4dEJveE51bWJlckNvbXBvbmVudCBleHRlbmRzIFRleHRCb3hEaXJlY3RpdmU8bnVtYmVyPiB7XG4gIHJlYWRvbmx5IG1heCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICByZWFkb25seSBtaW4gPSBpbnB1dDxudW1iZXIsIHVua25vd24+KHVuZGVmaW5lZCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgcmVhZG9ubHkgc3RlcCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICByZWFkb25seSBkZWNpbWFscyA9IGlucHV0PG51bWJlcj4oMik7XG4gIHJlYWRvbmx5IGRlY2ltYWxNb2RlID0gaW5wdXQ8J2Fsd2F5cycgfCAnbm90LXplcm8nIHwgJ3BhZCc+KCdub3QtemVybycpO1xuICByZWFkb25seSBkZWNpbWFsU2VwYXJhdG9yID0gaW5wdXQ8JywnIHwgJy4nPignLCcpO1xuICByZWFkb25seSB0aG91c2FuZFNlcGFyYXRvciA9IGlucHV0PHN0cmluZz4oJycpO1xuXG4gIHJlYWRvbmx5IGlucHV0RWxlbWVudFJlZiA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnaW5wdXRFbGVtZW50UmVmJywgeyByZWFkOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IH0pO1xuXG4gIHJlYWRvbmx5IG1heHZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5tYXgoKSA/PyBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUik7XG4gIHJlYWRvbmx5IG1pbnZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5taW4oKSA/PyBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUik7XG4gIHJlYWRvbmx5IG5vd3ZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy52YWx1ZSgpIHx8IDApO1xuXG4gIHJlYWRvbmx5IG1heGxlbmd0aCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB7IGRlY2ltYWxTZXBhcmF0b3IsIHRob3VzYW5kU2VwYXJhdG9yIH0gPSB0aGlzLm1hc2tpdG9OdW1iZXJQYXJhbXMoKTtcblxuICAgIGNvbnN0IGRlY2ltYWxzID0gdGhpcy5kZWNpbWFscygpO1xuXG4gICAgY29uc3QgbWFudGlzc2EgPSBkZWNpbWFscyAmJiB0aGlzLnZhbHVlQXNTdHJpbmcoKS5pbmNsdWRlcyhkZWNpbWFsU2VwYXJhdG9yKTtcbiAgICBjb25zdCBwcmVjaXNpb24gPSBtYW50aXNzYSA/IE1hdGgubWluKGRlY2ltYWxzICsgMSwgMjApIDogMDtcbiAgICBjb25zdCB0aG91c2FuZCA9IHRob3VzYW5kU2VwYXJhdG9yLnJlcGVhdCg1KS5sZW5ndGg7XG5cbiAgICByZXR1cm4gMTggKyBwcmVjaXNpb24gKyB0aG91c2FuZDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbWFza2l0b051bWJlclBhcmFtcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBkZWNpbWFsTW9kZSA9IHRoaXMuZGVjaW1hbE1vZGUoKTtcblxuICAgIHJldHVybiB7XG4gICAgICBtYXg6IHRoaXMubWF4dmFsdWUoKSxcbiAgICAgIG1pbjogdGhpcy5taW52YWx1ZSgpLFxuICAgICAgbWludXNTaWduOiAnLScsXG4gICAgICBwcmVjaXNpb246IHRoaXMuZGVjaW1hbHMoKSxcbiAgICAgIGRlY2ltYWxaZXJvUGFkZGluZzogZGVjaW1hbE1vZGUgPT09ICdhbHdheXMnLFxuICAgICAgZGVjaW1hbFNlcGFyYXRvcjogdGhpcy5kZWNpbWFsU2VwYXJhdG9yKCksXG4gICAgICB0aG91c2FuZFNlcGFyYXRvcjogdGhpcy50aG91c2FuZFNlcGFyYXRvcigpLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0RWxlbWVudFJlZigpO1xuICAgICAgY29uc3QgZm9ybWF0dGVyID0gdGhpcy5tYXNraXRvTnVtYmVyUGFyYW1zKCk7XG5cbiAgICAgIGNvbnN0IHsgcGx1Z2lucywgLi4ub3B0aW9ucyB9ID0gbWFza2l0b051bWJlck9wdGlvbnNHZW5lcmF0b3IoZm9ybWF0dGVyKTtcblxuICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgTWFza2l0byhpbnB1dC5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIHBsdWdpbnM6IFtcbiAgICAgICAgICAuLi5wbHVnaW5zLFxuICAgICAgICAgIG1hc2tpdG9Jbml0aWFsQ2FsaWJyYXRpb25QbHVnaW4oXG4gICAgICAgICAgICBtYXNraXRvTnVtYmVyT3B0aW9uc0dlbmVyYXRvcih7XG4gICAgICAgICAgICAgIC4uLmZvcm1hdHRlcixcbiAgICAgICAgICAgICAgbWluOiBOdW1iZXIuTUlOX1NBRkVfSU5URUdFUixcbiAgICAgICAgICAgICAgbWF4OiBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgICAgb25DbGVhbnVwKCgpID0+IGluc3RhbmNlLmRlc3Ryb3koKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIF9oYW5kbGVWYWx1ZUNoYW5nZWQoKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0RWxlbWVudFJlZigpO1xuXG4gICAgY29uc3QgdmFsdWVBc1N0cmluZyA9IHRoaXMuX3ZhbHVlU2ltcGxpZnkoaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XG5cbiAgICBpZiAodGhpcy5fdmFsdWVVbnNldHRsZWQodmFsdWVBc1N0cmluZykpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlQXNTdHJpbmcudXBkYXRlKCgpID0+IGlucHV0Lm5hdGl2ZUVsZW1lbnQudmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fcGFyc2VOdW1iZXIodmFsdWVBc1N0cmluZyk7XG5cbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSA8IHRoaXMubWludmFsdWUoKSB8fCB2YWx1ZSA+IHRoaXMubWF4dmFsdWUoKSkge1xuICAgICAgcmV0dXJuIHZvaWQgMDtcbiAgICB9XG5cbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvdmVycmlkZSBfdmFsdWVTdHJpbmdpZnkodmFsdWVBc1N0cmluZzogdW5rbm93bik6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLl9wYXJzZU51bWJlcih2YWx1ZUFzU3RyaW5nKTtcbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICByZXR1cm4gbWFza2l0b1N0cmluZ2lmeU51bWJlcih2YWx1ZSwgdGhpcy5tYXNraXRvTnVtYmVyUGFyYW1zKCkpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBfdmFsdWVTaW1wbGlmeSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBkZWNpbWFsU2VwYXJhdG9yID0gbmV3IFJlZ0V4cCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IoKSwgJ2dpJyk7XG4gICAgY29uc3QgdGhvdXNhbmRTZXBhcmF0b3IgPSBuZXcgUmVnRXhwKHRoaXMudGhvdXNhbmRTZXBhcmF0b3IoKSwgJ2dpJyk7XG5cbiAgICByZXR1cm4gdmFsdWUucmVwbGFjZSh0aG91c2FuZFNlcGFyYXRvciwgJycpLnJlcGxhY2UoZGVjaW1hbFNlcGFyYXRvciwgJy4nKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX3ZhbHVlVW5zZXR0bGVkKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEoXG4gICAgICB2YWx1ZSA9PT0gJy0nIHx8XG4gICAgICB2YWx1ZS5tYXRjaCgvXlxccyooWy0rXSk/XFxkK1xcLiQvKSB8fFxuICAgICAgdmFsdWUubWF0Y2goL15cXHMqKFstK10pP1xcZCtcXC5bMC05XSowJC8pIHx8XG4gICAgICB2YWx1ZS5tYXRjaCgvXlxccyooWy0rXSkwKyQvKVxuICAgICk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIF9wYXJzZU51bWJlcih2YWx1ZTogdW5rbm93bik6IG51bWJlciB8IG51bGwge1xuICAgIGxldCB2YWx1ZUFzTnVtYmVyOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICB2YWx1ZUFzTnVtYmVyID0gdmFsdWU7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWx1ZUFzTnVtYmVyID0gTnVtYmVyLnBhcnNlRmxvYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChOdW1iZXIuaXNOYU4odmFsdWUpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVBc051bWJlcjtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX2hhbmRsZUZvY3VzRXZlbnQoKTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWUgPSBtYXNraXRvUGFyc2VOdW1iZXIodGhpcy52YWx1ZUFzU3RyaW5nKCksIHRoaXMuZGVjaW1hbFNlcGFyYXRvcigpKTtcblxuICAgIGlmIChOdW1iZXIuaXNOYU4odmFsdWUpICYmICF0aGlzLnJlYWRvbmx5KCkpIHtcbiAgICAgIHRoaXMudmFsdWVBc1N0cmluZy5zZXQoJycpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX2hhbmRsZUJsdXJFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcblxuICAgIGNvbnN0IHZhbHVlQXNTdHJpbmcgPSB0aGlzLl92YWx1ZVNpbXBsaWZ5KHRoaXMudmFsdWVBc1N0cmluZygpKTtcblxuICAgIGlmICh0aGlzLl92YWx1ZVVuc2V0dGxlZCh2YWx1ZUFzU3RyaW5nKSkge1xuICAgICAgdGhpcy52YWx1ZUFzU3RyaW5nLnVwZGF0ZSgoKSA9PiB0aGlzLl92YWx1ZVN0cmluZ2lmeSh0aGlzLnZhbHVlKCkpKTtcbiAgICB9XG4gIH1cblxuXG59XG4iLCI8aW5wdXRcclxuICAjaW5wdXRFbGVtZW50UmVmXHJcbiAgdHlwZT1cInRleHRcIlxyXG4gIHJvbGU9XCJzcGluYnV0dG9uXCJcclxuICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gIGF1dG9jYXBpdGFsaXplPVwib2ZmXCJcclxuICBbdmFsdWVdPSd2YWx1ZUFzU3RyaW5nKCknXHJcbiAgW2F0dHIuaWRdPVwiaW5wdXRJZCgpXCJcclxuICBbYXR0ci50YWJpbmRleF09XCJkaXNhYmxlZCgpID8gLTEgOiB0YWJpbmRleCgpXCJcclxuICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIucmVhZG9ubHldPVwicmVhZG9ubHkoKSB8fCB1bmRlZmluZWRcIlxyXG4gIFthdHRyLnJlcXVpcmVkXT1cInJlcXVpcmVkKCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4bGVuZ3RoKClcIlxyXG4gIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxyXG4gIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkKCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5hcmlhLXZhbHVlbWF4XT1cIm1heHZhbHVlKClcIlxyXG4gIFthdHRyLmFyaWEtdmFsdWVtaW5dPVwibWludmFsdWUoKVwiXHJcbiAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJub3d2YWx1ZSgpXCJcclxuICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cInJlYWRvbmx5KCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkKCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxJZCgpXCJcclxuICAoYmx1cik9XCJfaGFuZGxlQmx1ckV2ZW50KClcIlxyXG4gIChmb2N1cyk9XCJfaGFuZGxlRm9jdXNFdmVudCgpXCJcclxuICAoaW5wdXQpPVwiX2hhbmRsZVZhbHVlQ2hhbmdlZCgpXCJcclxuLz5cclxuXHJcbkBpZiAoc3RlcCgpICYmICFyZWFkb25seSgpKSB7XHJcbiAgPGxhdC1zcGlubmVycyAvPlxyXG59XHJcbiJdfQ==
@@ -1,34 +1,36 @@
1
- import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, forwardRef, inject, input, numberAttribute, viewChild, ViewEncapsulation, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, DestroyRef, forwardRef, inject, input, numberAttribute, ViewEncapsulation, } from '@angular/core';
2
2
  import { BuildInInputValueAccessor } from '@latitude-ui/widgets/input';
3
+ import { TextBoxDirective } from '@latitude-ui/widgets/textbox';
3
4
  import * as i0 from "@angular/core";
4
- export class TextBoxSearchComponent extends BuildInInputValueAccessor {
5
+ export class TextBoxSearchComponent extends TextBoxDirective {
5
6
  maxlength = input(undefined, { transform: numberAttribute });
6
7
  minlength = input(undefined, { transform: numberAttribute });
7
8
  debounceTime = input(300, { transform: numberAttribute });
8
- placeholder = input();
9
- inputElementRef = viewChild.required('inputElementRef', { read: (ElementRef) });
10
- timeoutRef = undefined;
9
+ /** @internal */
10
+ _timeoutRef = undefined;
11
11
  constructor() {
12
12
  super();
13
- inject(DestroyRef).onDestroy(() => clearTimeout(this.timeoutRef));
13
+ inject(DestroyRef).onDestroy(() => clearTimeout(this._timeoutRef));
14
14
  }
15
- handleBlurEvent() {
15
+ /** @internal */
16
+ _handleBlurEvent() {
16
17
  this.markAsTouched();
17
18
  }
18
- handleInputEvent() {
19
- clearTimeout(this.timeoutRef);
20
- const input = this.inputElementRef();
21
- this.timeoutRef = setTimeout(() => {
19
+ /** @internal */
20
+ _handleValueChanged() {
21
+ clearTimeout(this._timeoutRef);
22
+ const input = this.input();
23
+ this._timeoutRef = setTimeout(() => {
22
24
  this.writeValue(input.nativeElement.value);
23
25
  }, this.debounceTime());
24
26
  }
25
27
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TextBoxSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "20.0.4", type: TextBoxSearchComponent, isStandalone: true, selector: "lat-textbox[type=\"search\"]", inputs: { maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, minlength: { classPropertyName: "minlength", publicName: "minlength", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
28
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.0.4", type: TextBoxSearchComponent, isStandalone: true, selector: "lat-textbox[type=\"search\"]", inputs: { maxlength: { classPropertyName: "maxlength", publicName: "maxlength", isSignal: true, isRequired: false, transformFunction: null }, minlength: { classPropertyName: "minlength", publicName: "minlength", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
27
29
  {
28
30
  provide: BuildInInputValueAccessor,
29
31
  useExisting: forwardRef(() => TextBoxSearchComponent),
30
32
  },
31
- ], viewQueries: [{ propertyName: "inputElementRef", first: true, predicate: ["inputElementRef"], descendants: true, read: ElementRef, isSignal: true }], exportAs: ["latTextBox"], usesInheritance: true, ngImport: i0, template: "<input\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"handleBlurEvent()\"\r\n (input)=\"handleInputEvent()\"\r\n/>\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
33
+ ], exportAs: ["latTextBox"], usesInheritance: true, ngImport: i0, template: "<input\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"_handleBlurEvent()\"\r\n (input)=\"_handleValueChanged()\"\r\n/>\r\n", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
32
34
  }
33
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: TextBoxSearchComponent, decorators: [{
34
36
  type: Component,
@@ -37,6 +39,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImpor
37
39
  provide: BuildInInputValueAccessor,
38
40
  useExisting: forwardRef(() => TextBoxSearchComponent),
39
41
  },
40
- ], template: "<input\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"handleBlurEvent()\"\r\n (input)=\"handleInputEvent()\"\r\n/>\r\n" }]
42
+ ], template: "<input\r\n #inputElementRef\r\n type=\"text\"\r\n role=\"textbox\"\r\n [value]='valueAsString()'\r\n [attr.id]=\"inputId()\"\r\n [attr.tabindex]=\"disabled() ? -1 : tabindex()\"\r\n [attr.disabled]=\"disabled() || undefined\"\r\n [attr.readonly]=\"readonly() || undefined\"\r\n [attr.required]=\"required() || undefined\"\r\n [attr.maxlength]=\"maxlength()\"\r\n [attr.minlength]=\"minlength()\"\r\n [attr.placeholder]=\"placeholder()\"\r\n [attr.aria-invalid]=\"invalid() || undefined\"\r\n [attr.aria-disabled]=\"disabled() || undefined\"\r\n [attr.aria-readonly]=\"readonly() || undefined\"\r\n [attr.aria-required]=\"required() || undefined\"\r\n [attr.aria-labelledby]=\"labelId()\"\r\n (blur)=\"_handleBlurEvent()\"\r\n (input)=\"_handleValueChanged()\"\r\n/>\r\n" }]
41
43
  }], ctorParameters: () => [] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGJveC1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94LXNlYXJjaC9zcmMvdGV4dGJveC1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94LXNlYXJjaC9zcmMvdGV4dGJveC1zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBQ2YsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFldkUsTUFBTSxPQUFPLHNCQUF1QixTQUFRLHlCQUFpQztJQUMzRCxTQUFTLEdBQUcsS0FBSyxDQUFrQixTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUM5RSxTQUFTLEdBQUcsS0FBSyxDQUFrQixTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUM5RSxZQUFZLEdBQUcsS0FBSyxDQUFrQixHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUMzRSxXQUFXLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFFOUIsZUFBZSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQSxVQUE0QixDQUFBLEVBQUUsQ0FBQyxDQUFDO0lBRXRHLFVBQVUsR0FBdUIsU0FBUyxDQUFDO0lBRXJEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFFUixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRVMsZUFBZTtRQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRTlCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDO3VHQTNCVSxzQkFBc0I7MkZBQXRCLHNCQUFzQixzbkJBUHRCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLHlCQUF5QjtnQkFDbEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUN0RDtTQUNGLHlIQVErRSxVQUFVLDhGQ2xDNUYsa3hCQXFCQTs7MkZET2Esc0JBQXNCO2tCQWJsQyxTQUFTOytCQUNFLFlBQVksWUFDWiw0QkFBNEIsaUJBRXZCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHlCQUF5Qjs0QkFDbEMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7eUJBQ3REO3FCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICB2aWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQnVpbGRJbklucHV0VmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BsYXRpdHVkZS11aS93aWRnZXRzL2lucHV0JztcblxuQENvbXBvbmVudCh7XG4gIGV4cG9ydEFzOiAnbGF0VGV4dEJveCcsXG4gIHNlbGVjdG9yOiAnbGF0LXRleHRib3hbdHlwZT1cInNlYXJjaFwiXScsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0Ym94LXNlYXJjaC5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBCdWlsZEluSW5wdXRWYWx1ZUFjY2Vzc29yLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGV4dEJveFNlYXJjaENvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGV4dEJveFNlYXJjaENvbXBvbmVudCBleHRlbmRzIEJ1aWxkSW5JbnB1dFZhbHVlQWNjZXNzb3I8c3RyaW5nPiB7XG4gIHB1YmxpYyByZWFkb25seSBtYXhsZW5ndGggPSBpbnB1dDxudW1iZXIsIHVua25vd24+KHVuZGVmaW5lZCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgcHVibGljIHJlYWRvbmx5IG1pbmxlbmd0aCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgZGVib3VuY2VUaW1lID0gaW5wdXQ8bnVtYmVyLCB1bmtub3duPigzMDAsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG4gIHB1YmxpYyByZWFkb25seSBwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaW5wdXRFbGVtZW50UmVmID0gdmlld0NoaWxkLnJlcXVpcmVkKCdpbnB1dEVsZW1lbnRSZWYnLCB7IHJlYWQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gfSk7XG5cbiAgcHJvdGVjdGVkIHRpbWVvdXRSZWY6IG51bWJlciB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaW5qZWN0KERlc3Ryb3lSZWYpLm9uRGVzdHJveSgoKSA9PiBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0UmVmKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlQmx1ckV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMubWFya0FzVG91Y2hlZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUlucHV0RXZlbnQoKTogdm9pZCB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dFJlZik7XG5cbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRFbGVtZW50UmVmKCk7XG4gICAgdGhpcy50aW1lb3V0UmVmID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgfSwgdGhpcy5kZWJvdW5jZVRpbWUoKSk7XG4gIH1cblxufVxuIiwiPGlucHV0XHJcbiAgI2lucHV0RWxlbWVudFJlZlxyXG4gIHR5cGU9XCJ0ZXh0XCJcclxuICByb2xlPVwidGV4dGJveFwiXHJcbiAgW3ZhbHVlXT0ndmFsdWVBc1N0cmluZygpJ1xyXG4gIFthdHRyLmlkXT1cImlucHV0SWQoKVwiXHJcbiAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQoKSA/IC0xIDogdGFiaW5kZXgoKVwiXHJcbiAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZWQoKSB8fCB1bmRlZmluZWRcIlxyXG4gIFthdHRyLnJlYWRvbmx5XT1cInJlYWRvbmx5KCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5yZXF1aXJlZF09XCJyZXF1aXJlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heGxlbmd0aCgpXCJcclxuICBbYXR0ci5taW5sZW5ndGhdPVwibWlubGVuZ3RoKClcIlxyXG4gIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxyXG4gIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkKCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cInJlYWRvbmx5KCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkKCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGFiZWxJZCgpXCJcclxuICAoYmx1cik9XCJoYW5kbGVCbHVyRXZlbnQoKVwiXHJcbiAgKGlucHV0KT1cImhhbmRsZUlucHV0RXZlbnQoKVwiXHJcbi8+XHJcbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGJveC1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94LXNlYXJjaC9zcmMvdGV4dGJveC1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90ZXh0Ym94LXNlYXJjaC9zcmMvdGV4dGJveC1zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLGVBQWUsRUFDZixpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBZWhFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxnQkFBd0I7SUFDekQsU0FBUyxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDOUUsU0FBUyxHQUFHLEtBQUssQ0FBa0IsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDOUUsWUFBWSxHQUFHLEtBQUssQ0FBa0IsR0FBRyxFQUFFLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFcEYsZ0JBQWdCO0lBQ2hCLFdBQVcsR0FBdUIsU0FBUyxDQUFDO0lBRTVDO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFFUixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtRQUNkLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtRQUNqQixZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRS9CLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdDLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMxQixDQUFDO3VHQTNCVSxzQkFBc0I7MkZBQXRCLHNCQUFzQiw0ZUFQdEI7WUFDVDtnQkFDRSxPQUFPLEVBQUUseUJBQXlCO2dCQUNsQyxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2FBQ3REO1NBQ0YsMkVDekJILHN4QkFxQkE7OzJGRE1hLHNCQUFzQjtrQkFibEMsU0FBUzsrQkFDRSxZQUFZLFlBQ1osNEJBQTRCLGlCQUV2QixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSx5QkFBeUI7NEJBQ2xDLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDO3lCQUN0RDtxQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCdWlsZEluSW5wdXRWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnQGxhdGl0dWRlLXVpL3dpZGdldHMvaW5wdXQnO1xuaW1wb3J0IHsgVGV4dEJveERpcmVjdGl2ZSB9IGZyb20gJ0BsYXRpdHVkZS11aS93aWRnZXRzL3RleHRib3gnO1xuXG5AQ29tcG9uZW50KHtcbiAgZXhwb3J0QXM6ICdsYXRUZXh0Qm94JyxcbiAgc2VsZWN0b3I6ICdsYXQtdGV4dGJveFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRib3gtc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEJ1aWxkSW5JbnB1dFZhbHVlQWNjZXNzb3IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0Qm94U2VhcmNoQ29tcG9uZW50KSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0Qm94U2VhcmNoQ29tcG9uZW50IGV4dGVuZHMgVGV4dEJveERpcmVjdGl2ZTxzdHJpbmc+IHtcbiAgcmVhZG9ubHkgbWF4bGVuZ3RoID0gaW5wdXQ8bnVtYmVyLCB1bmtub3duPih1bmRlZmluZWQsIHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSk7XG4gIHJlYWRvbmx5IG1pbmxlbmd0aCA9IGlucHV0PG51bWJlciwgdW5rbm93bj4odW5kZWZpbmVkLCB7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pO1xuICByZWFkb25seSBkZWJvdW5jZVRpbWUgPSBpbnB1dDxudW1iZXIsIHVua25vd24+KDMwMCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcblxuICAvKiogQGludGVybmFsICovXG4gIF90aW1lb3V0UmVmOiBudW1iZXIgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGluamVjdChEZXN0cm95UmVmKS5vbkRlc3Ryb3koKCkgPT4gY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXRSZWYpKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX2hhbmRsZUJsdXJFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgX2hhbmRsZVZhbHVlQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fdGltZW91dFJlZik7XG5cbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXQoKTtcbiAgICB0aGlzLl90aW1lb3V0UmVmID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLndyaXRlVmFsdWUoaW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSk7XG4gICAgfSwgdGhpcy5kZWJvdW5jZVRpbWUoKSk7XG4gIH1cbn1cbiIsIjxpbnB1dFxyXG4gICNpbnB1dEVsZW1lbnRSZWZcclxuICB0eXBlPVwidGV4dFwiXHJcbiAgcm9sZT1cInRleHRib3hcIlxyXG4gIFt2YWx1ZV09J3ZhbHVlQXNTdHJpbmcoKSdcclxuICBbYXR0ci5pZF09XCJpbnB1dElkKClcIlxyXG4gIFthdHRyLnRhYmluZGV4XT1cImRpc2FibGVkKCkgPyAtMSA6IHRhYmluZGV4KClcIlxyXG4gIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkKCkgfHwgdW5kZWZpbmVkXCJcclxuICBbYXR0ci5yZWFkb25seV09XCJyZWFkb25seSgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIucmVxdWlyZWRdPVwicmVxdWlyZWQoKSB8fCB1bmRlZmluZWRcIlxyXG4gIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGgoKVwiXHJcbiAgW2F0dHIubWlubGVuZ3RoXT1cIm1pbmxlbmd0aCgpXCJcclxuICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcclxuICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaW52YWxpZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1yZWFkb25seV09XCJyZWFkb25seSgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCgpIHx8IHVuZGVmaW5lZFwiXHJcbiAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxhYmVsSWQoKVwiXHJcbiAgKGJsdXIpPVwiX2hhbmRsZUJsdXJFdmVudCgpXCJcclxuICAoaW5wdXQpPVwiX2hhbmRsZVZhbHVlQ2hhbmdlZCgpXCJcclxuLz5cclxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF0aXR1ZGUtdWktd2lkZ2V0cy10b29sYmFyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90b29sYmFyL2xhdGl0dWRlLXVpLXdpZGdldHMtdG9vbGJhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './src/toolbar.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3dpZGdldHMvdG9vbGJhci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NyYy90b29sYmFyLmNvbXBvbmVudCc7XG4iXX0=
@@ -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 ToolBarComponent {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: ToolBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.4", type: ToolBarComponent, isStandalone: true, selector: "lat-toolbar", host: { attributes: { "role": "presentation" } }, exportAs: ["latTooBar"], ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: ToolBarComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ exportAs: 'latTooBar', selector: 'lat-toolbar', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
11
+ role: 'presentation',
12
+ }, template: "" }]
13
+ }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy93aWRnZXRzL3Rvb2xiYXIvc3JjL3Rvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvd2lkZ2V0cy90b29sYmFyL3NyYy90b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVl4RCxNQUFNLE9BQU8sZ0JBQWdCO3VHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQixrSkNkN0IsRUFBQTs7MkZEY2EsZ0JBQWdCO2tCQVY1QixTQUFTOytCQUNFLFdBQVcsWUFDWCxhQUFhLGlCQUVSLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osSUFBSSxFQUFFLGNBQWM7cUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIGV4cG9ydEFzOiAnbGF0VG9vQmFyJyxcclxuICBzZWxlY3RvcjogJ2xhdC10b29sYmFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBob3N0OiB7XHJcbiAgICByb2xlOiAncHJlc2VudGF0aW9uJyxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9vbEJhckNvbXBvbmVudCB7XHJcbn1cclxuIiwiIl19
@@ -1,9 +1,11 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class IconComponent {
3
- readonly resolve: (name: string) => string;
3
+ readonly resolve: (icon: string) => string;
4
+ readonly polyfill: import("@angular/core").Signal<boolean>;
4
5
  readonly url: import("@angular/core").InputSignal<string | undefined>;
5
6
  readonly name: import("@angular/core").InputSignal<string | undefined>;
6
7
  readonly icon: import("@angular/core").Signal<string>;
8
+ constructor();
7
9
  static ɵfac: i0.ɵɵFactoryDeclaration<IconComponent, never>;
8
10
  static ɵcmp: i0.ɵɵComponentDeclaration<IconComponent, "lat-icon", ["latIcon"], { "url": { "alias": "url"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
9
11
  }
@@ -0,0 +1,15 @@
1
+ import { Observable } from 'rxjs';
2
+ import { Renderer2, Signal } from '@angular/core';
3
+ import { HttpClient } from '@angular/common/http';
4
+ import * as i0 from "@angular/core";
5
+ export declare class IconService {
6
+ readonly _http: HttpClient;
7
+ readonly _renderer: Renderer2;
8
+ readonly _icons: Map<string, SVGElement>;
9
+ readonly _tasks: Map<string, Observable<SVGElement>>;
10
+ get(url: string): Observable<SVGElement>;
11
+ toObservable(url: Signal<string | undefined>): void;
12
+ _normalize(text: string): SVGElement;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<IconService, never>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<IconService>;
15
+ }
@@ -1,3 +1,4 @@
1
1
  import { InjectionToken } from '@angular/core';
2
2
  export declare const ICONS_ASSETS: InjectionToken<string>;
3
- export declare const ICONS_RESOLVER: InjectionToken<(name: string) => string>;
3
+ export declare const ICONS_RESOLVER: InjectionToken<(icon: string) => string>;
4
+ export declare const ICONS_POLYFILL: InjectionToken<import("@angular/core").Signal<boolean>>;
@@ -10,6 +10,7 @@ export declare class BuildInInputValueAccessor<T> {
10
10
  readonly tabindex: import("@angular/core").InputSignalWithTransform<number, unknown>;
11
11
  readonly readonly: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
12
12
  readonly required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
13
+ readonly placeholder: import("@angular/core").InputSignal<string | undefined>;
13
14
  readonly value: import("@angular/core").Signal<T | null>;
14
15
  readonly control: import("@angular/core").Signal<AbstractControl<any, any> | null>;
15
16
  readonly valueAsString: import("@angular/core").WritableSignal<string>;
@@ -27,8 +28,10 @@ export declare class BuildInInputValueAccessor<T> {
27
28
  readonly inputId: import("@angular/core").Signal<string | undefined>;
28
29
  readonly labelId: import("@angular/core").Signal<string | undefined>;
29
30
  readonly inputSize: import("@angular/core").Signal<InputSize>;
30
- private readonly _value;
31
- private readonly _control;
31
+ /** @internal */
32
+ readonly _value: import("@angular/core").WritableSignal<T | null>;
33
+ /** @internal */
34
+ readonly _control: import("@angular/core").WritableSignal<AbstractControl<any, any> | null>;
32
35
  constructor();
33
36
  /**
34
37
  * Sets the "value" property on the input element.
@@ -42,20 +45,16 @@ export declare class BuildInInputValueAccessor<T> {
42
45
  * Marks the control as `touched`.
43
46
  */
44
47
  markAsTouched(): void;
45
- /**
46
- * @nodoc
47
- */
48
- valueEquality(value0: T | null, value1: unknown): boolean;
49
- /**
50
- * @nodoc
51
- */
52
- valueStringify(value: unknown): string;
53
48
  /** @internal */
54
- private _writeValue;
49
+ _valueEquality(value0: T | null, value1: unknown): boolean;
50
+ /** @internal */
51
+ _valueStringify(value: unknown): string;
52
+ /** @internal */
53
+ _writeValue(input: T | null): boolean;
55
54
  /** @internal */
56
- private _markAsTouched;
55
+ _markAsTouched: VoidFunction;
57
56
  /** @internal */
58
- private _markAsChanged;
57
+ _markAsChanged: VoidFunction;
59
58
  static ɵfac: i0.ɵɵFactoryDeclaration<BuildInInputValueAccessor<any>, never>;
60
- static ɵdir: i0.ɵɵDirectiveDeclaration<BuildInInputValueAccessor<any>, never, never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
59
+ static ɵdir: i0.ɵɵDirectiveDeclaration<BuildInInputValueAccessor<any>, never, never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "tabindex": { "alias": "tabindex"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
61
60
  }
@@ -1,6 +1,7 @@
1
+ import { ElementRef } from '@angular/core';
1
2
  import * as i0 from "@angular/core";
2
3
  export declare class ListBoxOptionComponent<T> {
3
- readonly nativeElement: any;
4
+ readonly option: ElementRef<any>;
4
5
  readonly value: import("@angular/core").InputSignal<T>;
5
6
  readonly setsize: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
6
7
  readonly posinset: import("@angular/core").InputSignalWithTransform<number | undefined, unknown>;
@@ -8,10 +9,6 @@ export declare class ListBoxOptionComponent<T> {
8
9
  readonly disabled: import("@angular/core").InputSignalWithTransform<boolean | undefined, unknown>;
9
10
  readonly checkbox: import("@angular/core").InputSignalWithTransform<boolean | undefined, unknown>;
10
11
  constructor();
11
- /**
12
- * https://github.com/angular/angular/issues/9587
13
- */
14
- private _setUpHostListeners;
15
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ListBoxOptionComponent<any>, never>;
16
13
  static ɵcmp: i0.ɵɵComponentDeclaration<ListBoxOptionComponent<any>, "lat-listbox-option, lat-option", ["latListBoxOption"], { "value": { "alias": "value"; "required": true; "isSignal": true; }; "setsize": { "alias": "setsize"; "required": false; "isSignal": true; }; "posinset": { "alias": "posinset"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "checkbox": { "alias": "checkbox"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
17
14
  }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@latitude-ui/widgets/listview" />
5
+ export * from './public-api';
@@ -0,0 +1 @@
1
+ export * from './src/listview.component';
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ListViewComponent {
3
+ readonly queryable: import("@latitude-ui/widgets/cdk").Queryable<unknown>;
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<ListViewComponent, never>;
5
+ static ɵcmp: i0.ɵɵComponentDeclaration<ListViewComponent, "lat-listview", ["latListView"], {}, {}, never, never, true, never>;
6
+ }
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { Queryable } from '@latitude-ui/widgets/cdk';
3
+ export declare const LISTVIEW_QUERYABLE: InjectionToken<Queryable<unknown>>;
@@ -0,0 +1,3 @@
1
+ # @latitude-ui/widgets/button
2
+
3
+ Secondary entry point of `@latitude-ui/widgets`. It can be used by importing from `@latitude-ui/widgets/button`.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@latitude-ui/widgets/lookup" />
5
+ export * from './public-api';
@@ -0,0 +1,2 @@
1
+ export * from './src/lookup-outlet.directive';
2
+ export * from './src/lookup.component';
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class LookupOutletDirective {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<LookupOutletDirective, never>;
4
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LookupOutletDirective, "ng-template[latLookupOutlet], ng-template[lat-lookup-outlet], [latLookupOutlet], [lat-lookup-outlet]", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class LookupComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<LookupComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<LookupComponent, "lat-lookup", ["latLookup"], {}, {}, never, never, true, never>;
5
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@latitude-ui/widgets",
3
- "version": "0.0.12",
3
+ "version": "0.0.14",
4
4
  "sideEffects": false,
5
5
  "description": "UI Widgets",
6
6
  "keywords": [
@@ -28,6 +28,10 @@
28
28
  "types": "./button/latitude-ui-widgets-button.d.ts",
29
29
  "default": "./esm2022/button/latitude-ui-widgets-button.js"
30
30
  },
31
+ "./cdk": {
32
+ "types": "./cdk/latitude-ui-widgets-cdk.d.ts",
33
+ "default": "./esm2022/cdk/latitude-ui-widgets-cdk.js"
34
+ },
31
35
  "./checkbox": {
32
36
  "types": "./checkbox/latitude-ui-widgets-checkbox.d.ts",
33
37
  "default": "./esm2022/checkbox/latitude-ui-widgets-checkbox.js"
@@ -52,6 +56,14 @@
52
56
  "types": "./listbox/latitude-ui-widgets-listbox.d.ts",
53
57
  "default": "./esm2022/listbox/latitude-ui-widgets-listbox.js"
54
58
  },
59
+ "./listview": {
60
+ "types": "./listview/latitude-ui-widgets-listview.d.ts",
61
+ "default": "./esm2022/listview/latitude-ui-widgets-listview.js"
62
+ },
63
+ "./lookup": {
64
+ "types": "./lookup/latitude-ui-widgets-lookup.d.ts",
65
+ "default": "./esm2022/lookup/latitude-ui-widgets-lookup.js"
66
+ },
55
67
  "./select": {
56
68
  "types": "./select/latitude-ui-widgets-select.d.ts",
57
69
  "default": "./esm2022/select/latitude-ui-widgets-select.js"
@@ -60,21 +72,21 @@
60
72
  "types": "./switch/latitude-ui-widgets-switch.d.ts",
61
73
  "default": "./esm2022/switch/latitude-ui-widgets-switch.js"
62
74
  },
63
- "./textarea": {
64
- "types": "./textarea/latitude-ui-widgets-textarea.d.ts",
65
- "default": "./esm2022/textarea/latitude-ui-widgets-textarea.js"
66
- },
67
75
  "./textbox": {
68
76
  "types": "./textbox/latitude-ui-widgets-textbox.d.ts",
69
77
  "default": "./esm2022/textbox/latitude-ui-widgets-textbox.js"
70
78
  },
79
+ "./textbox-number": {
80
+ "types": "./textbox-number/latitude-ui-widgets-textbox-number.d.ts",
81
+ "default": "./esm2022/textbox-number/latitude-ui-widgets-textbox-number.js"
82
+ },
71
83
  "./textbox-search": {
72
84
  "types": "./textbox-search/latitude-ui-widgets-textbox-search.d.ts",
73
85
  "default": "./esm2022/textbox-search/latitude-ui-widgets-textbox-search.js"
74
86
  },
75
- "./textbox-number": {
76
- "types": "./textbox-number/latitude-ui-widgets-textbox-number.d.ts",
77
- "default": "./esm2022/textbox-number/latitude-ui-widgets-textbox-number.js"
87
+ "./toolbar": {
88
+ "types": "./toolbar/latitude-ui-widgets-toolbar.d.ts",
89
+ "default": "./esm2022/toolbar/latitude-ui-widgets-toolbar.js"
78
90
  }
79
91
  },
80
92
  "peerDependencies": {
@@ -1,6 +1,6 @@
1
- export * from './src/select-option.directive';
2
- export * from './src/select.directive';
3
- export * from './src/select-option.component';
1
+ export * from './src/select/select.directive';
2
+ export * from './src/select-option/select-option.component';
3
+ export * from './src/select-option/select-option.directive';
4
4
  export * from './src/select-multiple.component';
5
5
  export * from './src/select-single.component';
6
6
  export * from './src/select.module';