@coorpacademy/components 11.40.0 → 11.40.1-alpha.6

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 (44) hide show
  1. package/es/atom/button-link/index.d.ts.map +1 -1
  2. package/es/atom/button-link/index.js +7 -5
  3. package/es/atom/button-link/index.js.map +1 -1
  4. package/es/atom/button-link/style.css +1 -1
  5. package/es/atom/button-link/types.d.ts +3 -0
  6. package/es/atom/button-link/types.d.ts.map +1 -1
  7. package/es/atom/button-link/types.js.map +1 -1
  8. package/es/atom/select-icon/index.d.ts.map +1 -1
  9. package/es/atom/select-icon/index.js +9 -23
  10. package/es/atom/select-icon/index.js.map +1 -1
  11. package/es/molecule/icon-picker-modal/index.js +9 -7
  12. package/es/molecule/icon-picker-modal/index.js.map +1 -1
  13. package/es/molecule/quick-filters/index.d.ts +68 -0
  14. package/es/molecule/quick-filters/index.d.ts.map +1 -0
  15. package/es/molecule/quick-filters/index.js +179 -0
  16. package/es/molecule/quick-filters/index.js.map +1 -0
  17. package/es/molecule/quick-filters/style.css +119 -0
  18. package/es/molecule/quick-filters/types.d.ts +91 -0
  19. package/es/molecule/quick-filters/types.d.ts.map +1 -0
  20. package/es/molecule/quick-filters/types.js +25 -0
  21. package/es/molecule/quick-filters/types.js.map +1 -0
  22. package/lib/atom/button-link/index.d.ts.map +1 -1
  23. package/lib/atom/button-link/index.js +7 -5
  24. package/lib/atom/button-link/index.js.map +1 -1
  25. package/lib/atom/button-link/style.css +1 -1
  26. package/lib/atom/button-link/types.d.ts +3 -0
  27. package/lib/atom/button-link/types.d.ts.map +1 -1
  28. package/lib/atom/button-link/types.js.map +1 -1
  29. package/lib/atom/select-icon/index.d.ts.map +1 -1
  30. package/lib/atom/select-icon/index.js +10 -23
  31. package/lib/atom/select-icon/index.js.map +1 -1
  32. package/lib/molecule/icon-picker-modal/index.js +9 -7
  33. package/lib/molecule/icon-picker-modal/index.js.map +1 -1
  34. package/lib/molecule/quick-filters/index.d.ts +68 -0
  35. package/lib/molecule/quick-filters/index.d.ts.map +1 -0
  36. package/lib/molecule/quick-filters/index.js +187 -0
  37. package/lib/molecule/quick-filters/index.js.map +1 -0
  38. package/lib/molecule/quick-filters/style.css +119 -0
  39. package/lib/molecule/quick-filters/types.d.ts +91 -0
  40. package/lib/molecule/quick-filters/types.d.ts.map +1 -0
  41. package/lib/molecule/quick-filters/types.js +30 -0
  42. package/lib/molecule/quick-filters/types.js.map +1 -0
  43. package/locales/lt/global.json +2 -2
  44. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":["_propTypes","_interopRequireDefault","require","_buttonIcons","e","__esModule","default","faIconPropTypes","name","PropTypes","string","isRequired","color","backgroundColor","size","number","customStyle","objectOf","oneOfType","iconPropTypes","exports","position","oneOf","type","_keys2","ICONS","faIcon","shape","propTypes","usage","label","content","node","tooltipText","tooltipPlacement","icon","onClick","func","link","href","download","bool","target","hoverBackgroundColor","hoverColor","disabled","className","useTitle","customLabelClassName","_default"],"sources":["../../../src/atom/button-link/types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\nimport {keys} from 'lodash/fp';\nimport {ICONS} from '../../util/button-icons';\n\nconst faIconPropTypes = {\n name: PropTypes.string.isRequired,\n color: PropTypes.string,\n backgroundColor: PropTypes.string,\n size: PropTypes.number,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport const iconPropTypes = {\n position: PropTypes.oneOf(['right', 'left']),\n type: PropTypes.oneOf(keys(ICONS)),\n faIcon: PropTypes.shape(faIconPropTypes)\n};\n\nconst propTypes = {\n type: PropTypes.oneOf(['primary', 'secondary', 'tertiary', 'text', 'dangerous']),\n usage: PropTypes.oneOf(['button', 'submit', 'reset']),\n label: PropTypes.string,\n content: PropTypes.node,\n 'aria-label': PropTypes.string,\n tooltipText: PropTypes.string,\n tooltipPlacement: PropTypes.oneOf(['left', 'right', 'top', 'bottom']),\n 'data-name': PropTypes.string,\n 'data-testid': PropTypes.string,\n icon: PropTypes.shape(iconPropTypes),\n onClick: PropTypes.func,\n link: PropTypes.shape({\n href: PropTypes.string,\n download: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top'])\n }),\n hoverBackgroundColor: PropTypes.string,\n hoverColor: PropTypes.string,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n useTitle: PropTypes.bool,\n customLabelClassName: PropTypes.string\n};\n\nexport type FaIconType = {\n name: string;\n color?: string;\n backgroundColor?: string;\n size?: number;\n customStyle?: Record<string, number | string>;\n};\n\nexport type IconType = {\n position: 'right' | 'left';\n type?: keyof typeof ICONS;\n faIcon?: FaIconType;\n};\n\nexport type ButtonLinkProps = {\n type?: 'primary' | 'secondary' | 'tertiary' | 'text' | 'dangerous';\n usage?: 'button' | 'submit' | 'reset';\n label?: string;\n content?: PropTypes.ReactNodeLike;\n 'aria-label'?: string;\n tooltipText?: string;\n tooltipPlacement?: 'left' | 'right' | 'top' | 'bottom';\n 'data-name'?: string;\n 'data-testid'?: string;\n icon?: IconType;\n onClick?: () => void;\n onKeyDown?: () => void;\n link?: {\n href?: string;\n download?: boolean;\n target?: '_self' | '_blank' | '_parent' | '_top';\n };\n hoverBackgroundColor?: string;\n hoverColor?: string;\n disabled?: boolean;\n className?: string;\n customStyle?: Record<string, string | number>;\n useTitle?: boolean;\n customLabelClassName?: string;\n};\n\nexport type Fixture = {props: ButtonLinkProps};\n\nexport default propTypes;\n"],"mappings":";;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAA8C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE9C,MAAMG,eAAe,GAAG;EACtBC,IAAI,EAAEC,kBAAS,CAACC,MAAM,CAACC,UAAU;EACjCC,KAAK,EAAEH,kBAAS,CAACC,MAAM;EACvBG,eAAe,EAAEJ,kBAAS,CAACC,MAAM;EACjCI,IAAI,EAAEL,kBAAS,CAACM,MAAM;EACtBC,WAAW,EAAEP,kBAAS,CAACQ,QAAQ,CAACR,kBAAS,CAACS,SAAS,CAAC,CAACT,kBAAS,CAACC,MAAM,EAAED,kBAAS,CAACM,MAAM,CAAC,CAAC;AAC3F,CAAC;AAEM,MAAMI,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAC3BE,QAAQ,EAAEZ,kBAAS,CAACa,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;EAC5CC,IAAI,EAAEd,kBAAS,CAACa,KAAK,CAAC,IAAAE,MAAA,CAAAlB,OAAA,EAAKmB,kBAAK,CAAC,CAAC;EAClCC,MAAM,EAAEjB,kBAAS,CAACkB,KAAK,CAACpB,eAAe;AACzC,CAAC;AAED,MAAMqB,SAAS,GAAG;EAChBL,IAAI,EAAEd,kBAAS,CAACa,KAAK,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;EAChFO,KAAK,EAAEpB,kBAAS,CAACa,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;EACrDQ,KAAK,EAAErB,kBAAS,CAACC,MAAM;EACvBqB,OAAO,EAAEtB,kBAAS,CAACuB,IAAI;EACvB,YAAY,EAAEvB,kBAAS,CAACC,MAAM;EAC9BuB,WAAW,EAAExB,kBAAS,CAACC,MAAM;EAC7BwB,gBAAgB,EAAEzB,kBAAS,CAACa,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;EACrE,WAAW,EAAEb,kBAAS,CAACC,MAAM;EAC7B,aAAa,EAAED,kBAAS,CAACC,MAAM;EAC/ByB,IAAI,EAAE1B,kBAAS,CAACkB,KAAK,CAACR,aAAa,CAAC;EACpCiB,OAAO,EAAE3B,kBAAS,CAAC4B,IAAI;EACvBC,IAAI,EAAE7B,kBAAS,CAACkB,KAAK,CAAC;IACpBY,IAAI,EAAE9B,kBAAS,CAACC,MAAM;IACtB8B,QAAQ,EAAE/B,kBAAS,CAACgC,IAAI;IACxBC,MAAM,EAAEjC,kBAAS,CAACa,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;EAChE,CAAC,CAAC;EACFqB,oBAAoB,EAAElC,kBAAS,CAACC,MAAM;EACtCkC,UAAU,EAAEnC,kBAAS,CAACC,MAAM;EAC5BmC,QAAQ,EAAEpC,kBAAS,CAACgC,IAAI;EACxBK,SAAS,EAAErC,kBAAS,CAACC,MAAM;EAC3BM,WAAW,EAAEP,kBAAS,CAACQ,QAAQ,CAACR,kBAAS,CAACS,SAAS,CAAC,CAACT,kBAAS,CAACC,MAAM,EAAED,kBAAS,CAACM,MAAM,CAAC,CAAC,CAAC;EAC1FgC,QAAQ,EAAEtC,kBAAS,CAACgC,IAAI;EACxBO,oBAAoB,EAAEvC,kBAAS,CAACC;AAClC,CAAC;AAAC,IAAAuC,QAAA,GAAA7B,OAAA,CAAAd,OAAA,GA6CasB,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":["_propTypes","_interopRequireDefault","require","_buttonIcons","e","__esModule","default","faIconPropTypes","name","PropTypes","string","isRequired","color","backgroundColor","size","number","customStyle","objectOf","oneOfType","iconPropTypes","exports","position","oneOf","type","_keys2","ICONS","faIcon","shape","propTypes","usage","label","content","node","tooltipText","tooltipPlacement","icon","onClick","func","link","href","download","bool","target","hoverBackgroundColor","hoverColor","disabled","className","useTitle","customLabelClassName","_default"],"sources":["../../../src/atom/button-link/types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\nimport {keys} from 'lodash/fp';\nimport {ICONS} from '../../util/button-icons';\nimport Tag from '../tag';\n\nconst faIconPropTypes = {\n name: PropTypes.string.isRequired,\n color: PropTypes.string,\n backgroundColor: PropTypes.string,\n size: PropTypes.number,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport const iconPropTypes = {\n position: PropTypes.oneOf(['right', 'left']),\n type: PropTypes.oneOf(keys(ICONS)),\n faIcon: PropTypes.shape(faIconPropTypes)\n};\n\nconst propTypes = {\n type: PropTypes.oneOf(['primary', 'secondary', 'tertiary', 'text', 'dangerous']),\n usage: PropTypes.oneOf(['button', 'submit', 'reset']),\n label: PropTypes.string,\n content: PropTypes.node,\n 'aria-label': PropTypes.string,\n tooltipText: PropTypes.string,\n tooltipPlacement: PropTypes.oneOf(['left', 'right', 'top', 'bottom']),\n 'data-name': PropTypes.string,\n 'data-testid': PropTypes.string,\n icon: PropTypes.shape(iconPropTypes),\n onClick: PropTypes.func,\n link: PropTypes.shape({\n href: PropTypes.string,\n download: PropTypes.bool,\n target: PropTypes.oneOf(['_self', '_blank', '_parent', '_top'])\n }),\n hoverBackgroundColor: PropTypes.string,\n hoverColor: PropTypes.string,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n useTitle: PropTypes.bool,\n customLabelClassName: PropTypes.string\n};\n\nexport type FaIconType = {\n name: string;\n color?: string;\n backgroundColor?: string;\n size?: number;\n customStyle?: Record<string, number | string>;\n};\n\nexport type IconType = {\n position: 'right' | 'left';\n type?: keyof typeof ICONS;\n faIcon?: FaIconType;\n};\n\nexport type ButtonLinkProps = {\n type?: 'primary' | 'secondary' | 'tertiary' | 'text' | 'dangerous';\n usage?: 'button' | 'submit' | 'reset';\n label?: string;\n content?: PropTypes.ReactNodeLike;\n 'aria-label'?: string;\n tooltipText?: string;\n tooltipPlacement?: 'left' | 'right' | 'top' | 'bottom';\n 'data-name'?: string;\n 'data-testid'?: string;\n icon?: IconType;\n onClick?: () => void;\n onKeyDown?: () => void;\n link?: {\n href?: string;\n download?: boolean;\n target?: '_self' | '_blank' | '_parent' | '_top';\n };\n hoverBackgroundColor?: string;\n hoverColor?: string;\n disabled?: boolean;\n className?: string;\n customStyle?: Record<string, string | number>;\n useTitle?: boolean;\n customLabelClassName?: string;\n tag?: React.ComponentProps<typeof Tag>;\n};\n\nexport type Fixture = {props: ButtonLinkProps};\n\nexport default propTypes;\n"],"mappings":";;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AAA8C,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAG9C,MAAMG,eAAe,GAAG;EACtBC,IAAI,EAAEC,kBAAS,CAACC,MAAM,CAACC,UAAU;EACjCC,KAAK,EAAEH,kBAAS,CAACC,MAAM;EACvBG,eAAe,EAAEJ,kBAAS,CAACC,MAAM;EACjCI,IAAI,EAAEL,kBAAS,CAACM,MAAM;EACtBC,WAAW,EAAEP,kBAAS,CAACQ,QAAQ,CAACR,kBAAS,CAACS,SAAS,CAAC,CAACT,kBAAS,CAACC,MAAM,EAAED,kBAAS,CAACM,MAAM,CAAC,CAAC;AAC3F,CAAC;AAEM,MAAMI,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG;EAC3BE,QAAQ,EAAEZ,kBAAS,CAACa,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;EAC5CC,IAAI,EAAEd,kBAAS,CAACa,KAAK,CAAC,IAAAE,MAAA,CAAAlB,OAAA,EAAKmB,kBAAK,CAAC,CAAC;EAClCC,MAAM,EAAEjB,kBAAS,CAACkB,KAAK,CAACpB,eAAe;AACzC,CAAC;AAED,MAAMqB,SAAS,GAAG;EAChBL,IAAI,EAAEd,kBAAS,CAACa,KAAK,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;EAChFO,KAAK,EAAEpB,kBAAS,CAACa,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;EACrDQ,KAAK,EAAErB,kBAAS,CAACC,MAAM;EACvBqB,OAAO,EAAEtB,kBAAS,CAACuB,IAAI;EACvB,YAAY,EAAEvB,kBAAS,CAACC,MAAM;EAC9BuB,WAAW,EAAExB,kBAAS,CAACC,MAAM;EAC7BwB,gBAAgB,EAAEzB,kBAAS,CAACa,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;EACrE,WAAW,EAAEb,kBAAS,CAACC,MAAM;EAC7B,aAAa,EAAED,kBAAS,CAACC,MAAM;EAC/ByB,IAAI,EAAE1B,kBAAS,CAACkB,KAAK,CAACR,aAAa,CAAC;EACpCiB,OAAO,EAAE3B,kBAAS,CAAC4B,IAAI;EACvBC,IAAI,EAAE7B,kBAAS,CAACkB,KAAK,CAAC;IACpBY,IAAI,EAAE9B,kBAAS,CAACC,MAAM;IACtB8B,QAAQ,EAAE/B,kBAAS,CAACgC,IAAI;IACxBC,MAAM,EAAEjC,kBAAS,CAACa,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;EAChE,CAAC,CAAC;EACFqB,oBAAoB,EAAElC,kBAAS,CAACC,MAAM;EACtCkC,UAAU,EAAEnC,kBAAS,CAACC,MAAM;EAC5BmC,QAAQ,EAAEpC,kBAAS,CAACgC,IAAI;EACxBK,SAAS,EAAErC,kBAAS,CAACC,MAAM;EAC3BM,WAAW,EAAEP,kBAAS,CAACQ,QAAQ,CAACR,kBAAS,CAACS,SAAS,CAAC,CAACT,kBAAS,CAACC,MAAM,EAAED,kBAAS,CAACM,MAAM,CAAC,CAAC,CAAC;EAC1FgC,QAAQ,EAAEtC,kBAAS,CAACgC,IAAI;EACxBO,oBAAoB,EAAEvC,kBAAS,CAACC;AAClC,CAAC;AAAC,IAAAuC,QAAA,GAAA7B,OAAA,CAAAd,OAAA,GA8CasB,SAAS","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/select-icon/index.js"],"names":[],"mappings":";AAgDA,qDA0BC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/select-icon/index.js"],"names":[],"mappings":";AAkDA,qDA0BC"}
@@ -11,37 +11,24 @@ var _style = _interopRequireDefault(require("./style.css"));
11
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
12
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
13
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
+ // eslint-disable-next-line css-modules/no-unused-class
15
+
14
16
  const ICON_COLOR = _colors.COLORS.cm_primary_blue;
15
- const BACKGROUND_COLOR = _colors.COLORS.white;
16
- const CHECK_ICON_NAME_MAP = {
17
- single: 'circle-check',
18
- multi: 'square-check'
19
- };
17
+ // const BACKGROUND_COLOR = COLORS.white;
18
+ // const CHECK_ICON_NAME_MAP = {
19
+ // single: 'circle-check',
20
+ // multi: 'square-check'
21
+ // };
22
+
20
23
  const getButtonContent = (faIcon, options = {}) => {
21
24
  const {
22
- selectionMode = 'single',
25
+ // selectionMode = 'single',
23
26
  isSelected = false,
24
27
  iconColor = ICON_COLOR
25
28
  } = options;
26
29
  return /*#__PURE__*/_react.default.createElement("div", {
27
30
  className: _style.default.contentWrapper
28
- }, isSelected ?
29
- /*#__PURE__*/
30
- /* checkbox icon */
31
- _react.default.createElement("div", {
32
- className: _style.default.checkIcon
33
- }, /*#__PURE__*/_react.default.createElement(_icon.default, {
34
- iconName: CHECK_ICON_NAME_MAP[selectionMode],
35
- iconColor: iconColor,
36
- backgroundColor: BACKGROUND_COLOR,
37
- size: {
38
- faSize: 16,
39
- wrapperSize: 16
40
- }
41
- })) : null,
42
- /*#__PURE__*/
43
- /* selection tick (L18) / icon */
44
- _react.default.createElement("div", {
31
+ }, /*#__PURE__*/_react.default.createElement("div", {
45
32
  className: _style.default.iconWrapper
46
33
  }, /*#__PURE__*/_react.default.createElement("div", {
47
34
  className: _style.default.icon
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_icon","_colors","_style","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ICON_COLOR","COLORS","cm_primary_blue","BACKGROUND_COLOR","white","CHECK_ICON_NAME_MAP","single","multi","getButtonContent","faIcon","options","selectionMode","isSelected","iconColor","createElement","className","style","contentWrapper","checkIcon","iconName","backgroundColor","size","faSize","wrapperSize","iconWrapper","icon","iconText","SelectIcon","props","dataName","ariaLabel","onClick","contentView","styleButton","classnames","defaultStyle","selected","handleOnClick","useCallback","IconButton","type","propTypes","process","env","NODE_ENV","PropTypes","string","func","shape","oneOf","bool","_default","exports"],"sources":["../../../src/atom/select-icon/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport FaIcon from '../icon';\n\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nconst ICON_COLOR = COLORS.cm_primary_blue;\nconst BACKGROUND_COLOR = COLORS.white;\nconst CHECK_ICON_NAME_MAP = {\n single: 'circle-check',\n multi: 'square-check'\n};\n\nconst getButtonContent = (faIcon, options = {}) => {\n const {selectionMode = 'single', isSelected = false, iconColor = ICON_COLOR} = options;\n\n return (\n <div className={style.contentWrapper}>\n {isSelected ? (\n /* checkbox icon */\n <div className={style.checkIcon}>\n <FaIcon\n iconName={CHECK_ICON_NAME_MAP[selectionMode]}\n iconColor={iconColor}\n backgroundColor={BACKGROUND_COLOR}\n size={{faSize: 16, wrapperSize: 16}}\n />\n </div>\n ) : null}\n {\n /* selection tick (L18) / icon */\n <div className={style.iconWrapper}>\n <div className={style.icon}>\n <FaIcon\n iconName={faIcon}\n iconColor={isSelected ? iconColor : ''}\n size={{faSize: 32, wrapperSize: 32}}\n />\n </div>\n <div className={style.iconText}>{faIcon}</div>\n </div>\n }\n </div>\n );\n};\n\nconst SelectIcon = props => {\n const {faIcon, 'data-name': dataName, 'aria-label': ariaLabel, onClick, options = {}} = props;\n\n const {isSelected = false} = options;\n\n const contentView = getButtonContent(faIcon, options);\n const styleButton = classnames(style.defaultStyle, isSelected && style.selected);\n const handleOnClick = useCallback(() => onClick(), [onClick]);\n\n const IconButton = useCallback(\n () => (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n data-name={dataName}\n data-testid={`button-${dataName}`}\n className={styleButton}\n onClick={handleOnClick}\n >\n {contentView}\n </button>\n ),\n [ariaLabel, contentView, dataName, handleOnClick, styleButton]\n );\n\n return <IconButton />;\n};\n\nSelectIcon.propTypes = {\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n faIcon: PropTypes.string,\n onClick: PropTypes.func,\n options: PropTypes.shape({\n selectionMode: PropTypes.oneOf(['single', 'multi']),\n isSelected: PropTypes.bool,\n iconColor: PropTypes.string\n })\n};\n\nexport default SelectIcon;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_classnames","_icon","_colors","_style","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ICON_COLOR","COLORS","cm_primary_blue","getButtonContent","faIcon","options","isSelected","iconColor","createElement","className","style","contentWrapper","iconWrapper","icon","iconName","size","faSize","wrapperSize","iconText","SelectIcon","props","dataName","ariaLabel","onClick","contentView","styleButton","classnames","defaultStyle","selected","handleOnClick","useCallback","IconButton","type","propTypes","process","env","NODE_ENV","PropTypes","string","func","shape","selectionMode","oneOf","bool","_default","exports"],"sources":["../../../src/atom/select-icon/index.js"],"sourcesContent":["import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport FaIcon from '../icon';\n\nimport {COLORS} from '../../variables/colors';\n// eslint-disable-next-line css-modules/no-unused-class\nimport style from './style.css';\n\nconst ICON_COLOR = COLORS.cm_primary_blue;\n// const BACKGROUND_COLOR = COLORS.white;\n// const CHECK_ICON_NAME_MAP = {\n// single: 'circle-check',\n// multi: 'square-check'\n// };\n\nconst getButtonContent = (faIcon, options = {}) => {\n const {\n // selectionMode = 'single',\n isSelected = false,\n iconColor = ICON_COLOR\n } = options;\n\n return (\n <div className={style.contentWrapper}>\n {/* {isSelected ? (\n <div className={style.checkIcon}>\n <FaIcon\n iconName={CHECK_ICON_NAME_MAP[selectionMode]}\n iconColor={iconColor}\n backgroundColor={BACKGROUND_COLOR}\n size={{faSize: 16, wrapperSize: 16}}\n />\n </div>\n ) : null} */}\n\n <div className={style.iconWrapper}>\n <div className={style.icon}>\n <FaIcon\n iconName={faIcon}\n iconColor={isSelected ? iconColor : ''}\n size={{faSize: 32, wrapperSize: 32}}\n />\n </div>\n <div className={style.iconText}>{faIcon}</div>\n </div>\n </div>\n );\n};\n\nconst SelectIcon = props => {\n const {faIcon, 'data-name': dataName, 'aria-label': ariaLabel, onClick, options = {}} = props;\n\n const {isSelected = false} = options;\n\n const contentView = getButtonContent(faIcon, options);\n const styleButton = classnames(style.defaultStyle, isSelected && style.selected);\n const handleOnClick = useCallback(() => onClick(), [onClick]);\n\n const IconButton = useCallback(\n () => (\n <button\n type=\"button\"\n aria-label={ariaLabel}\n data-name={dataName}\n data-testid={`button-${dataName}`}\n className={styleButton}\n onClick={handleOnClick}\n >\n {contentView}\n </button>\n ),\n [ariaLabel, contentView, dataName, handleOnClick, styleButton]\n );\n\n return <IconButton />;\n};\n\nSelectIcon.propTypes = {\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string,\n faIcon: PropTypes.string,\n onClick: PropTypes.func,\n options: PropTypes.shape({\n selectionMode: PropTypes.oneOf(['single', 'multi']),\n isSelected: PropTypes.bool,\n iconColor: PropTypes.string\n })\n};\n\nexport default SelectIcon;\n"],"mappings":"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","ignoreList":[]}
@@ -34,10 +34,10 @@ const IconPickerModal = (props, context) => {
34
34
  const {
35
35
  translate
36
36
  } = context;
37
- const [selectedIcon, setSelectedIcon] = (0, _react.useState)(null);
38
- const [displayedIcons, setDisplayedIcons] = (0, _react.useState)([]);
39
- const [currentIndex, setCurrentIndex] = (0, _react.useState)(0);
40
37
  const allIcons = (0, _react.useMemo)(() => (0, _pipe2.default)(_values2.default, (0, _map2.default)((0, _get2.default)('iconName')), _uniq2.default)(_proSolidSvgIcons.fas), []);
38
+ const [selectedIcon, setSelectedIcon] = (0, _react.useState)(null);
39
+ const [displayedIcons, setDisplayedIcons] = (0, _react.useState)((0, _slice2.default)(0, ICONS_PER_LOAD, allIcons));
40
+ const [currentIndex, setCurrentIndex] = (0, _react.useState)(ICONS_PER_LOAD);
41
41
  const {
42
42
  searchValue,
43
43
  searchResults,
@@ -51,6 +51,7 @@ const IconPickerModal = (props, context) => {
51
51
  onClose();
52
52
  }, [onClose]);
53
53
  const handleIconClick = (0, _react.useCallback)(iconName => () => {
54
+ console.log('in handleIconClick');
54
55
  setSelectedIcon(prevSelectedIcon => prevSelectedIcon === iconName ? null : iconName);
55
56
  }, []);
56
57
  const loadMoreIcons = (0, _react.useCallback)(() => {
@@ -64,6 +65,7 @@ const IconPickerModal = (props, context) => {
64
65
  setCurrentIndex(ICONS_PER_LOAD);
65
66
  }, [searchResults]);
66
67
  const handleScroll = (0, _react.useCallback)(event => {
68
+ console.log('in handleScroll --->', event.currentTarget);
67
69
  const {
68
70
  scrollTop,
69
71
  clientHeight,
@@ -74,9 +76,9 @@ const IconPickerModal = (props, context) => {
74
76
  }
75
77
  }, [loadMoreIcons]);
76
78
  const icons = (0, _react.useMemo)(() => (0, _pipe2.default)(_entries2.default, (0, _map2.default)(([index, iconName]) => /*#__PURE__*/_react.default.createElement(_selectIcon.default, {
77
- key: `icon-${index}`,
79
+ key: iconName,
78
80
  size: "responsive",
79
- "data-name": `icon-${index}`,
81
+ "data-name": iconName,
80
82
  "aria-label": iconName,
81
83
  faIcon: iconName,
82
84
  onClick: handleIconClick(iconName),
@@ -117,7 +119,7 @@ const IconPickerModal = (props, context) => {
117
119
  }
118
120
  }, /*#__PURE__*/_react.default.createElement("div", {
119
121
  className: _style.default.iconPicker
120
- }, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
122
+ }, /*#__PURE__*/_react.default.createElement("div", {
121
123
  className: _style.default.searchWrapper
122
124
  }, /*#__PURE__*/_react.default.createElement(_searchForm.default, {
123
125
  search: {
@@ -140,7 +142,7 @@ const IconPickerModal = (props, context) => {
140
142
  onClick: handleReset
141
143
  }, translate('empty_search_result_clear_search'))) : /*#__PURE__*/_react.default.createElement("div", {
142
144
  className: _style.default.iconsListWrapper
143
- }, icons))));
145
+ }, icons)));
144
146
  };
145
147
  IconPickerModal.contextTypes = {
146
148
  translate: _provider.default.childContextTypes.translate
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_proSolidSvgIcons","_baseModal","_selectIcon","_provider","_searchForm","_colors","_style","_useIconSearch","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ICONS_PER_LOAD","IconPickerModal","props","context","isOpen","onCancel","onConfirm","onClose","translate","selectedIcon","setSelectedIcon","useState","displayedIcons","setDisplayedIcons","currentIndex","setCurrentIndex","allIcons","useMemo","_pipe2","_values2","_map2","_get2","_uniq2","fas","searchValue","searchResults","handleSearch","handleReset","useIconSearch","handleCancel","useCallback","handleClose","handleIconClick","iconName","prevSelectedIcon","loadMoreIcons","nextIndex","newIcons","_slice2","prevIcons","useEffect","handleScroll","event","scrollTop","clientHeight","scrollHeight","currentTarget","icons","_entries2","index","createElement","key","size","faIcon","onClick","options","isSelected","footer","cancelButton","label","confirmButton","disabled","color","COLORS","cm_primary_blue","title","description","onScroll","headerIcon","name","backgroundColor","className","style","iconPicker","Fragment","searchWrapper","search","placeholder","value","onChange","onReset","dataTestId","_size2","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","iconsListWrapper","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","bool","func","_default","exports"],"sources":["../../../src/molecule/icon-picker-modal/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport {fas} from '@fortawesome/pro-solid-svg-icons';\nimport {entries, map, pipe, get, values, slice, size, uniq} from 'lodash/fp';\nimport BaseModal from '../base-modal';\nimport SelectIcon from '../../atom/select-icon';\nimport Provider from '../../atom/provider';\nimport SearchForm from '../search-form';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\nimport useIconSearch from './use-icon-search';\n\nconst ICONS_PER_LOAD = 48;\n\nconst IconPickerModal = (props, context) => {\n const {isOpen, onCancel, onConfirm, onClose} = props;\n const {translate} = context;\n\n const [selectedIcon, setSelectedIcon] = useState(null);\n const [displayedIcons, setDisplayedIcons] = useState([]);\n const [currentIndex, setCurrentIndex] = useState(0);\n\n const allIcons = useMemo(() => pipe(values, map(get('iconName')), uniq)(fas), []);\n const {searchValue, searchResults, handleSearch, handleReset} = useIconSearch(allIcons);\n\n const handleCancel = useCallback(() => {\n onCancel();\n }, [onCancel]);\n\n const handleClose = useCallback(() => {\n onClose();\n }, [onClose]);\n\n const handleIconClick = useCallback(\n iconName => () => {\n setSelectedIcon(prevSelectedIcon => (prevSelectedIcon === iconName ? null : iconName));\n },\n []\n );\n\n const loadMoreIcons = useCallback(() => {\n const nextIndex = currentIndex + ICONS_PER_LOAD;\n const newIcons = slice(currentIndex, nextIndex, searchResults);\n setDisplayedIcons(prevIcons => [...prevIcons, ...newIcons]);\n setCurrentIndex(nextIndex);\n }, [currentIndex, searchResults]);\n\n useEffect(() => {\n setDisplayedIcons(() => slice(0, ICONS_PER_LOAD, searchResults));\n setCurrentIndex(ICONS_PER_LOAD);\n }, [searchResults]);\n\n const handleScroll = useCallback(\n event => {\n const {scrollTop, clientHeight, scrollHeight} = event.currentTarget;\n if (scrollHeight - scrollTop <= clientHeight + 1) {\n loadMoreIcons();\n }\n },\n [loadMoreIcons]\n );\n\n const icons = useMemo(\n () =>\n pipe(\n entries,\n map(([index, iconName]) => (\n <SelectIcon\n key={`icon-${index}`}\n size=\"responsive\"\n data-name={`icon-${index}`}\n aria-label={iconName}\n faIcon={iconName}\n onClick={handleIconClick(iconName)}\n options={{isSelected: selectedIcon === iconName}}\n />\n ))\n )(displayedIcons),\n [displayedIcons, selectedIcon, handleIconClick]\n );\n\n const footer = useMemo(() => {\n return {\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel')\n },\n confirmButton: {\n onConfirm: () => {\n onConfirm(selectedIcon);\n setSelectedIcon(null);\n onClose();\n },\n label: translate('confirm'),\n iconName: 'plus',\n disabled: selectedIcon === null,\n color: COLORS.cm_primary_blue\n }\n };\n }, [handleCancel, onConfirm, onClose, translate, selectedIcon]);\n\n if (!isOpen) return null;\n\n return (\n <BaseModal\n title={translate('icon_picker_title')}\n description={translate('icon_picker_description')}\n isOpen={isOpen}\n onClose={handleClose}\n onScroll={handleScroll}\n footer={footer}\n headerIcon={{\n name: 'arrows-rotate',\n backgroundColor: '#D6E6FF'\n }}\n >\n <div className={style.iconPicker}>\n {\n <>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: handleSearch\n }}\n onReset={handleReset}\n dataTestId=\"search-input\"\n />\n </div>\n {searchValue && size(searchResults) === 0 ? (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n ) : (\n <div className={style.iconsListWrapper}>{icons}</div>\n )}\n </>\n }\n </div>\n </BaseModal>\n );\n};\n\nIconPickerModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nIconPickerModal.propTypes = {\n isOpen: PropTypes.bool,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default IconPickerModal;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_proSolidSvgIcons","_baseModal","_selectIcon","_provider","_searchForm","_colors","_style","_useIconSearch","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ICONS_PER_LOAD","IconPickerModal","props","context","isOpen","onCancel","onConfirm","onClose","translate","allIcons","useMemo","_pipe2","_values2","_map2","_get2","_uniq2","fas","selectedIcon","setSelectedIcon","useState","displayedIcons","setDisplayedIcons","_slice2","currentIndex","setCurrentIndex","searchValue","searchResults","handleSearch","handleReset","useIconSearch","handleCancel","useCallback","handleClose","handleIconClick","iconName","console","log","prevSelectedIcon","loadMoreIcons","nextIndex","newIcons","prevIcons","useEffect","handleScroll","event","currentTarget","scrollTop","clientHeight","scrollHeight","icons","_entries2","index","createElement","key","size","faIcon","onClick","options","isSelected","footer","cancelButton","label","confirmButton","disabled","color","COLORS","cm_primary_blue","title","description","onScroll","headerIcon","name","backgroundColor","className","style","iconPicker","searchWrapper","search","placeholder","value","onChange","onReset","dataTestId","_size2","emptySearchResultContainer","emptySearchResultTitle","emptySearchResultDescription","emptySearchResultClearSearch","iconsListWrapper","contextTypes","Provider","childContextTypes","propTypes","process","env","NODE_ENV","PropTypes","bool","func","_default","exports"],"sources":["../../../src/molecule/icon-picker-modal/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback, useEffect} from 'react';\nimport PropTypes from 'prop-types';\nimport {fas} from '@fortawesome/pro-solid-svg-icons';\nimport {entries, map, pipe, get, values, slice, size, uniq} from 'lodash/fp';\nimport BaseModal from '../base-modal';\nimport SelectIcon from '../../atom/select-icon';\nimport Provider from '../../atom/provider';\nimport SearchForm from '../search-form';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\nimport useIconSearch from './use-icon-search';\n\nconst ICONS_PER_LOAD = 48;\n\nconst IconPickerModal = (props, context) => {\n const {isOpen, onCancel, onConfirm, onClose} = props;\n const {translate} = context;\n\n const allIcons = useMemo(() => pipe(values, map(get('iconName')), uniq)(fas), []);\n\n const [selectedIcon, setSelectedIcon] = useState(null);\n const [displayedIcons, setDisplayedIcons] = useState(slice(0, ICONS_PER_LOAD, allIcons));\n const [currentIndex, setCurrentIndex] = useState(ICONS_PER_LOAD);\n\n const {searchValue, searchResults, handleSearch, handleReset} = useIconSearch(allIcons);\n\n const handleCancel = useCallback(() => {\n onCancel();\n }, [onCancel]);\n\n const handleClose = useCallback(() => {\n onClose();\n }, [onClose]);\n\n const handleIconClick = useCallback(\n iconName => () => {\n console.log('in handleIconClick');\n setSelectedIcon(prevSelectedIcon => (prevSelectedIcon === iconName ? null : iconName));\n },\n []\n );\n\n const loadMoreIcons = useCallback(() => {\n const nextIndex = currentIndex + ICONS_PER_LOAD;\n const newIcons = slice(currentIndex, nextIndex, searchResults);\n setDisplayedIcons(prevIcons => [...prevIcons, ...newIcons]);\n setCurrentIndex(nextIndex);\n }, [currentIndex, searchResults]);\n\n useEffect(() => {\n setDisplayedIcons(() => slice(0, ICONS_PER_LOAD, searchResults));\n setCurrentIndex(ICONS_PER_LOAD);\n }, [searchResults]);\n\n const handleScroll = useCallback(\n event => {\n console.log('in handleScroll --->', event.currentTarget);\n\n const {scrollTop, clientHeight, scrollHeight} = event.currentTarget;\n if (scrollHeight - scrollTop <= clientHeight + 1) {\n loadMoreIcons();\n }\n },\n [loadMoreIcons]\n );\n\n const icons = useMemo(\n () =>\n pipe(\n entries,\n map(([index, iconName]) => (\n <SelectIcon\n key={iconName}\n size=\"responsive\"\n data-name={iconName}\n aria-label={iconName}\n faIcon={iconName}\n onClick={handleIconClick(iconName)}\n options={{isSelected: selectedIcon === iconName}}\n />\n ))\n )(displayedIcons),\n [displayedIcons, selectedIcon, handleIconClick]\n );\n\n const footer = useMemo(() => {\n return {\n cancelButton: {\n onCancel: handleCancel,\n label: translate('cancel')\n },\n confirmButton: {\n onConfirm: () => {\n onConfirm(selectedIcon);\n setSelectedIcon(null);\n onClose();\n },\n label: translate('confirm'),\n iconName: 'plus',\n disabled: selectedIcon === null,\n color: COLORS.cm_primary_blue\n }\n };\n }, [handleCancel, onConfirm, onClose, translate, selectedIcon]);\n\n if (!isOpen) return null;\n\n return (\n <BaseModal\n title={translate('icon_picker_title')}\n description={translate('icon_picker_description')}\n isOpen={isOpen}\n onClose={handleClose}\n onScroll={handleScroll}\n footer={footer}\n headerIcon={{\n name: 'arrows-rotate',\n backgroundColor: '#D6E6FF'\n }}\n >\n <div className={style.iconPicker}>\n <div className={style.searchWrapper}>\n <SearchForm\n search={{\n placeholder: translate('search_place_holder'),\n value: searchValue,\n onChange: handleSearch\n }}\n onReset={handleReset}\n dataTestId=\"search-input\"\n />\n </div>\n {searchValue && size(searchResults) === 0 ? (\n <div className={style.emptySearchResultContainer}>\n <div className={style.emptySearchResultTitle}>\n {translate('empty_search_result_title', {searchValue})}\n </div>\n <div className={style.emptySearchResultDescription}>\n {translate('empty_search_result_description')}\n </div>\n <div className={style.emptySearchResultClearSearch} onClick={handleReset}>\n {translate('empty_search_result_clear_search')}\n </div>\n </div>\n ) : (\n <div className={style.iconsListWrapper}>{icons}</div>\n )}\n </div>\n </BaseModal>\n );\n};\n\nIconPickerModal.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nIconPickerModal.propTypes = {\n isOpen: PropTypes.bool,\n onCancel: PropTypes.func,\n onConfirm: PropTypes.func,\n onClose: PropTypes.func\n};\n\nexport default IconPickerModal;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,68 @@
1
+ import React from 'react';
2
+ import { QuickFiltersProps } from './types';
3
+ export declare const handleScroll: (direction: number, listRef: React.RefObject<HTMLDivElement>) => void;
4
+ declare const QuickFilters: {
5
+ ({ primaryOption, filterOptions, filterButton, nextFilterAriaLabel, previousFilterAriaLabel, filterOptionsAriaLabel }: QuickFiltersProps): JSX.Element;
6
+ propTypes: {
7
+ primaryOption: import("prop-types").Requireable<import("prop-types").InferProps<{
8
+ defaultLabel: import("prop-types").Requireable<string>;
9
+ defaultValue: import("prop-types").Requireable<string>;
10
+ defaultIconName: import("prop-types").Requireable<string>;
11
+ defaultSelected: import("prop-types").Requireable<boolean>;
12
+ defaultAriaLabel: import("prop-types").Requireable<string>;
13
+ onDefaultClick: import("prop-types").Requireable<(...args: any[]) => any>;
14
+ }>>;
15
+ nextFilterAriaLabel: import("prop-types").Requireable<string>;
16
+ previousFilterAriaLabel: import("prop-types").Requireable<string>;
17
+ filterOptionsAriaLabel: import("prop-types").Requireable<string>;
18
+ filterOptions: import("prop-types").Requireable<(import("prop-types").InferProps<{
19
+ iconName: import("prop-types").Requireable<string>;
20
+ label: import("prop-types").Requireable<string>;
21
+ value: import("prop-types").Requireable<string>;
22
+ onClick: import("prop-types").Requireable<(...args: any[]) => any>;
23
+ selected: import("prop-types").Requireable<boolean>;
24
+ ariaLabel: import("prop-types").Requireable<string>;
25
+ }> | null | undefined)[]>;
26
+ filterButton: import("prop-types").Requireable<import("prop-types").InferProps<{
27
+ type: import("prop-types").Requireable<string>;
28
+ usage: import("prop-types").Requireable<string>;
29
+ label: import("prop-types").Requireable<string>;
30
+ content: import("prop-types").Requireable<import("prop-types").ReactNodeLike>;
31
+ 'aria-label': import("prop-types").Requireable<string>;
32
+ tooltipText: import("prop-types").Requireable<string>;
33
+ tooltipPlacement: import("prop-types").Requireable<string>;
34
+ 'data-name': import("prop-types").Requireable<string>;
35
+ 'data-testid': import("prop-types").Requireable<string>;
36
+ icon: import("prop-types").Requireable<import("prop-types").InferProps<{
37
+ position: import("prop-types").Requireable<string>;
38
+ type: import("prop-types").Requireable<string>;
39
+ faIcon: import("prop-types").Requireable<import("prop-types").InferProps<{
40
+ name: import("prop-types").Validator<string>;
41
+ color: import("prop-types").Requireable<string>;
42
+ backgroundColor: import("prop-types").Requireable<string>;
43
+ size: import("prop-types").Requireable<number>;
44
+ customStyle: import("prop-types").Requireable<{
45
+ [x: string]: NonNullable<string | number | null | undefined> | null | undefined;
46
+ }>;
47
+ }>>;
48
+ }>>;
49
+ onClick: import("prop-types").Requireable<(...args: any[]) => any>;
50
+ link: import("prop-types").Requireable<import("prop-types").InferProps<{
51
+ href: import("prop-types").Requireable<string>;
52
+ download: import("prop-types").Requireable<boolean>;
53
+ target: import("prop-types").Requireable<string>;
54
+ }>>;
55
+ hoverBackgroundColor: import("prop-types").Requireable<string>;
56
+ hoverColor: import("prop-types").Requireable<string>;
57
+ disabled: import("prop-types").Requireable<boolean>;
58
+ className: import("prop-types").Requireable<string>;
59
+ customStyle: import("prop-types").Requireable<{
60
+ [x: string]: NonNullable<string | number | null | undefined> | null | undefined;
61
+ }>;
62
+ useTitle: import("prop-types").Requireable<boolean>;
63
+ customLabelClassName: import("prop-types").Requireable<string>;
64
+ }>>;
65
+ };
66
+ };
67
+ export default QuickFilters;
68
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/quick-filters/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAO5D,OAAO,EAAC,iBAAiB,EAAY,MAAM,SAAS,CAAC;AAIrD,eAAO,MAAM,YAAY,cAAe,MAAM,WAAW,MAAM,SAAS,CAAC,cAAc,CAAC,SAOvF,CAAC;AA0BF,QAAA,MAAM,YAAY;2HAOf,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8GnB,CAAC;AAGF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.handleScroll = exports.default = void 0;
5
+ var _react = _interopRequireWildcard(require("react"));
6
+ var _classnames = _interopRequireDefault(require("classnames"));
7
+ var _icon = _interopRequireDefault(require("../../atom/icon"));
8
+ var _colors = require("../../variables/colors");
9
+ var _buttonLink = _interopRequireDefault(require("../../atom/button-link"));
10
+ var _style = _interopRequireDefault(require("./style.css"));
11
+ var _types = require("./types");
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
16
+ const SCROLL_RIGHT_SIZE = 380;
17
+ const SCROLL_LEFT_SIZE = -380;
18
+ const handleScroll = (direction, listRef) => {
19
+ if (listRef.current) {
20
+ listRef.current.scrollBy({
21
+ left: direction,
22
+ behavior: 'smooth'
23
+ });
24
+ }
25
+ };
26
+ exports.handleScroll = handleScroll;
27
+ const getFilterButton = filterButtonProps => {
28
+ if (!filterButtonProps) return null;
29
+ const {
30
+ tag
31
+ } = filterButtonProps;
32
+ return /*#__PURE__*/_react.default.createElement("div", {
33
+ className: tag ? _style.default.filterButtonWrapper : ''
34
+ }, /*#__PURE__*/_react.default.createElement("div", {
35
+ className: _style.default.filterButton
36
+ }, /*#__PURE__*/_react.default.createElement(_buttonLink.default, _extends({}, filterButtonProps, {
37
+ icon: {
38
+ position: 'left',
39
+ faIcon: {
40
+ name: 'sliders',
41
+ size: 14,
42
+ color: tag ? _colors.COLORS.cm_grey_700 : _colors.COLORS.neutral_500
43
+ }
44
+ },
45
+ "data-testid": "open-filters-modal-button",
46
+ customStyle: {
47
+ borderRadius: '12px'
48
+ }
49
+ }))));
50
+ };
51
+ const QuickFilters = ({
52
+ primaryOption,
53
+ filterOptions,
54
+ filterButton,
55
+ nextFilterAriaLabel,
56
+ previousFilterAriaLabel,
57
+ filterOptionsAriaLabel
58
+ }) => {
59
+ const {
60
+ defaultLabel,
61
+ defaultIconName,
62
+ defaultSelected,
63
+ defaultAriaLabel,
64
+ onDefaultClick
65
+ } = primaryOption;
66
+ const filtersListRef = _react.default.useRef(null);
67
+ const rightBtnRef = (0, _react.useRef)(null);
68
+ const leftBtnRef = (0, _react.useRef)(null);
69
+ const handleScrollRight = (0, _react.useCallback)(() => {
70
+ handleScroll(SCROLL_RIGHT_SIZE, filtersListRef);
71
+ }, [filtersListRef]);
72
+ const handleScrollLeft = (0, _react.useCallback)(() => {
73
+ handleScroll(SCROLL_LEFT_SIZE, filtersListRef);
74
+ }, [filtersListRef]);
75
+ (0, _react.useEffect)(() => {
76
+ const list = filtersListRef.current;
77
+ const rightButton = rightBtnRef.current;
78
+ const leftButton = leftBtnRef.current;
79
+ /* istanbul ignore next */ // not testable without complex mocking useRef
80
+ if (!list || !leftButton || !rightButton) return;
81
+ const update = () => {
82
+ const rightArrowWidth = rightButton.offsetWidth;
83
+ rightButton.style.visibility = list.scrollLeft + list.clientWidth < list.scrollWidth - rightArrowWidth ? 'visible' : 'hidden';
84
+ leftButton.style.visibility = list.scrollLeft > 0 ? 'visible' : 'hidden';
85
+ leftButton.style.display = list.scrollLeft > 0 ? 'flex' : 'none';
86
+ };
87
+ list.addEventListener('scroll', update);
88
+ window.addEventListener('resize', update);
89
+ update();
90
+ return () => {
91
+ list.removeEventListener('scroll', update);
92
+ window.removeEventListener('resize', update);
93
+ };
94
+ }, [filterOptions]);
95
+ return /*#__PURE__*/_react.default.createElement("div", {
96
+ className: _style.default.filtersMainContainer
97
+ }, /*#__PURE__*/_react.default.createElement("div", {
98
+ className: _style.default.leftArrowButton,
99
+ ref: leftBtnRef,
100
+ style: {
101
+ visibility: 'hidden'
102
+ }
103
+ }, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
104
+ icon: {
105
+ position: 'left',
106
+ faIcon: {
107
+ name: 'arrow-left',
108
+ size: 15
109
+ }
110
+ },
111
+ onClick: handleScrollLeft,
112
+ customStyle: {
113
+ height: '36px'
114
+ },
115
+ "data-testid": "scroll-left-button",
116
+ "aria-label": previousFilterAriaLabel
117
+ })), /*#__PURE__*/_react.default.createElement("div", {
118
+ className: _style.default.filtersList,
119
+ ref: filtersListRef,
120
+ "data-testid": "filters-options-list",
121
+ "aria-label": filterOptionsAriaLabel
122
+ }, /*#__PURE__*/_react.default.createElement("div", {
123
+ "data-testid": "all-option",
124
+ className: (0, _classnames.default)(_style.default.defaultOption, defaultSelected && _style.default.filterSelected),
125
+ onClick: onDefaultClick
126
+ }, /*#__PURE__*/_react.default.createElement(_icon.default, {
127
+ iconName: defaultIconName,
128
+ size: {
129
+ faSize: 20,
130
+ wrapperSize: 20
131
+ },
132
+ iconColor: defaultSelected ? _colors.COLORS.cm_grey_700 : _colors.COLORS.neutral_500,
133
+ "aria-label": defaultAriaLabel
134
+ }), /*#__PURE__*/_react.default.createElement("span", {
135
+ className: _style.default.filterLabel
136
+ }, defaultLabel)), /*#__PURE__*/_react.default.createElement("div", {
137
+ className: _style.default.filterSeparator
138
+ }), /*#__PURE__*/_react.default.createElement("div", {
139
+ className: _style.default.filtersContainer
140
+ }, filterOptions.map((filterOption, idx) => {
141
+ const {
142
+ iconName,
143
+ label,
144
+ selected,
145
+ value,
146
+ onClick,
147
+ ariaLabel
148
+ } = filterOption;
149
+ return /*#__PURE__*/_react.default.createElement("div", {
150
+ key: idx,
151
+ className: (0, _classnames.default)(_style.default.filterOption, selected && _style.default.filterSelected),
152
+ "data-testid": `filter-${value}-${idx}`,
153
+ onClick: onClick
154
+ }, /*#__PURE__*/_react.default.createElement(_icon.default, {
155
+ iconName: iconName,
156
+ iconColor: selected ? _colors.COLORS.cm_grey_700 : _colors.COLORS.neutral_500,
157
+ size: {
158
+ faSize: 20,
159
+ wrapperSize: 20
160
+ },
161
+ "aria-label": ariaLabel
162
+ }), /*#__PURE__*/_react.default.createElement("span", null, label));
163
+ }), /*#__PURE__*/_react.default.createElement("div", {
164
+ className: _style.default.rightArrowButton,
165
+ ref: rightBtnRef,
166
+ style: {
167
+ visibility: 'hidden'
168
+ }
169
+ }, /*#__PURE__*/_react.default.createElement(_buttonLink.default, {
170
+ icon: {
171
+ position: 'left',
172
+ faIcon: {
173
+ name: 'arrow-right',
174
+ size: 15
175
+ }
176
+ },
177
+ onClick: handleScrollRight,
178
+ customStyle: {
179
+ height: '36px'
180
+ },
181
+ "data-testid": "scroll-right-button",
182
+ "aria-label": nextFilterAriaLabel
183
+ })))), getFilterButton(filterButton));
184
+ };
185
+ QuickFilters.propTypes = process.env.NODE_ENV !== "production" ? _types.propTypes : {};
186
+ var _default = exports.default = QuickFilters;
187
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_icon","_colors","_buttonLink","_style","_types","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","SCROLL_RIGHT_SIZE","SCROLL_LEFT_SIZE","handleScroll","direction","listRef","current","scrollBy","left","behavior","exports","getFilterButton","filterButtonProps","tag","createElement","className","style","filterButtonWrapper","filterButton","icon","position","faIcon","name","size","color","COLORS","cm_grey_700","neutral_500","customStyle","borderRadius","QuickFilters","primaryOption","filterOptions","nextFilterAriaLabel","previousFilterAriaLabel","filterOptionsAriaLabel","defaultLabel","defaultIconName","defaultSelected","defaultAriaLabel","onDefaultClick","filtersListRef","React","useRef","rightBtnRef","leftBtnRef","handleScrollRight","useCallback","handleScrollLeft","useEffect","list","rightButton","leftButton","update","rightArrowWidth","offsetWidth","visibility","scrollLeft","clientWidth","scrollWidth","display","addEventListener","window","removeEventListener","filtersMainContainer","leftArrowButton","ref","onClick","height","filtersList","classNames","defaultOption","filterSelected","iconName","faSize","wrapperSize","iconColor","filterLabel","filterSeparator","filtersContainer","map","filterOption","idx","label","selected","value","ariaLabel","key","rightArrowButton","propTypes","process","env","NODE_ENV","_default"],"sources":["../../../src/molecule/quick-filters/index.tsx"],"sourcesContent":["import React, {useCallback, useRef, useEffect} from 'react';\nimport classNames from 'classnames';\nimport FaIcon from '../../atom/icon';\nimport {COLORS} from '../../variables/colors';\nimport ButtonLink from '../../atom/button-link';\nimport {ButtonLinkProps} from '../../atom/button-link/types';\nimport style from './style.css';\nimport {QuickFiltersProps, propTypes} from './types';\n\nconst SCROLL_RIGHT_SIZE = 380;\nconst SCROLL_LEFT_SIZE = -380;\nexport const handleScroll = (direction: number, listRef: React.RefObject<HTMLDivElement>) => {\n if (listRef.current) {\n listRef.current.scrollBy({\n left: direction,\n behavior: 'smooth'\n });\n }\n};\n\nconst getFilterButton = (filterButtonProps: ButtonLinkProps | undefined) => {\n if (!filterButtonProps) return null;\n const {tag} = filterButtonProps;\n return (\n <div className={tag ? style.filterButtonWrapper : ''}>\n <div className={style.filterButton}>\n <ButtonLink\n {...filterButtonProps}\n icon={{\n position: 'left',\n faIcon: {\n name: 'sliders',\n size: 14,\n color: tag ? COLORS.cm_grey_700 : COLORS.neutral_500\n }\n }}\n data-testid=\"open-filters-modal-button\"\n customStyle={{borderRadius: '12px'}}\n />\n </div>\n </div>\n );\n};\n\nconst QuickFilters = ({\n primaryOption,\n filterOptions,\n filterButton,\n nextFilterAriaLabel,\n previousFilterAriaLabel,\n filterOptionsAriaLabel\n}: QuickFiltersProps) => {\n const {defaultLabel, defaultIconName, defaultSelected, defaultAriaLabel, onDefaultClick} =\n primaryOption;\n const filtersListRef = React.useRef<HTMLDivElement>(null);\n const rightBtnRef = useRef<HTMLDivElement>(null);\n const leftBtnRef = useRef<HTMLDivElement>(null);\n\n const handleScrollRight = useCallback(() => {\n handleScroll(SCROLL_RIGHT_SIZE, filtersListRef);\n }, [filtersListRef]);\n const handleScrollLeft = useCallback(() => {\n handleScroll(SCROLL_LEFT_SIZE, filtersListRef);\n }, [filtersListRef]);\n useEffect(() => {\n const list = filtersListRef.current;\n const rightButton = rightBtnRef.current;\n const leftButton = leftBtnRef.current;\n /* istanbul ignore next */ // not testable without complex mocking useRef\n if (!list || !leftButton || !rightButton) return;\n\n const update = () => {\n const rightArrowWidth = rightButton.offsetWidth;\n rightButton.style.visibility =\n list.scrollLeft + list.clientWidth < list.scrollWidth - rightArrowWidth\n ? 'visible'\n : 'hidden';\n leftButton.style.visibility = list.scrollLeft > 0 ? 'visible' : 'hidden';\n leftButton.style.display = list.scrollLeft > 0 ? 'flex' : 'none';\n };\n\n list.addEventListener('scroll', update);\n window.addEventListener('resize', update);\n update();\n return () => {\n list.removeEventListener('scroll', update);\n window.removeEventListener('resize', update);\n };\n }, [filterOptions]);\n\n return (\n <div className={style.filtersMainContainer}>\n <div className={style.leftArrowButton} ref={leftBtnRef} style={{visibility: 'hidden'}}>\n <ButtonLink\n icon={{position: 'left', faIcon: {name: 'arrow-left', size: 15}}}\n onClick={handleScrollLeft}\n customStyle={{height: '36px'}}\n data-testid=\"scroll-left-button\"\n aria-label={previousFilterAriaLabel}\n />\n </div>\n <div\n className={style.filtersList}\n ref={filtersListRef}\n data-testid=\"filters-options-list\"\n aria-label={filterOptionsAriaLabel}\n >\n <div\n data-testid=\"all-option\"\n className={classNames(style.defaultOption, defaultSelected && style.filterSelected)}\n onClick={onDefaultClick}\n >\n <FaIcon\n iconName={defaultIconName}\n size={{faSize: 20, wrapperSize: 20}}\n iconColor={defaultSelected ? COLORS.cm_grey_700 : COLORS.neutral_500}\n aria-label={defaultAriaLabel}\n />\n <span className={style.filterLabel}>{defaultLabel}</span>\n </div>\n <div className={style.filterSeparator} />\n <div className={style.filtersContainer}>\n {filterOptions.map((filterOption, idx) => {\n const {iconName, label, selected, value, onClick, ariaLabel} = filterOption;\n return (\n <div\n key={idx}\n className={classNames(style.filterOption, selected && style.filterSelected)}\n data-testid={`filter-${value}-${idx}`}\n onClick={onClick}\n >\n <FaIcon\n iconName={iconName}\n iconColor={selected ? COLORS.cm_grey_700 : COLORS.neutral_500}\n size={{faSize: 20, wrapperSize: 20}}\n aria-label={ariaLabel}\n />\n <span>{label}</span>\n </div>\n );\n })}\n <div className={style.rightArrowButton} ref={rightBtnRef} style={{visibility: 'hidden'}}>\n <ButtonLink\n icon={{\n position: 'left',\n faIcon: {\n name: 'arrow-right',\n size: 15\n }\n }}\n onClick={handleScrollRight}\n customStyle={{height: '36px'}}\n data-testid=\"scroll-right-button\"\n aria-label={nextFilterAriaLabel}\n />\n </div>\n </div>\n </div>\n {getFilterButton(filterButton)}\n </div>\n );\n};\n\nQuickFilters.propTypes = propTypes;\nexport default QuickFilters;\n"],"mappings":"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","ignoreList":[]}