@wix/patterns-fields 1.87.0 → 1.89.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.
- package/dist/cjs/components/address/input/address-input.st.css.js +3 -3
- package/dist/cjs/components/address/input/address-input.st.css.js.map +1 -1
- package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js +3 -3
- package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
- package/dist/cjs/components/audio/audio-field/controlled-audio.uni.driver.js +29 -0
- package/dist/cjs/components/audio/audio-field/controlled-audio.uni.driver.js.map +1 -0
- package/dist/cjs/components/audio/audio-field/form-audio-field.js +42 -12
- package/dist/cjs/components/audio/audio-field/form-audio-field.js.map +1 -1
- package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js +4 -4
- package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
- package/dist/cjs/components/audio/audio-player/audio-player.st.css.js +2 -2
- package/dist/cjs/components/audio/audio-player/audio-player.st.css.js.map +1 -1
- package/dist/cjs/components/color-view/cell-color-view.st.css.js +3 -3
- package/dist/cjs/components/color-view/cell-color-view.st.css.js.map +1 -1
- package/dist/cjs/components/color-view/color-view.st.css.js +4 -4
- package/dist/cjs/components/color-view/color-view.st.css.js.map +1 -1
- package/dist/cjs/components/controlled-input.uni.driver.js +7 -1
- package/dist/cjs/components/controlled-input.uni.driver.js.map +1 -1
- package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js +3 -3
- package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
- package/dist/cjs/components/document/form-document-field.st.css.js +7 -7
- package/dist/cjs/components/document/form-document-field.st.css.js.map +1 -1
- package/dist/cjs/components/exclamation/exclamation.st.css.js +5 -5
- package/dist/cjs/components/exclamation/exclamation.st.css.js.map +1 -1
- package/dist/cjs/components/field-validation-settings/field-validation-settings-input.js +44 -42
- package/dist/cjs/components/field-validation-settings/field-validation-settings-input.js.map +1 -1
- package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js +5 -5
- package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
- package/dist/cjs/components/image/controlled-image.uni.driver.js +23 -0
- package/dist/cjs/components/image/controlled-image.uni.driver.js.map +1 -0
- package/dist/cjs/components/image/form-image-field.js +124 -0
- package/dist/cjs/components/image/form-image-field.js.map +1 -0
- package/dist/cjs/components/image/form-image-input.js +13 -50
- package/dist/cjs/components/image/form-image-input.js.map +1 -1
- package/dist/cjs/components/image/index.js +6 -0
- package/dist/cjs/components/image/index.js.map +1 -1
- package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js +3 -3
- package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js.map +1 -1
- package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js +2 -2
- package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
- package/dist/cjs/components/media-control/paste-url-button.st.css.js +4 -4
- package/dist/cjs/components/media-control/paste-url-button.st.css.js.map +1 -1
- package/dist/cjs/components/media-control/use-media-control.js +4 -1
- package/dist/cjs/components/media-control/use-media-control.js.map +1 -1
- package/dist/cjs/components/media-gallery/cell-media-gallery-edit.js +33 -28
- package/dist/cjs/components/media-gallery/cell-media-gallery-edit.js.map +1 -1
- package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js +10 -10
- package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
- package/dist/cjs/components/media-image/media-image.st.css.js +4 -4
- package/dist/cjs/components/media-image/media-image.st.css.js.map +1 -1
- package/dist/cjs/components/media-image/overlays/overlay.st.css.js +3 -3
- package/dist/cjs/components/media-image/overlays/overlay.st.css.js.map +1 -1
- package/dist/cjs/components/media-loader/media-loader.st.css.js +3 -3
- package/dist/cjs/components/media-loader/media-loader.st.css.js.map +1 -1
- package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
- package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
- package/dist/cjs/components/multi-document/cell-multi-document-edit.js +1 -1
- package/dist/cjs/components/multi-document/cell-multi-document-edit.js.map +1 -1
- package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js +3 -3
- package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js.map +1 -1
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
- package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js +2 -2
- package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js.map +1 -1
- package/dist/cjs/components/reference/cell-reference-input.st.css.js +3 -3
- package/dist/cjs/components/reference/cell-reference-input.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +4 -4
- package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +3 -3
- package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
- 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
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +7 -7
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +5 -5
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
- package/dist/cjs/components/text/text-view.st.css.js +3 -3
- package/dist/cjs/components/text/text-view.st.css.js.map +1 -1
- package/dist/cjs/components/video/controlled-video.uni.driver.js +40 -0
- package/dist/cjs/components/video/controlled-video.uni.driver.js.map +1 -0
- package/dist/cjs/components/video/form-video-field.js +358 -0
- package/dist/cjs/components/video/form-video-field.js.map +1 -0
- package/dist/cjs/components/video/form-video.js +22 -284
- package/dist/cjs/components/video/form-video.js.map +1 -1
- package/dist/cjs/components/video/index.js +4 -1
- package/dist/cjs/components/video/index.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- package/dist/esm/components/address/input/address-input.st.css.js +2 -2
- package/dist/esm/components/audio/actions/actions-menu/actions-menu.st.css.js +2 -2
- package/dist/esm/components/audio/audio-field/controlled-audio.uni.driver.js +26 -0
- package/dist/esm/components/audio/audio-field/controlled-audio.uni.driver.js.map +1 -0
- package/dist/esm/components/audio/audio-field/form-audio-field.js +6 -1
- package/dist/esm/components/audio/audio-field/form-audio-field.js.map +1 -1
- package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js +2 -2
- package/dist/esm/components/audio/audio-player/audio-player.st.css.js +2 -2
- package/dist/esm/components/color-view/cell-color-view.st.css.js +2 -2
- package/dist/esm/components/color-view/color-view.st.css.js +2 -2
- package/dist/esm/components/controlled-input.uni.driver.js +6 -0
- package/dist/esm/components/controlled-input.uni.driver.js.map +1 -1
- package/dist/esm/components/delete-dialog/delete-dialog.st.css.js +2 -2
- package/dist/esm/components/document/form-document-field.st.css.js +2 -2
- package/dist/esm/components/exclamation/exclamation.st.css.js +2 -2
- package/dist/esm/components/field-validation-settings/field-validation-settings-input.js +14 -11
- package/dist/esm/components/field-validation-settings/field-validation-settings-input.js.map +1 -1
- package/dist/esm/components/highlighted-text/highlighted-text.st.css.js +3 -3
- package/dist/esm/components/image/controlled-image.uni.driver.js +19 -0
- package/dist/esm/components/image/controlled-image.uni.driver.js.map +1 -0
- package/dist/esm/components/image/form-image-field.js +48 -0
- package/dist/esm/components/image/form-image-field.js.map +1 -0
- package/dist/esm/components/image/form-image-input.js +11 -33
- package/dist/esm/components/image/form-image-input.js.map +1 -1
- package/dist/esm/components/image/index.js +1 -0
- package/dist/esm/components/image/index.js.map +1 -1
- package/dist/esm/components/image/thumbnail-replace-overlay.st.css.js +2 -2
- package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js +2 -2
- package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
- package/dist/esm/components/media-control/paste-url-button.st.css.js +2 -2
- package/dist/esm/components/media-control/paste-url-button.st.css.js.map +1 -1
- package/dist/esm/components/media-control/use-media-control.js +4 -3
- package/dist/esm/components/media-control/use-media-control.js.map +1 -1
- package/dist/esm/components/media-gallery/cell-media-gallery-edit.js +12 -9
- package/dist/esm/components/media-gallery/cell-media-gallery-edit.js.map +1 -1
- package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js +2 -2
- package/dist/esm/components/media-image/media-image.st.css.js +3 -3
- package/dist/esm/components/media-image/media-image.st.css.js.map +1 -1
- package/dist/esm/components/media-image/overlays/overlay.st.css.js +2 -2
- package/dist/esm/components/media-loader/media-loader.st.css.js +2 -2
- package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
- package/dist/esm/components/multi-document/cell-multi-document-edit.js +1 -1
- package/dist/esm/components/multi-document/cell-multi-document-edit.js.map +1 -1
- package/dist/esm/components/multi-document/cell-multi-document-edit.st.css.js +2 -2
- package/dist/esm/components/multi-document/cell-multi-document-edit.st.css.js.map +1 -1
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js +2 -2
- package/dist/esm/components/reference/cell-multi-reference-input.st.css.js +2 -2
- package/dist/esm/components/reference/cell-multi-reference-input.st.css.js.map +1 -1
- package/dist/esm/components/reference/cell-reference-input.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
- package/dist/esm/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
- 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
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
- package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +2 -2
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +2 -2
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +2 -2
- package/dist/esm/components/text/text-view.st.css.js +2 -2
- package/dist/esm/components/video/controlled-video.uni.driver.js +37 -0
- package/dist/esm/components/video/controlled-video.uni.driver.js.map +1 -0
- package/dist/esm/components/video/form-video-field.js +71 -0
- package/dist/esm/components/video/form-video-field.js.map +1 -0
- package/dist/esm/components/video/form-video.js +17 -56
- package/dist/esm/components/video/form-video.js.map +1 -1
- package/dist/esm/components/video/index.js +1 -0
- package/dist/esm/components/video/index.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/types/components/audio/audio-field/controlled-audio.uni.driver.d.ts +18 -0
- package/dist/types/components/audio/audio-field/controlled-audio.uni.driver.d.ts.map +1 -0
- package/dist/types/components/audio/audio-field/form-audio-field.d.ts +12 -1
- package/dist/types/components/audio/audio-field/form-audio-field.d.ts.map +1 -1
- package/dist/types/components/controlled-input.uni.driver.d.ts +74 -0
- package/dist/types/components/controlled-input.uni.driver.d.ts.map +1 -1
- package/dist/types/components/field-validation-settings/field-validation-settings-input.d.ts +4 -2
- package/dist/types/components/field-validation-settings/field-validation-settings-input.d.ts.map +1 -1
- package/dist/types/components/image/controlled-image.uni.driver.d.ts +40 -0
- package/dist/types/components/image/controlled-image.uni.driver.d.ts.map +1 -0
- package/dist/types/components/image/form-image-field.d.ts +15 -0
- package/dist/types/components/image/form-image-field.d.ts.map +1 -0
- package/dist/types/components/image/form-image-input.d.ts.map +1 -1
- package/dist/types/components/image/index.d.ts +1 -0
- package/dist/types/components/image/index.d.ts.map +1 -1
- package/dist/types/components/media-control/cell-media-edit-shell.st.css.d.ts.map +1 -1
- package/dist/types/components/media-control/paste-url-button.st.css.d.ts.map +1 -1
- package/dist/types/components/media-control/use-media-control.d.ts.map +1 -1
- package/dist/types/components/media-gallery/cell-media-gallery-edit.d.ts.map +1 -1
- package/dist/types/components/media-image/media-image.st.css.d.ts.map +1 -1
- package/dist/types/components/multi-document/cell-multi-document-edit.st.css.d.ts.map +1 -1
- package/dist/types/components/reference/cell-multi-reference-input.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.d.ts.map +1 -1
- 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
- package/dist/types/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.d.ts.map +1 -1
- package/dist/types/components/video/controlled-video.uni.driver.d.ts +22 -0
- package/dist/types/components/video/controlled-video.uni.driver.d.ts.map +1 -0
- package/dist/types/components/video/form-video-field.d.ts +29 -0
- package/dist/types/components/video/form-video-field.d.ts.map +1 -0
- package/dist/types/components/video/form-video.d.ts.map +1 -1
- package/dist/types/components/video/index.d.ts +2 -0
- package/dist/types/components/video/index.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/__tests__/components/field-validation-settings/field-validation-settings-input.spec.tsx +20 -1
- package/src/__tests__/exports/controlled-inputs.spec.tsx +677 -1
- package/src/components/address/input/address-input.st.css.ts +2 -2
- package/src/components/audio/actions/actions-menu/actions-menu.st.css.ts +2 -2
- package/src/components/audio/audio-field/controlled-audio.uni.driver.ts +35 -0
- package/src/components/audio/audio-field/form-audio-field.st.css.ts +2 -2
- package/src/components/audio/audio-field/form-audio-field.tsx +41 -1
- package/src/components/audio/audio-player/audio-player.st.css.ts +2 -2
- package/src/components/color-view/cell-color-view.st.css.ts +2 -2
- package/src/components/color-view/color-view.st.css.ts +2 -2
- package/src/components/controlled-input.uni.driver.ts +6 -0
- package/src/components/delete-dialog/delete-dialog.st.css.ts +2 -2
- package/src/components/document/form-document-field.st.css.ts +2 -2
- package/src/components/exclamation/exclamation.st.css.ts +2 -2
- package/src/components/field-validation-settings/field-validation-settings-input.tsx +22 -10
- package/src/components/highlighted-text/highlighted-text.st.css.ts +3 -3
- package/src/components/image/controlled-image.uni.driver.ts +30 -0
- package/src/components/image/form-image-field.tsx +124 -0
- package/src/components/image/form-image-input.tsx +13 -46
- package/src/components/image/index.ts +1 -0
- package/src/components/image/thumbnail-replace-overlay.st.css.ts +2 -2
- package/src/components/media-control/cell-media-edit-shell.st.css.ts +2 -2
- package/src/components/media-control/paste-url-button.st.css.ts +2 -2
- package/src/components/media-control/use-media-control.ts +4 -3
- package/src/components/media-gallery/cell-media-gallery-edit.tsx +14 -9
- package/src/components/media-gallery/form-media-gallery-field.st.css.ts +2 -2
- package/src/components/media-image/media-image.st.css.ts +3 -3
- package/src/components/media-image/overlays/overlay.st.css.ts +2 -2
- package/src/components/media-loader/media-loader.st.css.ts +2 -2
- package/src/components/media-tag/web-media-tag/media-tag.st.css.ts +2 -2
- package/src/components/multi-document/cell-multi-document-edit.st.css.ts +2 -2
- package/src/components/multi-document/cell-multi-document-edit.tsx +1 -1
- package/src/components/multi-document/multi-document-input/form-multi-document.st.css.ts +2 -2
- package/src/components/reference/cell-multi-reference-input.st.css.ts +2 -2
- package/src/components/reference/cell-reference-input.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.ts +2 -2
- package/src/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.ts +2 -2
- package/src/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.ts +2 -2
- package/src/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.ts +2 -2
- package/src/components/text/text-view.st.css.ts +2 -2
- package/src/components/video/controlled-video.uni.driver.ts +48 -0
- package/src/components/video/form-video-field.tsx +268 -0
- package/src/components/video/form-video.tsx +21 -179
- package/src/components/video/index.ts +6 -0
- package/src/styles.global.css +1 -1
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.FormImageField = exports.ControlledImageInput = void 0;
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _designSystem = require("@wix/design-system");
|
|
8
|
+
var _react2 = require("@wix/bex-core/react");
|
|
9
|
+
var _hooks = require("../../hooks");
|
|
10
|
+
var _getImageUrl = require("../../utils/get-image-url");
|
|
11
|
+
var _mediaConstants = require("../../utils/media-constants");
|
|
12
|
+
var _utils = require("../../utils");
|
|
13
|
+
var _mediaControl = require("../media-control");
|
|
14
|
+
var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/fields/dist/cjs/components/image/form-image-field.tsx";
|
|
15
|
+
// `invalid` is not part of this contract. ImageViewer has no error prop; it
|
|
16
|
+
// takes its error styling from the enclosing WDS FormField's status context.
|
|
17
|
+
// To show an error, render the field inside a FormField with status="error".
|
|
18
|
+
|
|
19
|
+
const FormImageField = ({
|
|
20
|
+
data,
|
|
21
|
+
onChange: onChangeImage,
|
|
22
|
+
onClear: onClearImage,
|
|
23
|
+
onInput,
|
|
24
|
+
onBlur,
|
|
25
|
+
readOnly,
|
|
26
|
+
autoFocus,
|
|
27
|
+
dataHook,
|
|
28
|
+
inputRef: forwardedRef
|
|
29
|
+
}) => {
|
|
30
|
+
const {
|
|
31
|
+
translate: t
|
|
32
|
+
} = (0, _react2.useWixPatternsContainer)();
|
|
33
|
+
const isMobile = (0, _react2.useIsMobile)();
|
|
34
|
+
const onChange = (0, _hooks.useWithCallback)(onChangeImage, onInput);
|
|
35
|
+
const onClear = (0, _hooks.useWithCallback)(onClearImage, onInput);
|
|
36
|
+
const [inputRef, setInputRef] = (0, _hooks.useMergedRef)(forwardedRef);
|
|
37
|
+
const {
|
|
38
|
+
callMedia,
|
|
39
|
+
onMediaLoad
|
|
40
|
+
} = (0, _mediaControl.useMediaControl)({
|
|
41
|
+
mediaType: _utils.MEDIA_TYPES.IMAGE,
|
|
42
|
+
value: data,
|
|
43
|
+
onChange,
|
|
44
|
+
autoFocus,
|
|
45
|
+
readOnly,
|
|
46
|
+
onBlur,
|
|
47
|
+
inputRef,
|
|
48
|
+
// The focus target is hidden behind ImageViewer's loader until the image
|
|
49
|
+
// arrives, so focusing has to wait for onImageLoad.
|
|
50
|
+
initialLoading: true
|
|
51
|
+
});
|
|
52
|
+
const canEdit = !isMobile && !readOnly;
|
|
53
|
+
return /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
|
|
54
|
+
width: "100%",
|
|
55
|
+
maxWidth: _mediaConstants.MEDIA_MAX_WIDTH,
|
|
56
|
+
__self: void 0,
|
|
57
|
+
__source: {
|
|
58
|
+
fileName: _jsxFileName,
|
|
59
|
+
lineNumber: 68,
|
|
60
|
+
columnNumber: 5
|
|
61
|
+
}
|
|
62
|
+
}, /*#__PURE__*/_react.default.createElement(_designSystem.ImageViewer
|
|
63
|
+
// ImageViewer keeps its focus node on whichever button is live, so
|
|
64
|
+
// one ref serves both the empty and filled states.
|
|
65
|
+
, {
|
|
66
|
+
ref: setInputRef,
|
|
67
|
+
imageUrl: data && (0, _getImageUrl.getImageUrl)(data),
|
|
68
|
+
dataHook: dataHook,
|
|
69
|
+
onImageLoad: onMediaLoad,
|
|
70
|
+
onAddImage: canEdit ? callMedia : undefined,
|
|
71
|
+
onUpdateImage: canEdit ? callMedia : undefined
|
|
72
|
+
// Empty, the only control is the add button, so anything that blocks
|
|
73
|
+
// picking disables the viewer. Filled, removal still works on mobile.
|
|
74
|
+
,
|
|
75
|
+
disabled: data ? Boolean(readOnly) : !canEdit
|
|
76
|
+
// The buttons render whether or not a handler is given, so the states
|
|
77
|
+
// that cannot use them have to take them away explicitly.
|
|
78
|
+
,
|
|
79
|
+
showUpdateButton: canEdit,
|
|
80
|
+
showRemoveButton: !readOnly && Boolean(onClearImage),
|
|
81
|
+
updateImageInfo: t('cairo.replace-image.tooltip'),
|
|
82
|
+
removeImageInfo: t('cairo.remove-image.tooltip'),
|
|
83
|
+
addImageInfo: t('cairo.add-image.tooltip'),
|
|
84
|
+
height: _mediaConstants.MEDIA_HEIGHT,
|
|
85
|
+
width: "100%",
|
|
86
|
+
fit: "cover",
|
|
87
|
+
onRemoveImage: onClear,
|
|
88
|
+
__self: void 0,
|
|
89
|
+
__source: {
|
|
90
|
+
fileName: _jsxFileName,
|
|
91
|
+
lineNumber: 69,
|
|
92
|
+
columnNumber: 7
|
|
93
|
+
}
|
|
94
|
+
}));
|
|
95
|
+
};
|
|
96
|
+
exports.FormImageField = FormImageField;
|
|
97
|
+
FormImageField.displayName = 'FormImageField';
|
|
98
|
+
const ControlledImageInput = ({
|
|
99
|
+
data,
|
|
100
|
+
onChange,
|
|
101
|
+
onBlur,
|
|
102
|
+
readOnly,
|
|
103
|
+
autoFocus,
|
|
104
|
+
dataHook
|
|
105
|
+
}) => /*#__PURE__*/_react.default.createElement(FormImageField, {
|
|
106
|
+
data: data,
|
|
107
|
+
onChange: onChange
|
|
108
|
+
// FormImageField reports removal through onClear, not onChange.
|
|
109
|
+
,
|
|
110
|
+
onClear: () => onChange(undefined),
|
|
111
|
+
onBlur: onBlur,
|
|
112
|
+
readOnly: readOnly,
|
|
113
|
+
autoFocus: autoFocus,
|
|
114
|
+
dataHook: dataHook,
|
|
115
|
+
__self: void 0,
|
|
116
|
+
__source: {
|
|
117
|
+
fileName: _jsxFileName,
|
|
118
|
+
lineNumber: 112,
|
|
119
|
+
columnNumber: 3
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
exports.ControlledImageInput = ControlledImageInput;
|
|
123
|
+
ControlledImageInput.displayName = 'ControlledImageInput';
|
|
124
|
+
//# sourceMappingURL=form-image-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_designSystem","_react2","_hooks","_getImageUrl","_mediaConstants","_utils","_mediaControl","_jsxFileName","FormImageField","data","onChange","onChangeImage","onClear","onClearImage","onInput","onBlur","readOnly","autoFocus","dataHook","inputRef","forwardedRef","translate","t","useWixPatternsContainer","isMobile","useIsMobile","useWithCallback","setInputRef","useMergedRef","callMedia","onMediaLoad","useMediaControl","mediaType","MEDIA_TYPES","IMAGE","value","initialLoading","canEdit","default","createElement","Box","width","maxWidth","MEDIA_MAX_WIDTH","__self","__source","fileName","lineNumber","columnNumber","ImageViewer","ref","imageUrl","getImageUrl","onImageLoad","onAddImage","undefined","onUpdateImage","disabled","Boolean","showUpdateButton","showRemoveButton","updateImageInfo","removeImageInfo","addImageInfo","height","MEDIA_HEIGHT","fit","onRemoveImage","exports","displayName","ControlledImageInput"],"sources":["../../../../src/components/image/form-image-field.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport React from 'react';\n\nimport { Box, ImageViewer } from '@wix/design-system';\nimport { useIsMobile, useWixPatternsContainer } from '@wix/bex-core/react';\n\nimport type { ControlledInputProps } from '../../types/controlled-input';\nimport { useMergedRef, useWithCallback } from '../../hooks';\nimport { getImageUrl } from '../../utils/get-image-url';\nimport { MEDIA_HEIGHT, MEDIA_MAX_WIDTH } from '../../utils/media-constants';\nimport { MEDIA_TYPES } from '../../utils';\nimport type { FormMediaControlProps } from '../media-control';\nimport { useMediaControl } from '../media-control';\n\ninterface ImageViewerActions {\n focus: () => void;\n}\n\n// `invalid` is not part of this contract. ImageViewer has no error prop; it\n// takes its error styling from the enclosing WDS FormField's status context.\n// To show an error, render the field inside a FormField with status=\"error\".\nexport interface FormImageFieldProps\n extends Omit<FormMediaControlProps, 'invalid'> {\n /**\n * Fires when the media manager closes, whether or not a file was picked.\n * A media field has no text control to blur, so the picker closing is its\n * blur signal.\n */\n onBlur?: () => void;\n}\n\nexport const FormImageField: FC<FormImageFieldProps> = ({\n data,\n onChange: onChangeImage,\n onClear: onClearImage,\n onInput,\n onBlur,\n readOnly,\n autoFocus,\n dataHook,\n inputRef: forwardedRef,\n}) => {\n const { translate: t } = useWixPatternsContainer();\n const isMobile = useIsMobile();\n\n const onChange = useWithCallback(onChangeImage, onInput);\n const onClear = useWithCallback(onClearImage, onInput);\n\n const [inputRef, setInputRef] =\n useMergedRef<ImageViewerActions>(forwardedRef);\n\n const { callMedia, onMediaLoad } = useMediaControl({\n mediaType: MEDIA_TYPES.IMAGE,\n value: data,\n onChange,\n autoFocus,\n readOnly,\n onBlur,\n inputRef,\n // The focus target is hidden behind ImageViewer's loader until the image\n // arrives, so focusing has to wait for onImageLoad.\n initialLoading: true,\n });\n\n const canEdit = !isMobile && !readOnly;\n\n return (\n <Box width=\"100%\" maxWidth={MEDIA_MAX_WIDTH}>\n <ImageViewer\n // ImageViewer keeps its focus node on whichever button is live, so\n // one ref serves both the empty and filled states.\n ref={setInputRef}\n imageUrl={data && getImageUrl(data)}\n dataHook={dataHook}\n onImageLoad={onMediaLoad}\n onAddImage={canEdit ? callMedia : undefined}\n onUpdateImage={canEdit ? callMedia : undefined}\n // Empty, the only control is the add button, so anything that blocks\n // picking disables the viewer. Filled, removal still works on mobile.\n disabled={data ? Boolean(readOnly) : !canEdit}\n // The buttons render whether or not a handler is given, so the states\n // that cannot use them have to take them away explicitly.\n showUpdateButton={canEdit}\n showRemoveButton={!readOnly && Boolean(onClearImage)}\n updateImageInfo={t('cairo.replace-image.tooltip')}\n removeImageInfo={t('cairo.remove-image.tooltip')}\n addImageInfo={t('cairo.add-image.tooltip')}\n height={MEDIA_HEIGHT}\n width=\"100%\"\n fit=\"cover\"\n onRemoveImage={onClear}\n />\n </Box>\n );\n};\n\nFormImageField.displayName = 'FormImageField';\n\nexport type ControlledImageInputProps = Omit<\n ControlledInputProps<string | undefined>,\n 'invalid'\n>;\n\nexport const ControlledImageInput: FC<ControlledImageInputProps> = ({\n data,\n onChange,\n onBlur,\n readOnly,\n autoFocus,\n dataHook,\n}) => (\n <FormImageField\n data={data}\n onChange={onChange}\n // FormImageField reports removal through onClear, not onChange.\n onClear={() => onChange(undefined)}\n onBlur={onBlur}\n readOnly={readOnly}\n autoFocus={autoFocus}\n dataHook={dataHook}\n />\n);\n\nControlledImageInput.displayName = 'ControlledImageInput';\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,9 +9,8 @@ var _mobxReactLite = require("mobx-react-lite");
|
|
|
9
9
|
var _react2 = require("@wix/bex-core/react");
|
|
10
10
|
var _form = require("@wix/bex-core/form");
|
|
11
11
|
var _string = require("../../validations/string");
|
|
12
|
-
var _getImageUrl = require("../../utils/get-image-url");
|
|
13
|
-
var _mediaConstants = require("../../utils/media-constants");
|
|
14
12
|
var _hooks = require("../../hooks");
|
|
13
|
+
var _formImageField = require("./form-image-field");
|
|
15
14
|
var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/fields/dist/cjs/components/image/form-image-input.tsx";
|
|
16
15
|
const _FormImageInput = props => {
|
|
17
16
|
var _field$validation2, _controller$fieldStat;
|
|
@@ -22,26 +21,8 @@ const _FormImageInput = props => {
|
|
|
22
21
|
data
|
|
23
22
|
} = props;
|
|
24
23
|
const {
|
|
25
|
-
translate: t
|
|
26
|
-
openMediaManager
|
|
24
|
+
translate: t
|
|
27
25
|
} = (0, _react2.useWixPatternsContainer)();
|
|
28
|
-
const isMobile = (0, _react2.useIsMobile)();
|
|
29
|
-
async function openMedia() {
|
|
30
|
-
if (!openMediaManager) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
try {
|
|
34
|
-
var _chosenMediaItems$ite;
|
|
35
|
-
const chosenMediaItems = await openMediaManager({
|
|
36
|
-
multiSelect: false,
|
|
37
|
-
category: 'IMAGE'
|
|
38
|
-
});
|
|
39
|
-
const newImage = chosenMediaItems == null || (_chosenMediaItems$ite = chosenMediaItems.items[0]) == null || (_chosenMediaItems$ite = _chosenMediaItems$ite.media) == null || (_chosenMediaItems$ite = _chosenMediaItems$ite.image) == null ? void 0 : _chosenMediaItems$ite.image;
|
|
40
|
-
controller.field.onChange(newImage);
|
|
41
|
-
} catch (error) {
|
|
42
|
-
console.error('Error opening Media Manager or no files selected:', error);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
26
|
const controller = (0, _form.useController)({
|
|
46
27
|
name: (field == null ? void 0 : field.id) ?? '',
|
|
47
28
|
control: formControl,
|
|
@@ -57,7 +38,6 @@ const _FormImageInput = props => {
|
|
|
57
38
|
}
|
|
58
39
|
});
|
|
59
40
|
const setFieldRef = (0, _hooks.useFieldRef)(controller.field.ref);
|
|
60
|
-
const imageUrl = controller.field.value && (0, _getImageUrl.getImageUrl)(controller.field.value);
|
|
61
41
|
return /*#__PURE__*/_react.default.createElement(_designSystem.FormField, {
|
|
62
42
|
label: field.displayName,
|
|
63
43
|
required: (_field$validation2 = field.validation) == null ? void 0 : _field$validation2.required,
|
|
@@ -67,42 +47,25 @@ const _FormImageInput = props => {
|
|
|
67
47
|
__self: void 0,
|
|
68
48
|
__source: {
|
|
69
49
|
fileName: _jsxFileName,
|
|
70
|
-
lineNumber:
|
|
50
|
+
lineNumber: 37,
|
|
71
51
|
columnNumber: 5
|
|
72
52
|
}
|
|
73
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
__self: void 0,
|
|
77
|
-
__source: {
|
|
78
|
-
fileName: _jsxFileName,
|
|
79
|
-
lineNumber: 67,
|
|
80
|
-
columnNumber: 7
|
|
81
|
-
}
|
|
82
|
-
}, /*#__PURE__*/_react.default.createElement(_designSystem.ImageViewer
|
|
83
|
-
// ImageViewer keeps its focus node on whichever button is live, so
|
|
84
|
-
// one ref serves both the empty and filled states. Lets
|
|
85
|
-
// react-hook-form's shouldFocusError reach this field.
|
|
53
|
+
}, /*#__PURE__*/_react.default.createElement(_formImageField.FormImageField
|
|
54
|
+
// Hands the live button to react-hook-form so shouldFocusError can
|
|
55
|
+
// reach this field when it blocks save.
|
|
86
56
|
, {
|
|
87
|
-
|
|
88
|
-
|
|
57
|
+
inputRef: setFieldRef,
|
|
58
|
+
data: controller.field.value,
|
|
59
|
+
onChange: value => controller.field.onChange(value),
|
|
60
|
+
onClear: () => controller.field.onChange(null),
|
|
89
61
|
dataHook: `image-${field.id}`,
|
|
90
|
-
onAddImage: isMobile ? undefined : () => openMedia(),
|
|
91
|
-
onUpdateImage: isMobile ? undefined : () => openMedia(),
|
|
92
|
-
updateImageInfo: t('cairo.replace-image.tooltip'),
|
|
93
|
-
removeImageInfo: t('cairo.remove-image.tooltip'),
|
|
94
|
-
addImageInfo: t('cairo.add-image.tooltip'),
|
|
95
|
-
height: _mediaConstants.MEDIA_HEIGHT,
|
|
96
|
-
width: "100%",
|
|
97
|
-
fit: "cover",
|
|
98
|
-
onRemoveImage: () => controller.field.onChange(null),
|
|
99
62
|
__self: void 0,
|
|
100
63
|
__source: {
|
|
101
64
|
fileName: _jsxFileName,
|
|
102
|
-
lineNumber:
|
|
103
|
-
columnNumber:
|
|
65
|
+
lineNumber: 44,
|
|
66
|
+
columnNumber: 7
|
|
104
67
|
}
|
|
105
|
-
}))
|
|
68
|
+
}));
|
|
106
69
|
};
|
|
107
70
|
const FormImageInput = exports.FormImageInput = (0, _mobxReactLite.observer)(_FormImageInput);
|
|
108
71
|
//# sourceMappingURL=form-image-input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_designSystem","_mobxReactLite","_react2","_form","_string","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_designSystem","_mobxReactLite","_react2","_form","_string","_hooks","_formImageField","_jsxFileName","_FormImageInput","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","isEmpty","setFieldRef","useFieldRef","ref","default","createElement","FormField","label","displayName","status","fieldState","error","undefined","statusMessage","message","__self","__source","fileName","lineNumber","columnNumber","FormImageField","inputRef","onChange","onClear","FormImageInput","exports","observer"],"sources":["../../../../src/components/image/form-image-input.tsx"],"sourcesContent":["import React from 'react';\nimport { FormField } from '@wix/design-system';\nimport { observer } from 'mobx-react-lite';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport { useController } from '@wix/bex-core/form';\n\nimport { BaseInputProps } from '../../types/base-input';\nimport { isEmpty } from '../../validations/string';\nimport { useFieldRef } from '../../hooks';\nimport { FormImageField } from './form-image-field';\n\nexport interface FormImageInputProps extends BaseInputProps<string> {}\n\nconst _FormImageInput = (props: FormImageInputProps) => {\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 (field.validation?.required && isEmpty(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 <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 <FormImageField\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 onClear={() => controller.field.onChange(null)}\n dataHook={`image-${field.id}`}\n />\n </FormField>\n );\n};\n\nexport const FormImageInput = observer(_FormImageInput);\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAGA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AAAoD,IAAAQ,YAAA;AAIpD,MAAMC,eAAe,GAAIC,KAA0B,IAAK;EAAA,IAAAC,kBAAA,EAAAC,qBAAA;EACtD,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,IAAI,CAAAA,iBAAA,GAAAhB,KAAK,CAACiB,UAAU,aAAhBD,iBAAA,CAAkBE,QAAQ,IAAI,IAAAC,eAAO,EAACJ,KAAK,CAAC,EAAE;UAChD,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,oBACErC,MAAA,CAAAsC,OAAA,CAAAC,aAAA,CAACpC,aAAA,CAAAqC,SAAS;IACRC,KAAK,EAAE1B,KAAK,CAAC2B,WAAY;IACzBT,QAAQ,GAAApB,kBAAA,GAAEE,KAAK,CAACiB,UAAU,qBAAhBnB,kBAAA,CAAkBoB,QAAS;IACrCU,MAAM,EAAErB,UAAU,CAACsB,UAAU,CAACC,KAAK,GAAG,OAAO,GAAGC,SAAU;IAC1DC,aAAa,GAAAjC,qBAAA,GAAEQ,UAAU,CAACsB,UAAU,CAACC,KAAK,qBAA3B/B,qBAAA,CAA6BkC,OAAQ;IACpDhC,QAAQ,EAAEA,QAAS;IAAAiC,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAAzC,YAAA;MAAA0C,UAAA;MAAAC,YAAA;IAAA;EAAA,gBAEnBrD,MAAA,CAAAsC,OAAA,CAAAC,aAAA,CAAC9B,eAAA,CAAA6C;EACC;EACA;EAAA;IACAC,QAAQ,EAAEpB,WAAY;IACtBjB,IAAI,EAAEI,UAAU,CAACP,KAAK,CAACe,KAAM;IAC7B0B,QAAQ,EAAG1B,KAAK,IAAKR,UAAU,CAACP,KAAK,CAACyC,QAAQ,CAAC1B,KAAK,CAAE;IACtD2B,OAAO,EAAEA,CAAA,KAAMnC,UAAU,CAACP,KAAK,CAACyC,QAAQ,CAAC,IAAI,CAAE;IAC/CxC,QAAQ,EAAE,SAASD,KAAK,CAACU,EAAE,EAAG;IAAAwB,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAAzC,YAAA;MAAA0C,UAAA;MAAAC,YAAA;IAAA;EAAA,CAC/B,CACQ,CAAC;AAEhB,CAAC;AAEM,MAAMK,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,IAAAE,uBAAQ,EAACjD,eAAe,CAAC","ignoreList":[]}
|
|
@@ -25,6 +25,12 @@ Object.keys(_cellImageEdit).forEach(function (key) {
|
|
|
25
25
|
if (key in exports && exports[key] === _cellImageEdit[key]) return;
|
|
26
26
|
exports[key] = _cellImageEdit[key];
|
|
27
27
|
});
|
|
28
|
+
var _formImageField = require("./form-image-field");
|
|
29
|
+
Object.keys(_formImageField).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _formImageField[key]) return;
|
|
32
|
+
exports[key] = _formImageField[key];
|
|
33
|
+
});
|
|
28
34
|
var _formImageInput = require("./form-image-input");
|
|
29
35
|
Object.keys(_formImageInput).forEach(function (key) {
|
|
30
36
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_imageThumbnail","require","Object","keys","forEach","key","exports","_imageView","_imageViewField","_cellImageEdit","_formImageInput"],"sources":["../../../../src/components/image/index.ts"],"sourcesContent":["export * from './image-thumbnail';\nexport * from './image-view';\nexport * from './image-view-field';\nexport * from './cell-image-edit';\nexport * from './form-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,UAAA,GAAAN,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAI,UAAA,EAAAH,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAE,UAAA,CAAAF,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAE,UAAA,CAAAF,GAAA;AAAA;AACA,IAAAG,eAAA,GAAAP,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAK,eAAA,EAAAJ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAG,eAAA,CAAAH,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAG,eAAA,CAAAH,GAAA;AAAA;AACA,IAAAI,cAAA,GAAAR,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAM,cAAA,EAAAL,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAI,cAAA,CAAAJ,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAI,cAAA,CAAAJ,GAAA;AAAA;AACA,IAAAK,eAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,eAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,eAAA,CAAAL,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAK,eAAA,CAAAL,GAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_imageThumbnail","require","Object","keys","forEach","key","exports","_imageView","_imageViewField","_cellImageEdit","_formImageField","_formImageInput"],"sources":["../../../../src/components/image/index.ts"],"sourcesContent":["export * from './image-thumbnail';\nexport * from './image-view';\nexport * from './image-view-field';\nexport * from './cell-image-edit';\nexport * from './form-image-field';\nexport * from './form-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,UAAA,GAAAN,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAI,UAAA,EAAAH,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAE,UAAA,CAAAF,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAE,UAAA,CAAAF,GAAA;AAAA;AACA,IAAAG,eAAA,GAAAP,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAK,eAAA,EAAAJ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAG,eAAA,CAAAH,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAG,eAAA,CAAAH,GAAA;AAAA;AACA,IAAAI,cAAA,GAAAR,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAM,cAAA,EAAAL,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAI,cAAA,CAAAJ,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAI,cAAA,CAAAJ,GAAA;AAAA;AACA,IAAAK,eAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,eAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,eAAA,CAAAL,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAK,eAAA,CAAAL,GAAA;AAAA;AACA,IAAAM,eAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,eAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,eAAA,CAAAN,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAM,eAAA,CAAAN,GAAA;AAAA","ignoreList":[]}
|
|
@@ -5,15 +5,15 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
|
|
|
5
5
|
var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
|
|
6
6
|
// @ts-nocheck
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "thumbnailreplaceoverlay1623114284";
|
|
9
9
|
var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
|
|
10
10
|
var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
|
|
11
11
|
var style = exports.style = _style_;
|
|
12
12
|
var st = exports.st = _style_;
|
|
13
13
|
var namespace = exports.namespace = _namespace_;
|
|
14
14
|
var classes = exports.classes = {
|
|
15
|
-
"root": "
|
|
16
|
-
"icon": "
|
|
15
|
+
"root": "thumbnailreplaceoverlay1623114284__root",
|
|
16
|
+
"icon": "thumbnailreplaceoverlay1623114284__icon"
|
|
17
17
|
};
|
|
18
18
|
var keyframes = exports.keyframes = {};
|
|
19
19
|
var layers = exports.layers = {};
|
|
@@ -1 +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/image/thumbnail-replace-overlay.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"
|
|
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/image/thumbnail-replace-overlay.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"thumbnailreplaceoverlay1623114284\";\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\":\"thumbnailreplaceoverlay1623114284__root\",\"icon\":\"thumbnailreplaceoverlay1623114284__icon\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,mCAAmC;AACrD,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,yCAAyC;EAAC,MAAM,EAAC;AAAyC,CAAC;AACjH,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,CAAC,CAAC","ignoreList":[]}
|
|
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
|
|
|
5
5
|
var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
|
|
6
6
|
// @ts-nocheck
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "cellmediaeditshell1721400213";
|
|
9
9
|
var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
|
|
10
10
|
var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
|
|
11
11
|
var style = exports.style = _style_;
|
|
12
12
|
var st = exports.st = _style_;
|
|
13
13
|
var namespace = exports.namespace = _namespace_;
|
|
14
14
|
var classes = exports.classes = {
|
|
15
|
-
"root": "
|
|
15
|
+
"root": "cellmediaeditshell1721400213__root"
|
|
16
16
|
};
|
|
17
17
|
var keyframes = exports.keyframes = {};
|
|
18
18
|
var layers = exports.layers = {};
|
|
@@ -1 +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-control/cell-media-edit-shell.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"
|
|
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-control/cell-media-edit-shell.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"cellmediaeditshell1721400213\";\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\":\"cellmediaeditshell1721400213__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \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;AAAoC,CAAC;AAC3D,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,CAAC,CAAC","ignoreList":[]}
|
|
@@ -5,16 +5,16 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
|
|
|
5
5
|
var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
|
|
6
6
|
// @ts-nocheck
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "pasteurlbutton3225979476";
|
|
9
9
|
var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
|
|
10
10
|
var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
|
|
11
11
|
var style = exports.style = _style_;
|
|
12
12
|
var st = exports.st = _style_;
|
|
13
13
|
var namespace = exports.namespace = _namespace_;
|
|
14
14
|
var classes = exports.classes = {
|
|
15
|
-
"root": "
|
|
16
|
-
"iconButtonTooltip": "
|
|
17
|
-
"iconButton": "
|
|
15
|
+
"root": "pasteurlbutton3225979476__root",
|
|
16
|
+
"iconButtonTooltip": "pasteurlbutton3225979476__iconButtonTooltip",
|
|
17
|
+
"iconButton": "pasteurlbutton3225979476__iconButton"
|
|
18
18
|
};
|
|
19
19
|
var keyframes = exports.keyframes = {};
|
|
20
20
|
var layers = exports.layers = {};
|
|
@@ -1 +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-control/paste-url-button.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"
|
|
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-control/paste-url-button.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"pasteurlbutton3225979476\";\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\":\"pasteurlbutton3225979476__root\",\"iconButtonTooltip\":\"pasteurlbutton3225979476__iconButtonTooltip\",\"iconButton\":\"pasteurlbutton3225979476__iconButton\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \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,mBAAmB,EAAC,6CAA6C;EAAC,YAAY,EAAC;AAAsC,CAAC;AAC7K,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,CAAC,CAAC","ignoreList":[]}
|
|
@@ -89,7 +89,10 @@ function useMediaControl({
|
|
|
89
89
|
inputRef == null || (_inputRef$current2 = inputRef.current) == null || _inputRef$current2.focus();
|
|
90
90
|
}
|
|
91
91
|
}, [autoFocus, value, inputRef, viewRef]);
|
|
92
|
-
|
|
92
|
+
|
|
93
|
+
// `loading` is a dependency because the focus target does not exist while the
|
|
94
|
+
// loader placeholder is up — the effect has to run again once it is gone.
|
|
95
|
+
(0, _react.useEffect)(() => setActive(), [setActive, loading]);
|
|
93
96
|
const onMediaLoad = (0, _react.useCallback)(() => setLoading(false), []);
|
|
94
97
|
const callMedia = (0, _react.useCallback)(async index => {
|
|
95
98
|
if (mediaRequested.current || readOnly) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_react2","_media","_mediaUtils","_autoFieldTypes","MEDIA_TYPE_TO_CATEGORY","MEDIA_TYPES","IMAGE","VIDEO","AUDIO","extractAudioUrl","audio","_audio$assets","firstAsset","assets","url","undefined","extractMediaUri","mediaItem","media","_media$image","_media$video","_media$document","image","video","document","useMediaControl","mediaType","readOnly","autoFocus","initialLoading","inputRef","viewRef","onFocus","onBlur","params","value","multiSelect","container","useContext","WixPatternsContainerContext","openMediaManager","loading","setLoading","useState","Boolean","mediaRequested","useRef","setActive","useCallback","_viewRef$current","_inputRef$current","current","focus","_inputRef$current2","useEffect","onMediaLoad","callMedia","index","onChange","category","Error","mediaManagerData","items","files","length","newURIs","map","newValue","splice","e","console","error","downloadMedia","mediaUri","_result$downloadUrls","result","generateFileDownloadUrl","downloadUrl","downloadUrls","executeDownloading","getMediaURL"],"sources":["../../../../src/components/media-control/use-media-control.ts"],"sourcesContent":["import { useRef, useState, useEffect, useCallback, useContext } from 'react';\nimport { WixPatternsContainerContext } from '@wix/bex-core/react';\nimport { files } from '@wix/media';\n\nimport { MEDIA_TYPES } from '../../utils/media-utils';\nimport { executeDownloading } from '../../utils/media-utils';\nimport { getMediaURL } from '../../auto-field-types';\n\ntype Focusable = { focus: () => void };\ntype FocusableRef =\n | React.RefObject<Focusable | undefined>\n | React.MutableRefObject<Focusable | undefined>;\n\ninterface UseMediaControlBaseParams {\n mediaType: MEDIA_TYPES;\n autoFocus?: boolean;\n onFocus?: () => void;\n onBlur?: () => void;\n readOnly?: boolean;\n initialLoading?: boolean;\n inputRef?: FocusableRef;\n viewRef?: FocusableRef;\n}\n\ninterface UseSingleMediaControlParams extends UseMediaControlBaseParams {\n value?: string;\n onChange?: (value: string) => void;\n multiSelect?: false;\n}\n\ninterface UseMultiMediaControlParams extends UseMediaControlBaseParams {\n value?: string[];\n onChange?: (value: string[]) => void;\n multiSelect: true;\n}\n\nexport type UseMediaControlParams =\n | UseSingleMediaControlParams\n | UseMultiMediaControlParams;\n\ninterface UseMediaControlBaseReturnType {\n loading: boolean;\n onMediaLoad: () => void;\n}\n\ninterface UseSingleMediaControlReturnType\n extends UseMediaControlBaseReturnType {\n callMedia(): Promise<boolean>;\n downloadMedia(mediaUri?: string): Promise<void>;\n}\n\ninterface UseMultiMediaControlReturnType extends UseMediaControlBaseReturnType {\n callMedia(index?: number): Promise<boolean>;\n downloadMedia(mediaUri?: string): Promise<void>;\n}\n\nexport type UseMediaControlReturnType =\n | UseSingleMediaControlReturnType\n | UseMultiMediaControlReturnType;\n\nconst MEDIA_TYPE_TO_CATEGORY: Partial<Record<MEDIA_TYPES, string>> = {\n [MEDIA_TYPES.IMAGE]: 'IMAGE',\n [MEDIA_TYPES.VIDEO]: 'VIDEO',\n [MEDIA_TYPES.AUDIO]: 'MUSIC',\n};\n\n/**\n * Extracts a playable URL from media.audio, which may be:\n * - a string (wix:audio:// URI or direct URL)\n * - an object with { audio: string } (nested URI)\n * - an object with { assets: [{ url }] } or { assets: [string] }\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst extractAudioUrl = (audio: any): string | undefined => {\n if (audio) {\n if (typeof audio === 'string') {\n return audio;\n }\n if (typeof audio.audio === 'string') {\n return audio.audio;\n }\n const firstAsset = audio.assets?.[0];\n if (typeof firstAsset === 'string') {\n return firstAsset;\n }\n if (typeof firstAsset?.url === 'string') {\n return firstAsset.url;\n }\n }\n return undefined;\n};\n\n/**\n * Extracts the Wix media URI from media manager result.\n * Media manager returns different structures for different media types.\n */\nconst extractMediaUri = (mediaItem: any): string => {\n const { media } = mediaItem || {};\n if (media) {\n return (\n // Try each media type: the URI is nested under media.[type].[type], fallback for direct string values\n media.image?.image ||\n (typeof media.image === 'string' && media.image) ||\n media.video?.video ||\n (typeof media.video === 'string' && media.video) ||\n media.document?.document ||\n (typeof media.document === 'string' && media.document) ||\n extractAudioUrl(media.audio) ||\n ''\n );\n }\n\n return '';\n};\n\nexport function useMediaControl(\n params: UseSingleMediaControlParams,\n): UseSingleMediaControlReturnType;\n\nexport function useMediaControl(\n params: UseMultiMediaControlParams,\n): UseMultiMediaControlReturnType;\n\nexport function useMediaControl({\n mediaType,\n readOnly,\n autoFocus,\n initialLoading,\n inputRef,\n viewRef,\n onFocus,\n onBlur,\n ...params\n}: UseMediaControlParams): UseMediaControlReturnType {\n const { value, multiSelect } = params;\n const container = useContext(WixPatternsContainerContext);\n const openMediaManager = container?.openMediaManager;\n\n const [loading, setLoading] = useState(Boolean(initialLoading && value));\n const mediaRequested = useRef(false);\n\n const setActive = useCallback(() => {\n if (!autoFocus) {\n return;\n }\n\n if (value) {\n viewRef && viewRef?.current?.focus();\n !viewRef && inputRef?.current?.focus();\n } else {\n inputRef?.current?.focus();\n }\n }, [autoFocus, value, inputRef, viewRef]);\n\n useEffect(() => setActive(), [setActive]);\n\n const onMediaLoad = useCallback(() => setLoading(false), []);\n\n const callMedia = useCallback(\n async (index?: number): Promise<boolean> => {\n if (mediaRequested.current || readOnly) {\n return false;\n }\n\n if (!params.onChange) {\n return false;\n }\n\n mediaRequested.current = true;\n\n onFocus?.();\n setLoading(true);\n\n try {\n const category = MEDIA_TYPE_TO_CATEGORY[mediaType];\n if (!openMediaManager) {\n throw new Error(\n 'Media Control Error: openMediaManager is not available in the current context.',\n );\n }\n const mediaManagerData = await openMediaManager({\n multiSelect: Boolean(multiSelect),\n ...(category && { category }),\n });\n\n onBlur?.();\n setLoading(false);\n\n setActive();\n\n mediaRequested.current = false;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items =\n mediaManagerData?.items || (mediaManagerData as any)?.files;\n\n if (!items?.length) {\n return false;\n }\n\n if (params.multiSelect) {\n const newURIs = items.map(extractMediaUri);\n\n if (!newURIs.length) {\n throw new Error(\n `Media Control Error: Media Manager returns not-covered Multi-Document data.`,\n );\n }\n\n if (typeof index === 'number') {\n const newValue = value ? [...value] : [];\n newValue.splice(index, 1, ...newURIs);\n params.onChange(newValue);\n } else {\n params.onChange([...((value as string[]) ?? []), ...newURIs]);\n }\n } else {\n params.onChange(extractMediaUri(items[0]));\n }\n return true;\n } catch (e) {\n setLoading(false);\n mediaRequested.current = false;\n console.error(`Media Control Error:`, e);\n return false;\n }\n },\n [\n mediaType,\n multiSelect,\n onBlur,\n onFocus,\n openMediaManager,\n params,\n readOnly,\n setActive,\n value,\n ],\n );\n\n const downloadMedia = useCallback(async (mediaUri?: string) => {\n if (!mediaUri) {\n return;\n }\n\n try {\n const result = await files.generateFileDownloadUrl(mediaUri);\n const downloadUrl = result.downloadUrls?.[0]?.url;\n if (!downloadUrl) {\n throw new Error('No download URL returned');\n }\n return executeDownloading(downloadUrl);\n } catch (error) {\n // Fallback: open the static URL in a new tab\n console.error('Media download error, falling back to static URL:', error);\n return executeDownloading(getMediaURL(mediaUri));\n }\n }, []);\n\n return {\n loading,\n callMedia,\n downloadMedia,\n onMediaLoad,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_react2","_media","_mediaUtils","_autoFieldTypes","MEDIA_TYPE_TO_CATEGORY","MEDIA_TYPES","IMAGE","VIDEO","AUDIO","extractAudioUrl","audio","_audio$assets","firstAsset","assets","url","undefined","extractMediaUri","mediaItem","media","_media$image","_media$video","_media$document","image","video","document","useMediaControl","mediaType","readOnly","autoFocus","initialLoading","inputRef","viewRef","onFocus","onBlur","params","value","multiSelect","container","useContext","WixPatternsContainerContext","openMediaManager","loading","setLoading","useState","Boolean","mediaRequested","useRef","setActive","useCallback","_viewRef$current","_inputRef$current","current","focus","_inputRef$current2","useEffect","onMediaLoad","callMedia","index","onChange","category","Error","mediaManagerData","items","files","length","newURIs","map","newValue","splice","e","console","error","downloadMedia","mediaUri","_result$downloadUrls","result","generateFileDownloadUrl","downloadUrl","downloadUrls","executeDownloading","getMediaURL"],"sources":["../../../../src/components/media-control/use-media-control.ts"],"sourcesContent":["import { useRef, useState, useEffect, useCallback, useContext } from 'react';\nimport { WixPatternsContainerContext } from '@wix/bex-core/react';\nimport { files } from '@wix/media';\n\nimport { executeDownloading, MEDIA_TYPES } from '../../utils/media-utils';\nimport { getMediaURL } from '../../auto-field-types';\n\ntype Focusable = { focus: () => void };\ntype FocusableRef =\n | React.RefObject<Focusable | undefined>\n | React.MutableRefObject<Focusable | undefined>;\n\ninterface UseMediaControlBaseParams {\n mediaType: MEDIA_TYPES;\n autoFocus?: boolean;\n onFocus?: () => void;\n onBlur?: () => void;\n readOnly?: boolean;\n initialLoading?: boolean;\n inputRef?: FocusableRef;\n viewRef?: FocusableRef;\n}\n\ninterface UseSingleMediaControlParams extends UseMediaControlBaseParams {\n value?: string;\n onChange?: (value: string) => void;\n multiSelect?: false;\n}\n\ninterface UseMultiMediaControlParams extends UseMediaControlBaseParams {\n value?: string[];\n onChange?: (value: string[]) => void;\n multiSelect: true;\n}\n\nexport type UseMediaControlParams =\n | UseSingleMediaControlParams\n | UseMultiMediaControlParams;\n\ninterface UseMediaControlBaseReturnType {\n loading: boolean;\n onMediaLoad: () => void;\n}\n\ninterface UseSingleMediaControlReturnType\n extends UseMediaControlBaseReturnType {\n callMedia(): Promise<boolean>;\n downloadMedia(mediaUri?: string): Promise<void>;\n}\n\ninterface UseMultiMediaControlReturnType extends UseMediaControlBaseReturnType {\n callMedia(index?: number): Promise<boolean>;\n downloadMedia(mediaUri?: string): Promise<void>;\n}\n\nexport type UseMediaControlReturnType =\n | UseSingleMediaControlReturnType\n | UseMultiMediaControlReturnType;\n\nconst MEDIA_TYPE_TO_CATEGORY: Partial<Record<MEDIA_TYPES, string>> = {\n [MEDIA_TYPES.IMAGE]: 'IMAGE',\n [MEDIA_TYPES.VIDEO]: 'VIDEO',\n [MEDIA_TYPES.AUDIO]: 'MUSIC',\n};\n\n/**\n * Extracts a playable URL from media.audio, which may be:\n * - a string (wix:audio:// URI or direct URL)\n * - an object with { audio: string } (nested URI)\n * - an object with { assets: [{ url }] } or { assets: [string] }\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst extractAudioUrl = (audio: any): string | undefined => {\n if (audio) {\n if (typeof audio === 'string') {\n return audio;\n }\n if (typeof audio.audio === 'string') {\n return audio.audio;\n }\n const firstAsset = audio.assets?.[0];\n if (typeof firstAsset === 'string') {\n return firstAsset;\n }\n if (typeof firstAsset?.url === 'string') {\n return firstAsset.url;\n }\n }\n return undefined;\n};\n\n/**\n * Extracts the Wix media URI from media manager result.\n * Media manager returns different structures for different media types.\n */\nconst extractMediaUri = (mediaItem: any): string => {\n const { media } = mediaItem || {};\n if (media) {\n return (\n // Try each media type: the URI is nested under media.[type].[type], fallback for direct string values\n media.image?.image ||\n (typeof media.image === 'string' && media.image) ||\n media.video?.video ||\n (typeof media.video === 'string' && media.video) ||\n media.document?.document ||\n (typeof media.document === 'string' && media.document) ||\n extractAudioUrl(media.audio) ||\n ''\n );\n }\n\n return '';\n};\n\nexport function useMediaControl(\n params: UseSingleMediaControlParams,\n): UseSingleMediaControlReturnType;\n\nexport function useMediaControl(\n params: UseMultiMediaControlParams,\n): UseMultiMediaControlReturnType;\n\nexport function useMediaControl({\n mediaType,\n readOnly,\n autoFocus,\n initialLoading,\n inputRef,\n viewRef,\n onFocus,\n onBlur,\n ...params\n}: UseMediaControlParams): UseMediaControlReturnType {\n const { value, multiSelect } = params;\n const container = useContext(WixPatternsContainerContext);\n const openMediaManager = container?.openMediaManager;\n\n const [loading, setLoading] = useState(Boolean(initialLoading && value));\n const mediaRequested = useRef(false);\n\n const setActive = useCallback(() => {\n if (!autoFocus) {\n return;\n }\n\n if (value) {\n viewRef && viewRef?.current?.focus();\n !viewRef && inputRef?.current?.focus();\n } else {\n inputRef?.current?.focus();\n }\n }, [autoFocus, value, inputRef, viewRef]);\n\n // `loading` is a dependency because the focus target does not exist while the\n // loader placeholder is up — the effect has to run again once it is gone.\n useEffect(() => setActive(), [setActive, loading]);\n\n const onMediaLoad = useCallback(() => setLoading(false), []);\n\n const callMedia = useCallback(\n async (index?: number): Promise<boolean> => {\n if (mediaRequested.current || readOnly) {\n return false;\n }\n\n if (!params.onChange) {\n return false;\n }\n\n mediaRequested.current = true;\n\n onFocus?.();\n setLoading(true);\n\n try {\n const category = MEDIA_TYPE_TO_CATEGORY[mediaType];\n if (!openMediaManager) {\n throw new Error(\n 'Media Control Error: openMediaManager is not available in the current context.',\n );\n }\n const mediaManagerData = await openMediaManager({\n multiSelect: Boolean(multiSelect),\n ...(category && { category }),\n });\n\n onBlur?.();\n setLoading(false);\n\n setActive();\n\n mediaRequested.current = false;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items =\n mediaManagerData?.items || (mediaManagerData as any)?.files;\n\n if (!items?.length) {\n return false;\n }\n\n if (params.multiSelect) {\n const newURIs = items.map(extractMediaUri);\n\n if (!newURIs.length) {\n throw new Error(\n `Media Control Error: Media Manager returns not-covered Multi-Document data.`,\n );\n }\n\n if (typeof index === 'number') {\n const newValue = value ? [...value] : [];\n newValue.splice(index, 1, ...newURIs);\n params.onChange(newValue);\n } else {\n params.onChange([...((value as string[]) ?? []), ...newURIs]);\n }\n } else {\n params.onChange(extractMediaUri(items[0]));\n }\n return true;\n } catch (e) {\n setLoading(false);\n mediaRequested.current = false;\n console.error(`Media Control Error:`, e);\n return false;\n }\n },\n [\n mediaType,\n multiSelect,\n onBlur,\n onFocus,\n openMediaManager,\n params,\n readOnly,\n setActive,\n value,\n ],\n );\n\n const downloadMedia = useCallback(async (mediaUri?: string) => {\n if (!mediaUri) {\n return;\n }\n\n try {\n const result = await files.generateFileDownloadUrl(mediaUri);\n const downloadUrl = result.downloadUrls?.[0]?.url;\n if (!downloadUrl) {\n throw new Error('No download URL returned');\n }\n return executeDownloading(downloadUrl);\n } catch (error) {\n // Fallback: open the static URL in a new tab\n console.error('Media download error, falling back to static URL:', error);\n return executeDownloading(getMediaURL(mediaUri));\n }\n }, []);\n\n return {\n loading,\n callMedia,\n downloadMedia,\n onMediaLoad,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|