@coorpacademy/components 11.40.13 → 11.40.14-alpha.11

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 (129) hide show
  1. package/es/atom/checkbox-with-title/index.d.ts +24 -1
  2. package/es/atom/checkbox-with-title/index.d.ts.map +1 -1
  3. package/es/atom/checkbox-with-title/index.js +16 -2
  4. package/es/atom/checkbox-with-title/index.js.map +1 -1
  5. package/es/atom/chip/index.d.ts.map +1 -1
  6. package/es/atom/chip/index.js +4 -4
  7. package/es/atom/chip/index.js.map +1 -1
  8. package/es/atom/input-switch/index.d.ts +24 -1
  9. package/es/atom/input-switch/index.d.ts.map +1 -1
  10. package/es/atom/input-switch/index.js +16 -2
  11. package/es/atom/input-switch/index.js.map +1 -1
  12. package/es/atom/range/index.d.ts +33 -3
  13. package/es/atom/range/index.d.ts.map +1 -1
  14. package/es/atom/range/index.js +88 -20
  15. package/es/atom/range/index.js.map +1 -1
  16. package/es/atom/range/style.css +38 -0
  17. package/es/molecule/multi-filter-panel/index.d.ts +41 -0
  18. package/es/molecule/multi-filter-panel/index.d.ts.map +1 -1
  19. package/es/molecule/multi-filter-panel/index.js +28 -13
  20. package/es/molecule/multi-filter-panel/index.js.map +1 -1
  21. package/es/molecule/multi-filter-panel/prop-types.d.ts +31 -5
  22. package/es/molecule/multi-filter-panel/prop-types.d.ts.map +1 -1
  23. package/es/molecule/multi-filter-panel/prop-types.js +4 -0
  24. package/es/molecule/multi-filter-panel/prop-types.js.map +1 -1
  25. package/es/molecule/questions/question-range/index.d.ts +4 -1
  26. package/es/molecule/quick-filters/index.js +3 -1
  27. package/es/molecule/quick-filters/index.js.map +1 -1
  28. package/es/molecule/quick-filters/style.css +2 -0
  29. package/es/organism/content-skill-modal/index.d.ts +20 -0
  30. package/es/organism/content-skill-modal/index.d.ts.map +1 -1
  31. package/es/organism/content-skill-modal/types.d.ts +20 -0
  32. package/es/organism/content-skill-modal/types.d.ts.map +1 -1
  33. package/es/organism/filter-checkbox-and-search/index.d.ts +21 -0
  34. package/es/organism/filter-checkbox-and-search/index.d.ts.map +1 -1
  35. package/es/organism/filter-checkbox-and-search/index.js +13 -2
  36. package/es/organism/filter-checkbox-and-search/index.js.map +1 -1
  37. package/es/organism/filter-chip/index.d.ts +21 -0
  38. package/es/organism/filter-chip/index.d.ts.map +1 -1
  39. package/es/organism/filter-chip/index.js +14 -2
  40. package/es/organism/filter-chip/index.js.map +1 -1
  41. package/es/organism/filter-range/index.d.ts +28 -0
  42. package/es/organism/filter-range/index.d.ts.map +1 -0
  43. package/es/organism/filter-range/index.js +89 -0
  44. package/es/organism/filter-range/index.js.map +1 -0
  45. package/es/organism/filter-range/prop-types.d.ts +38 -0
  46. package/es/organism/filter-range/prop-types.d.ts.map +1 -0
  47. package/es/organism/filter-range/prop-types.js +20 -0
  48. package/es/organism/filter-range/prop-types.js.map +1 -0
  49. package/es/organism/filter-range/style.css +15 -0
  50. package/es/organism/filter-switch/index.d.ts +22 -0
  51. package/es/organism/filter-switch/index.d.ts.map +1 -1
  52. package/es/organism/filter-switch/index.js +18 -3
  53. package/es/organism/filter-switch/index.js.map +1 -1
  54. package/es/organism/filter-switch/prop-types.d.ts +2 -0
  55. package/es/organism/filter-switch/prop-types.d.ts.map +1 -1
  56. package/es/organism/filter-switch/prop-types.js +2 -1
  57. package/es/organism/filter-switch/prop-types.js.map +1 -1
  58. package/es/template/back-office/brand-update/index.d.ts +20 -0
  59. package/es/template/common/search-page/index.d.ts +36 -0
  60. package/es/template/common/search-page/index.d.ts.map +1 -1
  61. package/es/template/common/search-page/index.js +45 -6
  62. package/es/template/common/search-page/index.js.map +1 -1
  63. package/es/template/common/search-page/style.css +27 -1
  64. package/es/variables/colors.css +1 -0
  65. package/lib/atom/checkbox-with-title/index.d.ts +24 -1
  66. package/lib/atom/checkbox-with-title/index.d.ts.map +1 -1
  67. package/lib/atom/checkbox-with-title/index.js +16 -2
  68. package/lib/atom/checkbox-with-title/index.js.map +1 -1
  69. package/lib/atom/chip/index.d.ts.map +1 -1
  70. package/lib/atom/chip/index.js +4 -4
  71. package/lib/atom/chip/index.js.map +1 -1
  72. package/lib/atom/input-switch/index.d.ts +24 -1
  73. package/lib/atom/input-switch/index.d.ts.map +1 -1
  74. package/lib/atom/input-switch/index.js +16 -2
  75. package/lib/atom/input-switch/index.js.map +1 -1
  76. package/lib/atom/range/index.d.ts +33 -3
  77. package/lib/atom/range/index.d.ts.map +1 -1
  78. package/lib/atom/range/index.js +88 -20
  79. package/lib/atom/range/index.js.map +1 -1
  80. package/lib/atom/range/style.css +38 -0
  81. package/lib/molecule/multi-filter-panel/index.d.ts +41 -0
  82. package/lib/molecule/multi-filter-panel/index.d.ts.map +1 -1
  83. package/lib/molecule/multi-filter-panel/index.js +28 -13
  84. package/lib/molecule/multi-filter-panel/index.js.map +1 -1
  85. package/lib/molecule/multi-filter-panel/prop-types.d.ts +31 -5
  86. package/lib/molecule/multi-filter-panel/prop-types.d.ts.map +1 -1
  87. package/lib/molecule/multi-filter-panel/prop-types.js +4 -0
  88. package/lib/molecule/multi-filter-panel/prop-types.js.map +1 -1
  89. package/lib/molecule/questions/question-range/index.d.ts +4 -1
  90. package/lib/molecule/quick-filters/index.js +3 -1
  91. package/lib/molecule/quick-filters/index.js.map +1 -1
  92. package/lib/molecule/quick-filters/style.css +2 -0
  93. package/lib/organism/content-skill-modal/index.d.ts +20 -0
  94. package/lib/organism/content-skill-modal/index.d.ts.map +1 -1
  95. package/lib/organism/content-skill-modal/types.d.ts +20 -0
  96. package/lib/organism/content-skill-modal/types.d.ts.map +1 -1
  97. package/lib/organism/filter-checkbox-and-search/index.d.ts +21 -0
  98. package/lib/organism/filter-checkbox-and-search/index.d.ts.map +1 -1
  99. package/lib/organism/filter-checkbox-and-search/index.js +13 -2
  100. package/lib/organism/filter-checkbox-and-search/index.js.map +1 -1
  101. package/lib/organism/filter-chip/index.d.ts +21 -0
  102. package/lib/organism/filter-chip/index.d.ts.map +1 -1
  103. package/lib/organism/filter-chip/index.js +14 -2
  104. package/lib/organism/filter-chip/index.js.map +1 -1
  105. package/lib/organism/filter-range/index.d.ts +28 -0
  106. package/lib/organism/filter-range/index.d.ts.map +1 -0
  107. package/lib/organism/filter-range/index.js +96 -0
  108. package/lib/organism/filter-range/index.js.map +1 -0
  109. package/lib/organism/filter-range/prop-types.d.ts +38 -0
  110. package/lib/organism/filter-range/prop-types.d.ts.map +1 -0
  111. package/lib/organism/filter-range/prop-types.js +25 -0
  112. package/lib/organism/filter-range/prop-types.js.map +1 -0
  113. package/lib/organism/filter-range/style.css +15 -0
  114. package/lib/organism/filter-switch/index.d.ts +22 -0
  115. package/lib/organism/filter-switch/index.d.ts.map +1 -1
  116. package/lib/organism/filter-switch/index.js +18 -3
  117. package/lib/organism/filter-switch/index.js.map +1 -1
  118. package/lib/organism/filter-switch/prop-types.d.ts +2 -0
  119. package/lib/organism/filter-switch/prop-types.d.ts.map +1 -1
  120. package/lib/organism/filter-switch/prop-types.js +2 -1
  121. package/lib/organism/filter-switch/prop-types.js.map +1 -1
  122. package/lib/template/back-office/brand-update/index.d.ts +20 -0
  123. package/lib/template/common/search-page/index.d.ts +36 -0
  124. package/lib/template/common/search-page/index.d.ts.map +1 -1
  125. package/lib/template/common/search-page/index.js +45 -6
  126. package/lib/template/common/search-page/index.js.map +1 -1
  127. package/lib/template/common/search-page/style.css +27 -1
  128. package/lib/variables/colors.css +1 -0
  129. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","Handle","style","valueOnTrack","track","x","left","right","getBoundingClientRect","_clamp","extractStateFromProps","props","multi","value","RenderHandles","pending","onHandleMinChange","onHandleMinChangeEnd","onHandleMaxChange","onHandleMaxChangeEnd","HammerForTestingMin","HammerForTestingMax","createElement","className","handle","animatedHandle","axis","onPan","onPanEnd","HammerForTesting","propTypes","process","env","NODE_ENV","number","bool","func","Range","Component","getDerivedStateFromProps","state","constructor","context","handleClick","bind","setRefTrack","handleMinChange","handleMaxChange","handleMinChangeEnd","handleMaxChangeEnd","e","srcEvent","stopPropagation","preventDefault","newValue","center","handleChange","valueIndex","prevValue","_set","minValue","maxValue","nextValue","triggerChange","setState","newValues","onChange","_noop","onChangeEnd","clientX","isClickToTheLeft","closestHandle","Math","abs","render","railWidth","railLeft","railStyle","backgroundColor","width","containerWrapper","onClick","container","ref","rail","animatedRail","oneOfType","arrayOf"],"sources":["../../../src/atom/range/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {noop, set, clamp} from 'lodash/fp';\nimport Handle from './handle';\nimport style from './style.css';\n\nconst valueOnTrack = (track, x) => {\n const {left, right} = track.getBoundingClientRect();\n return clamp(0, 1, (x - left) / (right - left));\n};\n\nconst extractStateFromProps = props => {\n const {multi = false, value = multi ? [0, 1] : 0} = props;\n return {\n multi,\n value: multi ? value : [0, value]\n };\n};\n\nconst RenderHandles = props => {\n const {\n left,\n right,\n multi = false,\n pending,\n onHandleMinChange,\n onHandleMinChangeEnd,\n onHandleMaxChange,\n onHandleMaxChangeEnd,\n HammerForTestingMin,\n HammerForTestingMax\n } = props;\n\n return (\n <div data-testid=\"handles\">\n {multi ? (\n <span\n className={pending ? style.handle : style.animatedHandle}\n style={{left: `${left * 100}%`}}\n >\n <Handle\n axis=\"x\"\n onPan={onHandleMinChange}\n onPanEnd={onHandleMinChangeEnd}\n HammerForTesting={HammerForTestingMin}\n />\n </span>\n ) : null}\n <span\n className={pending ? style.handle : style.animatedHandle}\n style={{left: `${right * 100}%`}}\n >\n <Handle\n axis=\"x\"\n onPan={onHandleMaxChange}\n onPanEnd={onHandleMaxChangeEnd}\n HammerForTesting={HammerForTestingMax}\n />\n </span>\n </div>\n );\n};\n\nRenderHandles.propTypes = {\n left: PropTypes.number,\n right: PropTypes.number,\n multi: PropTypes.bool,\n pending: PropTypes.bool,\n onHandleMinChange: PropTypes.func,\n onHandleMinChangeEnd: PropTypes.func,\n onHandleMaxChange: PropTypes.func,\n onHandleMaxChangeEnd: PropTypes.func,\n HammerForTestingMin: Handle.propTypes.HammerForTesting,\n HammerForTestingMax: Handle.propTypes.HammerForTesting\n};\n\nclass Range extends React.Component {\n static propTypes = {\n onChange: PropTypes.func,\n onChangeEnd: PropTypes.func,\n multi: PropTypes.bool,\n HammerForTestingMin: RenderHandles.propTypes.HammerForTestingMin,\n HammerForTestingMax: RenderHandles.propTypes.HammerForTestingMax,\n // eslint-disable-next-line react/no-unused-prop-types\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)])\n };\n\n static getDerivedStateFromProps(props, state) {\n const {pending} = state;\n\n if (pending) return null;\n\n return extractStateFromProps(props);\n }\n\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n ...extractStateFromProps(props),\n pending: false\n };\n\n this.handleClick = this.handleClick.bind(this);\n this.setRefTrack = this.setRefTrack.bind(this);\n this.handleMinChange = this.handleMinChange.bind(this);\n this.handleMaxChange = this.handleMaxChange.bind(this);\n this.handleMinChangeEnd = this.handleMinChangeEnd.bind(this);\n this.handleMaxChangeEnd = this.handleMaxChangeEnd.bind(this);\n }\n\n setRefTrack(track) {\n this.track = track;\n }\n\n handleMinChange(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 0, true);\n }\n\n handleMaxChange(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 1, true);\n }\n\n handleMinChangeEnd(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 0, false);\n }\n\n handleMaxChangeEnd(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 1, false);\n }\n\n handleChange(value, valueIndex, pending) {\n const {value: prevValue} = this.state;\n\n const newValue = set(valueIndex, value, prevValue);\n\n const [minValue, maxValue] = newValue;\n\n const nextValue = minValue > maxValue ? prevValue : newValue;\n\n this.triggerChange(nextValue, pending);\n return this.setState({\n pending,\n value: pending ? nextValue : extractStateFromProps(this.props).value\n });\n }\n\n triggerChange(newValues, pending) {\n const {onChange = noop, onChangeEnd = onChange, multi = false} = this.props;\n\n const handle = pending ? onChange : onChangeEnd;\n\n return handle(multi ? newValues : newValues[1]);\n }\n\n handleClick(e) {\n e.stopPropagation();\n e.preventDefault();\n const {\n value: [left, right],\n multi\n } = this.state;\n const x = e.clientX;\n const newValue = valueOnTrack(this.track, x);\n\n if (!multi) return this.handleChange(newValue, 1, false);\n\n if (left === right) {\n const isClickToTheLeft = left - newValue > 0;\n return this.handleChange(newValue, isClickToTheLeft ? 0 : 1, false);\n }\n\n const closestHandle = Math.abs(newValue - left) < Math.abs(newValue - right) ? 0 : 1;\n return this.handleChange(newValue, closestHandle, false);\n }\n\n render() {\n const {\n multi = false,\n value: [left, right],\n pending\n } = this.state;\n const railWidth = right - left;\n const railLeft = left;\n const railStyle = {\n backgroundColor: '#9999A8',\n width: `${railWidth * 100}%`,\n left: `${railLeft * 100}%`\n };\n\n const {HammerForTestingMin, HammerForTestingMax} = this.props;\n\n return (\n <div data-testid=\"slider\" className={style.containerWrapper} onClick={this.handleClick}>\n <div className={style.container}>\n <div\n data-testid=\"track\"\n className={style.track}\n data-name=\"sliderTrack\"\n ref={this.setRefTrack}\n />\n <div className={pending ? style.rail : style.animatedRail} style={railStyle} />\n <RenderHandles\n HammerForTestingMin={HammerForTestingMin}\n HammerForTestingMax={HammerForTestingMax}\n left={left}\n right={right}\n pending={pending}\n multi={multi}\n onHandleMinChange={this.handleMinChange}\n onHandleMinChangeEnd={this.handleMinChangeEnd}\n onHandleMaxChange={this.handleMaxChange}\n onHandleMaxChangeEnd={this.handleMaxChangeEnd}\n />\n </div>\n </div>\n );\n }\n}\n\nexport default Range;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","Provider","Handle","style","valueOnTrack","track","x","left","right","getBoundingClientRect","_clamp","extractStateFromProps","props","multi","value","min","max","toNormalized","actualValue","normalizedValue","Array","isArray","map","RenderHandles","pending","onHandleMinChange","onHandleMinChangeEnd","onHandleMaxChange","onHandleMaxChangeEnd","HammerForTestingMin","HammerForTestingMax","createElement","className","handle","animatedHandle","axis","onPan","onPanEnd","HammerForTesting","propTypes","process","env","NODE_ENV","number","bool","func","Range","Component","contextTypes","skin","childContextTypes","getDerivedStateFromProps","state","constructor","context","handleClick","bind","setRefTrack","handleMinChange","handleMaxChange","handleMinChangeEnd","handleMaxChangeEnd","normalizedToActual","roundToStep","step","Math","round","e","srcEvent","stopPropagation","preventDefault","newValue","center","handleChange","valueIndex","prevValue","_set","minValue","maxValue","nextValue","triggerChange","setState","newValues","onChange","_noop","onChangeEnd","actualValues","val","clientX","isClickToTheLeft","closestHandle","abs","render","theme","minLabel","maxLabel","railWidth","railLeft","primaryColor","_getOr","railStyle","backgroundColor","width","minActualValue","maxActualValue","sliderComponent","container","ref","rail","animatedRail","containerWrapper","onClick","inputsRow","moocInput","inputHint","inputValue","oneOf","string"],"sources":["../../../src/atom/range/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {noop, set, clamp, getOr} from 'lodash/fp';\nimport Provider from '../provider';\nimport Handle from './handle';\nimport style from './style.css';\n\nconst valueOnTrack = (track, x) => {\n const {left, right} = track.getBoundingClientRect();\n return clamp(0, 1, (x - left) / (right - left));\n};\n\nconst extractStateFromProps = props => {\n const {multi = false, value = multi ? [0, 1] : 0, min = 0, max = 100} = props;\n\n const toNormalized = actualValue => (actualValue - min) / (max - min);\n\n let normalizedValue;\n if (multi) {\n normalizedValue = Array.isArray(value)\n ? value.map(toNormalized)\n : [toNormalized(0), toNormalized(value)];\n } else {\n normalizedValue = toNormalized(value);\n }\n\n return {\n multi,\n value: multi ? normalizedValue : [0, normalizedValue]\n };\n};\n\nconst RenderHandles = props => {\n const {\n left,\n right,\n multi = false,\n pending,\n onHandleMinChange,\n onHandleMinChangeEnd,\n onHandleMaxChange,\n onHandleMaxChangeEnd,\n HammerForTestingMin,\n HammerForTestingMax\n } = props;\n\n return (\n <div data-testid=\"handles\">\n {multi ? (\n <span\n className={pending ? style.handle : style.animatedHandle}\n style={{left: `${left * 100}%`}}\n >\n <Handle\n axis=\"x\"\n onPan={onHandleMinChange}\n onPanEnd={onHandleMinChangeEnd}\n HammerForTesting={HammerForTestingMin}\n />\n </span>\n ) : null}\n <span\n className={pending ? style.handle : style.animatedHandle}\n style={{left: `${right * 100}%`}}\n >\n <Handle\n axis=\"x\"\n onPan={onHandleMaxChange}\n onPanEnd={onHandleMaxChangeEnd}\n HammerForTesting={HammerForTestingMax}\n />\n </span>\n </div>\n );\n};\n\nRenderHandles.propTypes = {\n left: PropTypes.number,\n right: PropTypes.number,\n multi: PropTypes.bool,\n pending: PropTypes.bool,\n onHandleMinChange: PropTypes.func,\n onHandleMinChangeEnd: PropTypes.func,\n onHandleMaxChange: PropTypes.func,\n onHandleMaxChangeEnd: PropTypes.func,\n HammerForTestingMin: Handle.propTypes.HammerForTesting,\n HammerForTestingMax: Handle.propTypes.HammerForTesting\n};\n\nclass Range extends React.Component {\n static propTypes = {\n onChange: PropTypes.func,\n onChangeEnd: PropTypes.func,\n multi: PropTypes.bool,\n theme: PropTypes.oneOf(['default', 'mooc']),\n min: PropTypes.number,\n max: PropTypes.number,\n step: PropTypes.number,\n minLabel: PropTypes.string,\n maxLabel: PropTypes.string,\n HammerForTestingMin: RenderHandles.propTypes.HammerForTestingMin,\n HammerForTestingMax: RenderHandles.propTypes.HammerForTestingMax\n };\n\n static contextTypes = {\n skin: Provider.childContextTypes.skin\n };\n\n static getDerivedStateFromProps(props, state) {\n const {pending} = state;\n if (pending) return null;\n return extractStateFromProps(props);\n }\n\n constructor(props, context) {\n super(props, context);\n this.state = {\n ...extractStateFromProps(props),\n pending: false\n };\n this.handleClick = this.handleClick.bind(this);\n this.setRefTrack = this.setRefTrack.bind(this);\n this.handleMinChange = this.handleMinChange.bind(this);\n this.handleMaxChange = this.handleMaxChange.bind(this);\n this.handleMinChangeEnd = this.handleMinChangeEnd.bind(this);\n this.handleMaxChangeEnd = this.handleMaxChangeEnd.bind(this);\n }\n\n setRefTrack(track) {\n this.track = track;\n }\n\n normalizedToActual(normalizedValue) {\n const {min = 0, max = 100} = this.props;\n return min + normalizedValue * (max - min);\n }\n\n roundToStep(value) {\n const {step = 1} = this.props;\n return Math.round(value / step) * step;\n }\n\n handleMinChange(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 0, true);\n }\n\n handleMaxChange(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 1, true);\n }\n\n handleMinChangeEnd(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 0, false);\n }\n\n handleMaxChangeEnd(e) {\n e.srcEvent.stopPropagation();\n e.srcEvent.preventDefault();\n const newValue = valueOnTrack(this.track, e.center.x);\n return this.handleChange(newValue, 1, false);\n }\n\n handleChange(value, valueIndex, pending) {\n const {value: prevValue} = this.state;\n const newValue = set(valueIndex, value, prevValue);\n const [minValue, maxValue] = newValue;\n const nextValue = minValue > maxValue ? prevValue : newValue;\n\n this.triggerChange(nextValue, pending);\n return this.setState({\n pending,\n value: pending ? nextValue : extractStateFromProps(this.props).value\n });\n }\n\n triggerChange(newValues, pending) {\n const {onChange = noop, onChangeEnd = onChange, multi = false} = this.props;\n const handle = pending ? onChange : onChangeEnd;\n const actualValues = newValues.map(val => this.roundToStep(this.normalizedToActual(val)));\n return handle(multi ? actualValues : actualValues[1]);\n }\n\n handleClick(e) {\n e.stopPropagation();\n e.preventDefault();\n const {\n value: [left, right],\n multi\n } = this.state;\n const newValue = valueOnTrack(this.track, e.clientX);\n\n if (!multi) return this.handleChange(newValue, 1, false);\n\n if (left === right) {\n const isClickToTheLeft = left - newValue > 0;\n return this.handleChange(newValue, isClickToTheLeft ? 0 : 1, false);\n }\n\n const closestHandle = Math.abs(newValue - left) < Math.abs(newValue - right) ? 0 : 1;\n return this.handleChange(newValue, closestHandle, false);\n }\n\n render() {\n const {\n multi = false,\n value: [left, right],\n pending\n } = this.state;\n const {\n theme = 'default',\n minLabel = 'Min',\n maxLabel = 'Max',\n HammerForTestingMin,\n HammerForTestingMax\n } = this.props;\n\n const railWidth = right - left;\n const railLeft = left;\n\n const {skin} = this.context;\n const primaryColor = getOr('#00B0FF', 'common.primary', skin);\n const railStyle =\n theme === 'mooc'\n ? {\n backgroundColor: primaryColor,\n width: `${railWidth * 100}%`,\n left: `${railLeft * 100}%`\n }\n : {\n width: `${railWidth * 100}%`,\n left: `${railLeft * 100}%`\n };\n\n const minActualValue = this.roundToStep(this.normalizedToActual(left));\n const maxActualValue = this.roundToStep(this.normalizedToActual(right));\n\n const sliderComponent = (\n <div className={style.container}>\n <div\n data-testid=\"track\"\n className={style.track}\n data-name=\"sliderTrack\"\n ref={this.setRefTrack}\n />\n <div className={pending ? style.rail : style.animatedRail} style={railStyle} />\n <RenderHandles\n HammerForTestingMin={HammerForTestingMin}\n HammerForTestingMax={HammerForTestingMax}\n left={left}\n right={right}\n pending={pending}\n multi={multi}\n onHandleMinChange={this.handleMinChange}\n onHandleMinChangeEnd={this.handleMinChangeEnd}\n onHandleMaxChange={this.handleMaxChange}\n onHandleMaxChangeEnd={this.handleMaxChangeEnd}\n />\n </div>\n );\n\n if (theme === 'mooc') {\n return (\n <div data-testid=\"slider\" className={style.containerWrapper}>\n <div onClick={this.handleClick}>{sliderComponent}</div>\n <div className={style.inputsRow}>\n {multi ? (\n <div className={style.moocInput} data-testid=\"min-value\">\n <span className={style.inputHint}>{minLabel}</span>\n <span className={style.inputValue}>{minActualValue}</span>\n </div>\n ) : null}\n <div className={style.moocInput} data-testid=\"max-value\">\n <span className={style.inputHint}>{maxLabel}</span>\n <span className={style.inputValue}>{maxActualValue}</span>\n </div>\n </div>\n </div>\n );\n }\n\n return (\n <div data-testid=\"slider\" className={style.containerWrapper} onClick={this.handleClick}>\n {sliderComponent}\n </div>\n );\n }\n}\n\nexport default Range;\n"],"mappings":"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","ignoreList":[]}
