@origostudio/origo-design 0.0.49 → 0.0.51

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 (98) hide show
  1. package/CHANGELOG.md +6 -4
  2. package/dist/packages/angular-renderer/CHANGELOG.md +22 -0
  3. package/dist/packages/angular-renderer/package.json +3 -3
  4. package/dist/packages/angular-renderer/src/components/primitives/autocomplete/autocomplete.component.d.ts +99 -0
  5. package/dist/packages/angular-renderer/src/components/primitives/autocomplete/autocomplete.component.js +306 -0
  6. package/dist/packages/angular-renderer/src/components/primitives/autocomplete/autocomplete.component.js.map +1 -0
  7. package/dist/packages/angular-renderer/src/components/primitives/combobox/combobox.component.d.ts +69 -0
  8. package/dist/packages/angular-renderer/src/components/primitives/combobox/combobox.component.js +276 -0
  9. package/dist/packages/angular-renderer/src/components/primitives/combobox/combobox.component.js.map +1 -0
  10. package/dist/packages/angular-renderer/src/components/primitives/date-picker/date-picker.component.d.ts +57 -0
  11. package/dist/packages/angular-renderer/src/components/primitives/date-picker/date-picker.component.js +257 -0
  12. package/dist/packages/angular-renderer/src/components/primitives/date-picker/date-picker.component.js.map +1 -0
  13. package/dist/packages/angular-renderer/src/components/primitives/date-range-picker/date-range-picker.component.d.ts +67 -0
  14. package/dist/packages/angular-renderer/src/components/primitives/date-range-picker/date-range-picker.component.js +299 -0
  15. package/dist/packages/angular-renderer/src/components/primitives/date-range-picker/date-range-picker.component.js.map +1 -0
  16. package/dist/packages/angular-renderer/src/components/primitives/multi-select/multi-select.component.d.ts +110 -0
  17. package/dist/packages/angular-renderer/src/components/primitives/multi-select/multi-select.component.js +323 -0
  18. package/dist/packages/angular-renderer/src/components/primitives/multi-select/multi-select.component.js.map +1 -0
  19. package/dist/packages/angular-renderer/src/components/primitives/select/select.component.d.ts +80 -19
  20. package/dist/packages/angular-renderer/src/components/primitives/select/select.component.js +201 -24
  21. package/dist/packages/angular-renderer/src/components/primitives/select/select.component.js.map +1 -1
  22. package/dist/packages/angular-renderer/src/components/primitives/select/selection-utils.d.ts +9 -0
  23. package/dist/packages/angular-renderer/src/components/primitives/select/selection-utils.js +69 -0
  24. package/dist/packages/angular-renderer/src/components/primitives/select/selection-utils.js.map +1 -0
  25. package/dist/packages/angular-renderer/src/components/primitives/time-picker/time-picker.component.d.ts +48 -0
  26. package/dist/packages/angular-renderer/src/components/primitives/time-picker/time-picker.component.js +214 -0
  27. package/dist/packages/angular-renderer/src/components/primitives/time-picker/time-picker.component.js.map +1 -0
  28. package/dist/packages/angular-renderer/src/index.d.ts +6 -0
  29. package/dist/packages/angular-renderer/src/index.js +6 -0
  30. package/dist/packages/angular-renderer/src/index.js.map +1 -1
  31. package/dist/packages/angular-renderer/src/lib/primitives.provider.js +12 -0
  32. package/dist/packages/angular-renderer/src/lib/primitives.provider.js.map +1 -1
  33. package/dist/packages/cli/CHANGELOG.md +8 -0
  34. package/dist/packages/cli/package.json +2 -2
  35. package/dist/packages/cli/package.json.bak +2 -2
  36. package/dist/packages/core/CHANGELOG.md +8 -0
  37. package/dist/packages/core/package.json +1 -1
  38. package/dist/packages/core/package.json.bak +1 -1
  39. package/dist/packages/design-tokens/CHANGELOG.md +8 -0
  40. package/dist/packages/design-tokens/package.json +1 -1
  41. package/dist/packages/playground/browser/{chunk-B_swdRuc.js → chunk-2fyh0Go5.js} +1 -1
  42. package/dist/packages/playground/browser/{chunk-C8l8Pst_.js → chunk-6qDdu3iP.js} +1 -1
  43. package/dist/packages/playground/browser/{chunk-G1sQXMvG.js → chunk-BQHgLM1h.js} +1 -1
  44. package/dist/packages/playground/browser/{chunk-Cb2ALrKC.js → chunk-BQrkBjEv.js} +1 -1
  45. package/dist/packages/playground/browser/{chunk-BbeNQQ9Z.js → chunk-BSIGVQT8.js} +1 -1
  46. package/dist/packages/playground/browser/{chunk-BlCRDoSd.js → chunk-CD79k8Eb.js} +1 -1
  47. package/dist/packages/playground/browser/{chunk-CCE_vAje.js → chunk-D6mKAQPx.js} +1 -1
  48. package/dist/packages/playground/browser/{chunk-DoYDPF2-.js → chunk-DBZa4hap.js} +1 -1
  49. package/dist/packages/playground/browser/{chunk-CpaI4VGh.js → chunk-DGb2Oa6d.js} +1 -1
  50. package/dist/packages/playground/browser/{chunk-B8mwHWgW.js → chunk-DPEeny3K.js} +1 -1
  51. package/dist/packages/playground/browser/{chunk-DgLZ-dIi.js → chunk-DeS5TtZS.js} +1 -1
  52. package/dist/packages/playground/browser/{chunk-r4-UbXQJ.js → chunk-DnW3HJ2k.js} +1 -1
  53. package/dist/packages/playground/browser/{chunk-lFsGUZ3A.js → chunk-V8VJI0nO.js} +1 -1
  54. package/dist/packages/playground/browser/{chunk-XTbjIUbx.js → chunk-mGxxpk2V.js} +1 -1
  55. package/dist/packages/playground/browser/{chunk-DkxgAarv.js → chunk-vt9o3pSK.js} +1 -1
  56. package/dist/packages/playground/browser/index.html +1 -1
  57. package/dist/packages/playground/browser/main-6RRVB3JV.js +740 -0
  58. package/package.json +1 -1
  59. package/packages/angular-renderer/CHANGELOG.md +22 -0
  60. package/packages/angular-renderer/package.json +3 -3
  61. package/packages/angular-renderer/src/components/primitives/autocomplete/autocomplete.component.html +83 -0
  62. package/packages/angular-renderer/src/components/primitives/autocomplete/autocomplete.component.scss +161 -0
  63. package/packages/angular-renderer/src/components/primitives/autocomplete/autocomplete.component.ts +338 -0
  64. package/packages/angular-renderer/src/components/primitives/combobox/combobox.component.html +90 -0
  65. package/packages/angular-renderer/src/components/primitives/combobox/combobox.component.scss +189 -0
  66. package/packages/angular-renderer/src/components/primitives/combobox/combobox.component.ts +281 -0
  67. package/packages/angular-renderer/src/components/primitives/date-picker/date-picker.component.html +73 -0
  68. package/packages/angular-renderer/src/components/primitives/date-picker/date-picker.component.scss +77 -0
  69. package/packages/angular-renderer/src/components/primitives/date-picker/date-picker.component.ts +294 -0
  70. package/packages/angular-renderer/src/components/primitives/date-range-picker/date-range-picker.component.html +83 -0
  71. package/packages/angular-renderer/src/components/primitives/date-range-picker/date-range-picker.component.scss +92 -0
  72. package/packages/angular-renderer/src/components/primitives/date-range-picker/date-range-picker.component.ts +357 -0
  73. package/packages/angular-renderer/src/components/primitives/icon-button/icon-button.component.html +1 -1
  74. package/packages/angular-renderer/src/components/primitives/multi-select/multi-select.component.html +150 -0
  75. package/packages/angular-renderer/src/components/primitives/multi-select/multi-select.component.scss +240 -0
  76. package/packages/angular-renderer/src/components/primitives/multi-select/multi-select.component.ts +362 -0
  77. package/packages/angular-renderer/src/components/primitives/select/select.component.html +92 -14
  78. package/packages/angular-renderer/src/components/primitives/select/select.component.scss +188 -13
  79. package/packages/angular-renderer/src/components/primitives/select/select.component.ts +242 -34
  80. package/packages/angular-renderer/src/components/primitives/select/selection-utils.ts +92 -0
  81. package/packages/angular-renderer/src/components/primitives/time-picker/time-picker.component.html +65 -0
  82. package/packages/angular-renderer/src/components/primitives/time-picker/time-picker.component.scss +65 -0
  83. package/packages/angular-renderer/src/components/primitives/time-picker/time-picker.component.ts +229 -0
  84. package/packages/angular-renderer/src/index.ts +6 -0
  85. package/packages/angular-renderer/src/lib/primitives.provider.ts +12 -0
  86. package/packages/cli/CHANGELOG.md +8 -0
  87. package/packages/cli/package.json +2 -2
  88. package/packages/core/CHANGELOG.md +8 -0
  89. package/packages/core/package.json +1 -1
  90. package/packages/design-tokens/CHANGELOG.md +8 -0
  91. package/packages/design-tokens/package.json +1 -1
  92. package/packages/devtools/CHANGELOG.md +14 -0
  93. package/packages/devtools/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  94. package/packages/devtools/package.json +3 -3
  95. package/packages/playground/CHANGELOG.md +8 -0
  96. package/packages/playground/node_modules/.vite/vitest/da39a3ee5e6b4b0d3255bfef95601890afd80709/results.json +1 -1
  97. package/packages/playground/package.json +3 -3
  98. package/dist/packages/playground/browser/main-D2PNGI4C.js +0 -734
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MultiSelectComponent = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const core_1 = require("@angular/core");
6
+ const common_1 = require("@angular/common");
7
+ const experience_adapter_service_1 = require("../../../adapters/web/experience-adapter.service");
8
+ const selection_utils_1 = require("../select/selection-utils");
9
+ let MultiSelectComponent = (() => {
10
+ let _classDecorators = [(0, core_1.Component)({
11
+ selector: 'origo-multi-select',
12
+ standalone: true,
13
+ templateUrl: './multi-select.component.html',
14
+ styleUrls: ['./multi-select.component.scss'],
15
+ changeDetection: core_1.ChangeDetectionStrategy.OnPush,
16
+ encapsulation: core_1.ViewEncapsulation.ShadowDom,
17
+ host: {
18
+ '[class.origo-multi-select]': 'true',
19
+ '[attr.data-testid]': 'contract().id ?? ""',
20
+ '[class.origo-multi-select--fluid]': 'computedFluid()',
21
+ '[class.origo-multi-select--outlined]': 'computedVariant() === "outlined"',
22
+ '[class.origo-multi-select--filled]': 'computedVariant() === "filled"',
23
+ '[class.origo-multi-select--invalid]': 'computedInvalid()',
24
+ '[class.origo-multi-select--disabled]': 'computedDisabled()',
25
+ '[class.origo-multi-select--readonly]': 'computedReadonly()',
26
+ },
27
+ })];
28
+ let _classDescriptor;
29
+ let _classExtraInitializers = [];
30
+ let _classThis;
31
+ let _instanceExtraInitializers = [];
32
+ let _onDocumentClick_decorators;
33
+ var MultiSelectComponent = class {
34
+ static { _classThis = this; }
35
+ static {
36
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
37
+ _onDocumentClick_decorators = [(0, core_1.HostListener)('document:click', ['$event'])];
38
+ tslib_1.__esDecorate(this, null, _onDocumentClick_decorators, { kind: "method", name: "onDocumentClick", static: false, private: false, access: { has: obj => "onDocumentClick" in obj, get: obj => obj.onDocumentClick }, metadata: _metadata }, null, _instanceExtraInitializers);
39
+ tslib_1.__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
40
+ MultiSelectComponent = _classThis = _classDescriptor.value;
41
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
42
+ }
43
+ static contractSchema = {
44
+ permissions: 'object',
45
+ rules: 'object',
46
+ metadata: 'object',
47
+ options: 'array',
48
+ value: 'array',
49
+ optionLabel: 'string',
50
+ optionValue: 'string',
51
+ placeholder: 'string',
52
+ filter: 'boolean',
53
+ filterBy: 'string',
54
+ filterPlaceholder: 'string',
55
+ showToggleAll: 'boolean',
56
+ maxSelectedLabels: 'number',
57
+ selectedItemsLabel: 'string',
58
+ display: 'string',
59
+ clearable: 'boolean',
60
+ virtualScroll: 'boolean',
61
+ itemSize: 'number',
62
+ loading: 'boolean',
63
+ disabled: 'boolean',
64
+ readonly: 'boolean',
65
+ required: 'boolean',
66
+ invalid: 'boolean',
67
+ errorText: 'string',
68
+ helpText: 'string',
69
+ variant: 'string',
70
+ fluid: 'boolean',
71
+ 'aria-label': 'string',
72
+ 'aria-describedby': 'string',
73
+ };
74
+ static strictContract = false;
75
+ contract = (tslib_1.__runInitializers(this, _instanceExtraInitializers), core_1.input.required());
76
+ value = (0, core_1.model)([]);
77
+ isOpen = (0, core_1.signal)(false);
78
+ filterQuery = (0, core_1.signal)('');
79
+ activeIndex = (0, core_1.signal)(-1);
80
+ computedNormalizedOptions = (0, core_1.computed)(() => {
81
+ const props = this.contract().props;
82
+ return (0, selection_utils_1.normalizeOptions)(props?.options, props?.optionLabel, props?.optionValue);
83
+ });
84
+ filteredOptions = (0, core_1.computed)(() => {
85
+ const opts = this.computedNormalizedOptions();
86
+ if (!this.computedFilter() && !this.filterQuery()) {
87
+ return opts;
88
+ }
89
+ return (0, selection_utils_1.filterOptions)(opts, this.filterQuery(), 'contains');
90
+ });
91
+ computedSelectedOptions = (0, core_1.computed)(() => {
92
+ const current = new Set(this.value());
93
+ return this.computedNormalizedOptions().filter(opt => current.has(opt.value));
94
+ });
95
+ computedPlaceholder = (0, core_1.computed)(() => this.contract().props?.placeholder ?? 'Select options');
96
+ computedDisabled = (0, core_1.computed)(() => !!this.contract().props?.disabled);
97
+ computedReadonly = (0, core_1.computed)(() => !!this.contract().props?.readonly);
98
+ computedRequired = (0, core_1.computed)(() => !!this.contract().props?.required);
99
+ computedInvalid = (0, core_1.computed)(() => !!this.contract().props?.invalid);
100
+ computedFilter = (0, core_1.computed)(() => !!this.contract().props?.filter);
101
+ computedFilterPlaceholder = (0, core_1.computed)(() => this.contract().props?.filterPlaceholder ?? 'Search...');
102
+ computedShowToggleAll = (0, core_1.computed)(() => this.contract().props?.showToggleAll ?? true);
103
+ computedClearable = (0, core_1.computed)(() => !!this.contract().props?.clearable);
104
+ computedDisplay = (0, core_1.computed)(() => this.contract().props?.display ?? 'comma');
105
+ computedMaxSelectedLabels = (0, core_1.computed)(() => this.contract().props?.maxSelectedLabels ?? 3);
106
+ computedSelectedItemsLabel = (0, core_1.computed)(() => this.contract().props?.selectedItemsLabel ?? '{0} items selected');
107
+ computedVariant = (0, core_1.computed)(() => this.contract().props?.variant ?? 'outlined');
108
+ computedFluid = (0, core_1.computed)(() => !!this.contract().props?.fluid);
109
+ computedErrorText = (0, core_1.computed)(() => this.contract().props?.errorText ?? '');
110
+ computedHelpText = (0, core_1.computed)(() => this.contract().props?.helpText ?? '');
111
+ computedAriaLabel = (0, core_1.computed)(() => {
112
+ const label = this.contract().props?.['aria-label'];
113
+ if (label !== undefined && label !== null && String(label).trim() !== '') {
114
+ return String(label);
115
+ }
116
+ return this.computedPlaceholder();
117
+ });
118
+ computedAriaDescribedBy = (0, core_1.computed)(() => {
119
+ const parts = [];
120
+ const desc = this.contract().props?.['aria-describedby'];
121
+ if (desc)
122
+ parts.push(String(desc));
123
+ if (this.computedErrorText())
124
+ parts.push(`${this.contract().id}-error`);
125
+ if (this.computedHelpText())
126
+ parts.push(`${this.contract().id}-help`);
127
+ return parts.length > 0 ? parts.join(' ') : undefined;
128
+ });
129
+ displaySummary = (0, core_1.computed)(() => {
130
+ const selected = this.computedSelectedOptions();
131
+ const count = selected.length;
132
+ if (count === 0)
133
+ return '';
134
+ const max = this.computedMaxSelectedLabels();
135
+ if (count <= max) {
136
+ return selected.map(s => s.label).join(', ');
137
+ }
138
+ const template = this.computedSelectedItemsLabel();
139
+ return template.replace('{0}', String(count));
140
+ });
141
+ isAllSelected = (0, core_1.computed)(() => {
142
+ const filtered = this.filteredOptions().filter(o => !o.disabled);
143
+ if (filtered.length === 0)
144
+ return false;
145
+ const current = new Set(this.value());
146
+ return filtered.every(o => current.has(o.value));
147
+ });
148
+ experienceAdapter = (0, core_1.inject)(experience_adapter_service_1.WebExperienceAdapterService);
149
+ platformId = (0, core_1.inject)(core_1.PLATFORM_ID);
150
+ elementRef = (0, core_1.inject)(core_1.ElementRef);
151
+ constructor() {
152
+ (0, core_1.effect)(() => {
153
+ const contractVal = this.contract().props?.value;
154
+ (0, core_1.untracked)(() => {
155
+ if (Array.isArray(contractVal)) {
156
+ const current = this.value();
157
+ if (current.length !== contractVal.length ||
158
+ !current.every((v, i) => v === contractVal[i])) {
159
+ this.value.set([...contractVal]);
160
+ }
161
+ }
162
+ });
163
+ });
164
+ }
165
+ toggleOpen() {
166
+ if (this.computedDisabled() || this.computedReadonly())
167
+ return;
168
+ const next = !this.isOpen();
169
+ this.isOpen.set(next);
170
+ if (next) {
171
+ this.filterQuery.set('');
172
+ this.activeIndex.set(0);
173
+ }
174
+ }
175
+ isSelected(opt) {
176
+ return this.value().includes(opt.value);
177
+ }
178
+ toggleOption(optionValue) {
179
+ if (this.computedDisabled() || this.computedReadonly())
180
+ return;
181
+ const current = [...this.value()];
182
+ const idx = current.indexOf(optionValue);
183
+ if (idx >= 0) {
184
+ current.splice(idx, 1);
185
+ }
186
+ else {
187
+ current.push(optionValue);
188
+ }
189
+ this.value.set(current);
190
+ this.experienceAdapter.updateState(this.contract().id, 'value', current);
191
+ }
192
+ toggleAll() {
193
+ if (this.computedDisabled() || this.computedReadonly())
194
+ return;
195
+ const filtered = this.filteredOptions().filter(o => !o.disabled);
196
+ let nextValue;
197
+ if (this.isAllSelected()) {
198
+ const filteredSet = new Set(filtered.map(o => o.value));
199
+ nextValue = this.value().filter(v => !filteredSet.has(v));
200
+ }
201
+ else {
202
+ const set = new Set(this.value());
203
+ for (const opt of filtered) {
204
+ set.add(opt.value);
205
+ }
206
+ nextValue = Array.from(set);
207
+ }
208
+ this.value.set(nextValue);
209
+ this.experienceAdapter.updateState(this.contract().id, 'value', nextValue);
210
+ }
211
+ removeOption(optionValue, event) {
212
+ event?.stopPropagation();
213
+ if (this.computedDisabled() || this.computedReadonly())
214
+ return;
215
+ const next = this.value().filter(v => v !== optionValue);
216
+ this.value.set(next);
217
+ this.experienceAdapter.updateState(this.contract().id, 'value', next);
218
+ }
219
+ clear(event) {
220
+ if (this.computedDisabled() || this.computedReadonly())
221
+ return;
222
+ event?.stopPropagation();
223
+ this.value.set([]);
224
+ this.experienceAdapter.updateState(this.contract().id, 'value', []);
225
+ }
226
+ onFilterInput(event) {
227
+ const target = event.target;
228
+ this.filterQuery.set(target.value);
229
+ this.activeIndex.set(0);
230
+ }
231
+ onKeydown(event) {
232
+ if (this.computedDisabled() || this.computedReadonly())
233
+ return;
234
+ const opts = this.filteredOptions();
235
+ const count = opts.length;
236
+ switch (event.key) {
237
+ case 'ArrowDown': {
238
+ event.preventDefault();
239
+ if (!this.isOpen()) {
240
+ this.isOpen.set(true);
241
+ this.activeIndex.set(0);
242
+ }
243
+ else if (count > 0) {
244
+ const next = (this.activeIndex() + 1) % count;
245
+ this.activeIndex.set(next);
246
+ }
247
+ break;
248
+ }
249
+ case 'ArrowUp': {
250
+ event.preventDefault();
251
+ if (!this.isOpen()) {
252
+ this.isOpen.set(true);
253
+ this.activeIndex.set(count - 1);
254
+ }
255
+ else if (count > 0) {
256
+ const prev = (this.activeIndex() - 1 + count) % count;
257
+ this.activeIndex.set(prev);
258
+ }
259
+ break;
260
+ }
261
+ case 'Enter':
262
+ case ' ': {
263
+ const target = event.target;
264
+ if (event.key === ' ' && target && target.tagName === 'INPUT') {
265
+ return;
266
+ }
267
+ event.preventDefault();
268
+ if (this.isOpen()) {
269
+ const idx = this.activeIndex();
270
+ if (idx >= 0 && idx < count && !opts[idx].disabled) {
271
+ this.toggleOption(opts[idx].value);
272
+ }
273
+ }
274
+ else {
275
+ this.isOpen.set(true);
276
+ }
277
+ break;
278
+ }
279
+ case 'Escape': {
280
+ if (this.isOpen()) {
281
+ event.preventDefault();
282
+ this.isOpen.set(false);
283
+ }
284
+ break;
285
+ }
286
+ case 'Tab': {
287
+ if (this.isOpen()) {
288
+ this.isOpen.set(false);
289
+ }
290
+ break;
291
+ }
292
+ case 'Home': {
293
+ if (this.isOpen() && count > 0) {
294
+ event.preventDefault();
295
+ this.activeIndex.set(0);
296
+ }
297
+ break;
298
+ }
299
+ case 'End': {
300
+ if (this.isOpen() && count > 0) {
301
+ event.preventDefault();
302
+ this.activeIndex.set(count - 1);
303
+ }
304
+ break;
305
+ }
306
+ }
307
+ }
308
+ onDocumentClick(event) {
309
+ if (!(0, common_1.isPlatformBrowser)(this.platformId))
310
+ return;
311
+ const clickedInside = this.elementRef.nativeElement.contains(event.target);
312
+ if (!clickedInside && this.isOpen()) {
313
+ this.isOpen.set(false);
314
+ }
315
+ }
316
+ static {
317
+ tslib_1.__runInitializers(_classThis, _classExtraInitializers);
318
+ }
319
+ };
320
+ return MultiSelectComponent = _classThis;
321
+ })();
322
+ exports.MultiSelectComponent = MultiSelectComponent;
323
+ //# sourceMappingURL=multi-select.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-select.component.js","sourceRoot":"","sources":["../../../../../../../packages/angular-renderer/src/components/primitives/multi-select/multi-select.component.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,39 @@
1
1
  import { InteractionContract } from '@origostudio/core';
