@wix/patterns-fields 1.116.0 → 1.118.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 (445) hide show
  1. package/dist/cjs/assets/locale/messages_ar.json +2 -0
  2. package/dist/cjs/assets/locale/messages_bg.json +2 -0
  3. package/dist/cjs/assets/locale/messages_ca.json +2 -0
  4. package/dist/cjs/assets/locale/messages_cs.json +2 -0
  5. package/dist/cjs/assets/locale/messages_da.json +2 -0
  6. package/dist/cjs/assets/locale/messages_de.json +2 -0
  7. package/dist/cjs/assets/locale/messages_el.json +2 -0
  8. package/dist/cjs/assets/locale/messages_en.json +2 -0
  9. package/dist/cjs/assets/locale/messages_es.json +2 -0
  10. package/dist/cjs/assets/locale/messages_fi.json +2 -0
  11. package/dist/cjs/assets/locale/messages_fr.json +2 -0
  12. package/dist/cjs/assets/locale/messages_he.json +2 -0
  13. package/dist/cjs/assets/locale/messages_hi.json +2 -0
  14. package/dist/cjs/assets/locale/messages_hu.json +2 -0
  15. package/dist/cjs/assets/locale/messages_id.json +2 -0
  16. package/dist/cjs/assets/locale/messages_it.json +2 -0
  17. package/dist/cjs/assets/locale/messages_ja.json +2 -0
  18. package/dist/cjs/assets/locale/messages_ko.json +2 -0
  19. package/dist/cjs/assets/locale/messages_lt.json +2 -0
  20. package/dist/cjs/assets/locale/messages_ms.json +2 -0
  21. package/dist/cjs/assets/locale/messages_nl.json +2 -0
  22. package/dist/cjs/assets/locale/messages_no.json +2 -0
  23. package/dist/cjs/assets/locale/messages_pl.json +2 -0
  24. package/dist/cjs/assets/locale/messages_pt.json +2 -0
  25. package/dist/cjs/assets/locale/messages_ro.json +2 -0
  26. package/dist/cjs/assets/locale/messages_ru.json +2 -0
  27. package/dist/cjs/assets/locale/messages_sk.json +2 -0
  28. package/dist/cjs/assets/locale/messages_sl.json +2 -0
  29. package/dist/cjs/assets/locale/messages_sv.json +2 -0
  30. package/dist/cjs/assets/locale/messages_th.json +2 -0
  31. package/dist/cjs/assets/locale/messages_tl.json +2 -0
  32. package/dist/cjs/assets/locale/messages_tr.json +2 -0
  33. package/dist/cjs/assets/locale/messages_uk.json +2 -0
  34. package/dist/cjs/assets/locale/messages_vi.json +2 -0
  35. package/dist/cjs/assets/locale/messages_zh.json +2 -0
  36. package/dist/cjs/assets/locale/version_file +1 -1
  37. package/dist/cjs/components/address/input/address-input.st.css.js +3 -3
  38. package/dist/cjs/components/address/input/address-input.st.css.js.map +1 -1
  39. package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js +3 -3
  40. package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
  41. package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js +4 -4
  42. package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
  43. package/dist/cjs/components/audio/audio-player/audio-player.st.css.js +2 -2
  44. package/dist/cjs/components/audio/audio-player/audio-player.st.css.js.map +1 -1
  45. package/dist/cjs/components/audio/cell-audio-edit.js +10 -11
  46. package/dist/cjs/components/audio/cell-audio-edit.js.map +1 -1
  47. package/dist/cjs/components/color-view/cell-color-view.st.css.js +3 -3
  48. package/dist/cjs/components/color-view/cell-color-view.st.css.js.map +1 -1
  49. package/dist/cjs/components/color-view/color-view.st.css.js +4 -4
  50. package/dist/cjs/components/color-view/color-view.st.css.js.map +1 -1
  51. package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js +3 -3
  52. package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
  53. package/dist/cjs/components/document/cell-document-edit.js +25 -26
  54. package/dist/cjs/components/document/cell-document-edit.js.map +1 -1
  55. package/dist/cjs/components/document/form-document-field.st.css.js +7 -7
  56. package/dist/cjs/components/document/form-document-field.st.css.js.map +1 -1
  57. package/dist/cjs/components/exclamation/exclamation.st.css.js +5 -5
  58. package/dist/cjs/components/exclamation/exclamation.st.css.js.map +1 -1
  59. package/dist/cjs/components/field-validation-settings/field-validation-settings-input.st.css.js +3 -3
  60. package/dist/cjs/components/field-validation-settings/field-validation-settings-input.st.css.js.map +1 -1
  61. package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js +5 -5
  62. package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
  63. package/dist/cjs/components/image/cell-image-edit.js +22 -23
  64. package/dist/cjs/components/image/cell-image-edit.js.map +1 -1
  65. package/dist/cjs/components/image/image-preview-popover.js +77 -0
  66. package/dist/cjs/components/image/image-preview-popover.js.map +1 -0
  67. package/dist/cjs/components/image/image-thumbnail.js +14 -12
  68. package/dist/cjs/components/image/image-thumbnail.js.map +1 -1
  69. package/dist/cjs/components/image/image-view.js +9 -57
  70. package/dist/cjs/components/image/image-view.js.map +1 -1
  71. package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js +3 -3
  72. package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js.map +1 -1
  73. package/dist/cjs/components/index.js +6 -0
  74. package/dist/cjs/components/index.js.map +1 -1
  75. package/dist/cjs/components/media-control/cell-media-edit-shell.js +19 -31
  76. package/dist/cjs/components/media-control/cell-media-edit-shell.js.map +1 -1
  77. package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js +2 -2
  78. package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
  79. package/dist/cjs/components/media-control/paste-url-button.st.css.js +4 -4
  80. package/dist/cjs/components/media-control/paste-url-button.st.css.js.map +1 -1
  81. package/dist/cjs/components/media-control/use-cell-media-edit.js +51 -23
  82. package/dist/cjs/components/media-control/use-cell-media-edit.js.map +1 -1
  83. package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js +10 -10
  84. package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
  85. package/dist/cjs/components/media-image/media-image.st.css.js +4 -4
  86. package/dist/cjs/components/media-image/media-image.st.css.js.map +1 -1
  87. package/dist/cjs/components/media-image/overlays/overlay.st.css.js +3 -3
  88. package/dist/cjs/components/media-image/overlays/overlay.st.css.js.map +1 -1
  89. package/dist/cjs/components/media-image-field/cell-media-image-edit.js +530 -0
  90. package/dist/cjs/components/media-image-field/cell-media-image-edit.js.map +1 -0
  91. package/dist/cjs/components/media-image-field/cell-media-image-edit.st.css +63 -0
  92. package/dist/cjs/components/media-image-field/cell-media-image-edit.st.css.js +33 -0
  93. package/dist/cjs/components/media-image-field/cell-media-image-edit.st.css.js.map +1 -0
  94. package/dist/cjs/components/media-image-field/form-media-image-field.js +180 -0
  95. package/dist/cjs/components/media-image-field/form-media-image-field.js.map +1 -0
  96. package/dist/cjs/components/media-image-field/form-media-image-field.uni.driver.js +34 -0
  97. package/dist/cjs/components/media-image-field/form-media-image-field.uni.driver.js.map +1 -0
  98. package/dist/cjs/components/media-image-field/form-media-image-input.js +64 -0
  99. package/dist/cjs/components/media-image-field/form-media-image-input.js.map +1 -0
  100. package/dist/cjs/components/media-image-field/index.js +28 -0
  101. package/dist/cjs/components/media-image-field/index.js.map +1 -0
  102. package/dist/cjs/components/media-image-field/media-image-view.js +114 -0
  103. package/dist/cjs/components/media-image-field/media-image-view.js.map +1 -0
  104. package/dist/cjs/components/media-image-field/media-image-view.st.css +16 -0
  105. package/dist/cjs/components/media-image-field/media-image-view.st.css.js +27 -0
  106. package/dist/cjs/components/media-image-field/media-image-view.st.css.js.map +1 -0
  107. package/dist/cjs/components/media-image-field/media-image-view.uni.driver.js +18 -0
  108. package/dist/cjs/components/media-image-field/media-image-view.uni.driver.js.map +1 -0
  109. package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  110. package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
  111. package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js +3 -3
  112. package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js.map +1 -1
  113. package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
  114. package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  115. package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js +2 -2
  116. package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js.map +1 -1
  117. package/dist/cjs/components/reference/cell-reference-input.st.css.js +3 -3
  118. package/dist/cjs/components/reference/cell-reference-input.st.css.js.map +1 -1
  119. package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +4 -4
  120. package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
  121. package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +3 -3
  122. package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  123. package/dist/cjs/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  124. package/dist/cjs/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
  125. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
  126. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
  127. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
  128. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
  129. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  130. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
  131. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +7 -7
  132. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
  133. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +5 -5
  134. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  135. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
  136. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
  137. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
  138. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
  139. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
  140. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  141. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
  142. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  143. package/dist/cjs/components/text/text-view.st.css.js +3 -3
  144. package/dist/cjs/components/text/text-view.st.css.js.map +1 -1
  145. package/dist/cjs/services/translations.js.map +1 -1
  146. package/dist/cjs/styles.global.css +1 -1
  147. package/dist/cjs/types/index.js +6 -0
  148. package/dist/cjs/types/index.js.map +1 -1
  149. package/dist/cjs/types/media-image.js +4 -0
  150. package/dist/cjs/types/media-image.js.map +1 -0
  151. package/dist/cjs/utils/index.js +6 -0
  152. package/dist/cjs/utils/index.js.map +1 -1
  153. package/dist/cjs/utils/media-image-value.js +95 -0
  154. package/dist/cjs/utils/media-image-value.js.map +1 -0
  155. package/dist/esm/assets/locale/messages_ar.json +2 -0
  156. package/dist/esm/assets/locale/messages_bg.json +2 -0
  157. package/dist/esm/assets/locale/messages_ca.json +2 -0
  158. package/dist/esm/assets/locale/messages_cs.json +2 -0
  159. package/dist/esm/assets/locale/messages_da.json +2 -0
  160. package/dist/esm/assets/locale/messages_de.json +2 -0
  161. package/dist/esm/assets/locale/messages_el.json +2 -0
  162. package/dist/esm/assets/locale/messages_en.json +2 -0
  163. package/dist/esm/assets/locale/messages_es.json +2 -0
  164. package/dist/esm/assets/locale/messages_fi.json +2 -0
  165. package/dist/esm/assets/locale/messages_fr.json +2 -0
  166. package/dist/esm/assets/locale/messages_he.json +2 -0
  167. package/dist/esm/assets/locale/messages_hi.json +2 -0
  168. package/dist/esm/assets/locale/messages_hu.json +2 -0
  169. package/dist/esm/assets/locale/messages_id.json +2 -0
  170. package/dist/esm/assets/locale/messages_it.json +2 -0
  171. package/dist/esm/assets/locale/messages_ja.json +2 -0
  172. package/dist/esm/assets/locale/messages_ko.json +2 -0
  173. package/dist/esm/assets/locale/messages_lt.json +2 -0
  174. package/dist/esm/assets/locale/messages_ms.json +2 -0
  175. package/dist/esm/assets/locale/messages_nl.json +2 -0
  176. package/dist/esm/assets/locale/messages_no.json +2 -0
  177. package/dist/esm/assets/locale/messages_pl.json +2 -0
  178. package/dist/esm/assets/locale/messages_pt.json +2 -0
  179. package/dist/esm/assets/locale/messages_ro.json +2 -0
  180. package/dist/esm/assets/locale/messages_ru.json +2 -0
  181. package/dist/esm/assets/locale/messages_sk.json +2 -0
  182. package/dist/esm/assets/locale/messages_sl.json +2 -0
  183. package/dist/esm/assets/locale/messages_sv.json +2 -0
  184. package/dist/esm/assets/locale/messages_th.json +2 -0
  185. package/dist/esm/assets/locale/messages_tl.json +2 -0
  186. package/dist/esm/assets/locale/messages_tr.json +2 -0
  187. package/dist/esm/assets/locale/messages_uk.json +2 -0
  188. package/dist/esm/assets/locale/messages_vi.json +2 -0
  189. package/dist/esm/assets/locale/messages_zh.json +2 -0
  190. package/dist/esm/assets/locale/version_file +1 -1
  191. package/dist/esm/components/address/input/address-input.st.css.js +2 -2
  192. package/dist/esm/components/address/input/address-input.st.css.js.map +1 -1
  193. package/dist/esm/components/audio/actions/actions-menu/actions-menu.st.css.js +2 -2
  194. package/dist/esm/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
  195. package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js +2 -2
  196. package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
  197. package/dist/esm/components/audio/audio-player/audio-player.st.css.js +2 -2
  198. package/dist/esm/components/audio/audio-player/audio-player.st.css.js.map +1 -1
  199. package/dist/esm/components/audio/cell-audio-edit.js +1 -1
  200. package/dist/esm/components/audio/cell-audio-edit.js.map +1 -1
  201. package/dist/esm/components/color-view/cell-color-view.st.css.js +2 -2
  202. package/dist/esm/components/color-view/cell-color-view.st.css.js.map +1 -1
  203. package/dist/esm/components/color-view/color-view.st.css.js +2 -2
  204. package/dist/esm/components/delete-dialog/delete-dialog.st.css.js +2 -2
  205. package/dist/esm/components/document/cell-document-edit.js +1 -1
  206. package/dist/esm/components/document/cell-document-edit.js.map +1 -1
  207. package/dist/esm/components/document/form-document-field.st.css.js +2 -2
  208. package/dist/esm/components/document/form-document-field.st.css.js.map +1 -1
  209. package/dist/esm/components/exclamation/exclamation.st.css.js +2 -2
  210. package/dist/esm/components/field-validation-settings/field-validation-settings-input.st.css.js +2 -2
  211. package/dist/esm/components/highlighted-text/highlighted-text.st.css.js +3 -3
  212. package/dist/esm/components/image/cell-image-edit.js +1 -1
  213. package/dist/esm/components/image/cell-image-edit.js.map +1 -1
  214. package/dist/esm/components/image/image-preview-popover.js +16 -0
  215. package/dist/esm/components/image/image-preview-popover.js.map +1 -0
  216. package/dist/esm/components/image/image-thumbnail.js +5 -6
  217. package/dist/esm/components/image/image-thumbnail.js.map +1 -1
  218. package/dist/esm/components/image/image-view.js +4 -13
  219. package/dist/esm/components/image/image-view.js.map +1 -1
  220. package/dist/esm/components/image/thumbnail-replace-overlay.st.css.js +2 -2
  221. package/dist/esm/components/index.js +1 -0
  222. package/dist/esm/components/index.js.map +1 -1
  223. package/dist/esm/components/media-control/cell-media-edit-shell.js +5 -7
  224. package/dist/esm/components/media-control/cell-media-edit-shell.js.map +1 -1
  225. package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js +2 -2
  226. package/dist/esm/components/media-control/paste-url-button.st.css.js +2 -2
  227. package/dist/esm/components/media-control/use-cell-media-edit.js +48 -30
  228. package/dist/esm/components/media-control/use-cell-media-edit.js.map +1 -1
  229. package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js +2 -2
  230. package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
  231. package/dist/esm/components/media-image/media-image.st.css.js +3 -3
  232. package/dist/esm/components/media-image/media-image.st.css.js.map +1 -1
  233. package/dist/esm/components/media-image/overlays/overlay.st.css.js +2 -2
  234. package/dist/esm/components/media-image/overlays/overlay.st.css.js.map +1 -1
  235. package/dist/esm/components/media-image-field/cell-media-image-edit.js +159 -0
  236. package/dist/esm/components/media-image-field/cell-media-image-edit.js.map +1 -0
  237. package/dist/esm/components/media-image-field/cell-media-image-edit.st.css +63 -0
  238. package/dist/esm/components/media-image-field/cell-media-image-edit.st.css.js +15 -0
  239. package/dist/esm/components/media-image-field/cell-media-image-edit.st.css.js.map +1 -0
  240. package/dist/esm/components/media-image-field/form-media-image-field.js +59 -0
  241. package/dist/esm/components/media-image-field/form-media-image-field.js.map +1 -0
  242. package/dist/esm/components/media-image-field/form-media-image-field.uni.driver.js +27 -0
  243. package/dist/esm/components/media-image-field/form-media-image-field.uni.driver.js.map +1 -0
  244. package/dist/esm/components/media-image-field/form-media-image-input.js +40 -0
  245. package/dist/esm/components/media-image-field/form-media-image-input.js.map +1 -0
  246. package/dist/esm/components/media-image-field/index.js +5 -0
  247. package/dist/esm/components/media-image-field/index.js.map +1 -0
  248. package/dist/esm/components/media-image-field/media-image-view.js +34 -0
  249. package/dist/esm/components/media-image-field/media-image-view.js.map +1 -0
  250. package/dist/esm/components/media-image-field/media-image-view.st.css +16 -0
  251. package/dist/esm/components/media-image-field/media-image-view.st.css.js +15 -0
  252. package/dist/esm/components/media-image-field/media-image-view.st.css.js.map +1 -0
  253. package/dist/esm/components/media-image-field/media-image-view.uni.driver.js +14 -0
  254. package/dist/esm/components/media-image-field/media-image-view.uni.driver.js.map +1 -0
  255. package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  256. package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
  257. package/dist/esm/components/multi-document/cell-multi-document-edit.st.css.js +2 -2
  258. package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js +2 -2
  259. package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  260. package/dist/esm/components/reference/cell-multi-reference-input.st.css.js +2 -2
  261. package/dist/esm/components/reference/cell-reference-input.st.css.js +2 -2
  262. package/dist/esm/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +2 -2
  263. package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +2 -2
  264. package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  265. package/dist/esm/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  266. package/dist/esm/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
  267. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +2 -2
  268. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +2 -2
  269. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  270. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +2 -2
  271. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +2 -2
  272. package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +2 -2
  273. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +2 -2
  274. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +2 -2
  275. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  276. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +2 -2
  277. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  278. package/dist/esm/components/text/text-view.st.css.js +2 -2
  279. package/dist/esm/styles.global.css +1 -1
  280. package/dist/esm/types/index.js +1 -0
  281. package/dist/esm/types/index.js.map +1 -1
  282. package/dist/esm/types/media-image.js +2 -0
  283. package/dist/esm/types/media-image.js.map +1 -0
  284. package/dist/esm/utils/index.js +1 -0
  285. package/dist/esm/utils/index.js.map +1 -1
  286. package/dist/esm/utils/media-image-value.js +65 -0
  287. package/dist/esm/utils/media-image-value.js.map +1 -0
  288. package/dist/types/components/address/input/address-input.st.css.d.ts.map +1 -1
  289. package/dist/types/components/audio/actions/actions-menu/actions-menu.st.css.d.ts.map +1 -1
  290. package/dist/types/components/audio/audio-field/form-audio-field.st.css.d.ts.map +1 -1
  291. package/dist/types/components/audio/audio-player/audio-player.st.css.d.ts.map +1 -1
  292. package/dist/types/components/audio/cell-audio-edit.d.ts.map +1 -1
  293. package/dist/types/components/color-view/cell-color-view.st.css.d.ts.map +1 -1
  294. package/dist/types/components/document/cell-document-edit.d.ts.map +1 -1
  295. package/dist/types/components/document/form-document-field.st.css.d.ts.map +1 -1
  296. package/dist/types/components/image/cell-image-edit.d.ts.map +1 -1
  297. package/dist/types/components/image/image-preview-popover.d.ts +10 -0
  298. package/dist/types/components/image/image-preview-popover.d.ts.map +1 -0
  299. package/dist/types/components/image/image-thumbnail.d.ts +3 -0
  300. package/dist/types/components/image/image-thumbnail.d.ts.map +1 -1
  301. package/dist/types/components/image/image-view.d.ts.map +1 -1
  302. package/dist/types/components/index.d.ts +1 -0
  303. package/dist/types/components/index.d.ts.map +1 -1
  304. package/dist/types/components/media-control/cell-media-edit-shell.d.ts +1 -2
  305. package/dist/types/components/media-control/cell-media-edit-shell.d.ts.map +1 -1
  306. package/dist/types/components/media-control/use-cell-media-edit.d.ts +20 -4
  307. package/dist/types/components/media-control/use-cell-media-edit.d.ts.map +1 -1
  308. package/dist/types/components/media-gallery/form-media-gallery-field.st.css.d.ts.map +1 -1
  309. package/dist/types/components/media-image/media-image.st.css.d.ts.map +1 -1
  310. package/dist/types/components/media-image/overlays/overlay.st.css.d.ts.map +1 -1
  311. package/dist/types/components/media-image-field/cell-media-image-edit.d.ts +26 -0
  312. package/dist/types/components/media-image-field/cell-media-image-edit.d.ts.map +1 -0
  313. package/dist/types/components/media-image-field/cell-media-image-edit.st.css.d.ts +24 -0
  314. package/dist/types/components/media-image-field/cell-media-image-edit.st.css.d.ts.map +1 -0
  315. package/dist/types/components/media-image-field/form-media-image-field.d.ts +32 -0
  316. package/dist/types/components/media-image-field/form-media-image-field.d.ts.map +1 -0
  317. package/dist/types/components/media-image-field/form-media-image-field.uni.driver.d.ts +22 -0
  318. package/dist/types/components/media-image-field/form-media-image-field.uni.driver.d.ts.map +1 -0
  319. package/dist/types/components/media-image-field/form-media-image-input.d.ts +9 -0
  320. package/dist/types/components/media-image-field/form-media-image-input.d.ts.map +1 -0
  321. package/dist/types/components/media-image-field/index.d.ts +5 -0
  322. package/dist/types/components/media-image-field/index.d.ts.map +1 -0
  323. package/dist/types/components/media-image-field/media-image-view.d.ts +13 -0
  324. package/dist/types/components/media-image-field/media-image-view.d.ts.map +1 -0
  325. package/dist/types/components/media-image-field/media-image-view.st.css.d.ts +18 -0
  326. package/dist/types/components/media-image-field/media-image-view.st.css.d.ts.map +1 -0
  327. package/dist/types/components/media-image-field/media-image-view.uni.driver.d.ts +12 -0
  328. package/dist/types/components/media-image-field/media-image-view.uni.driver.d.ts.map +1 -0
  329. package/dist/types/components/media-tag/web-media-tag/media-tag.st.css.d.ts.map +1 -1
  330. package/dist/types/components/multi-document/multi-document-input/form-multi-document.st.css.d.ts.map +1 -1
  331. package/dist/types/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.d.ts.map +1 -1
  332. package/dist/types/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.d.ts.map +1 -1
  333. package/dist/types/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.d.ts.map +1 -1
  334. package/dist/types/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.d.ts.map +1 -1
  335. package/dist/types/services/translations.d.ts +1 -1
  336. package/dist/types/services/translations.d.ts.map +1 -1
  337. package/dist/types/types/index.d.ts +1 -0
  338. package/dist/types/types/index.d.ts.map +1 -1
  339. package/dist/types/types/media-image.d.ts +23 -0
  340. package/dist/types/types/media-image.d.ts.map +1 -0
  341. package/dist/types/utils/index.d.ts +1 -0
  342. package/dist/types/utils/index.d.ts.map +1 -1
  343. package/dist/types/utils/media-image-value.d.ts +31 -0
  344. package/dist/types/utils/media-image-value.d.ts.map +1 -0
  345. package/package.json +5 -5
  346. package/src/__tests__/components/media-image-field/form-media-image-input.spec.tsx +130 -0
  347. package/src/__tests__/components/media-image-field/media-image-view.spec.tsx +51 -0
  348. package/src/__tests__/utils/media-image-value.spec.ts +153 -0
  349. package/src/assets/locale/messages_ar.json +2 -0
  350. package/src/assets/locale/messages_bg.json +2 -0
  351. package/src/assets/locale/messages_ca.json +2 -0
  352. package/src/assets/locale/messages_cs.json +2 -0
  353. package/src/assets/locale/messages_da.json +2 -0
  354. package/src/assets/locale/messages_de.json +2 -0
  355. package/src/assets/locale/messages_el.json +2 -0
  356. package/src/assets/locale/messages_en.json +2 -0
  357. package/src/assets/locale/messages_es.json +2 -0
  358. package/src/assets/locale/messages_fi.json +2 -0
  359. package/src/assets/locale/messages_fr.json +2 -0
  360. package/src/assets/locale/messages_he.json +2 -0
  361. package/src/assets/locale/messages_hi.json +2 -0
  362. package/src/assets/locale/messages_hu.json +2 -0
  363. package/src/assets/locale/messages_id.json +2 -0
  364. package/src/assets/locale/messages_it.json +2 -0
  365. package/src/assets/locale/messages_ja.json +2 -0
  366. package/src/assets/locale/messages_ko.json +2 -0
  367. package/src/assets/locale/messages_lt.json +2 -0
  368. package/src/assets/locale/messages_ms.json +2 -0
  369. package/src/assets/locale/messages_nl.json +2 -0
  370. package/src/assets/locale/messages_no.json +2 -0
  371. package/src/assets/locale/messages_pl.json +2 -0
  372. package/src/assets/locale/messages_pt.json +2 -0
  373. package/src/assets/locale/messages_ro.json +2 -0
  374. package/src/assets/locale/messages_ru.json +2 -0
  375. package/src/assets/locale/messages_sk.json +2 -0
  376. package/src/assets/locale/messages_sl.json +2 -0
  377. package/src/assets/locale/messages_sv.json +2 -0
  378. package/src/assets/locale/messages_th.json +2 -0
  379. package/src/assets/locale/messages_tl.json +2 -0
  380. package/src/assets/locale/messages_tr.json +2 -0
  381. package/src/assets/locale/messages_uk.json +2 -0
  382. package/src/assets/locale/messages_vi.json +2 -0
  383. package/src/assets/locale/messages_zh.json +2 -0
  384. package/src/assets/locale/version_file +1 -1
  385. package/src/components/address/input/address-input.st.css.ts +2 -2
  386. package/src/components/audio/actions/actions-menu/actions-menu.st.css.ts +2 -2
  387. package/src/components/audio/audio-field/form-audio-field.st.css.ts +2 -2
  388. package/src/components/audio/audio-player/audio-player.st.css.ts +2 -2
  389. package/src/components/audio/cell-audio-edit.tsx +0 -1
  390. package/src/components/color-view/cell-color-view.st.css.ts +2 -2
  391. package/src/components/color-view/color-view.st.css.ts +2 -2
  392. package/src/components/delete-dialog/delete-dialog.st.css.ts +2 -2
  393. package/src/components/document/cell-document-edit.tsx +0 -1
  394. package/src/components/document/form-document-field.st.css.ts +2 -2
  395. package/src/components/exclamation/exclamation.st.css.ts +2 -2
  396. package/src/components/field-validation-settings/field-validation-settings-input.st.css.ts +2 -2
  397. package/src/components/highlighted-text/highlighted-text.st.css.ts +3 -3
  398. package/src/components/image/cell-image-edit.tsx +0 -1
  399. package/src/components/image/image-preview-popover.tsx +52 -0
  400. package/src/components/image/image-thumbnail.tsx +12 -7
  401. package/src/components/image/image-view.tsx +16 -42
  402. package/src/components/image/thumbnail-replace-overlay.st.css.ts +2 -2
  403. package/src/components/index.ts +1 -0
  404. package/src/components/media-control/cell-media-edit-shell.st.css.ts +2 -2
  405. package/src/components/media-control/cell-media-edit-shell.tsx +7 -20
  406. package/src/components/media-control/paste-url-button.st.css.ts +2 -2
  407. package/src/components/media-control/use-cell-media-edit.ts +98 -28
  408. package/src/components/media-gallery/form-media-gallery-field.st.css.ts +2 -2
  409. package/src/components/media-image/media-image.st.css.ts +3 -3
  410. package/src/components/media-image/overlays/overlay.st.css.ts +2 -2
  411. package/src/components/media-image-field/cell-media-image-edit.st.css +63 -0
  412. package/src/components/media-image-field/cell-media-image-edit.st.css.ts +25 -0
  413. package/src/components/media-image-field/cell-media-image-edit.tsx +402 -0
  414. package/src/components/media-image-field/form-media-image-field.tsx +165 -0
  415. package/src/components/media-image-field/form-media-image-field.uni.driver.ts +42 -0
  416. package/src/components/media-image-field/form-media-image-input.tsx +56 -0
  417. package/src/components/media-image-field/index.ts +4 -0
  418. package/src/components/media-image-field/media-image-view.st.css +16 -0
  419. package/src/components/media-image-field/media-image-view.st.css.ts +25 -0
  420. package/src/components/media-image-field/media-image-view.tsx +95 -0
  421. package/src/components/media-image-field/media-image-view.uni.driver.ts +18 -0
  422. package/src/components/media-tag/web-media-tag/media-tag.st.css.ts +2 -2
  423. package/src/components/multi-document/cell-multi-document-edit.st.css.ts +2 -2
  424. package/src/components/multi-document/multi-document-input/form-multi-document.st.css.ts +2 -2
  425. package/src/components/reference/cell-multi-reference-input.st.css.ts +2 -2
  426. package/src/components/reference/cell-reference-input.st.css.ts +2 -2
  427. package/src/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.ts +2 -2
  428. package/src/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.ts +2 -2
  429. package/src/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.ts +2 -2
  430. package/src/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.ts +2 -2
  431. package/src/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.ts +2 -2
  432. package/src/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.ts +2 -2
  433. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.ts +2 -2
  434. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.ts +2 -2
  435. package/src/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.ts +2 -2
  436. package/src/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.ts +2 -2
  437. package/src/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.ts +2 -2
  438. package/src/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.ts +2 -2
  439. package/src/components/text/text-view.st.css.ts +2 -2
  440. package/src/services/translations.ts +2 -0
  441. package/src/styles.global.css +1 -1
  442. package/src/types/index.ts +1 -0
  443. package/src/types/media-image.ts +24 -0
  444. package/src/utils/index.ts +1 -0
  445. package/src/utils/media-image-value.ts +99 -0
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace = exports.layers = exports.keyframes = exports.cssStates = exports.containers = exports.classes = void 0;
5
+ var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
+ // @ts-nocheck
7
+
8
+ var _namespace_ = "cellmediaimageedit4241529426";
9
+ var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
+ var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
+ var style = exports.style = _style_;
12
+ var st = exports.st = _style_;
13
+ var namespace = exports.namespace = _namespace_;
14
+ var classes = exports.classes = {
15
+ "root": "cellmediaimageedit4241529426__root",
16
+ "view": "cellmediaimageedit4241529426__view",
17
+ "anchor": "cellmediaimageedit4241529426__anchor",
18
+ "anchorBox": "cellmediaimageedit4241529426__anchorBox",
19
+ "popoverContent": "cellmediaimageedit4241529426__popoverContent",
20
+ "image": "cellmediaimageedit4241529426__image",
21
+ "imageActions": "cellmediaimageedit4241529426__imageActions"
22
+ };
23
+ var keyframes = exports.keyframes = {};
24
+ var layers = exports.layers = {};
25
+ var containers = exports.containers = {};
26
+ var stVars = exports.stVars = {};
27
+ var vars = exports.vars = {
28
+ "wds-color-fill-transparent-primary": "--wds-color-fill-transparent-primary",
29
+ "wsr-color-D10": "--wsr-color-D10",
30
+ "wds-image-border-radius-default": "--wds-image-border-radius-default",
31
+ "wds-space-100": "--wds-space-100"
32
+ };
33
+ //# sourceMappingURL=cell-media-image-edit.st.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/media-image-field/cell-media-image-edit.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"cellmediaimageedit4241529426\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"cellmediaimageedit4241529426__root\",\"view\":\"cellmediaimageedit4241529426__view\",\"anchor\":\"cellmediaimageedit4241529426__anchor\",\"anchorBox\":\"cellmediaimageedit4241529426__anchorBox\",\"popoverContent\":\"cellmediaimageedit4241529426__popoverContent\",\"image\":\"cellmediaimageedit4241529426__image\",\"imageActions\":\"cellmediaimageedit4241529426__imageActions\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-color-fill-transparent-primary\":\"--wds-color-fill-transparent-primary\",\"wsr-color-D10\":\"--wsr-color-D10\",\"wds-image-border-radius-default\":\"--wds-image-border-radius-default\",\"wds-space-100\":\"--wds-space-100\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,8BAA8B;AAChD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,oCAAoC;EAAC,MAAM,EAAC,oCAAoC;EAAC,QAAQ,EAAC,sCAAsC;EAAC,WAAW,EAAC,yCAAyC;EAAC,gBAAgB,EAAC,8CAA8C;EAAC,OAAO,EAAC,qCAAqC;EAAC,cAAc,EAAC;AAA4C,CAAC;AACvX,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,oCAAoC,EAAC,sCAAsC;EAAC,eAAe,EAAC,iBAAiB;EAAC,iCAAiC,EAAC,mCAAmC;EAAC,eAAe,EAAC;AAAiB,CAAC","ignoreList":[]}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.FormMediaImageField = exports.ControlledMediaImageInput = void 0;
6
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _designSystem = require("@wix/design-system");
9
+ var _react2 = require("@wix/bex-core/react");
10
+ var _hooks = require("../../hooks");
11
+ var _getImageSource = require("../../utils/get-image-source");
12
+ var _getImageUrl = require("../../utils/get-image-url");
13
+ var _mediaConstants = require("../../utils/media-constants");
14
+ var _mediaImageValue = require("../../utils/media-image-value");
15
+ var _mediaUtils = require("../../utils/media-utils");
16
+ var _mediaControl = require("../media-control");
17
+ var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/fields/dist/cjs/components/media-image-field/form-media-image-field.tsx";
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
19
+ /**
20
+ * The entity page input of a `MEDIA_IMAGE` field: the image, and an alt text
21
+ * input to its right once there is an image. A pick fills an empty alt text
22
+ * from the file name; a replace keeps the current one.
23
+ */
24
+ const FormMediaImageField = ({
25
+ data,
26
+ onChange,
27
+ onBlur,
28
+ readOnly,
29
+ autoFocus,
30
+ dataHook,
31
+ inputRef: forwardedRef,
32
+ imageFormFieldProps
33
+ }) => {
34
+ const {
35
+ translate
36
+ } = (0, _react2.useWixPatternsContainer)();
37
+ const {
38
+ t
39
+ } = (0, _hooks.useTranslations)();
40
+ const isMobile = (0, _react2.useIsMobile)();
41
+ const image = (0, _mediaImageValue.toMediaImageValue)(data);
42
+ // The media manager calls back after it closes, so it reads the value from
43
+ // here rather than from the render that opened it.
44
+ const imageRef = (0, _react.useRef)(image);
45
+ imageRef.current = image;
46
+ const [inputRef, setInputRef] = (0, _hooks.useMergedRef)(forwardedRef);
47
+ const handlePick = (0, _react.useCallback)(uri => {
48
+ const next = (0, _mediaImageValue.fromMediaManagerPick)(uri, imageRef.current);
49
+ if (next) {
50
+ onChange(next);
51
+ }
52
+ }, [onChange]);
53
+ const {
54
+ callMedia,
55
+ onMediaLoad
56
+ } = (0, _mediaControl.useMediaControl)({
57
+ mediaType: _mediaUtils.MEDIA_TYPES.IMAGE,
58
+ value: (0, _getImageSource.getImageSource)(image),
59
+ onChange: handlePick,
60
+ autoFocus,
61
+ readOnly,
62
+ onBlur,
63
+ inputRef,
64
+ initialLoading: true
65
+ });
66
+ const canEdit = !isMobile && !readOnly;
67
+ const handleAltTextChange = e => {
68
+ if (image) {
69
+ onChange((0, _mediaImageValue.withAltText)(image, e.target.value));
70
+ }
71
+ };
72
+ return /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
73
+ dataHook: dataHook,
74
+ gap: "SP4",
75
+ width: "100%",
76
+ __self: void 0,
77
+ __source: {
78
+ fileName: _jsxFileName,
79
+ lineNumber: 100,
80
+ columnNumber: 5
81
+ }
82
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
83
+ width: "100%",
84
+ maxWidth: _mediaConstants.MEDIA_MAX_WIDTH,
85
+ flexShrink: 0,
86
+ __self: void 0,
87
+ __source: {
88
+ fileName: _jsxFileName,
89
+ lineNumber: 101,
90
+ columnNumber: 7
91
+ }
92
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.FormField, (0, _extends2.default)({}, imageFormFieldProps, {
93
+ dataHook: "media-image-field-image",
94
+ __self: void 0,
95
+ __source: {
96
+ fileName: _jsxFileName,
97
+ lineNumber: 102,
98
+ columnNumber: 9
99
+ }
100
+ }), /*#__PURE__*/_react.default.createElement(_designSystem.ImageViewer, {
101
+ ref: setInputRef,
102
+ dataHook: "media-image-field-viewer",
103
+ imageUrl: image ? (0, _getImageUrl.getImageUrl)(image) : undefined,
104
+ onImageLoad: onMediaLoad,
105
+ onAddImage: canEdit ? callMedia : undefined,
106
+ onUpdateImage: canEdit ? callMedia : undefined,
107
+ disabled: image ? Boolean(readOnly) : !canEdit,
108
+ showUpdateButton: canEdit,
109
+ showRemoveButton: !readOnly,
110
+ updateImageInfo: translate('cairo.replace-image.tooltip'),
111
+ removeImageInfo: translate('cairo.remove-image.tooltip'),
112
+ addImageInfo: translate('cairo.add-image.tooltip'),
113
+ height: _mediaConstants.MEDIA_HEIGHT,
114
+ width: "100%",
115
+ fit: "cover",
116
+ onRemoveImage: () => onChange(null),
117
+ __self: void 0,
118
+ __source: {
119
+ fileName: _jsxFileName,
120
+ lineNumber: 103,
121
+ columnNumber: 11
122
+ }
123
+ }))), image && /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
124
+ direction: "vertical",
125
+ flexGrow: 1,
126
+ minWidth: "0",
127
+ __self: void 0,
128
+ __source: {
129
+ fileName: _jsxFileName,
130
+ lineNumber: 124,
131
+ columnNumber: 9
132
+ }
133
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.FormField, {
134
+ label: t('CMS.image.altText.label'),
135
+ __self: void 0,
136
+ __source: {
137
+ fileName: _jsxFileName,
138
+ lineNumber: 125,
139
+ columnNumber: 11
140
+ }
141
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.Input, {
142
+ dataHook: "media-image-field-alt-input",
143
+ value: image.altText ?? '',
144
+ placeholder: t('CMS.image.altText.inputPlaceholder'),
145
+ onChange: handleAltTextChange,
146
+ readOnly: readOnly,
147
+ __self: void 0,
148
+ __source: {
149
+ fileName: _jsxFileName,
150
+ lineNumber: 126,
151
+ columnNumber: 13
152
+ }
153
+ }))));
154
+ };
155
+ exports.FormMediaImageField = FormMediaImageField;
156
+ FormMediaImageField.displayName = 'FormMediaImageField';
157
+ const ControlledMediaImageInput = ({
158
+ data,
159
+ onChange,
160
+ onBlur,
161
+ readOnly,
162
+ autoFocus,
163
+ dataHook
164
+ }) => /*#__PURE__*/_react.default.createElement(FormMediaImageField, {
165
+ data: data,
166
+ onChange: onChange,
167
+ onBlur: onBlur,
168
+ readOnly: readOnly,
169
+ autoFocus: autoFocus,
170
+ dataHook: dataHook,
171
+ __self: void 0,
172
+ __source: {
173
+ fileName: _jsxFileName,
174
+ lineNumber: 155,
175
+ columnNumber: 3
176
+ }
177
+ });
178
+ exports.ControlledMediaImageInput = ControlledMediaImageInput;
179
+ ControlledMediaImageInput.displayName = 'ControlledMediaImageInput';
180
+ //# sourceMappingURL=form-media-image-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_react2","_hooks","_getImageSource","_getImageUrl","_mediaConstants","_mediaImageValue","_mediaUtils","_mediaControl","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FormMediaImageField","data","onChange","onBlur","readOnly","autoFocus","dataHook","inputRef","forwardedRef","imageFormFieldProps","translate","useWixPatternsContainer","useTranslations","isMobile","useIsMobile","image","toMediaImageValue","imageRef","useRef","current","setInputRef","useMergedRef","handlePick","useCallback","uri","next","fromMediaManagerPick","callMedia","onMediaLoad","useMediaControl","mediaType","MEDIA_TYPES","IMAGE","value","getImageSource","initialLoading","canEdit","handleAltTextChange","withAltText","target","createElement","Box","gap","width","__self","__source","fileName","lineNumber","columnNumber","maxWidth","MEDIA_MAX_WIDTH","flexShrink","FormField","_extends2","ImageViewer","ref","imageUrl","getImageUrl","undefined","onImageLoad","onAddImage","onUpdateImage","disabled","Boolean","showUpdateButton","showRemoveButton","updateImageInfo","removeImageInfo","addImageInfo","height","MEDIA_HEIGHT","fit","onRemoveImage","direction","flexGrow","minWidth","label","Input","altText","placeholder","exports","displayName","ControlledMediaImageInput"],"sources":["../../../../src/components/media-image-field/form-media-image-field.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport React, { useCallback, useRef } from 'react';\nimport type { FormFieldProps } from '@wix/design-system';\nimport { Box, FormField, ImageViewer, Input } from '@wix/design-system';\nimport { useIsMobile, useWixPatternsContainer } from '@wix/bex-core/react';\n\nimport type { ControlledInputProps } from '../../types/controlled-input';\nimport type { MediaImageValue } from '../../types/media-image';\nimport { useMergedRef, useTranslations } from '../../hooks';\nimport { getImageSource } from '../../utils/get-image-source';\nimport { getImageUrl } from '../../utils/get-image-url';\nimport { MEDIA_HEIGHT, MEDIA_MAX_WIDTH } from '../../utils/media-constants';\nimport {\n fromMediaManagerPick,\n toMediaImageValue,\n withAltText,\n} from '../../utils/media-image-value';\nimport { MEDIA_TYPES } from '../../utils/media-utils';\nimport { useMediaControl } from '../media-control';\n\ninterface ImageViewerActions {\n focus: () => void;\n}\n\nexport interface FormMediaImageFieldProps {\n /** A `MEDIA_IMAGE` value. */\n data?: unknown;\n onChange: (value: MediaImageValue | null) => void;\n /** Fires when the media manager closes, whether or not a file was picked. */\n onBlur?: () => void;\n readOnly?: boolean;\n autoFocus?: boolean;\n dataHook?: string;\n inputRef?: React.Ref<ImageViewerActions>;\n /** The FormField around the image, e.g. the field's label and its error.\n * ImageViewer takes its error styling from it. */\n imageFormFieldProps?: Pick<\n FormFieldProps,\n 'label' | 'required' | 'status' | 'statusMessage'\n >;\n}\n\n/**\n * The entity page input of a `MEDIA_IMAGE` field: the image, and an alt text\n * input to its right once there is an image. A pick fills an empty alt text\n * from the file name; a replace keeps the current one.\n */\nexport const FormMediaImageField: FC<FormMediaImageFieldProps> = ({\n data,\n onChange,\n onBlur,\n readOnly,\n autoFocus,\n dataHook,\n inputRef: forwardedRef,\n imageFormFieldProps,\n}) => {\n const { translate } = useWixPatternsContainer();\n const { t } = useTranslations();\n const isMobile = useIsMobile();\n const image = toMediaImageValue(data);\n // The media manager calls back after it closes, so it reads the value from\n // here rather than from the render that opened it.\n const imageRef = useRef(image);\n imageRef.current = image;\n\n const [inputRef, setInputRef] =\n useMergedRef<ImageViewerActions>(forwardedRef);\n\n const handlePick = useCallback(\n (uri: string) => {\n const next = fromMediaManagerPick(uri, imageRef.current);\n if (next) {\n onChange(next);\n }\n },\n [onChange],\n );\n\n const { callMedia, onMediaLoad } = useMediaControl({\n mediaType: MEDIA_TYPES.IMAGE,\n value: getImageSource(image),\n onChange: handlePick,\n autoFocus,\n readOnly,\n onBlur,\n inputRef,\n initialLoading: true,\n });\n\n const canEdit = !isMobile && !readOnly;\n\n const handleAltTextChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (image) {\n onChange(withAltText(image, e.target.value));\n }\n };\n\n return (\n <Box dataHook={dataHook} gap=\"SP4\" width=\"100%\">\n <Box width=\"100%\" maxWidth={MEDIA_MAX_WIDTH} flexShrink={0}>\n <FormField {...imageFormFieldProps} dataHook=\"media-image-field-image\">\n <ImageViewer\n ref={setInputRef}\n dataHook=\"media-image-field-viewer\"\n imageUrl={image ? getImageUrl(image) : undefined}\n onImageLoad={onMediaLoad}\n onAddImage={canEdit ? callMedia : undefined}\n onUpdateImage={canEdit ? callMedia : undefined}\n disabled={image ? Boolean(readOnly) : !canEdit}\n showUpdateButton={canEdit}\n showRemoveButton={!readOnly}\n updateImageInfo={translate('cairo.replace-image.tooltip')}\n removeImageInfo={translate('cairo.remove-image.tooltip')}\n addImageInfo={translate('cairo.add-image.tooltip')}\n height={MEDIA_HEIGHT}\n width=\"100%\"\n fit=\"cover\"\n onRemoveImage={() => onChange(null)}\n />\n </FormField>\n </Box>\n {image && (\n <Box direction=\"vertical\" flexGrow={1} minWidth=\"0\">\n <FormField label={t('CMS.image.altText.label')}>\n <Input\n dataHook=\"media-image-field-alt-input\"\n value={image.altText ?? ''}\n placeholder={t('CMS.image.altText.inputPlaceholder')}\n onChange={handleAltTextChange}\n readOnly={readOnly}\n />\n </FormField>\n </Box>\n )}\n </Box>\n );\n};\n\nFormMediaImageField.displayName = 'FormMediaImageField';\n\nexport type ControlledMediaImageInputProps = Omit<\n ControlledInputProps<MediaImageValue | null>,\n 'invalid'\n>;\n\nexport const ControlledMediaImageInput: FC<ControlledMediaImageInputProps> = ({\n data,\n onChange,\n onBlur,\n readOnly,\n autoFocus,\n dataHook,\n}) => (\n <FormMediaImageField\n data={data}\n onChange={onChange}\n onBlur={onBlur}\n readOnly={readOnly}\n autoFocus={autoFocus}\n dataHook={dataHook}\n />\n);\n\nControlledMediaImageInput.displayName = 'ControlledMediaImageInput';\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.FormMediaImageFieldUniDriver = FormMediaImageFieldUniDriver;
5
+ var _unidriver = require("@wix/design-system/dist/testkit/unidriver");
6
+ var _baseDriver = require("../../testkit/base-driver");
7
+ function FormMediaImageFieldUniDriver(base, body) {
8
+ const formField = (0, _unidriver.FormFieldUniDriver)(base.$('[data-hook="media-image-field-image"]'), body);
9
+ const imageViewer = (0, _unidriver.ImageViewerUniDriver)(base.$('[data-hook="media-image-field-viewer"]'), body);
10
+ const altInput = base.$('[data-hook="media-image-field-alt-input"] input');
11
+ return {
12
+ ...(0, _baseDriver.baseUniDriverFactory)(base),
13
+ getLabel: async () => {
14
+ var _await$formField$getL;
15
+ return ((_await$formField$getL = await formField.getLabel()) == null ? void 0 : _await$formField$getL.textContent) ?? '';
16
+ },
17
+ isRequired: () => formField.isRequired(),
18
+ hasError: () => formField.hasStatus('error'),
19
+ getErrorMessage: () => formField.getStatusMessage(),
20
+ getImageUrl: () => imageViewer.getImageUrl(),
21
+ isAddItemVisible: () => imageViewer.isAddItemVisible(),
22
+ clickAdd: () => imageViewer.clickAdd(),
23
+ clickReplace: () => imageViewer.clickUpdate(),
24
+ clickRemove: () => imageViewer.clickRemove(),
25
+ hasAltTextInput: () => altInput.exists(),
26
+ getAltText: () => altInput.value(),
27
+ getAltTextPlaceholder: () => altInput.attr('placeholder'),
28
+ enterAltText: text => altInput.enterValue(text),
29
+ // ImageViewer hides its edit buttons behind a loader until the image
30
+ // loads, and jsdom never fires that event on its own.
31
+ simulateImageLoad: async () => (await base.$('[data-hook="image-viewer-current-image"]').getNative()).dispatchEvent(new Event('load'))
32
+ };
33
+ }
34
+ //# sourceMappingURL=form-media-image-field.uni.driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_unidriver","require","_baseDriver","FormMediaImageFieldUniDriver","base","body","formField","FormFieldUniDriver","$","imageViewer","ImageViewerUniDriver","altInput","baseUniDriverFactory","getLabel","_await$formField$getL","textContent","isRequired","hasError","hasStatus","getErrorMessage","getStatusMessage","getImageUrl","isAddItemVisible","clickAdd","clickReplace","clickUpdate","clickRemove","hasAltTextInput","exists","getAltText","value","getAltTextPlaceholder","attr","enterAltText","text","enterValue","simulateImageLoad","getNative","dispatchEvent","Event"],"sources":["../../../../src/components/media-image-field/form-media-image-field.uni.driver.ts"],"sourcesContent":["import type { UniDriver } from '@wix/wix-ui-test-utils/unidriver';\nimport {\n FormFieldUniDriver,\n ImageViewerUniDriver,\n} from '@wix/design-system/dist/testkit/unidriver';\n\nimport { baseUniDriverFactory } from '../../testkit/base-driver';\n\nexport function FormMediaImageFieldUniDriver(base: UniDriver, body: UniDriver) {\n const formField = FormFieldUniDriver(\n base.$('[data-hook=\"media-image-field-image\"]'),\n body,\n );\n const imageViewer = ImageViewerUniDriver(\n base.$('[data-hook=\"media-image-field-viewer\"]'),\n body,\n );\n const altInput = base.$('[data-hook=\"media-image-field-alt-input\"] input');\n\n return {\n ...baseUniDriverFactory(base),\n getLabel: async () => (await formField.getLabel())?.textContent ?? '',\n isRequired: () => formField.isRequired(),\n hasError: () => formField.hasStatus('error'),\n getErrorMessage: () => formField.getStatusMessage(),\n getImageUrl: () => imageViewer.getImageUrl(),\n isAddItemVisible: () => imageViewer.isAddItemVisible(),\n clickAdd: () => imageViewer.clickAdd(),\n clickReplace: () => imageViewer.clickUpdate(),\n clickRemove: () => imageViewer.clickRemove(),\n hasAltTextInput: () => altInput.exists(),\n getAltText: () => altInput.value(),\n getAltTextPlaceholder: () => altInput.attr('placeholder'),\n enterAltText: (text: string) => altInput.enterValue(text),\n // ImageViewer hides its edit buttons behind a loader until the image\n // loads, and jsdom never fires that event on its own.\n simulateImageLoad: async () =>\n (\n await base.$('[data-hook=\"image-viewer-current-image\"]').getNative()\n ).dispatchEvent(new Event('load')),\n };\n}\n"],"mappings":";;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAKA,IAAAC,WAAA,GAAAD,OAAA;AAEO,SAASE,4BAA4BA,CAACC,IAAe,EAAEC,IAAe,EAAE;EAC7E,MAAMC,SAAS,GAAG,IAAAC,6BAAkB,EAClCH,IAAI,CAACI,CAAC,CAAC,uCAAuC,CAAC,EAC/CH,IACF,CAAC;EACD,MAAMI,WAAW,GAAG,IAAAC,+BAAoB,EACtCN,IAAI,CAACI,CAAC,CAAC,wCAAwC,CAAC,EAChDH,IACF,CAAC;EACD,MAAMM,QAAQ,GAAGP,IAAI,CAACI,CAAC,CAAC,iDAAiD,CAAC;EAE1E,OAAO;IACL,GAAG,IAAAI,gCAAoB,EAACR,IAAI,CAAC;IAC7BS,QAAQ,EAAE,MAAAA,CAAA;MAAA,IAAAC,qBAAA;MAAA,OAAY,EAAAA,qBAAA,GAAC,MAAMR,SAAS,CAACO,QAAQ,CAAC,CAAC,qBAA3BC,qBAAA,CAA8BC,WAAW,KAAI,EAAE;IAAA;IACrEC,UAAU,EAAEA,CAAA,KAAMV,SAAS,CAACU,UAAU,CAAC,CAAC;IACxCC,QAAQ,EAAEA,CAAA,KAAMX,SAAS,CAACY,SAAS,CAAC,OAAO,CAAC;IAC5CC,eAAe,EAAEA,CAAA,KAAMb,SAAS,CAACc,gBAAgB,CAAC,CAAC;IACnDC,WAAW,EAAEA,CAAA,KAAMZ,WAAW,CAACY,WAAW,CAAC,CAAC;IAC5CC,gBAAgB,EAAEA,CAAA,KAAMb,WAAW,CAACa,gBAAgB,CAAC,CAAC;IACtDC,QAAQ,EAAEA,CAAA,KAAMd,WAAW,CAACc,QAAQ,CAAC,CAAC;IACtCC,YAAY,EAAEA,CAAA,KAAMf,WAAW,CAACgB,WAAW,CAAC,CAAC;IAC7CC,WAAW,EAAEA,CAAA,KAAMjB,WAAW,CAACiB,WAAW,CAAC,CAAC;IAC5CC,eAAe,EAAEA,CAAA,KAAMhB,QAAQ,CAACiB,MAAM,CAAC,CAAC;IACxCC,UAAU,EAAEA,CAAA,KAAMlB,QAAQ,CAACmB,KAAK,CAAC,CAAC;IAClCC,qBAAqB,EAAEA,CAAA,KAAMpB,QAAQ,CAACqB,IAAI,CAAC,aAAa,CAAC;IACzDC,YAAY,EAAGC,IAAY,IAAKvB,QAAQ,CAACwB,UAAU,CAACD,IAAI,CAAC;IACzD;IACA;IACAE,iBAAiB,EAAE,MAAAA,CAAA,KACjB,CACE,MAAMhC,IAAI,CAACI,CAAC,CAAC,0CAA0C,CAAC,CAAC6B,SAAS,CAAC,CAAC,EACpEC,aAAa,CAAC,IAAIC,KAAK,CAAC,MAAM,CAAC;EACrC,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.FormMediaImageInput = void 0;
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _mobxReactLite = require("mobx-react-lite");
8
+ var _react2 = require("@wix/bex-core/react");
9
+ var _form = require("@wix/bex-core/form");
10
+ var _hooks = require("../../hooks");
11
+ var _mediaImageValue = require("../../utils/media-image-value");
12
+ var _formMediaImageField = require("./form-media-image-field");
13
+ var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/fields/dist/cjs/components/media-image-field/form-media-image-input.tsx";
14
+ const _FormMediaImageInput = props => {
15
+ var _field$validation2, _controller$fieldStat;
16
+ const {
17
+ field,
18
+ dataHook,
19
+ formControl,
20
+ data
21
+ } = props;
22
+ const {
23
+ translate: t
24
+ } = (0, _react2.useWixPatternsContainer)();
25
+ const controller = (0, _form.useController)({
26
+ name: (field == null ? void 0 : field.id) ?? '',
27
+ control: formControl,
28
+ defaultValue: data == null ? void 0 : data[(field == null ? void 0 : field.id) ?? ''],
29
+ rules: {
30
+ validate: value => {
31
+ var _field$validation;
32
+ // Alt text alone doesn't make the field filled.
33
+ if ((_field$validation = field.validation) != null && _field$validation.required && (0, _mediaImageValue.isMediaImageEmpty)(value)) {
34
+ return t('cairo.fieldValidation.requiredField');
35
+ }
36
+ return true;
37
+ }
38
+ }
39
+ });
40
+ const setFieldRef = (0, _hooks.useFieldRef)(controller.field.ref);
41
+ return /*#__PURE__*/_react.default.createElement(_formMediaImageField.FormMediaImageField
42
+ // Hands the live button to react-hook-form so shouldFocusError can
43
+ // reach this field when it blocks save.
44
+ , {
45
+ inputRef: setFieldRef,
46
+ data: controller.field.value,
47
+ onChange: value => controller.field.onChange(value),
48
+ dataHook: dataHook,
49
+ imageFormFieldProps: {
50
+ label: field.displayName,
51
+ required: (_field$validation2 = field.validation) == null ? void 0 : _field$validation2.required,
52
+ status: controller.fieldState.error ? 'error' : undefined,
53
+ statusMessage: (_controller$fieldStat = controller.fieldState.error) == null ? void 0 : _controller$fieldStat.message
54
+ },
55
+ __self: void 0,
56
+ __source: {
57
+ fileName: _jsxFileName,
58
+ lineNumber: 39,
59
+ columnNumber: 5
60
+ }
61
+ });
62
+ };
63
+ const FormMediaImageInput = exports.FormMediaImageInput = (0, _mobxReactLite.observer)(_FormMediaImageInput);
64
+ //# sourceMappingURL=form-media-image-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_mobxReactLite","_react2","_form","_hooks","_mediaImageValue","_formMediaImageField","_jsxFileName","_FormMediaImageInput","props","_field$validation2","_controller$fieldStat","field","dataHook","formControl","data","translate","t","useWixPatternsContainer","controller","useController","name","id","control","defaultValue","rules","validate","value","_field$validation","validation","required","isMediaImageEmpty","setFieldRef","useFieldRef","ref","default","createElement","FormMediaImageField","inputRef","onChange","imageFormFieldProps","label","displayName","status","fieldState","error","undefined","statusMessage","message","__self","__source","fileName","lineNumber","columnNumber","FormMediaImageInput","exports","observer"],"sources":["../../../../src/components/media-image-field/form-media-image-input.tsx"],"sourcesContent":["import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport { useController } from '@wix/bex-core/form';\n\nimport type { BaseInputProps } from '../../types/base-input';\nimport type { MediaImageValue } from '../../types/media-image';\nimport { useFieldRef } from '../../hooks';\nimport { isMediaImageEmpty } from '../../utils/media-image-value';\nimport { FormMediaImageField } from './form-media-image-field';\n\nexport interface FormMediaImageInputProps\n extends BaseInputProps<MediaImageValue | null> {}\n\nconst _FormMediaImageInput = (props: FormMediaImageInputProps) => {\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 // Alt text alone doesn't make the field filled.\n if (field.validation?.required && isMediaImageEmpty(value)) {\n return t('cairo.fieldValidation.requiredField');\n }\n\n return true;\n },\n },\n });\n\n const setFieldRef = useFieldRef(controller.field.ref);\n\n return (\n <FormMediaImageField\n // Hands the live button to react-hook-form so shouldFocusError can\n // reach this field when it blocks save.\n inputRef={setFieldRef}\n data={controller.field.value}\n onChange={(value) => controller.field.onChange(value)}\n dataHook={dataHook}\n imageFormFieldProps={{\n label: field.displayName,\n required: field.validation?.required,\n status: controller.fieldState.error ? 'error' : undefined,\n statusMessage: controller.fieldState.error?.message,\n }}\n />\n );\n};\n\nexport const FormMediaImageInput = observer(_FormMediaImageInput);\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAIA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,oBAAA,GAAAN,OAAA;AAA+D,IAAAO,YAAA;AAK/D,MAAMC,oBAAoB,GAAIC,KAA+B,IAAK;EAAA,IAAAC,kBAAA,EAAAC,qBAAA;EAChE,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAK,CAAC,GAAGN,KAAK;EAEpD,MAAM;IAAEO,SAAS,EAAEC;EAAE,CAAC,GAAG,IAAAC,+BAAuB,EAAC,CAAC;EAElD,MAAMC,UAAU,GAAG,IAAAC,mBAAa,EAAC;IAC/BC,IAAI,EAAE,CAAAT,KAAK,oBAALA,KAAK,CAAEU,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAET,WAAW;IACpBU,YAAY,EAAET,IAAI,oBAAJA,IAAI,CAAG,CAAAH,KAAK,oBAALA,KAAK,CAAEU,EAAE,KAAI,EAAE,CAAC;IACrCG,KAAK,EAAE;MACLC,QAAQ,EAAGC,KAAK,IAAK;QAAA,IAAAC,iBAAA;QACnB;QACA,IAAI,CAAAA,iBAAA,GAAAhB,KAAK,CAACiB,UAAU,aAAhBD,iBAAA,CAAkBE,QAAQ,IAAI,IAAAC,kCAAiB,EAACJ,KAAK,CAAC,EAAE;UAC1D,OAAOV,CAAC,CAAC,qCAAqC,CAAC;QACjD;QAEA,OAAO,IAAI;MACb;IACF;EACF,CAAC,CAAC;EAEF,MAAMe,WAAW,GAAG,IAAAC,kBAAW,EAACd,UAAU,CAACP,KAAK,CAACsB,GAAG,CAAC;EAErD,oBACEpC,MAAA,CAAAqC,OAAA,CAAAC,aAAA,CAAC9B,oBAAA,CAAA+B;EACC;EACA;EAAA;IACAC,QAAQ,EAAEN,WAAY;IACtBjB,IAAI,EAAEI,UAAU,CAACP,KAAK,CAACe,KAAM;IAC7BY,QAAQ,EAAGZ,KAAK,IAAKR,UAAU,CAACP,KAAK,CAAC2B,QAAQ,CAACZ,KAAK,CAAE;IACtDd,QAAQ,EAAEA,QAAS;IACnB2B,mBAAmB,EAAE;MACnBC,KAAK,EAAE7B,KAAK,CAAC8B,WAAW;MACxBZ,QAAQ,GAAApB,kBAAA,GAAEE,KAAK,CAACiB,UAAU,qBAAhBnB,kBAAA,CAAkBoB,QAAQ;MACpCa,MAAM,EAAExB,UAAU,CAACyB,UAAU,CAACC,KAAK,GAAG,OAAO,GAAGC,SAAS;MACzDC,aAAa,GAAApC,qBAAA,GAAEQ,UAAU,CAACyB,UAAU,CAACC,KAAK,qBAA3BlC,qBAAA,CAA6BqC;IAC9C,CAAE;IAAAC,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA5C,YAAA;MAAA6C,UAAA;MAAAC,YAAA;IAAA;EAAA,CACH,CAAC;AAEN,CAAC;AAEM,MAAMC,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,IAAAE,uBAAQ,EAAChD,oBAAoB,CAAC","ignoreList":[]}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ var _mediaImageView = require("./media-image-view");
5
+ Object.keys(_mediaImageView).forEach(function (key) {
6
+ if (key === "default" || key === "__esModule") return;
7
+ if (key in exports && exports[key] === _mediaImageView[key]) return;
8
+ exports[key] = _mediaImageView[key];
9
+ });
10
+ var _cellMediaImageEdit = require("./cell-media-image-edit");
11
+ Object.keys(_cellMediaImageEdit).forEach(function (key) {
12
+ if (key === "default" || key === "__esModule") return;
13
+ if (key in exports && exports[key] === _cellMediaImageEdit[key]) return;
14
+ exports[key] = _cellMediaImageEdit[key];
15
+ });
16
+ var _formMediaImageField = require("./form-media-image-field");
17
+ Object.keys(_formMediaImageField).forEach(function (key) {
18
+ if (key === "default" || key === "__esModule") return;
19
+ if (key in exports && exports[key] === _formMediaImageField[key]) return;
20
+ exports[key] = _formMediaImageField[key];
21
+ });
22
+ var _formMediaImageInput = require("./form-media-image-input");
23
+ Object.keys(_formMediaImageInput).forEach(function (key) {
24
+ if (key === "default" || key === "__esModule") return;
25
+ if (key in exports && exports[key] === _formMediaImageInput[key]) return;
26
+ exports[key] = _formMediaImageInput[key];
27
+ });
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_mediaImageView","require","Object","keys","forEach","key","exports","_cellMediaImageEdit","_formMediaImageField","_formMediaImageInput"],"sources":["../../../../src/components/media-image-field/index.ts"],"sourcesContent":["export * from './media-image-view';\nexport * from './cell-media-image-edit';\nexport * from './form-media-image-field';\nexport * from './form-media-image-input';\n"],"mappings":";;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,eAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,eAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,eAAA,CAAAK,GAAA;AAAA;AACA,IAAAE,mBAAA,GAAAN,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAI,mBAAA,EAAAH,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAE,mBAAA,CAAAF,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAE,mBAAA,CAAAF,GAAA;AAAA;AACA,IAAAG,oBAAA,GAAAP,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAK,oBAAA,EAAAJ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAG,oBAAA,CAAAH,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAG,oBAAA,CAAAH,GAAA;AAAA;AACA,IAAAI,oBAAA,GAAAR,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAM,oBAAA,EAAAL,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAI,oBAAA,CAAAJ,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAI,oBAAA,CAAAJ,GAAA;AAAA","ignoreList":[]}
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.MediaImageView = void 0;
5
+ var _react = _interopRequireWildcard(require("react"));
6
+ var _designSystem = require("@wix/design-system");
7
+ var _mobxReactLite = require("mobx-react-lite");
8
+ var _PatternsFieldsContainerProvider = require("../../providers/PatternsFieldsContainerProvider");
9
+ var _getImageSource = require("../../utils/get-image-source");
10
+ var _tooltip = require("../../utils/tooltip");
11
+ var _imagePreviewPopover = require("../image/image-preview-popover");
12
+ var _imageThumbnail = require("../image/image-thumbnail");
13
+ var _mediaImageViewStCss = require("./media-image-view.st.css.js");
14
+ var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/fields/dist/cjs/components/media-image-field/media-image-view.tsx";
15
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
16
+ function _MediaImageView({
17
+ value: image,
18
+ dataHook
19
+ }) {
20
+ var _usePatternsCmsFields;
21
+ // Tables render this cell even with no fields container above them, which
22
+ // legacy image cells never needed. Without one there is nothing to translate
23
+ // the placeholder with, so it is left out instead of breaking the cell.
24
+ const translate = (_usePatternsCmsFields = (0, _PatternsFieldsContainerProvider.usePatternsCmsFieldsContainer)()) == null ? void 0 : _usePatternsCmsFields.translate;
25
+ const src = (0, _getImageSource.getImageSource)(image);
26
+ const altText = image == null ? void 0 : image.altText;
27
+ const placeholder = altText ? undefined : translate == null ? void 0 : translate('CMS.image.altText.cellPlaceholder');
28
+ const [isPreviewShown, setIsPreviewShown] = (0, _react.useState)(false);
29
+ const showPreview = (0, _react.useCallback)(() => setIsPreviewShown(true), []);
30
+ const hidePreview = (0, _react.useCallback)(() => setIsPreviewShown(false), []);
31
+
32
+ // With no src, the thumbnail renders the empty-image placeholder.
33
+ const thumbnail = /*#__PURE__*/_react.default.createElement(_imageThumbnail.ImageThumbnail, {
34
+ value: image,
35
+ dataHook: "media-image-view-thumbnail",
36
+ width: "36px",
37
+ height: "24px",
38
+ borderRadius: "0",
39
+ onMouseEnter: src ? showPreview : undefined,
40
+ onMouseLeave: src ? hidePreview : undefined,
41
+ __self: this,
42
+ __source: {
43
+ fileName: _jsxFileName,
44
+ lineNumber: 35,
45
+ columnNumber: 5
46
+ }
47
+ });
48
+ return /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
49
+ dataHook: dataHook,
50
+ className: _mediaImageViewStCss.classes.root,
51
+ verticalAlign: "middle",
52
+ gap: "8px",
53
+ padding: "0 8px",
54
+ height: "100%",
55
+ width: "100%",
56
+ __self: this,
57
+ __source: {
58
+ fileName: _jsxFileName,
59
+ lineNumber: 47,
60
+ columnNumber: 5
61
+ }
62
+ }, src ? /*#__PURE__*/_react.default.createElement(_imagePreviewPopover.ImagePreviewPopover, {
63
+ src: src,
64
+ shown: isPreviewShown,
65
+ __self: this,
66
+ __source: {
67
+ fileName: _jsxFileName,
68
+ lineNumber: 57,
69
+ columnNumber: 9
70
+ }
71
+ }, thumbnail) : thumbnail, src && (altText || placeholder) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
72
+ height: "16px",
73
+ flexShrink: 0,
74
+ __self: this,
75
+ __source: {
76
+ fileName: _jsxFileName,
77
+ lineNumber: 65,
78
+ columnNumber: 11
79
+ }
80
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.Divider, {
81
+ direction: "vertical",
82
+ __self: this,
83
+ __source: {
84
+ fileName: _jsxFileName,
85
+ lineNumber: 66,
86
+ columnNumber: 13
87
+ }
88
+ })), altText ? /*#__PURE__*/_react.default.createElement(_designSystem.Text, {
89
+ size: "tiny",
90
+ ellipsis: true,
91
+ tooltipProps: _tooltip.smallTooltipCommonProps,
92
+ dataHook: "media-image-view-alt-text",
93
+ __self: this,
94
+ __source: {
95
+ fileName: _jsxFileName,
96
+ lineNumber: 69,
97
+ columnNumber: 13
98
+ }
99
+ }, altText) : /*#__PURE__*/_react.default.createElement(_designSystem.Text, {
100
+ size: "tiny",
101
+ ellipsis: true,
102
+ className: _mediaImageViewStCss.classes.altTextPlaceholder,
103
+ dataHook: "media-image-view-alt-text-placeholder",
104
+ __self: this,
105
+ __source: {
106
+ fileName: _jsxFileName,
107
+ lineNumber: 78,
108
+ columnNumber: 13
109
+ }
110
+ }, placeholder)));
111
+ }
112
+ const MediaImageView = exports.MediaImageView = (0, _mobxReactLite.observer)(_MediaImageView);
113
+ MediaImageView.displayName = 'MediaImageView';
114
+ //# sourceMappingURL=media-image-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_mobxReactLite","_PatternsFieldsContainerProvider","_getImageSource","_tooltip","_imagePreviewPopover","_imageThumbnail","_mediaImageViewStCss","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_MediaImageView","value","image","dataHook","_usePatternsCmsFields","translate","usePatternsCmsFieldsContainer","src","getImageSource","altText","placeholder","undefined","isPreviewShown","setIsPreviewShown","useState","showPreview","useCallback","hidePreview","thumbnail","createElement","ImageThumbnail","width","height","borderRadius","onMouseEnter","onMouseLeave","__self","__source","fileName","lineNumber","columnNumber","Box","className","classes","root","verticalAlign","gap","padding","ImagePreviewPopover","shown","Fragment","flexShrink","Divider","direction","Text","size","ellipsis","tooltipProps","smallTooltipCommonProps","altTextPlaceholder","MediaImageView","exports","observer","displayName"],"sources":["../../../../src/components/media-image-field/media-image-view.tsx"],"sourcesContent":["import React, { useCallback, useState } from 'react';\nimport { Box, Divider, Text } from '@wix/design-system';\nimport { observer } from 'mobx-react-lite';\nimport type { MediaImageValue } from '../../types/media-image';\nimport { usePatternsCmsFieldsContainer } from '../../providers/PatternsFieldsContainerProvider';\nimport { getImageSource } from '../../utils/get-image-source';\nimport { smallTooltipCommonProps } from '../../utils/tooltip';\nimport { ImagePreviewPopover } from '../image/image-preview-popover';\nimport { ImageThumbnail } from '../image/image-thumbnail';\nimport { classes } from './media-image-view.st.css.js';\n\nexport interface MediaImageViewProps {\n /** A value read with `toMediaImageValue`. */\n value: MediaImageValue | null;\n dataHook?: string;\n}\n\nfunction _MediaImageView({ value: image, dataHook }: MediaImageViewProps) {\n // Tables render this cell even with no fields container above them, which\n // legacy image cells never needed. Without one there is nothing to translate\n // the placeholder with, so it is left out instead of breaking the cell.\n const translate = usePatternsCmsFieldsContainer()?.translate;\n const src = getImageSource(image);\n const altText = image?.altText;\n const placeholder = altText\n ? undefined\n : translate?.('CMS.image.altText.cellPlaceholder');\n const [isPreviewShown, setIsPreviewShown] = useState(false);\n\n const showPreview = useCallback(() => setIsPreviewShown(true), []);\n const hidePreview = useCallback(() => setIsPreviewShown(false), []);\n\n // With no src, the thumbnail renders the empty-image placeholder.\n const thumbnail = (\n <ImageThumbnail\n value={image}\n dataHook=\"media-image-view-thumbnail\"\n width=\"36px\"\n height=\"24px\"\n borderRadius=\"0\"\n onMouseEnter={src ? showPreview : undefined}\n onMouseLeave={src ? hidePreview : undefined}\n />\n );\n\n return (\n <Box\n dataHook={dataHook}\n className={classes.root}\n verticalAlign=\"middle\"\n gap=\"8px\"\n padding=\"0 8px\"\n height=\"100%\"\n width=\"100%\"\n >\n {src ? (\n <ImagePreviewPopover src={src} shown={isPreviewShown}>\n {thumbnail}\n </ImagePreviewPopover>\n ) : (\n thumbnail\n )}\n {src && (altText || placeholder) && (\n <>\n <Box height=\"16px\" flexShrink={0}>\n <Divider direction=\"vertical\" />\n </Box>\n {altText ? (\n <Text\n size=\"tiny\"\n ellipsis\n tooltipProps={smallTooltipCommonProps}\n dataHook=\"media-image-view-alt-text\"\n >\n {altText}\n </Text>\n ) : (\n <Text\n size=\"tiny\"\n ellipsis\n className={classes.altTextPlaceholder}\n dataHook=\"media-image-view-alt-text-placeholder\"\n >\n {placeholder}\n </Text>\n )}\n </>\n )}\n </Box>\n );\n}\n\nexport const MediaImageView = observer(_MediaImageView);\n\nMediaImageView.displayName = 'MediaImageView';\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ @property st-global(--wds-color-text-standard-primary);
2
+ @property st-global(--wds-color-text-placeholder);
3
+ @property st-global(--wsr-color-D40);
4
+
5
+ .root {
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ /* WDS <Text> reads its colour from the primary text token, so the placeholder
10
+ colour goes through it. */
11
+ .altTextPlaceholder {
12
+ --wds-color-text-standard-primary: var(
13
+ --wds-color-text-placeholder,
14
+ var(--wsr-color-D40, #868AA5)
15
+ );
16
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace = exports.layers = exports.keyframes = exports.cssStates = exports.containers = exports.classes = void 0;
5
+ var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
+ // @ts-nocheck
7
+
8
+ var _namespace_ = "mediaimageview1317682424";
9
+ var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
+ var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
+ var style = exports.style = _style_;
12
+ var st = exports.st = _style_;
13
+ var namespace = exports.namespace = _namespace_;
14
+ var classes = exports.classes = {
15
+ "root": "mediaimageview1317682424__root",
16
+ "altTextPlaceholder": "mediaimageview1317682424__altTextPlaceholder"
17
+ };
18
+ var keyframes = exports.keyframes = {};
19
+ var layers = exports.layers = {};
20
+ var containers = exports.containers = {};
21
+ var stVars = exports.stVars = {};
22
+ var vars = exports.vars = {
23
+ "wds-color-text-standard-primary": "--wds-color-text-standard-primary",
24
+ "wds-color-text-placeholder": "--wds-color-text-placeholder",
25
+ "wsr-color-D40": "--wsr-color-D40"
26
+ };
27
+ //# sourceMappingURL=media-image-view.st.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/media-image-field/media-image-view.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"mediaimageview1317682424\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"mediaimageview1317682424__root\",\"altTextPlaceholder\":\"mediaimageview1317682424__altTextPlaceholder\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-color-text-standard-primary\":\"--wds-color-text-standard-primary\",\"wds-color-text-placeholder\":\"--wds-color-text-placeholder\",\"wsr-color-D40\":\"--wsr-color-D40\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,gCAAgC;EAAC,oBAAoB,EAAC;AAA8C,CAAC;AAC3H,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,iCAAiC,EAAC,mCAAmC;EAAC,4BAA4B,EAAC,8BAA8B;EAAC,eAAe,EAAC;AAAiB,CAAC","ignoreList":[]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.MediaImageViewUniDriver = MediaImageViewUniDriver;
5
+ var _baseDriver = require("../../testkit/base-driver");
6
+ function MediaImageViewUniDriver(base, _body) {
7
+ const thumbnail = base.$('[data-hook="media-image-view-thumbnail"]');
8
+ const altText = base.$('[data-hook="media-image-view-alt-text"]');
9
+ const altTextPlaceholder = base.$('[data-hook="media-image-view-alt-text-placeholder"]');
10
+ return {
11
+ ...(0, _baseDriver.baseUniDriverFactory)(base),
12
+ hasThumbnail: () => thumbnail.exists(),
13
+ isEmpty: async () => (await thumbnail.attr('data-empty')) === 'true',
14
+ getAltText: async () => (await altText.exists()) ? altText.text() : undefined,
15
+ hasAltTextPlaceholder: () => altTextPlaceholder.exists()
16
+ };
17
+ }
18
+ //# sourceMappingURL=media-image-view.uni.driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_baseDriver","require","MediaImageViewUniDriver","base","_body","thumbnail","$","altText","altTextPlaceholder","baseUniDriverFactory","hasThumbnail","exists","isEmpty","attr","getAltText","text","undefined","hasAltTextPlaceholder"],"sources":["../../../../src/components/media-image-field/media-image-view.uni.driver.ts"],"sourcesContent":["import type { UniDriver } from '@wix/wix-ui-test-utils/unidriver';\nimport { baseUniDriverFactory } from '../../testkit/base-driver';\n\nexport function MediaImageViewUniDriver(base: UniDriver, _body: UniDriver) {\n const thumbnail = base.$('[data-hook=\"media-image-view-thumbnail\"]');\n const altText = base.$('[data-hook=\"media-image-view-alt-text\"]');\n const altTextPlaceholder = base.$(\n '[data-hook=\"media-image-view-alt-text-placeholder\"]',\n );\n return {\n ...baseUniDriverFactory(base),\n hasThumbnail: () => thumbnail.exists(),\n isEmpty: async () => (await thumbnail.attr('data-empty')) === 'true',\n getAltText: async () =>\n (await altText.exists()) ? altText.text() : undefined,\n hasAltTextPlaceholder: () => altTextPlaceholder.exists(),\n };\n}\n"],"mappings":";;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AAEO,SAASC,uBAAuBA,CAACC,IAAe,EAAEC,KAAgB,EAAE;EACzE,MAAMC,SAAS,GAAGF,IAAI,CAACG,CAAC,CAAC,0CAA0C,CAAC;EACpE,MAAMC,OAAO,GAAGJ,IAAI,CAACG,CAAC,CAAC,yCAAyC,CAAC;EACjE,MAAME,kBAAkB,GAAGL,IAAI,CAACG,CAAC,CAC/B,qDACF,CAAC;EACD,OAAO;IACL,GAAG,IAAAG,gCAAoB,EAACN,IAAI,CAAC;IAC7BO,YAAY,EAAEA,CAAA,KAAML,SAAS,CAACM,MAAM,CAAC,CAAC;IACtCC,OAAO,EAAE,MAAAA,CAAA,KAAY,CAAC,MAAMP,SAAS,CAACQ,IAAI,CAAC,YAAY,CAAC,MAAM,MAAM;IACpEC,UAAU,EAAE,MAAAA,CAAA,KACV,CAAC,MAAMP,OAAO,CAACI,MAAM,CAAC,CAAC,IAAIJ,OAAO,CAACQ,IAAI,CAAC,CAAC,GAAGC,SAAS;IACvDC,qBAAqB,EAAEA,CAAA,KAAMT,kBAAkB,CAACG,MAAM,CAAC;EACzD,CAAC;AACH","ignoreList":[]}