@activecollab/components 2.0.209 → 2.0.211

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/cjs/components/Autocomplete/Autocomplete.js +216 -79
  2. package/dist/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
  3. package/dist/cjs/components/ComboBox/ComboBox.js +4 -2
  4. package/dist/cjs/components/ComboBox/ComboBox.js.map +1 -1
  5. package/dist/cjs/components/Input/InputPhone.js +10 -6
  6. package/dist/cjs/components/Input/InputPhone.js.map +1 -1
  7. package/dist/cjs/components/Input/InputSelect.js +4 -2
  8. package/dist/cjs/components/Input/InputSelect.js.map +1 -1
  9. package/dist/cjs/components/Input/InputTime.js +4 -2
  10. package/dist/cjs/components/Input/InputTime.js.map +1 -1
  11. package/dist/cjs/components/Input/Styles.js +14 -3
  12. package/dist/cjs/components/Input/Styles.js.map +1 -1
  13. package/dist/cjs/components/Select/OptionGroup/OptionGroup.js +5 -16
  14. package/dist/cjs/components/Select/OptionGroup/OptionGroup.js.map +1 -1
  15. package/dist/cjs/components/Select/OptionGroup/Styles.js +1 -1
  16. package/dist/cjs/components/Select/OptionGroup/Styles.js.map +1 -1
  17. package/dist/cjs/components/Select/Select.js +4 -2
  18. package/dist/cjs/components/Select/Select.js.map +1 -1
  19. package/dist/cjs/hooks/useHighlightText.js +1 -0
  20. package/dist/cjs/hooks/useHighlightText.js.map +1 -1
  21. package/dist/esm/components/Autocomplete/Autocomplete.d.ts +6 -3
  22. package/dist/esm/components/Autocomplete/Autocomplete.d.ts.map +1 -1
  23. package/dist/esm/components/Autocomplete/Autocomplete.js +189 -58
  24. package/dist/esm/components/Autocomplete/Autocomplete.js.map +1 -1
  25. package/dist/esm/components/ComboBox/ComboBox.d.ts.map +1 -1
  26. package/dist/esm/components/ComboBox/ComboBox.js +3 -1
  27. package/dist/esm/components/ComboBox/ComboBox.js.map +1 -1
  28. package/dist/esm/components/Input/InputPhone.d.ts.map +1 -1
  29. package/dist/esm/components/Input/InputPhone.js +11 -7
  30. package/dist/esm/components/Input/InputPhone.js.map +1 -1
  31. package/dist/esm/components/Input/InputSelect.d.ts +2 -0
  32. package/dist/esm/components/Input/InputSelect.d.ts.map +1 -1
  33. package/dist/esm/components/Input/InputSelect.js +4 -2
  34. package/dist/esm/components/Input/InputSelect.js.map +1 -1
  35. package/dist/esm/components/Input/InputTime.d.ts +1 -0
  36. package/dist/esm/components/Input/InputTime.d.ts.map +1 -1
  37. package/dist/esm/components/Input/InputTime.js +3 -1
  38. package/dist/esm/components/Input/InputTime.js.map +1 -1
  39. package/dist/esm/components/Input/Styles.d.ts +4 -1
  40. package/dist/esm/components/Input/Styles.d.ts.map +1 -1
  41. package/dist/esm/components/Input/Styles.js +13 -2
  42. package/dist/esm/components/Input/Styles.js.map +1 -1
  43. package/dist/esm/components/Select/OptionGroup/OptionGroup.d.ts.map +1 -1
  44. package/dist/esm/components/Select/OptionGroup/OptionGroup.js +5 -10
  45. package/dist/esm/components/Select/OptionGroup/OptionGroup.js.map +1 -1
  46. package/dist/esm/components/Select/OptionGroup/Styles.d.ts.map +1 -1
  47. package/dist/esm/components/Select/OptionGroup/Styles.js +1 -1
  48. package/dist/esm/components/Select/OptionGroup/Styles.js.map +1 -1
  49. package/dist/esm/components/Select/Select.d.ts +1 -0
  50. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  51. package/dist/esm/components/Select/Select.js +3 -1
  52. package/dist/esm/components/Select/Select.js.map +1 -1
  53. package/dist/esm/hooks/useHighlightText.d.ts.map +1 -1
  54. package/dist/esm/hooks/useHighlightText.js +1 -0
  55. package/dist/esm/hooks/useHighlightText.js.map +1 -1
  56. package/dist/index.js +264 -114
  57. package/dist/index.js.map +1 -1
  58. package/dist/index.min.js +1 -1
  59. package/dist/index.min.js.map +1 -1
  60. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","FontStyle","InputResetStyle","StyledInputWrapper","div","withConfig","displayName","componentId","props","$mode","$size","$disabled","$invalid","StyledInput","input","disabled","$loading","align","StyledPasswordIndicatorWrapper","StyledPasswordIndicator","$strength","$index","StyledInputSelectTrigger","StyledFlagTriggerLabel","span","_ref","StyledOptionFlag","StyledOptionName","StyledOptionWrapper"],"sources":["../../../../src/components/Input/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\n\nimport { InputProps } from \"./Input\";\nimport { InputMode, InputSize } from \"./types\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\nimport { InputResetStyle } from \"../InputResetStyle\";\n\ninterface StyledInputWrapperProps {\n $size?: InputSize;\n $invalid?: boolean;\n $disabled?: boolean;\n $mode?: InputMode;\n}\n\nexport const StyledInputWrapper = styled.div<StyledInputWrapperProps>`\n align-items: center;\n background-color: var(--input-background-color);\n border-color: var(--color-theme-500);\n border-radius: 8px;\n border-style: solid;\n border-width: 1px;\n cursor: text;\n display: flex;\n height: 32px;\n padding-block: 4px;\n padding-inline: 4px;\n transition: all 0.3s ease;\n width: 360px;\n\n ${FontStyle}\n ${BoxSizingStyle}\n\n\n ${(props) =>\n props.$mode === \"flat\" &&\n css`\n background-color: transparent;\n border: none;\n border-radius: none;\n `}\n\n\n ${(props) =>\n props.$size === \"small\" &&\n css`\n border-radius: 6px;\n height: 24px;\n `}\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n height: 40px;\n `}\n\n ${(props) =>\n props.$size === \"biggest\" &&\n css`\n height: 48px;\n `}\n\n ${(props) =>\n props.$disabled &&\n css`\n cursor: default;\n opacity: 50%;\n `}\n\n ${(props) =>\n !props.$disabled &&\n !props.$invalid &&\n css`\n &:focus-within,\n &:hover {\n border-color: var(--color-primary);\n }\n `}\n\n ${(props) =>\n !props.$disabled &&\n props.$invalid &&\n props.$mode === \"outlined\" &&\n css`\n border-color: var(--red-alert);\n `}\n`;\n\nStyledInputWrapper.displayName = \"StyledInputWrapper\";\n\ninterface StyledInputProps extends Pick<InputProps, \"align\"> {\n $size?: InputSize;\n $loading?: boolean;\n $mode?: InputMode;\n $invalid?: boolean;\n}\n\nexport const StyledInput = styled.input<StyledInputProps>`\n ${BoxSizingStyle}\n ${InputResetStyle}\n background-color: var(--input-background-color);\n border: none;\n color: var(--color-theme-900);\n /* @TODO: Prebaciti velicine fontova, weight, razmake, itd... u naše varijable. */\n font-size: 0.875rem;\n font-weight: 400;\n letter-spacing: 0.02em;\n margin-block: 0;\n margin-inline: 4px;\n outline: none;\n padding: 0;\n width: 100%;\n\n ${(props) =>\n props.$mode === \"flat\" &&\n css`\n background-color: transparent;\n `}\n\n &::placeholder {\n color: var(--color-theme-transparent-500);\n }\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n font-size: 1rem;\n `}\n\n ${(props) =>\n props.$size === \"biggest\" &&\n css`\n font-size: 1.25rem;\n font-weight: 700;\n `}\n\n ${(props) =>\n props.disabled &&\n css`\n cursor: default;\n `}\n\n ${(props) =>\n props.$loading &&\n css`\n cursor: progress;\n `}\n\n ${(props) =>\n props.align &&\n css`\n text-align: ${props.align};\n `}\n\n ${(props) =>\n props.$mode === \"flat\" &&\n props.$invalid &&\n css`\n color: var(--red-alert);\n `}\n`;\n\nStyledInput.displayName = \"StyledInput\";\n\nexport const StyledPasswordIndicatorWrapper = styled.div`\n display: flex;\n gap: 2px;\n margin-top: 6px;\n margin-bottom: 4px;\n`;\n\nStyledPasswordIndicatorWrapper.displayName = \"StyledPasswordIndicatorWrapper\";\n\nexport const StyledPasswordIndicator = styled.div<{\n $strength: number;\n $index: number;\n}>`\n width: 100%;\n height: 4px;\n border-radius: 6px;\n background-color: ${(props) => {\n const { $strength, $index } = props;\n\n if ($strength === 0) {\n return \"var(--color-theme-300)\";\n } else if ($strength === 1) {\n return $index === 0 ? \"var(--red-alert)\" : \"var(--color-theme-300)\";\n } else if ($strength === 2) {\n return $index < 2 ? \"var(--color-orange)\" : \"var(--color-theme-300)\";\n } else if ($strength === 3) {\n return $index < 3 ? \"var(--color-blue-sky)\" : \"var(--color-theme-300)\";\n } else {\n return \"var(--color-sucess-green)\";\n }\n }};\n`;\n\nStyledPasswordIndicator.displayName = \"StyledPasswordIndicator\";\n\nexport const StyledInputSelectTrigger = styled.div<{\n $size: string;\n $disabled?: boolean;\n}>`\n display: flex;\n gap: 6px;\n align-items: center;\n margin-right: 2px;\n margin-left: 8px;\n color: var(--color-theme-700);\n font-weight: 400;\n letter-spacing: 0.02em;\n font-size: 0.875rem;\n flex-shrink: 0;\n cursor: ${(props) => {\n if (props.$disabled) {\n return \"unset\";\n }\n return \"pointer\";\n }};\n\n pointer-events: ${(props) => {\n if (props.$disabled) {\n return \"none\";\n }\n return \"unset\";\n }};\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n font-size: 1rem;\n `}\n`;\n\nStyledInputSelectTrigger.displayName = \"StyledInputSelectTrigger\";\n\nexport const StyledFlagTriggerLabel = styled.span<{\n $size: \"small\" | \"regular\" | \"big\";\n}>`\n font-size: ${({ $size }) => ($size === \"small\" ? \"20px\" : \"24px\")};\n`;\n\nStyledFlagTriggerLabel.displayName = \"StyledFlagTriggerLabel\";\n\nexport const StyledOptionFlag = styled.span`\n font-size: 24px;\n margin-right: 4px;\n`;\n\nStyledFlagTriggerLabel.displayName = \"StyledOptionFlag\";\n\nexport const StyledOptionName = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nStyledOptionName.displayName = \"StyledOptionName\";\n\nexport const StyledOptionWrapper = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-right: 8px;\n display: flex;\n justify-items: center;\n align-items: center;\n`;\n\nStyledOptionWrapper.displayName = \"StyledOptionWrapper\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","FontStyle","InputResetStyle","Body2","StyledInputWrapper","div","withConfig","displayName","componentId","props","$mode","$size","$disabled","$invalid","StyledInput","input","disabled","$loading","align","StyledPasswordIndicatorWrapper","StyledPasswordIndicator","$strength","$index","StyledInputSelectTrigger","StyledFlagTriggerLabel","span","_ref","StyledOptionFlag","StyledOptionName","StyledOptionCode","StyledOptionRowEnd","StyledOptionWrapper"],"sources":["../../../../src/components/Input/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\n\nimport { InputProps } from \"./Input\";\nimport { InputMode, InputSize } from \"./types\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\nimport { InputResetStyle } from \"../InputResetStyle\";\nimport { Body2 } from \"../Typography\";\n\ninterface StyledInputWrapperProps {\n $size?: InputSize;\n $invalid?: boolean;\n $disabled?: boolean;\n $mode?: InputMode;\n}\n\nexport const StyledInputWrapper = styled.div<StyledInputWrapperProps>`\n align-items: center;\n background-color: var(--input-background-color);\n border-color: var(--color-theme-500);\n border-radius: 8px;\n border-style: solid;\n border-width: 1px;\n cursor: text;\n display: flex;\n height: 32px;\n padding-block: 4px;\n padding-inline: 4px;\n transition: all 0.3s ease;\n width: 360px;\n\n ${FontStyle}\n ${BoxSizingStyle}\n\n\n ${(props) =>\n props.$mode === \"flat\" &&\n css`\n background-color: transparent;\n border: none;\n border-radius: none;\n `}\n\n\n ${(props) =>\n props.$size === \"small\" &&\n css`\n border-radius: 6px;\n height: 24px;\n `}\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n height: 40px;\n `}\n\n ${(props) =>\n props.$size === \"biggest\" &&\n css`\n height: 48px;\n `}\n\n ${(props) =>\n props.$disabled &&\n css`\n cursor: default;\n opacity: 50%;\n `}\n\n ${(props) =>\n !props.$disabled &&\n !props.$invalid &&\n css`\n &:focus-within,\n &:hover {\n border-color: var(--color-primary);\n }\n `}\n\n ${(props) =>\n !props.$disabled &&\n props.$invalid &&\n props.$mode === \"outlined\" &&\n css`\n border-color: var(--red-alert);\n `}\n`;\n\nStyledInputWrapper.displayName = \"StyledInputWrapper\";\n\ninterface StyledInputProps extends Pick<InputProps, \"align\"> {\n $size?: InputSize;\n $loading?: boolean;\n $mode?: InputMode;\n $invalid?: boolean;\n}\n\nexport const StyledInput = styled.input<StyledInputProps>`\n ${BoxSizingStyle}\n ${InputResetStyle}\n background-color: var(--input-background-color);\n border: none;\n color: var(--color-theme-900);\n /* @TODO: Prebaciti velicine fontova, weight, razmake, itd... u naše varijable. */\n font-size: 0.875rem;\n font-weight: 400;\n letter-spacing: 0.02em;\n margin-block: 0;\n margin-inline: 4px;\n outline: none;\n padding: 0;\n width: 100%;\n\n ${(props) =>\n props.$mode === \"flat\" &&\n css`\n background-color: transparent;\n `}\n\n &::placeholder {\n color: var(--color-theme-transparent-500);\n }\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n font-size: 1rem;\n `}\n\n ${(props) =>\n props.$size === \"biggest\" &&\n css`\n font-size: 1.25rem;\n font-weight: 700;\n `}\n\n ${(props) =>\n props.disabled &&\n css`\n cursor: default;\n `}\n\n ${(props) =>\n props.$loading &&\n css`\n cursor: progress;\n `}\n\n ${(props) =>\n props.align &&\n css`\n text-align: ${props.align};\n `}\n\n ${(props) =>\n props.$mode === \"flat\" &&\n props.$invalid &&\n css`\n color: var(--red-alert);\n `}\n`;\n\nStyledInput.displayName = \"StyledInput\";\n\nexport const StyledPasswordIndicatorWrapper = styled.div`\n display: flex;\n gap: 2px;\n margin-top: 6px;\n margin-bottom: 4px;\n`;\n\nStyledPasswordIndicatorWrapper.displayName = \"StyledPasswordIndicatorWrapper\";\n\nexport const StyledPasswordIndicator = styled.div<{\n $strength: number;\n $index: number;\n}>`\n width: 100%;\n height: 4px;\n border-radius: 6px;\n background-color: ${(props) => {\n const { $strength, $index } = props;\n\n if ($strength === 0) {\n return \"var(--color-theme-300)\";\n } else if ($strength === 1) {\n return $index === 0 ? \"var(--red-alert)\" : \"var(--color-theme-300)\";\n } else if ($strength === 2) {\n return $index < 2 ? \"var(--color-orange)\" : \"var(--color-theme-300)\";\n } else if ($strength === 3) {\n return $index < 3 ? \"var(--color-blue-sky)\" : \"var(--color-theme-300)\";\n } else {\n return \"var(--color-sucess-green)\";\n }\n }};\n`;\n\nStyledPasswordIndicator.displayName = \"StyledPasswordIndicator\";\n\nexport const StyledInputSelectTrigger = styled.div<{\n $size: string;\n $disabled?: boolean;\n}>`\n display: flex;\n gap: 6px;\n align-items: center;\n margin-right: 2px;\n margin-left: 8px;\n color: var(--color-theme-700);\n font-weight: 400;\n letter-spacing: 0.02em;\n font-size: 0.875rem;\n flex-shrink: 0;\n cursor: ${(props) => {\n if (props.$disabled) {\n return \"unset\";\n }\n return \"pointer\";\n }};\n\n pointer-events: ${(props) => {\n if (props.$disabled) {\n return \"none\";\n }\n return \"unset\";\n }};\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n font-size: 1rem;\n `}\n`;\n\nStyledInputSelectTrigger.displayName = \"StyledInputSelectTrigger\";\n\nexport const StyledFlagTriggerLabel = styled.span<{\n $size: \"small\" | \"regular\" | \"big\";\n}>`\n font-size: ${({ $size }) => ($size === \"small\" ? \"20px\" : \"24px\")};\n`;\n\nStyledFlagTriggerLabel.displayName = \"StyledFlagTriggerLabel\";\n\nexport const StyledOptionFlag = styled.span`\n font-size: 24px;\n margin-right: 4px;\n`;\n\nStyledFlagTriggerLabel.displayName = \"StyledOptionFlag\";\n\nexport const StyledOptionName = styled(Body2)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nStyledOptionName.displayName = \"StyledOptionName\";\n\nexport const StyledOptionCode = styled(Body2)`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-left: auto;\n color: var(--color-theme-600);\n flex-shrink: 0;\n`;\n\nStyledOptionCode.displayName = \"StyledOptionCode\";\n\nexport const StyledOptionRowEnd = styled.span`\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n\nStyledOptionRowEnd.displayName = \"StyledOptionRowEnd\";\n\nexport const StyledOptionWrapper = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-right: 8px;\n display: flex;\n justify-items: center;\n align-items: center;\n`;\n\nStyledOptionWrapper.displayName = \"StyledOptionWrapper\";\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OptionGroup.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAmC,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAa9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,yBAAyB;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,UAAU,2BAA2B;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC7B,2BAA2B;IAC3B,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;IAC5C,mCAAmC;IACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,sBAAsB;IACtB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IACrE,uCAAuC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAC1B,iBAAiB,GAAG,2BAA2B,CA+GhD,CAAC"}