@@ -3,10 +3,14 @@
3
3
  @value dark from colors;
4
4
  @value white from colors;
5
5
  @value brand from colors;
6
+ @value surface_input_neutral_strong from colors;
6
7
 
7
8
  .containerWrapper {
8
9
  padding: 15px;
9
10
  user-select: none;
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: 18px;
10
14
  }
11
15
 
12
16
  .container {
@@ -55,3 +59,37 @@
55
59
  transition-duration: 0.3s;
56
60
  transition-timing-function: ease-out;
57
61
  }
62
+
63
+ .inputsRow {
64
+ display: flex;
65
+ justify-content: space-between;
66
+ margin-top: 18px;
67
+ }
68
+
69
+ .moocInput {
70
+ display: inline-flex;
71
+ align-items: center;
72
+ gap: 6px;
73
+ height: auto;
74
+ padding: 12px 16px;
75
+ border: none;
76
+ border-radius: 12px;
77
+ background-color: surface_input_neutral_strong;
78
+ font-size: 16px;
79
+ cursor: default;
80
+ user-select: none;
81
+ white-space: nowrap;
82
+ }
83
+
84
+ .inputHint {
85
+ color: #999;
86
+ font-weight: 700;
87
+ font-size: 16px;
88
+ }
89
+
90
+ .inputValue {
91
+ color: #000;
92
+ font-weight: 600;
93
+ font-size: 16px;
94
+ }
95
+
@@ -63,12 +63,53 @@ declare const MultiFilterPanel: {
63
63
  onChange: import("prop-types").Validator<(...args: any[]) => any>;
64
64
  theme: import("prop-types").Validator<string>;
65
65
  ariaLabel: import("prop-types").Validator<string>;
66
+ id: import("prop-types").Requireable<string>;
66
67
  }> | null | undefined)[]>;
