@hortonstudio/main 1.2.11 → 1.2.13

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 (489) hide show
  1. package/index.js +23 -10
  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/utils/navbar.js +0 -214
  488. package/utils/scroll-progress.js +0 -29
  489. package/utils/toc.js +0 -77
@@ -1,639 +0,0 @@
1
- import {
2
- addListener,
3
- cloneNode,
4
- extractCommaSeparatedValues,
5
- type FormField,
6
- type FormFieldType,
7
- isFormField,
8
- isHTMLSelectElement,
9
- setFormFieldValue,
10
- simulateEvent,
11
- } from '@finsweet/attributes-utils';
12
- import { effect, watch } from '@vue/reactivity';
13
- import debounce from 'just-debounce';
14
-
15
- import type { List } from '../../components';
16
- import { ALLOWED_DYNAMIC_FIELD_TYPES, SETTINGS } from '../../utils/constants';
17
- import {
18
- CUSTOM_VALUE_ATTRIBUTE,
19
- getAttribute,
20
- getElementSelector,
21
- queryAllElements,
22
- queryElement,
23
- } from '../../utils/selectors';
24
- import type { AllFieldsData, FilterOperator, FiltersCondition } from '../types';
25
- import { type ConditionGroup, getFiltersGroup } from './groups';
26
- import { getFilterMatchValue, parseOperatorValue } from './utils';
27
-
28
- export type Condition = {
29
- id: string;
30
- element: HTMLElement;
31
- conditionGroup: ConditionGroup;
32
- cleanup: () => void;
33
- };
34
-
35
- /**
36
- * Inits the conditions matching selector for a dynamic filters setup.
37
- * @param list
38
- * @param element
39
- * @param conditionGroup
40
- */
41
- export const initConditionsMatch = (list: List, element: HTMLSelectElement, conditionGroup: ConditionGroup) => {
42
- // TODO: support fs-list-filteron
43
- const inputCleanup = addListener(element, 'change', () => {
44
- const filtersGroup = getFiltersGroup(list, conditionGroup);
45
- if (!filtersGroup) return;
46
-
47
- const conditionsMatch = getFilterMatchValue(element);
48
-
49
- filtersGroup.conditionsMatch = conditionsMatch;
50
- });
51
-
52
- const disabledClass = getAttribute(element, 'dynamicdisabledclass');
53
-
54
- const runner = effect(() => {
55
- const disabled = conditionGroup.conditions.value.length <= 1;
56
-
57
- element.setAttribute('aria-disabled', disabled ? 'true' : 'false');
58
- element.classList.toggle(disabledClass, disabled);
59
- });
60
-
61
- return () => {
62
- inputCleanup();
63
- runner.effect.stop();
64
- };
65
- };
66
-
67
- /**
68
- * Inits the condition add button of a condition group.
69
- * @param list
70
- * @param element
71
- * @param conditionTemplate
72
- * @param conditionGroup
73
- * @returns A cleanup function
74
- */
75
- export const initConditionAdd = (
76
- list: List,
77
- element: HTMLElement,
78
- conditionTemplate: HTMLElement,
79
- conditionGroup: ConditionGroup
80
- ) => {
81
- const cleanup = addListener(element, 'click', () => {
82
- const conditionClone = cloneNode(conditionTemplate);
83
-
84
- const condition = initCondition(list, conditionClone, conditionGroup);
85
- if (!condition) return;
86
-
87
- const $conditions = conditionGroup.conditions.value;
88
- const previousCondition = $conditions[$conditions.length - 2];
89
-
90
- if (previousCondition) {
91
- previousCondition.element.after(condition.element);
92
- } else {
93
- conditionGroup.element.append(condition.element);
94
- }
95
- });
96
-
97
- return cleanup;
98
- };
99
-
100
- /**
101
- * Inits the condition remove button of a condition.
102
- * @param element
103
- * @param condition
104
- * @param conditionGroup
105
- * @returns A cleanup function
106
- */
107
- const initConditionRemove = (element: HTMLElement, condition: Condition, conditionGroup: ConditionGroup) => {
108
- const clickCleanup = addListener(element, 'click', () => {
109
- if (conditionGroup.conditions.value.length <= 1) return;
110
-
111
- condition.cleanup();
112
- });
113
-
114
- const disabledClass = getAttribute(element, 'dynamicdisabledclass');
115
-
116
- const runner = effect(() => {
117
- const disabled = conditionGroup.conditions.value.length <= 1;
118
-
119
- element.setAttribute('aria-disabled', disabled ? 'true' : 'false');
120
- element.classList.toggle(disabledClass, disabled);
121
- });
122
-
123
- return () => {
124
- clickCleanup();
125
- runner.effect.stop();
126
- };
127
- };
128
-
129
- /**
130
- * Inits the condition field key select of a condition.
131
- * @param list
132
- * @param element
133
- * @param condition
134
- * @returns A cleanup function
135
- */
136
- const initConditionFieldKeySelect = (list: List, element: HTMLSelectElement, condition: Condition) => {
137
- const changeCleanup = addListener(element, 'change', () => {
138
- const filtersCondition = getFiltersCondition(list, condition);
139
- if (!filtersCondition) return;
140
-
141
- filtersCondition.fieldKey = element.value;
142
- });
143
-
144
- const fieldsRunner = effect(() => {
145
- let invalidSelectedOption = false;
146
-
147
- for (const option of element.options) {
148
- const isValid = !!list.allFieldsData.value[option.value];
149
-
150
- option.style.display = isValid ? '' : 'none';
151
- option.disabled = !isValid;
152
-
153
- if (!isValid && option.selected) {
154
- option.selected = false;
155
- invalidSelectedOption = true;
156
- }
157
- }
158
-
159
- if (invalidSelectedOption) {
160
- simulateEvent(element, ['input', 'change']);
161
- }
162
- });
163
-
164
- return () => {
165
- changeCleanup();
166
- fieldsRunner.effect.stop();
167
- };
168
- };
169
-
170
- /**
171
- * Inits the condition operator select of a condition.
172
- * The options are dynamically displayed depending on the selected field key.
173
- * The logic for displaying options is defined in {@link ALLOWED_DYNAMIC_FIELD_TYPES}.
174
- * @param list
175
- * @param element
176
- * @param condition
177
- * @returns A cleanup function
178
- */
179
- const initConditionOperatorSelect = (list: List, element: HTMLSelectElement, condition: Condition) => {
180
- // Change listener
181
- const changeCleanup = addListener(element, 'change', () => {
182
- const filtersCondition = getFiltersCondition(list, condition);
183
- if (!filtersCondition) return;
184
-
185
- const { op, fieldMatch = SETTINGS.fieldmatch.defaultValue } = parseOperatorValue(element.value);
186
-
187
- Object.assign(filtersCondition, { op, fieldMatch });
188
- });
189
-
190
- // Options display logic
191
- const optionsHandler = ([fieldKey, allFieldsData]: [FiltersCondition['fieldKey'], AllFieldsData]) => {
192
- const fieldData = fieldKey ? allFieldsData[fieldKey] : undefined;
193
- const allFieldKeys = Object.keys(allFieldsData);
194
-
195
- let invalidSelectedOption = false;
196
-
197
- // Collect all options data
198
- type OptionData = { option: HTMLOptionElement } & ReturnType<typeof parseOperatorValue>;
199
-
200
- const { optionsData, optionsDataByOp, optionsToHide, optionsToDisplay } = [...element.options].reduce<{
201
- optionsData: OptionData[];
202
- optionsDataByOp: Map<FilterOperator, OptionData[]>;
203
- optionsToHide: HTMLOptionElement[];
204
- optionsToDisplay: HTMLOptionElement[];
205
- }>(
206
- (acc, option) => {
207
- const invalid = () => {
208
- acc.optionsToHide.push(option);
209
- return acc;
210
- };
211
-
212
- if (!option.value) return invalid();
213
- if (!fieldData) return invalid();
214
-
215
- const operatorData = parseOperatorValue(option.value);
216
- if (!operatorData.op) return invalid();
217
-
218
- let isFieldKeyValid = !operatorData.fieldKey;
219
-
220
- if (operatorData.fieldKey) {
221
- const fieldKeys =
222
- operatorData.fieldKey === '*' ? allFieldKeys : extractCommaSeparatedValues(operatorData.fieldKey);
223
-
224
- isFieldKeyValid = fieldKeys.some((key) => key === fieldKey);
225
- }
226
-
227
- if (!isFieldKeyValid) return invalid();
228
-
229
- const isValid = !!ALLOWED_DYNAMIC_FIELD_TYPES[fieldData.type]?.[fieldData.valueType]?.[operatorData.op];
230
- if (!isValid) return invalid();
231
-
232
- const optionData: OptionData = { option, ...operatorData };
233
-
234
- acc.optionsData.push(optionData);
235
- acc.optionsDataByOp.set(operatorData.op, [...(acc.optionsDataByOp.get(operatorData.op) || []), optionData]);
236
-
237
- return acc;
238
- },
239
- {
240
- optionsData: [],
241
- optionsDataByOp: new Map(),
242
- optionsToHide: [],
243
- optionsToDisplay: [],
244
- }
245
- );
246
-
247
- const isMultiFieldValue = fieldData?.valueType === 'multiple';
248
-
249
- for (const { op, option, fieldMatch = SETTINGS.fieldmatch.defaultValue } of optionsData) {
250
- const opOptionsData = optionsDataByOp.get(op!) || [];
251
-
252
- let optionWithPreference;
253
-
254
- if (isMultiFieldValue) {
255
- optionWithPreference =
256
- opOptionsData.find((other) => other.fieldMatch === fieldMatch) ||
257
- opOptionsData.find((other) => other.fieldMatch) ||
258
- opOptionsData.find((other) => !other.fieldMatch);
259
- } else {
260
- optionWithPreference = opOptionsData.find((other) => !other.fieldMatch);
261
- }
262
-
263
- const otherOptionHasPreference = optionWithPreference?.option !== option;
264
- if (otherOptionHasPreference) {
265
- optionsToHide.push(option);
266
- } else {
267
- optionsToDisplay.push(option);
268
- }
269
- }
270
-
271
- for (const option of optionsToDisplay) {
272
- option.style.display = '';
273
- option.disabled = false;
274
- }
275
-
276
- for (const option of optionsToHide) {
277
- option.style.display = 'none';
278
- option.disabled = true;
279
-
280
- if (option.selected) {
281
- option.selected = false;
282
- invalidSelectedOption = true;
283
- }
284
- }
285
-
286
- // If the selected option has changed, trigger an event
287
- if (invalidSelectedOption) {
288
- simulateEvent(element, ['input', 'change']);
289
- }
290
- };
291
-
292
- const optionsCleanup = watch(
293
- [() => getFiltersCondition(list, condition)?.fieldKey, list.allFieldsData],
294
- debounce(optionsHandler, 0),
295
- { immediate: true }
296
- );
297
-
298
- return () => {
299
- changeCleanup();
300
- optionsCleanup();
301
- };
302
- };
303
-
304
- /**
305
- * Initializes the condition value form fields.
306
- * @param list
307
- * @param initialFormField
308
- * @param conditionElement
309
- * @param condition
310
- * @returns A cleanup function
311
- */
312
- const initConditionValueField = (
313
- list: List,
314
- initialFormField: FormField,
315
- conditionElement: HTMLElement,
316
- condition: Condition
317
- ) => {
318
- const conditionValueFieldAnchor = new Comment();
319
- initialFormField.after(conditionValueFieldAnchor);
320
-
321
- const { instance } = list;
322
- const conditionSelector = getElementSelector('condition', { instance });
323
- const conditionValueSelector = getElementSelector('condition-value', { instance });
324
- const externalConditionValueSelector = `:is(${conditionValueSelector}):not(:is(${conditionSelector}) :is(${conditionValueSelector}))`;
325
-
326
- const internalConditionValueFormFields = queryAllElements('condition-value', { scope: conditionElement });
327
- const externalConditionValueFormFields = document.querySelectorAll<HTMLElement>(externalConditionValueSelector);
328
-
329
- const allConditionValueFormFields = new Map<FormFieldType, FormField>();
330
-
331
- for (const internalConditionValueFormField of internalConditionValueFormFields) {
332
- if (!isFormField(internalConditionValueFormField)) continue;
333
-
334
- const type = internalConditionValueFormField.type as FormFieldType;
335
- if (allConditionValueFormFields.has(type)) continue;
336
-
337
- allConditionValueFormFields.set(type, internalConditionValueFormField);
338
- }
339
-
340
- for (const externalConditionValueFormField of externalConditionValueFormFields) {
341
- if (!isFormField(externalConditionValueFormField)) continue;
342
-
343
- const type = externalConditionValueFormField.type as FormFieldType;
344
- if (allConditionValueFormFields.has(type)) continue;
345
-
346
- const clone = cloneNode(externalConditionValueFormField);
347
- allConditionValueFormFields.set(type, clone);
348
- }
349
-
350
- let activeFormFieldType: FormFieldType | undefined;
351
-
352
- const changeHandler = () => {
353
- if (list.settingFilters) return;
354
- if (!activeFormFieldType) return;
355
-
356
- const filtersCondition = getFiltersCondition(list, condition);
357
- if (!filtersCondition) return;
358
-
359
- list.readingFilters = true;
360
-
361
- const activeFormField = allConditionValueFormFields.get(activeFormFieldType)!;
362
-
363
- const value = getConditionValue(activeFormField);
364
- const fuzzyThreshold = getAttribute(activeFormField, 'fuzzy');
365
-
366
- Object.assign(filtersCondition, {
367
- value,
368
- fuzzyThreshold,
369
- type: activeFormFieldType,
370
- });
371
-
372
- list.readingFilters = false;
373
- };
374
-
375
- const changeCleanups = [...allConditionValueFormFields].map(([, formField]) => {
376
- const event = getAttribute(formField, 'filteron', { filterInvalid: true });
377
- const debouncing = getAttribute(formField, 'debounce');
378
-
379
- const target = event === 'submit' ? formField.form : formField;
380
- const handler = debouncing ? debounce(changeHandler, debouncing) : changeHandler;
381
-
382
- return addListener(target, event, handler);
383
- });
384
-
385
- const formFieldsHandler = ([fieldKey, op, allFieldsData]: [
386
- FiltersCondition['fieldKey'],
387
- FiltersCondition['op'],
388
- AllFieldsData,
389
- ]) => {
390
- const fieldData = fieldKey ? allFieldsData[fieldKey] : undefined;
391
-
392
- let allowedFormFields: FormFieldType[] = [];
393
-
394
- if (fieldData && op) {
395
- allowedFormFields = ALLOWED_DYNAMIC_FIELD_TYPES[fieldData.type]?.[fieldData.valueType]?.[op] || [];
396
- }
397
-
398
- const previouslyActiveFormFieldType = activeFormFieldType;
399
-
400
- activeFormFieldType = allowedFormFields.find((type) => allConditionValueFormFields.has(type));
401
-
402
- for (const [type, formField] of allConditionValueFormFields) {
403
- if (type === activeFormFieldType) {
404
- conditionValueFieldAnchor.after(formField);
405
- } else {
406
- formField.remove();
407
- }
408
- }
409
-
410
- if (activeFormFieldType && previouslyActiveFormFieldType !== activeFormFieldType) {
411
- const activeFormField = allConditionValueFormFields.get(activeFormFieldType)!;
412
-
413
- if (isHTMLSelectElement(activeFormField)) {
414
- activeFormField.selectedIndex = 0;
415
- } else {
416
- activeFormField.value = '';
417
- }
418
-
419
- simulateEvent(activeFormField, ['input', 'change']);
420
- }
421
- };
422
-
423
- const optionsHandler = ([fieldKey, allFieldsData]: [FiltersCondition['fieldKey'], AllFieldsData]) => {
424
- const selectElements = [...allConditionValueFormFields.values()].filter(isHTMLSelectElement);
425
- if (!selectElements.length) return;
426
-
427
- const activeSelect = activeFormFieldType ? allConditionValueFormFields.get(activeFormFieldType) : undefined;
428
-
429
- const fieldData = fieldKey ? allFieldsData[fieldKey] : undefined;
430
- const rawValues = fieldData?.rawValues || new Set<string>();
431
-
432
- const sortedValues = [...rawValues].sort((a, b) => a.localeCompare(b));
433
-
434
- for (const selectElement of selectElements) {
435
- const invalidSelectedOption = selectElement.value !== '' && !rawValues.has(selectElement.value);
436
-
437
- for (const option of [...selectElement.options]) {
438
- if (option.value !== '') {
439
- option.remove();
440
- }
441
- }
442
-
443
- for (const value of sortedValues) {
444
- const option = document.createElement('option');
445
- option.value = value;
446
- option.textContent = value;
447
-
448
- selectElement.append(option);
449
- }
450
-
451
- if (selectElement === activeSelect && invalidSelectedOption) {
452
- simulateEvent(selectElement, ['input', 'change']);
453
- }
454
- }
455
- };
456
-
457
- const formFieldsCleanup = watch(
458
- [
459
- () => getFiltersCondition(list, condition)?.fieldKey,
460
- () => getFiltersCondition(list, condition)?.op,
461
- list.allFieldsData,
462
- ],
463
- debounce(formFieldsHandler, 0),
464
- { immediate: true }
465
- );
466
-
467
- const optionsCleanup = watch(
468
- [() => getFiltersCondition(list, condition)?.fieldKey, list.allFieldsData],
469
- debounce(optionsHandler, 0),
470
- { immediate: true }
471
- );
472
-
473
- const twoWayBindingCleanup = watch(
474
- () => getFiltersCondition(list, condition)?.value,
475
- (value) => {
476
- if (list.readingFilters) return;
477
-
478
- for (const formField of allConditionValueFormFields.values()) {
479
- setFormFieldValue(formField, value, CUSTOM_VALUE_ATTRIBUTE);
480
- }
481
- }
482
- );
483
-
484
- return () => {
485
- for (const cleanup of changeCleanups) {
486
- cleanup();
487
- }
488
-
489
- formFieldsCleanup();
490
- optionsCleanup();
491
- twoWayBindingCleanup();
492
- };
493
- };
494
-
495
- /**
496
- * Retrieves the value from a condition value field.
497
- * @param conditionValueField
498
- */
499
- const getConditionValue = (conditionValueField: FormField) => {
500
- const type = conditionValueField.type as FormFieldType;
501
-
502
- let value: string | string[];
503
-
504
- switch (type) {
505
- // Select multiple
506
- case 'select-multiple': {
507
- value = [...(conditionValueField as HTMLSelectElement).selectedOptions]
508
- .map((option) => option.value)
509
- .filter(Boolean);
510
- break;
511
- }
512
-
513
- // Dates
514
- case 'date':
515
- case 'month':
516
- case 'week':
517
- case 'time': {
518
- const { valueAsDate, value: _value } = conditionValueField as HTMLInputElement;
519
-
520
- value = valueAsDate ? valueAsDate.toISOString() : _value;
521
- break;
522
- }
523
-
524
- // Default - Text
525
- default: {
526
- value = conditionValueField.value;
527
- }
528
- }
529
-
530
- return value;
531
- };
532
-
533
- const getFiltersCondition = (list: List, condition: Condition) => {
534
- const group = getFiltersGroup(list, condition.conditionGroup);
535
- if (!group) return;
536
-
537
- return group.conditions.find((c) => c.id === condition.id);
538
- };
539
-
540
- /**
541
- * Inits a condition
542
- * @param list
543
- * @param element
544
- * @param conditionGroup
545
- * @returns A cleanup function
546
- */
547
- export const initCondition = (list: List, element: HTMLElement, conditionGroup: ConditionGroup) => {
548
- const conditionFieldKeySelect = queryElement('condition-field', { scope: element });
549
- if (!isHTMLSelectElement(conditionFieldKeySelect)) return;
550
-
551
- const conditionOperatorSelect = queryElement('condition-operator', { scope: element });
552
- if (!isHTMLSelectElement(conditionOperatorSelect)) return;
553
-
554
- const initialConditionValueFormField = queryElement('condition-value', { scope: element });
555
- if (!isFormField(initialConditionValueFormField)) return;
556
-
557
- // Store the condition
558
- const id = crypto.randomUUID();
559
- const cleanups = new Set<() => void>();
560
-
561
- const condition: Condition = {
562
- id,
563
- element,
564
- conditionGroup,
565
-
566
- cleanup: () => {
567
- for (const cleanup of cleanups) {
568
- cleanup();
569
- }
570
-
571
- cleanups.clear();
572
- element.remove();
573
-
574
- conditionGroup.conditions.value = conditionGroup.conditions.value.filter((condition) => condition.id !== id);
575
-
576
- const filtersGroup = getFiltersGroup(list, conditionGroup);
577
- if (!filtersGroup) return;
578
-
579
- const conditionIndex = filtersGroup.conditions.findIndex((condition) => condition.id === id);
580
- if (conditionIndex === -1) return;
581
-
582
- filtersGroup.conditions.splice(conditionIndex, 1);
583
- },
584
- };
585
-
586
- // Store the condition
587
- const fieldKey = conditionFieldKeySelect.value;
588
- const type = initialConditionValueFormField.type as FormFieldType;
589
-
590
- const value = getConditionValue(initialConditionValueFormField);
591
- const fuzzyThreshold = getAttribute(initialConditionValueFormField, 'fuzzy');
592
- const { op, fieldMatch } = parseOperatorValue(conditionOperatorSelect.value);
593
-
594
- conditionGroup.conditions.value = [...conditionGroup.conditions.value, condition];
595
-
596
- const filtersGroup = getFiltersGroup(list, conditionGroup);
597
- if (!filtersGroup) return;
598
-
599
- filtersGroup.conditions.push({
600
- id,
601
- type,
602
- fieldKey,
603
- op,
604
- value,
605
- fuzzyThreshold,
606
- fieldMatch,
607
- showTag: true,
608
- interacted: true,
609
- });
610
-
611
- // Handle remove button
612
- const conditionRemoveButton = queryElement('condition-remove', { scope: element });
613
- if (conditionRemoveButton) {
614
- const cleanup = initConditionRemove(conditionRemoveButton, condition, conditionGroup);
615
- cleanups.add(cleanup);
616
- }
617
-
618
- const conditionFieldKeySelectCleanup = initConditionFieldKeySelect(list, conditionFieldKeySelect, condition);
619
- cleanups.add(conditionFieldKeySelectCleanup);
620
-
621
- const conditionOperatorSelectCleanup = initConditionOperatorSelect(list, conditionOperatorSelect, condition);
622
- cleanups.add(conditionOperatorSelectCleanup);
623
-
624
- const conditionValueFieldCleanup = initConditionValueField(list, initialConditionValueFormField, element, condition);
625
- cleanups.add(conditionValueFieldCleanup);
626
-
627
- const autoCleanup = watch(
628
- () => getFiltersCondition(list, condition),
629
- (filtersCondition) => {
630
- if (!filtersCondition) {
631
- condition.cleanup();
632
- }
633
- }
634
- );
635
-
636
- cleanups.add(autoCleanup);
637
-
638
- return condition;
639
- };