@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,7 +1,7 @@
|
|
|
1
1
|
import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/*!\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== */";
|
|
4
|
-
var classes = {"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"};
|
|
3
|
+
var css_248z = "/*!\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 */";
|
|
4
|
+
var classes = {"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"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
7
7
|
export { classes as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import styleInject from '../../../node_modules/style-inject/dist/style-inject.es.esm.js';
|
|
2
2
|
|
|
3
|
-
var css_248z = "/*!\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,
|
|
3
|
+
var css_248z = "/*!\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== */";
|
|
4
4
|
var classes = {"options":"SelectedOptions-module_options__VYJq-","tag":"SelectedOptions-module_tag__13q5Q","remove-btn":"SelectedOptions-module_remove-btn__U99-Y"};
|
|
5
5
|
styleInject(css_248z);
|
|
6
6
|
|
|
@@ -14,8 +14,11 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
/** @scope .*/
|
|
17
|
-
const useArrowNavigation = ({ expanded, setExpanded, setFocusedSelectItem, childrenCount, setShouldClick, addBtnRef, searchInputRef, customSelectButtonRef, onClose }) => {
|
|
17
|
+
const useArrowNavigation = ({ expanded, setExpanded, setFocusedSelectItem, childrenCount, setShouldClick, addBtnRef, searchInputRef, customSelectButtonRef, onClose, isReadOnlyView = false }) => {
|
|
18
18
|
const onArrowNavigation = (event) => {
|
|
19
|
+
if (isReadOnlyView) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
19
22
|
const codesToPreventDefault = ["ArrowDown", "ArrowUp", "Escape", "End", "Home"];
|
|
20
23
|
const hasAddBtn = !!(addBtnRef === null || addBtnRef === void 0 ? void 0 : addBtnRef.current);
|
|
21
24
|
const childrenCountWithAddButton = childrenCount + (hasAddBtn ? 1 : 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useArrowNavigation.esm.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":[],"mappings":"AAAA;;;;;;;;;;;;;;AAcG;
|
|
1
|
+
{"version":3,"file":"useArrowNavigation.esm.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":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { MultiOption } from './MultiOption.esm.js';
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
* Copyright 2022 OneWelcome B.V.
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*/
|
|
19
|
+
const useMultiSelect = ({ initialOptions, pickedOptions, allOptions = pickedOptions, setPickedOptions, setAllOptions = setPickedOptions, onAddNew }) => {
|
|
20
|
+
const handleOptionChange = (e) => {
|
|
21
|
+
const htmlOptions = e.target.options;
|
|
22
|
+
const newPickedOptions = [...pickedOptions];
|
|
23
|
+
Array.from(htmlOptions).forEach(option => {
|
|
24
|
+
const selected = option.selected;
|
|
25
|
+
const exists = pickedOptions.includes(option.value);
|
|
26
|
+
const shouldAdd = !exists && selected;
|
|
27
|
+
const shouldRemove = exists && !selected;
|
|
28
|
+
if (shouldAdd) {
|
|
29
|
+
newPickedOptions.push(option.value);
|
|
30
|
+
}
|
|
31
|
+
else if (shouldRemove) {
|
|
32
|
+
const index = newPickedOptions.indexOf(option.value);
|
|
33
|
+
newPickedOptions.splice(index, 1);
|
|
34
|
+
if (initialOptions && !initialOptions.includes(option.value)) {
|
|
35
|
+
setAllOptions === null || setAllOptions === void 0 ? void 0 : setAllOptions(allOptions.filter(value => value !== option.value));
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
setPickedOptions(newPickedOptions);
|
|
40
|
+
};
|
|
41
|
+
const onAddNewWrapper = (value) => {
|
|
42
|
+
if (value == undefined || value.length === 0) {
|
|
43
|
+
onAddNew === null || onAddNew === void 0 ? void 0 : onAddNew("");
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const trimmedValue = value.trim();
|
|
47
|
+
if (trimmedValue.length === 0 || allOptions.includes(trimmedValue)) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
setAllOptions === null || setAllOptions === void 0 ? void 0 : setAllOptions([...allOptions, trimmedValue]);
|
|
51
|
+
setPickedOptions([...pickedOptions, trimmedValue]);
|
|
52
|
+
onAddNew === null || onAddNew === void 0 ? void 0 : onAddNew(trimmedValue);
|
|
53
|
+
};
|
|
54
|
+
const optionElements = allOptions.map(option => (React.createElement(MultiOption, { key: option, value: option }, option)));
|
|
55
|
+
return {
|
|
56
|
+
handleOptionChange,
|
|
57
|
+
onAddNew: onAddNewWrapper,
|
|
58
|
+
optionElements
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export { useMultiSelect };
|
|
63
|
+
//# sourceMappingURL=useMultiSelect.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMultiSelect.esm.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":[],"mappings":";;;AAAA;;;;;;;;;;;;;;AAcG;MAsBU,cAAc,GAAmB,CAAC,EAC7C,cAAc,EACd,aAAa,EACb,UAAU,GAAG,aAAa,EAC1B,gBAAgB,EAChB,aAAa,GAAG,gBAAgB,EAChC,QAAQ,EACT,KAAI;AACH,IAAA,MAAM,kBAAkB,GAAG,CAAC,CAAuC,KAAI;AACrE,QAAA,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;AAErC,QAAA,MAAM,gBAAgB,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,IAAG;AACvC,YAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACjC,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEpD,YAAA,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC;AACtC,YAAA,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC;YAEzC,IAAI,SAAS,EAAE;AACb,gBAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACrC;iBAAM,IAAI,YAAY,EAAE;gBACvB,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACrD,gBAAA,gBAAgB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAElC,gBAAA,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBAC5D,aAAa,KAAA,IAAA,IAAb,aAAa,KAAb,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAa,CAAG,UAAU,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;iBACrE;aACF;AACH,SAAC,CAAC,CAAC;QACH,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AACrC,KAAC,CAAC;AAEF,IAAA,MAAM,eAAe,GAAG,CAAC,KAAa,KAAI;QACxC,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5C,YAAA,QAAQ,aAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAG,EAAE,CAAC,CAAC;YACf,OAAO;SACR;AAED,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AAClC,QAAA,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;YAClE,OAAO;SACR;AAED,QAAA,aAAa,KAAb,IAAA,IAAA,aAAa,KAAb,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAa,CAAG,CAAC,GAAG,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;QAC/C,gBAAgB,CAAC,CAAC,GAAG,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;AAEnD,QAAA,QAAQ,aAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAG,YAAY,CAAC,CAAC;AAC3B,KAAC,CAAC;IAEF,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,KAC1C,KAAC,CAAA,aAAA,CAAA,WAAW,IAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAA,EACpC,MAAM,CACK,CACf,CAAC,CAAC;IAEH,OAAO;QACL,kBAAkB;AAClB,QAAA,QAAQ,EAAE,eAAe;QACzB,cAAc;KACf,CAAC;AACJ;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 OneWelcome B.V.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
var Position;
|
|
17
|
+
(function (Position) {
|
|
18
|
+
Position["Above"] = "Above";
|
|
19
|
+
Position["Below"] = "Below";
|
|
20
|
+
})(Position || (Position = {}));
|
|
21
|
+
|
|
22
|
+
export { Position };
|
|
23
|
+
//# sourceMappingURL=Select.interfaces.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Select.interfaces.esm.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":[],"mappings":"AAAA;;;;;;;;;;;;;;AAcG;IA4CS,SAGX;AAHD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAGnB,EAAA,CAAA,CAAA;;;;"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import classes from './Select.module.scss.esm.js';
|
|
2
|
-
import React, { useState, useRef, createRef, useEffect
|
|
3
|
-
import {
|
|
2
|
+
import React, { useState, useRef, createRef, useEffect } from 'react';
|
|
3
|
+
import { useClickOutside } from '../../../src/hooks/useClickOutside.esm.js';
|
|
4
4
|
import { useDetermineStatusIcon } from '../../../src/hooks/useDetermineStatusIcon.esm.js';
|
|
5
5
|
import readyclasses from '../../../src/readyclasses.module.scss.esm.js';
|
|
6
6
|
import { filterProps } from '../../../src/util/helper.esm.js';
|
|
7
7
|
import { Icon, Icons } from '../../../Icon/Icon.esm.js';
|
|
8
|
+
import { Position } from '../Select.interfaces.esm.js';
|
|
8
9
|
import { useSelectPositionList } from '../useSelectPositionList.esm.js';
|
|
9
10
|
import { useAddNewBtn } from '../useAddNewBtn.esm.js';
|
|
10
11
|
import { useSearch } from './useSearch.esm.js';
|
|
11
12
|
import { useArrowNavigation } from './useArrowNavigation.esm.js';
|
|
13
|
+
import { withReadOnly } from '../../../withReadOnly.esm.js';
|
|
12
14
|
|
|
13
15
|
/*
|
|
14
16
|
* Copyright 2022 OneWelcome B.V.
|
|
@@ -25,7 +27,7 @@ import { useArrowNavigation } from './useArrowNavigation.esm.js';
|
|
|
25
27
|
* See the License for the specific language governing permissions and
|
|
26
28
|
* limitations under the License.
|
|
27
29
|
*/
|
|
28
|
-
const SelectComponent = ({ children, name, disabled = false, labeledBy, placeholder, describedBy, selectButtonProps, className, error = false, success = false, value, clearLabel = "Clear selection", noResultsLabel = "No results found", onChange, addNew, search, ...rest }, ref) => {
|
|
30
|
+
const SelectComponent = ({ children, name, disabled = false, labeledBy, placeholder, describedBy, selectButtonProps, className, error = false, success = false, value, clearLabel = "Clear selection", noResultsLabel = "No results found", onChange, addNew, search, isReadOnlyView, ...rest }, ref) => {
|
|
29
31
|
const [expanded, setExpanded] = useState(false);
|
|
30
32
|
const [display, setDisplay] = useState("");
|
|
31
33
|
const containerReference = useRef(null);
|
|
@@ -69,7 +71,8 @@ const SelectComponent = ({ children, name, disabled = false, labeledBy, placehol
|
|
|
69
71
|
setShouldClick,
|
|
70
72
|
searchInputRef,
|
|
71
73
|
addBtnRef,
|
|
72
|
-
renderThreshold: searchThreshold
|
|
74
|
+
renderThreshold: searchThreshold,
|
|
75
|
+
isReadOnlyView: isReadOnlyView || !!rest["data-readonlyview"]
|
|
73
76
|
});
|
|
74
77
|
const { listPosition, opacity, optionsListMaxHeight, setListPosition, setOpacity } = useSelectPositionList({ expanded, optionListReference, containerReference, addBtnRef });
|
|
75
78
|
const syncDisplayValue = (val) => {
|
|
@@ -134,11 +137,15 @@ const SelectComponent = ({ children, name, disabled = false, labeledBy, placehol
|
|
|
134
137
|
useEffect(() => {
|
|
135
138
|
syncDisplayValue(value);
|
|
136
139
|
}, [value]);
|
|
137
|
-
|
|
140
|
+
const myElementRef = useRef(null);
|
|
141
|
+
useClickOutside(myElementRef, () => {
|
|
142
|
+
if (!expanded) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
138
145
|
setExpanded(false);
|
|
139
|
-
setListPosition(
|
|
146
|
+
setListPosition(Position.Below);
|
|
140
147
|
setOpacity(0);
|
|
141
|
-
}, expanded);
|
|
148
|
+
}, [expanded]);
|
|
142
149
|
const additionalClasses = [];
|
|
143
150
|
expanded && additionalClasses.push(classes.expanded);
|
|
144
151
|
error && additionalClasses.push(classes.error);
|
|
@@ -146,30 +153,32 @@ const SelectComponent = ({ children, name, disabled = false, labeledBy, placehol
|
|
|
146
153
|
className && additionalClasses.push(className);
|
|
147
154
|
success && additionalClasses.push(classes.success);
|
|
148
155
|
/** 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. */
|
|
149
|
-
return (React.createElement(
|
|
156
|
+
return (React.createElement("div", { ref: myElementRef },
|
|
150
157
|
React.createElement("select", { ...filterProps(rest, /^data-/, false), tabIndex: -1, "aria-hidden": "true", ref: nativeSelect, name: name, onChange: nativeOnChangeHandler, className: readyclasses["sr-only"] },
|
|
151
158
|
React.createElement("option", { value: "" }),
|
|
152
159
|
React.Children.map(children, child => (React.createElement("option", { value: child.props.value })))),
|
|
153
160
|
React.createElement("div", { ...filterProps(rest, /^data-/), ref: containerReference, onKeyDown: onArrowNavigation, className: `custom-select ${classes.select} ${additionalClasses.join(" ")}` },
|
|
154
161
|
searchVisible && renderSearch(),
|
|
155
162
|
React.createElement("button", { ...selectButtonProps, onClick: () => {
|
|
156
|
-
setExpanded(!expanded);
|
|
157
|
-
}, ref: customSelectButtonRef, type: "button", name: name, className: `${classes["custom-select"]} ${additionalClasses.join(" ")} `, style: { display: expanded && searchVisible ? "none" : "
|
|
163
|
+
setExpanded(isReadOnlyView || rest["data-readonlyview"] ? false : !expanded);
|
|
164
|
+
}, ref: customSelectButtonRef, type: "button", name: name, className: `${classes["custom-select"]} ${additionalClasses.join(" ")} `, style: { display: expanded && searchVisible ? "none" : "block" }, disabled: disabled, "aria-disabled": disabled, "aria-invalid": error, "aria-expanded": expanded, "aria-haspopup": "listbox", "aria-labelledby": labeledBy, "aria-describedby": describedBy },
|
|
158
165
|
React.createElement("div", { "data-display": true, className: classes["selected"] },
|
|
159
166
|
!value && placeholder && React.createElement("span", { className: classes["placeholder"] }, placeholder),
|
|
160
167
|
(value === null || value === void 0 ? void 0 : value.length) > 0 && React.createElement("span", { "data-display-inner": true }, display)),
|
|
161
168
|
React.createElement("div", { className: classes["status"] }, icon || renderChevronIcon())),
|
|
162
|
-
React.createElement("div", {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
169
|
+
React.createElement("div", { className: "list-wrapper-container" },
|
|
170
|
+
React.createElement("div", { ref: optionListReference, className: `list-wrapper ${classes["list-wrapper"]}`, style: {
|
|
171
|
+
display: expanded ? "block" : "none",
|
|
172
|
+
opacity: opacity,
|
|
173
|
+
maxHeight: optionsListMaxHeight.wrapper,
|
|
174
|
+
pointerEvents: expanded ? "auto" : "none",
|
|
175
|
+
bottom: listPosition === Position.Above ? "2.85rem" : "initial",
|
|
176
|
+
marginTop: "4px"
|
|
177
|
+
} },
|
|
178
|
+
React.createElement("ul", { className: addNewBtnOptionsContainerClassName, role: "listbox", style: { maxHeight: optionsListMaxHeight.list } }, renderOptions()),
|
|
179
|
+
renderAddNew())))));
|
|
171
180
|
};
|
|
172
|
-
const Select = React.forwardRef(SelectComponent);
|
|
181
|
+
const Select = withReadOnly(React.forwardRef(SelectComponent));
|
|
173
182
|
|
|
174
183
|
export { Select };
|
|
175
184
|
//# sourceMappingURL=Select.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.esm.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":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.esm.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":[],"mappings":"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"}
|