67
68
  }>>;
69
+ }> | import("prop-types").InferProps<{
70
+ type: import("prop-types").Requireable<string>;
71
+ options: import("prop-types").Requireable<import("prop-types").InferProps<{
72
+ title: import("prop-types").Validator<string>;
73
+ titleAriaLabel: import("prop-types").Requireable<string>;
74
+ onClear: import("prop-types").Validator<(...args: any[]) => any>;
75
+ options: import("prop-types").Requireable<import("prop-types").InferProps<{
76
+ label: import("prop-types").Validator<string>;
77
+ min: import("prop-types").Validator<number>;
78
+ max: import("prop-types").Validator<number>;
79
+ step: import("prop-types").Requireable<number>;
80
+ value: import("prop-types").Requireable<(number | null | undefined)[]>;
81
+ minLabel: import("prop-types").Requireable<string>;
82
+ maxLabel: import("prop-types").Requireable<string>;
83
+ onChange: import("prop-types").Validator<(...args: any[]) => any>;
84
+ theme: import("prop-types").Requireable<string>;
85
+ selected: import("prop-types").Requireable<boolean>;
86
+ }>>;
87
+ }>>;
68
88
  }> | null | undefined> | null | undefined)[]>;
69
89
  };
70
90
  contextTypes: {
71
91
  translate: import("prop-types").Requireable<(...args: any[]) => any>;
92
+ skin: import("prop-types").Requireable<import("prop-types").InferProps<{
93
+ common: import("prop-types").Requireable<{
94
+ [x: string]: any;
95
+ }>;
96
+ images: import("prop-types").Requireable<import("prop-types").InferProps<{
97
+ 'logo-mobile': import("prop-types").Requireable<any>;
98
+ logo: import("prop-types").Requireable<any>;
99
+ 'logo-email': import("prop-types").Requireable<any>;
100
+ login: import("prop-types").Requireable<any>;
101
+ }>>;
102
+ icons: import("prop-types").Requireable<{
103
+ [x: string]: any;
104
+ }>;
105
+ mod: import("prop-types").Requireable<{
106
+ [x: string]: any;
107
+ }>;
108
+ courses: import("prop-types").Requireable<any[]>;
109
+ texts: import("prop-types").Requireable<{
110
+ [x: string]: any;
111
+ }>;
112
+ }>>;
72
113
  };
