@lion/ui 0.10.1 → 0.11.0

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 (59) hide show
  1. package/components/input-amount/test/lion-input-amount.test.js +48 -1
  2. package/components/input-amount/test/parsers.test.js +1 -1
  3. package/components/localize/src/number/parseNumber.js +21 -12
  4. package/components/localize/test/number/parseNumber.test.js +1 -1
  5. package/components/select-rich/src/LionSelectRich.js +17 -1
  6. package/components/select-rich/test/lion-select-rich-interaction.test.js +139 -20
  7. package/components/validate-messages/translations/pl.js +4 -4
  8. package/dist-types/components/localize/src/number/parseNumber.d.ts.map +1 -1
  9. package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
  10. package/dist-types/tsconfig.tsbuildinfo +1 -1
  11. package/docs/components/checkbox-group/overview.md +2 -2
  12. package/docs/components/collapsible/overview.md +1 -1
  13. package/docs/components/combobox/overview.md +1 -1
  14. package/docs/components/combobox/use-cases.md +1 -1
  15. package/docs/components/dialog/overview.md +1 -1
  16. package/docs/components/fieldset/overview.md +5 -5
  17. package/docs/components/form/overview.md +3 -3
  18. package/docs/components/form/use-cases.md +2 -2
  19. package/docs/components/icon/use-cases.md +1 -1
  20. package/docs/components/input/overview.md +1 -1
  21. package/docs/components/input-amount/overview.md +3 -3
  22. package/docs/components/input-date/overview.md +3 -3
  23. package/docs/components/input-datepicker/overview.md +5 -5
  24. package/docs/components/input-email/overview.md +2 -2
  25. package/docs/components/input-file/overview.md +1 -1
  26. package/docs/components/input-iban/overview.md +2 -2
  27. package/docs/components/input-range/overview.md +2 -2
  28. package/docs/components/input-stepper/overview.md +1 -1
  29. package/docs/components/input-tel/overview.md +1 -1
  30. package/docs/components/input-tel/use-cases.md +6 -6
  31. package/docs/components/input-tel-dropdown/overview.md +1 -1
  32. package/docs/components/listbox/use-cases.md +1 -1
  33. package/docs/components/radio-group/overview.md +3 -3
  34. package/docs/components/select/use-cases.md +1 -1
  35. package/docs/components/select-rich/use-cases.md +1 -1
  36. package/docs/components/tabs/examples.md +1 -1
  37. package/docs/fundamentals/index.md +4 -4
  38. package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
  39. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
  40. package/docs/fundamentals/rationales/accessibility.md +1 -1
  41. package/docs/fundamentals/systems/core/SlotMixin.md +1 -1
  42. package/docs/fundamentals/systems/core/overview.md +1 -1
  43. package/docs/fundamentals/systems/form/formatting-and-parsing.md +4 -4
  44. package/docs/fundamentals/systems/form/model-value.md +1 -1
  45. package/docs/fundamentals/systems/form/overview.md +28 -28
  46. package/docs/fundamentals/systems/form/validate.md +2 -2
  47. package/docs/fundamentals/systems/localize/overview.md +4 -4
  48. package/docs/fundamentals/systems/overlays/configuration.md +2 -2
  49. package/docs/fundamentals/systems/overlays/overview.md +5 -5
  50. package/docs/fundamentals/systems/overlays/use-cases.md +2 -2
  51. package/docs/fundamentals/tools/helpers/overview.md +1 -1
  52. package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
  53. package/docs/guides/how-to/create-a-custom-field.md +5 -5
  54. package/docs/guides/how-to/create-a-form.md +4 -4
  55. package/docs/guides/how-to/extend-a-native-input.md +2 -2
  56. package/docs/guides/index.md +8 -8
  57. package/docs/guides/principles/index.md +5 -5
  58. package/docs/guides/principles/styling.md +1 -1
  59. package/package.json +1 -1
@@ -131,7 +131,7 @@ describe('<lion-input-amount>', () => {
131
131
  expect(_inputNode.value).to.equal('100.12');
132
132
  });
133
133
 
