@wix/auto-patterns 1.46.0 → 1.47.0

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 (412) hide show
  1. package/dist/cjs/assets/locale/messages_en.json +8 -1
  2. package/dist/cjs/cms-fields/components/address/input/address-input.st.css.js +3 -3
  3. package/dist/cjs/cms-fields/components/address/input/address-input.st.css.js.map +1 -1
  4. package/dist/cjs/cms-fields/components/audio/actions/actions-button/actions-button.js +67 -0
  5. package/dist/cjs/cms-fields/components/audio/actions/actions-button/actions-button.js.map +1 -0
  6. package/dist/cjs/cms-fields/components/audio/actions/actions-button/index.js +10 -0
  7. package/dist/cjs/cms-fields/components/audio/actions/actions-button/index.js.map +1 -0
  8. package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.js +119 -0
  9. package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.js.map +1 -0
  10. package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css +5 -0
  11. package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js +25 -0
  12. package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -0
  13. package/dist/cjs/cms-fields/components/audio/actions/actions-menu/index.js +16 -0
  14. package/dist/cjs/cms-fields/components/audio/actions/actions-menu/index.js.map +1 -0
  15. package/dist/cjs/cms-fields/components/audio/actions/actions-menu/types.js +4 -0
  16. package/dist/cjs/cms-fields/components/audio/actions/actions-menu/types.js.map +1 -0
  17. package/dist/cjs/cms-fields/components/audio/audio-field/audio-view.js +68 -0
  18. package/dist/cjs/cms-fields/components/audio/audio-field/audio-view.js.map +1 -0
  19. package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.js +218 -0
  20. package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.js.map +1 -0
  21. package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.st.css +28 -0
  22. package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.st.css.js +31 -0
  23. package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.st.css.js.map +1 -0
  24. package/dist/cjs/cms-fields/components/audio/audio-field/index.js +16 -0
  25. package/dist/cjs/cms-fields/components/audio/audio-field/index.js.map +1 -0
  26. package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.js +77 -0
  27. package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.js.map +1 -0
  28. package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.st.css +11 -0
  29. package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.st.css.js +22 -0
  30. package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.st.css.js.map +1 -0
  31. package/dist/cjs/cms-fields/components/audio/audio-player/index.js +10 -0
  32. package/dist/cjs/cms-fields/components/audio/audio-player/index.js.map +1 -0
  33. package/dist/cjs/cms-fields/components/audio/index.js +16 -0
  34. package/dist/cjs/cms-fields/components/audio/index.js.map +1 -0
  35. package/dist/cjs/cms-fields/components/common.js +2 -2
  36. package/dist/cjs/cms-fields/components/common.js.map +1 -1
  37. package/dist/cjs/cms-fields/components/delete-dialog/delete-dialog.st.css.js +3 -3
  38. package/dist/cjs/cms-fields/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
  39. package/dist/cjs/cms-fields/components/document/document-control.js +31 -14
  40. package/dist/cjs/cms-fields/components/document/document-control.js.map +1 -1
  41. package/dist/cjs/cms-fields/components/document/form-document-field.js +4 -2
  42. package/dist/cjs/cms-fields/components/document/form-document-field.js.map +1 -1
  43. package/dist/cjs/cms-fields/components/document/form-document-field.st.css.js +7 -7
  44. package/dist/cjs/cms-fields/components/document/form-document-field.st.css.js.map +1 -1
  45. package/dist/cjs/cms-fields/components/exclamation/exclamation.st.css.js +5 -5
  46. package/dist/cjs/cms-fields/components/exclamation/exclamation.st.css.js.map +1 -1
  47. package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.js +42 -0
  48. package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.js.map +1 -0
  49. package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.st.css +39 -0
  50. package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.st.css.js +31 -0
  51. package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.st.css.js.map +1 -0
  52. package/dist/cjs/cms-fields/components/highlighted-text/index.js +10 -0
  53. package/dist/cjs/cms-fields/components/highlighted-text/index.js.map +1 -0
  54. package/dist/cjs/cms-fields/components/index.js +6 -0
  55. package/dist/cjs/cms-fields/components/index.js.map +1 -1
  56. package/dist/cjs/cms-fields/components/media-control/paste-url-button.st.css.js +4 -4
  57. package/dist/cjs/cms-fields/components/media-control/paste-url-button.st.css.js.map +1 -1
  58. package/dist/cjs/cms-fields/components/media-control/use-media-control.js +63 -18
  59. package/dist/cjs/cms-fields/components/media-control/use-media-control.js.map +1 -1
  60. package/dist/cjs/cms-fields/components/media-image/media-image.st.css.js +4 -4
  61. package/dist/cjs/cms-fields/components/media-image/media-image.st.css.js.map +1 -1
  62. package/dist/cjs/cms-fields/components/media-loader/index.js +10 -0
  63. package/dist/cjs/cms-fields/components/media-loader/index.js.map +1 -0
  64. package/dist/cjs/cms-fields/components/media-loader/media-loader.js +37 -0
  65. package/dist/cjs/cms-fields/components/media-loader/media-loader.js.map +1 -0
  66. package/dist/cjs/cms-fields/components/media-loader/media-loader.st.css +20 -0
  67. package/dist/cjs/cms-fields/components/media-loader/media-loader.st.css.js +29 -0
  68. package/dist/cjs/cms-fields/components/media-loader/media-loader.st.css.js.map +1 -0
  69. package/dist/cjs/cms-fields/components/media-tag/highlighted-media-tag.js +36 -0
  70. package/dist/cjs/cms-fields/components/media-tag/highlighted-media-tag.js.map +1 -0
  71. package/dist/cjs/cms-fields/components/media-tag/index.js +16 -0
  72. package/dist/cjs/cms-fields/components/media-tag/index.js.map +1 -0
  73. package/dist/cjs/cms-fields/components/media-tag/web-media-tag/index.js +9 -0
  74. package/dist/cjs/cms-fields/components/media-tag/web-media-tag/index.js.map +1 -0
  75. package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.js +62 -0
  76. package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.js.map +1 -0
  77. package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.st.css +12 -0
  78. package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js +25 -0
  79. package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -0
  80. package/dist/cjs/cms-fields/components/media-tag/web-media-tag/table-media-tag-view.js +50 -0
  81. package/dist/cjs/cms-fields/components/media-tag/web-media-tag/table-media-tag-view.js.map +1 -0
  82. package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document-field.js +5 -3
  83. package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document-field.js.map +1 -1
  84. package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document-view.js +10 -8
  85. package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document-view.js.map +1 -1
  86. package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
  87. package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  88. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +6 -6
  89. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
  90. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +5 -5
  91. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  92. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  93. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
  94. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
  95. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
  96. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
  97. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
  98. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  99. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
  100. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +9 -9
  101. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
  102. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +4 -4
  103. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  104. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
  105. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
  106. package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
  107. package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
  108. package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
  109. package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  110. package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
  111. package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  112. package/dist/cjs/cms-fields/components/text/text-view.st.css.js +3 -3
  113. package/dist/cjs/cms-fields/components/text/text-view.st.css.js.map +1 -1
  114. package/dist/cjs/cms-fields/hooks/index.js +6 -0
  115. package/dist/cjs/cms-fields/hooks/index.js.map +1 -1
  116. package/dist/cjs/cms-fields/hooks/use-resize-effect.js +16 -0
  117. package/dist/cjs/cms-fields/hooks/use-resize-effect.js.map +1 -0
  118. package/dist/cjs/cms-fields/utils/fuzzy-search.js +4 -0
  119. package/dist/cjs/cms-fields/utils/fuzzy-search.js.map +1 -0
  120. package/dist/cjs/cms-fields/utils/get-app-bounding-rect.js.map +1 -1
  121. package/dist/cjs/cms-fields/utils/get-app-popover-max-height.js +21 -0
  122. package/dist/cjs/cms-fields/utils/get-app-popover-max-height.js.map +1 -0
  123. package/dist/cjs/cms-fields/utils/get-schema-type.js +7 -0
  124. package/dist/cjs/cms-fields/utils/get-schema-type.js.map +1 -0
  125. package/dist/cjs/cms-fields/utils/index.js +24 -0
  126. package/dist/cjs/cms-fields/utils/index.js.map +1 -1
  127. package/dist/cjs/cms-fields/utils/media-utils.js +4 -20
  128. package/dist/cjs/cms-fields/utils/media-utils.js.map +1 -1
  129. package/dist/cjs/cms-fields/validations/email.js +27 -0
  130. package/dist/cjs/cms-fields/validations/email.js.map +1 -0
  131. package/dist/cjs/components/fields/Audio.js +63 -0
  132. package/dist/cjs/components/fields/Audio.js.map +1 -0
  133. package/dist/cjs/components/fields/Email.js +73 -0
  134. package/dist/cjs/components/fields/Email.js.map +1 -0
  135. package/dist/cjs/components/fields/index.js +7 -1
  136. package/dist/cjs/components/fields/index.js.map +1 -1
  137. package/dist/cjs/components/layouts/FormField.js +4 -2
  138. package/dist/cjs/components/layouts/FormField.js.map +1 -1
  139. package/dist/cjs/components/layouts/ViewField.js +21 -10
  140. package/dist/cjs/components/layouts/ViewField.js.map +1 -1
  141. package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js +7 -1
  142. package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
  143. package/dist/cjs/dataSourceAdapters/cms/filterUtils.js +4 -4
  144. package/dist/cjs/dataSourceAdapters/cms/filterUtils.js.map +1 -1
  145. package/dist/cjs/hooks/getFilterComponent.js +2 -0
  146. package/dist/cjs/hooks/getFilterComponent.js.map +1 -1
  147. package/dist/cjs/hooks/useColumns.js +23 -13
  148. package/dist/cjs/hooks/useColumns.js.map +1 -1
  149. package/dist/cjs/hooks/useFiltersState.js +2 -0
  150. package/dist/cjs/hooks/useFiltersState.js.map +1 -1
  151. package/dist/cjs/services/translations.js.map +1 -1
  152. package/dist/cjs/styles.global.css +1 -1
  153. package/dist/cjs/types/types.js.map +1 -1
  154. package/dist/esm/assets/locale/messages_en.json +8 -1
  155. package/dist/esm/cms-fields/components/address/input/address-input.st.css.js +3 -3
  156. package/dist/esm/cms-fields/components/address/input/address-input.st.css.js.map +1 -1
  157. package/dist/esm/cms-fields/components/audio/actions/actions-button/actions-button.js +42 -0
  158. package/dist/esm/cms-fields/components/audio/actions/actions-button/actions-button.js.map +1 -0
  159. package/dist/esm/cms-fields/components/audio/actions/actions-button/index.js +2 -0
  160. package/dist/esm/cms-fields/components/audio/actions/actions-button/index.js.map +1 -0
  161. package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.js +80 -0
  162. package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.js.map +1 -0
  163. package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css +5 -0
  164. package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js +21 -0
  165. package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -0
  166. package/dist/esm/cms-fields/components/audio/actions/actions-menu/index.js +3 -0
  167. package/dist/esm/cms-fields/components/audio/actions/actions-menu/index.js.map +1 -0
  168. package/dist/esm/cms-fields/components/audio/actions/actions-menu/types.js +2 -0
  169. package/dist/esm/cms-fields/components/audio/actions/actions-menu/types.js.map +1 -0
  170. package/dist/esm/cms-fields/components/audio/audio-field/audio-view.js +37 -0
  171. package/dist/esm/cms-fields/components/audio/audio-field/audio-view.js.map +1 -0
  172. package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.js +131 -0
  173. package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.js.map +1 -0
  174. package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.st.css +28 -0
  175. package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.st.css.js +27 -0
  176. package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.st.css.js.map +1 -0
  177. package/dist/esm/cms-fields/components/audio/audio-field/index.js +3 -0
  178. package/dist/esm/cms-fields/components/audio/audio-field/index.js.map +1 -0
  179. package/dist/esm/cms-fields/components/audio/audio-player/audio-player.js +41 -0
  180. package/dist/esm/cms-fields/components/audio/audio-player/audio-player.js.map +1 -0
  181. package/dist/esm/cms-fields/components/audio/audio-player/audio-player.st.css +11 -0
  182. package/dist/esm/cms-fields/components/audio/audio-player/audio-player.st.css.js +18 -0
  183. package/dist/esm/cms-fields/components/audio/audio-player/audio-player.st.css.js.map +1 -0
  184. package/dist/esm/cms-fields/components/audio/audio-player/index.js +2 -0
  185. package/dist/esm/cms-fields/components/audio/audio-player/index.js.map +1 -0
  186. package/dist/esm/cms-fields/components/audio/index.js +3 -0
  187. package/dist/esm/cms-fields/components/audio/index.js.map +1 -0
  188. package/dist/esm/cms-fields/components/common.js +1 -1
  189. package/dist/esm/cms-fields/components/common.js.map +1 -1
  190. package/dist/esm/cms-fields/components/delete-dialog/delete-dialog.st.css.js +3 -3
  191. package/dist/esm/cms-fields/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
  192. package/dist/esm/cms-fields/components/document/document-control.js +13 -3
  193. package/dist/esm/cms-fields/components/document/document-control.js.map +1 -1
  194. package/dist/esm/cms-fields/components/document/form-document-field.js +3 -1
  195. package/dist/esm/cms-fields/components/document/form-document-field.js.map +1 -1
  196. package/dist/esm/cms-fields/components/document/form-document-field.st.css.js +7 -7
  197. package/dist/esm/cms-fields/components/document/form-document-field.st.css.js.map +1 -1
  198. package/dist/esm/cms-fields/components/exclamation/exclamation.st.css.js +5 -5
  199. package/dist/esm/cms-fields/components/exclamation/exclamation.st.css.js.map +1 -1
  200. package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.js +29 -0
  201. package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.js.map +1 -0
  202. package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.st.css +39 -0
  203. package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.st.css.js +27 -0
  204. package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.st.css.js.map +1 -0
  205. package/dist/esm/cms-fields/components/highlighted-text/index.js +2 -0
  206. package/dist/esm/cms-fields/components/highlighted-text/index.js.map +1 -0
  207. package/dist/esm/cms-fields/components/index.js +1 -0
  208. package/dist/esm/cms-fields/components/index.js.map +1 -1
  209. package/dist/esm/cms-fields/components/media-control/paste-url-button.st.css.js +4 -4
  210. package/dist/esm/cms-fields/components/media-control/paste-url-button.st.css.js.map +1 -1
  211. package/dist/esm/cms-fields/components/media-control/use-media-control.js +63 -18
  212. package/dist/esm/cms-fields/components/media-control/use-media-control.js.map +1 -1
  213. package/dist/esm/cms-fields/components/media-image/media-image.st.css.js +4 -4
  214. package/dist/esm/cms-fields/components/media-image/media-image.st.css.js.map +1 -1
  215. package/dist/esm/cms-fields/components/media-loader/index.js +2 -0
  216. package/dist/esm/cms-fields/components/media-loader/index.js.map +1 -0
  217. package/dist/esm/cms-fields/components/media-loader/media-loader.js +21 -0
  218. package/dist/esm/cms-fields/components/media-loader/media-loader.js.map +1 -0
  219. package/dist/esm/cms-fields/components/media-loader/media-loader.st.css +20 -0
  220. package/dist/esm/cms-fields/components/media-loader/media-loader.st.css.js +25 -0
  221. package/dist/esm/cms-fields/components/media-loader/media-loader.st.css.js.map +1 -0
  222. package/dist/esm/cms-fields/components/media-tag/highlighted-media-tag.js +18 -0
  223. package/dist/esm/cms-fields/components/media-tag/highlighted-media-tag.js.map +1 -0
  224. package/dist/esm/cms-fields/components/media-tag/index.js +3 -0
  225. package/dist/esm/cms-fields/components/media-tag/index.js.map +1 -0
  226. package/dist/esm/cms-fields/components/media-tag/web-media-tag/index.js +3 -0
  227. package/dist/esm/cms-fields/components/media-tag/web-media-tag/index.js.map +1 -0
  228. package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.js +31 -0
  229. package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.js.map +1 -0
  230. package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.st.css +12 -0
  231. package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js +21 -0
  232. package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -0
  233. package/dist/esm/cms-fields/components/media-tag/web-media-tag/table-media-tag-view.js +25 -0
  234. package/dist/esm/cms-fields/components/media-tag/web-media-tag/table-media-tag-view.js.map +1 -0
  235. package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document-field.js +3 -1
  236. package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document-field.js.map +1 -1
  237. package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document-view.js +3 -1
  238. package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document-view.js.map +1 -1
  239. package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
  240. package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  241. package/dist/esm/cms-fields/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +6 -6
  242. package/dist/esm/cms-fields/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
  243. package/dist/esm/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +5 -5
  244. package/dist/esm/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  245. package/dist/esm/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  246. package/dist/esm/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
  247. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
  248. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
  249. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
  250. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
  251. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  252. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
  253. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +9 -9
  254. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
  255. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +4 -4
  256. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  257. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
  258. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
  259. package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
  260. package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
  261. package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
  262. package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  263. package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
  264. package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  265. package/dist/esm/cms-fields/components/text/text-view.st.css.js +3 -3
  266. package/dist/esm/cms-fields/components/text/text-view.st.css.js.map +1 -1
  267. package/dist/esm/cms-fields/hooks/index.js +1 -0
  268. package/dist/esm/cms-fields/hooks/index.js.map +1 -1
  269. package/dist/esm/cms-fields/hooks/use-resize-effect.js +11 -0
  270. package/dist/esm/cms-fields/hooks/use-resize-effect.js.map +1 -0
  271. package/dist/esm/cms-fields/utils/fuzzy-search.js +2 -0
  272. package/dist/esm/cms-fields/utils/fuzzy-search.js.map +1 -0
  273. package/dist/esm/cms-fields/utils/get-app-bounding-rect.js.map +1 -1
  274. package/dist/esm/cms-fields/utils/get-app-popover-max-height.js +16 -0
  275. package/dist/esm/cms-fields/utils/get-app-popover-max-height.js.map +1 -0
  276. package/dist/esm/cms-fields/utils/get-schema-type.js +2 -0
  277. package/dist/esm/cms-fields/utils/get-schema-type.js.map +1 -0
  278. package/dist/esm/cms-fields/utils/index.js +4 -0
  279. package/dist/esm/cms-fields/utils/index.js.map +1 -1
  280. package/dist/esm/cms-fields/utils/media-utils.js +2 -18
  281. package/dist/esm/cms-fields/utils/media-utils.js.map +1 -1
  282. package/dist/esm/cms-fields/validations/email.js +22 -0
  283. package/dist/esm/cms-fields/validations/email.js.map +1 -0
  284. package/dist/esm/components/fields/Audio.js +44 -0
  285. package/dist/esm/components/fields/Audio.js.map +1 -0
  286. package/dist/esm/components/fields/Email.js +53 -0
  287. package/dist/esm/components/fields/Email.js.map +1 -0
  288. package/dist/esm/components/fields/index.js +2 -0
  289. package/dist/esm/components/fields/index.js.map +1 -1
  290. package/dist/esm/components/layouts/FormField.js +4 -2
  291. package/dist/esm/components/layouts/FormField.js.map +1 -1
  292. package/dist/esm/components/layouts/ViewField.js +5 -0
  293. package/dist/esm/components/layouts/ViewField.js.map +1 -1
  294. package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js +8 -1
  295. package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
  296. package/dist/esm/dataSourceAdapters/cms/filterUtils.js +4 -4
  297. package/dist/esm/dataSourceAdapters/cms/filterUtils.js.map +1 -1
  298. package/dist/esm/hooks/getFilterComponent.js +2 -0
  299. package/dist/esm/hooks/getFilterComponent.js.map +1 -1
  300. package/dist/esm/hooks/useColumns.js +5 -1
  301. package/dist/esm/hooks/useColumns.js.map +1 -1
  302. package/dist/esm/hooks/useFiltersState.js +2 -0
  303. package/dist/esm/hooks/useFiltersState.js.map +1 -1
  304. package/dist/esm/services/translations.js.map +1 -1
  305. package/dist/esm/styles.global.css +1 -1
  306. package/dist/esm/types/types.js.map +1 -1
  307. package/dist/types/cms-fields/components/audio/actions/actions-button/actions-button.d.ts +10 -0
  308. package/dist/types/cms-fields/components/audio/actions/actions-button/actions-button.d.ts.map +1 -0
  309. package/dist/types/cms-fields/components/audio/actions/actions-button/index.d.ts +2 -0
  310. package/dist/types/cms-fields/components/audio/actions/actions-button/index.d.ts.map +1 -0
  311. package/dist/types/cms-fields/components/audio/actions/actions-menu/actions-menu.d.ts +29 -0
  312. package/dist/types/cms-fields/components/audio/actions/actions-menu/actions-menu.d.ts.map +1 -0
  313. package/dist/types/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.d.ts +16 -0
  314. package/dist/types/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.d.ts.map +1 -0
  315. package/dist/types/cms-fields/components/audio/actions/actions-menu/index.d.ts +3 -0
  316. package/dist/types/cms-fields/components/audio/actions/actions-menu/index.d.ts.map +1 -0
  317. package/dist/types/cms-fields/components/audio/actions/actions-menu/types.d.ts +13 -0
  318. package/dist/types/cms-fields/components/audio/actions/actions-menu/types.d.ts.map +1 -0
  319. package/dist/types/cms-fields/components/audio/audio-field/audio-view.d.ts +4 -0
  320. package/dist/types/cms-fields/components/audio/audio-field/audio-view.d.ts.map +1 -0
  321. package/dist/types/cms-fields/components/audio/audio-field/form-audio-field.d.ts +4 -0
  322. package/dist/types/cms-fields/components/audio/audio-field/form-audio-field.d.ts.map +1 -0
  323. package/dist/types/cms-fields/components/audio/audio-field/form-audio-field.st.css.d.ts +22 -0
  324. package/dist/types/cms-fields/components/audio/audio-field/form-audio-field.st.css.d.ts.map +1 -0
  325. package/dist/types/cms-fields/components/audio/audio-field/index.d.ts +3 -0
  326. package/dist/types/cms-fields/components/audio/audio-field/index.d.ts.map +1 -0
  327. package/dist/types/cms-fields/components/audio/audio-player/audio-player.d.ts +8 -0
  328. package/dist/types/cms-fields/components/audio/audio-player/audio-player.d.ts.map +1 -0
  329. package/dist/types/cms-fields/components/audio/audio-player/audio-player.st.css.d.ts +13 -0
  330. package/dist/types/cms-fields/components/audio/audio-player/audio-player.st.css.d.ts.map +1 -0
  331. package/dist/types/cms-fields/components/audio/audio-player/index.d.ts +2 -0
  332. package/dist/types/cms-fields/components/audio/audio-player/index.d.ts.map +1 -0
  333. package/dist/types/cms-fields/components/audio/index.d.ts +3 -0
  334. package/dist/types/cms-fields/components/audio/index.d.ts.map +1 -0
  335. package/dist/types/cms-fields/components/common.d.ts +1 -0
  336. package/dist/types/cms-fields/components/common.d.ts.map +1 -1
  337. package/dist/types/cms-fields/components/delete-dialog/delete-dialog.st.css.d.ts.map +1 -1
  338. package/dist/types/cms-fields/components/document/document-control.d.ts +1 -0
  339. package/dist/types/cms-fields/components/document/document-control.d.ts.map +1 -1
  340. package/dist/types/cms-fields/components/document/form-document-field.d.ts.map +1 -1
  341. package/dist/types/cms-fields/components/document/form-document-field.st.css.d.ts.map +1 -1
  342. package/dist/types/cms-fields/components/exclamation/exclamation.st.css.d.ts.map +1 -1
  343. package/dist/types/cms-fields/components/highlighted-text/highlighted-text.d.ts +10 -0
  344. package/dist/types/cms-fields/components/highlighted-text/highlighted-text.d.ts.map +1 -0
  345. package/dist/types/cms-fields/components/highlighted-text/highlighted-text.st.css.d.ts +22 -0
  346. package/dist/types/cms-fields/components/highlighted-text/highlighted-text.st.css.d.ts.map +1 -0
  347. package/dist/types/cms-fields/components/highlighted-text/index.d.ts +2 -0
  348. package/dist/types/cms-fields/components/highlighted-text/index.d.ts.map +1 -0
  349. package/dist/types/cms-fields/components/index.d.ts +1 -0
  350. package/dist/types/cms-fields/components/index.d.ts.map +1 -1
  351. package/dist/types/cms-fields/components/media-control/paste-url-button.st.css.d.ts.map +1 -1
  352. package/dist/types/cms-fields/components/media-control/use-media-control.d.ts +2 -1
  353. package/dist/types/cms-fields/components/media-control/use-media-control.d.ts.map +1 -1
  354. package/dist/types/cms-fields/components/media-loader/index.d.ts +2 -0
  355. package/dist/types/cms-fields/components/media-loader/index.d.ts.map +1 -0
  356. package/dist/types/cms-fields/components/media-loader/media-loader.d.ts +7 -0
  357. package/dist/types/cms-fields/components/media-loader/media-loader.d.ts.map +1 -0
  358. package/dist/types/cms-fields/components/media-loader/media-loader.st.css.d.ts +20 -0
  359. package/dist/types/cms-fields/components/media-loader/media-loader.st.css.d.ts.map +1 -0
  360. package/dist/types/cms-fields/components/media-tag/highlighted-media-tag.d.ts +8 -0
  361. package/dist/types/cms-fields/components/media-tag/highlighted-media-tag.d.ts.map +1 -0
  362. package/dist/types/cms-fields/components/media-tag/index.d.ts +3 -0
  363. package/dist/types/cms-fields/components/media-tag/index.d.ts.map +1 -0
  364. package/dist/types/cms-fields/components/media-tag/web-media-tag/index.d.ts +5 -0
  365. package/dist/types/cms-fields/components/media-tag/web-media-tag/index.d.ts.map +1 -0
  366. package/dist/types/cms-fields/components/media-tag/web-media-tag/media-tag.d.ts +10 -0
  367. package/dist/types/cms-fields/components/media-tag/web-media-tag/media-tag.d.ts.map +1 -0
  368. package/dist/types/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.d.ts +16 -0
  369. package/dist/types/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.d.ts.map +1 -0
  370. package/dist/types/cms-fields/components/media-tag/web-media-tag/table-media-tag-view.d.ts +8 -0
  371. package/dist/types/cms-fields/components/media-tag/web-media-tag/table-media-tag-view.d.ts.map +1 -0
  372. package/dist/types/cms-fields/components/multi-document/multi-document-input/form-multi-document-field.d.ts.map +1 -1
  373. package/dist/types/cms-fields/components/multi-document/multi-document-input/form-multi-document-view.d.ts +1 -0
  374. package/dist/types/cms-fields/components/multi-document/multi-document-input/form-multi-document-view.d.ts.map +1 -1
  375. package/dist/types/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.d.ts.map +1 -1
  376. package/dist/types/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.d.ts.map +1 -1
  377. package/dist/types/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.d.ts.map +1 -1
  378. package/dist/types/cms-fields/components/text/text-view.st.css.d.ts.map +1 -1
  379. package/dist/types/cms-fields/hooks/index.d.ts +1 -0
  380. package/dist/types/cms-fields/hooks/index.d.ts.map +1 -1
  381. package/dist/types/cms-fields/hooks/use-resize-effect.d.ts +2 -0
  382. package/dist/types/cms-fields/hooks/use-resize-effect.d.ts.map +1 -0
  383. package/dist/types/cms-fields/utils/fuzzy-search.d.ts +5 -0
  384. package/dist/types/cms-fields/utils/fuzzy-search.d.ts.map +1 -0
  385. package/dist/types/cms-fields/utils/get-app-popover-max-height.d.ts +5 -0
  386. package/dist/types/cms-fields/utils/get-app-popover-max-height.d.ts.map +1 -0
  387. package/dist/types/cms-fields/utils/get-schema-type.d.ts +8 -0
  388. package/dist/types/cms-fields/utils/get-schema-type.d.ts.map +1 -0
  389. package/dist/types/cms-fields/utils/index.d.ts +4 -0
  390. package/dist/types/cms-fields/utils/index.d.ts.map +1 -1
  391. package/dist/types/cms-fields/utils/media-utils.d.ts +1 -4
  392. package/dist/types/cms-fields/utils/media-utils.d.ts.map +1 -1
  393. package/dist/types/cms-fields/validations/email.d.ts +2 -0
  394. package/dist/types/cms-fields/validations/email.d.ts.map +1 -0
  395. package/dist/types/components/fields/Audio.d.ts +6 -0
  396. package/dist/types/components/fields/Audio.d.ts.map +1 -0
  397. package/dist/types/components/fields/Email.d.ts +6 -0
  398. package/dist/types/components/fields/Email.d.ts.map +1 -0
  399. package/dist/types/components/fields/index.d.ts +2 -0
  400. package/dist/types/components/fields/index.d.ts.map +1 -1
  401. package/dist/types/components/layouts/FormField.d.ts.map +1 -1
  402. package/dist/types/components/layouts/ViewField.d.ts.map +1 -1
  403. package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts.map +1 -1
  404. package/dist/types/dataSourceAdapters/cms/filterUtils.d.ts.map +1 -1
  405. package/dist/types/hooks/getFilterComponent.d.ts.map +1 -1
  406. package/dist/types/hooks/useColumns.d.ts.map +1 -1
  407. package/dist/types/hooks/useFiltersState.d.ts.map +1 -1
  408. package/dist/types/services/translations.d.ts +1 -1
  409. package/dist/types/services/translations.d.ts.map +1 -1
  410. package/dist/types/types/types.d.ts +1 -1
  411. package/dist/types/types/types.d.ts.map +1 -1
  412. package/package.json +4 -3