73
114
  };
74
115
  export default MultiFilterPanel;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/multi-filter-panel/index.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AASjE,OAAkB,EAAC,qBAAqB,EAAqB,MAAM,cAAc,CAAC;AAwDlF,QAAA,MAAM,gBAAgB;YAAW,qBAAqB,WAAW,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDhF,CAAC;AAQF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/molecule/multi-filter-panel/index.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AAWjE,OAAkB,EAAC,qBAAqB,EAAqB,MAAM,cAAc,CAAC;AAyDlF,QAAA,MAAM,gBAAgB;YAAW,qBAAqB,WAAW,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DhF,CAAC;AASF,eAAe,gBAAgB,CAAC"}
@@ -1,3 +1,5 @@
1
+ import _noop from "lodash/fp/noop";
2
+ import _getOr from "lodash/fp/getOr";
1
3
  import _toString from "lodash/fp/toString";
2
4
  import _flatMap from "lodash/fp/flatMap";
3
5
  import _filter from "lodash/fp/filter";
@@ -5,6 +7,7 @@ import _pipe from "lodash/fp/pipe";
5
7
  import _size from "lodash/fp/size";
6
8
  import _map from "lodash/fp/map";
7
9
  import React from 'react';
10
+ import { convert } from 'css-color-function';
8
11
  import FilterChip from '../../organism/filter-chip';
9
12
  import FilterCheckboxAndSearch from '../../organism/filter-checkbox-and-search';
10
13
  import Title from '../../atom/title';
@@ -14,16 +17,13 @@ import Provider, { GetTranslateFromContext } from '../../atom/provider';
14
17
  import Chip from '../../atom/chip';
15
18
  import { COLORS } from '../../variables/colors';
16
19
  import FilterSwitch from '../../organism/filter-switch';
20
+ import FilterRange from '../../organism/filter-range';
17
21
  import style from './style.css';
18
22
  import propTypes from './prop-types';
19
23
  // @ts-expect-error convert is not recognized by the types
20
24
  const uncappedMap = _map.convert({
21
25
  cap: false
22
26
  });
23
- const CLEAR_ALL_BUTTON_STYLE = {
24
- fontWeight: 'normal',
25
- padding: 0
26
- };
27
27
  const FilterSeparator = /*#__PURE__*/React.createElement("div", {
28
28
  className: style.filterSeparator
29
29
  });
@@ -39,6 +39,8 @@ const buildFilters = filterOptions => {
39
39
  return /*#__PURE__*/React.createElement(FilterCheckboxAndSearch, options);
40
40
  case 'switch':
41
41
  return /*#__PURE__*/React.createElement(FilterSwitch, options);
42
+ case 'range':
43
+ return /*#__PURE__*/React.createElement(FilterRange, options);
42
44
  default:
43
45
  return null;
44
46
  }
@@ -52,7 +54,7 @@ const buildAllSelectedFilterChips = (selectedFilters, onRemoveSelectedFilter) =>
52
54
  label
53
55
  } = filterItem;
54
56
  function handleClick() {
55
- return onRemoveSelectedFilter(label);
57
+ return onRemoveSelectedFilter(filterItem);
56
58
  }
57
59
  return /*#__PURE__*/React.createElement(Chip, {
58
60
  key: label,
@@ -69,11 +71,15 @@ const buildAllSelectedFilterChips = (selectedFilters, onRemoveSelectedFilter) =>
69
71
  }));
70
72
  };
71
73
  const MultiFilterPanel = (props, context) => {
74
+ const {
75
+ skin
76
+ } = context;
77
+ const primaryColor = _getOr(COLORS.cm_primary_blue, 'common.primary', skin);
72
78
  const {
73
79
  title,
74
80
  onClearAll,
75
81
  options,
76
- onRemoveSelectedFilter = false
82
+ onRemoveSelectedFilter = _noop
77
83
  } = props;
78
84
  const translate = GetTranslateFromContext(context);
79
85
  const allSelectedFilters = _pipe(_map('options'), _flatMap('options'), _filter(filterOptions => filterOptions.selected || filterOptions.value === true))(options);
@@ -86,31 +92,40 @@ const MultiFilterPanel = (props, context) => {
86
92
  }, options);
87
93
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
88
94
  className: style.header
89
- }, /*#__PURE__*/React.createElement("div", {
95
+ }, hasSelectedFilters ? /*#__PURE__*/React.createElement("div", {
90
96
  className: style.titleContainer
91
97
  }, /*#__PURE__*/React.createElement(Title, {
92
98
  title: title,
93
99
  type: "form-group",
94
100
  titleSize: "standard-light-weight"
95
- }), hasSelectedFilters ? /*#__PURE__*/React.createElement(Tag, {
101
+ }), /*#__PURE__*/React.createElement(Tag, {
96
102
  label: _toString(_size(allSelectedFilters)),
97
103
  type: "info",
98
- size: "S"
99
- }) : null), hasSelectedFilters ? /*#__PURE__*/React.createElement("div", {
104
+ size: "S",
105
+ customStyle: {
106
+ color: primaryColor,
107
+ backgroundColor: convert(`color(${primaryColor} lightness(92%))`)
108
+ }
109
+ })) : null, hasSelectedFilters ? /*#__PURE__*/React.createElement("div", {
100
110
  className: style.buttonContainer
101
111
  }, /*#__PURE__*/React.createElement(ButtonLink, {
102
- customStyle: CLEAR_ALL_BUTTON_STYLE,
112
+ customStyle: {
113
+ fontWeight: 'normal',
114
+ padding: 0,
115
+ color: primaryColor
116
+ },
103
117
  label: translate('clear_all'),
104
118
  type: "text",
105
119
  "data-name": "filters-all-clear-button",
106
120
  "aria-label": "filters all clear button",
107
121
  onClick: onClearAll,
108
122
  hoverColor: COLORS.primary_600
109
- })) : null), onRemoveSelectedFilter && hasSelectedFilters ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, buildAllSelectedFilterChips(allSelectedFilters, onRemoveSelectedFilter)), FilterSeparator) : null, filters);
123
+ })) : null), hasSelectedFilters ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", null, buildAllSelectedFilterChips(allSelectedFilters, onRemoveSelectedFilter)), FilterSeparator) : null, filters);
110
124
  };
111
125
  MultiFilterPanel.propTypes = process.env.NODE_ENV !== "production" ? propTypes : {};
112
126
  MultiFilterPanel.contextTypes = {
113
- translate: Provider.childContextTypes.translate
127
+ translate: Provider.childContextTypes.translate,
128
+ skin: Provider.childContextTypes.skin
114
129
  };
115
130
  export default MultiFilterPanel;
