@infineon/infineon-design-system-stencil 33.1.8--canary.1723.782f240d6f59721681f44ae3d27a5f9902c8342b.0 → 33.2.0--canary.1844.90617798b9fc364b9629af439debd40a9212780b.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 (49) hide show
  1. package/dist/cjs/ifx-multiselect.cjs.entry.js +3 -2
  2. package/dist/cjs/ifx-multiselect.cjs.entry.js.map +1 -1
  3. package/dist/cjs/ifx-select.cjs.entry.js +4 -3
  4. package/dist/cjs/ifx-select.cjs.entry.js.map +1 -1
  5. package/dist/cjs/infineon-design-system-stencil.cjs.js +1 -1
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/collection/components/select/multi-select/multiselect.css +3 -0
  8. package/dist/collection/components/select/multi-select/multiselect.js +22 -1
  9. package/dist/collection/components/select/multi-select/multiselect.js.map +1 -1
  10. package/dist/collection/components/select/multi-select/multiselect.stories.js +13 -1
  11. package/dist/collection/components/select/multi-select/multiselect.stories.js.map +1 -1
  12. package/dist/collection/components/select/single-select/select.js +24 -3
  13. package/dist/collection/components/select/single-select/select.js.map +1 -1
  14. package/dist/collection/components/select/single-select/select.stories.js +12 -0
  15. package/dist/collection/components/select/single-select/select.stories.js.map +1 -1
  16. package/dist/components/ifx-multiselect.js +1 -1
  17. package/dist/components/ifx-pagination.js +1 -1
  18. package/dist/components/ifx-select.js +1 -1
  19. package/dist/components/ifx-set-filter.js +2 -2
  20. package/dist/components/ifx-table.js +2 -2
  21. package/dist/components/{p-3a8e83f3.js → p-0ccba8b1.js} +2 -2
  22. package/dist/components/{p-3a8e83f3.js.map → p-0ccba8b1.js.map} +1 -1
  23. package/dist/components/{p-3e92c1e4.js → p-1d737cf7.js} +6 -4
  24. package/dist/components/p-1d737cf7.js.map +1 -0
  25. package/dist/components/{p-babc4920.js → p-b4e91450.js} +5 -3
  26. package/dist/components/p-b4e91450.js.map +1 -0
  27. package/dist/esm/ifx-multiselect.entry.js +3 -2
  28. package/dist/esm/ifx-multiselect.entry.js.map +1 -1
  29. package/dist/esm/ifx-select.entry.js +4 -3
  30. package/dist/esm/ifx-select.entry.js.map +1 -1
  31. package/dist/esm/infineon-design-system-stencil.js +1 -1
  32. package/dist/esm/loader.js +1 -1
  33. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js +1 -1
  34. package/dist/infineon-design-system-stencil/infineon-design-system-stencil.esm.js.map +1 -1
  35. package/dist/infineon-design-system-stencil/p-0a69604b.entry.js +2 -0
  36. package/dist/infineon-design-system-stencil/p-0a69604b.entry.js.map +1 -0
  37. package/dist/infineon-design-system-stencil/{p-ae4f7c93.entry.js → p-63679298.entry.js} +2 -2
  38. package/dist/infineon-design-system-stencil/p-63679298.entry.js.map +1 -0
  39. package/dist/types/components/select/multi-select/multiselect.d.ts +1 -0
  40. package/dist/types/components/select/multi-select/multiselect.stories.d.ts +11 -0
  41. package/dist/types/components/select/single-select/select.d.ts +1 -0
  42. package/dist/types/components/select/single-select/select.stories.d.ts +11 -0
  43. package/dist/types/components.d.ts +4 -0
  44. package/package.json +1 -1
  45. package/dist/components/p-3e92c1e4.js.map +0 -1
  46. package/dist/components/p-babc4920.js.map +0 -1
  47. package/dist/infineon-design-system-stencil/p-ad00518e.entry.js +0 -2
  48. package/dist/infineon-design-system-stencil/p-ad00518e.entry.js.map +0 -1
  49. package/dist/infineon-design-system-stencil/p-ae4f7c93.entry.js.map +0 -1
@@ -64,6 +64,7 @@ export default {
64
64
  errorMessage: 'Some error',
65
65
  label: '',
66
66
  placeholder: 'Placeholder',
67
+ showClearButton: true
67
68
  },
68
69
  argTypes: {
69
70
  size: {
@@ -162,6 +163,16 @@ export default {
162
163
  },
163
164
  },
164
165
  },
