@stenajs-webui/select 17.4.1 → 17.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/CHANGELOG.md +26 -0
- package/dist/SelectTheme.d.ts +75 -75
- package/dist/components/ui/AsyncMultiSelect.d.ts +12 -12
- package/dist/components/ui/AsyncSelect.d.ts +12 -12
- package/dist/components/ui/ChipMultiSelect/ChipMultiSelect.d.ts +19 -19
- package/dist/components/ui/ChipMultiSelect/ChipRow.d.ts +10 -10
- package/dist/components/ui/ChipMultiSelect/GroupedChipMultiSelect.d.ts +15 -15
- package/dist/components/ui/GroupedMultiSelect.d.ts +25 -25
- package/dist/components/ui/GroupedMultiSelectTypes.d.ts +5 -5
- package/dist/components/ui/MultiSelect.d.ts +13 -13
- package/dist/components/ui/Select.d.ts +11 -11
- package/dist/index.d.ts +10 -10
- package/dist/index.es.js +625 -487
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -532
- package/dist/index.js.map +1 -1
- package/dist/util/StylesBuilder.d.ts +9 -9
- package/dist/util/multiDropdownUtils.d.ts +24 -24
- package/package.json +8 -9
- package/dist/components/ui/AsyncSelect.stories.d.ts +0 -7
- package/dist/components/ui/ChipMultiSelect/ChipMultiSelect.stories.d.ts +0 -12
- package/dist/components/ui/ChipMultiSelect/GroupedChipMultiSelect.stories.d.ts +0 -10
- package/dist/components/ui/GroupedMultiSelect.stories.d.ts +0 -9
- package/dist/components/ui/MultiSelect.stories.d.ts +0 -10
- package/dist/components/ui/Select.stories.d.ts +0 -11
- package/dist/util/__tests__/multiDropdownUtils.test.d.ts +0 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/SelectTheme.ts","../src/util/StylesBuilder.ts","../src/components/ui/AsyncMultiSelect.tsx","../src/components/ui/AsyncSelect.tsx","../src/components/ui/MultiSelect.tsx","../src/components/ui/Select.tsx","../src/util/multiDropdownUtils.ts","../src/components/ui/GroupedMultiSelect.tsx","../src/components/ui/ChipMultiSelect/ChipRow.tsx","../src/components/ui/ChipMultiSelect/ChipMultiSelect.tsx","../src/components/ui/ChipMultiSelect/GroupedChipMultiSelect.tsx"],"sourcesContent":["import { Property } from \"csstype\";\n\nexport interface SelectTheme {\n arrowColor: {\n focused: {\n standard: string;\n hover: string;\n };\n closed: {\n standard: string;\n hover: string;\n };\n };\n clearButtonColor: {\n standard: string;\n hover: string;\n };\n input: {\n backgroundColor: string;\n border: string;\n borderColor: string;\n borderColorFocused: string;\n borderRadius: string;\n disabledBackgroundColor: string;\n warningBackgroundColor: string;\n errorBackgroundColor: string;\n successBackgroundColor: string;\n warningBorderColor: string;\n errorBorderColor: string;\n successBorderColor: string;\n boxShadowFocused: string;\n fontFamily: string;\n fontSize: string;\n height?: string;\n minHeight?: string;\n placeholderColor: string;\n textColor: string;\n };\n loadingIndicator: {\n textColor: string;\n };\n menu: {\n disabledTextColor: string;\n disabledBackgroundColor: string;\n textColor: string;\n backgroundColor: string;\n hoverTextColor: string;\n hoverBackgroundColor: string;\n activeTextColor: string;\n activeBackgroundColor: string;\n minWidth?: string;\n selectedItemTextColor: string;\n selectedItemBackgroundColor: string;\n selectedItemHoverTextColor: string;\n selectedItemIconColor: string;\n selectedItemHoverIconColor: string;\n selectedItemHoverBackgroundColor: string;\n selectedItemActiveTextColor: string;\n selectedItemActiveBackgroundColor: string;\n zIndex: number;\n width?: string;\n whiteSpace?: Property.WhiteSpace;\n };\n menuPortal: {\n zIndex: number;\n };\n multiSelect: {\n backgroundColor: string;\n textColor: string;\n removeButtonBackgroundColor: string;\n removeButtonTextColor: string;\n removeButtonHoverBackgroundColor: string;\n removeButtonHoverTextColor: string;\n };\n}\n\nexport const defaultSelectTheme: SelectTheme = {\n arrowColor: {\n focused: {\n hover: \"var(--lhds-color-ui-500)\",\n standard: \"var(--lhds-color-ui-500)\",\n },\n closed: {\n hover: \"var(--lhds-color-ui-500)\",\n standard: \"var(--lhds-color-ui-500)\",\n },\n },\n clearButtonColor: {\n hover: \"var(--lhds-color-ui-600)\",\n standard: \"var(--lhds-color-ui-500)\",\n },\n input: {\n backgroundColor: \"var(--swui-field-bg-enabled)\",\n border: `1px solid var(--swui-select-border-color)`,\n borderColor: \"var(--swui-field-border-color)\",\n borderColorFocused: \"var(--swui-field-border-color-hover)\",\n disabledBackgroundColor: \"var(--swui-field-bg-disabled)\",\n warningBackgroundColor: \"var(--swui-state-alert-light-color)\",\n errorBackgroundColor: \"var(--swui-state-error-light-color)\",\n successBackgroundColor: \"var(--swui-state-success-light-color)\",\n warningBorderColor: \"var(--swui-state-alert-color)\",\n errorBorderColor: \"var(--swui-state-error-color)\",\n successBorderColor: \"var(--swui-state-success-color)\",\n boxShadowFocused: \"var(--swui-field-focus-shadow)\",\n fontFamily: \"var(--swui-font-primary)\",\n fontSize: \"var(--swui-font-size-inputs)\",\n height: \"32px\",\n minHeight: \"32px\",\n placeholderColor: \"var(--swui-field-border-color-disabled)\",\n textColor: \"var(--swui-field-text-color)\",\n borderRadius: \"var(--swui-field-border-radius)\",\n },\n loadingIndicator: {\n textColor: \"var(--swui-field-text-color)\",\n },\n menu: {\n activeBackgroundColor: \"var(--lhds-color-blue-100)\",\n activeTextColor: \"var(--swui-field-text-color)\",\n selectedItemActiveBackgroundColor: \"var(--lhds-color-blue-500)\",\n selectedItemActiveTextColor: \"var(--lhds-color-blue-50)\",\n disabledTextColor: \"var(--swui-field-text-color-disabled)\",\n disabledBackgroundColor: \"var(--swui-field-bg-disabled)\",\n textColor: \"var(--swui-field-text-color)\",\n backgroundColor: \"var(--swui-field-bg-enabled)\",\n hoverTextColor: \"var(--swui-field-text-color)\",\n hoverBackgroundColor: \"var(--lhds-color-blue-200)\",\n selectedItemTextColor: \"var(--lhds-color-blue-500)\",\n selectedItemIconColor: \"var(--lhds-color-blue-500)\",\n selectedItemHoverTextColor: \"var(--swui-field-text-color)\",\n selectedItemHoverIconColor: \"var(--swui-field-text-color)\",\n selectedItemBackgroundColor: \"var(--lhds-color-blue-50)\",\n selectedItemHoverBackgroundColor: \"var(--lhds-color-blue-50)\",\n zIndex: 1,\n width: \"auto\",\n minWidth: \"100%\",\n whiteSpace: \"nowrap\",\n },\n menuPortal: {\n zIndex: 1,\n },\n multiSelect: {\n backgroundColor: \"var(--swui-primary-action-color)\",\n textColor: \"var(--lhds-color-blue-50)\",\n removeButtonBackgroundColor: \"transparent\",\n removeButtonTextColor: \"var(--swui-white)\",\n removeButtonHoverBackgroundColor: \"var(--swui-primary-action-color-hover)\",\n removeButtonHoverTextColor: \"var(--swui-white)\",\n },\n};\n","import { StylesConfig } from \"react-select\";\nimport { defaultSelectTheme, SelectTheme } from \"../SelectTheme\";\nimport { GroupBase } from \"react-select/dist/declarations/src/types\";\n\nexport type SelectVariant = \"standard\" | \"warning\" | \"error\" | \"success\";\n\nconst resolveOptionBackgroundColor = (\n colors: SelectTheme[\"menu\"],\n isDisabled: boolean,\n isSelected: boolean,\n isFocused: boolean\n): string | undefined => {\n if (isDisabled) {\n return colors.disabledBackgroundColor;\n } else if (isSelected && isFocused) {\n return colors.selectedItemHoverBackgroundColor;\n } else if (isSelected) {\n return colors.selectedItemBackgroundColor;\n } else if (isFocused) {\n return colors.hoverBackgroundColor;\n } else {\n return undefined;\n }\n};\n\nconst resolveOptionColor = (\n colors: SelectTheme[\"menu\"],\n isDisabled: boolean,\n isSelected: boolean,\n isFocused: boolean\n): string | undefined => {\n if (isDisabled) {\n return colors.disabledTextColor;\n } else if (isSelected && isFocused) {\n return colors.selectedItemHoverTextColor;\n } else if (isSelected) {\n return colors.selectedItemTextColor;\n } else if (isFocused) {\n return colors.hoverTextColor;\n } else {\n return undefined;\n }\n};\n\nconst resolveInputBackgroundColor = (\n colors: SelectTheme[\"input\"],\n isDisabled: boolean,\n isFocused: boolean,\n variant: SelectVariant | undefined\n): string | undefined => {\n if (isDisabled) {\n return colors.disabledBackgroundColor;\n } else if (isFocused) {\n return colors.backgroundColor;\n } else if (variant === \"warning\") {\n return colors.warningBackgroundColor;\n } else if (variant === \"success\") {\n return colors.successBackgroundColor;\n } else if (variant === \"error\") {\n return colors.errorBackgroundColor;\n } else {\n return colors.backgroundColor;\n }\n};\n\nconst resolveInputBorderColor = (\n colors: SelectTheme[\"input\"],\n isDisabled: boolean,\n isFocused: boolean,\n isHovered: boolean,\n variant: SelectVariant | undefined\n): string | undefined => {\n if (isDisabled) {\n return colors.borderColor;\n } else if (isFocused) {\n return colors.borderColorFocused;\n } else if (variant === \"warning\") {\n return colors.warningBorderColor;\n } else if (variant === \"success\") {\n return colors.successBorderColor;\n } else if (variant === \"error\") {\n return colors.errorBorderColor;\n } else if (isHovered) {\n return colors.borderColorFocused;\n } else {\n return colors.borderColor;\n }\n};\n\n/**\n * @deprecated\n */\nexport const createStylesFromTheme = <\n OptionType,\n IsMulti extends boolean,\n TGroup extends GroupBase<OptionType> = GroupBase<OptionType>\n>(\n {\n menu,\n menuPortal,\n input,\n multiSelect,\n clearButtonColor,\n arrowColor,\n loadingIndicator,\n }: SelectTheme,\n variant: SelectVariant | undefined\n): StylesConfig<OptionType, IsMulti, TGroup> => ({\n option: (base, { isDisabled, isFocused, isSelected }) => ({\n ...base,\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n backgroundColor: resolveOptionBackgroundColor(\n menu,\n isDisabled,\n isSelected,\n isFocused\n ),\n color: resolveOptionColor(menu, isDisabled, isSelected, isFocused),\n cursor: isDisabled ? \"not-allowed\" : \"default\",\n whiteSpace: menu.whiteSpace || base.whiteSpace,\n \":active\": {\n backgroundColor: isDisabled\n ? undefined\n : isSelected\n ? menu.selectedItemActiveBackgroundColor\n : menu.activeBackgroundColor,\n color: isDisabled\n ? undefined\n : isSelected\n ? menu.selectedItemActiveTextColor\n : menu.activeTextColor,\n },\n }),\n control: (base, { isFocused, isDisabled, menuIsOpen }) => ({\n ...base,\n // none of react-selects styles are passed to <View />\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n minHeight: input.minHeight,\n backgroundColor: resolveInputBackgroundColor(\n input,\n isDisabled,\n isFocused,\n variant\n ),\n borderRadius: input.borderRadius,\n border: input.border,\n \"--swui-select-border-color\": resolveInputBorderColor(\n input,\n isDisabled,\n isFocused || menuIsOpen,\n false,\n variant\n ),\n boxShadow: isFocused ? input.boxShadowFocused : undefined,\n \"&:hover\": {\n \"--swui-select-border-color\": resolveInputBorderColor(\n input,\n false,\n isFocused || menuIsOpen,\n true,\n variant\n ),\n },\n }),\n singleValue: (base) => ({\n ...base,\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n color: input.textColor,\n }),\n noOptionsMessage: (base) => ({\n ...base,\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n }),\n input: (base) => ({\n ...base,\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n color: input.textColor,\n }),\n groupHeading: (base) => ({\n ...base,\n fontFamily: input.fontFamily,\n }),\n multiValueLabel: (base) => ({\n ...base,\n backgroundColor: multiSelect.backgroundColor,\n color: multiSelect.textColor,\n fontFamily: input.fontFamily,\n fontSize: \"12px\",\n }),\n indicatorSeparator: (base) => ({\n ...base,\n display: \"none\",\n }),\n clearIndicator: (base) => ({\n ...base,\n padding: \"5px\",\n color: clearButtonColor.standard,\n \"&:hover\": {\n color: clearButtonColor.hover,\n },\n cursor: \"pointer\",\n }),\n placeholder: (base) => ({\n ...base,\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n color: input.placeholderColor,\n }),\n container: (base) => ({\n ...base,\n }),\n valueContainer: (base) => ({\n ...base,\n padding: \"0 8px\",\n }),\n dropdownIndicator: (base, { isFocused }) => ({\n ...base,\n padding: \"5px\",\n color: isFocused ? arrowColor.focused.standard : arrowColor.closed.standard,\n \"&:hover\": {\n color: isFocused ? arrowColor.focused.hover : arrowColor.closed.hover,\n },\n svg: {\n width: 14,\n height: 14,\n },\n }),\n menu: (base) => ({\n ...base,\n backgroundColor: menu.backgroundColor,\n color: menu.textColor,\n minWidth: menu.minWidth || base.minWidth,\n zIndex: menu.zIndex,\n width: menu.width || base.width,\n border: input.border,\n borderColor: input.borderColorFocused,\n }),\n menuPortal: (base) => ({\n ...base,\n zIndex: menuPortal.zIndex,\n }),\n multiValueRemove: (styles) => ({\n ...styles,\n backgroundColor: multiSelect.removeButtonBackgroundColor,\n \":hover\": {\n color: multiSelect.removeButtonHoverTextColor,\n backgroundColor: multiSelect.removeButtonHoverBackgroundColor,\n },\n color: multiSelect.removeButtonTextColor,\n borderRadius: \"50%\",\n width: 16,\n height: 16,\n padding: 0,\n margin: 3,\n marginTop: 4,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n cursor: \"pointer\",\n }),\n multiValue: (base) => ({\n ...base,\n backgroundColor: multiSelect.backgroundColor,\n color: multiSelect.textColor,\n fontFamily: input.fontFamily,\n fontSize: \"12px\",\n alignItems: \"center\",\n margin: 0,\n marginRight: 2,\n }),\n loadingMessage: (base) => ({\n ...base,\n color: loadingIndicator.textColor,\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n }),\n});\n\nexport const createStylesFromVariant = <\n OptionType,\n IsMulti extends boolean,\n TGroup extends GroupBase<OptionType> = GroupBase<OptionType>\n>(\n variant: SelectVariant\n): StylesConfig<OptionType, IsMulti, TGroup> =>\n createStylesFromTheme(defaultSelectTheme, variant);\n","import * as React from \"react\";\nimport { useMemo } from \"react\";\nimport { mergeStyles } from \"react-select\";\nimport AsyncComponent, { AsyncProps } from \"react-select/async\";\nimport {\n createStylesFromVariant,\n SelectVariant,\n} from \"../../util/StylesBuilder\";\nimport { GroupBase } from \"react-select/dist/declarations/src/types\";\n\nexport interface AsyncMultiSelectProps<T = { label: string; value: string }>\n extends AsyncProps<T, true, GroupBase<T>> {\n variant?: SelectVariant;\n isMulti?: true;\n}\n\nexport const AsyncMultiSelect = <T extends {}>({\n variant = \"standard\",\n styles,\n isMulti,\n ...selectProps\n}: AsyncMultiSelectProps<T>) => {\n const selectStyles = useMemo(() => {\n const sourceStyles = createStylesFromVariant<T, true>(variant);\n\n return styles ? mergeStyles(sourceStyles, styles) : sourceStyles;\n }, [variant, styles]);\n\n return (\n <AsyncComponent styles={selectStyles} {...selectProps} isMulti={true} />\n );\n};\n","import * as React from \"react\";\nimport { useMemo } from \"react\";\nimport AsyncComponent, { AsyncProps } from \"react-select/async\";\nimport {\n createStylesFromVariant,\n SelectVariant,\n} from \"../../util/StylesBuilder\";\nimport { mergeStyles } from \"react-select\";\nimport { GroupBase } from \"react-select/dist/declarations/src/types\";\n\nexport interface AsyncSelectProps<T = { label: string; value: string }>\n extends AsyncProps<T, false, GroupBase<T>> {\n variant?: SelectVariant;\n isMulti?: false;\n}\n\nexport const AsyncSelect = <T extends {}>({\n variant = \"standard\",\n styles,\n isMulti,\n ...selectProps\n}: AsyncSelectProps<T>) => {\n const selectStyles = useMemo(() => {\n const sourceStyles = createStylesFromVariant<T, false>(variant);\n\n return styles ? mergeStyles(sourceStyles, styles) : sourceStyles;\n }, [variant, styles]);\n\n return (\n <AsyncComponent styles={selectStyles} {...selectProps} isMulti={false} />\n );\n};\n","import * as React from \"react\";\nimport { useMemo } from \"react\";\nimport SelectComponent, {\n mergeStyles,\n Props,\n SelectComponentsConfig,\n} from \"react-select\";\nimport {\n createStylesFromVariant,\n SelectVariant,\n} from \"../../util/StylesBuilder\";\nimport { GroupBase } from \"react-select/dist/declarations/src/types\";\n\nexport interface MultiSelectProps<TOption = { label: string; value: string }>\n extends Props<TOption, true> {\n variant?: SelectVariant;\n isMulti?: true;\n}\n\nexport type MultiSelectComponentsConfig<TOption> = SelectComponentsConfig<\n TOption,\n true,\n GroupBase<TOption>\n>;\n\nexport const MultiSelect = <TOption extends {}>({\n variant = \"standard\",\n styles,\n isMulti,\n ...selectProps\n}: MultiSelectProps<TOption>) => {\n const selectStyles = useMemo(() => {\n const sourceStyles = createStylesFromVariant<TOption, true>(variant);\n\n return styles ? mergeStyles(sourceStyles, styles) : sourceStyles;\n }, [variant, styles]);\n\n return (\n <SelectComponent styles={selectStyles} {...selectProps} isMulti={true} />\n );\n};\n","import * as React from \"react\";\nimport { useMemo } from \"react\";\nimport SelectComponent, { mergeStyles, Props } from \"react-select\";\nimport {\n createStylesFromVariant,\n SelectVariant,\n} from \"../../util/StylesBuilder\";\n\nexport interface SelectProps<T = { label: string; value: string }>\n extends Props<T, false> {\n variant?: SelectVariant;\n isMulti?: false;\n}\n\nexport const Select = <T extends {}>({\n variant = \"standard\",\n styles,\n isMulti,\n ...selectProps\n}: SelectProps<T>) => {\n const selectStyles = useMemo(() => {\n const sourceStyles = createStylesFromVariant<T, false>(variant);\n\n return styles ? mergeStyles(sourceStyles, styles) : sourceStyles;\n }, [variant, styles]);\n\n return (\n <SelectComponent styles={selectStyles} {...selectProps} isMulti={false} />\n );\n};\n","import { differenceWith, intersectionWith, isEqual, uniqWith } from \"lodash\";\nimport { ActionMeta, GroupBase, OnChangeValue, Options } from \"react-select\";\nimport { OnChange } from \"../components/ui/GroupedMultiSelect\";\nimport { DropdownOption } from \"../components/ui/GroupedMultiSelectTypes\";\n\nexport type GroupedOptionsType<TOption> = ReadonlyArray<GroupBase<TOption>>;\n\nexport type InternalDropdownOption<TData> =\n | InternalChildOption<TData>\n | InternalParentDropdownOption<TData>;\n\ninterface InternalChildOption<TData> {\n data: TData;\n label: string;\n value: string;\n}\n\ninterface InternalParentDropdownOption<TData> {\n data: TData;\n label: string;\n value: string;\n internalOptions: Options<DropdownOption<TData>>;\n}\n\nconst removeGroupedOptionsType = <TData>(\n removedValue: InternalParentDropdownOption<TData>,\n selectedInternalOptions: Options<InternalDropdownOption<TData>>\n): Options<InternalDropdownOption<TData>> =>\n differenceWith(\n selectedInternalOptions,\n [...removedValue.internalOptions, removedValue],\n isEqual\n ).map(convertInternalOptionToDropdownOption);\n\nconst removeInternalOptions = <TData>(\n selectedInternalOption: InternalDropdownOption<TData>\n): boolean => !(\"internalOptions\" in selectedInternalOption);\n\nconst removeOptionHeaders = <TData>(\n selectedInternalOptions: Options<InternalDropdownOption<TData>>\n): Options<InternalDropdownOption<TData>> =>\n selectedInternalOptions\n .filter(removeInternalOptions)\n .map(convertInternalOptionToDropdownOption);\n\nexport const createOnChange =\n <TData>(onChange: OnChange<TData>) =>\n (\n incomingSelectedInternalOptions: OnChangeValue<\n InternalDropdownOption<TData>,\n true\n >,\n meta: ActionMeta<InternalDropdownOption<TData>>\n ) => {\n const selectedInternalOptions = incomingSelectedInternalOptions ?? [];\n switch (meta.action) {\n case \"select-option\":\n if (meta.option && \"internalOptions\" in meta.option) {\n const selectedOptions: OnChangeValue<\n InternalDropdownOption<TData>,\n true\n > = uniqWith(\n selectedInternalOptions.reduce<Options<DropdownOption<TData>>>(\n (previousValue, currentValue) => {\n if (\"internalOptions\" in currentValue) {\n return [...previousValue, ...currentValue.internalOptions];\n } else {\n return [\n ...previousValue,\n convertInternalOptionToDropdownOption(currentValue),\n ];\n }\n },\n []\n ),\n isEqual\n );\n\n onChange(selectedOptions, meta);\n } else {\n onChange(removeOptionHeaders(selectedInternalOptions), meta);\n }\n break;\n case \"deselect-option\":\n if (meta.option && \"internalOptions\" in meta.option) {\n onChange(\n removeGroupedOptionsType(\n meta.option,\n removeOptionHeaders(selectedInternalOptions)\n ),\n meta\n );\n } else {\n onChange(removeOptionHeaders(selectedInternalOptions), meta);\n }\n break;\n case \"remove-value\":\n case \"pop-value\":\n if (meta.removedValue && \"internalOptions\" in meta.removedValue) {\n onChange(\n removeGroupedOptionsType(\n meta.removedValue,\n removeOptionHeaders(selectedInternalOptions)\n ),\n meta\n );\n } else {\n onChange(removeOptionHeaders(selectedInternalOptions), meta);\n }\n break;\n case \"clear\":\n onChange(\n selectedInternalOptions.map(convertInternalOptionToDropdownOption),\n meta\n );\n break;\n case \"create-option\":\n onChange(\n selectedInternalOptions.map(convertInternalOptionToDropdownOption),\n meta\n );\n break;\n default:\n break;\n }\n };\n\nexport const convertGroupedDropdownOptionsToInternalOptions = <TData>(\n options: GroupedOptionsType<DropdownOption<TData>>\n): InternalDropdownOption<TData>[] => {\n return options.reduce<InternalDropdownOption<TData>[]>(\n (previousValue, currentValue) => {\n return [\n ...previousValue,\n convertGroupedDropdownOptionToInternalOption(currentValue),\n ...currentValue.options.map(convertDropdownOptionToInternalOption),\n ];\n },\n []\n );\n};\n\nexport const convertValueToInternalValue = <TData>(\n options: GroupedOptionsType<DropdownOption<TData>>,\n values: Options<DropdownOption<TData>> | undefined\n): InternalDropdownOption<TData>[] => {\n if (!values) {\n return [];\n }\n const selectedOptions: InternalDropdownOption<TData>[] = [];\n options.forEach((option) => {\n if (allOptionsExists(option.options, values)) {\n selectedOptions.push(\n convertGroupedDropdownOptionToInternalOption(option)\n );\n }\n selectedOptions.push(\n ...intersectionWith(option.options, values, isEqual).map((option) =>\n convertDropdownOptionToInternalOption(option)\n )\n );\n });\n return selectedOptions;\n};\n\nexport const allOptionsExists = <TData>(\n options: Options<DropdownOption<TData>>,\n selectedValues: Options<DropdownOption<TData>> | undefined\n): boolean => {\n if (!selectedValues) {\n return false;\n }\n\n return (\n intersectionWith(options, selectedValues, isEqual).length === options.length\n );\n};\n\nexport const convertDropdownOptionToInternalOption = <TData>(\n option: DropdownOption<TData>\n): InternalDropdownOption<TData> => ({\n data: option.data,\n label: option.label,\n value: option.value,\n});\n\n// TODO: can this be done `any` other way\nexport const convertGroupedDropdownOptionToInternalOption = <TData>(\n option: GroupBase<DropdownOption<TData>>\n): InternalDropdownOption<TData> => ({\n data: option.label as any,\n label: option.label as any,\n value: option.label as any,\n internalOptions: option.options,\n});\n\nexport const convertInternalOptionToDropdownOption = <TData>(\n option: InternalDropdownOption<TData>\n): DropdownOption<TData> => ({\n data: option.data,\n label: option.label,\n value: option.value,\n});\n","import { faCheck } from \"@fortawesome/free-solid-svg-icons/faCheck\";\nimport { Row, Space, Text, TextSize } from \"@stenajs-webui/core\";\nimport { Icon } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n ActionMeta,\n components,\n GroupBase,\n MultiValueProps,\n OnChangeValue,\n OptionProps,\n Options,\n} from \"react-select\";\nimport { defaultSelectTheme, SelectTheme } from \"../../SelectTheme\";\nimport {\n convertGroupedDropdownOptionsToInternalOptions,\n convertValueToInternalValue,\n createOnChange,\n GroupedOptionsType,\n InternalDropdownOption,\n} from \"../../util/multiDropdownUtils\";\nimport { DropdownOption } from \"./GroupedMultiSelectTypes\";\nimport {\n MultiSelect,\n MultiSelectComponentsConfig,\n MultiSelectProps,\n} from \"./MultiSelect\";\n\nexport type OnChange<TData> = (\n value: OnChangeValue<DropdownOption<TData>, true>,\n action: ActionMeta<any>\n) => void;\n\nexport interface GroupedMultiSelectProps<TData>\n extends Omit<\n MultiSelectProps<InternalDropdownOption<TData>>,\n \"options\" | \"onChange\" | \"value\" | \"components\"\n > {\n /**\n * Same as Select prop `component` but without MultiValue and Option since they can not be modified\n */\n components?: Omit<\n MultiSelectComponentsConfig<InternalDropdownOption<TData>>,\n \"MultiValue\" | \"Option\"\n >;\n /**\n * Same as Select prop `options` but only with GroupOptionsType\n */\n options?: GroupedOptionsType<DropdownOption<TData>>;\n /**\n * Same as Select prop `onChange` but only with GroupOptionsType\n */\n onChange?: OnChange<TData>;\n /**\n * Same as Select prop `value` but only with GroupOptionsType\n */\n value?: Options<DropdownOption<TData>> | undefined;\n}\n\nconst resolveIconColor = (\n theme: SelectTheme,\n isFocused: boolean\n): string | undefined =>\n isFocused\n ? theme.menu.selectedItemHoverIconColor\n : theme.menu.selectedItemIconColor;\n\nfunction formatInnerOptionLabel<TData>(\n props: OptionProps<\n InternalDropdownOption<TData>,\n true,\n GroupBase<InternalDropdownOption<TData>>\n >\n) {\n const { formatGroupLabel, formatOptionLabel } = props.selectProps;\n\n if (\"internalOptions\" in props.data) {\n return formatGroupLabel\n ? formatGroupLabel({\n label: props.data.label,\n options: props.data.internalOptions,\n })\n : props.label;\n }\n\n return formatOptionLabel\n ? formatOptionLabel(props.data, {\n context: \"menu\",\n inputValue: props.selectProps.inputValue ?? \"\",\n selectValue: props.getValue(),\n })\n : props.label;\n}\n\nexport const GroupedMultiSelect = <TData extends {}>({\n onChange,\n options,\n value,\n variant = \"standard\",\n formatGroupLabel,\n formatOptionLabel,\n ...selectProps\n}: GroupedMultiSelectProps<TData>): React.ReactElement<\n GroupedMultiSelectProps<TData>\n> => {\n const Option = (\n props: OptionProps<\n InternalDropdownOption<TData>,\n true,\n GroupBase<InternalDropdownOption<TData>>\n >\n ) => {\n const label = formatInnerOptionLabel(props);\n const isGroupOption = \"internalOptions\" in props.data;\n\n return (\n <components.Option {...props}>\n <Row>\n {!isGroupOption && <Space />}\n <InnerOption\n theme={defaultSelectTheme}\n size={!isGroupOption ? \"small\" : undefined}\n label={label}\n selected={props.isSelected}\n focused={props.isFocused}\n />\n </Row>\n </components.Option>\n );\n };\n\n const MultiValue = (\n props: MultiValueProps<\n InternalDropdownOption<TData>,\n true,\n GroupBase<InternalDropdownOption<TData>>\n >\n ) => {\n return !(\"internalOptions\" in props.data) ? (\n <components.MultiValue {...props} />\n ) : null;\n };\n\n const internalValue = options\n ? convertValueToInternalValue(options, value)\n : undefined;\n const internalOptions = options\n ? convertGroupedDropdownOptionsToInternalOptions(options)\n : undefined;\n\n return (\n <MultiSelect<InternalDropdownOption<TData>>\n {...selectProps}\n onChange={onChange ? createOnChange<TData>(onChange) : undefined}\n hideSelectedOptions={false}\n components={{\n ...selectProps.components,\n MultiValue,\n Option,\n }}\n isMulti={true}\n options={internalOptions}\n value={internalValue}\n variant={variant}\n />\n );\n};\n\ninterface InnerOptionProps {\n size?: TextSize;\n selected: boolean;\n theme: SelectTheme;\n label: ReactNode;\n focused: boolean;\n}\n\nconst InnerOption: React.VFC<InnerOptionProps> = ({\n focused,\n label,\n selected,\n size,\n theme,\n}) => (\n <Row alignItems={\"center\"} justifyContent={\"space-between\"} flexGrow={1}>\n <Text tabIndex={-1} size={size} color={\"currentColor\"}>\n {label}\n </Text>\n {selected && (\n <Icon color={resolveIconColor(theme, focused)} icon={faCheck} size={12} />\n )}\n </Row>\n);\n","import { Column, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { Chip, FlatButton } from \"@stenajs-webui/elements\";\nimport { ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ChipRowItem {\n label: string;\n value: string;\n}\n\nexport interface ChipRowProps<TValue>\n extends ValueAndOnValueChangeProps<TValue> {\n noneSelectedLabel?: string;\n}\n\nexport function ChipRow<TValue extends ChipRowItem>({\n value,\n onValueChange,\n noneSelectedLabel = \"None\",\n children,\n}: PropsWithChildren<ChipRowProps<Array<TValue>>>) {\n return (\n <Column flex={1}>\n <Row flexWrap={\"wrap\"}>\n {value?.map((v) => (\n <Row key={v.value}>\n <Spacing num={0.5}>\n <Chip\n label={v.label}\n onClickRemove={() =>\n onValueChange?.(\n value?.filter((f) => f.value !== v.value) ?? []\n )\n }\n />\n </Spacing>\n <Space />\n </Row>\n ))}\n {value?.length ? (\n <Spacing num={0.5}>\n <FlatButton\n size={\"small\"}\n label={\"Clear\"}\n onClick={() => onValueChange?.([])}\n />\n </Spacing>\n ) : (\n <Spacing num={0.5}>\n <Chip variant={\"secondary\"} label={noneSelectedLabel} />\n </Spacing>\n )}\n </Row>\n <Space num={0.5} />\n {children}\n </Column>\n );\n}\n","import { ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport * as React from \"react\";\nimport { MultiSelect, MultiSelectProps } from \"../MultiSelect\";\nimport { ChipRow, ChipRowItem } from \"./ChipRow\";\n\nexport interface ChipMultiSelectOption extends ChipRowItem {}\n\n/**\n * @deprecated renamed to ChipMultiSelectOption\n */\nexport type ChipMultiSelectValue = ChipMultiSelectOption;\n\nexport interface ChipMultiSelectProps<TOption>\n extends Omit<MultiSelectProps<TOption>, \"value\" | \"onChange\" | \"isLoading\">,\n ValueAndOnValueChangeProps<Array<TOption>> {\n loading?: boolean;\n inputValue?: string;\n onInputChange?: (inputValue: string) => void;\n noneSelectedLabel?: string;\n}\n\nfunction _ChipMultiSelect<TOption extends ChipMultiSelectOption>({\n value,\n onValueChange,\n placeholder = \"Type to search\",\n loading,\n inputValue,\n onInputChange,\n noneSelectedLabel = \"None\",\n ...selectProps\n}: ChipMultiSelectProps<TOption>) {\n return (\n <ChipRow\n noneSelectedLabel={noneSelectedLabel}\n onValueChange={onValueChange}\n value={value}\n >\n <MultiSelect<TOption>\n {...selectProps}\n isClearable={false}\n value={value}\n onChange={\n onValueChange ? (value) => onValueChange([...value]) : undefined\n }\n backspaceRemovesValue={false}\n hideSelectedOptions\n controlShouldRenderValue={false}\n placeholder={placeholder}\n isLoading={loading}\n inputValue={inputValue}\n onInputChange={onInputChange}\n />\n </ChipRow>\n );\n}\n\nexport const ChipMultiSelect = React.memo(\n _ChipMultiSelect\n) as typeof _ChipMultiSelect;\n","import * as React from \"react\";\nimport { ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport {\n GroupedMultiSelect,\n GroupedMultiSelectProps,\n} from \"../GroupedMultiSelect\";\nimport { DropdownOption } from \"../GroupedMultiSelectTypes\";\nimport { ChipRow } from \"./ChipRow\";\n\nexport interface GroupedChipMultiSelectValue<TData>\n extends DropdownOption<TData> {}\n\nexport interface GroupedChipMultiSelectProps<TData>\n extends Omit<GroupedMultiSelectProps<TData>, \"onChange\" | \"value\">,\n ValueAndOnValueChangeProps<Array<DropdownOption<TData>>> {\n loading?: boolean;\n inputValue?: string;\n onInputChange?: (inputValue: string) => void;\n noneSelectedLabel?: string;\n}\n\nfunction _GroupedChipMultiSelect<TData>({\n value,\n onValueChange,\n placeholder = \"Type to search\",\n loading,\n inputValue,\n onInputChange,\n noneSelectedLabel = \"None\",\n ...selectProps\n}: GroupedChipMultiSelectProps<TData>) {\n return (\n <ChipRow\n noneSelectedLabel={noneSelectedLabel}\n onValueChange={onValueChange}\n value={value}\n >\n <GroupedMultiSelect<TData>\n {...selectProps}\n isClearable={false}\n value={value}\n onChange={\n onValueChange ? (value) => onValueChange([...value]) : undefined\n }\n backspaceRemovesValue={false}\n hideSelectedOptions\n controlShouldRenderValue={false}\n placeholder={placeholder}\n isLoading={loading}\n inputValue={inputValue}\n onInputChange={onInputChange}\n />\n </ChipRow>\n );\n}\n\nexport const GroupedChipMultiSelect = React.memo(\n _GroupedChipMultiSelect\n) as typeof _GroupedChipMultiSelect;\n"],"names":["useMemo","mergeStyles","React","AsyncComponent","SelectComponent","differenceWith","isEqual","uniqWith","intersectionWith","components","Row","Space","Text","Icon","faCheck","Column","Spacing","Chip","FlatButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/SelectTheme.ts","../src/util/StylesBuilder.ts","../src/components/ui/AsyncMultiSelect.tsx","../src/components/ui/AsyncSelect.tsx","../src/components/ui/MultiSelect.tsx","../src/components/ui/Select.tsx","../src/util/multiDropdownUtils.ts","../src/components/ui/GroupedMultiSelect.tsx","../src/components/ui/ChipMultiSelect/ChipRow.tsx","../src/components/ui/ChipMultiSelect/ChipMultiSelect.tsx","../src/components/ui/ChipMultiSelect/GroupedChipMultiSelect.tsx"],"sourcesContent":["import { Property } from \"csstype\";\n\nexport interface SelectTheme {\n arrowColor: {\n focused: {\n standard: string;\n hover: string;\n };\n closed: {\n standard: string;\n hover: string;\n };\n };\n clearButtonColor: {\n standard: string;\n hover: string;\n };\n input: {\n backgroundColor: string;\n border: string;\n borderColor: string;\n borderColorFocused: string;\n borderRadius: string;\n disabledBackgroundColor: string;\n warningBackgroundColor: string;\n errorBackgroundColor: string;\n successBackgroundColor: string;\n warningBorderColor: string;\n errorBorderColor: string;\n successBorderColor: string;\n boxShadowFocused: string;\n fontFamily: string;\n fontSize: string;\n height?: string;\n minHeight?: string;\n placeholderColor: string;\n textColor: string;\n };\n loadingIndicator: {\n textColor: string;\n };\n menu: {\n disabledTextColor: string;\n disabledBackgroundColor: string;\n textColor: string;\n backgroundColor: string;\n hoverTextColor: string;\n hoverBackgroundColor: string;\n activeTextColor: string;\n activeBackgroundColor: string;\n minWidth?: string;\n selectedItemTextColor: string;\n selectedItemBackgroundColor: string;\n selectedItemHoverTextColor: string;\n selectedItemIconColor: string;\n selectedItemHoverIconColor: string;\n selectedItemHoverBackgroundColor: string;\n selectedItemActiveTextColor: string;\n selectedItemActiveBackgroundColor: string;\n zIndex: number;\n width?: string;\n whiteSpace?: Property.WhiteSpace;\n };\n menuPortal: {\n zIndex: number;\n };\n multiSelect: {\n backgroundColor: string;\n textColor: string;\n removeButtonBackgroundColor: string;\n removeButtonTextColor: string;\n removeButtonHoverBackgroundColor: string;\n removeButtonHoverTextColor: string;\n };\n}\n\nexport const defaultSelectTheme: SelectTheme = {\n arrowColor: {\n focused: {\n hover: \"var(--lhds-color-ui-500)\",\n standard: \"var(--lhds-color-ui-500)\",\n },\n closed: {\n hover: \"var(--lhds-color-ui-500)\",\n standard: \"var(--lhds-color-ui-500)\",\n },\n },\n clearButtonColor: {\n hover: \"var(--lhds-color-ui-600)\",\n standard: \"var(--lhds-color-ui-500)\",\n },\n input: {\n backgroundColor: \"var(--swui-field-bg-enabled)\",\n border: `1px solid var(--swui-select-border-color)`,\n borderColor: \"var(--swui-field-border-color)\",\n borderColorFocused: \"var(--swui-field-border-color-hover)\",\n disabledBackgroundColor: \"var(--swui-field-bg-disabled)\",\n warningBackgroundColor: \"var(--swui-state-alert-light-color)\",\n errorBackgroundColor: \"var(--swui-state-error-light-color)\",\n successBackgroundColor: \"var(--swui-state-success-light-color)\",\n warningBorderColor: \"var(--swui-state-alert-color)\",\n errorBorderColor: \"var(--swui-state-error-color)\",\n successBorderColor: \"var(--swui-state-success-color)\",\n boxShadowFocused: \"var(--swui-field-focus-shadow)\",\n fontFamily: \"var(--swui-font-primary)\",\n fontSize: \"var(--swui-font-size-inputs)\",\n height: \"32px\",\n minHeight: \"32px\",\n placeholderColor: \"var(--swui-field-border-color-disabled)\",\n textColor: \"var(--swui-field-text-color)\",\n borderRadius: \"var(--swui-field-border-radius)\",\n },\n loadingIndicator: {\n textColor: \"var(--swui-field-text-color)\",\n },\n menu: {\n activeBackgroundColor: \"var(--lhds-color-blue-100)\",\n activeTextColor: \"var(--swui-field-text-color)\",\n selectedItemActiveBackgroundColor: \"var(--lhds-color-blue-500)\",\n selectedItemActiveTextColor: \"var(--lhds-color-blue-50)\",\n disabledTextColor: \"var(--swui-field-text-color-disabled)\",\n disabledBackgroundColor: \"var(--swui-field-bg-disabled)\",\n textColor: \"var(--swui-field-text-color)\",\n backgroundColor: \"var(--swui-field-bg-enabled)\",\n hoverTextColor: \"var(--swui-field-text-color)\",\n hoverBackgroundColor: \"var(--lhds-color-blue-200)\",\n selectedItemTextColor: \"var(--lhds-color-blue-500)\",\n selectedItemIconColor: \"var(--lhds-color-blue-500)\",\n selectedItemHoverTextColor: \"var(--swui-field-text-color)\",\n selectedItemHoverIconColor: \"var(--swui-field-text-color)\",\n selectedItemBackgroundColor: \"var(--lhds-color-blue-50)\",\n selectedItemHoverBackgroundColor: \"var(--lhds-color-blue-50)\",\n zIndex: 1,\n width: \"auto\",\n minWidth: \"100%\",\n whiteSpace: \"nowrap\",\n },\n menuPortal: {\n zIndex: 1,\n },\n multiSelect: {\n backgroundColor: \"var(--swui-primary-action-color)\",\n textColor: \"var(--lhds-color-blue-50)\",\n removeButtonBackgroundColor: \"transparent\",\n removeButtonTextColor: \"var(--swui-white)\",\n removeButtonHoverBackgroundColor: \"var(--swui-primary-action-color-hover)\",\n removeButtonHoverTextColor: \"var(--swui-white)\",\n },\n};\n","import { StylesConfig } from \"react-select\";\nimport { defaultSelectTheme, SelectTheme } from \"../SelectTheme\";\nimport { GroupBase } from \"react-select/dist/declarations/src/types\";\n\nexport type SelectVariant = \"standard\" | \"warning\" | \"error\" | \"success\";\n\nconst resolveOptionBackgroundColor = (\n colors: SelectTheme[\"menu\"],\n isDisabled: boolean,\n isSelected: boolean,\n isFocused: boolean\n): string | undefined => {\n if (isDisabled) {\n return colors.disabledBackgroundColor;\n } else if (isSelected && isFocused) {\n return colors.selectedItemHoverBackgroundColor;\n } else if (isSelected) {\n return colors.selectedItemBackgroundColor;\n } else if (isFocused) {\n return colors.hoverBackgroundColor;\n } else {\n return undefined;\n }\n};\n\nconst resolveOptionColor = (\n colors: SelectTheme[\"menu\"],\n isDisabled: boolean,\n isSelected: boolean,\n isFocused: boolean\n): string | undefined => {\n if (isDisabled) {\n return colors.disabledTextColor;\n } else if (isSelected && isFocused) {\n return colors.selectedItemHoverTextColor;\n } else if (isSelected) {\n return colors.selectedItemTextColor;\n } else if (isFocused) {\n return colors.hoverTextColor;\n } else {\n return undefined;\n }\n};\n\nconst resolveInputBackgroundColor = (\n colors: SelectTheme[\"input\"],\n isDisabled: boolean,\n isFocused: boolean,\n variant: SelectVariant | undefined\n): string | undefined => {\n if (isDisabled) {\n return colors.disabledBackgroundColor;\n } else if (isFocused) {\n return colors.backgroundColor;\n } else if (variant === \"warning\") {\n return colors.warningBackgroundColor;\n } else if (variant === \"success\") {\n return colors.successBackgroundColor;\n } else if (variant === \"error\") {\n return colors.errorBackgroundColor;\n } else {\n return colors.backgroundColor;\n }\n};\n\nconst resolveInputBorderColor = (\n colors: SelectTheme[\"input\"],\n isDisabled: boolean,\n isFocused: boolean,\n isHovered: boolean,\n variant: SelectVariant | undefined\n): string | undefined => {\n if (isDisabled) {\n return colors.borderColor;\n } else if (isFocused) {\n return colors.borderColorFocused;\n } else if (variant === \"warning\") {\n return colors.warningBorderColor;\n } else if (variant === \"success\") {\n return colors.successBorderColor;\n } else if (variant === \"error\") {\n return colors.errorBorderColor;\n } else if (isHovered) {\n return colors.borderColorFocused;\n } else {\n return colors.borderColor;\n }\n};\n\n/**\n * @deprecated\n */\nexport const createStylesFromTheme = <\n OptionType,\n IsMulti extends boolean,\n TGroup extends GroupBase<OptionType> = GroupBase<OptionType>\n>(\n {\n menu,\n menuPortal,\n input,\n multiSelect,\n clearButtonColor,\n arrowColor,\n loadingIndicator,\n }: SelectTheme,\n variant: SelectVariant | undefined\n): StylesConfig<OptionType, IsMulti, TGroup> => ({\n option: (base, { isDisabled, isFocused, isSelected }) => ({\n ...base,\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n backgroundColor: resolveOptionBackgroundColor(\n menu,\n isDisabled,\n isSelected,\n isFocused\n ),\n color: resolveOptionColor(menu, isDisabled, isSelected, isFocused),\n cursor: isDisabled ? \"not-allowed\" : \"default\",\n whiteSpace: menu.whiteSpace || base.whiteSpace,\n \":active\": {\n backgroundColor: isDisabled\n ? undefined\n : isSelected\n ? menu.selectedItemActiveBackgroundColor\n : menu.activeBackgroundColor,\n color: isDisabled\n ? undefined\n : isSelected\n ? menu.selectedItemActiveTextColor\n : menu.activeTextColor,\n },\n }),\n control: (base, { isFocused, isDisabled, menuIsOpen }) => ({\n ...base,\n // none of react-selects styles are passed to <View />\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n minHeight: input.minHeight,\n backgroundColor: resolveInputBackgroundColor(\n input,\n isDisabled,\n isFocused,\n variant\n ),\n borderRadius: input.borderRadius,\n border: input.border,\n \"--swui-select-border-color\": resolveInputBorderColor(\n input,\n isDisabled,\n isFocused || menuIsOpen,\n false,\n variant\n ),\n boxShadow: isFocused ? input.boxShadowFocused : undefined,\n \"&:hover\": {\n \"--swui-select-border-color\": resolveInputBorderColor(\n input,\n false,\n isFocused || menuIsOpen,\n true,\n variant\n ),\n },\n }),\n singleValue: (base) => ({\n ...base,\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n color: input.textColor,\n }),\n noOptionsMessage: (base) => ({\n ...base,\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n }),\n input: (base) => ({\n ...base,\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n color: input.textColor,\n }),\n groupHeading: (base) => ({\n ...base,\n fontFamily: input.fontFamily,\n }),\n multiValueLabel: (base) => ({\n ...base,\n backgroundColor: multiSelect.backgroundColor,\n color: multiSelect.textColor,\n fontFamily: input.fontFamily,\n fontSize: \"12px\",\n }),\n indicatorSeparator: (base) => ({\n ...base,\n display: \"none\",\n }),\n clearIndicator: (base) => ({\n ...base,\n padding: \"5px\",\n color: clearButtonColor.standard,\n \"&:hover\": {\n color: clearButtonColor.hover,\n },\n cursor: \"pointer\",\n }),\n placeholder: (base) => ({\n ...base,\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n color: input.placeholderColor,\n }),\n container: (base) => ({\n ...base,\n }),\n valueContainer: (base) => ({\n ...base,\n padding: \"0 8px\",\n }),\n dropdownIndicator: (base, { isFocused }) => ({\n ...base,\n padding: \"5px\",\n color: isFocused ? arrowColor.focused.standard : arrowColor.closed.standard,\n \"&:hover\": {\n color: isFocused ? arrowColor.focused.hover : arrowColor.closed.hover,\n },\n svg: {\n width: 14,\n height: 14,\n },\n }),\n menu: (base) => ({\n ...base,\n backgroundColor: menu.backgroundColor,\n color: menu.textColor,\n minWidth: menu.minWidth || base.minWidth,\n zIndex: menu.zIndex,\n width: menu.width || base.width,\n border: input.border,\n borderColor: input.borderColorFocused,\n }),\n menuPortal: (base) => ({\n ...base,\n zIndex: menuPortal.zIndex,\n }),\n multiValueRemove: (styles) => ({\n ...styles,\n backgroundColor: multiSelect.removeButtonBackgroundColor,\n \":hover\": {\n color: multiSelect.removeButtonHoverTextColor,\n backgroundColor: multiSelect.removeButtonHoverBackgroundColor,\n },\n color: multiSelect.removeButtonTextColor,\n borderRadius: \"50%\",\n width: 16,\n height: 16,\n padding: 0,\n margin: 3,\n marginTop: 4,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n cursor: \"pointer\",\n }),\n multiValue: (base) => ({\n ...base,\n backgroundColor: multiSelect.backgroundColor,\n color: multiSelect.textColor,\n fontFamily: input.fontFamily,\n fontSize: \"12px\",\n alignItems: \"center\",\n margin: 0,\n marginRight: 2,\n }),\n loadingMessage: (base) => ({\n ...base,\n color: loadingIndicator.textColor,\n fontFamily: input.fontFamily,\n fontSize: input.fontSize,\n }),\n});\n\nexport const createStylesFromVariant = <\n OptionType,\n IsMulti extends boolean,\n TGroup extends GroupBase<OptionType> = GroupBase<OptionType>\n>(\n variant: SelectVariant\n): StylesConfig<OptionType, IsMulti, TGroup> =>\n createStylesFromTheme(defaultSelectTheme, variant);\n","import * as React from \"react\";\nimport { useMemo } from \"react\";\nimport { mergeStyles } from \"react-select\";\nimport AsyncComponent, { AsyncProps } from \"react-select/async\";\nimport {\n createStylesFromVariant,\n SelectVariant,\n} from \"../../util/StylesBuilder\";\nimport { GroupBase } from \"react-select/dist/declarations/src/types\";\n\nexport interface AsyncMultiSelectProps<T = { label: string; value: string }>\n extends AsyncProps<T, true, GroupBase<T>> {\n variant?: SelectVariant;\n isMulti?: true;\n}\n\nexport const AsyncMultiSelect = <T extends {}>({\n variant = \"standard\",\n styles,\n isMulti,\n ...selectProps\n}: AsyncMultiSelectProps<T>) => {\n const selectStyles = useMemo(() => {\n const sourceStyles = createStylesFromVariant<T, true>(variant);\n\n return styles ? mergeStyles(sourceStyles, styles) : sourceStyles;\n }, [variant, styles]);\n\n return (\n <AsyncComponent styles={selectStyles} {...selectProps} isMulti={true} />\n );\n};\n","import * as React from \"react\";\nimport { useMemo } from \"react\";\nimport AsyncComponent, { AsyncProps } from \"react-select/async\";\nimport {\n createStylesFromVariant,\n SelectVariant,\n} from \"../../util/StylesBuilder\";\nimport { mergeStyles } from \"react-select\";\nimport { GroupBase } from \"react-select/dist/declarations/src/types\";\n\nexport interface AsyncSelectProps<T = { label: string; value: string }>\n extends AsyncProps<T, false, GroupBase<T>> {\n variant?: SelectVariant;\n isMulti?: false;\n}\n\nexport const AsyncSelect = <T extends {}>({\n variant = \"standard\",\n styles,\n isMulti,\n ...selectProps\n}: AsyncSelectProps<T>) => {\n const selectStyles = useMemo(() => {\n const sourceStyles = createStylesFromVariant<T, false>(variant);\n\n return styles ? mergeStyles(sourceStyles, styles) : sourceStyles;\n }, [variant, styles]);\n\n return (\n <AsyncComponent styles={selectStyles} {...selectProps} isMulti={false} />\n );\n};\n","import * as React from \"react\";\nimport { useMemo } from \"react\";\nimport SelectComponent, {\n mergeStyles,\n Props,\n SelectComponentsConfig,\n} from \"react-select\";\nimport {\n createStylesFromVariant,\n SelectVariant,\n} from \"../../util/StylesBuilder\";\nimport { GroupBase } from \"react-select/dist/declarations/src/types\";\n\nexport interface MultiSelectProps<TOption = { label: string; value: string }>\n extends Props<TOption, true> {\n variant?: SelectVariant;\n isMulti?: true;\n}\n\nexport type MultiSelectComponentsConfig<TOption> = SelectComponentsConfig<\n TOption,\n true,\n GroupBase<TOption>\n>;\n\nexport const MultiSelect = <TOption extends {}>({\n variant = \"standard\",\n styles,\n isMulti,\n ...selectProps\n}: MultiSelectProps<TOption>) => {\n const selectStyles = useMemo(() => {\n const sourceStyles = createStylesFromVariant<TOption, true>(variant);\n\n return styles ? mergeStyles(sourceStyles, styles) : sourceStyles;\n }, [variant, styles]);\n\n return (\n <SelectComponent styles={selectStyles} {...selectProps} isMulti={true} />\n );\n};\n","import * as React from \"react\";\nimport { useMemo } from \"react\";\nimport SelectComponent, { mergeStyles, Props } from \"react-select\";\nimport {\n createStylesFromVariant,\n SelectVariant,\n} from \"../../util/StylesBuilder\";\n\nexport interface SelectProps<T = { label: string; value: string }>\n extends Props<T, false> {\n variant?: SelectVariant;\n isMulti?: false;\n}\n\nexport const Select = <T extends {}>({\n variant = \"standard\",\n styles,\n isMulti,\n ...selectProps\n}: SelectProps<T>) => {\n const selectStyles = useMemo(() => {\n const sourceStyles = createStylesFromVariant<T, false>(variant);\n\n return styles ? mergeStyles(sourceStyles, styles) : sourceStyles;\n }, [variant, styles]);\n\n return (\n <SelectComponent styles={selectStyles} {...selectProps} isMulti={false} />\n );\n};\n","import { differenceWith, intersectionWith, isEqual, uniqWith } from \"lodash\";\nimport { ActionMeta, GroupBase, OnChangeValue, Options } from \"react-select\";\nimport { OnChange } from \"../components/ui/GroupedMultiSelect\";\nimport { DropdownOption } from \"../components/ui/GroupedMultiSelectTypes\";\n\nexport type GroupedOptionsType<TOption> = ReadonlyArray<GroupBase<TOption>>;\n\nexport type InternalDropdownOption<TData> =\n | InternalChildOption<TData>\n | InternalParentDropdownOption<TData>;\n\ninterface InternalChildOption<TData> {\n data: TData;\n label: string;\n value: string;\n}\n\ninterface InternalParentDropdownOption<TData> {\n data: TData;\n label: string;\n value: string;\n internalOptions: Options<DropdownOption<TData>>;\n}\n\nconst removeGroupedOptionsType = <TData>(\n removedValue: InternalParentDropdownOption<TData>,\n selectedInternalOptions: Options<InternalDropdownOption<TData>>\n): Options<InternalDropdownOption<TData>> =>\n differenceWith(\n selectedInternalOptions,\n [...removedValue.internalOptions, removedValue],\n isEqual\n ).map(convertInternalOptionToDropdownOption);\n\nconst removeInternalOptions = <TData>(\n selectedInternalOption: InternalDropdownOption<TData>\n): boolean => !(\"internalOptions\" in selectedInternalOption);\n\nconst removeOptionHeaders = <TData>(\n selectedInternalOptions: Options<InternalDropdownOption<TData>>\n): Options<InternalDropdownOption<TData>> =>\n selectedInternalOptions\n .filter(removeInternalOptions)\n .map(convertInternalOptionToDropdownOption);\n\nexport const createOnChange =\n <TData>(onChange: OnChange<TData>) =>\n (\n incomingSelectedInternalOptions: OnChangeValue<\n InternalDropdownOption<TData>,\n true\n >,\n meta: ActionMeta<InternalDropdownOption<TData>>\n ) => {\n const selectedInternalOptions = incomingSelectedInternalOptions ?? [];\n switch (meta.action) {\n case \"select-option\":\n if (meta.option && \"internalOptions\" in meta.option) {\n const selectedOptions: OnChangeValue<\n InternalDropdownOption<TData>,\n true\n > = uniqWith(\n selectedInternalOptions.reduce<Options<DropdownOption<TData>>>(\n (previousValue, currentValue) => {\n if (\"internalOptions\" in currentValue) {\n return [...previousValue, ...currentValue.internalOptions];\n } else {\n return [\n ...previousValue,\n convertInternalOptionToDropdownOption(currentValue),\n ];\n }\n },\n []\n ),\n isEqual\n );\n\n onChange(selectedOptions, meta);\n } else {\n onChange(removeOptionHeaders(selectedInternalOptions), meta);\n }\n break;\n case \"deselect-option\":\n if (meta.option && \"internalOptions\" in meta.option) {\n onChange(\n removeGroupedOptionsType(\n meta.option,\n removeOptionHeaders(selectedInternalOptions)\n ),\n meta\n );\n } else {\n onChange(removeOptionHeaders(selectedInternalOptions), meta);\n }\n break;\n case \"remove-value\":\n case \"pop-value\":\n if (meta.removedValue && \"internalOptions\" in meta.removedValue) {\n onChange(\n removeGroupedOptionsType(\n meta.removedValue,\n removeOptionHeaders(selectedInternalOptions)\n ),\n meta\n );\n } else {\n onChange(removeOptionHeaders(selectedInternalOptions), meta);\n }\n break;\n case \"clear\":\n onChange(\n selectedInternalOptions.map(convertInternalOptionToDropdownOption),\n meta\n );\n break;\n case \"create-option\":\n onChange(\n selectedInternalOptions.map(convertInternalOptionToDropdownOption),\n meta\n );\n break;\n default:\n break;\n }\n };\n\nexport const convertGroupedDropdownOptionsToInternalOptions = <TData>(\n options: GroupedOptionsType<DropdownOption<TData>>\n): InternalDropdownOption<TData>[] => {\n return options.reduce<InternalDropdownOption<TData>[]>(\n (previousValue, currentValue) => {\n return [\n ...previousValue,\n convertGroupedDropdownOptionToInternalOption(currentValue),\n ...currentValue.options.map(convertDropdownOptionToInternalOption),\n ];\n },\n []\n );\n};\n\nexport const convertValueToInternalValue = <TData>(\n options: GroupedOptionsType<DropdownOption<TData>>,\n values: Options<DropdownOption<TData>> | undefined\n): InternalDropdownOption<TData>[] => {\n if (!values) {\n return [];\n }\n const selectedOptions: InternalDropdownOption<TData>[] = [];\n options.forEach((option) => {\n if (allOptionsExists(option.options, values)) {\n selectedOptions.push(\n convertGroupedDropdownOptionToInternalOption(option)\n );\n }\n selectedOptions.push(\n ...intersectionWith(option.options, values, isEqual).map((option) =>\n convertDropdownOptionToInternalOption(option)\n )\n );\n });\n return selectedOptions;\n};\n\nexport const allOptionsExists = <TData>(\n options: Options<DropdownOption<TData>>,\n selectedValues: Options<DropdownOption<TData>> | undefined\n): boolean => {\n if (!selectedValues) {\n return false;\n }\n\n return (\n intersectionWith(options, selectedValues, isEqual).length === options.length\n );\n};\n\nexport const convertDropdownOptionToInternalOption = <TData>(\n option: DropdownOption<TData>\n): InternalDropdownOption<TData> => ({\n data: option.data,\n label: option.label,\n value: option.value,\n});\n\n// TODO: can this be done `any` other way\nexport const convertGroupedDropdownOptionToInternalOption = <TData>(\n option: GroupBase<DropdownOption<TData>>\n): InternalDropdownOption<TData> => ({\n data: option.label as any,\n label: option.label as any,\n value: option.label as any,\n internalOptions: option.options,\n});\n\nexport const convertInternalOptionToDropdownOption = <TData>(\n option: InternalDropdownOption<TData>\n): DropdownOption<TData> => ({\n data: option.data,\n label: option.label,\n value: option.value,\n});\n","import { Row, Space, Text, TextSize } from \"@stenajs-webui/core\";\nimport { Icon, stenaCheck } from \"@stenajs-webui/elements\";\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\nimport {\n ActionMeta,\n components,\n GroupBase,\n MultiValueProps,\n OnChangeValue,\n OptionProps,\n Options,\n} from \"react-select\";\nimport { defaultSelectTheme, SelectTheme } from \"../../SelectTheme\";\nimport {\n convertGroupedDropdownOptionsToInternalOptions,\n convertValueToInternalValue,\n createOnChange,\n GroupedOptionsType,\n InternalDropdownOption,\n} from \"../../util/multiDropdownUtils\";\nimport { DropdownOption } from \"./GroupedMultiSelectTypes\";\nimport {\n MultiSelect,\n MultiSelectComponentsConfig,\n MultiSelectProps,\n} from \"./MultiSelect\";\n\nexport type OnChange<TData> = (\n value: OnChangeValue<DropdownOption<TData>, true>,\n action: ActionMeta<any>\n) => void;\n\nexport interface GroupedMultiSelectProps<TData>\n extends Omit<\n MultiSelectProps<InternalDropdownOption<TData>>,\n \"options\" | \"onChange\" | \"value\" | \"components\"\n > {\n /**\n * Same as Select prop `component` but without MultiValue and Option since they can not be modified\n */\n components?: Omit<\n MultiSelectComponentsConfig<InternalDropdownOption<TData>>,\n \"MultiValue\" | \"Option\"\n >;\n /**\n * Same as Select prop `options` but only with GroupOptionsType\n */\n options?: GroupedOptionsType<DropdownOption<TData>>;\n /**\n * Same as Select prop `onChange` but only with GroupOptionsType\n */\n onChange?: OnChange<TData>;\n /**\n * Same as Select prop `value` but only with GroupOptionsType\n */\n value?: Options<DropdownOption<TData>> | undefined;\n}\n\nconst resolveIconColor = (\n theme: SelectTheme,\n isFocused: boolean\n): string | undefined =>\n isFocused\n ? theme.menu.selectedItemHoverIconColor\n : theme.menu.selectedItemIconColor;\n\nfunction formatInnerOptionLabel<TData>(\n props: OptionProps<\n InternalDropdownOption<TData>,\n true,\n GroupBase<InternalDropdownOption<TData>>\n >\n) {\n const { formatGroupLabel, formatOptionLabel } = props.selectProps;\n\n if (\"internalOptions\" in props.data) {\n return formatGroupLabel\n ? formatGroupLabel({\n label: props.data.label,\n options: props.data.internalOptions,\n })\n : props.label;\n }\n\n return formatOptionLabel\n ? formatOptionLabel(props.data, {\n context: \"menu\",\n inputValue: props.selectProps.inputValue ?? \"\",\n selectValue: props.getValue(),\n })\n : props.label;\n}\n\nexport const GroupedMultiSelect = <TData extends {}>({\n onChange,\n options,\n value,\n variant = \"standard\",\n formatGroupLabel,\n formatOptionLabel,\n ...selectProps\n}: GroupedMultiSelectProps<TData>): React.ReactElement<\n GroupedMultiSelectProps<TData>\n> => {\n const Option = (\n props: OptionProps<\n InternalDropdownOption<TData>,\n true,\n GroupBase<InternalDropdownOption<TData>>\n >\n ) => {\n const label = formatInnerOptionLabel(props);\n const isGroupOption = \"internalOptions\" in props.data;\n\n return (\n <components.Option {...props}>\n <Row>\n {!isGroupOption && <Space />}\n <InnerOption\n theme={defaultSelectTheme}\n size={!isGroupOption ? \"small\" : undefined}\n label={label}\n selected={props.isSelected}\n focused={props.isFocused}\n />\n </Row>\n </components.Option>\n );\n };\n\n const MultiValue = (\n props: MultiValueProps<\n InternalDropdownOption<TData>,\n true,\n GroupBase<InternalDropdownOption<TData>>\n >\n ) => {\n return !(\"internalOptions\" in props.data) ? (\n <components.MultiValue {...props} />\n ) : null;\n };\n\n const internalValue = options\n ? convertValueToInternalValue(options, value)\n : undefined;\n const internalOptions = options\n ? convertGroupedDropdownOptionsToInternalOptions(options)\n : undefined;\n\n return (\n <MultiSelect<InternalDropdownOption<TData>>\n {...selectProps}\n onChange={onChange ? createOnChange<TData>(onChange) : undefined}\n hideSelectedOptions={false}\n components={{\n ...selectProps.components,\n MultiValue,\n Option,\n }}\n isMulti={true}\n options={internalOptions}\n value={internalValue}\n variant={variant}\n />\n );\n};\n\ninterface InnerOptionProps {\n size?: TextSize;\n selected: boolean;\n theme: SelectTheme;\n label: ReactNode;\n focused: boolean;\n}\n\nconst InnerOption: React.VFC<InnerOptionProps> = ({\n focused,\n label,\n selected,\n size,\n theme,\n}) => (\n <Row alignItems={\"center\"} justifyContent={\"space-between\"} flexGrow={1}>\n <Text tabIndex={-1} size={size} color={\"currentColor\"}>\n {label}\n </Text>\n {selected && (\n <Icon\n color={resolveIconColor(theme, focused)}\n icon={stenaCheck}\n size={12}\n />\n )}\n </Row>\n);\n","import { Column, Row, Space, Spacing } from \"@stenajs-webui/core\";\nimport { Chip, FlatButton } from \"@stenajs-webui/elements\";\nimport { ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport * as React from \"react\";\nimport { PropsWithChildren } from \"react\";\n\nexport interface ChipRowItem {\n label: string;\n value: string;\n}\n\nexport interface ChipRowProps<TValue>\n extends ValueAndOnValueChangeProps<TValue> {\n noneSelectedLabel?: string;\n}\n\nexport function ChipRow<TValue extends ChipRowItem>({\n value,\n onValueChange,\n noneSelectedLabel = \"None\",\n children,\n}: PropsWithChildren<ChipRowProps<Array<TValue>>>) {\n return (\n <Column flex={1}>\n <Row flexWrap={\"wrap\"}>\n {value?.map((v) => (\n <Row key={v.value}>\n <Spacing num={0.5}>\n <Chip\n label={v.label}\n onClickRemove={() =>\n onValueChange?.(\n value?.filter((f) => f.value !== v.value) ?? []\n )\n }\n />\n </Spacing>\n <Space />\n </Row>\n ))}\n {value?.length ? (\n <Spacing num={0.5}>\n <FlatButton\n size={\"small\"}\n label={\"Clear\"}\n onClick={() => onValueChange?.([])}\n />\n </Spacing>\n ) : (\n <Spacing num={0.5}>\n <Chip variant={\"secondary\"} label={noneSelectedLabel} />\n </Spacing>\n )}\n </Row>\n <Space num={0.5} />\n {children}\n </Column>\n );\n}\n","import { ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport * as React from \"react\";\nimport { MultiSelect, MultiSelectProps } from \"../MultiSelect\";\nimport { ChipRow, ChipRowItem } from \"./ChipRow\";\n\nexport interface ChipMultiSelectOption extends ChipRowItem {}\n\n/**\n * @deprecated renamed to ChipMultiSelectOption\n */\nexport type ChipMultiSelectValue = ChipMultiSelectOption;\n\nexport interface ChipMultiSelectProps<TOption>\n extends Omit<MultiSelectProps<TOption>, \"value\" | \"onChange\" | \"isLoading\">,\n ValueAndOnValueChangeProps<Array<TOption>> {\n loading?: boolean;\n inputValue?: string;\n onInputChange?: (inputValue: string) => void;\n noneSelectedLabel?: string;\n}\n\nfunction _ChipMultiSelect<TOption extends ChipMultiSelectOption>({\n value,\n onValueChange,\n placeholder = \"Type to search\",\n loading,\n inputValue,\n onInputChange,\n noneSelectedLabel = \"None\",\n ...selectProps\n}: ChipMultiSelectProps<TOption>) {\n return (\n <ChipRow\n noneSelectedLabel={noneSelectedLabel}\n onValueChange={onValueChange}\n value={value}\n >\n <MultiSelect<TOption>\n {...selectProps}\n isClearable={false}\n value={value}\n onChange={\n onValueChange ? (value) => onValueChange([...value]) : undefined\n }\n backspaceRemovesValue={false}\n hideSelectedOptions\n controlShouldRenderValue={false}\n placeholder={placeholder}\n isLoading={loading}\n inputValue={inputValue}\n onInputChange={onInputChange}\n />\n </ChipRow>\n );\n}\n\nexport const ChipMultiSelect = React.memo(\n _ChipMultiSelect\n) as typeof _ChipMultiSelect;\n","import * as React from \"react\";\nimport { ValueAndOnValueChangeProps } from \"@stenajs-webui/forms\";\nimport {\n GroupedMultiSelect,\n GroupedMultiSelectProps,\n} from \"../GroupedMultiSelect\";\nimport { DropdownOption } from \"../GroupedMultiSelectTypes\";\nimport { ChipRow } from \"./ChipRow\";\n\nexport interface GroupedChipMultiSelectValue<TData>\n extends DropdownOption<TData> {}\n\nexport interface GroupedChipMultiSelectProps<TData>\n extends Omit<GroupedMultiSelectProps<TData>, \"onChange\" | \"value\">,\n ValueAndOnValueChangeProps<Array<DropdownOption<TData>>> {\n loading?: boolean;\n inputValue?: string;\n onInputChange?: (inputValue: string) => void;\n noneSelectedLabel?: string;\n}\n\nfunction _GroupedChipMultiSelect<TData>({\n value,\n onValueChange,\n placeholder = \"Type to search\",\n loading,\n inputValue,\n onInputChange,\n noneSelectedLabel = \"None\",\n ...selectProps\n}: GroupedChipMultiSelectProps<TData>) {\n return (\n <ChipRow\n noneSelectedLabel={noneSelectedLabel}\n onValueChange={onValueChange}\n value={value}\n >\n <GroupedMultiSelect<TData>\n {...selectProps}\n isClearable={false}\n value={value}\n onChange={\n onValueChange ? (value) => onValueChange([...value]) : undefined\n }\n backspaceRemovesValue={false}\n hideSelectedOptions\n controlShouldRenderValue={false}\n placeholder={placeholder}\n isLoading={loading}\n inputValue={inputValue}\n onInputChange={onInputChange}\n />\n </ChipRow>\n );\n}\n\nexport const GroupedChipMultiSelect = React.memo(\n _GroupedChipMultiSelect\n) as typeof _GroupedChipMultiSelect;\n"],"names":["AsyncMultiSelect","variant","styles","isMulti","selectProps","selectStyles","useMemo","sourceStyles","createStylesFromVariant","mergeStyles","AsyncComponent","AsyncSelect","MultiSelect","SelectComponent","Select","differenceWith","isEqual","uniqWith","intersectionWith","resolveIconColor","theme","isFocused","menu","selectedItemHoverIconColor","selectedItemIconColor","props","formatGroupLabel","formatOptionLabel","data","label","options","internalOptions","context","inputValue","selectValue","getValue","GroupedMultiSelect","onChange","value","Option","formatInnerOptionLabel","isGroupOption","_jsx","components","Row","Space","defaultSelectTheme","undefined","isSelected","MultiValue","internalValue","convertValueToInternalValue","convertGroupedDropdownOptionsToInternalOptions","createOnChange","InnerOption","focused","selected","size","Text","Icon","stenaCheck","onValueChange","noneSelectedLabel","children","Column","_jsxs","map","v","Spacing","Chip","filter","f","length","FlatButton","placeholder","loading","onInputChange","ChipMultiSelect","React","memo","_ChipMultiSelect","GroupedChipMultiSelect","_GroupedChipMultiSelect"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { StylesConfig } from "react-select";
|
|
2
|
-
import { SelectTheme } from "../SelectTheme";
|
|
3
|
-
import { GroupBase } from "react-select/dist/declarations/src/types";
|
|
4
|
-
export declare type SelectVariant = "standard" | "warning" | "error" | "success";
|
|
5
|
-
/**
|
|
6
|
-
* @deprecated
|
|
7
|
-
*/
|
|
8
|
-
export declare const createStylesFromTheme: <OptionType, IsMulti extends boolean, TGroup extends GroupBase<OptionType> = GroupBase<OptionType>>({ menu, menuPortal, input, multiSelect, clearButtonColor, arrowColor, loadingIndicator, }: SelectTheme, variant: SelectVariant | undefined) => StylesConfig<OptionType, IsMulti, TGroup>;
|
|
9
|
-
export declare const createStylesFromVariant: <OptionType, IsMulti extends boolean, TGroup extends GroupBase<OptionType> = GroupBase<OptionType>>(variant: SelectVariant) => StylesConfig<OptionType, IsMulti, TGroup>;
|
|
1
|
+
import { StylesConfig } from "react-select";
|
|
2
|
+
import { SelectTheme } from "../SelectTheme";
|
|
3
|
+
import { GroupBase } from "react-select/dist/declarations/src/types";
|
|
4
|
+
export declare type SelectVariant = "standard" | "warning" | "error" | "success";
|
|
5
|
+
/**
|
|
6
|
+
* @deprecated
|
|
7
|
+
*/
|
|
8
|
+
export declare const createStylesFromTheme: <OptionType, IsMulti extends boolean, TGroup extends GroupBase<OptionType> = GroupBase<OptionType>>({ menu, menuPortal, input, multiSelect, clearButtonColor, arrowColor, loadingIndicator, }: SelectTheme, variant: SelectVariant | undefined) => StylesConfig<OptionType, IsMulti, TGroup>;
|
|
9
|
+
export declare const createStylesFromVariant: <OptionType, IsMulti extends boolean, TGroup extends GroupBase<OptionType> = GroupBase<OptionType>>(variant: SelectVariant) => StylesConfig<OptionType, IsMulti, TGroup>;
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { ActionMeta, GroupBase, OnChangeValue, Options } from "react-select";
|
|
2
|
-
import { OnChange } from "../components/ui/GroupedMultiSelect";
|
|
3
|
-
import { DropdownOption } from "../components/ui/GroupedMultiSelectTypes";
|
|
4
|
-
export declare type GroupedOptionsType<TOption> = ReadonlyArray<GroupBase<TOption>>;
|
|
5
|
-
export declare type InternalDropdownOption<TData> = InternalChildOption<TData> | InternalParentDropdownOption<TData>;
|
|
6
|
-
interface InternalChildOption<TData> {
|
|
7
|
-
data: TData;
|
|
8
|
-
label: string;
|
|
9
|
-
value: string;
|
|
10
|
-
}
|
|
11
|
-
interface InternalParentDropdownOption<TData> {
|
|
12
|
-
data: TData;
|
|
13
|
-
label: string;
|
|
14
|
-
value: string;
|
|
15
|
-
internalOptions: Options<DropdownOption<TData>>;
|
|
16
|
-
}
|
|
17
|
-
export declare const createOnChange: <TData>(onChange: OnChange<TData>) => (incomingSelectedInternalOptions: import("react-select").MultiValue<InternalDropdownOption<TData>>, meta: ActionMeta<InternalDropdownOption<TData>>) => void;
|
|
18
|
-
export declare const convertGroupedDropdownOptionsToInternalOptions: <TData>(options: GroupedOptionsType<DropdownOption<TData>>) => InternalDropdownOption<TData>[];
|
|
19
|
-
export declare const convertValueToInternalValue: <TData>(options: GroupedOptionsType<DropdownOption<TData>>, values: Options<DropdownOption<TData>> | undefined) => InternalDropdownOption<TData>[];
|
|
20
|
-
export declare const allOptionsExists: <TData>(options: Options<DropdownOption<TData>>, selectedValues: Options<DropdownOption<TData>> | undefined) => boolean;
|
|
21
|
-
export declare const convertDropdownOptionToInternalOption: <TData>(option: DropdownOption<TData>) => InternalDropdownOption<TData>;
|
|
22
|
-
export declare const convertGroupedDropdownOptionToInternalOption: <TData>(option: GroupBase<DropdownOption<TData>>) => InternalDropdownOption<TData>;
|
|
23
|
-
export declare const convertInternalOptionToDropdownOption: <TData>(option: InternalDropdownOption<TData>) => DropdownOption<TData>;
|
|
24
|
-
export {};
|
|
1
|
+
import { ActionMeta, GroupBase, OnChangeValue, Options } from "react-select";
|
|
2
|
+
import { OnChange } from "../components/ui/GroupedMultiSelect";
|
|
3
|
+
import { DropdownOption } from "../components/ui/GroupedMultiSelectTypes";
|
|
4
|
+
export declare type GroupedOptionsType<TOption> = ReadonlyArray<GroupBase<TOption>>;
|
|
5
|
+
export declare type InternalDropdownOption<TData> = InternalChildOption<TData> | InternalParentDropdownOption<TData>;
|
|
6
|
+
interface InternalChildOption<TData> {
|
|
7
|
+
data: TData;
|
|
8
|
+
label: string;
|
|
9
|
+
value: string;
|
|
10
|
+
}
|
|
11
|
+
interface InternalParentDropdownOption<TData> {
|
|
12
|
+
data: TData;
|
|
13
|
+
label: string;
|
|
14
|
+
value: string;
|
|
15
|
+
internalOptions: Options<DropdownOption<TData>>;
|
|
16
|
+
}
|
|
17
|
+
export declare const createOnChange: <TData>(onChange: OnChange<TData>) => (incomingSelectedInternalOptions: import("react-select").MultiValue<InternalDropdownOption<TData>>, meta: ActionMeta<InternalDropdownOption<TData>>) => void;
|
|
18
|
+
export declare const convertGroupedDropdownOptionsToInternalOptions: <TData>(options: GroupedOptionsType<DropdownOption<TData>>) => InternalDropdownOption<TData>[];
|
|
19
|
+
export declare const convertValueToInternalValue: <TData>(options: GroupedOptionsType<DropdownOption<TData>>, values: Options<DropdownOption<TData>> | undefined) => InternalDropdownOption<TData>[];
|
|
20
|
+
export declare const allOptionsExists: <TData>(options: Options<DropdownOption<TData>>, selectedValues: Options<DropdownOption<TData>> | undefined) => boolean;
|
|
21
|
+
export declare const convertDropdownOptionToInternalOption: <TData>(option: DropdownOption<TData>) => InternalDropdownOption<TData>;
|
|
22
|
+
export declare const convertGroupedDropdownOptionToInternalOption: <TData>(option: GroupBase<DropdownOption<TData>>) => InternalDropdownOption<TData>;
|
|
23
|
+
export declare const convertInternalOptionToDropdownOption: <TData>(option: InternalDropdownOption<TData>) => DropdownOption<TData>;
|
|
24
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stenajs-webui/select",
|
|
3
|
-
"version": "17.
|
|
3
|
+
"version": "17.7.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "mattias800",
|
|
6
6
|
"license": "MIT",
|
|
@@ -18,18 +18,17 @@
|
|
|
18
18
|
"npm": ">=5"
|
|
19
19
|
},
|
|
20
20
|
"scripts": {
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"clean": "rm -rf dist",
|
|
21
|
+
"build": "yarn tsc -p tsconfig.build.json && yarn vite build",
|
|
22
|
+
"start": "yarn tsc -p tsconfig.build.json && yarn vite build --watch",
|
|
23
|
+
"clean": "rimraf dist",
|
|
25
24
|
"prepare": "yarn clean && yarn run build",
|
|
26
25
|
"predeploy": "cd example && yarn install && yarn run build",
|
|
27
26
|
"deploy": "gh-pages -d example/build"
|
|
28
27
|
},
|
|
29
28
|
"dependencies": {
|
|
30
|
-
"@stenajs-webui/core": "17.
|
|
31
|
-
"@stenajs-webui/elements": "17.
|
|
32
|
-
"@stenajs-webui/forms": "17.
|
|
29
|
+
"@stenajs-webui/core": "17.7.0",
|
|
30
|
+
"@stenajs-webui/elements": "17.7.0",
|
|
31
|
+
"@stenajs-webui/forms": "17.7.0",
|
|
33
32
|
"react-select": "^5.2.1"
|
|
34
33
|
},
|
|
35
34
|
"peerDependencies": {
|
|
@@ -62,5 +61,5 @@
|
|
|
62
61
|
"files": [
|
|
63
62
|
"dist"
|
|
64
63
|
],
|
|
65
|
-
"gitHead": "
|
|
64
|
+
"gitHead": "50351c75fc34696ce2006e9f6ce15713d249d949"
|
|
66
65
|
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
declare const _default: {
|
|
3
|
-
title: string;
|
|
4
|
-
component: <T extends {}>({ variant, styles, isMulti, ...selectProps }: import("./AsyncSelect").AsyncSelectProps<T>) => JSX.Element;
|
|
5
|
-
};
|
|
6
|
-
export default _default;
|
|
7
|
-
export declare const _AsyncSelect: () => JSX.Element;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { Story } from "@storybook/react";
|
|
3
|
-
import { ChipMultiSelectOption } from "./ChipMultiSelect";
|
|
4
|
-
declare const _default: {
|
|
5
|
-
title: string;
|
|
6
|
-
component: <TOption extends ChipMultiSelectOption>({ value, onValueChange, placeholder, loading, inputValue, onInputChange, noneSelectedLabel, ...selectProps }: import("./ChipMultiSelect").ChipMultiSelectProps<TOption>) => JSX.Element;
|
|
7
|
-
decorators: ((TheStory: Story) => JSX.Element)[];
|
|
8
|
-
};
|
|
9
|
-
export default _default;
|
|
10
|
-
export declare const Demo: () => JSX.Element;
|
|
11
|
-
export declare const WithComplexData: () => JSX.Element;
|
|
12
|
-
export declare const WithDataFetch: () => JSX.Element;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { Story } from "@storybook/react";
|
|
3
|
-
declare const _default: {
|
|
4
|
-
title: string;
|
|
5
|
-
component: <TData>({ value, onValueChange, placeholder, loading, inputValue, onInputChange, noneSelectedLabel, ...selectProps }: import("./GroupedChipMultiSelect").GroupedChipMultiSelectProps<TData>) => JSX.Element;
|
|
6
|
-
decorators: ((TheStory: Story) => JSX.Element)[];
|
|
7
|
-
};
|
|
8
|
-
export default _default;
|
|
9
|
-
export declare const Demo: () => JSX.Element;
|
|
10
|
-
export declare const WithComplexData: () => JSX.Element;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
declare const _default: {
|
|
3
|
-
title: string;
|
|
4
|
-
component: <TData extends {}>({ onChange, options, value, variant, formatGroupLabel, formatOptionLabel, ...selectProps }: import("./GroupedMultiSelect").GroupedMultiSelectProps<TData>) => React.ReactElement<import("./GroupedMultiSelect").GroupedMultiSelectProps<TData>, string | React.JSXElementConstructor<any>>;
|
|
5
|
-
};
|
|
6
|
-
export default _default;
|
|
7
|
-
export declare const Standard: () => JSX.Element;
|
|
8
|
-
export declare const WithVariant: () => JSX.Element;
|
|
9
|
-
export declare const Disabled: () => JSX.Element;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
declare const _default: {
|
|
3
|
-
title: string;
|
|
4
|
-
component: <TOption extends {}>({ variant, styles, isMulti, ...selectProps }: import("./MultiSelect").MultiSelectProps<TOption>) => JSX.Element;
|
|
5
|
-
};
|
|
6
|
-
export default _default;
|
|
7
|
-
export declare const Standard: () => JSX.Element;
|
|
8
|
-
export declare const WithVariant: () => JSX.Element;
|
|
9
|
-
export declare const WithGroupHeadings: () => JSX.Element;
|
|
10
|
-
export declare const Disabled: () => JSX.Element;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
declare const _default: {
|
|
3
|
-
title: string;
|
|
4
|
-
component: <T extends {}>({ variant, styles, isMulti, ...selectProps }: import("./Select").SelectProps<T>) => JSX.Element;
|
|
5
|
-
};
|
|
6
|
-
export default _default;
|
|
7
|
-
export declare const Standard: () => JSX.Element;
|
|
8
|
-
export declare const WithVariant: () => JSX.Element;
|
|
9
|
-
export declare const LongLabels: () => JSX.Element;
|
|
10
|
-
export declare const WithGroupHeadings: () => JSX.Element;
|
|
11
|
-
export declare const Disabled: () => JSX.Element;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|