1
+ {"version":3,"file":"OptionGroup.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAmC,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAY9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,yBAAyB;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,UAAU,2BAA2B;IACnC,sCAAsC;IACtC,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC7B,2BAA2B;IAC3B,YAAY,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;IAC5C,mCAAmC;IACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACpD,sBAAsB;IACtB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;IACrE,uCAAuC;IACvC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAC1B,iBAAiB,GAAG,2BAA2B,CA6FhD,CAAC"}
@@ -2,7 +2,6 @@ import React, { useCallback, useEffect, useMemo } from "react";
2
2
  import classNames from "classnames";
3
3
  import { StyledOptionGroup, StyledOptionGroupHeader, StyledOptionGroupOption, StyledOptionGroupLi, StyledOptionGroupHeaderName } from "./Styles";
4
4
  import { Checkbox } from "../../Checkbox/Checkbox";
5
- import { List } from "../../List";
6
5
  export const OptionGroup = _ref => {
7
6
  let {
8
7
  id,
@@ -10,15 +9,12 @@ export const OptionGroup = _ref => {
10
9
  options,
11
10
  type,
12
11
  hover,
13
- filter,
14
12
  checked,
15
13
  onChange,
16
14
  setHover,
17
- renderOptions,
18
15
  optionGroupClassName,
19
16
  mixedOptions = []
20
17
  } = _ref;
21
- const list = useMemo(() => filter ? options.filter(v => v.name.toLowerCase().includes(filter.trim().toLowerCase())) : options, [filter, options]);
22
18
  useEffect(() => {
23
19
  if (hover === id && type !== "single") {
24
20
  var _document$getElementB;
@@ -27,17 +23,17 @@ export const OptionGroup = _ref => {
27
23
  }, [hover, type, id]);
28
24
  const isAllOptionsChecked = useMemo(() => options.every(option => checked.includes(option.id)), [options, checked]);
29
25
  const handleHover = useCallback(() => {
30
- if (options.some(option => checked.includes(option.id))) return;
31
26
  if (setHover) {
32
27
  setHover(type === "single" ? undefined : id);
33
28
  }
34
- }, [setHover, type, id, checked, options]);
29
+ }, [setHover, type, id]);
35
30
  const allOptionValues = useMemo(() => options.map(option => option.id), [options]);
36
31
  const isMixed = useMemo(() => {
37
32
  return (options.some(option => checked.includes(option.id)) || mixedOptions.some(item => allOptionValues.includes(item))) && !isAllOptionsChecked;
38
33
  }, [allOptionValues, checked, isAllOptionsChecked, mixedOptions, options]);
39
34
  const handleClick = useCallback(e => {
40
35
  e.stopPropagation();
36
+ e.preventDefault();
41
37
  if (onChange) {
42
38
  if (isAllOptionsChecked) {
43
39
  onChange(checked.filter(i => allOptionValues.includes(i) === false));
@@ -52,7 +48,8 @@ export const OptionGroup = _ref => {
52
48
  }, [allOptionValues, checked, isAllOptionsChecked, onChange]);
53
49
  return /*#__PURE__*/React.createElement(StyledOptionGroupLi, {
54
50
  key: id,
55
- className: classNames("c-option-group", optionGroupClassName)
51
+ className: classNames("c-option-group", optionGroupClassName),
52
+ onClick: handleClick
56
53
  }, /*#__PURE__*/React.createElement(StyledOptionGroup, {
57
54
  key: id
58
55
  }, /*#__PURE__*/React.createElement(StyledOptionGroupOption, {
@@ -66,9 +63,7 @@ export const OptionGroup = _ref => {
66
63
  mixed: isMixed,
67
64
  onChange: handleClick,
68
65
  type: "checkbox"
69
- }))), /*#__PURE__*/React.createElement(List, null, list.map((item, index) => {
70
- return typeof renderOptions === "function" ? renderOptions(item, index) : item.name;
71
- }))));
66
+ })))));
72
67
  };
