@wix/auto-patterns 1.49.0 → 1.51.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/assets/locale/messages_en.json +68 -1
- package/dist/cjs/cms-fields/auto-cms-field-types/index.js +3 -1
- package/dist/cjs/cms-fields/auto-cms-field-types/index.js.map +1 -1
- package/dist/cjs/cms-fields/auto-cms-field-types/media-manager.js +24 -21
- package/dist/cjs/cms-fields/auto-cms-field-types/media-manager.js.map +1 -1
- package/dist/cjs/cms-fields/auto-cms-field-types/media-types.js.map +1 -1
- package/dist/cjs/cms-fields/components/address/input/address-input.st.css.js +3 -3
- package/dist/cjs/cms-fields/components/address/input/address-input.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js +3 -3
- package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.st.css.js +4 -4
- package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.st.css.js +2 -2
- package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/delete-dialog/delete-dialog.st.css.js +3 -3
- package/dist/cjs/cms-fields/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/document/form-document-field.st.css.js +7 -7
- package/dist/cjs/cms-fields/components/document/form-document-field.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/exclamation/exclamation.st.css.js +5 -5
- package/dist/cjs/cms-fields/components/exclamation/exclamation.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.st.css.js +5 -5
- package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/media-control/paste-url-button.st.css.js +4 -4
- package/dist/cjs/cms-fields/components/media-control/paste-url-button.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.js +275 -0
- package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.st.css +51 -0
- package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.st.css.js +30 -0
- package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.js +14 -0
- package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-items-preview.js +134 -0
- package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-items-preview.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/add-link-modal.js +172 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/add-link-modal.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/add-media-button.js +50 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/add-media-button.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/content-keys.js +44 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/content-keys.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/hooks.js +89 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/hooks.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/item-actions.js +61 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/item-actions.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/media-gallery-dialog.js +181 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/media-gallery-dialog.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/no-items-view.js +71 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/no-items-view.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/types.js +4 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/types.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.js +24 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/utils.js +289 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/utils.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-preview-modal.js +274 -0
- package/dist/cjs/cms-fields/components/media-gallery/media-preview-modal.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-image/media-image.st.css.js +4 -4
- package/dist/cjs/cms-fields/components/media-image/media-image.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/media-loader/media-loader.st.css.js +3 -3
- package/dist/cjs/cms-fields/components/media-loader/media-loader.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
- package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
- package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +6 -6
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +5 -5
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +9 -9
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +4 -4
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
- package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
- package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
- package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
- package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/components/text/text-view.st.css.js +3 -3
- package/dist/cjs/cms-fields/components/text/text-view.st.css.js.map +1 -1
- package/dist/cjs/cms-fields/utils/media-item-utils.js +261 -0
- package/dist/cjs/cms-fields/utils/media-item-utils.js.map +1 -0
- package/dist/cjs/components/AutoPatternsApp/AutoPatternsApp.js +1 -1
- package/dist/cjs/components/AutoPatternsApp/AutoPatternsApp.js.map +1 -1
- package/dist/cjs/components/AutoPatternsApp/AutoPatternsAppTestPolyfills.js +5 -0
- package/dist/cjs/components/AutoPatternsApp/AutoPatternsAppTestPolyfills.js.map +1 -1
- package/dist/cjs/components/fields/MediaGallery.js +67 -0
- package/dist/cjs/components/fields/MediaGallery.js.map +1 -0
- package/dist/cjs/components/fields/index.js +5 -2
- package/dist/cjs/components/fields/index.js.map +1 -1
- package/dist/cjs/components/layouts/FormField.js +3 -2
- package/dist/cjs/components/layouts/FormField.js.map +1 -1
- package/dist/cjs/hooks/useColumns.js.map +1 -1
- package/dist/cjs/hooks/usePersistedState.js +24 -0
- package/dist/cjs/hooks/usePersistedState.js.map +1 -0
- package/dist/cjs/services/translations.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- package/dist/esm/assets/locale/messages_en.json +68 -1
- package/dist/esm/cms-fields/auto-cms-field-types/index.js +1 -1
- package/dist/esm/cms-fields/auto-cms-field-types/index.js.map +1 -1
- package/dist/esm/cms-fields/auto-cms-field-types/media-manager.js +3 -1
- package/dist/esm/cms-fields/auto-cms-field-types/media-manager.js.map +1 -1
- package/dist/esm/cms-fields/auto-cms-field-types/media-types.js.map +1 -1
- package/dist/esm/cms-fields/components/address/input/address-input.st.css.js +3 -3
- package/dist/esm/cms-fields/components/address/input/address-input.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js +3 -3
- package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.st.css.js +4 -4
- package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/audio/audio-player/audio-player.st.css.js +2 -2
- package/dist/esm/cms-fields/components/audio/audio-player/audio-player.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/delete-dialog/delete-dialog.st.css.js +3 -3
- package/dist/esm/cms-fields/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/document/form-document-field.st.css.js +7 -7
- package/dist/esm/cms-fields/components/document/form-document-field.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/exclamation/exclamation.st.css.js +5 -5
- package/dist/esm/cms-fields/components/exclamation/exclamation.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.st.css.js +5 -5
- package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/media-control/paste-url-button.st.css.js +4 -4
- package/dist/esm/cms-fields/components/media-control/paste-url-button.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.js +164 -0
- package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.st.css +51 -0
- package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.st.css.js +26 -0
- package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.js +10 -0
- package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-items-preview.js +110 -0
- package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-items-preview.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/add-link-modal.js +106 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/add-link-modal.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/add-media-button.js +25 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/add-media-button.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/content-keys.js +40 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/content-keys.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/hooks.js +81 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/hooks.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/item-actions.js +37 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/item-actions.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/media-gallery-dialog.js +152 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/media-gallery-dialog.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/no-items-view.js +34 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/no-items-view.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/types.js +2 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/types.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.js +19 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/utils.js +288 -0
- package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/utils.js.map +1 -0
- package/dist/esm/cms-fields/components/media-gallery/media-preview-modal.js +147 -0
- package/dist/esm/cms-fields/components/media-gallery/media-preview-modal.js.map +1 -0
- package/dist/esm/cms-fields/components/media-image/media-image.st.css.js +4 -4
- package/dist/esm/cms-fields/components/media-image/media-image.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/media-loader/media-loader.st.css.js +3 -3
- package/dist/esm/cms-fields/components/media-loader/media-loader.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
- package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
- package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +6 -6
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +5 -5
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +9 -9
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +4 -4
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
- package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
- package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
- package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
- package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
- package/dist/esm/cms-fields/components/text/text-view.st.css.js +3 -3
- package/dist/esm/cms-fields/components/text/text-view.st.css.js.map +1 -1
- package/dist/esm/cms-fields/utils/media-item-utils.js +261 -0
- package/dist/esm/cms-fields/utils/media-item-utils.js.map +1 -0
- package/dist/esm/components/AutoPatternsApp/AutoPatternsApp.js +1 -1
- package/dist/esm/components/AutoPatternsApp/AutoPatternsApp.js.map +1 -1
- package/dist/esm/components/AutoPatternsApp/AutoPatternsAppTestPolyfills.js +5 -0
- package/dist/esm/components/AutoPatternsApp/AutoPatternsAppTestPolyfills.js.map +1 -1
- package/dist/esm/components/fields/MediaGallery.js +48 -0
- package/dist/esm/components/fields/MediaGallery.js.map +1 -0
- package/dist/esm/components/fields/index.js +1 -0
- package/dist/esm/components/fields/index.js.map +1 -1
- package/dist/esm/components/layouts/FormField.js +3 -2
- package/dist/esm/components/layouts/FormField.js.map +1 -1
- package/dist/esm/hooks/useColumns.js +1 -1
- package/dist/esm/hooks/useColumns.js.map +1 -1
- package/dist/esm/hooks/usePersistedState.js +20 -0
- package/dist/esm/hooks/usePersistedState.js.map +1 -0
- package/dist/esm/services/translations.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/types/cms-fields/auto-cms-field-types/index.d.ts +2 -2
- package/dist/types/cms-fields/auto-cms-field-types/index.d.ts.map +1 -1
- package/dist/types/cms-fields/auto-cms-field-types/media-manager.d.ts +2 -0
- package/dist/types/cms-fields/auto-cms-field-types/media-manager.d.ts.map +1 -1
- package/dist/types/cms-fields/auto-cms-field-types/media-types.d.ts +1 -1
- package/dist/types/cms-fields/auto-cms-field-types/media-types.d.ts.map +1 -1
- package/dist/types/cms-fields/components/audio/audio-field/form-audio-field.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/document/form-document-field.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.d.ts +13 -0
- package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.st.css.d.ts +21 -0
- package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.st.css.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.d.ts +33 -0
- package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/form-media-gallery-items-preview.d.ts +8 -0
- package/dist/types/cms-fields/components/media-gallery/form-media-gallery-items-preview.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/add-link-modal.d.ts +11 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/add-link-modal.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/add-media-button.d.ts +7 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/add-media-button.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/content-keys.d.ts +41 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/content-keys.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/hooks.d.ts +66 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/hooks.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/item-actions.d.ts +8 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/item-actions.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/media-gallery-dialog.d.ts +5 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/media-gallery-dialog.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/no-items-view.d.ts +7 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/no-items-view.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/types.d.ts +81 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/types.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.d.ts +10 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/utils.d.ts +23 -0
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/utils.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-gallery/media-preview-modal.d.ts +19 -0
- package/dist/types/cms-fields/components/media-gallery/media-preview-modal.d.ts.map +1 -0
- package/dist/types/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/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/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/utils/media-item-utils.d.ts +61 -0
- package/dist/types/cms-fields/utils/media-item-utils.d.ts.map +1 -0
- package/dist/types/components/fields/MediaGallery.d.ts +8 -0
- package/dist/types/components/fields/MediaGallery.d.ts.map +1 -0
- package/dist/types/components/fields/index.d.ts +1 -0
- package/dist/types/components/fields/index.d.ts.map +1 -1
- package/dist/types/components/layouts/FormField.d.ts.map +1 -1
- package/dist/types/hooks/usePersistedState.d.ts +2 -0
- package/dist/types/hooks/usePersistedState.d.ts.map +1 -0
- package/dist/types/services/translations.d.ts +4 -1
- package/dist/types/services/translations.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -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/cms-fields/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/cms-fields/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_ = \"pasteurlbutton2355558468\";\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\":\"pasteurlbutton2355558468__root\",\"iconButtonTooltip\":\"pasteurlbutton2355558468__iconButtonTooltip\",\"iconButton\":\"pasteurlbutton2355558468__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":[]}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.FormMediaGalleryField = 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 _wixUiIconsCommon = require("@wix/wix-ui-icons-common");
|
|
10
|
+
var _hooks = require("../../hooks");
|
|
11
|
+
var _mediaUtils = require("../../utils/media-utils");
|
|
12
|
+
var _autoCmsFieldTypes = require("../../auto-cms-field-types");
|
|
13
|
+
var _media = require("@wix/media");
|
|
14
|
+
var _formMediaGalleryFieldStCss = require("./form-media-gallery-field.st.css.js");
|
|
15
|
+
var _formMediaGalleryItemsPreview = require("./form-media-gallery-items-preview");
|
|
16
|
+
var _mediaPreviewModal = require("./media-preview-modal");
|
|
17
|
+
var _hooks2 = require("./media-gallery-dialog/hooks");
|
|
18
|
+
var _mediaGalleryDialog = require("./media-gallery-dialog/media-gallery-dialog");
|
|
19
|
+
var _jsxFileName = "/home/builduser/work/8f3ab5a55e62623a/packages/auto-patterns/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.tsx";
|
|
20
|
+
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); }
|
|
21
|
+
const mediaGalleryPreviewTextKeys = {
|
|
22
|
+
replace: 'CMS.mediaGallery.preview.replace',
|
|
23
|
+
download: 'CMS.mediaGallery.preview.download',
|
|
24
|
+
delete: 'CMS.mediaGallery.preview.delete'
|
|
25
|
+
};
|
|
26
|
+
const FormMediaGalleryField = ({
|
|
27
|
+
data,
|
|
28
|
+
onChange,
|
|
29
|
+
onClear,
|
|
30
|
+
readOnly,
|
|
31
|
+
invalid,
|
|
32
|
+
autoFocus,
|
|
33
|
+
dataHook
|
|
34
|
+
}) => {
|
|
35
|
+
const {
|
|
36
|
+
t
|
|
37
|
+
} = (0, _hooks.useTranslations)();
|
|
38
|
+
const boxRef = (0, _react.useRef)(null);
|
|
39
|
+
const inputRef = (0, _react.useRef)(null);
|
|
40
|
+
const [boxWidth, setBoxWidth] = (0, _react.useState)(0);
|
|
41
|
+
const [hovered, setHovered] = (0, _react.useState)(false);
|
|
42
|
+
const [isPreviewOpen, setIsPreviewOpen] = (0, _react.useState)(false);
|
|
43
|
+
const hasValue = Boolean(data == null ? void 0 : data.length);
|
|
44
|
+
|
|
45
|
+
// autoFocus support
|
|
46
|
+
(0, _react.useEffect)(() => {
|
|
47
|
+
var _boxRef$current, _inputRef$current;
|
|
48
|
+
if (!autoFocus) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
(_boxRef$current = boxRef.current) == null || _boxRef$current.focus();
|
|
52
|
+
(_inputRef$current = inputRef.current) == null || _inputRef$current.focus();
|
|
53
|
+
}, [autoFocus]);
|
|
54
|
+
|
|
55
|
+
// Responsive width tracking
|
|
56
|
+
(0, _react.useEffect)(() => {
|
|
57
|
+
const el = boxRef.current;
|
|
58
|
+
if (!el) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
setBoxWidth(el.clientWidth);
|
|
62
|
+
const ro = new ResizeObserver(([entry]) => setBoxWidth(entry.contentRect.width));
|
|
63
|
+
ro.observe(el);
|
|
64
|
+
return () => ro.disconnect();
|
|
65
|
+
}, []);
|
|
66
|
+
const {
|
|
67
|
+
openMediaGalleryDialog,
|
|
68
|
+
...mediaGalleryDialogProps
|
|
69
|
+
} = (0, _hooks2.useMediaGalleryDialog)({
|
|
70
|
+
initialOpen: false,
|
|
71
|
+
items: data,
|
|
72
|
+
onChange
|
|
73
|
+
});
|
|
74
|
+
const onMouseEnter = (0, _react.useCallback)(() => hasValue && setHovered(true), [hasValue]);
|
|
75
|
+
const onMouseLeave = (0, _react.useCallback)(() => hasValue && setHovered(false), [hasValue]);
|
|
76
|
+
|
|
77
|
+
// Download using Wix media API (consistent with useMediaControl)
|
|
78
|
+
const onDownloadMedia = (0, _react.useCallback)(async mediaUri => {
|
|
79
|
+
if (!mediaUri) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
var _result$downloadUrls;
|
|
84
|
+
const result = await _media.files.generateFileDownloadUrl(mediaUri);
|
|
85
|
+
const downloadUrl = (_result$downloadUrls = result.downloadUrls) == null || (_result$downloadUrls = _result$downloadUrls[0]) == null ? void 0 : _result$downloadUrls.url;
|
|
86
|
+
if (!downloadUrl) {
|
|
87
|
+
throw new Error('No download URL returned');
|
|
88
|
+
}
|
|
89
|
+
(0, _mediaUtils.executeDownloading)(downloadUrl);
|
|
90
|
+
} catch (error) {
|
|
91
|
+
// Fallback: open the static URL in a new tab
|
|
92
|
+
console.error('Media download error, falling back to static URL:', error);
|
|
93
|
+
(0, _mediaUtils.executeDownloading)((0, _autoCmsFieldTypes.getMediaURL)(mediaUri));
|
|
94
|
+
}
|
|
95
|
+
}, []);
|
|
96
|
+
const onRequestMedia = (0, _react.useCallback)(() => {
|
|
97
|
+
openMediaGalleryDialog();
|
|
98
|
+
setIsPreviewOpen(false);
|
|
99
|
+
setHovered(false);
|
|
100
|
+
}, [openMediaGalleryDialog]);
|
|
101
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
102
|
+
"data-hook": dataHook,
|
|
103
|
+
ref: boxRef,
|
|
104
|
+
tabIndex: hasValue ? 0 : -1,
|
|
105
|
+
className: _formMediaGalleryFieldStCss.classes.container,
|
|
106
|
+
onMouseEnter: onMouseEnter,
|
|
107
|
+
onMouseLeave: onMouseLeave,
|
|
108
|
+
onFocus: onMouseEnter,
|
|
109
|
+
onBlur: onMouseLeave,
|
|
110
|
+
__self: void 0,
|
|
111
|
+
__source: {
|
|
112
|
+
fileName: _jsxFileName,
|
|
113
|
+
lineNumber: 127,
|
|
114
|
+
columnNumber: 5
|
|
115
|
+
}
|
|
116
|
+
}, !hasValue ? /*#__PURE__*/_react.default.createElement("div", {
|
|
117
|
+
className: _formMediaGalleryFieldStCss.classes.addItemWrapper,
|
|
118
|
+
__self: void 0,
|
|
119
|
+
__source: {
|
|
120
|
+
fileName: _jsxFileName,
|
|
121
|
+
lineNumber: 138,
|
|
122
|
+
columnNumber: 9
|
|
123
|
+
}
|
|
124
|
+
}, /*#__PURE__*/_react.default.createElement(_designSystem.AddItem, {
|
|
125
|
+
ref: inputRef,
|
|
126
|
+
className: (0, _formMediaGalleryFieldStCss.style)(_formMediaGalleryFieldStCss.classes.addItem, {
|
|
127
|
+
error: invalid
|
|
128
|
+
}),
|
|
129
|
+
size: "tiny",
|
|
130
|
+
theme: "dashes",
|
|
131
|
+
onClick: onRequestMedia,
|
|
132
|
+
disabled: readOnly,
|
|
133
|
+
dataHook: `${dataHook}-add`,
|
|
134
|
+
subtitle: t('CMS.mediaGallery.emptyHint'),
|
|
135
|
+
__self: void 0,
|
|
136
|
+
__source: {
|
|
137
|
+
fileName: _jsxFileName,
|
|
138
|
+
lineNumber: 139,
|
|
139
|
+
columnNumber: 11
|
|
140
|
+
}
|
|
141
|
+
}, t('CMS.mediaGallery.addGallery'))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_designSystem.MediaOverlay, {
|
|
142
|
+
hovered: hovered,
|
|
143
|
+
className: _formMediaGalleryFieldStCss.classes.overlay,
|
|
144
|
+
hoverSkin: "dark",
|
|
145
|
+
borderRadius: 0,
|
|
146
|
+
media: /*#__PURE__*/_react.default.createElement(_formMediaGalleryItemsPreview.FormMediaGalleryItemsPreview, {
|
|
147
|
+
width: boxWidth,
|
|
148
|
+
value: data,
|
|
149
|
+
__self: void 0,
|
|
150
|
+
__source: {
|
|
151
|
+
fileName: _jsxFileName,
|
|
152
|
+
lineNumber: 160,
|
|
153
|
+
columnNumber: 15
|
|
154
|
+
}
|
|
155
|
+
}),
|
|
156
|
+
__self: void 0,
|
|
157
|
+
__source: {
|
|
158
|
+
fileName: _jsxFileName,
|
|
159
|
+
lineNumber: 154,
|
|
160
|
+
columnNumber: 11
|
|
161
|
+
}
|
|
162
|
+
}, /*#__PURE__*/_react.default.createElement(_designSystem.MediaOverlay.Content, {
|
|
163
|
+
visible: "hover",
|
|
164
|
+
__self: void 0,
|
|
165
|
+
__source: {
|
|
166
|
+
fileName: _jsxFileName,
|
|
167
|
+
lineNumber: 163,
|
|
168
|
+
columnNumber: 13
|
|
169
|
+
}
|
|
170
|
+
}, /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
|
|
171
|
+
gap: "SP2",
|
|
172
|
+
align: "center",
|
|
173
|
+
__self: void 0,
|
|
174
|
+
__source: {
|
|
175
|
+
fileName: _jsxFileName,
|
|
176
|
+
lineNumber: 164,
|
|
177
|
+
columnNumber: 15
|
|
178
|
+
}
|
|
179
|
+
}, /*#__PURE__*/_react.default.createElement(_designSystem.Button, {
|
|
180
|
+
skin: "inverted",
|
|
181
|
+
prefixIcon: /*#__PURE__*/_react.default.createElement(_wixUiIconsCommon.Refresh, {
|
|
182
|
+
__self: void 0,
|
|
183
|
+
__source: {
|
|
184
|
+
fileName: _jsxFileName,
|
|
185
|
+
lineNumber: 167,
|
|
186
|
+
columnNumber: 31
|
|
187
|
+
}
|
|
188
|
+
}),
|
|
189
|
+
onClick: onRequestMedia,
|
|
190
|
+
disabled: readOnly,
|
|
191
|
+
dataHook: `${dataHook}-manage`,
|
|
192
|
+
__self: void 0,
|
|
193
|
+
__source: {
|
|
194
|
+
fileName: _jsxFileName,
|
|
195
|
+
lineNumber: 165,
|
|
196
|
+
columnNumber: 17
|
|
197
|
+
}
|
|
198
|
+
}, t('CMS.mediaGallery.manageGallery')), /*#__PURE__*/_react.default.createElement(_designSystem.Tooltip, {
|
|
199
|
+
content: t('CMS.mediaGallery.preview'),
|
|
200
|
+
__self: void 0,
|
|
201
|
+
__source: {
|
|
202
|
+
fileName: _jsxFileName,
|
|
203
|
+
lineNumber: 174,
|
|
204
|
+
columnNumber: 17
|
|
205
|
+
}
|
|
206
|
+
}, /*#__PURE__*/_react.default.createElement(_designSystem.IconButton, {
|
|
207
|
+
skin: "inverted",
|
|
208
|
+
onClick: () => setIsPreviewOpen(true),
|
|
209
|
+
dataHook: `${dataHook}-preview`,
|
|
210
|
+
__self: void 0,
|
|
211
|
+
__source: {
|
|
212
|
+
fileName: _jsxFileName,
|
|
213
|
+
lineNumber: 175,
|
|
214
|
+
columnNumber: 19
|
|
215
|
+
}
|
|
216
|
+
}, /*#__PURE__*/_react.default.createElement(_wixUiIconsCommon.Maximize, {
|
|
217
|
+
__self: void 0,
|
|
218
|
+
__source: {
|
|
219
|
+
fileName: _jsxFileName,
|
|
220
|
+
lineNumber: 180,
|
|
221
|
+
columnNumber: 21
|
|
222
|
+
}
|
|
223
|
+
}))), /*#__PURE__*/_react.default.createElement(_designSystem.Tooltip, {
|
|
224
|
+
content: t('CMS.mediaGallery.clear'),
|
|
225
|
+
__self: void 0,
|
|
226
|
+
__source: {
|
|
227
|
+
fileName: _jsxFileName,
|
|
228
|
+
lineNumber: 183,
|
|
229
|
+
columnNumber: 17
|
|
230
|
+
}
|
|
231
|
+
}, /*#__PURE__*/_react.default.createElement(_designSystem.IconButton, {
|
|
232
|
+
skin: "inverted",
|
|
233
|
+
onClick: onClear,
|
|
234
|
+
disabled: readOnly,
|
|
235
|
+
dataHook: `${dataHook}-clear`,
|
|
236
|
+
__self: void 0,
|
|
237
|
+
__source: {
|
|
238
|
+
fileName: _jsxFileName,
|
|
239
|
+
lineNumber: 184,
|
|
240
|
+
columnNumber: 19
|
|
241
|
+
}
|
|
242
|
+
}, /*#__PURE__*/_react.default.createElement(_wixUiIconsCommon.Delete, {
|
|
243
|
+
__self: void 0,
|
|
244
|
+
__source: {
|
|
245
|
+
fileName: _jsxFileName,
|
|
246
|
+
lineNumber: 190,
|
|
247
|
+
columnNumber: 21
|
|
248
|
+
}
|
|
249
|
+
})))))), /*#__PURE__*/_react.default.createElement(_mediaPreviewModal.MediaPreviewModal, {
|
|
250
|
+
isOpen: isPreviewOpen,
|
|
251
|
+
onClose: () => setIsPreviewOpen(false),
|
|
252
|
+
value: data == null ? void 0 : data.map(d => d.src),
|
|
253
|
+
onRequestMedia: onRequestMedia,
|
|
254
|
+
onClearMedia: onClear,
|
|
255
|
+
onDownloadMedia: onDownloadMedia,
|
|
256
|
+
textKeys: mediaGalleryPreviewTextKeys,
|
|
257
|
+
readOnly: readOnly,
|
|
258
|
+
__self: void 0,
|
|
259
|
+
__source: {
|
|
260
|
+
fileName: _jsxFileName,
|
|
261
|
+
lineNumber: 196,
|
|
262
|
+
columnNumber: 11
|
|
263
|
+
}
|
|
264
|
+
})), mediaGalleryDialogProps.isOpen && /*#__PURE__*/_react.default.createElement(_mediaGalleryDialog.MediaGalleryDialog, (0, _extends2.default)({}, mediaGalleryDialogProps, {
|
|
265
|
+
__self: void 0,
|
|
266
|
+
__source: {
|
|
267
|
+
fileName: _jsxFileName,
|
|
268
|
+
lineNumber: 210,
|
|
269
|
+
columnNumber: 9
|
|
270
|
+
}
|
|
271
|
+
})));
|
|
272
|
+
};
|
|
273
|
+
exports.FormMediaGalleryField = FormMediaGalleryField;
|
|
274
|
+
FormMediaGalleryField.displayName = 'FormMediaGalleryField';
|
|
275
|
+
//# sourceMappingURL=form-media-gallery-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_wixUiIconsCommon","_hooks","_mediaUtils","_autoCmsFieldTypes","_media","_formMediaGalleryFieldStCss","_formMediaGalleryItemsPreview","_mediaPreviewModal","_hooks2","_mediaGalleryDialog","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","mediaGalleryPreviewTextKeys","replace","download","delete","FormMediaGalleryField","data","onChange","onClear","readOnly","invalid","autoFocus","dataHook","useTranslations","boxRef","useRef","inputRef","boxWidth","setBoxWidth","useState","hovered","setHovered","isPreviewOpen","setIsPreviewOpen","hasValue","Boolean","length","useEffect","_boxRef$current","_inputRef$current","current","focus","el","clientWidth","ro","ResizeObserver","entry","contentRect","width","observe","disconnect","openMediaGalleryDialog","mediaGalleryDialogProps","useMediaGalleryDialog","initialOpen","items","onMouseEnter","useCallback","onMouseLeave","onDownloadMedia","mediaUri","_result$downloadUrls","result","files","generateFileDownloadUrl","downloadUrl","downloadUrls","url","Error","executeDownloading","error","console","getMediaURL","onRequestMedia","createElement","ref","tabIndex","className","classes","container","onFocus","onBlur","__self","__source","fileName","lineNumber","columnNumber","addItemWrapper","AddItem","style","addItem","size","theme","onClick","disabled","subtitle","Fragment","MediaOverlay","overlay","hoverSkin","borderRadius","media","FormMediaGalleryItemsPreview","value","Content","visible","Box","gap","align","Button","skin","prefixIcon","Refresh","Tooltip","content","IconButton","Maximize","Delete","MediaPreviewModal","isOpen","onClose","map","d","src","onClearMedia","textKeys","MediaGalleryDialog","_extends2","exports","displayName"],"sources":["../../../../../src/cms-fields/components/media-gallery/form-media-gallery-field.tsx"],"sourcesContent":["import React, { useRef, useState, useCallback, useEffect } from 'react';\nimport type { AddItemActions } from '@wix/design-system';\nimport {\n AddItem,\n Box,\n Button,\n IconButton,\n MediaOverlay,\n Tooltip,\n} from '@wix/design-system';\nimport {\n Refresh as RefreshIcon,\n Delete as DeleteIcon,\n Maximize as MaximizeIcon,\n} from '@wix/wix-ui-icons-common';\nimport type { WixCodeGalleryItem } from '../../auto-cms-field-types';\nimport { useTranslations } from '../../hooks';\nimport { executeDownloading } from '../../utils/media-utils';\nimport { getMediaURL } from '../../auto-cms-field-types';\nimport { files } from '@wix/media';\n\nimport { style, classes } from './form-media-gallery-field.st.css.js';\nimport { FormMediaGalleryItemsPreview } from './form-media-gallery-items-preview';\nimport { MediaPreviewModal } from './media-preview-modal';\nimport { useMediaGalleryDialog } from './media-gallery-dialog/hooks';\nimport { MediaGalleryDialog } from './media-gallery-dialog/media-gallery-dialog';\n\nexport interface FormMediaGalleryFieldProps {\n data?: WixCodeGalleryItem[];\n onChange: (value: WixCodeGalleryItem[]) => void;\n onClear?: () => void;\n readOnly?: boolean;\n invalid?: boolean;\n autoFocus?: boolean;\n dataHook?: string;\n}\n\nconst mediaGalleryPreviewTextKeys = {\n replace: 'CMS.mediaGallery.preview.replace',\n download: 'CMS.mediaGallery.preview.download',\n delete: 'CMS.mediaGallery.preview.delete',\n} as const;\n\nexport const FormMediaGalleryField: React.FC<FormMediaGalleryFieldProps> = ({\n data,\n onChange,\n onClear,\n readOnly,\n invalid,\n autoFocus,\n dataHook,\n}) => {\n const { t } = useTranslations();\n const boxRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<AddItemActions>(null);\n const [boxWidth, setBoxWidth] = useState(0);\n const [hovered, setHovered] = useState(false);\n const [isPreviewOpen, setIsPreviewOpen] = useState(false);\n\n const hasValue = Boolean(data?.length);\n\n // autoFocus support\n useEffect(() => {\n if (!autoFocus) {\n return;\n }\n boxRef.current?.focus();\n inputRef.current?.focus();\n }, [autoFocus]);\n\n // Responsive width tracking\n useEffect(() => {\n const el = boxRef.current;\n if (!el) {\n return;\n }\n setBoxWidth(el.clientWidth);\n const ro = new ResizeObserver(([entry]) =>\n setBoxWidth(entry.contentRect.width),\n );\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n const { openMediaGalleryDialog, ...mediaGalleryDialogProps } =\n useMediaGalleryDialog({\n initialOpen: false,\n items: data,\n onChange,\n });\n\n const onMouseEnter = useCallback(\n () => hasValue && setHovered(true),\n [hasValue],\n );\n const onMouseLeave = useCallback(\n () => hasValue && setHovered(false),\n [hasValue],\n );\n\n // Download using Wix media API (consistent with useMediaControl)\n const onDownloadMedia = useCallback(async (mediaUri?: string) => {\n if (!mediaUri) {\n return;\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 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 executeDownloading(getMediaURL(mediaUri));\n }\n }, []);\n\n const onRequestMedia = useCallback(() => {\n openMediaGalleryDialog();\n setIsPreviewOpen(false);\n setHovered(false);\n }, [openMediaGalleryDialog]);\n\n return (\n <div\n data-hook={dataHook}\n ref={boxRef}\n tabIndex={hasValue ? 0 : -1}\n className={classes.container}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onFocus={onMouseEnter}\n onBlur={onMouseLeave}\n >\n {!hasValue ? (\n <div className={classes.addItemWrapper}>\n <AddItem\n ref={inputRef}\n className={style(classes.addItem, { error: invalid })}\n size=\"tiny\"\n theme=\"dashes\"\n onClick={onRequestMedia}\n disabled={readOnly}\n dataHook={`${dataHook}-add`}\n subtitle={t('CMS.mediaGallery.emptyHint')}\n >\n {t('CMS.mediaGallery.addGallery')}\n </AddItem>\n </div>\n ) : (\n <>\n <MediaOverlay\n hovered={hovered}\n className={classes.overlay}\n hoverSkin=\"dark\"\n borderRadius={0}\n media={\n <FormMediaGalleryItemsPreview width={boxWidth} value={data} />\n }\n >\n <MediaOverlay.Content visible=\"hover\">\n <Box gap=\"SP2\" align=\"center\">\n <Button\n skin=\"inverted\"\n prefixIcon={<RefreshIcon />}\n onClick={onRequestMedia}\n disabled={readOnly}\n dataHook={`${dataHook}-manage`}\n >\n {t('CMS.mediaGallery.manageGallery')}\n </Button>\n <Tooltip content={t('CMS.mediaGallery.preview')}>\n <IconButton\n skin=\"inverted\"\n onClick={() => setIsPreviewOpen(true)}\n dataHook={`${dataHook}-preview`}\n >\n <MaximizeIcon />\n </IconButton>\n </Tooltip>\n <Tooltip content={t('CMS.mediaGallery.clear')}>\n <IconButton\n skin=\"inverted\"\n onClick={onClear}\n disabled={readOnly}\n dataHook={`${dataHook}-clear`}\n >\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n </Box>\n </MediaOverlay.Content>\n </MediaOverlay>\n <MediaPreviewModal\n isOpen={isPreviewOpen}\n onClose={() => setIsPreviewOpen(false)}\n value={data?.map((d) => d.src)}\n onRequestMedia={onRequestMedia}\n onClearMedia={onClear}\n onDownloadMedia={onDownloadMedia}\n textKeys={mediaGalleryPreviewTextKeys}\n readOnly={readOnly}\n />\n </>\n )}\n\n {mediaGalleryDialogProps.isOpen && (\n <MediaGalleryDialog {...mediaGalleryDialogProps} />\n )}\n </div>\n );\n};\n\nFormMediaGalleryField.displayName = 'FormMediaGalleryField';\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,aAAA,GAAAD,OAAA;AAQA,IAAAE,iBAAA,GAAAF,OAAA;AAMA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,kBAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAEA,IAAAO,2BAAA,GAAAP,OAAA;AACA,IAAAQ,6BAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,mBAAA,GAAAX,OAAA;AAAiF,IAAAY,YAAA;AAAA,SAAAb,wBAAAc,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAhB,uBAAA,YAAAA,CAAAc,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAYjF,MAAMkB,2BAA2B,GAAG;EAClCC,OAAO,EAAE,kCAAkC;EAC3CC,QAAQ,EAAE,mCAAmC;EAC7CC,MAAM,EAAE;AACV,CAAU;AAEH,MAAMC,qBAA2D,GAAGA,CAAC;EAC1EC,IAAI;EACJC,QAAQ;EACRC,OAAO;EACPC,QAAQ;EACRC,OAAO;EACPC,SAAS;EACTC;AACF,CAAC,KAAK;EACJ,MAAM;IAAE7B;EAAE,CAAC,GAAG,IAAA8B,sBAAe,EAAC,CAAC;EAC/B,MAAMC,MAAM,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EAC3C,MAAMC,QAAQ,GAAG,IAAAD,aAAM,EAAiB,IAAI,CAAC;EAC7C,MAAM,CAACE,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC;EAC3C,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAF,eAAQ,EAAC,KAAK,CAAC;EAC7C,MAAM,CAACG,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAJ,eAAQ,EAAC,KAAK,CAAC;EAEzD,MAAMK,QAAQ,GAAGC,OAAO,CAACnB,IAAI,oBAAJA,IAAI,CAAEoB,MAAM,CAAC;;EAEtC;EACA,IAAAC,gBAAS,EAAC,MAAM;IAAA,IAAAC,eAAA,EAAAC,iBAAA;IACd,IAAI,CAAClB,SAAS,EAAE;MACd;IACF;IACA,CAAAiB,eAAA,GAAAd,MAAM,CAACgB,OAAO,aAAdF,eAAA,CAAgBG,KAAK,CAAC,CAAC;IACvB,CAAAF,iBAAA,GAAAb,QAAQ,CAACc,OAAO,aAAhBD,iBAAA,CAAkBE,KAAK,CAAC,CAAC;EAC3B,CAAC,EAAE,CAACpB,SAAS,CAAC,CAAC;;EAEf;EACA,IAAAgB,gBAAS,EAAC,MAAM;IACd,MAAMK,EAAE,GAAGlB,MAAM,CAACgB,OAAO;IACzB,IAAI,CAACE,EAAE,EAAE;MACP;IACF;IACAd,WAAW,CAACc,EAAE,CAACC,WAAW,CAAC;IAC3B,MAAMC,EAAE,GAAG,IAAIC,cAAc,CAAC,CAAC,CAACC,KAAK,CAAC,KACpClB,WAAW,CAACkB,KAAK,CAACC,WAAW,CAACC,KAAK,CACrC,CAAC;IACDJ,EAAE,CAACK,OAAO,CAACP,EAAE,CAAC;IACd,OAAO,MAAME,EAAE,CAACM,UAAU,CAAC,CAAC;EAC9B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM;IAAEC,sBAAsB;IAAE,GAAGC;EAAwB,CAAC,GAC1D,IAAAC,6BAAqB,EAAC;IACpBC,WAAW,EAAE,KAAK;IAClBC,KAAK,EAAEvC,IAAI;IACXC;EACF,CAAC,CAAC;EAEJ,MAAMuC,YAAY,GAAG,IAAAC,kBAAW,EAC9B,MAAMvB,QAAQ,IAAIH,UAAU,CAAC,IAAI,CAAC,EAClC,CAACG,QAAQ,CACX,CAAC;EACD,MAAMwB,YAAY,GAAG,IAAAD,kBAAW,EAC9B,MAAMvB,QAAQ,IAAIH,UAAU,CAAC,KAAK,CAAC,EACnC,CAACG,QAAQ,CACX,CAAC;;EAED;EACA,MAAMyB,eAAe,GAAG,IAAAF,kBAAW,EAAC,MAAOG,QAAiB,IAAK;IAC/D,IAAI,CAACA,QAAQ,EAAE;MACb;IACF;IACA,IAAI;MAAA,IAAAC,oBAAA;MACF,MAAMC,MAAM,GAAG,MAAMC,YAAK,CAACC,uBAAuB,CAACJ,QAAQ,CAAC;MAC5D,MAAMK,WAAW,IAAAJ,oBAAA,GAAGC,MAAM,CAACI,YAAY,cAAAL,oBAAA,GAAnBA,oBAAA,CAAsB,CAAC,CAAC,qBAAxBA,oBAAA,CAA0BM,GAAG;MACjD,IAAI,CAACF,WAAW,EAAE;QAChB,MAAM,IAAIG,KAAK,CAAC,0BAA0B,CAAC;MAC7C;MACA,IAAAC,8BAAkB,EAACJ,WAAW,CAAC;IACjC,CAAC,CAAC,OAAOK,KAAK,EAAE;MACd;MACAC,OAAO,CAACD,KAAK,CAAC,mDAAmD,EAAEA,KAAK,CAAC;MACzE,IAAAD,8BAAkB,EAAC,IAAAG,8BAAW,EAACZ,QAAQ,CAAC,CAAC;IAC3C;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMa,cAAc,GAAG,IAAAhB,kBAAW,EAAC,MAAM;IACvCN,sBAAsB,CAAC,CAAC;IACxBlB,gBAAgB,CAAC,KAAK,CAAC;IACvBF,UAAU,CAAC,KAAK,CAAC;EACnB,CAAC,EAAE,CAACoB,sBAAsB,CAAC,CAAC;EAE5B,oBACE1E,MAAA,CAAAyB,OAAA,CAAAwE,aAAA;IACE,aAAWpD,QAAS;IACpBqD,GAAG,EAAEnD,MAAO;IACZoD,QAAQ,EAAE1C,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAE;IAC5B2C,SAAS,EAAEC,mCAAO,CAACC,SAAU;IAC7BvB,YAAY,EAAEA,YAAa;IAC3BE,YAAY,EAAEA,YAAa;IAC3BsB,OAAO,EAAExB,YAAa;IACtByB,MAAM,EAAEvB,YAAa;IAAAwB,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEpB,CAACpD,QAAQ,gBACRzD,MAAA,CAAAyB,OAAA,CAAAwE,aAAA;IAAKG,SAAS,EAAEC,mCAAO,CAACS,cAAe;IAAAL,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,gBACrC7G,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAC9F,aAAA,CAAA4G,OAAO;IACNb,GAAG,EAAEjD,QAAS;IACdmD,SAAS,EAAE,IAAAY,iCAAK,EAACX,mCAAO,CAACY,OAAO,EAAE;MAAEpB,KAAK,EAAElD;IAAQ,CAAC,CAAE;IACtDuE,IAAI,EAAC,MAAM;IACXC,KAAK,EAAC,QAAQ;IACdC,OAAO,EAAEpB,cAAe;IACxBqB,QAAQ,EAAE3E,QAAS;IACnBG,QAAQ,EAAE,GAAGA,QAAQ,MAAO;IAC5ByE,QAAQ,EAAEtG,CAAC,CAAC,4BAA4B,CAAE;IAAAyF,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,GAEzC7F,CAAC,CAAC,6BAA6B,CACzB,CACN,CAAC,gBAENhB,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAAjG,MAAA,CAAAyB,OAAA,CAAA8F,QAAA,qBACEvH,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAC9F,aAAA,CAAAqH,YAAY;IACXnE,OAAO,EAAEA,OAAQ;IACjB+C,SAAS,EAAEC,mCAAO,CAACoB,OAAQ;IAC3BC,SAAS,EAAC,MAAM;IAChBC,YAAY,EAAE,CAAE;IAChBC,KAAK,eACH5H,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAACvF,6BAAA,CAAAmH,4BAA4B;MAACtD,KAAK,EAAErB,QAAS;MAAC4E,KAAK,EAAEvF,IAAK;MAAAkE,MAAA;MAAAC,QAAA;QAAAC,QAAA,EAAA7F,YAAA;QAAA8F,UAAA;QAAAC,YAAA;MAAA;IAAA,CAAE,CAC9D;IAAAJ,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,gBAED7G,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAC9F,aAAA,CAAAqH,YAAY,CAACO,OAAO;IAACC,OAAO,EAAC,OAAO;IAAAvB,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,gBACnC7G,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAC9F,aAAA,CAAA8H,GAAG;IAACC,GAAG,EAAC,KAAK;IAACC,KAAK,EAAC,QAAQ;IAAA1B,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,gBAC3B7G,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAC9F,aAAA,CAAAiI,MAAM;IACLC,IAAI,EAAC,UAAU;IACfC,UAAU,eAAEtI,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAC7F,iBAAA,CAAAmI,OAAW;MAAA9B,MAAA;MAAAC,QAAA;QAAAC,QAAA,EAAA7F,YAAA;QAAA8F,UAAA;QAAAC,YAAA;MAAA;IAAA,CAAE,CAAE;IAC5BO,OAAO,EAAEpB,cAAe;IACxBqB,QAAQ,EAAE3E,QAAS;IACnBG,QAAQ,EAAE,GAAGA,QAAQ,SAAU;IAAA4D,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,GAE9B7F,CAAC,CAAC,gCAAgC,CAC7B,CAAC,eACThB,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAC9F,aAAA,CAAAqI,OAAO;IAACC,OAAO,EAAEzH,CAAC,CAAC,0BAA0B,CAAE;IAAAyF,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,gBAC9C7G,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAC9F,aAAA,CAAAuI,UAAU;IACTL,IAAI,EAAC,UAAU;IACfjB,OAAO,EAAEA,CAAA,KAAM5D,gBAAgB,CAAC,IAAI,CAAE;IACtCX,QAAQ,EAAE,GAAGA,QAAQ,UAAW;IAAA4D,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,gBAEhC7G,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAC7F,iBAAA,CAAAuI,QAAY;IAAAlC,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CACL,CACL,CAAC,eACV7G,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAC9F,aAAA,CAAAqI,OAAO;IAACC,OAAO,EAAEzH,CAAC,CAAC,wBAAwB,CAAE;IAAAyF,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,gBAC5C7G,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAC9F,aAAA,CAAAuI,UAAU;IACTL,IAAI,EAAC,UAAU;IACfjB,OAAO,EAAE3E,OAAQ;IACjB4E,QAAQ,EAAE3E,QAAS;IACnBG,QAAQ,EAAE,GAAGA,QAAQ,QAAS;IAAA4D,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,gBAE9B7G,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAAC7F,iBAAA,CAAAwI,MAAU;IAAAnC,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,CAAE,CACH,CACL,CACN,CACe,CACV,CAAC,eACf7G,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAACtF,kBAAA,CAAAkI,iBAAiB;IAChBC,MAAM,EAAEvF,aAAc;IACtBwF,OAAO,EAAEA,CAAA,KAAMvF,gBAAgB,CAAC,KAAK,CAAE;IACvCsE,KAAK,EAAEvF,IAAI,oBAAJA,IAAI,CAAEyG,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,GAAG,CAAE;IAC/BlD,cAAc,EAAEA,cAAe;IAC/BmD,YAAY,EAAE1G,OAAQ;IACtByC,eAAe,EAAEA,eAAgB;IACjCkE,QAAQ,EAAElH,2BAA4B;IACtCQ,QAAQ,EAAEA,QAAS;IAAA+D,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,CACpB,CACD,CACH,EAEAlC,uBAAuB,CAACmE,MAAM,iBAC7B9I,MAAA,CAAAyB,OAAA,CAAAwE,aAAA,CAACpF,mBAAA,CAAAwI,kBAAkB,MAAAC,SAAA,CAAA7H,OAAA,MAAKkD,uBAAuB;IAAA8B,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAA7F,YAAA;MAAA8F,UAAA;MAAAC,YAAA;IAAA;EAAA,EAAG,CAEjD,CAAC;AAEV,CAAC;AAAC0C,OAAA,CAAAjH,qBAAA,GAAAA,qBAAA;AAEFA,qBAAqB,CAACkH,WAAW,GAAG,uBAAuB","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
.container {
|
|
2
|
+
display: flex;
|
|
3
|
+
min-height: 128px;
|
|
4
|
+
max-height: 259px;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.viewBox {
|
|
8
|
+
display: flex;
|
|
9
|
+
height: 100%;
|
|
10
|
+
width: 100%;
|
|
11
|
+
flex-wrap: wrap;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.addItemWrapper {
|
|
15
|
+
height: 128px;
|
|
16
|
+
width: 100%;
|
|
17
|
+
box-sizing: border-box;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.addItem {
|
|
21
|
+
-st-states: error;
|
|
22
|
+
box-sizing: border-box;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.overlay {
|
|
26
|
+
width: initial !important;
|
|
27
|
+
min-width: 382px !important;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.image {
|
|
31
|
+
-st-states: withMarginRight, withMarginTop;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.image:withMarginRight {
|
|
35
|
+
margin-right: 3px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.image:withMarginTop {
|
|
39
|
+
margin-top: 3px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Preview modal styles */
|
|
43
|
+
.previewImage {
|
|
44
|
+
max-height: calc(100% - 12px) !important;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.previewVideo {
|
|
48
|
+
border-radius: 8px;
|
|
49
|
+
max-width: 100%;
|
|
50
|
+
max-height: calc(100% - 12px) !important;
|
|
51
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
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_ = "formmediagalleryfield4276779609";
|
|
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": "formmediagalleryfield4276779609__root",
|
|
16
|
+
"container": "formmediagalleryfield4276779609__container",
|
|
17
|
+
"viewBox": "formmediagalleryfield4276779609__viewBox",
|
|
18
|
+
"addItemWrapper": "formmediagalleryfield4276779609__addItemWrapper",
|
|
19
|
+
"addItem": "formmediagalleryfield4276779609__addItem",
|
|
20
|
+
"overlay": "formmediagalleryfield4276779609__overlay",
|
|
21
|
+
"image": "formmediagalleryfield4276779609__image",
|
|
22
|
+
"previewImage": "formmediagalleryfield4276779609__previewImage",
|
|
23
|
+
"previewVideo": "formmediagalleryfield4276779609__previewVideo"
|
|
24
|
+
};
|
|
25
|
+
var keyframes = exports.keyframes = {};
|
|
26
|
+
var layers = exports.layers = {};
|
|
27
|
+
var containers = exports.containers = {};
|
|
28
|
+
var stVars = exports.stVars = {};
|
|
29
|
+
var vars = exports.vars = {};
|
|
30
|
+
//# sourceMappingURL=form-media-gallery-field.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/cms-fields/components/media-gallery/form-media-gallery-field.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"formmediagalleryfield4276779609\";\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\":\"formmediagalleryfield4276779609__root\",\"container\":\"formmediagalleryfield4276779609__container\",\"viewBox\":\"formmediagalleryfield4276779609__viewBox\",\"addItemWrapper\":\"formmediagalleryfield4276779609__addItemWrapper\",\"addItem\":\"formmediagalleryfield4276779609__addItem\",\"overlay\":\"formmediagalleryfield4276779609__overlay\",\"image\":\"formmediagalleryfield4276779609__image\",\"previewImage\":\"formmediagalleryfield4276779609__previewImage\",\"previewVideo\":\"formmediagalleryfield4276779609__previewVideo\"};\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,iCAAiC;AACnD,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,uCAAuC;EAAC,WAAW,EAAC,4CAA4C;EAAC,SAAS,EAAC,0CAA0C;EAAC,gBAAgB,EAAC,iDAAiD;EAAC,SAAS,EAAC,0CAA0C;EAAC,SAAS,EAAC,0CAA0C;EAAC,OAAO,EAAC,wCAAwC;EAAC,cAAc,EAAC,+CAA+C;EAAC,cAAc,EAAC;AAA+C,CAAC;AACxgB,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":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.FormMediaGalleryFieldUniDriver = FormMediaGalleryFieldUniDriver;
|
|
5
|
+
function FormMediaGalleryFieldUniDriver(base, dataHook) {
|
|
6
|
+
return {
|
|
7
|
+
exists: () => base.exists(),
|
|
8
|
+
getAddButton: () => base.$(`[data-hook="${dataHook}-add"]`),
|
|
9
|
+
getManageButton: () => base.$(`[data-hook="${dataHook}-manage"]`),
|
|
10
|
+
getPreviewButton: () => base.$(`[data-hook="${dataHook}-preview"]`),
|
|
11
|
+
getClearButton: () => base.$(`[data-hook="${dataHook}-clear"]`)
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=form-media-gallery-field.uni.driver.js.map
|
package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FormMediaGalleryFieldUniDriver","base","dataHook","exists","getAddButton","$","getManageButton","getPreviewButton","getClearButton"],"sources":["../../../../../src/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.ts"],"sourcesContent":["import { UniDriver } from '@wix/wix-ui-test-utils/unidriver';\n\nexport function FormMediaGalleryFieldUniDriver(\n base: UniDriver,\n dataHook: string,\n) {\n return {\n exists: () => base.exists(),\n getAddButton: () => base.$(`[data-hook=\"${dataHook}-add\"]`),\n getManageButton: () => base.$(`[data-hook=\"${dataHook}-manage\"]`),\n getPreviewButton: () => base.$(`[data-hook=\"${dataHook}-preview\"]`),\n getClearButton: () => base.$(`[data-hook=\"${dataHook}-clear\"]`),\n };\n}\n"],"mappings":";;;;AAEO,SAASA,8BAA8BA,CAC5CC,IAAe,EACfC,QAAgB,EAChB;EACA,OAAO;IACLC,MAAM,EAAEA,CAAA,KAAMF,IAAI,CAACE,MAAM,CAAC,CAAC;IAC3BC,YAAY,EAAEA,CAAA,KAAMH,IAAI,CAACI,CAAC,CAAC,eAAeH,QAAQ,QAAQ,CAAC;IAC3DI,eAAe,EAAEA,CAAA,KAAML,IAAI,CAACI,CAAC,CAAC,eAAeH,QAAQ,WAAW,CAAC;IACjEK,gBAAgB,EAAEA,CAAA,KAAMN,IAAI,CAACI,CAAC,CAAC,eAAeH,QAAQ,YAAY,CAAC;IACnEM,cAAc,EAAEA,CAAA,KAAMP,IAAI,CAACI,CAAC,CAAC,eAAeH,QAAQ,UAAU;EAChE,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.FormMediaGalleryItemsPreview = void 0;
|
|
5
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
6
|
+
var _autoCmsFieldTypes = require("../../auto-cms-field-types");
|
|
7
|
+
var _designSystem = require("@wix/design-system");
|
|
8
|
+
var _mediaImage = require("../media-image");
|
|
9
|
+
var _formMediaGalleryFieldStCss = require("./form-media-gallery-field.st.css.js");
|
|
10
|
+
var _jsxFileName = "/home/builduser/work/8f3ab5a55e62623a/packages/auto-patterns/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-items-preview.tsx";
|
|
11
|
+
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); }
|
|
12
|
+
// --- Layout types and constants ---
|
|
13
|
+
|
|
14
|
+
const IMAGE_HEIGHT = _autoCmsFieldTypes.ThumbnailSize.M;
|
|
15
|
+
const GAP = 3;
|
|
16
|
+
const PLACEHOLDER_WIDTH = 69;
|
|
17
|
+
|
|
18
|
+
// --- Layout hook ---
|
|
19
|
+
|
|
20
|
+
const useFormMediaGalleryItems = (value, boxWidth = 0) => (0, _react.useMemo)(() => {
|
|
21
|
+
if (!(value != null && value.length && boxWidth)) {
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
const result = [];
|
|
25
|
+
for (let i = 0, usedWidth = 0; i < value.length; i++) {
|
|
26
|
+
const item = value[i];
|
|
27
|
+
if (!item) continue;
|
|
28
|
+
const {
|
|
29
|
+
width,
|
|
30
|
+
height
|
|
31
|
+
} = (0, _autoCmsFieldTypes.getImageDimensions)(item.src);
|
|
32
|
+
const actualWidth = width * IMAGE_HEIGHT / height;
|
|
33
|
+
const offsetLeft = usedWidth % boxWidth;
|
|
34
|
+
let totalWidth = offsetLeft + actualWidth;
|
|
35
|
+
|
|
36
|
+
// Check if the image wraps to the second row
|
|
37
|
+
if (usedWidth < boxWidth && totalWidth > boxWidth) {
|
|
38
|
+
usedWidth = boxWidth;
|
|
39
|
+
totalWidth = actualWidth;
|
|
40
|
+
}
|
|
41
|
+
const isSecondRow = usedWidth / boxWidth >= 1;
|
|
42
|
+
const withMarginRight = totalWidth <= boxWidth - GAP && i !== value.length - 1;
|
|
43
|
+
const withMarginTop = isSecondRow;
|
|
44
|
+
usedWidth += actualWidth + (withMarginRight ? GAP : 0);
|
|
45
|
+
|
|
46
|
+
// Terminate if the image doesn't fit — show "+N" placeholder
|
|
47
|
+
if (usedWidth > boxWidth * 2 - PLACEHOLDER_WIDTH) {
|
|
48
|
+
result.push({
|
|
49
|
+
actualWidth: PLACEHOLDER_WIDTH,
|
|
50
|
+
morePlaceholder: value.length - i
|
|
51
|
+
});
|
|
52
|
+
return result;
|
|
53
|
+
}
|
|
54
|
+
result.push({
|
|
55
|
+
src: item.src,
|
|
56
|
+
actualWidth,
|
|
57
|
+
withMarginRight,
|
|
58
|
+
withMarginTop
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}, [value, boxWidth]);
|
|
63
|
+
|
|
64
|
+
// --- Component ---
|
|
65
|
+
|
|
66
|
+
const FormMediaGalleryItemsPreview = ({
|
|
67
|
+
width,
|
|
68
|
+
value
|
|
69
|
+
}) => {
|
|
70
|
+
const images = useFormMediaGalleryItems(value, width);
|
|
71
|
+
if (!(images != null && images.length)) return null;
|
|
72
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
73
|
+
className: _formMediaGalleryFieldStCss.classes.viewBox,
|
|
74
|
+
__self: void 0,
|
|
75
|
+
__source: {
|
|
76
|
+
fileName: _jsxFileName,
|
|
77
|
+
lineNumber: 101,
|
|
78
|
+
columnNumber: 5
|
|
79
|
+
}
|
|
80
|
+
}, images.map((item, index) => {
|
|
81
|
+
if (item.src) {
|
|
82
|
+
const {
|
|
83
|
+
src,
|
|
84
|
+
actualWidth,
|
|
85
|
+
withMarginTop = false,
|
|
86
|
+
withMarginRight = false
|
|
87
|
+
} = item;
|
|
88
|
+
return /*#__PURE__*/_react.default.createElement(_mediaImage.MediaImage, {
|
|
89
|
+
key: index,
|
|
90
|
+
className: (0, _formMediaGalleryFieldStCss.style)(_formMediaGalleryFieldStCss.classes.image, {
|
|
91
|
+
withMarginTop,
|
|
92
|
+
withMarginRight
|
|
93
|
+
}),
|
|
94
|
+
borderRadius: 0,
|
|
95
|
+
transparent: true,
|
|
96
|
+
src: src,
|
|
97
|
+
size: _mediaImage.MediaImage.Size.M,
|
|
98
|
+
width: `${actualWidth}px`,
|
|
99
|
+
height: IMAGE_HEIGHT,
|
|
100
|
+
__self: void 0,
|
|
101
|
+
__source: {
|
|
102
|
+
fileName: _jsxFileName,
|
|
103
|
+
lineNumber: 111,
|
|
104
|
+
columnNumber: 13
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
return /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
|
|
109
|
+
key: "placeholder",
|
|
110
|
+
width: item.actualWidth,
|
|
111
|
+
height: IMAGE_HEIGHT,
|
|
112
|
+
marginTop: `${GAP}px`,
|
|
113
|
+
align: "center",
|
|
114
|
+
verticalAlign: "middle",
|
|
115
|
+
__self: void 0,
|
|
116
|
+
__source: {
|
|
117
|
+
fileName: _jsxFileName,
|
|
118
|
+
lineNumber: 128,
|
|
119
|
+
columnNumber: 11
|
|
120
|
+
}
|
|
121
|
+
}, /*#__PURE__*/_react.default.createElement(_designSystem.Text, {
|
|
122
|
+
size: "small",
|
|
123
|
+
__self: void 0,
|
|
124
|
+
__source: {
|
|
125
|
+
fileName: _jsxFileName,
|
|
126
|
+
lineNumber: 136,
|
|
127
|
+
columnNumber: 13
|
|
128
|
+
}
|
|
129
|
+
}, "+", item.morePlaceholder));
|
|
130
|
+
}));
|
|
131
|
+
};
|
|
132
|
+
exports.FormMediaGalleryItemsPreview = FormMediaGalleryItemsPreview;
|
|
133
|
+
FormMediaGalleryItemsPreview.displayName = 'FormMediaGalleryItemsPreview';
|
|
134
|
+
//# sourceMappingURL=form-media-gallery-items-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_autoCmsFieldTypes","_designSystem","_mediaImage","_formMediaGalleryFieldStCss","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","IMAGE_HEIGHT","ThumbnailSize","M","GAP","PLACEHOLDER_WIDTH","useFormMediaGalleryItems","value","boxWidth","useMemo","length","result","usedWidth","item","width","height","getImageDimensions","src","actualWidth","offsetLeft","totalWidth","isSecondRow","withMarginRight","withMarginTop","push","morePlaceholder","FormMediaGalleryItemsPreview","images","createElement","className","classes","viewBox","__self","__source","fileName","lineNumber","columnNumber","map","index","MediaImage","key","style","image","borderRadius","transparent","size","Size","Box","marginTop","align","verticalAlign","Text","exports","displayName"],"sources":["../../../../../src/cms-fields/components/media-gallery/form-media-gallery-items-preview.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport type { WixCodeGalleryItem } from '../../auto-cms-field-types';\nimport { getImageDimensions, ThumbnailSize } from '../../auto-cms-field-types';\nimport { Box, Text } from '@wix/design-system';\nimport { MediaImage } from '../media-image';\nimport { style, classes } from './form-media-gallery-field.st.css.js';\n\n// --- Layout types and constants ---\n\ntype GalleryImageItem = {\n src: string;\n actualWidth: number;\n withMarginRight?: boolean;\n withMarginTop?: boolean;\n morePlaceholder?: never;\n};\n\ntype GalleryPlaceholderItem = {\n src?: undefined;\n actualWidth: number;\n morePlaceholder: number;\n};\n\ntype GalleryItem = GalleryImageItem | GalleryPlaceholderItem;\n\nconst IMAGE_HEIGHT = ThumbnailSize.M;\nconst GAP = 3;\nconst PLACEHOLDER_WIDTH = 69;\n\n// --- Layout hook ---\n\nconst useFormMediaGalleryItems = (\n value?: WixCodeGalleryItem[],\n boxWidth = 0,\n): GalleryItem[] =>\n useMemo(() => {\n if (!(value?.length && boxWidth)) {\n return [];\n }\n\n const result: GalleryItem[] = [];\n\n for (let i = 0, usedWidth = 0; i < value.length; i++) {\n const item = value[i];\n if (!item) continue;\n\n const { width, height } = getImageDimensions(item.src);\n const actualWidth = (width * IMAGE_HEIGHT) / height;\n\n const offsetLeft = usedWidth % boxWidth;\n let totalWidth = offsetLeft + actualWidth;\n\n // Check if the image wraps to the second row\n if (usedWidth < boxWidth && totalWidth > boxWidth) {\n usedWidth = boxWidth;\n totalWidth = actualWidth;\n }\n\n const isSecondRow = usedWidth / boxWidth >= 1;\n const withMarginRight =\n totalWidth <= boxWidth - GAP && i !== value.length - 1;\n const withMarginTop = isSecondRow;\n\n usedWidth += actualWidth + (withMarginRight ? GAP : 0);\n\n // Terminate if the image doesn't fit — show \"+N\" placeholder\n if (usedWidth > boxWidth * 2 - PLACEHOLDER_WIDTH) {\n result.push({\n actualWidth: PLACEHOLDER_WIDTH,\n morePlaceholder: value.length - i,\n });\n return result;\n }\n\n result.push({\n src: item.src,\n actualWidth,\n withMarginRight,\n withMarginTop,\n });\n }\n\n return result;\n }, [value, boxWidth]);\n\n// --- Component ---\n\nexport interface FormMediaGalleryViewProps {\n width: number;\n value?: WixCodeGalleryItem[];\n}\n\nexport const FormMediaGalleryItemsPreview: React.FC<\n FormMediaGalleryViewProps\n> = ({ width, value }) => {\n const images = useFormMediaGalleryItems(value, width);\n\n if (!images?.length) return null;\n\n return (\n <div className={classes.viewBox}>\n {images.map((item: GalleryItem, index: number) => {\n if (item.src) {\n const {\n src,\n actualWidth,\n withMarginTop = false,\n withMarginRight = false,\n } = item;\n return (\n <MediaImage\n key={index}\n className={style(classes.image, {\n withMarginTop,\n withMarginRight,\n })}\n borderRadius={0}\n transparent\n src={src}\n size={MediaImage.Size.M}\n width={`${actualWidth}px`}\n height={IMAGE_HEIGHT}\n />\n );\n }\n\n return (\n <Box\n key=\"placeholder\"\n width={item.actualWidth}\n height={IMAGE_HEIGHT}\n marginTop={`${GAP}px`}\n align=\"center\"\n verticalAlign=\"middle\"\n >\n <Text size=\"small\">+{item.morePlaceholder}</Text>\n </Box>\n );\n })}\n </div>\n );\n};\n\nFormMediaGalleryItemsPreview.displayName = 'FormMediaGalleryItemsPreview';\n"],"mappings":"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","ignoreList":[]}
|