166
+ showClearButton: {
167
+ description: 'Shows the clear icon button.',
168
+ control: 'boolean',
169
+ table: {
170
+ category: 'ifx-multiselect props',
171
+ defaultValue: {
172
+ summary: true
173
+ }
174
+ }
175
+ },
165
176
  error: {
166
177
  description: 'Show error state.',
167
178
  options: [true, false],
@@ -256,7 +267,8 @@ const Template = args => {
256
267
  label='${args.label}'
257
268
  placeholder='${args.placeholder}'
258
269
  show-search='${args.showSearch}'
259
- show-select-all='${args.showSelectAll}'>
270
+ show-select-all='${args.showSelectAll}'
271
+ show-clear-button='${args.showClearButton}'>
260
272
  </ifx-multiselect>`;
261
273
  setTimeout(() => {
262
274
  document.querySelector('ifx-multiselect').addEventListener('ifxSelect', action('ifxSelect'));
@@ -1 +1 @@
1
- {"version":3,"file":"multiselect.stories.js","sourceRoot":"","sources":["../../../../src/components/select/multi-select/multiselect.stories.ts"],"names":[],"mappings":"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","sourcesContent":["import { action } from '@storybook/addon-actions';\n\nconst options = [\n {\n value: 'a',\n label: 'Option a',\n selected: false,\n },\n {\n value: 'b',\n label: 'Option b',\n selected: false,\n },\n {\n value: 'c',\n label: 'Option c',\n selected: false,\n children: [\n {\n value: 'z1',\n label: 'Option c1',\n selected: false,\n },\n {\n value: 'z2',\n label: 'Option c2',\n selected: false,\n },\n ],\n },\n];\n\nconst longOptions = [];\nfor (let i = 1; i <= 50; i++) {\n let children = undefined;\n if (i % 3 == 0) {\n children = [{\n \"value\": `${i}.1`,\n \"label\": `Option ${i}.1`,\n \"selected\": i % 2 == 0 ? true : false\n }, {\n \"value\": `${i}.2`,\n \"label\": `Option ${i}.2`,\n \"selected\": i % 4 == 0 ? true : false\n }];\n }\n longOptions.push({\n \"value\": i,\n \"label\": `Option ${i}`,\n \"selected\": i % 2 == 0 ? true : false,\n \"children\": children\n })\n}\n\nexport default {\n title: 'Components/Select/Multi Select',\n // tags: ['autodocs'],\n args: {\n name: 'multiselect',\n size: 'm',\n disabled: false,\n batchSize: 10,\n maxItemCount: 10,\n showSearch: true,\n showSelectAll: true,\n error: false,\n errorMessage: 'Some error',\n label: '',\n placeholder: 'Placeholder',\n },\n argTypes: {\n size: {\n description: 'Size of the input field.',\n options: {\n 'small (36px)': 's',\n 'medium (40px)': 'm',\n },\n control: {\n type: 'radio',\n },\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: 'medium (40px)',\n },\n type: {\n summary: '36px | 40px',\n },\n },\n },\n disabled: {\n description: 'Disable the input field.',\n options: [true, false],\n control: { type: 'boolean' },\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: 'false',\n },\n type: {\n summary: 'boolean',\n },\n },\n },\n name: {\n description: `For a <*form*> element, the name attribute is used as a reference when the data is submitted.`,\n control: 'text',\n table: {\n category: 'ifx-multiselect props',\n type: {\n summary: 'string',\n },\n },\n },\n batchSize: {\n description: 'Batch size used during lazy loading options.',\n control: {\n type: 'number',\n },\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: '50',\n },\n type: {\n summary: 'number',\n },\n },\n },\n maxItemCount: {\n control: { type: 'number' },\n description: 'Number of maximum selectable items.',\n table: {\n category: 'ifx-multiselect props',\n type: {\n summary: 'number'\n }\n }\n },\n showSearch: {\n description: 'Show a search input.',\n options: [true, false],\n control: { type: 'radio' },\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: 'true',\n },\n type: {\n summary: 'boolean',\n },\n },\n },\n showSelectAll: {\n description: 'Show a checkbox to select all options.',\n options: [true, false],\n control: { type: 'radio' },\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: 'true',\n },\n type: {\n summary: 'boolean',\n },\n },\n },\n error: {\n description: 'Show error state.',\n options: [true, false],\n control: { type: 'radio' },\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: 'false',\n },\n type: {\n summary: 'boolean',\n },\n },\n },\n errorMessage: {\n control: 'text',\n description: 'Error message to display.',\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: 'Error',\n },\n type: {\n summary: 'string',\n },\n },\n },\n label: {\n description: 'Label over the input field.',\n control: 'text',\n table: {\n category: 'ifx-multiselect props',\n type: {\n summary: 'string',\n },\n },\n },\n placeholder: {\n description: 'Label inside the input field.',\n control: 'text',\n table: {\n category: 'ifx-multiselect props',\n type: {\n summary: 'string',\n },\n },\n },\n options: {\n description: 'Takes an array of objects in the following format.',\n table: {\n category: 'ifx-multiselect props',\n type: {\n summary: 'Details',\n detail: `'Array<{ value: string, label: string, selected: boolean, children?: Array<{ value: string, label: string, selected: boolean }> }>'`,\n },\n },\n },\n ifxSelect: {\n action: 'ifxSelect',\n description: 'Custom event emitted when item is selected or unselected.',\n table: {\n category: 'custom events',\n type: {\n summary: 'Framework integration',\n detail:\n 'React: onIfxSelect={handleInput}\\nVue:@ifxSelect=\"handleInput\"\\nAngular:(ifxSelect)=\"handleInput()\"\\nVanillaJs:.addEventListener(\"ifxSelect\", (event) => {//handle input});',\n },\n },\n },\n ifxOpen: {\n action: 'ifxOpen',\n description: 'Custom event emitted when multiselect is opened.',\n table: {\n category: 'custom events',\n type: {\n summary: 'Framework integration',\n detail:\n 'React: onIfxOpen={handleChange}\\nVue:@ifxOpen=\"handleChange\"\\nAngular:(ifxOpen)=\"handleChange()\"\\nVanillaJs:.addEventListener(\"ifxOpen\", (event) => {//handle change});',\n },\n },\n\n }\n },\n};\n\nconst Template = args => {\n const template = `<ifx-multiselect \n name='${args.name}'\n options='${JSON.stringify(args.options)}' \n batch-size='${args.batchSize}'\n size='${args.size}'\n disabled='${args.disabled}'\n max-item-count='${args.maxItemCount}'\n error='${args.error}'\n error-message='${args.errorMessage}'\n label='${args.label}'\n placeholder='${args.placeholder}'\n show-search='${args.showSearch}'\n show-select-all='${args.showSelectAll}'>\n</ifx-multiselect>`;\n\n setTimeout(() => {\n document.querySelector('ifx-multiselect').addEventListener('ifxSelect', action('ifxSelect'));\n document.querySelector('ifx-multiselect').addEventListener('ifxOpen', action('ifxOpen'));\n }, 0);\n\n return template;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n options: options,\n};\n\nexport const WithLazyLoading = Template.bind({});\nWithLazyLoading.args = {\n options: longOptions,\n batchSize: 5,\n maxItemCount: undefined\n};\n"]}
1
+ {"version":3,"file":"multiselect.stories.js","sourceRoot":"","sources":["../../../../src/components/select/multi-select/multiselect.stories.ts"],"names":[],"mappings":"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","sourcesContent":["import { action } from '@storybook/addon-actions';\n\nconst options = [\n {\n value: 'a',\n label: 'Option a',\n selected: false,\n },\n {\n value: 'b',\n label: 'Option b',\n selected: false,\n },\n {\n value: 'c',\n label: 'Option c',\n selected: false,\n children: [\n {\n value: 'z1',\n label: 'Option c1',\n selected: false,\n },\n {\n value: 'z2',\n label: 'Option c2',\n selected: false,\n },\n ],\n },\n];\n\nconst longOptions = [];\nfor (let i = 1; i <= 50; i++) {\n let children = undefined;\n if (i % 3 == 0) {\n children = [{\n \"value\": `${i}.1`,\n \"label\": `Option ${i}.1`,\n \"selected\": i % 2 == 0 ? true : false\n }, {\n \"value\": `${i}.2`,\n \"label\": `Option ${i}.2`,\n \"selected\": i % 4 == 0 ? true : false\n }];\n }\n longOptions.push({\n \"value\": i,\n \"label\": `Option ${i}`,\n \"selected\": i % 2 == 0 ? true : false,\n \"children\": children\n })\n}\n\nexport default {\n title: 'Components/Select/Multi Select',\n // tags: ['autodocs'],\n args: {\n name: 'multiselect',\n size: 'm',\n disabled: false,\n batchSize: 10,\n maxItemCount: 10,\n showSearch: true,\n showSelectAll: true,\n error: false,\n errorMessage: 'Some error',\n label: '',\n placeholder: 'Placeholder',\n showClearButton: true\n },\n argTypes: {\n size: {\n description: 'Size of the input field.',\n options: {\n 'small (36px)': 's',\n 'medium (40px)': 'm',\n },\n control: {\n type: 'radio',\n },\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: 'medium (40px)',\n },\n type: {\n summary: '36px | 40px',\n },\n },\n },\n disabled: {\n description: 'Disable the input field.',\n options: [true, false],\n control: { type: 'boolean' },\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: 'false',\n },\n type: {\n summary: 'boolean',\n },\n },\n },\n name: {\n description: `For a <*form*> element, the name attribute is used as a reference when the data is submitted.`,\n control: 'text',\n table: {\n category: 'ifx-multiselect props',\n type: {\n summary: 'string',\n },\n },\n },\n batchSize: {\n description: 'Batch size used during lazy loading options.',\n control: {\n type: 'number',\n },\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: '50',\n },\n type: {\n summary: 'number',\n },\n },\n },\n maxItemCount: {\n control: { type: 'number' },\n description: 'Number of maximum selectable items.',\n table: {\n category: 'ifx-multiselect props',\n type: {\n summary: 'number'\n }\n }\n },\n showSearch: {\n description: 'Show a search input.',\n options: [true, false],\n control: { type: 'radio' },\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: 'true',\n },\n type: {\n summary: 'boolean',\n },\n },\n },\n showSelectAll: {\n description: 'Show a checkbox to select all options.',\n options: [true, false],\n control: { type: 'radio' },\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: 'true',\n },\n type: {\n summary: 'boolean',\n },\n },\n },\n showClearButton: {\n description: 'Shows the clear icon button.',\n control: 'boolean',\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: true\n }\n }\n },\n error: {\n description: 'Show error state.',\n options: [true, false],\n control: { type: 'radio' },\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: 'false',\n },\n type: {\n summary: 'boolean',\n },\n },\n },\n errorMessage: {\n control: 'text',\n description: 'Error message to display.',\n table: {\n category: 'ifx-multiselect props',\n defaultValue: {\n summary: 'Error',\n },\n type: {\n summary: 'string',\n },\n },\n },\n label: {\n description: 'Label over the input field.',\n control: 'text',\n table: {\n category: 'ifx-multiselect props',\n type: {\n summary: 'string',\n },\n },\n },\n placeholder: {\n description: 'Label inside the input field.',\n control: 'text',\n table: {\n category: 'ifx-multiselect props',\n type: {\n summary: 'string',\n },\n },\n },\n options: {\n description: 'Takes an array of objects in the following format.',\n table: {\n category: 'ifx-multiselect props',\n type: {\n summary: 'Details',\n detail: `'Array<{ value: string, label: string, selected: boolean, children?: Array<{ value: string, label: string, selected: boolean }> }>'`,\n },\n },\n },\n ifxSelect: {\n action: 'ifxSelect',\n description: 'Custom event emitted when item is selected or unselected.',\n table: {\n category: 'custom events',\n type: {\n summary: 'Framework integration',\n detail:\n 'React: onIfxSelect={handleInput}\\nVue:@ifxSelect=\"handleInput\"\\nAngular:(ifxSelect)=\"handleInput()\"\\nVanillaJs:.addEventListener(\"ifxSelect\", (event) => {//handle input});',\n },\n },\n },\n ifxOpen: {\n action: 'ifxOpen',\n description: 'Custom event emitted when multiselect is opened.',\n table: {\n category: 'custom events',\n type: {\n summary: 'Framework integration',\n detail:\n 'React: onIfxOpen={handleChange}\\nVue:@ifxOpen=\"handleChange\"\\nAngular:(ifxOpen)=\"handleChange()\"\\nVanillaJs:.addEventListener(\"ifxOpen\", (event) => {//handle change});',\n },\n },\n\n }\n },\n};\n\nconst Template = args => {\n const template = `<ifx-multiselect \n name='${args.name}'\n options='${JSON.stringify(args.options)}' \n batch-size='${args.batchSize}'\n size='${args.size}'\n disabled='${args.disabled}'\n max-item-count='${args.maxItemCount}'\n error='${args.error}'\n error-message='${args.errorMessage}'\n label='${args.label}'\n placeholder='${args.placeholder}'\n show-search='${args.showSearch}'\n show-select-all='${args.showSelectAll}'\n show-clear-button='${args.showClearButton}'>\n</ifx-multiselect>`;\n\n setTimeout(() => {\n document.querySelector('ifx-multiselect').addEventListener('ifxSelect', action('ifxSelect'));\n document.querySelector('ifx-multiselect').addEventListener('ifxOpen', action('ifxOpen'));\n }, 0);\n\n return template;\n};\n\nexport const Default = Template.bind({});\nDefault.args = {\n options: options,\n};\n\nexport const WithLazyLoading = Template.bind({});\nWithLazyLoading.args = {\n options: longOptions,\n batchSize: 5,\n maxItemCount: undefined\n};\n"]}
@@ -12,6 +12,7 @@ export class Choices {
12
12
  this.size = 'medium (40px)';
13
13
  this.selectedOption = null;
14
14
  this.optionIsSelected = false;
15
+ this.showClearButton = true;
15
16
  this.previousOptions = [];
16
17
  }
17
18
  watchDisabled(newValue) {
@@ -135,7 +136,7 @@ export class Choices {
135
136
  if (width <= 180) {
136
137
  deleteIconWrapper.classList.add('hide');
137
138
  }
138
- else {
139
+ else if (this.showClearButton) {
139
140
  deleteIconWrapper.classList.remove('hide');
140
141
  }
141
142
  }
@@ -218,9 +219,9 @@ export class Choices {
218
219
  // destroy choices element to restore previous dom structure
219
220
  // so vdom can replace the element correctly
220
221
  this.destroy();
221
- return (h("div", { key: '4c8d53aa45b4271d4605d53fab95930cfa238e41', class: `ifx-select-container` }, this.label ? (h("div", { class: "ifx-label-wrapper" }, h("span", null, this.label))) : null, h("div", { key: 'dd8a78c93962d3a2c23cb9166b1790f1aa52b0d2', class: `${choicesWrapperClass}
222
+ return (h("div", { key: 'a5ff225792f66dc57e40595a163e465739d85ee2', class: `ifx-select-container` }, this.label ? (h("div", { class: "ifx-label-wrapper" }, h("span", null, this.label))) : null, h("div", { key: 'fbd9661dbd4c6298b6107722ce0c630c35292c05', class: `${choicesWrapperClass}
222
223
  ${this.disabled ? 'disabled' : ''}
223
- ${this.error ? 'error' : ''}`, onClick: this.disabled ? undefined : (e) => this.handleWrapperClick(e), onKeyDown: event => this.handleKeyDown(event) }, h("select", Object.assign({ key: '79659e3d6add1302f4b311f1b911dd8f6a472718', class: 'single__select-input-field', disabled: this.disabled }, attributes, { "data-trigger": true, onChange: () => this.handleChange() }), this.createSelectOptions(this.options)), h("div", { key: '8ed023feb5d55c75083dc43403c3c3365d58fcd2', class: "single__select-icon-container" }, this.optionIsSelected && (h("div", { key: '40b5fbb5bb07bd23aa49c2f0485855e6f9604cf7', class: "ifx-choices__icon-wrapper-delete" }, h("ifx-icon", { key: '81ecbe40f43c555df8990ce2a393170193e5c6d7', icon: "cremove16", onClick: () => this.handleDeleteSelection() }))), h("div", { key: '2aabe5ee5ecce1ff833e26c62b514f41209cef5b', class: "ifx-choices__icon-wrapper-up" }, h("ifx-icon", { key: "icon-up", icon: "chevronup-16" })), h("div", { key: 'b89f70067c4da987d24eb9da9835287e94819d3a', class: "ifx-choices__icon-wrapper-down" }, h("ifx-icon", { key: "icon-down", icon: "chevron-down-16" })))), this.error ? (h("div", { class: "ifx-error-message-wrapper" }, h("span", null, this.errorMessage))) : null));
224
+ ${this.error ? 'error' : ''}`, onClick: this.disabled ? undefined : (e) => this.handleWrapperClick(e), onKeyDown: event => this.handleKeyDown(event) }, h("select", Object.assign({ key: '7cf5a5c7deaa170d9a5a761901e9c5328d376285', class: 'single__select-input-field', disabled: this.disabled }, attributes, { "data-trigger": true, onChange: () => this.handleChange() }), this.createSelectOptions(this.options)), h("div", { key: 'fce1dfb5de7596657ad10c0e830ed6c058f409f3', class: 'single__select-icon-container' }, this.optionIsSelected && (h("div", { key: 'd9f5613d5366fb1db8935e41b9b78baf919e1c87', class: `ifx-choices__icon-wrapper-delete ${!this.showClearButton ? 'hide' : ''}` }, h("ifx-icon", { key: '87ad84ac1670bd59f85c20700aab1a81c5ef4532', icon: "cremove16", onClick: () => this.handleDeleteSelection() }))), h("div", { key: 'd5f0ac486df576de6a0f22b60c56a1db689174d5', class: "ifx-choices__icon-wrapper-up" }, h("ifx-icon", { key: "icon-up", icon: "chevronup-16" })), h("div", { key: '0e62a39fab954be07046e9cbb7f8c5bc304fb35e', class: "ifx-choices__icon-wrapper-down" }, h("ifx-icon", { key: "icon-down", icon: "chevron-down-16" })))), this.error ? (h("div", { class: "ifx-error-message-wrapper" }, h("span", null, this.errorMessage))) : null));
224
225
  }
225
226
  toggleDropdown() {
226
227
  const div = this.root.querySelector('.ifx-choices__wrapper');
@@ -1480,6 +1481,26 @@ export class Choices {
1480
1481
  "attribute": "size",
1481
1482
  "reflect": false,
1482
1483
  "defaultValue": "'medium (40px)'"
1484
+ },
1485
+ "showClearButton": {
1486
+ "type": "boolean",
1487
+ "mutable": false,
1488
+ "complexType": {
1489
+ "original": "boolean",
1490
+ "resolved": "boolean",
1491
+ "references": {}
1492
+ },
1493
+ "required": false,
1494
+ "optional": false,
1495
+ "docs": {
1496
+ "tags": [],
1497
+ "text": ""
1498
+ },
1499
+ "getter": false,
1500
+ "setter": false,
1501
+ "attribute": "show-clear-button",
1502
+ "reflect": false,
1503
+ "defaultValue": "true"
1483
1504
  }
1484
1505
  };
1485
1506
  }
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/components/select/single-select/select.tsx"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { h, Component, Element, Method, Prop, Event, EventEmitter, State } from '@stencil/core';\nimport { HTMLStencilElement, Listen, Watch } from '@stencil/core/internal';\nimport ChoicesJs from 'choices.js';\n\nimport {\n AjaxFn,\n ClassNames,\n FuseOptions,\n IChoicesProps,\n IChoicesMethods,\n ItemFilterFn,\n NoResultsTextFn,\n NoChoicesTextFn,\n AddItemTextFn,\n MaxItemTextFn,\n SortFn,\n OnInit,\n OnCreateTemplates,\n UniqueItemText,\n ValueCompareFunction,\n CustomAddItemText,\n} from './interfaces';\nimport { filterObject, isDefined, isJSONParseable } from './utils';\n\n@Component({\n tag: 'ifx-select',\n styleUrl: 'select.scss',\n // shadow: true, //with shadow dom enabled, styles to the external choicesJs library cant be applied.\n})\nexport class Choices implements IChoicesProps, IChoicesMethods {\n @Prop() public value: string;\n @Prop() public name: string;\n @Prop() public items: Array<any>;\n @Prop() public choices: Array<any> | string;\n @Prop() public renderChoiceLimit: number;\n @Prop() public maxItemCount: number;\n @Prop() public addItems: boolean;\n @Prop() public removeItems: boolean;\n @Prop() public removeItemButton: boolean;\n @Prop() public editItems: boolean;\n @Prop() public duplicateItemsAllowed: boolean;\n @Prop() public delimiter: string;\n @Prop() public paste: boolean;\n @Prop() public showSearch: boolean;\n @Prop() public searchChoices: boolean;\n @Prop() public searchFields: Array<string> | string;\n @Prop() public searchFloor: number;\n @Prop() public searchResultLimit: number;\n @Prop() public position: 'auto' | 'top' | 'bottom';\n @Prop() public resetScrollPosition: boolean;\n @Prop() public shouldSort: boolean;\n @Prop() public shouldSortItems: boolean;\n @Prop() public sorter: SortFn;\n @Prop() public placeholder: boolean | string;\n @Prop() public searchPlaceholderValue: string;\n @Prop() public prependValue: string;\n @Prop() public appendValue: string;\n @Prop() public renderSelectedChoices: 'always' | 'auto';\n @Prop() public loadingText: string;\n @Prop() public noResultsText: string | NoResultsTextFn;\n @Prop() public noChoicesText: string | NoChoicesTextFn;\n @Prop() public itemSelectText: '';\n @Prop() public addItemText: string | AddItemTextFn;\n @Prop() public maxItemText: string | MaxItemTextFn;\n @Prop() public uniqueItemText: UniqueItemText;\n @Prop() public classNames: ClassNames;\n @Prop() public fuseOptions: FuseOptions;\n @Prop() public addItemFilter: string | RegExp | ItemFilterFn;\n @Prop() public customAddItemText: CustomAddItemText;\n @Prop() public callbackOnInit: OnInit;\n @Prop() public callbackOnCreateTemplates: OnCreateTemplates;\n @Prop() public valueComparer: ValueCompareFunction;\n //custom ifx props\n @Prop() error: boolean = false;\n @Prop() errorMessage: string = 'Error';\n @Prop() label: string = '';\n @Prop() disabled: boolean = false;\n @Prop() placeholderValue: string = 'Placeholder';\n @Event() ifxSelect: EventEmitter<CustomEvent>;\n @Event() ifxInput: EventEmitter<CustomEvent>;\n @Prop({ mutable: true }) options: any[] | string;\n @Prop() size: string = 'medium (40px)';\n @State() selectedOption: any | null = null;\n @State() optionIsSelected: boolean = false;\n\n private resizeObserver: ResizeObserver;\n private previousOptions: any[] = [];\n\n @Element() private readonly root: HTMLElement;\n private choice;\n private element;\n\n @Watch('disabled')\n watchDisabled(newValue: boolean) {\n if (newValue) {\n this.choice.disable();\n } else {\n this.choice.enable();\n }\n }\n\n handleDeleteSelection() {\n this.clearInput()\n this.clearSelectField()\n this.setPreSelected(null);\n this.closeDropdown();\n this.optionIsSelected = false;\n }\n\n clearSelectField() { \n this.selectedOption = null;\n this.ifxSelect.emit(null);\n }\n\n @Method()\n async handleChange() {\n this.ifxSelect.emit(this.choice.getValue());\n this.selectedOption = this.choice.getValue(); //store the selected option to reflect it in the template function\n this.setPreSelected(this.selectedOption.value); //set previously selected items from the input array to false and the new selection to true\n this.closeDropdown();\n }\n\n @Method()\n public async highlightItem(item: HTMLElement, runEvent?: boolean) {\n this.choice.highlightItem(item, runEvent);\n\n return this;\n }\n\n @Method()\n public async unhighlightItem(item: HTMLElement) {\n this.choice.unhighlightItem(item);\n\n return this;\n }\n\n @Method()\n public async highlightAll() {\n this.choice.highlightAll();\n\n return this;\n }\n\n @Method()\n public async unhighlightAll() {\n this.choice.unhighlightAll();\n\n return this;\n }\n\n @Method()\n public async removeActiveItemsByValue(value: string) {\n this.choice.removeActiveItemsByValue(value);\n return this;\n }\n\n @Method()\n public async removeActiveItems(excludedId?: number) {\n this.choice.removeActiveItems(excludedId);\n\n return this;\n }\n\n @Method()\n public async removeHighlightedItems(runEvent?: boolean) {\n this.choice.removeHighlightedItems(runEvent);\n\n return this;\n }\n\n @Method()\n public async showDropdown(focusInput?: boolean) {\n this.choice.showDropdown(focusInput);\n return this;\n }\n\n @Method()\n public async hideDropdown(blurInput?: boolean) {\n this.choice.hideDropdown(blurInput);\n\n return this;\n }\n\n @Method()\n public async getValue(valueOnly?: boolean): Promise<string | Array<string>> {\n return this.choice.getValue(valueOnly);\n }\n\n @Method()\n public async setValue(args: Array<any>) {\n this.choice.setValue(args);\n\n return this;\n }\n\n @Method()\n public async setChoiceByValue(value: string | Array<string>) {\n this.choice.setChoiceByValue(value);\n\n return this;\n }\n\n @Method()\n public async setChoices(choices: any[] | string, value: string, label: string, replaceChoices?: boolean) {\n let listOfChoices;\n if (typeof choices === 'string') {\n try {\n if (!isJSONParseable(choices)) {\n //meaning the input string comes from storybook as a non valid json string to be displayed in a beautified version on storybook\n choices = choices\n .replace(/'/g, '\"')\n .replace(/\"false\"/g, 'false')\n .replace(/\"true\"/g, 'true');\n }\n listOfChoices = [...JSON.parse(choices)];\n } catch (err) {\n console.error('Failed to parse choices:', err);\n }\n } else if (Array.isArray(choices) || typeof choices === 'object') {\n listOfChoices = [...choices];\n } else {\n console.error('Unexpected value for choices:', this.options);\n }\n\n this.choice.setChoices(listOfChoices, value, label, replaceChoices);\n return this;\n }\n\n @Method()\n public async clearChoices() {\n this.choice.clearChoices();\n\n return this;\n }\n\n @Method()\n public async clearStore() {\n this.choice.clearStore();\n\n return this;\n }\n\n @Method()\n public async clearInput() {\n this.choice.clearInput();\n\n return this;\n }\n\n @Method()\n public async ajax(fn: AjaxFn) {\n this.choice.ajax(fn);\n\n return this;\n }\n\n @Method()\n async handleDeleteIcon() {\n const width = this.root.offsetWidth;\n const deleteIconWrapper = this.root.querySelector('.ifx-choices__icon-wrapper-delete');\n if(deleteIconWrapper) { \n if (width <= 180) {\n deleteIconWrapper.classList.add('hide')\n } else { \n deleteIconWrapper.classList.remove('hide')\n }\n }\n }\n\n\n handleCloseButton() { \n if(typeof this.options === 'string') { \n const optionsToArray = JSON.parse(this.options);\n const optionIsSelected = optionsToArray.find(option => option.selected === true)\n if(optionIsSelected) { \n this.optionIsSelected = true;\n } else { \n this.optionIsSelected = false;\n }\n } else if(this.options && Array.isArray(this.options)) { \n const optionIsSelected = this.options.find(option => option.selected === true)\n if(optionIsSelected) { \n this.optionIsSelected = true;\n } else { \n this.optionIsSelected = false;\n }\n }\n }\n\n protected componentWillLoad() { \n this.handleCloseButton()\n }\n\n protected componentWillUpdate() { \n this.handleCloseButton()\n this.previousOptions = [...this.options];\n const optionsAreEqual = this.isEqual(this.options, this.previousOptions);\n if (this.options && !optionsAreEqual) {\n this.clearSelectField();\n }\n }\n\n isEqual(a: any, b: any[]) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n\n addResizeObserver() { \n this.resizeObserver = new ResizeObserver(() => {\n this.handleDeleteIcon();\n });\n \n const componentWrapper = this.root.querySelector('.ifx-choices__wrapper');\n this.resizeObserver.observe(componentWrapper);\n }\n\n protected componentDidLoad() {\n this.init();\n this.addEventListenersToHandleCustomFocusAndActiveState();\n this.handleDeleteIcon();\n this.addResizeObserver()\n }\n\n protected componentDidUpdate() {\n this.init();\n this.handleDeleteIcon()\n }\n\n protected disconnectedCallback() {\n this.destroy();\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n private handleWrapperClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const isSearchInput = target.classList.contains('choices__input') || target.closest('.choices__input');\n const isDropdownItem = target.closest('.choices__list--dropdown .choices__item');\n \n // Only toggle dropdown if clicking on wrapper itself\n if (!isSearchInput && !isDropdownItem) {\n this.toggleDropdown();\n }\n }\n\n protected render(): any {\n const attributes = {\n 'data-selector': 'root',\n 'name': this.name || null,\n // 'remove-item-button': false,\n };\n const choicesWrapperClass = `ifx-choices__wrapper ${this.getSizeClass()}`;\n\n // destroy choices element to restore previous dom structure\n // so vdom can replace the element correctly\n this.destroy();\n\n return (\n <div class={`ifx-select-container`}>\n {this.label ? (\n <div class=\"ifx-label-wrapper\">\n <span>{this.label}</span>\n </div>\n ) : null}\n <div\n class={`${choicesWrapperClass} \n ${this.disabled ? 'disabled' : ''} \n ${this.error ? 'error' : ''}`}\n onClick={this.disabled ? undefined : (e) => this.handleWrapperClick(e)}\n onKeyDown={event => this.handleKeyDown(event)}\n >\n <select class='single__select-input-field' disabled = {this.disabled} {...attributes} data-trigger onChange={() => this.handleChange()}>\n {this.createSelectOptions(this.options)}\n </select>\n\n <div class=\"single__select-icon-container\">\n { this.optionIsSelected && (\n <div class=\"ifx-choices__icon-wrapper-delete\">\n <ifx-icon icon=\"cremove16\" onClick={() => this.handleDeleteSelection()}></ifx-icon>\n </div>\n )}\n <div class=\"ifx-choices__icon-wrapper-up\">\n <ifx-icon key=\"icon-up\" icon=\"chevronup-16\"></ifx-icon>\n </div>\n <div class=\"ifx-choices__icon-wrapper-down\">\n <ifx-icon key=\"icon-down\" icon=\"chevron-down-16\"></ifx-icon>\n </div>\n </div>\n </div>\n {this.error ? (\n <div class=\"ifx-error-message-wrapper\">\n <span>{this.errorMessage}</span>\n </div>\n ) : null}\n </div>\n );\n }\n\n toggleDropdown() {\n const div = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n if (div.classList.contains('active') || this.choice.dropdown.isActive) {\n this.hideDropdown();\n div.classList.remove('active');\n } else {\n this.choice.showDropdown();\n div.classList.add('active');\n }\n const choicesElement = this.root.querySelector('.choices');\n choicesElement.classList.add('is-focused'); // Add the 'is-focused' class, cause a click on the wrapper (and not the embedded select element) doesnt add this automatically to the choices instance\n }\n\n closeDropdown() {\n const ifxChoicesWrapper = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n ifxChoicesWrapper.classList.remove('active');\n }\n\n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n const ifxChoicesContainer = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n\n if (!path.includes(this.root)) {\n ifxChoicesContainer.classList.remove('active');\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return;\n\n const isSearchInput = (event.target as HTMLElement).classList.contains('choices__input');\n\n // If the event originated from the search input and the key is 'Space', do nothing.\n if (isSearchInput && event.code === 'Space') {\n return;\n }\n\n if (event.code === 'Enter' || (event.code === 'Space' && !isSearchInput)) {\n this.toggleDropdown();\n }\n\n // Only prevent default space behavior when it's not from the search input.\n if (event.code === 'Space' && !isSearchInput) {\n event.preventDefault(); // Prevent default page scrolling.\n }\n }\n\n getSizeClass() {\n return `${this.size}` === 's' ? 'small-select' : 'medium-select';\n }\n\n private init() {\n const props = {\n allowHTML: true,\n items: this.items,\n choices: this.choices,\n renderChoiceLimit: this.renderChoiceLimit,\n maxItemCount: this.maxItemCount,\n addItems: this.addItems,\n removeItems: this.removeItems,\n removeItemButton: this.removeItemButton,\n editItems: this.editItems,\n duplicateItemsAllowed: this.duplicateItemsAllowed,\n delimiter: this.delimiter,\n paste: this.paste,\n searchEnabled: this.showSearch,\n searchChoices: this.searchChoices,\n searchFields: this.searchFields,\n searchFloor: this.searchFloor,\n searchResultLimit: this.searchResultLimit,\n position: this.position,\n resetScrollPosition: this.resetScrollPosition,\n shouldSort: false, // choices/groups will appear in the order they were given.\n shouldSortItems: this.shouldSortItems,\n sorter: this.sorter,\n placeholder: this.placeholder,\n searchPlaceholderValue: this.searchPlaceholderValue,\n prependValue: this.prependValue,\n appendValue: this.appendValue,\n renderSelectedChoices: this.renderSelectedChoices,\n loadingText: this.loadingText,\n noResultsText: this.noResultsText,\n noChoicesText: this.noChoicesText,\n itemSelectText: this.itemSelectText,\n addItemText: this.addItemText,\n maxItemText: this.maxItemText,\n uniqueItemText: this.uniqueItemText,\n classNames: this.classNames,\n fuseOptions: this.fuseOptions,\n callbackOnInit: this.callbackOnInit,\n callbackOnCreateTemplates: this.callbackOnCreateTemplates,\n valueComparer: this.valueComparer,\n addItemFilter: this.addItemFilter,\n customAddItemText: this.customAddItemText,\n };\n\n const settings = filterObject(props, isDefined);\n\n //type check\n const element = this.root.querySelector('[data-selector=\"root\"]');\n if (element instanceof HTMLInputElement || element instanceof HTMLSelectElement) {\n // this.choice = new ChoicesJs(element, settings); //standard, without using custom templates\n const self = this; // save the context of this in a variable outside of the function to access it in the following\n\n this.choice = new ChoicesJs(\n element,\n Object.assign({}, settings, {\n callbackOnCreateTemplates: function (template) {\n return {\n //modifying the selected item template\n item: ({ classNames }, data) => {\n let removeButtonHTML = '';\n\n if (data.placeholder && !self.selectedOption?.value) {\n // For placeholders, use data-id=\"placeholder\"\n return template(`\n <div class=\"choices__placeholder\" data-item data-id=\"${data.id}\" data-value=\"${data.value}\" ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n ${data.label === undefined ? this.placeholderValue : data.label}\n ${removeButtonHTML}\n </div>\n `);\n } else {\n // For non-placeholder items, use the actual data ID\n return template(`\n <div class=\"${classNames.item} ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable}\" \n data-item \n data-id=\"${self.selectedOption?.id !== undefined ? self.selectedOption?.id : self.choice.getValue().id}\" \n data-value=\"${self.selectedOption?.value !== undefined ? self.selectedOption?.value : self.choice.getValue().value}\" \n ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n <span>${self.selectedOption?.label !== undefined ? self.selectedOption?.label : self.choice.getValue().label}</span>\n <!-- Add your remove button here if needed -->\n </div>\n `);\n }\n },\n input: ({ classNames }) => {\n return template(`\n <input type=\"search\"\n class=\"${classNames.input} ${classNames.inputCloned} ${self.getSizeClass()}\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n role=\"textbox\"\n aria-autocomplete=\"list\"\n aria-label=\"${this.showSearch ? this.searchPlaceholderValue : ''}\" > \n `);\n },\n\n //modifying the template of each item in the options list\n choice: ({ classNames }, data) => {\n return template(`\n <div class=\"${classNames.item} ${classNames.itemChoice} ${self.getSizeClass()} \n ${data.selected || self.selectedOption?.value === data.value || self.getPreSelected(self)?.value === data.value ? 'selected' : ''} \n ${data.placeholder ? classNames.placeholder : ''} \n ${data.disabled ? classNames.itemDisabled : classNames.itemSelectable} \n role=\"${data.groupId && data.groupId > 0 ? 'treeitem' : 'option'}\"\n data-choice ${data.disabled ? 'data-choice-disabled aria-disabled=\"true\"' : 'data-choice-selectable'} data-id=\"${data.id}\"\n data-value=\"${data.value}\"\n data-select-text=\"${this.config.itemSelectText}\">\n <span>${data.label}</span>\n ${data.selected || self.selectedOption?.value === data.value || self.getPreSelected(self)?.value === data.value ? '<ifx-icon icon=\"check16\"></ifx-icon>' : ''}\n </div>\n `);\n },\n };\n },\n }),\n );\n\n //set select options\n this.setChoices(this.options, 'value', 'label', true);\n //set custom event listener to listen for search input\n self.addSearchEventListener(self, this.choice);\n } else {\n // handle the case when the element is neither an HTMLInputElement nor an HTMLSelectElement\n }\n }\n\n private addEventListenersToHandleCustomFocusAndActiveState() {\n const div = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n\n if (!div) {\n console.error('.ifx-choices__wrapper not found');\n return;\n }\n\n div.tabIndex = 0;\n\n div.addEventListener('focus', function () {\n if (!this.classList.contains('disabled')) {\n this.classList.add('focus');\n }\n });\n\n div.addEventListener('blur', function () {\n this.classList.remove('focus');\n });\n }\n\n private addSearchEventListener(self, choiceElement: ChoicesJs) {\n choiceElement.passedElement.element.addEventListener(\n 'search',\n function (event: CustomEvent) {\n self.ifxInput.emit(event.detail.value);\n },\n false,\n );\n return choiceElement;\n }\n\n private destroy() {\n if (this.element) {\n this.element = null;\n }\n\n if (this.choice) {\n this.choice.destroy();\n this.choice = null;\n }\n }\n\n //get selected values from input array\n private getPreSelected(self) {\n const optionsArray: any[] = Array.isArray(self.options) ? self.options : JSON.parse(self.options);\n return optionsArray.find(option => option.selected === true) || null;\n }\n\n //set previously marked as selected items in the input array to unselected and select new ones\n private setPreSelected(newValue) {\n const optionsArray: any[] = Array.isArray(this.options) ? this.options : JSON.parse(this.options);\n\n this.options = optionsArray.map(obj => {\n return {\n ...obj,\n selected: obj.value === newValue\n };\n });\n }\n\n //setting the value that gets displayed in the select at component start (either the value prop or a placeholder)\n private createSelectOptions(ifxOptions): Array<HTMLStencilElement> {\n if (this.value !== 'undefined' || this.selectedOption?.value !== '') {\n let options;\n if (isJSONParseable(ifxOptions)) {\n options = [...JSON.parse(ifxOptions)];\n } else if (Array.isArray(ifxOptions) || typeof ifxOptions === 'object') {\n options = [...ifxOptions];\n }\n const optionValueBasedOnAvailableOptions = options?.find(option => option.value === this.value || this.selectedOption?.value);\n\n if (optionValueBasedOnAvailableOptions) {\n return [<option value={optionValueBasedOnAvailableOptions.value}>{optionValueBasedOnAvailableOptions.label}</option>];\n }\n }\n\n // Assign a unique id for the placeholder\n return this.placeholder !== 'false' ? [<option value=\"\">{this.placeholderValue}</option>] : [<option value=\"\"></option>];\n }\n}"]}
1
+ {"version":3,"file":"select.js","sourceRoot":"","sources":["../../../../src/components/select/single-select/select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAgB,KAAK,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAsB,MAAM,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,SAAS,MAAM,YAAY,CAAC;AAoBnC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAOnE,MAAM,OAAO,OAAO;IALpB;QAgDE,kBAAkB;QACV,UAAK,GAAY,KAAK,CAAC;QACvB,iBAAY,GAAW,OAAO,CAAC;QAC/B,UAAK,GAAW,EAAE,CAAC;QACnB,aAAQ,GAAY,KAAK,CAAC;QAC1B,qBAAgB,GAAW,aAAa,CAAC;QAIzC,SAAI,GAAW,eAAe,CAAC;QAC9B,mBAAc,GAAe,IAAI,CAAC;QAClC,qBAAgB,GAAY,KAAK,CAAC;QACnC,oBAAe,GAAY,IAAI,CAAC;QAGhC,oBAAe,GAAU,EAAE,CAAC;KA8jBrC;IAvjBC,aAAa,CAAC,QAAiB;QAC7B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAGD,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,kEAAkE;QAChH,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,2FAA2F;QAC3I,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAGM,KAAK,CAAC,aAAa,CAAC,IAAiB,EAAE,QAAkB;QAC9D,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,eAAe,CAAC,IAAiB;QAC5C,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAElC,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,YAAY;QACvB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAE3B,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,cAAc;QACzB,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAE7B,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,wBAAwB,CAAC,KAAa;QACjD,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,iBAAiB,CAAC,UAAmB;QAChD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAE1C,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,sBAAsB,CAAC,QAAkB;QACpD,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,YAAY,CAAC,UAAoB;QAC5C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,YAAY,CAAC,SAAmB;QAC3C,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,QAAQ,CAAC,SAAmB;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAGM,KAAK,CAAC,QAAQ,CAAC,IAAgB;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE3B,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,gBAAgB,CAAC,KAA6B;QACzD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEpC,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,UAAU,CAAC,OAAuB,EAAE,KAAa,EAAE,KAAa,EAAE,cAAwB;QACrG,IAAI,aAAa,CAAC;QAClB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC9B,+HAA+H;oBAC/H,OAAO,GAAG,OAAO;yBACd,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;yBAClB,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC;yBAC5B,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAChC,CAAC;gBACD,aAAa,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACjE,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,YAAY;QACvB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAE3B,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,UAAU;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,UAAU;QACrB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC;IACd,CAAC;IAGM,KAAK,CAAC,IAAI,CAAC,EAAU;QAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAErB,OAAO,IAAI,CAAC;IACd,CAAC;IAGC,KAAK,CAAC,gBAAgB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACpC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC;QACvF,IAAG,iBAAiB,EAAE,CAAC;YACrB,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;gBACjB,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;YACzC,CAAC;iBAAM,IAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC/B,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAGH,iBAAiB;QACf,IAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACpC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,gBAAgB,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAA;YAChF,IAAG,gBAAgB,EAAE,CAAC;gBACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,IAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACtD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAA;YAC9E,IAAG,gBAAgB,EAAE,CAAC;gBACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAES,iBAAiB;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAA;IACzB,CAAC;IAES,mBAAmB;QAC3B,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,eAAe,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,CAAM,EAAE,CAAQ;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IAGD,iBAAiB;QACf,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE;YAC5C,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;QAC1E,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChD,CAAC;IAES,gBAAgB;QACxB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,kDAAkD,EAAE,CAAC;QAC1D,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAA;IAC1B,CAAC;IAES,kBAAkB;QAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACzB,CAAC;IAES,oBAAoB;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;YACjC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,KAAiB;QAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC3C,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACvG,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;QAEjF,qDAAqD;QACrD,IAAI,CAAC,aAAa,IAAI,CAAC,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAES,MAAM;QACd,MAAM,UAAU,GAAG;YACjB,eAAe,EAAE,MAAM;YACvB,MAAM,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;YACzB,+BAA+B;SAChC,CAAC;QACF,MAAM,mBAAmB,GAAG,wBAAwB,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QAE1E,4DAA4D;QAC5D,4CAA4C;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,OAAO,CACL,4DAAK,KAAK,EAAE,sBAAsB;YAC/B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACZ,WAAK,KAAK,EAAC,mBAAmB;gBAC5B,gBAAO,IAAI,CAAC,KAAK,CAAQ,CACrB,CACP,CAAC,CAAC,CAAC,IAAI;YACR,4DACE,KAAK,EAAE,GAAG,mBAAmB;cACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;cAC/B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAC/B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EACtE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBAE7C,6EAAQ,KAAK,EAAC,4BAA4B,EAAC,QAAQ,EAAI,IAAI,CAAC,QAAQ,IAAM,UAAU,0BAAe,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,KACnI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAChC;gBAET,4DAAK,KAAK,EAAC,+BAA+B;oBACtC,IAAI,CAAC,gBAAgB,IAAI,CACvB,4DAAK,KAAK,EAAE,oCAAoC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;wBACnF,iEAAU,IAAI,EAAC,WAAW,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAa,CAC/E,CACP;oBACD,4DAAK,KAAK,EAAC,8BAA8B;wBACvC,gBAAU,GAAG,EAAC,SAAS,EAAC,IAAI,EAAC,cAAc,GAAY,CACnD;oBACN,4DAAK,KAAK,EAAC,gCAAgC;wBACzC,gBAAU,GAAG,EAAC,WAAW,EAAC,IAAI,EAAC,iBAAiB,GAAY,CACxD,CACJ,CACF;YACL,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACZ,WAAK,KAAK,EAAC,2BAA2B;gBACpC,gBAAO,IAAI,CAAC,YAAY,CAAQ,CAC5B,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAmB,CAAC;QAC/E,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACtE,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;YAC3B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAC3D,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,uJAAuJ;IACrM,CAAC;IAED,aAAa;QACX,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAmB,CAAC;QAC7F,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAGD,kBAAkB,CAAC,KAAiB;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAmB,CAAC;QAE/F,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,mBAAmB,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,aAAa,CAAC,KAAoB;QAChC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAE1B,MAAM,aAAa,GAAI,KAAK,CAAC,MAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QAEzF,oFAAoF;QACpF,IAAI,aAAa,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACzE,IAAI,CAAC,cAAc,EAAE,CAAC;QACxB,CAAC;QAED,2EAA2E;QAC3E,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,KAAK,CAAC,cAAc,EAAE,CAAC,CAAC,kCAAkC;QAC5D,CAAC;IACH,CAAC;IAED,YAAY;QACV,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,CAAC;IACnE,CAAC;IAEO,IAAI;QACV,MAAM,KAAK,GAAG;YACZ,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,IAAI,CAAC,UAAU;YAC9B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,UAAU,EAAE,KAAK,EAAE,2DAA2D;YAC9E,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;YACnD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;YACzD,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;SAC1C,CAAC;QAEF,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAEhD,YAAY;QACZ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;QAClE,IAAI,OAAO,YAAY,gBAAgB,IAAI,OAAO,YAAY,iBAAiB,EAAE,CAAC;YAChF,6FAA6F;YAC7F,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,+FAA+F;YAElH,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CACzB,OAAO,EACP,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE;gBAC1B,yBAAyB,EAAE,UAAU,QAAQ;oBAC3C,OAAO;wBACL,sCAAsC;wBACtC,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE;;4BAC7B,IAAI,gBAAgB,GAAG,EAAE,CAAC;4BAE1B,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,CAAA,EAAE,CAAC;gCACpD,8CAA8C;gCAC9C,OAAO,QAAQ,CAAC;yEACuC,IAAI,CAAC,EAAE,iBAAiB,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;sBACrI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;sBAC7D,gBAAgB;;iBAErB,CAAC,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,oDAAoD;gCACpD,OAAO,QAAQ,CAAC;8BACJ,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc;;iCAE1F,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,EAAE,MAAK,SAAS,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,cAAc,0CAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE;oCACxF,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,MAAK,SAAS,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK;wBAChH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;0BACzC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,MAAK,SAAS,CAAC,CAAC,CAAC,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK;;;eAG/G,CAAC,CAAC;4BACD,CAAC;wBACH,CAAC;wBACD,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;4BACxB,OAAO,QAAQ,CAAC;;uBAET,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,EAAE;;;;;;4BAM5D,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE;eAC/D,CAAC,CAAC;wBACH,CAAC;wBAED,yDAAyD;wBACzD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE;;4BAC/B,OAAO,QAAQ,CAAC;4BACJ,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE;gBAC3E,IAAI,CAAC,QAAQ,IAAI,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,MAAK,IAAI,CAAC,KAAK,IAAI,CAAA,MAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,0CAAE,KAAK,MAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;gBAC/H,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;gBAC9C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc;4BACvD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;kCAClD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,wBAAwB,iCAAiC,IAAI,CAAC,EAAE;kCAC9H,IAAI,CAAC,KAAK;wCACJ,IAAI,CAAC,MAAM,CAAC,cAAc;wBAC1C,IAAI,CAAC,KAAK;kBAChB,IAAI,CAAC,QAAQ,IAAI,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,MAAK,IAAI,CAAC,KAAK,IAAI,CAAA,MAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,0CAAE,KAAK,MAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,EAAE;;aAEhK,CAAC,CAAC;wBACD,CAAC;qBACF,CAAC;gBACJ,CAAC;aACF,CAAC,CACH,CAAC;YAEF,oBAAoB;YACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACtD,sDAAsD;YACtD,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,2FAA2F;QAC7F,CAAC;IACH,CAAC;IAEO,kDAAkD;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAmB,CAAC;QAE/E,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;QAEjB,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,sBAAsB,CAAC,IAAI,EAAE,aAAwB;QAC3D,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAClD,QAAQ,EACR,UAAU,KAAkB;YAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC,EACD,KAAK,CACN,CAAC;QACF,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,OAAO;QACb,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,sCAAsC;IAC9B,cAAc,CAAC,IAAI;QACzB,MAAM,YAAY,GAAU,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClG,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;IACvE,CAAC;IAED,8FAA8F;IACtF,cAAc,CAAC,QAAQ;QAC7B,MAAM,YAAY,GAAU,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAElG,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACpC,uCACK,GAAG,KACN,QAAQ,EAAE,GAAG,CAAC,KAAK,KAAK,QAAQ,IAChC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iHAAiH;IACzG,mBAAmB,CAAC,UAAU;;QACpC,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,MAAK,EAAE,EAAE,CAAC;YACpE,IAAI,OAAO,CAAC;YACZ,IAAI,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACvE,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;YAC5B,CAAC;YACD,MAAM,kCAAkC,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAC,OAAA,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,KAAI,MAAA,IAAI,CAAC,cAAc,0CAAE,KAAK,CAAA,CAAA,EAAA,CAAC,CAAC;YAE9H,IAAI,kCAAkC,EAAE,CAAC;gBACvC,OAAO,CAAC,cAAQ,KAAK,EAAE,kCAAkC,CAAC,KAAK,IAAG,kCAAkC,CAAC,KAAK,CAAU,CAAC,CAAC;YACxH,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,OAAO,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,cAAQ,KAAK,EAAC,EAAE,IAAE,IAAI,CAAC,gBAAgB,CAAU,CAAC,CAAC,CAAC,CAAC,CAAC,cAAQ,KAAK,EAAC,EAAE,GAAU,CAAC,CAAC;IAC3H,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { h, Component, Element, Method, Prop, Event, EventEmitter, State } from '@stencil/core';\nimport { HTMLStencilElement, Listen, Watch } from '@stencil/core/internal';\nimport ChoicesJs from 'choices.js';\n\nimport {\n AjaxFn,\n ClassNames,\n FuseOptions,\n IChoicesProps,\n IChoicesMethods,\n ItemFilterFn,\n NoResultsTextFn,\n NoChoicesTextFn,\n AddItemTextFn,\n MaxItemTextFn,\n SortFn,\n OnInit,\n OnCreateTemplates,\n UniqueItemText,\n ValueCompareFunction,\n CustomAddItemText,\n} from './interfaces';\nimport { filterObject, isDefined, isJSONParseable } from './utils';\n\n@Component({\n tag: 'ifx-select',\n styleUrl: 'select.scss',\n // shadow: true, //with shadow dom enabled, styles to the external choicesJs library cant be applied.\n})\nexport class Choices implements IChoicesProps, IChoicesMethods {\n @Prop() public value: string;\n @Prop() public name: string;\n @Prop() public items: Array<any>;\n @Prop() public choices: Array<any> | string;\n @Prop() public renderChoiceLimit: number;\n @Prop() public maxItemCount: number;\n @Prop() public addItems: boolean;\n @Prop() public removeItems: boolean;\n @Prop() public removeItemButton: boolean;\n @Prop() public editItems: boolean;\n @Prop() public duplicateItemsAllowed: boolean;\n @Prop() public delimiter: string;\n @Prop() public paste: boolean;\n @Prop() public showSearch: boolean;\n @Prop() public searchChoices: boolean;\n @Prop() public searchFields: Array<string> | string;\n @Prop() public searchFloor: number;\n @Prop() public searchResultLimit: number;\n @Prop() public position: 'auto' | 'top' | 'bottom';\n @Prop() public resetScrollPosition: boolean;\n @Prop() public shouldSort: boolean;\n @Prop() public shouldSortItems: boolean;\n @Prop() public sorter: SortFn;\n @Prop() public placeholder: boolean | string;\n @Prop() public searchPlaceholderValue: string;\n @Prop() public prependValue: string;\n @Prop() public appendValue: string;\n @Prop() public renderSelectedChoices: 'always' | 'auto';\n @Prop() public loadingText: string;\n @Prop() public noResultsText: string | NoResultsTextFn;\n @Prop() public noChoicesText: string | NoChoicesTextFn;\n @Prop() public itemSelectText: '';\n @Prop() public addItemText: string | AddItemTextFn;\n @Prop() public maxItemText: string | MaxItemTextFn;\n @Prop() public uniqueItemText: UniqueItemText;\n @Prop() public classNames: ClassNames;\n @Prop() public fuseOptions: FuseOptions;\n @Prop() public addItemFilter: string | RegExp | ItemFilterFn;\n @Prop() public customAddItemText: CustomAddItemText;\n @Prop() public callbackOnInit: OnInit;\n @Prop() public callbackOnCreateTemplates: OnCreateTemplates;\n @Prop() public valueComparer: ValueCompareFunction;\n //custom ifx props\n @Prop() error: boolean = false;\n @Prop() errorMessage: string = 'Error';\n @Prop() label: string = '';\n @Prop() disabled: boolean = false;\n @Prop() placeholderValue: string = 'Placeholder';\n @Event() ifxSelect: EventEmitter<CustomEvent>;\n @Event() ifxInput: EventEmitter<CustomEvent>;\n @Prop({ mutable: true }) options: any[] | string;\n @Prop() size: string = 'medium (40px)';\n @State() selectedOption: any | null = null;\n @State() optionIsSelected: boolean = false;\n @Prop() showClearButton: boolean = true;\n\n private resizeObserver: ResizeObserver;\n private previousOptions: any[] = [];\n\n @Element() private readonly root: HTMLElement;\n private choice;\n private element;\n\n @Watch('disabled')\n watchDisabled(newValue: boolean) {\n if (newValue) {\n this.choice.disable();\n } else {\n this.choice.enable();\n }\n }\n\n handleDeleteSelection() {\n this.clearInput()\n this.clearSelectField()\n this.setPreSelected(null);\n this.closeDropdown();\n this.optionIsSelected = false;\n }\n\n clearSelectField() { \n this.selectedOption = null;\n this.ifxSelect.emit(null);\n }\n\n @Method()\n async handleChange() {\n this.ifxSelect.emit(this.choice.getValue());\n this.selectedOption = this.choice.getValue(); //store the selected option to reflect it in the template function\n this.setPreSelected(this.selectedOption.value); //set previously selected items from the input array to false and the new selection to true\n this.closeDropdown();\n }\n\n @Method()\n public async highlightItem(item: HTMLElement, runEvent?: boolean) {\n this.choice.highlightItem(item, runEvent);\n\n return this;\n }\n\n @Method()\n public async unhighlightItem(item: HTMLElement) {\n this.choice.unhighlightItem(item);\n\n return this;\n }\n\n @Method()\n public async highlightAll() {\n this.choice.highlightAll();\n\n return this;\n }\n\n @Method()\n public async unhighlightAll() {\n this.choice.unhighlightAll();\n\n return this;\n }\n\n @Method()\n public async removeActiveItemsByValue(value: string) {\n this.choice.removeActiveItemsByValue(value);\n return this;\n }\n\n @Method()\n public async removeActiveItems(excludedId?: number) {\n this.choice.removeActiveItems(excludedId);\n\n return this;\n }\n\n @Method()\n public async removeHighlightedItems(runEvent?: boolean) {\n this.choice.removeHighlightedItems(runEvent);\n\n return this;\n }\n\n @Method()\n public async showDropdown(focusInput?: boolean) {\n this.choice.showDropdown(focusInput);\n return this;\n }\n\n @Method()\n public async hideDropdown(blurInput?: boolean) {\n this.choice.hideDropdown(blurInput);\n\n return this;\n }\n\n @Method()\n public async getValue(valueOnly?: boolean): Promise<string | Array<string>> {\n return this.choice.getValue(valueOnly);\n }\n\n @Method()\n public async setValue(args: Array<any>) {\n this.choice.setValue(args);\n\n return this;\n }\n\n @Method()\n public async setChoiceByValue(value: string | Array<string>) {\n this.choice.setChoiceByValue(value);\n\n return this;\n }\n\n @Method()\n public async setChoices(choices: any[] | string, value: string, label: string, replaceChoices?: boolean) {\n let listOfChoices;\n if (typeof choices === 'string') {\n try {\n if (!isJSONParseable(choices)) {\n //meaning the input string comes from storybook as a non valid json string to be displayed in a beautified version on storybook\n choices = choices\n .replace(/'/g, '\"')\n .replace(/\"false\"/g, 'false')\n .replace(/\"true\"/g, 'true');\n }\n listOfChoices = [...JSON.parse(choices)];\n } catch (err) {\n console.error('Failed to parse choices:', err);\n }\n } else if (Array.isArray(choices) || typeof choices === 'object') {\n listOfChoices = [...choices];\n } else {\n console.error('Unexpected value for choices:', this.options);\n }\n\n this.choice.setChoices(listOfChoices, value, label, replaceChoices);\n return this;\n }\n\n @Method()\n public async clearChoices() {\n this.choice.clearChoices();\n\n return this;\n }\n\n @Method()\n public async clearStore() {\n this.choice.clearStore();\n\n return this;\n }\n\n @Method()\n public async clearInput() {\n this.choice.clearInput();\n\n return this;\n }\n\n @Method()\n public async ajax(fn: AjaxFn) {\n this.choice.ajax(fn);\n\n return this;\n }\n\n @Method()\n async handleDeleteIcon() {\n const width = this.root.offsetWidth;\n const deleteIconWrapper = this.root.querySelector('.ifx-choices__icon-wrapper-delete');\n if(deleteIconWrapper) { \n if (width <= 180) {\n deleteIconWrapper.classList.add('hide')\n } else if(this.showClearButton) { \n deleteIconWrapper.classList.remove('hide')\n }\n }\n }\n\n\n handleCloseButton() { \n if(typeof this.options === 'string') { \n const optionsToArray = JSON.parse(this.options);\n const optionIsSelected = optionsToArray.find(option => option.selected === true)\n if(optionIsSelected) { \n this.optionIsSelected = true;\n } else { \n this.optionIsSelected = false;\n }\n } else if(this.options && Array.isArray(this.options)) { \n const optionIsSelected = this.options.find(option => option.selected === true)\n if(optionIsSelected) { \n this.optionIsSelected = true;\n } else { \n this.optionIsSelected = false;\n }\n }\n }\n\n protected componentWillLoad() { \n this.handleCloseButton()\n }\n\n protected componentWillUpdate() { \n this.handleCloseButton()\n this.previousOptions = [...this.options];\n const optionsAreEqual = this.isEqual(this.options, this.previousOptions);\n if (this.options && !optionsAreEqual) {\n this.clearSelectField();\n }\n }\n\n isEqual(a: any, b: any[]) {\n return JSON.stringify(a) === JSON.stringify(b);\n }\n\n\n addResizeObserver() { \n this.resizeObserver = new ResizeObserver(() => {\n this.handleDeleteIcon();\n });\n \n const componentWrapper = this.root.querySelector('.ifx-choices__wrapper');\n this.resizeObserver.observe(componentWrapper);\n }\n\n protected componentDidLoad() {\n this.init();\n this.addEventListenersToHandleCustomFocusAndActiveState();\n this.handleDeleteIcon();\n this.addResizeObserver()\n }\n\n protected componentDidUpdate() {\n this.init();\n this.handleDeleteIcon()\n }\n\n protected disconnectedCallback() {\n this.destroy();\n\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n this.resizeObserver = null;\n }\n }\n\n private handleWrapperClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const isSearchInput = target.classList.contains('choices__input') || target.closest('.choices__input');\n const isDropdownItem = target.closest('.choices__list--dropdown .choices__item');\n \n // Only toggle dropdown if clicking on wrapper itself\n if (!isSearchInput && !isDropdownItem) {\n this.toggleDropdown();\n }\n }\n\n protected render(): any {\n const attributes = {\n 'data-selector': 'root',\n 'name': this.name || null,\n // 'remove-item-button': false,\n };\n const choicesWrapperClass = `ifx-choices__wrapper ${this.getSizeClass()}`;\n\n // destroy choices element to restore previous dom structure\n // so vdom can replace the element correctly\n this.destroy();\n\n return (\n <div class={`ifx-select-container`}>\n {this.label ? (\n <div class=\"ifx-label-wrapper\">\n <span>{this.label}</span>\n </div>\n ) : null}\n <div\n class={`${choicesWrapperClass} \n ${this.disabled ? 'disabled' : ''} \n ${this.error ? 'error' : ''}`}\n onClick={this.disabled ? undefined : (e) => this.handleWrapperClick(e)}\n onKeyDown={event => this.handleKeyDown(event)}\n >\n <select class='single__select-input-field' disabled = {this.disabled} {...attributes} data-trigger onChange={() => this.handleChange()}>\n {this.createSelectOptions(this.options)}\n </select>\n\n <div class='single__select-icon-container'>\n { this.optionIsSelected && (\n <div class={`ifx-choices__icon-wrapper-delete ${!this.showClearButton ? 'hide' : ''}`}>\n <ifx-icon icon=\"cremove16\" onClick={() => this.handleDeleteSelection()}></ifx-icon>\n </div>\n )}\n <div class=\"ifx-choices__icon-wrapper-up\">\n <ifx-icon key=\"icon-up\" icon=\"chevronup-16\"></ifx-icon>\n </div>\n <div class=\"ifx-choices__icon-wrapper-down\">\n <ifx-icon key=\"icon-down\" icon=\"chevron-down-16\"></ifx-icon>\n </div>\n </div>\n </div>\n {this.error ? (\n <div class=\"ifx-error-message-wrapper\">\n <span>{this.errorMessage}</span>\n </div>\n ) : null}\n </div>\n );\n }\n\n toggleDropdown() {\n const div = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n if (div.classList.contains('active') || this.choice.dropdown.isActive) {\n this.hideDropdown();\n div.classList.remove('active');\n } else {\n this.choice.showDropdown();\n div.classList.add('active');\n }\n const choicesElement = this.root.querySelector('.choices');\n choicesElement.classList.add('is-focused'); // Add the 'is-focused' class, cause a click on the wrapper (and not the embedded select element) doesnt add this automatically to the choices instance\n }\n\n closeDropdown() {\n const ifxChoicesWrapper = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n ifxChoicesWrapper.classList.remove('active');\n }\n\n @Listen('mousedown', { target: 'document' })\n handleOutsideClick(event: MouseEvent) {\n const path = event.composedPath();\n const ifxChoicesContainer = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n\n if (!path.includes(this.root)) {\n ifxChoicesContainer.classList.remove('active');\n }\n }\n\n handleKeyDown(event: KeyboardEvent) {\n if (this.disabled) return;\n\n const isSearchInput = (event.target as HTMLElement).classList.contains('choices__input');\n\n // If the event originated from the search input and the key is 'Space', do nothing.\n if (isSearchInput && event.code === 'Space') {\n return;\n }\n\n if (event.code === 'Enter' || (event.code === 'Space' && !isSearchInput)) {\n this.toggleDropdown();\n }\n\n // Only prevent default space behavior when it's not from the search input.\n if (event.code === 'Space' && !isSearchInput) {\n event.preventDefault(); // Prevent default page scrolling.\n }\n }\n\n getSizeClass() {\n return `${this.size}` === 's' ? 'small-select' : 'medium-select';\n }\n\n private init() {\n const props = {\n allowHTML: true,\n items: this.items,\n choices: this.choices,\n renderChoiceLimit: this.renderChoiceLimit,\n maxItemCount: this.maxItemCount,\n addItems: this.addItems,\n removeItems: this.removeItems,\n removeItemButton: this.removeItemButton,\n editItems: this.editItems,\n duplicateItemsAllowed: this.duplicateItemsAllowed,\n delimiter: this.delimiter,\n paste: this.paste,\n searchEnabled: this.showSearch,\n searchChoices: this.searchChoices,\n searchFields: this.searchFields,\n searchFloor: this.searchFloor,\n searchResultLimit: this.searchResultLimit,\n position: this.position,\n resetScrollPosition: this.resetScrollPosition,\n shouldSort: false, // choices/groups will appear in the order they were given.\n shouldSortItems: this.shouldSortItems,\n sorter: this.sorter,\n placeholder: this.placeholder,\n searchPlaceholderValue: this.searchPlaceholderValue,\n prependValue: this.prependValue,\n appendValue: this.appendValue,\n renderSelectedChoices: this.renderSelectedChoices,\n loadingText: this.loadingText,\n noResultsText: this.noResultsText,\n noChoicesText: this.noChoicesText,\n itemSelectText: this.itemSelectText,\n addItemText: this.addItemText,\n maxItemText: this.maxItemText,\n uniqueItemText: this.uniqueItemText,\n classNames: this.classNames,\n fuseOptions: this.fuseOptions,\n callbackOnInit: this.callbackOnInit,\n callbackOnCreateTemplates: this.callbackOnCreateTemplates,\n valueComparer: this.valueComparer,\n addItemFilter: this.addItemFilter,\n customAddItemText: this.customAddItemText,\n };\n\n const settings = filterObject(props, isDefined);\n\n //type check\n const element = this.root.querySelector('[data-selector=\"root\"]');\n if (element instanceof HTMLInputElement || element instanceof HTMLSelectElement) {\n // this.choice = new ChoicesJs(element, settings); //standard, without using custom templates\n const self = this; // save the context of this in a variable outside of the function to access it in the following\n\n this.choice = new ChoicesJs(\n element,\n Object.assign({}, settings, {\n callbackOnCreateTemplates: function (template) {\n return {\n //modifying the selected item template\n item: ({ classNames }, data) => {\n let removeButtonHTML = '';\n\n if (data.placeholder && !self.selectedOption?.value) {\n // For placeholders, use data-id=\"placeholder\"\n return template(`\n <div class=\"choices__placeholder\" data-item data-id=\"${data.id}\" data-value=\"${data.value}\" ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n ${data.label === undefined ? this.placeholderValue : data.label}\n ${removeButtonHTML}\n </div>\n `);\n } else {\n // For non-placeholder items, use the actual data ID\n return template(`\n <div class=\"${classNames.item} ${data.highlighted ? classNames.highlightedState : classNames.itemSelectable}\" \n data-item \n data-id=\"${self.selectedOption?.id !== undefined ? self.selectedOption?.id : self.choice.getValue().id}\" \n data-value=\"${self.selectedOption?.value !== undefined ? self.selectedOption?.value : self.choice.getValue().value}\" \n ${data.disabled ? 'aria-disabled=\"true\"' : ''}>\n <span>${self.selectedOption?.label !== undefined ? self.selectedOption?.label : self.choice.getValue().label}</span>\n <!-- Add your remove button here if needed -->\n </div>\n `);\n }\n },\n input: ({ classNames }) => {\n return template(`\n <input type=\"search\"\n class=\"${classNames.input} ${classNames.inputCloned} ${self.getSizeClass()}\"\n autocomplete=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n role=\"textbox\"\n aria-autocomplete=\"list\"\n aria-label=\"${this.showSearch ? this.searchPlaceholderValue : ''}\" > \n `);\n },\n\n //modifying the template of each item in the options list\n choice: ({ classNames }, data) => {\n return template(`\n <div class=\"${classNames.item} ${classNames.itemChoice} ${self.getSizeClass()} \n ${data.selected || self.selectedOption?.value === data.value || self.getPreSelected(self)?.value === data.value ? 'selected' : ''} \n ${data.placeholder ? classNames.placeholder : ''} \n ${data.disabled ? classNames.itemDisabled : classNames.itemSelectable} \n role=\"${data.groupId && data.groupId > 0 ? 'treeitem' : 'option'}\"\n data-choice ${data.disabled ? 'data-choice-disabled aria-disabled=\"true\"' : 'data-choice-selectable'} data-id=\"${data.id}\"\n data-value=\"${data.value}\"\n data-select-text=\"${this.config.itemSelectText}\">\n <span>${data.label}</span>\n ${data.selected || self.selectedOption?.value === data.value || self.getPreSelected(self)?.value === data.value ? '<ifx-icon icon=\"check16\"></ifx-icon>' : ''}\n </div>\n `);\n },\n };\n },\n }),\n );\n\n //set select options\n this.setChoices(this.options, 'value', 'label', true);\n //set custom event listener to listen for search input\n self.addSearchEventListener(self, this.choice);\n } else {\n // handle the case when the element is neither an HTMLInputElement nor an HTMLSelectElement\n }\n }\n\n private addEventListenersToHandleCustomFocusAndActiveState() {\n const div = this.root.querySelector('.ifx-choices__wrapper') as HTMLDivElement;\n\n if (!div) {\n console.error('.ifx-choices__wrapper not found');\n return;\n }\n\n div.tabIndex = 0;\n\n div.addEventListener('focus', function () {\n if (!this.classList.contains('disabled')) {\n this.classList.add('focus');\n }\n });\n\n div.addEventListener('blur', function () {\n this.classList.remove('focus');\n });\n }\n\n private addSearchEventListener(self, choiceElement: ChoicesJs) {\n choiceElement.passedElement.element.addEventListener(\n 'search',\n function (event: CustomEvent) {\n self.ifxInput.emit(event.detail.value);\n },\n false,\n );\n return choiceElement;\n }\n\n private destroy() {\n if (this.element) {\n this.element = null;\n }\n\n if (this.choice) {\n this.choice.destroy();\n this.choice = null;\n }\n }\n\n //get selected values from input array\n private getPreSelected(self) {\n const optionsArray: any[] = Array.isArray(self.options) ? self.options : JSON.parse(self.options);\n return optionsArray.find(option => option.selected === true) || null;\n }\n\n //set previously marked as selected items in the input array to unselected and select new ones\n private setPreSelected(newValue) {\n const optionsArray: any[] = Array.isArray(this.options) ? this.options : JSON.parse(this.options);\n\n this.options = optionsArray.map(obj => {\n return {\n ...obj,\n selected: obj.value === newValue\n };\n });\n }\n\n //setting the value that gets displayed in the select at component start (either the value prop or a placeholder)\n private createSelectOptions(ifxOptions): Array<HTMLStencilElement> {\n if (this.value !== 'undefined' || this.selectedOption?.value !== '') {\n let options;\n if (isJSONParseable(ifxOptions)) {\n options = [...JSON.parse(ifxOptions)];\n } else if (Array.isArray(ifxOptions) || typeof ifxOptions === 'object') {\n options = [...ifxOptions];\n }\n const optionValueBasedOnAvailableOptions = options?.find(option => option.value === this.value || this.selectedOption?.value);\n\n if (optionValueBasedOnAvailableOptions) {\n return [<option value={optionValueBasedOnAvailableOptions.value}>{optionValueBasedOnAvailableOptions.label}</option>];\n }\n }\n\n // Assign a unique id for the placeholder\n return this.placeholder !== 'false' ? [<option value=\"\">{this.placeholderValue}</option>] : [<option value=\"\"></option>];\n }\n}"]}
@@ -31,6 +31,7 @@ export default {
31
31
  error: false,
32
32
  errorMessage: 'Some error',
33
33
  disabled: false,
34
+ showClearButton: true
34
35
  // type: 'single', //for later implementation
35
36
  },
