@hortonstudio/main 1.2.12 → 1.2.14

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 (490) hide show
  1. package/index.js +9 -9
  2. package/package.json +17 -6
  3. package/.claude/settings.local.json +0 -21
  4. package/animations/hero.js +0 -599
  5. package/animations/text.js +0 -369
  6. package/animations/transition.js +0 -57
  7. package/attributes-master/.changeset/README.md +0 -8
  8. package/attributes-master/.changeset/config.json +0 -11
  9. package/attributes-master/.gitattributes +0 -2
  10. package/attributes-master/.github/ISSUE_TEMPLATE/bug_report.md +0 -42
  11. package/attributes-master/.github/ISSUE_TEMPLATE/feature_request.md +0 -22
  12. package/attributes-master/.github/workflows/ci.yml +0 -66
  13. package/attributes-master/.github/workflows/release.yml +0 -40
  14. package/attributes-master/.prettierignore +0 -3
  15. package/attributes-master/.prettierrc +0 -8
  16. package/attributes-master/.vscode/extensions.json +0 -3
  17. package/attributes-master/.vscode/settings.json +0 -7
  18. package/attributes-master/CONTRIBUTING.md +0 -72
  19. package/attributes-master/LICENSE.md +0 -201
  20. package/attributes-master/README.md +0 -31
  21. package/attributes-master/eslint.config.js +0 -3
  22. package/attributes-master/package.json +0 -34
  23. package/attributes-master/packages/accordion/CHANGELOG.md +0 -89
  24. package/attributes-master/packages/accordion/README.md +0 -31
  25. package/attributes-master/packages/accordion/package.json +0 -25
  26. package/attributes-master/packages/accordion/src/actions/a11y.ts +0 -39
  27. package/attributes-master/packages/accordion/src/actions/classes.ts +0 -27
  28. package/attributes-master/packages/accordion/src/actions/content.ts +0 -42
  29. package/attributes-master/packages/accordion/src/actions/list.ts +0 -36
  30. package/attributes-master/packages/accordion/src/actions/query.ts +0 -27
  31. package/attributes-master/packages/accordion/src/actions/settings.ts +0 -61
  32. package/attributes-master/packages/accordion/src/factory.ts +0 -145
  33. package/attributes-master/packages/accordion/src/index.ts +0 -3
  34. package/attributes-master/packages/accordion/src/init.ts +0 -37
  35. package/attributes-master/packages/accordion/src/utils/constants.ts +0 -62
  36. package/attributes-master/packages/accordion/src/utils/helpers.ts +0 -5
  37. package/attributes-master/packages/accordion/src/utils/selectors.ts +0 -12
  38. package/attributes-master/packages/accordion/src/utils/types.ts +0 -23
  39. package/attributes-master/packages/accordion/tsconfig.json +0 -3
  40. package/attributes-master/packages/attributes/CHANGELOG.md +0 -564
  41. package/attributes-master/packages/attributes/README.md +0 -66
  42. package/attributes-master/packages/attributes/bin/build.ts +0 -107
  43. package/attributes-master/packages/attributes/bin/live-reload.js +0 -1
  44. package/attributes-master/packages/attributes/package.json +0 -77
  45. package/attributes-master/packages/attributes/playwright.config.ts +0 -89
  46. package/attributes-master/packages/attributes/src/attributes.ts +0 -153
  47. package/attributes-master/packages/attributes/src/load.ts +0 -125
  48. package/attributes-master/packages/attributes/tests/accordion.spec.ts +0 -137
  49. package/attributes-master/packages/attributes/tests/codehighlight.spec.ts +0 -23
  50. package/attributes-master/packages/attributes/tests/combobox.spec.ts +0 -321
  51. package/attributes-master/packages/attributes/tests/copyclip.spec.ts +0 -19
  52. package/attributes-master/packages/attributes/tests/displayvalues.spec.ts +0 -48
  53. package/attributes-master/packages/attributes/tests/favcustom.spec.ts +0 -23
  54. package/attributes-master/packages/attributes/tests/inject.spec.ts +0 -40
  55. package/attributes-master/packages/attributes/tests/inputactive.spec.ts +0 -77
  56. package/attributes-master/packages/attributes/tests/inputcounter.spec.ts +0 -83
  57. package/attributes-master/packages/attributes/tests/list.spec.ts +0 -800
  58. package/attributes-master/packages/attributes/tests/mirrorclick.spec.ts +0 -22
  59. package/attributes-master/packages/attributes/tests/mirrorinput.spec.ts +0 -37
  60. package/attributes-master/packages/attributes/tests/modal.spec.ts +0 -34
  61. package/attributes-master/packages/attributes/tests/numbercount.spec.ts +0 -40
  62. package/attributes-master/packages/attributes/tests/readtime.spec.ts +0 -19
  63. package/attributes-master/packages/attributes/tests/selectcustom.spec.ts +0 -51
  64. package/attributes-master/packages/attributes/tests/socialshare.spec.ts +0 -54
  65. package/attributes-master/packages/attributes/tests/starrating.spec.ts +0 -79
  66. package/attributes-master/packages/attributes/tests/toc.spec.ts +0 -38
  67. package/attributes-master/packages/attributes/tests/utils/index.ts +0 -16
  68. package/attributes-master/packages/attributes/tsconfig.json +0 -6
  69. package/attributes-master/packages/autovideo/CHANGELOG.md +0 -182
  70. package/attributes-master/packages/autovideo/README.md +0 -31
  71. package/attributes-master/packages/autovideo/package.json +0 -22
  72. package/attributes-master/packages/autovideo/src/index.ts +0 -3
  73. package/attributes-master/packages/autovideo/src/init.ts +0 -52
  74. package/attributes-master/packages/autovideo/src/types.ts +0 -5
  75. package/attributes-master/packages/autovideo/src/utils/constants.ts +0 -4
  76. package/attributes-master/packages/autovideo/tsconfig.json +0 -3
  77. package/attributes-master/packages/codehighlight/CHANGELOG.md +0 -185
  78. package/attributes-master/packages/codehighlight/README.md +0 -27
  79. package/attributes-master/packages/codehighlight/package.json +0 -23
  80. package/attributes-master/packages/codehighlight/src/actions/import.ts +0 -50
  81. package/attributes-master/packages/codehighlight/src/index.ts +0 -3
  82. package/attributes-master/packages/codehighlight/src/init.ts +0 -53
  83. package/attributes-master/packages/codehighlight/src/utils/constants.ts +0 -24
  84. package/attributes-master/packages/codehighlight/src/utils/selectors.ts +0 -5
  85. package/attributes-master/packages/codehighlight/src/utils/themes.ts +0 -202
  86. package/attributes-master/packages/codehighlight/tsconfig.json +0 -3
  87. package/attributes-master/packages/combobox/CHANGELOG.md +0 -99
  88. package/attributes-master/packages/combobox/README.md +0 -27
  89. package/attributes-master/packages/combobox/package.json +0 -23
  90. package/attributes-master/packages/combobox/src/actions/a11y.ts +0 -29
  91. package/attributes-master/packages/combobox/src/actions/body/index.ts +0 -12
  92. package/attributes-master/packages/combobox/src/actions/clearDropdown/index.ts +0 -37
  93. package/attributes-master/packages/combobox/src/actions/dropdownList/index.ts +0 -220
  94. package/attributes-master/packages/combobox/src/actions/dropdownToggle/index.ts +0 -34
  95. package/attributes-master/packages/combobox/src/actions/events.ts +0 -75
  96. package/attributes-master/packages/combobox/src/actions/input/index.ts +0 -235
  97. package/attributes-master/packages/combobox/src/actions/observe.ts +0 -158
  98. package/attributes-master/packages/combobox/src/actions/populate.ts +0 -97
  99. package/attributes-master/packages/combobox/src/actions/selectElement/index.ts +0 -23
  100. package/attributes-master/packages/combobox/src/actions/settings.ts +0 -134
  101. package/attributes-master/packages/combobox/src/actions/state.ts +0 -34
  102. package/attributes-master/packages/combobox/src/index.ts +0 -3
  103. package/attributes-master/packages/combobox/src/init.ts +0 -52
  104. package/attributes-master/packages/combobox/src/utils/constants.ts +0 -48
  105. package/attributes-master/packages/combobox/src/utils/dropdowns.ts +0 -120
  106. package/attributes-master/packages/combobox/src/utils/index.ts +0 -1
  107. package/attributes-master/packages/combobox/src/utils/selectors.ts +0 -9
  108. package/attributes-master/packages/combobox/src/utils/types.ts +0 -14
  109. package/attributes-master/packages/combobox/tsconfig.json +0 -3
  110. package/attributes-master/packages/copyclip/CHANGELOG.md +0 -213
  111. package/attributes-master/packages/copyclip/README.md +0 -27
  112. package/attributes-master/packages/copyclip/package.json +0 -23
  113. package/attributes-master/packages/copyclip/src/factory.ts +0 -67
  114. package/attributes-master/packages/copyclip/src/index.ts +0 -3
  115. package/attributes-master/packages/copyclip/src/init.ts +0 -68
  116. package/attributes-master/packages/copyclip/src/utils/constants.ts +0 -40
  117. package/attributes-master/packages/copyclip/src/utils/selectors.ts +0 -9
  118. package/attributes-master/packages/copyclip/tsconfig.json +0 -3
  119. package/attributes-master/packages/displayvalues/CHANGELOG.md +0 -164
  120. package/attributes-master/packages/displayvalues/README.md +0 -27
  121. package/attributes-master/packages/displayvalues/package.json +0 -22
  122. package/attributes-master/packages/displayvalues/src/actions/collect.ts +0 -17
  123. package/attributes-master/packages/displayvalues/src/actions/events.ts +0 -22
  124. package/attributes-master/packages/displayvalues/src/actions/sync.ts +0 -23
  125. package/attributes-master/packages/displayvalues/src/index.ts +0 -3
  126. package/attributes-master/packages/displayvalues/src/init.ts +0 -31
  127. package/attributes-master/packages/displayvalues/src/utils/constants.ts +0 -20
  128. package/attributes-master/packages/displayvalues/src/utils/selectors.ts +0 -9
  129. package/attributes-master/packages/displayvalues/src/utils/stores.ts +0 -3
  130. package/attributes-master/packages/displayvalues/tsconfig.json +0 -3
  131. package/attributes-master/packages/docs/CHANGELOG.md +0 -108
  132. package/attributes-master/packages/docs/README.md +0 -3
  133. package/attributes-master/packages/docs/bin/build.js +0 -92
  134. package/attributes-master/packages/docs/bin/live-reload.js +0 -1
  135. package/attributes-master/packages/docs/package.json +0 -40
  136. package/attributes-master/packages/docs/src/copy.ts +0 -260
  137. package/attributes-master/packages/docs/src/x-ray.ts +0 -377
  138. package/attributes-master/packages/docs/tsconfig.json +0 -3
  139. package/attributes-master/packages/favcustom/CHANGELOG.md +0 -194
  140. package/attributes-master/packages/favcustom/README.md +0 -27
  141. package/attributes-master/packages/favcustom/package.json +0 -22
  142. package/attributes-master/packages/favcustom/src/index.ts +0 -3
  143. package/attributes-master/packages/favcustom/src/init.ts +0 -30
  144. package/attributes-master/packages/favcustom/src/utils/constants.ts +0 -10
  145. package/attributes-master/packages/favcustom/src/utils/selectors.ts +0 -5
  146. package/attributes-master/packages/favcustom/tsconfig.json +0 -3
  147. package/attributes-master/packages/formsubmit/CHANGELOG.md +0 -161
  148. package/attributes-master/packages/formsubmit/README.md +0 -51
  149. package/attributes-master/packages/formsubmit/package.json +0 -22
  150. package/attributes-master/packages/formsubmit/src/actions/redirect.ts +0 -9
  151. package/attributes-master/packages/formsubmit/src/actions/reset.ts +0 -49
  152. package/attributes-master/packages/formsubmit/src/actions/submit.ts +0 -34
  153. package/attributes-master/packages/formsubmit/src/components/Form.ts +0 -231
  154. package/attributes-master/packages/formsubmit/src/factory.ts +0 -62
  155. package/attributes-master/packages/formsubmit/src/index.ts +0 -3
  156. package/attributes-master/packages/formsubmit/src/init.ts +0 -24
  157. package/attributes-master/packages/formsubmit/src/utils/attributes.ts +0 -19
  158. package/attributes-master/packages/formsubmit/src/utils/constants.ts +0 -89
  159. package/attributes-master/packages/formsubmit/src/utils/dom.ts +0 -76
  160. package/attributes-master/packages/formsubmit/src/utils/selectors.ts +0 -9
  161. package/attributes-master/packages/formsubmit/src/utils/types.ts +0 -7
  162. package/attributes-master/packages/formsubmit/tsconfig.json +0 -3
  163. package/attributes-master/packages/inject/CHANGELOG.md +0 -117
  164. package/attributes-master/packages/inject/README.md +0 -60
  165. package/attributes-master/packages/inject/package.json +0 -22
  166. package/attributes-master/packages/inject/src/actions/collect.ts +0 -125
  167. package/attributes-master/packages/inject/src/actions/css.ts +0 -27
  168. package/attributes-master/packages/inject/src/actions/prefetch.ts +0 -44
  169. package/attributes-master/packages/inject/src/factory.ts +0 -123
  170. package/attributes-master/packages/inject/src/index.ts +0 -3
  171. package/attributes-master/packages/inject/src/init.ts +0 -22
  172. package/attributes-master/packages/inject/src/utils/constants.ts +0 -89
  173. package/attributes-master/packages/inject/src/utils/helpers.ts +0 -36
  174. package/attributes-master/packages/inject/src/utils/selectors.ts +0 -9
  175. package/attributes-master/packages/inject/src/utils/types.ts +0 -16
  176. package/attributes-master/packages/inject/tsconfig.json +0 -3
  177. package/attributes-master/packages/inputactive/CHANGELOG.md +0 -58
  178. package/attributes-master/packages/inputactive/README.md +0 -25
  179. package/attributes-master/packages/inputactive/package.json +0 -22
  180. package/attributes-master/packages/inputactive/src/actions/classes.ts +0 -43
  181. package/attributes-master/packages/inputactive/src/factory.ts +0 -24
  182. package/attributes-master/packages/inputactive/src/index.ts +0 -3
  183. package/attributes-master/packages/inputactive/src/init.ts +0 -18
  184. package/attributes-master/packages/inputactive/src/utils/constants.ts +0 -13
  185. package/attributes-master/packages/inputactive/src/utils/selectors.ts +0 -5
  186. package/attributes-master/packages/inputactive/tsconfig.json +0 -3
  187. package/attributes-master/packages/inputcounter/CHANGELOG.md +0 -110
  188. package/attributes-master/packages/inputcounter/README.md +0 -25
  189. package/attributes-master/packages/inputcounter/package.json +0 -22
  190. package/attributes-master/packages/inputcounter/src/actions/a11y.ts +0 -23
  191. package/attributes-master/packages/inputcounter/src/actions/buttons.ts +0 -61
  192. package/attributes-master/packages/inputcounter/src/actions/input.ts +0 -31
  193. package/attributes-master/packages/inputcounter/src/actions/style.ts +0 -12
  194. package/attributes-master/packages/inputcounter/src/factory.ts +0 -51
  195. package/attributes-master/packages/inputcounter/src/index.ts +0 -3
  196. package/attributes-master/packages/inputcounter/src/init.ts +0 -22
  197. package/attributes-master/packages/inputcounter/src/utils/constants.ts +0 -59
  198. package/attributes-master/packages/inputcounter/src/utils/selectors.ts +0 -9
  199. package/attributes-master/packages/inputcounter/tsconfig.json +0 -3
  200. package/attributes-master/packages/list/CHANGELOG.md +0 -185
  201. package/attributes-master/packages/list/README.md +0 -331
  202. package/attributes-master/packages/list/package.json +0 -37
  203. package/attributes-master/packages/list/src/combine/index.ts +0 -38
  204. package/attributes-master/packages/list/src/components/List.ts +0 -861
  205. package/attributes-master/packages/list/src/components/ListItem.ts +0 -229
  206. package/attributes-master/packages/list/src/components/index.ts +0 -2
  207. package/attributes-master/packages/list/src/factory.ts +0 -130
  208. package/attributes-master/packages/list/src/filter/dynamic/conditions.ts +0 -639
  209. package/attributes-master/packages/list/src/filter/dynamic/groups.ts +0 -221
  210. package/attributes-master/packages/list/src/filter/dynamic/index.ts +0 -119
  211. package/attributes-master/packages/list/src/filter/dynamic/utils.ts +0 -44
  212. package/attributes-master/packages/list/src/filter/elements.ts +0 -93
  213. package/attributes-master/packages/list/src/filter/filter.ts +0 -118
  214. package/attributes-master/packages/list/src/filter/filter.worker.ts +0 -152
  215. package/attributes-master/packages/list/src/filter/index.ts +0 -94
  216. package/attributes-master/packages/list/src/filter/standard/conditions.ts +0 -123
  217. package/attributes-master/packages/list/src/filter/standard/facets.ts +0 -253
  218. package/attributes-master/packages/list/src/filter/standard/index.ts +0 -176
  219. package/attributes-master/packages/list/src/filter/standard/query.ts +0 -111
  220. package/attributes-master/packages/list/src/filter/tags.ts +0 -314
  221. package/attributes-master/packages/list/src/filter/types.ts +0 -62
  222. package/attributes-master/packages/list/src/filter/utils.ts +0 -126
  223. package/attributes-master/packages/list/src/index.ts +0 -4
  224. package/attributes-master/packages/list/src/init.ts +0 -38
  225. package/attributes-master/packages/list/src/load/all.ts +0 -27
  226. package/attributes-master/packages/list/src/load/elements.ts +0 -39
  227. package/attributes-master/packages/list/src/load/index.ts +0 -63
  228. package/attributes-master/packages/list/src/load/infinite.ts +0 -79
  229. package/attributes-master/packages/list/src/load/load.ts +0 -191
  230. package/attributes-master/packages/list/src/load/more.ts +0 -97
  231. package/attributes-master/packages/list/src/load/pagination.ts +0 -402
  232. package/attributes-master/packages/list/src/nest/index.ts +0 -198
  233. package/attributes-master/packages/list/src/prevnext/index.ts +0 -98
  234. package/attributes-master/packages/list/src/select/index.ts +0 -56
  235. package/attributes-master/packages/list/src/slider/index.ts +0 -62
  236. package/attributes-master/packages/list/src/sort/buttons.ts +0 -96
  237. package/attributes-master/packages/list/src/sort/dropdown.ts +0 -179
  238. package/attributes-master/packages/list/src/sort/index.ts +0 -81
  239. package/attributes-master/packages/list/src/sort/query.ts +0 -63
  240. package/attributes-master/packages/list/src/sort/select.ts +0 -67
  241. package/attributes-master/packages/list/src/sort/sort.ts +0 -79
  242. package/attributes-master/packages/list/src/sort/types.ts +0 -28
  243. package/attributes-master/packages/list/src/static/index.ts +0 -73
  244. package/attributes-master/packages/list/src/tabs/index.ts +0 -97
  245. package/attributes-master/packages/list/src/utils/constants.ts +0 -728
  246. package/attributes-master/packages/list/src/utils/dom.ts +0 -108
  247. package/attributes-master/packages/list/src/utils/pagination.ts +0 -14
  248. package/attributes-master/packages/list/src/utils/selectors.ts +0 -18
  249. package/attributes-master/packages/list/src/utils/store.ts +0 -5
  250. package/attributes-master/packages/list/tsconfig.json +0 -3
  251. package/attributes-master/packages/mirrorclick/CHANGELOG.md +0 -171
  252. package/attributes-master/packages/mirrorclick/README.md +0 -25
  253. package/attributes-master/packages/mirrorclick/package.json +0 -22
  254. package/attributes-master/packages/mirrorclick/src/index.ts +0 -3
  255. package/attributes-master/packages/mirrorclick/src/init.ts +0 -35
  256. package/attributes-master/packages/mirrorclick/src/utils/constants.ts +0 -20
  257. package/attributes-master/packages/mirrorclick/src/utils/selectors.ts +0 -9
  258. package/attributes-master/packages/mirrorclick/tsconfig.json +0 -3
  259. package/attributes-master/packages/mirrorinput/CHANGELOG.md +0 -172
  260. package/attributes-master/packages/mirrorinput/README.md +0 -25
  261. package/attributes-master/packages/mirrorinput/package.json +0 -22
  262. package/attributes-master/packages/mirrorinput/src/index.ts +0 -3
  263. package/attributes-master/packages/mirrorinput/src/init.ts +0 -48
  264. package/attributes-master/packages/mirrorinput/src/utils/constants.ts +0 -15
  265. package/attributes-master/packages/mirrorinput/src/utils/selectors.ts +0 -9
  266. package/attributes-master/packages/mirrorinput/tsconfig.json +0 -3
  267. package/attributes-master/packages/modal/CHANGELOG.md +0 -94
  268. package/attributes-master/packages/modal/README.md +0 -29
  269. package/attributes-master/packages/modal/package.json +0 -23
  270. package/attributes-master/packages/modal/src/actions/a11y.ts +0 -46
  271. package/attributes-master/packages/modal/src/actions/modal.ts +0 -164
  272. package/attributes-master/packages/modal/src/actions/settings.ts +0 -21
  273. package/attributes-master/packages/modal/src/factory.ts +0 -26
  274. package/attributes-master/packages/modal/src/index.ts +0 -3
  275. package/attributes-master/packages/modal/src/init.ts +0 -22
  276. package/attributes-master/packages/modal/src/utils/constants.ts +0 -54
  277. package/attributes-master/packages/modal/src/utils/selectors.ts +0 -9
  278. package/attributes-master/packages/modal/src/utils/types.ts +0 -12
  279. package/attributes-master/packages/modal/tsconfig.json +0 -3
  280. package/attributes-master/packages/numbercount/CHANGELOG.md +0 -90
  281. package/attributes-master/packages/numbercount/README.md +0 -27
  282. package/attributes-master/packages/numbercount/package.json +0 -23
  283. package/attributes-master/packages/numbercount/src/actions/a11y.ts +0 -26
  284. package/attributes-master/packages/numbercount/src/actions/animate.ts +0 -43
  285. package/attributes-master/packages/numbercount/src/actions/observe.ts +0 -44
  286. package/attributes-master/packages/numbercount/src/factory.ts +0 -31
  287. package/attributes-master/packages/numbercount/src/index.ts +0 -3
  288. package/attributes-master/packages/numbercount/src/init.ts +0 -22
  289. package/attributes-master/packages/numbercount/src/utils/constants.ts +0 -40
  290. package/attributes-master/packages/numbercount/src/utils/helpers.ts +0 -31
  291. package/attributes-master/packages/numbercount/src/utils/selectors.ts +0 -9
  292. package/attributes-master/packages/numbercount/tsconfig.json +0 -3
  293. package/attributes-master/packages/queryparam/CHANGELOG.md +0 -118
  294. package/attributes-master/packages/queryparam/README.md +0 -25
  295. package/attributes-master/packages/queryparam/package.json +0 -22
  296. package/attributes-master/packages/queryparam/src/factory.ts +0 -51
  297. package/attributes-master/packages/queryparam/src/index.ts +0 -3
  298. package/attributes-master/packages/queryparam/src/init.ts +0 -40
  299. package/attributes-master/packages/queryparam/src/utils/constants.ts +0 -18
  300. package/attributes-master/packages/queryparam/src/utils/selectors.ts +0 -5
  301. package/attributes-master/packages/queryparam/tsconfig.json +0 -3
  302. package/attributes-master/packages/rangeslider/CHANGELOG.md +0 -236
  303. package/attributes-master/packages/rangeslider/README.md +0 -95
  304. package/attributes-master/packages/rangeslider/package.json +0 -23
  305. package/attributes-master/packages/rangeslider/src/actions/a11y.ts +0 -21
  306. package/attributes-master/packages/rangeslider/src/actions/events.ts +0 -9
  307. package/attributes-master/packages/rangeslider/src/actions/settings.ts +0 -97
  308. package/attributes-master/packages/rangeslider/src/actions/styles.ts +0 -10
  309. package/attributes-master/packages/rangeslider/src/actions/values.ts +0 -47
  310. package/attributes-master/packages/rangeslider/src/components/Fill.ts +0 -70
  311. package/attributes-master/packages/rangeslider/src/components/Handle.ts +0 -281
  312. package/attributes-master/packages/rangeslider/src/factory.ts +0 -100
  313. package/attributes-master/packages/rangeslider/src/index.ts +0 -3
  314. package/attributes-master/packages/rangeslider/src/init.ts +0 -194
  315. package/attributes-master/packages/rangeslider/src/utils/constants.ts +0 -87
  316. package/attributes-master/packages/rangeslider/src/utils/selectors.ts +0 -9
  317. package/attributes-master/packages/rangeslider/src/utils/types.ts +0 -6
  318. package/attributes-master/packages/rangeslider/tsconfig.json +0 -3
  319. package/attributes-master/packages/readtime/CHANGELOG.md +0 -108
  320. package/attributes-master/packages/readtime/README.md +0 -25
  321. package/attributes-master/packages/readtime/package.json +0 -22
  322. package/attributes-master/packages/readtime/src/factory.ts +0 -21
  323. package/attributes-master/packages/readtime/src/index.ts +0 -3
  324. package/attributes-master/packages/readtime/src/init.ts +0 -19
  325. package/attributes-master/packages/readtime/src/utils/constants.ts +0 -33
  326. package/attributes-master/packages/readtime/src/utils/selectors.ts +0 -9
  327. package/attributes-master/packages/readtime/tsconfig.json +0 -3
  328. package/attributes-master/packages/removequery/CHANGELOG.md +0 -8
  329. package/attributes-master/packages/removequery/README.md +0 -25
  330. package/attributes-master/packages/removequery/package.json +0 -22
  331. package/attributes-master/packages/removequery/src/index.ts +0 -3
  332. package/attributes-master/packages/removequery/src/init.ts +0 -18
  333. package/attributes-master/packages/removequery/src/utils/constants.ts +0 -5
  334. package/attributes-master/packages/removequery/tsconfig.json +0 -3
  335. package/attributes-master/packages/scrolldisable/CHANGELOG.md +0 -164
  336. package/attributes-master/packages/scrolldisable/README.md +0 -29
  337. package/attributes-master/packages/scrolldisable/package.json +0 -27
  338. package/attributes-master/packages/scrolldisable/src/click.ts +0 -40
  339. package/attributes-master/packages/scrolldisable/src/display.ts +0 -117
  340. package/attributes-master/packages/scrolldisable/src/index.ts +0 -3
  341. package/attributes-master/packages/scrolldisable/src/init.ts +0 -36
  342. package/attributes-master/packages/scrolldisable/src/scroll.ts +0 -63
  343. package/attributes-master/packages/scrolldisable/src/utils/constants.ts +0 -56
  344. package/attributes-master/packages/scrolldisable/src/utils/selectors.ts +0 -6
  345. package/attributes-master/packages/scrolldisable/tsconfig.json +0 -3
  346. package/attributes-master/packages/selectcustom/CHANGELOG.md +0 -242
  347. package/attributes-master/packages/selectcustom/README.md +0 -25
  348. package/attributes-master/packages/selectcustom/package.json +0 -23
  349. package/attributes-master/packages/selectcustom/src/actions/a11y.ts +0 -29
  350. package/attributes-master/packages/selectcustom/src/actions/events.ts +0 -159
  351. package/attributes-master/packages/selectcustom/src/actions/observe.ts +0 -83
  352. package/attributes-master/packages/selectcustom/src/actions/populate.ts +0 -67
  353. package/attributes-master/packages/selectcustom/src/actions/settings.ts +0 -68
  354. package/attributes-master/packages/selectcustom/src/actions/state.ts +0 -41
  355. package/attributes-master/packages/selectcustom/src/index.ts +0 -3
  356. package/attributes-master/packages/selectcustom/src/init.ts +0 -51
  357. package/attributes-master/packages/selectcustom/src/utils/constants.ts +0 -34
  358. package/attributes-master/packages/selectcustom/src/utils/selectors.ts +0 -9
  359. package/attributes-master/packages/selectcustom/src/utils/types.ts +0 -14
  360. package/attributes-master/packages/selectcustom/tsconfig.json +0 -3
  361. package/attributes-master/packages/sliderdots/CHANGELOG.md +0 -220
  362. package/attributes-master/packages/sliderdots/README.md +0 -27
  363. package/attributes-master/packages/sliderdots/package.json +0 -22
  364. package/attributes-master/packages/sliderdots/src/actions/events.ts +0 -26
  365. package/attributes-master/packages/sliderdots/src/actions/observe.ts +0 -40
  366. package/attributes-master/packages/sliderdots/src/actions/populate.ts +0 -46
  367. package/attributes-master/packages/sliderdots/src/actions/sync.ts +0 -28
  368. package/attributes-master/packages/sliderdots/src/actions/wait.ts +0 -28
  369. package/attributes-master/packages/sliderdots/src/factory.ts +0 -57
  370. package/attributes-master/packages/sliderdots/src/index.ts +0 -3
  371. package/attributes-master/packages/sliderdots/src/init.ts +0 -30
  372. package/attributes-master/packages/sliderdots/src/utils/constants.ts +0 -33
  373. package/attributes-master/packages/sliderdots/src/utils/selectors.ts +0 -9
  374. package/attributes-master/packages/sliderdots/src/utils/types.ts +0 -7
  375. package/attributes-master/packages/sliderdots/tsconfig.json +0 -3
  376. package/attributes-master/packages/smartlightbox/CHANGELOG.md +0 -203
  377. package/attributes-master/packages/smartlightbox/README.md +0 -25
  378. package/attributes-master/packages/smartlightbox/package.json +0 -22
  379. package/attributes-master/packages/smartlightbox/src/actions/collect.ts +0 -15
  380. package/attributes-master/packages/smartlightbox/src/actions/move.ts +0 -25
  381. package/attributes-master/packages/smartlightbox/src/index.ts +0 -3
  382. package/attributes-master/packages/smartlightbox/src/init.ts +0 -61
  383. package/attributes-master/packages/smartlightbox/src/utils/constants.ts +0 -31
  384. package/attributes-master/packages/smartlightbox/src/utils/selectors.ts +0 -9
  385. package/attributes-master/packages/smartlightbox/tsconfig.json +0 -3
  386. package/attributes-master/packages/socialshare/CHANGELOG.md +0 -170
  387. package/attributes-master/packages/socialshare/README.md +0 -25
  388. package/attributes-master/packages/socialshare/package.json +0 -25
  389. package/attributes-master/packages/socialshare/src/actions/collect.ts +0 -93
  390. package/attributes-master/packages/socialshare/src/actions/share.ts +0 -91
  391. package/attributes-master/packages/socialshare/src/actions/trigger.ts +0 -46
  392. package/attributes-master/packages/socialshare/src/factory.ts +0 -149
  393. package/attributes-master/packages/socialshare/src/index.ts +0 -3
  394. package/attributes-master/packages/socialshare/src/init.ts +0 -35
  395. package/attributes-master/packages/socialshare/src/utils/constants.ts +0 -94
  396. package/attributes-master/packages/socialshare/src/utils/dom.ts +0 -8
  397. package/attributes-master/packages/socialshare/src/utils/selectors.ts +0 -6
  398. package/attributes-master/packages/socialshare/src/utils/stores.ts +0 -10
  399. package/attributes-master/packages/socialshare/src/utils/types.ts +0 -34
  400. package/attributes-master/packages/socialshare/tsconfig.json +0 -3
  401. package/attributes-master/packages/starrating/CHANGELOG.md +0 -70
  402. package/attributes-master/packages/starrating/README.md +0 -25
  403. package/attributes-master/packages/starrating/package.json +0 -22
  404. package/attributes-master/packages/starrating/src/actions/classes.ts +0 -41
  405. package/attributes-master/packages/starrating/src/actions/events.ts +0 -80
  406. package/attributes-master/packages/starrating/src/factory.ts +0 -24
  407. package/attributes-master/packages/starrating/src/index.ts +0 -3
  408. package/attributes-master/packages/starrating/src/init.ts +0 -24
  409. package/attributes-master/packages/starrating/src/utils/constants.ts +0 -20
  410. package/attributes-master/packages/starrating/src/utils/helpers.ts +0 -63
  411. package/attributes-master/packages/starrating/src/utils/selectors.ts +0 -9
  412. package/attributes-master/packages/starrating/tsconfig.json +0 -3
  413. package/attributes-master/packages/template/README.md +0 -25
  414. package/attributes-master/packages/template/package.json +0 -22
  415. package/attributes-master/packages/template/src/actions/console.ts +0 -4
  416. package/attributes-master/packages/template/src/index.ts +0 -3
  417. package/attributes-master/packages/template/src/init.ts +0 -14
  418. package/attributes-master/packages/template/src/utils/constants.ts +0 -18
  419. package/attributes-master/packages/template/src/utils/selectors.ts +0 -5
  420. package/attributes-master/packages/template/tsconfig.json +0 -3
  421. package/attributes-master/packages/toc/CHANGELOG.md +0 -192
  422. package/attributes-master/packages/toc/README.md +0 -25
  423. package/attributes-master/packages/toc/package.json +0 -23
  424. package/attributes-master/packages/toc/src/actions/collect.ts +0 -136
  425. package/attributes-master/packages/toc/src/actions/create.ts +0 -44
  426. package/attributes-master/packages/toc/src/actions/events.ts +0 -29
  427. package/attributes-master/packages/toc/src/actions/observe.ts +0 -31
  428. package/attributes-master/packages/toc/src/actions/populate.ts +0 -68
  429. package/attributes-master/packages/toc/src/actions/prepare.ts +0 -25
  430. package/attributes-master/packages/toc/src/actions/scroll.ts +0 -33
  431. package/attributes-master/packages/toc/src/components/TOCItem.ts +0 -88
  432. package/attributes-master/packages/toc/src/factory.ts +0 -47
  433. package/attributes-master/packages/toc/src/index.ts +0 -3
  434. package/attributes-master/packages/toc/src/init.ts +0 -37
  435. package/attributes-master/packages/toc/src/utils/constants.ts +0 -55
  436. package/attributes-master/packages/toc/src/utils/helpers.ts +0 -23
  437. package/attributes-master/packages/toc/src/utils/selectors.ts +0 -6
  438. package/attributes-master/packages/toc/src/utils/types.ts +0 -21
  439. package/attributes-master/packages/toc/tsconfig.json +0 -3
  440. package/attributes-master/packages/utils/CHANGELOG.md +0 -43
  441. package/attributes-master/packages/utils/package.json +0 -27
  442. package/attributes-master/packages/utils/src/animations/factory.ts +0 -100
  443. package/attributes-master/packages/utils/src/animations/index.ts +0 -73
  444. package/attributes-master/packages/utils/src/animations/types.ts +0 -37
  445. package/attributes-master/packages/utils/src/components/Interaction.ts +0 -79
  446. package/attributes-master/packages/utils/src/components/Renderer.ts +0 -59
  447. package/attributes-master/packages/utils/src/components/index.ts +0 -2
  448. package/attributes-master/packages/utils/src/constants/a11y.ts +0 -50
  449. package/attributes-master/packages/utils/src/constants/attributes.ts +0 -57
  450. package/attributes-master/packages/utils/src/constants/index.ts +0 -5
  451. package/attributes-master/packages/utils/src/constants/keyboard.ts +0 -10
  452. package/attributes-master/packages/utils/src/constants/webflow.ts +0 -74
  453. package/attributes-master/packages/utils/src/helpers/dates.ts +0 -17
  454. package/attributes-master/packages/utils/src/helpers/dom.ts +0 -82
  455. package/attributes-master/packages/utils/src/helpers/events.ts +0 -59
  456. package/attributes-master/packages/utils/src/helpers/fetch.ts +0 -217
  457. package/attributes-master/packages/utils/src/helpers/forms.ts +0 -238
  458. package/attributes-master/packages/utils/src/helpers/guards.ts +0 -138
  459. package/attributes-master/packages/utils/src/helpers/index.ts +0 -11
  460. package/attributes-master/packages/utils/src/helpers/numbers.ts +0 -86
  461. package/attributes-master/packages/utils/src/helpers/selectors.ts +0 -249
  462. package/attributes-master/packages/utils/src/helpers/strings.ts +0 -19
  463. package/attributes-master/packages/utils/src/helpers/wait.ts +0 -36
  464. package/attributes-master/packages/utils/src/helpers/webflow.ts +0 -117
  465. package/attributes-master/packages/utils/src/index.ts +0 -5
  466. package/attributes-master/packages/utils/src/types/core.ts +0 -100
  467. package/attributes-master/packages/utils/src/types/dom.ts +0 -31
  468. package/attributes-master/packages/utils/src/types/index.ts +0 -4
  469. package/attributes-master/packages/utils/src/types/utils.ts +0 -20
  470. package/attributes-master/packages/utils/src/types/webflow.ts +0 -147
  471. package/attributes-master/packages/utils/tsconfig.json +0 -3
  472. package/attributes-master/packages/videohls/CHANGELOG.md +0 -76
  473. package/attributes-master/packages/videohls/README.md +0 -27
  474. package/attributes-master/packages/videohls/package.json +0 -26
  475. package/attributes-master/packages/videohls/src/actions/list.ts +0 -23
  476. package/attributes-master/packages/videohls/src/actions/video.ts +0 -44
  477. package/attributes-master/packages/videohls/src/index.ts +0 -3
  478. package/attributes-master/packages/videohls/src/init.ts +0 -28
  479. package/attributes-master/packages/videohls/src/utils/constants.ts +0 -12
  480. package/attributes-master/packages/videohls/src/utils/selectors.ts +0 -5
  481. package/attributes-master/packages/videohls/src/utils/stores.ts +0 -3
  482. package/attributes-master/packages/videohls/tsconfig.json +0 -3
  483. package/attributes-master/pnpm-lock.yaml +0 -3317
  484. package/attributes-master/pnpm-workspace.yaml +0 -3
  485. package/attributes-master/tsconfig.json +0 -6
  486. package/autoInit/smooth-scroll.js +0 -89
  487. package/debug-version.html +0 -37
  488. package/utils/navbar.js +0 -214
  489. package/utils/scroll-progress.js +0 -29
  490. package/utils/toc.js +0 -77