116
131
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","FilterChip","FilterCheckboxAndSearch","Title","Tag","ButtonLink","Provider","GetTranslateFromContext","Chip","COLORS","FilterSwitch","style","propTypes","uncappedMap","_map","convert","cap","CLEAR_ALL_BUTTON_STYLE","fontWeight","padding","FilterSeparator","createElement","className","filterSeparator","buildFilters","filterOptions","type","options","buildAllSelectedFilterChips","selectedFilters","onRemoveSelectedFilter","selectedFiltersContainer","map","filterItem","label","handleClick","key","onClick","text","textColor","neutral_500","backgroundColor","cm_grey_150","customIcon","customStyle","height","MultiFilterPanel","props","context","title","onClearAll","translate","allSelectedFilters","_pipe","_flatMap","_filter","selected","value","hasSelectedFilters","_size","filters","i","isLastItem","Fragment","header","titleContainer","titleSize","_toString","size","buttonContainer","hoverColor","primary_600","process","env","NODE_ENV","contextTypes","childContextTypes"],"sources":["../../../src/molecule/multi-filter-panel/index.tsx"],"sourcesContent":["import React from 'react';\nimport {map, size, pipe, filter, flatMap, toString} from 'lodash/fp';\nimport FilterChip from '../../organism/filter-chip';\nimport FilterCheckboxAndSearch from '../../organism/filter-checkbox-and-search';\nimport Title from '../../atom/title';\nimport Tag from '../../atom/tag';\nimport ButtonLink from '../../atom/button-link';\nimport {WebContextValues} from '../../atom/provider/web-context';\nimport Provider, {GetTranslateFromContext} from '../../atom/provider';\nimport Chip from '../../atom/chip';\nimport {COLORS} from '../../variables/colors';\nimport FilterSwitch from '../../organism/filter-switch';\nimport {FilterCheckboxAndSearchOptions} from '../../organism/filter-checkbox-and-search/props-types';\nimport {FilterChipOptionsProps} from '../../organism/filter-chip/prop-types';\nimport {FilterSwitchOptionsProps} from '../../organism/filter-switch/prop-types';\nimport style from './style.css';\nimport propTypes, {MultiFilterPanelProps, FilterOptionsProps} from './prop-types';\n\ntype SelectedFilter =\n | FilterChipOptionsProps\n | FilterSwitchOptionsProps\n | FilterCheckboxAndSearchOptions;\n\n// @ts-expect-error convert is not recognized by the types\nconst uncappedMap = map.convert({cap: false});\n\nconst CLEAR_ALL_BUTTON_STYLE = {fontWeight: 'normal', padding: 0};\nconst FilterSeparator = <div className={style.filterSeparator} />;\n\nconst buildFilters = (filterOptions: FilterOptionsProps) => {\n const {type, options} = filterOptions;\n switch (type) {\n case 'chip':\n return <FilterChip {...options} />;\n case 'checkbox':\n return <FilterCheckboxAndSearch {...options} />;\n case 'switch':\n return <FilterSwitch {...options} />;\n default:\n return null;\n }\n};\n\nconst buildAllSelectedFilterChips = (\n selectedFilters: SelectedFilter[],\n onRemoveSelectedFilter: (label: string) => void\n) => {\n return (\n <div className={style.selectedFiltersContainer} data-testid=\"selected-filters-container\">\n {selectedFilters.map((filterItem: SelectedFilter) => {\n const {label} = filterItem;\n\n function handleClick() {\n return onRemoveSelectedFilter(label);\n }\n\n return (\n <Chip\n key={label}\n onClick={handleClick}\n text={label}\n textColor={COLORS.neutral_500}\n backgroundColor={COLORS.cm_grey_150}\n customIcon={'xmark'}\n customStyle={{height: '28px', padding: '4px 8px'}}\n />\n );\n })}\n </div>\n );\n};\n\nconst MultiFilterPanel = (props: MultiFilterPanelProps, context: WebContextValues) => {\n const {title, onClearAll, options, onRemoveSelectedFilter = false} = props;\n const translate = GetTranslateFromContext(context);\n const allSelectedFilters: SelectedFilter[] = pipe(\n map('options'),\n flatMap('options'),\n filter(filterOptions => filterOptions.selected || filterOptions.value === true)\n )(options);\n const hasSelectedFilters = size(allSelectedFilters) > 0;\n const filters = uncappedMap((filterOptions: FilterOptionsProps, i: number) => {\n const isLastItem = i + 1 === size(options);\n\n return (\n <div key={i}>\n {buildFilters(filterOptions)}\n {isLastItem ? null : FilterSeparator}\n </div>\n );\n }, options);\n return (\n <>\n <div className={style.header}>\n <div className={style.titleContainer}>\n <Title title={title} type=\"form-group\" titleSize=\"standard-light-weight\" />\n {hasSelectedFilters ? (\n <Tag label={toString(size(allSelectedFilters))} type=\"info\" size=\"S\" />\n ) : null}\n </div>\n {hasSelectedFilters ? (\n <div className={style.buttonContainer}>\n <ButtonLink\n customStyle={CLEAR_ALL_BUTTON_STYLE}\n label={translate('clear_all')}\n type=\"text\"\n data-name=\"filters-all-clear-button\"\n aria-label=\"filters all clear button\"\n onClick={onClearAll}\n hoverColor={COLORS.primary_600}\n />\n </div>\n ) : null}\n </div>\n {onRemoveSelectedFilter && hasSelectedFilters ? (\n <>\n <div>{buildAllSelectedFilterChips(allSelectedFilters, onRemoveSelectedFilter)}</div>\n {FilterSeparator}\n </>\n ) : null}\n {filters}\n </>\n );\n};\n\nMultiFilterPanel.propTypes = propTypes;\n\nMultiFilterPanel.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nexport default MultiFilterPanel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","convert","FilterChip","FilterCheckboxAndSearch","Title","Tag","ButtonLink","Provider","GetTranslateFromContext","Chip","COLORS","FilterSwitch","FilterRange","style","propTypes","uncappedMap","_map","cap","FilterSeparator","createElement","className","filterSeparator","buildFilters","filterOptions","type","options","buildAllSelectedFilterChips","selectedFilters","onRemoveSelectedFilter","selectedFiltersContainer","map","filterItem","label","handleClick","key","onClick","text","textColor","neutral_500","backgroundColor","cm_grey_150","customIcon","customStyle","height","padding","MultiFilterPanel","props","context","skin","primaryColor","_getOr","cm_primary_blue","title","onClearAll","_noop","translate","allSelectedFilters","_pipe","_flatMap","_filter","selected","value","hasSelectedFilters","_size","filters","i","isLastItem","Fragment","header","titleContainer","titleSize","_toString","size","color","buttonContainer","fontWeight","hoverColor","primary_600","process","env","NODE_ENV","contextTypes","childContextTypes"],"sources":["../../../src/molecule/multi-filter-panel/index.tsx"],"sourcesContent":["import React from 'react';\nimport {map, size, pipe, filter, flatMap, toString, getOr, noop} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport FilterChip from '../../organism/filter-chip';\nimport FilterCheckboxAndSearch from '../../organism/filter-checkbox-and-search';\nimport Title from '../../atom/title';\nimport Tag from '../../atom/tag';\nimport ButtonLink from '../../atom/button-link';\nimport {WebContextValues} from '../../atom/provider/web-context';\nimport Provider, {GetTranslateFromContext} from '../../atom/provider';\nimport Chip from '../../atom/chip';\nimport {COLORS} from '../../variables/colors';\nimport FilterSwitch from '../../organism/filter-switch';\nimport FilterRange from '../../organism/filter-range';\nimport {FilterCheckboxAndSearchOptions} from '../../organism/filter-checkbox-and-search/props-types';\nimport {FilterChipOptionsProps} from '../../organism/filter-chip/prop-types';\nimport {FilterSwitchOptionsProps} from '../../organism/filter-switch/prop-types';\nimport {FilterRangeOptionsProps} from '../../organism/filter-range/prop-types';\nimport style from './style.css';\nimport propTypes, {MultiFilterPanelProps, FilterOptionsProps} from './prop-types';\n\ntype SelectedFilter =\n | FilterChipOptionsProps\n | FilterSwitchOptionsProps\n | FilterCheckboxAndSearchOptions\n | FilterRangeOptionsProps;\n\n// @ts-expect-error convert is not recognized by the types\nconst uncappedMap = map.convert({cap: false});\n\nconst FilterSeparator = <div className={style.filterSeparator} />;\n\nconst buildFilters = (filterOptions: FilterOptionsProps) => {\n const {type, options} = filterOptions;\n switch (type) {\n case 'chip':\n return <FilterChip {...options} />;\n case 'checkbox':\n return <FilterCheckboxAndSearch {...options} />;\n case 'switch':\n return <FilterSwitch {...options} />;\n case 'range':\n return <FilterRange {...options} />;\n default:\n return null;\n }\n};\n\nconst buildAllSelectedFilterChips = (\n selectedFilters: SelectedFilter[],\n onRemoveSelectedFilter: (filterItem: SelectedFilter) => void\n) => {\n return (\n <div className={style.selectedFiltersContainer} data-testid=\"selected-filters-container\">\n {selectedFilters.map((filterItem: SelectedFilter) => {\n const {label} = filterItem;\n function handleClick() {\n return onRemoveSelectedFilter(filterItem);\n }\n\n return (\n <Chip\n key={label}\n onClick={handleClick}\n text={label}\n textColor={COLORS.neutral_500}\n backgroundColor={COLORS.cm_grey_150}\n customIcon={'xmark'}\n customStyle={{height: '28px', padding: '4px 8px'}}\n />\n );\n })}\n </div>\n );\n};\n\nconst MultiFilterPanel = (props: MultiFilterPanelProps, context: WebContextValues) => {\n const {skin} = context;\n const primaryColor = getOr(COLORS.cm_primary_blue, 'common.primary', skin);\n const {title, onClearAll, options, onRemoveSelectedFilter = noop} = props;\n const translate = GetTranslateFromContext(context);\n const allSelectedFilters: SelectedFilter[] = pipe(\n map('options'),\n flatMap('options'),\n filter(filterOptions => filterOptions.selected || filterOptions.value === true)\n )(options);\n const hasSelectedFilters = size(allSelectedFilters) > 0;\n const filters = uncappedMap((filterOptions: FilterOptionsProps, i: number) => {\n const isLastItem = i + 1 === size(options);\n\n return (\n <div key={i}>\n {buildFilters(filterOptions)}\n {isLastItem ? null : FilterSeparator}\n </div>\n );\n }, options);\n return (\n <>\n <div className={style.header}>\n {hasSelectedFilters ? (\n <div className={style.titleContainer}>\n <Title title={title} type=\"form-group\" titleSize=\"standard-light-weight\" />\n <Tag\n label={toString(size(allSelectedFilters))}\n type=\"info\"\n size=\"S\"\n customStyle={{\n color: primaryColor,\n backgroundColor: convert(`color(${primaryColor} lightness(92%))`)\n }}\n />\n </div>\n ) : null}\n {hasSelectedFilters ? (\n <div className={style.buttonContainer}>\n <ButtonLink\n customStyle={{fontWeight: 'normal', padding: 0, color: primaryColor}}\n label={translate('clear_all')}\n type=\"text\"\n data-name=\"filters-all-clear-button\"\n aria-label=\"filters all clear button\"\n onClick={onClearAll}\n hoverColor={COLORS.primary_600}\n />\n </div>\n ) : null}\n </div>\n {hasSelectedFilters ? (\n <>\n <div>{buildAllSelectedFilterChips(allSelectedFilters, onRemoveSelectedFilter)}</div>\n {FilterSeparator}\n </>\n ) : null}\n {filters}\n </>\n );\n};\n\nMultiFilterPanel.propTypes = propTypes;\n\nMultiFilterPanel.contextTypes = {\n translate: Provider.childContextTypes.translate,\n skin: Provider.childContextTypes.skin\n};\n\nexport default MultiFilterPanel;\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,8 @@
1
1
  import PropTypes from 'prop-types';