2
2
  import { OrigoAdapter } from '../../../adapters/web/adapter';
3
+ import { type NormalizedOption } from './selection-utils';
4
+ export type { NormalizedOption };
3
5
  export interface SelectProps {
4
- permissions?: Record<string, string>;
5
- rules?: Record<string, unknown>;
6
- metadata?: Record<string, unknown>;
7
- options: Array<{
8
- value: string;
9
- label: string;
10
- }>;
11
- value?: string;
12
- disabled?: boolean;
6
+ id?: string;
7
+ value?: unknown;
8
+ options: Array<unknown>;
9
+ optionLabel?: string;
10
+ optionValue?: string;
11
+ optionGroupLabel?: string;
12
+ optionGroupChildren?: string;
13
13
  placeholder?: string;
14
+ filter?: boolean;
15
+ filterBy?: string;
16
+ filterMatchMode?: 'contains' | 'startsWith' | 'endsWith';
17
+ filterPlaceholder?: string;
18
+ editable?: boolean;
19
+ clearable?: boolean;
20
+ appendTo?: string;
21
+ virtualScroll?: boolean;
22
+ itemSize?: number;
23
+ loading?: boolean;
24
+ disabled?: boolean;
25
+ readonly?: boolean;
26
+ required?: boolean;
27
+ invalid?: boolean;
28
+ errorText?: string;
29
+ helpText?: string;
30
+ variant?: 'outlined' | 'filled';
31
+ fluid?: boolean;
14
32
  'aria-label'?: string;
15
33
  'aria-describedby'?: string;
16
- required?: boolean;
34
+ permissions?: Record<string, string>;
35
+ rules?: Record<string, unknown>;
36
+ metadata?: Record<string, unknown>;
17
37
  }
