@equinor/fusion-react-filter 1.1.10 → 2.1.0-filter.2

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 (401) hide show
  1. package/README.md +4 -4
  2. package/dist/FilterProvider.d.ts +7 -28
  3. package/dist/FilterProvider.d.ts.map +1 -1
  4. package/dist/FilterProvider.js +24 -31
  5. package/dist/FilterProvider.js.map +1 -1
  6. package/dist/actions.d.ts +32 -0
  7. package/dist/actions.d.ts.map +1 -0
  8. package/dist/actions.js +20 -0
  9. package/dist/actions.js.map +1 -0
  10. package/dist/components/filter/FilterOptionHeader.d.ts +7 -0
  11. package/dist/components/filter/FilterOptionHeader.d.ts.map +1 -0
  12. package/dist/components/filter/FilterOptionHeader.js +69 -0
  13. package/dist/components/filter/FilterOptionHeader.js.map +1 -0
  14. package/dist/components/filter/checkbox/CheckboxFilter.d.ts +16 -0
  15. package/dist/components/filter/checkbox/CheckboxFilter.d.ts.map +1 -0
  16. package/dist/components/filter/checkbox/CheckboxFilter.js +16 -0
  17. package/dist/components/filter/checkbox/CheckboxFilter.js.map +1 -0
  18. package/dist/components/filter/checkbox/CheckboxFilter.style.d.ts +5 -0
  19. package/dist/components/filter/checkbox/CheckboxFilter.style.d.ts.map +1 -0
  20. package/dist/components/filter/checkbox/CheckboxFilter.style.js +19 -0
  21. package/dist/components/filter/checkbox/CheckboxFilter.style.js.map +1 -0
  22. package/dist/components/filter/checkbox/CheckboxFilterOption.d.ts +14 -0
  23. package/dist/components/filter/checkbox/CheckboxFilterOption.d.ts.map +1 -0
  24. package/dist/components/filter/checkbox/CheckboxFilterOption.js +19 -0
  25. package/dist/components/filter/checkbox/CheckboxFilterOption.js.map +1 -0
  26. package/dist/components/filter/checkbox/CheckboxFilterOption.style.d.ts +3 -0
  27. package/dist/components/filter/checkbox/CheckboxFilterOption.style.d.ts.map +1 -0
  28. package/dist/components/filter/checkbox/CheckboxFilterOption.style.js +40 -0
  29. package/dist/components/filter/checkbox/CheckboxFilterOption.style.js.map +1 -0
  30. package/dist/components/filter/checkbox/CheckboxFilterOptionAll.d.ts +3 -0
  31. package/dist/components/filter/checkbox/CheckboxFilterOptionAll.d.ts.map +1 -0
  32. package/dist/components/filter/checkbox/CheckboxFilterOptionAll.js +24 -0
  33. package/dist/components/filter/checkbox/CheckboxFilterOptionAll.js.map +1 -0
  34. package/dist/components/filter/checkbox/CheckboxFilterOptions.d.ts +3 -0
  35. package/dist/components/filter/checkbox/CheckboxFilterOptions.d.ts.map +1 -0
  36. package/dist/components/filter/checkbox/CheckboxFilterOptions.js +37 -0
  37. package/dist/components/filter/checkbox/CheckboxFilterOptions.js.map +1 -0
  38. package/dist/components/filter/checkbox/CheckboxFilterProvider.d.ts +13 -0
  39. package/dist/components/filter/checkbox/CheckboxFilterProvider.d.ts.map +1 -0
  40. package/dist/components/filter/checkbox/CheckboxFilterProvider.js +16 -0
  41. package/dist/components/filter/checkbox/CheckboxFilterProvider.js.map +1 -0
  42. package/dist/components/filter/checkbox/context.d.ts +4 -0
  43. package/dist/components/filter/checkbox/context.d.ts.map +1 -0
  44. package/dist/components/filter/checkbox/context.js +3 -0
  45. package/dist/components/filter/checkbox/context.js.map +1 -0
  46. package/dist/components/filter/checkbox/index.d.ts +2 -0
  47. package/dist/components/filter/checkbox/index.d.ts.map +1 -0
  48. package/dist/components/filter/checkbox/index.js +2 -0
  49. package/dist/components/filter/checkbox/index.js.map +1 -0
  50. package/dist/components/filter/checkbox/types.d.ts +7 -0
  51. package/dist/components/filter/checkbox/types.d.ts.map +1 -0
  52. package/dist/components/filter/checkbox/types.js +2 -0
  53. package/dist/components/filter/checkbox/types.js.map +1 -0
  54. package/dist/components/filter/index.d.ts +5 -0
  55. package/dist/components/filter/index.d.ts.map +1 -0
  56. package/dist/components/filter/index.js +5 -0
  57. package/dist/components/filter/index.js.map +1 -0
  58. package/dist/components/filter/search/SearchFilter.d.ts +17 -0
  59. package/dist/components/filter/search/SearchFilter.d.ts.map +1 -0
  60. package/dist/components/filter/search/SearchFilter.js +47 -0
  61. package/dist/components/filter/search/SearchFilter.js.map +1 -0
  62. package/dist/components/filter/search/index.d.ts +2 -0
  63. package/dist/components/filter/search/index.d.ts.map +1 -0
  64. package/dist/components/filter/search/index.js +2 -0
  65. package/dist/components/filter/search/index.js.map +1 -0
  66. package/dist/components/filter/types.d.ts +7 -0
  67. package/dist/components/filter/types.d.ts.map +1 -0
  68. package/dist/components/filter/types.js +2 -0
  69. package/dist/components/filter/types.js.map +1 -0
  70. package/dist/components/index.d.ts +4 -0
  71. package/dist/components/index.d.ts.map +1 -0
  72. package/dist/components/index.js +4 -0
  73. package/dist/components/index.js.map +1 -0
  74. package/dist/components/misc/ClearFilterButton.d.ts +10 -0
  75. package/dist/components/misc/ClearFilterButton.d.ts.map +1 -0
  76. package/dist/components/misc/ClearFilterButton.js +25 -0
  77. package/dist/components/misc/ClearFilterButton.js.map +1 -0
  78. package/dist/components/misc/FilterContainer.d.ts +12 -0
  79. package/dist/components/misc/FilterContainer.d.ts.map +1 -0
  80. package/dist/components/misc/FilterContainer.js +18 -0
  81. package/dist/components/misc/FilterContainer.js.map +1 -0
  82. package/dist/components/misc/index.d.ts +3 -0
  83. package/dist/components/misc/index.d.ts.map +1 -0
  84. package/dist/components/misc/index.js +3 -0
  85. package/dist/components/misc/index.js.map +1 -0
  86. package/dist/components/panel/FilterPanel.d.ts +19 -0
  87. package/dist/components/panel/FilterPanel.d.ts.map +1 -0
  88. package/dist/components/panel/FilterPanel.js +17 -0
  89. package/dist/components/panel/FilterPanel.js.map +1 -0
  90. package/dist/components/panel/FilterPanelBar.d.ts +3 -0
  91. package/dist/components/panel/FilterPanelBar.d.ts.map +1 -0
  92. package/dist/components/panel/FilterPanelBar.js +31 -0
  93. package/dist/components/panel/FilterPanelBar.js.map +1 -0
  94. package/dist/components/panel/FilterPanelFilters.d.ts +3 -0
  95. package/dist/components/panel/FilterPanelFilters.d.ts.map +1 -0
  96. package/dist/components/panel/FilterPanelFilters.js +13 -0
  97. package/dist/components/panel/FilterPanelFilters.js.map +1 -0
  98. package/dist/components/panel/FilterPanelProvider.d.ts +32 -0
  99. package/dist/components/panel/FilterPanelProvider.d.ts.map +1 -0
  100. package/dist/components/panel/FilterPanelProvider.js +35 -0
  101. package/dist/components/panel/FilterPanelProvider.js.map +1 -0
  102. package/dist/components/panel/FilterPanelSelector.d.ts +7 -0
  103. package/dist/components/panel/FilterPanelSelector.d.ts.map +1 -0
  104. package/dist/components/panel/FilterPanelSelector.js +17 -0
  105. package/dist/components/panel/FilterPanelSelector.js.map +1 -0
  106. package/dist/components/panel/index.d.ts +5 -0
  107. package/dist/components/panel/index.d.ts.map +1 -0
  108. package/dist/components/panel/index.js +5 -0
  109. package/dist/components/panel/index.js.map +1 -0
  110. package/dist/context.d.ts +6 -0
  111. package/dist/context.d.ts.map +1 -0
  112. package/dist/context.js +6 -0
  113. package/dist/context.js.map +1 -0
  114. package/dist/hooks/index.d.ts +12 -0
  115. package/dist/hooks/index.d.ts.map +1 -0
  116. package/dist/hooks/index.js +25 -0
  117. package/dist/hooks/index.js.map +1 -0
  118. package/dist/hooks/useClearFilter.d.ts +9 -0
  119. package/dist/hooks/useClearFilter.d.ts.map +1 -0
  120. package/dist/hooks/useClearFilter.js +30 -0
  121. package/dist/hooks/useClearFilter.js.map +1 -0
  122. package/dist/hooks/useFilter.d.ts +7 -0
  123. package/dist/hooks/useFilter.d.ts.map +1 -0
  124. package/dist/hooks/useFilter.js +26 -0
  125. package/dist/hooks/useFilter.js.map +1 -0
  126. package/dist/hooks/useFilterData.d.ts +11 -0
  127. package/dist/hooks/useFilterData.d.ts.map +1 -0
  128. package/dist/hooks/useFilterData.js +39 -0
  129. package/dist/hooks/useFilterData.js.map +1 -0
  130. package/dist/hooks/useFilterSelection.d.ts +5 -9
  131. package/dist/hooks/useFilterSelection.d.ts.map +1 -1
  132. package/dist/hooks/useFilterSelection.js +6 -21
  133. package/dist/hooks/useFilterSelection.js.map +1 -1
  134. package/dist/index.d.ts +4 -14
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +3 -15
  137. package/dist/index.js.map +1 -1
  138. package/dist/options/FilterOptionProvider.d.ts +12 -0
  139. package/dist/options/FilterOptionProvider.d.ts.map +1 -0
  140. package/dist/options/FilterOptionProvider.js +55 -0
  141. package/dist/options/FilterOptionProvider.js.map +1 -0
  142. package/dist/options/actions.d.ts +8 -0
  143. package/dist/options/actions.d.ts.map +1 -0
  144. package/dist/options/actions.js +6 -0
  145. package/dist/options/actions.js.map +1 -0
  146. package/dist/options/context.d.ts +6 -0
  147. package/dist/options/context.d.ts.map +1 -0
  148. package/dist/options/context.js +7 -0
  149. package/dist/options/context.js.map +1 -0
  150. package/dist/options/create-options.d.ts +4 -0
  151. package/dist/options/create-options.d.ts.map +1 -0
  152. package/dist/options/create-options.js +24 -0
  153. package/dist/options/create-options.js.map +1 -0
  154. package/dist/options/index.d.ts +6 -0
  155. package/dist/options/index.d.ts.map +1 -0
  156. package/dist/options/index.js +6 -0
  157. package/dist/options/index.js.map +1 -0
  158. package/dist/options/reducer.d.ts +58 -0
  159. package/dist/options/reducer.d.ts.map +1 -0
  160. package/dist/options/reducer.js +4 -0
  161. package/dist/options/reducer.js.map +1 -0
  162. package/dist/options/search/filter-option-match.d.ts +7 -0
  163. package/dist/options/search/filter-option-match.d.ts.map +1 -0
  164. package/dist/options/search/filter-option-match.js +10 -0
  165. package/dist/options/search/filter-option-match.js.map +1 -0
  166. package/dist/options/search/filter-option-search.d.ts +8 -0
  167. package/dist/options/search/filter-option-search.d.ts.map +1 -0
  168. package/dist/options/search/filter-option-search.js +12 -0
  169. package/dist/options/search/filter-option-search.js.map +1 -0
  170. package/dist/options/search/index.d.ts +2 -0
  171. package/dist/options/search/index.d.ts.map +1 -0
  172. package/dist/options/search/index.js +2 -0
  173. package/dist/options/search/index.js.map +1 -0
  174. package/dist/options/search/types.d.ts +9 -0
  175. package/dist/options/search/types.d.ts.map +1 -0
  176. package/dist/options/search/types.js +2 -0
  177. package/dist/options/search/types.js.map +1 -0
  178. package/dist/options/search/useFilterOptionSearch.d.ts +12 -0
  179. package/dist/options/search/useFilterOptionSearch.d.ts.map +1 -0
  180. package/dist/options/search/useFilterOptionSearch.js +28 -0
  181. package/dist/options/search/useFilterOptionSearch.js.map +1 -0
  182. package/dist/options/types.d.ts +32 -0
  183. package/dist/options/types.d.ts.map +1 -0
  184. package/dist/options/types.js +2 -0
  185. package/dist/options/types.js.map +1 -0
  186. package/dist/reducers.d.ts +170 -0
  187. package/dist/reducers.d.ts.map +1 -0
  188. package/dist/reducers.js +23 -0
  189. package/dist/reducers.js.map +1 -0
  190. package/dist/{types/Filter.d.ts → types.d.ts} +19 -16
  191. package/dist/types.d.ts.map +1 -0
  192. package/dist/types.js +2 -0
  193. package/dist/types.js.map +1 -0
  194. package/package.json +13 -9
  195. package/dist/FilterContext.d.ts +0 -8
  196. package/dist/FilterContext.d.ts.map +0 -1
  197. package/dist/FilterContext.js +0 -4
  198. package/dist/FilterContext.js.map +0 -1
  199. package/dist/components/CheckBoxFilter/CheckBoxFilter.d.ts +0 -34
  200. package/dist/components/CheckBoxFilter/CheckBoxFilter.d.ts.map +0 -1
  201. package/dist/components/CheckBoxFilter/CheckBoxFilter.js +0 -76
  202. package/dist/components/CheckBoxFilter/CheckBoxFilter.js.map +0 -1
  203. package/dist/components/CheckBoxFilter/CheckBoxOption.d.ts +0 -14
  204. package/dist/components/CheckBoxFilter/CheckBoxOption.d.ts.map +0 -1
  205. package/dist/components/CheckBoxFilter/CheckBoxOption.js +0 -10
  206. package/dist/components/CheckBoxFilter/CheckBoxOption.js.map +0 -1
  207. package/dist/components/CheckBoxFilter/CheckBoxOption.style.d.ts +0 -3
  208. package/dist/components/CheckBoxFilter/CheckBoxOption.style.d.ts.map +0 -1
  209. package/dist/components/CheckBoxFilter/CheckBoxOption.style.js +0 -24
  210. package/dist/components/CheckBoxFilter/CheckBoxOption.style.js.map +0 -1
  211. package/dist/components/CheckBoxFilter/CheckboxFilter.style.d.ts +0 -3
  212. package/dist/components/CheckBoxFilter/CheckboxFilter.style.d.ts.map +0 -1
  213. package/dist/components/CheckBoxFilter/CheckboxFilter.style.js +0 -29
  214. package/dist/components/CheckBoxFilter/CheckboxFilter.style.js.map +0 -1
  215. package/dist/components/CheckBoxFilter/SelectAllOption.d.ts +0 -12
  216. package/dist/components/CheckBoxFilter/SelectAllOption.d.ts.map +0 -1
  217. package/dist/components/CheckBoxFilter/SelectAllOption.js +0 -22
  218. package/dist/components/CheckBoxFilter/SelectAllOption.js.map +0 -1
  219. package/dist/components/CheckBoxFilter/index.d.ts +0 -5
  220. package/dist/components/CheckBoxFilter/index.d.ts.map +0 -1
  221. package/dist/components/CheckBoxFilter/index.js +0 -5
  222. package/dist/components/CheckBoxFilter/index.js.map +0 -1
  223. package/dist/components/FilterSection/FilterSection.d.ts +0 -29
  224. package/dist/components/FilterSection/FilterSection.d.ts.map +0 -1
  225. package/dist/components/FilterSection/FilterSection.js +0 -64
  226. package/dist/components/FilterSection/FilterSection.js.map +0 -1
  227. package/dist/components/FilterSection/FilterSection.style.d.ts +0 -3
  228. package/dist/components/FilterSection/FilterSection.style.d.ts.map +0 -1
  229. package/dist/components/FilterSection/FilterSection.style.js +0 -56
  230. package/dist/components/FilterSection/FilterSection.style.js.map +0 -1
  231. package/dist/components/FilterSection/index.d.ts +0 -3
  232. package/dist/components/FilterSection/index.d.ts.map +0 -1
  233. package/dist/components/FilterSection/index.js +0 -3
  234. package/dist/components/FilterSection/index.js.map +0 -1
  235. package/dist/components/FilterSelectionChips/FilterSelectionChips.d.ts +0 -7
  236. package/dist/components/FilterSelectionChips/FilterSelectionChips.d.ts.map +0 -1
  237. package/dist/components/FilterSelectionChips/FilterSelectionChips.js +0 -18
  238. package/dist/components/FilterSelectionChips/FilterSelectionChips.js.map +0 -1
  239. package/dist/components/FilterSelectionChips/FilterSelectionChips.style.d.ts +0 -3
  240. package/dist/components/FilterSelectionChips/FilterSelectionChips.style.d.ts.map +0 -1
  241. package/dist/components/FilterSelectionChips/FilterSelectionChips.style.js +0 -31
  242. package/dist/components/FilterSelectionChips/FilterSelectionChips.style.js.map +0 -1
  243. package/dist/components/FilterSelectionChips/index.d.ts +0 -2
  244. package/dist/components/FilterSelectionChips/index.d.ts.map +0 -1
  245. package/dist/components/FilterSelectionChips/index.js +0 -2
  246. package/dist/components/FilterSelectionChips/index.js.map +0 -1
  247. package/dist/components/FilterSelectionChips/useChipsSelection.d.ts +0 -9
  248. package/dist/components/FilterSelectionChips/useChipsSelection.d.ts.map +0 -1
  249. package/dist/components/FilterSelectionChips/useChipsSelection.js +0 -26
  250. package/dist/components/FilterSelectionChips/useChipsSelection.js.map +0 -1
  251. package/dist/components/FilterSelector/FilterCategory.d.ts +0 -7
  252. package/dist/components/FilterSelector/FilterCategory.d.ts.map +0 -1
  253. package/dist/components/FilterSelector/FilterCategory.js +0 -24
  254. package/dist/components/FilterSelector/FilterCategory.js.map +0 -1
  255. package/dist/components/FilterSelector/FilterCategory.style.d.ts +0 -3
  256. package/dist/components/FilterSelector/FilterCategory.style.d.ts.map +0 -1
  257. package/dist/components/FilterSelector/FilterCategory.style.js +0 -12
  258. package/dist/components/FilterSelector/FilterCategory.style.js.map +0 -1
  259. package/dist/components/FilterSelector/FilterSelector.d.ts +0 -31
  260. package/dist/components/FilterSelector/FilterSelector.d.ts.map +0 -1
  261. package/dist/components/FilterSelector/FilterSelector.js +0 -51
  262. package/dist/components/FilterSelector/FilterSelector.js.map +0 -1
  263. package/dist/components/FilterSelector/FilterSelector.style.d.ts +0 -3
  264. package/dist/components/FilterSelector/FilterSelector.style.d.ts.map +0 -1
  265. package/dist/components/FilterSelector/FilterSelector.style.js +0 -44
  266. package/dist/components/FilterSelector/FilterSelector.style.js.map +0 -1
  267. package/dist/components/FilterSelector/index.d.ts +0 -4
  268. package/dist/components/FilterSelector/index.d.ts.map +0 -1
  269. package/dist/components/FilterSelector/index.js +0 -4
  270. package/dist/components/FilterSelector/index.js.map +0 -1
  271. package/dist/components/GeneralBar/GeneralBar.d.ts +0 -26
  272. package/dist/components/GeneralBar/GeneralBar.d.ts.map +0 -1
  273. package/dist/components/GeneralBar/GeneralBar.js +0 -63
  274. package/dist/components/GeneralBar/GeneralBar.js.map +0 -1
  275. package/dist/components/GeneralBar/GeneralBar.style.d.ts +0 -3
  276. package/dist/components/GeneralBar/GeneralBar.style.d.ts.map +0 -1
  277. package/dist/components/GeneralBar/GeneralBar.style.js +0 -20
  278. package/dist/components/GeneralBar/GeneralBar.style.js.map +0 -1
  279. package/dist/components/GeneralBar/index.d.ts +0 -3
  280. package/dist/components/GeneralBar/index.d.ts.map +0 -1
  281. package/dist/components/GeneralBar/index.js +0 -3
  282. package/dist/components/GeneralBar/index.js.map +0 -1
  283. package/dist/components/HorizontalBar/HorizontalBar.d.ts +0 -10
  284. package/dist/components/HorizontalBar/HorizontalBar.d.ts.map +0 -1
  285. package/dist/components/HorizontalBar/HorizontalBar.js +0 -23
  286. package/dist/components/HorizontalBar/HorizontalBar.js.map +0 -1
  287. package/dist/components/HorizontalBar/index.d.ts +0 -3
  288. package/dist/components/HorizontalBar/index.d.ts.map +0 -1
  289. package/dist/components/HorizontalBar/index.js +0 -3
  290. package/dist/components/HorizontalBar/index.js.map +0 -1
  291. package/dist/components/HorizontalFilterPanel/HorizontalFilterPanel.d.ts +0 -17
  292. package/dist/components/HorizontalFilterPanel/HorizontalFilterPanel.d.ts.map +0 -1
  293. package/dist/components/HorizontalFilterPanel/HorizontalFilterPanel.js +0 -28
  294. package/dist/components/HorizontalFilterPanel/HorizontalFilterPanel.js.map +0 -1
  295. package/dist/components/HorizontalFilterPanel/index.d.ts +0 -3
  296. package/dist/components/HorizontalFilterPanel/index.d.ts.map +0 -1
  297. package/dist/components/HorizontalFilterPanel/index.js +0 -3
  298. package/dist/components/HorizontalFilterPanel/index.js.map +0 -1
  299. package/dist/components/Icon/index.d.ts +0 -11
  300. package/dist/components/Icon/index.d.ts.map +0 -1
  301. package/dist/components/Icon/index.js +0 -16
  302. package/dist/components/Icon/index.js.map +0 -1
  303. package/dist/components/RadioFilter/RadioFilter.d.ts +0 -17
  304. package/dist/components/RadioFilter/RadioFilter.d.ts.map +0 -1
  305. package/dist/components/RadioFilter/RadioFilter.js +0 -51
  306. package/dist/components/RadioFilter/RadioFilter.js.map +0 -1
  307. package/dist/components/RadioFilter/RadioFilter.style.d.ts +0 -3
  308. package/dist/components/RadioFilter/RadioFilter.style.d.ts.map +0 -1
  309. package/dist/components/RadioFilter/RadioFilter.style.js +0 -38
  310. package/dist/components/RadioFilter/RadioFilter.style.js.map +0 -1
  311. package/dist/components/RadioFilter/index.d.ts +0 -3
  312. package/dist/components/RadioFilter/index.d.ts.map +0 -1
  313. package/dist/components/RadioFilter/index.js +0 -3
  314. package/dist/components/RadioFilter/index.js.map +0 -1
  315. package/dist/epic/StatefulObserver.d.ts +0 -8
  316. package/dist/epic/StatefulObserver.d.ts.map +0 -1
  317. package/dist/epic/StatefulObserver.js +0 -26
  318. package/dist/epic/StatefulObserver.js.map +0 -1
  319. package/dist/epic/epic.d.ts +0 -14
  320. package/dist/epic/epic.d.ts.map +0 -1
  321. package/dist/epic/epic.js +0 -2
  322. package/dist/epic/epic.js.map +0 -1
  323. package/dist/epic/hooks/useObservableSelector.d.ts +0 -14
  324. package/dist/epic/hooks/useObservableSelector.d.ts.map +0 -1
  325. package/dist/epic/hooks/useObservableSelector.js +0 -16
  326. package/dist/epic/hooks/useObservableSelector.js.map +0 -1
  327. package/dist/epic/hooks/useObservableState.d.ts +0 -13
  328. package/dist/epic/hooks/useObservableState.d.ts.map +0 -1
  329. package/dist/epic/hooks/useObservableState.js +0 -18
  330. package/dist/epic/hooks/useObservableState.js.map +0 -1
  331. package/dist/epic/hooks/useSelector.d.ts +0 -10
  332. package/dist/epic/hooks/useSelector.d.ts.map +0 -1
  333. package/dist/epic/hooks/useSelector.js +0 -14
  334. package/dist/epic/hooks/useSelector.js.map +0 -1
  335. package/dist/epic/reducer.d.ts +0 -56
  336. package/dist/epic/reducer.d.ts.map +0 -1
  337. package/dist/epic/reducer.js +0 -78
  338. package/dist/epic/reducer.js.map +0 -1
  339. package/dist/filterStore/actions.d.ts +0 -23
  340. package/dist/filterStore/actions.d.ts.map +0 -1
  341. package/dist/filterStore/actions.js +0 -18
  342. package/dist/filterStore/actions.js.map +0 -1
  343. package/dist/filterStore/epics.d.ts +0 -10
  344. package/dist/filterStore/epics.d.ts.map +0 -1
  345. package/dist/filterStore/epics.js +0 -10
  346. package/dist/filterStore/epics.js.map +0 -1
  347. package/dist/filterStore/reducers.d.ts +0 -4
  348. package/dist/filterStore/reducers.d.ts.map +0 -1
  349. package/dist/filterStore/reducers.js +0 -43
  350. package/dist/filterStore/reducers.js.map +0 -1
  351. package/dist/filterStore/store.d.ts +0 -106
  352. package/dist/filterStore/store.d.ts.map +0 -1
  353. package/dist/filterStore/store.js +0 -158
  354. package/dist/filterStore/store.js.map +0 -1
  355. package/dist/hooks/useEventListener.d.ts +0 -4
  356. package/dist/hooks/useEventListener.d.ts.map +0 -1
  357. package/dist/hooks/useEventListener.js +0 -14
  358. package/dist/hooks/useEventListener.js.map +0 -1
  359. package/dist/hooks/useFilterChangeHandler.d.ts +0 -26
  360. package/dist/hooks/useFilterChangeHandler.d.ts.map +0 -1
  361. package/dist/hooks/useFilterChangeHandler.js +0 -43
  362. package/dist/hooks/useFilterChangeHandler.js.map +0 -1
  363. package/dist/hooks/useFilterContext.d.ts +0 -4
  364. package/dist/hooks/useFilterContext.d.ts.map +0 -1
  365. package/dist/hooks/useFilterContext.js +0 -5
  366. package/dist/hooks/useFilterContext.js.map +0 -1
  367. package/dist/hooks/useFilterOptionsBuilder.d.ts +0 -27
  368. package/dist/hooks/useFilterOptionsBuilder.d.ts.map +0 -1
  369. package/dist/hooks/useFilterOptionsBuilder.js +0 -39
  370. package/dist/hooks/useFilterOptionsBuilder.js.map +0 -1
  371. package/dist/hooks/useFilterOptionsCounter.d.ts +0 -16
  372. package/dist/hooks/useFilterOptionsCounter.d.ts.map +0 -1
  373. package/dist/hooks/useFilterOptionsCounter.js +0 -32
  374. package/dist/hooks/useFilterOptionsCounter.js.map +0 -1
  375. package/dist/hooks/useFilterStore.d.ts +0 -25
  376. package/dist/hooks/useFilterStore.d.ts.map +0 -1
  377. package/dist/hooks/useFilterStore.js +0 -34
  378. package/dist/hooks/useFilterStore.js.map +0 -1
  379. package/dist/hooks/useResizablePanel.d.ts +0 -20
  380. package/dist/hooks/useResizablePanel.d.ts.map +0 -1
  381. package/dist/hooks/useResizablePanel.js +0 -71
  382. package/dist/hooks/useResizablePanel.js.map +0 -1
  383. package/dist/types/Filter.d.ts.map +0 -1
  384. package/dist/types/Filter.js +0 -2
  385. package/dist/types/Filter.js.map +0 -1
  386. package/dist/types/FilterContainerProps.d.ts +0 -10
  387. package/dist/types/FilterContainerProps.d.ts.map +0 -1
  388. package/dist/types/FilterContainerProps.js +0 -2
  389. package/dist/types/FilterContainerProps.js.map +0 -1
  390. package/dist/types/FilterCounters.d.ts +0 -3
  391. package/dist/types/FilterCounters.d.ts.map +0 -1
  392. package/dist/types/FilterCounters.js +0 -2
  393. package/dist/types/FilterCounters.js.map +0 -1
  394. package/dist/types/FilterOption.d.ts +0 -13
  395. package/dist/types/FilterOption.d.ts.map +0 -1
  396. package/dist/types/FilterOption.js +0 -2
  397. package/dist/types/FilterOption.js.map +0 -1
  398. package/dist/types/FilterStoreState.d.ts +0 -6
  399. package/dist/types/FilterStoreState.d.ts.map +0 -1
  400. package/dist/types/FilterStoreState.js +0 -2
  401. package/dist/types/FilterStoreState.js.map +0 -1