36
37
  argTypes: {
@@ -107,6 +108,16 @@ export default {
107
108
  }
108
109
  }
109
110
  },
111
+ showClearButton: {
112
+ description: 'Shows the clear icon button.',
113
+ control: 'boolean',
114
+ table: {
115
+ category: 'ifx-select props',
116
+ defaultValue: {
117
+ summary: true
118
+ }
119
+ }
120
+ },
110
121
  searchPlaceholderValue: {
111
122
  description: 'Placeholder text for the search input field.',
112
123
  table: {
@@ -147,6 +158,7 @@ const DefaultTemplate = args => {
147
158
  const template = `<ifx-select
148
159
  size='${args.size}'
149
160
  placeholder='${args.placeholder}'
161
+ show-clear-button='${args.showClearButton}'
150
162
  show-search='${args.showSearch}'
151
163
  search-placeholder-value='${args.searchPlaceholderValue}'
152
164
  disabled='${args.disabled}'
@@ -1 +1 @@
1
- {"version":3,"file":"select.stories.js","sourceRoot":"","sources":["../../../../src/components/select/single-select/select.stories.ts"],"names":[],"mappings":"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","sourcesContent":["import { action } from '@storybook/addon-actions';\n\n//use string instead of json format here to avoid ugly formatting in the storybook code snippet\n// let options = \"[{'value': 'a','label': 'option a','selected': 'false'},{'value': 'b','label': 'option b','selected': 'false'},{'value': 'c','label': 'option c','selected': 'false'}]\"\nconst options = [\n {\n value: 'a',\n label: 'option a',\n selected: false,\n },\n {\n value: 'b',\n label: 'option b',\n selected: false,\n },\n {\n value: 'c',\n label: 'option c',\n selected: false,\n },\n];\n\nexport default {\n title: 'Components/Select/Single Select',\n // tags: ['autodocs'],\n args: {\n label: '',\n size: 'm',\n showSearch: true,\n searchPlaceholderValue: 'Search...',\n placeholder: true,\n placeholderValue: 'Placeholder',\n error: false,\n errorMessage: 'Some error',\n disabled: false,\n // type: 'single', //for later implementation\n },\n\n argTypes: {\n // type: { //for later implementation\n // // control: { type: 'radio' },\n // control: false,\n // },\n size: {\n description: 'Specifies the size. Options: small - s (36px) medium - m (40px).',\n control: 'radio',\n options: ['s', 'm'],\n table: {\n category: 'ifx-select props',\n defaultValue: {\n summary: 'm'\n }\n }\n },\n placeholder: {\n description: 'Determines whether a placeholder is displayed or not.',\n control: 'boolean',\n table: {\n category: 'ifx-select props',\n defaultValue: {\n summary: true\n }\n }\n },\n placeholderValue: {\n description: 'Sets the text displayed as the placeholder when placeholder is set to true.',\n table: {\n category: 'ifx-select props'\n }\n },\n error: {\n description: 'Displays an error state.',\n control: 'boolean',\n table: {\n category: 'ifx-select props',\n defaultValue: {\n summary: false\n }\n }\n },\n errorMessage: {\n description: 'Message displayed when error is set to true.',\n table: {\n category: 'ifx-select props'\n }\n },\n label: {\n description: 'Sets the label.',\n table: {\n category: 'ifx-select props'\n }\n },\n disabled: {\n description: 'Disables the dropdown.',\n control: 'boolean',\n table: {\n category: 'ifx-select props',\n defaultValue: {\n summary: false\n }\n }\n },\n showSearch: {\n description: 'Enables a search bar inside the dropdown to filter options.',\n control: 'boolean',\n table: {\n category: 'ifx-select props',\n defaultValue: {\n summary: true\n }\n }\n },\n searchPlaceholderValue: {\n description: 'Placeholder text for the search input field.',\n table: {\n category: 'ifx-select props'\n }\n },\n options: {\n description: 'Takes an array of objects in the following format.',\n table: {\n category: 'ifx-select props'\n }\n },\n ifxSelect: {\n action: 'ifxSelect',\n description: 'Custom event emitted when item is selected.',\n table: {\n category: 'custom events',\n type: {\n summary: 'Framework integration',\n detail:\n 'React: onIfxSelect={handleInput}\\nVue:@ifxSelect=\"handleInput\"\\nAngular:(ifxSelect)=\"handleInput()\"\\nVanillaJs:.addEventListener(\"ifxSelect\", (event) => {//handle input});',\n },\n },\n },\n ifxInput: {\n action: 'ifxInput',\n description: 'A custom event *ifxInput* is emitted immediately after the value of *Search* changes.',\n table: {\n category: 'custom events',\n type: {\n summary: 'Framework integration',\n detail:\n 'React: onIfxInput={handleInput}\\nVue:@ifxInput=\"handleInput\"\\nAngular:(ifxInput)=\"handleInput()\"\\nVanillaJs:.addEventListener(\"ifxInput\", (event) => {//handle input});',\n },\n },\n },\n },\n};\n\nconst DefaultTemplate = args => {\n const template = `<ifx-select \n size='${args.size}'\n placeholder='${args.placeholder}'\n show-search='${args.showSearch}'\n search-placeholder-value='${args.searchPlaceholderValue}'\n disabled='${args.disabled}'\n error='${args.error}'\n error-message='${args.errorMessage}'\n label='${args.label}'\n placeholder-value='${args.placeholderValue}'\n options='${JSON.stringify(args.options)}' >\n </ifx-select>`;\n setTimeout(() => {\n document.querySelector('ifx-select')?.addEventListener('ifxSelect', action('ifxSelect'));\n document.querySelector('ifx-select')?.addEventListener('ifxInput', action('ifxInput'));\n }, 0);\n\n return template;\n};\n\nexport const Single = DefaultTemplate.bind({});\nSingle.args = {\n // type: 'single',\n options: options,\n};\n\n// export const Text = DefaultTemplate.bind({});\n// Text.args = {\n// type: 'text',\n// name: 'text',\n// value: 'Placeholder',\n// allowHTML: true,\n// delimiter: ',',\n// editItems: true,\n// maxItemCount: 5,\n// };\n\n// export const Text = DefaultTemplate.bind({});\n// Text.args = {\n// type: 'multiple',\n// name: 'multiple',\n// choices: 'Choice 1, Choice 2, Choice 3',\n// };\n\n// export const SingleWithIcon = DefaultTemplate.bind({});\n// SingleWithIcon.args = {\n// type: 'single',\n// choices: \"Choice 1, Choice 2 <ifx-icon icon='check16'></ifx-icon>, Choice 3 <ifx-icon icon='check16'></ifx-icon>\",\n// };\n\n// export const MultiselectCombobox = DefaultTemplate.bind({});\n// MultiselectCombobox.args = {\n// type: 'multiple',\n// // removeItemButton: true,\n// };\n"]}
1
+ {"version":3,"file":"select.stories.js","sourceRoot":"","sources":["../../../../src/components/select/single-select/select.stories.ts"],"names":[],"mappings":"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","sourcesContent":["import { action } from '@storybook/addon-actions';\n\n//use string instead of json format here to avoid ugly formatting in the storybook code snippet\n// let options = \"[{'value': 'a','label': 'option a','selected': 'false'},{'value': 'b','label': 'option b','selected': 'false'},{'value': 'c','label': 'option c','selected': 'false'}]\"\nconst options = [\n {\n value: 'a',\n label: 'option a',\n selected: false,\n },\n {\n value: 'b',\n label: 'option b',\n selected: false,\n },\n {\n value: 'c',\n label: 'option c',\n selected: false,\n },\n];\n\nexport default {\n title: 'Components/Select/Single Select',\n // tags: ['autodocs'],\n args: {\n label: '',\n size: 'm',\n showSearch: true,\n searchPlaceholderValue: 'Search...',\n placeholder: true,\n placeholderValue: 'Placeholder',\n error: false,\n errorMessage: 'Some error',\n disabled: false,\n showClearButton: true\n // type: 'single', //for later implementation\n },\n\n argTypes: {\n // type: { //for later implementation\n // // control: { type: 'radio' },\n // control: false,\n // },\n size: {\n description: 'Specifies the size. Options: small - s (36px) medium - m (40px).',\n control: 'radio',\n options: ['s', 'm'],\n table: {\n category: 'ifx-select props',\n defaultValue: {\n summary: 'm'\n }\n }\n },\n placeholder: {\n description: 'Determines whether a placeholder is displayed or not.',\n control: 'boolean',\n table: {\n category: 'ifx-select props',\n defaultValue: {\n summary: true\n }\n }\n },\n placeholderValue: {\n description: 'Sets the text displayed as the placeholder when placeholder is set to true.',\n table: {\n category: 'ifx-select props'\n }\n },\n error: {\n description: 'Displays an error state.',\n control: 'boolean',\n table: {\n category: 'ifx-select props',\n defaultValue: {\n summary: false\n }\n }\n },\n errorMessage: {\n description: 'Message displayed when error is set to true.',\n table: {\n category: 'ifx-select props'\n }\n },\n label: {\n description: 'Sets the label.',\n table: {\n category: 'ifx-select props'\n }\n },\n disabled: {\n description: 'Disables the dropdown.',\n control: 'boolean',\n table: {\n category: 'ifx-select props',\n defaultValue: {\n summary: false\n }\n }\n },\n showSearch: {\n description: 'Enables a search bar inside the dropdown to filter options.',\n control: 'boolean',\n table: {\n category: 'ifx-select props',\n defaultValue: {\n summary: true\n }\n }\n },\n showClearButton: {\n description: 'Shows the clear icon button.',\n control: 'boolean',\n table: {\n category: 'ifx-select props',\n defaultValue: {\n summary: true\n }\n }\n },\n searchPlaceholderValue: {\n description: 'Placeholder text for the search input field.',\n table: {\n category: 'ifx-select props'\n }\n },\n options: {\n description: 'Takes an array of objects in the following format.',\n table: {\n category: 'ifx-select props'\n }\n },\n ifxSelect: {\n action: 'ifxSelect',\n description: 'Custom event emitted when item is selected.',\n table: {\n category: 'custom events',\n type: {\n summary: 'Framework integration',\n detail:\n 'React: onIfxSelect={handleInput}\\nVue:@ifxSelect=\"handleInput\"\\nAngular:(ifxSelect)=\"handleInput()\"\\nVanillaJs:.addEventListener(\"ifxSelect\", (event) => {//handle input});',\n },\n },\n },\n ifxInput: {\n action: 'ifxInput',\n description: 'A custom event *ifxInput* is emitted immediately after the value of *Search* changes.',\n table: {\n category: 'custom events',\n type: {\n summary: 'Framework integration',\n detail:\n 'React: onIfxInput={handleInput}\\nVue:@ifxInput=\"handleInput\"\\nAngular:(ifxInput)=\"handleInput()\"\\nVanillaJs:.addEventListener(\"ifxInput\", (event) => {//handle input});',\n },\n },\n },\n },\n};\n\nconst DefaultTemplate = args => {\n const template = `<ifx-select \n size='${args.size}'\n placeholder='${args.placeholder}'\n show-clear-button='${args.showClearButton}'\n show-search='${args.showSearch}'\n search-placeholder-value='${args.searchPlaceholderValue}'\n disabled='${args.disabled}'\n error='${args.error}'\n error-message='${args.errorMessage}'\n label='${args.label}'\n placeholder-value='${args.placeholderValue}'\n options='${JSON.stringify(args.options)}' >\n </ifx-select>`;\n setTimeout(() => {\n document.querySelector('ifx-select')?.addEventListener('ifxSelect', action('ifxSelect'));\n document.querySelector('ifx-select')?.addEventListener('ifxInput', action('ifxInput'));\n }, 0);\n\n return template;\n};\n\nexport const Single = DefaultTemplate.bind({});\nSingle.args = {\n // type: 'single',\n options: options,\n};\n\n// export const Text = DefaultTemplate.bind({});\n// Text.args = {\n// type: 'text',\n// name: 'text',\n// value: 'Placeholder',\n// allowHTML: true,\n// delimiter: ',',\n// editItems: true,\n// maxItemCount: 5,\n// };\n\n// export const Text = DefaultTemplate.bind({});\n// Text.args = {\n// type: 'multiple',\n// name: 'multiple',\n// choices: 'Choice 1, Choice 2, Choice 3',\n// };\n\n// export const SingleWithIcon = DefaultTemplate.bind({});\n// SingleWithIcon.args = {\n// type: 'single',\n// choices: \"Choice 1, Choice 2 <ifx-icon icon='check16'></ifx-icon>, Choice 3 <ifx-icon icon='check16'></ifx-icon>\",\n// };\n\n// export const MultiselectCombobox = DefaultTemplate.bind({});\n// MultiselectCombobox.args = {\n// type: 'multiple',\n// // removeItemButton: true,\n// };\n"]}
@@ -1,4 +1,4 @@
1
- import { M as Multiselect, d as defineCustomElement$1 } from './p-babc4920.js';
1
+ import { M as Multiselect, d as defineCustomElement$1 } from './p-b4e91450.js';
2
2
 
3
3
  const IfxMultiselect = Multiselect;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { P as Pagination, d as defineCustomElement$1 } from './p-3a8e83f3.js';
1
+ import { P as Pagination, d as defineCustomElement$1 } from './p-0ccba8b1.js';
2
2
 
3
3
  const IfxPagination = Pagination;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { C as Choices, d as defineCustomElement$1 } from './p-3e92c1e4.js';
1
+ import { C as Choices, d as defineCustomElement$1 } from './p-1d737cf7.js';
2
2
 
3
3
  const IfxSelect = Choices;
4
4
  const defineCustomElement = defineCustomElement$1;
@@ -2,8 +2,8 @@ import { p as proxyCustomElement, H, c as createEvent, h } from './p-2cc378b8.js
2
2
  import { d as defineCustomElement$7 } from './p-4d64e776.js';
3
3
  import { d as defineCustomElement$6 } from './p-dd76064d.js';
4
4
  import { d as defineCustomElement$5 } from './p-e7551b24.js';
5
- import { d as defineCustomElement$4 } from './p-babc4920.js';
6
- import { d as defineCustomElement$3 } from './p-3e92c1e4.js';
5
+ import { d as defineCustomElement$4 } from './p-b4e91450.js';
6
+ import { d as defineCustomElement$3 } from './p-1d737cf7.js';
7
7
  import { d as defineCustomElement$2 } from './p-59110a4e.js';
8
8
 
9
9
  const setFilterCss = "";
@@ -8,8 +8,8 @@ import { d as defineCustomElement$7 } from './p-23757cfd.js';
8
8
  import { d as defineCustomElement$6 } from './p-e7551b24.js';
9
9
  import { d as defineCustomElement$5 } from './p-803887ee.js';
10
10
  import { d as defineCustomElement$4 } from './p-327af560.js';
11
- import { d as defineCustomElement$3 } from './p-3a8e83f3.js';
12
- import { d as defineCustomElement$2 } from './p-3e92c1e4.js';
11
+ import { d as defineCustomElement$3 } from './p-0ccba8b1.js';
12
+ import { d as defineCustomElement$2 } from './p-1d737cf7.js';
13
13
 
14
14
  class ButtonCellRenderer {
15
15
  init(params) {
@@ -1,7 +1,7 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h } from './p-2cc378b8.js';
2
2
  import { d as defineCustomElement$3 } from './p-e7551b24.js';
3
3
  import { d as defineCustomElement$2 } from './p-803887ee.js';
4
- import { d as defineCustomElement$1 } from './p-3e92c1e4.js';
4
+ import { d as defineCustomElement$1 } from './p-1d737cf7.js';
5
5
 
6
6
  const paginationCss = "@charset \"UTF-8\";:root{font-family:\"Source Sans 3\", sans-serif}:host{display:inline-flex}.container{display:inline-flex;justify-content:center;align-items:center;gap:32px;font-family:\"Source Sans 3\"}.container .items__per-page-wrapper{display:flex;align-items:center;gap:16px}.container .items__per-page-wrapper .items__per-page-label{color:#1D1D1D;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.container .items__per-page-wrapper .items__per-page-field{display:flex;flex-direction:column;align-items:flex-start}.container .items__per-page-wrapper .items__per-page-field ifx-select{width:92px}.container .items__total-wrapper{display:flex;justify-content:center;align-items:center;gap:12px}.container .items__total-wrapper .items__total-button{display:flex;width:40px;height:40px;justify-content:center;align-items:center;border-radius:100px;border:1px solid #BFBBBB;background:#FFF}.container .items__total-wrapper .page__numbers-wrapper{display:flex;justify-content:center;align-items:center;gap:12px}.container .items__total-wrapper .page__numbers-wrapper .page__number-item{display:flex;padding:6px;flex-direction:column;justify-content:center;align-items:center;gap:10px;border-radius:100px}.container .items__total-wrapper .page__numbers-wrapper .page__number-item.active{background-color:#0A8276}.container .items__total-wrapper .page__numbers-wrapper .page__number-item.active span{color:#fff}.container .items__total-wrapper .page__numbers-wrapper .page__number-item:hover{cursor:pointer}.container .items__total-wrapper .page__numbers-wrapper .page__number-item:hover:not(.active){background-color:#ddd}.container .items__total-wrapper .page__numbers-wrapper .page__number-item:active:not(.active){background-color:#575352}.container .items__total-wrapper .page__numbers-wrapper .page__number-item span{display:flex;width:16px;height:16px;flex-direction:column;justify-content:center;color:#1D1D1D;text-align:center;font-size:13px;font-style:normal;font-weight:400;line-height:20px}.pagination{display:flex}.pagination ifx-icon-button:first-of-type{margin-right:12px}.pagination ifx-icon-button:last-of-type{margin-left:12px}a{padding:8px;border-radius:100px}ol{list-style-type:none;padding:0;margin:0;display:inline-flex;align-items:center;gap:12px}li{display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:100px}li:hover:not(.active) a{background-color:#EEEDED}li:active:not(.active) a{background-color:#575352;color:#fff}li.active{background-color:#0A8276}li.active a{color:#fff}li:hover{cursor:pointer}li a{text-decoration:none;display:flex;width:16px;height:16px;flex-direction:column;justify-content:center;color:#1D1D1D;text-align:center;font-size:13px;font-style:normal;font-weight:400;line-height:20px;align-items:center}.prev.disabled,.next.disabled{cursor:default}.prev.disabled:hover,.next.disabled:hover{cursor:default;text-decoration:none}.prev{margin-right:2.5px}.next{margin-left:2.5px}@media (min-width: 400px){li:first-child,li.active-sibling,li.active,li.active+li,li:last-child{display:inline-flex !important;flex-direction:row}li:first-child:nth-last-child(n+8)~li{display:none}li:first-child:nth-last-child(n+8)~li.active-sibling:before{content:\"…\";font-size:13px;display:inline-block;margin-right:6px}li:first-child:nth-last-child(n+8)~li.active+li:after{content:\"…\";font-size:13px;display:inline-block;margin-left:6px}li:first-child:nth-last-child(n+8)~li:nth-last-child(-n+5){display:inline-flex;flex-direction:row}li:first-child:nth-last-child(n+8)~li:nth-last-child(5):before{content:\"…\";font-size:13px;display:inline-block;margin-right:6px}li:first-child:nth-last-child(n+8)~li:nth-child(-n+2):before,li:first-child:nth-last-child(n+8)~li:nth-child(-n+2):after,li:first-child:nth-last-child(n+8)~li:nth-last-child(-n+2):before,li:first-child:nth-last-child(n+8)~li:nth-last-child(-n+2):after,li:first-child:nth-last-child(n+8)~li.active-sibling:nth-last-child(-n+4):before,li:first-child:nth-last-child(n+8)~li.active-sibling:nth-last-child(-n+4):after{display:none !important}li:first-child:nth-last-child(n+8).active~li:nth-last-child(-n+5),li:first-child:nth-last-child(n+8)~li.active~li:nth-last-child(-n+5){display:none}li:first-child:nth-last-child(n+8).active~li:nth-last-child(-n+5):before,li:first-child:nth-last-child(n+8)~li.active~li:nth-last-child(-n+5):before{display:none}li:first-child:nth-last-child(n+8).active~li:nth-child(-n+5),li:first-child:nth-last-child(n+8)~li.active~li:nth-child(-n+5){display:inline-flex !important;flex-direction:row}li:first-child:nth-last-child(n+8).active~li:nth-child(-n+4):after,li:first-child:nth-last-child(n+8)~li.active~li:nth-child(-n+4):after{display:none}li:first-child:nth-last-child(n+8).active~li:nth-child(5):after,li:first-child:nth-last-child(n+8)~li.active~li:nth-child(5):after{content:\"…\";font-size:13px;display:inline-block;margin-left:6px}li:first-child:nth-last-child(n+8).active:before,li:first-child:nth-last-child(n+8).active:after,li:first-child:nth-last-child(n+8)~li.active:before,li:first-child:nth-last-child(n+8)~li.active:after{display:none}}";
7
7
  const IfxPaginationStyle0 = paginationCss;
@@ -205,4 +205,4 @@ function defineCustomElement() {
205
205
 
206
206
  export { Pagination as P, defineCustomElement as d };
207
207
 
208
- //# sourceMappingURL=p-3a8e83f3.js.map
208
+ //# sourceMappingURL=p-0ccba8b1.js.map