2
- import { FilterChipProps } from '../../organism/filter-chip/prop-types';
3
- import { FilterCheckboxAndSearchProps } from '../../organism/filter-checkbox-and-search/props-types';
4
- import { FilterSwitchProps } from '../../organism/filter-switch/prop-types';
2
+ import { FilterChipOptionsProps, FilterChipProps } from '../../organism/filter-chip/prop-types';
3
+ import { FilterCheckboxAndSearchOptions, FilterCheckboxAndSearchProps } from '../../organism/filter-checkbox-and-search/props-types';
4
+ import { FilterSwitchOptionsProps, FilterSwitchProps } from '../../organism/filter-switch/prop-types';
5
+ import { FilterRangeProps, FilterRangeOptionsProps } from '../../organism/filter-range/prop-types';
5
6
  declare const propTypes: {
6
7
  title: PropTypes.Requireable<string>;
7
8
  onClearAll: PropTypes.Requireable<(...args: any[]) => any>;
@@ -62,8 +63,28 @@ declare const propTypes: {
62
63
  onChange: PropTypes.Validator<(...args: any[]) => any>;
63
64
  theme: PropTypes.Validator<string>;
64
65
  ariaLabel: PropTypes.Validator<string>;
66
+ id: PropTypes.Requireable<string>;
65
67
  }> | null | undefined)[]>;
66
68
  }>>;
69
+ }> | PropTypes.InferProps<{
70
+ type: PropTypes.Requireable<string>;
71
+ options: PropTypes.Requireable<PropTypes.InferProps<{
72
+ title: PropTypes.Validator<string>;
73
+ titleAriaLabel: PropTypes.Requireable<string>;
74
+ onClear: PropTypes.Validator<(...args: any[]) => any>;
75
+ options: PropTypes.Requireable<PropTypes.InferProps<{
76
+ label: PropTypes.Validator<string>;
77
+ min: PropTypes.Validator<number>;
78
+ max: PropTypes.Validator<number>;
79
+ step: PropTypes.Requireable<number>;
80
+ value: PropTypes.Requireable<(number | null | undefined)[]>;
81
+ minLabel: PropTypes.Requireable<string>;
82
+ maxLabel: PropTypes.Requireable<string>;
83
+ onChange: PropTypes.Validator<(...args: any[]) => any>;
84
+ theme: PropTypes.Requireable<string>;
85
+ selected: PropTypes.Requireable<boolean>;
86
+ }>>;
87
+ }>>;
67
88
  }> | null | undefined> | null | undefined)[]>;
68
89
  };
69
90
  export declare type OptionsChipProps = {
@@ -78,10 +99,15 @@ export declare type OptionsSwitchProps = {
78
99
  type: 'switch';
79
100
  options: FilterSwitchProps;
80
101
  };
81
- export declare type FilterOptionsProps = OptionsChipProps | OptionsCheckboxProps | OptionsSwitchProps;
102
+ export declare type OptionsRangeProps = {
103
+ type: 'range';
104
+ options: FilterRangeProps;
105
+ };
106
+ export declare type FilterOptionsProps = OptionsChipProps | OptionsCheckboxProps | OptionsSwitchProps | OptionsRangeProps;
107
+ export declare type SelectedFilter = FilterChipOptionsProps | FilterSwitchOptionsProps | FilterCheckboxAndSearchOptions | FilterRangeOptionsProps;
82
108
  export declare type MultiFilterPanelProps = {
83
109
  title: string;
84
- onRemoveSelectedFilter?: (label: string) => void;
110
+ onRemoveSelectedFilter?: (filterItem: SelectedFilter) => void;
85
111
  onClearAll: () => void;
86
112
  options: FilterOptionsProps[];
87
113
  };
@@ -1 +1 @@
1
- {"version":3,"file":"prop-types.d.ts","sourceRoot":"","sources":["../../../src/molecule/multi-filter-panel/prop-types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAA4B,EAAC,eAAe,EAAC,MAAM,uCAAuC,CAAC;AAC3F,OAAyC,EACvC,4BAA4B,EAC7B,MAAM,uDAAuD,CAAC;AAC/D,OAA8B,EAAC,iBAAiB,EAAC,MAAM,yCAAyC,CAAC;AAEjG,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBd,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,4BAA4B,CAAC;CACvC,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;CAC5B,CAAC;AAEF,oBAAY,kBAAkB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,kBAAkB,CAAC;AAE9F,oBAAY,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B,CAAC;AAEF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"prop-types.d.ts","sourceRoot":"","sources":["../../../src/molecule/multi-filter-panel/prop-types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAA4B,EAC1B,sBAAsB,EACtB,eAAe,EAChB,MAAM,uCAAuC,CAAC;AAC/C,OAAyC,EACvC,8BAA8B,EAC9B,4BAA4B,EAC7B,MAAM,uDAAuD,CAAC;AAC/D,OAA8B,EAAC,wBAAwB,EAAE,iBAAiB,EAAC,MAAM,yCAAyC,CAAC;AAC3H,OAA6B,EAAC,gBAAgB,EAAE,uBAAuB,EAAC,MAAM,wCAAwC,CAAC;AAEvH,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwBd,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IACjC,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,4BAA4B,CAAC;CACvC,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;CAC5B,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC9B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,oBAAY,kBAAkB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,iBAAiB,CAAC;AAElH,oBAAY,cAAc,GACtB,sBAAsB,GACtB,wBAAwB,GACxB,8BAA8B,GAC9B,uBAAuB,CAAC;AAE5B,oBAAY,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;IAC9D,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -2,6 +2,7 @@ import PropTypes from 'prop-types';
2
2
  import filterChipProptypes from '../../organism/filter-chip/prop-types';
3
3
  import filterCheckboxAndSearchProptypes from '../../organism/filter-checkbox-and-search/props-types';
4
4
  import filterSwitchProptypes from '../../organism/filter-switch/prop-types';
5
+ import filterRangeProptypes from '../../organism/filter-range/prop-types';
5
6
  const propTypes = {
6
7
  title: PropTypes.string,
7
8
  onClearAll: PropTypes.func,
@@ -15,6 +16,9 @@ const propTypes = {
15
16
  }), PropTypes.shape({
16
17
  type: PropTypes.oneOf(['switch']),
17
18
  options: PropTypes.shape(filterSwitchProptypes)
19
+ }), PropTypes.shape({
20
+ type: PropTypes.oneOf(['range']),
21
+ options: PropTypes.shape(filterRangeProptypes)
18
22
  })]))
19
23
  };
20
24
  export default propTypes;