@@ -10,8 +10,6 @@ const WIX_IMAGE_URI_REGEX = /^wix:image:\/\/v1\/([^/]+)\/([^/#]+)/;
10
10
  const WIX_VIDEO_URI_REGEX = /^wix:video:\/\/v1\/([^/]+)\/([^/#]+)/;
11
11
  const WIX_AUDIO_URI_REGEX = /^wix:audio:\/\/v1\/([^/]+)\/([^/#]+)/;
12
12
  const WIX_VECTOR_URI_REGEX = /^wix:vector:\/\/v1\/([^/]+)\/([^/#]+)/;
13
- const WIX_STATIC_URL = 'https://static.wixstatic.com';
14
- const DEFAULT_MEDIA_DIR = 'ugd';
15
13
 
16
14
  /**
17
15
  * Helper to check if URI is decodable
@@ -117,22 +115,8 @@ export const getMediaTitle = uri => {
117
115
  }
118
116
  return uri;
119
117
  };
120
-
121
- /**
122
- * Get the URL for a Wix document URI
123
- */
124
- export const getMediaURL = (uri, msid) => {
125
- if (!isWixDocumentURI(uri)) {
126
- return uri;
127
- }
128
- const match = uri.match(WIX_DOCUMENT_URI_REGEX);
129
- if (!match) {
130
- return uri;
131
- }
132
- const mediaId = match[1]; // e.g., "ugd/abc123_def456.pdf" or just "abc123_def456.pdf"
133
- const baseUrl = msid ? `https://${msid}.usrfiles.com` : WIX_STATIC_URL;
134
- const hasDirPrefix = mediaId.includes('/');
135
- return hasDirPrefix ? `${baseUrl}/${mediaId}` : `${baseUrl}/${DEFAULT_MEDIA_DIR}/${mediaId}`;
118
+ export const executeDownloading = url => {
119
+ window.open(url, '_blank', 'noopener');
136
120
  };
137
121
 
138
122
  // Media types enum for media manager
@@ -1 +1 @@
1
- {"version":3,"names":["WIX_DOCUMENT_URI_REGEX","WIX_IMAGE_URI_REGEX","WIX_VIDEO_URI_REGEX","WIX_AUDIO_URI_REGEX","WIX_VECTOR_URI_REGEX","WIX_STATIC_URL","DEFAULT_MEDIA_DIR","isDecodable","uri","decodeURI","isValidUrl","str","URL","isWixDocumentURI","test","isWixImageURI","isWixVideoURI","isWixAudioURI","isWixVectorURI","extractFilename","regex","match","decodeURIComponent","getMediaTitle","url","pathname","filename","split","pop","getMediaURL","msid","mediaId","baseUrl","hasDirPrefix","includes","MEDIA_TYPES","isDataValidOrNotSet","data","type","undefined"],"sources":["../../../../src/cms-fields/utils/media-utils.ts"],"sourcesContent":["/**\n * Local media utilities - pure string parsing, no external dependencies.\n * Avoids importing from @wix/auto-cms-field-types (pulls ricos ~100KB)\n * and @wix/cm-media-utils (pulls santa-platform-utils ~20KB).\n */\n\n// URI format: wix:{type}://v1/{mediaId}/{filename}[#params]\nconst WIX_DOCUMENT_URI_REGEX = /^wix:document:\\/\\/v1\\/(.+)\\/([^/]+)$/;\nconst WIX_IMAGE_URI_REGEX = /^wix:image:\\/\\/v1\\/([^/]+)\\/([^/#]+)/;\nconst WIX_VIDEO_URI_REGEX = /^wix:video:\\/\\/v1\\/([^/]+)\\/([^/#]+)/;\nconst WIX_AUDIO_URI_REGEX = /^wix:audio:\\/\\/v1\\/([^/]+)\\/([^/#]+)/;\nconst WIX_VECTOR_URI_REGEX = /^wix:vector:\\/\\/v1\\/([^/]+)\\/([^/#]+)/;\n\nconst WIX_STATIC_URL = 'https://static.wixstatic.com';\nconst DEFAULT_MEDIA_DIR = 'ugd';\n\n/**\n * Helper to check if URI is decodable\n */\nconst isDecodable = (uri: string): boolean => {\n try {\n decodeURI(uri);\n return true;\n } catch {\n return false;\n }\n};\n\nconst isValidUrl = (str: string): boolean => {\n try {\n new URL(str);\n return true;\n } catch {\n return false;\n }\n};\n\n// Type checkers for different media URIs\nexport const isWixDocumentURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_DOCUMENT_URI_REGEX.test(uri);\n};\n\nexport const isWixImageURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_IMAGE_URI_REGEX.test(uri);\n};\n\nexport const isWixVideoURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_VIDEO_URI_REGEX.test(uri);\n};\n\nexport const isWixAudioURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_AUDIO_URI_REGEX.test(uri);\n};\n\nexport const isWixVectorURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_VECTOR_URI_REGEX.test(uri);\n};\n\n/**\n * Extract filename from a URI using the appropriate regex\n */\nconst extractFilename = (uri: string, regex: RegExp): string | null => {\n const match = uri.match(regex);\n if (!match || !match[2]) {\n return null;\n }\n try {\n return decodeURIComponent(match[2]);\n } catch {\n return match[2];\n }\n};\n\n/**\n * Get the title/filename from any Wix media URI\n * Supports: document, image, video, audio, vector\n */\nexport const getMediaTitle = (uri: string): string => {\n if (!uri || typeof uri !== 'string') {\n return uri || '';\n }\n\n if (isWixImageURI(uri)) {\n return extractFilename(uri, WIX_IMAGE_URI_REGEX) || uri;\n }\n\n if (isWixVideoURI(uri)) {\n return extractFilename(uri, WIX_VIDEO_URI_REGEX) || uri;\n }\n\n if (isWixAudioURI(uri)) {\n return extractFilename(uri, WIX_AUDIO_URI_REGEX) || uri;\n }\n\n if (isWixVectorURI(uri)) {\n return extractFilename(uri, WIX_VECTOR_URI_REGEX) || uri;\n }\n\n if (isWixDocumentURI(uri)) {\n return extractFilename(uri, WIX_DOCUMENT_URI_REGEX) || uri;\n }\n\n // Fallback: return the URI as-is or try to extract filename from URL path\n if (isValidUrl(uri)) {\n try {\n const url = new URL(uri);\n const pathname = url.pathname;\n const filename = pathname.split('/').pop();\n return filename ? decodeURIComponent(filename) : uri;\n } catch {\n return uri;\n }\n }\n\n return uri;\n};\n\n/**\n * Get the URL for a Wix document URI\n */\nexport const getMediaURL = (uri: string, msid?: string): string => {\n if (!isWixDocumentURI(uri)) {\n return uri;\n }\n\n const match = uri.match(WIX_DOCUMENT_URI_REGEX);\n if (!match) {\n return uri;\n }\n\n const mediaId = match[1]; // e.g., \"ugd/abc123_def456.pdf\" or just \"abc123_def456.pdf\"\n const baseUrl = msid ? `https://${msid}.usrfiles.com` : WIX_STATIC_URL;\n\n const hasDirPrefix = mediaId.includes('/');\n return hasDirPrefix\n ? `${baseUrl}/${mediaId}`\n : `${baseUrl}/${DEFAULT_MEDIA_DIR}/${mediaId}`;\n};\n\n// Media types enum for media manager\nexport enum MEDIA_TYPES {\n ALL_MEDIA = 'ALL_MEDIA',\n VIDEO = 'VIDEO_BOX',\n IMAGE = 'AUTO_CMS_IMAGE',\n AUDIO = 'MUSIC',\n GALLERY = 'PRO_GALLERY',\n}\n\n/**\n * Simple validation for document/image URLs\n */\nexport const isDataValidOrNotSet = (\n data: string | undefined,\n type: 'document' | 'image',\n): boolean => {\n if (data === undefined || data === null || data === '') {\n return true; // Not set = valid\n }\n\n if (type === 'document') {\n return isWixDocumentURI(data) || isValidUrl(data);\n }\n\n // For image type, check if it's a Wix image URI or valid URL\n if (type === 'image') {\n return isWixImageURI(data) || isValidUrl(data);\n }\n\n return isValidUrl(data);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["WIX_DOCUMENT_URI_REGEX","WIX_IMAGE_URI_REGEX","WIX_VIDEO_URI_REGEX","WIX_AUDIO_URI_REGEX","WIX_VECTOR_URI_REGEX","isDecodable","uri","decodeURI","isValidUrl","str","URL","isWixDocumentURI","test","isWixImageURI","isWixVideoURI","isWixAudioURI","isWixVectorURI","extractFilename","regex","match","decodeURIComponent","getMediaTitle","url","pathname","filename","split","pop","executeDownloading","window","open","MEDIA_TYPES","isDataValidOrNotSet","data","type","undefined"],"sources":["../../../../src/cms-fields/utils/media-utils.ts"],"sourcesContent":["/**\n * Local media utilities - pure string parsing, no external dependencies.\n * Avoids importing from @wix/auto-cms-field-types (pulls ricos ~100KB)\n * and @wix/cm-media-utils (pulls santa-platform-utils ~20KB).\n */\n\n// URI format: wix:{type}://v1/{mediaId}/{filename}[#params]\nconst WIX_DOCUMENT_URI_REGEX = /^wix:document:\\/\\/v1\\/(.+)\\/([^/]+)$/;\nconst WIX_IMAGE_URI_REGEX = /^wix:image:\\/\\/v1\\/([^/]+)\\/([^/#]+)/;\nconst WIX_VIDEO_URI_REGEX = /^wix:video:\\/\\/v1\\/([^/]+)\\/([^/#]+)/;\nconst WIX_AUDIO_URI_REGEX = /^wix:audio:\\/\\/v1\\/([^/]+)\\/([^/#]+)/;\nconst WIX_VECTOR_URI_REGEX = /^wix:vector:\\/\\/v1\\/([^/]+)\\/([^/#]+)/;\n\n/**\n * Helper to check if URI is decodable\n */\nconst isDecodable = (uri: string): boolean => {\n try {\n decodeURI(uri);\n return true;\n } catch {\n return false;\n }\n};\n\nconst isValidUrl = (str: string): boolean => {\n try {\n new URL(str);\n return true;\n } catch {\n return false;\n }\n};\n\n// Type checkers for different media URIs\nexport const isWixDocumentURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_DOCUMENT_URI_REGEX.test(uri);\n};\n\nexport const isWixImageURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_IMAGE_URI_REGEX.test(uri);\n};\n\nexport const isWixVideoURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_VIDEO_URI_REGEX.test(uri);\n};\n\nexport const isWixAudioURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_AUDIO_URI_REGEX.test(uri);\n};\n\nexport const isWixVectorURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_VECTOR_URI_REGEX.test(uri);\n};\n\n/**\n * Extract filename from a URI using the appropriate regex\n */\nconst extractFilename = (uri: string, regex: RegExp): string | null => {\n const match = uri.match(regex);\n if (!match || !match[2]) {\n return null;\n }\n try {\n return decodeURIComponent(match[2]);\n } catch {\n return match[2];\n }\n};\n\n/**\n * Get the title/filename from any Wix media URI\n * Supports: document, image, video, audio, vector\n */\nexport const getMediaTitle = (uri: string): string => {\n if (!uri || typeof uri !== 'string') {\n return uri || '';\n }\n\n if (isWixImageURI(uri)) {\n return extractFilename(uri, WIX_IMAGE_URI_REGEX) || uri;\n }\n\n if (isWixVideoURI(uri)) {\n return extractFilename(uri, WIX_VIDEO_URI_REGEX) || uri;\n }\n\n if (isWixAudioURI(uri)) {\n return extractFilename(uri, WIX_AUDIO_URI_REGEX) || uri;\n }\n\n if (isWixVectorURI(uri)) {\n return extractFilename(uri, WIX_VECTOR_URI_REGEX) || uri;\n }\n\n if (isWixDocumentURI(uri)) {\n return extractFilename(uri, WIX_DOCUMENT_URI_REGEX) || uri;\n }\n\n // Fallback: return the URI as-is or try to extract filename from URL path\n if (isValidUrl(uri)) {\n try {\n const url = new URL(uri);\n const pathname = url.pathname;\n const filename = pathname.split('/').pop();\n return filename ? decodeURIComponent(filename) : uri;\n } catch {\n return uri;\n }\n }\n\n return uri;\n};\n\nexport const executeDownloading = (url: string) => {\n window.open(url, '_blank', 'noopener');\n};\n\n// Media types enum for media manager\nexport enum MEDIA_TYPES {\n ALL_MEDIA = 'ALL_MEDIA',\n VIDEO = 'VIDEO_BOX',\n IMAGE = 'AUTO_CMS_IMAGE',\n AUDIO = 'MUSIC',\n GALLERY = 'PRO_GALLERY',\n}\n\n/**\n * Simple validation for document/image URLs\n */\nexport const isDataValidOrNotSet = (\n data: string | undefined,\n type: 'document' | 'image',\n): boolean => {\n if (data === undefined || data === null || data === '') {\n return true; // Not set = valid\n }\n\n if (type === 'document') {\n return isWixDocumentURI(data) || isValidUrl(data);\n }\n\n // For image type, check if it's a Wix image URI or valid URL\n if (type === 'image') {\n return isWixImageURI(data) || isValidUrl(data);\n }\n\n return isValidUrl(data);\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * domain : domain regex
3
+ * email: email regex
4
+ */
5
+ const {
6
+ emailRegex
7
+ } = (() => {
8
+ const anyLetter = '\u00A1-\uD7FF\uE000-\uFFFF-a-zA-Z';
9
+ const anyDigit = '0-9';
10
+ const anyLetterOrDigit = `${anyLetter}${anyDigit}`;
11
+ const anyAllowedSymbol = "!#$%&'*+/=?^_`{|}~-";
12
+ const allowedWithoutQuotes = `[${anyLetterOrDigit}${anyAllowedSymbol}]+(?:\\.[${anyLetterOrDigit}${anyAllowedSymbol}]+)*`;
13
+ const allowedBetweenQuotes = '"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*"';
14
+ const localPart = `(?:${allowedWithoutQuotes}|${allowedBetweenQuotes})`;
15
+ const domainPart = `(?:[${anyLetterOrDigit}](?:[${anyLetterOrDigit}-]*[${anyLetterOrDigit}])?\\.)+(?:(?:[${anyDigit}]+[${anyLetter}][${anyLetterOrDigit}]*)|(?:[${anyLetter}][${anyLetterOrDigit}]{1,}))`;
16
+ const email = new RegExp('^' + localPart + '@' + domainPart + '$');
17
+ return {
18
+ emailRegex: email
19
+ };
20
+ })();
21
+ export const isValid = value => emailRegex.test(value);
22
+ //# sourceMappingURL=email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["emailRegex","anyLetter","anyDigit","anyLetterOrDigit","anyAllowedSymbol","allowedWithoutQuotes","allowedBetweenQuotes","localPart","domainPart","email","RegExp","isValid","value","test"],"sources":["../../../../src/cms-fields/validations/email.ts"],"sourcesContent":["/**\n * domain : domain regex\n * email: email regex\n */\nconst { emailRegex } = (() => {\n const anyLetter = '\\u00A1-\\uD7FF\\uE000-\\uFFFF-a-zA-Z';\n const anyDigit = '0-9';\n const anyLetterOrDigit = `${anyLetter}${anyDigit}`;\n const anyAllowedSymbol = \"!#$%&'*+/=?^_`{|}~-\";\n const allowedWithoutQuotes = `[${anyLetterOrDigit}${anyAllowedSymbol}]+(?:\\\\.[${anyLetterOrDigit}${anyAllowedSymbol}]+)*`;\n const allowedBetweenQuotes =\n '\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\"';\n const localPart = `(?:${allowedWithoutQuotes}|${allowedBetweenQuotes})`;\n const domainPart = `(?:[${anyLetterOrDigit}](?:[${anyLetterOrDigit}-]*[${anyLetterOrDigit}])?\\\\.)+(?:(?:[${anyDigit}]+[${anyLetter}][${anyLetterOrDigit}]*)|(?:[${anyLetter}][${anyLetterOrDigit}]{1,}))`;\n const email = new RegExp('^' + localPart + '@' + domainPart + '$');\n return { emailRegex: email };\n})();\n\nexport const isValid = (value: string): boolean => emailRegex.test(value);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA,MAAM;EAAEA;AAAW,CAAC,GAAG,CAAC,MAAM;EAC5B,MAAMC,SAAS,GAAG,mCAAmC;EACrD,MAAMC,QAAQ,GAAG,KAAK;EACtB,MAAMC,gBAAgB,GAAG,GAAGF,SAAS,GAAGC,QAAQ,EAAE;EAClD,MAAME,gBAAgB,GAAG,qBAAqB;EAC9C,MAAMC,oBAAoB,GAAG,IAAIF,gBAAgB,GAAGC,gBAAgB,YAAYD,gBAAgB,GAAGC,gBAAgB,MAAM;EACzH,MAAME,oBAAoB,GACxB,wFAAwF;EAC1F,MAAMC,SAAS,GAAG,MAAMF,oBAAoB,IAAIC,oBAAoB,GAAG;EACvE,MAAME,UAAU,GAAG,OAAOL,gBAAgB,QAAQA,gBAAgB,OAAOA,gBAAgB,kBAAkBD,QAAQ,MAAMD,SAAS,KAAKE,gBAAgB,WAAWF,SAAS,KAAKE,gBAAgB,SAAS;EACzM,MAAMM,KAAK,GAAG,IAAIC,MAAM,CAAC,GAAG,GAAGH,SAAS,GAAG,GAAG,GAAGC,UAAU,GAAG,GAAG,CAAC;EAClE,OAAO;IAAER,UAAU,EAAES;EAAM,CAAC;AAC9B,CAAC,EAAE,CAAC;AAEJ,OAAO,MAAME,OAAO,GAAIC,KAAa,IAAcZ,UAAU,CAACa,IAAI,CAACD,KAAK,CAAC","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ import { FormField } from '@wix/design-system';
3
+ import { useWixPatternsContainer } from '@wix/patterns';
4
+ import { useController } from '@wix/patterns/form';
5
+ import { FormAudioField } from '../../cms-fields/components/audio/audio-field/form-audio-field';
6
+ export const Audio = props => {
7
+ var _field$validation2, _controller$fieldStat;
8
+ const {
9
+ field,
10
+ dataHook,
11
+ formControl,
12
+ data
13
+ } = props;
14
+ const {
15
+ translate: t
16
+ } = useWixPatternsContainer();
17
+ const controller = useController({
18
+ name: (field == null ? void 0 : field.id) ?? '',
19
+ control: formControl,
20
+ defaultValue: data == null ? void 0 : data[(field == null ? void 0 : field.id) ?? ''],
21
+ rules: {
22
+ validate: value => {
23
+ var _field$validation;
24
+ if ((_field$validation = field.validation) != null && _field$validation.required && (value === null || value === undefined || value === '')) {
25
+ return t('cairo.fieldValidation.requiredField');
26
+ }
27
+ return true;
28
+ }
29
+ }
30
+ });
31
+ return /*#__PURE__*/React.createElement(FormField, {
32
+ label: field.displayName,
33
+ required: (_field$validation2 = field.validation) == null ? void 0 : _field$validation2.required,
34
+ status: controller.fieldState.error ? 'error' : undefined,
35
+ statusMessage: (_controller$fieldStat = controller.fieldState.error) == null ? void 0 : _controller$fieldStat.message,
36
+ dataHook: dataHook
37
+ }, /*#__PURE__*/React.createElement(FormAudioField, {
38
+ data: controller.field.value,
39
+ onChange: value => controller.field.onChange(value),
40
+ onClear: () => controller.field.onChange(null),
41
+ dataHook: `audio-${field.id}`
42
+ }));
43
+ };
44
+ //# sourceMappingURL=Audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","FormField","useWixPatternsContainer","useController","FormAudioField","Audio","props","_field$validation2","_controller$fieldStat","field","dataHook","formControl","data","translate","t","controller","name","id","control","defaultValue","rules","validate","value","_field$validation","validation","required","undefined","createElement","label","displayName","status","fieldState","error","statusMessage","message","onChange","onClear"],"sources":["../../../../src/components/fields/Audio.tsx"],"sourcesContent":["import React from 'react';\nimport { FormField } from '@wix/design-system';\nimport { useWixPatternsContainer } from '@wix/patterns';\nimport { useController } from '@wix/patterns/form';\n\nimport { FormAudioField } from '../../cms-fields/components/audio/audio-field/form-audio-field';\nimport { BaseInputProps } from './types';\n\nexport interface AudioProps extends BaseInputProps<string> {}\n\nexport const Audio = (props: AudioProps) => {\n const { field, dataHook, formControl, data } = props;\n\n const { translate: t } = useWixPatternsContainer();\n\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n rules: {\n validate: (value) => {\n if (\n field.validation?.required &&\n (value === null || value === undefined || value === '')\n ) {\n return t('cairo.fieldValidation.requiredField');\n }\n\n return true;\n },\n },\n });\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n status={controller.fieldState.error ? 'error' : undefined}\n statusMessage={controller.fieldState.error?.message}\n dataHook={dataHook}\n >\n <FormAudioField\n data={controller.field.value}\n onChange={(value) => controller.field.onChange(value)}\n onClear={() => controller.field.onChange(null)}\n dataHook={`audio-${field.id}`}\n />\n </FormField>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,uBAAuB,QAAQ,eAAe;AACvD,SAASC,aAAa,QAAQ,oBAAoB;AAElD,SAASC,cAAc,QAAQ,gEAAgE;AAK/F,OAAO,MAAMC,KAAK,GAAIC,KAAiB,IAAK;EAAA,IAAAC,kBAAA,EAAAC,qBAAA;EAC1C,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAK,CAAC,GAAGN,KAAK;EAEpD,MAAM;IAAEO,SAAS,EAAEC;EAAE,CAAC,GAAGZ,uBAAuB,CAAC,CAAC;EAElD,MAAMa,UAAU,GAAGZ,aAAa,CAAC;IAC/Ba,IAAI,EAAE,CAAAP,KAAK,oBAALA,KAAK,CAAEQ,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAEP,WAAW;IACpBQ,YAAY,EAAEP,IAAI,oBAAJA,IAAI,CAAG,CAAAH,KAAK,oBAALA,KAAK,CAAEQ,EAAE,KAAI,EAAE,CAAC;IACrCG,KAAK,EAAE;MACLC,QAAQ,EAAGC,KAAK,IAAK;QAAA,IAAAC,iBAAA;QACnB,IACE,CAAAA,iBAAA,GAAAd,KAAK,CAACe,UAAU,aAAhBD,iBAAA,CAAkBE,QAAQ,KACzBH,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKI,SAAS,IAAIJ,KAAK,KAAK,EAAE,CAAC,EACvD;UACA,OAAOR,CAAC,CAAC,qCAAqC,CAAC;QACjD;QAEA,OAAO,IAAI;MACb;IACF;EACF,CAAC,CAAC;EAEF,oBACEd,KAAA,CAAA2B,aAAA,CAAC1B,SAAS;IACR2B,KAAK,EAAEnB,KAAK,CAACoB,WAAY;IACzBJ,QAAQ,GAAAlB,kBAAA,GAAEE,KAAK,CAACe,UAAU,qBAAhBjB,kBAAA,CAAkBkB,QAAS;IACrCK,MAAM,EAAEf,UAAU,CAACgB,UAAU,CAACC,KAAK,GAAG,OAAO,GAAGN,SAAU;IAC1DO,aAAa,GAAAzB,qBAAA,GAAEO,UAAU,CAACgB,UAAU,CAACC,KAAK,qBAA3BxB,qBAAA,CAA6B0B,OAAQ;IACpDxB,QAAQ,EAAEA;EAAS,gBAEnBV,KAAA,CAAA2B,aAAA,CAACvB,cAAc;IACbQ,IAAI,EAAEG,UAAU,CAACN,KAAK,CAACa,KAAM;IAC7Ba,QAAQ,EAAGb,KAAK,IAAKP,UAAU,CAACN,KAAK,CAAC0B,QAAQ,CAACb,KAAK,CAAE;IACtDc,OAAO,EAAEA,CAAA,KAAMrB,UAAU,CAACN,KAAK,CAAC0B,QAAQ,CAAC,IAAI,CAAE;IAC/CzB,QAAQ,EAAE,SAASD,KAAK,CAACQ,EAAE;EAAG,CAC/B,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+ import { FormField, Input } from '@wix/design-system';
3
+ import { useWixPatternsContainer } from '@wix/patterns';
4
+ import { useController } from '@wix/patterns/form';
5
+ import { useAutoPatternsAppContainer } from '../AutoPatternsApp/AutoPatternsAppContainerProvider';
6
+ import * as emailValidation from '../../cms-fields/validations/email';
7
+ export const Email = props => {
8
+ var _field$validation2, _controller$fieldStat;
9
+ const {
10
+ field,
11
+ dataHook,
12
+ formControl,
13
+ data
14
+ } = props;
15
+ const {
16
+ translate: pt
17
+ } = useWixPatternsContainer();
18
+ const {
19
+ translate: t
20
+ } = useAutoPatternsAppContainer();
21
+ const controller = useController({
22
+ name: (field == null ? void 0 : field.id) ?? '',
23
+ control: formControl,
24
+ defaultValue: data == null ? void 0 : data[(field == null ? void 0 : field.id) ?? ''],
25
+ rules: {
26
+ validate: value => {
27
+ var _field$validation;
28
+ if ((_field$validation = field.validation) != null && _field$validation.required && (value === null || value === undefined || value === '')) {
29
+ return pt('cairo.fieldValidation.requiredField');
30
+ } else if (value) {
31
+ if (!emailValidation.isValid(value)) {
32
+ return t('auto-patterns.fields.email_input_error');
33
+ }
34
+ }
35
+ return true;
36
+ }
37
+ }
38
+ });
39
+ return /*#__PURE__*/React.createElement(FormField, {
40
+ label: field.displayName,
41
+ required: (_field$validation2 = field.validation) == null ? void 0 : _field$validation2.required,
42
+ dataHook: dataHook,
43
+ status: controller.fieldState.error && controller.formState.isSubmitted ? 'error' : undefined,
44
+ statusMessage: controller.formState.isSubmitted ? (_controller$fieldStat = controller.fieldState.error) == null ? void 0 : _controller$fieldStat.message : undefined
45
+ }, /*#__PURE__*/React.createElement(Input, {
46
+ dataHook: `email-${field.id}`,
47
+ value: controller.field.value,
48
+ onChange: e => controller.field.onChange == null ? void 0 : controller.field.onChange(e.target.value),
49
+ onBlur: controller.field.onBlur,
50
+ ref: controller.field.ref
51
+ }));
52
+ };
53
+ //# sourceMappingURL=Email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","FormField","Input","useWixPatternsContainer","useController","useAutoPatternsAppContainer","emailValidation","Email","props","_field$validation2","_controller$fieldStat","field","dataHook","formControl","data","translate","pt","t","controller","name","id","control","defaultValue","rules","validate","value","_field$validation","validation","required","undefined","isValid","createElement","label","displayName","status","fieldState","error","formState","isSubmitted","statusMessage","message","onChange","e","target","onBlur","ref"],"sources":["../../../../src/components/fields/Email.tsx"],"sourcesContent":["import React from 'react';\nimport { FormField, Input } from '@wix/design-system';\nimport { BaseInputProps } from './types';\nimport { useWixPatternsContainer } from '@wix/patterns';\nimport { useController } from '@wix/patterns/form';\nimport { useAutoPatternsAppContainer } from '../AutoPatternsApp/AutoPatternsAppContainerProvider';\nimport * as emailValidation from '../../cms-fields/validations/email';\n\nexport interface EmailProps extends BaseInputProps<string> {}\n\nexport const Email = (props: EmailProps) => {\n const { field, dataHook, formControl, data } = props;\n const { translate: pt } = useWixPatternsContainer();\n const { translate: t } = useAutoPatternsAppContainer();\n\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n rules: {\n validate: (value: string | null | undefined) => {\n if (\n field.validation?.required &&\n (value === null || value === undefined || value === '')\n ) {\n return pt('cairo.fieldValidation.requiredField');\n } else if (value) {\n if (!emailValidation.isValid(value)) {\n return t('auto-patterns.fields.email_input_error');\n }\n }\n return true;\n },\n },\n });\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n dataHook={dataHook}\n status={\n controller.fieldState.error && controller.formState.isSubmitted\n ? 'error'\n : undefined\n }\n statusMessage={\n controller.formState.isSubmitted\n ? controller.fieldState.error?.message\n : undefined\n }\n >\n <Input\n dataHook={`email-${field.id}`}\n value={controller.field.value}\n onChange={(e) => controller.field.onChange?.(e.target.value)}\n onBlur={controller.field.onBlur}\n ref={controller.field.ref}\n />\n </FormField>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,KAAK,QAAQ,oBAAoB;AAErD,SAASC,uBAAuB,QAAQ,eAAe;AACvD,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,2BAA2B,QAAQ,qDAAqD;AACjG,OAAO,KAAKC,eAAe,MAAM,oCAAoC;AAIrE,OAAO,MAAMC,KAAK,GAAIC,KAAiB,IAAK;EAAA,IAAAC,kBAAA,EAAAC,qBAAA;EAC1C,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAK,CAAC,GAAGN,KAAK;EACpD,MAAM;IAAEO,SAAS,EAAEC;EAAG,CAAC,GAAGb,uBAAuB,CAAC,CAAC;EACnD,MAAM;IAAEY,SAAS,EAAEE;EAAE,CAAC,GAAGZ,2BAA2B,CAAC,CAAC;EAEtD,MAAMa,UAAU,GAAGd,aAAa,CAAC;IAC/Be,IAAI,EAAE,CAAAR,KAAK,oBAALA,KAAK,CAAES,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAER,WAAW;IACpBS,YAAY,EAAER,IAAI,oBAAJA,IAAI,CAAG,CAAAH,KAAK,oBAALA,KAAK,CAAES,EAAE,KAAI,EAAE,CAAC;IACrCG,KAAK,EAAE;MACLC,QAAQ,EAAGC,KAAgC,IAAK;QAAA,IAAAC,iBAAA;QAC9C,IACE,CAAAA,iBAAA,GAAAf,KAAK,CAACgB,UAAU,aAAhBD,iBAAA,CAAkBE,QAAQ,KACzBH,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKI,SAAS,IAAIJ,KAAK,KAAK,EAAE,CAAC,EACvD;UACA,OAAOT,EAAE,CAAC,qCAAqC,CAAC;QAClD,CAAC,MAAM,IAAIS,KAAK,EAAE;UAChB,IAAI,CAACnB,eAAe,CAACwB,OAAO,CAACL,KAAK,CAAC,EAAE;YACnC,OAAOR,CAAC,CAAC,wCAAwC,CAAC;UACpD;QACF;QACA,OAAO,IAAI;MACb;IACF;EACF,CAAC,CAAC;EAEF,oBACEjB,KAAA,CAAA+B,aAAA,CAAC9B,SAAS;IACR+B,KAAK,EAAErB,KAAK,CAACsB,WAAY;IACzBL,QAAQ,GAAAnB,kBAAA,GAAEE,KAAK,CAACgB,UAAU,qBAAhBlB,kBAAA,CAAkBmB,QAAS;IACrChB,QAAQ,EAAEA,QAAS;IACnBsB,MAAM,EACJhB,UAAU,CAACiB,UAAU,CAACC,KAAK,IAAIlB,UAAU,CAACmB,SAAS,CAACC,WAAW,GAC3D,OAAO,GACPT,SACL;IACDU,aAAa,EACXrB,UAAU,CAACmB,SAAS,CAACC,WAAW,IAAA5B,qBAAA,GAC5BQ,UAAU,CAACiB,UAAU,CAACC,KAAK,qBAA3B1B,qBAAA,CAA6B8B,OAAO,GACpCX;EACL,gBAED7B,KAAA,CAAA+B,aAAA,CAAC7B,KAAK;IACJU,QAAQ,EAAE,SAASD,KAAK,CAACS,EAAE,EAAG;IAC9BK,KAAK,EAAEP,UAAU,CAACP,KAAK,CAACc,KAAM;IAC9BgB,QAAQ,EAAGC,CAAC,IAAKxB,UAAU,CAACP,KAAK,CAAC8B,QAAQ,oBAAzBvB,UAAU,CAACP,KAAK,CAAC8B,QAAQ,CAAGC,CAAC,CAACC,MAAM,CAAClB,KAAK,CAAE;IAC7DmB,MAAM,EAAE1B,UAAU,CAACP,KAAK,CAACiC,MAAO;IAChCC,GAAG,EAAE3B,UAAU,CAACP,KAAK,CAACkC;EAAI,CAC3B,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
@@ -1,4 +1,6 @@
1
+ export { Audio } from './Audio';
1
2
  export { Checkbox } from './Checkbox';
3
+ export { Email } from './Email';
2
4
  export { DateInput } from './DateInput';
3
5
  export { DateTime } from './DateTime';
4
6
  export { Document } from './Document';
@@ -1 +1 @@
1
- {"version":3,"names":["Checkbox","DateInput","DateTime","Document","MultiDocument","ImageInput","LongText","Number","Reference","MultiReference","ShortText","Time","Url","Object","Address","RichContent","RichText"],"sources":["../../../../src/components/fields/index.ts"],"sourcesContent":["export { Checkbox } from './Checkbox';\nexport { DateInput } from './DateInput';\nexport { DateTime } from './DateTime';\nexport { Document } from './Document';\nexport { MultiDocument } from './MultiDocument';\nexport { ImageInput } from './ImageInput';\nexport { LongText } from './LongText';\nexport { Number } from './Number';\nexport { Reference } from './Reference';\nexport { MultiReference } from './MultiReference';\nexport { ShortText } from './ShortText';\nexport { Time } from './Time';\nexport { Url } from './Url';\nexport { Object } from './Object';\nexport { Address } from './Address';\nexport { RichContent } from './RichContent';\nexport { RichText } from './RichText';\nexport * from './types';\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,YAAY;AACrC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,GAAG,QAAQ,OAAO;AAC3B,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,QAAQ,QAAQ,YAAY;AACrC,cAAc,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["Audio","Checkbox","Email","DateInput","DateTime","Document","MultiDocument","ImageInput","LongText","Number","Reference","MultiReference","ShortText","Time","Url","Object","Address","RichContent","RichText"],"sources":["../../../../src/components/fields/index.ts"],"sourcesContent":["export { Audio } from './Audio';\nexport { Checkbox } from './Checkbox';\nexport { Email } from './Email';\nexport { DateInput } from './DateInput';\nexport { DateTime } from './DateTime';\nexport { Document } from './Document';\nexport { MultiDocument } from './MultiDocument';\nexport { ImageInput } from './ImageInput';\nexport { LongText } from './LongText';\nexport { Number } from './Number';\nexport { Reference } from './Reference';\nexport { MultiReference } from './MultiReference';\nexport { ShortText } from './ShortText';\nexport { Time } from './Time';\nexport { Url } from './Url';\nexport { Object } from './Object';\nexport { Address } from './Address';\nexport { RichContent } from './RichContent';\nexport { RichText } from './RichText';\nexport * from './types';\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,SAAS;AAC/B,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,KAAK,QAAQ,SAAS;AAC/B,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,GAAG,QAAQ,OAAO;AAC3B,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,QAAQ,QAAQ,YAAY;AACrC,cAAc,SAAS","ignoreList":[]}
@@ -1,7 +1,8 @@
1
1
  import React from 'react';
2
2
  import { useController } from '@wix/patterns/form';
3
- import { ShortText, LongText, Checkbox, DateInput, DateTime, Time, Number, Url, ImageInput, Reference, Object, Address, RichContent, RichText, Document, MultiDocument, MultiReference } from '../fields';
3
+ import { Audio, ShortText, LongText, Checkbox, DateInput, DateTime, Time, Number, Url, Email, ImageInput, Reference, Object, Address, RichContent, RichText, Document, MultiDocument, MultiReference } from '../fields';
4
4
  export const EDITABLE_INPUT_ELEMENTS = {
5
+ AUDIO: Audio,
5
6
  SHORT_TEXT: ShortText,
6
7
  LONG_TEXT: LongText,
7
8
  BOOLEAN: Checkbox,
@@ -18,7 +19,8 @@ export const EDITABLE_INPUT_ELEMENTS = {
18
19
  RICH_CONTENT: RichContent,
19
20
  RICH_TEXT: RichText,
20
21
  DOCUMENT: Document,
21
- MULTI_DOCUMENT: MultiDocument
22
+ MULTI_DOCUMENT: MultiDocument,
23
+ EMAIL: Email
22
24
  };
23
25
  export const FormField = _ref => {
24
26
  let {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useController","ShortText","LongText","Checkbox","DateInput","DateTime","Time","Number","Url","ImageInput","Reference","Object","Address","RichContent","RichText","Document","MultiDocument","MultiReference","EDITABLE_INPUT_ELEMENTS","SHORT_TEXT","LONG_TEXT","BOOLEAN","DATE","DATETIME","TIME","NUMBER","URL","IMAGE","REFERENCE","MULTI_REFERENCE","OBJECT","ADDRESS","RICH_CONTENT","RICH_TEXT","DOCUMENT","MULTI_DOCUMENT","FormField","_ref","field","inputRef","formControl","data","controller","name","id","control","defaultValue","hasOwnProperty","type","FieldInput","createElement","value","onChange","dataHook"],"sources":["../../../../src/components/layouts/FormField.tsx"],"sourcesContent":["import React from 'react';\nimport { useController, Control } from '@wix/patterns/form';\nimport { Field, PatternsFieldType } from '../../types';\nimport {\n ShortText,\n LongText,\n Checkbox,\n DateInput,\n DateTime,\n Time,\n Number,\n Url,\n ImageInput,\n Reference,\n BaseInputProps,\n Object,\n Address,\n RichContent,\n RichText,\n Document,\n MultiDocument,\n MultiReference,\n} from '../fields';\n\nexport const EDITABLE_INPUT_ELEMENTS: Partial<\n Record<PatternsFieldType, React.ComponentType<any>>\n> = {\n SHORT_TEXT: ShortText,\n LONG_TEXT: LongText,\n BOOLEAN: Checkbox,\n DATE: DateInput,\n DATETIME: DateTime,\n TIME: Time,\n NUMBER: Number,\n URL: Url,\n IMAGE: ImageInput,\n REFERENCE: Reference,\n MULTI_REFERENCE: MultiReference,\n OBJECT: Object,\n ADDRESS: Address,\n RICH_CONTENT: RichContent,\n RICH_TEXT: RichText,\n DOCUMENT: Document,\n MULTI_DOCUMENT: MultiDocument,\n};\n\nexport interface FormFieldProps {\n field: Field;\n inputRef?: BaseInputProps<any>['inputRef'];\n formControl?: Control<any>;\n data?: Record<string, any>;\n}\n\nexport const FormField: React.FC<FormFieldProps> = ({\n field,\n inputRef,\n formControl,\n data,\n}) => {\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n });\n\n if (!EDITABLE_INPUT_ELEMENTS.hasOwnProperty(field.type)) {\n return null;\n }\n\n const FieldInput = EDITABLE_INPUT_ELEMENTS[field.type]!;\n\n return (\n <FieldInput\n field={field}\n value={controller.field.value}\n onChange={controller.field.onChange}\n dataHook={`form-field-${field.id}`}\n inputRef={inputRef}\n formControl={formControl}\n data={data ?? {}}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAiB,oBAAoB;AAE3D,SACEC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACRC,IAAI,EACJC,MAAM,EACNC,GAAG,EACHC,UAAU,EACVC,SAAS,EAETC,MAAM,EACNC,OAAO,EACPC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,aAAa,EACbC,cAAc,QACT,WAAW;AAElB,OAAO,MAAMC,uBAEZ,GAAG;EACFC,UAAU,EAAElB,SAAS;EACrBmB,SAAS,EAAElB,QAAQ;EACnBmB,OAAO,EAAElB,QAAQ;EACjBmB,IAAI,EAAElB,SAAS;EACfmB,QAAQ,EAAElB,QAAQ;EAClBmB,IAAI,EAAElB,IAAI;EACVmB,MAAM,EAAElB,MAAM;EACdmB,GAAG,EAAElB,GAAG;EACRmB,KAAK,EAAElB,UAAU;EACjBmB,SAAS,EAAElB,SAAS;EACpBmB,eAAe,EAAEZ,cAAc;EAC/Ba,MAAM,EAAEnB,MAAM;EACdoB,OAAO,EAAEnB,OAAO;EAChBoB,YAAY,EAAEnB,WAAW;EACzBoB,SAAS,EAAEnB,QAAQ;EACnBoB,QAAQ,EAAEnB,QAAQ;EAClBoB,cAAc,EAAEnB;AAClB,CAAC;AASD,OAAO,MAAMoB,SAAmC,GAAGC,IAAA,IAK7C;EAAA,IAL8C;IAClDC,KAAK;IACLC,QAAQ;IACRC,WAAW;IACXC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAMK,UAAU,GAAG1C,aAAa,CAAC;IAC/B2C,IAAI,EAAE,CAAAL,KAAK,oBAALA,KAAK,CAAEM,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAEL,WAAW;IACpBM,YAAY,EAAEL,IAAI,oBAAJA,IAAI,CAAG,CAAAH,KAAK,oBAALA,KAAK,CAAEM,EAAE,KAAI,EAAE;EACtC,CAAC,CAAC;EAEF,IAAI,CAAC1B,uBAAuB,CAAC6B,cAAc,CAACT,KAAK,CAACU,IAAI,CAAC,EAAE;IACvD,OAAO,IAAI;EACb;EAEA,MAAMC,UAAU,GAAG/B,uBAAuB,CAACoB,KAAK,CAACU,IAAI,CAAE;EAEvD,oBACEjD,KAAA,CAAAmD,aAAA,CAACD,UAAU;IACTX,KAAK,EAAEA,KAAM;IACba,KAAK,EAAET,UAAU,CAACJ,KAAK,CAACa,KAAM;IAC9BC,QAAQ,EAAEV,UAAU,CAACJ,KAAK,CAACc,QAAS;IACpCC,QAAQ,EAAE,cAAcf,KAAK,CAACM,EAAE,EAAG;IACnCL,QAAQ,EAAEA,QAAS;IACnBC,WAAW,EAAEA,WAAY;IACzBC,IAAI,EAAEA,IAAI,IAAI,CAAC;EAAE,CAClB,CAAC;AAEN,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useController","Audio","ShortText","LongText","Checkbox","DateInput","DateTime","Time","Number","Url","Email","ImageInput","Reference","Object","Address","RichContent","RichText","Document","MultiDocument","MultiReference","EDITABLE_INPUT_ELEMENTS","AUDIO","SHORT_TEXT","LONG_TEXT","BOOLEAN","DATE","DATETIME","TIME","NUMBER","URL","IMAGE","REFERENCE","MULTI_REFERENCE","OBJECT","ADDRESS","RICH_CONTENT","RICH_TEXT","DOCUMENT","MULTI_DOCUMENT","EMAIL","FormField","_ref","field","inputRef","formControl","data","controller","name","id","control","defaultValue","hasOwnProperty","type","FieldInput","createElement","value","onChange","dataHook"],"sources":["../../../../src/components/layouts/FormField.tsx"],"sourcesContent":["import React from 'react';\nimport { useController, Control } from '@wix/patterns/form';\nimport { Field, PatternsFieldType } from '../../types';\nimport {\n Audio,\n ShortText,\n LongText,\n Checkbox,\n DateInput,\n DateTime,\n Time,\n Number,\n Url,\n Email,\n ImageInput,\n Reference,\n BaseInputProps,\n Object,\n Address,\n RichContent,\n RichText,\n Document,\n MultiDocument,\n MultiReference,\n} from '../fields';\n\nexport const EDITABLE_INPUT_ELEMENTS: Partial<\n Record<PatternsFieldType, React.ComponentType<any>>\n> = {\n AUDIO: Audio,\n SHORT_TEXT: ShortText,\n LONG_TEXT: LongText,\n BOOLEAN: Checkbox,\n DATE: DateInput,\n DATETIME: DateTime,\n TIME: Time,\n NUMBER: Number,\n URL: Url,\n IMAGE: ImageInput,\n REFERENCE: Reference,\n MULTI_REFERENCE: MultiReference,\n OBJECT: Object,\n ADDRESS: Address,\n RICH_CONTENT: RichContent,\n RICH_TEXT: RichText,\n DOCUMENT: Document,\n MULTI_DOCUMENT: MultiDocument,\n EMAIL: Email,\n};\n\nexport interface FormFieldProps {\n field: Field;\n inputRef?: BaseInputProps<any>['inputRef'];\n formControl?: Control<any>;\n data?: Record<string, any>;\n}\n\nexport const FormField: React.FC<FormFieldProps> = ({\n field,\n inputRef,\n formControl,\n data,\n}) => {\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n });\n\n if (!EDITABLE_INPUT_ELEMENTS.hasOwnProperty(field.type)) {\n return null;\n }\n\n const FieldInput = EDITABLE_INPUT_ELEMENTS[field.type]!;\n\n return (\n <FieldInput\n field={field}\n value={controller.field.value}\n onChange={controller.field.onChange}\n dataHook={`form-field-${field.id}`}\n inputRef={inputRef}\n formControl={formControl}\n data={data ?? {}}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAiB,oBAAoB;AAE3D,SACEC,KAAK,EACLC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACRC,IAAI,EACJC,MAAM,EACNC,GAAG,EACHC,KAAK,EACLC,UAAU,EACVC,SAAS,EAETC,MAAM,EACNC,OAAO,EACPC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,aAAa,EACbC,cAAc,QACT,WAAW;AAElB,OAAO,MAAMC,uBAEZ,GAAG;EACFC,KAAK,EAAEpB,KAAK;EACZqB,UAAU,EAAEpB,SAAS;EACrBqB,SAAS,EAAEpB,QAAQ;EACnBqB,OAAO,EAAEpB,QAAQ;EACjBqB,IAAI,EAAEpB,SAAS;EACfqB,QAAQ,EAAEpB,QAAQ;EAClBqB,IAAI,EAAEpB,IAAI;EACVqB,MAAM,EAAEpB,MAAM;EACdqB,GAAG,EAAEpB,GAAG;EACRqB,KAAK,EAAEnB,UAAU;EACjBoB,SAAS,EAAEnB,SAAS;EACpBoB,eAAe,EAAEb,cAAc;EAC/Bc,MAAM,EAAEpB,MAAM;EACdqB,OAAO,EAAEpB,OAAO;EAChBqB,YAAY,EAAEpB,WAAW;EACzBqB,SAAS,EAAEpB,QAAQ;EACnBqB,QAAQ,EAAEpB,QAAQ;EAClBqB,cAAc,EAAEpB,aAAa;EAC7BqB,KAAK,EAAE7B;AACT,CAAC;AASD,OAAO,MAAM8B,SAAmC,GAAGC,IAAA,IAK7C;EAAA,IAL8C;IAClDC,KAAK;IACLC,QAAQ;IACRC,WAAW;IACXC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAMK,UAAU,GAAG9C,aAAa,CAAC;IAC/B+C,IAAI,EAAE,CAAAL,KAAK,oBAALA,KAAK,CAAEM,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAEL,WAAW;IACpBM,YAAY,EAAEL,IAAI,oBAAJA,IAAI,CAAG,CAAAH,KAAK,oBAALA,KAAK,CAAEM,EAAE,KAAI,EAAE;EACtC,CAAC,CAAC;EAEF,IAAI,CAAC5B,uBAAuB,CAAC+B,cAAc,CAACT,KAAK,CAACU,IAAI,CAAC,EAAE;IACvD,OAAO,IAAI;EACb;EAEA,MAAMC,UAAU,GAAGjC,uBAAuB,CAACsB,KAAK,CAACU,IAAI,CAAE;EAEvD,oBACErD,KAAA,CAAAuD,aAAA,CAACD,UAAU;IACTX,KAAK,EAAEA,KAAM;IACba,KAAK,EAAET,UAAU,CAACJ,KAAK,CAACa,KAAM;IAC9BC,QAAQ,EAAEV,UAAU,CAACJ,KAAK,CAACc,QAAS;IACpCC,QAAQ,EAAE,cAAcf,KAAK,CAACM,EAAE,EAAG;IACnCL,QAAQ,EAAEA,QAAS;IACnBC,WAAW,EAAEA,WAAY;IACzBC,IAAI,EAAEA,IAAI,IAAI,CAAC;EAAE,CAClB,CAAC;AAEN,CAAC","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Box, Text } from '@wix/design-system';
3
3
  import { ReferenceViewField } from '../ReferenceViewField';
4
+ import { AudioView } from '../../cms-fields/components/audio/audio-field/audio-view';
4
5
  import { DocumentView } from '../../cms-fields/components/document/document-view';
5
6
  import { MultiDocumentView } from '../../cms-fields/components/multi-document/multi-document-view/multi-document-view';
6
7
  import { MultiReferenceViewField } from '../MultiReferenceViewField';
@@ -58,6 +59,10 @@ const ViewFieldContent = _ref => {
58
59
  field: field,
59
60
  value: value
60
61
  });
62
+ case 'AUDIO':
63
+ return /*#__PURE__*/React.createElement(AudioView, {
64
+ data: value
65
+ });
61
66
  case 'DOCUMENT':
62
67
  return /*#__PURE__*/React.createElement(DocumentView, {
63
68
  data: value
@@ -1 +1 @@
1
- {"version":3,"names":["React","Box","Text","ReferenceViewField","DocumentView","MultiDocumentView","MultiReferenceViewField","AddressView","getDisplayValue","value","undefined","String","Array","isArray","length","join","Date","toLocaleDateString","toString","Object","prototype","JSON","stringify","isEmptyValue","ViewFieldContent","_ref","field","createElement","type","data","ViewField","_ref2","fieldValue","id","direction","gap","dataHook","size","secondary","displayName"],"sources":["../../../../src/components/layouts/ViewField.tsx"],"sourcesContent":["import React from 'react';\nimport { Box, Text } from '@wix/design-system';\nimport { Field } from '../../types';\nimport { ReferenceViewField } from '../ReferenceViewField';\nimport { DocumentView } from '../../cms-fields/components/document/document-view';\nimport { MultiDocumentView } from '../../cms-fields/components/multi-document/multi-document-view/multi-document-view';\nimport { MultiReferenceViewField } from '../MultiReferenceViewField';\nimport { AddressView } from '../../cms-fields/components/address';\nimport { Address } from '../../cms-fields/types/address';\n\n// Safe display value conversion for all field types\nconst getDisplayValue = (value: any): string => {\n if (value === null || value === undefined) {\n return '-';\n }\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return String(value);\n }\n if (Array.isArray(value)) {\n return value.length > 0 ? value.join(', ') : '-';\n }\n if (typeof value === 'object') {\n // Handle dates\n if (value instanceof Date) {\n return value.toLocaleDateString();\n }\n // Handle objects with display properties\n if (value.toString && value.toString !== Object.prototype.toString) {\n return value.toString();\n }\n // Fallback for complex objects\n return JSON.stringify(value);\n }\n return String(value);\n};\n\nconst isEmptyValue = (value: any): boolean => {\n if (value === null || value === undefined) {\n return true;\n }\n if (Array.isArray(value) && value.length === 0) {\n return true;\n }\n return false;\n};\n\ninterface ViewFieldContentProps {\n field: Field;\n value: unknown;\n}\n\nconst ViewFieldContent: React.FC<ViewFieldContentProps> = ({\n field,\n value,\n}) => {\n if (isEmptyValue(value)) {\n return <Text>-</Text>;\n }\n\n switch (field.type) {\n case 'REFERENCE':\n return <ReferenceViewField field={field} value={value} />;\n case 'MULTI_REFERENCE':\n return <MultiReferenceViewField field={field} value={value} />;\n case 'DOCUMENT':\n return <DocumentView data={value as string} />;\n case 'MULTI_DOCUMENT':\n return <MultiDocumentView data={value as string[]} />;\n case 'ADDRESS':\n return <AddressView data={value as Address} />;\n default:\n return <Text>{getDisplayValue(value)}</Text>;\n }\n};\n\nexport interface ViewFieldProps {\n field: Field;\n data?: Record<string, any>;\n}\n\nexport const ViewField: React.FC<ViewFieldProps> = ({ field, data }) => {\n const fieldValue = data?.[field?.id ?? ''];\n\n return (\n <Box direction=\"vertical\" gap=\"4px\" dataHook={`view-field-${field.id}`}>\n <Text size=\"small\" secondary>\n {field.displayName || field.id}\n </Text>\n <ViewFieldContent field={field} value={fieldValue} />\n </Box>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Box","Text","ReferenceViewField","AudioView","DocumentView","MultiDocumentView","MultiReferenceViewField","AddressView","getDisplayValue","value","undefined","String","Array","isArray","length","join","Date","toLocaleDateString","toString","Object","prototype","JSON","stringify","isEmptyValue","ViewFieldContent","_ref","field","createElement","type","data","ViewField","_ref2","fieldValue","id","direction","gap","dataHook","size","secondary","displayName"],"sources":["../../../../src/components/layouts/ViewField.tsx"],"sourcesContent":["import React from 'react';\nimport { Box, Text } from '@wix/design-system';\nimport { Field } from '../../types';\nimport { ReferenceViewField } from '../ReferenceViewField';\nimport { AudioView } from '../../cms-fields/components/audio/audio-field/audio-view';\nimport { DocumentView } from '../../cms-fields/components/document/document-view';\nimport { MultiDocumentView } from '../../cms-fields/components/multi-document/multi-document-view/multi-document-view';\nimport { MultiReferenceViewField } from '../MultiReferenceViewField';\nimport { AddressView } from '../../cms-fields/components/address';\nimport { Address } from '../../cms-fields/types/address';\n\n// Safe display value conversion for all field types\nconst getDisplayValue = (value: any): string => {\n if (value === null || value === undefined) {\n return '-';\n }\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return String(value);\n }\n if (Array.isArray(value)) {\n return value.length > 0 ? value.join(', ') : '-';\n }\n if (typeof value === 'object') {\n // Handle dates\n if (value instanceof Date) {\n return value.toLocaleDateString();\n }\n // Handle objects with display properties\n if (value.toString && value.toString !== Object.prototype.toString) {\n return value.toString();\n }\n // Fallback for complex objects\n return JSON.stringify(value);\n }\n return String(value);\n};\n\nconst isEmptyValue = (value: any): boolean => {\n if (value === null || value === undefined) {\n return true;\n }\n if (Array.isArray(value) && value.length === 0) {\n return true;\n }\n return false;\n};\n\ninterface ViewFieldContentProps {\n field: Field;\n value: unknown;\n}\n\nconst ViewFieldContent: React.FC<ViewFieldContentProps> = ({\n field,\n value,\n}) => {\n if (isEmptyValue(value)) {\n return <Text>-</Text>;\n }\n\n switch (field.type) {\n case 'REFERENCE':\n return <ReferenceViewField field={field} value={value} />;\n case 'MULTI_REFERENCE':\n return <MultiReferenceViewField field={field} value={value} />;\n case 'AUDIO':\n return <AudioView data={value as string} />;\n case 'DOCUMENT':\n return <DocumentView data={value as string} />;\n case 'MULTI_DOCUMENT':\n return <MultiDocumentView data={value as string[]} />;\n case 'ADDRESS':\n return <AddressView data={value as Address} />;\n default:\n return <Text>{getDisplayValue(value)}</Text>;\n }\n};\n\nexport interface ViewFieldProps {\n field: Field;\n data?: Record<string, any>;\n}\n\nexport const ViewField: React.FC<ViewFieldProps> = ({ field, data }) => {\n const fieldValue = data?.[field?.id ?? ''];\n\n return (\n <Box direction=\"vertical\" gap=\"4px\" dataHook={`view-field-${field.id}`}>\n <Text size=\"small\" secondary>\n {field.displayName || field.id}\n </Text>\n <ViewFieldContent field={field} value={fieldValue} />\n </Box>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,11 @@
1
1
  import { collections, items } from '@wix/data';
2
2
  import { fetchCmsData } from './fetchCmsData';
3
3
  import { errorHandler } from '@wix/essentials';
4
+
5
+ // The CMS backend returns 'EMAIL' as a field type but the @wix/data SDK
6
+ // doesn't expose it in collections.Type. We use a string literal as a workaround until the SDK is updated.
7
+ // TODO: remove this once the SDK is updated
8
+ const CMS_EMAIL_TYPE = 'EMAIL';
4
9
  export const CmsFieldTypeToPatternsFieldType = {
5
10
  [collections.Type.TEXT]: 'SHORT_TEXT',
6
11
  [collections.Type.DATE]: 'DATE',
@@ -20,7 +25,9 @@ export const CmsFieldTypeToPatternsFieldType = {
20
25
  [collections.Type.IMAGE]: 'IMAGE',
21
26
  [collections.Type.MEDIA_GALLERY]: 'MEDIA_GALLERY',
22
27
  [collections.Type.DOCUMENT]: 'DOCUMENT',
23
- [collections.Type.ARRAY_DOCUMENT]: 'MULTI_DOCUMENT'
28
+ [collections.Type.ARRAY_DOCUMENT]: 'MULTI_DOCUMENT',
29
+ [collections.Type.AUDIO]: 'AUDIO',
30
+ [CMS_EMAIL_TYPE]: 'EMAIL'
24
31
  };
25
32
  export async function fetchCmsSchema(collectionId) {
26
33
  const schema = await errorHandler.withErrorHandler(async () => collections.getDataCollection(collectionId), {});
@@ -1 +1 @@
1
- {"version":3,"names":["collections","items","fetchCmsData","errorHandler","CmsFieldTypeToPatternsFieldType","Type","TEXT","DATE","DATETIME","TIME","NUMBER","BOOLEAN","URL","ADDRESS","OBJECT","RICH_TEXT","RICH_CONTENT","ARRAY","ARRAY_STRING","REFERENCE","MULTI_REFERENCE","IMAGE","MEDIA_GALLERY","DOCUMENT","ARRAY_DOCUMENT","fetchCmsSchema","collectionId","schema","withErrorHandler","getDataCollection","getReferenceFields","fields","Object","values","filter","f","type","updateMultiReferences","entityId","entity","multiReferenceFields","Promise","all","map","field","rawValue","id","multipleReferenceValues","multipleReferenceIds","value","_id","replaceReferences","transformCmsSchema","transformedFields","reduce","acc","_field$capabilities","_field$capabilities2","_field$typeMetadata","_field$typeMetadata2","key","fieldType","baseField","displayName","validation","numberRange","min","undefined","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","referencedCollectionId","typeMetadata","reference","multiReference","isReference","referenceMetadata","referenceFields","allReferenceFieldIds","schemaConfig","displayField","idField","actions","get","dataQuery","query","eq","length","include","res","find","returnTotalCount","Error","create","created","insert","createdId","update","delete","remove","bulkDelete","entityIds","bulkRemove","options"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, SchemaConfig, PatternsFieldType } from '../../types';\nimport { collections, items } from '@wix/data';\nimport { fetchCmsData } from './fetchCmsData';\nimport { errorHandler } from '@wix/essentials';\n\nexport const CmsFieldTypeToPatternsFieldType: Partial<\n Record<collections.Type, PatternsFieldType>\n> = {\n [collections.Type.TEXT]: 'SHORT_TEXT',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.TIME]: 'TIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\n [collections.Type.URL]: 'URL',\n [collections.Type.ADDRESS]: 'ADDRESS',\n [collections.Type.OBJECT]: 'OBJECT',\n [collections.Type.RICH_TEXT]: 'RICH_TEXT',\n [collections.Type.RICH_CONTENT]: 'RICH_CONTENT',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.ARRAY_STRING]: 'ARRAY',\n [collections.Type.REFERENCE]: 'REFERENCE',\n [collections.Type.MULTI_REFERENCE]: 'MULTI_REFERENCE',\n [collections.Type.IMAGE]: 'IMAGE',\n [collections.Type.MEDIA_GALLERY]: 'MEDIA_GALLERY',\n [collections.Type.DOCUMENT]: 'DOCUMENT',\n [collections.Type.ARRAY_DOCUMENT]: 'MULTI_DOCUMENT',\n};\n\nexport async function fetchCmsSchema(\n collectionId: string,\n): Promise<collections.DataCollection> {\n const schema = await errorHandler.withErrorHandler(\n async () => collections.getDataCollection(collectionId),\n {},\n );\n return schema;\n}\n\nconst getReferenceFields = (fields: Record<string, Field>) =>\n Object.values(fields).filter(\n (f): f is Field => f?.type === 'REFERENCE' || f?.type === 'MULTI_REFERENCE',\n );\n\nconst updateMultiReferences = async (\n collectionId: string,\n entityId: string,\n entity: Record<string, any>,\n multiReferenceFields: Field[],\n) => {\n await Promise.all(\n multiReferenceFields.map(async (field) => {\n const rawValue = entity[field.id];\n const multipleReferenceValues = rawValue as Record<string, unknown>[];\n const multipleReferenceIds = multipleReferenceValues.map(\n (value) => value._id as string,\n );\n\n await items.replaceReferences(\n collectionId,\n field.id,\n entityId,\n multipleReferenceIds,\n );\n }),\n );\n};\n\nexport function transformCmsSchema(\n schema: collections.DataCollection,\n): SchemaConfig {\n const collectionId = schema._id as string;\n\n const transformedFields = (schema.fields || []).reduce<Record<string, Field>>(\n (acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n const fieldType = field.type\n ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT'\n : 'SHORT_TEXT';\n const baseField = {\n id: field.key,\n displayName: field.displayName || '',\n validation: {\n numberRange: field.numberRange\n ? {\n min: field.numberRange.min ?? undefined,\n max: field.numberRange.max ?? undefined,\n }\n : undefined,\n stringLengthRange: field.stringLengthRange\n ? {\n minLength: field.stringLengthRange.minLength ?? undefined,\n maxLength: field.stringLengthRange.maxLength ?? undefined,\n }\n : undefined,\n required: field.required ?? false,\n },\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n const referencedCollectionId =\n field.typeMetadata?.reference?.referencedCollectionId ??\n field.typeMetadata?.multiReference?.referencedCollectionId;\n\n const isReference =\n fieldType === 'REFERENCE' || fieldType === 'MULTI_REFERENCE';\n\n if (isReference && referencedCollectionId) {\n acc[field.key] = {\n ...baseField,\n type: fieldType as 'REFERENCE' | 'MULTI_REFERENCE',\n referenceMetadata: { referencedCollectionId },\n };\n } else {\n acc[field.key] = {\n ...baseField,\n type: isReference ? 'SHORT_TEXT' : fieldType,\n };\n }\n\n return acc;\n },\n {},\n );\n\n const referenceFields = getReferenceFields(transformedFields);\n const multiReferenceFields = referenceFields.filter(\n (f) => f.type === 'MULTI_REFERENCE',\n );\n const allReferenceFieldIds = referenceFields.map((f) => f.id);\n\n const schemaConfig: SchemaConfig = {\n id: collectionId,\n displayField: schema.displayField ?? '_id',\n idField: '_id',\n fields: transformedFields,\n actions: {\n get: async (entityId: string) => {\n let dataQuery = items.query(collectionId).eq('_id', entityId);\n if (allReferenceFieldIds.length > 0) {\n dataQuery = dataQuery.include(...allReferenceFieldIds);\n }\n\n const res = await dataQuery.find({ returnTotalCount: false });\n const entity = res.items[0];\n\n if (!entity) {\n throw new Error(`Entity not found: ${entityId}`);\n }\n\n return entity;\n },\n\n create: async (entity) => {\n const created = await items.insert(collectionId, entity);\n const createdId = created._id as string;\n\n if (createdId) {\n await updateMultiReferences(\n collectionId,\n createdId,\n entity as Record<string, unknown>,\n multiReferenceFields,\n );\n }\n\n return { ...entity, _id: createdId };\n },\n\n update: async (entity) => {\n await items.update(\n collectionId,\n entity as typeof entity & { _id: string },\n );\n\n const entityId = entity._id as string;\n\n if (entityId) {\n await updateMultiReferences(\n collectionId,\n entityId,\n entity,\n multiReferenceFields,\n );\n }\n\n return entity;\n },\n\n delete: (entityId) => items.remove(collectionId, entityId),\n bulkDelete: (entityIds) => items.bulkRemove(collectionId, entityIds),\n\n find: async (\n query,\n options: {\n searchableFieldIds?: string[];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n } = {},\n ) => {\n return fetchCmsData(collectionId, query, transformedFields, options);\n },\n },\n };\n\n return schemaConfig;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["collections","items","fetchCmsData","errorHandler","CMS_EMAIL_TYPE","CmsFieldTypeToPatternsFieldType","Type","TEXT","DATE","DATETIME","TIME","NUMBER","BOOLEAN","URL","ADDRESS","OBJECT","RICH_TEXT","RICH_CONTENT","ARRAY","ARRAY_STRING","REFERENCE","MULTI_REFERENCE","IMAGE","MEDIA_GALLERY","DOCUMENT","ARRAY_DOCUMENT","AUDIO","fetchCmsSchema","collectionId","schema","withErrorHandler","getDataCollection","getReferenceFields","fields","Object","values","filter","f","type","updateMultiReferences","entityId","entity","multiReferenceFields","Promise","all","map","field","rawValue","id","multipleReferenceValues","multipleReferenceIds","value","_id","replaceReferences","transformCmsSchema","transformedFields","reduce","acc","_field$capabilities","_field$capabilities2","_field$typeMetadata","_field$typeMetadata2","key","fieldType","baseField","displayName","validation","numberRange","min","undefined","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","referencedCollectionId","typeMetadata","reference","multiReference","isReference","referenceMetadata","referenceFields","allReferenceFieldIds","schemaConfig","displayField","idField","actions","get","dataQuery","query","eq","length","include","res","find","returnTotalCount","Error","create","created","insert","createdId","update","delete","remove","bulkDelete","entityIds","bulkRemove","options"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, SchemaConfig, PatternsFieldType } from '../../types';\nimport { collections, items } from '@wix/data';\nimport { fetchCmsData } from './fetchCmsData';\nimport { errorHandler } from '@wix/essentials';\n\n// The CMS backend returns 'EMAIL' as a field type but the @wix/data SDK\n// doesn't expose it in collections.Type. We use a string literal as a workaround until the SDK is updated.\n// TODO: remove this once the SDK is updated\nconst CMS_EMAIL_TYPE = 'EMAIL' as collections.Type;\n\nexport const CmsFieldTypeToPatternsFieldType: Partial<\n Record<collections.Type, PatternsFieldType>\n> = {\n [collections.Type.TEXT]: 'SHORT_TEXT',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.TIME]: 'TIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\n [collections.Type.URL]: 'URL',\n [collections.Type.ADDRESS]: 'ADDRESS',\n [collections.Type.OBJECT]: 'OBJECT',\n [collections.Type.RICH_TEXT]: 'RICH_TEXT',\n [collections.Type.RICH_CONTENT]: 'RICH_CONTENT',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.ARRAY_STRING]: 'ARRAY',\n [collections.Type.REFERENCE]: 'REFERENCE',\n [collections.Type.MULTI_REFERENCE]: 'MULTI_REFERENCE',\n [collections.Type.IMAGE]: 'IMAGE',\n [collections.Type.MEDIA_GALLERY]: 'MEDIA_GALLERY',\n [collections.Type.DOCUMENT]: 'DOCUMENT',\n [collections.Type.ARRAY_DOCUMENT]: 'MULTI_DOCUMENT',\n [collections.Type.AUDIO]: 'AUDIO',\n [CMS_EMAIL_TYPE]: 'EMAIL',\n};\n\nexport async function fetchCmsSchema(\n collectionId: string,\n): Promise<collections.DataCollection> {\n const schema = await errorHandler.withErrorHandler(\n async () => collections.getDataCollection(collectionId),\n {},\n );\n return schema;\n}\n\nconst getReferenceFields = (fields: Record<string, Field>) =>\n Object.values(fields).filter(\n (f): f is Field => f?.type === 'REFERENCE' || f?.type === 'MULTI_REFERENCE',\n );\n\nconst updateMultiReferences = async (\n collectionId: string,\n entityId: string,\n entity: Record<string, any>,\n multiReferenceFields: Field[],\n) => {\n await Promise.all(\n multiReferenceFields.map(async (field) => {\n const rawValue = entity[field.id];\n const multipleReferenceValues = rawValue as Record<string, unknown>[];\n const multipleReferenceIds = multipleReferenceValues.map(\n (value) => value._id as string,\n );\n\n await items.replaceReferences(\n collectionId,\n field.id,\n entityId,\n multipleReferenceIds,\n );\n }),\n );\n};\n\nexport function transformCmsSchema(\n schema: collections.DataCollection,\n): SchemaConfig {\n const collectionId = schema._id as string;\n\n const transformedFields = (schema.fields || []).reduce<Record<string, Field>>(\n (acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n const fieldType = field.type\n ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT'\n : 'SHORT_TEXT';\n const baseField = {\n id: field.key,\n displayName: field.displayName || '',\n validation: {\n numberRange: field.numberRange\n ? {\n min: field.numberRange.min ?? undefined,\n max: field.numberRange.max ?? undefined,\n }\n : undefined,\n stringLengthRange: field.stringLengthRange\n ? {\n minLength: field.stringLengthRange.minLength ?? undefined,\n maxLength: field.stringLengthRange.maxLength ?? undefined,\n }\n : undefined,\n required: field.required ?? false,\n },\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n const referencedCollectionId =\n field.typeMetadata?.reference?.referencedCollectionId ??\n field.typeMetadata?.multiReference?.referencedCollectionId;\n\n const isReference =\n fieldType === 'REFERENCE' || fieldType === 'MULTI_REFERENCE';\n\n if (isReference && referencedCollectionId) {\n acc[field.key] = {\n ...baseField,\n type: fieldType as 'REFERENCE' | 'MULTI_REFERENCE',\n referenceMetadata: { referencedCollectionId },\n };\n } else {\n acc[field.key] = {\n ...baseField,\n type: isReference ? 'SHORT_TEXT' : fieldType,\n };\n }\n\n return acc;\n },\n {},\n );\n\n const referenceFields = getReferenceFields(transformedFields);\n const multiReferenceFields = referenceFields.filter(\n (f) => f.type === 'MULTI_REFERENCE',\n );\n const allReferenceFieldIds = referenceFields.map((f) => f.id);\n\n const schemaConfig: SchemaConfig = {\n id: collectionId,\n displayField: schema.displayField ?? '_id',\n idField: '_id',\n fields: transformedFields,\n actions: {\n get: async (entityId: string) => {\n let dataQuery = items.query(collectionId).eq('_id', entityId);\n if (allReferenceFieldIds.length > 0) {\n dataQuery = dataQuery.include(...allReferenceFieldIds);\n }\n\n const res = await dataQuery.find({ returnTotalCount: false });\n const entity = res.items[0];\n\n if (!entity) {\n throw new Error(`Entity not found: ${entityId}`);\n }\n\n return entity;\n },\n\n create: async (entity) => {\n const created = await items.insert(collectionId, entity);\n const createdId = created._id as string;\n\n if (createdId) {\n await updateMultiReferences(\n collectionId,\n createdId,\n entity as Record<string, unknown>,\n multiReferenceFields,\n );\n }\n\n return { ...entity, _id: createdId };\n },\n\n update: async (entity) => {\n await items.update(\n collectionId,\n entity as typeof entity & { _id: string },\n );\n\n const entityId = entity._id as string;\n\n if (entityId) {\n await updateMultiReferences(\n collectionId,\n entityId,\n entity,\n multiReferenceFields,\n );\n }\n\n return entity;\n },\n\n delete: (entityId) => items.remove(collectionId, entityId),\n bulkDelete: (entityIds) => items.bulkRemove(collectionId, entityIds),\n\n find: async (\n query,\n options: {\n searchableFieldIds?: string[];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n } = {},\n ) => {\n return fetchCmsData(collectionId, query, transformedFields, options);\n },\n },\n };\n\n return schemaConfig;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -60,7 +60,7 @@ export function addFiltersToDataQuery(_ref) {
60
60
  const filter = filters[fieldKey];
61
61
  if (filter) {
62
62
  if (Array.isArray(filter)) {
63
- var _fields$fieldId, _fields$fieldId2, _fields$fieldId3, _fields$fieldId4, _fields$fieldId5;
63
+ var _fields$fieldId, _fields$fieldId2, _fields$fieldId3, _fields$fieldId4, _fields$fieldId5, _fields$fieldId6;
64
64
  const filterArray = filter;
65
65
  if (((_fields$fieldId = fields[fieldId]) == null ? void 0 : _fields$fieldId.type) === 'BOOLEAN') {
66
66
  if (filterArray.some(item => item.id === BooleanFilters.checked)) {
@@ -70,7 +70,7 @@ export function addFiltersToDataQuery(_ref) {
70
70
  const undefinedFilter = items.filter().eq(fieldId, undefined);
71
71
  dataQueryWithFilters = dataQueryWithFilters.and(falseFilter.or(undefinedFilter));
72
72
  }
73
- } else if (((_fields$fieldId2 = fields[fieldId]) == null ? void 0 : _fields$fieldId2.type) === 'RICH_CONTENT' || ((_fields$fieldId3 = fields[fieldId]) == null ? void 0 : _fields$fieldId3.type) === 'TIME' || ((_fields$fieldId4 = fields[fieldId]) == null ? void 0 : _fields$fieldId4.type) === 'DOCUMENT' || ((_fields$fieldId5 = fields[fieldId]) == null ? void 0 : _fields$fieldId5.type) === 'MULTI_DOCUMENT') {
73
+ } else if (((_fields$fieldId2 = fields[fieldId]) == null ? void 0 : _fields$fieldId2.type) === 'RICH_CONTENT' || ((_fields$fieldId3 = fields[fieldId]) == null ? void 0 : _fields$fieldId3.type) === 'TIME' || ((_fields$fieldId4 = fields[fieldId]) == null ? void 0 : _fields$fieldId4.type) === 'DOCUMENT' || ((_fields$fieldId5 = fields[fieldId]) == null ? void 0 : _fields$fieldId5.type) === 'MULTI_DOCUMENT' || ((_fields$fieldId6 = fields[fieldId]) == null ? void 0 : _fields$fieldId6.type) === 'AUDIO') {
74
74
  const wantsHasValue = filterArray.some(item => item.id === HasValueFilters.hasValue);
75
75
  const wantsNoValue = filterArray.some(item => item.id === HasValueFilters.noValue);
76
76
  // Only apply filter if exactly one option is selected
@@ -86,8 +86,8 @@ export function addFiltersToDataQuery(_ref) {
86
86
  } else if (typeof filter === 'object') {
87
87
  // Operator filter
88
88
  if (filter.operator) {
89
- var _fields$fieldId6;
90
- const queryFieldId = getQueryFieldId(fieldId, (_fields$fieldId6 = fields[fieldId]) == null ? void 0 : _fields$fieldId6.type, filter.operator);
89
+ var _fields$fieldId7;
90
+ const queryFieldId = getQueryFieldId(fieldId, (_fields$fieldId7 = fields[fieldId]) == null ? void 0 : _fields$fieldId7.type, filter.operator);
91
91
  if (filter.operator === FilterOperator.NOT_CONTAINS) {
92
92
  const containsFilter = items.filter().contains(queryFieldId, filter.value);
93
93
  dataQueryWithFilters = dataQueryWithFilters.not(containsFilter);
@@ -1 +1 @@
1
- {"version":3,"names":["FilterOperator","items","BooleanFilters","FilterPropToOperator","HasValueFilters","FilterPropToMethod","from","to","CONTAINS","IS_EMPTY","EXISTS","isValidFilterProp","prop","getOperatorForFilter","undefined","isSupportedOperator","fields","filterProp","filterKey","_field$capabilities","field","operator","supportedOperators","capabilities","supportedQueryOperators","includes","getQueryFieldId","fieldId","fieldType","isAddressField","isExistenceOperator","addFiltersToDataQuery","_ref","dataQuery","query","filterFieldMapping","dataQueryWithFilters","filters","fieldKey","filter","Array","isArray","_fields$fieldId","_fields$fieldId2","_fields$fieldId3","_fields$fieldId4","_fields$fieldId5","filterArray","type","some","item","id","checked","eq","falseFilter","undefinedFilter","and","or","wantsHasValue","hasValue","wantsNoValue","noValue","isNotEmpty","isEmpty","hasSome","map","_fields$fieldId6","queryFieldId","NOT_CONTAINS","containsFilter","contains","value","not","filterObj","TEXT_FIELD_TYPES","addSearchToDataQuery","_ref2","searchableFieldIds","searchableFields","Object","keys","isFieldSearchable","search","length","searchFilter","forEach","currentFilter"],"sources":["../../../../src/dataSourceAdapters/cms/filterUtils.ts"],"sourcesContent":["import { FilterOperator } from '@wix/patterns';\nimport { items } from '@wix/data';\nimport {\n BooleanFilters,\n FilterProp,\n FilterPropToOperator,\n HasValueFilters,\n} from '../constants';\nimport { Query, SchemaConfig } from '../../types';\n\nexport type CmsOperatorMethod =\n | 'ge'\n | 'le'\n | 'contains'\n | 'isEmpty'\n | 'isNotEmpty';\n\nconst FilterPropToMethod: Partial<\n Record<FilterProp | FilterOperator, CmsOperatorMethod>\n> = {\n from: 'ge',\n to: 'le',\n [FilterOperator.CONTAINS]: 'contains',\n [FilterOperator.IS_EMPTY]: 'isEmpty',\n [FilterOperator.EXISTS]: 'isNotEmpty',\n};\n\nfunction isValidFilterProp(prop: string): prop is FilterProp {\n return prop in FilterPropToMethod;\n}\n\nfunction getOperatorForFilter(prop: string): CmsOperatorMethod | undefined {\n if (isValidFilterProp(prop)) {\n return FilterPropToMethod[prop];\n }\n return undefined;\n}\n\nconst isSupportedOperator = (\n fields: SchemaConfig['fields'],\n filterProp: string,\n filterKey: string,\n) => {\n const field = fields[filterKey];\n if (!field) {\n return false;\n }\n\n if (!isValidFilterProp(filterProp)) {\n return false;\n }\n\n const operator = FilterPropToOperator[filterProp];\n const supportedOperators = field.capabilities?.supportedQueryOperators;\n return supportedOperators?.includes(operator);\n};\n\n/**\n * For ADDRESS fields, text-based operators (CONTAINS, NOT_CONTAINS) should query\n * the 'formatted' nested property, which contains the human-readable address string.\n * Existence operators (IS_EMPTY, EXISTS) should query the field directly.\n */\nconst getQueryFieldId = (\n fieldId: string,\n fieldType: string | undefined,\n operator: FilterOperator,\n): string => {\n const isAddressField = fieldType === 'ADDRESS';\n const isExistenceOperator =\n operator === FilterOperator.IS_EMPTY || operator === FilterOperator.EXISTS;\n\n return isAddressField && !isExistenceOperator\n ? `${fieldId}.formatted`\n : fieldId;\n};\n\nexport function addFiltersToDataQuery({\n dataQuery,\n query,\n fields,\n filterFieldMapping,\n}: {\n dataQuery: items.WixDataQuery;\n query: Query;\n fields: SchemaConfig['fields'];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n}) {\n if (!filterFieldMapping) {\n return dataQuery;\n }\n\n let dataQueryWithFilters = dataQuery;\n const { filters } = query;\n for (const fieldKey in filters) {\n const fieldId = filterFieldMapping[fieldKey].fieldId;\n const filter = filters[fieldKey];\n if (filter) {\n if (Array.isArray(filter)) {\n const filterArray = filter as { [key: string]: any }[];\n if (fields[fieldId]?.type === 'BOOLEAN') {\n if (filterArray.some((item) => item.id === BooleanFilters.checked)) {\n dataQueryWithFilters = dataQueryWithFilters.eq(fieldId, true);\n } else {\n const falseFilter = items.filter().eq(fieldId, false);\n const undefinedFilter = items.filter().eq(fieldId, undefined);\n dataQueryWithFilters = dataQueryWithFilters.and(\n falseFilter.or(undefinedFilter),\n );\n }\n } else if (\n fields[fieldId]?.type === 'RICH_CONTENT' ||\n fields[fieldId]?.type === 'TIME' ||\n fields[fieldId]?.type === 'DOCUMENT' ||\n fields[fieldId]?.type === 'MULTI_DOCUMENT'\n ) {\n const wantsHasValue = filterArray.some(\n (item) => item.id === HasValueFilters.hasValue,\n );\n const wantsNoValue = filterArray.some(\n (item) => item.id === HasValueFilters.noValue,\n );\n // Only apply filter if exactly one option is selected\n if (wantsHasValue && !wantsNoValue) {\n dataQueryWithFilters = dataQueryWithFilters.isNotEmpty(fieldId);\n } else if (wantsNoValue && !wantsHasValue) {\n dataQueryWithFilters = dataQueryWithFilters.isEmpty(fieldId);\n }\n // If both or neither selected, no filter applied (show all)\n } else {\n dataQueryWithFilters = dataQueryWithFilters.hasSome(\n fieldId,\n filterArray.map((item) => item.id),\n );\n }\n } else if (typeof filter === 'object') {\n // Operator filter\n if (filter.operator) {\n const queryFieldId = getQueryFieldId(\n fieldId,\n fields[fieldId]?.type,\n filter.operator,\n );\n\n if (filter.operator === FilterOperator.NOT_CONTAINS) {\n const containsFilter = items\n .filter()\n .contains(queryFieldId, filter.value);\n dataQueryWithFilters = dataQueryWithFilters.not(containsFilter);\n } else {\n const operator = getOperatorForFilter(filter.operator);\n if (operator) {\n if (operator === 'isEmpty' || operator === 'isNotEmpty') {\n dataQueryWithFilters = dataQueryWithFilters[operator](fieldId);\n } else {\n dataQueryWithFilters = dataQueryWithFilters[operator](\n queryFieldId,\n filter.value,\n );\n }\n }\n }\n }\n // Range filter\n const filterObj = filter as Record<string, any>;\n for (const filterProp in filterObj) {\n const operator = getOperatorForFilter(filterProp);\n if (\n operator &&\n typeof dataQuery[operator] === 'function' &&\n isSupportedOperator(fields, filterProp, fieldId)\n ) {\n const value = filterObj[filterProp];\n if (value !== undefined && value !== null) {\n dataQueryWithFilters = dataQueryWithFilters[operator](\n fieldId,\n value,\n );\n }\n }\n }\n }\n }\n }\n\n return dataQueryWithFilters;\n}\n\nconst TEXT_FIELD_TYPES = ['LONG_TEXT', 'SHORT_TEXT'];\nexport function addSearchToDataQuery({\n dataQuery,\n query,\n fields,\n searchableFieldIds,\n}: {\n dataQuery: items.WixDataQuery;\n query: Query;\n fields: SchemaConfig['fields'];\n searchableFieldIds: string[];\n}) {\n const searchableFields = Object.keys(fields).filter((fieldId) => {\n const field = fields[fieldId];\n const isFieldSearchable = searchableFieldIds.includes(fieldId);\n\n return isFieldSearchable && field && TEXT_FIELD_TYPES.includes(field.type);\n });\n\n if (query.search && searchableFields.length > 0) {\n let searchFilter: items.WixDataFilter | null = null;\n\n searchableFields.forEach((field) => {\n const currentFilter = items.filter().contains(field, query.search!);\n searchFilter = searchFilter\n ? searchFilter.or(currentFilter)\n : currentFilter;\n });\n\n if (searchFilter) {\n dataQuery = dataQuery.and(searchFilter);\n }\n }\n\n return dataQuery;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["FilterOperator","items","BooleanFilters","FilterPropToOperator","HasValueFilters","FilterPropToMethod","from","to","CONTAINS","IS_EMPTY","EXISTS","isValidFilterProp","prop","getOperatorForFilter","undefined","isSupportedOperator","fields","filterProp","filterKey","_field$capabilities","field","operator","supportedOperators","capabilities","supportedQueryOperators","includes","getQueryFieldId","fieldId","fieldType","isAddressField","isExistenceOperator","addFiltersToDataQuery","_ref","dataQuery","query","filterFieldMapping","dataQueryWithFilters","filters","fieldKey","filter","Array","isArray","_fields$fieldId","_fields$fieldId2","_fields$fieldId3","_fields$fieldId4","_fields$fieldId5","_fields$fieldId6","filterArray","type","some","item","id","checked","eq","falseFilter","undefinedFilter","and","or","wantsHasValue","hasValue","wantsNoValue","noValue","isNotEmpty","isEmpty","hasSome","map","_fields$fieldId7","queryFieldId","NOT_CONTAINS","containsFilter","contains","value","not","filterObj","TEXT_FIELD_TYPES","addSearchToDataQuery","_ref2","searchableFieldIds","searchableFields","Object","keys","isFieldSearchable","search","length","searchFilter","forEach","currentFilter"],"sources":["../../../../src/dataSourceAdapters/cms/filterUtils.ts"],"sourcesContent":["import { FilterOperator } from '@wix/patterns';\nimport { items } from '@wix/data';\nimport {\n BooleanFilters,\n FilterProp,\n FilterPropToOperator,\n HasValueFilters,\n} from '../constants';\nimport { Query, SchemaConfig } from '../../types';\n\nexport type CmsOperatorMethod =\n | 'ge'\n | 'le'\n | 'contains'\n | 'isEmpty'\n | 'isNotEmpty';\n\nconst FilterPropToMethod: Partial<\n Record<FilterProp | FilterOperator, CmsOperatorMethod>\n> = {\n from: 'ge',\n to: 'le',\n [FilterOperator.CONTAINS]: 'contains',\n [FilterOperator.IS_EMPTY]: 'isEmpty',\n [FilterOperator.EXISTS]: 'isNotEmpty',\n};\n\nfunction isValidFilterProp(prop: string): prop is FilterProp {\n return prop in FilterPropToMethod;\n}\n\nfunction getOperatorForFilter(prop: string): CmsOperatorMethod | undefined {\n if (isValidFilterProp(prop)) {\n return FilterPropToMethod[prop];\n }\n return undefined;\n}\n\nconst isSupportedOperator = (\n fields: SchemaConfig['fields'],\n filterProp: string,\n filterKey: string,\n) => {\n const field = fields[filterKey];\n if (!field) {\n return false;\n }\n\n if (!isValidFilterProp(filterProp)) {\n return false;\n }\n\n const operator = FilterPropToOperator[filterProp];\n const supportedOperators = field.capabilities?.supportedQueryOperators;\n return supportedOperators?.includes(operator);\n};\n\n/**\n * For ADDRESS fields, text-based operators (CONTAINS, NOT_CONTAINS) should query\n * the 'formatted' nested property, which contains the human-readable address string.\n * Existence operators (IS_EMPTY, EXISTS) should query the field directly.\n */\nconst getQueryFieldId = (\n fieldId: string,\n fieldType: string | undefined,\n operator: FilterOperator,\n): string => {\n const isAddressField = fieldType === 'ADDRESS';\n const isExistenceOperator =\n operator === FilterOperator.IS_EMPTY || operator === FilterOperator.EXISTS;\n\n return isAddressField && !isExistenceOperator\n ? `${fieldId}.formatted`\n : fieldId;\n};\n\nexport function addFiltersToDataQuery({\n dataQuery,\n query,\n fields,\n filterFieldMapping,\n}: {\n dataQuery: items.WixDataQuery;\n query: Query;\n fields: SchemaConfig['fields'];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n}) {\n if (!filterFieldMapping) {\n return dataQuery;\n }\n\n let dataQueryWithFilters = dataQuery;\n const { filters } = query;\n for (const fieldKey in filters) {\n const fieldId = filterFieldMapping[fieldKey].fieldId;\n const filter = filters[fieldKey];\n if (filter) {\n if (Array.isArray(filter)) {\n const filterArray = filter as { [key: string]: any }[];\n if (fields[fieldId]?.type === 'BOOLEAN') {\n if (filterArray.some((item) => item.id === BooleanFilters.checked)) {\n dataQueryWithFilters = dataQueryWithFilters.eq(fieldId, true);\n } else {\n const falseFilter = items.filter().eq(fieldId, false);\n const undefinedFilter = items.filter().eq(fieldId, undefined);\n dataQueryWithFilters = dataQueryWithFilters.and(\n falseFilter.or(undefinedFilter),\n );\n }\n } else if (\n fields[fieldId]?.type === 'RICH_CONTENT' ||\n fields[fieldId]?.type === 'TIME' ||\n fields[fieldId]?.type === 'DOCUMENT' ||\n fields[fieldId]?.type === 'MULTI_DOCUMENT' ||\n fields[fieldId]?.type === 'AUDIO'\n ) {\n const wantsHasValue = filterArray.some(\n (item) => item.id === HasValueFilters.hasValue,\n );\n const wantsNoValue = filterArray.some(\n (item) => item.id === HasValueFilters.noValue,\n );\n // Only apply filter if exactly one option is selected\n if (wantsHasValue && !wantsNoValue) {\n dataQueryWithFilters = dataQueryWithFilters.isNotEmpty(fieldId);\n } else if (wantsNoValue && !wantsHasValue) {\n dataQueryWithFilters = dataQueryWithFilters.isEmpty(fieldId);\n }\n // If both or neither selected, no filter applied (show all)\n } else {\n dataQueryWithFilters = dataQueryWithFilters.hasSome(\n fieldId,\n filterArray.map((item) => item.id),\n );\n }\n } else if (typeof filter === 'object') {\n // Operator filter\n if (filter.operator) {\n const queryFieldId = getQueryFieldId(\n fieldId,\n fields[fieldId]?.type,\n filter.operator,\n );\n\n if (filter.operator === FilterOperator.NOT_CONTAINS) {\n const containsFilter = items\n .filter()\n .contains(queryFieldId, filter.value);\n dataQueryWithFilters = dataQueryWithFilters.not(containsFilter);\n } else {\n const operator = getOperatorForFilter(filter.operator);\n if (operator) {\n if (operator === 'isEmpty' || operator === 'isNotEmpty') {\n dataQueryWithFilters = dataQueryWithFilters[operator](fieldId);\n } else {\n dataQueryWithFilters = dataQueryWithFilters[operator](\n queryFieldId,\n filter.value,\n );\n }\n }\n }\n }\n // Range filter\n const filterObj = filter as Record<string, any>;\n for (const filterProp in filterObj) {\n const operator = getOperatorForFilter(filterProp);\n if (\n operator &&\n typeof dataQuery[operator] === 'function' &&\n isSupportedOperator(fields, filterProp, fieldId)\n ) {\n const value = filterObj[filterProp];\n if (value !== undefined && value !== null) {\n dataQueryWithFilters = dataQueryWithFilters[operator](\n fieldId,\n value,\n );\n }\n }\n }\n }\n }\n }\n\n return dataQueryWithFilters;\n}\n\nconst TEXT_FIELD_TYPES = ['LONG_TEXT', 'SHORT_TEXT'];\nexport function addSearchToDataQuery({\n dataQuery,\n query,\n fields,\n searchableFieldIds,\n}: {\n dataQuery: items.WixDataQuery;\n query: Query;\n fields: SchemaConfig['fields'];\n searchableFieldIds: string[];\n}) {\n const searchableFields = Object.keys(fields).filter((fieldId) => {\n const field = fields[fieldId];\n const isFieldSearchable = searchableFieldIds.includes(fieldId);\n\n return isFieldSearchable && field && TEXT_FIELD_TYPES.includes(field.type);\n });\n\n if (query.search && searchableFields.length > 0) {\n let searchFilter: items.WixDataFilter | null = null;\n\n searchableFields.forEach((field) => {\n const currentFilter = items.filter().contains(field, query.search!);\n searchFilter = searchFilter\n ? searchFilter.or(currentFilter)\n : currentFilter;\n });\n\n if (searchFilter) {\n dataQuery = dataQuery.and(searchFilter);\n }\n }\n\n return dataQuery;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -11,6 +11,7 @@ export function getFilterComponent(filter) {
11
11
  case 'TIME':
12
12
  case 'DOCUMENT':
13
13
  case 'MULTI_DOCUMENT':
14
+ case 'AUDIO':
14
15
  return MultiInlineCheckboxFilter;
15
16
  case 'NUMBER':
16
17
  return NumberRangeFilter;
@@ -19,6 +20,7 @@ export function getFilterComponent(filter) {
19
20
  return (filter == null || (_filter$dynamicOption = filter.dynamicOptionsFilterConfig) == null ? void 0 : _filter$dynamicOption.selectionMode) === 'single' ? AutoCompleteFilter : MultiSelectCollectionFilter;
20
21
  case 'RICH_TEXT':
21
22
  case 'ADDRESS':
23
+ case 'EMAIL':
22
24
  return OperatorFilterPicker;
23
25
  default:
24
26
  if (filter != null && filter.enumConfig) {