@wix/auto-patterns 1.46.0 → 1.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/assets/locale/messages_en.json +8 -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-button/actions-button.js +67 -0
- package/dist/cjs/cms-fields/components/audio/actions/actions-button/actions-button.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/actions/actions-button/index.js +10 -0
- package/dist/cjs/cms-fields/components/audio/actions/actions-button/index.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.js +119 -0
- package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css +5 -0
- package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js +25 -0
- package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/actions/actions-menu/index.js +16 -0
- package/dist/cjs/cms-fields/components/audio/actions/actions-menu/index.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/actions/actions-menu/types.js +4 -0
- package/dist/cjs/cms-fields/components/audio/actions/actions-menu/types.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/audio-field/audio-view.js +68 -0
- package/dist/cjs/cms-fields/components/audio/audio-field/audio-view.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.js +218 -0
- package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.st.css +28 -0
- package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.st.css.js +31 -0
- package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.st.css.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/audio-field/index.js +16 -0
- package/dist/cjs/cms-fields/components/audio/audio-field/index.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.js +77 -0
- package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.st.css +11 -0
- package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.st.css.js +22 -0
- package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.st.css.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/audio-player/index.js +10 -0
- package/dist/cjs/cms-fields/components/audio/audio-player/index.js.map +1 -0
- package/dist/cjs/cms-fields/components/audio/index.js +16 -0
- package/dist/cjs/cms-fields/components/audio/index.js.map +1 -0
- package/dist/cjs/cms-fields/components/common.js +2 -2
- package/dist/cjs/cms-fields/components/common.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/document-control.js +31 -14
- package/dist/cjs/cms-fields/components/document/document-control.js.map +1 -1
- package/dist/cjs/cms-fields/components/document/form-document-field.js +4 -2
- package/dist/cjs/cms-fields/components/document/form-document-field.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.js +42 -0
- package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.js.map +1 -0
- package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.st.css +39 -0
- package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.st.css.js +31 -0
- package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.st.css.js.map +1 -0
- package/dist/cjs/cms-fields/components/highlighted-text/index.js +10 -0
- package/dist/cjs/cms-fields/components/highlighted-text/index.js.map +1 -0
- 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-control/use-media-control.js +63 -18
- package/dist/cjs/cms-fields/components/media-control/use-media-control.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-loader/index.js +10 -0
- package/dist/cjs/cms-fields/components/media-loader/index.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-loader/media-loader.js +37 -0
- package/dist/cjs/cms-fields/components/media-loader/media-loader.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-loader/media-loader.st.css +20 -0
- package/dist/cjs/cms-fields/components/media-loader/media-loader.st.css.js +29 -0
- package/dist/cjs/cms-fields/components/media-loader/media-loader.st.css.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-tag/highlighted-media-tag.js +36 -0
- package/dist/cjs/cms-fields/components/media-tag/highlighted-media-tag.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-tag/index.js +16 -0
- package/dist/cjs/cms-fields/components/media-tag/index.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-tag/web-media-tag/index.js +9 -0
- package/dist/cjs/cms-fields/components/media-tag/web-media-tag/index.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.js +62 -0
- package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.st.css +12 -0
- package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js +25 -0
- package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -0
- package/dist/cjs/cms-fields/components/media-tag/web-media-tag/table-media-tag-view.js +50 -0
- package/dist/cjs/cms-fields/components/media-tag/web-media-tag/table-media-tag-view.js.map +1 -0
- package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document-field.js +5 -3
- package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document-field.js.map +1 -1
- package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document-view.js +10 -8
- package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document-view.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/hooks/index.js +6 -0
- package/dist/cjs/cms-fields/hooks/index.js.map +1 -1
- package/dist/cjs/cms-fields/hooks/use-resize-effect.js +16 -0
- package/dist/cjs/cms-fields/hooks/use-resize-effect.js.map +1 -0
- package/dist/cjs/cms-fields/utils/fuzzy-search.js +4 -0
- package/dist/cjs/cms-fields/utils/fuzzy-search.js.map +1 -0
- package/dist/cjs/cms-fields/utils/get-app-bounding-rect.js.map +1 -1
- package/dist/cjs/cms-fields/utils/get-app-popover-max-height.js +21 -0
- package/dist/cjs/cms-fields/utils/get-app-popover-max-height.js.map +1 -0
- package/dist/cjs/cms-fields/utils/get-schema-type.js +7 -0
- package/dist/cjs/cms-fields/utils/get-schema-type.js.map +1 -0
- package/dist/cjs/cms-fields/utils/index.js +24 -0
- package/dist/cjs/cms-fields/utils/index.js.map +1 -1
- package/dist/cjs/cms-fields/utils/media-utils.js +4 -20
- package/dist/cjs/cms-fields/utils/media-utils.js.map +1 -1
- package/dist/cjs/cms-fields/validations/email.js +27 -0
- package/dist/cjs/cms-fields/validations/email.js.map +1 -0
- package/dist/cjs/components/fields/Audio.js +63 -0
- package/dist/cjs/components/fields/Audio.js.map +1 -0
- package/dist/cjs/components/fields/Email.js +73 -0
- package/dist/cjs/components/fields/Email.js.map +1 -0
- package/dist/cjs/components/fields/index.js +7 -1
- package/dist/cjs/components/fields/index.js.map +1 -1
- package/dist/cjs/components/layouts/FormField.js +4 -2
- package/dist/cjs/components/layouts/FormField.js.map +1 -1
- package/dist/cjs/components/layouts/ViewField.js +21 -10
- package/dist/cjs/components/layouts/ViewField.js.map +1 -1
- package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js +7 -1
- package/dist/cjs/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
- package/dist/cjs/dataSourceAdapters/cms/filterUtils.js +4 -4
- package/dist/cjs/dataSourceAdapters/cms/filterUtils.js.map +1 -1
- package/dist/cjs/hooks/getFilterComponent.js +2 -0
- package/dist/cjs/hooks/getFilterComponent.js.map +1 -1
- package/dist/cjs/hooks/useColumns.js +23 -13
- package/dist/cjs/hooks/useColumns.js.map +1 -1
- package/dist/cjs/hooks/useFiltersState.js +2 -0
- package/dist/cjs/hooks/useFiltersState.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/types.js.map +1 -1
- package/dist/esm/assets/locale/messages_en.json +8 -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-button/actions-button.js +42 -0
- package/dist/esm/cms-fields/components/audio/actions/actions-button/actions-button.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/actions/actions-button/index.js +2 -0
- package/dist/esm/cms-fields/components/audio/actions/actions-button/index.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.js +80 -0
- package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css +5 -0
- package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js +21 -0
- package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/actions/actions-menu/index.js +3 -0
- package/dist/esm/cms-fields/components/audio/actions/actions-menu/index.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/actions/actions-menu/types.js +2 -0
- package/dist/esm/cms-fields/components/audio/actions/actions-menu/types.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/audio-field/audio-view.js +37 -0
- package/dist/esm/cms-fields/components/audio/audio-field/audio-view.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.js +131 -0
- package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.st.css +28 -0
- package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.st.css.js +27 -0
- package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.st.css.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/audio-field/index.js +3 -0
- package/dist/esm/cms-fields/components/audio/audio-field/index.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/audio-player/audio-player.js +41 -0
- package/dist/esm/cms-fields/components/audio/audio-player/audio-player.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/audio-player/audio-player.st.css +11 -0
- package/dist/esm/cms-fields/components/audio/audio-player/audio-player.st.css.js +18 -0
- package/dist/esm/cms-fields/components/audio/audio-player/audio-player.st.css.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/audio-player/index.js +2 -0
- package/dist/esm/cms-fields/components/audio/audio-player/index.js.map +1 -0
- package/dist/esm/cms-fields/components/audio/index.js +3 -0
- package/dist/esm/cms-fields/components/audio/index.js.map +1 -0
- package/dist/esm/cms-fields/components/common.js +1 -1
- package/dist/esm/cms-fields/components/common.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/document-control.js +13 -3
- package/dist/esm/cms-fields/components/document/document-control.js.map +1 -1
- package/dist/esm/cms-fields/components/document/form-document-field.js +3 -1
- package/dist/esm/cms-fields/components/document/form-document-field.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.js +29 -0
- package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.js.map +1 -0
- package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.st.css +39 -0
- package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.st.css.js +27 -0
- package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.st.css.js.map +1 -0
- package/dist/esm/cms-fields/components/highlighted-text/index.js +2 -0
- package/dist/esm/cms-fields/components/highlighted-text/index.js.map +1 -0
- 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-control/use-media-control.js +63 -18
- package/dist/esm/cms-fields/components/media-control/use-media-control.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-loader/index.js +2 -0
- package/dist/esm/cms-fields/components/media-loader/index.js.map +1 -0
- package/dist/esm/cms-fields/components/media-loader/media-loader.js +21 -0
- package/dist/esm/cms-fields/components/media-loader/media-loader.js.map +1 -0
- package/dist/esm/cms-fields/components/media-loader/media-loader.st.css +20 -0
- package/dist/esm/cms-fields/components/media-loader/media-loader.st.css.js +25 -0
- package/dist/esm/cms-fields/components/media-loader/media-loader.st.css.js.map +1 -0
- package/dist/esm/cms-fields/components/media-tag/highlighted-media-tag.js +18 -0
- package/dist/esm/cms-fields/components/media-tag/highlighted-media-tag.js.map +1 -0
- package/dist/esm/cms-fields/components/media-tag/index.js +3 -0
- package/dist/esm/cms-fields/components/media-tag/index.js.map +1 -0
- package/dist/esm/cms-fields/components/media-tag/web-media-tag/index.js +3 -0
- package/dist/esm/cms-fields/components/media-tag/web-media-tag/index.js.map +1 -0
- package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.js +31 -0
- package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.js.map +1 -0
- package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.st.css +12 -0
- package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js +21 -0
- package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -0
- package/dist/esm/cms-fields/components/media-tag/web-media-tag/table-media-tag-view.js +25 -0
- package/dist/esm/cms-fields/components/media-tag/web-media-tag/table-media-tag-view.js.map +1 -0
- package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document-field.js +3 -1
- package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document-field.js.map +1 -1
- package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document-view.js +3 -1
- package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document-view.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/hooks/index.js +1 -0
- package/dist/esm/cms-fields/hooks/index.js.map +1 -1
- package/dist/esm/cms-fields/hooks/use-resize-effect.js +11 -0
- package/dist/esm/cms-fields/hooks/use-resize-effect.js.map +1 -0
- package/dist/esm/cms-fields/utils/fuzzy-search.js +2 -0
- package/dist/esm/cms-fields/utils/fuzzy-search.js.map +1 -0
- package/dist/esm/cms-fields/utils/get-app-bounding-rect.js.map +1 -1
- package/dist/esm/cms-fields/utils/get-app-popover-max-height.js +16 -0
- package/dist/esm/cms-fields/utils/get-app-popover-max-height.js.map +1 -0
- package/dist/esm/cms-fields/utils/get-schema-type.js +2 -0
- package/dist/esm/cms-fields/utils/get-schema-type.js.map +1 -0
- package/dist/esm/cms-fields/utils/index.js +4 -0
- package/dist/esm/cms-fields/utils/index.js.map +1 -1
- package/dist/esm/cms-fields/utils/media-utils.js +2 -18
- package/dist/esm/cms-fields/utils/media-utils.js.map +1 -1
- package/dist/esm/cms-fields/validations/email.js +22 -0
- package/dist/esm/cms-fields/validations/email.js.map +1 -0
- package/dist/esm/components/fields/Audio.js +44 -0
- package/dist/esm/components/fields/Audio.js.map +1 -0
- package/dist/esm/components/fields/Email.js +53 -0
- package/dist/esm/components/fields/Email.js.map +1 -0
- package/dist/esm/components/fields/index.js +2 -0
- package/dist/esm/components/fields/index.js.map +1 -1
- package/dist/esm/components/layouts/FormField.js +4 -2
- package/dist/esm/components/layouts/FormField.js.map +1 -1
- package/dist/esm/components/layouts/ViewField.js +5 -0
- package/dist/esm/components/layouts/ViewField.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js +8 -1
- package/dist/esm/dataSourceAdapters/cms/cmsAdapter.js.map +1 -1
- package/dist/esm/dataSourceAdapters/cms/filterUtils.js +4 -4
- package/dist/esm/dataSourceAdapters/cms/filterUtils.js.map +1 -1
- package/dist/esm/hooks/getFilterComponent.js +2 -0
- package/dist/esm/hooks/getFilterComponent.js.map +1 -1
- package/dist/esm/hooks/useColumns.js +5 -1
- package/dist/esm/hooks/useColumns.js.map +1 -1
- package/dist/esm/hooks/useFiltersState.js +2 -0
- package/dist/esm/hooks/useFiltersState.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/types.js.map +1 -1
- package/dist/types/cms-fields/components/audio/actions/actions-button/actions-button.d.ts +10 -0
- package/dist/types/cms-fields/components/audio/actions/actions-button/actions-button.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/actions/actions-button/index.d.ts +2 -0
- package/dist/types/cms-fields/components/audio/actions/actions-button/index.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/actions/actions-menu/actions-menu.d.ts +29 -0
- package/dist/types/cms-fields/components/audio/actions/actions-menu/actions-menu.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.d.ts +16 -0
- package/dist/types/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/actions/actions-menu/index.d.ts +3 -0
- package/dist/types/cms-fields/components/audio/actions/actions-menu/index.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/actions/actions-menu/types.d.ts +13 -0
- package/dist/types/cms-fields/components/audio/actions/actions-menu/types.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/audio-field/audio-view.d.ts +4 -0
- package/dist/types/cms-fields/components/audio/audio-field/audio-view.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/audio-field/form-audio-field.d.ts +4 -0
- package/dist/types/cms-fields/components/audio/audio-field/form-audio-field.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/audio-field/form-audio-field.st.css.d.ts +22 -0
- package/dist/types/cms-fields/components/audio/audio-field/form-audio-field.st.css.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/audio-field/index.d.ts +3 -0
- package/dist/types/cms-fields/components/audio/audio-field/index.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/audio-player/audio-player.d.ts +8 -0
- package/dist/types/cms-fields/components/audio/audio-player/audio-player.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/audio-player/audio-player.st.css.d.ts +13 -0
- package/dist/types/cms-fields/components/audio/audio-player/audio-player.st.css.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/audio-player/index.d.ts +2 -0
- package/dist/types/cms-fields/components/audio/audio-player/index.d.ts.map +1 -0
- package/dist/types/cms-fields/components/audio/index.d.ts +3 -0
- package/dist/types/cms-fields/components/audio/index.d.ts.map +1 -0
- package/dist/types/cms-fields/components/common.d.ts +1 -0
- package/dist/types/cms-fields/components/common.d.ts.map +1 -1
- package/dist/types/cms-fields/components/delete-dialog/delete-dialog.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/document/document-control.d.ts +1 -0
- package/dist/types/cms-fields/components/document/document-control.d.ts.map +1 -1
- package/dist/types/cms-fields/components/document/form-document-field.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/exclamation/exclamation.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/highlighted-text/highlighted-text.d.ts +10 -0
- package/dist/types/cms-fields/components/highlighted-text/highlighted-text.d.ts.map +1 -0
- package/dist/types/cms-fields/components/highlighted-text/highlighted-text.st.css.d.ts +22 -0
- package/dist/types/cms-fields/components/highlighted-text/highlighted-text.st.css.d.ts.map +1 -0
- package/dist/types/cms-fields/components/highlighted-text/index.d.ts +2 -0
- package/dist/types/cms-fields/components/highlighted-text/index.d.ts.map +1 -0
- 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-control/use-media-control.d.ts +2 -1
- package/dist/types/cms-fields/components/media-control/use-media-control.d.ts.map +1 -1
- package/dist/types/cms-fields/components/media-loader/index.d.ts +2 -0
- package/dist/types/cms-fields/components/media-loader/index.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-loader/media-loader.d.ts +7 -0
- package/dist/types/cms-fields/components/media-loader/media-loader.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-loader/media-loader.st.css.d.ts +20 -0
- package/dist/types/cms-fields/components/media-loader/media-loader.st.css.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-tag/highlighted-media-tag.d.ts +8 -0
- package/dist/types/cms-fields/components/media-tag/highlighted-media-tag.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-tag/index.d.ts +3 -0
- package/dist/types/cms-fields/components/media-tag/index.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-tag/web-media-tag/index.d.ts +5 -0
- package/dist/types/cms-fields/components/media-tag/web-media-tag/index.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-tag/web-media-tag/media-tag.d.ts +10 -0
- package/dist/types/cms-fields/components/media-tag/web-media-tag/media-tag.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.d.ts +16 -0
- package/dist/types/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.d.ts.map +1 -0
- package/dist/types/cms-fields/components/media-tag/web-media-tag/table-media-tag-view.d.ts +8 -0
- package/dist/types/cms-fields/components/media-tag/web-media-tag/table-media-tag-view.d.ts.map +1 -0
- package/dist/types/cms-fields/components/multi-document/multi-document-input/form-multi-document-field.d.ts.map +1 -1
- package/dist/types/cms-fields/components/multi-document/multi-document-input/form-multi-document-view.d.ts +1 -0
- package/dist/types/cms-fields/components/multi-document/multi-document-input/form-multi-document-view.d.ts.map +1 -1
- 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/rich-content-common/publish-loader/publish-loader.st.css.d.ts.map +1 -1
- package/dist/types/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.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/hooks/index.d.ts +1 -0
- package/dist/types/cms-fields/hooks/index.d.ts.map +1 -1
- package/dist/types/cms-fields/hooks/use-resize-effect.d.ts +2 -0
- package/dist/types/cms-fields/hooks/use-resize-effect.d.ts.map +1 -0
- package/dist/types/cms-fields/utils/fuzzy-search.d.ts +5 -0
- package/dist/types/cms-fields/utils/fuzzy-search.d.ts.map +1 -0
- package/dist/types/cms-fields/utils/get-app-popover-max-height.d.ts +5 -0
- package/dist/types/cms-fields/utils/get-app-popover-max-height.d.ts.map +1 -0
- package/dist/types/cms-fields/utils/get-schema-type.d.ts +8 -0
- package/dist/types/cms-fields/utils/get-schema-type.d.ts.map +1 -0
- package/dist/types/cms-fields/utils/index.d.ts +4 -0
- package/dist/types/cms-fields/utils/index.d.ts.map +1 -1
- package/dist/types/cms-fields/utils/media-utils.d.ts +1 -4
- package/dist/types/cms-fields/utils/media-utils.d.ts.map +1 -1
- package/dist/types/cms-fields/validations/email.d.ts +2 -0
- package/dist/types/cms-fields/validations/email.d.ts.map +1 -0
- package/dist/types/components/fields/Audio.d.ts +6 -0
- package/dist/types/components/fields/Audio.d.ts.map +1 -0
- package/dist/types/components/fields/Email.d.ts +6 -0
- package/dist/types/components/fields/Email.d.ts.map +1 -0
- package/dist/types/components/fields/index.d.ts +2 -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/components/layouts/ViewField.d.ts.map +1 -1
- package/dist/types/dataSourceAdapters/cms/cmsAdapter.d.ts.map +1 -1
- package/dist/types/dataSourceAdapters/cms/filterUtils.d.ts.map +1 -1
- package/dist/types/hooks/getFilterComponent.d.ts.map +1 -1
- package/dist/types/hooks/useColumns.d.ts.map +1 -1
- package/dist/types/hooks/useFiltersState.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/types.d.ts +1 -1
- package/dist/types/types/types.d.ts.map +1 -1
- package/package.json +4 -3
|
@@ -10,8 +10,6 @@ const WIX_IMAGE_URI_REGEX = /^wix:image:\/\/v1\/([^/]+)\/([^/#]+)/;
|
|
|
10
10
|
const WIX_VIDEO_URI_REGEX = /^wix:video:\/\/v1\/([^/]+)\/([^/#]+)/;
|
|
11
11
|
const WIX_AUDIO_URI_REGEX = /^wix:audio:\/\/v1\/([^/]+)\/([^/#]+)/;
|
|
12
12
|
const WIX_VECTOR_URI_REGEX = /^wix:vector:\/\/v1\/([^/]+)\/([^/#]+)/;
|
|
13
|
-
const WIX_STATIC_URL = 'https://static.wixstatic.com';
|
|
14
|
-
const DEFAULT_MEDIA_DIR = 'ugd';
|
|
15
13
|
|
|
16
14
|
/**
|
|
17
15
|
* Helper to check if URI is decodable
|
|
@@ -117,22 +115,8 @@ export const getMediaTitle = uri => {
|
|
|
117
115
|
}
|
|
118
116
|
return uri;
|
|
119
117
|
};
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
* Get the URL for a Wix document URI
|
|
123
|
-
*/
|
|
124
|
-
export const getMediaURL = (uri, msid) => {
|
|
125
|
-
if (!isWixDocumentURI(uri)) {
|
|
126
|
-
return uri;
|
|
127
|
-
}
|
|
128
|
-
const match = uri.match(WIX_DOCUMENT_URI_REGEX);
|
|
129
|
-
if (!match) {
|
|
130
|
-
return uri;
|
|
131
|
-
}
|
|
132
|
-
const mediaId = match[1]; // e.g., "ugd/abc123_def456.pdf" or just "abc123_def456.pdf"
|
|
133
|
-
const baseUrl = msid ? `https://${msid}.usrfiles.com` : WIX_STATIC_URL;
|
|
134
|
-
const hasDirPrefix = mediaId.includes('/');
|
|
135
|
-
return hasDirPrefix ? `${baseUrl}/${mediaId}` : `${baseUrl}/${DEFAULT_MEDIA_DIR}/${mediaId}`;
|
|
118
|
+
export const executeDownloading = url => {
|
|
119
|
+
window.open(url, '_blank', 'noopener');
|
|
136
120
|
};
|
|
137
121
|
|
|
138
122
|
// Media types enum for media manager
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["WIX_DOCUMENT_URI_REGEX","WIX_IMAGE_URI_REGEX","WIX_VIDEO_URI_REGEX","WIX_AUDIO_URI_REGEX","WIX_VECTOR_URI_REGEX","
|
|
1
|
+
{"version":3,"names":["WIX_DOCUMENT_URI_REGEX","WIX_IMAGE_URI_REGEX","WIX_VIDEO_URI_REGEX","WIX_AUDIO_URI_REGEX","WIX_VECTOR_URI_REGEX","isDecodable","uri","decodeURI","isValidUrl","str","URL","isWixDocumentURI","test","isWixImageURI","isWixVideoURI","isWixAudioURI","isWixVectorURI","extractFilename","regex","match","decodeURIComponent","getMediaTitle","url","pathname","filename","split","pop","executeDownloading","window","open","MEDIA_TYPES","isDataValidOrNotSet","data","type","undefined"],"sources":["../../../../src/cms-fields/utils/media-utils.ts"],"sourcesContent":["/**\n * Local media utilities - pure string parsing, no external dependencies.\n * Avoids importing from @wix/auto-cms-field-types (pulls ricos ~100KB)\n * and @wix/cm-media-utils (pulls santa-platform-utils ~20KB).\n */\n\n// URI format: wix:{type}://v1/{mediaId}/{filename}[#params]\nconst WIX_DOCUMENT_URI_REGEX = /^wix:document:\\/\\/v1\\/(.+)\\/([^/]+)$/;\nconst WIX_IMAGE_URI_REGEX = /^wix:image:\\/\\/v1\\/([^/]+)\\/([^/#]+)/;\nconst WIX_VIDEO_URI_REGEX = /^wix:video:\\/\\/v1\\/([^/]+)\\/([^/#]+)/;\nconst WIX_AUDIO_URI_REGEX = /^wix:audio:\\/\\/v1\\/([^/]+)\\/([^/#]+)/;\nconst WIX_VECTOR_URI_REGEX = /^wix:vector:\\/\\/v1\\/([^/]+)\\/([^/#]+)/;\n\n/**\n * Helper to check if URI is decodable\n */\nconst isDecodable = (uri: string): boolean => {\n try {\n decodeURI(uri);\n return true;\n } catch {\n return false;\n }\n};\n\nconst isValidUrl = (str: string): boolean => {\n try {\n new URL(str);\n return true;\n } catch {\n return false;\n }\n};\n\n// Type checkers for different media URIs\nexport const isWixDocumentURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_DOCUMENT_URI_REGEX.test(uri);\n};\n\nexport const isWixImageURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_IMAGE_URI_REGEX.test(uri);\n};\n\nexport const isWixVideoURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_VIDEO_URI_REGEX.test(uri);\n};\n\nexport const isWixAudioURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_AUDIO_URI_REGEX.test(uri);\n};\n\nexport const isWixVectorURI = (uri: string): boolean => {\n if (!uri || typeof uri !== 'string') {\n return false;\n }\n return isDecodable(uri) && WIX_VECTOR_URI_REGEX.test(uri);\n};\n\n/**\n * Extract filename from a URI using the appropriate regex\n */\nconst extractFilename = (uri: string, regex: RegExp): string | null => {\n const match = uri.match(regex);\n if (!match || !match[2]) {\n return null;\n }\n try {\n return decodeURIComponent(match[2]);\n } catch {\n return match[2];\n }\n};\n\n/**\n * Get the title/filename from any Wix media URI\n * Supports: document, image, video, audio, vector\n */\nexport const getMediaTitle = (uri: string): string => {\n if (!uri || typeof uri !== 'string') {\n return uri || '';\n }\n\n if (isWixImageURI(uri)) {\n return extractFilename(uri, WIX_IMAGE_URI_REGEX) || uri;\n }\n\n if (isWixVideoURI(uri)) {\n return extractFilename(uri, WIX_VIDEO_URI_REGEX) || uri;\n }\n\n if (isWixAudioURI(uri)) {\n return extractFilename(uri, WIX_AUDIO_URI_REGEX) || uri;\n }\n\n if (isWixVectorURI(uri)) {\n return extractFilename(uri, WIX_VECTOR_URI_REGEX) || uri;\n }\n\n if (isWixDocumentURI(uri)) {\n return extractFilename(uri, WIX_DOCUMENT_URI_REGEX) || uri;\n }\n\n // Fallback: return the URI as-is or try to extract filename from URL path\n if (isValidUrl(uri)) {\n try {\n const url = new URL(uri);\n const pathname = url.pathname;\n const filename = pathname.split('/').pop();\n return filename ? decodeURIComponent(filename) : uri;\n } catch {\n return uri;\n }\n }\n\n return uri;\n};\n\nexport const executeDownloading = (url: string) => {\n window.open(url, '_blank', 'noopener');\n};\n\n// Media types enum for media manager\nexport enum MEDIA_TYPES {\n ALL_MEDIA = 'ALL_MEDIA',\n VIDEO = 'VIDEO_BOX',\n IMAGE = 'AUTO_CMS_IMAGE',\n AUDIO = 'MUSIC',\n GALLERY = 'PRO_GALLERY',\n}\n\n/**\n * Simple validation for document/image URLs\n */\nexport const isDataValidOrNotSet = (\n data: string | undefined,\n type: 'document' | 'image',\n): boolean => {\n if (data === undefined || data === null || data === '') {\n return true; // Not set = valid\n }\n\n if (type === 'document') {\n return isWixDocumentURI(data) || isValidUrl(data);\n }\n\n // For image type, check if it's a Wix image URI or valid URL\n if (type === 'image') {\n return isWixImageURI(data) || isValidUrl(data);\n }\n\n return isValidUrl(data);\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* domain : domain regex
|
|
3
|
+
* email: email regex
|
|
4
|
+
*/
|
|
5
|
+
const {
|
|
6
|
+
emailRegex
|
|
7
|
+
} = (() => {
|
|
8
|
+
const anyLetter = '\u00A1-\uD7FF\uE000-\uFFFF-a-zA-Z';
|
|
9
|
+
const anyDigit = '0-9';
|
|
10
|
+
const anyLetterOrDigit = `${anyLetter}${anyDigit}`;
|
|
11
|
+
const anyAllowedSymbol = "!#$%&'*+/=?^_`{|}~-";
|
|
12
|
+
const allowedWithoutQuotes = `[${anyLetterOrDigit}${anyAllowedSymbol}]+(?:\\.[${anyLetterOrDigit}${anyAllowedSymbol}]+)*`;
|
|
13
|
+
const allowedBetweenQuotes = '"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*"';
|
|
14
|
+
const localPart = `(?:${allowedWithoutQuotes}|${allowedBetweenQuotes})`;
|
|
15
|
+
const domainPart = `(?:[${anyLetterOrDigit}](?:[${anyLetterOrDigit}-]*[${anyLetterOrDigit}])?\\.)+(?:(?:[${anyDigit}]+[${anyLetter}][${anyLetterOrDigit}]*)|(?:[${anyLetter}][${anyLetterOrDigit}]{1,}))`;
|
|
16
|
+
const email = new RegExp('^' + localPart + '@' + domainPart + '$');
|
|
17
|
+
return {
|
|
18
|
+
emailRegex: email
|
|
19
|
+
};
|
|
20
|
+
})();
|
|
21
|
+
export const isValid = value => emailRegex.test(value);
|
|
22
|
+
//# sourceMappingURL=email.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["emailRegex","anyLetter","anyDigit","anyLetterOrDigit","anyAllowedSymbol","allowedWithoutQuotes","allowedBetweenQuotes","localPart","domainPart","email","RegExp","isValid","value","test"],"sources":["../../../../src/cms-fields/validations/email.ts"],"sourcesContent":["/**\n * domain : domain regex\n * email: email regex\n */\nconst { emailRegex } = (() => {\n const anyLetter = '\\u00A1-\\uD7FF\\uE000-\\uFFFF-a-zA-Z';\n const anyDigit = '0-9';\n const anyLetterOrDigit = `${anyLetter}${anyDigit}`;\n const anyAllowedSymbol = \"!#$%&'*+/=?^_`{|}~-\";\n const allowedWithoutQuotes = `[${anyLetterOrDigit}${anyAllowedSymbol}]+(?:\\\\.[${anyLetterOrDigit}${anyAllowedSymbol}]+)*`;\n const allowedBetweenQuotes =\n '\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\"';\n const localPart = `(?:${allowedWithoutQuotes}|${allowedBetweenQuotes})`;\n const domainPart = `(?:[${anyLetterOrDigit}](?:[${anyLetterOrDigit}-]*[${anyLetterOrDigit}])?\\\\.)+(?:(?:[${anyDigit}]+[${anyLetter}][${anyLetterOrDigit}]*)|(?:[${anyLetter}][${anyLetterOrDigit}]{1,}))`;\n const email = new RegExp('^' + localPart + '@' + domainPart + '$');\n return { emailRegex: email };\n})();\n\nexport const isValid = (value: string): boolean => emailRegex.test(value);\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA,MAAM;EAAEA;AAAW,CAAC,GAAG,CAAC,MAAM;EAC5B,MAAMC,SAAS,GAAG,mCAAmC;EACrD,MAAMC,QAAQ,GAAG,KAAK;EACtB,MAAMC,gBAAgB,GAAG,GAAGF,SAAS,GAAGC,QAAQ,EAAE;EAClD,MAAME,gBAAgB,GAAG,qBAAqB;EAC9C,MAAMC,oBAAoB,GAAG,IAAIF,gBAAgB,GAAGC,gBAAgB,YAAYD,gBAAgB,GAAGC,gBAAgB,MAAM;EACzH,MAAME,oBAAoB,GACxB,wFAAwF;EAC1F,MAAMC,SAAS,GAAG,MAAMF,oBAAoB,IAAIC,oBAAoB,GAAG;EACvE,MAAME,UAAU,GAAG,OAAOL,gBAAgB,QAAQA,gBAAgB,OAAOA,gBAAgB,kBAAkBD,QAAQ,MAAMD,SAAS,KAAKE,gBAAgB,WAAWF,SAAS,KAAKE,gBAAgB,SAAS;EACzM,MAAMM,KAAK,GAAG,IAAIC,MAAM,CAAC,GAAG,GAAGH,SAAS,GAAG,GAAG,GAAGC,UAAU,GAAG,GAAG,CAAC;EAClE,OAAO;IAAER,UAAU,EAAES;EAAM,CAAC;AAC9B,CAAC,EAAE,CAAC;AAEJ,OAAO,MAAME,OAAO,GAAIC,KAAa,IAAcZ,UAAU,CAACa,IAAI,CAACD,KAAK,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormField } from '@wix/design-system';
|
|
3
|
+
import { useWixPatternsContainer } from '@wix/patterns';
|
|
4
|
+
import { useController } from '@wix/patterns/form';
|
|
5
|
+
import { FormAudioField } from '../../cms-fields/components/audio/audio-field/form-audio-field';
|
|
6
|
+
export const Audio = props => {
|
|
7
|
+
var _field$validation2, _controller$fieldStat;
|
|
8
|
+
const {
|
|
9
|
+
field,
|
|
10
|
+
dataHook,
|
|
11
|
+
formControl,
|
|
12
|
+
data
|
|
13
|
+
} = props;
|
|
14
|
+
const {
|
|
15
|
+
translate: t
|
|
16
|
+
} = useWixPatternsContainer();
|
|
17
|
+
const controller = useController({
|
|
18
|
+
name: (field == null ? void 0 : field.id) ?? '',
|
|
19
|
+
control: formControl,
|
|
20
|
+
defaultValue: data == null ? void 0 : data[(field == null ? void 0 : field.id) ?? ''],
|
|
21
|
+
rules: {
|
|
22
|
+
validate: value => {
|
|
23
|
+
var _field$validation;
|
|
24
|
+
if ((_field$validation = field.validation) != null && _field$validation.required && (value === null || value === undefined || value === '')) {
|
|
25
|
+
return t('cairo.fieldValidation.requiredField');
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
return /*#__PURE__*/React.createElement(FormField, {
|
|
32
|
+
label: field.displayName,
|
|
33
|
+
required: (_field$validation2 = field.validation) == null ? void 0 : _field$validation2.required,
|
|
34
|
+
status: controller.fieldState.error ? 'error' : undefined,
|
|
35
|
+
statusMessage: (_controller$fieldStat = controller.fieldState.error) == null ? void 0 : _controller$fieldStat.message,
|
|
36
|
+
dataHook: dataHook
|
|
37
|
+
}, /*#__PURE__*/React.createElement(FormAudioField, {
|
|
38
|
+
data: controller.field.value,
|
|
39
|
+
onChange: value => controller.field.onChange(value),
|
|
40
|
+
onClear: () => controller.field.onChange(null),
|
|
41
|
+
dataHook: `audio-${field.id}`
|
|
42
|
+
}));
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=Audio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","FormField","useWixPatternsContainer","useController","FormAudioField","Audio","props","_field$validation2","_controller$fieldStat","field","dataHook","formControl","data","translate","t","controller","name","id","control","defaultValue","rules","validate","value","_field$validation","validation","required","undefined","createElement","label","displayName","status","fieldState","error","statusMessage","message","onChange","onClear"],"sources":["../../../../src/components/fields/Audio.tsx"],"sourcesContent":["import React from 'react';\nimport { FormField } from '@wix/design-system';\nimport { useWixPatternsContainer } from '@wix/patterns';\nimport { useController } from '@wix/patterns/form';\n\nimport { FormAudioField } from '../../cms-fields/components/audio/audio-field/form-audio-field';\nimport { BaseInputProps } from './types';\n\nexport interface AudioProps extends BaseInputProps<string> {}\n\nexport const Audio = (props: AudioProps) => {\n const { field, dataHook, formControl, data } = props;\n\n const { translate: t } = useWixPatternsContainer();\n\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n rules: {\n validate: (value) => {\n if (\n field.validation?.required &&\n (value === null || value === undefined || value === '')\n ) {\n return t('cairo.fieldValidation.requiredField');\n }\n\n return true;\n },\n },\n });\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n status={controller.fieldState.error ? 'error' : undefined}\n statusMessage={controller.fieldState.error?.message}\n dataHook={dataHook}\n >\n <FormAudioField\n data={controller.field.value}\n onChange={(value) => controller.field.onChange(value)}\n onClear={() => controller.field.onChange(null)}\n dataHook={`audio-${field.id}`}\n />\n </FormField>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,QAAQ,oBAAoB;AAC9C,SAASC,uBAAuB,QAAQ,eAAe;AACvD,SAASC,aAAa,QAAQ,oBAAoB;AAElD,SAASC,cAAc,QAAQ,gEAAgE;AAK/F,OAAO,MAAMC,KAAK,GAAIC,KAAiB,IAAK;EAAA,IAAAC,kBAAA,EAAAC,qBAAA;EAC1C,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAK,CAAC,GAAGN,KAAK;EAEpD,MAAM;IAAEO,SAAS,EAAEC;EAAE,CAAC,GAAGZ,uBAAuB,CAAC,CAAC;EAElD,MAAMa,UAAU,GAAGZ,aAAa,CAAC;IAC/Ba,IAAI,EAAE,CAAAP,KAAK,oBAALA,KAAK,CAAEQ,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAEP,WAAW;IACpBQ,YAAY,EAAEP,IAAI,oBAAJA,IAAI,CAAG,CAAAH,KAAK,oBAALA,KAAK,CAAEQ,EAAE,KAAI,EAAE,CAAC;IACrCG,KAAK,EAAE;MACLC,QAAQ,EAAGC,KAAK,IAAK;QAAA,IAAAC,iBAAA;QACnB,IACE,CAAAA,iBAAA,GAAAd,KAAK,CAACe,UAAU,aAAhBD,iBAAA,CAAkBE,QAAQ,KACzBH,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKI,SAAS,IAAIJ,KAAK,KAAK,EAAE,CAAC,EACvD;UACA,OAAOR,CAAC,CAAC,qCAAqC,CAAC;QACjD;QAEA,OAAO,IAAI;MACb;IACF;EACF,CAAC,CAAC;EAEF,oBACEd,KAAA,CAAA2B,aAAA,CAAC1B,SAAS;IACR2B,KAAK,EAAEnB,KAAK,CAACoB,WAAY;IACzBJ,QAAQ,GAAAlB,kBAAA,GAAEE,KAAK,CAACe,UAAU,qBAAhBjB,kBAAA,CAAkBkB,QAAS;IACrCK,MAAM,EAAEf,UAAU,CAACgB,UAAU,CAACC,KAAK,GAAG,OAAO,GAAGN,SAAU;IAC1DO,aAAa,GAAAzB,qBAAA,GAAEO,UAAU,CAACgB,UAAU,CAACC,KAAK,qBAA3BxB,qBAAA,CAA6B0B,OAAQ;IACpDxB,QAAQ,EAAEA;EAAS,gBAEnBV,KAAA,CAAA2B,aAAA,CAACvB,cAAc;IACbQ,IAAI,EAAEG,UAAU,CAACN,KAAK,CAACa,KAAM;IAC7Ba,QAAQ,EAAGb,KAAK,IAAKP,UAAU,CAACN,KAAK,CAAC0B,QAAQ,CAACb,KAAK,CAAE;IACtDc,OAAO,EAAEA,CAAA,KAAMrB,UAAU,CAACN,KAAK,CAAC0B,QAAQ,CAAC,IAAI,CAAE;IAC/CzB,QAAQ,EAAE,SAASD,KAAK,CAACQ,EAAE;EAAG,CAC/B,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormField, Input } from '@wix/design-system';
|
|
3
|
+
import { useWixPatternsContainer } from '@wix/patterns';
|
|
4
|
+
import { useController } from '@wix/patterns/form';
|
|
5
|
+
import { useAutoPatternsAppContainer } from '../AutoPatternsApp/AutoPatternsAppContainerProvider';
|
|
6
|
+
import * as emailValidation from '../../cms-fields/validations/email';
|
|
7
|
+
export const Email = props => {
|
|
8
|
+
var _field$validation2, _controller$fieldStat;
|
|
9
|
+
const {
|
|
10
|
+
field,
|
|
11
|
+
dataHook,
|
|
12
|
+
formControl,
|
|
13
|
+
data
|
|
14
|
+
} = props;
|
|
15
|
+
const {
|
|
16
|
+
translate: pt
|
|
17
|
+
} = useWixPatternsContainer();
|
|
18
|
+
const {
|
|
19
|
+
translate: t
|
|
20
|
+
} = useAutoPatternsAppContainer();
|
|
21
|
+
const controller = useController({
|
|
22
|
+
name: (field == null ? void 0 : field.id) ?? '',
|
|
23
|
+
control: formControl,
|
|
24
|
+
defaultValue: data == null ? void 0 : data[(field == null ? void 0 : field.id) ?? ''],
|
|
25
|
+
rules: {
|
|
26
|
+
validate: value => {
|
|
27
|
+
var _field$validation;
|
|
28
|
+
if ((_field$validation = field.validation) != null && _field$validation.required && (value === null || value === undefined || value === '')) {
|
|
29
|
+
return pt('cairo.fieldValidation.requiredField');
|
|
30
|
+
} else if (value) {
|
|
31
|
+
if (!emailValidation.isValid(value)) {
|
|
32
|
+
return t('auto-patterns.fields.email_input_error');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return /*#__PURE__*/React.createElement(FormField, {
|
|
40
|
+
label: field.displayName,
|
|
41
|
+
required: (_field$validation2 = field.validation) == null ? void 0 : _field$validation2.required,
|
|
42
|
+
dataHook: dataHook,
|
|
43
|
+
status: controller.fieldState.error && controller.formState.isSubmitted ? 'error' : undefined,
|
|
44
|
+
statusMessage: controller.formState.isSubmitted ? (_controller$fieldStat = controller.fieldState.error) == null ? void 0 : _controller$fieldStat.message : undefined
|
|
45
|
+
}, /*#__PURE__*/React.createElement(Input, {
|
|
46
|
+
dataHook: `email-${field.id}`,
|
|
47
|
+
value: controller.field.value,
|
|
48
|
+
onChange: e => controller.field.onChange == null ? void 0 : controller.field.onChange(e.target.value),
|
|
49
|
+
onBlur: controller.field.onBlur,
|
|
50
|
+
ref: controller.field.ref
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=Email.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","FormField","Input","useWixPatternsContainer","useController","useAutoPatternsAppContainer","emailValidation","Email","props","_field$validation2","_controller$fieldStat","field","dataHook","formControl","data","translate","pt","t","controller","name","id","control","defaultValue","rules","validate","value","_field$validation","validation","required","undefined","isValid","createElement","label","displayName","status","fieldState","error","formState","isSubmitted","statusMessage","message","onChange","e","target","onBlur","ref"],"sources":["../../../../src/components/fields/Email.tsx"],"sourcesContent":["import React from 'react';\nimport { FormField, Input } from '@wix/design-system';\nimport { BaseInputProps } from './types';\nimport { useWixPatternsContainer } from '@wix/patterns';\nimport { useController } from '@wix/patterns/form';\nimport { useAutoPatternsAppContainer } from '../AutoPatternsApp/AutoPatternsAppContainerProvider';\nimport * as emailValidation from '../../cms-fields/validations/email';\n\nexport interface EmailProps extends BaseInputProps<string> {}\n\nexport const Email = (props: EmailProps) => {\n const { field, dataHook, formControl, data } = props;\n const { translate: pt } = useWixPatternsContainer();\n const { translate: t } = useAutoPatternsAppContainer();\n\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n rules: {\n validate: (value: string | null | undefined) => {\n if (\n field.validation?.required &&\n (value === null || value === undefined || value === '')\n ) {\n return pt('cairo.fieldValidation.requiredField');\n } else if (value) {\n if (!emailValidation.isValid(value)) {\n return t('auto-patterns.fields.email_input_error');\n }\n }\n return true;\n },\n },\n });\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n dataHook={dataHook}\n status={\n controller.fieldState.error && controller.formState.isSubmitted\n ? 'error'\n : undefined\n }\n statusMessage={\n controller.formState.isSubmitted\n ? controller.fieldState.error?.message\n : undefined\n }\n >\n <Input\n dataHook={`email-${field.id}`}\n value={controller.field.value}\n onChange={(e) => controller.field.onChange?.(e.target.value)}\n onBlur={controller.field.onBlur}\n ref={controller.field.ref}\n />\n </FormField>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,KAAK,QAAQ,oBAAoB;AAErD,SAASC,uBAAuB,QAAQ,eAAe;AACvD,SAASC,aAAa,QAAQ,oBAAoB;AAClD,SAASC,2BAA2B,QAAQ,qDAAqD;AACjG,OAAO,KAAKC,eAAe,MAAM,oCAAoC;AAIrE,OAAO,MAAMC,KAAK,GAAIC,KAAiB,IAAK;EAAA,IAAAC,kBAAA,EAAAC,qBAAA;EAC1C,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAK,CAAC,GAAGN,KAAK;EACpD,MAAM;IAAEO,SAAS,EAAEC;EAAG,CAAC,GAAGb,uBAAuB,CAAC,CAAC;EACnD,MAAM;IAAEY,SAAS,EAAEE;EAAE,CAAC,GAAGZ,2BAA2B,CAAC,CAAC;EAEtD,MAAMa,UAAU,GAAGd,aAAa,CAAC;IAC/Be,IAAI,EAAE,CAAAR,KAAK,oBAALA,KAAK,CAAES,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAER,WAAW;IACpBS,YAAY,EAAER,IAAI,oBAAJA,IAAI,CAAG,CAAAH,KAAK,oBAALA,KAAK,CAAES,EAAE,KAAI,EAAE,CAAC;IACrCG,KAAK,EAAE;MACLC,QAAQ,EAAGC,KAAgC,IAAK;QAAA,IAAAC,iBAAA;QAC9C,IACE,CAAAA,iBAAA,GAAAf,KAAK,CAACgB,UAAU,aAAhBD,iBAAA,CAAkBE,QAAQ,KACzBH,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKI,SAAS,IAAIJ,KAAK,KAAK,EAAE,CAAC,EACvD;UACA,OAAOT,EAAE,CAAC,qCAAqC,CAAC;QAClD,CAAC,MAAM,IAAIS,KAAK,EAAE;UAChB,IAAI,CAACnB,eAAe,CAACwB,OAAO,CAACL,KAAK,CAAC,EAAE;YACnC,OAAOR,CAAC,CAAC,wCAAwC,CAAC;UACpD;QACF;QACA,OAAO,IAAI;MACb;IACF;EACF,CAAC,CAAC;EAEF,oBACEjB,KAAA,CAAA+B,aAAA,CAAC9B,SAAS;IACR+B,KAAK,EAAErB,KAAK,CAACsB,WAAY;IACzBL,QAAQ,GAAAnB,kBAAA,GAAEE,KAAK,CAACgB,UAAU,qBAAhBlB,kBAAA,CAAkBmB,QAAS;IACrChB,QAAQ,EAAEA,QAAS;IACnBsB,MAAM,EACJhB,UAAU,CAACiB,UAAU,CAACC,KAAK,IAAIlB,UAAU,CAACmB,SAAS,CAACC,WAAW,GAC3D,OAAO,GACPT,SACL;IACDU,aAAa,EACXrB,UAAU,CAACmB,SAAS,CAACC,WAAW,IAAA5B,qBAAA,GAC5BQ,UAAU,CAACiB,UAAU,CAACC,KAAK,qBAA3B1B,qBAAA,CAA6B8B,OAAO,GACpCX;EACL,gBAED7B,KAAA,CAAA+B,aAAA,CAAC7B,KAAK;IACJU,QAAQ,EAAE,SAASD,KAAK,CAACS,EAAE,EAAG;IAC9BK,KAAK,EAAEP,UAAU,CAACP,KAAK,CAACc,KAAM;IAC9BgB,QAAQ,EAAGC,CAAC,IAAKxB,UAAU,CAACP,KAAK,CAAC8B,QAAQ,oBAAzBvB,UAAU,CAACP,KAAK,CAAC8B,QAAQ,CAAGC,CAAC,CAACC,MAAM,CAAClB,KAAK,CAAE;IAC7DmB,MAAM,EAAE1B,UAAU,CAACP,KAAK,CAACiC,MAAO;IAChCC,GAAG,EAAE3B,UAAU,CAACP,KAAK,CAACkC;EAAI,CAC3B,CACQ,CAAC;AAEhB,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Checkbox","DateInput","DateTime","Document","MultiDocument","ImageInput","LongText","Number","Reference","MultiReference","ShortText","Time","Url","Object","Address","RichContent","RichText"],"sources":["../../../../src/components/fields/index.ts"],"sourcesContent":["export { Checkbox } from './Checkbox';\nexport { DateInput } from './DateInput';\nexport { DateTime } from './DateTime';\nexport { Document } from './Document';\nexport { MultiDocument } from './MultiDocument';\nexport { ImageInput } from './ImageInput';\nexport { LongText } from './LongText';\nexport { Number } from './Number';\nexport { Reference } from './Reference';\nexport { MultiReference } from './MultiReference';\nexport { ShortText } from './ShortText';\nexport { Time } from './Time';\nexport { Url } from './Url';\nexport { Object } from './Object';\nexport { Address } from './Address';\nexport { RichContent } from './RichContent';\nexport { RichText } from './RichText';\nexport * from './types';\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,YAAY;AACrC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,GAAG,QAAQ,OAAO;AAC3B,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,QAAQ,QAAQ,YAAY;AACrC,cAAc,SAAS","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Audio","Checkbox","Email","DateInput","DateTime","Document","MultiDocument","ImageInput","LongText","Number","Reference","MultiReference","ShortText","Time","Url","Object","Address","RichContent","RichText"],"sources":["../../../../src/components/fields/index.ts"],"sourcesContent":["export { Audio } from './Audio';\nexport { Checkbox } from './Checkbox';\nexport { Email } from './Email';\nexport { DateInput } from './DateInput';\nexport { DateTime } from './DateTime';\nexport { Document } from './Document';\nexport { MultiDocument } from './MultiDocument';\nexport { ImageInput } from './ImageInput';\nexport { LongText } from './LongText';\nexport { Number } from './Number';\nexport { Reference } from './Reference';\nexport { MultiReference } from './MultiReference';\nexport { ShortText } from './ShortText';\nexport { Time } from './Time';\nexport { Url } from './Url';\nexport { Object } from './Object';\nexport { Address } from './Address';\nexport { RichContent } from './RichContent';\nexport { RichText } from './RichText';\nexport * from './types';\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,SAAS;AAC/B,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,KAAK,QAAQ,SAAS;AAC/B,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,SAAS,QAAQ,aAAa;AACvC,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,GAAG,QAAQ,OAAO;AAC3B,SAASC,MAAM,QAAQ,UAAU;AACjC,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,QAAQ,QAAQ,YAAY;AACrC,cAAc,SAAS","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useController } from '@wix/patterns/form';
|
|
3
|
-
import { ShortText, LongText, Checkbox, DateInput, DateTime, Time, Number, Url, ImageInput, Reference, Object, Address, RichContent, RichText, Document, MultiDocument, MultiReference } from '../fields';
|
|
3
|
+
import { Audio, ShortText, LongText, Checkbox, DateInput, DateTime, Time, Number, Url, Email, ImageInput, Reference, Object, Address, RichContent, RichText, Document, MultiDocument, MultiReference } from '../fields';
|
|
4
4
|
export const EDITABLE_INPUT_ELEMENTS = {
|
|
5
|
+
AUDIO: Audio,
|
|
5
6
|
SHORT_TEXT: ShortText,
|
|
6
7
|
LONG_TEXT: LongText,
|
|
7
8
|
BOOLEAN: Checkbox,
|
|
@@ -18,7 +19,8 @@ export const EDITABLE_INPUT_ELEMENTS = {
|
|
|
18
19
|
RICH_CONTENT: RichContent,
|
|
19
20
|
RICH_TEXT: RichText,
|
|
20
21
|
DOCUMENT: Document,
|
|
21
|
-
MULTI_DOCUMENT: MultiDocument
|
|
22
|
+
MULTI_DOCUMENT: MultiDocument,
|
|
23
|
+
EMAIL: Email
|
|
22
24
|
};
|
|
23
25
|
export const FormField = _ref => {
|
|
24
26
|
let {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useController","ShortText","LongText","Checkbox","DateInput","DateTime","Time","Number","Url","ImageInput","Reference","Object","Address","RichContent","RichText","Document","MultiDocument","MultiReference","EDITABLE_INPUT_ELEMENTS","SHORT_TEXT","LONG_TEXT","BOOLEAN","DATE","DATETIME","TIME","NUMBER","URL","IMAGE","REFERENCE","MULTI_REFERENCE","OBJECT","ADDRESS","RICH_CONTENT","RICH_TEXT","DOCUMENT","MULTI_DOCUMENT","FormField","_ref","field","inputRef","formControl","data","controller","name","id","control","defaultValue","hasOwnProperty","type","FieldInput","createElement","value","onChange","dataHook"],"sources":["../../../../src/components/layouts/FormField.tsx"],"sourcesContent":["import React from 'react';\nimport { useController, Control } from '@wix/patterns/form';\nimport { Field, PatternsFieldType } from '../../types';\nimport {\n ShortText,\n LongText,\n Checkbox,\n DateInput,\n DateTime,\n Time,\n Number,\n Url,\n ImageInput,\n Reference,\n BaseInputProps,\n Object,\n Address,\n RichContent,\n RichText,\n Document,\n MultiDocument,\n MultiReference,\n} from '../fields';\n\nexport const EDITABLE_INPUT_ELEMENTS: Partial<\n Record<PatternsFieldType, React.ComponentType<any>>\n> = {\n SHORT_TEXT: ShortText,\n LONG_TEXT: LongText,\n BOOLEAN: Checkbox,\n DATE: DateInput,\n DATETIME: DateTime,\n TIME: Time,\n NUMBER: Number,\n URL: Url,\n IMAGE: ImageInput,\n REFERENCE: Reference,\n MULTI_REFERENCE: MultiReference,\n OBJECT: Object,\n ADDRESS: Address,\n RICH_CONTENT: RichContent,\n RICH_TEXT: RichText,\n DOCUMENT: Document,\n MULTI_DOCUMENT: MultiDocument,\n};\n\nexport interface FormFieldProps {\n field: Field;\n inputRef?: BaseInputProps<any>['inputRef'];\n formControl?: Control<any>;\n data?: Record<string, any>;\n}\n\nexport const FormField: React.FC<FormFieldProps> = ({\n field,\n inputRef,\n formControl,\n data,\n}) => {\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n });\n\n if (!EDITABLE_INPUT_ELEMENTS.hasOwnProperty(field.type)) {\n return null;\n }\n\n const FieldInput = EDITABLE_INPUT_ELEMENTS[field.type]!;\n\n return (\n <FieldInput\n field={field}\n value={controller.field.value}\n onChange={controller.field.onChange}\n dataHook={`form-field-${field.id}`}\n inputRef={inputRef}\n formControl={formControl}\n data={data ?? {}}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAiB,oBAAoB;AAE3D,SACEC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACRC,IAAI,EACJC,MAAM,EACNC,GAAG,EACHC,UAAU,EACVC,SAAS,EAETC,MAAM,EACNC,OAAO,EACPC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,aAAa,EACbC,cAAc,QACT,WAAW;AAElB,OAAO,MAAMC,uBAEZ,GAAG;EACFC,UAAU,
|
|
1
|
+
{"version":3,"names":["React","useController","Audio","ShortText","LongText","Checkbox","DateInput","DateTime","Time","Number","Url","Email","ImageInput","Reference","Object","Address","RichContent","RichText","Document","MultiDocument","MultiReference","EDITABLE_INPUT_ELEMENTS","AUDIO","SHORT_TEXT","LONG_TEXT","BOOLEAN","DATE","DATETIME","TIME","NUMBER","URL","IMAGE","REFERENCE","MULTI_REFERENCE","OBJECT","ADDRESS","RICH_CONTENT","RICH_TEXT","DOCUMENT","MULTI_DOCUMENT","EMAIL","FormField","_ref","field","inputRef","formControl","data","controller","name","id","control","defaultValue","hasOwnProperty","type","FieldInput","createElement","value","onChange","dataHook"],"sources":["../../../../src/components/layouts/FormField.tsx"],"sourcesContent":["import React from 'react';\nimport { useController, Control } from '@wix/patterns/form';\nimport { Field, PatternsFieldType } from '../../types';\nimport {\n Audio,\n ShortText,\n LongText,\n Checkbox,\n DateInput,\n DateTime,\n Time,\n Number,\n Url,\n Email,\n ImageInput,\n Reference,\n BaseInputProps,\n Object,\n Address,\n RichContent,\n RichText,\n Document,\n MultiDocument,\n MultiReference,\n} from '../fields';\n\nexport const EDITABLE_INPUT_ELEMENTS: Partial<\n Record<PatternsFieldType, React.ComponentType<any>>\n> = {\n AUDIO: Audio,\n SHORT_TEXT: ShortText,\n LONG_TEXT: LongText,\n BOOLEAN: Checkbox,\n DATE: DateInput,\n DATETIME: DateTime,\n TIME: Time,\n NUMBER: Number,\n URL: Url,\n IMAGE: ImageInput,\n REFERENCE: Reference,\n MULTI_REFERENCE: MultiReference,\n OBJECT: Object,\n ADDRESS: Address,\n RICH_CONTENT: RichContent,\n RICH_TEXT: RichText,\n DOCUMENT: Document,\n MULTI_DOCUMENT: MultiDocument,\n EMAIL: Email,\n};\n\nexport interface FormFieldProps {\n field: Field;\n inputRef?: BaseInputProps<any>['inputRef'];\n formControl?: Control<any>;\n data?: Record<string, any>;\n}\n\nexport const FormField: React.FC<FormFieldProps> = ({\n field,\n inputRef,\n formControl,\n data,\n}) => {\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n });\n\n if (!EDITABLE_INPUT_ELEMENTS.hasOwnProperty(field.type)) {\n return null;\n }\n\n const FieldInput = EDITABLE_INPUT_ELEMENTS[field.type]!;\n\n return (\n <FieldInput\n field={field}\n value={controller.field.value}\n onChange={controller.field.onChange}\n dataHook={`form-field-${field.id}`}\n inputRef={inputRef}\n formControl={formControl}\n data={data ?? {}}\n />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAiB,oBAAoB;AAE3D,SACEC,KAAK,EACLC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,QAAQ,EACRC,IAAI,EACJC,MAAM,EACNC,GAAG,EACHC,KAAK,EACLC,UAAU,EACVC,SAAS,EAETC,MAAM,EACNC,OAAO,EACPC,WAAW,EACXC,QAAQ,EACRC,QAAQ,EACRC,aAAa,EACbC,cAAc,QACT,WAAW;AAElB,OAAO,MAAMC,uBAEZ,GAAG;EACFC,KAAK,EAAEpB,KAAK;EACZqB,UAAU,EAAEpB,SAAS;EACrBqB,SAAS,EAAEpB,QAAQ;EACnBqB,OAAO,EAAEpB,QAAQ;EACjBqB,IAAI,EAAEpB,SAAS;EACfqB,QAAQ,EAAEpB,QAAQ;EAClBqB,IAAI,EAAEpB,IAAI;EACVqB,MAAM,EAAEpB,MAAM;EACdqB,GAAG,EAAEpB,GAAG;EACRqB,KAAK,EAAEnB,UAAU;EACjBoB,SAAS,EAAEnB,SAAS;EACpBoB,eAAe,EAAEb,cAAc;EAC/Bc,MAAM,EAAEpB,MAAM;EACdqB,OAAO,EAAEpB,OAAO;EAChBqB,YAAY,EAAEpB,WAAW;EACzBqB,SAAS,EAAEpB,QAAQ;EACnBqB,QAAQ,EAAEpB,QAAQ;EAClBqB,cAAc,EAAEpB,aAAa;EAC7BqB,KAAK,EAAE7B;AACT,CAAC;AASD,OAAO,MAAM8B,SAAmC,GAAGC,IAAA,IAK7C;EAAA,IAL8C;IAClDC,KAAK;IACLC,QAAQ;IACRC,WAAW;IACXC;EACF,CAAC,GAAAJ,IAAA;EACC,MAAMK,UAAU,GAAG9C,aAAa,CAAC;IAC/B+C,IAAI,EAAE,CAAAL,KAAK,oBAALA,KAAK,CAAEM,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAEL,WAAW;IACpBM,YAAY,EAAEL,IAAI,oBAAJA,IAAI,CAAG,CAAAH,KAAK,oBAALA,KAAK,CAAEM,EAAE,KAAI,EAAE;EACtC,CAAC,CAAC;EAEF,IAAI,CAAC5B,uBAAuB,CAAC+B,cAAc,CAACT,KAAK,CAACU,IAAI,CAAC,EAAE;IACvD,OAAO,IAAI;EACb;EAEA,MAAMC,UAAU,GAAGjC,uBAAuB,CAACsB,KAAK,CAACU,IAAI,CAAE;EAEvD,oBACErD,KAAA,CAAAuD,aAAA,CAACD,UAAU;IACTX,KAAK,EAAEA,KAAM;IACba,KAAK,EAAET,UAAU,CAACJ,KAAK,CAACa,KAAM;IAC9BC,QAAQ,EAAEV,UAAU,CAACJ,KAAK,CAACc,QAAS;IACpCC,QAAQ,EAAE,cAAcf,KAAK,CAACM,EAAE,EAAG;IACnCL,QAAQ,EAAEA,QAAS;IACnBC,WAAW,EAAEA,WAAY;IACzBC,IAAI,EAAEA,IAAI,IAAI,CAAC;EAAE,CAClB,CAAC;AAEN,CAAC","ignoreList":[]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Box, Text } from '@wix/design-system';
|
|
3
3
|
import { ReferenceViewField } from '../ReferenceViewField';
|
|
4
|
+
import { AudioView } from '../../cms-fields/components/audio/audio-field/audio-view';
|
|
4
5
|
import { DocumentView } from '../../cms-fields/components/document/document-view';
|
|
5
6
|
import { MultiDocumentView } from '../../cms-fields/components/multi-document/multi-document-view/multi-document-view';
|
|
6
7
|
import { MultiReferenceViewField } from '../MultiReferenceViewField';
|
|
@@ -58,6 +59,10 @@ const ViewFieldContent = _ref => {
|
|
|
58
59
|
field: field,
|
|
59
60
|
value: value
|
|
60
61
|
});
|
|
62
|
+
case 'AUDIO':
|
|
63
|
+
return /*#__PURE__*/React.createElement(AudioView, {
|
|
64
|
+
data: value
|
|
65
|
+
});
|
|
61
66
|
case 'DOCUMENT':
|
|
62
67
|
return /*#__PURE__*/React.createElement(DocumentView, {
|
|
63
68
|
data: value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Box","Text","ReferenceViewField","DocumentView","MultiDocumentView","MultiReferenceViewField","AddressView","getDisplayValue","value","undefined","String","Array","isArray","length","join","Date","toLocaleDateString","toString","Object","prototype","JSON","stringify","isEmptyValue","ViewFieldContent","_ref","field","createElement","type","data","ViewField","_ref2","fieldValue","id","direction","gap","dataHook","size","secondary","displayName"],"sources":["../../../../src/components/layouts/ViewField.tsx"],"sourcesContent":["import React from 'react';\nimport { Box, Text } from '@wix/design-system';\nimport { Field } from '../../types';\nimport { ReferenceViewField } from '../ReferenceViewField';\nimport { DocumentView } from '../../cms-fields/components/document/document-view';\nimport { MultiDocumentView } from '../../cms-fields/components/multi-document/multi-document-view/multi-document-view';\nimport { MultiReferenceViewField } from '../MultiReferenceViewField';\nimport { AddressView } from '../../cms-fields/components/address';\nimport { Address } from '../../cms-fields/types/address';\n\n// Safe display value conversion for all field types\nconst getDisplayValue = (value: any): string => {\n if (value === null || value === undefined) {\n return '-';\n }\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return String(value);\n }\n if (Array.isArray(value)) {\n return value.length > 0 ? value.join(', ') : '-';\n }\n if (typeof value === 'object') {\n // Handle dates\n if (value instanceof Date) {\n return value.toLocaleDateString();\n }\n // Handle objects with display properties\n if (value.toString && value.toString !== Object.prototype.toString) {\n return value.toString();\n }\n // Fallback for complex objects\n return JSON.stringify(value);\n }\n return String(value);\n};\n\nconst isEmptyValue = (value: any): boolean => {\n if (value === null || value === undefined) {\n return true;\n }\n if (Array.isArray(value) && value.length === 0) {\n return true;\n }\n return false;\n};\n\ninterface ViewFieldContentProps {\n field: Field;\n value: unknown;\n}\n\nconst ViewFieldContent: React.FC<ViewFieldContentProps> = ({\n field,\n value,\n}) => {\n if (isEmptyValue(value)) {\n return <Text>-</Text>;\n }\n\n switch (field.type) {\n case 'REFERENCE':\n return <ReferenceViewField field={field} value={value} />;\n case 'MULTI_REFERENCE':\n return <MultiReferenceViewField field={field} value={value} />;\n case 'DOCUMENT':\n return <DocumentView data={value as string} />;\n case 'MULTI_DOCUMENT':\n return <MultiDocumentView data={value as string[]} />;\n case 'ADDRESS':\n return <AddressView data={value as Address} />;\n default:\n return <Text>{getDisplayValue(value)}</Text>;\n }\n};\n\nexport interface ViewFieldProps {\n field: Field;\n data?: Record<string, any>;\n}\n\nexport const ViewField: React.FC<ViewFieldProps> = ({ field, data }) => {\n const fieldValue = data?.[field?.id ?? ''];\n\n return (\n <Box direction=\"vertical\" gap=\"4px\" dataHook={`view-field-${field.id}`}>\n <Text size=\"small\" secondary>\n {field.displayName || field.id}\n </Text>\n <ViewFieldContent field={field} value={fieldValue} />\n </Box>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,GAAG,EAAEC,IAAI,QAAQ,oBAAoB;AAE9C,SAASC,kBAAkB,QAAQ,uBAAuB;AAC1D,SAASC,YAAY,QAAQ,oDAAoD;AACjF,SAASC,iBAAiB,QAAQ,oFAAoF;AACtH,SAASC,uBAAuB,QAAQ,4BAA4B;AACpE,SAASC,WAAW,QAAQ,qCAAqC;AAGjE;AACA,MAAMC,eAAe,GAAIC,KAAU,IAAa;EAC9C,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,EAAE;IACzC,OAAO,GAAG;EACZ;EACA,IACE,OAAOD,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,SAAS,EAC1B;IACA,OAAOE,MAAM,CAACF,KAAK,CAAC;EACtB;EACA,IAAIG,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;IACxB,OAAOA,KAAK,CAACK,MAAM,GAAG,CAAC,GAAGL,KAAK,CAACM,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG;EAClD;EACA,IAAI,OAAON,KAAK,KAAK,QAAQ,EAAE;IAC7B;IACA,IAAIA,KAAK,YAAYO,IAAI,EAAE;MACzB,OAAOP,KAAK,CAACQ,kBAAkB,CAAC,CAAC;IACnC;IACA;IACA,IAAIR,KAAK,CAACS,QAAQ,IAAIT,KAAK,CAACS,QAAQ,KAAKC,MAAM,CAACC,SAAS,CAACF,QAAQ,EAAE;MAClE,OAAOT,KAAK,CAACS,QAAQ,CAAC,CAAC;IACzB;IACA;IACA,OAAOG,IAAI,CAACC,SAAS,CAACb,KAAK,CAAC;EAC9B;EACA,OAAOE,MAAM,CAACF,KAAK,CAAC;AACtB,CAAC;AAED,MAAMc,YAAY,GAAId,KAAU,IAAc;EAC5C,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,EAAE;IACzC,OAAO,IAAI;EACb;EACA,IAAIE,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,IAAIA,KAAK,CAACK,MAAM,KAAK,CAAC,EAAE;IAC9C,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd,CAAC;AAOD,MAAMU,gBAAiD,GAAGC,IAAA,IAGpD;EAAA,IAHqD;IACzDC,KAAK;IACLjB;EACF,CAAC,GAAAgB,IAAA;EACC,IAAIF,YAAY,CAACd,KAAK,CAAC,EAAE;IACvB,
|
|
1
|
+
{"version":3,"names":["React","Box","Text","ReferenceViewField","AudioView","DocumentView","MultiDocumentView","MultiReferenceViewField","AddressView","getDisplayValue","value","undefined","String","Array","isArray","length","join","Date","toLocaleDateString","toString","Object","prototype","JSON","stringify","isEmptyValue","ViewFieldContent","_ref","field","createElement","type","data","ViewField","_ref2","fieldValue","id","direction","gap","dataHook","size","secondary","displayName"],"sources":["../../../../src/components/layouts/ViewField.tsx"],"sourcesContent":["import React from 'react';\nimport { Box, Text } from '@wix/design-system';\nimport { Field } from '../../types';\nimport { ReferenceViewField } from '../ReferenceViewField';\nimport { AudioView } from '../../cms-fields/components/audio/audio-field/audio-view';\nimport { DocumentView } from '../../cms-fields/components/document/document-view';\nimport { MultiDocumentView } from '../../cms-fields/components/multi-document/multi-document-view/multi-document-view';\nimport { MultiReferenceViewField } from '../MultiReferenceViewField';\nimport { AddressView } from '../../cms-fields/components/address';\nimport { Address } from '../../cms-fields/types/address';\n\n// Safe display value conversion for all field types\nconst getDisplayValue = (value: any): string => {\n if (value === null || value === undefined) {\n return '-';\n }\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return String(value);\n }\n if (Array.isArray(value)) {\n return value.length > 0 ? value.join(', ') : '-';\n }\n if (typeof value === 'object') {\n // Handle dates\n if (value instanceof Date) {\n return value.toLocaleDateString();\n }\n // Handle objects with display properties\n if (value.toString && value.toString !== Object.prototype.toString) {\n return value.toString();\n }\n // Fallback for complex objects\n return JSON.stringify(value);\n }\n return String(value);\n};\n\nconst isEmptyValue = (value: any): boolean => {\n if (value === null || value === undefined) {\n return true;\n }\n if (Array.isArray(value) && value.length === 0) {\n return true;\n }\n return false;\n};\n\ninterface ViewFieldContentProps {\n field: Field;\n value: unknown;\n}\n\nconst ViewFieldContent: React.FC<ViewFieldContentProps> = ({\n field,\n value,\n}) => {\n if (isEmptyValue(value)) {\n return <Text>-</Text>;\n }\n\n switch (field.type) {\n case 'REFERENCE':\n return <ReferenceViewField field={field} value={value} />;\n case 'MULTI_REFERENCE':\n return <MultiReferenceViewField field={field} value={value} />;\n case 'AUDIO':\n return <AudioView data={value as string} />;\n case 'DOCUMENT':\n return <DocumentView data={value as string} />;\n case 'MULTI_DOCUMENT':\n return <MultiDocumentView data={value as string[]} />;\n case 'ADDRESS':\n return <AddressView data={value as Address} />;\n default:\n return <Text>{getDisplayValue(value)}</Text>;\n }\n};\n\nexport interface ViewFieldProps {\n field: Field;\n data?: Record<string, any>;\n}\n\nexport const ViewField: React.FC<ViewFieldProps> = ({ field, data }) => {\n const fieldValue = data?.[field?.id ?? ''];\n\n return (\n <Box direction=\"vertical\" gap=\"4px\" dataHook={`view-field-${field.id}`}>\n <Text size=\"small\" secondary>\n {field.displayName || field.id}\n </Text>\n <ViewFieldContent field={field} value={fieldValue} />\n </Box>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { collections, items } from '@wix/data';
|
|
2
2
|
import { fetchCmsData } from './fetchCmsData';
|
|
3
3
|
import { errorHandler } from '@wix/essentials';
|
|
4
|
+
|
|
5
|
+
// The CMS backend returns 'EMAIL' as a field type but the @wix/data SDK
|
|
6
|
+
// doesn't expose it in collections.Type. We use a string literal as a workaround until the SDK is updated.
|
|
7
|
+
// TODO: remove this once the SDK is updated
|
|
8
|
+
const CMS_EMAIL_TYPE = 'EMAIL';
|
|
4
9
|
export const CmsFieldTypeToPatternsFieldType = {
|
|
5
10
|
[collections.Type.TEXT]: 'SHORT_TEXT',
|
|
6
11
|
[collections.Type.DATE]: 'DATE',
|
|
@@ -20,7 +25,9 @@ export const CmsFieldTypeToPatternsFieldType = {
|
|
|
20
25
|
[collections.Type.IMAGE]: 'IMAGE',
|
|
21
26
|
[collections.Type.MEDIA_GALLERY]: 'MEDIA_GALLERY',
|
|
22
27
|
[collections.Type.DOCUMENT]: 'DOCUMENT',
|
|
23
|
-
[collections.Type.ARRAY_DOCUMENT]: 'MULTI_DOCUMENT'
|
|
28
|
+
[collections.Type.ARRAY_DOCUMENT]: 'MULTI_DOCUMENT',
|
|
29
|
+
[collections.Type.AUDIO]: 'AUDIO',
|
|
30
|
+
[CMS_EMAIL_TYPE]: 'EMAIL'
|
|
24
31
|
};
|
|
25
32
|
export async function fetchCmsSchema(collectionId) {
|
|
26
33
|
const schema = await errorHandler.withErrorHandler(async () => collections.getDataCollection(collectionId), {});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["collections","items","fetchCmsData","errorHandler","CmsFieldTypeToPatternsFieldType","Type","TEXT","DATE","DATETIME","TIME","NUMBER","BOOLEAN","URL","ADDRESS","OBJECT","RICH_TEXT","RICH_CONTENT","ARRAY","ARRAY_STRING","REFERENCE","MULTI_REFERENCE","IMAGE","MEDIA_GALLERY","DOCUMENT","ARRAY_DOCUMENT","fetchCmsSchema","collectionId","schema","withErrorHandler","getDataCollection","getReferenceFields","fields","Object","values","filter","f","type","updateMultiReferences","entityId","entity","multiReferenceFields","Promise","all","map","field","rawValue","id","multipleReferenceValues","multipleReferenceIds","value","_id","replaceReferences","transformCmsSchema","transformedFields","reduce","acc","_field$capabilities","_field$capabilities2","_field$typeMetadata","_field$typeMetadata2","key","fieldType","baseField","displayName","validation","numberRange","min","undefined","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","referencedCollectionId","typeMetadata","reference","multiReference","isReference","referenceMetadata","referenceFields","allReferenceFieldIds","schemaConfig","displayField","idField","actions","get","dataQuery","query","eq","length","include","res","find","returnTotalCount","Error","create","created","insert","createdId","update","delete","remove","bulkDelete","entityIds","bulkRemove","options"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, SchemaConfig, PatternsFieldType } from '../../types';\nimport { collections, items } from '@wix/data';\nimport { fetchCmsData } from './fetchCmsData';\nimport { errorHandler } from '@wix/essentials';\n\nexport const CmsFieldTypeToPatternsFieldType: Partial<\n Record<collections.Type, PatternsFieldType>\n> = {\n [collections.Type.TEXT]: 'SHORT_TEXT',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.TIME]: 'TIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\n [collections.Type.URL]: 'URL',\n [collections.Type.ADDRESS]: 'ADDRESS',\n [collections.Type.OBJECT]: 'OBJECT',\n [collections.Type.RICH_TEXT]: 'RICH_TEXT',\n [collections.Type.RICH_CONTENT]: 'RICH_CONTENT',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.ARRAY_STRING]: 'ARRAY',\n [collections.Type.REFERENCE]: 'REFERENCE',\n [collections.Type.MULTI_REFERENCE]: 'MULTI_REFERENCE',\n [collections.Type.IMAGE]: 'IMAGE',\n [collections.Type.MEDIA_GALLERY]: 'MEDIA_GALLERY',\n [collections.Type.DOCUMENT]: 'DOCUMENT',\n [collections.Type.ARRAY_DOCUMENT]: 'MULTI_DOCUMENT',\n};\n\nexport async function fetchCmsSchema(\n collectionId: string,\n): Promise<collections.DataCollection> {\n const schema = await errorHandler.withErrorHandler(\n async () => collections.getDataCollection(collectionId),\n {},\n );\n return schema;\n}\n\nconst getReferenceFields = (fields: Record<string, Field>) =>\n Object.values(fields).filter(\n (f): f is Field => f?.type === 'REFERENCE' || f?.type === 'MULTI_REFERENCE',\n );\n\nconst updateMultiReferences = async (\n collectionId: string,\n entityId: string,\n entity: Record<string, any>,\n multiReferenceFields: Field[],\n) => {\n await Promise.all(\n multiReferenceFields.map(async (field) => {\n const rawValue = entity[field.id];\n const multipleReferenceValues = rawValue as Record<string, unknown>[];\n const multipleReferenceIds = multipleReferenceValues.map(\n (value) => value._id as string,\n );\n\n await items.replaceReferences(\n collectionId,\n field.id,\n entityId,\n multipleReferenceIds,\n );\n }),\n );\n};\n\nexport function transformCmsSchema(\n schema: collections.DataCollection,\n): SchemaConfig {\n const collectionId = schema._id as string;\n\n const transformedFields = (schema.fields || []).reduce<Record<string, Field>>(\n (acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n const fieldType = field.type\n ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT'\n : 'SHORT_TEXT';\n const baseField = {\n id: field.key,\n displayName: field.displayName || '',\n validation: {\n numberRange: field.numberRange\n ? {\n min: field.numberRange.min ?? undefined,\n max: field.numberRange.max ?? undefined,\n }\n : undefined,\n stringLengthRange: field.stringLengthRange\n ? {\n minLength: field.stringLengthRange.minLength ?? undefined,\n maxLength: field.stringLengthRange.maxLength ?? undefined,\n }\n : undefined,\n required: field.required ?? false,\n },\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n const referencedCollectionId =\n field.typeMetadata?.reference?.referencedCollectionId ??\n field.typeMetadata?.multiReference?.referencedCollectionId;\n\n const isReference =\n fieldType === 'REFERENCE' || fieldType === 'MULTI_REFERENCE';\n\n if (isReference && referencedCollectionId) {\n acc[field.key] = {\n ...baseField,\n type: fieldType as 'REFERENCE' | 'MULTI_REFERENCE',\n referenceMetadata: { referencedCollectionId },\n };\n } else {\n acc[field.key] = {\n ...baseField,\n type: isReference ? 'SHORT_TEXT' : fieldType,\n };\n }\n\n return acc;\n },\n {},\n );\n\n const referenceFields = getReferenceFields(transformedFields);\n const multiReferenceFields = referenceFields.filter(\n (f) => f.type === 'MULTI_REFERENCE',\n );\n const allReferenceFieldIds = referenceFields.map((f) => f.id);\n\n const schemaConfig: SchemaConfig = {\n id: collectionId,\n displayField: schema.displayField ?? '_id',\n idField: '_id',\n fields: transformedFields,\n actions: {\n get: async (entityId: string) => {\n let dataQuery = items.query(collectionId).eq('_id', entityId);\n if (allReferenceFieldIds.length > 0) {\n dataQuery = dataQuery.include(...allReferenceFieldIds);\n }\n\n const res = await dataQuery.find({ returnTotalCount: false });\n const entity = res.items[0];\n\n if (!entity) {\n throw new Error(`Entity not found: ${entityId}`);\n }\n\n return entity;\n },\n\n create: async (entity) => {\n const created = await items.insert(collectionId, entity);\n const createdId = created._id as string;\n\n if (createdId) {\n await updateMultiReferences(\n collectionId,\n createdId,\n entity as Record<string, unknown>,\n multiReferenceFields,\n );\n }\n\n return { ...entity, _id: createdId };\n },\n\n update: async (entity) => {\n await items.update(\n collectionId,\n entity as typeof entity & { _id: string },\n );\n\n const entityId = entity._id as string;\n\n if (entityId) {\n await updateMultiReferences(\n collectionId,\n entityId,\n entity,\n multiReferenceFields,\n );\n }\n\n return entity;\n },\n\n delete: (entityId) => items.remove(collectionId, entityId),\n bulkDelete: (entityIds) => items.bulkRemove(collectionId, entityIds),\n\n find: async (\n query,\n options: {\n searchableFieldIds?: string[];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n } = {},\n ) => {\n return fetchCmsData(collectionId, query, transformedFields, options);\n },\n },\n };\n\n return schemaConfig;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["collections","items","fetchCmsData","errorHandler","CMS_EMAIL_TYPE","CmsFieldTypeToPatternsFieldType","Type","TEXT","DATE","DATETIME","TIME","NUMBER","BOOLEAN","URL","ADDRESS","OBJECT","RICH_TEXT","RICH_CONTENT","ARRAY","ARRAY_STRING","REFERENCE","MULTI_REFERENCE","IMAGE","MEDIA_GALLERY","DOCUMENT","ARRAY_DOCUMENT","AUDIO","fetchCmsSchema","collectionId","schema","withErrorHandler","getDataCollection","getReferenceFields","fields","Object","values","filter","f","type","updateMultiReferences","entityId","entity","multiReferenceFields","Promise","all","map","field","rawValue","id","multipleReferenceValues","multipleReferenceIds","value","_id","replaceReferences","transformCmsSchema","transformedFields","reduce","acc","_field$capabilities","_field$capabilities2","_field$typeMetadata","_field$typeMetadata2","key","fieldType","baseField","displayName","validation","numberRange","min","undefined","max","stringLengthRange","minLength","maxLength","required","capabilities","supportedQueryOperators","queryOperators","sortable","referencedCollectionId","typeMetadata","reference","multiReference","isReference","referenceMetadata","referenceFields","allReferenceFieldIds","schemaConfig","displayField","idField","actions","get","dataQuery","query","eq","length","include","res","find","returnTotalCount","Error","create","created","insert","createdId","update","delete","remove","bulkDelete","entityIds","bulkRemove","options"],"sources":["../../../../src/dataSourceAdapters/cms/cmsAdapter.ts"],"sourcesContent":["import { Field, SchemaConfig, PatternsFieldType } from '../../types';\nimport { collections, items } from '@wix/data';\nimport { fetchCmsData } from './fetchCmsData';\nimport { errorHandler } from '@wix/essentials';\n\n// The CMS backend returns 'EMAIL' as a field type but the @wix/data SDK\n// doesn't expose it in collections.Type. We use a string literal as a workaround until the SDK is updated.\n// TODO: remove this once the SDK is updated\nconst CMS_EMAIL_TYPE = 'EMAIL' as collections.Type;\n\nexport const CmsFieldTypeToPatternsFieldType: Partial<\n Record<collections.Type, PatternsFieldType>\n> = {\n [collections.Type.TEXT]: 'SHORT_TEXT',\n [collections.Type.DATE]: 'DATE',\n [collections.Type.DATETIME]: 'DATETIME',\n [collections.Type.TIME]: 'TIME',\n [collections.Type.NUMBER]: 'NUMBER',\n [collections.Type.BOOLEAN]: 'BOOLEAN',\n [collections.Type.URL]: 'URL',\n [collections.Type.ADDRESS]: 'ADDRESS',\n [collections.Type.OBJECT]: 'OBJECT',\n [collections.Type.RICH_TEXT]: 'RICH_TEXT',\n [collections.Type.RICH_CONTENT]: 'RICH_CONTENT',\n [collections.Type.ARRAY]: 'ARRAY',\n [collections.Type.ARRAY_STRING]: 'ARRAY',\n [collections.Type.REFERENCE]: 'REFERENCE',\n [collections.Type.MULTI_REFERENCE]: 'MULTI_REFERENCE',\n [collections.Type.IMAGE]: 'IMAGE',\n [collections.Type.MEDIA_GALLERY]: 'MEDIA_GALLERY',\n [collections.Type.DOCUMENT]: 'DOCUMENT',\n [collections.Type.ARRAY_DOCUMENT]: 'MULTI_DOCUMENT',\n [collections.Type.AUDIO]: 'AUDIO',\n [CMS_EMAIL_TYPE]: 'EMAIL',\n};\n\nexport async function fetchCmsSchema(\n collectionId: string,\n): Promise<collections.DataCollection> {\n const schema = await errorHandler.withErrorHandler(\n async () => collections.getDataCollection(collectionId),\n {},\n );\n return schema;\n}\n\nconst getReferenceFields = (fields: Record<string, Field>) =>\n Object.values(fields).filter(\n (f): f is Field => f?.type === 'REFERENCE' || f?.type === 'MULTI_REFERENCE',\n );\n\nconst updateMultiReferences = async (\n collectionId: string,\n entityId: string,\n entity: Record<string, any>,\n multiReferenceFields: Field[],\n) => {\n await Promise.all(\n multiReferenceFields.map(async (field) => {\n const rawValue = entity[field.id];\n const multipleReferenceValues = rawValue as Record<string, unknown>[];\n const multipleReferenceIds = multipleReferenceValues.map(\n (value) => value._id as string,\n );\n\n await items.replaceReferences(\n collectionId,\n field.id,\n entityId,\n multipleReferenceIds,\n );\n }),\n );\n};\n\nexport function transformCmsSchema(\n schema: collections.DataCollection,\n): SchemaConfig {\n const collectionId = schema._id as string;\n\n const transformedFields = (schema.fields || []).reduce<Record<string, Field>>(\n (acc, field) => {\n if (!field.key) {\n return acc;\n }\n\n const fieldType = field.type\n ? CmsFieldTypeToPatternsFieldType[field.type] || 'SHORT_TEXT'\n : 'SHORT_TEXT';\n const baseField = {\n id: field.key,\n displayName: field.displayName || '',\n validation: {\n numberRange: field.numberRange\n ? {\n min: field.numberRange.min ?? undefined,\n max: field.numberRange.max ?? undefined,\n }\n : undefined,\n stringLengthRange: field.stringLengthRange\n ? {\n minLength: field.stringLengthRange.minLength ?? undefined,\n maxLength: field.stringLengthRange.maxLength ?? undefined,\n }\n : undefined,\n required: field.required ?? false,\n },\n capabilities: {\n supportedQueryOperators: field.capabilities?.queryOperators || [],\n sortable: field.capabilities?.sortable || false,\n },\n };\n\n const referencedCollectionId =\n field.typeMetadata?.reference?.referencedCollectionId ??\n field.typeMetadata?.multiReference?.referencedCollectionId;\n\n const isReference =\n fieldType === 'REFERENCE' || fieldType === 'MULTI_REFERENCE';\n\n if (isReference && referencedCollectionId) {\n acc[field.key] = {\n ...baseField,\n type: fieldType as 'REFERENCE' | 'MULTI_REFERENCE',\n referenceMetadata: { referencedCollectionId },\n };\n } else {\n acc[field.key] = {\n ...baseField,\n type: isReference ? 'SHORT_TEXT' : fieldType,\n };\n }\n\n return acc;\n },\n {},\n );\n\n const referenceFields = getReferenceFields(transformedFields);\n const multiReferenceFields = referenceFields.filter(\n (f) => f.type === 'MULTI_REFERENCE',\n );\n const allReferenceFieldIds = referenceFields.map((f) => f.id);\n\n const schemaConfig: SchemaConfig = {\n id: collectionId,\n displayField: schema.displayField ?? '_id',\n idField: '_id',\n fields: transformedFields,\n actions: {\n get: async (entityId: string) => {\n let dataQuery = items.query(collectionId).eq('_id', entityId);\n if (allReferenceFieldIds.length > 0) {\n dataQuery = dataQuery.include(...allReferenceFieldIds);\n }\n\n const res = await dataQuery.find({ returnTotalCount: false });\n const entity = res.items[0];\n\n if (!entity) {\n throw new Error(`Entity not found: ${entityId}`);\n }\n\n return entity;\n },\n\n create: async (entity) => {\n const created = await items.insert(collectionId, entity);\n const createdId = created._id as string;\n\n if (createdId) {\n await updateMultiReferences(\n collectionId,\n createdId,\n entity as Record<string, unknown>,\n multiReferenceFields,\n );\n }\n\n return { ...entity, _id: createdId };\n },\n\n update: async (entity) => {\n await items.update(\n collectionId,\n entity as typeof entity & { _id: string },\n );\n\n const entityId = entity._id as string;\n\n if (entityId) {\n await updateMultiReferences(\n collectionId,\n entityId,\n entity,\n multiReferenceFields,\n );\n }\n\n return entity;\n },\n\n delete: (entityId) => items.remove(collectionId, entityId),\n bulkDelete: (entityIds) => items.bulkRemove(collectionId, entityIds),\n\n find: async (\n query,\n options: {\n searchableFieldIds?: string[];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n } = {},\n ) => {\n return fetchCmsData(collectionId, query, transformedFields, options);\n },\n },\n };\n\n return schemaConfig;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -60,7 +60,7 @@ export function addFiltersToDataQuery(_ref) {
|
|
|
60
60
|
const filter = filters[fieldKey];
|
|
61
61
|
if (filter) {
|
|
62
62
|
if (Array.isArray(filter)) {
|
|
63
|
-
var _fields$fieldId, _fields$fieldId2, _fields$fieldId3, _fields$fieldId4, _fields$fieldId5;
|
|
63
|
+
var _fields$fieldId, _fields$fieldId2, _fields$fieldId3, _fields$fieldId4, _fields$fieldId5, _fields$fieldId6;
|
|
64
64
|
const filterArray = filter;
|
|
65
65
|
if (((_fields$fieldId = fields[fieldId]) == null ? void 0 : _fields$fieldId.type) === 'BOOLEAN') {
|
|
66
66
|
if (filterArray.some(item => item.id === BooleanFilters.checked)) {
|
|
@@ -70,7 +70,7 @@ export function addFiltersToDataQuery(_ref) {
|
|
|
70
70
|
const undefinedFilter = items.filter().eq(fieldId, undefined);
|
|
71
71
|
dataQueryWithFilters = dataQueryWithFilters.and(falseFilter.or(undefinedFilter));
|
|
72
72
|
}
|
|
73
|
-
} else if (((_fields$fieldId2 = fields[fieldId]) == null ? void 0 : _fields$fieldId2.type) === 'RICH_CONTENT' || ((_fields$fieldId3 = fields[fieldId]) == null ? void 0 : _fields$fieldId3.type) === 'TIME' || ((_fields$fieldId4 = fields[fieldId]) == null ? void 0 : _fields$fieldId4.type) === 'DOCUMENT' || ((_fields$fieldId5 = fields[fieldId]) == null ? void 0 : _fields$fieldId5.type) === 'MULTI_DOCUMENT') {
|
|
73
|
+
} else if (((_fields$fieldId2 = fields[fieldId]) == null ? void 0 : _fields$fieldId2.type) === 'RICH_CONTENT' || ((_fields$fieldId3 = fields[fieldId]) == null ? void 0 : _fields$fieldId3.type) === 'TIME' || ((_fields$fieldId4 = fields[fieldId]) == null ? void 0 : _fields$fieldId4.type) === 'DOCUMENT' || ((_fields$fieldId5 = fields[fieldId]) == null ? void 0 : _fields$fieldId5.type) === 'MULTI_DOCUMENT' || ((_fields$fieldId6 = fields[fieldId]) == null ? void 0 : _fields$fieldId6.type) === 'AUDIO') {
|
|
74
74
|
const wantsHasValue = filterArray.some(item => item.id === HasValueFilters.hasValue);
|
|
75
75
|
const wantsNoValue = filterArray.some(item => item.id === HasValueFilters.noValue);
|
|
76
76
|
// Only apply filter if exactly one option is selected
|
|
@@ -86,8 +86,8 @@ export function addFiltersToDataQuery(_ref) {
|
|
|
86
86
|
} else if (typeof filter === 'object') {
|
|
87
87
|
// Operator filter
|
|
88
88
|
if (filter.operator) {
|
|
89
|
-
var _fields$
|
|
90
|
-
const queryFieldId = getQueryFieldId(fieldId, (_fields$
|
|
89
|
+
var _fields$fieldId7;
|
|
90
|
+
const queryFieldId = getQueryFieldId(fieldId, (_fields$fieldId7 = fields[fieldId]) == null ? void 0 : _fields$fieldId7.type, filter.operator);
|
|
91
91
|
if (filter.operator === FilterOperator.NOT_CONTAINS) {
|
|
92
92
|
const containsFilter = items.filter().contains(queryFieldId, filter.value);
|
|
93
93
|
dataQueryWithFilters = dataQueryWithFilters.not(containsFilter);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FilterOperator","items","BooleanFilters","FilterPropToOperator","HasValueFilters","FilterPropToMethod","from","to","CONTAINS","IS_EMPTY","EXISTS","isValidFilterProp","prop","getOperatorForFilter","undefined","isSupportedOperator","fields","filterProp","filterKey","_field$capabilities","field","operator","supportedOperators","capabilities","supportedQueryOperators","includes","getQueryFieldId","fieldId","fieldType","isAddressField","isExistenceOperator","addFiltersToDataQuery","_ref","dataQuery","query","filterFieldMapping","dataQueryWithFilters","filters","fieldKey","filter","Array","isArray","_fields$fieldId","_fields$fieldId2","_fields$fieldId3","_fields$fieldId4","_fields$fieldId5","filterArray","type","some","item","id","checked","eq","falseFilter","undefinedFilter","and","or","wantsHasValue","hasValue","wantsNoValue","noValue","isNotEmpty","isEmpty","hasSome","map","_fields$fieldId6","queryFieldId","NOT_CONTAINS","containsFilter","contains","value","not","filterObj","TEXT_FIELD_TYPES","addSearchToDataQuery","_ref2","searchableFieldIds","searchableFields","Object","keys","isFieldSearchable","search","length","searchFilter","forEach","currentFilter"],"sources":["../../../../src/dataSourceAdapters/cms/filterUtils.ts"],"sourcesContent":["import { FilterOperator } from '@wix/patterns';\nimport { items } from '@wix/data';\nimport {\n BooleanFilters,\n FilterProp,\n FilterPropToOperator,\n HasValueFilters,\n} from '../constants';\nimport { Query, SchemaConfig } from '../../types';\n\nexport type CmsOperatorMethod =\n | 'ge'\n | 'le'\n | 'contains'\n | 'isEmpty'\n | 'isNotEmpty';\n\nconst FilterPropToMethod: Partial<\n Record<FilterProp | FilterOperator, CmsOperatorMethod>\n> = {\n from: 'ge',\n to: 'le',\n [FilterOperator.CONTAINS]: 'contains',\n [FilterOperator.IS_EMPTY]: 'isEmpty',\n [FilterOperator.EXISTS]: 'isNotEmpty',\n};\n\nfunction isValidFilterProp(prop: string): prop is FilterProp {\n return prop in FilterPropToMethod;\n}\n\nfunction getOperatorForFilter(prop: string): CmsOperatorMethod | undefined {\n if (isValidFilterProp(prop)) {\n return FilterPropToMethod[prop];\n }\n return undefined;\n}\n\nconst isSupportedOperator = (\n fields: SchemaConfig['fields'],\n filterProp: string,\n filterKey: string,\n) => {\n const field = fields[filterKey];\n if (!field) {\n return false;\n }\n\n if (!isValidFilterProp(filterProp)) {\n return false;\n }\n\n const operator = FilterPropToOperator[filterProp];\n const supportedOperators = field.capabilities?.supportedQueryOperators;\n return supportedOperators?.includes(operator);\n};\n\n/**\n * For ADDRESS fields, text-based operators (CONTAINS, NOT_CONTAINS) should query\n * the 'formatted' nested property, which contains the human-readable address string.\n * Existence operators (IS_EMPTY, EXISTS) should query the field directly.\n */\nconst getQueryFieldId = (\n fieldId: string,\n fieldType: string | undefined,\n operator: FilterOperator,\n): string => {\n const isAddressField = fieldType === 'ADDRESS';\n const isExistenceOperator =\n operator === FilterOperator.IS_EMPTY || operator === FilterOperator.EXISTS;\n\n return isAddressField && !isExistenceOperator\n ? `${fieldId}.formatted`\n : fieldId;\n};\n\nexport function addFiltersToDataQuery({\n dataQuery,\n query,\n fields,\n filterFieldMapping,\n}: {\n dataQuery: items.WixDataQuery;\n query: Query;\n fields: SchemaConfig['fields'];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n}) {\n if (!filterFieldMapping) {\n return dataQuery;\n }\n\n let dataQueryWithFilters = dataQuery;\n const { filters } = query;\n for (const fieldKey in filters) {\n const fieldId = filterFieldMapping[fieldKey].fieldId;\n const filter = filters[fieldKey];\n if (filter) {\n if (Array.isArray(filter)) {\n const filterArray = filter as { [key: string]: any }[];\n if (fields[fieldId]?.type === 'BOOLEAN') {\n if (filterArray.some((item) => item.id === BooleanFilters.checked)) {\n dataQueryWithFilters = dataQueryWithFilters.eq(fieldId, true);\n } else {\n const falseFilter = items.filter().eq(fieldId, false);\n const undefinedFilter = items.filter().eq(fieldId, undefined);\n dataQueryWithFilters = dataQueryWithFilters.and(\n falseFilter.or(undefinedFilter),\n );\n }\n } else if (\n fields[fieldId]?.type === 'RICH_CONTENT' ||\n fields[fieldId]?.type === 'TIME' ||\n fields[fieldId]?.type === 'DOCUMENT' ||\n fields[fieldId]?.type === 'MULTI_DOCUMENT'\n ) {\n const wantsHasValue = filterArray.some(\n (item) => item.id === HasValueFilters.hasValue,\n );\n const wantsNoValue = filterArray.some(\n (item) => item.id === HasValueFilters.noValue,\n );\n // Only apply filter if exactly one option is selected\n if (wantsHasValue && !wantsNoValue) {\n dataQueryWithFilters = dataQueryWithFilters.isNotEmpty(fieldId);\n } else if (wantsNoValue && !wantsHasValue) {\n dataQueryWithFilters = dataQueryWithFilters.isEmpty(fieldId);\n }\n // If both or neither selected, no filter applied (show all)\n } else {\n dataQueryWithFilters = dataQueryWithFilters.hasSome(\n fieldId,\n filterArray.map((item) => item.id),\n );\n }\n } else if (typeof filter === 'object') {\n // Operator filter\n if (filter.operator) {\n const queryFieldId = getQueryFieldId(\n fieldId,\n fields[fieldId]?.type,\n filter.operator,\n );\n\n if (filter.operator === FilterOperator.NOT_CONTAINS) {\n const containsFilter = items\n .filter()\n .contains(queryFieldId, filter.value);\n dataQueryWithFilters = dataQueryWithFilters.not(containsFilter);\n } else {\n const operator = getOperatorForFilter(filter.operator);\n if (operator) {\n if (operator === 'isEmpty' || operator === 'isNotEmpty') {\n dataQueryWithFilters = dataQueryWithFilters[operator](fieldId);\n } else {\n dataQueryWithFilters = dataQueryWithFilters[operator](\n queryFieldId,\n filter.value,\n );\n }\n }\n }\n }\n // Range filter\n const filterObj = filter as Record<string, any>;\n for (const filterProp in filterObj) {\n const operator = getOperatorForFilter(filterProp);\n if (\n operator &&\n typeof dataQuery[operator] === 'function' &&\n isSupportedOperator(fields, filterProp, fieldId)\n ) {\n const value = filterObj[filterProp];\n if (value !== undefined && value !== null) {\n dataQueryWithFilters = dataQueryWithFilters[operator](\n fieldId,\n value,\n );\n }\n }\n }\n }\n }\n }\n\n return dataQueryWithFilters;\n}\n\nconst TEXT_FIELD_TYPES = ['LONG_TEXT', 'SHORT_TEXT'];\nexport function addSearchToDataQuery({\n dataQuery,\n query,\n fields,\n searchableFieldIds,\n}: {\n dataQuery: items.WixDataQuery;\n query: Query;\n fields: SchemaConfig['fields'];\n searchableFieldIds: string[];\n}) {\n const searchableFields = Object.keys(fields).filter((fieldId) => {\n const field = fields[fieldId];\n const isFieldSearchable = searchableFieldIds.includes(fieldId);\n\n return isFieldSearchable && field && TEXT_FIELD_TYPES.includes(field.type);\n });\n\n if (query.search && searchableFields.length > 0) {\n let searchFilter: items.WixDataFilter | null = null;\n\n searchableFields.forEach((field) => {\n const currentFilter = items.filter().contains(field, query.search!);\n searchFilter = searchFilter\n ? searchFilter.or(currentFilter)\n : currentFilter;\n });\n\n if (searchFilter) {\n dataQuery = dataQuery.and(searchFilter);\n }\n }\n\n return dataQuery;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["FilterOperator","items","BooleanFilters","FilterPropToOperator","HasValueFilters","FilterPropToMethod","from","to","CONTAINS","IS_EMPTY","EXISTS","isValidFilterProp","prop","getOperatorForFilter","undefined","isSupportedOperator","fields","filterProp","filterKey","_field$capabilities","field","operator","supportedOperators","capabilities","supportedQueryOperators","includes","getQueryFieldId","fieldId","fieldType","isAddressField","isExistenceOperator","addFiltersToDataQuery","_ref","dataQuery","query","filterFieldMapping","dataQueryWithFilters","filters","fieldKey","filter","Array","isArray","_fields$fieldId","_fields$fieldId2","_fields$fieldId3","_fields$fieldId4","_fields$fieldId5","_fields$fieldId6","filterArray","type","some","item","id","checked","eq","falseFilter","undefinedFilter","and","or","wantsHasValue","hasValue","wantsNoValue","noValue","isNotEmpty","isEmpty","hasSome","map","_fields$fieldId7","queryFieldId","NOT_CONTAINS","containsFilter","contains","value","not","filterObj","TEXT_FIELD_TYPES","addSearchToDataQuery","_ref2","searchableFieldIds","searchableFields","Object","keys","isFieldSearchable","search","length","searchFilter","forEach","currentFilter"],"sources":["../../../../src/dataSourceAdapters/cms/filterUtils.ts"],"sourcesContent":["import { FilterOperator } from '@wix/patterns';\nimport { items } from '@wix/data';\nimport {\n BooleanFilters,\n FilterProp,\n FilterPropToOperator,\n HasValueFilters,\n} from '../constants';\nimport { Query, SchemaConfig } from '../../types';\n\nexport type CmsOperatorMethod =\n | 'ge'\n | 'le'\n | 'contains'\n | 'isEmpty'\n | 'isNotEmpty';\n\nconst FilterPropToMethod: Partial<\n Record<FilterProp | FilterOperator, CmsOperatorMethod>\n> = {\n from: 'ge',\n to: 'le',\n [FilterOperator.CONTAINS]: 'contains',\n [FilterOperator.IS_EMPTY]: 'isEmpty',\n [FilterOperator.EXISTS]: 'isNotEmpty',\n};\n\nfunction isValidFilterProp(prop: string): prop is FilterProp {\n return prop in FilterPropToMethod;\n}\n\nfunction getOperatorForFilter(prop: string): CmsOperatorMethod | undefined {\n if (isValidFilterProp(prop)) {\n return FilterPropToMethod[prop];\n }\n return undefined;\n}\n\nconst isSupportedOperator = (\n fields: SchemaConfig['fields'],\n filterProp: string,\n filterKey: string,\n) => {\n const field = fields[filterKey];\n if (!field) {\n return false;\n }\n\n if (!isValidFilterProp(filterProp)) {\n return false;\n }\n\n const operator = FilterPropToOperator[filterProp];\n const supportedOperators = field.capabilities?.supportedQueryOperators;\n return supportedOperators?.includes(operator);\n};\n\n/**\n * For ADDRESS fields, text-based operators (CONTAINS, NOT_CONTAINS) should query\n * the 'formatted' nested property, which contains the human-readable address string.\n * Existence operators (IS_EMPTY, EXISTS) should query the field directly.\n */\nconst getQueryFieldId = (\n fieldId: string,\n fieldType: string | undefined,\n operator: FilterOperator,\n): string => {\n const isAddressField = fieldType === 'ADDRESS';\n const isExistenceOperator =\n operator === FilterOperator.IS_EMPTY || operator === FilterOperator.EXISTS;\n\n return isAddressField && !isExistenceOperator\n ? `${fieldId}.formatted`\n : fieldId;\n};\n\nexport function addFiltersToDataQuery({\n dataQuery,\n query,\n fields,\n filterFieldMapping,\n}: {\n dataQuery: items.WixDataQuery;\n query: Query;\n fields: SchemaConfig['fields'];\n filterFieldMapping?: Record<string, { fieldId: string }>;\n}) {\n if (!filterFieldMapping) {\n return dataQuery;\n }\n\n let dataQueryWithFilters = dataQuery;\n const { filters } = query;\n for (const fieldKey in filters) {\n const fieldId = filterFieldMapping[fieldKey].fieldId;\n const filter = filters[fieldKey];\n if (filter) {\n if (Array.isArray(filter)) {\n const filterArray = filter as { [key: string]: any }[];\n if (fields[fieldId]?.type === 'BOOLEAN') {\n if (filterArray.some((item) => item.id === BooleanFilters.checked)) {\n dataQueryWithFilters = dataQueryWithFilters.eq(fieldId, true);\n } else {\n const falseFilter = items.filter().eq(fieldId, false);\n const undefinedFilter = items.filter().eq(fieldId, undefined);\n dataQueryWithFilters = dataQueryWithFilters.and(\n falseFilter.or(undefinedFilter),\n );\n }\n } else if (\n fields[fieldId]?.type === 'RICH_CONTENT' ||\n fields[fieldId]?.type === 'TIME' ||\n fields[fieldId]?.type === 'DOCUMENT' ||\n fields[fieldId]?.type === 'MULTI_DOCUMENT' ||\n fields[fieldId]?.type === 'AUDIO'\n ) {\n const wantsHasValue = filterArray.some(\n (item) => item.id === HasValueFilters.hasValue,\n );\n const wantsNoValue = filterArray.some(\n (item) => item.id === HasValueFilters.noValue,\n );\n // Only apply filter if exactly one option is selected\n if (wantsHasValue && !wantsNoValue) {\n dataQueryWithFilters = dataQueryWithFilters.isNotEmpty(fieldId);\n } else if (wantsNoValue && !wantsHasValue) {\n dataQueryWithFilters = dataQueryWithFilters.isEmpty(fieldId);\n }\n // If both or neither selected, no filter applied (show all)\n } else {\n dataQueryWithFilters = dataQueryWithFilters.hasSome(\n fieldId,\n filterArray.map((item) => item.id),\n );\n }\n } else if (typeof filter === 'object') {\n // Operator filter\n if (filter.operator) {\n const queryFieldId = getQueryFieldId(\n fieldId,\n fields[fieldId]?.type,\n filter.operator,\n );\n\n if (filter.operator === FilterOperator.NOT_CONTAINS) {\n const containsFilter = items\n .filter()\n .contains(queryFieldId, filter.value);\n dataQueryWithFilters = dataQueryWithFilters.not(containsFilter);\n } else {\n const operator = getOperatorForFilter(filter.operator);\n if (operator) {\n if (operator === 'isEmpty' || operator === 'isNotEmpty') {\n dataQueryWithFilters = dataQueryWithFilters[operator](fieldId);\n } else {\n dataQueryWithFilters = dataQueryWithFilters[operator](\n queryFieldId,\n filter.value,\n );\n }\n }\n }\n }\n // Range filter\n const filterObj = filter as Record<string, any>;\n for (const filterProp in filterObj) {\n const operator = getOperatorForFilter(filterProp);\n if (\n operator &&\n typeof dataQuery[operator] === 'function' &&\n isSupportedOperator(fields, filterProp, fieldId)\n ) {\n const value = filterObj[filterProp];\n if (value !== undefined && value !== null) {\n dataQueryWithFilters = dataQueryWithFilters[operator](\n fieldId,\n value,\n );\n }\n }\n }\n }\n }\n }\n\n return dataQueryWithFilters;\n}\n\nconst TEXT_FIELD_TYPES = ['LONG_TEXT', 'SHORT_TEXT'];\nexport function addSearchToDataQuery({\n dataQuery,\n query,\n fields,\n searchableFieldIds,\n}: {\n dataQuery: items.WixDataQuery;\n query: Query;\n fields: SchemaConfig['fields'];\n searchableFieldIds: string[];\n}) {\n const searchableFields = Object.keys(fields).filter((fieldId) => {\n const field = fields[fieldId];\n const isFieldSearchable = searchableFieldIds.includes(fieldId);\n\n return isFieldSearchable && field && TEXT_FIELD_TYPES.includes(field.type);\n });\n\n if (query.search && searchableFields.length > 0) {\n let searchFilter: items.WixDataFilter | null = null;\n\n searchableFields.forEach((field) => {\n const currentFilter = items.filter().contains(field, query.search!);\n searchFilter = searchFilter\n ? searchFilter.or(currentFilter)\n : currentFilter;\n });\n\n if (searchFilter) {\n dataQuery = dataQuery.and(searchFilter);\n }\n }\n\n return dataQuery;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,6 +11,7 @@ export function getFilterComponent(filter) {
|
|
|
11
11
|
case 'TIME':
|
|
12
12
|
case 'DOCUMENT':
|
|
13
13
|
case 'MULTI_DOCUMENT':
|
|
14
|
+
case 'AUDIO':
|
|
14
15
|
return MultiInlineCheckboxFilter;
|
|
15
16
|
case 'NUMBER':
|
|
16
17
|
return NumberRangeFilter;
|
|
@@ -19,6 +20,7 @@ export function getFilterComponent(filter) {
|
|
|
19
20
|
return (filter == null || (_filter$dynamicOption = filter.dynamicOptionsFilterConfig) == null ? void 0 : _filter$dynamicOption.selectionMode) === 'single' ? AutoCompleteFilter : MultiSelectCollectionFilter;
|
|
20
21
|
case 'RICH_TEXT':
|
|
21
22
|
case 'ADDRESS':
|
|
23
|
+
case 'EMAIL':
|
|
22
24
|
return OperatorFilterPicker;
|
|
23
25
|
default:
|
|
24
26
|
if (filter != null && filter.enumConfig) {
|