@onewelcome/react-lib-components 8.5.0 → 8.7.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.
- package/dist/cjs/Button/BaseButton.cjs.js +1 -1
- package/dist/cjs/Button/BaseButton.cjs.js.map +1 -1
- package/dist/cjs/ContextMenu/ContextMenu.cjs.js +1 -1
- package/dist/cjs/ContextMenu/ContextMenu.cjs.js.map +1 -1
- package/dist/cjs/DataGrid/DataGridFilters/DataGridDateFilter.cjs.js +2 -0
- package/dist/cjs/DataGrid/DataGridFilters/DataGridDateFilter.cjs.js.map +1 -0
- package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterTag.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridFilters/DataGridFilterTag.cjs.js.map +1 -1
- package/dist/cjs/DataGrid/DataGridFilters/DataGridFilters.interfaces.cjs.js.map +1 -1
- package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.cjs.js +1 -1
- package/dist/cjs/DataGrid/DataGridFilters/DataGridToolbar.cjs.js.map +1 -1
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.cjs.js +2 -0
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.cjs.js.map +1 -0
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.cjs.js +2 -0
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.cjs.js.map +1 -0
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.cjs.js +2 -0
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.cjs.js.map +1 -0
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.cjs.js +2 -0
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.cjs.js.map +1 -0
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.cjs.js +2 -0
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.cjs.js.map +1 -0
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/SideMenu.cjs.js +2 -0
- package/dist/cjs/DataGrid/DataGridFilters/DateTimePicker/SideMenu.cjs.js.map +1 -0
- package/dist/cjs/DatePicker/DatePicker.cjs.js +1 -1
- package/dist/cjs/DatePicker/DatePicker.cjs.js.map +1 -1
- package/dist/cjs/DatePicker/DatePicker.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Checkbox/Checkbox.cjs.js +1 -1
- package/dist/cjs/Form/Checkbox/Checkbox.cjs.js.map +1 -1
- package/dist/cjs/Form/Checkbox/Checkbox.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Fieldset/Fieldset.cjs.js +1 -1
- package/dist/cjs/Form/Fieldset/Fieldset.cjs.js.map +1 -1
- package/dist/cjs/Form/FileUpload/FileItem/FileItem.cjs.js +1 -1
- package/dist/cjs/Form/FileUpload/FileItem/FileItem.cjs.js.map +1 -1
- package/dist/cjs/Form/FileUpload/FileItem/FileItem.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/FileUpload/FileUpload.cjs.js +1 -1
- package/dist/cjs/Form/FileUpload/FileUpload.cjs.js.map +1 -1
- package/dist/cjs/Form/FileUpload/FileUpload.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/FormGroup/FormGroup.cjs.js +1 -1
- package/dist/cjs/Form/FormGroup/FormGroup.cjs.js.map +1 -1
- package/dist/cjs/Form/FormHelperText/FormHelperText.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/FormSelectorWrapper/FormSelectorWrapper.cjs.js +1 -1
- package/dist/cjs/Form/FormSelectorWrapper/FormSelectorWrapper.cjs.js.map +1 -1
- package/dist/cjs/Form/Input/Input.cjs.js +1 -1
- package/dist/cjs/Form/Input/Input.cjs.js.map +1 -1
- package/dist/cjs/Form/Input/Input.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Radio/Radio.cjs.js +1 -1
- package/dist/cjs/Form/Radio/Radio.cjs.js.map +1 -1
- package/dist/cjs/Form/Radio/Radio.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Select/MultiSelect/MultiSelect.cjs.js +1 -1
- package/dist/cjs/Form/Select/MultiSelect/MultiSelect.cjs.js.map +1 -1
- package/dist/cjs/Form/Select/MultiSelect/MultiSelect.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Select/MultiSelect/SelectedOptions.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Select/MultiSelect/useArrowNavigation.cjs.js +1 -1
- package/dist/cjs/Form/Select/MultiSelect/useArrowNavigation.cjs.js.map +1 -1
- package/dist/cjs/Form/Select/MultiSelect/useMultiSelect.cjs.js +2 -0
- package/dist/cjs/Form/Select/MultiSelect/useMultiSelect.cjs.js.map +1 -0
- package/dist/cjs/Form/Select/Select.interfaces.cjs.js +2 -0
- package/dist/cjs/Form/Select/Select.interfaces.cjs.js.map +1 -0
- package/dist/cjs/Form/Select/SingleSelect/Select.cjs.js +1 -1
- package/dist/cjs/Form/Select/SingleSelect/Select.cjs.js.map +1 -1
- package/dist/cjs/Form/Select/SingleSelect/Select.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Select/SingleSelect/useArrowNavigation.cjs.js +1 -1
- package/dist/cjs/Form/Select/SingleSelect/useArrowNavigation.cjs.js.map +1 -1
- package/dist/cjs/Form/Select/useSelectPositionList.cjs.js +1 -1
- package/dist/cjs/Form/Select/useSelectPositionList.cjs.js.map +1 -1
- package/dist/cjs/Form/Textarea/Textarea.cjs.js +1 -1
- package/dist/cjs/Form/Textarea/Textarea.cjs.js.map +1 -1
- package/dist/cjs/Form/Textarea/Textarea.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.cjs.js.map +1 -1
- package/dist/cjs/Form/Wrapper/InputWrapper/InputWrapper.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/InputWrapper/InputWrapper.cjs.js.map +1 -1
- package/dist/cjs/Form/Wrapper/InputWrapper/InputWrapper.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.cjs.js.map +1 -1
- package/dist/cjs/Form/Wrapper/RadioWrapper/RadioWrapper.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/RadioWrapper/RadioWrapper.cjs.js.map +1 -1
- package/dist/cjs/Form/Wrapper/SelectWrapper/SelectWrapper.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/SelectWrapper/SelectWrapper.cjs.js.map +1 -1
- package/dist/cjs/Form/Wrapper/TextareaWrapper/TextareaWrapper.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/TextareaWrapper/TextareaWrapper.cjs.js.map +1 -1
- package/dist/cjs/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/Wrapper/Wrapper.cjs.js +1 -1
- package/dist/cjs/Form/Wrapper/Wrapper/Wrapper.cjs.js.map +1 -1
- package/dist/cjs/Form/Wrapper/Wrapper/Wrapper.module.scss.cjs.js +1 -1
- package/dist/cjs/_BaseStyling_/BaseStyling.cjs.js +1 -1
- package/dist/cjs/_BaseStyling_/BaseStyling.cjs.js.map +1 -1
- package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridDateFilter.d.ts +9 -0
- package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilterTag.d.ts +2 -1
- package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridFilters.interfaces.d.ts +10 -1
- package/dist/cjs/src/components/DataGrid/DataGridFilters/DataGridToolbar.d.ts +5 -3
- package/dist/cjs/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.d.ts +31 -0
- package/dist/cjs/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.d.ts +15 -0
- package/dist/cjs/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.d.ts +18 -0
- package/dist/cjs/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.d.ts +10 -0
- package/dist/cjs/src/components/DataGrid/DataGridFilters/DateTimePicker/SideMenu.d.ts +10 -0
- package/dist/cjs/src/components/DataGrid/testUtils.d.ts +7 -1
- package/dist/cjs/src/components/DatePicker/DatePicker.d.ts +4 -1
- package/dist/cjs/src/components/Form/Checkbox/Checkbox.d.ts +1 -1
- package/dist/cjs/src/components/Form/Fieldset/Fieldset.d.ts +1 -1
- package/dist/cjs/src/components/Form/FileUpload/FileItem/FileItem.d.ts +1 -1
- package/dist/cjs/src/components/Form/FileUpload/FileUpload.d.ts +6 -1
- package/dist/cjs/src/components/Form/FormGroup/FormGroup.d.ts +1 -0
- package/dist/cjs/src/components/Form/Input/Input.d.ts +2 -1
- package/dist/cjs/src/components/Form/Radio/Radio.d.ts +1 -1
- package/dist/cjs/src/components/Form/Select/MultiSelect/MultiSelect.d.ts +1 -1
- package/dist/cjs/src/components/Form/Select/MultiSelect/useArrowNavigation.d.ts +2 -1
- package/dist/cjs/src/components/Form/Select/MultiSelect/useMultiSelect.d.ts +16 -0
- package/dist/cjs/src/components/Form/Select/Select.interfaces.d.ts +6 -4
- package/dist/cjs/src/components/Form/Select/SingleSelect/Select.d.ts +1 -1
- package/dist/cjs/src/components/Form/Select/SingleSelect/useArrowNavigation.d.ts +1 -1
- package/dist/cjs/src/components/Form/Select/useSelectPositionList.d.ts +2 -2
- package/dist/cjs/src/components/Form/Textarea/Textarea.d.ts +2 -1
- package/dist/cjs/src/components/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.d.ts +1 -1
- package/dist/cjs/src/components/Form/Wrapper/InputWrapper/InputWrapper.d.ts +1 -1
- package/dist/cjs/src/components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.d.ts +1 -1
- package/dist/cjs/src/components/Form/Wrapper/RadioWrapper/RadioWrapper.d.ts +1 -1
- package/dist/cjs/src/components/Form/Wrapper/SelectWrapper/SelectWrapper.d.ts +1 -1
- package/dist/cjs/src/components/Form/Wrapper/TextareaWrapper/TextareaWrapper.d.ts +2 -1
- package/dist/cjs/src/components/Form/Wrapper/Wrapper/Wrapper.d.ts +1 -0
- package/dist/cjs/src/components/_BaseStyling_/BaseStyling.d.ts +2 -0
- package/dist/cjs/src/components/withReadOnly.d.ts +8 -0
- package/dist/cjs/src/hooks/useClickOutside.cjs.js +2 -0
- package/dist/cjs/src/hooks/useClickOutside.cjs.js.map +1 -0
- package/dist/cjs/src/hooks/useClickOutside.d.ts +2 -0
- package/dist/cjs/src/hooks/useClickOutside.test.d.ts +1 -0
- package/dist/cjs/src/index.cjs.js +1 -1
- package/dist/cjs/src/index.d.ts +2 -0
- package/dist/cjs/src/util/unitTestUtils.d.ts +12 -0
- package/dist/cjs/withReadOnly.cjs.js +2 -0
- package/dist/cjs/withReadOnly.cjs.js.map +1 -0
- package/dist/esm/Button/BaseButton.esm.js +5 -2
- package/dist/esm/Button/BaseButton.esm.js.map +1 -1
- package/dist/esm/ContextMenu/ContextMenu.esm.js +6 -8
- package/dist/esm/ContextMenu/ContextMenu.esm.js.map +1 -1
- package/dist/esm/ContextMenu/ContextMenuItem.esm.js +3 -3
- package/dist/esm/ContextMenu/ContextMenuItem.esm.js.map +1 -1
- package/dist/esm/ContextMenu/ContextMenuItem.module.scss.esm.js +2 -2
- package/dist/esm/DataGrid/DataGridFilters/DataGridDateFilter.esm.js +35 -0
- package/dist/esm/DataGrid/DataGridFilters/DataGridDateFilter.esm.js.map +1 -0
- package/dist/esm/DataGrid/DataGridFilters/DataGridFilterTag.esm.js +16 -7
- package/dist/esm/DataGrid/DataGridFilters/DataGridFilterTag.esm.js.map +1 -1
- package/dist/esm/DataGrid/DataGridFilters/DataGridFilters.interfaces.esm.js.map +1 -1
- package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.esm.js +15 -12
- package/dist/esm/DataGrid/DataGridFilters/DataGridToolbar.esm.js.map +1 -1
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.esm.js +138 -0
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.esm.js.map +1 -0
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.esm.js +8 -0
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss.esm.js.map +1 -0
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.esm.js +54 -0
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.esm.js.map +1 -0
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.esm.js +51 -0
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.esm.js.map +1 -0
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.esm.js +29 -0
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.esm.js.map +1 -0
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/SideMenu.esm.js +26 -0
- package/dist/esm/DataGrid/DataGridFilters/DateTimePicker/SideMenu.esm.js.map +1 -0
- package/dist/esm/DatePicker/DatePicker.esm.js +3 -1
- package/dist/esm/DatePicker/DatePicker.esm.js.map +1 -1
- package/dist/esm/DatePicker/DatePicker.module.scss.esm.js +2 -2
- package/dist/esm/Form/Checkbox/Checkbox.esm.js +2 -1
- package/dist/esm/Form/Checkbox/Checkbox.esm.js.map +1 -1
- package/dist/esm/Form/Checkbox/Checkbox.module.scss.esm.js +1 -1
- package/dist/esm/Form/Fieldset/Fieldset.esm.js +2 -1
- package/dist/esm/Form/Fieldset/Fieldset.esm.js.map +1 -1
- package/dist/esm/Form/FileUpload/FileItem/FileItem.esm.js +10 -3
- package/dist/esm/Form/FileUpload/FileItem/FileItem.esm.js.map +1 -1
- package/dist/esm/Form/FileUpload/FileItem/FileItem.module.scss.esm.js +1 -1
- package/dist/esm/Form/FileUpload/FileUpload.esm.js +9 -6
- package/dist/esm/Form/FileUpload/FileUpload.esm.js.map +1 -1
- package/dist/esm/Form/FileUpload/FileUpload.module.scss.esm.js +2 -2
- package/dist/esm/Form/FormGroup/FormGroup.esm.js +2 -2
- package/dist/esm/Form/FormGroup/FormGroup.esm.js.map +1 -1
- package/dist/esm/Form/FormHelperText/FormHelperText.module.scss.esm.js +1 -1
- package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.esm.js +1 -1
- package/dist/esm/Form/FormSelectorWrapper/FormSelectorWrapper.esm.js.map +1 -1
- package/dist/esm/Form/Input/Input.esm.js +7 -5
- package/dist/esm/Form/Input/Input.esm.js.map +1 -1
- package/dist/esm/Form/Input/Input.module.scss.esm.js +2 -2
- package/dist/esm/Form/Radio/Radio.esm.js +2 -1
- package/dist/esm/Form/Radio/Radio.esm.js.map +1 -1
- package/dist/esm/Form/Radio/Radio.module.scss.esm.js +1 -1
- package/dist/esm/Form/Select/MultiSelect/MultiSelect.esm.js +33 -18
- package/dist/esm/Form/Select/MultiSelect/MultiSelect.esm.js.map +1 -1
- package/dist/esm/Form/Select/MultiSelect/MultiSelect.module.scss.esm.js +2 -2
- package/dist/esm/Form/Select/MultiSelect/SelectedOptions.module.scss.esm.js +1 -1
- package/dist/esm/Form/Select/MultiSelect/useArrowNavigation.esm.js +4 -1
- package/dist/esm/Form/Select/MultiSelect/useArrowNavigation.esm.js.map +1 -1
- package/dist/esm/Form/Select/MultiSelect/useMultiSelect.esm.js +63 -0
- package/dist/esm/Form/Select/MultiSelect/useMultiSelect.esm.js.map +1 -0
- package/dist/esm/Form/Select/Select.interfaces.esm.js +23 -0
- package/dist/esm/Form/Select/Select.interfaces.esm.js.map +1 -0
- package/dist/esm/Form/Select/SingleSelect/Select.esm.js +29 -20
- package/dist/esm/Form/Select/SingleSelect/Select.esm.js.map +1 -1
- package/dist/esm/Form/Select/SingleSelect/Select.module.scss.esm.js +2 -2
- package/dist/esm/Form/Select/SingleSelect/useArrowNavigation.esm.js +4 -1
- package/dist/esm/Form/Select/SingleSelect/useArrowNavigation.esm.js.map +1 -1
- package/dist/esm/Form/Select/useSelectPositionList.esm.js +11 -13
- package/dist/esm/Form/Select/useSelectPositionList.esm.js.map +1 -1
- package/dist/esm/Form/Textarea/Textarea.esm.js +12 -5
- package/dist/esm/Form/Textarea/Textarea.esm.js.map +1 -1
- package/dist/esm/Form/Textarea/Textarea.module.scss.esm.js +1 -1
- package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.esm.js +4 -1
- package/dist/esm/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.esm.js.map +1 -1
- package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.esm.js +6 -4
- package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.esm.js.map +1 -1
- package/dist/esm/Form/Wrapper/InputWrapper/InputWrapper.module.scss.esm.js +1 -1
- package/dist/esm/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.esm.js +3 -2
- package/dist/esm/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.esm.js.map +1 -1
- package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.esm.js +17 -10
- package/dist/esm/Form/Wrapper/RadioWrapper/RadioWrapper.esm.js.map +1 -1
- package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.esm.js +5 -2
- package/dist/esm/Form/Wrapper/SelectWrapper/SelectWrapper.esm.js.map +1 -1
- package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.esm.js +20 -10
- package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.esm.js.map +1 -1
- package/dist/esm/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss.esm.js +2 -2
- package/dist/esm/Form/Wrapper/Wrapper/Wrapper.esm.js +2 -2
- package/dist/esm/Form/Wrapper/Wrapper/Wrapper.esm.js.map +1 -1
- package/dist/esm/Form/Wrapper/Wrapper/Wrapper.module.scss.esm.js +1 -1
- package/dist/esm/_BaseStyling_/BaseStyling.esm.js +2 -0
- package/dist/esm/_BaseStyling_/BaseStyling.esm.js.map +1 -1
- package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridDateFilter.d.ts +9 -0
- package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilterTag.d.ts +2 -1
- package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridFilters.interfaces.d.ts +10 -1
- package/dist/esm/src/components/DataGrid/DataGridFilters/DataGridToolbar.d.ts +5 -3
- package/dist/esm/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.d.ts +31 -0
- package/dist/esm/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.d.ts +15 -0
- package/dist/esm/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.d.ts +18 -0
- package/dist/esm/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.d.ts +10 -0
- package/dist/esm/src/components/DataGrid/DataGridFilters/DateTimePicker/SideMenu.d.ts +10 -0
- package/dist/esm/src/components/DataGrid/testUtils.d.ts +7 -1
- package/dist/esm/src/components/DatePicker/DatePicker.d.ts +4 -1
- package/dist/esm/src/components/Form/Checkbox/Checkbox.d.ts +1 -1
- package/dist/esm/src/components/Form/Fieldset/Fieldset.d.ts +1 -1
- package/dist/esm/src/components/Form/FileUpload/FileItem/FileItem.d.ts +1 -1
- package/dist/esm/src/components/Form/FileUpload/FileUpload.d.ts +6 -1
- package/dist/esm/src/components/Form/FormGroup/FormGroup.d.ts +1 -0
- package/dist/esm/src/components/Form/Input/Input.d.ts +2 -1
- package/dist/esm/src/components/Form/Radio/Radio.d.ts +1 -1
- package/dist/esm/src/components/Form/Select/MultiSelect/MultiSelect.d.ts +1 -1
- package/dist/esm/src/components/Form/Select/MultiSelect/useArrowNavigation.d.ts +2 -1
- package/dist/esm/src/components/Form/Select/MultiSelect/useMultiSelect.d.ts +16 -0
- package/dist/esm/src/components/Form/Select/MultiSelect/useMultiSelect.test.d.ts +1 -0
- package/dist/esm/src/components/Form/Select/Select.interfaces.d.ts +6 -4
- package/dist/esm/src/components/Form/Select/SingleSelect/Select.d.ts +1 -1
- package/dist/esm/src/components/Form/Select/SingleSelect/useArrowNavigation.d.ts +1 -1
- package/dist/esm/src/components/Form/Select/useSelectPositionList.d.ts +2 -2
- package/dist/esm/src/components/Form/Textarea/Textarea.d.ts +2 -1
- package/dist/esm/src/components/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.d.ts +1 -1
- package/dist/esm/src/components/Form/Wrapper/InputWrapper/InputWrapper.d.ts +1 -1
- package/dist/esm/src/components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.d.ts +1 -1
- package/dist/esm/src/components/Form/Wrapper/RadioWrapper/RadioWrapper.d.ts +1 -1
- package/dist/esm/src/components/Form/Wrapper/SelectWrapper/SelectWrapper.d.ts +1 -1
- package/dist/esm/src/components/Form/Wrapper/TextareaWrapper/TextareaWrapper.d.ts +2 -1
- package/dist/esm/src/components/Form/Wrapper/Wrapper/Wrapper.d.ts +1 -0
- package/dist/esm/src/components/_BaseStyling_/BaseStyling.d.ts +2 -0
- package/dist/esm/src/components/withReadOnly.d.ts +8 -0
- package/dist/esm/src/components/withReadOnly.test.d.ts +1 -0
- package/dist/esm/src/hooks/useClickOutside.d.ts +2 -0
- package/dist/esm/src/hooks/useClickOutside.esm.js +38 -0
- package/dist/esm/src/hooks/useClickOutside.esm.js.map +1 -0
- package/dist/esm/src/hooks/useClickOutside.test.d.ts +1 -0
- package/dist/esm/src/index.d.ts +2 -0
- package/dist/esm/src/index.esm.js +2 -0
- package/dist/esm/src/index.esm.js.map +1 -1
- package/dist/esm/src/util/unitTestUtils.d.ts +12 -0
- package/dist/esm/withReadOnly.esm.js +70 -0
- package/dist/esm/withReadOnly.esm.js.map +1 -0
- package/package.json +21 -17
- package/src/components/Button/BaseButton.tsx +7 -4
- package/src/components/ContextMenu/ContextMenu.tsx +5 -13
- package/src/components/DataGrid/DataGridBody/__snapshots__/DataGridBody.test.tsx.snap +4 -4
- package/src/components/DataGrid/DataGridFilters/DataGridDateFilter.tsx +65 -0
- package/src/components/DataGrid/DataGridFilters/DataGridFilterTag.tsx +25 -5
- package/src/components/DataGrid/DataGridFilters/DataGridFilters.interfaces.ts +18 -1
- package/src/components/DataGrid/DataGridFilters/DataGridToolbar.tsx +53 -33
- package/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.module.scss +134 -0
- package/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePicker.tsx +267 -0
- package/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerCalendarSection.tsx +103 -0
- package/src/components/DataGrid/DataGridFilters/DateTimePicker/DateTimePickerInputSection.tsx +121 -0
- package/src/{hooks/useBodyClick.ts → components/DataGrid/DataGridFilters/DateTimePicker/DateTimeService.ts} +12 -18
- package/src/components/DataGrid/DataGridFilters/DateTimePicker/SideMenu.tsx +50 -0
- package/src/components/DataGrid/testUtils.ts +48 -15
- package/src/components/DatePicker/DatePicker.module.scss +32 -9
- package/src/components/DatePicker/DatePicker.tsx +15 -1
- package/src/components/Form/Checkbox/Checkbox.module.scss +70 -0
- package/src/components/Form/Checkbox/Checkbox.tsx +2 -1
- package/src/components/Form/Fieldset/Fieldset.tsx +2 -1
- package/src/components/Form/FileUpload/FileItem/FileItem.module.scss +16 -0
- package/src/components/Form/FileUpload/FileItem/FileItem.tsx +17 -3
- package/src/components/Form/FileUpload/FileUpload.module.scss +57 -1
- package/src/components/Form/FileUpload/FileUpload.tsx +16 -6
- package/src/components/Form/FormGroup/FormGroup.tsx +6 -1
- package/src/components/Form/FormHelperText/FormHelperText.module.scss +4 -0
- package/src/components/Form/FormSelectorWrapper/FormSelectorWrapper.tsx +2 -2
- package/src/components/Form/Input/Input.module.scss +26 -0
- package/src/components/Form/Input/Input.tsx +10 -1
- package/src/components/Form/Radio/Radio.module.scss +46 -0
- package/src/components/Form/Radio/Radio.tsx +2 -1
- package/src/components/Form/Select/MultiSelect/MultiSelect.module.scss +35 -1
- package/src/components/Form/Select/MultiSelect/MultiSelect.tsx +53 -38
- package/src/components/Form/Select/MultiSelect/SelectedOptions.module.scss +8 -0
- package/src/components/Form/Select/MultiSelect/useArrowNavigation.ts +6 -1
- package/src/components/Form/Select/MultiSelect/useMultiSelect.tsx +98 -0
- package/src/components/Form/Select/Select.interfaces.ts +6 -4
- package/src/components/Form/Select/SingleSelect/Select.module.scss +60 -1
- package/src/components/Form/Select/SingleSelect/Select.tsx +42 -37
- package/src/components/Form/Select/SingleSelect/useArrowNavigation.ts +6 -1
- package/src/components/Form/Select/useSelectPositionList.ts +10 -14
- package/src/components/Form/Textarea/Textarea.module.scss +24 -0
- package/src/components/Form/Textarea/Textarea.tsx +24 -3
- package/src/components/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.tsx +4 -1
- package/src/components/Form/Wrapper/InputWrapper/InputWrapper.module.scss +14 -0
- package/src/components/Form/Wrapper/InputWrapper/InputWrapper.tsx +6 -2
- package/src/components/Form/Wrapper/MultiSelectWrapper/MultiSelectWrapper.tsx +3 -1
- package/src/components/Form/Wrapper/RadioWrapper/RadioWrapper.tsx +17 -12
- package/src/components/Form/Wrapper/SelectWrapper/SelectWrapper.tsx +6 -1
- package/src/components/Form/Wrapper/TextareaWrapper/TextareaWrapper.module.scss +43 -0
- package/src/components/Form/Wrapper/TextareaWrapper/TextareaWrapper.tsx +45 -20
- package/src/components/Form/Wrapper/Wrapper/Wrapper.module.scss +6 -0
- package/src/components/Form/Wrapper/Wrapper/Wrapper.tsx +3 -0
- package/src/components/_BaseStyling_/BaseStyling.tsx +4 -0
- package/src/components/withReadOnly.tsx +112 -0
- package/src/hooks/useClickOutside.ts +42 -0
- package/src/index.ts +2 -0
- package/src/mixins.module.scss +6 -0
- package/{dist/esm/src/hooks/useBodyClick.esm.js → src/util/unitTestUtils.ts} +16 -17
- package/dist/cjs/src/hooks/useBodyClick.cjs.js +0 -2
- package/dist/cjs/src/hooks/useBodyClick.cjs.js.map +0 -1
- package/dist/cjs/src/hooks/useBodyClick.d.ts +0 -1
- package/dist/esm/src/hooks/useBodyClick.d.ts +0 -1
- package/dist/esm/src/hooks/useBodyClick.esm.js.map +0 -1
- /package/dist/cjs/src/{hooks/useBodyClick.test.d.ts → components/Form/Select/MultiSelect/useMultiSelect.test.d.ts} +0 -0
- /package/dist/{esm/src/hooks/useBodyClick.test.d.ts → cjs/src/components/withReadOnly.test.d.ts} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});require("../../node_modules/style-inject/dist/style-inject.es.cjs.js").default('/*!\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.Radio-module_radio-wrapper__4532-{position:relative}.Radio-module_radio-wrapper__4532-+.Radio-module_radio-wrapper__4532-{margin-top:.75rem}.Radio-module_error__Pjq-F{color:var(--error)}.Radio-module_helper-text__GjhEJ{margin-left:1.75rem;margin-top:.25rem}.Radio-module_error-message__udguG{display:flex;margin-top:1.25rem}.Radio-module_error-icon__JPuVE{font-size:1.25rem;margin-right:.5rem}.Radio-module_radio-container__Z-lKd{display:flex}.Radio-module_radio-container__Z-lKd label{display:inline-block;font-family:var(--font-family);font-size:var(--font-size-form-label);margin-left:.5rem;margin-top:.15rem;user-select:none}.Radio-module_disabled__ASNkr .Radio-module_radio-container__Z-lKd label{cursor:not-allowed}.Radio-module_native-input__aXxo1{height:1.75rem;left:0;margin:0;opacity:0;position:absolute;top:0;width:1.75rem;z-index:2}.Radio-module_native-input__aXxo1+span[data-icon=true]:before{display:block;height:20px;width:20px}.Radio-module_native-input__aXxo1:checked+*{color:var(--color-primary)}.Radio-module_native-input__aXxo1:checked+.Radio-module_disabled__ASNkr{color:var(--disabled);cursor:not-allowed;pointer-events:none}.Radio-module_native-input__aXxo1:focus-visible+*{border-radius:100%;outline:2px solid var(--color-focus);outline-offset:2px}.Radio-module_native-input__aXxo1.Radio-module_error__Pjq-F+*{border-radius:100%}.Radio-module_native-input__aXxo1.Radio-module_error__Pjq-F:hover+.Radio-module_radio__B6HML:before{outline-color:var(--radio-hover-background-color)}.Radio-module_native-input__aXxo1.Radio-module_error__Pjq-F:active+.Radio-module_radio__B6HML:before{outline-color:var(--radio-pressed-background-color)}.Radio-module_native-input__aXxo1:hover+.Radio-module_input__XIS-I.Radio-module_circle__WmukT:not(.Radio-module_disabled__ASNkr){background-color:var(--radio-hover-background-color)}.Radio-module_native-input__aXxo1:active+.Radio-module_input__XIS-I.Radio-module_circle__WmukT:not(.Radio-module_disabled__ASNkr){background-color:var(--radio-pressed-background-color)}.Radio-module_native-input__aXxo1:hover+.Radio-module_input__XIS-I.Radio-module_radio__B6HML:not(.Radio-module_disabled__ASNkr){background-color:var(--radio-hover-background-color);color:var(--radio-hover-color)}.Radio-module_native-input__aXxo1:active+.Radio-module_input__XIS-I.Radio-module_radio__B6HML:not(.Radio-module_disabled__ASNkr){background-color:var(--radio-pressed-background-color);color:var(--radio-pressed-color)}.Radio-module_input__XIS-I{border-radius:100%;font-size:1.25rem;height:1.25rem;width:1.25rem;z-index:1}.Radio-module_input__XIS-I:active{border-radius:100%}.Radio-module_disabled__ASNkr .Radio-module_input__XIS-I{color:var(--disabled)}.Radio-module_disabled__ASNkr{color:var(--disabled);pointer-events:none}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJhZGlvLm1vZHVsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFLENBQ0YsbUNBQ0UsaUJBQ0YsQ0FDQSxzRUFDRSxpQkFDRixDQUVBLDJCQUNFLGtCQUNGLENBRUEsaUNBRUUsbUJBQW9CLENBRHBCLGlCQUVGLENBRUEsbUNBRUUsWUFBYSxDQURiLGtCQUVGLENBRUEsZ0NBRUUsaUJBQWtCLENBRGxCLGtCQUVGLENBRUEscUNBQ0UsWUFDRixDQUNBLDJDQUNFLG9CQUFxQixDQUlyQiw4QkFBK0IsQ0FEL0IscUNBQXNDLENBRnRDLGlCQUFtQixDQUluQixpQkFBbUIsQ0FIbkIsZ0JBSUYsQ0FDQSx5RUFDRSxrQkFDRixDQUVBLGtDQU9FLGNBQWUsQ0FKZixNQUFPLENBRVAsUUFBUyxDQURULFNBQVUsQ0FIVixpQkFBa0IsQ0FDbEIsS0FBTSxDQUlOLGFBQWMsQ0FFZCxTQUNGLENBQ0EsOERBQ0UsYUFBYyxDQUVkLFdBQVksQ0FEWixVQUVGLENBQ0EsNENBQ0UsMEJBQ0YsQ0FDQSx3RUFDRSxxQkFBc0IsQ0FDdEIsa0JBQW1CLENBQ25CLG1CQUNGLENBQ0Esa0RBQ0Usa0JBQW1CLENBQ25CLG9DQUFxQyxDQUNyQyxrQkFDRixDQUNBLDhEQUNFLGtCQUNGLENBQ0Esb0dBQ0UsaURBQ0YsQ0FDQSxxR0FDRSxtREFDRixDQUNBLGlJQUNFLG9EQUNGLENBQ0Esa0lBQ0Usc0RBQ0YsQ0FDQSxnSUFDRSxvREFBcUQsQ0FDckQsOEJBQ0YsQ0FDQSxpSUFFRSxzREFBdUQsQ0FEdkQsZ0NBRUYsQ0FFQSwyQkFLRSxrQkFBbUIsQ0FKbkIsaUJBQWtCLENBRWxCLGNBQWUsQ0FEZixhQUFjLENBRWQsU0FFRixDQUNBLGtDQUNFLGtCQUNGLENBQ0EseURBQ0UscUJBQ0YsQ0FFQSw4QkFDRSxxQkFBc0IsQ0FDdEIsbUJBQ0YiLCJmaWxlIjoiUmFkaW8ubW9kdWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCAyMDIyIE9uZVdlbGNvbWUgQi5WLlxuICpcbiAqICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLnJhZGlvLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucmFkaW8td3JhcHBlciArIC5yYWRpby13cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMC43NXJlbTtcbn1cblxuLmVycm9yIHtcbiAgY29sb3I6IHZhcigtLWVycm9yKTtcbn1cblxuLmhlbHBlci10ZXh0IHtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDEuNzVyZW07XG59XG5cbi5lcnJvci1tZXNzYWdlIHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmVycm9yLWljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG4ucmFkaW8tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5yYWRpby1jb250YWluZXIgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1mb3JtLWxhYmVsKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5KTtcbiAgbWFyZ2luLXRvcDogMC4xNXJlbTtcbn1cbi5kaXNhYmxlZCAucmFkaW8tY29udGFpbmVyIGxhYmVsIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLm5hdGl2ZS1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxLjc1cmVtO1xuICBoZWlnaHQ6IDEuNzVyZW07XG4gIHotaW5kZXg6IDI7XG59XG4ubmF0aXZlLWlucHV0ICsgc3BhbltkYXRhLWljb249dHJ1ZV06YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG4ubmF0aXZlLWlucHV0OmNoZWNrZWQgKyAqIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuLm5hdGl2ZS1pbnB1dDpjaGVja2VkICsgKi5kaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1kaXNhYmxlZCk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLm5hdGl2ZS1pbnB1dDpmb2N1cy12aXNpYmxlICsgKiB7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1mb2N1cyk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG4ubmF0aXZlLWlucHV0LmVycm9yICsgKiB7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG4ubmF0aXZlLWlucHV0LmVycm9yOmhvdmVyICsgLnJhZGlvOjpiZWZvcmUge1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1yYWRpby1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cbi5uYXRpdmUtaW5wdXQuZXJyb3I6YWN0aXZlICsgLnJhZGlvOjpiZWZvcmUge1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1yYWRpby1wcmVzc2VkLWJhY2tncm91bmQtY29sb3IpO1xufVxuLm5hdGl2ZS1pbnB1dDpob3ZlciArIC5pbnB1dC5jaXJjbGU6bm90KC5kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1yYWRpby1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cbi5uYXRpdmUtaW5wdXQ6YWN0aXZlICsgLmlucHV0LmNpcmNsZTpub3QoLmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJhZGlvLXByZXNzZWQtYmFja2dyb3VuZC1jb2xvcik7XG59XG4ubmF0aXZlLWlucHV0OmhvdmVyICsgLmlucHV0LnJhZGlvOm5vdCguZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmFkaW8taG92ZXItYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1yYWRpby1ob3Zlci1jb2xvcik7XG59XG4ubmF0aXZlLWlucHV0OmFjdGl2ZSArIC5pbnB1dC5yYWRpbzpub3QoLmRpc2FibGVkKSB7XG4gIGNvbG9yOiB2YXIoLS1yYWRpby1wcmVzc2VkLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmFkaW8tcHJlc3NlZC1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cblxuLmlucHV0IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICB6LWluZGV4OiAxO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuLmlucHV0OmFjdGl2ZSB7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG4uZGlzYWJsZWQgLmlucHV0IHtcbiAgY29sb3I6IHZhcigtLWRpc2FibGVkKTtcbn1cblxuLmRpc2FibGVkIHtcbiAgY29sb3I6IHZhcigtLWRpc2FibGVkKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59Il19 */'),exports.default={"radio-wrapper":"Radio-module_radio-wrapper__4532-",error:"Radio-module_error__Pjq-F","helper-text":"Radio-module_helper-text__GjhEJ","error-message":"Radio-module_error-message__udguG","error-icon":"Radio-module_error-icon__JPuVE","radio-container":"Radio-module_radio-container__Z-lKd",disabled:"Radio-module_disabled__ASNkr","native-input":"Radio-module_native-input__aXxo1",radio:"Radio-module_radio__B6HML",input:"Radio-module_input__XIS-I",circle:"Radio-module_circle__WmukT"};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});require("../../node_modules/style-inject/dist/style-inject.es.cjs.js").default('/*!\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.Radio-module_radio-wrapper__4532-{position:relative}.Radio-module_radio-wrapper__4532-+.Radio-module_radio-wrapper__4532-{margin-top:.75rem}.Radio-module_error__Pjq-F{color:var(--error)}.Radio-module_helper-text__GjhEJ{margin-left:1.75rem;margin-top:.25rem}.Radio-module_error-message__udguG{display:flex;margin-top:1.25rem}.Radio-module_error-icon__JPuVE{font-size:1.25rem;margin-right:.5rem}.Radio-module_radio-container__Z-lKd{display:flex}.Radio-module_radio-container__Z-lKd label{display:inline-block;font-family:var(--font-family);font-size:var(--font-size-form-label);margin-left:.5rem;margin-top:.15rem;user-select:none}.Radio-module_disabled__ASNkr .Radio-module_radio-container__Z-lKd label{cursor:not-allowed}.Radio-module_native-input__aXxo1{height:1.75rem;left:0;margin:0;opacity:0;position:absolute;top:0;width:1.75rem;z-index:2}.Radio-module_native-input__aXxo1+span[data-icon=true]:before{display:block;height:20px;width:20px}.Radio-module_native-input__aXxo1:checked+*{color:var(--color-primary)}.Radio-module_native-input__aXxo1:checked+.Radio-module_disabled__ASNkr{color:var(--disabled);cursor:not-allowed;pointer-events:none}.Radio-module_native-input__aXxo1:focus-visible+*{border-radius:100%;outline:2px solid var(--color-focus);outline-offset:2px}.Radio-module_native-input__aXxo1.Radio-module_error__Pjq-F+*{border-radius:100%}.Radio-module_native-input__aXxo1.Radio-module_error__Pjq-F:hover+.Radio-module_radio__B6HML:before{outline-color:var(--radio-hover-background-color)}.Radio-module_native-input__aXxo1.Radio-module_error__Pjq-F:active+.Radio-module_radio__B6HML:before{outline-color:var(--radio-pressed-background-color)}.Radio-module_native-input__aXxo1:hover+.Radio-module_input__XIS-I.Radio-module_circle__WmukT:not(.Radio-module_disabled__ASNkr){background-color:var(--radio-hover-background-color)}.Radio-module_native-input__aXxo1:active+.Radio-module_input__XIS-I.Radio-module_circle__WmukT:not(.Radio-module_disabled__ASNkr){background-color:var(--radio-pressed-background-color)}.Radio-module_native-input__aXxo1:hover+.Radio-module_input__XIS-I.Radio-module_radio__B6HML:not(.Radio-module_disabled__ASNkr){background-color:var(--radio-hover-background-color);color:var(--radio-hover-color)}.Radio-module_native-input__aXxo1:active+.Radio-module_input__XIS-I.Radio-module_radio__B6HML:not(.Radio-module_disabled__ASNkr){background-color:var(--radio-pressed-background-color);color:var(--radio-pressed-color)}.Radio-module_input__XIS-I{border-radius:100%;font-size:1.25rem;height:1.25rem;width:1.25rem;z-index:1}.Radio-module_input__XIS-I:active{border-radius:100%}.Radio-module_disabled__ASNkr .Radio-module_input__XIS-I{color:var(--disabled)}.Radio-module_disabled__ASNkr{color:var(--disabled);pointer-events:none}[data-readonlyview=true] .Radio-module_radio-wrapper__4532-{color:var(--read-only-text-color)}[data-readonlyview=true] .Radio-module_radio-wrapper__4532- span.Radio-module_input__XIS-I{color:var(--read-only-text-color);cursor:not-allowed}[data-readonlyview=true] .Radio-module_radio-wrapper__4532- span.Radio-module_input__XIS-I:before{border-radius:50%;outline:1px solid var(--read-only-border-color);outline-offset:-1px}[data-readonlyview=true] label{user-select:text}input[type=radio][data-readonlyview=true]~span.Radio-module_input__XIS-I{color:var(--read-only-text-color);cursor:not-allowed}input[type=radio][data-readonlyview=true]~span.Radio-module_input__XIS-I:before{border-radius:50%;outline:1px solid var(--read-only-border-color);outline-offset:-1px}input[type=radio][data-readonlyview=true]~label{pointer-events:none;user-select:text}input[type=radio][data-readonlyview=true] :focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJhZGlvLm1vZHVsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFLENBQ0YsbUNBQ0UsaUJBQ0YsQ0FDQSxzRUFDRSxpQkFDRixDQUVBLDJCQUNFLGtCQUNGLENBRUEsaUNBRUUsbUJBQW9CLENBRHBCLGlCQUVGLENBRUEsbUNBRUUsWUFBYSxDQURiLGtCQUVGLENBRUEsZ0NBRUUsaUJBQWtCLENBRGxCLGtCQUVGLENBRUEscUNBQ0UsWUFDRixDQUNBLDJDQUNFLG9CQUFxQixDQUlyQiw4QkFBK0IsQ0FEL0IscUNBQXNDLENBRnRDLGlCQUFtQixDQUluQixpQkFBbUIsQ0FIbkIsZ0JBSUYsQ0FDQSx5RUFDRSxrQkFDRixDQUVBLGtDQU9FLGNBQWUsQ0FKZixNQUFPLENBRVAsUUFBUyxDQURULFNBQVUsQ0FIVixpQkFBa0IsQ0FDbEIsS0FBTSxDQUlOLGFBQWMsQ0FFZCxTQUNGLENBQ0EsOERBQ0UsYUFBYyxDQUVkLFdBQVksQ0FEWixVQUVGLENBQ0EsNENBQ0UsMEJBQ0YsQ0FDQSx3RUFDRSxxQkFBc0IsQ0FDdEIsa0JBQW1CLENBQ25CLG1CQUNGLENBQ0Esa0RBQ0Usa0JBQW1CLENBQ25CLG9DQUFxQyxDQUNyQyxrQkFDRixDQUNBLDhEQUNFLGtCQUNGLENBQ0Esb0dBQ0UsaURBQ0YsQ0FDQSxxR0FDRSxtREFDRixDQUNBLGlJQUNFLG9EQUNGLENBQ0Esa0lBQ0Usc0RBQ0YsQ0FDQSxnSUFDRSxvREFBcUQsQ0FDckQsOEJBQ0YsQ0FDQSxpSUFFRSxzREFBdUQsQ0FEdkQsZ0NBRUYsQ0FFQSwyQkFLRSxrQkFBbUIsQ0FKbkIsaUJBQWtCLENBRWxCLGNBQWUsQ0FEZixhQUFjLENBRWQsU0FFRixDQUNBLGtDQUNFLGtCQUNGLENBQ0EseURBQ0UscUJBQ0YsQ0FFQSw4QkFDRSxxQkFBc0IsQ0FDdEIsbUJBQ0YsQ0FFQSw0REFDRSxpQ0FDRixDQUNBLDJGQUNFLGlDQUFrQyxDQUNsQyxrQkFDRixDQUNBLGtHQUdFLGlCQUFrQixDQUZsQiwrQ0FBZ0QsQ0FDaEQsbUJBRUYsQ0FDQSwrQkFDRSxnQkFDRixDQUVBLHlFQUNFLGlDQUFrQyxDQUNsQyxrQkFDRixDQUNBLGdGQUdFLGlCQUFrQixDQUZsQiwrQ0FBZ0QsQ0FDaEQsbUJBRUYsQ0FDQSxnREFFRSxtQkFBb0IsQ0FEcEIsZ0JBRUYsQ0FDQSx5REFDRSxvQ0FBcUMsQ0FDckMsa0JBQ0YiLCJmaWxlIjoiUmFkaW8ubW9kdWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCAyMDIyIE9uZVdlbGNvbWUgQi5WLlxuICpcbiAqICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLnJhZGlvLXdyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ucmFkaW8td3JhcHBlciArIC5yYWRpby13cmFwcGVyIHtcbiAgbWFyZ2luLXRvcDogMC43NXJlbTtcbn1cblxuLmVycm9yIHtcbiAgY29sb3I6IHZhcigtLWVycm9yKTtcbn1cblxuLmhlbHBlci10ZXh0IHtcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IDEuNzVyZW07XG59XG5cbi5lcnJvci1tZXNzYWdlIHtcbiAgbWFyZ2luLXRvcDogMS4yNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbn1cblxuLmVycm9yLWljb24ge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuXG4ucmFkaW8tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbn1cbi5yYWRpby1jb250YWluZXIgbGFiZWwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBmb250LXNpemU6IHZhcigtLWZvbnQtc2l6ZS1mb3JtLWxhYmVsKTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5KTtcbiAgbWFyZ2luLXRvcDogMC4xNXJlbTtcbn1cbi5kaXNhYmxlZCAucmFkaW8tY29udGFpbmVyIGxhYmVsIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLm5hdGl2ZS1pbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBtYXJnaW46IDA7XG4gIHdpZHRoOiAxLjc1cmVtO1xuICBoZWlnaHQ6IDEuNzVyZW07XG4gIHotaW5kZXg6IDI7XG59XG4ubmF0aXZlLWlucHV0ICsgc3BhbltkYXRhLWljb249dHJ1ZV06YmVmb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG59XG4ubmF0aXZlLWlucHV0OmNoZWNrZWQgKyAqIHtcbiAgY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuLm5hdGl2ZS1pbnB1dDpjaGVja2VkICsgKi5kaXNhYmxlZCB7XG4gIGNvbG9yOiB2YXIoLS1kaXNhYmxlZCk7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLm5hdGl2ZS1pbnB1dDpmb2N1cy12aXNpYmxlICsgKiB7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG4gIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1jb2xvci1mb2N1cyk7XG4gIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG4ubmF0aXZlLWlucHV0LmVycm9yICsgKiB7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG4ubmF0aXZlLWlucHV0LmVycm9yOmhvdmVyICsgLnJhZGlvOjpiZWZvcmUge1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1yYWRpby1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cbi5uYXRpdmUtaW5wdXQuZXJyb3I6YWN0aXZlICsgLnJhZGlvOjpiZWZvcmUge1xuICBvdXRsaW5lLWNvbG9yOiB2YXIoLS1yYWRpby1wcmVzc2VkLWJhY2tncm91bmQtY29sb3IpO1xufVxuLm5hdGl2ZS1pbnB1dDpob3ZlciArIC5pbnB1dC5jaXJjbGU6bm90KC5kaXNhYmxlZCkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1yYWRpby1ob3Zlci1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cbi5uYXRpdmUtaW5wdXQ6YWN0aXZlICsgLmlucHV0LmNpcmNsZTpub3QoLmRpc2FibGVkKSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXJhZGlvLXByZXNzZWQtYmFja2dyb3VuZC1jb2xvcik7XG59XG4ubmF0aXZlLWlucHV0OmhvdmVyICsgLmlucHV0LnJhZGlvOm5vdCguZGlzYWJsZWQpIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmFkaW8taG92ZXItYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1yYWRpby1ob3Zlci1jb2xvcik7XG59XG4ubmF0aXZlLWlucHV0OmFjdGl2ZSArIC5pbnB1dC5yYWRpbzpub3QoLmRpc2FibGVkKSB7XG4gIGNvbG9yOiB2YXIoLS1yYWRpby1wcmVzc2VkLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcmFkaW8tcHJlc3NlZC1iYWNrZ3JvdW5kLWNvbG9yKTtcbn1cblxuLmlucHV0IHtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xuICB3aWR0aDogMS4yNXJlbTtcbiAgaGVpZ2h0OiAxLjI1cmVtO1xuICB6LWluZGV4OiAxO1xuICBib3JkZXItcmFkaXVzOiAxMDAlO1xufVxuLmlucHV0OmFjdGl2ZSB7XG4gIGJvcmRlci1yYWRpdXM6IDEwMCU7XG59XG4uZGlzYWJsZWQgLmlucHV0IHtcbiAgY29sb3I6IHZhcigtLWRpc2FibGVkKTtcbn1cblxuLmRpc2FibGVkIHtcbiAgY29sb3I6IHZhcigtLWRpc2FibGVkKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbltkYXRhLXJlYWRvbmx5dmlldz10cnVlXSAucmFkaW8td3JhcHBlciB7XG4gIGNvbG9yOiB2YXIoLS1yZWFkLW9ubHktdGV4dC1jb2xvcik7XG59XG5bZGF0YS1yZWFkb25seXZpZXc9dHJ1ZV0gLnJhZGlvLXdyYXBwZXIgc3Bhbi5pbnB1dCB7XG4gIGNvbG9yOiB2YXIoLS1yZWFkLW9ubHktdGV4dC1jb2xvcik7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG59XG5bZGF0YS1yZWFkb25seXZpZXc9dHJ1ZV0gLnJhZGlvLXdyYXBwZXIgc3Bhbi5pbnB1dDpiZWZvcmUge1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tcmVhZC1vbmx5LWJvcmRlci1jb2xvcik7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5bZGF0YS1yZWFkb25seXZpZXc9dHJ1ZV0gbGFiZWwge1xuICB1c2VyLXNlbGVjdDogdGV4dDtcbn1cblxuaW5wdXRbdHlwZT1yYWRpb11bZGF0YS1yZWFkb25seXZpZXc9dHJ1ZV0gfiBzcGFuLmlucHV0IHtcbiAgY29sb3I6IHZhcigtLXJlYWQtb25seS10ZXh0LWNvbG9yKTtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cbmlucHV0W3R5cGU9cmFkaW9dW2RhdGEtcmVhZG9ubHl2aWV3PXRydWVdIH4gc3Bhbi5pbnB1dDpiZWZvcmUge1xuICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tcmVhZC1vbmx5LWJvcmRlci1jb2xvcik7XG4gIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG59XG5pbnB1dFt0eXBlPXJhZGlvXVtkYXRhLXJlYWRvbmx5dmlldz10cnVlXSB+IGxhYmVsIHtcbiAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuaW5wdXRbdHlwZT1yYWRpb11bZGF0YS1yZWFkb25seXZpZXc9dHJ1ZV0gOmZvY3VzLXZpc2libGUge1xuICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tY29sb3ItZm9jdXMpO1xuICBvdXRsaW5lLW9mZnNldDogMnB4O1xufSJdfQ== */'),exports.default={"radio-wrapper":"Radio-module_radio-wrapper__4532-",error:"Radio-module_error__Pjq-F","helper-text":"Radio-module_helper-text__GjhEJ","error-message":"Radio-module_error-message__udguG","error-icon":"Radio-module_error-icon__JPuVE","radio-container":"Radio-module_radio-container__Z-lKd",disabled:"Radio-module_disabled__ASNkr","native-input":"Radio-module_native-input__aXxo1",radio:"Radio-module_radio__B6HML",input:"Radio-module_input__XIS-I",circle:"Radio-module_circle__WmukT"};
|
|
2
2
|
//# sourceMappingURL=Radio.module.scss.cjs.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("./MultiSelect.module.scss.cjs.js"),t=require("react"),s=require("../../../src/hooks/
|
|
1
|
+
"use strict";var e=require("./MultiSelect.module.scss.cjs.js"),t=require("react"),s=require("../../../src/hooks/useClickOutside.cjs.js"),r=require("../../../src/hooks/useDetermineStatusIcon.cjs.js"),a=require("../../../src/readyclasses.module.scss.cjs.js"),l=require("../../../src/util/helper.cjs.js"),n=require("../../../Icon/Icon.cjs.js"),c=require("../Select.interfaces.cjs.js"),i=require("../useAddNewBtn.cjs.js"),o=require("../useSelectPositionList.cjs.js"),u=require("./SelectButton.cjs.js"),d=require("./SelectedOptions.cjs.js"),p=require("./useArrowNavigation.cjs.js"),h=require("./useSearch.cjs.js"),f=require("../../../withReadOnly.cjs.js");const m=(e,t)=>`${e}_option${t}`,v=e=>`${e}_listbox`,b=f.withReadOnly(t.forwardRef((({id:f,children:b,name:j,disabled:S=!1,labeledBy:w,placeholder:C,describedBy:E,selectButtonProps:y={},className:N,error:g=!1,success:R=!1,value:x,clearLabel:I="Clear selection",noResultsLabel:B="No results found",onChange:q,addNew:O,search:P={enabled:!0,renderThreshold:0,searchPlaceholder:"Search item"},isReadOnlyView:k,...A},L)=>{const $=t.useRef(null!=f?f:l.generateID(20)),[D,F]=t.useState(!1),[H,M]=t.useState([]),V=t.useRef(null),_=t.useRef(null),[K,T]=t.useState(0),[U,z]=t.useState(!1),[G,J]=t.useState(!1),[Q,W]=t.useState(t.Children.count(b)-H.length),{filter:X,renderSearch:Y,searchInputRef:Z,resetSearchState:ee,searchVisible:te}=h.useSearch({selectId:$.current,expanded:D,search:P,searchInputClassName:e.default["select-search"],optionsCount:Q,focusedSelectItem:K,setFocusedSelectItem:T,describedBy:E,getOptionId:m,getListboxId:v}),{addBtnRef:se,addNewBtnOptionsContainerClassName:re,renderAddNew:ae}=i.useAddNewBtn({id:m($.current,Q),addNew:O,filter:X,focusedSelectItem:K,optionsCount:Q,searchInputRef:Z,shouldClick:U,onClickCallback:()=>{z(!1),ee()}}),le=L||t.createRef(),ne=t.useRef(null),ce=!!A["data-readonlyview"]||k,{onArrowNavigation:ie}=p.useArrowNavigation({expanded:D,setExpanded:F,setFocusedSelectItem:T,childrenCount:Q,setShouldClick:z,addBtnRef:se,searchInputRef:Z,customSelectButtonRef:ne,onClose:ee,isReadOnlyView:ce}),{listPosition:oe,opacity:ue,optionsListMaxHeight:de,setListPosition:pe,setOpacity:he}=o.useSelectPositionList({expanded:D,optionListReference:_,containerReference:V,addBtnRef:se}),fe=r.useDetermineStatusIcon({success:R,error:g});t.useEffect((()=>{D&&Z.current&&(J(!0),Z.current.focus()),!D&&ne.current&&G&&(J(!1),ne.current.focus())}),[D,ne.current,G,Z.current]),t.useEffect((()=>{var e;(e=>{const s=t.Children.map(b,(e=>e)),r=e.map((e=>{const t=s.find((t=>t.props.value===e));return{value:e,label:null==t?void 0:t.props.children,fixed:null==t?void 0:t.props.fixed}}));M(r)})(x),e=x,le.current&&[...le.current.options].forEach((t=>{e.includes(t.value)?t.selected=!0:t.selected=!1}))}),[x]);const me=t.useRef(null);s.useClickOutside(me,(()=>{D&&(F(!1),pe(c.Position.Below),he(0))}),[D]);const ve=[];D&&ve.push(e.default.expanded),g&&ve.push(e.default.error),S&&ve.push(e.default.disabled),N&&ve.push(N),R&&ve.push(e.default.success);const be=()=>{A["data-readonlyview"]||k||(F((e=>!e)),z(!1))},je=t.createElement("div",{className:`list-wrapper-container ${e.default["list-wrapper-container"]}`},t.createElement("div",{ref:_,className:`list-wrapper ${e.default["list-wrapper"]}`,style:{display:D?"block":"none",opacity:ue,maxHeight:de.wrapper,pointerEvents:D?"auto":"none",top:oe===c.Position.Below?"4px":"initial",bottom:oe===c.Position.Above?"4px":"initial"}},t.createElement("ul",{id:v($.current),className:re,role:"listbox","aria-multiselectable":"true",style:{maxHeight:de.list}},(()=>{const s=e=>e.filter((e=>"object"==typeof e&&"props"in e&&!H.find((t=>t.value===e.props.value))));let r;if(""!==X){r=a(s(t.Children.toArray(b).filter((e=>null!==e.props.children.toLowerCase().match(l.escapeRegExp(X.toLowerCase()))))))}else r=a(s(t.Children.toArray(b)));return Q!==r.length&&W(r.length),0===r.length?t.createElement("li",{className:e.default["no-results"]},B):r;function a(e){return t.Children.map(e,((e,s)=>t.cloneElement(e,{onFocusChange:e=>{T(e)},onOptionSelect:e=>{(e=>{if(le.current&&e){const t=e.getAttribute("data-value"),s=[...le.current.options],r=s.filter((e=>e.selected)).map((e=>e.value));s.forEach((e=>{(e.value===t||r.includes(e.value))&&(e.selected=!0)})),le.current.dispatchEvent(new Event("change",{bubbles:!0}))}F(!1),ee()})(e.current),F(!1),z(!1)},isSearching:!1,selectOpened:D,childIndex:s,hasFocus:K===s,shouldClick:U,id:m($.current,s)})))}})()),ae()));return t.createElement("div",{ref:me},t.createElement("select",{...l.filterProps(A,/^data-/,!1),tabIndex:-1,multiple:!0,"aria-hidden":"true",ref:le,name:j,onChange:e=>{null==q||q(e)},className:a.default["sr-only"]},t.createElement("option",{value:""}),t.Children.map(b,(e=>t.createElement("option",{value:e.props.value})))),t.createElement("div",{...l.filterProps(A,/^data-/),id:$.current,ref:V,onKeyDown:ie,className:`custom-select ${e.default.select} ${ve.join(" ")}`},oe===c.Position.Above?je:void 0,t.createElement("div",{className:`${e.default["custom-select"]} ${ve.join(" ")} `,style:{display:"flex"}},t.createElement("div",{className:e.default["display-container"],"data-display":!0},t.createElement(u.SelectButton,{...y,onClick:be,name:j,ref:ne,disabled:S,"aria-disabled":S,"aria-invalid":g,"aria-expanded":D,"aria-haspopup":"listbox","aria-labelledby":w,"aria-describedby":E}),0===(null==x?void 0:x.length)&&C&&t.createElement("span",{className:e.default.placeholder},C),(null==x?void 0:x.length)>0&&t.createElement(d.SelectedOptions,{disabled:S,display:H,onClick:be,onRemove:e=>{if(le.current){[...le.current.options].find((t=>t.value===e)).selected=!1,le.current.dispatchEvent(new Event("change",{bubbles:!0}))}}}),te&&Y()),t.createElement("div",{className:e.default.status},fe||(D?t.createElement(n.Icon,{className:e.default["chevron-icon"],icon:n.Icons.ChevronUp}):t.createElement(n.Icon,{className:e.default["chevron-icon"],icon:n.Icons.ChevronDown})))),oe===c.Position.Below?je:void 0))})));exports.MultiSelect=b;
|
|
2
2
|
//# sourceMappingURL=MultiSelect.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSelect.cjs.js","sources":["../../../../../../../src/components/Form/Select/MultiSelect/MultiSelect.tsx"],"sourcesContent":["/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classes from \"./MultiSelect.module.scss\";\n\nimport React, {\n ForwardRefRenderFunction,\n Fragment,\n ReactElement,\n createRef,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { useBodyClick } from \"../../../../hooks/useBodyClick\";\nimport { useDetermineStatusIcon } from \"../../../../hooks/useDetermineStatusIcon\";\nimport readyclasses from \"../../../../readyclasses.module.scss\";\nimport { escapeRegExp, filterProps, generateID } from \"../../../../util/helper\";\nimport { Icon, Icons } from \"../../../Icon/Icon\";\nimport { MultiSelectProps } from \"../Select.interfaces\";\nimport { useAddNewBtn } from \"../useAddNewBtn\";\nimport { useSelectPositionList } from \"../useSelectPositionList\";\nimport { SelectButton } from \"./SelectButton\";\nimport { Display, SelectedOptions } from \"./SelectedOptions\";\nimport { useArrowNavigation } from \"./useArrowNavigation\";\nimport { useSearch } from \"./useSearch\";\n\nconst getOptionId = (multiSelectId: string, optionIndex: number) =>\n `${multiSelectId}_option${optionIndex}`;\n\nconst getListboxId = (multiSelectId: string) => `${multiSelectId}_listbox`;\n\nconst MultiSelectComponent: ForwardRefRenderFunction<HTMLSelectElement, MultiSelectProps> = (\n {\n id,\n children,\n name,\n disabled = false,\n labeledBy,\n placeholder,\n describedBy,\n selectButtonProps = {},\n className,\n error = false,\n success = false,\n value,\n clearLabel = \"Clear selection\",\n noResultsLabel = \"No results found\",\n onChange,\n addNew,\n search = { enabled: true, renderThreshold: 0, searchPlaceholder: \"Search item\" },\n ...rest\n }: MultiSelectProps,\n ref\n) => {\n const multiSelectId = useRef(id ?? generateID(20));\n const [expanded, setExpanded] = useState(false);\n const [display, setDisplay] = useState<Display[]>([]);\n const containerReference = useRef<HTMLDivElement>(null);\n const optionListReference = useRef<HTMLDivElement>(null);\n const [focusedSelectItem, setFocusedSelectItem] = useState(0);\n const [shouldClick, setShouldClick] =\n useState(\n false\n ); /** We need this, because whenever we use the arrow keys to select the select item, and we focus the currently selected item it fires the \"click\" listener in Option component. Instead, we only want this to fire if we press \"enter\" or \"spacebar\" so we set this to true whenever that is the case, and back to false when it has been executed. */\n const [shouldFocusButtonAfterClose, setShouldFocusButtonAfterClose] = useState(false);\n const [optionsVisibleCount, setOptionsVisibleCount] = useState(\n React.Children.count(children) - display.length\n );\n const { filter, renderSearch, searchInputRef, resetSearchState, searchVisible } = useSearch({\n selectId: multiSelectId.current,\n expanded,\n search,\n searchInputClassName: classes[\"select-search\"],\n optionsCount: optionsVisibleCount,\n focusedSelectItem,\n setFocusedSelectItem,\n describedBy,\n getOptionId,\n getListboxId\n });\n const { addBtnRef, addNewBtnOptionsContainerClassName, renderAddNew } = useAddNewBtn({\n id: getOptionId(multiSelectId.current, optionsVisibleCount),\n addNew,\n filter,\n focusedSelectItem,\n optionsCount: optionsVisibleCount,\n searchInputRef,\n shouldClick,\n onClickCallback: () => {\n setShouldClick(false);\n resetSearchState();\n }\n });\n\n const nativeSelect = (ref as React.RefObject<HTMLSelectElement>) || createRef();\n\n const onOptionChangeHandler = (optionElement: HTMLElement | null) => {\n if (nativeSelect.current && optionElement) {\n const value = optionElement.getAttribute(\"data-value\")!;\n const options = [...nativeSelect.current.options];\n const lastSelectedOptionValues = options\n .filter(option => option.selected)\n .map(option => option.value);\n options.forEach(option => {\n if (option.value === value || lastSelectedOptionValues.includes(option.value)) {\n option.selected = true;\n }\n });\n nativeSelect.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n setExpanded(false);\n resetSearchState();\n };\n\n const onSelectedOptionRemoveHandler = (value: string) => {\n if (nativeSelect.current) {\n const options = [...nativeSelect.current.options];\n options.find(option => option.value === value)!.selected = false;\n nativeSelect.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n };\n\n const customSelectButtonRef = useRef<HTMLButtonElement>(null);\n const { onArrowNavigation } = useArrowNavigation({\n expanded,\n setExpanded,\n setFocusedSelectItem,\n childrenCount: optionsVisibleCount,\n setShouldClick,\n addBtnRef,\n searchInputRef,\n customSelectButtonRef,\n onClose: resetSearchState\n });\n\n const { listPosition, opacity, optionsListMaxHeight, setListPosition, setOpacity } =\n useSelectPositionList({ expanded, optionListReference, containerReference, addBtnRef });\n\n const syncDisplayValue = (values: string[]) => {\n const options = React.Children.map(children, child => child);\n const displayArray: Display[] = values.map(value => {\n const option = options.find(option => option.props.value === value);\n return { value, label: option?.props.children, fixed: option?.props.fixed };\n });\n setDisplay(displayArray);\n };\n\n const syncSelectedOption = (vals: string[]) => {\n if (nativeSelect.current) {\n const options = [...nativeSelect.current.options];\n options.forEach(option => {\n if (vals.includes(option.value)) {\n option.selected = true;\n } else {\n option.selected = false;\n }\n });\n }\n };\n\n /**\n * @description We have to modify the children (Option component) to have a additional props that allows us to keep track of which one is selected and focused at all times and if a filter is active.\n * The `children` prop can be either a single object (1 child) or an array of multiple children.\n */\n const renderOptions = () => {\n type ReactChildrenType = ReturnType<typeof React.Children.toArray>;\n\n const filterOutSelectedChildren = (internalChildren: ReactChildrenType) => {\n return internalChildren.filter(\n child =>\n typeof child === \"object\" &&\n \"props\" in child &&\n !display.find(option => option.value === child.props.value)\n );\n };\n\n let results;\n if (filter !== \"\") {\n const filteredChildren = React.Children.toArray(children).filter(\n child =>\n (child as ReactElement).props.children\n .toLowerCase()\n .match(escapeRegExp(filter.toLowerCase())) !== null\n );\n\n results = _internalRenderChildren(filterOutSelectedChildren(filteredChildren));\n } else {\n results = _internalRenderChildren(\n filterOutSelectedChildren(React.Children.toArray(children))\n );\n }\n\n optionsVisibleCount !== results.length && setOptionsVisibleCount(results.length);\n\n if (results.length === 0) {\n return <li className={classes[\"no-results\"]}>{noResultsLabel}</li>;\n }\n\n return results;\n\n function _internalRenderChildren(internalChildren: ReactChildrenType) {\n return React.Children.map(internalChildren, (child, index) => {\n return React.cloneElement(child as ReactElement, {\n onFocusChange: (childIndex: number) => {\n setFocusedSelectItem(childIndex);\n },\n onOptionSelect: (optionRef: React.RefObject<HTMLLIElement>) => {\n onOptionChangeHandler(optionRef.current);\n setExpanded(false);\n setShouldClick(false);\n },\n isSearching: false,\n selectOpened: expanded,\n childIndex: index,\n hasFocus: focusedSelectItem === index,\n shouldClick: shouldClick,\n id: getOptionId(multiSelectId.current, index)\n });\n });\n }\n };\n\n const renderChevronIcon = () => {\n return expanded ? (\n <Icon className={classes[\"chevron-icon\"]} icon={Icons.ChevronUp} />\n ) : (\n <Icon className={classes[\"chevron-icon\"]} icon={Icons.ChevronDown} />\n );\n };\n\n const icon = useDetermineStatusIcon({ success, error });\n\n const nativeOnChangeHandler = (event: React.ChangeEvent<HTMLSelectElement>) => {\n onChange?.(event);\n };\n\n useEffect(() => {\n if (expanded && searchInputRef.current) {\n setShouldFocusButtonAfterClose(true);\n searchInputRef.current.focus();\n }\n\n if (!expanded && customSelectButtonRef.current && shouldFocusButtonAfterClose) {\n setShouldFocusButtonAfterClose(false);\n customSelectButtonRef.current.focus();\n }\n }, [\n expanded,\n customSelectButtonRef.current,\n shouldFocusButtonAfterClose,\n searchInputRef.current\n ]);\n\n useEffect(() => {\n syncDisplayValue(value);\n syncSelectedOption(value);\n }, [value]);\n\n useBodyClick(\n (event: MouseEvent) => !(event.target as Element).closest(\".custom-select\") && expanded,\n () => {\n setExpanded(false);\n setListPosition({ top: 0, bottom: \"initial\" });\n setOpacity(0);\n },\n expanded\n );\n\n const additionalClasses = [];\n expanded && additionalClasses.push(classes.expanded);\n error && additionalClasses.push(classes.error);\n disabled && additionalClasses.push(classes.disabled);\n className && additionalClasses.push(className);\n success && additionalClasses.push(classes.success);\n\n const onSelectButtonClick = () => {\n setExpanded(expanded => !expanded);\n setShouldClick(false);\n };\n\n /** The native select is purely for external form libraries. We use it to emit an onChange with native select event object so they know exactly what's happening. */\n return (\n <Fragment>\n <select\n {...filterProps(rest, /^data-/, false)}\n tabIndex={-1}\n multiple={true}\n aria-hidden=\"true\"\n ref={nativeSelect}\n name={name}\n onChange={nativeOnChangeHandler}\n className={readyclasses[\"sr-only\"]}\n >\n <option value=\"\"></option>\n {React.Children.map(children, child => (\n <option value={child.props.value}></option>\n ))}\n </select>\n <div\n {...filterProps(rest, /^data-/)}\n id={multiSelectId.current}\n ref={containerReference}\n onKeyDown={onArrowNavigation}\n className={`custom-select ${classes.select} ${additionalClasses.join(\" \")}`}\n >\n <div\n className={`${classes[\"custom-select\"]} ${additionalClasses.join(\" \")} `}\n style={{ display: \"flex\" }}\n >\n <div className={classes[\"display-container\"]} data-display>\n <SelectButton\n {...selectButtonProps}\n onClick={onSelectButtonClick}\n name={name}\n ref={customSelectButtonRef}\n disabled={disabled}\n aria-disabled={disabled}\n aria-invalid={error}\n aria-expanded={expanded}\n aria-haspopup=\"listbox\"\n aria-labelledby={labeledBy}\n aria-describedby={describedBy}\n />\n {value?.length === 0 && placeholder && (\n <span className={classes[\"placeholder\"]}>{placeholder}</span>\n )}\n {value?.length > 0 && (\n <SelectedOptions\n disabled={disabled}\n display={display}\n onClick={onSelectButtonClick}\n onRemove={onSelectedOptionRemoveHandler}\n />\n )}\n {searchVisible && renderSearch()}\n </div>\n <div className={classes[\"status\"]}>{icon || renderChevronIcon()}</div>\n </div>\n <div\n ref={optionListReference}\n className={`list-wrapper ${classes[\"list-wrapper\"]}`}\n style={{\n display: expanded ? \"block\" : \"none\",\n opacity: opacity,\n maxHeight: optionsListMaxHeight.wrapper,\n pointerEvents: expanded ? \"auto\" : \"none\",\n ...listPosition\n }}\n >\n <ul\n id={getListboxId(multiSelectId.current)}\n className={addNewBtnOptionsContainerClassName}\n role=\"listbox\"\n aria-multiselectable=\"true\"\n style={{ maxHeight: optionsListMaxHeight.list }}\n >\n {renderOptions()}\n </ul>\n {renderAddNew()}\n </div>\n </div>\n </Fragment>\n );\n};\n\nexport const MultiSelect = React.forwardRef(MultiSelectComponent);\n"],"names":["getOptionId","multiSelectId","optionIndex","getListboxId","MultiSelect","React","forwardRef","id","children","name","disabled","labeledBy","placeholder","describedBy","selectButtonProps","className","error","success","value","clearLabel","noResultsLabel","onChange","addNew","search","enabled","renderThreshold","searchPlaceholder","rest","ref","useRef","generateID","expanded","setExpanded","useState","display","setDisplay","containerReference","optionListReference","focusedSelectItem","setFocusedSelectItem","shouldClick","setShouldClick","shouldFocusButtonAfterClose","setShouldFocusButtonAfterClose","optionsVisibleCount","setOptionsVisibleCount","Children","count","length","filter","renderSearch","searchInputRef","resetSearchState","searchVisible","useSearch","selectId","current","searchInputClassName","classes","default","optionsCount","addBtnRef","addNewBtnOptionsContainerClassName","renderAddNew","useAddNewBtn","onClickCallback","nativeSelect","createRef","customSelectButtonRef","onArrowNavigation","useArrowNavigation","childrenCount","onClose","listPosition","opacity","optionsListMaxHeight","setListPosition","setOpacity","useSelectPositionList","icon","useDetermineStatusIcon","useEffect","focus","vals","values","options","map","child","displayArray","option","find","props","label","fixed","syncDisplayValue","forEach","includes","selected","useBodyClick","event","target","closest","top","bottom","additionalClasses","push","onSelectButtonClick","Fragment","createElement","filterProps","tabIndex","multiple","readyclasses","onKeyDown","select","join","style","SelectButton","onClick","SelectedOptions","onRemove","dispatchEvent","Event","bubbles","Icon","Icons","ChevronUp","ChevronDown","maxHeight","wrapper","pointerEvents","role","list","filterOutSelectedChildren","internalChildren","results","_internalRenderChildren","toArray","toLowerCase","match","escapeRegExp","index","cloneElement","onFocusChange","childIndex","onOptionSelect","optionRef","optionElement","getAttribute","lastSelectedOptionValues","onOptionChangeHandler","isSearching","selectOpened","hasFocus","renderOptions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MultiSelect.cjs.js","sources":["../../../../../../../src/components/Form/Select/MultiSelect/MultiSelect.tsx"],"sourcesContent":["/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classes from \"./MultiSelect.module.scss\";\n\nimport React, {\n ForwardRefRenderFunction,\n ReactElement,\n createRef,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { useClickOutside } from \"../../../../hooks/useClickOutside\";\nimport { useDetermineStatusIcon } from \"../../../../hooks/useDetermineStatusIcon\";\nimport readyclasses from \"../../../../readyclasses.module.scss\";\nimport { escapeRegExp, filterProps, generateID } from \"../../../../util/helper\";\nimport { Icon, Icons } from \"../../../Icon/Icon\";\nimport { MultiSelectProps, Position } from \"../Select.interfaces\";\nimport { useAddNewBtn } from \"../useAddNewBtn\";\nimport { useSelectPositionList } from \"../useSelectPositionList\";\nimport { SelectButton } from \"./SelectButton\";\nimport { Display, SelectedOptions } from \"./SelectedOptions\";\nimport { useArrowNavigation } from \"./useArrowNavigation\";\nimport { useSearch } from \"./useSearch\";\nimport { withReadOnly } from \"../../../withReadOnly\";\n\nconst getOptionId = (multiSelectId: string, optionIndex: number) =>\n `${multiSelectId}_option${optionIndex}`;\n\nconst getListboxId = (multiSelectId: string) => `${multiSelectId}_listbox`;\n\nconst MultiSelectComponent: ForwardRefRenderFunction<HTMLSelectElement, MultiSelectProps> = (\n {\n id,\n children,\n name,\n disabled = false,\n labeledBy,\n placeholder,\n describedBy,\n selectButtonProps = {},\n className,\n error = false,\n success = false,\n value,\n clearLabel = \"Clear selection\",\n noResultsLabel = \"No results found\",\n onChange,\n addNew,\n search = { enabled: true, renderThreshold: 0, searchPlaceholder: \"Search item\" },\n isReadOnlyView,\n ...rest\n }: MultiSelectProps,\n ref\n) => {\n const multiSelectId = useRef(id ?? generateID(20));\n const [expanded, setExpanded] = useState(false);\n const [display, setDisplay] = useState<Display[]>([]);\n const containerReference = useRef<HTMLDivElement>(null);\n const optionListReference = useRef<HTMLDivElement>(null);\n const [focusedSelectItem, setFocusedSelectItem] = useState(0);\n const [shouldClick, setShouldClick] =\n useState(\n false\n ); /** We need this, because whenever we use the arrow keys to select the select item, and we focus the currently selected item it fires the \"click\" listener in Option component. Instead, we only want this to fire if we press \"enter\" or \"spacebar\" so we set this to true whenever that is the case, and back to false when it has been executed. */\n const [shouldFocusButtonAfterClose, setShouldFocusButtonAfterClose] = useState(false);\n const [optionsVisibleCount, setOptionsVisibleCount] = useState(\n React.Children.count(children) - display.length\n );\n const { filter, renderSearch, searchInputRef, resetSearchState, searchVisible } = useSearch({\n selectId: multiSelectId.current,\n expanded,\n search,\n searchInputClassName: classes[\"select-search\"],\n optionsCount: optionsVisibleCount,\n focusedSelectItem,\n setFocusedSelectItem,\n describedBy,\n getOptionId,\n getListboxId\n });\n const { addBtnRef, addNewBtnOptionsContainerClassName, renderAddNew } = useAddNewBtn({\n id: getOptionId(multiSelectId.current, optionsVisibleCount),\n addNew,\n filter,\n focusedSelectItem,\n optionsCount: optionsVisibleCount,\n searchInputRef,\n shouldClick,\n onClickCallback: () => {\n setShouldClick(false);\n resetSearchState();\n }\n });\n\n const nativeSelect = (ref as React.RefObject<HTMLSelectElement>) || createRef();\n\n const onOptionChangeHandler = (optionElement: HTMLElement | null) => {\n if (nativeSelect.current && optionElement) {\n const value = optionElement.getAttribute(\"data-value\")!;\n const options = [...nativeSelect.current.options];\n const lastSelectedOptionValues = options\n .filter(option => option.selected)\n .map(option => option.value);\n options.forEach(option => {\n if (option.value === value || lastSelectedOptionValues.includes(option.value)) {\n option.selected = true;\n }\n });\n nativeSelect.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n setExpanded(false);\n resetSearchState();\n };\n\n const onSelectedOptionRemoveHandler = (value: string) => {\n if (nativeSelect.current) {\n const options = [...nativeSelect.current.options];\n options.find(option => option.value === value)!.selected = false;\n nativeSelect.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n };\n\n const customSelectButtonRef = useRef<HTMLButtonElement>(null);\n const readOnlyView = !!rest[\"data-readonlyview\"] || isReadOnlyView;\n const { onArrowNavigation } = useArrowNavigation({\n expanded,\n setExpanded,\n setFocusedSelectItem,\n childrenCount: optionsVisibleCount,\n setShouldClick,\n addBtnRef,\n searchInputRef,\n customSelectButtonRef,\n onClose: resetSearchState,\n isReadOnlyView: readOnlyView\n });\n\n const { listPosition, opacity, optionsListMaxHeight, setListPosition, setOpacity } =\n useSelectPositionList({ expanded, optionListReference, containerReference, addBtnRef });\n\n const syncDisplayValue = (values: string[]) => {\n const options = React.Children.map(children, child => child);\n const displayArray: Display[] = values.map(value => {\n const option = options.find(option => option.props.value === value);\n return { value, label: option?.props.children, fixed: option?.props.fixed };\n });\n setDisplay(displayArray);\n };\n\n const syncSelectedOption = (vals: string[]) => {\n if (nativeSelect.current) {\n const options = [...nativeSelect.current.options];\n options.forEach(option => {\n if (vals.includes(option.value)) {\n option.selected = true;\n } else {\n option.selected = false;\n }\n });\n }\n };\n\n /**\n * @description We have to modify the children (Option component) to have a additional props that allows us to keep track of which one is selected and focused at all times and if a filter is active.\n * The `children` prop can be either a single object (1 child) or an array of multiple children.\n */\n const renderOptions = () => {\n type ReactChildrenType = ReturnType<typeof React.Children.toArray>;\n\n const filterOutSelectedChildren = (internalChildren: ReactChildrenType) => {\n return internalChildren.filter(\n child =>\n typeof child === \"object\" &&\n \"props\" in child &&\n !display.find(option => option.value === child.props.value)\n );\n };\n\n let results;\n if (filter !== \"\") {\n const filteredChildren = React.Children.toArray(children).filter(\n child =>\n (child as ReactElement).props.children\n .toLowerCase()\n .match(escapeRegExp(filter.toLowerCase())) !== null\n );\n\n results = _internalRenderChildren(filterOutSelectedChildren(filteredChildren));\n } else {\n results = _internalRenderChildren(\n filterOutSelectedChildren(React.Children.toArray(children))\n );\n }\n\n optionsVisibleCount !== results.length && setOptionsVisibleCount(results.length);\n\n if (results.length === 0) {\n return <li className={classes[\"no-results\"]}>{noResultsLabel}</li>;\n }\n\n return results;\n\n function _internalRenderChildren(internalChildren: ReactChildrenType) {\n return React.Children.map(internalChildren, (child, index) => {\n return React.cloneElement(child as ReactElement, {\n onFocusChange: (childIndex: number) => {\n setFocusedSelectItem(childIndex);\n },\n onOptionSelect: (optionRef: React.RefObject<HTMLLIElement>) => {\n onOptionChangeHandler(optionRef.current);\n setExpanded(false);\n setShouldClick(false);\n },\n isSearching: false,\n selectOpened: expanded,\n childIndex: index,\n hasFocus: focusedSelectItem === index,\n shouldClick: shouldClick,\n id: getOptionId(multiSelectId.current, index)\n });\n });\n }\n };\n\n const renderChevronIcon = () => {\n return expanded ? (\n <Icon className={classes[\"chevron-icon\"]} icon={Icons.ChevronUp} />\n ) : (\n <Icon className={classes[\"chevron-icon\"]} icon={Icons.ChevronDown} />\n );\n };\n\n const icon = useDetermineStatusIcon({ success, error });\n\n const nativeOnChangeHandler = (event: React.ChangeEvent<HTMLSelectElement>) => {\n onChange?.(event);\n };\n\n useEffect(() => {\n if (expanded && searchInputRef.current) {\n setShouldFocusButtonAfterClose(true);\n searchInputRef.current.focus();\n }\n\n if (!expanded && customSelectButtonRef.current && shouldFocusButtonAfterClose) {\n setShouldFocusButtonAfterClose(false);\n customSelectButtonRef.current.focus();\n }\n }, [\n expanded,\n customSelectButtonRef.current,\n shouldFocusButtonAfterClose,\n searchInputRef.current\n ]);\n\n useEffect(() => {\n syncDisplayValue(value);\n syncSelectedOption(value);\n }, [value]);\n\n const myElementRef = useRef<HTMLDivElement>(null);\n\n useClickOutside(myElementRef, () => {\n if (!expanded) {\n return;\n }\n setExpanded(false);\n setListPosition(Position.Below);\n setOpacity(0);\n }, [expanded]);\n\n const additionalClasses = [];\n expanded && additionalClasses.push(classes.expanded);\n error && additionalClasses.push(classes.error);\n disabled && additionalClasses.push(classes.disabled);\n className && additionalClasses.push(className);\n success && additionalClasses.push(classes.success);\n\n const onSelectButtonClick = () => {\n if (rest[\"data-readonlyview\"] || isReadOnlyView) {\n return;\n }\n setExpanded(expanded => !expanded);\n setShouldClick(false);\n };\n\n const optionsElement = (\n <div className={`list-wrapper-container ${classes[\"list-wrapper-container\"]}`}>\n <div\n ref={optionListReference}\n className={`list-wrapper ${classes[\"list-wrapper\"]}`}\n style={{\n display: expanded ? \"block\" : \"none\",\n opacity: opacity,\n maxHeight: optionsListMaxHeight.wrapper,\n pointerEvents: expanded ? \"auto\" : \"none\",\n top: listPosition === Position.Below ? \"4px\" : \"initial\",\n bottom: listPosition === Position.Above ? \"4px\" : \"initial\"\n }}\n >\n <ul\n id={getListboxId(multiSelectId.current)}\n className={addNewBtnOptionsContainerClassName}\n role=\"listbox\"\n aria-multiselectable=\"true\"\n style={{ maxHeight: optionsListMaxHeight.list }}\n >\n {renderOptions()}\n </ul>\n {renderAddNew()}\n </div>\n </div>\n );\n\n /** The native select is purely for external form libraries. We use it to emit an onChange with native select event object so they know exactly what's happening. */\n return (\n <div ref={myElementRef}>\n <select\n {...filterProps(rest, /^data-/, false)}\n tabIndex={-1}\n multiple={true}\n aria-hidden=\"true\"\n ref={nativeSelect}\n name={name}\n onChange={nativeOnChangeHandler}\n className={readyclasses[\"sr-only\"]}\n >\n <option value=\"\"></option>\n {React.Children.map(children, child => (\n <option value={child.props.value}></option>\n ))}\n </select>\n <div\n {...filterProps(rest, /^data-/)}\n id={multiSelectId.current}\n ref={containerReference}\n onKeyDown={onArrowNavigation}\n className={`custom-select ${classes.select} ${additionalClasses.join(\" \")}`}\n >\n {listPosition === Position.Above ? optionsElement : undefined}\n <div\n className={`${classes[\"custom-select\"]} ${additionalClasses.join(\" \")} `}\n style={{ display: \"flex\" }}\n >\n <div className={classes[\"display-container\"]} data-display>\n <SelectButton\n {...selectButtonProps}\n onClick={onSelectButtonClick}\n name={name}\n ref={customSelectButtonRef}\n disabled={disabled}\n aria-disabled={disabled}\n aria-invalid={error}\n aria-expanded={expanded}\n aria-haspopup=\"listbox\"\n aria-labelledby={labeledBy}\n aria-describedby={describedBy}\n />\n {value?.length === 0 && placeholder && (\n <span className={classes[\"placeholder\"]}>{placeholder}</span>\n )}\n {value?.length > 0 && (\n <SelectedOptions\n disabled={disabled}\n display={display}\n onClick={onSelectButtonClick}\n onRemove={onSelectedOptionRemoveHandler}\n />\n )}\n {searchVisible && renderSearch()}\n </div>\n <div className={classes[\"status\"]}>{icon || renderChevronIcon()}</div>\n </div>\n {listPosition === Position.Below ? optionsElement : undefined}\n </div>\n </div>\n );\n};\n\nexport const MultiSelect = withReadOnly(React.forwardRef(MultiSelectComponent));\n"],"names":["getOptionId","multiSelectId","optionIndex","getListboxId","MultiSelect","withReadOnly","React","forwardRef","id","children","name","disabled","labeledBy","placeholder","describedBy","selectButtonProps","className","error","success","value","clearLabel","noResultsLabel","onChange","addNew","search","enabled","renderThreshold","searchPlaceholder","isReadOnlyView","rest","ref","useRef","generateID","expanded","setExpanded","useState","display","setDisplay","containerReference","optionListReference","focusedSelectItem","setFocusedSelectItem","shouldClick","setShouldClick","shouldFocusButtonAfterClose","setShouldFocusButtonAfterClose","optionsVisibleCount","setOptionsVisibleCount","Children","count","length","filter","renderSearch","searchInputRef","resetSearchState","searchVisible","useSearch","selectId","current","searchInputClassName","classes","default","optionsCount","addBtnRef","addNewBtnOptionsContainerClassName","renderAddNew","useAddNewBtn","onClickCallback","nativeSelect","createRef","customSelectButtonRef","readOnlyView","onArrowNavigation","useArrowNavigation","childrenCount","onClose","listPosition","opacity","optionsListMaxHeight","setListPosition","setOpacity","useSelectPositionList","icon","useDetermineStatusIcon","useEffect","focus","vals","values","options","map","child","displayArray","option","find","props","label","fixed","syncDisplayValue","forEach","includes","selected","myElementRef","useClickOutside","Position","Below","additionalClasses","push","onSelectButtonClick","optionsElement","createElement","style","maxHeight","wrapper","pointerEvents","top","bottom","Above","role","list","filterOutSelectedChildren","internalChildren","results","_internalRenderChildren","toArray","toLowerCase","match","escapeRegExp","index","cloneElement","onFocusChange","childIndex","onOptionSelect","optionRef","optionElement","getAttribute","lastSelectedOptionValues","dispatchEvent","Event","bubbles","onOptionChangeHandler","isSearching","selectOpened","hasFocus","renderOptions","filterProps","tabIndex","multiple","event","readyclasses","onKeyDown","select","join","undefined","SelectButton","onClick","SelectedOptions","onRemove","Icon","Icons","ChevronUp","ChevronDown"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});require("../../../node_modules/style-inject/dist/style-inject.es.cjs.js").default('/*!\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*!\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*!\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.MultiSelect-module_sr-only__75-oC{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.MultiSelect-module_hidden__-Ckqq{display:none}.MultiSelect-module_slide-in__Rzibv{animation:MultiSelect-module_slide-in__Rzibv .5s forwards}@media (prefers-reduced-motion:reduce){.MultiSelect-module_slide-in__Rzibv{animation-duration:.1ms}}.MultiSelect-module_slide-out__U1BmE{animation:MultiSelect-module_slide-out__U1BmE .5s forwards}@media (prefers-reduced-motion:reduce){.MultiSelect-module_slide-out__U1BmE{animation-duration:.1ms}}@keyframes MultiSelect-module_slide-in__Rzibv{0%{transform:translateY(100vh)}to{transform:translateY(0)}}@keyframes MultiSelect-module_slide-out__U1BmE{0%{transform:translateY(0)}to{transform:translateY(100vh)}}\n/*!\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.MultiSelect-module_select__y-QUg{background-color:var(--input-background-color);border:0;border-radius:var(--input-border-radius);box-sizing:border-box;font-size:var(--form-control-font-size);position:relative;transition-duration:.2s;transition-property:all;transition-timing-function:ease-in-out}@media (prefers-reduced-motion:reduce){.MultiSelect-module_select__y-QUg{transition-duration:.1ms}}.MultiSelect-module_select__y-QUg [data-display]{color:var(--color-default);font-family:var(--font-family)}.MultiSelect-module_select__y-QUg.MultiSelect-module_expanded__E9rNh .MultiSelect-module_list-wrapper__aQWKE{background:var(--light)}.MultiSelect-module_select__y-QUg:not(.MultiSelect-module_expanded__E9rNh) .MultiSelect-module_custom-select__QumXf:focus:not(.MultiSelect-module_error__uPGpV){border:var(--input-border-width-focus) solid var(--color-focus);padding:0 calc(.5rem - var(--input-border-width-focus))}.MultiSelect-module_select__y-QUg:hover:not(.MultiSelect-module_disabled__nlmBY):not(.MultiSelect-module_expanded__E9rNh):not(.MultiSelect-module_error__uPGpV) .MultiSelect-module_custom-select__QumXf:not(:focus){background-color:var(--color-blue-grey25);border-color:var(--default);border-width:var(--input-border-width)}.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf{background-color:initial;border-color:var(--color-blue-grey500);border-radius:var(--input-border-radius);border-style:var(--input-border-style);border-width:var(--input-border-width);box-sizing:border-box;font-size:var(--form-control-font-size);min-height:calc(2.625rem - var(--input-border-width)*2);padding:0 calc(.5rem - var(--input-border-width));transition-duration:.2s;transition-property:all;transition-timing-function:ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf{transition-duration:.1ms}}.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf:focus{outline:0}.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf.MultiSelect-module_error__uPGpV{border-color:var(--error)}.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf.MultiSelect-module_error__uPGpV:focus{border-width:var(--input-border-width-focus)}.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf.MultiSelect-module_disabled__nlmBY{border-color:var(--color-disabled);pointer-events:none}.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf .MultiSelect-module_display-container__rwtMP{align-items:center;display:flex;flex:1;gap:.375rem;padding:.1875rem 0}.MultiSelect-module_select__y-QUg .MultiSelect-module_list-wrapper__aQWKE{border-color:var(--light-grey-border);border-radius:var(--input-border-radius);border-style:var(--input-border-style);border-width:var(--input-border-width);box-shadow:0 4px 5px 0 #01053233;box-shadow:0 3px 14px 0 rgba(1,5,50,.122);box-shadow:0 8px 10px 0 rgba(1,5,50,.141);left:0;overflow:auto;position:absolute;top:44px;width:100%;z-index:11}.MultiSelect-module_select__y-QUg ul{background-color:var(--light);border-radius:var(--input-border-radius);box-sizing:border-box;color:var(--default);list-style:none;margin:0;max-height:25rem;overflow:auto;padding:.25rem 0;text-align:left;width:100%}.MultiSelect-module_select__y-QUg ul li{box-sizing:border-box;cursor:pointer;font-size:var(--form-control-font-size);line-height:1.25rem;margin:0;min-height:2.5rem;padding:.62rem .75rem;position:relative}.MultiSelect-module_select__y-QUg ul li:after{background-color:initial;content:"";height:100%;left:0;opacity:.05;position:absolute;top:0;width:100%}.MultiSelect-module_select__y-QUg ul li.MultiSelect-module_focus__BZC-P,.MultiSelect-module_select__y-QUg ul li:focus{outline:none}.MultiSelect-module_select__y-QUg ul li.MultiSelect-module_focus__BZC-P:before,.MultiSelect-module_select__y-QUg ul li:focus:before{border-radius:var(--focus-border-radius);content:"";height:100%;left:.125rem;opacity:1;outline:.125rem solid var(--color-focus);outline-offset:0;position:absolute;top:0;width:calc(100% - .25rem);z-index:101}.MultiSelect-module_select__y-QUg ul li:active:after,.MultiSelect-module_select__y-QUg ul li:hover:after{background-color:var(--color-primary)}.MultiSelect-module_select__y-QUg ul li:active:after{opacity:.1}.MultiSelect-module_select__y-QUg ul li.MultiSelect-module_disabled__nlmBY{background-color:var(--disabled);color:var(--greyed-out);pointer-events:none}.MultiSelect-module_status__lsG4B{align-items:center;display:flex;padding:.3125rem}.MultiSelect-module_status__lsG4B [data-icon-status=success]{color:var(--success);font-size:1.25rem}.MultiSelect-module_status__lsG4B [data-icon-status=error]{color:var(--error);font-size:1.25rem}.MultiSelect-module_status__lsG4B .MultiSelect-module_chevron-icon__FwyQP{color:var(--default);font-size:.625rem}.MultiSelect-module_status__lsG4B *+*{margin-left:1.25rem}.MultiSelect-module_placeholder__TeCro{color:var(--greyed-out)}.MultiSelect-module_select-search__HgYiO{background-color:initial;border:0;border-bottom-left-radius:0;border-bottom-right-radius:0;box-sizing:border-box;color:var(--default);flex:1;font-family:var(--font-family);line-height:1.3333;margin:0;padding:0}.MultiSelect-module_select-search__HgYiO:focus,.MultiSelect-module_select-search__HgYiO:focus-visible{outline:none}.MultiSelect-module_disabled__nlmBY{background-color:var(--color-blue-grey25);color:var(--greyed-out);cursor:not-allowed}.MultiSelect-module_disabled__nlmBY>*{pointer-events:none}@media only screen and (min-width:30em){.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf{padding:0 calc(.5rem - var(--input-border-width))}.MultiSelect-module_select__y-QUg:not(.MultiSelect-module_expanded__E9rNh) .MultiSelect-module_custom-select__QumXf:focus:not(.MultiSelect-module_error__uPGpV){padding:0 calc(.5rem - var(--input-border-width-focus))}}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk11bHRpU2VsZWN0Lm1vZHVsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBQ0Y7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFDRjs7Ozs7Ozs7Ozs7Ozs7RUFjRSxDQUNGLG1DQU9FLGtCQUFzQixDQUN0QixRQUFTLENBTFQsVUFBVyxDQUVYLFdBQVksQ0FDWixlQUFnQixDQUZoQixTQUFVLENBSFYsaUJBQWtCLENBQ2xCLFNBT0YsQ0FFQSxrQ0FDRSxZQUNGLENBRUEsb0NBQ0UseURBQ0YsQ0FDQSx1Q0FDRSxvQ0FDRSx1QkFDRixDQUNGLENBRUEscUNBQ0UsMERBQ0YsQ0FDQSx1Q0FDRSxxQ0FDRSx1QkFDRixDQUNGLENBRUEsOENBQ0UsR0FDRSwyQkFDRixDQUNBLEdBQ0UsdUJBQ0YsQ0FDRixDQUNBLCtDQUNFLEdBQ0UsdUJBQ0YsQ0FDQSxHQUNFLDJCQUNGLENBQ0Y7QUFDQTs7Ozs7Ozs7Ozs7Ozs7RUFjRSxDQUNGLGtDQUtFLDhDQUErQyxDQUYvQyxRQUFTLENBQ1Qsd0NBQXlDLENBRnpDLHFCQUFzQixDQUl0Qix1Q0FBd0MsQ0FMeEMsaUJBQWtCLENBT2xCLHVCQUF5QixDQUR6Qix1QkFBd0IsQ0FFeEIsc0NBQ0YsQ0FDQSx1Q0FDRSxrQ0FDRSx3QkFDRixDQUNGLENBQ0EsaURBQ0UsMEJBQTJCLENBQzNCLDhCQUNGLENBQ0EsNkdBQ0UsdUJBQ0YsQ0FDQSxnS0FDRSwrREFBZ0UsQ0FDaEUsdURBQ0YsQ0FDQSxxTkFHRSx5Q0FBMEMsQ0FGMUMsMkJBQTRCLENBQzVCLHNDQUVGLENBQ0EsMkVBS0Usd0JBQTZCLENBQzdCLHNDQUF1QyxDQUd2Qyx3Q0FBeUMsQ0FGekMsc0NBQXVDLENBQ3ZDLHNDQUF1QyxDQVB2QyxxQkFBc0IsQ0FTdEIsdUNBQXdDLENBUHhDLHVEQUEwRCxDQUMxRCxpREFBbUQsQ0FRbkQsdUJBQXlCLENBRHpCLHVCQUF3QixDQUV4QixzQ0FBdUMsQ0FYdkMsVUFZRixDQUNBLHVDQUNFLDJFQUNFLHdCQUNGLENBQ0YsQ0FDQSxpRkFDRSxTQUNGLENBQ0EsMkdBQ0UseUJBQ0YsQ0FDQSxpSEFDRSw0Q0FDRixDQUNBLDhHQUNFLGtDQUFtQyxDQUNuQyxtQkFDRixDQUNBLHdIQUdFLGtCQUFtQixDQURuQixZQUFhLENBRGIsTUFBTyxDQUlQLFdBQWEsQ0FEYixrQkFFRixDQUNBLDBFQUNFLHFDQUFzQyxDQUd0Qyx3Q0FBeUMsQ0FGekMsc0NBQXVDLENBQ3ZDLHNDQUF1QyxDQUV2QyxnQ0FBK0MsQ0FDL0MseUNBQXlELENBQ3pELHlDQUF5RCxDQUl6RCxNQUFPLENBRVAsYUFBYyxDQUxkLGlCQUFrQixDQUVsQixRQUFTLENBRVQsVUFBVyxDQUhYLFVBS0YsQ0FDQSxxQ0FNRSw2QkFBOEIsQ0FDOUIsd0NBQXlDLENBTnpDLHFCQUFzQixDQU90QixvQkFBcUIsQ0FIckIsZUFBZ0IsQ0FEaEIsUUFBUyxDQU9ULGdCQUFpQixDQURqQixhQUFjLENBUmQsZ0JBQWtCLENBT2xCLGVBQWdCLENBTmhCLFVBU0YsQ0FDQSx3Q0FNRSxxQkFBc0IsQ0FFdEIsY0FBZSxDQU5mLHVDQUF3QyxDQUd4QyxtQkFBb0IsQ0FGcEIsUUFBUyxDQUlULGlCQUFrQixDQU5sQixxQkFBd0IsQ0FHeEIsaUJBS0YsQ0FDQSw4Q0FLRSx3QkFBNkIsQ0FKN0IsVUFBVyxDQU1YLFdBQVksQ0FIWixNQUFPLENBSVAsV0FBYSxDQU5iLGlCQUFrQixDQUNsQixLQUFNLENBR04sVUFHRixDQUNBLHNIQUNFLFlBQ0YsQ0FDQSxvSUFXRSx3Q0FBeUMsQ0FWekMsVUFBVyxDQUlYLFdBQVksQ0FEWixZQUFjLENBR2QsU0FBVSxDQUVWLHdDQUEwQyxDQUMxQyxnQkFBaUIsQ0FSakIsaUJBQWtCLENBQ2xCLEtBQU0sQ0FHTix5QkFBMkIsQ0FFM0IsV0FJRixDQUNBLHlHQUNFLHFDQUNGLENBQ0EscURBQ0UsVUFDRixDQUNBLDJFQUVFLGdDQUFpQyxDQURqQyx1QkFBd0IsQ0FFeEIsbUJBQ0YsQ0FFQSxrQ0FHRSxrQkFBbUIsQ0FEbkIsWUFBYSxDQURiLGdCQUdGLENBQ0EsNkRBQ0Usb0JBQXFCLENBQ3JCLGlCQUNGLENBQ0EsMkRBQ0Usa0JBQW1CLENBQ25CLGlCQUNGLENBQ0EsMEVBQ0Usb0JBQXFCLENBQ3JCLGlCQUNGLENBQ0Esc0NBQ0UsbUJBQ0YsQ0FFQSx1Q0FDRSx1QkFDRixDQUVBLHlDQU1FLHdCQUE2QixDQUQ3QixRQUFTLENBRlQsMkJBQTRCLENBQzVCLDRCQUE2QixDQUY3QixxQkFBc0IsQ0FLdEIsb0JBQXFCLENBTnJCLE1BQU8sQ0FPUCw4QkFBK0IsQ0FDL0Isa0JBQW1CLENBQ25CLFFBQVMsQ0FDVCxTQUNGLENBQ0Esc0dBQ0UsWUFDRixDQUVBLG9DQUdFLHlDQUEwQyxDQUQxQyx1QkFBd0IsQ0FEeEIsa0JBR0YsQ0FDQSxzQ0FDRSxtQkFDRixDQUVBLHdDQUNFLDJFQUNFLGlEQUNGLENBQ0EsZ0tBQ0UsdURBQ0YsQ0FDRiIsImZpbGUiOiJNdWx0aVNlbGVjdC5tb2R1bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IDIwMjIgT25lV2VsY29tZSBCLlYuXG4gKlxuICogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiFcbiAqIENvcHlyaWdodCAyMDIyIE9uZVdlbGNvbWUgQi5WLlxuICpcbiAqICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyohXG4gKiBDb3B5cmlnaHQgMjAyMiBPbmVXZWxjb21lIEIuVi5cbiAqXG4gKiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBib3JkZXI6IDA7XG59XG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2xpZGUtaW4ge1xuICBhbmltYXRpb246IHNsaWRlLWluIDAuNXMgZm9yd2FyZHM7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuc2xpZGUtaW4ge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4xbXM7XG4gIH1cbn1cblxuLnNsaWRlLW91dCB7XG4gIGFuaW1hdGlvbjogc2xpZGUtb3V0IDAuNXMgZm9yd2FyZHM7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuc2xpZGUtb3V0IHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMW1zO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtaW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHZoKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNsaWRlLW91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDB2aCk7XG4gIH1cbn1cbi8qIVxuICogQ29weXJpZ2h0IDIwMjIgT25lV2VsY29tZSBCLlYuXG4gKlxuICogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4uc2VsZWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWNvbnRyb2wtZm9udC1zaXplKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuc2VsZWN0IHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjFtcztcbiAgfVxufVxuLnNlbGVjdCBbZGF0YS1kaXNwbGF5XSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1kZWZhdWx0KTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5KTtcbn1cbi5zZWxlY3QuZXhwYW5kZWQgLmxpc3Qtd3JhcHBlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0KTtcbn1cbi5zZWxlY3Q6bm90KC5leHBhbmRlZCkgLmN1c3RvbS1zZWxlY3Q6Zm9jdXM6bm90KC5lcnJvcikge1xuICBib3JkZXI6IHZhcigtLWlucHV0LWJvcmRlci13aWR0aC1mb2N1cykgc29saWQgdmFyKC0tY29sb3ItZm9jdXMpO1xuICBwYWRkaW5nOiAwIGNhbGMoMC41cmVtIC0gdmFyKC0taW5wdXQtYm9yZGVyLXdpZHRoLWZvY3VzKSk7XG59XG4uc2VsZWN0OmhvdmVyOm5vdCguZGlzYWJsZWQpOm5vdCguZXhwYW5kZWQpOm5vdCguZXJyb3IpIC5jdXN0b20tc2VsZWN0Om5vdCg6Zm9jdXMpIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWZhdWx0KTtcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1pbnB1dC1ib3JkZXItd2lkdGgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLWdyZXkyNSk7XG59XG4uc2VsZWN0IC5jdXN0b20tc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMi42MjVyZW0gLSAyICogdmFyKC0taW5wdXQtYm9yZGVyLXdpZHRoKSk7XG4gIHBhZGRpbmc6IDAgY2FsYygwLjVyZW0gLSB2YXIoLS1pbnB1dC1ib3JkZXItd2lkdGgpKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmx1ZS1ncmV5NTAwKTtcbiAgYm9yZGVyLXN0eWxlOiB2YXIoLS1pbnB1dC1ib3JkZXItc3R5bGUpO1xuICBib3JkZXItd2lkdGg6IHZhcigtLWlucHV0LWJvcmRlci13aWR0aCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuICBmb250LXNpemU6IHZhcigtLWZvcm0tY29udHJvbC1mb250LXNpemUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5zZWxlY3QgLmN1c3RvbS1zZWxlY3Qge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMW1zO1xuICB9XG59XG4uc2VsZWN0IC5jdXN0b20tc2VsZWN0OmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5zZWxlY3QgLmN1c3RvbS1zZWxlY3QuZXJyb3Ige1xuICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTtcbn1cbi5zZWxlY3QgLmN1c3RvbS1zZWxlY3QuZXJyb3I6Zm9jdXMge1xuICBib3JkZXItd2lkdGg6IHZhcigtLWlucHV0LWJvcmRlci13aWR0aC1mb2N1cyk7XG59XG4uc2VsZWN0IC5jdXN0b20tc2VsZWN0LmRpc2FibGVkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1kaXNhYmxlZCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNlbGVjdCAuY3VzdG9tLXNlbGVjdCAuZGlzcGxheS1jb250YWluZXIge1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjE4NzVyZW0gMDtcbiAgZ2FwOiAwLjM3NXJlbTtcbn1cbi5zZWxlY3QgLmxpc3Qtd3JhcHBlciB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tbGlnaHQtZ3JleS1ib3JkZXIpO1xuICBib3JkZXItc3R5bGU6IHZhcigtLWlucHV0LWJvcmRlci1zdHlsZSk7XG4gIGJvcmRlci13aWR0aDogdmFyKC0taW5wdXQtYm9yZGVyLXdpZHRoKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XG4gIGJveC1zaGFkb3c6IDBweCA0cHggNXB4IDBweCByZ2JhKDEsIDUsIDUwLCAwLjIpO1xuICBib3gtc2hhZG93OiAwcHggM3B4IDE0cHggMHB4IHJnYmEoMSwgNSwgNTAsIDAuMTIxNTY4NjI3NSk7XG4gIGJveC1zaGFkb3c6IDBweCA4cHggMTBweCAwcHggcmdiYSgxLCA1LCA1MCwgMC4xNDExNzY0NzA2KTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB6LWluZGV4OiAxMTtcbiAgdG9wOiA0NHB4O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4uc2VsZWN0IHVsIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMC4yNXJlbSAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saWdodCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuICBjb2xvcjogdmFyKC0tZGVmYXVsdCk7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIG92ZXJmbG93OiBhdXRvO1xuICBtYXgtaGVpZ2h0OiAyNXJlbTtcbn1cbi5zZWxlY3QgdWwgbGkge1xuICBwYWRkaW5nOiAwLjYycmVtIDAuNzVyZW07XG4gIGZvbnQtc2l6ZTogdmFyKC0tZm9ybS1jb250cm9sLWZvbnQtc2l6ZSk7XG4gIG1hcmdpbjogMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMS4yNXJlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWluLWhlaWdodDogMi41cmVtO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG4uc2VsZWN0IHVsIGxpOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvcGFjaXR5OiAwLjA1O1xufVxuLnNlbGVjdCB1bCBsaTpmb2N1cywgLnNlbGVjdCB1bCBsaS5mb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG4uc2VsZWN0IHVsIGxpOmZvY3VzOjpiZWZvcmUsIC5zZWxlY3QgdWwgbGkuZm9jdXM6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwLjEyNXJlbTtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogY2FsYygxMDAlIC0gMC4yNXJlbSk7XG4gIG9wYWNpdHk6IDE7XG4gIHotaW5kZXg6IDEwMTtcbiAgb3V0bGluZTogMC4xMjVyZW0gc29saWQgdmFyKC0tY29sb3ItZm9jdXMpO1xuICBvdXRsaW5lLW9mZnNldDogMDtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tZm9jdXMtYm9yZGVyLXJhZGl1cyk7XG59XG4uc2VsZWN0IHVsIGxpOmhvdmVyOmFmdGVyLCAuc2VsZWN0IHVsIGxpOmFjdGl2ZTphZnRlciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLXByaW1hcnkpO1xufVxuLnNlbGVjdCB1bCBsaTphY3RpdmU6YWZ0ZXIge1xuICBvcGFjaXR5OiAwLjE7XG59XG4uc2VsZWN0IHVsIGxpLmRpc2FibGVkIHtcbiAgY29sb3I6IHZhcigtLWdyZXllZC1vdXQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1kaXNhYmxlZCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc3RhdHVzIHtcbiAgcGFkZGluZzogMC4zMTI1cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuLnN0YXR1cyBbZGF0YS1pY29uLXN0YXR1cz1zdWNjZXNzXSB7XG4gIGNvbG9yOiB2YXIoLS1zdWNjZXNzKTtcbiAgZm9udC1zaXplOiAxLjI1cmVtO1xufVxuLnN0YXR1cyBbZGF0YS1pY29uLXN0YXR1cz1lcnJvcl0ge1xuICBjb2xvcjogdmFyKC0tZXJyb3IpO1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG4uc3RhdHVzIC5jaGV2cm9uLWljb24ge1xuICBjb2xvcjogdmFyKC0tZGVmYXVsdCk7XG4gIGZvbnQtc2l6ZTogMC42MjVyZW07XG59XG4uc3RhdHVzICogKyAqIHtcbiAgbWFyZ2luLWxlZnQ6IDEuMjVyZW07XG59XG5cbi5wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiB2YXIoLS1ncmV5ZWQtb3V0KTtcbn1cblxuLnNlbGVjdC1zZWFyY2gge1xuICBmbGV4OiAxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgYm9yZGVyOiAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgY29sb3I6IHZhcigtLWRlZmF1bHQpO1xuICBmb250LWZhbWlseTogdmFyKC0tZm9udC1mYW1pbHkpO1xuICBsaW5lLWhlaWdodDogMS4zMzMzO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG4uc2VsZWN0LXNlYXJjaDpmb2N1cy12aXNpYmxlLCAuc2VsZWN0LXNlYXJjaDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbi5kaXNhYmxlZCB7XG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIGNvbG9yOiB2YXIoLS1ncmV5ZWQtb3V0KTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYmx1ZS1ncmV5MjUpO1xufVxuLmRpc2FibGVkID4gKiB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgLnNlbGVjdCAuY3VzdG9tLXNlbGVjdCB7XG4gICAgcGFkZGluZzogMCBjYWxjKDAuNXJlbSAtIHZhcigtLWlucHV0LWJvcmRlci13aWR0aCkpO1xuICB9XG4gIC5zZWxlY3Q6bm90KC5leHBhbmRlZCkgLmN1c3RvbS1zZWxlY3Q6Zm9jdXM6bm90KC5lcnJvcikge1xuICAgIHBhZGRpbmc6IDAgY2FsYygwLjVyZW0gLSB2YXIoLS1pbnB1dC1ib3JkZXItd2lkdGgtZm9jdXMpKTtcbiAgfVxufSJdfQ== */'),exports.default={"sr-only":"MultiSelect-module_sr-only__75-oC",hidden:"MultiSelect-module_hidden__-Ckqq","slide-in":"MultiSelect-module_slide-in__Rzibv","slide-out":"MultiSelect-module_slide-out__U1BmE",select:"MultiSelect-module_select__y-QUg",expanded:"MultiSelect-module_expanded__E9rNh","list-wrapper":"MultiSelect-module_list-wrapper__aQWKE","custom-select":"MultiSelect-module_custom-select__QumXf",error:"MultiSelect-module_error__uPGpV",disabled:"MultiSelect-module_disabled__nlmBY","display-container":"MultiSelect-module_display-container__rwtMP",focus:"MultiSelect-module_focus__BZC-P",status:"MultiSelect-module_status__lsG4B","chevron-icon":"MultiSelect-module_chevron-icon__FwyQP",placeholder:"MultiSelect-module_placeholder__TeCro","select-search":"MultiSelect-module_select-search__HgYiO"};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});require("../../../node_modules/style-inject/dist/style-inject.es.cjs.js").default('/*!\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*!\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/*!\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.MultiSelect-module_sr-only__75-oC{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.MultiSelect-module_hidden__-Ckqq{display:none}.MultiSelect-module_slide-in__Rzibv{animation:MultiSelect-module_slide-in__Rzibv .5s forwards}@media (prefers-reduced-motion:reduce){.MultiSelect-module_slide-in__Rzibv{animation-duration:.1ms}}.MultiSelect-module_slide-out__U1BmE{animation:MultiSelect-module_slide-out__U1BmE .5s forwards}@media (prefers-reduced-motion:reduce){.MultiSelect-module_slide-out__U1BmE{animation-duration:.1ms}}@keyframes MultiSelect-module_slide-in__Rzibv{0%{transform:translateY(100vh)}to{transform:translateY(0)}}@keyframes MultiSelect-module_slide-out__U1BmE{0%{transform:translateY(0)}to{transform:translateY(100vh)}}\n/*!\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.MultiSelect-module_select__y-QUg{background-color:var(--input-background-color);border:0;border-radius:var(--input-border-radius);box-sizing:border-box;font-size:var(--form-control-font-size);position:relative;transition-duration:.2s;transition-property:all;transition-timing-function:ease-in-out}@media (prefers-reduced-motion:reduce){.MultiSelect-module_select__y-QUg{transition-duration:.1ms}}.MultiSelect-module_select__y-QUg [data-display]{color:var(--color-default);font-family:var(--font-family)}.MultiSelect-module_select__y-QUg.MultiSelect-module_expanded__E9rNh .MultiSelect-module_list-wrapper__aQWKE{background:var(--light)}.MultiSelect-module_select__y-QUg:not(.MultiSelect-module_expanded__E9rNh) .MultiSelect-module_custom-select__QumXf:focus:not(.MultiSelect-module_error__uPGpV){border:var(--input-border-width-focus) solid var(--color-focus);padding:0 calc(.5rem - var(--input-border-width-focus))}.MultiSelect-module_select__y-QUg:hover:not(.MultiSelect-module_disabled__nlmBY):not(.MultiSelect-module_expanded__E9rNh):not(.MultiSelect-module_error__uPGpV) .MultiSelect-module_custom-select__QumXf:not(:focus){background-color:var(--color-blue-grey25);border-color:var(--default);border-width:var(--input-border-width)}.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf{background-color:initial;border-color:var(--color-blue-grey500);border-radius:var(--input-border-radius);border-style:var(--input-border-style);border-width:var(--input-border-width);box-sizing:border-box;font-size:var(--form-control-font-size);min-height:calc(2.625rem - var(--input-border-width)*2);padding:0 calc(.5rem - var(--input-border-width));transition-duration:.2s;transition-property:all;transition-timing-function:ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf{transition-duration:.1ms}}.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf:focus{outline:0}.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf.MultiSelect-module_error__uPGpV{border-color:var(--error)}.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf.MultiSelect-module_error__uPGpV:focus{border-width:var(--input-border-width-focus)}.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf.MultiSelect-module_disabled__nlmBY{border-color:var(--color-disabled);pointer-events:none}.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf .MultiSelect-module_display-container__rwtMP{align-items:center;display:flex;flex:1;gap:.375rem;padding:.1875rem 0}.MultiSelect-module_select__y-QUg .MultiSelect-module_list-wrapper-container__mMZns{position:relative}.MultiSelect-module_select__y-QUg .MultiSelect-module_list-wrapper__aQWKE{border-color:var(--light-grey-border);border-radius:var(--input-border-radius);border-style:var(--input-border-style);border-width:var(--input-border-width);box-shadow:0 4px 5px 0 #01053233;box-shadow:0 3px 14px 0 rgba(1,5,50,.122);box-shadow:0 8px 10px 0 rgba(1,5,50,.141);left:0;overflow:auto;position:absolute;width:100%;z-index:11}.MultiSelect-module_select__y-QUg ul{background-color:var(--light);border-radius:var(--input-border-radius);box-sizing:border-box;color:var(--default);list-style:none;margin:0;max-height:25rem;overflow:auto;padding:.25rem 0;text-align:left;width:100%}.MultiSelect-module_select__y-QUg ul li{box-sizing:border-box;cursor:pointer;font-size:var(--form-control-font-size);line-height:1.25rem;margin:0;min-height:2.5rem;padding:.62rem .75rem;position:relative}.MultiSelect-module_select__y-QUg ul li:after{background-color:initial;content:"";height:100%;left:0;opacity:.05;position:absolute;top:0;width:100%}.MultiSelect-module_select__y-QUg ul li.MultiSelect-module_focus__BZC-P,.MultiSelect-module_select__y-QUg ul li:focus{outline:none}.MultiSelect-module_select__y-QUg ul li.MultiSelect-module_focus__BZC-P:before,.MultiSelect-module_select__y-QUg ul li:focus:before{border-radius:var(--focus-border-radius);content:"";height:100%;left:.125rem;opacity:1;outline:.125rem solid var(--color-focus);outline-offset:0;position:absolute;top:0;width:calc(100% - .25rem);z-index:101}.MultiSelect-module_select__y-QUg ul li:active:after,.MultiSelect-module_select__y-QUg ul li:hover:after{background-color:var(--color-primary)}.MultiSelect-module_select__y-QUg ul li:active:after{opacity:.1}.MultiSelect-module_select__y-QUg ul li.MultiSelect-module_disabled__nlmBY{background-color:var(--disabled);color:var(--greyed-out);pointer-events:none}.MultiSelect-module_status__lsG4B{align-items:center;display:flex;padding:.3125rem}.MultiSelect-module_status__lsG4B [data-icon-status=success]{color:var(--success);font-size:1.25rem}.MultiSelect-module_status__lsG4B [data-icon-status=error]{color:var(--error);font-size:1.25rem}.MultiSelect-module_status__lsG4B .MultiSelect-module_chevron-icon__FwyQP{color:var(--default);font-size:.625rem}.MultiSelect-module_status__lsG4B *+*{margin-left:1.25rem}.MultiSelect-module_placeholder__TeCro{color:var(--greyed-out)}.MultiSelect-module_select-search__HgYiO{background-color:initial;border:0;border-bottom-left-radius:0;border-bottom-right-radius:0;box-sizing:border-box;color:var(--default);flex:1;font-family:var(--font-family);line-height:1.3333;margin:0;padding:0}.MultiSelect-module_select-search__HgYiO:focus,.MultiSelect-module_select-search__HgYiO:focus-visible{outline:none}.MultiSelect-module_disabled__nlmBY{background-color:var(--color-blue-grey25);color:var(--greyed-out);cursor:not-allowed}.MultiSelect-module_disabled__nlmBY>*{pointer-events:none}@media only screen and (min-width:30em){.MultiSelect-module_select__y-QUg .MultiSelect-module_custom-select__QumXf{padding:0 calc(.5rem - var(--input-border-width))}.MultiSelect-module_select__y-QUg:not(.MultiSelect-module_expanded__E9rNh) .MultiSelect-module_custom-select__QumXf:focus:not(.MultiSelect-module_error__uPGpV){padding:0 calc(.5rem - var(--input-border-width-focus))}}[data-readonlyview=true] .MultiSelect-module_custom-select__QumXf{background-color:var(--color-white);border-color:var(--read-only-border-color);color:var(--read-only-text-color)}[data-readonlyview=true] .MultiSelect-module_custom-select__QumXf.MultiSelect-module_error__uPGpV,[data-readonlyview=true] .MultiSelect-module_custom-select__QumXf.MultiSelect-module_success__0ejtW{border-color:var(--read-only-border-color)}[data-readonlyview=true] .MultiSelect-module_custom-select__QumXf button{pointer-events:none}[data-readonlyview=true] .MultiSelect-module_status__lsG4B .MultiSelect-module_chevron-icon__FwyQP{visibility:hidden}[data-readonlyview=true]:hover:not(.MultiSelect-module_disabled__nlmBY):not(.MultiSelect-module_expanded__E9rNh):not(.MultiSelect-module_error__uPGpV) .MultiSelect-module_custom-select__QumXf:not(:focus){background-color:var(--color-white);border-color:var(--read-only-border-color);color:var(--read-only-text-color)}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk11bHRpU2VsZWN0Lm1vZHVsZS5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBQ0Y7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFDRjs7Ozs7Ozs7Ozs7Ozs7RUFjRSxDQUNGLG1DQU9FLGtCQUFzQixDQUN0QixRQUFTLENBTFQsVUFBVyxDQUVYLFdBQVksQ0FDWixlQUFnQixDQUZoQixTQUFVLENBSFYsaUJBQWtCLENBQ2xCLFNBT0YsQ0FFQSxrQ0FDRSxZQUNGLENBRUEsb0NBQ0UseURBQ0YsQ0FDQSx1Q0FDRSxvQ0FDRSx1QkFDRixDQUNGLENBRUEscUNBQ0UsMERBQ0YsQ0FDQSx1Q0FDRSxxQ0FDRSx1QkFDRixDQUNGLENBRUEsOENBQ0UsR0FDRSwyQkFDRixDQUNBLEdBQ0UsdUJBQ0YsQ0FDRixDQUNBLCtDQUNFLEdBQ0UsdUJBQ0YsQ0FDQSxHQUNFLDJCQUNGLENBQ0Y7QUFDQTs7Ozs7Ozs7Ozs7Ozs7RUFjRSxDQUNGLGtDQUtFLDhDQUErQyxDQUYvQyxRQUFTLENBQ1Qsd0NBQXlDLENBRnpDLHFCQUFzQixDQUl0Qix1Q0FBd0MsQ0FMeEMsaUJBQWtCLENBT2xCLHVCQUF5QixDQUR6Qix1QkFBd0IsQ0FFeEIsc0NBQ0YsQ0FDQSx1Q0FDRSxrQ0FDRSx3QkFDRixDQUNGLENBQ0EsaURBQ0UsMEJBQTJCLENBQzNCLDhCQUNGLENBQ0EsNkdBQ0UsdUJBQ0YsQ0FDQSxnS0FDRSwrREFBZ0UsQ0FDaEUsdURBQ0YsQ0FDQSxxTkFHRSx5Q0FBMEMsQ0FGMUMsMkJBQTRCLENBQzVCLHNDQUVGLENBQ0EsMkVBS0Usd0JBQTZCLENBQzdCLHNDQUF1QyxDQUd2Qyx3Q0FBeUMsQ0FGekMsc0NBQXVDLENBQ3ZDLHNDQUF1QyxDQVB2QyxxQkFBc0IsQ0FTdEIsdUNBQXdDLENBUHhDLHVEQUEwRCxDQUMxRCxpREFBbUQsQ0FRbkQsdUJBQXlCLENBRHpCLHVCQUF3QixDQUV4QixzQ0FBdUMsQ0FYdkMsVUFZRixDQUNBLHVDQUNFLDJFQUNFLHdCQUNGLENBQ0YsQ0FDQSxpRkFDRSxTQUNGLENBQ0EsMkdBQ0UseUJBQ0YsQ0FDQSxpSEFDRSw0Q0FDRixDQUNBLDhHQUNFLGtDQUFtQyxDQUNuQyxtQkFDRixDQUNBLHdIQUdFLGtCQUFtQixDQURuQixZQUFhLENBRGIsTUFBTyxDQUlQLFdBQWEsQ0FEYixrQkFFRixDQUNBLG9GQUNFLGlCQUNGLENBQ0EsMEVBQ0UscUNBQXNDLENBR3RDLHdDQUF5QyxDQUZ6QyxzQ0FBdUMsQ0FDdkMsc0NBQXVDLENBRXZDLGdDQUErQyxDQUMvQyx5Q0FBeUQsQ0FDekQseUNBQXlELENBR3pELE1BQU8sQ0FFUCxhQUFjLENBSmQsaUJBQWtCLENBR2xCLFVBQVcsQ0FGWCxVQUlGLENBQ0EscUNBTUUsNkJBQThCLENBQzlCLHdDQUF5QyxDQU56QyxxQkFBc0IsQ0FPdEIsb0JBQXFCLENBSHJCLGVBQWdCLENBRGhCLFFBQVMsQ0FPVCxnQkFBaUIsQ0FEakIsYUFBYyxDQVJkLGdCQUFrQixDQU9sQixlQUFnQixDQU5oQixVQVNGLENBQ0Esd0NBTUUscUJBQXNCLENBRXRCLGNBQWUsQ0FOZix1Q0FBd0MsQ0FHeEMsbUJBQW9CLENBRnBCLFFBQVMsQ0FJVCxpQkFBa0IsQ0FObEIscUJBQXdCLENBR3hCLGlCQUtGLENBQ0EsOENBS0Usd0JBQTZCLENBSjdCLFVBQVcsQ0FNWCxXQUFZLENBSFosTUFBTyxDQUlQLFdBQWEsQ0FOYixpQkFBa0IsQ0FDbEIsS0FBTSxDQUdOLFVBR0YsQ0FDQSxzSEFDRSxZQUNGLENBQ0Esb0lBV0Usd0NBQXlDLENBVnpDLFVBQVcsQ0FJWCxXQUFZLENBRFosWUFBYyxDQUdkLFNBQVUsQ0FFVix3Q0FBMEMsQ0FDMUMsZ0JBQWlCLENBUmpCLGlCQUFrQixDQUNsQixLQUFNLENBR04seUJBQTJCLENBRTNCLFdBSUYsQ0FDQSx5R0FDRSxxQ0FDRixDQUNBLHFEQUNFLFVBQ0YsQ0FDQSwyRUFFRSxnQ0FBaUMsQ0FEakMsdUJBQXdCLENBRXhCLG1CQUNGLENBRUEsa0NBR0Usa0JBQW1CLENBRG5CLFlBQWEsQ0FEYixnQkFHRixDQUNBLDZEQUNFLG9CQUFxQixDQUNyQixpQkFDRixDQUNBLDJEQUNFLGtCQUFtQixDQUNuQixpQkFDRixDQUNBLDBFQUNFLG9CQUFxQixDQUNyQixpQkFDRixDQUNBLHNDQUNFLG1CQUNGLENBRUEsdUNBQ0UsdUJBQ0YsQ0FFQSx5Q0FNRSx3QkFBNkIsQ0FEN0IsUUFBUyxDQUZULDJCQUE0QixDQUM1Qiw0QkFBNkIsQ0FGN0IscUJBQXNCLENBS3RCLG9CQUFxQixDQU5yQixNQUFPLENBT1AsOEJBQStCLENBQy9CLGtCQUFtQixDQUNuQixRQUFTLENBQ1QsU0FDRixDQUNBLHNHQUNFLFlBQ0YsQ0FFQSxvQ0FHRSx5Q0FBMEMsQ0FEMUMsdUJBQXdCLENBRHhCLGtCQUdGLENBQ0Esc0NBQ0UsbUJBQ0YsQ0FFQSx3Q0FDRSwyRUFDRSxpREFDRixDQUNBLGdLQUNFLHVEQUNGLENBQ0YsQ0FDQSxrRUFHRSxtQ0FBb0MsQ0FEcEMsMENBQTJDLENBRDNDLGlDQUdGLENBQ0Esc01BQ0UsMENBQ0YsQ0FDQSx5RUFDRSxtQkFDRixDQUNBLG1HQUNFLGlCQUNGLENBQ0EsNE1BR0UsbUNBQW9DLENBRHBDLDBDQUEyQyxDQUQzQyxpQ0FHRiIsImZpbGUiOiJNdWx0aVNlbGVjdC5tb2R1bGUuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQ29weXJpZ2h0IDIwMjIgT25lV2VsY29tZSBCLlYuXG4gKlxuICogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKiFcbiAqIENvcHlyaWdodCAyMDIyIE9uZVdlbGNvbWUgQi5WLlxuICpcbiAqICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLyohXG4gKiBDb3B5cmlnaHQgMjAyMiBPbmVXZWxjb21lIEIuVi5cbiAqXG4gKiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi5zci1vbmx5IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBib3JkZXI6IDA7XG59XG5cbi5oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4uc2xpZGUtaW4ge1xuICBhbmltYXRpb246IHNsaWRlLWluIDAuNXMgZm9yd2FyZHM7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuc2xpZGUtaW4ge1xuICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogMC4xbXM7XG4gIH1cbn1cblxuLnNsaWRlLW91dCB7XG4gIGFuaW1hdGlvbjogc2xpZGUtb3V0IDAuNXMgZm9yd2FyZHM7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuc2xpZGUtb3V0IHtcbiAgICBhbmltYXRpb24tZHVyYXRpb246IDAuMW1zO1xuICB9XG59XG5cbkBrZXlmcmFtZXMgc2xpZGUtaW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDEwMHZoKTtcbiAgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG59XG5Aa2V5ZnJhbWVzIHNsaWRlLW91dCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMDB2aCk7XG4gIH1cbn1cbi8qIVxuICogQ29weXJpZ2h0IDIwMjIgT25lV2VsY29tZSBCLlYuXG4gKlxuICogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4uc2VsZWN0IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3JkZXI6IDA7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWNvbnRyb2wtZm9udC1zaXplKTtcbiAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYWxsO1xuICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjJzO1xuICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7XG59XG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuc2VsZWN0IHtcbiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAwLjFtcztcbiAgfVxufVxuLnNlbGVjdCBbZGF0YS1kaXNwbGF5XSB7XG4gIGNvbG9yOiB2YXIoLS1jb2xvci1kZWZhdWx0KTtcbiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZmFtaWx5KTtcbn1cbi5zZWxlY3QuZXhwYW5kZWQgLmxpc3Qtd3JhcHBlciB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWxpZ2h0KTtcbn1cbi5zZWxlY3Q6bm90KC5leHBhbmRlZCkgLmN1c3RvbS1zZWxlY3Q6Zm9jdXM6bm90KC5lcnJvcikge1xuICBib3JkZXI6IHZhcigtLWlucHV0LWJvcmRlci13aWR0aC1mb2N1cykgc29saWQgdmFyKC0tY29sb3ItZm9jdXMpO1xuICBwYWRkaW5nOiAwIGNhbGMoMC41cmVtIC0gdmFyKC0taW5wdXQtYm9yZGVyLXdpZHRoLWZvY3VzKSk7XG59XG4uc2VsZWN0OmhvdmVyOm5vdCguZGlzYWJsZWQpOm5vdCguZXhwYW5kZWQpOm5vdCguZXJyb3IpIC5jdXN0b20tc2VsZWN0Om5vdCg6Zm9jdXMpIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1kZWZhdWx0KTtcbiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1pbnB1dC1ib3JkZXItd2lkdGgpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLWdyZXkyNSk7XG59XG4uc2VsZWN0IC5jdXN0b20tc2VsZWN0IHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoMi42MjVyZW0gLSAyICogdmFyKC0taW5wdXQtYm9yZGVyLXdpZHRoKSk7XG4gIHBhZGRpbmc6IDAgY2FsYygwLjVyZW0gLSB2YXIoLS1pbnB1dC1ib3JkZXItd2lkdGgpKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3ItYmx1ZS1ncmV5NTAwKTtcbiAgYm9yZGVyLXN0eWxlOiB2YXIoLS1pbnB1dC1ib3JkZXItc3R5bGUpO1xuICBib3JkZXItd2lkdGg6IHZhcigtLWlucHV0LWJvcmRlci13aWR0aCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuICBmb250LXNpemU6IHZhcigtLWZvcm0tY29udHJvbC1mb250LXNpemUpO1xuICB0cmFuc2l0aW9uLXByb3BlcnR5OiBhbGw7XG4gIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMnM7XG4gIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluLW91dDtcbn1cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gIC5zZWxlY3QgLmN1c3RvbS1zZWxlY3Qge1xuICAgIHRyYW5zaXRpb24tZHVyYXRpb246IDAuMW1zO1xuICB9XG59XG4uc2VsZWN0IC5jdXN0b20tc2VsZWN0OmZvY3VzIHtcbiAgb3V0bGluZTogMDtcbn1cbi5zZWxlY3QgLmN1c3RvbS1zZWxlY3QuZXJyb3Ige1xuICBib3JkZXItY29sb3I6IHZhcigtLWVycm9yKTtcbn1cbi5zZWxlY3QgLmN1c3RvbS1zZWxlY3QuZXJyb3I6Zm9jdXMge1xuICBib3JkZXItd2lkdGg6IHZhcigtLWlucHV0LWJvcmRlci13aWR0aC1mb2N1cyk7XG59XG4uc2VsZWN0IC5jdXN0b20tc2VsZWN0LmRpc2FibGVkIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xvci1kaXNhYmxlZCk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNlbGVjdCAuY3VzdG9tLXNlbGVjdCAuZGlzcGxheS1jb250YWluZXIge1xuICBmbGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwLjE4NzVyZW0gMDtcbiAgZ2FwOiAwLjM3NXJlbTtcbn1cbi5zZWxlY3QgLmxpc3Qtd3JhcHBlci1jb250YWluZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4uc2VsZWN0IC5saXN0LXdyYXBwZXIge1xuICBib3JkZXItY29sb3I6IHZhcigtLWxpZ2h0LWdyZXktYm9yZGVyKTtcbiAgYm9yZGVyLXN0eWxlOiB2YXIoLS1pbnB1dC1ib3JkZXItc3R5bGUpO1xuICBib3JkZXItd2lkdGg6IHZhcigtLWlucHV0LWJvcmRlci13aWR0aCk7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLWlucHV0LWJvcmRlci1yYWRpdXMpO1xuICBib3gtc2hhZG93OiAwcHggNHB4IDVweCAwcHggcmdiYSgxLCA1LCA1MCwgMC4yKTtcbiAgYm94LXNoYWRvdzogMHB4IDNweCAxNHB4IDBweCByZ2JhKDEsIDUsIDUwLCAwLjEyMTU2ODYyNzUpO1xuICBib3gtc2hhZG93OiAwcHggOHB4IDEwcHggMHB4IHJnYmEoMSwgNSwgNTAsIDAuMTQxMTc2NDcwNik7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTE7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogYXV0bztcbn1cbi5zZWxlY3QgdWwge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAwLjI1cmVtIDA7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWxpZ2h0KTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0taW5wdXQtYm9yZGVyLXJhZGl1cyk7XG4gIGNvbG9yOiB2YXIoLS1kZWZhdWx0KTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIG1heC1oZWlnaHQ6IDI1cmVtO1xufVxuLnNlbGVjdCB1bCBsaSB7XG4gIHBhZGRpbmc6IDAuNjJyZW0gMC43NXJlbTtcbiAgZm9udC1zaXplOiB2YXIoLS1mb3JtLWNvbnRyb2wtZm9udC1zaXplKTtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1cmVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiAyLjVyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cbi5zZWxlY3QgdWwgbGk6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG9wYWNpdHk6IDAuMDU7XG59XG4uc2VsZWN0IHVsIGxpOmZvY3VzLCAuc2VsZWN0IHVsIGxpLmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cbi5zZWxlY3QgdWwgbGk6Zm9jdXM6OmJlZm9yZSwgLnNlbGVjdCB1bCBsaS5mb2N1czo6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDAuMTI1cmVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiBjYWxjKDEwMCUgLSAwLjI1cmVtKTtcbiAgb3BhY2l0eTogMTtcbiAgei1pbmRleDogMTAxO1xuICBvdXRsaW5lOiAwLjEyNXJlbSBzb2xpZCB2YXIoLS1jb2xvci1mb2N1cyk7XG4gIG91dGxpbmUtb2Zmc2V0OiAwO1xuICBib3JkZXItcmFkaXVzOiB2YXIoLS1mb2N1cy1ib3JkZXItcmFkaXVzKTtcbn1cbi5zZWxlY3QgdWwgbGk6aG92ZXI6YWZ0ZXIsIC5zZWxlY3QgdWwgbGk6YWN0aXZlOmFmdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItcHJpbWFyeSk7XG59XG4uc2VsZWN0IHVsIGxpOmFjdGl2ZTphZnRlciB7XG4gIG9wYWNpdHk6IDAuMTtcbn1cbi5zZWxlY3QgdWwgbGkuZGlzYWJsZWQge1xuICBjb2xvcjogdmFyKC0tZ3JleWVkLW91dCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWRpc2FibGVkKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zdGF0dXMge1xuICBwYWRkaW5nOiAwLjMxMjVyZW07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG4uc3RhdHVzIFtkYXRhLWljb24tc3RhdHVzPXN1Y2Nlc3NdIHtcbiAgY29sb3I6IHZhcigtLXN1Y2Nlc3MpO1xuICBmb250LXNpemU6IDEuMjVyZW07XG59XG4uc3RhdHVzIFtkYXRhLWljb24tc3RhdHVzPWVycm9yXSB7XG4gIGNvbG9yOiB2YXIoLS1lcnJvcik7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbn1cbi5zdGF0dXMgLmNoZXZyb24taWNvbiB7XG4gIGNvbG9yOiB2YXIoLS1kZWZhdWx0KTtcbiAgZm9udC1zaXplOiAwLjYyNXJlbTtcbn1cbi5zdGF0dXMgKiArICoge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTtcbn1cblxuLnBsYWNlaG9sZGVyIHtcbiAgY29sb3I6IHZhcigtLWdyZXllZC1vdXQpO1xufVxuXG4uc2VsZWN0LXNlYXJjaCB7XG4gIGZsZXg6IDE7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICBib3JkZXI6IDA7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBjb2xvcjogdmFyKC0tZGVmYXVsdCk7XG4gIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWZhbWlseSk7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzMzM7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi5zZWxlY3Qtc2VhcmNoOmZvY3VzLXZpc2libGUsIC5zZWxlY3Qtc2VhcmNoOmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmRpc2FibGVkIHtcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgY29sb3I6IHZhcigtLWdyZXllZC1vdXQpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ibHVlLWdyZXkyNSk7XG59XG4uZGlzYWJsZWQgPiAqIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzBlbSkge1xuICAuc2VsZWN0IC5jdXN0b20tc2VsZWN0IHtcbiAgICBwYWRkaW5nOiAwIGNhbGMoMC41cmVtIC0gdmFyKC0taW5wdXQtYm9yZGVyLXdpZHRoKSk7XG4gIH1cbiAgLnNlbGVjdDpub3QoLmV4cGFuZGVkKSAuY3VzdG9tLXNlbGVjdDpmb2N1czpub3QoLmVycm9yKSB7XG4gICAgcGFkZGluZzogMCBjYWxjKDAuNXJlbSAtIHZhcigtLWlucHV0LWJvcmRlci13aWR0aC1mb2N1cykpO1xuICB9XG59XG5bZGF0YS1yZWFkb25seXZpZXc9dHJ1ZV0gLmN1c3RvbS1zZWxlY3Qge1xuICBjb2xvcjogdmFyKC0tcmVhZC1vbmx5LXRleHQtY29sb3IpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXJlYWQtb25seS1ib3JkZXItY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG59XG5bZGF0YS1yZWFkb25seXZpZXc9dHJ1ZV0gLmN1c3RvbS1zZWxlY3QuZXJyb3IsIFtkYXRhLXJlYWRvbmx5dmlldz10cnVlXSAuY3VzdG9tLXNlbGVjdC5zdWNjZXNzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1yZWFkLW9ubHktYm9yZGVyLWNvbG9yKTtcbn1cbltkYXRhLXJlYWRvbmx5dmlldz10cnVlXSAuY3VzdG9tLXNlbGVjdCBidXR0b24ge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbltkYXRhLXJlYWRvbmx5dmlldz10cnVlXSAuc3RhdHVzIC5jaGV2cm9uLWljb24ge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5bZGF0YS1yZWFkb25seXZpZXc9dHJ1ZV06aG92ZXI6bm90KC5kaXNhYmxlZCk6bm90KC5leHBhbmRlZCk6bm90KC5lcnJvcikgLmN1c3RvbS1zZWxlY3Q6bm90KDpmb2N1cykge1xuICBjb2xvcjogdmFyKC0tcmVhZC1vbmx5LXRleHQtY29sb3IpO1xuICBib3JkZXItY29sb3I6IHZhcigtLXJlYWQtb25seS1ib3JkZXItY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG59Il19 */'),exports.default={"sr-only":"MultiSelect-module_sr-only__75-oC",hidden:"MultiSelect-module_hidden__-Ckqq","slide-in":"MultiSelect-module_slide-in__Rzibv","slide-out":"MultiSelect-module_slide-out__U1BmE",select:"MultiSelect-module_select__y-QUg",expanded:"MultiSelect-module_expanded__E9rNh","list-wrapper":"MultiSelect-module_list-wrapper__aQWKE","custom-select":"MultiSelect-module_custom-select__QumXf",error:"MultiSelect-module_error__uPGpV",disabled:"MultiSelect-module_disabled__nlmBY","display-container":"MultiSelect-module_display-container__rwtMP","list-wrapper-container":"MultiSelect-module_list-wrapper-container__mMZns",focus:"MultiSelect-module_focus__BZC-P",status:"MultiSelect-module_status__lsG4B","chevron-icon":"MultiSelect-module_chevron-icon__FwyQP",placeholder:"MultiSelect-module_placeholder__TeCro","select-search":"MultiSelect-module_select-search__HgYiO",success:"MultiSelect-module_success__0ejtW"};
|
|
2
2
|
//# sourceMappingURL=MultiSelect.module.scss.cjs.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});require("../../../node_modules/style-inject/dist/style-inject.es.cjs.js").default('/*!\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.SelectedOptions-module_options__VYJq-{cursor:pointer;display:flex;flex-wrap:wrap;gap:.375rem;position:relative}.SelectedOptions-module_tag__13q5Q{cursor:text}.SelectedOptions-module_tag__13q5Q .SelectedOptions-module_remove-btn__U99-Y{cursor:pointer}\n/*# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});require("../../../node_modules/style-inject/dist/style-inject.es.cjs.js").default('/*!\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the "License");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an "AS IS" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */.SelectedOptions-module_options__VYJq-{cursor:pointer;display:flex;flex-wrap:wrap;gap:.375rem;position:relative}.SelectedOptions-module_tag__13q5Q{cursor:text}.SelectedOptions-module_tag__13q5Q .SelectedOptions-module_remove-btn__U99-Y{cursor:pointer}[data-readonlyview=true] .SelectedOptions-module_tag__13q5Q .SelectedOptions-module_remove-btn__U99-Y{display:none}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNlbGVjdGVkT3B0aW9ucy5tb2R1bGUuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRSxDQUNGLHVDQUtFLGNBQWUsQ0FIZixZQUFhLENBRWIsY0FBZSxDQURmLFdBQWEsQ0FGYixpQkFLRixDQUVBLG1DQUNFLFdBQ0YsQ0FDQSw2RUFDRSxjQUNGLENBRUEsc0dBQ0UsWUFDRiIsImZpbGUiOiJTZWxlY3RlZE9wdGlvbnMubW9kdWxlLnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIENvcHlyaWdodCAyMDIyIE9uZVdlbGNvbWUgQi5WLlxuICpcbiAqICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLm9wdGlvbnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMC4zNzVyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4udGFnIHtcbiAgY3Vyc29yOiB0ZXh0O1xufVxuLnRhZyAucmVtb3ZlLWJ0biB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuW2RhdGEtcmVhZG9ubHl2aWV3PXRydWVdIC50YWcgLnJlbW92ZS1idG4ge1xuICBkaXNwbGF5OiBub25lO1xufSJdfQ== */'),exports.default={options:"SelectedOptions-module_options__VYJq-",tag:"SelectedOptions-module_tag__13q5Q","remove-btn":"SelectedOptions-module_remove-btn__U99-Y"};
|
|
2
2
|
//# sourceMappingURL=SelectedOptions.module.scss.cjs.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.useArrowNavigation=({expanded:e,setExpanded:r,setFocusedSelectItem:a,childrenCount:t,setShouldClick:c,addBtnRef:s,searchInputRef:
|
|
1
|
+
"use strict";exports.useArrowNavigation=({expanded:e,setExpanded:r,setFocusedSelectItem:a,childrenCount:t,setShouldClick:c,addBtnRef:s,searchInputRef:n,customSelectButtonRef:o,onClose:u,isReadOnlyView:d=!1})=>({onArrowNavigation:i=>{if(d)return;const p=["ArrowDown","ArrowUp","Escape","End","Home"],l=!!(null==s?void 0:s.current),w=t+(l?1:0),b=i.target===n.current,k=i.target===o.current||b;switch(e&&(p.push("Tab"),p.push("Enter")),e||p.push("Space"),p.includes(i.code)&&!i.metaKey&&i.preventDefault(),i.code){case"ArrowDown":if(!e){r(!0),a(0);break}a((e=>e+1>w-1?0:e+1));break;case"ArrowUp":if(!e){r(!0),a(w-1);break}a((e=>e-1<0?w-1:e-1));break;case"Enter":e?c(!0):a(0),k&&r(!e);break;case"Space":e||(r(!0),a(0));break;case"Home":a(0);break;case"Escape":e&&(r(!1),u());break;case"End":a(t-1);break;case"ArrowLeft":i.metaKey&&e&&(i.preventDefault(),a(0));break;case"ArrowRight":i.metaKey&&e&&(i.preventDefault(),a(t-1))}}});
|
|
2
2
|
//# sourceMappingURL=useArrowNavigation.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useArrowNavigation.cjs.js","sources":["../../../../../../../src/components/Form/Select/MultiSelect/useArrowNavigation.ts"],"sourcesContent":["/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface UseArrowNavigationParams {\n expanded: boolean;\n setExpanded: React.Dispatch<React.SetStateAction<boolean>>;\n setFocusedSelectItem: React.Dispatch<React.SetStateAction<number>>;\n childrenCount: number;\n setShouldClick: React.Dispatch<React.SetStateAction<boolean>>;\n addBtnRef: React.RefObject<HTMLButtonElement>;\n searchInputRef: React.RefObject<HTMLInputElement>;\n customSelectButtonRef: React.RefObject<HTMLButtonElement>;\n onClose: () => void;\n}\n\n/** @scope .*/\nexport const useArrowNavigation = ({\n expanded,\n setExpanded,\n setFocusedSelectItem,\n childrenCount,\n setShouldClick,\n addBtnRef,\n searchInputRef,\n customSelectButtonRef,\n onClose\n}: UseArrowNavigationParams) => {\n const onArrowNavigation = (event: React.KeyboardEvent) => {\n const codesToPreventDefault = [\"ArrowDown\", \"ArrowUp\", \"Escape\", \"End\", \"Home\"];\n const hasAddBtn = !!addBtnRef?.current;\n const childrenCountWithAddButton = childrenCount + (hasAddBtn ? 1 : 0);\n const isSearchEvent = event.target === searchInputRef.current;\n const isSelectButtonEvent = event.target === customSelectButtonRef.current;\n const isSearchOrSelectButtonEvent = isSelectButtonEvent || isSearchEvent;\n\n if (expanded) {\n codesToPreventDefault.push(\"Tab\");\n codesToPreventDefault.push(\"Enter\");\n }\n\n if (!expanded) {\n codesToPreventDefault.push(\"Space\");\n }\n\n if (codesToPreventDefault.includes(event.code) && !event.metaKey) {\n event.preventDefault();\n }\n\n switch (event.code) {\n case \"ArrowDown\":\n if (!expanded) {\n setExpanded(true);\n setFocusedSelectItem(0);\n break;\n }\n setFocusedSelectItem(prevState =>\n prevState + 1 > childrenCountWithAddButton - 1 ? 0 : prevState + 1\n );\n break;\n case \"ArrowUp\":\n if (!expanded) {\n setExpanded(true);\n setFocusedSelectItem(childrenCountWithAddButton - 1);\n break;\n }\n\n setFocusedSelectItem(prevState =>\n prevState - 1 < 0 ? childrenCountWithAddButton - 1 : prevState - 1\n );\n break;\n case \"Enter\":\n if (expanded) {\n setShouldClick(true);\n } else {\n setFocusedSelectItem(0);\n }\n if (isSearchOrSelectButtonEvent) {\n setExpanded(!expanded);\n }\n break;\n case \"Space\":\n if (!expanded) {\n setExpanded(true);\n setFocusedSelectItem(0);\n }\n break;\n case \"Home\":\n setFocusedSelectItem(0);\n break;\n case \"Escape\":\n if (expanded) {\n setExpanded(false);\n onClose();\n }\n break;\n case \"End\":\n setFocusedSelectItem(childrenCount - 1);\n break;\n case \"ArrowLeft\":\n if (event.metaKey && expanded) {\n event.preventDefault();\n setFocusedSelectItem(0);\n }\n break;\n case \"ArrowRight\":\n if (event.metaKey && expanded) {\n event.preventDefault();\n setFocusedSelectItem(childrenCount - 1);\n }\n break;\n }\n };\n\n return { onArrowNavigation };\n};\n"],"names":["expanded","setExpanded","setFocusedSelectItem","childrenCount","setShouldClick","addBtnRef","searchInputRef","customSelectButtonRef","onClose","onArrowNavigation","event","codesToPreventDefault","hasAddBtn","current","childrenCountWithAddButton","isSearchEvent","target","isSearchOrSelectButtonEvent","push","includes","code","metaKey","preventDefault","prevState"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useArrowNavigation.cjs.js","sources":["../../../../../../../src/components/Form/Select/MultiSelect/useArrowNavigation.ts"],"sourcesContent":["/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ninterface UseArrowNavigationParams {\n expanded: boolean;\n setExpanded: React.Dispatch<React.SetStateAction<boolean>>;\n setFocusedSelectItem: React.Dispatch<React.SetStateAction<number>>;\n childrenCount: number;\n setShouldClick: React.Dispatch<React.SetStateAction<boolean>>;\n addBtnRef: React.RefObject<HTMLButtonElement>;\n searchInputRef: React.RefObject<HTMLInputElement>;\n customSelectButtonRef: React.RefObject<HTMLButtonElement>;\n onClose: () => void;\n isReadOnlyView?: boolean;\n}\n\n/** @scope .*/\nexport const useArrowNavigation = ({\n expanded,\n setExpanded,\n setFocusedSelectItem,\n childrenCount,\n setShouldClick,\n addBtnRef,\n searchInputRef,\n customSelectButtonRef,\n onClose,\n isReadOnlyView = false\n}: UseArrowNavigationParams) => {\n const onArrowNavigation = (event: React.KeyboardEvent) => {\n if (isReadOnlyView) {\n return;\n }\n const codesToPreventDefault = [\"ArrowDown\", \"ArrowUp\", \"Escape\", \"End\", \"Home\"];\n const hasAddBtn = !!addBtnRef?.current;\n const childrenCountWithAddButton = childrenCount + (hasAddBtn ? 1 : 0);\n const isSearchEvent = event.target === searchInputRef.current;\n const isSelectButtonEvent = event.target === customSelectButtonRef.current;\n const isSearchOrSelectButtonEvent = isSelectButtonEvent || isSearchEvent;\n\n if (expanded) {\n codesToPreventDefault.push(\"Tab\");\n codesToPreventDefault.push(\"Enter\");\n }\n\n if (!expanded) {\n codesToPreventDefault.push(\"Space\");\n }\n\n if (codesToPreventDefault.includes(event.code) && !event.metaKey) {\n event.preventDefault();\n }\n\n switch (event.code) {\n case \"ArrowDown\":\n if (!expanded) {\n setExpanded(true);\n setFocusedSelectItem(0);\n break;\n }\n setFocusedSelectItem(prevState =>\n prevState + 1 > childrenCountWithAddButton - 1 ? 0 : prevState + 1\n );\n break;\n case \"ArrowUp\":\n if (!expanded) {\n setExpanded(true);\n setFocusedSelectItem(childrenCountWithAddButton - 1);\n break;\n }\n\n setFocusedSelectItem(prevState =>\n prevState - 1 < 0 ? childrenCountWithAddButton - 1 : prevState - 1\n );\n break;\n case \"Enter\":\n if (expanded) {\n setShouldClick(true);\n } else {\n setFocusedSelectItem(0);\n }\n if (isSearchOrSelectButtonEvent) {\n setExpanded(!expanded);\n }\n break;\n case \"Space\":\n if (!expanded) {\n setExpanded(true);\n setFocusedSelectItem(0);\n }\n break;\n case \"Home\":\n setFocusedSelectItem(0);\n break;\n case \"Escape\":\n if (expanded) {\n setExpanded(false);\n onClose();\n }\n break;\n case \"End\":\n setFocusedSelectItem(childrenCount - 1);\n break;\n case \"ArrowLeft\":\n if (event.metaKey && expanded) {\n event.preventDefault();\n setFocusedSelectItem(0);\n }\n break;\n case \"ArrowRight\":\n if (event.metaKey && expanded) {\n event.preventDefault();\n setFocusedSelectItem(childrenCount - 1);\n }\n break;\n }\n };\n\n return { onArrowNavigation };\n};\n"],"names":["expanded","setExpanded","setFocusedSelectItem","childrenCount","setShouldClick","addBtnRef","searchInputRef","customSelectButtonRef","onClose","isReadOnlyView","onArrowNavigation","event","codesToPreventDefault","hasAddBtn","current","childrenCountWithAddButton","isSearchEvent","target","isSearchOrSelectButtonEvent","push","includes","code","metaKey","preventDefault","prevState"],"mappings":"wCA8BkC,EAChCA,WACAC,cACAC,uBACAC,gBACAC,iBACAC,YACAC,iBACAC,wBACAC,UACAC,kBAAiB,MA2FV,CAAEC,kBAzFkBC,IACzB,GAAIF,EACF,OAEF,MAAMG,EAAwB,CAAC,YAAa,UAAW,SAAU,MAAO,QAClEC,KAAcR,aAAA,EAAAA,EAAWS,SACzBC,EAA6BZ,GAAiBU,EAAY,EAAI,GAC9DG,EAAgBL,EAAMM,SAAWX,EAAeQ,QAEhDI,EADsBP,EAAMM,SAAWV,EAAsBO,SACRE,EAe3D,OAbIhB,IACFY,EAAsBO,KAAK,OAC3BP,EAAsBO,KAAK,UAGxBnB,GACHY,EAAsBO,KAAK,SAGzBP,EAAsBQ,SAAST,EAAMU,QAAUV,EAAMW,SACvDX,EAAMY,iBAGAZ,EAAMU,MACZ,IAAK,YACH,IAAKrB,EAAU,CACbC,GAAY,GACZC,EAAqB,GACrB,KACD,CACDA,GAAqBsB,GACnBA,EAAY,EAAIT,EAA6B,EAAI,EAAIS,EAAY,IAEnE,MACF,IAAK,UACH,IAAKxB,EAAU,CACbC,GAAY,GACZC,EAAqBa,EAA6B,GAClD,KACD,CAEDb,GAAqBsB,GACnBA,EAAY,EAAI,EAAIT,EAA6B,EAAIS,EAAY,IAEnE,MACF,IAAK,QACCxB,EACFI,GAAe,GAEfF,EAAqB,GAEnBgB,GACFjB,GAAaD,GAEf,MACF,IAAK,QACEA,IACHC,GAAY,GACZC,EAAqB,IAEvB,MACF,IAAK,OACHA,EAAqB,GACrB,MACF,IAAK,SACCF,IACFC,GAAY,GACZO,KAEF,MACF,IAAK,MACHN,EAAqBC,EAAgB,GACrC,MACF,IAAK,YACCQ,EAAMW,SAAWtB,IACnBW,EAAMY,iBACNrB,EAAqB,IAEvB,MACF,IAAK,aACCS,EAAMW,SAAWtB,IACnBW,EAAMY,iBACNrB,EAAqBC,EAAgB,IAG1C"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("react"),l=require("./MultiOption.cjs.js");exports.useMultiSelect=({initialOptions:t,pickedOptions:n,allOptions:i=n,setPickedOptions:s,setAllOptions:u=s,onAddNew:o})=>({handleOptionChange:e=>{const l=e.target.options,o=[...n];Array.from(l).forEach((e=>{const l=e.selected,s=n.includes(e.value),r=s&&!l;if(!s&&l)o.push(e.value);else if(r){const l=o.indexOf(e.value);o.splice(l,1),t&&!t.includes(e.value)&&(null==u||u(i.filter((l=>l!==e.value))))}})),s(o)},onAddNew:e=>{if(null==e||0===e.length)return void(null==o||o(""));const l=e.trim();0===l.length||i.includes(l)||(null==u||u([...i,l]),s([...n,l]),null==o||o(l))},optionElements:i.map((t=>e.createElement(l.MultiOption,{key:t,value:t},t)))});
|
|
2
|
+
//# sourceMappingURL=useMultiSelect.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMultiSelect.cjs.js","sources":["../../../../../../../src/components/Form/Select/MultiSelect/useMultiSelect.tsx"],"sourcesContent":["/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\nimport { MultiOption } from \"./MultiOption\";\n\nexport interface UseMultiSelectArgs {\n initialOptions?: string[];\n allOptions?: string[];\n setAllOptions?: (options: string[]) => void;\n pickedOptions: string[];\n setPickedOptions: (options: string[]) => void;\n onAddNew?: (newOption: string) => void;\n}\n\nexport interface UseMultiSelectResult {\n handleOptionChange: (e: React.ChangeEvent<HTMLSelectElement>) => void;\n onAddNew: (newValue: string) => void;\n optionElements: React.JSX.Element[];\n}\n\nexport type UseMultiSelect = (args: UseMultiSelectArgs) => UseMultiSelectResult;\n\nexport const useMultiSelect: UseMultiSelect = ({\n initialOptions,\n pickedOptions,\n allOptions = pickedOptions,\n setPickedOptions,\n setAllOptions = setPickedOptions,\n onAddNew\n}) => {\n const handleOptionChange = (e: React.ChangeEvent<HTMLSelectElement>) => {\n const htmlOptions = e.target.options;\n\n const newPickedOptions = [...pickedOptions];\n Array.from(htmlOptions).forEach(option => {\n const selected = option.selected;\n const exists = pickedOptions.includes(option.value);\n\n const shouldAdd = !exists && selected;\n const shouldRemove = exists && !selected;\n\n if (shouldAdd) {\n newPickedOptions.push(option.value);\n } else if (shouldRemove) {\n const index = newPickedOptions.indexOf(option.value);\n newPickedOptions.splice(index, 1);\n\n if (initialOptions && !initialOptions.includes(option.value)) {\n setAllOptions?.(allOptions.filter(value => value !== option.value));\n }\n }\n });\n setPickedOptions(newPickedOptions);\n };\n\n const onAddNewWrapper = (value: string) => {\n if (value == undefined || value.length === 0) {\n onAddNew?.(\"\");\n return;\n }\n\n const trimmedValue = value.trim();\n if (trimmedValue.length === 0 || allOptions.includes(trimmedValue)) {\n return;\n }\n\n setAllOptions?.([...allOptions, trimmedValue]);\n setPickedOptions([...pickedOptions, trimmedValue]);\n\n onAddNew?.(trimmedValue);\n };\n\n const optionElements = allOptions.map(option => (\n <MultiOption key={option} value={option}>\n {option}\n </MultiOption>\n ));\n\n return {\n handleOptionChange,\n onAddNew: onAddNewWrapper,\n optionElements\n };\n};\n"],"names":["initialOptions","pickedOptions","allOptions","setPickedOptions","setAllOptions","onAddNew","handleOptionChange","e","htmlOptions","target","options","newPickedOptions","Array","from","forEach","option","selected","exists","includes","value","shouldRemove","push","index","indexOf","splice","filter","undefined","length","trimmedValue","trim","optionElements","map","React","createElement","MultiOption","key"],"mappings":"6FAoC8C,EAC5CA,iBACAC,gBACAC,aAAaD,EACbE,mBACAC,gBAAgBD,EAChBE,eAkDO,CACLC,mBAjD0BC,IAC1B,MAAMC,EAAcD,EAAEE,OAAOC,QAEvBC,EAAmB,IAAIV,GAC7BW,MAAMC,KAAKL,GAAaM,SAAQC,IAC9B,MAAMC,EAAWD,EAAOC,SAClBC,EAAShB,EAAciB,SAASH,EAAOI,OAGvCC,EAAeH,IAAWD,EAEhC,IAHmBC,GAAUD,EAI3BL,EAAiBU,KAAKN,EAAOI,YACxB,GAAIC,EAAc,CACvB,MAAME,EAAQX,EAAiBY,QAAQR,EAAOI,OAC9CR,EAAiBa,OAAOF,EAAO,GAE3BtB,IAAmBA,EAAekB,SAASH,EAAOI,SACpDf,SAAAA,EAAgBF,EAAWuB,QAAON,GAASA,IAAUJ,EAAOI,SAE/D,KAEHhB,EAAiBQ,EAAiB,EA4BlCN,SAzBuBc,IACvB,GAAaO,MAATP,GAAuC,IAAjBA,EAAMQ,OAE9B,YADAtB,SAAAA,EAAW,KAIb,MAAMuB,EAAeT,EAAMU,OACC,IAAxBD,EAAaD,QAAgBzB,EAAWgB,SAASU,KAIrDxB,SAAAA,EAAgB,IAAIF,EAAY0B,IAChCzB,EAAiB,IAAIF,EAAe2B,IAEpCvB,SAAAA,EAAWuB,GAAa,EAYxBE,eATqB5B,EAAW6B,KAAIhB,GACpCiB,EAACC,cAAAC,EAAAA,aAAYC,IAAKpB,EAAQI,MAAOJ,GAC9BA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.interfaces.cjs.js","sources":["../../../../../../src/components/Form/Select/Select.interfaces.ts"],"sourcesContent":["/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentPropsWithRef, ReactElement } from \"react\";\nimport { Props as InputProps } from \"../Input/Input\";\nimport { FormElement } from \"../form.interfaces\";\n\nexport type PartialInputProps = Partial<InputProps>;\n\nexport interface SearchProps {\n enabled?: boolean;\n renderThreshold?: number;\n searchPlaceholder?: string;\n searchInputProps?: PartialInputProps & { reset?: boolean };\n}\n\nexport interface AddNewProps {\n label: string;\n onAddNew: (value: string) => void;\n btnProps?: React.ButtonHTMLAttributes<HTMLButtonElement>;\n alwaysEnabled?: boolean;\n}\n\nexport interface SelectProps<V extends string | readonly string[] | undefined>\n extends ComponentPropsWithRef<\"select\">,\n FormElement {\n children: ReactElement[];\n name?: string;\n labeledBy?: string;\n describedBy?: string;\n placeholder?: string;\n selectButtonProps?: ComponentPropsWithRef<\"button\"> & FormElement;\n search?: SearchProps;\n className?: string;\n value: V;\n clearLabel?: string;\n noResultsLabel?: string;\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>, child?: ReactElement) => void;\n addNew?: AddNewProps;\n isReadOnlyView?: boolean;\n}\n\nexport type SingleSelectProps = SelectProps<string>;\nexport type MultiSelectProps = SelectProps<string[]>;\n\nexport enum Position {\n Above = \"Above\",\n Below = \"Below\"\n}\n\nexport interface UseArrowNavigationParams {\n expanded: boolean;\n setExpanded: React.Dispatch<React.SetStateAction<boolean>>;\n isSearching: boolean;\n setIsSearching: React.Dispatch<React.SetStateAction<boolean>>;\n setFocusedSelectItem: React.Dispatch<React.SetStateAction<number>>;\n childrenCount: number;\n setShouldClick: React.Dispatch<React.SetStateAction<boolean>>;\n onOptionChangeHandler: (optionElement: HTMLElement | null) => void;\n searchInputRef: React.RefObject<HTMLInputElement>;\n addBtnRef?: React.RefObject<HTMLButtonElement>;\n renderThreshold: number;\n isReadOnlyView?: boolean;\n}\n\nexport interface UseSelectPositionListParams {\n expanded: boolean;\n optionListReference: React.RefObject<HTMLDivElement>;\n containerReference: React.RefObject<HTMLDivElement>;\n addBtnRef: React.RefObject<HTMLButtonElement>;\n}\n"],"names":["Position"],"mappings":"aA0DA,IAAYA,EAAAA,QAGXA,cAAA,GAHWA,EAAAA,QAAQA,WAARA,iBAGX,CAAA,IAFC,MAAA,QACAA,EAAA,MAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("./Select.module.scss.cjs.js"),t=require("react"),s=require("../../../src/hooks/
|
|
1
|
+
"use strict";var e=require("./Select.module.scss.cjs.js"),t=require("react"),s=require("../../../src/hooks/useClickOutside.cjs.js"),a=require("../../../src/hooks/useDetermineStatusIcon.cjs.js"),r=require("../../../src/readyclasses.module.scss.cjs.js"),n=require("../../../src/util/helper.cjs.js"),l=require("../../../Icon/Icon.cjs.js"),c=require("../Select.interfaces.cjs.js"),i=require("../useSelectPositionList.cjs.js"),o=require("../useAddNewBtn.cjs.js"),u=require("./useSearch.cjs.js"),d=require("./useArrowNavigation.cjs.js");const p=require("../../../withReadOnly.cjs.js").withReadOnly(t.forwardRef((({children:p,name:h,disabled:m=!1,labeledBy:f,placeholder:v,describedBy:b,selectButtonProps:j,className:w,error:S=!1,success:y=!1,value:C,clearLabel:E="Clear selection",noResultsLabel:N="No results found",onChange:g,addNew:I,search:R,isReadOnlyView:x,...q},B)=>{const[O,A]=t.useState(!1),[k,L]=t.useState(""),P=t.useRef(null),F=t.useRef(null),[$,D]=t.useState(-1),[H,T]=t.useState(!1),[V,K]=t.useState(!1),M=t.Children.count(p),{filter:U,isSearching:z,renderSearch:G,searchInputRef:J,setIsSearching:Q,searchThreshold:W,searchVisible:X}=u.useSearch({expanded:O,search:R,searchInputClassName:e.default["select-search"],optionsCount:M,setFocusedSelectItem:D}),{addBtnRef:Y,addNewBtnOptionsContainerClassName:Z,renderAddNew:_}=o.useAddNewBtn({addNew:I,filter:U,focusedSelectItem:$,optionsCount:M,searchInputRef:J}),ee=B||t.createRef(),te=e=>{ee.current&&e&&(ee.current.value=e.getAttribute("data-value"),ee.current.dispatchEvent(new Event("change",{bubbles:!0}))),A(!1)},se=t.useRef(null),{onArrowNavigation:ae}=d.useArrowNavigation({expanded:O,setExpanded:A,isSearching:z,setIsSearching:Q,setFocusedSelectItem:D,onOptionChangeHandler:te,childrenCount:M,setShouldClick:T,searchInputRef:J,addBtnRef:Y,renderThreshold:W,isReadOnlyView:x||!!q["data-readonlyview"]}),{listPosition:re,opacity:ne,optionsListMaxHeight:le,setListPosition:ce,setOpacity:ie}=i.useSelectPositionList({expanded:O,optionListReference:F,containerReference:P,addBtnRef:Y}),oe=a.useDetermineStatusIcon({success:y,error:S});t.useEffect((()=>{O&&(D(0),K(!0)),!O&&se.current&&V&&(se.current.focus(),K(!1))}),[O,se.current,V]),t.useEffect((()=>{var e;e=C,t.Children.forEach(p,(t=>{t.props.value===e&&L(t.props.children)}))}),[C]);const ue=t.useRef(null);s.useClickOutside(ue,(()=>{O&&(A(!1),ce(c.Position.Below),ie(0))}),[O]);const de=[];return O&&de.push(e.default.expanded),S&&de.push(e.default.error),m&&de.push(e.default.disabled),w&&de.push(w),y&&de.push(e.default.success),t.createElement("div",{ref:ue},t.createElement("select",{...n.filterProps(q,/^data-/,!1),tabIndex:-1,"aria-hidden":"true",ref:ee,name:h,onChange:e=>{null==g||g(e)},className:r.default["sr-only"]},t.createElement("option",{value:""}),t.Children.map(p,(e=>t.createElement("option",{value:e.props.value})))),t.createElement("div",{...n.filterProps(q,/^data-/),ref:P,onKeyDown:ae,className:`custom-select ${e.default.select} ${de.join(" ")}`},X&&G(),t.createElement("button",{...j,onClick:()=>{A(!x&&!q["data-readonlyview"]&&!O)},ref:se,type:"button",name:h,className:`${e.default["custom-select"]} ${de.join(" ")} `,style:{display:O&&X?"none":"block"},disabled:m,"aria-disabled":m,"aria-invalid":S,"aria-expanded":O,"aria-haspopup":"listbox","aria-labelledby":f,"aria-describedby":b},t.createElement("div",{"data-display":!0,className:e.default.selected},!C&&v&&t.createElement("span",{className:e.default.placeholder},v),(null==C?void 0:C.length)>0&&t.createElement("span",{"data-display-inner":!0},k)),t.createElement("div",{className:e.default.status},oe||(O?t.createElement(l.Icon,{className:e.default["chevron-icon"],icon:l.Icons.ChevronUp}):t.createElement(l.Icon,{className:e.default["chevron-icon"],icon:l.Icons.ChevronDown})))),t.createElement("div",{className:"list-wrapper-container"},t.createElement("div",{ref:F,className:`list-wrapper ${e.default["list-wrapper"]}`,style:{display:O?"block":"none",opacity:ne,maxHeight:le.wrapper,pointerEvents:O?"auto":"none",bottom:re===c.Position.Above?"2.85rem":"initial",marginTop:"4px"}},t.createElement("ul",{className:Z,role:"listbox",style:{maxHeight:le.list}},(()=>{if(z||""!==U){const a=t.Children.toArray(p).filter((e=>null!==e.props.children.toLowerCase().match(U.toLowerCase())));return 0===s(a).length?t.createElement("li",{className:e.default["no-results"]},N):s(a)}return s(p);function s(e){return t.Children.map(e,((e,s)=>t.cloneElement(e,{onFocusChange:e=>{D(e)},onOptionSelect:e=>{te(e.current),T(!1)},isSelected:e.props.value===C,isSearching:z,selectOpened:O,childIndex:s,hasFocus:$===s,shouldClick:H,isAddBtnFocused:Y.current===document.activeElement})))}})()),_()))))})));exports.Select=p;
|
|
2
2
|
//# sourceMappingURL=Select.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.cjs.js","sources":["../../../../../../../src/components/Form/Select/SingleSelect/Select.tsx"],"sourcesContent":["/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classes from \"./Select.module.scss\";\n\nimport React, {\n createRef,\n ForwardRefRenderFunction,\n Fragment,\n ReactElement,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { useBodyClick } from \"../../../../hooks/useBodyClick\";\nimport { useDetermineStatusIcon } from \"../../../../hooks/useDetermineStatusIcon\";\nimport readyclasses from \"../../../../readyclasses.module.scss\";\nimport { filterProps } from \"../../../../util/helper\";\nimport { Icon, Icons } from \"../../../Icon/Icon\";\nimport { SingleSelectProps } from \"../Select.interfaces\";\nimport { useSelectPositionList } from \"../useSelectPositionList\";\nimport { useAddNewBtn } from \"../useAddNewBtn\";\nimport { useSearch } from \"./useSearch\";\nimport { useArrowNavigation } from \"./useArrowNavigation\";\n\nconst SelectComponent: ForwardRefRenderFunction<HTMLSelectElement, SingleSelectProps> = (\n {\n children,\n name,\n disabled = false,\n labeledBy,\n placeholder,\n describedBy,\n selectButtonProps,\n className,\n error = false,\n success = false,\n value,\n clearLabel = \"Clear selection\",\n noResultsLabel = \"No results found\",\n onChange,\n addNew,\n search,\n ...rest\n }: SingleSelectProps,\n ref\n) => {\n const [expanded, setExpanded] = useState(false);\n const [display, setDisplay] = useState(\"\");\n const containerReference = useRef<HTMLDivElement>(null);\n const optionListReference = useRef<HTMLDivElement>(null);\n const [focusedSelectItem, setFocusedSelectItem] = useState(-1);\n const [shouldClick, setShouldClick] = useState(false);\n /** We need this, because whenever we use the arrow keys to select the select item, and we focus the currently selected item it fires the \"click\" listener in Option component. Instead, we only want this to fire if we press \"enter\" or \"spacebar\" so we set this to true whenever that is the case, and back to false when it has been executed. */\n const [shouldFocusButtonAfterClose, setShouldFocusButtonAfterClose] = useState(false);\n const optionsCount = React.Children.count(children);\n const {\n filter,\n isSearching,\n renderSearch,\n searchInputRef,\n setIsSearching,\n searchThreshold,\n searchVisible\n } = useSearch({\n expanded,\n search,\n searchInputClassName: classes[\"select-search\"],\n optionsCount,\n setFocusedSelectItem\n });\n const { addBtnRef, addNewBtnOptionsContainerClassName, renderAddNew } = useAddNewBtn({\n addNew,\n filter,\n focusedSelectItem,\n optionsCount,\n searchInputRef\n });\n\n const nativeSelect = (ref as React.RefObject<HTMLSelectElement>) || createRef();\n\n const onOptionChangeHandler = (optionElement: HTMLElement | null) => {\n if (nativeSelect.current && optionElement) {\n nativeSelect.current.value = optionElement.getAttribute(\"data-value\")!;\n nativeSelect.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n\n setExpanded(false);\n };\n\n const customSelectButtonRef = useRef<HTMLButtonElement>(null);\n const { onArrowNavigation } = useArrowNavigation({\n expanded,\n setExpanded,\n isSearching,\n setIsSearching,\n setFocusedSelectItem,\n onOptionChangeHandler,\n childrenCount: optionsCount,\n setShouldClick,\n searchInputRef,\n addBtnRef,\n renderThreshold: searchThreshold\n });\n\n const { listPosition, opacity, optionsListMaxHeight, setListPosition, setOpacity } =\n useSelectPositionList({ expanded, optionListReference, containerReference, addBtnRef });\n\n const syncDisplayValue = (val: string) => {\n React.Children.forEach(children, child => {\n if (child.props.value === val) {\n setDisplay(child.props.children);\n }\n });\n };\n\n /**\n * @description We have to modify the children (Option component) to have an additional props that allows us to keep track of which one is selected and focused at all times and if a filter is active.\n * The `children` prop can be either a single object (1 child) or an array of multiple children.\n */\n const renderOptions = () => {\n if (isSearching || filter !== \"\") {\n const filteredChildren = React.Children.toArray(children).filter(\n child =>\n (child as ReactElement).props.children.toLowerCase().match(filter.toLowerCase()) !== null\n );\n\n const internalChildren = _internalRenderChildren(filteredChildren as ReactElement[]);\n\n if (internalChildren.length === 0) {\n return <li className={classes[\"no-results\"]}>{noResultsLabel}</li>;\n }\n\n return _internalRenderChildren(filteredChildren as ReactElement[]);\n }\n\n return _internalRenderChildren(children);\n\n function _internalRenderChildren(internalChildren: ReactElement[]) {\n return React.Children.map(internalChildren, (child, index) => {\n return React.cloneElement(child, {\n onFocusChange: (childIndex: number) => {\n setFocusedSelectItem(childIndex);\n },\n onOptionSelect: (optionRef: React.RefObject<HTMLLIElement>) => {\n onOptionChangeHandler(optionRef.current);\n setShouldClick(false);\n },\n isSelected: child.props.value === value,\n isSearching: isSearching,\n selectOpened: expanded,\n childIndex: index,\n hasFocus: focusedSelectItem === index,\n shouldClick: shouldClick,\n isAddBtnFocused: addBtnRef.current === document.activeElement\n });\n });\n }\n };\n\n const renderChevronIcon = () => {\n return expanded ? (\n <Icon className={classes[\"chevron-icon\"]} icon={Icons.ChevronUp} />\n ) : (\n <Icon className={classes[\"chevron-icon\"]} icon={Icons.ChevronDown} />\n );\n };\n\n const icon = useDetermineStatusIcon({ success, error });\n\n const nativeOnChangeHandler = (event: React.ChangeEvent<HTMLSelectElement>) => {\n onChange?.(event);\n };\n\n useEffect(() => {\n if (expanded) {\n setFocusedSelectItem(0);\n setShouldFocusButtonAfterClose(true);\n }\n\n if (!expanded && customSelectButtonRef.current && shouldFocusButtonAfterClose) {\n customSelectButtonRef.current.focus();\n setShouldFocusButtonAfterClose(false);\n }\n }, [expanded, customSelectButtonRef.current, shouldFocusButtonAfterClose]);\n\n useEffect(() => {\n syncDisplayValue(value);\n }, [value]);\n\n useBodyClick(\n (event: MouseEvent) => !(event.target as Element).closest(\".custom-select\") && expanded,\n () => {\n setExpanded(false);\n setListPosition({ top: 0, bottom: \"initial\" });\n setOpacity(0);\n },\n expanded\n );\n\n const additionalClasses = [];\n expanded && additionalClasses.push(classes.expanded);\n error && additionalClasses.push(classes.error);\n disabled && additionalClasses.push(classes.disabled);\n className && additionalClasses.push(className);\n success && additionalClasses.push(classes.success);\n\n /** The native select is purely for external form libraries. We use it to emit an onChange with native select event object so they know exactly what's happening. */\n return (\n <Fragment>\n <select\n {...filterProps(rest, /^data-/, false)}\n tabIndex={-1}\n aria-hidden=\"true\"\n ref={nativeSelect}\n name={name}\n onChange={nativeOnChangeHandler}\n className={readyclasses[\"sr-only\"]}\n >\n <option value=\"\"></option>\n {React.Children.map(children, child => (\n <option value={child.props.value}></option>\n ))}\n </select>\n <div\n {...filterProps(rest, /^data-/)}\n ref={containerReference}\n onKeyDown={onArrowNavigation}\n className={`custom-select ${classes.select} ${additionalClasses.join(\" \")}`}\n >\n {searchVisible && renderSearch()}\n <button\n {...selectButtonProps}\n onClick={() => {\n setExpanded(!expanded);\n }}\n ref={customSelectButtonRef}\n type=\"button\"\n name={name}\n className={`${classes[\"custom-select\"]} ${additionalClasses.join(\" \")} `}\n style={{ display: expanded && searchVisible ? \"none\" : \"initial\" }}\n disabled={disabled}\n aria-disabled={disabled}\n aria-invalid={error}\n aria-expanded={expanded}\n aria-haspopup=\"listbox\"\n aria-labelledby={labeledBy}\n aria-describedby={describedBy}\n >\n <div data-display className={classes[\"selected\"]}>\n {!value && placeholder && <span className={classes[\"placeholder\"]}>{placeholder}</span>}\n {value?.length > 0 && <span data-display-inner>{display}</span>}\n </div>\n <div className={classes[\"status\"]}>{icon || renderChevronIcon()}</div>\n </button>\n\n <div\n ref={optionListReference}\n className={`list-wrapper ${classes[\"list-wrapper\"]}`}\n style={{\n display: expanded ? \"block\" : \"none\",\n opacity: opacity,\n maxHeight: optionsListMaxHeight.wrapper,\n pointerEvents: expanded ? \"auto\" : \"none\",\n ...listPosition\n }}\n >\n <ul\n className={addNewBtnOptionsContainerClassName}\n role=\"listbox\"\n style={{ maxHeight: optionsListMaxHeight.list }}\n >\n {renderOptions()}\n </ul>\n {renderAddNew()}\n </div>\n </div>\n </Fragment>\n );\n};\nexport const Select = React.forwardRef(SelectComponent);\n"],"names":["Select","React","forwardRef","children","name","disabled","labeledBy","placeholder","describedBy","selectButtonProps","className","error","success","value","clearLabel","noResultsLabel","onChange","addNew","search","rest","ref","expanded","setExpanded","useState","display","setDisplay","containerReference","useRef","optionListReference","focusedSelectItem","setFocusedSelectItem","shouldClick","setShouldClick","shouldFocusButtonAfterClose","setShouldFocusButtonAfterClose","optionsCount","Children","count","filter","isSearching","renderSearch","searchInputRef","setIsSearching","searchThreshold","searchVisible","useSearch","searchInputClassName","classes","default","addBtnRef","addNewBtnOptionsContainerClassName","renderAddNew","useAddNewBtn","nativeSelect","createRef","onOptionChangeHandler","optionElement","current","getAttribute","dispatchEvent","Event","bubbles","customSelectButtonRef","onArrowNavigation","useArrowNavigation","childrenCount","renderThreshold","listPosition","opacity","optionsListMaxHeight","setListPosition","setOpacity","useSelectPositionList","icon","useDetermineStatusIcon","useEffect","focus","val","forEach","child","props","useBodyClick","event","target","closest","top","bottom","additionalClasses","push","Fragment","createElement","filterProps","tabIndex","readyclasses","map","onKeyDown","select","join","onClick","type","style","length","Icon","Icons","ChevronUp","ChevronDown","maxHeight","wrapper","pointerEvents","role","list","filteredChildren","toArray","toLowerCase","match","_internalRenderChildren","internalChildren","index","cloneElement","onFocusChange","childIndex","onOptionSelect","optionRef","isSelected","selectOpened","hasFocus","isAddBtnFocused","document","activeElement","renderOptions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.cjs.js","sources":["../../../../../../../src/components/Form/Select/SingleSelect/Select.tsx"],"sourcesContent":["/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classes from \"./Select.module.scss\";\n\nimport React, {\n createRef,\n ForwardRefRenderFunction,\n ReactElement,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { useClickOutside } from \"../../../../hooks/useClickOutside\";\nimport { useDetermineStatusIcon } from \"../../../../hooks/useDetermineStatusIcon\";\nimport readyclasses from \"../../../../readyclasses.module.scss\";\nimport { filterProps } from \"../../../../util/helper\";\nimport { Icon, Icons } from \"../../../Icon/Icon\";\nimport { Position, SingleSelectProps } from \"../Select.interfaces\";\nimport { useSelectPositionList } from \"../useSelectPositionList\";\nimport { useAddNewBtn } from \"../useAddNewBtn\";\nimport { useSearch } from \"./useSearch\";\nimport { useArrowNavigation } from \"./useArrowNavigation\";\nimport { withReadOnly } from \"../../../withReadOnly\";\n\nconst SelectComponent: ForwardRefRenderFunction<HTMLSelectElement, SingleSelectProps> = (\n {\n children,\n name,\n disabled = false,\n labeledBy,\n placeholder,\n describedBy,\n selectButtonProps,\n className,\n error = false,\n success = false,\n value,\n clearLabel = \"Clear selection\",\n noResultsLabel = \"No results found\",\n onChange,\n addNew,\n search,\n isReadOnlyView,\n ...rest\n }: SingleSelectProps,\n ref\n) => {\n const [expanded, setExpanded] = useState(false);\n const [display, setDisplay] = useState(\"\");\n const containerReference = useRef<HTMLDivElement>(null);\n const optionListReference = useRef<HTMLDivElement>(null);\n const [focusedSelectItem, setFocusedSelectItem] = useState(-1);\n const [shouldClick, setShouldClick] = useState(false);\n /** We need this, because whenever we use the arrow keys to select the select item, and we focus the currently selected item it fires the \"click\" listener in Option component. Instead, we only want this to fire if we press \"enter\" or \"spacebar\" so we set this to true whenever that is the case, and back to false when it has been executed. */\n const [shouldFocusButtonAfterClose, setShouldFocusButtonAfterClose] = useState(false);\n const optionsCount = React.Children.count(children);\n const {\n filter,\n isSearching,\n renderSearch,\n searchInputRef,\n setIsSearching,\n searchThreshold,\n searchVisible\n } = useSearch({\n expanded,\n search,\n searchInputClassName: classes[\"select-search\"],\n optionsCount,\n setFocusedSelectItem\n });\n const { addBtnRef, addNewBtnOptionsContainerClassName, renderAddNew } = useAddNewBtn({\n addNew,\n filter,\n focusedSelectItem,\n optionsCount,\n searchInputRef\n });\n\n const nativeSelect = (ref as React.RefObject<HTMLSelectElement>) || createRef();\n\n const onOptionChangeHandler = (optionElement: HTMLElement | null) => {\n if (nativeSelect.current && optionElement) {\n nativeSelect.current.value = optionElement.getAttribute(\"data-value\")!;\n nativeSelect.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n\n setExpanded(false);\n };\n\n const customSelectButtonRef = useRef<HTMLButtonElement>(null);\n const { onArrowNavigation } = useArrowNavigation({\n expanded,\n setExpanded,\n isSearching,\n setIsSearching,\n setFocusedSelectItem,\n onOptionChangeHandler,\n childrenCount: optionsCount,\n setShouldClick,\n searchInputRef,\n addBtnRef,\n renderThreshold: searchThreshold,\n isReadOnlyView: isReadOnlyView || !!rest[\"data-readonlyview\"]\n });\n\n const { listPosition, opacity, optionsListMaxHeight, setListPosition, setOpacity } =\n useSelectPositionList({ expanded, optionListReference, containerReference, addBtnRef });\n\n const syncDisplayValue = (val: string) => {\n React.Children.forEach(children, child => {\n if (child.props.value === val) {\n setDisplay(child.props.children);\n }\n });\n };\n\n /**\n * @description We have to modify the children (Option component) to have an additional props that allows us to keep track of which one is selected and focused at all times and if a filter is active.\n * The `children` prop can be either a single object (1 child) or an array of multiple children.\n */\n const renderOptions = () => {\n if (isSearching || filter !== \"\") {\n const filteredChildren = React.Children.toArray(children).filter(\n child =>\n (child as ReactElement).props.children.toLowerCase().match(filter.toLowerCase()) !== null\n );\n\n const internalChildren = _internalRenderChildren(filteredChildren as ReactElement[]);\n\n if (internalChildren.length === 0) {\n return <li className={classes[\"no-results\"]}>{noResultsLabel}</li>;\n }\n\n return _internalRenderChildren(filteredChildren as ReactElement[]);\n }\n\n return _internalRenderChildren(children);\n\n function _internalRenderChildren(internalChildren: ReactElement[]) {\n return React.Children.map(internalChildren, (child, index) => {\n return React.cloneElement(child, {\n onFocusChange: (childIndex: number) => {\n setFocusedSelectItem(childIndex);\n },\n onOptionSelect: (optionRef: React.RefObject<HTMLLIElement>) => {\n onOptionChangeHandler(optionRef.current);\n setShouldClick(false);\n },\n isSelected: child.props.value === value,\n isSearching: isSearching,\n selectOpened: expanded,\n childIndex: index,\n hasFocus: focusedSelectItem === index,\n shouldClick: shouldClick,\n isAddBtnFocused: addBtnRef.current === document.activeElement\n });\n });\n }\n };\n\n const renderChevronIcon = () => {\n return expanded ? (\n <Icon className={classes[\"chevron-icon\"]} icon={Icons.ChevronUp} />\n ) : (\n <Icon className={classes[\"chevron-icon\"]} icon={Icons.ChevronDown} />\n );\n };\n\n const icon = useDetermineStatusIcon({ success, error });\n\n const nativeOnChangeHandler = (event: React.ChangeEvent<HTMLSelectElement>) => {\n onChange?.(event);\n };\n\n useEffect(() => {\n if (expanded) {\n setFocusedSelectItem(0);\n setShouldFocusButtonAfterClose(true);\n }\n\n if (!expanded && customSelectButtonRef.current && shouldFocusButtonAfterClose) {\n customSelectButtonRef.current.focus();\n setShouldFocusButtonAfterClose(false);\n }\n }, [expanded, customSelectButtonRef.current, shouldFocusButtonAfterClose]);\n\n useEffect(() => {\n syncDisplayValue(value);\n }, [value]);\n\n const myElementRef = useRef<HTMLDivElement>(null);\n\n useClickOutside(myElementRef, () => {\n if (!expanded) {\n return;\n }\n setExpanded(false);\n setListPosition(Position.Below);\n setOpacity(0);\n }, [expanded]);\n\n const additionalClasses = [];\n expanded && additionalClasses.push(classes.expanded);\n error && additionalClasses.push(classes.error);\n disabled && additionalClasses.push(classes.disabled);\n className && additionalClasses.push(className);\n success && additionalClasses.push(classes.success);\n\n /** The native select is purely for external form libraries. We use it to emit an onChange with native select event object so they know exactly what's happening. */\n return (\n <div ref={myElementRef}>\n <select\n {...filterProps(rest, /^data-/, false)}\n tabIndex={-1}\n aria-hidden=\"true\"\n ref={nativeSelect}\n name={name}\n onChange={nativeOnChangeHandler}\n className={readyclasses[\"sr-only\"]}\n >\n <option value=\"\"></option>\n {React.Children.map(children, child => (\n <option value={child.props.value}></option>\n ))}\n </select>\n <div\n {...filterProps(rest, /^data-/)}\n ref={containerReference}\n onKeyDown={onArrowNavigation}\n className={`custom-select ${classes.select} ${additionalClasses.join(\" \")}`}\n >\n {searchVisible && renderSearch()}\n <button\n {...selectButtonProps}\n onClick={() => {\n setExpanded(isReadOnlyView || rest[\"data-readonlyview\"] ? false : !expanded);\n }}\n ref={customSelectButtonRef}\n type=\"button\"\n name={name}\n className={`${classes[\"custom-select\"]} ${additionalClasses.join(\" \")} `}\n style={{ display: expanded && searchVisible ? \"none\" : \"block\" }}\n disabled={disabled}\n aria-disabled={disabled}\n aria-invalid={error}\n aria-expanded={expanded}\n aria-haspopup=\"listbox\"\n aria-labelledby={labeledBy}\n aria-describedby={describedBy}\n >\n <div data-display className={classes[\"selected\"]}>\n {!value && placeholder && <span className={classes[\"placeholder\"]}>{placeholder}</span>}\n {value?.length > 0 && <span data-display-inner>{display}</span>}\n </div>\n <div className={classes[\"status\"]}>{icon || renderChevronIcon()}</div>\n </button>\n <div className=\"list-wrapper-container\">\n <div\n ref={optionListReference}\n className={`list-wrapper ${classes[\"list-wrapper\"]}`}\n style={{\n display: expanded ? \"block\" : \"none\",\n opacity: opacity,\n maxHeight: optionsListMaxHeight.wrapper,\n pointerEvents: expanded ? \"auto\" : \"none\",\n bottom: listPosition === Position.Above ? \"2.85rem\" : \"initial\",\n marginTop: \"4px\"\n }}\n >\n <ul\n className={addNewBtnOptionsContainerClassName}\n role=\"listbox\"\n style={{ maxHeight: optionsListMaxHeight.list }}\n >\n {renderOptions()}\n </ul>\n {renderAddNew()}\n </div>\n </div>\n </div>\n </div>\n );\n};\nexport const Select = withReadOnly(React.forwardRef(SelectComponent));\n"],"names":["Select","withReadOnly","React","forwardRef","children","name","disabled","labeledBy","placeholder","describedBy","selectButtonProps","className","error","success","value","clearLabel","noResultsLabel","onChange","addNew","search","isReadOnlyView","rest","ref","expanded","setExpanded","useState","display","setDisplay","containerReference","useRef","optionListReference","focusedSelectItem","setFocusedSelectItem","shouldClick","setShouldClick","shouldFocusButtonAfterClose","setShouldFocusButtonAfterClose","optionsCount","Children","count","filter","isSearching","renderSearch","searchInputRef","setIsSearching","searchThreshold","searchVisible","useSearch","searchInputClassName","classes","default","addBtnRef","addNewBtnOptionsContainerClassName","renderAddNew","useAddNewBtn","nativeSelect","createRef","onOptionChangeHandler","optionElement","current","getAttribute","dispatchEvent","Event","bubbles","customSelectButtonRef","onArrowNavigation","useArrowNavigation","childrenCount","renderThreshold","listPosition","opacity","optionsListMaxHeight","setListPosition","setOpacity","useSelectPositionList","icon","useDetermineStatusIcon","useEffect","focus","val","forEach","child","props","myElementRef","useClickOutside","Position","Below","additionalClasses","push","createElement","filterProps","tabIndex","event","readyclasses","map","onKeyDown","select","join","onClick","type","style","length","Icon","Icons","ChevronUp","ChevronDown","maxHeight","wrapper","pointerEvents","bottom","Above","marginTop","role","list","filteredChildren","toArray","toLowerCase","match","_internalRenderChildren","internalChildren","index","cloneElement","onFocusChange","childIndex","onOptionSelect","optionRef","isSelected","selectOpened","hasFocus","isAddBtnFocused","document","activeElement","renderOptions"],"mappings":"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"}
|