73
68
  OptionGroup.displayName = "OptionGroup";
74
69
  //# sourceMappingURL=OptionGroup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OptionGroup.js","names":["React","useCallback","useEffect","useMemo","classNames","StyledOptionGroup","StyledOptionGroupHeader","StyledOptionGroupOption","StyledOptionGroupLi","StyledOptionGroupHeaderName","Checkbox","List","OptionGroup","_ref","id","name","options","type","hover","filter","checked","onChange","setHover","renderOptions","optionGroupClassName","mixedOptions","list","v","toLowerCase","includes","trim","_document$getElementB","document","getElementById","focus","isAllOptionsChecked","every","option","handleHover","some","undefined","allOptionValues","map","isMixed","item","handleClick","e","stopPropagation","i","values","unique","pos","indexOf","createElement","key","className","onMouseEnter","weight","mixed","index","displayName"],"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, FC, ReactNode } from \"react\";\n\nimport classNames from \"classnames\";\n\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupOption,\n StyledOptionGroupLi,\n StyledOptionGroupHeaderName,\n} from \"./Styles\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport { List } from \"../../List\";\nimport { IOptionItemProps } from \"../Option/Option\";\n\nexport interface IOptionGroupProps extends IOptionItemProps {\n /** Options items list */\n options: IOptionItemProps[];\n}\n\ninterface IAdditionalOptionGroupProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Value of hovered element */\n hover?: number | string | null;\n /** Filter for labels */\n filter?: string;\n /** Checked values */\n checked: (string | number)[];\n /** Mixed options values */\n mixedOptions: (string | number)[];\n /** onChange callback */\n onChange?: (e: (string | number)[]) => void;\n /** Set value of hovered element */\n setHover?: (e: number | string | undefined) => void;\n /** Render function */\n renderOptions?: (item: IOptionItemProps, index: number) => ReactNode;\n /** Value that represent class names */\n optionGroupClassName?: string;\n}\n\nexport const OptionGroup: FC<\n IOptionGroupProps & IAdditionalOptionGroupProps\n> = ({\n id,\n name,\n options,\n type,\n hover,\n filter,\n checked,\n onChange,\n setHover,\n renderOptions,\n optionGroupClassName,\n mixedOptions = [],\n}) => {\n const list = useMemo(\n () =>\n filter\n ? options.filter((v) =>\n v.name.toLowerCase().includes(filter.trim().toLowerCase())\n )\n : options,\n [filter, options]\n );\n\n useEffect(() => {\n if (hover === id && type !== \"single\") {\n document.getElementById(`${id}`)?.focus();\n }\n }, [hover, type, id]);\n\n const isAllOptionsChecked = useMemo(\n () => options.every((option) => checked.includes(option.id)),\n [options, checked]\n );\n\n const handleHover = useCallback(() => {\n if (options.some((option) => checked.includes(option.id))) return;\n if (setHover) {\n setHover(type === \"single\" ? undefined : id);\n }\n }, [setHover, type, id, checked, options]);\n\n const allOptionValues = useMemo(\n () => options.map((option) => option.id),\n [options]\n );\n\n const isMixed: boolean = useMemo(() => {\n return (\n (options.some((option) => checked.includes(option.id)) ||\n mixedOptions.some((item) => allOptionValues.includes(item))) &&\n !isAllOptionsChecked\n );\n }, [allOptionValues, checked, isAllOptionsChecked, mixedOptions, options]);\n\n const handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n if (onChange) {\n if (isAllOptionsChecked) {\n onChange(\n checked.filter((i) => allOptionValues.includes(i) === false)\n );\n } else {\n const values = [...checked, ...allOptionValues];\n const unique = values.filter((item, pos) => {\n return values.indexOf(item) === pos;\n });\n onChange(unique);\n }\n }\n },\n [allOptionValues, checked, isAllOptionsChecked, onChange]\n );\n\n return (\n <StyledOptionGroupLi\n key={id}\n className={classNames(\"c-option-group\", optionGroupClassName)}\n >\n <StyledOptionGroup key={id}>\n <StyledOptionGroupOption\n onMouseEnter={handleHover}\n hover={hover === id && type === \"multiple\"}\n >\n <StyledOptionGroupHeader>\n <StyledOptionGroupHeaderName weight=\"bold\">\n {name}\n </StyledOptionGroupHeaderName>\n {type === \"multiple\" && (\n <Checkbox\n id={`${id}`}\n checked={isAllOptionsChecked}\n mixed={isMixed}\n onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n <List>\n {list.map((item: IOptionItemProps, index) => {\n return typeof renderOptions === \"function\"\n ? renderOptions(item, index)\n : item.name;\n })}\n </List>\n </StyledOptionGroup>\n </StyledOptionGroupLi>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,OAAO,QAAuB,OAAO;AAE7E,OAAOC,UAAU,MAAM,YAAY;AAEnC,SACEC,iBAAiB,EACjBC,uBAAuB,EACvBC,uBAAuB,EACvBC,mBAAmB,EACnBC,2BAA2B,QACtB,UAAU;AACjB,SAASC,QAAQ,QAAQ,yBAAyB;AAClD,SAASC,IAAI,QAAQ,YAAY;AA6BjC,OAAO,MAAMC,WAEZ,GAAGC,IAAA,IAaE;EAAA,IAbD;IACHC,EAAE;IACFC,IAAI;IACJC,OAAO;IACPC,IAAI;IACJC,KAAK;IACLC,MAAM;IACNC,OAAO;IACPC,QAAQ;IACRC,QAAQ;IACRC,aAAa;IACbC,oBAAoB;IACpBC,YAAY,GAAG;EACjB,CAAC,GAAAZ,IAAA;EACC,MAAMa,IAAI,GAAGvB,OAAO,CAClB,MACEgB,MAAM,GACFH,OAAO,CAACG,MAAM,CAAEQ,CAAC,IACfA,CAAC,CAACZ,IAAI,CAACa,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACV,MAAM,CAACW,IAAI,CAAC,CAAC,CAACF,WAAW,CAAC,CAAC,CAC3D,CAAC,GACDZ,OAAO,EACb,CAACG,MAAM,EAAEH,OAAO,CAClB,CAAC;EAEDd,SAAS,CAAC,MAAM;IACd,IAAIgB,KAAK,KAAKJ,EAAE,IAAIG,IAAI,KAAK,QAAQ,EAAE;MAAA,IAAAc,qBAAA;MACrC,CAAAA,qBAAA,GAAAC,QAAQ,CAACC,cAAc,MAAInB,EAAI,CAAC,aAAhCiB,qBAAA,CAAkCG,KAAK,CAAC,CAAC;IAC3C;EACF,CAAC,EAAE,CAAChB,KAAK,EAAED,IAAI,EAAEH,EAAE,CAAC,CAAC;EAErB,MAAMqB,mBAAmB,GAAGhC,OAAO,CACjC,MAAMa,OAAO,CAACoB,KAAK,CAAEC,MAAM,IAAKjB,OAAO,CAACS,QAAQ,CAACQ,MAAM,CAACvB,EAAE,CAAC,CAAC,EAC5D,CAACE,OAAO,EAAEI,OAAO,CACnB,CAAC;EAED,MAAMkB,WAAW,GAAGrC,WAAW,CAAC,MAAM;IACpC,IAAIe,OAAO,CAACuB,IAAI,CAAEF,MAAM,IAAKjB,OAAO,CAACS,QAAQ,CAACQ,MAAM,CAACvB,EAAE,CAAC,CAAC,EAAE;IAC3D,IAAIQ,QAAQ,EAAE;MACZA,QAAQ,CAACL,IAAI,KAAK,QAAQ,GAAGuB,SAAS,GAAG1B,EAAE,CAAC;IAC9C;EACF,CAAC,EAAE,CAACQ,QAAQ,EAAEL,IAAI,EAAEH,EAAE,EAAEM,OAAO,EAAEJ,OAAO,CAAC,CAAC;EAE1C,MAAMyB,eAAe,GAAGtC,OAAO,CAC7B,MAAMa,OAAO,CAAC0B,GAAG,CAAEL,MAAM,IAAKA,MAAM,CAACvB,EAAE,CAAC,EACxC,CAACE,OAAO,CACV,CAAC;EAED,MAAM2B,OAAgB,GAAGxC,OAAO,CAAC,MAAM;IACrC,OACE,CAACa,OAAO,CAACuB,IAAI,CAAEF,MAAM,IAAKjB,OAAO,CAACS,QAAQ,CAACQ,MAAM,CAACvB,EAAE,CAAC,CAAC,IACpDW,YAAY,CAACc,IAAI,CAAEK,IAAI,IAAKH,eAAe,CAACZ,QAAQ,CAACe,IAAI,CAAC,CAAC,KAC7D,CAACT,mBAAmB;EAExB,CAAC,EAAE,CAACM,eAAe,EAAErB,OAAO,EAAEe,mBAAmB,EAAEV,YAAY,EAAET,OAAO,CAAC,CAAC;EAE1E,MAAM6B,WAAW,GAAG5C,WAAW,CAC5B6C,CAAC,IAAK;IACLA,CAAC,CAACC,eAAe,CAAC,CAAC;IACnB,IAAI1B,QAAQ,EAAE;MACZ,IAAIc,mBAAmB,EAAE;QACvBd,QAAQ,CACND,OAAO,CAACD,MAAM,CAAE6B,CAAC,IAAKP,eAAe,CAACZ,QAAQ,CAACmB,CAAC,CAAC,KAAK,KAAK,CAC7D,CAAC;MACH,CAAC,MAAM;QACL,MAAMC,MAAM,GAAG,CAAC,GAAG7B,OAAO,EAAE,GAAGqB,eAAe,CAAC;QAC/C,MAAMS,MAAM,GAAGD,MAAM,CAAC9B,MAAM,CAAC,CAACyB,IAAI,EAAEO,GAAG,KAAK;UAC1C,OAAOF,MAAM,CAACG,OAAO,CAACR,IAAI,CAAC,KAAKO,GAAG;QACrC,CAAC,CAAC;QACF9B,QAAQ,CAAC6B,MAAM,CAAC;MAClB;IACF;EACF,CAAC,EACD,CAACT,eAAe,EAAErB,OAAO,EAAEe,mBAAmB,EAAEd,QAAQ,CAC1D,CAAC;EAED,oBACErB,KAAA,CAAAqD,aAAA,CAAC7C,mBAAmB;IAClB8C,GAAG,EAAExC,EAAG;IACRyC,SAAS,EAAEnD,UAAU,CAAC,gBAAgB,EAAEoB,oBAAoB;EAAE,gBAE9DxB,KAAA,CAAAqD,aAAA,CAAChD,iBAAiB;IAACiD,GAAG,EAAExC;EAAG,gBACzBd,KAAA,CAAAqD,aAAA,CAAC9C,uBAAuB;IACtBiD,YAAY,EAAElB,WAAY;IAC1BpB,KAAK,EAAEA,KAAK,KAAKJ,EAAE,IAAIG,IAAI,KAAK;EAAW,gBAE3CjB,KAAA,CAAAqD,aAAA,CAAC/C,uBAAuB,qBACtBN,KAAA,CAAAqD,aAAA,CAAC5C,2BAA2B;IAACgD,MAAM,EAAC;EAAM,GACvC1C,IAC0B,CAAC,EAC7BE,IAAI,KAAK,UAAU,iBAClBjB,KAAA,CAAAqD,aAAA,CAAC3C,QAAQ;IACPI,EAAE,OAAKA,EAAK;IACZM,OAAO,EAAEe,mBAAoB;IAC7BuB,KAAK,EAAEf,OAAQ;IACftB,QAAQ,EAAEwB,WAAY;IACtB5B,IAAI,EAAC;EAAU,CAChB,CAEoB,CACF,CAAC,eAC1BjB,KAAA,CAAAqD,aAAA,CAAC1C,IAAI,QACFe,IAAI,CAACgB,GAAG,CAAC,CAACE,IAAsB,EAAEe,KAAK,KAAK;IAC3C,OAAO,OAAOpC,aAAa,KAAK,UAAU,GACtCA,aAAa,CAACqB,IAAI,EAAEe,KAAK,CAAC,GAC1Bf,IAAI,CAAC7B,IAAI;EACf,CAAC,CACG,CACW,CACA,CAAC;AAE1B,CAAC;AAEDH,WAAW,CAACgD,WAAW,GAAG,aAAa"}
