@wix/auto-patterns 1.55.0 → 1.56.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 +7 -0
- 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/color-view/color-view.st.css.js +4 -4
- package/dist/cjs/cms-fields/components/color-view/color-view.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/index.js +6 -0
- package/dist/cjs/cms-fields/components/index.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.st.css.js +10 -10
- package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
- 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-image/overlays/index.js +7 -0
- package/dist/cjs/cms-fields/components/media-image/overlays/index.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-image/overlays/overlay.st.css +41 -0
- package/dist/cjs/cms-fields/components/media-image/overlays/overlay.st.css.js +28 -0
- package/dist/cjs/cms-fields/components/media-image/overlays/overlay.st.css.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-image/overlays/types.js +4 -0
- package/dist/cjs/cms-fields/components/media-image/overlays/types.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-image/overlays/video-indicator-overlay.js +30 -0
- package/dist/cjs/cms-fields/components/media-image/overlays/video-indicator-overlay.js.map +1 -0
- 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/components/video/index.js +7 -0
- package/dist/cjs/cms-fields/components/video/index.js.map +1 -0
- package/dist/cjs/cms-fields/components/video/video-view.js +54 -0
- package/dist/cjs/cms-fields/components/video/video-view.js.map +1 -0
- package/dist/cjs/cms-fields/validations/video.js +23 -0
- package/dist/cjs/cms-fields/validations/video.js.map +1 -0
- package/dist/cjs/components/fields/DateInput.js +2 -1
- package/dist/cjs/components/fields/DateInput.js.map +1 -1
- package/dist/cjs/components/fields/ImageInput.js +16 -6
- package/dist/cjs/components/fields/ImageInput.js.map +1 -1
- package/dist/cjs/components/fields/ImageViewField.js +58 -0
- package/dist/cjs/components/fields/ImageViewField.js.map +1 -0
- package/dist/cjs/components/fields/Video.js +367 -0
- package/dist/cjs/components/fields/Video.js.map +1 -0
- package/dist/cjs/components/fields/VideoViewField.js +205 -0
- package/dist/cjs/components/fields/VideoViewField.js.map +1 -0
- package/dist/cjs/components/fields/index.js +10 -1
- package/dist/cjs/components/fields/index.js.map +1 -1
- package/dist/cjs/components/fields/mediaConstants.js +19 -0
- package/dist/cjs/components/fields/mediaConstants.js.map +1 -0
- package/dist/cjs/components/fields/useVideoPreview.js +79 -0
- package/dist/cjs/components/fields/useVideoPreview.js.map +1 -0
- package/dist/cjs/components/layouts/ContentCardSkeleton.js +156 -0
- package/dist/cjs/components/layouts/ContentCardSkeleton.js.map +1 -0
- package/dist/cjs/components/layouts/ContentSkeleton.js +3 -3
- package/dist/cjs/components/layouts/ContentSkeleton.js.map +1 -1
- package/dist/cjs/components/layouts/FormField.js +2 -1
- package/dist/cjs/components/layouts/FormField.js.map +1 -1
- package/dist/cjs/components/layouts/ViewField.js +104 -109
- package/dist/cjs/components/layouts/ViewField.js.map +1 -1
- package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js +1 -0
- package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
- package/dist/cjs/hooks/useColumns.js +42 -20
- package/dist/cjs/hooks/useColumns.js.map +1 -1
- package/dist/cjs/services/translations.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- package/dist/cjs/types/CollectionPageConfig.js.map +1 -1
- package/dist/cjs/types/SchemaConfig.js.map +1 -1
- package/dist/cjs/utils/filterCreators.js +4 -2
- package/dist/cjs/utils/filterCreators.js.map +1 -1
- package/dist/esm/assets/locale/messages_en.json +7 -0
- 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/color-view/color-view.st.css.js +4 -4
- package/dist/esm/cms-fields/components/color-view/color-view.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/index.js +1 -0
- package/dist/esm/cms-fields/components/index.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.st.css.js +10 -10
- package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
- 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-image/overlays/index.js +2 -0
- package/dist/esm/cms-fields/components/media-image/overlays/index.js.map +1 -0
- package/dist/esm/cms-fields/components/media-image/overlays/overlay.st.css +41 -0
- package/dist/esm/cms-fields/components/media-image/overlays/overlay.st.css.js +24 -0
- package/dist/esm/cms-fields/components/media-image/overlays/overlay.st.css.js.map +1 -0
- package/dist/esm/cms-fields/components/media-image/overlays/types.js +2 -0
- package/dist/esm/cms-fields/components/media-image/overlays/types.js.map +1 -0
- package/dist/esm/cms-fields/components/media-image/overlays/video-indicator-overlay.js +18 -0
- package/dist/esm/cms-fields/components/media-image/overlays/video-indicator-overlay.js.map +1 -0
- 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/components/video/index.js +2 -0
- package/dist/esm/cms-fields/components/video/index.js.map +1 -0
- package/dist/esm/cms-fields/components/video/video-view.js +30 -0
- package/dist/esm/cms-fields/components/video/video-view.js.map +1 -0
- package/dist/esm/cms-fields/validations/video.js +17 -0
- package/dist/esm/cms-fields/validations/video.js.map +1 -0
- package/dist/esm/components/fields/DateInput.js +1 -0
- package/dist/esm/components/fields/DateInput.js.map +1 -1
- package/dist/esm/components/fields/ImageInput.js +8 -4
- package/dist/esm/components/fields/ImageInput.js.map +1 -1
- package/dist/esm/components/fields/ImageViewField.js +33 -0
- package/dist/esm/components/fields/ImageViewField.js.map +1 -0
- package/dist/esm/components/fields/Video.js +189 -0
- package/dist/esm/components/fields/Video.js.map +1 -0
- package/dist/esm/components/fields/VideoViewField.js +94 -0
- package/dist/esm/components/fields/VideoViewField.js.map +1 -0
- package/dist/esm/components/fields/index.js +3 -0
- package/dist/esm/components/fields/index.js.map +1 -1
- package/dist/esm/components/fields/mediaConstants.js +15 -0
- package/dist/esm/components/fields/mediaConstants.js.map +1 -0
- package/dist/esm/components/fields/useVideoPreview.js +75 -0
- package/dist/esm/components/fields/useVideoPreview.js.map +1 -0
- package/dist/esm/components/layouts/ContentCardSkeleton.js +81 -0
- package/dist/esm/components/layouts/ContentCardSkeleton.js.map +1 -0
- package/dist/esm/components/layouts/ContentSkeleton.js +3 -3
- package/dist/esm/components/layouts/ContentSkeleton.js.map +1 -1
- package/dist/esm/components/layouts/FormField.js +2 -1
- package/dist/esm/components/layouts/FormField.js.map +1 -1
- package/dist/esm/components/layouts/ViewField.js +49 -54
- package/dist/esm/components/layouts/ViewField.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js +1 -0
- package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
- package/dist/esm/hooks/useColumns.js +14 -4
- package/dist/esm/hooks/useColumns.js.map +1 -1
- package/dist/esm/services/translations.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/esm/types/CollectionPageConfig.js.map +1 -1
- package/dist/esm/types/SchemaConfig.js.map +1 -1
- package/dist/esm/utils/filterCreators.js +3 -1
- package/dist/esm/utils/filterCreators.js.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/color-view/color-view.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/index.d.ts +1 -0
- package/dist/types/cms-fields/components/index.d.ts.map +1 -1
- package/dist/types/cms-fields/components/media-control/paste-url-button.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.d.ts +1 -1
- package/dist/types/cms-fields/components/media-image/media-image.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/media-image/overlays/index.d.ts +3 -0
- package/dist/types/cms-fields/components/media-image/overlays/index.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-image/overlays/overlay.st.css.d.ts +19 -0
- package/dist/types/cms-fields/components/media-image/overlays/overlay.st.css.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-image/overlays/types.d.ts +10 -0
- package/dist/types/cms-fields/components/media-image/overlays/types.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-image/overlays/video-indicator-overlay.d.ts +4 -0
- package/dist/types/cms-fields/components/media-image/overlays/video-indicator-overlay.d.ts.map +1 -0
- package/dist/types/cms-fields/components/multi-document/multi-document-input/form-multi-document.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/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/text/text-view.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/video/index.d.ts +3 -0
- package/dist/types/cms-fields/components/video/index.d.ts.map +1 -0
- package/dist/types/cms-fields/components/video/video-view.d.ts +9 -0
- package/dist/types/cms-fields/components/video/video-view.d.ts.map +1 -0
- package/dist/types/cms-fields/validations/video.d.ts +3 -0
- package/dist/types/cms-fields/validations/video.d.ts.map +1 -0
- package/dist/types/components/fields/DateInput.d.ts.map +1 -1
- package/dist/types/components/fields/ImageInput.d.ts.map +1 -1
- package/dist/types/components/fields/ImageViewField.d.ts +8 -0
- package/dist/types/components/fields/ImageViewField.d.ts.map +1 -0
- package/dist/types/components/fields/Video.d.ts +6 -0
- package/dist/types/components/fields/Video.d.ts.map +1 -0
- package/dist/types/components/fields/VideoViewField.d.ts +8 -0
- package/dist/types/components/fields/VideoViewField.d.ts.map +1 -0
- package/dist/types/components/fields/index.d.ts +3 -0
- package/dist/types/components/fields/index.d.ts.map +1 -1
- package/dist/types/components/fields/mediaConstants.d.ts +12 -0
- package/dist/types/components/fields/mediaConstants.d.ts.map +1 -0
- package/dist/types/components/fields/useVideoPreview.d.ts +12 -0
- package/dist/types/components/fields/useVideoPreview.d.ts.map +1 -0
- package/dist/types/components/layouts/ContentCardSkeleton.d.ts +11 -0
- package/dist/types/components/layouts/ContentCardSkeleton.d.ts.map +1 -0
- package/dist/types/components/layouts/FormField.d.ts.map +1 -1
- package/dist/types/components/layouts/ViewField.d.ts +1 -1
- package/dist/types/components/layouts/ViewField.d.ts.map +1 -1
- package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts.map +1 -1
- package/dist/types/hooks/useColumns.d.ts.map +1 -1
- package/dist/types/services/translations.d.ts +1 -1
- package/dist/types/services/translations.d.ts.map +1 -1
- package/dist/types/types/CollectionPageConfig.d.ts +10 -0
- package/dist/types/types/CollectionPageConfig.d.ts.map +1 -1
- package/dist/types/types/SchemaConfig.d.ts +1 -1
- package/dist/types/types/SchemaConfig.d.ts.map +1 -1
- package/dist/types/utils/filterCreators.d.ts +2 -0
- package/dist/types/utils/filterCreators.d.ts.map +1 -1
- package/mcp-docs/app_config_structure.md +4 -0
- package/mcp-docs/auto-patterns-guide.md +4 -0
- package/package.json +2 -2
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { useCallback, useMemo, useState } from 'react';
|
|
2
|
+
import { mediaURItoImageURL, mediaURItoVideoURL, ThumbnailSize } from '../../cms-fields/auto-cms-field-types';
|
|
3
|
+
export const useVideoPreview = _ref => {
|
|
4
|
+
let {
|
|
5
|
+
videoUri
|
|
6
|
+
} = _ref;
|
|
7
|
+
const [isPreviewOpen, setIsPreviewOpen] = useState(false);
|
|
8
|
+
const videoUrl = useMemo(() => {
|
|
9
|
+
if (!videoUri) {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
return mediaURItoVideoURL(videoUri);
|
|
14
|
+
} catch {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
}, [videoUri]);
|
|
18
|
+
const posterUrl = useMemo(() => {
|
|
19
|
+
if (!videoUri) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
try {
|
|
23
|
+
return mediaURItoImageURL(videoUri, ThumbnailSize.L);
|
|
24
|
+
} catch {
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
}, [videoUri]);
|
|
28
|
+
const openPreview = useCallback(() => {
|
|
29
|
+
if (videoUrl) {
|
|
30
|
+
setIsPreviewOpen(true);
|
|
31
|
+
}
|
|
32
|
+
}, [videoUrl]);
|
|
33
|
+
const closePreview = useCallback(() => setIsPreviewOpen(false), []);
|
|
34
|
+
const handleDownload = useCallback(async () => {
|
|
35
|
+
if (!videoUrl || !videoUri) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
try {
|
|
39
|
+
try {
|
|
40
|
+
const response = await fetch(videoUrl, {
|
|
41
|
+
mode: 'cors'
|
|
42
|
+
});
|
|
43
|
+
if (response.ok) {
|
|
44
|
+
var _videoUri$split$pop;
|
|
45
|
+
const blob = await response.blob();
|
|
46
|
+
const blobUrl = URL.createObjectURL(blob);
|
|
47
|
+
const filename = ((_videoUri$split$pop = videoUri.split('/').pop()) == null ? void 0 : _videoUri$split$pop.split('#')[0]) || 'video.mp4';
|
|
48
|
+
const link = document.createElement('a');
|
|
49
|
+
link.href = blobUrl;
|
|
50
|
+
link.download = filename;
|
|
51
|
+
document.body.appendChild(link);
|
|
52
|
+
link.click();
|
|
53
|
+
document.body.removeChild(link);
|
|
54
|
+
URL.revokeObjectURL(blobUrl);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
} catch {
|
|
58
|
+
// CORS blocked — fall through to window.open fallback
|
|
59
|
+
}
|
|
60
|
+
const downloadUrl = videoUrl.includes('?') ? `${videoUrl}&download=true` : `${videoUrl}?download=true`;
|
|
61
|
+
window.open(downloadUrl, '_blank');
|
|
62
|
+
} catch (error) {
|
|
63
|
+
console.error('Error downloading video:', error);
|
|
64
|
+
}
|
|
65
|
+
}, [videoUrl, videoUri]);
|
|
66
|
+
return {
|
|
67
|
+
videoUrl,
|
|
68
|
+
posterUrl,
|
|
69
|
+
isPreviewOpen,
|
|
70
|
+
openPreview,
|
|
71
|
+
closePreview,
|
|
72
|
+
handleDownload
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=useVideoPreview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useState","mediaURItoImageURL","mediaURItoVideoURL","ThumbnailSize","useVideoPreview","_ref","videoUri","isPreviewOpen","setIsPreviewOpen","videoUrl","undefined","posterUrl","L","openPreview","closePreview","handleDownload","response","fetch","mode","ok","_videoUri$split$pop","blob","blobUrl","URL","createObjectURL","filename","split","pop","link","document","createElement","href","download","body","appendChild","click","removeChild","revokeObjectURL","downloadUrl","includes","window","open","error","console"],"sources":["../../../../src/components/fields/useVideoPreview.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\nimport {\n mediaURItoImageURL,\n mediaURItoVideoURL,\n ThumbnailSize,\n} from '../../cms-fields/auto-cms-field-types';\n\nexport interface UseVideoPreviewOptions {\n videoUri: string | undefined | null;\n}\n\nexport const useVideoPreview = ({ videoUri }: UseVideoPreviewOptions) => {\n const [isPreviewOpen, setIsPreviewOpen] = useState(false);\n\n const videoUrl = useMemo(() => {\n if (!videoUri) {\n return undefined;\n }\n try {\n return mediaURItoVideoURL(videoUri);\n } catch {\n return undefined;\n }\n }, [videoUri]);\n\n const posterUrl = useMemo(() => {\n if (!videoUri) {\n return undefined;\n }\n try {\n return mediaURItoImageURL(videoUri, ThumbnailSize.L);\n } catch {\n return undefined;\n }\n }, [videoUri]);\n\n const openPreview = useCallback(() => {\n if (videoUrl) {\n setIsPreviewOpen(true);\n }\n }, [videoUrl]);\n\n const closePreview = useCallback(() => setIsPreviewOpen(false), []);\n\n const handleDownload = useCallback(async () => {\n if (!videoUrl || !videoUri) {\n return;\n }\n\n try {\n try {\n const response = await fetch(videoUrl, { mode: 'cors' });\n if (response.ok) {\n const blob = await response.blob();\n const blobUrl = URL.createObjectURL(blob);\n const filename =\n videoUri.split('/').pop()?.split('#')[0] || 'video.mp4';\n\n const link = document.createElement('a');\n link.href = blobUrl;\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n URL.revokeObjectURL(blobUrl);\n return;\n }\n } catch {\n // CORS blocked — fall through to window.open fallback\n }\n\n const downloadUrl = videoUrl.includes('?')\n ? `${videoUrl}&download=true`\n : `${videoUrl}?download=true`;\n window.open(downloadUrl, '_blank');\n } catch (error) {\n console.error('Error downloading video:', error);\n }\n }, [videoUrl, videoUri]);\n\n return {\n videoUrl,\n posterUrl,\n isPreviewOpen,\n openPreview,\n closePreview,\n handleDownload,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Card, Cell, Layout } from '@wix/design-system';
|
|
3
|
+
import { SettingsPage, EntityPage } from '@wix/patterns';
|
|
4
|
+
import { useAutoPatternsOverridesContext } from '../../providers';
|
|
5
|
+
const SkeletonCardLayout = _ref => {
|
|
6
|
+
var _content$container$ch;
|
|
7
|
+
let {
|
|
8
|
+
content,
|
|
9
|
+
level,
|
|
10
|
+
sectionId,
|
|
11
|
+
cardIndex,
|
|
12
|
+
contentIndex
|
|
13
|
+
} = _ref;
|
|
14
|
+
const overrides = useAutoPatternsOverridesContext();
|
|
15
|
+
switch (content.type) {
|
|
16
|
+
case 'field':
|
|
17
|
+
return null;
|
|
18
|
+
case 'container':
|
|
19
|
+
if (!((_content$container$ch = content.container.children) != null && _content$container$ch.length)) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return /*#__PURE__*/React.createElement(Cell, {
|
|
23
|
+
span: content.container.span
|
|
24
|
+
}, /*#__PURE__*/React.createElement(Layout, null, content.container.children.map((child, index) => /*#__PURE__*/React.createElement(SkeletonCardLayout, {
|
|
25
|
+
key: `${sectionId}-card-${cardIndex}-content-${contentIndex}-level-${level}-child-${index}`,
|
|
26
|
+
content: child,
|
|
27
|
+
level: level + 1,
|
|
28
|
+
sectionId: sectionId,
|
|
29
|
+
cardIndex: cardIndex,
|
|
30
|
+
contentIndex: index
|
|
31
|
+
}))));
|
|
32
|
+
case 'component':
|
|
33
|
+
{
|
|
34
|
+
var _overrides$components;
|
|
35
|
+
if (!content.component.componentId) {
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const Component = overrides == null || (_overrides$components = overrides.components) == null ? void 0 : _overrides$components[content.component.componentId];
|
|
39
|
+
if (!Component) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
return /*#__PURE__*/React.createElement(Cell, {
|
|
43
|
+
span: content.component.span
|
|
44
|
+
}, /*#__PURE__*/React.createElement(Component, {
|
|
45
|
+
form: undefined,
|
|
46
|
+
entity: undefined
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
default:
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
export const ContentCardSkeleton = _ref2 => {
|
|
54
|
+
var _layout$card$subtitle;
|
|
55
|
+
let {
|
|
56
|
+
type = 'entity',
|
|
57
|
+
layout,
|
|
58
|
+
sectionId,
|
|
59
|
+
cardIndex
|
|
60
|
+
} = _ref2;
|
|
61
|
+
const Component = type === 'settings' ? SettingsPage : EntityPage;
|
|
62
|
+
switch (layout.type) {
|
|
63
|
+
case 'card':
|
|
64
|
+
return /*#__PURE__*/React.createElement(Component.Card, {
|
|
65
|
+
minHeight: "50px"
|
|
66
|
+
}, /*#__PURE__*/React.createElement(Card.Header, {
|
|
67
|
+
title: layout.card.title.text,
|
|
68
|
+
subtitle: (_layout$card$subtitle = layout.card.subtitle) == null ? void 0 : _layout$card$subtitle.text
|
|
69
|
+
}), /*#__PURE__*/React.createElement(Card.Divider, null), /*#__PURE__*/React.createElement(Card.Content, null, /*#__PURE__*/React.createElement(Layout, null, layout.card.children.map((child, index) => /*#__PURE__*/React.createElement(SkeletonCardLayout, {
|
|
70
|
+
key: `${sectionId}-card-${cardIndex}-content-${index}`,
|
|
71
|
+
content: child,
|
|
72
|
+
level: 0,
|
|
73
|
+
sectionId: sectionId,
|
|
74
|
+
cardIndex: cardIndex,
|
|
75
|
+
contentIndex: index
|
|
76
|
+
})))));
|
|
77
|
+
default:
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=ContentCardSkeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Card","Cell","Layout","SettingsPage","EntityPage","useAutoPatternsOverridesContext","SkeletonCardLayout","_ref","_content$container$ch","content","level","sectionId","cardIndex","contentIndex","overrides","type","container","children","length","createElement","span","map","child","index","key","_overrides$components","component","componentId","Component","components","form","undefined","entity","ContentCardSkeleton","_ref2","_layout$card$subtitle","layout","minHeight","Header","title","card","text","subtitle","Divider","Content"],"sources":["../../../../src/components/layouts/ContentCardSkeleton.tsx"],"sourcesContent":["import React from 'react';\nimport { Card, Cell, Layout } from '@wix/design-system';\nimport { SettingsPage, EntityPage } from '@wix/patterns';\nimport { CardLayout, LayoutContent } from '../../types';\nimport { useAutoPatternsOverridesContext } from '../../providers';\nimport { ContentCardType } from './types';\n\nexport interface ContentCardSkeletonProps {\n type?: ContentCardType;\n layout: CardLayout;\n sectionId: string;\n cardIndex: number;\n}\n\nconst SkeletonCardLayout: React.FC<{\n content: LayoutContent;\n level: number;\n sectionId: string;\n cardIndex: number;\n contentIndex: number;\n}> = ({ content, level, sectionId, cardIndex, contentIndex }) => {\n const overrides = useAutoPatternsOverridesContext();\n\n switch (content.type) {\n case 'field':\n return null;\n\n case 'container':\n if (!content.container.children?.length) {\n return null;\n }\n\n return (\n <Cell span={content.container.span}>\n <Layout>\n {content.container.children.map((child, index) => (\n <SkeletonCardLayout\n key={`${sectionId}-card-${cardIndex}-content-${contentIndex}-level-${level}-child-${index}`}\n content={child}\n level={level + 1}\n sectionId={sectionId}\n cardIndex={cardIndex}\n contentIndex={index}\n />\n ))}\n </Layout>\n </Cell>\n );\n\n case 'component': {\n if (!content.component.componentId) {\n return null;\n }\n\n const Component = overrides?.components?.[content.component.componentId];\n if (!Component) {\n return null;\n }\n\n return (\n <Cell span={content.component.span}>\n <Component form={undefined} entity={undefined as any} />\n </Cell>\n );\n }\n\n default:\n return null;\n }\n};\n\nexport const ContentCardSkeleton: React.FC<ContentCardSkeletonProps> = ({\n type = 'entity',\n layout,\n sectionId,\n cardIndex,\n}) => {\n const Component = type === 'settings' ? SettingsPage : EntityPage;\n\n switch (layout.type) {\n case 'card':\n return (\n <Component.Card minHeight=\"50px\">\n <Card.Header\n title={layout.card.title.text}\n subtitle={layout.card.subtitle?.text}\n />\n <Card.Divider />\n <Card.Content>\n <Layout>\n {layout.card.children.map((child, index: number) => (\n <SkeletonCardLayout\n key={`${sectionId}-card-${cardIndex}-content-${index}`}\n content={child}\n level={0}\n sectionId={sectionId}\n cardIndex={cardIndex}\n contentIndex={index}\n />\n ))}\n </Layout>\n </Card.Content>\n </Component.Card>\n );\n default:\n return null;\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { SettingsPage, EntityPage, useSettingsPage, useEntityPage } from '@wix/patterns';
|
|
3
3
|
import { useForm } from '@wix/patterns/form';
|
|
4
|
-
import {
|
|
4
|
+
import { ContentCardSkeleton } from './ContentCardSkeleton';
|
|
5
5
|
export const ContentSkeleton = _ref => {
|
|
6
6
|
var _pageConfig$layout, _pageConfig$layout2, _pageConfig$layout$si;
|
|
7
7
|
let {
|
|
@@ -30,13 +30,13 @@ export const ContentSkeleton = _ref => {
|
|
|
30
30
|
title: {
|
|
31
31
|
text: ''
|
|
32
32
|
}
|
|
33
|
-
}), /*#__PURE__*/React.createElement(Component.Content, null, /*#__PURE__*/React.createElement(Component.MainContent, null, (_pageConfig$layout = pageConfig.layout) == null || (_pageConfig$layout = _pageConfig$layout.main) == null ? void 0 : _pageConfig$layout.map((layout, layoutIndex) => /*#__PURE__*/React.createElement(
|
|
33
|
+
}), /*#__PURE__*/React.createElement(Component.Content, null, /*#__PURE__*/React.createElement(Component.MainContent, null, (_pageConfig$layout = pageConfig.layout) == null || (_pageConfig$layout = _pageConfig$layout.main) == null ? void 0 : _pageConfig$layout.map((layout, layoutIndex) => /*#__PURE__*/React.createElement(ContentCardSkeleton, {
|
|
34
34
|
key: `main-section-card-${layoutIndex}`,
|
|
35
35
|
type: type,
|
|
36
36
|
layout: layout,
|
|
37
37
|
sectionId: "main",
|
|
38
38
|
cardIndex: layoutIndex
|
|
39
|
-
}))), (_pageConfig$layout2 = pageConfig.layout) != null && _pageConfig$layout2.sidebar ? /*#__PURE__*/React.createElement(Component.AdditionalContent, null, (_pageConfig$layout$si = pageConfig.layout.sidebar) == null ? void 0 : _pageConfig$layout$si.map((layout, layoutIndex) => /*#__PURE__*/React.createElement(
|
|
39
|
+
}))), (_pageConfig$layout2 = pageConfig.layout) != null && _pageConfig$layout2.sidebar ? /*#__PURE__*/React.createElement(Component.AdditionalContent, null, (_pageConfig$layout$si = pageConfig.layout.sidebar) == null ? void 0 : _pageConfig$layout$si.map((layout, layoutIndex) => /*#__PURE__*/React.createElement(ContentCardSkeleton, {
|
|
40
40
|
key: `sidebar-section-card-${layoutIndex}`,
|
|
41
41
|
type: type,
|
|
42
42
|
layout: layout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","SettingsPage","EntityPage","useSettingsPage","useEntityPage","useForm","
|
|
1
|
+
{"version":3,"names":["React","SettingsPage","EntityPage","useSettingsPage","useEntityPage","useForm","ContentCardSkeleton","ContentSkeleton","_ref","_pageConfig$layout","_pageConfig$layout2","_pageConfig$layout$si","type","pageConfig","Component","form","settingsState","onSave","onCancel","fetch","Promise","entityState","parentPath","updatedEntity","createElement","state","Header","title","text","Content","MainContent","layout","main","map","layoutIndex","key","sectionId","cardIndex","sidebar","AdditionalContent"],"sources":["../../../../src/components/layouts/ContentSkeleton.tsx"],"sourcesContent":["import React from 'react';\nimport {\n SettingsPage,\n EntityPage,\n useSettingsPage,\n useEntityPage,\n} from '@wix/patterns';\nimport { useForm } from '@wix/patterns/form';\nimport { EntityPageConfig, SettingsPageConfig } from '../../types';\nimport { ContentCardSkeleton } from './ContentCardSkeleton';\nimport { ContentCardType } from './types';\n\nexport interface ContentSkeletonProps {\n type?: ContentCardType;\n pageConfig: SettingsPageConfig | EntityPageConfig;\n}\n\nexport const ContentSkeleton = ({\n type = 'entity',\n pageConfig,\n}: ContentSkeletonProps) => {\n const Component = type === 'settings' ? SettingsPage : EntityPage;\n const form = useForm();\n\n const settingsState = useSettingsPage<any, any>({\n form,\n onSave: async () => {},\n onCancel: async () => {},\n fetch: async () => new Promise(() => {}),\n });\n\n const entityState = useEntityPage<any, any>({\n parentPath: '',\n form,\n onSave: async () => ({ updatedEntity: {} }),\n fetch: async () => new Promise(() => {}),\n });\n\n return (\n <Component\n state={type === 'settings' ? settingsState : (entityState as any)}\n >\n <Component.Header title={{ text: '' }} />\n <Component.Content>\n <Component.MainContent>\n {pageConfig.layout?.main?.map((layout, layoutIndex) => (\n <ContentCardSkeleton\n key={`main-section-card-${layoutIndex}`}\n type={type}\n layout={layout}\n sectionId=\"main\"\n cardIndex={layoutIndex}\n />\n ))}\n </Component.MainContent>\n {pageConfig.layout?.sidebar ? (\n <Component.AdditionalContent>\n {pageConfig.layout.sidebar?.map((layout, layoutIndex) => (\n <ContentCardSkeleton\n key={`sidebar-section-card-${layoutIndex}`}\n type={type}\n layout={layout}\n sectionId=\"sidebar\"\n cardIndex={layoutIndex}\n />\n ))}\n </Component.AdditionalContent>\n ) : null}\n </Component.Content>\n </Component>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,YAAY,EACZC,UAAU,EACVC,eAAe,EACfC,aAAa,QACR,eAAe;AACtB,SAASC,OAAO,QAAQ,oBAAoB;AAE5C,SAASC,mBAAmB,QAAQ,uBAAuB;AAQ3D,OAAO,MAAMC,eAAe,GAAGC,IAAA,IAGH;EAAA,IAAAC,kBAAA,EAAAC,mBAAA,EAAAC,qBAAA;EAAA,IAHI;IAC9BC,IAAI,GAAG,QAAQ;IACfC;EACoB,CAAC,GAAAL,IAAA;EACrB,MAAMM,SAAS,GAAGF,IAAI,KAAK,UAAU,GAAGX,YAAY,GAAGC,UAAU;EACjE,MAAMa,IAAI,GAAGV,OAAO,CAAC,CAAC;EAEtB,MAAMW,aAAa,GAAGb,eAAe,CAAW;IAC9CY,IAAI;IACJE,MAAM,EAAE,MAAAA,CAAA,KAAY,CAAC,CAAC;IACtBC,QAAQ,EAAE,MAAAA,CAAA,KAAY,CAAC,CAAC;IACxBC,KAAK,EAAE,MAAAA,CAAA,KAAY,IAAIC,OAAO,CAAC,MAAM,CAAC,CAAC;EACzC,CAAC,CAAC;EAEF,MAAMC,WAAW,GAAGjB,aAAa,CAAW;IAC1CkB,UAAU,EAAE,EAAE;IACdP,IAAI;IACJE,MAAM,EAAE,MAAAA,CAAA,MAAa;MAAEM,aAAa,EAAE,CAAC;IAAE,CAAC,CAAC;IAC3CJ,KAAK,EAAE,MAAAA,CAAA,KAAY,IAAIC,OAAO,CAAC,MAAM,CAAC,CAAC;EACzC,CAAC,CAAC;EAEF,oBACEpB,KAAA,CAAAwB,aAAA,CAACV,SAAS;IACRW,KAAK,EAAEb,IAAI,KAAK,UAAU,GAAGI,aAAa,GAAIK;EAAoB,gBAElErB,KAAA,CAAAwB,aAAA,CAACV,SAAS,CAACY,MAAM;IAACC,KAAK,EAAE;MAAEC,IAAI,EAAE;IAAG;EAAE,CAAE,CAAC,eACzC5B,KAAA,CAAAwB,aAAA,CAACV,SAAS,CAACe,OAAO,qBAChB7B,KAAA,CAAAwB,aAAA,CAACV,SAAS,CAACgB,WAAW,SAAArB,kBAAA,GACnBI,UAAU,CAACkB,MAAM,cAAAtB,kBAAA,GAAjBA,kBAAA,CAAmBuB,IAAI,qBAAvBvB,kBAAA,CAAyBwB,GAAG,CAAC,CAACF,MAAM,EAAEG,WAAW,kBAChDlC,KAAA,CAAAwB,aAAA,CAAClB,mBAAmB;IAClB6B,GAAG,EAAE,qBAAqBD,WAAW,EAAG;IACxCtB,IAAI,EAAEA,IAAK;IACXmB,MAAM,EAAEA,MAAO;IACfK,SAAS,EAAC,MAAM;IAChBC,SAAS,EAAEH;EAAY,CACxB,CACF,CACoB,CAAC,EACvB,CAAAxB,mBAAA,GAAAG,UAAU,CAACkB,MAAM,aAAjBrB,mBAAA,CAAmB4B,OAAO,gBACzBtC,KAAA,CAAAwB,aAAA,CAACV,SAAS,CAACyB,iBAAiB,SAAA5B,qBAAA,GACzBE,UAAU,CAACkB,MAAM,CAACO,OAAO,qBAAzB3B,qBAAA,CAA2BsB,GAAG,CAAC,CAACF,MAAM,EAAEG,WAAW,kBAClDlC,KAAA,CAAAwB,aAAA,CAAClB,mBAAmB;IAClB6B,GAAG,EAAE,wBAAwBD,WAAW,EAAG;IAC3CtB,IAAI,EAAEA,IAAK;IACXmB,MAAM,EAAEA,MAAO;IACfK,SAAS,EAAC,SAAS;IACnBC,SAAS,EAAEH;EAAY,CACxB,CACF,CAC0B,CAAC,GAC5B,IACa,CACV,CAAC;AAEhB,CAAC","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useController } from '@wix/patterns/form';
|
|
3
|
-
import { Audio, ShortText, LongText, Checkbox, Color, DateInput, DateTime, Time, Number, Url, Email, ImageInput, Reference, Object, Address, RichContent, RichText, Document, MultiDocument, MultiReference, MediaGallery, Array } from '../fields';
|
|
3
|
+
import { Audio, ShortText, LongText, Checkbox, Color, DateInput, DateTime, Time, Number, Url, Email, ImageInput, Reference, Object, Address, RichContent, RichText, Document, MultiDocument, MultiReference, Video, MediaGallery, Array } from '../fields';
|
|
4
4
|
export const EDITABLE_INPUT_ELEMENTS = {
|
|
5
5
|
AUDIO: Audio,
|
|
6
6
|
SHORT_TEXT: ShortText,
|
|
@@ -12,6 +12,7 @@ export const EDITABLE_INPUT_ELEMENTS = {
|
|
|
12
12
|
NUMBER: Number,
|
|
13
13
|
URL: Url,
|
|
14
14
|
IMAGE: ImageInput,
|
|
15
|
+
VIDEO: Video,
|
|
15
16
|
REFERENCE: Reference,
|
|
16
17
|
MULTI_REFERENCE: MultiReference,
|
|
17
18
|
OBJECT: Object,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useController","Audio","ShortText","LongText","Checkbox","Color","DateInput","DateTime","Time","Number","Url","Email","ImageInput","Reference","Object","Address","RichContent","RichText","Document","MultiDocument","MultiReference","MediaGallery","Array","EDITABLE_INPUT_ELEMENTS","AUDIO","SHORT_TEXT","LONG_TEXT","BOOLEAN","DATE","DATETIME","TIME","NUMBER","URL","IMAGE","REFERENCE","MULTI_REFERENCE","OBJECT","ARRAY","ADDRESS","RICH_CONTENT","RICH_TEXT","DOCUMENT","MULTI_DOCUMENT","EMAIL","MEDIA_GALLERY","COLOR","FormField","_ref","field","inputRef","formControl","data","controller","name","id","control","defaultValue","hasOwnProperty","type","FieldInput","createElement","value","onChange","dataHook"],"sources":["../../../../src/components/layouts/FormField.tsx"],"sourcesContent":["import React from 'react';\nimport { useController, Control } from '@wix/patterns/form';\nimport { Field, PatternsFieldType } from '../../types';\nimport {\n Audio,\n ShortText,\n LongText,\n Checkbox,\n Color,\n DateInput,\n DateTime,\n Time,\n Number,\n Url,\n Email,\n ImageInput,\n Reference,\n BaseInputProps,\n Object,\n Address,\n RichContent,\n RichText,\n Document,\n MultiDocument,\n MultiReference,\n MediaGallery,\n Array,\n} from '../fields';\n\nexport const EDITABLE_INPUT_ELEMENTS: Partial<\n Record<PatternsFieldType, React.ComponentType<any>>\n> = {\n AUDIO: Audio,\n SHORT_TEXT: ShortText,\n LONG_TEXT: LongText,\n BOOLEAN: Checkbox,\n DATE: DateInput,\n DATETIME: DateTime,\n TIME: Time,\n NUMBER: Number,\n URL: Url,\n IMAGE: ImageInput,\n REFERENCE: Reference,\n MULTI_REFERENCE: MultiReference,\n OBJECT: Object,\n ARRAY: Array,\n ADDRESS: Address,\n RICH_CONTENT: RichContent,\n RICH_TEXT: RichText,\n DOCUMENT: Document,\n MULTI_DOCUMENT: MultiDocument,\n EMAIL: Email,\n MEDIA_GALLERY: MediaGallery,\n COLOR: Color,\n};\n\nexport interface FormFieldProps {\n field: Field;\n inputRef?: BaseInputProps<any>['inputRef'];\n formControl?: Control<any>;\n data?: Record<string, any>;\n}\n\nexport const FormField: React.FC<FormFieldProps> = ({\n field,\n inputRef,\n formControl,\n data,\n}) => {\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n });\n\n if (!EDITABLE_INPUT_ELEMENTS.hasOwnProperty(field.type)) {\n return null;\n }\n\n const FieldInput = EDITABLE_INPUT_ELEMENTS[field.type]!;\n\n return (\n <FieldInput\n field={field}\n value={controller.field.value}\n onChange={controller.field.onChange}\n dataHook={`form-field-${field.id}`}\n inputRef={inputRef}\n formControl={formControl}\n data={data ?? {}}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAiB,oBAAoB;AAE3D,SACEC,KAAK,EACLC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACLC,SAAS,EACTC,QAAQ,EACRC,IAAI,EACJC,MAAM,EACNC,GAAG,EACHC,KAAK,EACLC,UAAU,EACVC,SAAS,EAETC,MAAM,EACNC,OAAO,EACPC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,aAAa,EACbC,cAAc,EACdC,YAAY,EACZC,KAAK,QACA,WAAW;AAElB,OAAO,MAAMC,uBAEZ,GAAG;EACFC,KAAK,
|
|
1
|
+
{"version":3,"names":["React","useController","Audio","ShortText","LongText","Checkbox","Color","DateInput","DateTime","Time","Number","Url","Email","ImageInput","Reference","Object","Address","RichContent","RichText","Document","MultiDocument","MultiReference","Video","MediaGallery","Array","EDITABLE_INPUT_ELEMENTS","AUDIO","SHORT_TEXT","LONG_TEXT","BOOLEAN","DATE","DATETIME","TIME","NUMBER","URL","IMAGE","VIDEO","REFERENCE","MULTI_REFERENCE","OBJECT","ARRAY","ADDRESS","RICH_CONTENT","RICH_TEXT","DOCUMENT","MULTI_DOCUMENT","EMAIL","MEDIA_GALLERY","COLOR","FormField","_ref","field","inputRef","formControl","data","controller","name","id","control","defaultValue","hasOwnProperty","type","FieldInput","createElement","value","onChange","dataHook"],"sources":["../../../../src/components/layouts/FormField.tsx"],"sourcesContent":["import React from 'react';\nimport { useController, Control } from '@wix/patterns/form';\nimport { Field, PatternsFieldType } from '../../types';\nimport {\n Audio,\n ShortText,\n LongText,\n Checkbox,\n Color,\n DateInput,\n DateTime,\n Time,\n Number,\n Url,\n Email,\n ImageInput,\n Reference,\n BaseInputProps,\n Object,\n Address,\n RichContent,\n RichText,\n Document,\n MultiDocument,\n MultiReference,\n Video,\n MediaGallery,\n Array,\n} from '../fields';\n\nexport const EDITABLE_INPUT_ELEMENTS: Partial<\n Record<PatternsFieldType, React.ComponentType<any>>\n> = {\n AUDIO: Audio,\n SHORT_TEXT: ShortText,\n LONG_TEXT: LongText,\n BOOLEAN: Checkbox,\n DATE: DateInput,\n DATETIME: DateTime,\n TIME: Time,\n NUMBER: Number,\n URL: Url,\n IMAGE: ImageInput,\n VIDEO: Video,\n REFERENCE: Reference,\n MULTI_REFERENCE: MultiReference,\n OBJECT: Object,\n ARRAY: Array,\n ADDRESS: Address,\n RICH_CONTENT: RichContent,\n RICH_TEXT: RichText,\n DOCUMENT: Document,\n MULTI_DOCUMENT: MultiDocument,\n EMAIL: Email,\n MEDIA_GALLERY: MediaGallery,\n COLOR: Color,\n};\n\nexport interface FormFieldProps {\n field: Field;\n inputRef?: BaseInputProps<any>['inputRef'];\n formControl?: Control<any>;\n data?: Record<string, any>;\n}\n\nexport const FormField: React.FC<FormFieldProps> = ({\n field,\n inputRef,\n formControl,\n data,\n}) => {\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n });\n\n if (!EDITABLE_INPUT_ELEMENTS.hasOwnProperty(field.type)) {\n return null;\n }\n\n const FieldInput = EDITABLE_INPUT_ELEMENTS[field.type]!;\n\n return (\n <FieldInput\n field={field}\n value={controller.field.value}\n onChange={controller.field.onChange}\n dataHook={`form-field-${field.id}`}\n inputRef={inputRef}\n formControl={formControl}\n data={data ?? {}}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAiB,oBAAoB;AAE3D,SACEC,KAAK,EACLC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACLC,SAAS,EACTC,QAAQ,EACRC,IAAI,EACJC,MAAM,EACNC,GAAG,EACHC,KAAK,EACLC,UAAU,EACVC,SAAS,EAETC,MAAM,EACNC,OAAO,EACPC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,aAAa,EACbC,cAAc,EACdC,KAAK,EACLC,YAAY,EACZC,KAAK,QACA,WAAW;AAElB,OAAO,MAAMC,uBAEZ,GAAG;EACFC,KAAK,EAAExB,KAAK;EACZyB,UAAU,EAAExB,SAAS;EACrByB,SAAS,EAAExB,QAAQ;EACnByB,OAAO,EAAExB,QAAQ;EACjByB,IAAI,EAAEvB,SAAS;EACfwB,QAAQ,EAAEvB,QAAQ;EAClBwB,IAAI,EAAEvB,IAAI;EACVwB,MAAM,EAAEvB,MAAM;EACdwB,GAAG,EAAEvB,GAAG;EACRwB,KAAK,EAAEtB,UAAU;EACjBuB,KAAK,EAAEd,KAAK;EACZe,SAAS,EAAEvB,SAAS;EACpBwB,eAAe,EAAEjB,cAAc;EAC/BkB,MAAM,EAAExB,MAAM;EACdyB,KAAK,EAAEhB,KAAK;EACZiB,OAAO,EAAEzB,OAAO;EAChB0B,YAAY,EAAEzB,WAAW;EACzB0B,SAAS,EAAEzB,QAAQ;EACnB0B,QAAQ,EAAEzB,QAAQ;EAClB0B,cAAc,EAAEzB,aAAa;EAC7B0B,KAAK,EAAElC,KAAK;EACZmC,aAAa,EAAExB,YAAY;EAC3ByB,KAAK,EAAE1C;AACT,CAAC;AASD,OAAO,MAAM2C,SAAmC,GAAGC,IAAA,IAK7C;EAAA,IAL8C;IAClDC,KAAK;IACLC,QAAQ;IACRC,WAAW;IACXC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAMK,UAAU,GAAGtD,aAAa,CAAC;IAC/BuD,IAAI,EAAE,CAAAL,KAAK,oBAALA,KAAK,CAAEM,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAEL,WAAW;IACpBM,YAAY,EAAEL,IAAI,oBAAJA,IAAI,CAAG,CAAAH,KAAK,oBAALA,KAAK,CAAEM,EAAE,KAAI,EAAE;EACtC,CAAC,CAAC;EAEF,IAAI,CAAChC,uBAAuB,CAACmC,cAAc,CAACT,KAAK,CAACU,IAAI,CAAC,EAAE;IACvD,OAAO,IAAI;EACb;EAEA,MAAMC,UAAU,GAAGrC,uBAAuB,CAAC0B,KAAK,CAACU,IAAI,CAAE;EAEvD,oBACE7D,KAAA,CAAA+D,aAAA,CAACD,UAAU;IACTX,KAAK,EAAEA,KAAM;IACba,KAAK,EAAET,UAAU,CAACJ,KAAK,CAACa,KAAM;IAC9BC,QAAQ,EAAEV,UAAU,CAACJ,KAAK,CAACc,QAAS;IACpCC,QAAQ,EAAE,cAAcf,KAAK,CAACM,EAAE,EAAG;IACnCL,QAAQ,EAAEA,QAAS;IACnBC,WAAW,EAAEA,WAAY;IACzBC,IAAI,EAAEA,IAAI,IAAI,CAAC;EAAE,CAClB,CAAC;AAEN,CAAC","ignoreList":[]}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Box, Text } from '@wix/design-system';
|
|
3
3
|
import { ReferenceViewField } from '../ReferenceViewField';
|
|
4
|
+
import { ImageViewField } from '../fields/ImageViewField';
|
|
5
|
+
import { VideoViewField } from '../fields/VideoViewField';
|
|
4
6
|
import { AudioView } from '../../cms-fields/components/audio/audio-field/audio-view';
|
|
5
7
|
import { DocumentView } from '../../cms-fields/components/document/document-view';
|
|
6
8
|
import { MultiDocumentView } from '../../cms-fields/components/multi-document/multi-document-view/multi-document-view';
|
|
@@ -31,60 +33,56 @@ const getDisplayValue = value => {
|
|
|
31
33
|
}
|
|
32
34
|
return String(value);
|
|
33
35
|
};
|
|
34
|
-
const
|
|
35
|
-
if (value === null || value === undefined) {
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
if (Array.isArray(value) && value.length === 0) {
|
|
39
|
-
return true;
|
|
40
|
-
}
|
|
41
|
-
return false;
|
|
42
|
-
};
|
|
43
|
-
const ViewFieldContent = _ref => {
|
|
44
|
-
let {
|
|
45
|
-
field,
|
|
46
|
-
value
|
|
47
|
-
} = _ref;
|
|
48
|
-
if (isEmptyValue(value)) {
|
|
49
|
-
return /*#__PURE__*/React.createElement(Text, null, "-");
|
|
50
|
-
}
|
|
51
|
-
switch (field.type) {
|
|
52
|
-
case 'REFERENCE':
|
|
53
|
-
return /*#__PURE__*/React.createElement(ReferenceViewField, {
|
|
54
|
-
field: field,
|
|
55
|
-
value: value
|
|
56
|
-
});
|
|
57
|
-
case 'MULTI_REFERENCE':
|
|
58
|
-
return /*#__PURE__*/React.createElement(MultiReferenceViewField, {
|
|
59
|
-
field: field,
|
|
60
|
-
value: value
|
|
61
|
-
});
|
|
62
|
-
case 'AUDIO':
|
|
63
|
-
return /*#__PURE__*/React.createElement(AudioView, {
|
|
64
|
-
data: value
|
|
65
|
-
});
|
|
66
|
-
case 'DOCUMENT':
|
|
67
|
-
return /*#__PURE__*/React.createElement(DocumentView, {
|
|
68
|
-
data: value
|
|
69
|
-
});
|
|
70
|
-
case 'MULTI_DOCUMENT':
|
|
71
|
-
return /*#__PURE__*/React.createElement(MultiDocumentView, {
|
|
72
|
-
data: value
|
|
73
|
-
});
|
|
74
|
-
case 'ADDRESS':
|
|
75
|
-
return /*#__PURE__*/React.createElement(AddressView, {
|
|
76
|
-
data: value
|
|
77
|
-
});
|
|
78
|
-
default:
|
|
79
|
-
return /*#__PURE__*/React.createElement(Text, null, getDisplayValue(value));
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
export const ViewField = _ref2 => {
|
|
36
|
+
export const ViewField = _ref => {
|
|
83
37
|
let {
|
|
84
38
|
field,
|
|
85
39
|
data
|
|
86
|
-
} =
|
|
40
|
+
} = _ref;
|
|
87
41
|
const fieldValue = data == null ? void 0 : data[(field == null ? void 0 : field.id) ?? ''];
|
|
42
|
+
const renderContent = () => {
|
|
43
|
+
switch (field.type) {
|
|
44
|
+
case 'REFERENCE':
|
|
45
|
+
return /*#__PURE__*/React.createElement(ReferenceViewField, {
|
|
46
|
+
field: field,
|
|
47
|
+
value: fieldValue
|
|
48
|
+
});
|
|
49
|
+
case 'MULTI_REFERENCE':
|
|
50
|
+
return /*#__PURE__*/React.createElement(MultiReferenceViewField, {
|
|
51
|
+
field: field,
|
|
52
|
+
value: fieldValue
|
|
53
|
+
});
|
|
54
|
+
case 'IMAGE':
|
|
55
|
+
return /*#__PURE__*/React.createElement(ImageViewField, {
|
|
56
|
+
value: fieldValue,
|
|
57
|
+
displayName: field.displayName,
|
|
58
|
+
id: field.id
|
|
59
|
+
});
|
|
60
|
+
case 'VIDEO':
|
|
61
|
+
return /*#__PURE__*/React.createElement(VideoViewField, {
|
|
62
|
+
value: fieldValue,
|
|
63
|
+
displayName: field.displayName,
|
|
64
|
+
id: field.id
|
|
65
|
+
});
|
|
66
|
+
case 'AUDIO':
|
|
67
|
+
return /*#__PURE__*/React.createElement(AudioView, {
|
|
68
|
+
data: fieldValue
|
|
69
|
+
});
|
|
70
|
+
case 'DOCUMENT':
|
|
71
|
+
return /*#__PURE__*/React.createElement(DocumentView, {
|
|
72
|
+
data: fieldValue
|
|
73
|
+
});
|
|
74
|
+
case 'MULTI_DOCUMENT':
|
|
75
|
+
return /*#__PURE__*/React.createElement(MultiDocumentView, {
|
|
76
|
+
data: fieldValue
|
|
77
|
+
});
|
|
78
|
+
case 'ADDRESS':
|
|
79
|
+
return /*#__PURE__*/React.createElement(AddressView, {
|
|
80
|
+
data: fieldValue
|
|
81
|
+
});
|
|
82
|
+
default:
|
|
83
|
+
return /*#__PURE__*/React.createElement(Text, null, getDisplayValue(fieldValue));
|
|
84
|
+
}
|
|
85
|
+
};
|
|
88
86
|
return /*#__PURE__*/React.createElement(Box, {
|
|
89
87
|
direction: "vertical",
|
|
90
88
|
gap: "4px",
|
|
@@ -92,9 +90,6 @@ export const ViewField = _ref2 => {
|
|
|
92
90
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
93
91
|
size: "small",
|
|
94
92
|
secondary: true
|
|
95
|
-
}, field.displayName || field.id),
|
|
96
|
-
field: field,
|
|
97
|
-
value: fieldValue
|
|
98
|
-
}));
|
|
93
|
+
}, field.displayName || field.id), renderContent());
|
|
99
94
|
};
|
|
100
95
|
//# sourceMappingURL=ViewField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Box","Text","ReferenceViewField","AudioView","DocumentView","MultiDocumentView","MultiReferenceViewField","AddressView","getDisplayValue","value","undefined","String","Array","isArray","length","join","Date","toLocaleDateString","toString","Object","prototype","JSON","stringify","
|
|
1
|
+
{"version":3,"names":["React","Box","Text","ReferenceViewField","ImageViewField","VideoViewField","AudioView","DocumentView","MultiDocumentView","MultiReferenceViewField","AddressView","getDisplayValue","value","undefined","String","Array","isArray","length","join","Date","toLocaleDateString","toString","Object","prototype","JSON","stringify","ViewField","_ref","field","data","fieldValue","id","renderContent","type","createElement","displayName","direction","gap","dataHook","size","secondary"],"sources":["../../../../src/components/layouts/ViewField.tsx"],"sourcesContent":["import React from 'react';\nimport { Box, Text } from '@wix/design-system';\nimport { Field } from '../../types';\nimport { ReferenceViewField } from '../ReferenceViewField';\nimport { ImageViewField } from '../fields/ImageViewField';\nimport { VideoViewField } from '../fields/VideoViewField';\nimport { AudioView } from '../../cms-fields/components/audio/audio-field/audio-view';\nimport { DocumentView } from '../../cms-fields/components/document/document-view';\nimport { MultiDocumentView } from '../../cms-fields/components/multi-document/multi-document-view/multi-document-view';\nimport { MultiReferenceViewField } from '../MultiReferenceViewField';\nimport { AddressView } from '../../cms-fields/components/address';\nimport { Address } from '../../cms-fields/types/address';\n\n// Safe display value conversion for all field types\nconst getDisplayValue = (value: unknown): string => {\n if (value === null || value === undefined) {\n return '-';\n }\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return String(value);\n }\n if (Array.isArray(value)) {\n return value.length > 0 ? value.join(', ') : '-';\n }\n if (typeof value === 'object') {\n // Handle dates\n if (value instanceof Date) {\n return value.toLocaleDateString();\n }\n // Handle objects with display properties\n if (\n value.toString &&\n value.toString !== Object.prototype.toString\n ) {\n return value.toString();\n }\n // Fallback for complex objects\n return JSON.stringify(value);\n }\n return String(value);\n};\n\nexport interface ViewFieldProps {\n field: Field;\n data?: Record<string, unknown>;\n}\n\nexport const ViewField: React.FC<ViewFieldProps> = ({ field, data }) => {\n const fieldValue = data?.[field?.id ?? ''];\n\n const renderContent = () => {\n switch (field.type) {\n case 'REFERENCE':\n return <ReferenceViewField field={field} value={fieldValue} />;\n case 'MULTI_REFERENCE':\n return <MultiReferenceViewField field={field} value={fieldValue} />;\n case 'IMAGE':\n return (\n <ImageViewField\n value={fieldValue}\n displayName={field.displayName}\n id={field.id}\n />\n );\n case 'VIDEO':\n return (\n <VideoViewField\n value={fieldValue}\n displayName={field.displayName}\n id={field.id}\n />\n );\n case 'AUDIO':\n return <AudioView data={fieldValue as string} />;\n case 'DOCUMENT':\n return <DocumentView data={fieldValue as string} />;\n case 'MULTI_DOCUMENT':\n return <MultiDocumentView data={fieldValue as string[]} />;\n case 'ADDRESS':\n return <AddressView data={fieldValue as Address} />;\n default:\n return <Text>{getDisplayValue(fieldValue)}</Text>;\n }\n };\n\n return (\n <Box direction=\"vertical\" gap=\"4px\" dataHook={`view-field-${field.id}`}>\n <Text size=\"small\" secondary>\n {field.displayName || field.id}\n </Text>\n {renderContent()}\n </Box>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -24,6 +24,7 @@ export const CmsFieldTypeToPatternsFieldType = {
|
|
|
24
24
|
[collections.Type.REFERENCE]: 'REFERENCE',
|
|
25
25
|
[collections.Type.MULTI_REFERENCE]: 'MULTI_REFERENCE',
|
|
26
26
|
[collections.Type.IMAGE]: 'IMAGE',
|
|
27
|
+
[collections.Type.VIDEO]: 'VIDEO',
|
|
27
28
|
[collections.Type.MEDIA_GALLERY]: 'MEDIA_GALLERY',
|
|
28
29
|
[collections.Type.DOCUMENT]: 'DOCUMENT',
|
|
29
30
|
[collections.Type.ARRAY_DOCUMENT]: 'MULTI_DOCUMENT',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["collections","items","fetchCmsData","errorHandler","createCmsBackupConfig","CMS_EMAIL_TYPE","CmsFieldTypeToPatternsFieldType","Type","TEXT","DATE","DATETIME","TIME","NUMBER","BOOLEAN","URL","ADDRESS","OBJECT","RICH_TEXT","RICH_CONTENT","ARRAY","ARRAY_STRING","REFERENCE","MULTI_REFERENCE","IMAGE","MEDIA_GALLERY","DOCUMENT","ARRAY_DOCUMENT","AUDIO","LEGACY_COLOR","fetchCmsSchema","collectionId","schema","withErrorHandler","getDataCollection","getReferenceFields","fields","Object","values","filter","f","type","updateMultiReferences","entityId","entity","multiReferenceFields","Promise","all","map","field","rawValue","id","multipleReferenceValues","multipleReferenceIds","value","_id","replaceReferences","transformCmsSchema","transformedFields","reduce","acc","_field$capabilities","_field$capabilities2","_field$typeMetadata","_field$typeMetadata2","key","fieldType","baseField","displayName","validation","numberRange","min","undefined","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","referencedCollectionId","typeMetadata","reference","multiReference","isReference","referenceMetadata","referenceFields","allReferenceFieldIds","schemaConfig","displayField","idField","actions","get","dataQuery","query","eq","length","include","res","find","returnTotalCount","Error","create","created","insert","createdId","update","delete","remove","bulkDelete","entityIds","bulkRemove","options","backup","bulkInsert","entities","inserted","updated","errors","succeeded","failed","e","rowIndex","originalIndex","message","code"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, PatternsFieldType, SchemaConfig } from '../../types';\nimport { collections, items } from '@wix/data';\nimport { fetchCmsData } from './fetchCmsData';\nimport { errorHandler } from '@wix/essentials';\nimport { createCmsBackupConfig } from './cmsBackup';\n\n// The CMS backend returns 'EMAIL' as a field type but the @wix/data SDK\n// doesn't expose it in collections.Type. We use a string literal as a workaround until the SDK is updated.\n// TODO: remove this once the SDK is updated\nconst CMS_EMAIL_TYPE = 'EMAIL' as collections.Type;\n\nexport const CmsFieldTypeToPatternsFieldType: Partial<\n Record<collections.Type, PatternsFieldType>\n> = {\n [collections.Type.TEXT]: 'SHORT_TEXT',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.TIME]: 'TIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\n [collections.Type.URL]: 'URL',\n [collections.Type.ADDRESS]: 'ADDRESS',\n [collections.Type.OBJECT]: 'OBJECT',\n [collections.Type.RICH_TEXT]: 'RICH_TEXT',\n [collections.Type.RICH_CONTENT]: 'RICH_CONTENT',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.ARRAY_STRING]: 'ARRAY',\n [collections.Type.REFERENCE]: 'REFERENCE',\n [collections.Type.MULTI_REFERENCE]: 'MULTI_REFERENCE',\n [collections.Type.IMAGE]: 'IMAGE',\n [collections.Type.MEDIA_GALLERY]: 'MEDIA_GALLERY',\n [collections.Type.DOCUMENT]: 'DOCUMENT',\n [collections.Type.ARRAY_DOCUMENT]: 'MULTI_DOCUMENT',\n [collections.Type.AUDIO]: 'AUDIO',\n [CMS_EMAIL_TYPE]: 'EMAIL',\n [collections.Type.LEGACY_COLOR]: 'COLOR',\n};\n\nexport async function fetchCmsSchema(\n collectionId: string,\n): Promise<collections.DataCollection> {\n const schema = await errorHandler.withErrorHandler(\n async () => collections.getDataCollection(collectionId),\n {},\n );\n return schema;\n}\n\nconst getReferenceFields = (fields: Record<string, Field>) =>\n Object.values(fields).filter(\n (f): f is Field => f?.type === 'REFERENCE' || f?.type === 'MULTI_REFERENCE',\n );\n\nconst updateMultiReferences = async (\n collectionId: string,\n entityId: string,\n entity: Record<string, any>,\n multiReferenceFields: Field[],\n) => {\n await Promise.all(\n multiReferenceFields.map(async (field) => {\n const rawValue = entity[field.id];\n const multipleReferenceValues = rawValue as Record<string, unknown>[];\n const multipleReferenceIds = multipleReferenceValues.map(\n (value) => value._id as string,\n );\n\n await items.replaceReferences(\n collectionId,\n field.id,\n entityId,\n multipleReferenceIds,\n );\n }),\n );\n};\n\nexport function transformCmsSchema(\n schema: collections.DataCollection,\n): SchemaConfig {\n const collectionId = schema._id as string;\n\n const transformedFields = (schema.fields || []).reduce<Record<string, Field>>(\n (acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n const fieldType = field.type\n ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT'\n : 'SHORT_TEXT';\n const baseField = {\n id: field.key,\n displayName: field.displayName || '',\n validation: {\n numberRange: field.numberRange\n ? {\n min: field.numberRange.min ?? undefined,\n max: field.numberRange.max ?? undefined,\n }\n : undefined,\n stringLengthRange: field.stringLengthRange\n ? {\n minLength: field.stringLengthRange.minLength ?? undefined,\n maxLength: field.stringLengthRange.maxLength ?? undefined,\n }\n : undefined,\n required: field.required ?? false,\n },\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n const referencedCollectionId =\n field.typeMetadata?.reference?.referencedCollectionId ??\n field.typeMetadata?.multiReference?.referencedCollectionId;\n\n const isReference =\n fieldType === 'REFERENCE' || fieldType === 'MULTI_REFERENCE';\n\n if (isReference && referencedCollectionId) {\n acc[field.key] = {\n ...baseField,\n type: fieldType as 'REFERENCE' | 'MULTI_REFERENCE',\n referenceMetadata: { referencedCollectionId },\n };\n } else {\n acc[field.key] = {\n ...baseField,\n type: isReference ? 'SHORT_TEXT' : fieldType,\n };\n }\n\n return acc;\n },\n {},\n );\n\n const referenceFields = getReferenceFields(transformedFields);\n const multiReferenceFields = referenceFields.filter(\n (f) => f.type === 'MULTI_REFERENCE',\n );\n const allReferenceFieldIds = referenceFields.map((f) => f.id);\n\n const schemaConfig: SchemaConfig = {\n id: collectionId,\n displayField: schema.displayField ?? '_id',\n idField: '_id',\n fields: transformedFields,\n actions: {\n get: async (entityId: string) => {\n let dataQuery = items.query(collectionId).eq('_id', entityId);\n if (allReferenceFieldIds.length > 0) {\n dataQuery = dataQuery.include(...allReferenceFieldIds);\n }\n\n const res = await dataQuery.find({ returnTotalCount: false });\n const entity = res.items[0];\n\n if (!entity) {\n throw new Error(`Entity not found: ${entityId}`);\n }\n\n return entity;\n },\n\n create: async (entity) => {\n const created = await items.insert(collectionId, entity);\n const createdId = created._id as string;\n\n if (createdId) {\n await updateMultiReferences(\n collectionId,\n createdId,\n entity as Record<string, unknown>,\n multiReferenceFields,\n );\n }\n\n return { ...entity, _id: createdId };\n },\n\n update: async (entity) => {\n await items.update(\n collectionId,\n entity as typeof entity & { _id: string },\n );\n\n const entityId = entity._id as string;\n\n if (entityId) {\n await updateMultiReferences(\n collectionId,\n entityId,\n entity,\n multiReferenceFields,\n );\n }\n\n return entity;\n },\n\n delete: (entityId) => items.remove(collectionId, entityId),\n bulkDelete: (entityIds) => items.bulkRemove(collectionId, entityIds),\n\n find: async (\n query,\n options: {\n searchableFieldIds?: string[];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n } = {},\n ) => {\n return fetchCmsData(collectionId, query, transformedFields, options);\n },\n backup: createCmsBackupConfig(),\n bulkInsert: async (entities) => {\n const { inserted, updated, errors } =\n await errorHandler.withErrorHandler(\n async () => items.bulkInsert(collectionId, entities),\n {},\n );\n\n return {\n succeeded: inserted + updated,\n failed: errors.length,\n errors: errors.map((e) => ({\n rowIndex: e.originalIndex,\n message: e.message,\n code: e.code,\n })),\n };\n },\n },\n };\n\n return schemaConfig;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["collections","items","fetchCmsData","errorHandler","createCmsBackupConfig","CMS_EMAIL_TYPE","CmsFieldTypeToPatternsFieldType","Type","TEXT","DATE","DATETIME","TIME","NUMBER","BOOLEAN","URL","ADDRESS","OBJECT","RICH_TEXT","RICH_CONTENT","ARRAY","ARRAY_STRING","REFERENCE","MULTI_REFERENCE","IMAGE","VIDEO","MEDIA_GALLERY","DOCUMENT","ARRAY_DOCUMENT","AUDIO","LEGACY_COLOR","fetchCmsSchema","collectionId","schema","withErrorHandler","getDataCollection","getReferenceFields","fields","Object","values","filter","f","type","updateMultiReferences","entityId","entity","multiReferenceFields","Promise","all","map","field","rawValue","id","multipleReferenceValues","multipleReferenceIds","value","_id","replaceReferences","transformCmsSchema","transformedFields","reduce","acc","_field$capabilities","_field$capabilities2","_field$typeMetadata","_field$typeMetadata2","key","fieldType","baseField","displayName","validation","numberRange","min","undefined","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","referencedCollectionId","typeMetadata","reference","multiReference","isReference","referenceMetadata","referenceFields","allReferenceFieldIds","schemaConfig","displayField","idField","actions","get","dataQuery","query","eq","length","include","res","find","returnTotalCount","Error","create","created","insert","createdId","update","delete","remove","bulkDelete","entityIds","bulkRemove","options","backup","bulkInsert","entities","inserted","updated","errors","succeeded","failed","e","rowIndex","originalIndex","message","code"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, PatternsFieldType, SchemaConfig } from '../../types';\nimport { collections, items } from '@wix/data';\nimport { fetchCmsData } from './fetchCmsData';\nimport { errorHandler } from '@wix/essentials';\nimport { createCmsBackupConfig } from './cmsBackup';\n\n// The CMS backend returns 'EMAIL' as a field type but the @wix/data SDK\n// doesn't expose it in collections.Type. We use a string literal as a workaround until the SDK is updated.\n// TODO: remove this once the SDK is updated\nconst CMS_EMAIL_TYPE = 'EMAIL' as collections.Type;\n\nexport const CmsFieldTypeToPatternsFieldType: Partial<\n Record<collections.Type, PatternsFieldType>\n> = {\n [collections.Type.TEXT]: 'SHORT_TEXT',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.TIME]: 'TIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\n [collections.Type.URL]: 'URL',\n [collections.Type.ADDRESS]: 'ADDRESS',\n [collections.Type.OBJECT]: 'OBJECT',\n [collections.Type.RICH_TEXT]: 'RICH_TEXT',\n [collections.Type.RICH_CONTENT]: 'RICH_CONTENT',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.ARRAY_STRING]: 'ARRAY',\n [collections.Type.REFERENCE]: 'REFERENCE',\n [collections.Type.MULTI_REFERENCE]: 'MULTI_REFERENCE',\n [collections.Type.IMAGE]: 'IMAGE',\n [collections.Type.VIDEO]: 'VIDEO',\n [collections.Type.MEDIA_GALLERY]: 'MEDIA_GALLERY',\n [collections.Type.DOCUMENT]: 'DOCUMENT',\n [collections.Type.ARRAY_DOCUMENT]: 'MULTI_DOCUMENT',\n [collections.Type.AUDIO]: 'AUDIO',\n [CMS_EMAIL_TYPE]: 'EMAIL',\n [collections.Type.LEGACY_COLOR]: 'COLOR',\n};\n\nexport async function fetchCmsSchema(\n collectionId: string,\n): Promise<collections.DataCollection> {\n const schema = await errorHandler.withErrorHandler(\n async () => collections.getDataCollection(collectionId),\n {},\n );\n return schema;\n}\n\nconst getReferenceFields = (fields: Record<string, Field>) =>\n Object.values(fields).filter(\n (f): f is Field => f?.type === 'REFERENCE' || f?.type === 'MULTI_REFERENCE',\n );\n\nconst updateMultiReferences = async (\n collectionId: string,\n entityId: string,\n entity: Record<string, any>,\n multiReferenceFields: Field[],\n) => {\n await Promise.all(\n multiReferenceFields.map(async (field) => {\n const rawValue = entity[field.id];\n const multipleReferenceValues = rawValue as Record<string, unknown>[];\n const multipleReferenceIds = multipleReferenceValues.map(\n (value) => value._id as string,\n );\n\n await items.replaceReferences(\n collectionId,\n field.id,\n entityId,\n multipleReferenceIds,\n );\n }),\n );\n};\n\nexport function transformCmsSchema(\n schema: collections.DataCollection,\n): SchemaConfig {\n const collectionId = schema._id as string;\n\n const transformedFields = (schema.fields || []).reduce<Record<string, Field>>(\n (acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n const fieldType = field.type\n ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT'\n : 'SHORT_TEXT';\n const baseField = {\n id: field.key,\n displayName: field.displayName || '',\n validation: {\n numberRange: field.numberRange\n ? {\n min: field.numberRange.min ?? undefined,\n max: field.numberRange.max ?? undefined,\n }\n : undefined,\n stringLengthRange: field.stringLengthRange\n ? {\n minLength: field.stringLengthRange.minLength ?? undefined,\n maxLength: field.stringLengthRange.maxLength ?? undefined,\n }\n : undefined,\n required: field.required ?? false,\n },\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n const referencedCollectionId =\n field.typeMetadata?.reference?.referencedCollectionId ??\n field.typeMetadata?.multiReference?.referencedCollectionId;\n\n const isReference =\n fieldType === 'REFERENCE' || fieldType === 'MULTI_REFERENCE';\n\n if (isReference && referencedCollectionId) {\n acc[field.key] = {\n ...baseField,\n type: fieldType as 'REFERENCE' | 'MULTI_REFERENCE',\n referenceMetadata: { referencedCollectionId },\n };\n } else {\n acc[field.key] = {\n ...baseField,\n type: isReference ? 'SHORT_TEXT' : fieldType,\n };\n }\n\n return acc;\n },\n {},\n );\n\n const referenceFields = getReferenceFields(transformedFields);\n const multiReferenceFields = referenceFields.filter(\n (f) => f.type === 'MULTI_REFERENCE',\n );\n const allReferenceFieldIds = referenceFields.map((f) => f.id);\n\n const schemaConfig: SchemaConfig = {\n id: collectionId,\n displayField: schema.displayField ?? '_id',\n idField: '_id',\n fields: transformedFields,\n actions: {\n get: async (entityId: string) => {\n let dataQuery = items.query(collectionId).eq('_id', entityId);\n if (allReferenceFieldIds.length > 0) {\n dataQuery = dataQuery.include(...allReferenceFieldIds);\n }\n\n const res = await dataQuery.find({ returnTotalCount: false });\n const entity = res.items[0];\n\n if (!entity) {\n throw new Error(`Entity not found: ${entityId}`);\n }\n\n return entity;\n },\n\n create: async (entity) => {\n const created = await items.insert(collectionId, entity);\n const createdId = created._id as string;\n\n if (createdId) {\n await updateMultiReferences(\n collectionId,\n createdId,\n entity as Record<string, unknown>,\n multiReferenceFields,\n );\n }\n\n return { ...entity, _id: createdId };\n },\n\n update: async (entity) => {\n await items.update(\n collectionId,\n entity as typeof entity & { _id: string },\n );\n\n const entityId = entity._id as string;\n\n if (entityId) {\n await updateMultiReferences(\n collectionId,\n entityId,\n entity,\n multiReferenceFields,\n );\n }\n\n return entity;\n },\n\n delete: (entityId) => items.remove(collectionId, entityId),\n bulkDelete: (entityIds) => items.bulkRemove(collectionId, entityIds),\n\n find: async (\n query,\n options: {\n searchableFieldIds?: string[];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n } = {},\n ) => {\n return fetchCmsData(collectionId, query, transformedFields, options);\n },\n backup: createCmsBackupConfig(),\n bulkInsert: async (entities) => {\n const { inserted, updated, errors } =\n await errorHandler.withErrorHandler(\n async () => items.bulkInsert(collectionId, entities),\n {},\n );\n\n return {\n succeeded: inserted + updated,\n failed: errors.length,\n errors: errors.map((e) => ({\n rowIndex: e.originalIndex,\n message: e.message,\n code: e.code,\n })),\n };\n },\n },\n };\n\n return schemaConfig;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@ import { useAutoPatternsOverridesContext, useSchema, useSchemaRegistry } from '.
|
|
|
3
3
|
import { camelCase, get } from 'lodash';
|
|
4
4
|
import { Box, Image } from '@wix/design-system';
|
|
5
5
|
import { getImageUrl } from '../utils/media/getImageUrl';
|
|
6
|
-
import { AddressView, AudioView, ColorView, JsonView, MediaGalleryView, RichTextView, TimeView, DocumentView, MultiDocumentView } from '../cms-fields';
|
|
6
|
+
import { AddressView, AudioView, ColorView, JsonView, MediaGalleryView, RichTextView, VideoView, TimeView, DocumentView, MultiDocumentView } from '../cms-fields';
|
|
7
7
|
import { extractReferenceDisplayValues } from '../utils/schema';
|
|
8
8
|
import { ReferenceAvatar } from '../components/ReferenceAvatar';
|
|
9
9
|
import { LazyRichContentView } from '../components/LazyRichContentView';
|
|
@@ -90,11 +90,16 @@ export const useColumns = columns => {
|
|
|
90
90
|
return itemValue;
|
|
91
91
|
case 'IMAGE':
|
|
92
92
|
const imageUrl = getImageUrl(itemValue);
|
|
93
|
-
return /*#__PURE__*/React.createElement(
|
|
93
|
+
return /*#__PURE__*/React.createElement(Box, {
|
|
94
|
+
verticalAlign: "middle",
|
|
95
|
+
height: "100%"
|
|
96
|
+
}, /*#__PURE__*/React.createElement(Image, {
|
|
94
97
|
src: imageUrl,
|
|
95
|
-
|
|
98
|
+
height: "36px",
|
|
99
|
+
width: "54px",
|
|
100
|
+
fit: "cover",
|
|
96
101
|
dataHook: "auto-patterns-image"
|
|
97
|
-
});
|
|
102
|
+
}));
|
|
98
103
|
case 'OBJECT':
|
|
99
104
|
return /*#__PURE__*/React.createElement(JsonView, {
|
|
100
105
|
data: itemValue
|
|
@@ -119,6 +124,11 @@ export const useColumns = columns => {
|
|
|
119
124
|
return /*#__PURE__*/React.createElement(LazyRichContentView, {
|
|
120
125
|
data: itemValue
|
|
121
126
|
});
|
|
127
|
+
case 'VIDEO':
|
|
128
|
+
return /*#__PURE__*/React.createElement(VideoView, {
|
|
129
|
+
data: itemValue,
|
|
130
|
+
width: "54px"
|
|
131
|
+
});
|
|
122
132
|
case 'MULTI_DOCUMENT':
|
|
123
133
|
return /*#__PURE__*/React.createElement(MultiDocumentView, {
|
|
124
134
|
data: itemValue
|