134
- it('adjusts formats with locale when formatOptions.mode is "user-edited"', async () => {
134
+ it('formats with locale when formatOptions.mode is "user-edited" and value has three decimal places', async () => {
135
135
  const el = /** @type {LionInputAmount} */ (
136
136
  await fixture(
137
137
  html`<lion-input-amount
@@ -154,6 +154,14 @@ describe('<lion-input-amount>', () => {
154
154
  expect(el.modelValue).to.equal(123456);
155
155
  expect(el.formattedValue).to.equal('123.456,00');
156
156
 
157
+ // When editing an already existing value, we interpet the separators as they are.
158
+ // However, only when the decimal places are 3 or more.
159
+ mimicUserInput(el, '123.456.00');
160
+ expect(parserSpy.lastCall.args[1]?.mode).to.equal('user-edited');
161
+ expect(formatterSpy.lastCall.args[1]?.mode).to.equal('user-edited');
162
+ expect(el.modelValue).to.equal(123456);
163
+ expect(el.formattedValue).to.equal('123.456,00');
164
+
157
165
  // Formatting should only affect values that should be formatted / parsed as a consequence of user input.
158
166
  // When a user finished editing, the default should be restored.
159
167
  // (think of a programmatically set modelValue, that should behave idempotent, regardless of when it is set)
@@ -162,6 +170,45 @@ describe('<lion-input-amount>', () => {
162
170
  expect(formatterSpy.lastCall.args[1]?.mode).to.equal('auto');
163
171
  });
164
172
 
173
+ it('formats with heuristic when formatOptions.mode is "user-edited" and value has two decimal places', async () => {
174
+ const el = /** @type {LionInputAmount} */ (
175
+ await fixture(
176
+ html`<lion-input-amount
177
+ .modelValue=${64}
178
+ currency="EUR"
179
+ .formatOptions="${{ locale: 'en-GB' }}"
180
+ ></lion-input-amount>`,
181
+ )
182
+ );
183
+ const parserSpy = sinon.spy(el, 'parser');
184
+ const formatterSpy = sinon.spy(el, 'formatter');
185
+
186
+ expect(el.formattedValue).to.equal('64.00');
187
+ // @ts-expect-error [allow-protected] in test
188
+ expect(el._inputNode.value).to.equal('64.00');
189
+
190
+ // When editing an already existing value, we interpret the separators based on decimal places when there's 1 or
191
+ // less separator in total (otherwise we would accidentally multiply or divide by 1000)
192
+ mimicUserInput(el, '64,00');
193
+ expect(parserSpy.lastCall.args[1]?.mode).to.equal('user-edited');
194
+ expect(formatterSpy.lastCall.args[1]?.mode).to.equal('user-edited');
195
+ expect(el.modelValue).to.equal(64);
196
+ expect(el.formattedValue).to.equal('64.00');
197
+
198
+ mimicUserInput(el, '64,0');
199
+ expect(parserSpy.lastCall.args[1]?.mode).to.equal('user-edited');
200
+ expect(formatterSpy.lastCall.args[1]?.mode).to.equal('user-edited');
201
+ expect(el.modelValue).to.equal(64);
202
+ expect(el.formattedValue).to.equal('64.00');
203
+
204
+ // Formatting should only affect values that should be formatted / parsed as a consequence of user input.
205
+ // When a user finished editing, the default should be restored.
206
+ // (think of a programmatically set modelValue, that should behave idempotent, regardless of when it is set)
207
+ el.modelValue = 1234;
208
+ expect(el.formattedValue).to.equal('1,234.00');
209
+ expect(formatterSpy.lastCall.args[1]?.mode).to.equal('auto');
210
+ });
211
+
165
212
  it('sets inputmode attribute to decimal', async () => {
166
213
  const el = /** @type {LionInputAmount} */ (
167
214
  await fixture(`<lion-input-amount></lion-input-amount>`)
@@ -69,6 +69,6 @@ describe('parseAmount()', async () => {
69
69
  expect(parseAmount('123.456,78', { mode: 'auto' })).to.equal(123456.78);
70
70
  expect(
71
71
  parseAmount('123.456,78', { mode: 'user-edited', viewValueStates: ['formatted'] }),
72
- ).to.equal(123.45678);
72
+ ).to.equal(123456.78);
73
73
  });
74
74
  });
@@ -20,25 +20,34 @@ import { getDecimalSeparator } from './getDecimalSeparator.js';
20
20
  * @return {string} unparseable|withLocale|heuristic
21
21
  */
22
22
  function getParseMode(value, { mode = 'auto', viewValueStates } = {}) {
23
- const separators = value.match(/[., ]/g);
23
+ const separatorsRe = /[., ]/g;
24
+ const separators = value.match(separatorsRe) || [];
25
+ // @ts-expect-error [wait-for-platform-types]
26
+ const decimalPlaces = (value.split(separatorsRe) || []).at(-1).length;
27
+ const isCurViewFormattedAndUserIsEditing =
28
+ viewValueStates?.includes('formatted') && mode === 'user-edited';
24
29
 
25
30
  // When a user edits an existing value, we already formatted it with a certain locale.
26
- // For best UX, we stick with this locale
27
- const shouldAlignWithExistingSeparators =
28
- viewValueStates?.includes('formatted') && mode === 'user-edited';
31
+ // For best UX, we stick with this locale. However, we only do this when the user has
32
+ // entered at least 3 decimal places.
33
+ const shouldUseCurLocale = isCurViewFormattedAndUserIsEditing && decimalPlaces > 2;
29
34
 
30
- if (!separators || shouldAlignWithExistingSeparators) {
35
+ const shouldUseLocale =
36
+ shouldUseCurLocale ||
37
+ !separators.length ||
38
+ (mode === 'auto' && separators.length === 1 && decimalPlaces >= 3);
39
+ if (shouldUseLocale) {
31
40
  return 'withLocale';
32
41
  }
33
- if (mode === 'auto' && separators.length === 1) {
34
- const decimalLength = value.split(`${separators}`)[1].length;
35
- if (decimalLength >= 3) {
36
- return 'withLocale';
37
- }
38
- }
39
- if (separators.length === 1 || separators[0] !== separators[separators.length - 1]) {
42
+
43
+ const shouldUseHeuristic =
44
+ (isCurViewFormattedAndUserIsEditing && decimalPlaces <= 2) ||
45
+ separators.length === 1 ||
46
+ separators[0] !== separators[separators.length - 1];
47
+ if (shouldUseHeuristic) {
40
48
  return 'heuristic';
41
49
  }
50
+
42
51
  return 'unparseable';
43
52
  }
44
53
 
@@ -82,7 +82,7 @@ describe('parseNumber()', () => {
82
82
  expect(parseNumber('123.456,78', { mode: 'auto' })).to.equal(123456.78);
83
83
  expect(
84
84
  parseNumber('123.456,78', { mode: 'user-edited', viewValueStates: ['formatted'] }),
85
- ).to.equal(123.45678);
85
+ ).to.equal(123456.78);
86
86
  });
87
87
 
88
88
  it('detects separators unparseable when there are 2 same ones e.g. 1.234.56', () => {
@@ -489,7 +489,7 @@ export class LionSelectRich extends SlotMixin(ScopedElementsMixin(OverlayMixin(L
489
489
  * @param {KeyboardEvent} ev
490
490
  * @protected
491
491
  */
492
- // TODO: rename to _onKeyUp in v1
492
+ // TODO: rename to #invokerOnKeyUp() (and move event listener to the invoker) in v1
493
493
  __onKeyUp(ev) {
494
494
  if (this.disabled || this.readOnly) {
495
495
  return;
@@ -529,6 +529,22 @@ export class LionSelectRich extends SlotMixin(ScopedElementsMixin(OverlayMixin(L
529
529
  this.opened = true;
530
530
  }
531
531
  break;
532
+ case 'ArrowLeft':
533
+ ev.preventDefault();
534
+ if (this.navigateWithinInvoker) {
535
+ this.setCheckedIndex(
536
+ this._getPreviousEnabledOption(/** @type {number} */ (this.checkedIndex)),
537
+ );
538
+ }
539
+ break;
540
+ case 'ArrowRight':
541
+ ev.preventDefault();
542
+ if (this.navigateWithinInvoker) {
543
+ this.setCheckedIndex(
544
+ this._getNextEnabledOption(/** @type {number} */ (this.checkedIndex)),
545
+ );
546
+ }
547
+ break;
532
548
  default:
533
549
  if (!this._noTypeAhead) {
534
550
  this._handleTypeAhead(ev, { setAsChecked: true });
@@ -24,6 +24,24 @@ function mimicKeyPress(el, key, code = '') {
24
24
  el.dispatchEvent(new KeyboardEvent('keyup', { key, code }));
25
25
  }
26
26
 
27
+ /**
28
+ * @param {LionOption[]} options
29
+ * @param {number} selectedIndex
30
+ */
31
+ function expectOnlyGivenOneOptionToBeChecked(options, selectedIndex) {
32
+ /**
33
+ * @param {{ checked: any; }} option
34
+ * @param {any} i
35
+ */
36
+ options.forEach((option, i) => {
37
+ if (i === selectedIndex) {
38
+ expect(option.checked).to.be.true;
39
+ } else {
40
+ expect(option.checked).to.be.false;
41
+ }
42
+ });
43
+ }
44
+
27
45
  describe('lion-select-rich interactions', () => {
28
46
  describe('Interaction mode', () => {
29
47
  it('autodetects interactionMode if not defined', async () => {
@@ -86,26 +104,91 @@ describe('lion-select-rich interactions', () => {
86
104
  });
87
105
  });
88
106
 
89
- describe('Invoker Keyboard navigation Windows', () => {
90
- it('navigates through list with [ArrowDown] [ArrowUp] keys checks the option while listbox unopened', async () => {
91
- /**
92
- * @param {LionOption[]} options
93
- * @param {number} selectedIndex
94
- */
95
- function expectOnlyGivenOneOptionToBeChecked(options, selectedIndex) {
96
- /**
97
- * @param {{ checked: any; }} option
98
- * @param {any} i
99
- */
100
- options.forEach((option, i) => {
101
- if (i === selectedIndex) {
102
- expect(option.checked).to.be.true;
103
- } else {
104
- expect(option.checked).to.be.false;
105
- }
106
- });
107
- }
107
+ describe('Invoker Keyboard navigation Mac', () => {
108
+ it('opens dropdown with [ArrowDown] [ArrowUp] keys or navigates through the listbox options', async () => {
109
+ const el = /** @type {LionSelectRich} */ (
110
+ await fixture(html`
111
+ <lion-select-rich interaction-mode="mac">
112
+ <lion-options slot="input">
113
+ <lion-option .choiceValue=${10}>Item 1</lion-option>
114
+ <lion-option .choiceValue=${20}>Item 2</lion-option>
115
+ <lion-option .choiceValue=${30}>Item 3</lion-option>
116
+ </lion-options>
117
+ </lion-select-rich>
118
+ `)
119
+ );
120
+
121
+ const options = el.formElements;
122
+ expect(el.checkedIndex).to.equal(0);
123
+ expectOnlyGivenOneOptionToBeChecked(options, 0);
124
+
125
+ el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowDown' }));
126
+
127
+ expect(el.opened).to.be.true;
128
+ expect(el.checkedIndex).to.equal(0);
129
+ expectOnlyGivenOneOptionToBeChecked(options, 0);
130
+
131
+ el.opened = false;
132
+
133
+ el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowUp' }));
134
+ expect(el.opened).to.be.true;
135
+ expect(el.checkedIndex).to.equal(0);
136
+ expectOnlyGivenOneOptionToBeChecked(options, 0);
137
+ });
138
+
139
+ it('does not open dropdown with [ArrowLeft] [ArrowRight] keys or navigates through the listbox options', async () => {
140
+ const el = /** @type {LionSelectRich} */ (
141
+ await fixture(html`
142
+ <lion-select-rich interaction-mode="mac">
143
+ <lion-options slot="input">
144
+ <lion-option .choiceValue=${10}>Item 1</lion-option>
145
+ <lion-option .choiceValue=${20}>Item 2</lion-option>
146
+ <lion-option .choiceValue=${30}>Item 3</lion-option>
147
+ </lion-options>
148
+ </lion-select-rich>
149
+ `)
150
+ );
151
+
152
+ const options = el.formElements;
153
+ expect(el.checkedIndex).to.equal(0);
154
+ expectOnlyGivenOneOptionToBeChecked(options, 0);
155
+
156
+ el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowLeft' }));
157
+
158
+ expect(el.opened).to.be.false;
159
+ expect(el.checkedIndex).to.equal(0);
160
+ expectOnlyGivenOneOptionToBeChecked(options, 0);
161
+
162
+ el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowRight' }));
163
+ expect(el.opened).to.be.false;
164
+ expect(el.checkedIndex).to.equal(0);
165
+ expectOnlyGivenOneOptionToBeChecked(options, 0);
166
+ });
167
+
168
+ it('checks a value with [character] keys while listbox unopened', async () => {
169
+ const el = /** @type {LionSelectRich} */ (
170
+ await fixture(html`
171
+ <lion-select-rich interaction-mode="mac">
172
+ <lion-options slot="input">
173
+ <lion-option .choiceValue=${'red'}>Red</lion-option>
174
+ <lion-option .choiceValue=${'teal'}>Teal</lion-option>
175
+ <lion-option .choiceValue=${'turquoise'}>Turquoise</lion-option>
176
+ </lion-options>
177
+ </lion-select-rich>
178
+ `)
179
+ );
108
180
 
181
+ // @ts-ignore [allow-private] in test
182
+ mimicKeyPress(el, 't', 'KeyT');
183
+ expect(el.checkedIndex).to.equal(1);
184
+
185
+ mimicKeyPress(el, 'u', 'KeyU');
186
+ expect(el.checkedIndex).to.equal(2);
187
+ });
188
+ });
189
+
190
+ describe('Invoker Keyboard navigation Windows/Linux', () => {
191
+ it('navigation through list with [ArrowDown] [ArrowUp] keys checks the option while listbox unopened', async () => {
109
192
  let isTriggeredByUser;
110
193
  const el = /** @type {LionSelectRich} */ (
111
194
  await fixture(html`
@@ -141,7 +224,43 @@ describe('lion-select-rich interactions', () => {
141
224
  expect(isTriggeredByUser).to.be.true;
142
225
  });
143
226
 
144
- it('checkes a value with [character] keys while listbox unopened', async () => {
227
+ it('navigation through list with [ArrowLeft] [ArrowRight] keys checks the option while listbox unopened', async () => {
228
+ let isTriggeredByUser;
229
+ const el = /** @type {LionSelectRich} */ (
230
+ await fixture(html`
231
+ <lion-select-rich
232
+ interaction-mode="windows/linux"
233
+ @model-value-changed="${(/** @type {CustomEvent} */ event) => {
234
+ isTriggeredByUser = event.detail.isTriggeredByUser;
235
+ }}"
236
+ >
237
+ <lion-options slot="input">
238
+ <lion-option .choiceValue=${10}>Item 1</lion-option>
239
+ <lion-option .choiceValue=${20}>Item 2</lion-option>
240
+ <lion-option .choiceValue=${30}>Item 3</lion-option>
241
+ </lion-options>
242
+ </lion-select-rich>
243
+ `)
244
+ );
245
+
246
+ const options = el.formElements;
247
+ expect(el.checkedIndex).to.equal(0);
248
+ expectOnlyGivenOneOptionToBeChecked(options, 0);
249
+
250
+ el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowRight' }));
251
+ expect(el.checkedIndex).to.equal(1);
252
+ expectOnlyGivenOneOptionToBeChecked(options, 1);
253
+ expect(isTriggeredByUser).to.be.true;
254
+
255
+ isTriggeredByUser = false;
256
+
257
+ el.dispatchEvent(new KeyboardEvent('keyup', { key: 'ArrowLeft' }));
258
+ expect(el.checkedIndex).to.equal(0);
259
+ expectOnlyGivenOneOptionToBeChecked(options, 0);
260
+ expect(isTriggeredByUser).to.be.true;
261
+ });
262
+
263
+ it('checks a value with [character] keys while listbox unopened', async () => {
145
264
  const el = /** @type {LionSelectRich} */ (
146
265
  await fixture(html`
147
266
  <lion-select-rich interaction-mode="windows/linux">
@@ -10,8 +10,8 @@ export default {
10
10
  'Proszę podać prawidłową wartość {fieldName} (od {params.min} do {params.max} znaków).',
11
11
  Pattern: 'Wprowadź prawidłową wartość w polu {fieldName}.',
12
12
  IsNumber: 'Wprowadź prawidłową wartość w polu {fieldName}.',
13
- MinNumber: 'Proszę podać wartość {fieldName} większą niż {params}.',
14
- MaxNumber: 'Proszę podać wartość {fieldName} mniejszą niż {params}.',
13
+ MinNumber: 'Proszę podać wartość {fieldName} większą niż lub równą {params}.',
14
+ MaxNumber: 'Proszę podać wartość {fieldName} mniejszą niż lub równą {params}.',
15
15
  MinMaxNumber: 'Proszę podać wartość {fieldName} o długości od {params.min} do {params.max}.',
16
16
  IsDate: 'Wprowadź datę (DD MM RRRR).',
17
17
  MinDate: 'Proszę podać wartość {fieldName} przypadającą po {params, date, YYYYMMDD}.',
@@ -32,8 +32,8 @@ export default {
32
32
  MinMaxLength:
33
33
  'Proszę podać prawidłową wartość {fieldName} (od {params.min} do {params.max} znaków).',
34
34
  IsNumber: 'Wprowadź prawidłową wartość w polu {fieldName}.',
35
- MinNumber: 'Proszę podać wartość {fieldName} większą niż {params}.',
36
- MaxNumber: 'Proszę podać wartość {fieldName} mniejszą niż {params}.',
35
+ MinNumber: 'Proszę podać wartość {fieldName} większą niż lub równą {params}.',
36
+ MaxNumber: 'Proszę podać wartość {fieldName} mniejszą niż lub równą {params}.',
37
37
  MinMaxNumber: 'Proszę podać wartość {fieldName} o długości od {params.min} do {params.max}.',
38
38
  IsDate: 'Wprowadź datę (DD MM RRRR).',
39
39
  MinDate: 'Proszę podać wartość {fieldName} przypadającą po {params, date, YYYYMMDD}.',
@@ -1 +1 @@
1
- {"version":3,"file":"parseNumber.d.ts","sourceRoot":"","sources":["../../../../../components/localize/src/number/parseNumber.js"],"names":[],"mappings":"AA2FA;;;;;;;;;;;;;;;;;;GAkBG;AACH,mCAHW,MAAM,6GA8BhB"}
1
+ {"version":3,"file":"parseNumber.d.ts","sourceRoot":"","sources":["../../../../../components/localize/src/number/parseNumber.js"],"names":[],"mappings":"AAoGA;;;;;;;;;;;;;;;;;;GAkBG;AACH,mCAHW,MAAM,6GA8BhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"LionSelectRich.d.ts","sourceRoot":"","sources":["../../../../components/select-rich/src/LionSelectRich.js"],"names":[],"mappings":";AAsBA;;GAEG;AACH;IACE;;MAKC;IAED,kBAAkB;IAClB,6BAgBC;IAED;;;OAGG;IAEH,2EAUC;IAUD;;;OAGG;IACH,gDAIC;IAED;;;OAGG;IAEH,kDAEC;IAiBC;;;;OAIG;IACH,+BAAkC;IAClC;;;;OAIG;IACH,iBAFU,eAAe,GAAC,KAAK,GAAC,MAAM,CAET;IAE7B,sBAAyB;IACzB,iBAAiB;IACjB,8BAAqB;IAyWvB;;;OAGG;IAEH,wBAJW,aAAa,QAgDvB;IA9MD,eAAe;IACf,wBAEC;IAiED,eAAe;IACf,wBAGC;IAZD,eAAe;IACf,wBAKC;IAzED,eAAe;IACf,yBAIC;IAkDD,eAAe;IACf,4BASC;IA2LD,iBAAiB;IACjB,kCAEC;IAlbD,0BAUC;IAQD;;;;;OAKG;IACH,oDAJW,OAAO,sEAEL,IAAI,CAgBhB;IAED;;OAEG;IACH,2BAFW,OAAO,KAAK,EAAE,cAAc,QAiDtC;IAED;;;;OAIG;IACH,sBAHW,UAAU,GAAG,eAAe,iCAoBtC;IALG,qDAA2C;IAiB/C;;;;;OAKG;IACH,iGAEC;IAED,iBAAiB;IACjB,yCAGC;IAED,eAAe;IACf,gCAEC;IAED,eAAe;IACf,gCAKC;IAED,eAAe;IACf,6BAaC;IAED,eAAe;IACf,2BAKC;IAcD,eAAe;IACf,wCAIC;IAED,eAAe;IACf,8BAGC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;;8CA1PI,8DAA8D;;;;;;;;;;MAgQjE;IAED;;;;;;OAMG;IACH,kDAQC;IAkCC,4EAA8E;IAqBhF;;;;OAIG;IACH,8CAyBC;IAED;;;OAGG;IACH,gCAEC;IAED;;;OAGG;IACH,uDAEC;IAED;;;OAGG;IACH,4FAEC;IAgBC,0CAAgC;IA6FlC;;;;OAIG;IACH,wCASC;IARC,qCAA2B;CAS9B;0BAzlBY,OAAO,kCAAkC,EAAE,WAAW;yBACtD,OAAO,iCAAiC,EAAE,UAAU;kCACpD,OAAO,iEAAiE,EAAE,mBAAmB;8BAC7F,OAAO,gDAAgD,EAAE,eAAe;uBACxE,OAAO,oCAAoC,EAAE,QAAQ"}
1
+ {"version":3,"file":"LionSelectRich.d.ts","sourceRoot":"","sources":["../../../../components/select-rich/src/LionSelectRich.js"],"names":[],"mappings":";AAsBA;;GAEG;AACH;IACE;;MAKC;IAED,kBAAkB;IAClB,6BAgBC;IAED;;;OAGG;IAEH,2EAUC;IAUD;;;OAGG;IACH,gDAIC;IAED;;;OAGG;IAEH,kDAEC;IAiBC;;;;OAIG;IACH,+BAAkC;IAClC;;;;OAIG;IACH,iBAFU,eAAe,GAAC,KAAK,GAAC,MAAM,CAET;IAE7B,sBAAyB;IACzB,iBAAiB;IACjB,8BAAqB;IAyWvB;;;OAGG;IAEH,wBAJW,aAAa,QAgEvB;IA9ND,eAAe;IACf,wBAEC;IAiED,eAAe;IACf,wBAGC;IAZD,eAAe;IACf,wBAKC;IAzED,eAAe;IACf,yBAIC;IAkDD,eAAe;IACf,4BASC;IA2MD,iBAAiB;IACjB,kCAEC;IAlcD,0BAUC;IAQD;;;;;OAKG;IACH,oDAJW,OAAO,sEAEL,IAAI,CAgBhB;IAED;;OAEG;IACH,2BAFW,OAAO,KAAK,EAAE,cAAc,QAiDtC;IAED;;;;OAIG;IACH,sBAHW,UAAU,GAAG,eAAe,iCAoBtC;IALG,qDAA2C;IAiB/C;;;;;OAKG;IACH,iGAEC;IAED,iBAAiB;IACjB,yCAGC;IAED,eAAe;IACf,gCAEC;IAED,eAAe;IACf,gCAKC;IAED,eAAe;IACf,6BAaC;IAED,eAAe;IACf,2BAKC;IAcD,eAAe;IACf,wCAIC;IAED,eAAe;IACf,8BAGC;IAED;;;OAGG;IAEH;;;;;;;;;;;;;;;8CA1PI,8DAA8D;;;;;;;;;;MAgQjE;IAED;;;;;;OAMG;IACH,kDAQC;IAkCC,4EAA8E;IAqBhF;;;;OAIG;IACH,8CAyBC;IAED;;;OAGG;IACH,gCAEC;IAED;;;OAGG;IACH,uDAEC;IAED;;;OAGG;IACH,4FAEC;IAgBC,0CAAgC;IA6GlC;;;;OAIG;IACH,wCASC;IARC,qCAA2B;CAS9B;0BAzmBY,OAAO,kCAAkC,EAAE,WAAW;yBACtD,OAAO,iCAAiC,EAAE,UAAU;kCACpD,OAAO,iEAAiE,EAAE,mBAAmB;8BAC7F,OAAO,gDAAgD,EAAE,eAAe;uBACxE,OAAO,oCAAoC,EAAE,QAAQ"}