1
+ {"version":3,"file":"OptionGroup.js","names":["React","useCallback","useEffect","useMemo","classNames","StyledOptionGroup","StyledOptionGroupHeader","StyledOptionGroupOption","StyledOptionGroupLi","StyledOptionGroupHeaderName","Checkbox","OptionGroup","_ref","id","name","options","type","hover","checked","onChange","setHover","optionGroupClassName","mixedOptions","_document$getElementB","document","getElementById","focus","isAllOptionsChecked","every","option","includes","handleHover","undefined","allOptionValues","map","isMixed","some","item","handleClick","e","stopPropagation","preventDefault","filter","i","values","unique","pos","indexOf","createElement","key","className","onClick","onMouseEnter","weight","mixed","displayName"],"sources":["../../../../../src/components/Select/OptionGroup/OptionGroup.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, FC, ReactNode } from \"react\";\n\nimport classNames from \"classnames\";\n\nimport {\n StyledOptionGroup,\n StyledOptionGroupHeader,\n StyledOptionGroupOption,\n StyledOptionGroupLi,\n StyledOptionGroupHeaderName,\n} from \"./Styles\";\nimport { Checkbox } from \"../../Checkbox/Checkbox\";\nimport { IOptionItemProps } from \"../Option/Option\";\n\nexport interface IOptionGroupProps extends IOptionItemProps {\n /** Options items list */\n options: IOptionItemProps[];\n}\n\ninterface IAdditionalOptionGroupProps {\n /** Select type: single or multiple */\n type?: \"single\" | \"multiple\";\n /** Value of hovered element */\n hover?: number | string | null;\n /** Filter for labels */\n filter?: string;\n /** Checked values */\n checked: (string | number)[];\n /** Mixed options values */\n mixedOptions: (string | number)[];\n /** onChange callback */\n onChange?: (e: (string | number)[]) => void;\n /** Set value of hovered element */\n setHover?: (e: number | string | undefined) => void;\n /** Render function */\n renderOptions?: (item: IOptionItemProps, index: number) => ReactNode;\n /** Value that represent class names */\n optionGroupClassName?: string;\n}\n\nexport const OptionGroup: FC<\n IOptionGroupProps & IAdditionalOptionGroupProps\n> = ({\n id,\n name,\n options,\n type,\n hover,\n checked,\n onChange,\n setHover,\n optionGroupClassName,\n mixedOptions = [],\n}) => {\n useEffect(() => {\n if (hover === id && type !== \"single\") {\n document.getElementById(`${id}`)?.focus();\n }\n }, [hover, type, id]);\n\n const isAllOptionsChecked = useMemo(\n () => options.every((option) => checked.includes(option.id)),\n [options, checked]\n );\n\n const handleHover = useCallback(() => {\n if (setHover) {\n setHover(type === \"single\" ? undefined : id);\n }\n }, [setHover, type, id]);\n\n const allOptionValues = useMemo(\n () => options.map((option) => option.id),\n [options]\n );\n\n const isMixed: boolean = useMemo(() => {\n return (\n (options.some((option) => checked.includes(option.id)) ||\n mixedOptions.some((item) => allOptionValues.includes(item))) &&\n !isAllOptionsChecked\n );\n }, [allOptionValues, checked, isAllOptionsChecked, mixedOptions, options]);\n\n const handleClick = useCallback(\n (e) => {\n e.stopPropagation();\n e.preventDefault();\n if (onChange) {\n if (isAllOptionsChecked) {\n onChange(\n checked.filter((i) => allOptionValues.includes(i) === false)\n );\n } else {\n const values = [...checked, ...allOptionValues];\n const unique = values.filter((item, pos) => {\n return values.indexOf(item) === pos;\n });\n onChange(unique);\n }\n }\n },\n [allOptionValues, checked, isAllOptionsChecked, onChange]\n );\n\n return (\n <StyledOptionGroupLi\n key={id}\n className={classNames(\"c-option-group\", optionGroupClassName)}\n onClick={handleClick}\n >\n <StyledOptionGroup key={id}>\n <StyledOptionGroupOption\n onMouseEnter={handleHover}\n hover={hover === id && type === \"multiple\"}\n >\n <StyledOptionGroupHeader>\n <StyledOptionGroupHeaderName weight=\"bold\">\n {name}\n </StyledOptionGroupHeaderName>\n {type === \"multiple\" && (\n <Checkbox\n id={`${id}`}\n checked={isAllOptionsChecked}\n mixed={isMixed}\n onChange={handleClick}\n type=\"checkbox\"\n />\n )}\n </StyledOptionGroupHeader>\n </StyledOptionGroupOption>\n </StyledOptionGroup>\n </StyledOptionGroupLi>\n );\n};\n\nOptionGroup.displayName = \"OptionGroup\";\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":[],"mappings":";AAOA,eAAO,MAAM,mBAAmB,mEAE/B,CAAC;AACF,eAAO,MAAM,iBAAiB,oEAI7B,CAAC;AAIF,eAAO,MAAM,uBAAuB,oEAUnC,CAAC;AAIF,eAAO,MAAM,2BAA2B,oRAKvC,CAAC;AAIF,eAAO,MAAM,uBAAuB;;SAMnC,CAAC"}
1
+ {"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"names":[],"mappings":";AAOA,eAAO,MAAM,mBAAmB,mEAG/B,CAAC;AACF,eAAO,MAAM,iBAAiB,oEAI7B,CAAC;AAIF,eAAO,MAAM,uBAAuB,oEAUnC,CAAC;AAIF,eAAO,MAAM,2BAA2B,oRAKvC,CAAC;AAIF,eAAO,MAAM,uBAAuB;;SAMnC,CAAC"}
@@ -5,7 +5,7 @@ import { Body2 } from "../../Typography";
5
5
  export const StyledOptionGroupLi = styled.li.withConfig({
6
6
  displayName: "Styles__StyledOptionGroupLi",
7
7
  componentId: "sc-16v5afu-0"
8
- })(["flex-direction:column;"]);
8
+ })(["flex-direction:column;cursor:pointer;"]);
9
9
  export const StyledOptionGroup = styled.div.withConfig({
10
10
  displayName: "Styles__StyledOptionGroup",
11
11
  componentId: "sc-16v5afu-1"
@@ -1 +1 @@
1
- {"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","FontStyle","Body2","StyledOptionGroupLi","li","withConfig","displayName","componentId","StyledOptionGroup","div","StyledOptionGroupHeader","StyledOptionGroupHeaderName","StyledOptionGroupOption","props","hover"],"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\nimport { Body2 } from \"../../Typography\";\n\nexport const StyledOptionGroupLi = styled.li`\n flex-direction: column;\n`;\nexport const StyledOptionGroup = styled.div`\n ${tw`tw-select-none`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledOptionGroup.displayName = \"StyledOptionGroup\";\n\nexport const StyledOptionGroupHeader = styled.div`\n height: 28px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 16px;\n margin: 6px 0;\n * {\n margin: auto 0;\n }\n`;\n\nStyledOptionGroupHeader.displayName = \"StyledOptionGroupHeader\";\n\nexport const StyledOptionGroupHeaderName = styled(Body2)`\n padding-right: 10px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nStyledOptionGroupHeaderName.displayName = \"StyledOptionGroupHeaderName\";\n\nexport const StyledOptionGroupOption = styled.div<{ hover?: boolean }>`\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n `}\n`;\n\nStyledOptionGroupOption.displayName = \"StyledOptionGroupOption\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,QAAQ,kBAAkB;AAExC,OAAO,MAAMC,mBAAmB,GAAGL,MAAM,CAACM,EAAE,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8BAE3C;AACD,OAAO,MAAMC,iBAAiB,GAAGV,MAAM,CAACW,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uBACrC;EAAA;AAAe,CAAC,EAClBN,SAAS,EACTD,cAAc,CACjB;AAEDQ,iBAAiB,CAACF,WAAW,GAAG,mBAAmB;AAEnD,OAAO,MAAMI,uBAAuB,GAAGZ,MAAM,CAACW,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,+HAUhD;AAEDG,uBAAuB,CAACJ,WAAW,GAAG,yBAAyB;AAE/D,OAAO,MAAMK,2BAA2B,GAAGb,MAAM,CAACI,KAAK,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qFAKvD;AAEDI,2BAA2B,CAACL,WAAW,GAAG,6BAA6B;AAEvE,OAAO,MAAMM,uBAAuB,GAAGd,MAAM,CAACW,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aAC5CM,KAAK,IACNA,KAAK,CAACC,KAAK,IACXf,GAAG,8CAEF,CACJ;AAEDa,uBAAuB,CAACN,WAAW,GAAG,yBAAyB"}
1
+ {"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","FontStyle","Body2","StyledOptionGroupLi","li","withConfig","displayName","componentId","StyledOptionGroup","div","StyledOptionGroupHeader","StyledOptionGroupHeaderName","StyledOptionGroupOption","props","hover"],"sources":["../../../../../src/components/Select/OptionGroup/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\nimport tw from \"twin.macro\";\n\nimport { BoxSizingStyle } from \"../../BoxSizingStyle\";\nimport { FontStyle } from \"../../FontStyle\";\nimport { Body2 } from \"../../Typography\";\n\nexport const StyledOptionGroupLi = styled.li`\n flex-direction: column;\n cursor: pointer;\n`;\nexport const StyledOptionGroup = styled.div`\n ${tw`tw-select-none`}\n ${FontStyle}\n ${BoxSizingStyle}\n`;\n\nStyledOptionGroup.displayName = \"StyledOptionGroup\";\n\nexport const StyledOptionGroupHeader = styled.div`\n height: 28px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0 16px;\n margin: 6px 0;\n * {\n margin: auto 0;\n }\n`;\n\nStyledOptionGroupHeader.displayName = \"StyledOptionGroupHeader\";\n\nexport const StyledOptionGroupHeaderName = styled(Body2)`\n padding-right: 10px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n\nStyledOptionGroupHeaderName.displayName = \"StyledOptionGroupHeaderName\";\n\nexport const StyledOptionGroupOption = styled.div<{ hover?: boolean }>`\n ${(props) =>\n props.hover &&\n css`\n background-color: var(--color-theme-200);\n `}\n`;\n\nStyledOptionGroupOption.displayName = \"StyledOptionGroupOption\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAG/C,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,KAAK,QAAQ,kBAAkB;AAExC,OAAO,MAAMC,mBAAmB,GAAGL,MAAM,CAACM,EAAE,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,6CAG3C;AACD,OAAO,MAAMC,iBAAiB,GAAGV,MAAM,CAACW,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uBACrC;EAAA;AAAe,CAAC,EAClBN,SAAS,EACTD,cAAc,CACjB;AAEDQ,iBAAiB,CAACF,WAAW,GAAG,mBAAmB;AAEnD,OAAO,MAAMI,uBAAuB,GAAGZ,MAAM,CAACW,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,+HAUhD;AAEDG,uBAAuB,CAACJ,WAAW,GAAG,yBAAyB;AAE/D,OAAO,MAAMK,2BAA2B,GAAGb,MAAM,CAACI,KAAK,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qFAKvD;AAEDI,2BAA2B,CAACL,WAAW,GAAG,6BAA6B;AAEvE,OAAO,MAAMM,uBAAuB,GAAGd,MAAM,CAACW,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,aAC5CM,KAAK,IACNA,KAAK,CAACC,KAAK,IACXf,GAAG,8CAEF,CACJ;AAEDa,uBAAuB,CAACN,WAAW,GAAG,yBAAyB"}
@@ -35,6 +35,7 @@ export interface ISelectProps extends Omit<IAutocompleteProps, "handleChange" |
35
35
  focusInput?: boolean;
36
36
  /** Mixed options values */
37
37
  mixed?: (string | number)[];
38
+ disableVirtualization?: boolean;
38
39
  }