@@ -1,176 +0,0 @@
1
- import { addListener, isFormField, isNumber } from '@finsweet/attributes-utils';
2
- import { watch } from '@vue/reactivity';
3
-
4
- import type { List } from '../../components/List';
5
- import { getAttribute, getElementSelector } from '../../utils/selectors';
6
- import { handleFiltersForm } from '../elements';
7
- import { getConditionData, getStandardFiltersGroup, setConditionsData } from './conditions';
8
- import { initFacets } from './facets';
9
-
10
- /**
11
- * Initializes standard filters for a list.
12
- * @param list
13
- * @param form
14
- * @returns A cleanup function.
15
- */
16
- export const initStandardFilters = (list: List, forms: HTMLFormElement[]) => {
17
- const cleanups = forms.map((form, groupIndex) => initStandardFiltersForm(list, form, groupIndex));
18
-
19
- return () => {
20
- for (const cleanup of cleanups) {
21
- cleanup();
22
- }
23
- };
24
- };
25
-
26
- /**
27
- * Initializes standard filters for a list.
28
- * @param list
29
- * @param form
30
- * @param groupIndex
31
- * @returns A cleanup function.
32
- */
33
- const initStandardFiltersForm = (list: List, form: HTMLFormElement, groupIndex: number) => {
34
- const debounces = new Map<string, number>();
35
-
36
- // Handle inputs
37
- const formElementCleanup = handleFiltersForm(form);
38
- const formFieldsCleanup = handleFormFields(list, form, groupIndex, debounces);
39
-
40
- // Handle clear buttons
41
- const clickCleanup = handleClearButtons(list, groupIndex, debounces);
42
-
43
- // Get initial filters
44
- const groupsMatch = getAttribute(form, 'groupsmatch', { filterInvalid: true });
45
-
46
- list.filters.value.groupsMatch ||= groupsMatch;
47
- list.filters.value.groups[groupIndex] = getStandardFiltersGroup(list, form, groupIndex);
48
-
49
- // 2 way binding
50
- const twoWayBindingCleanup = watch(
51
- () => list.filters.value.groups[groupIndex]?.conditions,
52
- (conditions) => {
53
- if (list.readingFilters) return;
54
-
55
- setConditionsData(list, form, conditions);
56
- },
57
- { deep: true }
58
- );
59
-
60
- const facetCountsCleanup = initFacets(list, form, groupIndex);
61
-
62
- return () => {
63
- formElementCleanup();
64
- formFieldsCleanup();
65
- clickCleanup();
66
- twoWayBindingCleanup();
67
- facetCountsCleanup();
68
- };
69
- };
70
-
71
- /**
72
- * Handles the form inputs.
73
- * @param list
74
- * @param form
75
- * @param debounces
76
- * @returns A cleanup function.
77
- */
78
- const handleFormFields = (list: List, form: HTMLFormElement, groupIndex: number, debounces: Map<string, number>) => {
79
- const event = getAttribute(form, 'filteron', { filterInvalid: true });
80
-
81
- // submit
82
- if (event === 'submit') {
83
- return addListener(form, 'submit', () => {
84
- list.readingFilters = true;
85
-
86
- list.filters.value.groups[groupIndex] = getStandardFiltersGroup(list, form, groupIndex, true);
87
-
88
- list.readingFilters = false;
89
- });
90
- }
91
-
92
- // input / change
93
- return addListener(form, event, (e) => {
94
- if (list.settingFilters) return;
95
-
96
- const { target } = e;
97
-
98
- if (!isFormField(target)) return;
99
-
100
- const fieldKey = getAttribute(target, 'field')?.trim();
101
- if (!fieldKey) return;
102
-
103
- const condition = getConditionData(target, fieldKey, true);
104
-
105
- const update = () => {
106
- const conditions = list.filters.value.groups[groupIndex]?.conditions || [];
107
-
108
- const conditionIndex = conditions.findIndex((c) => c.fieldKey === fieldKey && c.op === condition.op);
109
-
110
- list.readingFilters = true;
111
-
112
- if (conditionIndex >= 0) {
113
- conditions[conditionIndex] = condition;
114
- } else {
115
- conditions.push(condition);
116
- }
117
-
118
- list.readingFilters = false;
119
- };
120
-
121
- const debounceKey = `${fieldKey}_${condition.op}`;
122
- const debounce = debounces.get(debounceKey);
123
-
124
- if (debounce) {
125
- clearTimeout(debounce);
126
- }
127
-
128
- // With debouncing
129
- const timeout = getAttribute(target, 'debounce');
130
-
131
- if (isNumber(timeout) && !isNaN(timeout)) {
132
- const timeoutId = window.setTimeout(update, timeout);
133
-
134
- debounces.set(debounceKey, timeoutId);
135
- return;
136
- }
137
-
138
- // Without debouncing
139
- update();
140
- });
141
- };
142
-
143
- /**
144
- * Handles the clear buttons.
145
- * @param list
146
- * @param debounces
147
- * @returns A cleanup function.
148
- */
149
- const handleClearButtons = (list: List, groupIndex: number, debounces: Map<string, number>) => {
150
- return addListener(window, 'click', (e) => {
151
- const { target } = e;
152
-
153
- if (!(target instanceof Element)) return;
154
-
155
- const { instance, filters } = list;
156
-
157
- const clearElementSelector = getElementSelector('clear', { instance });
158
- const clearElement = target?.closest(clearElementSelector);
159
- if (!clearElement) return;
160
-
161
- const fieldKey = getAttribute(clearElement, 'field')?.trim();
162
-
163
- const conditions = filters.value.groups[groupIndex]?.conditions || [];
164
- const conditionsToClear = fieldKey ? conditions.filter((condition) => condition.fieldKey === fieldKey) : conditions;
165
-
166
- for (const condition of conditionsToClear) {
167
- debounces.delete(`${condition.fieldKey}_${condition.op}`);
168
-
169
- if (Array.isArray(condition.value)) {
170
- condition.value = [];
171
- } else {
172
- condition.value = '';
173
- }
174
- }
175
- });
176
- };
@@ -1,111 +0,0 @@
1
- import { isNotEmpty, isString } from '@finsweet/attributes-utils';
2
-
3
- import type { List } from '../../components';
4
- import { SETTINGS } from '../../utils/constants';
5
- import { listInstancesStore } from '../../utils/store';
6
- import type { FiltersCondition } from '../types';
7
-
8
- /**
9
- * @param list
10
- * @returns A regex to match the filters query string.
11
- */
12
- const getListFiltersQueryRegex = (list: List) => {
13
- const allFieldKeys = Object.keys(list.allFieldsData.value);
14
- const allFilterKeys = list.filters.value.groups.flatMap((group) =>
15
- group.conditions.flatMap((condition) => condition.fieldKey)
16
- );
17
-
18
- const allKeys = new Set([...allFieldKeys, ...allFilterKeys]);
19
-
20
- // Escape special regex characters in the keys
21
- const escapedKeys = [...allKeys].map((key) => key.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
22
-
23
- const regex = new RegExp(`^(?:([0-9]+)_)?(${escapedKeys.join('|')})(?:_(${SETTINGS.operator.values.join('|')}))?$`);
24
- return regex;
25
- };
26
-
27
- /**
28
- * Gets the filters query string for the list.
29
- * @param list
30
- */
31
- export const getListFiltersQuery = async (list: List) => {
32
- const usePrefix = listInstancesStore.size > 1;
33
- const existingParams = await list.getAllSearchParams(usePrefix);
34
-
35
- const regex = getListFiltersQueryRegex(list);
36
- const params = existingParams.filter(([key]) => key.match(regex));
37
-
38
- for (const [key, value] of params) {
39
- const match = key.match(regex);
40
- if (!match) continue;
41
-
42
- const groupIndex = match[1] ? parseInt(match[1]) : 0;
43
- const fieldKey = match[2];
44
- const op = match[3] ? match[3] : undefined;
45
-
46
- const condition = list.filters.value.groups[groupIndex]?.conditions.find(
47
- (c) => c.fieldKey === fieldKey && c.op === op
48
- );
49
-
50
- if (!condition) continue;
51
-
52
- let valueToSet: FiltersCondition['value'] = value;
53
-
54
- try {
55
- const parsedValue = JSON.parse(value);
56
-
57
- if (Array.isArray(parsedValue) && parsedValue.every(isString)) {
58
- valueToSet = parsedValue;
59
- } else if (isString(parsedValue)) {
60
- valueToSet = parsedValue;
61
- }
62
- } catch {
63
- // Skip
64
- }
65
-
66
- condition.value = valueToSet;
67
- condition.interacted = true;
68
- }
69
- };
70
-
71
- /**
72
- * Sets the filters query string for the list.
73
- * @param list
74
- */
75
- export const setListFiltersQuery = async (list: List) => {
76
- const usePrefix = listInstancesStore.size > 1;
77
- const existingParams = await list.getAllSearchParams(usePrefix);
78
-
79
- const regex = getListFiltersQueryRegex(list);
80
-
81
- for (const [key] of existingParams) {
82
- if (!key.match(regex)) continue;
83
-
84
- await list.setSearchParam(key, null, usePrefix);
85
- }
86
-
87
- const multipleGroups = list.filters.value.groups.length > 1;
88
-
89
- list.filters.value.groups.forEach((group, index) => {
90
- group.conditions.forEach(({ fieldKey, op, value, interacted }) => {
91
- const key = [multipleGroups ? index : undefined, fieldKey, op].filter(isNotEmpty).join('_');
92
- const isArray = Array.isArray(value);
93
-
94
- if (!interacted || !value || (isArray && !value.length)) return;
95
-
96
- let valueToSet = null;
97
-
98
- if (isArray) {
99
- try {
100
- valueToSet = JSON.stringify(value);
101
- } catch {
102
- //
103
- }
104
- } else {
105
- valueToSet = value;
106
- }
107
-
108
- list.setSearchParam(key, valueToSet, usePrefix);
109
- });
110
- });
111
- };
@@ -1,314 +0,0 @@
1
- import { addListener, cloneNode, isDate, isNotEmpty, isNumber } from '@finsweet/attributes-utils';
2
- import { watch } from '@vue/reactivity';
3
-
4
- import type { List } from '../components/List';
5
- import { SETTINGS } from '../utils/constants';
6
- import { getAttribute, getElementSelector, queryElement } from '../utils/selectors';
7
- import type { FilterOperator, Filters, FiltersCondition } from './types';
8
- import { parseFilterValue } from './utils';
9
-
10
- type TagData = {
11
- element: HTMLElement;
12
- remove: () => void;
13
- cleanup: () => void;
14
- };
15
-
16
- type TagGroupData = {
17
- element: HTMLElement;
18
- renderedTags: Map<string, TagData>;
19
- remove: () => void;
20
- cleanup: () => void;
21
- };
22
-
23
- const OPERATOR_SYMBOLS: Record<FilterOperator, string> = {
24
- empty: '∅',
25
- 'not-empty': '!∅',
26
- contain: '⊃',
27
- 'not-contain': '⊅',
28
- start: '⋀',
29
- 'not-start': '⋀̸',
30
- end: '⋁',
31
- 'not-end': '⋁̸',
32
- equal: '=',
33
- 'not-equal': '≠',
34
- less: '<',
35
- 'less-equal': '≤',
36
- greater: '>',
37
- 'greater-equal': '≥',
38
- };
39
-
40
- /**
41
- * Inits the tags for the list.
42
- * @param list
43
- * @param isDynamic Defines if the filters are dynamic or not
44
- * @returns A cleanup function
45
- */
46
- export const initTags = (list: List, isDynamic: boolean) => {
47
- const tagTemplate = queryElement('tag', { instance: list.instance });
48
- if (!tagTemplate) return;
49
-
50
- const tagGroupTemplate =
51
- tagTemplate.closest<HTMLElement>(getElementSelector('tag-group')) || tagTemplate.parentElement;
52
- if (!tagGroupTemplate) return;
53
-
54
- const tagsListsWrapper = tagGroupTemplate.parentNode;
55
- if (!tagsListsWrapper) return;
56
-
57
- const indexOfTagTemplate = Array.from(tagGroupTemplate.children).indexOf(tagTemplate);
58
- const indexOfTagGroupTemplate = Array.from(tagsListsWrapper.children).indexOf(tagGroupTemplate);
59
-
60
- tagGroupTemplate.remove();
61
- tagTemplate.remove();
62
-
63
- const renderedTagGroups: Map<string, TagGroupData> = new Map();
64
-
65
- const watcherCleanup = watch(
66
- list.filters,
67
- (filters: Filters) => {
68
- // Render the tag groups
69
- const newRenderedTagGroups = new Map<string, TagGroupData>();
70
-
71
- filters.groups.forEach((group) => {
72
- // Get the tag list, if existing
73
- let tagGroupData = renderedTagGroups.get(group.id);
74
-
75
- const tagListIsRendered = !!tagGroupData;
76
-
77
- if (!tagGroupData) {
78
- const element = cloneNode(tagGroupTemplate);
79
- const removeElement = queryElement('tag-group-remove', { scope: element });
80
- const removeCleanup = addListener(removeElement, 'click', () => {
81
- tagGroupData?.remove();
82
- });
83
-
84
- tagGroupData = {
85
- element,
86
- renderedTags: new Map(),
87
- remove: () => {
88
- tagGroupData?.renderedTags.forEach((tag) => tag.remove());
89
-
90
- const hasGroups = filters.groups.length > 1;
91
-
92
- if (isDynamic && hasGroups) {
93
- const groupIndex = filters.groups.findIndex((g) => g.id === group.id);
94
- filters.groups.splice(groupIndex, 1);
95
- }
96
- },
97
- cleanup: () => {
98
- removeCleanup();
99
- tagGroupData?.renderedTags.forEach((tag) => tag.cleanup());
100
- tagGroupData?.element.remove();
101
- renderedTagGroups.delete(group.id);
102
- },
103
- };
104
-
105
- renderedTagGroups.set(group.id, tagGroupData);
106
- }
107
-
108
- // Render the tags
109
- const newRenderedTags = new Map<string, TagData>();
110
-
111
- const shouldRender = group.conditions
112
- .map((condition) => {
113
- // Get the tag, if existing
114
- let tagData = tagGroupData.renderedTags.get(condition.id);
115
-
116
- const tagIsRendered = !!tagData;
117
-
118
- // Remove the tag if the value is empty
119
- const shouldRender =
120
- condition.showTag &&
121
- !!condition.interacted &&
122
- !!condition.value &&
123
- (Array.isArray(condition.value) ? !!condition.value.length : true);
124
-
125
- if (!shouldRender) {
126
- tagData?.cleanup();
127
- return false;
128
- }
129
-
130
- if (!tagData) {
131
- const element = cloneNode(tagTemplate);
132
- const removeElement = queryElement('tag-remove', { scope: element });
133
- const removeCleanup = addListener(removeElement, 'click', () => tagData?.remove());
134
-
135
- tagData = {
136
- element,
137
- remove: () => {
138
- const hasConditions = group.conditions.length > 1;
139
- const conditionIndex = group.conditions.findIndex((c) => c.id === condition.id);
140
-
141
- if (isDynamic && hasConditions) {
142
- group.conditions.splice(conditionIndex, 1);
143
- } else {
144
- group.conditions[conditionIndex].value = Array.isArray(condition.value) ? [] : '';
145
- }
146
- },
147
- cleanup: () => {
148
- removeCleanup();
149
- tagData?.element.remove();
150
- tagGroupData.renderedTags.delete(condition.id);
151
- },
152
- };
153
-
154
- tagGroupData.renderedTags.set(condition.id, tagData);
155
- }
156
-
157
- populateTag(condition, tagData);
158
-
159
- if (!tagIsRendered) {
160
- const anchor = tagGroupData.element.children[indexOfTagTemplate + newRenderedTags.size] || null;
161
-
162
- tagGroupData.element.insertBefore(tagData.element, anchor);
163
- }
164
-
165
- newRenderedTags.set(condition.id, tagData);
166
-
167
- return true;
168
- })
169
- .some(Boolean);
170
-
171
- // Remove the tags that are not rendered anymore
172
- for (const [id, tagData] of tagGroupData.renderedTags) {
173
- if (!newRenderedTags.has(id)) {
174
- tagData.cleanup();
175
- }
176
- }
177
-
178
- if (!shouldRender) {
179
- tagGroupData.cleanup();
180
- return;
181
- }
182
-
183
- if (!tagListIsRendered) {
184
- const anchor = tagsListsWrapper.children[indexOfTagGroupTemplate + newRenderedTagGroups.size] || null;
185
-
186
- tagsListsWrapper.insertBefore(tagGroupData.element, anchor);
187
- }
188
-
189
- newRenderedTagGroups.set(group.id, tagGroupData);
190
- });
191
-
192
- // Remove the tag groups that are not rendered anymore
193
- for (const [id, tagGroupData] of renderedTagGroups) {
194
- if (!newRenderedTagGroups.has(id)) {
195
- tagGroupData.cleanup();
196
- }
197
- }
198
- },
199
- { deep: true }
200
- );
201
-
202
- return () => {
203
- watcherCleanup();
204
-
205
- for (const [, { cleanup }] of renderedTagGroups) {
206
- cleanup();
207
- }
208
- };
209
- };
210
-
211
- /**
212
- * Populates a tag with the condition data.
213
- * @param condition
214
- * @param tagData
215
- */
216
- const populateTag = (condition: FiltersCondition, tagData: TagData) => {
217
- const scope = tagData.element;
218
-
219
- const fieldElement = queryElement('tag-field', { scope });
220
- const operatorElement = queryElement('tag-operator', { scope });
221
- const valueElement = queryElement('tag-value', { scope });
222
-
223
- const operatorOverwriteElements = new Map(
224
- SETTINGS.operator.values
225
- .map((operator) => {
226
- const operatorOverwriteElement = queryElement(`tag-operator-${operator}`, { scope });
227
- if (!operatorOverwriteElement) return;
228
-
229
- return [operator, operatorOverwriteElement] as const;
230
- })
231
- .filter(isNotEmpty)
232
- );
233
-
234
- // Field
235
- if (fieldElement) {
236
- fieldElement.textContent = condition.customTagField || condition.fieldKey;
237
- }
238
-
239
- // Operator
240
- const operator = condition.op;
241
-
242
- if (operator) {
243
- const operatorOverwriteElement = operatorOverwriteElements.get(operator);
244
-
245
- // Overwrite exists
246
- if (operatorOverwriteElement) {
247
- operatorElement?.remove();
248
- operatorOverwriteElements.delete(operator);
249
- }
250
-
251
- // Fallback
252
- else if (operatorElement) {
253
- const operatorSymbol = OPERATOR_SYMBOLS[operator];
254
- operatorElement.textContent = operatorSymbol;
255
- }
256
-
257
- // Remove all unused overwrites
258
- for (const [, element] of operatorOverwriteElements) {
259
- element.remove();
260
- }
261
- }
262
-
263
- // Value
264
- if (valueElement) {
265
- // No value
266
- if (!condition.value) {
267
- valueElement.remove();
268
- }
269
-
270
- // Has value
271
- else {
272
- // Format the value, if needed
273
- let formattedValue = condition.value;
274
-
275
- const formatDisplay = getAttribute(valueElement, 'formatdisplay');
276
- if (formatDisplay) {
277
- const locale = formatDisplay === 'true' ? undefined : formatDisplay;
278
-
279
- if (Array.isArray(condition.value)) {
280
- formattedValue = condition.value.map((value) => {
281
- const parsedValue = parseFilterValue(value, condition.type);
282
-
283
- if (isNumber(parsedValue)) {
284
- return parsedValue.toLocaleString(locale);
285
- }
286
-
287
- if (isDate(parsedValue)) {
288
- return parsedValue.toLocaleDateString(locale);
289
- }
290
-
291
- return value;
292
- });
293
- } else {
294
- const parsedValue = parseFilterValue(condition.value, condition.type);
295
-
296
- if (isNumber(parsedValue)) {
297
- formattedValue = parsedValue.toLocaleString(locale);
298
- }
299
-
300
- if (isDate(parsedValue)) {
301
- formattedValue = parsedValue.toLocaleDateString(locale);
302
- }
303
- }
304
- }
305
-
306
- // Set the value
307
- const value = Array.isArray(formattedValue)
308
- ? formattedValue.join(condition.filterMatch === 'and' ? ' & ' : ' | ')
309
- : formattedValue;
310
-
311
- valueElement.textContent = value;
312
- }
313
- }
314
- };
@@ -1,62 +0,0 @@
1
- import type { FormFieldType } from '@finsweet/attributes-utils';
2
-
3
- import type { ListItem, ListItemField } from '../components';
4
- import type { SETTINGS } from '../utils/constants';
5
-
6
- // General
7
- type FilterOperatorValues = (typeof SETTINGS)['operator']['values'];
8
- export type FilterOperator = FilterOperatorValues[number];
9
-
10
- export type FilterMatch = 'and' | 'or';
11
-
12
- export type FiltersCondition = {
13
- id: string;
14
- fieldKey: string;
15
- op?: FilterOperator;
16
- type: FormFieldType;
17
- value: string | string[];
18
- filterMatch?: FilterMatch;
19
- fieldMatch?: FilterMatch;
20
- fuzzyThreshold?: number;
21
- interacted?: boolean;
22
- customTagField?: string;
23
- showTag: boolean;
24
- };
25
-
26
- export type FiltersGroup = {
27
- id: string;
28
- conditionsMatch: FilterMatch;
29
- conditions: FiltersCondition[];
30
- };
31
-
32
- export type Filters = {
33
- groupsMatch?: FilterMatch;
34
- groups: FiltersGroup[];
35
- };
36
-
37
- export type FieldValue = string | number | Date;
38
- export type FieldValueType = 'single' | 'multiple';
39
-
40
- // Filter tasks
41
- export type FilterTaskMatchedFields = {
42
- [fieldKey: string]: Array<{ fieldValue: FieldValue; filterValue: string }>;
43
- };
44
-
45
- export type FilterTaskItem = Pick<ListItem, 'id' | 'fields'> & { matchedFields: FilterTaskMatchedFields };
46
-
47
- export type FilterTaskData = { filters: Filters; items: FilterTaskItem[] };
48
- export type FilterTaskResult = FilterTaskItem[];
49
- export type FilterTask = {
50
- data: FilterTaskData;
51
- resolve: (result: FilterTaskResult) => void;
52
- reject: (error: unknown) => void;
53
- };
54
-
55
- // Dynamic filters
56
- export type AllFieldsData = {
57
- [fieldKey: string]: {
58
- type: ListItemField['type'];
59
- valueType: FieldValueType;
60
- rawValues: Set<string>;
61
- };
62
- };