@wix/patterns-fields 1.108.0 → 1.110.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/address/input/address-input.st.css.js +3 -3
- package/dist/cjs/components/address/input/address-input.st.css.js.map +1 -1
- package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js +3 -3
- package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
- package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js +4 -4
- package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
- package/dist/cjs/components/audio/audio-player/audio-player.st.css.js +2 -2
- package/dist/cjs/components/audio/audio-player/audio-player.st.css.js.map +1 -1
- package/dist/cjs/components/boolean/cell-checkbox.js +15 -6
- package/dist/cjs/components/boolean/cell-checkbox.js.map +1 -1
- package/dist/cjs/components/color-view/cell-color-view.st.css.js +3 -3
- package/dist/cjs/components/color-view/cell-color-view.st.css.js.map +1 -1
- package/dist/cjs/components/color-view/color-view.st.css.js +4 -4
- package/dist/cjs/components/color-view/color-view.st.css.js.map +1 -1
- package/dist/cjs/components/date-input/cell-date-input.js +21 -2
- package/dist/cjs/components/date-input/cell-date-input.js.map +1 -1
- package/dist/cjs/components/date-input/date-picker-internals.js +93 -3
- package/dist/cjs/components/date-input/date-picker-internals.js.map +1 -1
- package/dist/cjs/components/date-input/form-date-input.driver.js +2 -0
- package/dist/cjs/components/date-input/form-date-input.driver.js.map +1 -1
- package/dist/cjs/components/date-input/form-date-input.js +23 -6
- package/dist/cjs/components/date-input/form-date-input.js.map +1 -1
- package/dist/cjs/components/date-input/use-field-value-replacement.js +48 -0
- package/dist/cjs/components/date-input/use-field-value-replacement.js.map +1 -0
- package/dist/cjs/components/datetime-input/form-date-time.driver.js +3 -0
- package/dist/cjs/components/datetime-input/form-date-time.driver.js.map +1 -1
- package/dist/cjs/components/datetime-input/form-date-time.js +61 -24
- package/dist/cjs/components/datetime-input/form-date-time.js.map +1 -1
- package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js +3 -3
- package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
- package/dist/cjs/components/document/form-document-field.st.css.js +7 -7
- package/dist/cjs/components/document/form-document-field.st.css.js.map +1 -1
- package/dist/cjs/components/exclamation/exclamation.st.css.js +5 -5
- package/dist/cjs/components/exclamation/exclamation.st.css.js.map +1 -1
- package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js +5 -5
- package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
- package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js +3 -3
- package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js.map +1 -1
- package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js +2 -2
- package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
- package/dist/cjs/components/media-control/paste-url-button.st.css.js +4 -4
- package/dist/cjs/components/media-control/paste-url-button.st.css.js.map +1 -1
- package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js +10 -10
- package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
- package/dist/cjs/components/media-image/media-image.st.css.js +4 -4
- package/dist/cjs/components/media-image/media-image.st.css.js.map +1 -1
- package/dist/cjs/components/media-image/overlays/overlay.st.css.js +3 -3
- package/dist/cjs/components/media-image/overlays/overlay.st.css.js.map +1 -1
- package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
- package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
- package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js +3 -3
- package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js.map +1 -1
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
- package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js +2 -2
- package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js.map +1 -1
- package/dist/cjs/components/reference/cell-reference-input.st.css.js +3 -3
- package/dist/cjs/components/reference/cell-reference-input.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/cell-rich-content-input.js +12 -9
- package/dist/cjs/components/rich-content/cell-rich-content-input.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +4 -4
- package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +3 -3
- package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
- package/dist/cjs/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.js +23 -17
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +7 -7
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +5 -5
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
- package/dist/cjs/components/rich-text/cell-rich-text-editor.js +21 -5
- package/dist/cjs/components/rich-text/cell-rich-text-editor.js.map +1 -1
- package/dist/cjs/components/rich-text/cell-rich-text-input.js +15 -7
- package/dist/cjs/components/rich-text/cell-rich-text-input.js.map +1 -1
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
- package/dist/cjs/components/text/form-short-text.js +1 -1
- package/dist/cjs/components/text/form-short-text.js.map +1 -1
- package/dist/cjs/components/text/text-view.st.css.js +3 -3
- package/dist/cjs/components/text/text-view.st.css.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- package/dist/cjs/utils/keyboard.js +12 -0
- package/dist/cjs/utils/keyboard.js.map +1 -0
- package/dist/esm/components/address/input/address-input.st.css.js +2 -2
- package/dist/esm/components/address/input/address-input.st.css.js.map +1 -1
- package/dist/esm/components/audio/actions/actions-menu/actions-menu.st.css.js +2 -2
- package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js +2 -2
- package/dist/esm/components/audio/audio-player/audio-player.st.css.js +2 -2
- package/dist/esm/components/boolean/cell-checkbox.js +10 -4
- package/dist/esm/components/boolean/cell-checkbox.js.map +1 -1
- package/dist/esm/components/color-view/cell-color-view.st.css.js +2 -2
- package/dist/esm/components/color-view/color-view.st.css.js +2 -2
- package/dist/esm/components/date-input/cell-date-input.js +21 -2
- package/dist/esm/components/date-input/cell-date-input.js.map +1 -1
- package/dist/esm/components/date-input/date-picker-internals.js +67 -0
- package/dist/esm/components/date-input/date-picker-internals.js.map +1 -1
- package/dist/esm/components/date-input/form-date-input.driver.js +2 -0
- package/dist/esm/components/date-input/form-date-input.driver.js.map +1 -1
- package/dist/esm/components/date-input/form-date-input.js +25 -4
- package/dist/esm/components/date-input/form-date-input.js.map +1 -1
- package/dist/esm/components/date-input/use-field-value-replacement.js +48 -0
- package/dist/esm/components/date-input/use-field-value-replacement.js.map +1 -0
- package/dist/esm/components/datetime-input/form-date-time.driver.js +3 -0
- package/dist/esm/components/datetime-input/form-date-time.driver.js.map +1 -1
- package/dist/esm/components/datetime-input/form-date-time.js +51 -21
- package/dist/esm/components/datetime-input/form-date-time.js.map +1 -1
- package/dist/esm/components/delete-dialog/delete-dialog.st.css.js +2 -2
- package/dist/esm/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
- package/dist/esm/components/document/form-document-field.st.css.js +2 -2
- package/dist/esm/components/exclamation/exclamation.st.css.js +2 -2
- package/dist/esm/components/highlighted-text/highlighted-text.st.css.js +3 -3
- package/dist/esm/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
- package/dist/esm/components/image/thumbnail-replace-overlay.st.css.js +2 -2
- package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js +2 -2
- package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
- package/dist/esm/components/media-control/paste-url-button.st.css.js +2 -2
- package/dist/esm/components/media-control/paste-url-button.st.css.js.map +1 -1
- package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js +2 -2
- package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
- package/dist/esm/components/media-image/media-image.st.css.js +3 -3
- package/dist/esm/components/media-image/media-image.st.css.js.map +1 -1
- package/dist/esm/components/media-image/overlays/overlay.st.css.js +2 -2
- package/dist/esm/components/media-image/overlays/overlay.st.css.js.map +1 -1
- package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
- package/dist/esm/components/multi-document/cell-multi-document-edit.st.css.js +2 -2
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js +2 -2
- package/dist/esm/components/reference/cell-multi-reference-input.st.css.js +2 -2
- package/dist/esm/components/reference/cell-reference-input.st.css.js +2 -2
- package/dist/esm/components/reference/cell-reference-input.st.css.js.map +1 -1
- package/dist/esm/components/rich-content/cell-rich-content-input.js +11 -9
- package/dist/esm/components/rich-content/cell-rich-content-input.js.map +1 -1
- package/dist/esm/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.js +8 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.js.map +1 -1
- package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
- package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +2 -2
- package/dist/esm/components/rich-text/cell-rich-text-editor.js +16 -1
- package/dist/esm/components/rich-text/cell-rich-text-editor.js.map +1 -1
- package/dist/esm/components/rich-text/cell-rich-text-input.js +8 -0
- package/dist/esm/components/rich-text/cell-rich-text-input.js.map +1 -1
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +2 -2
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +2 -2
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +2 -2
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
- package/dist/esm/components/text/form-short-text.js +1 -1
- package/dist/esm/components/text/form-short-text.js.map +1 -1
- package/dist/esm/components/text/text-view.st.css.js +2 -2
- package/dist/esm/components/text/text-view.st.css.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/esm/utils/keyboard.js +7 -0
- package/dist/esm/utils/keyboard.js.map +1 -0
- package/dist/types/components/address/input/address-input.st.css.d.ts.map +1 -1
- package/dist/types/components/boolean/cell-checkbox.d.ts +4 -1
- package/dist/types/components/boolean/cell-checkbox.d.ts.map +1 -1
- package/dist/types/components/date-input/cell-date-input.d.ts +4 -0
- package/dist/types/components/date-input/cell-date-input.d.ts.map +1 -1
- package/dist/types/components/date-input/date-picker-internals.d.ts +11 -1
- package/dist/types/components/date-input/date-picker-internals.d.ts.map +1 -1
- package/dist/types/components/date-input/form-date-input.d.ts.map +1 -1
- package/dist/types/components/date-input/form-date-input.driver.d.ts +2 -0
- package/dist/types/components/date-input/form-date-input.driver.d.ts.map +1 -1
- package/dist/types/components/date-input/use-field-value-replacement.d.ts +3 -0
- package/dist/types/components/date-input/use-field-value-replacement.d.ts.map +1 -0
- package/dist/types/components/datetime-input/form-date-time.d.ts.map +1 -1
- package/dist/types/components/datetime-input/form-date-time.driver.d.ts +3 -0
- package/dist/types/components/datetime-input/form-date-time.driver.d.ts.map +1 -1
- package/dist/types/components/delete-dialog/delete-dialog.st.css.d.ts.map +1 -1
- package/dist/types/components/highlighted-text/highlighted-text.st.css.d.ts.map +1 -1
- package/dist/types/components/media-control/cell-media-edit-shell.st.css.d.ts.map +1 -1
- package/dist/types/components/media-control/paste-url-button.st.css.d.ts.map +1 -1
- package/dist/types/components/media-gallery/form-media-gallery-field.st.css.d.ts.map +1 -1
- package/dist/types/components/media-image/media-image.st.css.d.ts.map +1 -1
- package/dist/types/components/media-image/overlays/overlay.st.css.d.ts.map +1 -1
- package/dist/types/components/reference/cell-reference-input.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-content/cell-rich-content-input.d.ts +2 -1
- package/dist/types/components/rich-content/cell-rich-content-input.d.ts.map +1 -1
- package/dist/types/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.d.ts +2 -0
- package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.d.ts.map +1 -1
- package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-text/cell-rich-text-editor.d.ts.map +1 -1
- package/dist/types/components/rich-text/cell-rich-text-input.d.ts +1 -1
- package/dist/types/components/rich-text/cell-rich-text-input.d.ts.map +1 -1
- package/dist/types/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/text/text-view.st.css.d.ts.map +1 -1
- package/dist/types/utils/keyboard.d.ts +4 -0
- package/dist/types/utils/keyboard.d.ts.map +1 -0
- package/package.json +5 -5
- package/src/__tests__/components/cell-rich-content-input.spec.tsx +73 -0
- package/src/__tests__/components/cell-rich-text-editor.spec.tsx +64 -0
- package/src/__tests__/components/cell-rich-text-input.spec.tsx +39 -0
- package/src/__tests__/components/date-input/cell-date-input.spec.tsx +100 -0
- package/src/__tests__/components/date-input/date-picker-internals.spec.tsx +69 -0
- package/src/__tests__/components/date-input/form-date-input.spec.tsx +141 -0
- package/src/__tests__/components/datetime-input/form-date-time.spec.tsx +194 -0
- package/src/__tests__/components/rich-content-editor.spec.tsx +53 -0
- package/src/__tests__/components/text/form-short-text.spec.tsx +27 -0
- package/src/__tests__/form-field.driver.tsx +31 -3
- package/src/__tests__/hooks/use-field-value-replacement.spec.tsx +68 -0
- package/src/__tests__/utils/keyboard.spec.ts +45 -0
- package/src/components/address/input/address-input.st.css.ts +2 -2
- package/src/components/audio/actions/actions-menu/actions-menu.st.css.ts +2 -2
- package/src/components/audio/audio-field/form-audio-field.st.css.ts +2 -2
- package/src/components/audio/audio-player/audio-player.st.css.ts +2 -2
- package/src/components/boolean/cell-checkbox.tsx +33 -11
- package/src/components/color-view/cell-color-view.st.css.ts +2 -2
- package/src/components/color-view/color-view.st.css.ts +2 -2
- package/src/components/date-input/cell-date-input.tsx +28 -0
- package/src/components/date-input/date-picker-internals.ts +104 -3
- package/src/components/date-input/form-date-input.driver.ts +2 -0
- package/src/components/date-input/form-date-input.tsx +25 -3
- package/src/components/date-input/use-field-value-replacement.ts +63 -0
- package/src/components/datetime-input/form-date-time.driver.ts +3 -0
- package/src/components/datetime-input/form-date-time.tsx +55 -33
- package/src/components/delete-dialog/delete-dialog.st.css.ts +2 -2
- package/src/components/document/form-document-field.st.css.ts +2 -2
- package/src/components/exclamation/exclamation.st.css.ts +2 -2
- package/src/components/highlighted-text/highlighted-text.st.css.ts +3 -3
- package/src/components/image/thumbnail-replace-overlay.st.css.ts +2 -2
- package/src/components/media-control/cell-media-edit-shell.st.css.ts +2 -2
- package/src/components/media-control/paste-url-button.st.css.ts +2 -2
- package/src/components/media-gallery/form-media-gallery-field.st.css.ts +2 -2
- package/src/components/media-image/media-image.st.css.ts +3 -3
- package/src/components/media-image/overlays/overlay.st.css.ts +2 -2
- package/src/components/media-tag/web-media-tag/media-tag.st.css.ts +2 -2
- package/src/components/multi-document/cell-multi-document-edit.st.css.ts +2 -2
- package/src/components/multi-document/multi-document-input/form-multi-document.st.css.ts +2 -2
- package/src/components/reference/cell-multi-reference-input.st.css.ts +2 -2
- package/src/components/reference/cell-reference-input.st.css.ts +2 -2
- package/src/components/rich-content/cell-rich-content-input.tsx +12 -13
- package/src/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.tsx +9 -1
- package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.ts +2 -2
- package/src/components/rich-text/cell-rich-text-editor.tsx +30 -1
- package/src/components/rich-text/cell-rich-text-input.tsx +9 -1
- package/src/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.ts +2 -2
- package/src/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.ts +2 -2
- package/src/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.ts +2 -2
- package/src/components/text/form-short-text.tsx +1 -1
- package/src/components/text/text-view.st.css.ts +2 -2
- package/src/styles.global.css +1 -1
- package/src/utils/keyboard.ts +7 -0
|
@@ -10,6 +10,7 @@ var _form = require("@wix/bex-core/form");
|
|
|
10
10
|
var _hooks = require("../../hooks");
|
|
11
11
|
var _string = require("../../validations/string");
|
|
12
12
|
var _popoverDefaults = require("../popover-defaults");
|
|
13
|
+
var _useFieldValueReplacement = require("./use-field-value-replacement");
|
|
13
14
|
var _dateUtils = require("./date-utils");
|
|
14
15
|
var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/fields/dist/cjs/components/date-input/form-date-input.tsx";
|
|
15
16
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
@@ -28,10 +29,11 @@ const _FormDateInput = props => {
|
|
|
28
29
|
const {
|
|
29
30
|
t: tFields
|
|
30
31
|
} = (0, _hooks.useTranslations)();
|
|
32
|
+
const inputError = (0, _react.useRef)('');
|
|
31
33
|
const computeError = (value, format, validationType) => {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
return t('cairo.fieldValidation.requiredField');
|
|
34
|
+
if ((0, _string.isEmpty)(value)) {
|
|
35
|
+
var _field$validation;
|
|
36
|
+
return (_field$validation = field.validation) != null && _field$validation.required ? t('cairo.fieldValidation.requiredField') : '';
|
|
35
37
|
}
|
|
36
38
|
if (validationType === 'formatError' && format) {
|
|
37
39
|
return t('cairo.customFields.fieldType.date.invalid.value', {
|
|
@@ -46,7 +48,7 @@ const _FormDateInput = props => {
|
|
|
46
48
|
defaultValue: data == null ? void 0 : data[(field == null ? void 0 : field.id) ?? ''],
|
|
47
49
|
rules: {
|
|
48
50
|
validate: value => {
|
|
49
|
-
const error = computeError(value);
|
|
51
|
+
const error = inputError.current || computeError(value);
|
|
50
52
|
return error || true;
|
|
51
53
|
}
|
|
52
54
|
}
|
|
@@ -60,6 +62,13 @@ const _FormDateInput = props => {
|
|
|
60
62
|
});
|
|
61
63
|
const ref = (0, _react.useRef)({});
|
|
62
64
|
const [errorMessage, setErrorMessage] = (0, _react.useState)('');
|
|
65
|
+
const revision = (0, _useFieldValueReplacement.useFieldValueReplacement)(formControl, field.id, value => {
|
|
66
|
+
inputError.current = '';
|
|
67
|
+
setErrorMessage('');
|
|
68
|
+
ref.current.invalid = false;
|
|
69
|
+
const iso = typeof value === 'string' ? (0, _dateUtils.getISODateStringWithFixedTimezone)(value) : undefined;
|
|
70
|
+
setDate(iso ? (0, _dateUtils.getDateWithoutTimezone)(iso) : undefined);
|
|
71
|
+
});
|
|
63
72
|
return /*#__PURE__*/_react.default.createElement(_designSystem.FormField, {
|
|
64
73
|
label: field.displayName,
|
|
65
74
|
required: (_field$validation2 = field.validation) == null ? void 0 : _field$validation2.required,
|
|
@@ -68,10 +77,11 @@ const _FormDateInput = props => {
|
|
|
68
77
|
__self: void 0,
|
|
69
78
|
__source: {
|
|
70
79
|
fileName: _jsxFileName,
|
|
71
|
-
lineNumber:
|
|
80
|
+
lineNumber: 78,
|
|
72
81
|
columnNumber: 5
|
|
73
82
|
}
|
|
74
83
|
}, /*#__PURE__*/_react.default.createElement(_designSystem.DatePicker, {
|
|
84
|
+
key: revision,
|
|
75
85
|
ref: internalRef => {
|
|
76
86
|
var _internalRef$state;
|
|
77
87
|
inputRef == null || inputRef(ref.current);
|
|
@@ -88,6 +98,9 @@ const _FormDateInput = props => {
|
|
|
88
98
|
placeholderText: tFields('CMS.formDate.placeholder'),
|
|
89
99
|
value: date,
|
|
90
100
|
onChange: newValue => {
|
|
101
|
+
inputError.current = '';
|
|
102
|
+
setErrorMessage('');
|
|
103
|
+
ref.current.invalid = false;
|
|
91
104
|
setDate(newValue);
|
|
92
105
|
const formattedDate = newValue ? (0, _dateUtils.getISODateStringWithFixedTimezone)(newValue) : undefined;
|
|
93
106
|
controller.field.onChange((formattedDate == null ? void 0 : formattedDate.split('T')[0]) ?? null);
|
|
@@ -98,11 +111,15 @@ const _FormDateInput = props => {
|
|
|
98
111
|
format
|
|
99
112
|
}) => {
|
|
100
113
|
const error = computeError(newValue, format, validationType);
|
|
114
|
+
inputError.current = error;
|
|
101
115
|
setErrorMessage(error);
|
|
102
116
|
ref.current.invalid = !!error;
|
|
103
117
|
if (validationType === 'formatError' && newValue === '') {
|
|
104
118
|
setDate(undefined);
|
|
105
119
|
controller.field.onChange(null);
|
|
120
|
+
} else {
|
|
121
|
+
// Invalid text does not change the stored date, but must revalidate it.
|
|
122
|
+
controller.field.onChange(controller.field.value);
|
|
106
123
|
}
|
|
107
124
|
},
|
|
108
125
|
status: errorMessage ? 'error' : undefined,
|
|
@@ -110,7 +127,7 @@ const _FormDateInput = props => {
|
|
|
110
127
|
__self: void 0,
|
|
111
128
|
__source: {
|
|
112
129
|
fileName: _jsxFileName,
|
|
113
|
-
lineNumber:
|
|
130
|
+
lineNumber: 84,
|
|
114
131
|
columnNumber: 7
|
|
115
132
|
}
|
|
116
133
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_mobxReactLite","_react2","_form","_hooks","_string","_popoverDefaults","_dateUtils","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_FormDateInput","props","_field$validation2","field","dataHook","inputRef","formControl","data","translate","useWixPatternsContainer","tFields","useTranslations","computeError","value","format","validationType","_field$validation","validation","required","isEmpty","dateFormat","controller","useController","name","id","control","defaultValue","rules","validate","error","date","setDate","useState","iso","getISODateStringWithFixedTimezone","undefined","getDateWithoutTimezone","ref","useRef","errorMessage","setErrorMessage","createElement","FormField","label","displayName","statusMessage","__self","__source","fileName","lineNumber","columnNumber","DatePicker","internalRef","_internalRef$state","current","inputEl","state","focus","popoverProps","calendarPopoverDefaults","width","placeholderText","onChange","newValue","formattedDate","split","onValidate","invalid","status","FormDateInput","exports","observer"],"sources":["../../../../src/components/date-input/form-date-input.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react';\nimport { FormField, DatePicker } from '@wix/design-system';\nimport { observer } from 'mobx-react-lite';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport { useController } from '@wix/bex-core/form';\n\nimport { BaseInputProps, BaseInputRef } from '../../types/base-input';\nimport { useTranslations } from '../../hooks';\nimport { isEmpty } from '../../validations/string';\nimport { calendarPopoverDefaults } from '../popover-defaults';\nimport {\n getDateWithoutTimezone,\n getISODateStringWithFixedTimezone,\n} from './date-utils';\n\nexport interface FormDateInputProps extends BaseInputProps<string | null> {}\n\nconst _FormDateInput = (props: FormDateInputProps) => {\n const { field, dataHook, inputRef, formControl, data } = props;\n const { translate: t } = useWixPatternsContainer();\n const { t: tFields } = useTranslations();\n\n const computeError = (\n value: string | null | undefined,\n format?: string,\n validationType?: 'outOfBoundsError' | 'formatError' | 'valid',\n ): string => {\n if (field.validation?.required && isEmpty(value)) {\n return t('cairo.fieldValidation.requiredField');\n }\n if (validationType === 'formatError' && format) {\n return t('cairo.customFields.fieldType.date.invalid.value', {\n dateFormat: format,\n });\n }\n return '';\n };\n\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n rules: {\n validate: (value) => {\n const error = computeError(value);\n return error || true;\n },\n },\n });\n\n // A stored value that isn't a date leaves the picker empty instead of\n // throwing out of render.\n const [date, setDate] = useState<Date | undefined>(() => {\n const iso = controller.field.value\n ? getISODateStringWithFixedTimezone(controller.field.value)\n : undefined;\n return iso ? getDateWithoutTimezone(iso) : undefined;\n });\n\n const ref = useRef<BaseInputRef>({});\n const [errorMessage, setErrorMessage] = useState<string>('');\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n statusMessage={errorMessage}\n dataHook={dataHook}\n >\n <DatePicker\n ref={(internalRef) => {\n inputRef?.(ref.current);\n const inputEl =\n // @ts-expect-error: WSR internal API hack for focusing\n internalRef?.state?.inputRef as HTMLElement | undefined;\n ref.current.focus = () => inputEl?.focus?.();\n // Let react-hook-form's shouldFocusError scroll to + focus this field\n // when it blocks save.\n controller.field.ref(inputEl ?? null);\n }}\n dataHook={`date-${field.id}`}\n popoverProps={calendarPopoverDefaults}\n width=\"100%\"\n placeholderText={tFields('CMS.formDate.placeholder')}\n value={date}\n onChange={(newValue: Date) => {\n setDate(newValue);\n const formattedDate = newValue\n ? getISODateStringWithFixedTimezone(newValue)\n : undefined;\n controller.field.onChange(formattedDate?.split('T')[0] ?? null);\n }}\n onValidate={({ validationType, value: newValue, format }) => {\n const error = computeError(newValue, format, validationType);\n setErrorMessage(error);\n ref.current.invalid = !!error;\n\n if (validationType === 'formatError' && newValue === '') {\n setDate(undefined);\n controller.field.onChange(null);\n }\n }}\n status={errorMessage ? 'error' : undefined}\n statusMessage={errorMessage}\n />\n </FormField>\n );\n};\n\nexport const FormDateInput = observer(_FormDateInput);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_mobxReactLite","_react2","_form","_hooks","_string","_popoverDefaults","_useFieldValueReplacement","_dateUtils","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_FormDateInput","props","_field$validation2","field","dataHook","inputRef","formControl","data","translate","useWixPatternsContainer","tFields","useTranslations","inputError","useRef","computeError","value","format","validationType","isEmpty","_field$validation","validation","required","dateFormat","controller","useController","name","id","control","defaultValue","rules","validate","error","current","date","setDate","useState","iso","getISODateStringWithFixedTimezone","undefined","getDateWithoutTimezone","ref","errorMessage","setErrorMessage","revision","useFieldValueReplacement","invalid","createElement","FormField","label","displayName","statusMessage","__self","__source","fileName","lineNumber","columnNumber","DatePicker","key","internalRef","_internalRef$state","inputEl","state","focus","popoverProps","calendarPopoverDefaults","width","placeholderText","onChange","newValue","formattedDate","split","onValidate","status","FormDateInput","exports","observer"],"sources":["../../../../src/components/date-input/form-date-input.tsx"],"sourcesContent":["import React, { useState, useRef } from 'react';\nimport { FormField, DatePicker } from '@wix/design-system';\nimport { observer } from 'mobx-react-lite';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport { useController } from '@wix/bex-core/form';\n\nimport { BaseInputProps, BaseInputRef } from '../../types/base-input';\nimport { useTranslations } from '../../hooks';\nimport { isEmpty } from '../../validations/string';\nimport { calendarPopoverDefaults } from '../popover-defaults';\nimport { useFieldValueReplacement } from './use-field-value-replacement';\nimport {\n getDateWithoutTimezone,\n getISODateStringWithFixedTimezone,\n} from './date-utils';\n\nexport interface FormDateInputProps extends BaseInputProps<string | null> {}\n\nconst _FormDateInput = (props: FormDateInputProps) => {\n const { field, dataHook, inputRef, formControl, data } = props;\n const { translate: t } = useWixPatternsContainer();\n const { t: tFields } = useTranslations();\n const inputError = useRef('');\n\n const computeError = (\n value: string | null | undefined,\n format?: string,\n validationType?: 'outOfBoundsError' | 'formatError' | 'valid',\n ): string => {\n if (isEmpty(value)) {\n return field.validation?.required\n ? t('cairo.fieldValidation.requiredField')\n : '';\n }\n if (validationType === 'formatError' && format) {\n return t('cairo.customFields.fieldType.date.invalid.value', {\n dateFormat: format,\n });\n }\n return '';\n };\n\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n rules: {\n validate: (value) => {\n const error = inputError.current || computeError(value);\n return error || true;\n },\n },\n });\n\n // A stored value that isn't a date leaves the picker empty instead of\n // throwing out of render.\n const [date, setDate] = useState<Date | undefined>(() => {\n const iso = controller.field.value\n ? getISODateStringWithFixedTimezone(controller.field.value)\n : undefined;\n return iso ? getDateWithoutTimezone(iso) : undefined;\n });\n\n const ref = useRef<BaseInputRef>({});\n const [errorMessage, setErrorMessage] = useState<string>('');\n const revision = useFieldValueReplacement(formControl, field.id, (value) => {\n inputError.current = '';\n setErrorMessage('');\n ref.current.invalid = false;\n const iso =\n typeof value === 'string'\n ? getISODateStringWithFixedTimezone(value)\n : undefined;\n setDate(iso ? getDateWithoutTimezone(iso) : undefined);\n });\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n statusMessage={errorMessage}\n dataHook={dataHook}\n >\n <DatePicker\n key={revision}\n ref={(internalRef) => {\n inputRef?.(ref.current);\n const inputEl =\n // @ts-expect-error: WSR internal API hack for focusing\n internalRef?.state?.inputRef as HTMLElement | undefined;\n ref.current.focus = () => inputEl?.focus?.();\n // Let react-hook-form's shouldFocusError scroll to + focus this field\n // when it blocks save.\n controller.field.ref(inputEl ?? null);\n }}\n dataHook={`date-${field.id}`}\n popoverProps={calendarPopoverDefaults}\n width=\"100%\"\n placeholderText={tFields('CMS.formDate.placeholder')}\n value={date}\n onChange={(newValue: Date) => {\n inputError.current = '';\n setErrorMessage('');\n ref.current.invalid = false;\n setDate(newValue);\n const formattedDate = newValue\n ? getISODateStringWithFixedTimezone(newValue)\n : undefined;\n controller.field.onChange(formattedDate?.split('T')[0] ?? null);\n }}\n onValidate={({ validationType, value: newValue, format }) => {\n const error = computeError(newValue, format, validationType);\n inputError.current = error;\n setErrorMessage(error);\n ref.current.invalid = !!error;\n\n if (validationType === 'formatError' && newValue === '') {\n setDate(undefined);\n controller.field.onChange(null);\n } else {\n // Invalid text does not change the stored date, but must revalidate it.\n controller.field.onChange(controller.field.value);\n }\n }}\n status={errorMessage ? 'error' : undefined}\n statusMessage={errorMessage}\n />\n </FormField>\n );\n};\n\nexport const FormDateInput = observer(_FormDateInput);\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAGA,IAAAK,MAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,gBAAA,GAAAP,OAAA;AACA,IAAAQ,yBAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA;AAGsB,IAAAU,YAAA;AAAA,SAAAX,wBAAAY,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAd,uBAAA,YAAAA,CAAAY,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAItB,MAAMkB,cAAc,GAAIC,KAAyB,IAAK;EAAA,IAAAC,kBAAA;EACpD,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAK,CAAC,GAAGN,KAAK;EAC9D,MAAM;IAAEO,SAAS,EAAE1B;EAAE,CAAC,GAAG,IAAA2B,+BAAuB,EAAC,CAAC;EAClD,MAAM;IAAE3B,CAAC,EAAE4B;EAAQ,CAAC,GAAG,IAAAC,sBAAe,EAAC,CAAC;EACxC,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAAC,EAAE,CAAC;EAE7B,MAAMC,YAAY,GAAGA,CACnBC,KAAgC,EAChCC,MAAe,EACfC,cAA6D,KAClD;IACX,IAAI,IAAAC,eAAO,EAACH,KAAK,CAAC,EAAE;MAAA,IAAAI,iBAAA;MAClB,OAAO,CAAAA,iBAAA,GAAAhB,KAAK,CAACiB,UAAU,aAAhBD,iBAAA,CAAkBE,QAAQ,GAC7BvC,CAAC,CAAC,qCAAqC,CAAC,GACxC,EAAE;IACR;IACA,IAAImC,cAAc,KAAK,aAAa,IAAID,MAAM,EAAE;MAC9C,OAAOlC,CAAC,CAAC,iDAAiD,EAAE;QAC1DwC,UAAU,EAAEN;MACd,CAAC,CAAC;IACJ;IACA,OAAO,EAAE;EACX,CAAC;EAED,MAAMO,UAAU,GAAG,IAAAC,mBAAa,EAAC;IAC/BC,IAAI,EAAE,CAAAtB,KAAK,oBAALA,KAAK,CAAEuB,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAErB,WAAW;IACpBsB,YAAY,EAAErB,IAAI,oBAAJA,IAAI,CAAG,CAAAJ,KAAK,oBAALA,KAAK,CAAEuB,EAAE,KAAI,EAAE,CAAC;IACrCG,KAAK,EAAE;MACLC,QAAQ,EAAGf,KAAK,IAAK;QACnB,MAAMgB,KAAK,GAAGnB,UAAU,CAACoB,OAAO,IAAIlB,YAAY,CAACC,KAAK,CAAC;QACvD,OAAOgB,KAAK,IAAI,IAAI;MACtB;IACF;EACF,CAAC,CAAC;;EAEF;EACA;EACA,MAAM,CAACE,IAAI,EAAEC,OAAO,CAAC,GAAG,IAAAC,eAAQ,EAAmB,MAAM;IACvD,MAAMC,GAAG,GAAGb,UAAU,CAACpB,KAAK,CAACY,KAAK,GAC9B,IAAAsB,4CAAiC,EAACd,UAAU,CAACpB,KAAK,CAACY,KAAK,CAAC,GACzDuB,SAAS;IACb,OAAOF,GAAG,GAAG,IAAAG,iCAAsB,EAACH,GAAG,CAAC,GAAGE,SAAS;EACtD,CAAC,CAAC;EAEF,MAAME,GAAG,GAAG,IAAA3B,aAAM,EAAe,CAAC,CAAC,CAAC;EACpC,MAAM,CAAC4B,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAP,eAAQ,EAAS,EAAE,CAAC;EAC5D,MAAMQ,QAAQ,GAAG,IAAAC,kDAAwB,EAACtC,WAAW,EAAEH,KAAK,CAACuB,EAAE,EAAGX,KAAK,IAAK;IAC1EH,UAAU,CAACoB,OAAO,GAAG,EAAE;IACvBU,eAAe,CAAC,EAAE,CAAC;IACnBF,GAAG,CAACR,OAAO,CAACa,OAAO,GAAG,KAAK;IAC3B,MAAMT,GAAG,GACP,OAAOrB,KAAK,KAAK,QAAQ,GACrB,IAAAsB,4CAAiC,EAACtB,KAAK,CAAC,GACxCuB,SAAS;IACfJ,OAAO,CAACE,GAAG,GAAG,IAAAG,iCAAsB,EAACH,GAAG,CAAC,GAAGE,SAAS,CAAC;EACxD,CAAC,CAAC;EAEF,oBACEtE,MAAA,CAAAuB,OAAA,CAAAuD,aAAA,CAAC3E,aAAA,CAAA4E,SAAS;IACRC,KAAK,EAAE7C,KAAK,CAAC8C,WAAY;IACzB5B,QAAQ,GAAAnB,kBAAA,GAAEC,KAAK,CAACiB,UAAU,qBAAhBlB,kBAAA,CAAkBmB,QAAS;IACrC6B,aAAa,EAAET,YAAa;IAC5BrC,QAAQ,EAAEA,QAAS;IAAA+C,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAAzE,YAAA;MAAA0E,UAAA;MAAAC,YAAA;IAAA;EAAA,gBAEnBvF,MAAA,CAAAuB,OAAA,CAAAuD,aAAA,CAAC3E,aAAA,CAAAqF,UAAU;IACTC,GAAG,EAAEd,QAAS;IACdH,GAAG,EAAGkB,WAAW,IAAK;MAAA,IAAAC,kBAAA;MACpBtD,QAAQ,YAARA,QAAQ,CAAGmC,GAAG,CAACR,OAAO,CAAC;MACvB,MAAM4B,OAAO,GACX;MACAF,WAAW,aAAAC,kBAAA,GAAXD,WAAW,CAAEG,KAAK,qBAAlBF,kBAAA,CAAoBtD,QAAmC;MACzDmC,GAAG,CAACR,OAAO,CAAC8B,KAAK,GAAG,MAAMF,OAAO,YAAPA,OAAO,CAAEE,KAAK,oBAAdF,OAAO,CAAEE,KAAK,CAAG,CAAC;MAC5C;MACA;MACAvC,UAAU,CAACpB,KAAK,CAACqC,GAAG,CAACoB,OAAO,IAAI,IAAI,CAAC;IACvC,CAAE;IACFxD,QAAQ,EAAE,QAAQD,KAAK,CAACuB,EAAE,EAAG;IAC7BqC,YAAY,EAAEC,wCAAwB;IACtCC,KAAK,EAAC,MAAM;IACZC,eAAe,EAAExD,OAAO,CAAC,0BAA0B,CAAE;IACrDK,KAAK,EAAEkB,IAAK;IACZkC,QAAQ,EAAGC,QAAc,IAAK;MAC5BxD,UAAU,CAACoB,OAAO,GAAG,EAAE;MACvBU,eAAe,CAAC,EAAE,CAAC;MACnBF,GAAG,CAACR,OAAO,CAACa,OAAO,GAAG,KAAK;MAC3BX,OAAO,CAACkC,QAAQ,CAAC;MACjB,MAAMC,aAAa,GAAGD,QAAQ,GAC1B,IAAA/B,4CAAiC,EAAC+B,QAAQ,CAAC,GAC3C9B,SAAS;MACbf,UAAU,CAACpB,KAAK,CAACgE,QAAQ,CAAC,CAAAE,aAAa,oBAAbA,aAAa,CAAEC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAI,IAAI,CAAC;IACjE,CAAE;IACFC,UAAU,EAAEA,CAAC;MAAEtD,cAAc;MAAEF,KAAK,EAAEqD,QAAQ;MAAEpD;IAAO,CAAC,KAAK;MAC3D,MAAMe,KAAK,GAAGjB,YAAY,CAACsD,QAAQ,EAAEpD,MAAM,EAAEC,cAAc,CAAC;MAC5DL,UAAU,CAACoB,OAAO,GAAGD,KAAK;MAC1BW,eAAe,CAACX,KAAK,CAAC;MACtBS,GAAG,CAACR,OAAO,CAACa,OAAO,GAAG,CAAC,CAACd,KAAK;MAE7B,IAAId,cAAc,KAAK,aAAa,IAAImD,QAAQ,KAAK,EAAE,EAAE;QACvDlC,OAAO,CAACI,SAAS,CAAC;QAClBf,UAAU,CAACpB,KAAK,CAACgE,QAAQ,CAAC,IAAI,CAAC;MACjC,CAAC,MAAM;QACL;QACA5C,UAAU,CAACpB,KAAK,CAACgE,QAAQ,CAAC5C,UAAU,CAACpB,KAAK,CAACY,KAAK,CAAC;MACnD;IACF,CAAE;IACFyD,MAAM,EAAE/B,YAAY,GAAG,OAAO,GAAGH,SAAU;IAC3CY,aAAa,EAAET,YAAa;IAAAU,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAAzE,YAAA;MAAA0E,UAAA;MAAAC,YAAA;IAAA;EAAA,CAC7B,CACQ,CAAC;AAEhB,CAAC;AAEM,MAAMkB,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,IAAAE,uBAAQ,EAAC3E,cAAc,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.useFieldValueReplacement = useFieldValueReplacement;
|
|
5
|
+
var _react = require("react");
|
|
6
|
+
var _form = require("@wix/bex-core/form");
|
|
7
|
+
function useFieldValueReplacement(control, name, onReplace) {
|
|
8
|
+
const callback = (0, _react.useRef)(onReplace);
|
|
9
|
+
callback.current = onReplace;
|
|
10
|
+
// A new key discards the picker's draft even when its saved value is unchanged.
|
|
11
|
+
const [revision, setRevision] = (0, _react.useState)(0);
|
|
12
|
+
(0, _react.useEffect)(() => {
|
|
13
|
+
// Control has no public reset listener. Input edits carry a type; setValue
|
|
14
|
+
// does not. Older RHF releases have a separate values subject.
|
|
15
|
+
const subjects = control._subjects;
|
|
16
|
+
const values = (subjects == null ? void 0 : subjects.values) ?? (subjects == null ? void 0 : subjects.state);
|
|
17
|
+
const array = subjects == null ? void 0 : subjects.array;
|
|
18
|
+
// Reset cleanup is optional; an incompatible RHF version must not crash the field.
|
|
19
|
+
if (typeof (values == null ? void 0 : values.subscribe) !== 'function' || typeof (array == null ? void 0 : array.subscribe) !== 'function') {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const subscription = values.subscribe({
|
|
23
|
+
next: update => {
|
|
24
|
+
if (!update.values || !update.name || update.type || update.name !== name && !name.startsWith(`${update.name}.`)) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
callback.current((0, _form.get)(update.values, name));
|
|
28
|
+
setRevision(value => value + 1);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
// Reset broadcasts here even for unchanged values. Unlike the state
|
|
32
|
+
// subject, this does not fire when an unrelated field unregisters.
|
|
33
|
+
const resets = array.subscribe({
|
|
34
|
+
next: update => {
|
|
35
|
+
if (!update.name && update.values) {
|
|
36
|
+
callback.current((0, _form.get)(update.values, name));
|
|
37
|
+
setRevision(value => value + 1);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
return () => {
|
|
42
|
+
subscription == null || subscription.unsubscribe == null || subscription.unsubscribe();
|
|
43
|
+
resets == null || resets.unsubscribe == null || resets.unsubscribe();
|
|
44
|
+
};
|
|
45
|
+
}, [control, name]);
|
|
46
|
+
return revision;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=use-field-value-replacement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_form","useFieldValueReplacement","control","name","onReplace","callback","useRef","current","revision","setRevision","useState","useEffect","subjects","_subjects","values","state","array","subscribe","subscription","next","update","type","startsWith","get","value","resets","unsubscribe"],"sources":["../../../../src/components/date-input/use-field-value-replacement.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { get } from '@wix/bex-core/form';\nimport type { Control } from '@wix/bex-core/form';\n\nexport function useFieldValueReplacement(\n control: Control,\n name: string,\n onReplace: (value: unknown) => void,\n) {\n const callback = useRef(onReplace);\n callback.current = onReplace;\n // A new key discards the picker's draft even when its saved value is unchanged.\n const [revision, setRevision] = useState(0);\n\n useEffect(() => {\n // Control has no public reset listener. Input edits carry a type; setValue\n // does not. Older RHF releases have a separate values subject.\n const subjects:\n | (Partial<Control['_subjects']> & {\n values?: Pick<Control['_subjects']['state'], 'subscribe'>;\n })\n | undefined = control._subjects;\n const values = subjects?.values ?? subjects?.state;\n const array = subjects?.array;\n // Reset cleanup is optional; an incompatible RHF version must not crash the field.\n if (\n typeof values?.subscribe !== 'function' ||\n typeof array?.subscribe !== 'function'\n ) {\n return;\n }\n const subscription = values.subscribe({\n next: (update) => {\n if (\n !update.values ||\n !update.name ||\n update.type ||\n (update.name !== name && !name.startsWith(`${update.name}.`))\n ) {\n return;\n }\n callback.current(get(update.values, name));\n setRevision((value) => value + 1);\n },\n });\n // Reset broadcasts here even for unchanged values. Unlike the state\n // subject, this does not fire when an unrelated field unregisters.\n const resets = array.subscribe({\n next: (update) => {\n if (!update.name && update.values) {\n callback.current(get(update.values, name));\n setRevision((value) => value + 1);\n }\n },\n });\n return () => {\n subscription?.unsubscribe?.();\n resets?.unsubscribe?.();\n };\n }, [control, name]);\n\n return revision;\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAGO,SAASE,wBAAwBA,CACtCC,OAAgB,EAChBC,IAAY,EACZC,SAAmC,EACnC;EACA,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAACF,SAAS,CAAC;EAClCC,QAAQ,CAACE,OAAO,GAAGH,SAAS;EAC5B;EACA,MAAM,CAACI,QAAQ,EAAEC,WAAW,CAAC,GAAG,IAAAC,eAAQ,EAAC,CAAC,CAAC;EAE3C,IAAAC,gBAAS,EAAC,MAAM;IACd;IACA;IACA,MAAMC,QAIO,GAAGV,OAAO,CAACW,SAAS;IACjC,MAAMC,MAAM,GAAG,CAAAF,QAAQ,oBAARA,QAAQ,CAAEE,MAAM,MAAIF,QAAQ,oBAARA,QAAQ,CAAEG,KAAK;IAClD,MAAMC,KAAK,GAAGJ,QAAQ,oBAARA,QAAQ,CAAEI,KAAK;IAC7B;IACA,IACE,QAAOF,MAAM,oBAANA,MAAM,CAAEG,SAAS,MAAK,UAAU,IACvC,QAAOD,KAAK,oBAALA,KAAK,CAAEC,SAAS,MAAK,UAAU,EACtC;MACA;IACF;IACA,MAAMC,YAAY,GAAGJ,MAAM,CAACG,SAAS,CAAC;MACpCE,IAAI,EAAGC,MAAM,IAAK;QAChB,IACE,CAACA,MAAM,CAACN,MAAM,IACd,CAACM,MAAM,CAACjB,IAAI,IACZiB,MAAM,CAACC,IAAI,IACVD,MAAM,CAACjB,IAAI,KAAKA,IAAI,IAAI,CAACA,IAAI,CAACmB,UAAU,CAAC,GAAGF,MAAM,CAACjB,IAAI,GAAG,CAAE,EAC7D;UACA;QACF;QACAE,QAAQ,CAACE,OAAO,CAAC,IAAAgB,SAAG,EAACH,MAAM,CAACN,MAAM,EAAEX,IAAI,CAAC,CAAC;QAC1CM,WAAW,CAAEe,KAAK,IAAKA,KAAK,GAAG,CAAC,CAAC;MACnC;IACF,CAAC,CAAC;IACF;IACA;IACA,MAAMC,MAAM,GAAGT,KAAK,CAACC,SAAS,CAAC;MAC7BE,IAAI,EAAGC,MAAM,IAAK;QAChB,IAAI,CAACA,MAAM,CAACjB,IAAI,IAAIiB,MAAM,CAACN,MAAM,EAAE;UACjCT,QAAQ,CAACE,OAAO,CAAC,IAAAgB,SAAG,EAACH,MAAM,CAACN,MAAM,EAAEX,IAAI,CAAC,CAAC;UAC1CM,WAAW,CAAEe,KAAK,IAAKA,KAAK,GAAG,CAAC,CAAC;QACnC;MACF;IACF,CAAC,CAAC;IACF,OAAO,MAAM;MACXN,YAAY,YAAZA,YAAY,CAAEQ,WAAW,YAAzBR,YAAY,CAAEQ,WAAW,CAAG,CAAC;MAC7BD,MAAM,YAANA,MAAM,CAAEC,WAAW,YAAnBD,MAAM,CAAEC,WAAW,CAAG,CAAC;IACzB,CAAC;EACH,CAAC,EAAE,CAACxB,OAAO,EAAEC,IAAI,CAAC,CAAC;EAEnB,OAAOK,QAAQ;AACjB","ignoreList":[]}
|
|
@@ -17,7 +17,10 @@ function FormDateTimeDriver(base, body, field) {
|
|
|
17
17
|
dateExists: () => dateBase.exists(),
|
|
18
18
|
timeExists: () => timeBase.exists(),
|
|
19
19
|
enterDateText: text => datePicker.inputDriver.enterText(text),
|
|
20
|
+
getDateText: () => datePicker.inputDriver.getValue(),
|
|
20
21
|
blurDate: () => datePicker.inputDriver.blur(),
|
|
22
|
+
enterTimeText: text => timeInput.setValue(text),
|
|
23
|
+
blurTime: () => timeInput.confirmValue(),
|
|
21
24
|
dateHasError: () => datePicker.inputDriver.hasStatus('error'),
|
|
22
25
|
getDateErrorMessage: () => datePicker.inputDriver.getStatusMessage(),
|
|
23
26
|
timeHasError: () =>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_unidriver","require","_baseDriver","_popoverDriver","FormDateTimeDriver","base","body","field","formField","FormFieldUniDriver","dateBase","$","id","timeBase","datePicker","DatePickerUniDriver","timeInput","TimeInputUniDriver","baseUniDriverFactory","getLabel","getFormFieldLabelText","dateExists","exists","timeExists","enterDateText","text","inputDriver","enterText","blurDate","blur","dateHasError","hasStatus","getDateErrorMessage","getStatusMessage","timeHasError","getTimeErrorMessage","isRequired","getInputsGap","attr","calendarPopover","CalendarPopoverUniDriver","timeDropdown","TimeDropdownUniDriver"],"sources":["../../../../src/components/datetime-input/form-date-time.driver.ts"],"sourcesContent":["import type { Field } from '@wix/bex-core';\nimport { UniDriver } from '@wix/wix-ui-test-utils/unidriver';\nimport {\n DatePickerUniDriver,\n FormFieldUniDriver,\n TimeInputUniDriver,\n} from '@wix/design-system/dist/testkit/unidriver';\n\nimport {\n baseUniDriverFactory,\n getFormFieldLabelText,\n} from '../../testkit/base-driver';\nimport {\n CalendarPopoverUniDriver,\n TimeDropdownUniDriver,\n} from '../../testkit/popover-driver';\n\nexport function FormDateTimeDriver(\n base: UniDriver,\n body: UniDriver,\n field: Field,\n) {\n const formField = FormFieldUniDriver(base, body);\n const dateBase = base.$(`[data-hook=\"datetime-date-${field.id}\"]`);\n const timeBase = base.$(`[data-hook=\"datetime-time-${field.id}\"]`);\n const datePicker = DatePickerUniDriver(dateBase, body);\n const timeInput = TimeInputUniDriver(timeBase, body);\n\n return {\n ...baseUniDriverFactory(base),\n getLabel: () => getFormFieldLabelText(formField),\n dateExists: () => dateBase.exists(),\n timeExists: () => timeBase.exists(),\n enterDateText: (text: string) => datePicker.inputDriver.enterText(text),\n blurDate: () => datePicker.inputDriver.blur(),\n dateHasError: () => datePicker.inputDriver.hasStatus('error'),\n getDateErrorMessage: () => datePicker.inputDriver.getStatusMessage(),\n timeHasError: () =>\n // WDS TimeInput.uni.driver.d.ts types `hasStatus` as no-arg, but the\n // runtime forwards `status` to Input.hasStatus. See TimeInput.uni.driver.js:43.\n // @ts-expect-error\n timeInput.hasStatus('error'),\n getTimeErrorMessage: () => timeInput.getStatusMessage(),\n isRequired: () => formField.isRequired(),\n // WDS Layout mirrors its `gap` prop onto `data-gap`; it is the only\n // element in this field carrying that attribute.\n getInputsGap: () => base.$('[data-gap]').attr('data-gap'),\n calendarPopover: CalendarPopoverUniDriver(datePicker, body),\n timeDropdown: TimeDropdownUniDriver(timeBase, body),\n };\n}\n"],"mappings":";;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AAMA,IAAAC,WAAA,GAAAD,OAAA;AAIA,IAAAE,cAAA,GAAAF,OAAA;AAKO,SAASG,kBAAkBA,CAChCC,IAAe,EACfC,IAAe,EACfC,KAAY,EACZ;EACA,MAAMC,SAAS,GAAG,IAAAC,6BAAkB,EAACJ,IAAI,EAAEC,IAAI,CAAC;EAChD,MAAMI,QAAQ,GAAGL,IAAI,CAACM,CAAC,CAAC,6BAA6BJ,KAAK,CAACK,EAAE,IAAI,CAAC;EAClE,MAAMC,QAAQ,GAAGR,IAAI,CAACM,CAAC,CAAC,6BAA6BJ,KAAK,CAACK,EAAE,IAAI,CAAC;EAClE,MAAME,UAAU,GAAG,IAAAC,8BAAmB,EAACL,QAAQ,EAAEJ,IAAI,CAAC;EACtD,MAAMU,SAAS,GAAG,IAAAC,6BAAkB,EAACJ,QAAQ,EAAEP,IAAI,CAAC;EAEpD,OAAO;IACL,GAAG,IAAAY,gCAAoB,EAACb,IAAI,CAAC;IAC7Bc,QAAQ,EAAEA,CAAA,KAAM,IAAAC,iCAAqB,EAACZ,SAAS,CAAC;IAChDa,UAAU,EAAEA,CAAA,KAAMX,QAAQ,CAACY,MAAM,CAAC,CAAC;IACnCC,UAAU,EAAEA,CAAA,KAAMV,QAAQ,CAACS,MAAM,CAAC,CAAC;IACnCE,aAAa,EAAGC,IAAY,IAAKX,UAAU,CAACY,WAAW,CAACC,SAAS,CAACF,IAAI,CAAC;IACvEG,
|
|
1
|
+
{"version":3,"names":["_unidriver","require","_baseDriver","_popoverDriver","FormDateTimeDriver","base","body","field","formField","FormFieldUniDriver","dateBase","$","id","timeBase","datePicker","DatePickerUniDriver","timeInput","TimeInputUniDriver","baseUniDriverFactory","getLabel","getFormFieldLabelText","dateExists","exists","timeExists","enterDateText","text","inputDriver","enterText","getDateText","getValue","blurDate","blur","enterTimeText","setValue","blurTime","confirmValue","dateHasError","hasStatus","getDateErrorMessage","getStatusMessage","timeHasError","getTimeErrorMessage","isRequired","getInputsGap","attr","calendarPopover","CalendarPopoverUniDriver","timeDropdown","TimeDropdownUniDriver"],"sources":["../../../../src/components/datetime-input/form-date-time.driver.ts"],"sourcesContent":["import type { Field } from '@wix/bex-core';\nimport { UniDriver } from '@wix/wix-ui-test-utils/unidriver';\nimport {\n DatePickerUniDriver,\n FormFieldUniDriver,\n TimeInputUniDriver,\n} from '@wix/design-system/dist/testkit/unidriver';\n\nimport {\n baseUniDriverFactory,\n getFormFieldLabelText,\n} from '../../testkit/base-driver';\nimport {\n CalendarPopoverUniDriver,\n TimeDropdownUniDriver,\n} from '../../testkit/popover-driver';\n\nexport function FormDateTimeDriver(\n base: UniDriver,\n body: UniDriver,\n field: Field,\n) {\n const formField = FormFieldUniDriver(base, body);\n const dateBase = base.$(`[data-hook=\"datetime-date-${field.id}\"]`);\n const timeBase = base.$(`[data-hook=\"datetime-time-${field.id}\"]`);\n const datePicker = DatePickerUniDriver(dateBase, body);\n const timeInput = TimeInputUniDriver(timeBase, body);\n\n return {\n ...baseUniDriverFactory(base),\n getLabel: () => getFormFieldLabelText(formField),\n dateExists: () => dateBase.exists(),\n timeExists: () => timeBase.exists(),\n enterDateText: (text: string) => datePicker.inputDriver.enterText(text),\n getDateText: () => datePicker.inputDriver.getValue(),\n blurDate: () => datePicker.inputDriver.blur(),\n enterTimeText: (text: string) => timeInput.setValue(text),\n blurTime: () => timeInput.confirmValue(),\n dateHasError: () => datePicker.inputDriver.hasStatus('error'),\n getDateErrorMessage: () => datePicker.inputDriver.getStatusMessage(),\n timeHasError: () =>\n // WDS TimeInput.uni.driver.d.ts types `hasStatus` as no-arg, but the\n // runtime forwards `status` to Input.hasStatus. See TimeInput.uni.driver.js:43.\n // @ts-expect-error\n timeInput.hasStatus('error'),\n getTimeErrorMessage: () => timeInput.getStatusMessage(),\n isRequired: () => formField.isRequired(),\n // WDS Layout mirrors its `gap` prop onto `data-gap`; it is the only\n // element in this field carrying that attribute.\n getInputsGap: () => base.$('[data-gap]').attr('data-gap'),\n calendarPopover: CalendarPopoverUniDriver(datePicker, body),\n timeDropdown: TimeDropdownUniDriver(timeBase, body),\n };\n}\n"],"mappings":";;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AAMA,IAAAC,WAAA,GAAAD,OAAA;AAIA,IAAAE,cAAA,GAAAF,OAAA;AAKO,SAASG,kBAAkBA,CAChCC,IAAe,EACfC,IAAe,EACfC,KAAY,EACZ;EACA,MAAMC,SAAS,GAAG,IAAAC,6BAAkB,EAACJ,IAAI,EAAEC,IAAI,CAAC;EAChD,MAAMI,QAAQ,GAAGL,IAAI,CAACM,CAAC,CAAC,6BAA6BJ,KAAK,CAACK,EAAE,IAAI,CAAC;EAClE,MAAMC,QAAQ,GAAGR,IAAI,CAACM,CAAC,CAAC,6BAA6BJ,KAAK,CAACK,EAAE,IAAI,CAAC;EAClE,MAAME,UAAU,GAAG,IAAAC,8BAAmB,EAACL,QAAQ,EAAEJ,IAAI,CAAC;EACtD,MAAMU,SAAS,GAAG,IAAAC,6BAAkB,EAACJ,QAAQ,EAAEP,IAAI,CAAC;EAEpD,OAAO;IACL,GAAG,IAAAY,gCAAoB,EAACb,IAAI,CAAC;IAC7Bc,QAAQ,EAAEA,CAAA,KAAM,IAAAC,iCAAqB,EAACZ,SAAS,CAAC;IAChDa,UAAU,EAAEA,CAAA,KAAMX,QAAQ,CAACY,MAAM,CAAC,CAAC;IACnCC,UAAU,EAAEA,CAAA,KAAMV,QAAQ,CAACS,MAAM,CAAC,CAAC;IACnCE,aAAa,EAAGC,IAAY,IAAKX,UAAU,CAACY,WAAW,CAACC,SAAS,CAACF,IAAI,CAAC;IACvEG,WAAW,EAAEA,CAAA,KAAMd,UAAU,CAACY,WAAW,CAACG,QAAQ,CAAC,CAAC;IACpDC,QAAQ,EAAEA,CAAA,KAAMhB,UAAU,CAACY,WAAW,CAACK,IAAI,CAAC,CAAC;IAC7CC,aAAa,EAAGP,IAAY,IAAKT,SAAS,CAACiB,QAAQ,CAACR,IAAI,CAAC;IACzDS,QAAQ,EAAEA,CAAA,KAAMlB,SAAS,CAACmB,YAAY,CAAC,CAAC;IACxCC,YAAY,EAAEA,CAAA,KAAMtB,UAAU,CAACY,WAAW,CAACW,SAAS,CAAC,OAAO,CAAC;IAC7DC,mBAAmB,EAAEA,CAAA,KAAMxB,UAAU,CAACY,WAAW,CAACa,gBAAgB,CAAC,CAAC;IACpEC,YAAY,EAAEA,CAAA;IACZ;IACA;IACA;IACAxB,SAAS,CAACqB,SAAS,CAAC,OAAO,CAAC;IAC9BI,mBAAmB,EAAEA,CAAA,KAAMzB,SAAS,CAACuB,gBAAgB,CAAC,CAAC;IACvDG,UAAU,EAAEA,CAAA,KAAMlC,SAAS,CAACkC,UAAU,CAAC,CAAC;IACxC;IACA;IACAC,YAAY,EAAEA,CAAA,KAAMtC,IAAI,CAACM,CAAC,CAAC,YAAY,CAAC,CAACiC,IAAI,CAAC,UAAU,CAAC;IACzDC,eAAe,EAAE,IAAAC,uCAAwB,EAAChC,UAAU,EAAER,IAAI,CAAC;IAC3DyC,YAAY,EAAE,IAAAC,oCAAqB,EAACnC,QAAQ,EAAEP,IAAI;EACpD,CAAC;AACH","ignoreList":[]}
|
|
@@ -9,11 +9,12 @@ var _react2 = require("@wix/bex-core/react");
|
|
|
9
9
|
var _form = require("@wix/bex-core/form");
|
|
10
10
|
var _hooks = require("../../hooks");
|
|
11
11
|
var _string = require("../../validations/string");
|
|
12
|
+
var _useFieldValueReplacement = require("../date-input/use-field-value-replacement");
|
|
12
13
|
var _popoverDefaults = require("../popover-defaults");
|
|
13
14
|
var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/fields/dist/cjs/components/datetime-input/form-date-time.tsx";
|
|
14
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
16
|
const _FormDateTime = props => {
|
|
16
|
-
var _field$validation2
|
|
17
|
+
var _field$validation2;
|
|
17
18
|
const {
|
|
18
19
|
field,
|
|
19
20
|
dataHook,
|
|
@@ -27,6 +28,10 @@ const _FormDateTime = props => {
|
|
|
27
28
|
const {
|
|
28
29
|
t: tFields
|
|
29
30
|
} = (0, _hooks.useTranslations)();
|
|
31
|
+
const inputErrors = (0, _react.useRef)({
|
|
32
|
+
date: '',
|
|
33
|
+
time: ''
|
|
34
|
+
});
|
|
30
35
|
const controller = (0, _form.useController)({
|
|
31
36
|
name: (field == null ? void 0 : field.id) ?? '',
|
|
32
37
|
control: formControl,
|
|
@@ -34,6 +39,10 @@ const _FormDateTime = props => {
|
|
|
34
39
|
rules: {
|
|
35
40
|
validate: v => {
|
|
36
41
|
var _field$validation;
|
|
42
|
+
const inputError = inputErrors.current.date || inputErrors.current.time;
|
|
43
|
+
if (inputError) {
|
|
44
|
+
return inputError;
|
|
45
|
+
}
|
|
37
46
|
if (field != null && (_field$validation = field.validation) != null && _field$validation.required && (0, _string.isEmpty)(v)) {
|
|
38
47
|
return t('cairo.fieldValidation.requiredField');
|
|
39
48
|
}
|
|
@@ -50,11 +59,30 @@ const _FormDateTime = props => {
|
|
|
50
59
|
}, [controller.field.value]);
|
|
51
60
|
const [dateStatusMessage, setDateStatusMessage] = (0, _react.useState)('');
|
|
52
61
|
const [timeStatusMessage, setTimeStatusMessage] = (0, _react.useState)('');
|
|
62
|
+
const formError = !dateStatusMessage && !timeStatusMessage ? controller.fieldState.error : undefined;
|
|
63
|
+
const setDateError = error => {
|
|
64
|
+
inputErrors.current.date = error;
|
|
65
|
+
setDateStatusMessage(error);
|
|
66
|
+
};
|
|
67
|
+
const setTimeError = error => {
|
|
68
|
+
inputErrors.current.time = error;
|
|
69
|
+
setTimeStatusMessage(error);
|
|
70
|
+
};
|
|
53
71
|
const ref = (0, _react.useRef)({});
|
|
54
72
|
const dateRef = (0, _react.useRef)({});
|
|
55
73
|
const timeRef = (0, _react.useRef)({});
|
|
56
74
|
const [dateValue, setDateValue] = (0, _react.useState)(date == null ? void 0 : date.getDate());
|
|
57
75
|
const [timeValue, setTimeValue] = (0, _react.useState)(date == null ? void 0 : date.getTime());
|
|
76
|
+
const revision = (0, _useFieldValueReplacement.useFieldValueReplacement)(formControl, field.id, value => {
|
|
77
|
+
setDateError('');
|
|
78
|
+
setTimeError('');
|
|
79
|
+
ref.current.invalid = false;
|
|
80
|
+
dateRef.current.invalid = false;
|
|
81
|
+
timeRef.current.invalid = false;
|
|
82
|
+
const nextDate = typeof value === 'string' ? new Date(value) : undefined;
|
|
83
|
+
setDateValue(nextDate == null ? void 0 : nextDate.getDate());
|
|
84
|
+
setTimeValue(nextDate == null ? void 0 : nextDate.getTime());
|
|
85
|
+
});
|
|
58
86
|
(0, _react.useEffect)(() => {
|
|
59
87
|
ref.current.focus = () => {
|
|
60
88
|
if (dateRef.current.invalid) {
|
|
@@ -71,7 +99,7 @@ const _FormDateTime = props => {
|
|
|
71
99
|
__self: void 0,
|
|
72
100
|
__source: {
|
|
73
101
|
fileName: _jsxFileName,
|
|
74
|
-
lineNumber:
|
|
102
|
+
lineNumber: 105,
|
|
75
103
|
columnNumber: 5
|
|
76
104
|
}
|
|
77
105
|
}, /*#__PURE__*/_react.default.createElement(_designSystem.Layout, {
|
|
@@ -79,7 +107,7 @@ const _FormDateTime = props => {
|
|
|
79
107
|
__self: void 0,
|
|
80
108
|
__source: {
|
|
81
109
|
fileName: _jsxFileName,
|
|
82
|
-
lineNumber:
|
|
110
|
+
lineNumber: 110,
|
|
83
111
|
columnNumber: 7
|
|
84
112
|
}
|
|
85
113
|
}, /*#__PURE__*/_react.default.createElement(_designSystem.Cell, {
|
|
@@ -87,10 +115,11 @@ const _FormDateTime = props => {
|
|
|
87
115
|
__self: void 0,
|
|
88
116
|
__source: {
|
|
89
117
|
fileName: _jsxFileName,
|
|
90
|
-
lineNumber:
|
|
118
|
+
lineNumber: 111,
|
|
91
119
|
columnNumber: 9
|
|
92
120
|
}
|
|
93
121
|
}, /*#__PURE__*/_react.default.createElement(_designSystem.DatePicker, {
|
|
122
|
+
key: revision,
|
|
94
123
|
ref: internalRef => {
|
|
95
124
|
var _internalRef$state;
|
|
96
125
|
const inputEl = // TODO: PR to WSR needed to expose as public API
|
|
@@ -114,45 +143,47 @@ const _FormDateTime = props => {
|
|
|
114
143
|
value: newValue,
|
|
115
144
|
format
|
|
116
145
|
}) => {
|
|
146
|
+
let value = controller.field.value;
|
|
117
147
|
if (validationType === 'valid') {
|
|
118
148
|
const dateWithNewDate = date ? new Date(date) : new Date(newValue);
|
|
119
149
|
const _value = new Date(newValue);
|
|
120
150
|
dateWithNewDate.setFullYear(_value.getFullYear());
|
|
121
151
|
dateWithNewDate.setMonth(_value.getMonth());
|
|
122
152
|
dateWithNewDate.setDate(_value.getDate());
|
|
123
|
-
|
|
153
|
+
value = dateWithNewDate.toISOString();
|
|
124
154
|
setDateValue(new Date(newValue).getDate());
|
|
125
|
-
|
|
155
|
+
setDateError('');
|
|
126
156
|
dateRef.current.invalid = false;
|
|
127
157
|
} else if (validationType === 'formatError' && newValue === '') {
|
|
128
158
|
var _field$validation3;
|
|
129
159
|
if ((_field$validation3 = field.validation) != null && _field$validation3.required) {
|
|
130
|
-
|
|
160
|
+
setDateError(t('cairo.fieldValidation.requiredField'));
|
|
131
161
|
dateRef.current.invalid = true;
|
|
132
162
|
} else {
|
|
133
|
-
|
|
163
|
+
setDateError('');
|
|
134
164
|
dateRef.current.invalid = false;
|
|
135
165
|
}
|
|
136
166
|
setDateValue(newValue);
|
|
137
167
|
if (!timeValue) {
|
|
138
|
-
|
|
168
|
+
value = null;
|
|
139
169
|
}
|
|
140
170
|
} else {
|
|
141
|
-
|
|
171
|
+
setDateError(t('cairo.customFields.fieldType.date.invalid.value', {
|
|
142
172
|
dateFormat: format ?? ''
|
|
143
173
|
}));
|
|
144
174
|
dateRef.current.invalid = true;
|
|
145
175
|
}
|
|
146
176
|
ref.current.invalid = dateRef.current.invalid || timeRef.current.invalid;
|
|
177
|
+
controller.field.onChange(value);
|
|
147
178
|
},
|
|
148
|
-
status:
|
|
149
|
-
statusMessage:
|
|
179
|
+
status: dateStatusMessage || formError ? 'error' : undefined,
|
|
180
|
+
statusMessage: dateStatusMessage || (formError == null ? void 0 : formError.message),
|
|
150
181
|
dataHook: `datetime-date-${field.id}`,
|
|
151
182
|
popoverProps: _popoverDefaults.calendarPopoverDefaults,
|
|
152
183
|
__self: void 0,
|
|
153
184
|
__source: {
|
|
154
185
|
fileName: _jsxFileName,
|
|
155
|
-
lineNumber:
|
|
186
|
+
lineNumber: 112,
|
|
156
187
|
columnNumber: 11
|
|
157
188
|
}
|
|
158
189
|
})), /*#__PURE__*/_react.default.createElement(_designSystem.Cell, {
|
|
@@ -160,10 +191,11 @@ const _FormDateTime = props => {
|
|
|
160
191
|
__self: void 0,
|
|
161
192
|
__source: {
|
|
162
193
|
fileName: _jsxFileName,
|
|
163
|
-
lineNumber:
|
|
194
|
+
lineNumber: 176,
|
|
164
195
|
columnNumber: 9
|
|
165
196
|
}
|
|
166
197
|
}, /*#__PURE__*/_react.default.createElement(_designSystem.TimeInput, {
|
|
198
|
+
key: revision,
|
|
167
199
|
ref: internalRef => {
|
|
168
200
|
timeRef.current.focus = () => internalRef == null ? void 0 : internalRef.focus();
|
|
169
201
|
},
|
|
@@ -172,16 +204,18 @@ const _FormDateTime = props => {
|
|
|
172
204
|
placeholder: tFields('CMS.formTime.placeholder'),
|
|
173
205
|
invalidMessage: tFields('CMS.formTime.invalidMessage'),
|
|
174
206
|
value: date ?? null,
|
|
175
|
-
status:
|
|
176
|
-
statusMessage:
|
|
207
|
+
status: timeStatusMessage || formError ? 'error' : undefined,
|
|
208
|
+
statusMessage: timeStatusMessage || (formError == null ? void 0 : formError.message),
|
|
177
209
|
onInvalid: () => {
|
|
178
210
|
timeRef.current.invalid = true;
|
|
179
|
-
|
|
211
|
+
setTimeError(t('cairo.customFields.fieldType.dateAndTime.invalid.value'));
|
|
180
212
|
ref.current.invalid = dateRef.current.invalid || timeRef.current.invalid;
|
|
213
|
+
controller.field.onChange(controller.field.value);
|
|
181
214
|
},
|
|
182
215
|
onChange: ({
|
|
183
216
|
date: newValue
|
|
184
217
|
}) => {
|
|
218
|
+
let value = controller.field.value;
|
|
185
219
|
timeRef.current.invalid = false;
|
|
186
220
|
ref.current.invalid = dateRef.current.invalid || timeRef.current.invalid;
|
|
187
221
|
if (newValue) {
|
|
@@ -190,32 +224,35 @@ const _FormDateTime = props => {
|
|
|
190
224
|
dateWithNewTime.setMinutes(newValue.getMinutes());
|
|
191
225
|
dateWithNewTime.setSeconds(newValue.getSeconds());
|
|
192
226
|
dateWithNewTime.setMilliseconds(newValue.getMilliseconds());
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
227
|
+
value = dateWithNewTime.toISOString();
|
|
228
|
+
setTimeError('');
|
|
229
|
+
if (!dateRef.current.invalid) {
|
|
230
|
+
setDateError('');
|
|
231
|
+
}
|
|
196
232
|
} else {
|
|
197
233
|
if (!newValue) {
|
|
198
234
|
var _field$validation4;
|
|
199
235
|
setTimeValue('');
|
|
200
236
|
if ((_field$validation4 = field.validation) != null && _field$validation4.required) {
|
|
201
|
-
|
|
237
|
+
setTimeError(t('cairo.fieldValidation.requiredField'));
|
|
202
238
|
timeRef.current.invalid = true;
|
|
203
239
|
} else {
|
|
204
|
-
|
|
240
|
+
setTimeError('');
|
|
205
241
|
timeRef.current.invalid = false;
|
|
206
242
|
}
|
|
207
243
|
if (!ref.current.invalid) {
|
|
208
244
|
if (!dateValue) {
|
|
209
|
-
|
|
245
|
+
value = null;
|
|
210
246
|
}
|
|
211
247
|
}
|
|
212
248
|
}
|
|
213
249
|
}
|
|
250
|
+
controller.field.onChange(value);
|
|
214
251
|
},
|
|
215
252
|
__self: void 0,
|
|
216
253
|
__source: {
|
|
217
254
|
fileName: _jsxFileName,
|
|
218
|
-
lineNumber:
|
|
255
|
+
lineNumber: 177,
|
|
219
256
|
columnNumber: 11
|
|
220
257
|
}
|
|
221
258
|
}))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_mobxReactLite","_react2","_form","_hooks","_string","_popoverDefaults","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_FormDateTime","props","_field$validation2","_controller$fieldStat","_controller$fieldStat2","field","dataHook","inputRef","formControl","data","translate","useWixPatternsContainer","tFields","useTranslations","controller","useController","name","id","control","defaultValue","rules","validate","v","_field$validation","validation","required","isEmpty","date","useMemo","value","undefined","d","Date","isNaN","getTime","dateStatusMessage","setDateStatusMessage","useState","timeStatusMessage","setTimeStatusMessage","ref","useRef","dateRef","timeRef","dateValue","setDateValue","getDate","timeValue","setTimeValue","useEffect","current","focus","invalid","createElement","FormField","label","displayName","__self","__source","fileName","lineNumber","columnNumber","Layout","gap","Cell","span","DatePicker","internalRef","_internalRef$state","inputEl","state","width","placeholderText","onChange","onValidate","validationType","newValue","format","dateWithNewDate","_value","setFullYear","getFullYear","setMonth","getMonth","setDate","toISOString","_field$validation3","dateFormat","status","fieldState","error","statusMessage","message","popoverProps","calendarPopoverDefaults","TimeInput","dropdownPopoverDefaults","placeholder","invalidMessage","onInvalid","dateWithNewTime","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds","_field$validation4","FormDateTime","exports","observer"],"sources":["../../../../src/components/datetime-input/form-date-time.tsx"],"sourcesContent":["import React, { useRef, useMemo, useState, useEffect } from 'react';\nimport {\n Cell,\n DatePicker,\n FormField,\n Layout,\n TimeInput,\n} from '@wix/design-system';\nimport { observer } from 'mobx-react-lite';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport { useController } from '@wix/bex-core/form';\n\nimport { BaseInputProps, BaseInputRef } from '../../types/base-input';\nimport { useTranslations } from '../../hooks';\nimport { isEmpty } from '../../validations/string';\nimport {\n calendarPopoverDefaults,\n dropdownPopoverDefaults,\n} from '../popover-defaults';\n\nexport interface FormDateTimeProps extends BaseInputProps<string | null> {}\n\nconst _FormDateTime = (props: FormDateTimeProps) => {\n const { field, dataHook, inputRef, formControl, data } = props;\n const { translate: t } = useWixPatternsContainer();\n const { t: tFields } = useTranslations();\n\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n rules: {\n validate: (v) => {\n if (field?.validation?.required && isEmpty(v)) {\n return t('cairo.fieldValidation.requiredField');\n }\n return true;\n },\n },\n });\n\n const date = useMemo(() => {\n if (!controller.field.value) {\n return undefined;\n }\n const d = new Date(controller.field.value);\n return isNaN(d.getTime()) ? undefined : d;\n }, [controller.field.value]);\n\n const [dateStatusMessage, setDateStatusMessage] = useState('');\n const [timeStatusMessage, setTimeStatusMessage] = useState('');\n\n const ref = useRef<BaseInputRef>({});\n const dateRef = useRef<BaseInputRef>({});\n const timeRef = useRef<BaseInputRef>({});\n const [dateValue, setDateValue] = useState<number | string | undefined>(\n date?.getDate(),\n );\n const [timeValue, setTimeValue] = useState<number | string | undefined>(\n date?.getTime(),\n );\n\n useEffect(() => {\n ref.current.focus = () => {\n if (dateRef.current.invalid) {\n return dateRef.current.focus?.();\n }\n\n return timeRef.current.focus?.();\n };\n\n inputRef?.(ref.current);\n }, [inputRef]);\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n dataHook={dataHook}\n >\n <Layout gap=\"12px\">\n <Cell span={6}>\n <DatePicker\n ref={(internalRef) => {\n const inputEl =\n // TODO: PR to WSR needed to expose as public API\n // @ts-expect-error internal API\n internalRef?.state?.inputRef as HTMLElement | undefined;\n dateRef.current.focus = () => inputEl?.focus?.();\n // Hand the date input to react-hook-form so shouldFocusError can\n // scroll to and focus this field when it blocks save (the\n // composite date/time inputs have no single ref to pass directly).\n controller.field.ref(inputEl ?? null);\n }}\n width=\"100%\"\n placeholderText={tFields('CMS.formDate.placeholder')}\n value={date}\n onChange={() => {}}\n // onChange is triggered only when you have valid, non-empty value.\n // and onValidate is triggered on every change so we use onValidate\n onValidate={({ validationType, value: newValue, format }) => {\n if (validationType === 'valid') {\n const dateWithNewDate = date\n ? new Date(date)\n : new Date(newValue);\n const _value = new Date(newValue);\n dateWithNewDate.setFullYear(_value.getFullYear());\n dateWithNewDate.setMonth(_value.getMonth());\n dateWithNewDate.setDate(_value.getDate());\n controller.field.onChange(dateWithNewDate.toISOString());\n setDateValue(new Date(newValue).getDate());\n setDateStatusMessage('');\n dateRef.current.invalid = false;\n } else if (validationType === 'formatError' && newValue === '') {\n if (field.validation?.required) {\n setDateStatusMessage(\n t('cairo.fieldValidation.requiredField'),\n );\n dateRef.current.invalid = true;\n } else {\n setDateStatusMessage('');\n dateRef.current.invalid = false;\n }\n setDateValue(newValue);\n if (!timeValue) {\n controller.field.onChange(null);\n }\n } else {\n setDateStatusMessage(\n t('cairo.customFields.fieldType.date.invalid.value', {\n dateFormat: format ?? '',\n }),\n );\n dateRef.current.invalid = true;\n }\n\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n }}\n status={\n controller.fieldState.error || dateStatusMessage\n ? 'error'\n : undefined\n }\n statusMessage={\n controller.fieldState.error?.message || dateStatusMessage\n }\n dataHook={`datetime-date-${field.id}`}\n popoverProps={calendarPopoverDefaults}\n />\n </Cell>\n <Cell span={6}>\n <TimeInput\n ref={(internalRef) => {\n timeRef.current.focus = () => internalRef?.focus();\n }}\n dataHook={`datetime-time-${field.id}`}\n popoverProps={dropdownPopoverDefaults}\n placeholder={tFields('CMS.formTime.placeholder')}\n invalidMessage={tFields('CMS.formTime.invalidMessage')}\n value={date ?? null}\n status={\n controller.fieldState.error || timeStatusMessage\n ? 'error'\n : undefined\n }\n statusMessage={\n controller.fieldState.error?.message || timeStatusMessage\n }\n onInvalid={() => {\n timeRef.current.invalid = true;\n setTimeStatusMessage(\n t('cairo.customFields.fieldType.dateAndTime.invalid.value'),\n );\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n }}\n onChange={({ date: newValue }) => {\n timeRef.current.invalid = false;\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n\n if (newValue) {\n const dateWithNewTime = date ? new Date(date) : newValue;\n dateWithNewTime.setHours(newValue.getHours());\n dateWithNewTime.setMinutes(newValue.getMinutes());\n dateWithNewTime.setSeconds(newValue.getSeconds());\n dateWithNewTime.setMilliseconds(newValue.getMilliseconds());\n controller.field.onChange(dateWithNewTime.toISOString());\n setTimeStatusMessage('');\n setDateStatusMessage('');\n } else {\n if (!newValue) {\n setTimeValue('');\n if (field.validation?.required) {\n setTimeStatusMessage(\n t('cairo.fieldValidation.requiredField'),\n );\n timeRef.current.invalid = true;\n } else {\n setTimeStatusMessage('');\n timeRef.current.invalid = false;\n }\n if (!ref.current.invalid) {\n if (!dateValue) {\n controller.field.onChange(null);\n }\n }\n }\n }\n }}\n />\n </Cell>\n </Layout>\n </FormField>\n );\n};\n\nexport const FormDateTime = observer(_FormDateTime);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_mobxReactLite","_react2","_form","_hooks","_string","_useFieldValueReplacement","_popoverDefaults","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_FormDateTime","props","_field$validation2","field","dataHook","inputRef","formControl","data","translate","useWixPatternsContainer","tFields","useTranslations","inputErrors","useRef","date","time","controller","useController","name","id","control","defaultValue","rules","validate","v","_field$validation","inputError","current","validation","required","isEmpty","useMemo","value","undefined","d","Date","isNaN","getTime","dateStatusMessage","setDateStatusMessage","useState","timeStatusMessage","setTimeStatusMessage","formError","fieldState","error","setDateError","setTimeError","ref","dateRef","timeRef","dateValue","setDateValue","getDate","timeValue","setTimeValue","revision","useFieldValueReplacement","invalid","nextDate","useEffect","focus","createElement","FormField","label","displayName","__self","__source","fileName","lineNumber","columnNumber","Layout","gap","Cell","span","DatePicker","key","internalRef","_internalRef$state","inputEl","state","width","placeholderText","onChange","onValidate","validationType","newValue","format","dateWithNewDate","_value","setFullYear","getFullYear","setMonth","getMonth","setDate","toISOString","_field$validation3","dateFormat","status","statusMessage","message","popoverProps","calendarPopoverDefaults","TimeInput","dropdownPopoverDefaults","placeholder","invalidMessage","onInvalid","dateWithNewTime","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds","_field$validation4","FormDateTime","exports","observer"],"sources":["../../../../src/components/datetime-input/form-date-time.tsx"],"sourcesContent":["import React, { useRef, useMemo, useState, useEffect } from 'react';\nimport {\n Cell,\n DatePicker,\n FormField,\n Layout,\n TimeInput,\n} from '@wix/design-system';\nimport { observer } from 'mobx-react-lite';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport { useController } from '@wix/bex-core/form';\n\nimport { BaseInputProps, BaseInputRef } from '../../types/base-input';\nimport { useTranslations } from '../../hooks';\nimport { isEmpty } from '../../validations/string';\nimport { useFieldValueReplacement } from '../date-input/use-field-value-replacement';\nimport {\n calendarPopoverDefaults,\n dropdownPopoverDefaults,\n} from '../popover-defaults';\n\nexport interface FormDateTimeProps extends BaseInputProps<string | null> {}\n\nconst _FormDateTime = (props: FormDateTimeProps) => {\n const { field, dataHook, inputRef, formControl, data } = props;\n const { translate: t } = useWixPatternsContainer();\n const { t: tFields } = useTranslations();\n const inputErrors = useRef({ date: '', time: '' });\n\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n rules: {\n validate: (v) => {\n const inputError = inputErrors.current.date || inputErrors.current.time;\n if (inputError) {\n return inputError;\n }\n if (field?.validation?.required && isEmpty(v)) {\n return t('cairo.fieldValidation.requiredField');\n }\n return true;\n },\n },\n });\n\n const date = useMemo(() => {\n if (!controller.field.value) {\n return undefined;\n }\n const d = new Date(controller.field.value);\n return isNaN(d.getTime()) ? undefined : d;\n }, [controller.field.value]);\n\n const [dateStatusMessage, setDateStatusMessage] = useState('');\n const [timeStatusMessage, setTimeStatusMessage] = useState('');\n const formError =\n !dateStatusMessage && !timeStatusMessage\n ? controller.fieldState.error\n : undefined;\n\n const setDateError = (error: string) => {\n inputErrors.current.date = error;\n setDateStatusMessage(error);\n };\n const setTimeError = (error: string) => {\n inputErrors.current.time = error;\n setTimeStatusMessage(error);\n };\n\n const ref = useRef<BaseInputRef>({});\n const dateRef = useRef<BaseInputRef>({});\n const timeRef = useRef<BaseInputRef>({});\n const [dateValue, setDateValue] = useState<number | string | undefined>(\n date?.getDate(),\n );\n const [timeValue, setTimeValue] = useState<number | string | undefined>(\n date?.getTime(),\n );\n const revision = useFieldValueReplacement(formControl, field.id, (value) => {\n setDateError('');\n setTimeError('');\n ref.current.invalid = false;\n dateRef.current.invalid = false;\n timeRef.current.invalid = false;\n const nextDate = typeof value === 'string' ? new Date(value) : undefined;\n setDateValue(nextDate?.getDate());\n setTimeValue(nextDate?.getTime());\n });\n\n useEffect(() => {\n ref.current.focus = () => {\n if (dateRef.current.invalid) {\n return dateRef.current.focus?.();\n }\n\n return timeRef.current.focus?.();\n };\n\n inputRef?.(ref.current);\n }, [inputRef]);\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n dataHook={dataHook}\n >\n <Layout gap=\"12px\">\n <Cell span={6}>\n <DatePicker\n key={revision}\n ref={(internalRef) => {\n const inputEl =\n // TODO: PR to WSR needed to expose as public API\n // @ts-expect-error internal API\n internalRef?.state?.inputRef as HTMLElement | undefined;\n dateRef.current.focus = () => inputEl?.focus?.();\n // Hand the date input to react-hook-form so shouldFocusError can\n // scroll to and focus this field when it blocks save (the\n // composite date/time inputs have no single ref to pass directly).\n controller.field.ref(inputEl ?? null);\n }}\n width=\"100%\"\n placeholderText={tFields('CMS.formDate.placeholder')}\n value={date}\n onChange={() => {}}\n // onChange is triggered only when you have valid, non-empty value.\n // and onValidate is triggered on every change so we use onValidate\n onValidate={({ validationType, value: newValue, format }) => {\n let value = controller.field.value;\n if (validationType === 'valid') {\n const dateWithNewDate = date\n ? new Date(date)\n : new Date(newValue);\n const _value = new Date(newValue);\n dateWithNewDate.setFullYear(_value.getFullYear());\n dateWithNewDate.setMonth(_value.getMonth());\n dateWithNewDate.setDate(_value.getDate());\n value = dateWithNewDate.toISOString();\n setDateValue(new Date(newValue).getDate());\n setDateError('');\n dateRef.current.invalid = false;\n } else if (validationType === 'formatError' && newValue === '') {\n if (field.validation?.required) {\n setDateError(t('cairo.fieldValidation.requiredField'));\n dateRef.current.invalid = true;\n } else {\n setDateError('');\n dateRef.current.invalid = false;\n }\n setDateValue(newValue);\n if (!timeValue) {\n value = null;\n }\n } else {\n setDateError(\n t('cairo.customFields.fieldType.date.invalid.value', {\n dateFormat: format ?? '',\n }),\n );\n dateRef.current.invalid = true;\n }\n\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n controller.field.onChange(value);\n }}\n status={dateStatusMessage || formError ? 'error' : undefined}\n statusMessage={dateStatusMessage || formError?.message}\n dataHook={`datetime-date-${field.id}`}\n popoverProps={calendarPopoverDefaults}\n />\n </Cell>\n <Cell span={6}>\n <TimeInput\n key={revision}\n ref={(internalRef) => {\n timeRef.current.focus = () => internalRef?.focus();\n }}\n dataHook={`datetime-time-${field.id}`}\n popoverProps={dropdownPopoverDefaults}\n placeholder={tFields('CMS.formTime.placeholder')}\n invalidMessage={tFields('CMS.formTime.invalidMessage')}\n value={date ?? null}\n status={timeStatusMessage || formError ? 'error' : undefined}\n statusMessage={timeStatusMessage || formError?.message}\n onInvalid={() => {\n timeRef.current.invalid = true;\n setTimeError(\n t('cairo.customFields.fieldType.dateAndTime.invalid.value'),\n );\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n controller.field.onChange(controller.field.value);\n }}\n onChange={({ date: newValue }) => {\n let value = controller.field.value;\n timeRef.current.invalid = false;\n ref.current.invalid =\n dateRef.current.invalid || timeRef.current.invalid;\n\n if (newValue) {\n const dateWithNewTime = date ? new Date(date) : newValue;\n dateWithNewTime.setHours(newValue.getHours());\n dateWithNewTime.setMinutes(newValue.getMinutes());\n dateWithNewTime.setSeconds(newValue.getSeconds());\n dateWithNewTime.setMilliseconds(newValue.getMilliseconds());\n value = dateWithNewTime.toISOString();\n setTimeError('');\n if (!dateRef.current.invalid) {\n setDateError('');\n }\n } else {\n if (!newValue) {\n setTimeValue('');\n if (field.validation?.required) {\n setTimeError(t('cairo.fieldValidation.requiredField'));\n timeRef.current.invalid = true;\n } else {\n setTimeError('');\n timeRef.current.invalid = false;\n }\n if (!ref.current.invalid) {\n if (!dateValue) {\n value = null;\n }\n }\n }\n }\n controller.field.onChange(value);\n }}\n />\n </Cell>\n </Layout>\n </FormField>\n );\n};\n\nexport const FormDateTime = observer(_FormDateTime);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,15 +5,15 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
|
|
|
5
5
|
var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
|
|
6
6
|
// @ts-nocheck
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "deletedialog2793524866";
|
|
9
9
|
var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
|
|
10
10
|
var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
|
|
11
11
|
var style = exports.style = _style_;
|
|
12
12
|
var st = exports.st = _style_;
|
|
13
13
|
var namespace = exports.namespace = _namespace_;
|
|
14
14
|
var classes = exports.classes = {
|
|
15
|
-
"root": "
|
|
16
|
-
"layout": "
|
|
15
|
+
"root": "deletedialog2793524866__root",
|
|
16
|
+
"layout": "deletedialog2793524866__layout"
|
|
17
17
|
};
|
|
18
18
|
var keyframes = exports.keyframes = {};
|
|
19
19
|
var layers = exports.layers = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/delete-dialog/delete-dialog.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"
|
|
1
|
+
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/delete-dialog/delete-dialog.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"deletedialog2793524866\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"deletedialog2793524866__root\",\"layout\":\"deletedialog2793524866__layout\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,wBAAwB;AAC1C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,8BAA8B;EAAC,QAAQ,EAAC;AAAgC,CAAC;AAC/F,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
|