@@ -1 +1 @@
1
- {"version":3,"file":"prop-types.js","names":["PropTypes","filterChipProptypes","filterCheckboxAndSearchProptypes","filterSwitchProptypes","propTypes","title","string","onClearAll","func","onRemoveSelectedFilter","options","arrayOf","oneOfType","shape","type","oneOf"],"sources":["../../../src/molecule/multi-filter-panel/prop-types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\nimport filterChipProptypes, {FilterChipProps} from '../../organism/filter-chip/prop-types';\nimport filterCheckboxAndSearchProptypes, {\n FilterCheckboxAndSearchProps\n} from '../../organism/filter-checkbox-and-search/props-types';\nimport filterSwitchProptypes, {FilterSwitchProps} from '../../organism/filter-switch/prop-types';\n\nconst propTypes = {\n title: PropTypes.string,\n onClearAll: PropTypes.func,\n onRemoveSelectedFilter: PropTypes.func,\n options: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({\n type: PropTypes.oneOf(['chip']),\n options: PropTypes.shape(filterChipProptypes)\n }),\n PropTypes.shape({\n type: PropTypes.oneOf(['checkbox']),\n options: PropTypes.shape(filterCheckboxAndSearchProptypes)\n }),\n PropTypes.shape({\n type: PropTypes.oneOf(['switch']),\n options: PropTypes.shape(filterSwitchProptypes)\n })\n ])\n )\n};\n\nexport type OptionsChipProps = {\n type: 'chip';\n options: FilterChipProps;\n};\n\nexport type OptionsCheckboxProps = {\n type: 'checkbox';\n options: FilterCheckboxAndSearchProps;\n};\n\nexport type OptionsSwitchProps = {\n type: 'switch';\n options: FilterSwitchProps;\n};\n\nexport type FilterOptionsProps = OptionsChipProps | OptionsCheckboxProps | OptionsSwitchProps;\n\nexport type MultiFilterPanelProps = {\n title: string;\n onRemoveSelectedFilter?: (label: string) => void;\n onClearAll: () => void;\n options: FilterOptionsProps[];\n};\n\nexport default propTypes;\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,YAAY;AAClC,OAAOC,mBAAmB,MAAyB,uCAAuC;AAC1F,OAAOC,gCAAgC,MAEhC,uDAAuD;AAC9D,OAAOC,qBAAqB,MAA2B,yCAAyC;AAEhG,MAAMC,SAAS,GAAG;EAChBC,KAAK,EAAEL,SAAS,CAACM,MAAM;EACvBC,UAAU,EAAEP,SAAS,CAACQ,IAAI;EAC1BC,sBAAsB,EAAET,SAAS,CAACQ,IAAI;EACtCE,OAAO,EAAEV,SAAS,CAACW,OAAO,CACxBX,SAAS,CAACY,SAAS,CAAC,CAClBZ,SAAS,CAACa,KAAK,CAAC;IACdC,IAAI,EAAEd,SAAS,CAACe,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/BL,OAAO,EAAEV,SAAS,CAACa,KAAK,CAACZ,mBAAmB;EAC9C,CAAC,CAAC,EACFD,SAAS,CAACa,KAAK,CAAC;IACdC,IAAI,EAAEd,SAAS,CAACe,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;IACnCL,OAAO,EAAEV,SAAS,CAACa,KAAK,CAACX,gCAAgC;EAC3D,CAAC,CAAC,EACFF,SAAS,CAACa,KAAK,CAAC;IACdC,IAAI,EAAEd,SAAS,CAACe,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjCL,OAAO,EAAEV,SAAS,CAACa,KAAK,CAACV,qBAAqB;EAChD,CAAC,CAAC,CACH,CACH;AACF,CAAC;AA0BD,eAAeC,SAAS","ignoreList":[]}
1
+ {"version":3,"file":"prop-types.js","names":["PropTypes","filterChipProptypes","filterCheckboxAndSearchProptypes","filterSwitchProptypes","filterRangeProptypes","propTypes","title","string","onClearAll","func","onRemoveSelectedFilter","options","arrayOf","oneOfType","shape","type","oneOf"],"sources":["../../../src/molecule/multi-filter-panel/prop-types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\nimport filterChipProptypes, {\n FilterChipOptionsProps,\n FilterChipProps\n} from '../../organism/filter-chip/prop-types';\nimport filterCheckboxAndSearchProptypes, {\n FilterCheckboxAndSearchOptions,\n FilterCheckboxAndSearchProps\n} from '../../organism/filter-checkbox-and-search/props-types';\nimport filterSwitchProptypes, {FilterSwitchOptionsProps, FilterSwitchProps} from '../../organism/filter-switch/prop-types';\nimport filterRangeProptypes, {FilterRangeProps, FilterRangeOptionsProps} from '../../organism/filter-range/prop-types';\n\nconst propTypes = {\n title: PropTypes.string,\n onClearAll: PropTypes.func,\n onRemoveSelectedFilter: PropTypes.func,\n options: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.shape({\n type: PropTypes.oneOf(['chip']),\n options: PropTypes.shape(filterChipProptypes)\n }),\n PropTypes.shape({\n type: PropTypes.oneOf(['checkbox']),\n options: PropTypes.shape(filterCheckboxAndSearchProptypes)\n }),\n PropTypes.shape({\n type: PropTypes.oneOf(['switch']),\n options: PropTypes.shape(filterSwitchProptypes)\n }),\n PropTypes.shape({\n type: PropTypes.oneOf(['range']),\n options: PropTypes.shape(filterRangeProptypes)\n })\n ])\n )\n};\n\nexport type OptionsChipProps = {\n type: 'chip';\n options: FilterChipProps;\n};\n\nexport type OptionsCheckboxProps = {\n type: 'checkbox';\n options: FilterCheckboxAndSearchProps;\n};\n\nexport type OptionsSwitchProps = {\n type: 'switch';\n options: FilterSwitchProps;\n};\n\nexport type OptionsRangeProps = {\n type: 'range';\n options: FilterRangeProps;\n};\n\nexport type FilterOptionsProps = OptionsChipProps | OptionsCheckboxProps | OptionsSwitchProps | OptionsRangeProps;\n\nexport type SelectedFilter =\n | FilterChipOptionsProps\n | FilterSwitchOptionsProps\n | FilterCheckboxAndSearchOptions\n | FilterRangeOptionsProps;\n\nexport type MultiFilterPanelProps = {\n title: string;\n onRemoveSelectedFilter?: (filterItem: SelectedFilter) => void;\n onClearAll: () => void;\n options: FilterOptionsProps[];\n};\n\nexport default propTypes;\n"],"mappings":"AAAA,OAAOA,SAAS,MAAM,YAAY;AAClC,OAAOC,mBAAmB,MAGnB,uCAAuC;AAC9C,OAAOC,gCAAgC,MAGhC,uDAAuD;AAC9D,OAAOC,qBAAqB,MAAqD,yCAAyC;AAC1H,OAAOC,oBAAoB,MAAmD,wCAAwC;AAEtH,MAAMC,SAAS,GAAG;EAChBC,KAAK,EAAEN,SAAS,CAACO,MAAM;EACvBC,UAAU,EAAER,SAAS,CAACS,IAAI;EAC1BC,sBAAsB,EAAEV,SAAS,CAACS,IAAI;EACtCE,OAAO,EAAEX,SAAS,CAACY,OAAO,CACxBZ,SAAS,CAACa,SAAS,CAAC,CAClBb,SAAS,CAACc,KAAK,CAAC;IACdC,IAAI,EAAEf,SAAS,CAACgB,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/BL,OAAO,EAAEX,SAAS,CAACc,KAAK,CAACb,mBAAmB;EAC9C,CAAC,CAAC,EACFD,SAAS,CAACc,KAAK,CAAC;IACdC,IAAI,EAAEf,SAAS,CAACgB,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC;IACnCL,OAAO,EAAEX,SAAS,CAACc,KAAK,CAACZ,gCAAgC;EAC3D,CAAC,CAAC,EACFF,SAAS,CAACc,KAAK,CAAC;IACdC,IAAI,EAAEf,SAAS,CAACgB,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC;IACjCL,OAAO,EAAEX,SAAS,CAACc,KAAK,CAACX,qBAAqB;EAChD,CAAC,CAAC,EACFH,SAAS,CAACc,KAAK,CAAC;IACdC,IAAI,EAAEf,SAAS,CAACgB,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;IAChCL,OAAO,EAAEX,SAAS,CAACc,KAAK,CAACV,oBAAoB;EAC/C,CAAC,CAAC,CACH,CACH;AACF,CAAC;AAqCD,eAAeC,SAAS","ignoreList":[]}
@@ -32,6 +32,10 @@ declare namespace QuestionRange {
32
32
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
33
33
  onChangeEnd: PropTypes.Requireable<(...args: any[]) => any>;
34
34
  multi: PropTypes.Requireable<boolean>;
35
+ theme: PropTypes.Requireable<string>;
36
+ min: PropTypes.Requireable<number>;
37
+ max: PropTypes.Requireable<number>;
38
+ step: PropTypes.Requireable<number>;
35
39
  HammerForTestingMin: PropTypes.Requireable<PropTypes.InferProps<{
36
40
  on: PropTypes.Requireable<(...args: any[]) => any>;
37
41
  destroy: PropTypes.Requireable<(...args: any[]) => any>;
@@ -42,7 +46,6 @@ declare namespace QuestionRange {
42
46
  destroy: PropTypes.Requireable<(...args: any[]) => any>;
43
47
  stop: PropTypes.Requireable<(...args: any[]) => any>;
44
48
  }>>;
45
- value: PropTypes.Requireable<NonNullable<number | (number | null | undefined)[] | null | undefined>>;
46
49
  };
47
50
  }
48
51
  import PropTypes from "prop-types";
@@ -175,7 +175,9 @@ const QuickFilters = ({
175
175
  wrapperSize: 20
176
176
  },
177
177
  "aria-label": ariaLabel
178
- }), /*#__PURE__*/React.createElement("span", null, label), /*#__PURE__*/React.createElement("div", {
178
+ }), /*#__PURE__*/React.createElement("span", {
179
+ className: style.filterLabel
180
+ }, label), /*#__PURE__*/React.createElement("div", {
179
181
  className: style.bar,
180
182
  style: {
181
183
  background: primarySkinColor
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useRef","useEffect","classNames","FaIcon","COLORS","ButtonLink","Provider","GetSkinFromContext","style","propTypes","SCROLL_RIGHT_SIZE","SCROLL_LEFT_SIZE","handleScroll","direction","listRef","current","scrollBy","left","behavior","getFilterButton","filterButtonProps","primarySkinColor","tag","rest","createElement","className","filterButtonWrapper","borderColor","label","filterButton","_extends","icon","position","faIcon","name","size","color","cm_grey_700","neutral_500","customStyle","backgroundColor","undefined","borderRadius","QuickFilters","primaryOption","filterOptions","filterOptionsAriaLabel","context","skin","_get","defaultLabel","defaultIconName","defaultSelected","defaultAriaLabel","onDefaultClick","filtersListRef","rightBtnRef","leftBtnRef","handleScrollRight","handleScrollLeft","list","rightButton","leftButton","update","rightArrowWidth","offsetWidth","showingRightButton","scrollLeft","clientWidth","scrollWidth","showingLeftButton","visibility","opacity","addEventListener","window","removeEventListener","filtersMainContainer","leftArrowButton","ref","onClick","height","filtersList","defaultOption","filterSelected","iconName","faSize","wrapperSize","filterLabel","bar","background","filterSeparator","filtersContainer","map","filterOption","idx","selected","value","ariaLabel","key","borderBottomColor","rightArrowButton","process","env","NODE_ENV","contextTypes","childContextTypes"],"sources":["../../../src/molecule/quick-filters/index.tsx"],"sourcesContent":["import React, {useCallback, useRef, useEffect} from 'react';\nimport classNames from 'classnames';\nimport {get} from 'lodash/fp';\nimport FaIcon from '../../atom/icon';\nimport {COLORS} from '../../variables/colors';\nimport ButtonLink from '../../atom/button-link';\nimport {ButtonLinkProps} from '../../atom/button-link/types';\nimport {WebContextValues} from '../../atom/provider/web-context';\nimport Provider, {GetSkinFromContext} from '../../atom/provider';\nimport style from './style.css';\nimport {QuickFiltersProps, propTypes} from './types';\n\nconst SCROLL_RIGHT_SIZE = 400;\nconst SCROLL_LEFT_SIZE = -400;\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 = (\n filterButtonProps: ButtonLinkProps | undefined,\n primarySkinColor: string\n) => {\n if (!filterButtonProps) return null;\n const {tag, ...rest} = filterButtonProps;\n return (\n <div\n className={style.filterButtonWrapper}\n style={{borderColor: tag?.label ? primarySkinColor : 'transparent'}}\n >\n <div className={style.filterButton}>\n <ButtonLink\n {...rest}\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 tag={\n tag\n ? {\n label: tag.label,\n customStyle: {backgroundColor: primarySkinColor, color: '#FFFFFF'}\n }\n : undefined\n }\n className={style.filterButton}\n data-testid=\"open-filters-modal-button\"\n customStyle={{borderRadius: '12px'}}\n />\n </div>\n </div>\n );\n};\n\nconst QuickFilters = (\n {primaryOption, filterOptions, filterButton, filterOptionsAriaLabel}: QuickFiltersProps,\n context: WebContextValues\n) => {\n const skin = GetSkinFromContext(context);\n const primarySkinColor = get('common.primary', skin);\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 const showingRightButton =\n list.scrollLeft + list.clientWidth < list.scrollWidth - rightArrowWidth;\n const showingLeftButton = list.scrollLeft > 0;\n rightButton.style.visibility = showingRightButton ? 'visible' : 'hidden';\n rightButton.style.opacity = showingRightButton ? '1' : '0';\n leftButton.style.visibility = showingLeftButton ? 'visible' : 'hidden';\n leftButton.style.opacity = showingLeftButton ? '1' : '0';\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} data-name=\"search\">\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 className={style.leftArrowButton}\n customStyle={{height: '36px'}}\n data-testid=\"scroll-left-button\"\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 aria-label={defaultAriaLabel}\n />\n <span className={style.filterLabel}>{defaultLabel}</span>\n <div className={style.bar} style={{background: primarySkinColor}} />\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 style={{borderBottomColor: primarySkinColor}}\n onClick={onClick}\n >\n <FaIcon\n iconName={iconName}\n size={{faSize: 20, wrapperSize: 20}}\n aria-label={ariaLabel}\n />\n <span>{label}</span>\n <div className={style.bar} style={{background: primarySkinColor}} />\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 className={style.rightArrowButton}\n onClick={handleScrollRight}\n customStyle={{height: '36px'}}\n data-testid=\"scroll-right-button\"\n />\n </div>\n </div>\n </div>\n {getFilterButton(filterButton, primarySkinColor)}\n </div>\n );\n};\n\nQuickFilters.propTypes = propTypes;\nQuickFilters.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\nexport default QuickFilters;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useRef","useEffect","classNames","FaIcon","COLORS","ButtonLink","Provider","GetSkinFromContext","style","propTypes","SCROLL_RIGHT_SIZE","SCROLL_LEFT_SIZE","handleScroll","direction","listRef","current","scrollBy","left","behavior","getFilterButton","filterButtonProps","primarySkinColor","tag","rest","createElement","className","filterButtonWrapper","borderColor","label","filterButton","_extends","icon","position","faIcon","name","size","color","cm_grey_700","neutral_500","customStyle","backgroundColor","undefined","borderRadius","QuickFilters","primaryOption","filterOptions","filterOptionsAriaLabel","context","skin","_get","defaultLabel","defaultIconName","defaultSelected","defaultAriaLabel","onDefaultClick","filtersListRef","rightBtnRef","leftBtnRef","handleScrollRight","handleScrollLeft","list","rightButton","leftButton","update","rightArrowWidth","offsetWidth","showingRightButton","scrollLeft","clientWidth","scrollWidth","showingLeftButton","visibility","opacity","addEventListener","window","removeEventListener","filtersMainContainer","leftArrowButton","ref","onClick","height","filtersList","defaultOption","filterSelected","iconName","faSize","wrapperSize","filterLabel","bar","background","filterSeparator","filtersContainer","map","filterOption","idx","selected","value","ariaLabel","key","borderBottomColor","rightArrowButton","process","env","NODE_ENV","contextTypes","childContextTypes"],"sources":["../../../src/molecule/quick-filters/index.tsx"],"sourcesContent":["import React, {useCallback, useRef, useEffect} from 'react';\nimport classNames from 'classnames';\nimport {get} from 'lodash/fp';\nimport FaIcon from '../../atom/icon';\nimport {COLORS} from '../../variables/colors';\nimport ButtonLink from '../../atom/button-link';\nimport {ButtonLinkProps} from '../../atom/button-link/types';\nimport {WebContextValues} from '../../atom/provider/web-context';\nimport Provider, {GetSkinFromContext} from '../../atom/provider';\nimport style from './style.css';\nimport {QuickFiltersProps, propTypes} from './types';\n\nconst SCROLL_RIGHT_SIZE = 400;\nconst SCROLL_LEFT_SIZE = -400;\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 = (\n filterButtonProps: ButtonLinkProps | undefined,\n primarySkinColor: string\n) => {\n if (!filterButtonProps) return null;\n const {tag, ...rest} = filterButtonProps;\n return (\n <div\n className={style.filterButtonWrapper}\n style={{borderColor: tag?.label ? primarySkinColor : 'transparent'}}\n >\n <div className={style.filterButton}>\n <ButtonLink\n {...rest}\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 tag={\n tag\n ? {\n label: tag.label,\n customStyle: {backgroundColor: primarySkinColor, color: '#FFFFFF'}\n }\n : undefined\n }\n className={style.filterButton}\n data-testid=\"open-filters-modal-button\"\n customStyle={{borderRadius: '12px'}}\n />\n </div>\n </div>\n );\n};\n\nconst QuickFilters = (\n {primaryOption, filterOptions, filterButton, filterOptionsAriaLabel}: QuickFiltersProps,\n context: WebContextValues\n) => {\n const skin = GetSkinFromContext(context);\n const primarySkinColor = get('common.primary', skin);\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 const showingRightButton =\n list.scrollLeft + list.clientWidth < list.scrollWidth - rightArrowWidth;\n const showingLeftButton = list.scrollLeft > 0;\n rightButton.style.visibility = showingRightButton ? 'visible' : 'hidden';\n rightButton.style.opacity = showingRightButton ? '1' : '0';\n leftButton.style.visibility = showingLeftButton ? 'visible' : 'hidden';\n leftButton.style.opacity = showingLeftButton ? '1' : '0';\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} data-name=\"search\">\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 className={style.leftArrowButton}\n customStyle={{height: '36px'}}\n data-testid=\"scroll-left-button\"\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 aria-label={defaultAriaLabel}\n />\n <span className={style.filterLabel}>{defaultLabel}</span>\n <div className={style.bar} style={{background: primarySkinColor}} />\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 style={{borderBottomColor: primarySkinColor}}\n onClick={onClick}\n >\n <FaIcon\n iconName={iconName}\n size={{faSize: 20, wrapperSize: 20}}\n aria-label={ariaLabel}\n />\n <span className={style.filterLabel}>{label}</span>\n <div className={style.bar} style={{background: primarySkinColor}} />\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 className={style.rightArrowButton}\n onClick={handleScrollRight}\n customStyle={{height: '36px'}}\n data-testid=\"scroll-right-button\"\n />\n </div>\n </div>\n </div>\n {getFilterButton(filterButton, primarySkinColor)}\n </div>\n );\n};\n\nQuickFilters.propTypes = propTypes;\nQuickFilters.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\nexport default QuickFilters;\n"],"mappings":"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","ignoreList":[]}
@@ -113,6 +113,8 @@
113
113
 
114
114
  .filterLabel {
115
115
  min-width: 70px;
116
+ user-select: none;
117
+ text-align: center;
116
118
  }
117
119
 
118
120
  .filterSeparator {