package/README.md CHANGED
@@ -1,15 +1,15 @@
1
1
  <!--prettier-ignore-start-->
2
- ## `@equinor/fusion-react-filterpane` [![Published on npm](https://img.shields.io/npm/v/@equinor/fusion-react-filterpane.svg)](https://www.npmjs.com/package/@equinor/fusion-react-filterpane)
2
+ ## `@equinor/fusion-react-filter` [![Published on npm](https://img.shields.io/npm/v/@equinor/fusion-react-filter.svg)](https://www.npmjs.com/package/@equinor/fusion-react-filter)
3
3
 
4
4
  Adds filter functionality through the FilterProvider.
5
- Also comes with various predefined filters and panels for building out a filterpane.
5
+ Also comes with various predefined filters and panels for building out a filter.
6
6
 
7
- Consult the [Storybook](https://equinor.github.io/fusion-react-components/?path=/docs/filterpane-filterpane) for more detailed examples and documentation.
7
+ Consult the [Storybook](https://equinor.github.io/fusion-react-components/?path=/docs/data-filter) for more detailed examples and documentation.
8
8
 
9
9
  ### Installation
10
10
 
11
11
  ```sh
12
- npm install @equinor/fusion-react-filterpane
12
+ npm install @equinor/fusion-react-filter
13
13
  ```
14
14
 
15
15
  ## Example Usage
@@ -1,31 +1,10 @@
1
- import { PropsWithChildren } from 'react';
2
- export declare type TSelection = any;
3
- declare type FilterProviderProps<TSelections extends Record<string, TSelection>, TData> = {
4
- initialData: TData;
5
- initialFilters?: TSelections;
1
+ /// <reference types="react" />
2
+ import { Filter } from './types';
3
+ export declare type FilterProviderProps<TSelections extends Record<string, unknown>, TData> = {
4
+ data: TData[];
5
+ initialSelection?: TSelections;
6
+ initialFilters?: Record<string, Filter<TData, TSelections>>;
6
7
  };
7
- /**
8
- *Filter Context provider for filtering functionality.
9
- *Access data using const { filteredData, selection, store } = useFilterStore();
10
- *
11
- * @param initialData The full dataset that should be filtered.
12
- * @param initialFilters Filters to be registered when first loading the provider.
13
- * Can also send in data that should be filtered on load. keys must correspond with keys added to defined filter settings.
14
- * Or they will not be recognized
15
- *
16
- * @example
17
- *
18
- * initialFilter = {firstName: ['Helge'],lastName:[] } //predefined filters.
19
- * //firstName will be added to selections with a predefined selection ('Helge'),
20
- * //while lastName is added to empty([]) to selections.
21
- *
22
- * const data = getData();
23
- *
24
- * <FilterProvider initialData={data} initialFilters={initialFilter}>
25
- * <MyFilterPanel />
26
- * <MyApp> />
27
- * </FilterProvider>
28
- */
29
- export declare const FilterProvider: <TSelections extends Record<string, unknown>, TData>(props: PropsWithChildren<FilterProviderProps<TSelections, TData>>) => JSX.Element;
8
+ export declare const FilterProvider: <TSelections extends Record<string, any>, TData extends Record<string, any> = Record<string, any>>(props: import("react").PropsWithChildren<FilterProviderProps<TSelections, TData>>) => JSX.Element;
30
9
  export default FilterProvider;
31
10
  //# sourceMappingURL=FilterProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterProvider.d.ts","sourceRoot":"","sources":["../src/FilterProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAsB,MAAM,OAAO,CAAC;AAI9D,oBAAY,UAAU,GAAG,GAAG,CAAC;AAE7B,aAAK,mBAAmB,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EAAE,KAAK,IAAI;IAChF,WAAW,EAAE,KAAK,CAAC;IACnB,cAAc,CAAC,EAAE,WAAW,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,cAAc,6HAExB,WASF,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"FilterProvider.d.ts","sourceRoot":"","sources":["../src/FilterProvider.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,MAAM,EAAiB,MAAM,SAAS,CAAC;AAIhD,oBAAY,mBAAmB,CAAC,WAAW,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,IAAI;IACpF,IAAI,EAAE,KAAK,EAAE,CAAC;IACd,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;CAC7D,CAAC;AAEF,eAAO,MAAM,cAAc,2LAKxB,WA2BF,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -1,36 +1,29 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useEffect, useMemo } from 'react';
3
- import FilterContext from './FilterContext';
4
- import { createFilterStore } from './filterStore/store';
5
- /**
6
- *Filter Context provider for filtering functionality.
7
- *Access data using const { filteredData, selection, store } = useFilterStore();
8
- *
9
- * @param initialData The full dataset that should be filtered.
10
- * @param initialFilters Filters to be registered when first loading the provider.
11
- * Can also send in data that should be filtered on load. keys must correspond with keys added to defined filter settings.
12
- * Or they will not be recognized
13
- *
14
- * @example
15
- *
16
- * initialFilter = {firstName: ['Helge'],lastName:[] } //predefined filters.
17
- * //firstName will be added to selections with a predefined selection ('Helge'),
18
- * //while lastName is added to empty([]) to selections.
19
- *
20
- * const data = getData();
21
- *
22
- * <FilterProvider initialData={data} initialFilters={initialFilter}>
23
- * <MyFilterPanel />
24
- * <MyApp> />
25
- * </FilterProvider>
26
- */
2
+ import { useLayoutEffect, useState } from 'react';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { useObservable, useSubscription } from '@equinor/fusion-react-observable';
5
+ import { createSelectionReducer, createDataReducer, createFilterReducer } from './reducers';
6
+ import { Provider } from './context';
7
+ import { actions } from './actions';
8
+ import { filterData } from './hooks/useFilterData';
27
9
  export const FilterProvider = (props) => {
28
- const { initialData, initialFilters = {}, children } = props;
29
- const store = useMemo(() => createFilterStore(initialData, initialFilters || {}), []);
30
- useEffect(() => {
31
- store.setData(initialData);
32
- }, [initialData]);
33
- return _jsx(FilterContext.Provider, Object.assign({ value: { store } }, { children: children }), void 0);
10
+ const { data, initialSelection = {}, initialFilters = {}, children, } = props;
11
+ const source$ = useObservable(createDataReducer(data), data);
12
+ const selection$ = useObservable(createSelectionReducer(initialSelection), initialSelection);
13
+ const filter$ = useObservable(createFilterReducer({}), initialFilters);
14
+ const [data$] = useState(new BehaviorSubject(data));
15
+ useSubscription(filterData(source$, filter$, selection$), data$);
16
+ const context = {
17
+ source$,
18
+ filter$,
19
+ selection$,
20
+ data$,
21
+ /** type issues, might fix later */
22
+ };
23
+ useLayoutEffect(() => {
24
+ source$.next(actions.source.update(data));
25
+ }, [source$, data]);
26
+ return _jsx(Provider, Object.assign({ value: context }, { children: children }), void 0);
34
27
  };
35
28
  export default FilterProvider;
36
29
  //# sourceMappingURL=FilterProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterProvider.js","sourceRoot":"","sources":["../src/FilterProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AASxD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAiE,EACpD,EAAE;IACf,MAAM,EAAE,WAAW,EAAE,cAAc,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC7D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,cAAc,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEtF,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,OAAO,KAAC,aAAa,CAAC,QAAQ,kBAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAG,QAAQ,YAA0B,CAAC;AACvF,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"FilterProvider.js","sourceRoot":"","sources":["../src/FilterProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE5F,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAQnD,MAAM,CAAC,MAAM,cAAc,GAAG,CAI5B,KAAuE,EAC1D,EAAE;IACf,MAAM,EACJ,IAAI,EACJ,gBAAgB,GAAG,EAAiB,EACpC,cAAc,GAAG,EAA4C,EAC7D,QAAQ,GACT,GAAG,KAAK,CAAC;IACV,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC7F,MAAM,OAAO,GAAG,aAAa,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC;IAEvE,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC,CAAC;IAC7D,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IAEjE,MAAM,OAAO,GAAG;QACd,OAAO;QACP,OAAO;QACP,UAAU;QACV,KAAK;QACL,mCAAmC;KACR,CAAC;IAE9B,eAAe,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5C,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpB,OAAO,KAAC,QAAQ,kBAAC,KAAK,EAAE,OAAO,gBAAG,QAAQ,YAAY,CAAC;AACzD,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { ActionType } from 'typesafe-actions';
2
+ import { Filter } from './types';
3
+ export declare type SelectionValues<TValue = unknown> = Record<string, TValue>;
4
+ export declare const filter: {
5
+ add: import("typesafe-actions").PayloadActionCreator<"@FILTER/FILTERS_ADD", Filter<any, any>>;
6
+ remove: import("typesafe-actions").PayloadActionCreator<"@FILTER/FILTERS_REMOVE", string>;
7
+ };
8
+ export declare const selection: {
9
+ set: import("typesafe-actions").PayloadActionCreator<"@FILTER/SELECTION_SET", SelectionValues<unknown>>;
10
+ initial: import("typesafe-actions").PayloadActionCreator<"@FILTER/SELECTION_INITIAL", SelectionValues<unknown>>;
11
+ clear: import("typesafe-actions").PayloadActionCreator<"@FILTER/SELECTION_CLEAR", void>;
12
+ };
13
+ export declare const source: {
14
+ update: import("typesafe-actions").PayloadActionCreator<"@FILTER/SOURCE_UPDATE", unknown>;
15
+ };
16
+ export declare const actions: {
17
+ filter: {
18
+ add: import("typesafe-actions").PayloadActionCreator<"@FILTER/FILTERS_ADD", Filter<any, any>>;
19
+ remove: import("typesafe-actions").PayloadActionCreator<"@FILTER/FILTERS_REMOVE", string>;
20
+ };
21
+ selection: {
22
+ set: import("typesafe-actions").PayloadActionCreator<"@FILTER/SELECTION_SET", SelectionValues<unknown>>;
23
+ initial: import("typesafe-actions").PayloadActionCreator<"@FILTER/SELECTION_INITIAL", SelectionValues<unknown>>;
24
+ clear: import("typesafe-actions").PayloadActionCreator<"@FILTER/SELECTION_CLEAR", void>;
25
+ };
26
+ source: {
27
+ update: import("typesafe-actions").PayloadActionCreator<"@FILTER/SOURCE_UPDATE", unknown>;
28
+ };
29
+ };
30
+ export declare type Actions = ActionType<typeof actions>;
31
+ export default actions;
32
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,oBAAY,eAAe,CAAC,MAAM,GAAG,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEvE,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;CAIrB,CAAC;AAEF,eAAO,MAAM,MAAM;;CAElB,CAAC;AAEF,eAAO,MAAM,OAAO;;;;;;;;;;;;;CAInB,CAAC;AAEF,oBAAY,OAAO,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAEjD,eAAe,OAAO,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { createAction } from 'typesafe-actions';
2
+ export const filter = {
3
+ add: createAction('@FILTER/FILTERS_ADD')(),
4
+ remove: createAction('@FILTER/FILTERS_REMOVE')(),
5
+ };
6
+ export const selection = {
7
+ set: createAction('@FILTER/SELECTION_SET')(),
8
+ initial: createAction('@FILTER/SELECTION_INITIAL')(),
9
+ clear: createAction('@FILTER/SELECTION_CLEAR')(),
10
+ };
11
+ export const source = {
12
+ update: createAction('@FILTER/SOURCE_UPDATE')(),
13
+ };
14
+ export const actions = {
15
+ filter,
16
+ selection,
17
+ source,
18
+ };
19
+ export default actions;
20
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,MAAM,kBAAkB,CAAC;AAK5D,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,GAAG,EAAE,YAAY,CAAC,qBAAqB,CAAC,EAAoB;IAC5D,MAAM,EAAE,YAAY,CAAC,wBAAwB,CAAC,EAAU;CACzD,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,GAAG,EAAE,YAAY,CAAC,uBAAuB,CAAC,EAAmB;IAC7D,OAAO,EAAE,YAAY,CAAC,2BAA2B,CAAC,EAAmB;IACrE,KAAK,EAAE,YAAY,CAAC,yBAAyB,CAAC,EAAQ;CACvD,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,EAAE,YAAY,CAAC,uBAAuB,CAAC,EAAW;CACzD,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,MAAM;IACN,SAAS;IACT,MAAM;CACP,CAAC;AAIF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,7 @@
1
+ declare type FilterHeaderProps = {
2
+ title: string;
3
+ };
4
+ export declare const useStyles: (props?: {} | undefined) => import("@material-ui/styles").ClassNameMap<"header" | "root" | "counter" | "showSearch" | "noCount" | "iconBtn" | "searchField">;
5
+ export declare const FilterOptionHeader: (props: FilterHeaderProps) => JSX.Element;
6
+ export default FilterOptionHeader;
7
+ //# sourceMappingURL=FilterOptionHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterOptionHeader.d.ts","sourceRoot":"","sources":["../../../src/components/filter/FilterOptionHeader.tsx"],"names":[],"mappings":"AAKA,aAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAKF,eAAO,MAAM,SAAS,8JAuCrB,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,iBAAiB,KAAG,WA+C7D,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useObservableState, useSelector } from '@equinor/fusion-react-observable';
3
+ import { Icon } from '@equinor/fusion-react-icon';
4
+ import { TextInput } from '@equinor/fusion-react-textinput';
5
+ import { useFilterOptionContext, useFilterOptionSearch } from '../../options';
6
+ import { clsx, createStyles, makeStyles } from '@equinor/fusion-react-styles';
7
+ import { useLayoutEffect, useRef, useState } from 'react';
8
+ export const useStyles = makeStyles((theme) => createStyles({
9
+ root: {
10
+ display: 'flex',
11
+ alignItems: 'center',
12
+ },
13
+ header: {
14
+ ...theme.typography.table.cell_header.style,
15
+ overflow: 'hidden',
16
+ '&$showSearch': {
17
+ display: 'none',
18
+ },
19
+ },
20
+ showSearch: {},
21
+ counter: {
22
+ display: 'inline-flex',
23
+ gap: '1px',
24
+ ...theme.typography.input.helper.style,
25
+ marginLeft: theme.spacing.comfortable.small.getVariable('padding'),
26
+ },
27
+ noCount: {
28
+ display: 'none',
29
+ },
30
+ iconBtn: {
31
+ cursor: 'pointer',
32
+ marginLeft: 'auto',
33
+ },
34
+ searchField: {
35
+ marginTop: '4px',
36
+ flex: '1 1 auto',
37
+ '&:not($showSearch)': {
38
+ maxWidth: 0,
39
+ flex: 'none',
40
+ overflow: 'hidden',
41
+ },
42
+ },
43
+ }), { name: 'fusion-filter-header' });
44
+ export const FilterOptionHeader = (props) => {
45
+ const { title } = props;
46
+ const [showSearch, setShowSearch] = useState(false);
47
+ const { setQuery, query$ } = useFilterOptionSearch();
48
+ const searchRef = useRef(null);
49
+ const { options$, selection$ } = useFilterOptionContext();
50
+ const optionCount = Object.keys(useObservableState(options$) || {}).length;
51
+ const selectedCount = useObservableState(useSelector(selection$, (x) => x && x.size));
52
+ const styles = useStyles();
53
+ const onIconClick = () => {
54
+ if (showSearch) {
55
+ setQuery('');
56
+ }
57
+ else {
58
+ searchRef.current?.focus();
59
+ }
60
+ setShowSearch(!showSearch);
61
+ };
62
+ useLayoutEffect(() => {
63
+ const subscription = query$.subscribe((x) => searchRef.current && (searchRef.current.value = x));
64
+ return () => subscription.unsubscribe();
65
+ }, [searchRef, query$]);
66
+ return (_jsxs("div", Object.assign({ className: styles.root }, { children: [_jsx(TextInput, { ref: searchRef, className: clsx(styles.searchField, showSearch && styles.showSearch), icon: "search", variant: "outlined", type: "search", label: title, onInput: (e) => setQuery(e.currentTarget.value), dense: true }, void 0), _jsxs("header", Object.assign({ className: clsx(styles.header, showSearch && styles.showSearch) }, { children: [_jsx("span", { children: title }, void 0), _jsxs("span", Object.assign({ className: clsx(styles.counter, !selectedCount && styles.noCount) }, { children: [_jsx("span", { children: "(" }, void 0), _jsx("span", { children: selectedCount }, void 0), _jsx("span", { children: "/" }, void 0), _jsx("span", { children: optionCount }, void 0), _jsx("span", { children: ")" }, void 0)] }), void 0)] }), void 0), _jsx(Icon, { className: styles.iconBtn, icon: showSearch ? 'chevron_right' : 'search', onClick: onIconClick }, void 0)] }), void 0));
67
+ };
68
+ export default FilterOptionHeader;
69
+ //# sourceMappingURL=FilterOptionHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterOptionHeader.js","sourceRoot":"","sources":["../../../src/components/filter/FilterOptionHeader.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { FilterOptionSelector } from '../../../options/types';
2
+ import { FilterComponent } from '../types';
3
+ export declare type CheckboxFilterProps<TData extends Record<string, any> = Record<string, any>> = FilterComponent & {
4
+ /** either name of property of data type or a function that selects value */
5
+ selector?: Extract<keyof TData, string> | string | FilterOptionSelector<TData>;
6
+ /** show option for selecting all */
7
+ enableAll?: boolean;
8
+ /** initial selection */
9
+ initial?: Set<string>;
10
+ };
11
+ /**
12
+ * Component for displaying multi-select filter with checkboxes
13
+ */
14
+ export declare const CheckboxFilter: (props: CheckboxFilterProps) => JSX.Element;
15
+ export default CheckboxFilter;
16
+ //# sourceMappingURL=CheckboxFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAS9D,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,oBAAY,mBAAmB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,eAAe,GAAG;IAC3G,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/E,oCAAoC;IACpC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wBAAwB;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,UAAW,mBAAmB,KAAG,WAc3D,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CheckboxFilterProvider } from './CheckboxFilterProvider';
3
+ import CheckboxFilterOptions from './CheckboxFilterOptions';
4
+ import CheckboxFilterOptionAll from './CheckboxFilterOptionAll';
5
+ import { FilterOptionHeader } from '../FilterOptionHeader';
6
+ import useStyles from './CheckboxFilter.style';
7
+ /**
8
+ * Component for displaying multi-select filter with checkboxes
9
+ */
10
+ export const CheckboxFilter = (props) => {
11
+ const { enableAll, ...args } = props;
12
+ const styles = useStyles({ layout: 'column' });
13
+ return (_jsx(CheckboxFilterProvider, Object.assign({}, args, { children: _jsxs("div", Object.assign({ className: styles.root }, { children: [_jsx(FilterOptionHeader, { title: args.title }, void 0), _jsxs("div", Object.assign({ className: styles.items }, { children: [enableAll && _jsx(CheckboxFilterOptionAll, {}, void 0), _jsx(CheckboxFilterOptions, {}, void 0)] }), void 0)] }), void 0) }), void 0));
14
+ };
15
+ export default CheckboxFilter;
16
+ //# sourceMappingURL=CheckboxFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilter.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilter.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,qBAAqB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,uBAAuB,MAAM,2BAA2B,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAY/C;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAA0B,EAAe,EAAE;IACxE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACrC,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/C,OAAO,CACL,KAAC,sBAAsB,oBAAK,IAAI,cAC9B,6BAAK,SAAS,EAAE,MAAM,CAAC,IAAI,iBACzB,KAAC,kBAAkB,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,WAAI,EACzC,6BAAK,SAAS,EAAE,MAAM,CAAC,KAAK,iBACzB,SAAS,IAAI,KAAC,uBAAuB,aAAG,EACzC,KAAC,qBAAqB,aAAG,aACrB,aACF,YACiB,CAC1B,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const useStyles: (props: {
2
+ layout: 'column' | 'row';
3
+ }) => import("@material-ui/styles").ClassNameMap<"title" | "root" | "items">;
4
+ export default useStyles;
5
+ //# sourceMappingURL=CheckboxFilter.style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilter.style.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilter.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;YASS,QAAQ,GAAG,KAAK;4EAW9C,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { createStyles, makeStyles } from '@equinor/fusion-react-styles';
2
+ export const useStyles = makeStyles((theme) => createStyles({
3
+ root: {
4
+ display: 'flex',
5
+ flexFlow: 'column',
6
+ // TODO - remove
7
+ minWidth: 250,
8
+ },
9
+ items: (props) => ({
10
+ display: 'flex',
11
+ flexFlow: props.layout,
12
+ overflowY: 'scroll',
13
+ }),
14
+ title: {
15
+ ...theme.typography.heading.h3.style,
16
+ },
17
+ }), { name: 'fusion-filter-checkbox-option' });
18
+ export default useStyles;
19
+ //# sourceMappingURL=CheckboxFilter.style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilter.style.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilter.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CACjC,CAAC,KAAK,EAAE,EAAE,CACR,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,QAAQ;QAClB,gBAAgB;QAChB,QAAQ,EAAE,GAAG;KACd;IACD,KAAK,EAAE,CAAC,KAAmC,EAAE,EAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,KAAK,CAAC,MAAM;QACtB,SAAS,EAAE,QAAQ;KACpB,CAAC;IAEF,KAAK,EAAE;QACL,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK;KACrC;CACF,CAAC,EACJ,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAC1C,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { CheckboxOption } from './types';
2
+ export declare type CheckboxFilterOptionProps = JSX.IntrinsicElements['div'] & Omit<CheckboxOption, 'totalCount'> & {
3
+ name: string;
4
+ checked?: boolean;
5
+ indeterminate?: boolean;
6
+ count: string | number;
7
+ onOptionChange: (item: {
8
+ name: string;
9
+ selected?: boolean;
10
+ }) => void;
11
+ };
12
+ export declare const CheckboxFilterOption: (props: CheckboxFilterOptionProps) => JSX.Element;
13
+ export default CheckboxFilterOption;
14
+ //# sourceMappingURL=CheckboxFilterOption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilterOption.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOption.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,oBAAY,yBAAyB,GAAG,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAClE,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,cAAc,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACtE,CAAC;AAEJ,eAAO,MAAM,oBAAoB,UAAW,yBAAyB,KAAG,WA+BvE,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ import { CheckboxBase as Checkbox } from '@equinor/fusion-react-checkbox';
4
+ import { clsx } from '@equinor/fusion-react-styles';
5
+ import { useStyles } from './CheckboxFilterOption.style';
6
+ export const CheckboxFilterOption = (props) => {
7
+ const { name, label, count, checked, indeterminate, inactive, hide, onOptionChange, className, ...args } = props;
8
+ const onCheckboxClick = useCallback((e) => e.stopPropagation(), []);
9
+ const onCheckboxInput = useCallback(({ currentTarget: { name, checked } }) => {
10
+ return onOptionChange({ name, selected: !checked });
11
+ }, [onOptionChange]);
12
+ const onClick = useCallback((e) => {
13
+ e.currentTarget.firstChild.click();
14
+ }, []);
15
+ const styles = useStyles();
16
+ return (_jsxs("div", Object.assign({}, args, { className: clsx(className, styles.root, inactive && styles.inactive, hide && styles.hide), onClick: onClick }, { children: [_jsx(Checkbox, { className: styles.checkbox, name: name, checked: checked, onInput: onCheckboxInput, onClick: onCheckboxClick, indeterminate: indeterminate }, void 0), _jsx("span", Object.assign({ className: styles.label }, { children: label }), void 0), _jsx("span", Object.assign({ className: styles.counter }, { children: count }), void 0)] }), void 0));
17
+ };
18
+ export default CheckboxFilterOption;
19
+ //# sourceMappingURL=CheckboxFilterOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilterOption.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOption.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAE,YAAY,IAAI,QAAQ,EAA6B,MAAM,gCAAgC,CAAC;AAErG,OAAO,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAYzD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,KAAgC,EAAe,EAAE;IACpF,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IACjH,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAA8C,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE,EAAE,CAAC,CAAC;IACjH,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAA8C,EAAE,EAAE;QACnF,OAAO,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAC;IACF,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAmC,EAAE,EAAE;QACjE,CAAC,CAAC,aAAa,CAAC,UAAwC,CAAC,KAAK,EAAE,CAAC;IACpE,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,OAAO,CACL,+BACM,IAAI,IACR,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EACzF,OAAO,EAAE,OAAO,iBAEhB,KAAC,QAAQ,IACP,SAAS,EAAE,MAAM,CAAC,QAAQ,EAC1B,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,aAAa,WAC5B,EACF,6BAAM,SAAS,EAAE,MAAM,CAAC,KAAK,gBAAG,KAAK,YAAQ,EAC7C,6BAAM,SAAS,EAAE,MAAM,CAAC,OAAO,gBAAG,KAAK,YAAQ,aAC3C,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const useStyles: (props?: {} | undefined) => import("@material-ui/styles").ClassNameMap<"label" | "hide" | "checkbox" | "inactive" | "root" | "counter">;
2
+ export default useStyles;
3
+ //# sourceMappingURL=CheckboxFilterOption.style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilterOption.style.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOption.style.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,yIAwCrB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { createStyles, makeStyles } from '@equinor/fusion-react-styles';
2
+ export const useStyles = makeStyles((theme) => createStyles({
3
+ root: {
4
+ display: 'flex',
5
+ alignItems: 'center',
6
+ // justifyContent: 'space-between',
7
+ cursor: 'pointer',
8
+ backgroundColor: 'transparent',
9
+ willChange: 'backgroundColor',
10
+ // TODO - fetch from theme
11
+ transition: '125ms background-color ease-out',
12
+ '&:hover': {
13
+ backgroundColor: theme.colors.interactive.primary__hover_alt.getVariable('color'),
14
+ },
15
+ // maxWidth: '80px',
16
+ },
17
+ inactive: {
18
+ filter: 'grayscale(100%)',
19
+ opacity: 0.5,
20
+ },
21
+ checkbox: {
22
+ '--fwc-checkbox-size': '14px',
23
+ },
24
+ label: {
25
+ ...theme.typography.input.label.style,
26
+ flex: '1 1 auto',
27
+ overflow: 'hidden',
28
+ whiteSpace: 'nowrap',
29
+ textOverflow: 'ellipsis',
30
+ },
31
+ counter: {
32
+ ...theme.typography.input.label.style,
33
+ margin: `0 ${theme.spacing.comfortable.small.getVariable('padding')}`,
34
+ },
35
+ hide: {
36
+ display: 'none',
37
+ },
38
+ }), { name: 'fusion-filter-checkbox-option' });
39
+ export default useStyles;
40
+ //# sourceMappingURL=CheckboxFilterOption.style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilterOption.style.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOption.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAExE,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CACjC,CAAC,KAAK,EAAE,EAAE,CACR,YAAY,CAAC;IACX,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,mCAAmC;QACnC,MAAM,EAAE,SAAS;QACjB,eAAe,EAAE,aAAa;QAC9B,UAAU,EAAE,iBAAiB;QAC7B,0BAA0B;QAC1B,UAAU,EAAE,iCAAiC;QAC7C,SAAS,EAAE;YACT,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,OAAO,CAAC;SAClF;QACD,oBAAoB;KACrB;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,iBAAiB;QACzB,OAAO,EAAE,GAAG;KACb;IACD,QAAQ,EAAE;QACR,qBAAqB,EAAE,MAAM;KAC9B;IACD,KAAK,EAAE;QACL,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;QACrC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,QAAQ;QAClB,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,UAAU;KACzB;IACD,OAAO,EAAE;QACP,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;QACrC,MAAM,EAAE,KAAK,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;KACtE;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM;KAChB;CACF,CAAC,EACJ,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAC1C,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const CheckboxFilterOptionAll: () => JSX.Element;
2
+ export default CheckboxFilterOptionAll;
3
+ //# sourceMappingURL=CheckboxFilterOptionAll.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilterOptionAll.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOptionAll.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,uBAAuB,QAAO,WAmC1C,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ import { useObservableRef, useObservableState, useSelector } from '@equinor/fusion-react-observable';
4
+ import { useCheckboxFilterOptionContext } from './context';
5
+ import CheckboxFilterOption from './CheckboxFilterOption';
6
+ export const CheckboxFilterOptionAll = () => {
7
+ const { options$, selection$, setSelection } = useCheckboxFilterOptionContext();
8
+ const options = useObservableState(options$) || {};
9
+ const optionKeysRef = useObservableRef(useSelector(options$, (x) => Object.keys(x)));
10
+ const selectedKeys = useObservableState(selection$) || new Set([]);
11
+ const { totalCount } = Object.values(options || {}).reduce((acc, value) => {
12
+ acc.count += value.count;
13
+ acc.totalCount += value.totalCount;
14
+ return acc;
15
+ }, { count: 0, totalCount: 0 });
16
+ const checked = selectedKeys.size === optionKeysRef.current?.length;
17
+ const indeterminate = Boolean(selectedKeys.size && !checked);
18
+ const onOptionChange = useCallback(({ selected }) => {
19
+ setSelection(selected ? new Set(optionKeysRef.current) : new Set([]));
20
+ }, [setSelection, optionKeysRef]);
21
+ return (_jsx(CheckboxFilterOption, { name: "all", label: "all", indeterminate: indeterminate, checked: checked, count: totalCount, onOptionChange: onOptionChange }, void 0));
22
+ };
23
+ export default CheckboxFilterOptionAll;
24
+ //# sourceMappingURL=CheckboxFilterOptionAll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilterOptionAll.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOptionAll.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAErG,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAgB,EAAE;IACvD,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,8BAA8B,EAAE,CAAC;IAChF,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnD,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAErF,MAAM,YAAY,GAAG,kBAAkB,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC;IAEnE,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,MAAM,CACxD,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;QACzB,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAC5B,CAAC;IAEF,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,KAAK,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC;IACpE,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,EAAE,QAAQ,EAAwC,EAAE,EAAE;QACrD,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC,EACD,CAAC,YAAY,EAAE,aAAa,CAAC,CAC9B,CAAC;IAEF,OAAO,CACL,KAAC,oBAAoB,IACnB,IAAI,EAAC,KAAK,EACV,KAAK,EAAC,KAAK,EACX,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,UAAU,EACjB,cAAc,EAAE,cAAc,WAC9B,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const CheckboxFilterOptions: () => JSX.Element;
2
+ export default CheckboxFilterOptions;
3
+ //# sourceMappingURL=CheckboxFilterOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilterOptions.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOptions.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,qBAAqB,QAAO,WAwCxC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ import { useObservableRef, useObservableState } from '@equinor/fusion-react-observable';
4
+ import { useCheckboxFilterOptionContext } from './context';
5
+ import { CheckboxFilterOption } from './CheckboxFilterOption';
6
+ // TODO - make arg!
7
+ const sortFn = (a, b) => a.label.localeCompare(b.label);
8
+ export const CheckboxFilterOptions = () => {
9
+ const context = useCheckboxFilterOptionContext();
10
+ const data = useObservableState(context.options$);
11
+ const selectionRef = useObservableRef(context.selection$);
12
+ const onOptionChange = useCallback((item) => {
13
+ const selection = new Set(selectionRef.current || []);
14
+ const { name, selected } = item;
15
+ if (selected) {
16
+ selection.add(name);
17
+ }
18
+ else {
19
+ selection.delete(name);
20
+ }
21
+ context.setSelection(selection.size ? selection : undefined);
22
+ }, [context, selectionRef]);
23
+ const itemProps = Object.entries(data || {})
24
+ .map(([key, value]) => ({
25
+ onOptionChange,
26
+ name: key,
27
+ label: value.label,
28
+ checked: !!value.selected,
29
+ count: value.count === value.totalCount ? value.count : `${value.count} / ${value.totalCount}`,
30
+ inactive: !value.count,
31
+ hide: value.hide,
32
+ }))
33
+ .sort(sortFn);
34
+ return (_jsx(_Fragment, { children: itemProps.map((props) => (_jsx(CheckboxFilterOption, Object.assign({}, props), props.name))) }, void 0));
35
+ };
36
+ export default CheckboxFilterOptions;
37
+ //# sourceMappingURL=CheckboxFilterOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilterOptions.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterOptions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAExF,OAAO,EAAE,8BAA8B,EAAE,MAAM,WAAW,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAA6B,MAAM,wBAAwB,CAAC;AAEzF,mBAAmB;AACnB,MAAM,MAAM,GAAG,CAA8B,CAAI,EAAE,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAgB,EAAE;IACrD,MAAM,OAAO,GAAG,8BAA8B,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE1D,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,IAA0C,EAAE,EAAE;QAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAChC,IAAI,QAAQ,EAAE;YACZ,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACrB;aAAM;YACL,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACxB;QACD,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/D,CAAC,EACD,CAAC,OAAO,EAAE,YAAY,CAAC,CACxB,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;SACzC,GAAG,CACF,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CACf,CAAC;QACC,cAAc;QACd,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;QACzB,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,UAAU,EAAE;QAC9F,QAAQ,EAAE,CAAC,KAAK,CAAC,KAAK;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KACa,CAAA,CAClC;SACA,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,OAAO,CACL,4BACG,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACxB,KAAC,oBAAoB,oBAAsB,KAAK,GAArB,KAAK,CAAC,IAAI,CAAe,CACrD,CAAC,WACD,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import { FilterOptionBuilder, FilterOptionSelector } from '../../../options/types';
3
+ import { CheckboxOption } from './types';
4
+ export declare type CheckboxFilterProviderProps<TData extends Record<string, any>, TOption extends CheckboxOption = CheckboxOption> = {
5
+ filterKey: string;
6
+ title?: string;
7
+ optionBuilder?: FilterOptionBuilder<TData, TOption, string>;
8
+ selector?: Extract<keyof TData, string> | string | FilterOptionSelector<TData>;
9
+ initial?: Set<string>;
10
+ };
11
+ export declare const CheckboxFilterProvider: <TData extends Record<string, any>, TOptions extends CheckboxOption = CheckboxOption>(props: import("react").PropsWithChildren<CheckboxFilterProviderProps<TData, TOptions>>) => JSX.Element;
12
+ export default CheckboxFilterProviderProps;
13
+ //# sourceMappingURL=CheckboxFilterProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilterProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterProvider.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAQzC,oBAAY,2BAA2B,CACrC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,OAAO,SAAS,cAAc,GAAG,cAAc,IAC7C;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/E,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,sBAAsB,mLAKhC,WAmBF,CAAC;AAEF,eAAe,2BAA2B,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useMemo } from 'react';
3
+ import { FilterOptionProvider } from '../../../options/FilterOptionProvider';
4
+ import { propertySelector } from '../../../options/create-options';
5
+ const createFilterFn = (selector) => (data, selection) => {
6
+ return selection.size ? data.filter((x) => selection.has(selector(x).key)) : data;
7
+ };
8
+ export const CheckboxFilterProvider = (props) => {
9
+ const { filterKey, selector = filterKey, optionBuilder, title, initial, children } = props;
10
+ const selectorFn = useMemo(() => typeof selector === 'function'
11
+ ? selector
12
+ : propertySelector(selector || selector), [selector]);
13
+ const filterFn = useMemo(() => createFilterFn(selectorFn), [selectorFn]);
14
+ return (_jsx(FilterOptionProvider, Object.assign({ selector: selectorFn, optionBuilder: optionBuilder, filter: { key: filterKey, title, initial, filterFn } }, { children: children }), void 0));
15
+ };
16
+ //# sourceMappingURL=CheckboxFilterProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckboxFilterProvider.js","sourceRoot":"","sources":["../../../../src/components/filter/checkbox/CheckboxFilterProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAKnE,MAAM,cAAc,GAClB,CAAyD,QAAqC,EAAE,EAAE,CAClG,CAAC,IAAa,EAAE,SAAsB,EAAE,EAAE;IACxC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzG,CAAC,CAAC;AAaJ,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAIpC,KAA4E,EAC/D,EAAE;IACf,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3F,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CACH,OAAO,QAAQ,KAAK,UAAU;QAC5B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,gBAAgB,CAAC,QAAQ,IAAK,QAAyC,CAAC,EAC9E,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACzE,OAAO,CACL,KAAC,oBAAoB,kBACnB,QAAQ,EAAE,UAAU,EACpB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAEnD,QAAQ,YACY,CACxB,CAAC;AACJ,CAAC,CAAC"}