39
40
  export declare const Select: FC<ISelectProps>;
40
41
  //# sourceMappingURL=Select.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACH,SAAS,EACV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAc3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAKlE,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IACrD,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CACV,kBAAkB,EAChB,cAAc,GACd,SAAS,GACT,mBAAmB,GACnB,oBAAoB,GACpB,cAAc,CACjB;IACD,sBAAsB;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,gCAAgC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9D,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,gCAAgC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,oCAAoC;IACpC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,qCAAqC;IACrC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CAC7B;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,CAkRnC,CAAC"}
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["../../../../src/components/Select/Select.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,EAAE,EAGF,YAAY,EAIZ,GAAG,EACH,SAAS,EACV,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAc3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAKlE,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IACrD,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CACV,kBAAkB,EAChB,cAAc,GACd,SAAS,GACT,mBAAmB,GACnB,oBAAoB,GACpB,cAAc,CACjB;IACD,sBAAsB;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACnC,gCAAgC;IAChC,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC9D,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IAC9C,gCAAgC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4BAA4B;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,qDAAqD;IACrD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,oCAAoC;IACpC,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,qCAAqC;IACrC,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,YAAY,CAoRnC,CAAC"}
@@ -30,6 +30,7 @@ export const Select = _ref => {
30
30
  startAdornment,
31
31
  endAdornment,
32
32
  focusInput = false,
33
+ disableVirtualization,
33
34
  ...prop
34
35
  } = _ref;