18
38
  export declare class SelectComponent implements OrigoAdapter<SelectProps> {
19
39
  static readonly contractSchema: {
@@ -22,24 +42,65 @@ export declare class SelectComponent implements OrigoAdapter<SelectProps> {
22
42
  metadata: string;
23
43
  options: string;
24
44
  value: string;
25
- disabled: string;
45
+ optionLabel: string;
46
+ optionValue: string;
47
+ optionGroupLabel: string;
48
+ optionGroupChildren: string;
26
49
  placeholder: string;
50
+ filter: string;
51
+ filterBy: string;
52
+ filterMatchMode: string;
53
+ filterPlaceholder: string;
54
+ editable: string;
55
+ clearable: string;
56
+ appendTo: string;
57
+ virtualScroll: string;
58
+ itemSize: string;
59
+ loading: string;
60
+ disabled: string;
61
+ readonly: string;
27
62
  required: string;
63
+ invalid: string;
64
+ errorText: string;
65
+ helpText: string;
66
+ variant: string;
67
+ fluid: string;
68
+ 'aria-label': string;
69
+ 'aria-describedby': string;
28
70
  };
29
71
  static readonly strictContract = false;
30
72
  contract: import("@angular/core").InputSignal<InteractionContract<SelectProps>>;
31
- value: import("@angular/core").ModelSignal<string>;
32
- computedOptions: import("@angular/core").Signal<{
33
- value: string;
34
- label: string;
35
- }[]>;
73
+ value: import("@angular/core").ModelSignal<unknown>;
74
+ isOpen: import("@angular/core").WritableSignal<boolean>;
75
+ filterQuery: import("@angular/core").WritableSignal<string>;
76
+ activeIndex: import("@angular/core").WritableSignal<number>;
77
+ computedNormalizedOptions: import("@angular/core").Signal<NormalizedOption[]>;
78
+ computedOptions: import("@angular/core").Signal<NormalizedOption[]>;
79
+ filteredOptions: import("@angular/core").Signal<NormalizedOption[]>;
80
+ selectedOption: import("@angular/core").Signal<NormalizedOption | undefined>;
81
+ selectedLabel: import("@angular/core").Signal<string>;
36
82
  computedPlaceholder: import("@angular/core").Signal<string>;
37
83
  computedDisabled: import("@angular/core").Signal<boolean>;
84
+ computedReadonly: import("@angular/core").Signal<boolean>;
38
85
  computedRequired: import("@angular/core").Signal<boolean>;
39
- computedAriaLabel: import("@angular/core").Signal<string | undefined>;
86
+ computedInvalid: import("@angular/core").Signal<boolean>;
87
+ computedFilter: import("@angular/core").Signal<boolean>;
88
+ computedFilterPlaceholder: import("@angular/core").Signal<string>;
89
+ computedClearable: import("@angular/core").Signal<boolean>;
90
+ computedVariant: import("@angular/core").Signal<"outlined" | "filled">;
91
+ computedFluid: import("@angular/core").Signal<boolean>;
92
+ computedErrorText: import("@angular/core").Signal<string>;
93
+ computedHelpText: import("@angular/core").Signal<string>;
94
+ computedAriaLabel: import("@angular/core").Signal<string>;
40
95
  computedAriaDescribedBy: import("@angular/core").Signal<string | undefined>;
41
96
  private experienceAdapter;
42
- private sanitizer;
97
+ private platformId;
98
+ private elementRef;
43
99
  constructor();
44
- onChange(event: Event): void;
100
+ toggleOpen(): void;
101
+ selectOption(optionValue: unknown): void;
102
+ clear(event?: Event): void;
103
+ onFilterInput(event: Event): void;
104
+ onKeydown(event: KeyboardEvent): void;
105
+ onDocumentClick(event: MouseEvent): void;
45
106
  }