35
36
  if (disableSearch && (startAdornment || endAdornment)) {
@@ -181,7 +182,8 @@ export const Select = _ref => {
181
182
  handleDefaultOptionChange: handleDefaultOptionChangeCallback,
182
183
  type: type,
183
184
  preselectDefaultValue: preselectDefaultValue,
184
- keepSameOptionsOrder: keepSameOptionsOrder
185
+ keepSameOptionsOrder: keepSameOptionsOrder,
186
+ disableVirtualization: disableVirtualization
185
187
  }))));
186
188
  };
187
189
  Select.displayName = "Select";
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","classNames","OptionContent","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","StyledStartAdornment","StyledEndAdornment","useForkRef","Autocomplete","isOptionGroup","Menu","Select","_ref","type","mode","target","options","selected","mixed","position","onChange","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","preselectDefaultValue","startAdornment","endAdornment","focusInput","prop","console","warn","childNode","elementRef","handleRef","Tag","formRef","open","setOpen","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","mixedOptions","length","removeFromMixedOptions","idsToRemove","current","filter","mixedOption","includes","isAllOptionsChecked","every","someOptionsChecked","some","_childNode$current","focus","handleChange","selectedValue","undefined","onClose","onOpen","props","menuClassName","onPopperOpen","_elementRef$current","className","handleEmptyAction","value","_formRef$current","reset","handleDefaultOptionChangeCallback","handleRenderOption","createElement","Fragment","imageUrl","image","color","textColor","name","additionalInfo","_extends","checked","ref","clearInputOnSelect","inputEl","displayName"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n ReactNode,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classNames from \"classnames\";\n\nimport { OptionContent } from \"./OptionContent/OptionContent\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n StyledStartAdornment,\n StyledEndAdornment,\n} from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\n\nexport interface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n | \"handleChange\"\n | \"inputEl\"\n | \"handleEmptyAction\"\n | \"clearInputOnSelect\"\n | \"mixedOptions\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n /** Node element on the left side */\n startAdornment?: ReactNode;\n /** Node element on the right side */\n endAdornment?: ReactNode;\n /** Focus search input on inline select */\n focusInput?: boolean;\n /** Mixed options values */\n mixed?: (string | number)[];\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n mixed = [],\n position = \"bottom-start\",\n onChange = () => null,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n startAdornment,\n endAdornment,\n focusInput = false,\n ...prop\n}) => {\n if (disableSearch && (startAdornment || endAdornment)) {\n console.warn(\"Adornments are not visible when search bar is hidden\");\n }\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(childNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const mixedOptions = useRef(type === \"multiple\" && mixed.length ? mixed : []);\n\n const removeFromMixedOptions = useCallback(\n (idsToRemove: (string | number)[]) => {\n mixedOptions.current = mixedOptions.current.filter(\n (mixedOption) => !idsToRemove.includes(mixedOption)\n );\n },\n []\n );\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n const someOptionsChecked = useMemo(\n () => allOptionValues.some((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n if ((open && target) || (!target && focusInput)) {\n childNode?.current?.focus();\n }\n }, [focusInput, open, target]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n if (typeof onSelectClose === \"function\") onSelectClose();\n setOpen(false);\n }\n if (\n selectedValue !== undefined &&\n selectedValue !== selected &&\n !(selectedValue instanceof Array && selectedValue.includes(undefined))\n ) {\n onChange(selectedValue);\n type === \"multiple\" &&\n mixedOptions.current.length &&\n removeFromMixedOptions(selectedValue);\n }\n },\n [\n forceCloseMenu,\n selected,\n onSelectClose,\n onChange,\n type,\n removeFromMixedOptions,\n ]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n onPopperOpen: () => elementRef?.current?.focus(),\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox\n checked={isAllOptionsChecked}\n mixed={someOptionsChecked && !isAllOptionsChecked}\n {...props}\n />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox\n mixed={mixedOptions.current.includes(option.id)}\n {...props}\n />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [\n isAllOptionsChecked,\n renderOption,\n type,\n someOptionsChecked,\n selectedOptions,\n ]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n {startAdornment ? (\n <StyledStartAdornment>{startAdornment}</StyledStartAdornment>\n ) : null}\n <StyledSelectInput ref={handleRef} placeholder={placeholder} />\n {endAdornment ? (\n <StyledEndAdornment>{endAdornment}</StyledEndAdornment>\n ) : null}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n clearInputOnSelect\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n mixedOptions={mixedOptions.current}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","names":["React","useCallback","useState","useMemo","useEffect","useRef","classNames","OptionContent","StyledSelectForm","StyledSelectInput","StyledCheckbox","StyledRadioButton","StyledStartAdornment","StyledEndAdornment","useForkRef","Autocomplete","isOptionGroup","Menu","Select","_ref","type","mode","target","options","selected","mixed","position","onChange","placeholder","emptyAction","disableSearch","forceCloseMenu","selectClassName","keepSameOptionsOrder","onSelectOpen","onSelectClose","renderOption","handleDefaultOptionChange","preselectDefaultValue","startAdornment","endAdornment","focusInput","disableVirtualization","prop","console","warn","childNode","elementRef","handleRef","Tag","formRef","open","setOpen","selectedOptions","Array","selectOptions","allOptionValues","reduce","acc","option","id","allGroupOptions","map","mixedOptions","length","removeFromMixedOptions","idsToRemove","current","filter","mixedOption","includes","isAllOptionsChecked","every","someOptionsChecked","some","_childNode$current","focus","handleChange","selectedValue","undefined","onClose","onOpen","props","menuClassName","onPopperOpen","_elementRef$current","className","handleEmptyAction","value","_formRef$current","reset","handleDefaultOptionChangeCallback","handleRenderOption","createElement","Fragment","imageUrl","image","color","textColor","name","additionalInfo","_extends","checked","ref","clearInputOnSelect","inputEl","displayName"],"sources":["../../../../src/components/Select/Select.tsx"],"sourcesContent":["import React, {\n FC,\n useCallback,\n useState,\n ReactElement,\n useMemo,\n useEffect,\n useRef,\n Ref,\n ReactNode,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classNames from \"classnames\";\n\nimport { OptionContent } from \"./OptionContent/OptionContent\";\nimport {\n StyledSelectForm,\n StyledSelectInput,\n StyledCheckbox,\n StyledRadioButton,\n StyledStartAdornment,\n StyledEndAdornment,\n} from \"./Styles\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Autocomplete, isOptionGroup } from \"../Autocomplete\";\nimport { IAutocompleteProps } from \"../Autocomplete/Autocomplete\";\nimport { Menu } from \"../Menu/Menu\";\nimport { IOptionItemProps } from \"../Select/Option\";\nimport { IOptionGroupProps } from \"../Select/OptionGroup\";\n\nexport interface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\nexport interface ISelectProps\n extends Omit<\n IAutocompleteProps,\n | \"handleChange\"\n | \"inputEl\"\n | \"handleEmptyAction\"\n | \"clearInputOnSelect\"\n | \"mixedOptions\"\n > {\n /** Menu width mode */\n mode?: \"normal\" | \"wider\" | \"tiny\";\n /** Set select target element */\n target?: ElementWithRef<Element>;\n /** Set Select position */\n position?: Placement;\n /** onChange callback */\n onChange?: (e: (string | number)[] | string | number) => void;\n /** Placeholder for Select input */\n placeholder?: string;\n /** Function that triggers when empty is clicked */\n emptyAction?: (e: string | undefined) => void;\n /** Removes input from Select */\n disableSearch?: boolean;\n /** Close menu on select */\n forceCloseMenu?: boolean;\n /** Set select classNames */\n selectClassName?: string;\n /** Callback called when the Select menu is opened */\n onSelectOpen?: () => void;\n /** Callback called when the Select menu is closed */\n onSelectClose?: () => void;\n /** Node element on the left side */\n startAdornment?: ReactNode;\n /** Node element on the right side */\n endAdornment?: ReactNode;\n /** Focus search input on inline select */\n focusInput?: boolean;\n /** Mixed options values */\n mixed?: (string | number)[];\n disableVirtualization?: boolean;\n}\n\nexport const Select: FC<ISelectProps> = ({\n type = \"single\",\n mode,\n target,\n options,\n selected = [],\n mixed = [],\n position = \"bottom-start\",\n onChange = () => null,\n placeholder,\n emptyAction = (): null => null,\n disableSearch = false,\n forceCloseMenu,\n selectClassName,\n keepSameOptionsOrder = false,\n onSelectOpen,\n onSelectClose,\n renderOption,\n handleDefaultOptionChange,\n preselectDefaultValue = type === \"single\",\n startAdornment,\n endAdornment,\n focusInput = false,\n disableVirtualization,\n ...prop\n}) => {\n if (disableSearch && (startAdornment || endAdornment)) {\n console.warn(\"Adornments are not visible when search bar is hidden\");\n }\n const childNode = useRef<HTMLInputElement | null>();\n const elementRef = useRef<HTMLInputElement | null>(null);\n\n const handleRef = useForkRef(childNode, elementRef);\n\n const Tag = !target ? \"div\" : Menu;\n const formRef = useRef<HTMLFormElement | null>(null);\n\n const [open, setOpen] = useState(false);\n\n const selectedOptions = useMemo(\n () => (selected instanceof Array ? selected : [selected]),\n [selected]\n );\n\n const selectOptions = useMemo(() => {\n if (!options) {\n return [];\n }\n return options;\n }, [options]);\n\n const allOptionValues = useMemo(() => {\n return selectOptions.reduce(\n (\n acc: (string | number)[],\n option: IOptionGroupProps | IOptionItemProps\n ) => {\n if (!isOptionGroup(option)) {\n return [...acc, option.id];\n }\n const allGroupOptions = option.options.map((option) => option.id);\n return [...acc, ...allGroupOptions];\n },\n []\n );\n }, [selectOptions]);\n\n const mixedOptions = useRef(type === \"multiple\" && mixed.length ? mixed : []);\n\n const removeFromMixedOptions = useCallback(\n (idsToRemove: (string | number)[]) => {\n mixedOptions.current = mixedOptions.current.filter(\n (mixedOption) => !idsToRemove.includes(mixedOption)\n );\n },\n []\n );\n\n const isAllOptionsChecked = useMemo(\n () => allOptionValues.every((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n const someOptionsChecked = useMemo(\n () => allOptionValues.some((option) => selectedOptions.includes(option)),\n [allOptionValues, selectedOptions]\n );\n\n useEffect(() => {\n if ((open && target) || (!target && focusInput)) {\n childNode?.current?.focus();\n }\n }, [focusInput, open, target]);\n\n const handleChange = useCallback(\n (selectedValue) => {\n if (forceCloseMenu) {\n if (typeof onSelectClose === \"function\") onSelectClose();\n setOpen(false);\n }\n if (\n selectedValue !== undefined &&\n selectedValue !== selected &&\n !(selectedValue instanceof Array && selectedValue.includes(undefined))\n ) {\n onChange(selectedValue);\n type === \"multiple\" &&\n mixedOptions.current.length &&\n removeFromMixedOptions(selectedValue);\n }\n },\n [\n forceCloseMenu,\n selected,\n onSelectClose,\n onChange,\n type,\n removeFromMixedOptions,\n ]\n );\n\n const onClose = useCallback(() => {\n setOpen(false);\n if (onSelectClose) {\n onSelectClose();\n }\n }, [onSelectClose]);\n\n const onOpen = useCallback(() => {\n setOpen(true);\n if (onSelectOpen) {\n onSelectOpen();\n }\n }, [onSelectOpen]);\n\n const props = useMemo(() => {\n if (target) {\n return {\n menuClassName: classNames(\"c-select\", selectClassName),\n onClose,\n onOpen,\n target,\n mode,\n open,\n position,\n onPopperOpen: () => elementRef?.current?.focus(),\n };\n }\n return { className: classNames(\"c-select\", selectClassName) };\n }, [target, selectClassName, onClose, onOpen, mode, open, position]);\n\n const handleEmptyAction = useCallback(\n (value) => {\n emptyAction(value);\n if (forceCloseMenu) {\n setOpen(false);\n }\n formRef.current?.reset();\n },\n [emptyAction, forceCloseMenu]\n );\n\n const handleDefaultOptionChangeCallback = useCallback(() => {\n if (type === \"multiple\") {\n if (selectedOptions.length === allOptionValues.length) {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange([]);\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(allOptionValues);\n }\n }\n } else {\n if (typeof handleDefaultOptionChange === \"function\") {\n handleDefaultOptionChange();\n } else {\n onChange(\"\");\n }\n }\n if (forceCloseMenu) {\n setOpen(false);\n }\n }, [\n onChange,\n type,\n forceCloseMenu,\n selectedOptions.length,\n allOptionValues,\n handleDefaultOptionChange,\n ]);\n\n const handleRenderOption = useCallback(\n (option, props) => {\n if (typeof renderOption === \"function\") {\n return renderOption(option, props);\n }\n return (\n <>\n <OptionContent\n imageUrl={option.image}\n color={option.color}\n textColor={option.textColor}\n name={option.name}\n additionalInfo={option.additionalInfo}\n />\n {option.id === null ? (\n type === \"multiple\" ? (\n <StyledCheckbox\n checked={isAllOptionsChecked}\n mixed={someOptionsChecked && !isAllOptionsChecked}\n {...props}\n />\n ) : (\n <StyledRadioButton\n checked={selectedOptions.length < 1 || !selectedOptions[0]}\n {...props}\n />\n )\n ) : type === \"multiple\" ? (\n <StyledCheckbox\n mixed={mixedOptions.current.includes(option.id)}\n {...props}\n />\n ) : (\n <StyledRadioButton {...props} />\n )}\n </>\n );\n },\n [\n isAllOptionsChecked,\n renderOption,\n type,\n someOptionsChecked,\n selectedOptions,\n ]\n );\n\n return (\n <Tag {...props}>\n <div>\n {!disableSearch ? (\n <StyledSelectForm ref={formRef}>\n {startAdornment ? (\n <StyledStartAdornment>{startAdornment}</StyledStartAdornment>\n ) : null}\n <StyledSelectInput ref={handleRef} placeholder={placeholder} />\n {endAdornment ? (\n <StyledEndAdornment>{endAdornment}</StyledEndAdornment>\n ) : null}\n </StyledSelectForm>\n ) : null}\n <Autocomplete\n {...prop}\n clearInputOnSelect\n inputEl={childNode}\n handleEmptyAction={handleEmptyAction}\n selected={selected}\n handleChange={handleChange}\n renderOption={handleRenderOption}\n options={options}\n mixedOptions={mixedOptions.current}\n handleDefaultOptionChange={handleDefaultOptionChangeCallback}\n type={type}\n preselectDefaultValue={preselectDefaultValue}\n keepSameOptionsOrder={keepSameOptionsOrder}\n disableVirtualization={disableVirtualization}\n />\n </div>\n </Tag>\n );\n};\n\nSelect.displayName = \"Select\";\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useHighlightText.d.ts","sourceRoot":"","sources":["../../../src/hooks/useHighlightText.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAY,SAAS,EAAE,MAAM,OAAO,CAAC;AAUnD,QAAA,MAAM,gBAAgB,SACd,MAAM,YACF,MAAM,0BAEf,SAsCF,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"useHighlightText.d.ts","sourceRoot":"","sources":["../../../src/hooks/useHighlightText.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAY,SAAS,EAAE,MAAM,OAAO,CAAC;AAUnD,QAAA,MAAM,gBAAgB,SACd,MAAM,YACF,MAAM,0BAEf,SAuCF,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -11,6 +11,7 @@ const useHighlightText = function (text, searchBy, matchCase) {
11
11
  }
12
12
  let textComparator = text;
13
13
  let searchByComparator = searchBy;
14
+ if (!text) return;
14
15
  if (!matchCase) {
15
16
  textComparator = text.toLowerCase();
16
17
  searchByComparator = searchBy.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"useHighlightText.js","names":["React","Fragment","styled","StyledHiglightedText","span","withConfig","displayName","componentId","useHighlightText","text","searchBy","matchCase","textComparator","searchByComparator","toLowerCase","indexOf","beforeHighlighted","substring","highLighted","length","afterHighlighted","createElement","replace","className"],"sources":["../../../src/hooks/useHighlightText.tsx"],"sourcesContent":["import React, { Fragment, ReactNode } from \"react\";\n\nimport styled from \"styled-components\";\n\nconst StyledHiglightedText = styled.span`\n background-color: var(--color-primary-200);\n`;\n\nStyledHiglightedText.displayName = \"StyledHiglightedText\";\n\nconst useHighlightText = (\n text: string,\n searchBy: string,\n matchCase = false\n): ReactNode => {\n let textComparator = text;\n let searchByComparator = searchBy;\n\n if (!matchCase) {\n textComparator = text.toLowerCase();\n searchByComparator = searchBy.toLowerCase();\n }\n\n if (\n searchBy &&\n textComparator &&\n textComparator.indexOf(searchByComparator) >= 0\n ) {\n const beforeHighlighted = text.substring(\n 0,\n textComparator.indexOf(searchByComparator)\n );\n const highLighted = text.substring(\n textComparator.indexOf(searchByComparator),\n textComparator.indexOf(searchByComparator) + searchBy.length\n );\n const afterHighlighted = text.substring(\n textComparator.indexOf(searchByComparator) + searchBy.length\n );\n\n return (\n <Fragment>\n {beforeHighlighted.replace(/ /g, \"\\u00a0\")}\n <StyledHiglightedText className=\"c-option--text__highlight\">\n {highLighted.replace(/ /g, \"\\u00a0\")}\n </StyledHiglightedText>\n {afterHighlighted.replace(/ /g, \"\\u00a0\")}\n </Fragment>\n );\n }\n\n return text;\n};\n\nexport default useHighlightText;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAmB,OAAO;AAElD,OAAOC,MAAM,MAAM,mBAAmB;AAEtC,MAAMC,oBAAoB,GAAGD,MAAM,CAACE,IAAI,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kDAEvC;AAEDJ,oBAAoB,CAACG,WAAW,GAAG,sBAAsB;AAEzD,MAAME,gBAAgB,GAAG,SAAAA,CACvBC,IAAY,EACZC,QAAgB,EAChBC,SAAS,EACK;EAAA,IADdA,SAAS;IAATA,SAAS,GAAG,KAAK;EAAA;EAEjB,IAAIC,cAAc,GAAGH,IAAI;EACzB,IAAII,kBAAkB,GAAGH,QAAQ;EAEjC,IAAI,CAACC,SAAS,EAAE;IACdC,cAAc,GAAGH,IAAI,CAACK,WAAW,CAAC,CAAC;IACnCD,kBAAkB,GAAGH,QAAQ,CAACI,WAAW,CAAC,CAAC;EAC7C;EAEA,IACEJ,QAAQ,IACRE,cAAc,IACdA,cAAc,CAACG,OAAO,CAACF,kBAAkB,CAAC,IAAI,CAAC,EAC/C;IACA,MAAMG,iBAAiB,GAAGP,IAAI,CAACQ,SAAS,CACtC,CAAC,EACDL,cAAc,CAACG,OAAO,CAACF,kBAAkB,CAC3C,CAAC;IACD,MAAMK,WAAW,GAAGT,IAAI,CAACQ,SAAS,CAChCL,cAAc,CAACG,OAAO,CAACF,kBAAkB,CAAC,EAC1CD,cAAc,CAACG,OAAO,CAACF,kBAAkB,CAAC,GAAGH,QAAQ,CAACS,MACxD,CAAC;IACD,MAAMC,gBAAgB,GAAGX,IAAI,CAACQ,SAAS,CACrCL,cAAc,CAACG,OAAO,CAACF,kBAAkB,CAAC,GAAGH,QAAQ,CAACS,MACxD,CAAC;IAED,oBACEnB,KAAA,CAAAqB,aAAA,CAACpB,QAAQ,QACNe,iBAAiB,CAACM,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,eAC1CtB,KAAA,CAAAqB,aAAA,CAAClB,oBAAoB;MAACoB,SAAS,EAAC;IAA2B,GACxDL,WAAW,CAACI,OAAO,CAAC,IAAI,EAAE,QAAQ,CACf,CAAC,EACtBF,gBAAgB,CAACE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAChC,CAAC;EAEf;EAEA,OAAOb,IAAI;AACb,CAAC;AAED,eAAeD,gBAAgB"}
1
+ {"version":3,"file":"useHighlightText.js","names":["React","Fragment","styled","StyledHiglightedText","span","withConfig","displayName","componentId","useHighlightText","text","searchBy","matchCase","textComparator","searchByComparator","toLowerCase","indexOf","beforeHighlighted","substring","highLighted","length","afterHighlighted","createElement","replace","className"],"sources":["../../../src/hooks/useHighlightText.tsx"],"sourcesContent":["import React, { Fragment, ReactNode } from \"react\";\n\nimport styled from \"styled-components\";\n\nconst StyledHiglightedText = styled.span`\n background-color: var(--color-primary-200);\n`;\n\nStyledHiglightedText.displayName = \"StyledHiglightedText\";\n\nconst useHighlightText = (\n text: string,\n searchBy: string,\n matchCase = false\n): ReactNode => {\n let textComparator = text;\n let searchByComparator = searchBy;\n if (!text) return;\n\n if (!matchCase) {\n textComparator = text.toLowerCase();\n searchByComparator = searchBy.toLowerCase();\n }\n\n if (\n searchBy &&\n textComparator &&\n textComparator.indexOf(searchByComparator) >= 0\n ) {\n const beforeHighlighted = text.substring(\n 0,\n textComparator.indexOf(searchByComparator)\n );\n const highLighted = text.substring(\n textComparator.indexOf(searchByComparator),\n textComparator.indexOf(searchByComparator) + searchBy.length\n );\n const afterHighlighted = text.substring(\n textComparator.indexOf(searchByComparator) + searchBy.length\n );\n\n return (\n <Fragment>\n {beforeHighlighted.replace(/ /g, \"\\u00a0\")}\n <StyledHiglightedText className=\"c-option--text__highlight\">\n {highLighted.replace(/ /g, \"\\u00a0\")}\n </StyledHiglightedText>\n {afterHighlighted.replace(/ /g, \"\\u00a0\")}\n </Fragment>\n );\n }\n\n return text;\n};\n\nexport default useHighlightText;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAmB,OAAO;AAElD,OAAOC,MAAM,MAAM,mBAAmB;AAEtC,MAAMC,oBAAoB,GAAGD,MAAM,CAACE,IAAI,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kDAEvC;AAEDJ,oBAAoB,CAACG,WAAW,GAAG,sBAAsB;AAEzD,MAAME,gBAAgB,GAAG,SAAAA,CACvBC,IAAY,EACZC,QAAgB,EAChBC,SAAS,EACK;EAAA,IADdA,SAAS;IAATA,SAAS,GAAG,KAAK;EAAA;EAEjB,IAAIC,cAAc,GAAGH,IAAI;EACzB,IAAII,kBAAkB,GAAGH,QAAQ;EACjC,IAAI,CAACD,IAAI,EAAE;EAEX,IAAI,CAACE,SAAS,EAAE;IACdC,cAAc,GAAGH,IAAI,CAACK,WAAW,CAAC,CAAC;IACnCD,kBAAkB,GAAGH,QAAQ,CAACI,WAAW,CAAC,CAAC;EAC7C;EAEA,IACEJ,QAAQ,IACRE,cAAc,IACdA,cAAc,CAACG,OAAO,CAACF,kBAAkB,CAAC,IAAI,CAAC,EAC/C;IACA,MAAMG,iBAAiB,GAAGP,IAAI,CAACQ,SAAS,CACtC,CAAC,EACDL,cAAc,CAACG,OAAO,CAACF,kBAAkB,CAC3C,CAAC;IACD,MAAMK,WAAW,GAAGT,IAAI,CAACQ,SAAS,CAChCL,cAAc,CAACG,OAAO,CAACF,kBAAkB,CAAC,EAC1CD,cAAc,CAACG,OAAO,CAACF,kBAAkB,CAAC,GAAGH,QAAQ,CAACS,MACxD,CAAC;IACD,MAAMC,gBAAgB,GAAGX,IAAI,CAACQ,SAAS,CACrCL,cAAc,CAACG,OAAO,CAACF,kBAAkB,CAAC,GAAGH,QAAQ,CAACS,MACxD,CAAC;IAED,oBACEnB,KAAA,CAAAqB,aAAA,CAACpB,QAAQ,QACNe,iBAAiB,CAACM,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,eAC1CtB,KAAA,CAAAqB,aAAA,CAAClB,oBAAoB;MAACoB,SAAS,EAAC;IAA2B,GACxDL,WAAW,CAACI,OAAO,CAAC,IAAI,EAAE,QAAQ,CACf,CAAC,EACtBF,gBAAgB,CAACE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAChC,CAAC;EAEf;EAEA,OAAOb,IAAI;AACb,CAAC;AAED,eAAeD,gBAAgB"}