@heartlandone/vega 2.35.0-RTE-preview → 2.36.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/{app-globals-fb3693cc.js → app-globals-13d4a0be.js} +3 -4
- package/dist/cjs/{list-block-91116257.js → content-state-2336e368.js} +130 -4
- package/dist/cjs/{element-appender-slimmer-700b7004.js → element-appender-slimmer-77f9c4a0.js} +11 -3
- package/dist/cjs/{form-field-controller-slimmer-7ef32059.js → form-field-controller-slimmer-8d4d2723.js} +56 -25
- package/dist/cjs/{image-annotation-action-d3e1699c.js → image-annotation-action-4135ca69.js} +12 -12
- package/dist/cjs/index.cjs.js +5 -6
- package/dist/cjs/loader.cjs.js +5 -6
- package/dist/cjs/{node-annotation.abstract-e5d3a859.js → node-annotation.abstract-c3c07af5.js} +1 -1
- package/dist/cjs/{sub-state-notify-slimmer-c2e08e06.js → sub-state-notify-slimmer-994eb848.js} +1 -1
- package/dist/cjs/{sub-state-observer-slimmer-b97e46b5.js → sub-state-observer-slimmer-080a4bea.js} +1 -1
- package/dist/cjs/vega-button-group_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-calendar_3.cjs.entry.js +3 -3
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-color-picker.cjs.entry.js +2 -2
- package/dist/cjs/vega-combo-box.cjs.entry.js +2 -2
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +532 -115
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +68 -19
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-file-uploader.cjs.entry.js +120 -40
- package/dist/cjs/vega-font.cjs.entry.js +8 -1
- package/dist/cjs/vega-form.cjs.entry.js +11 -6
- package/dist/cjs/vega-image-uploader.cjs.entry.js +2 -2
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +2 -2
- package/dist/cjs/vega-input-numeric.cjs.entry.js +3 -3
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +51 -5
- package/dist/cjs/vega-input-range.cjs.entry.js +2 -2
- package/dist/cjs/vega-input-select.cjs.entry.js +2 -2
- package/dist/cjs/vega-input.cjs.entry.js +3 -3
- package/dist/cjs/{vega-internal-event-id-85b68849.js → vega-internal-event-id-b12071ea.js} +2 -0
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +3 -3
- package/dist/cjs/vega-pagination.cjs.entry.js +3 -3
- package/dist/cjs/vega-popover_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-radio_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +134 -110
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +182 -118
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +3 -3
- package/dist/cjs/vega-signature-capture.cjs.entry.js +2 -2
- package/dist/cjs/vega-stepper.cjs.entry.js +2 -2
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +35 -24
- package/dist/cjs/vega-table_8.cjs.entry.js +3 -3
- package/dist/cjs/vega-textarea.cjs.entry.js +2 -2
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +2 -2
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +1 -1
- package/dist/cjs/vega.cjs.js +5 -6
- package/dist/collection/components/vega-date-picker/assets/icons.js +3 -0
- package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-controller.js +23 -1
- package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer.js +316 -0
- package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.js +60 -2
- package/dist/collection/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.js +16 -4
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +24 -0
- package/dist/collection/components/vega-date-picker/vega-date-picker.js +59 -0
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +56 -14
- package/dist/collection/components/vega-dropdown/vega-dropdown.js +37 -0
- package/dist/collection/components/vega-file-uploader/slimmers/controllers/vega-file-uploader-file-limit-controller.js +35 -0
- package/dist/collection/components/vega-file-uploader/slimmers/renderers/vega-file-uploader-container-renderer.js +36 -7
- package/dist/collection/components/vega-file-uploader/vega-file-uploader.js +41 -0
- package/dist/collection/components/vega-font/slimmers/renderers/vega-font-renderer.js +8 -1
- package/dist/collection/components/vega-form/vega-form.js +13 -4
- package/dist/collection/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.js +38 -3
- package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +35 -0
- package/dist/collection/components/vega-input-select/vega-input-select.js +1 -1
- package/dist/collection/components/vega-pagination/internal/vega-pagination-page-size-selector.js +2 -2
- package/dist/collection/components/vega-pagination/vega-pagination.js +24 -1
- package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +33 -19
- package/dist/collection/components/vega-rich-text-content/vega-rich-text-content.js +11 -4
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-renderer.abstract.js +8 -10
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.js +104 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/image-block-renderer.js +9 -7
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.js +9 -7
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-item-block-renderer.js +10 -12
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.js +9 -104
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/image-node-renderer.js +14 -13
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/node-renderer.abstract.js +8 -10
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js +9 -11
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy-processor.js +2 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/ul-not-li-child-to-rte-list-item-block.js +49 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js +15 -1
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +4 -2
- package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-page-index-controller.js +22 -22
- package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-selected-target-controller.js +9 -1
- package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-direction-button-renderer.js +4 -1
- package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +1 -0
- package/dist/collection/helpers/slimmers/field-error-controller-silmmer.js +8 -2
- package/dist/collection/helpers/slimmers/field-error-ui-controller-slimmer.js +10 -16
- package/dist/collection/helpers/slimmers/form-field-message-translator.js +17 -0
- package/dist/collection/helpers/slimmers/form-field-valid-invoke-slimmer.js +6 -3
- package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +1 -1
- package/dist/collection/helpers/ui/element-appender.js +10 -2
- package/dist/collection/helpers/validator/form-field-controller.js +11 -3
- package/dist/collection/helpers/validator/rules/rich-text-editor-required-rule.js +4 -3
- package/dist/collection/helpers/validator/test/rules/rich-text-editor-required-rule.test.js +43 -0
- package/dist/collection/helpers/validator/validation-rule-handler/form-field-validation-rule-handler-chain.js +7 -2
- package/dist/esm/{app-globals-5b154b6d.js → app-globals-9ded4406.js} +2 -3
- package/dist/esm/{list-block-ba82c846.js → content-state-42a06d75.js} +130 -3
- package/dist/esm/{element-appender-slimmer-d71e3109.js → element-appender-slimmer-f3eceb79.js} +11 -3
- package/dist/esm/{form-field-controller-slimmer-af969d03.js → form-field-controller-slimmer-6ef5641b.js} +57 -26
- package/dist/esm/{image-annotation-action-a8e00f28.js → image-annotation-action-8a12e0bd.js} +2 -2
- package/dist/esm/index.js +3 -4
- package/dist/esm/loader.js +5 -6
- package/dist/esm/{node-annotation.abstract-d7d52bce.js → node-annotation.abstract-af11b11b.js} +1 -1
- package/dist/esm/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- package/dist/esm/{sub-state-notify-slimmer-48bad548.js → sub-state-notify-slimmer-7d5a295a.js} +1 -1
- package/dist/esm/{sub-state-observer-slimmer-403cc4e7.js → sub-state-observer-slimmer-901c7953.js} +1 -1
- package/dist/esm/vega-button-group_2.entry.js +3 -3
- package/dist/esm/vega-calendar_3.entry.js +3 -3
- package/dist/esm/vega-checkbox_2.entry.js +2 -2
- package/dist/esm/vega-color-picker.entry.js +2 -2
- package/dist/esm/vega-combo-box.entry.js +2 -2
- package/dist/esm/vega-date-picker_2.entry.js +533 -116
- package/dist/esm/vega-dropdown_5.entry.js +68 -19
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-file-uploader.entry.js +120 -40
- package/dist/esm/vega-font.entry.js +8 -1
- package/dist/esm/vega-form.entry.js +11 -6
- package/dist/esm/vega-image-uploader.entry.js +2 -2
- package/dist/esm/vega-input-credit-card.entry.js +2 -2
- package/dist/esm/vega-input-numeric.entry.js +3 -3
- package/dist/esm/vega-input-phone-number.entry.js +51 -5
- package/dist/esm/vega-input-range.entry.js +2 -2
- package/dist/esm/vega-input-select.entry.js +2 -2
- package/dist/esm/vega-input.entry.js +3 -3
- package/dist/esm/{vega-internal-event-id-4af5c6e9.js → vega-internal-event-id-458939b6.js} +2 -1
- package/dist/esm/vega-left-nav_5.entry.js +3 -3
- package/dist/esm/vega-pagination.entry.js +3 -3
- package/dist/esm/vega-popover_2.entry.js +2 -2
- package/dist/esm/vega-radio_2.entry.js +2 -2
- package/dist/esm/vega-rich-text-content.entry.js +132 -108
- package/dist/esm/vega-rich-text-editor_4.entry.js +76 -12
- package/dist/esm/vega-selection-chip_2.entry.js +4 -4
- package/dist/esm/vega-selection-tile_2.entry.js +4 -4
- package/dist/esm/vega-sidenav_3.entry.js +3 -3
- package/dist/esm/vega-signature-capture.entry.js +2 -2
- package/dist/esm/vega-stepper.entry.js +2 -2
- package/dist/esm/vega-tab-group_2.entry.js +35 -24
- package/dist/esm/vega-table_8.entry.js +3 -3
- package/dist/esm/vega-textarea.entry.js +2 -2
- package/dist/esm/vega-time-picker_2.entry.js +3 -3
- package/dist/esm/vega-toggle-switch.entry.js +2 -2
- package/dist/esm/vega-tooltip_2.entry.js +1 -1
- package/dist/esm/vega.js +5 -6
- package/dist/types/components/vega-date-picker/assets/icons.d.ts +1 -1
- package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-controller.d.ts +4 -18
- package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-month-year-dropdown-renderer.d.ts +85 -0
- package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +9 -0
- package/dist/types/components/vega-date-picker/slimmers/renderers/vega-date-picker-renderer.d.ts +2 -0
- package/dist/types/components/vega-date-picker/vega-date-picker.d.ts +21 -2
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +20 -0
- package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +10 -0
- package/dist/types/components/vega-file-uploader/slimmers/controllers/vega-file-uploader-file-limit-controller.d.ts +18 -0
- package/dist/types/components/vega-file-uploader/slimmers/renderers/vega-file-uploader-container-renderer.d.ts +15 -0
- package/dist/types/components/vega-file-uploader/vega-file-uploader.d.ts +12 -0
- package/dist/types/components/vega-form/types.d.ts +1 -0
- package/dist/types/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.d.ts +19 -0
- package/dist/types/components/vega-input-phone-number/vega-input-phone-number.d.ts +9 -0
- package/dist/types/components/vega-input-select/types.d.ts +1 -0
- package/dist/types/components/vega-pagination/internal/vega-pagination-page-size-selector.d.ts +2 -0
- package/dist/types/components/vega-pagination/types.d.ts +6 -0
- package/dist/types/components/vega-pagination/vega-pagination.d.ts +9 -1
- package/dist/types/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.d.ts +4 -0
- package/dist/types/components/vega-rich-text-content/vega-rich-text-content.d.ts +4 -1
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-renderer.abstract.d.ts +13 -7
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.d.ts +14 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/image-block-renderer.d.ts +6 -4
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.d.ts +6 -4
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/list-item-block-renderer.d.ts +5 -5
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.d.ts +7 -11
- package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/image-node-renderer.d.ts +4 -4
- package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/node-renderer.abstract.d.ts +6 -7
- package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.d.ts +5 -6
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/ul-not-li-child-to-rte-list-item-block.d.ts +31 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/value-controller.d.ts +4 -0
- package/dist/types/components/vega-rich-text-editor/vega-rich-text-editor.d.ts +3 -1
- package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-page-index-controller.d.ts +6 -6
- package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/controllers/vega-tab-group-selected-target-controller.d.ts +1 -0
- package/dist/types/components.d.ts +70 -5
- package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +1 -0
- package/dist/types/helpers/slimmers/field-error-controller-silmmer.d.ts +7 -2
- package/dist/types/helpers/slimmers/field-error-ui-controller-slimmer.d.ts +2 -7
- package/dist/types/helpers/slimmers/form-field-message-translator.d.ts +12 -0
- package/dist/types/helpers/ui/element-appender.d.ts +4 -0
- package/dist/types/helpers/validator/form-field-controller.d.ts +5 -2
- package/dist/types/helpers/validator/rules/rich-text-editor-required-rule.d.ts +1 -1
- package/dist/types/helpers/validator/validation-rule-handler/form-field-validation-rule-handler-chain.d.ts +2 -2
- package/dist/types/helpers/validator/validator.d.ts +1 -1
- package/dist/types/types/components.type.d.ts +2 -1
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/p-032ed643.entry.js +13 -0
- package/dist/vega/{p-a0e90d5d.entry.js → p-13ce8d87.entry.js} +1 -1
- package/dist/vega/{p-f84fd31c.js → p-26af2a8b.js} +1 -1
- package/dist/vega/{p-dcdac4d0.entry.js → p-2ff936da.entry.js} +1 -1
- package/dist/vega/p-3126edd6.entry.js +1 -0
- package/dist/vega/{p-45c88f7f.entry.js → p-317c72e4.entry.js} +1 -1
- package/dist/vega/{p-4f0b56fc.js → p-349dd552.js} +1 -1
- package/dist/vega/p-36ad5ee1.entry.js +1 -0
- package/dist/vega/p-42465abc.entry.js +1 -0
- package/dist/vega/{p-6d43b123.entry.js → p-43b6aced.entry.js} +1 -1
- package/dist/vega/{p-fe388812.entry.js → p-441c9c90.entry.js} +1 -1
- package/dist/vega/{p-926596cc.js → p-446c691b.js} +1 -1
- package/dist/vega/{p-465fa96d.entry.js → p-4d307520.entry.js} +1 -1
- package/dist/vega/p-524ff1a3.entry.js +1 -0
- package/dist/vega/p-558450ba.entry.js +1 -0
- package/dist/vega/{p-c02f650e.entry.js → p-589530e4.entry.js} +1 -1
- package/dist/vega/{p-71eeb279.entry.js → p-5ae1a322.entry.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/p-61cffe6a.entry.js +1 -0
- package/dist/vega/{p-84113217.entry.js → p-6bf28253.entry.js} +1 -1
- package/dist/vega/{p-0bd9b1d9.entry.js → p-6df81ec2.entry.js} +1 -1
- package/dist/vega/p-75bca1c6.js +1 -0
- package/dist/vega/{p-b64981de.entry.js → p-7b72dc7a.entry.js} +1 -1
- package/dist/vega/{p-b9a09a76.js → p-83d87df5.js} +1 -1
- package/dist/vega/{p-b450bf46.entry.js → p-8a77ff64.entry.js} +1 -1
- package/dist/vega/{p-6661a462.entry.js → p-906991ec.entry.js} +1 -1
- package/dist/vega/{p-f6b89936.entry.js → p-96389073.entry.js} +1 -1
- package/dist/vega/{p-f31bb1fd.js → p-983c7d9b.js} +1 -1
- package/dist/vega/{p-91aa058f.entry.js → p-9ec7d6c4.entry.js} +1 -1
- package/dist/vega/{p-8067bd31.entry.js → p-a213b305.entry.js} +1 -1
- package/dist/vega/{p-e923637d.entry.js → p-a956561e.entry.js} +1 -1
- package/dist/vega/{p-625771d7.entry.js → p-b0c6cc78.entry.js} +1 -1
- package/dist/vega/p-b1524c6c.js +1 -0
- package/dist/vega/{p-1dd9f841.entry.js → p-bd2cdf10.entry.js} +1 -1
- package/dist/vega/p-c06e55d6.js +1 -0
- package/dist/vega/{p-19556584.entry.js → p-cea7506a.entry.js} +1 -1
- package/dist/vega/{p-0da2de05.entry.js → p-cff45d92.entry.js} +1 -1
- package/dist/vega/p-d3d4bf51.entry.js +1 -0
- package/dist/vega/{p-3a6c9b9d.entry.js → p-df4142dd.entry.js} +1 -1
- package/dist/vega/p-df9dbe2d.entry.js +1 -0
- package/dist/vega/p-ebb30774.entry.js +1 -0
- package/dist/vega/{p-e04d4ba3.entry.js → p-eed64b78.entry.js} +1 -1
- package/dist/vega/{p-1b3e0a9f.entry.js → p-f7fdf737.entry.js} +1 -1
- package/dist/vega/p-fe9644a0.js +1 -0
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/content-state-3e4467a3.js +0 -134
- package/dist/esm/content-state-f39c4bbf.js +0 -132
- package/dist/vega/p-0283712e.entry.js +0 -13
- package/dist/vega/p-0ee10fd7.js +0 -1
- package/dist/vega/p-2f32a9ba.js +0 -1
- package/dist/vega/p-36db2554.entry.js +0 -1
- package/dist/vega/p-42df8a42.js +0 -1
- package/dist/vega/p-6d23c08b.entry.js +0 -1
- package/dist/vega/p-843b13e6.entry.js +0 -1
- package/dist/vega/p-85365f8b.js +0 -1
- package/dist/vega/p-8be7b62c.entry.js +0 -1
- package/dist/vega/p-96f0ef53.entry.js +0 -1
- package/dist/vega/p-c88acd87.entry.js +0 -1
- package/dist/vega/p-dbec03ed.entry.js +0 -1
- package/dist/vega/p-de13b747.entry.js +0 -1
- package/dist/vega/p-f357cf46.js +0 -1
- package/dist/vega/p-ff50c204.entry.js +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { generateUUID } from '../../../../../../utils/misc';
|
|
2
|
+
import { RTEListItemBlock } from '../../../../dto/blocks/list-item-block';
|
|
3
|
+
import { BlockToRTEBlockStrategyAbstract } from './block-to-rte-block-strategy.abstract';
|
|
4
|
+
/** Transform child element of UL element which are not LI element to list item block DTO */
|
|
5
|
+
export class ULNotLiChildToRTEListItemBlockStrategy extends BlockToRTEBlockStrategyAbstract {
|
|
6
|
+
/**
|
|
7
|
+
* Can be handle.
|
|
8
|
+
*
|
|
9
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
10
|
+
* @param {number} currentIndex - Current element index.
|
|
11
|
+
* @returns {number} - can be handled element count.
|
|
12
|
+
*/
|
|
13
|
+
canHandle(elementsArray, currentIndex) {
|
|
14
|
+
const element = elementsArray[currentIndex];
|
|
15
|
+
const parent = element.parentElement;
|
|
16
|
+
return element.nodeName !== 'LI' && parent && ['UL', 'OL'].includes(parent.nodeName) ? 1 : 0;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Parse to a list item block.
|
|
20
|
+
*
|
|
21
|
+
* @param {HTMLElement[]} elementsArray - Current elements.
|
|
22
|
+
* @returns {Nullable<RTEContentBlock>} - List item block.
|
|
23
|
+
*/
|
|
24
|
+
handle(elementsArray) {
|
|
25
|
+
const nodes = this.generateChildNodes(elementsArray);
|
|
26
|
+
if (nodes.length === 0)
|
|
27
|
+
return null;
|
|
28
|
+
return RTEListItemBlock.from({
|
|
29
|
+
id: generateUUID(),
|
|
30
|
+
type: 'list-item',
|
|
31
|
+
nodes: nodes,
|
|
32
|
+
annotations: {},
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/* istanbul ignore next */
|
|
36
|
+
/**
|
|
37
|
+
* Append child blocks.
|
|
38
|
+
*/
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
40
|
+
appendChildBlocks() { }
|
|
41
|
+
/**
|
|
42
|
+
* Should continue process to child elements.
|
|
43
|
+
*
|
|
44
|
+
* @returns {boolean} - boolean.
|
|
45
|
+
*/
|
|
46
|
+
shouldProceedToElementChildren() {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/value-controller.js
CHANGED
|
@@ -34,11 +34,22 @@ export class ValueController extends VegaSlimmer {
|
|
|
34
34
|
disconnectedCallback() {
|
|
35
35
|
ChangeManager.unregister(domNodeSubjectFactory.getSubject(this.host, VegaInternalRichTextEditorFlushChanges), this.flushChangeObserver);
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Component lifecycle - [componentWillLoad]{@link VegaRichTextEditor.componentWillLoad}
|
|
39
|
+
*/
|
|
40
|
+
componentWillLoad() {
|
|
41
|
+
if (this.value && !(this.value instanceof VegaRTEContent)) {
|
|
42
|
+
this.value = VegaRTEContent.fromJSON(this.value);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
37
45
|
/**
|
|
38
46
|
* Watches the value of the editor and updates the internal value.
|
|
39
47
|
*/
|
|
40
48
|
watchValueUpdate() {
|
|
41
|
-
if (
|
|
49
|
+
if (this.value && !(this.value instanceof VegaRTEContent)) {
|
|
50
|
+
this.value = VegaRTEContent.fromJSON(this.value);
|
|
51
|
+
}
|
|
52
|
+
else if (!this.value || this.value.blocks.length === 0) {
|
|
42
53
|
this.value = VegaRTEContent.createEmptyContent();
|
|
43
54
|
}
|
|
44
55
|
else {
|
|
@@ -86,6 +97,9 @@ __decorate([
|
|
|
86
97
|
__decorate([
|
|
87
98
|
MapToComponentMethod('disconnectedCallback')
|
|
88
99
|
], ValueController.prototype, "disconnectedCallback", null);
|
|
100
|
+
__decorate([
|
|
101
|
+
MapToComponentMethod('componentWillLoad')
|
|
102
|
+
], ValueController.prototype, "componentWillLoad", null);
|
|
89
103
|
__decorate([
|
|
90
104
|
MapToComponentMethod('watchValueUpdate')
|
|
91
105
|
], ValueController.prototype, "watchValueUpdate", null);
|
|
@@ -137,7 +137,9 @@ export class VegaRichTextEditor {
|
|
|
137
137
|
*/
|
|
138
138
|
this.rows = 4;
|
|
139
139
|
/**
|
|
140
|
-
* Specifies the value of the rich text editor
|
|
140
|
+
* Specifies the value of the rich text editor, which can be either VegaRTEContent or VegaRTEContentBlock.
|
|
141
|
+
* It is recommended to use the VegaRTEContent type.
|
|
142
|
+
* Only in exceptional cases should the original data in the VegaRTEContentBlock type be used.
|
|
141
143
|
*
|
|
142
144
|
* @vegaVersion 2.34.0
|
|
143
145
|
*/
|
|
@@ -355,7 +357,7 @@ export class VegaRichTextEditor {
|
|
|
355
357
|
"name": "vegaVersion",
|
|
356
358
|
"text": "2.34.0"
|
|
357
359
|
}],
|
|
358
|
-
"text": "Specifies the value of the rich text editor"
|
|
360
|
+
"text": "Specifies the value of the rich text editor, which can be either VegaRTEContent or VegaRTEContentBlock.\nIt is recommended to use the VegaRTEContent type.\nOnly in exceptional cases should the original data in the VegaRTEContentBlock type be used."
|
|
359
361
|
},
|
|
360
362
|
"defaultValue": "VegaRTEContent.createEmptyContent()"
|
|
361
363
|
},
|
|
@@ -24,6 +24,28 @@ export class VegaTabGroupPageIndexController extends VegaSlimmer {
|
|
|
24
24
|
handleSelectedDataTargetChange() {
|
|
25
25
|
this.setCurrentPageIndexBySelectedTab(this.selectedTabDataTarget);
|
|
26
26
|
}
|
|
27
|
+
/*
|
|
28
|
+
* The below method is e2e-test covered in
|
|
29
|
+
* @see{module:vega-tab-group-with-click-tab-in-dropdown}
|
|
30
|
+
*/
|
|
31
|
+
/* istanbul ignore next */
|
|
32
|
+
/**
|
|
33
|
+
* Update the page index after the tab click
|
|
34
|
+
*
|
|
35
|
+
* @param {string} selectedTabDataTarget the tab item property dataTarget
|
|
36
|
+
*/
|
|
37
|
+
setCurrentPageIndexBySelectedTab(selectedTabDataTarget) {
|
|
38
|
+
let pageIndex = -1;
|
|
39
|
+
this.tabPages.forEach((tabPage, index) => {
|
|
40
|
+
const tabIndex = tabPage.findIndex((tab) => tab.dataTarget === selectedTabDataTarget);
|
|
41
|
+
if (tabIndex !== -1) {
|
|
42
|
+
pageIndex = index;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
if (pageIndex >= 0) {
|
|
46
|
+
this.currentPageIndex = pageIndex;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
27
49
|
/* istanbul ignore next */
|
|
28
50
|
/**
|
|
29
51
|
* The `setPageIndex` function sets the current page index to the specified value.
|
|
@@ -47,28 +69,6 @@ export class VegaTabGroupPageIndexController extends VegaSlimmer {
|
|
|
47
69
|
this.currentPageIndex = this.tabPages.length - 1;
|
|
48
70
|
}
|
|
49
71
|
}
|
|
50
|
-
/*
|
|
51
|
-
* The below method is e2e-test covered in
|
|
52
|
-
* @see{module:vega-tab-group-with-click-tab-in-dropdown}
|
|
53
|
-
*/
|
|
54
|
-
/* istanbul ignore next */
|
|
55
|
-
/**
|
|
56
|
-
* Update the page index after the tab click
|
|
57
|
-
*
|
|
58
|
-
* @param {string} selectedTabDataTarget the tab item property dataTarget
|
|
59
|
-
*/
|
|
60
|
-
setCurrentPageIndexBySelectedTab(selectedTabDataTarget) {
|
|
61
|
-
let pageIndex = -1;
|
|
62
|
-
this.tabPages.forEach((tabPage, index) => {
|
|
63
|
-
const tabIndex = tabPage.findIndex((tab) => tab.dataTarget === selectedTabDataTarget);
|
|
64
|
-
if (tabIndex !== -1) {
|
|
65
|
-
pageIndex = index;
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
if (pageIndex >= 0) {
|
|
69
|
-
this.currentPageIndex = pageIndex;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
72
|
}
|
|
73
73
|
__decorate([
|
|
74
74
|
MapToComponentField()
|
|
@@ -23,7 +23,12 @@ export class VegaTabGroupSelectedTargetController extends VegaSlimmer {
|
|
|
23
23
|
handleTabItemClick(dataTarget) {
|
|
24
24
|
const clickEvent = this.clickEventEmitter.emit(dataTarget);
|
|
25
25
|
if (clickEvent && !clickEvent.defaultPrevented) {
|
|
26
|
-
this.
|
|
26
|
+
if (dataTarget === this.selectedTabDataTarget) {
|
|
27
|
+
this.vegaTabGroupPageIndexController.setCurrentPageIndexBySelectedTab(dataTarget);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
this.setSelectedDataTarget(dataTarget);
|
|
31
|
+
}
|
|
27
32
|
}
|
|
28
33
|
}
|
|
29
34
|
}
|
|
@@ -33,3 +38,6 @@ __decorate([
|
|
|
33
38
|
__decorate([
|
|
34
39
|
MapToComponentField({ writable: true })
|
|
35
40
|
], VegaTabGroupSelectedTargetController.prototype, "selectedTabDataTarget", void 0);
|
|
41
|
+
__decorate([
|
|
42
|
+
MapToComponentField()
|
|
43
|
+
], VegaTabGroupSelectedTargetController.prototype, "vegaTabGroupPageIndexController", void 0);
|
|
@@ -55,6 +55,9 @@ export class VegaTabGroupSwitchPageButtonRenderer extends VegaSlimmer {
|
|
|
55
55
|
? this.currentPageIndex === 0
|
|
56
56
|
: this.currentPageIndex + 1 === this.tabPages.length || this.tabPages.length <= 1;
|
|
57
57
|
const icon = direction === 'left' ? 'chevron-backward-rounded' : 'chevron-forward-rounded';
|
|
58
|
+
const selectedItemKey = source.find((item) => item.key === this.selectedTabDataTarget)
|
|
59
|
+
? this.selectedTabDataTarget
|
|
60
|
+
: '';
|
|
58
61
|
return (h("div", { class: {
|
|
59
62
|
'tab-left-button': direction === 'left',
|
|
60
63
|
'tab-right-button': direction === 'right',
|
|
@@ -62,7 +65,7 @@ export class VegaTabGroupSwitchPageButtonRenderer extends VegaSlimmer {
|
|
|
62
65
|
},
|
|
63
66
|
/* eslint-disable-next-line react/jsx-no-bind */
|
|
64
67
|
onClick: () => this.onDirectionButtonClick(direction), "aria-label": "No label defined", role: 'button', tabIndex: 0, onKeyDown: createEnterKeyHandlerToTriggerClick() },
|
|
65
|
-
h("vega-dropdown", { source: source, translocation: translocation, selectType: "single", selectedSourceKey:
|
|
68
|
+
h("vega-dropdown", { source: source, translocation: translocation, selectType: "single", selectedSourceKey: selectedItemKey, "position-relative-to": this.positionRelativeTo, ref: (ref) => {
|
|
66
69
|
this.dropdownRef = ref;
|
|
67
70
|
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaDropdownClick, (payload) => {
|
|
68
71
|
this.vegaTabGroupSelectedTargetController.handleTabItemClick(payload.detail);
|
|
@@ -33,6 +33,7 @@ export const VegaDropdownRenderItemInternalOverridden = new VegaInternalEventID(
|
|
|
33
33
|
export const VegaDropdownSearchInternalOverridden = new VegaInternalEventID('VegaDropdownSearchInternalOverridden');
|
|
34
34
|
export const VegaInternalSidenavLinkClick = new VegaInternalEventID('sidenavLinkClick');
|
|
35
35
|
export const VegaInternalLeftNavGroupExpand = new VegaInternalEventID('leftNavGroupExpand');
|
|
36
|
+
export const VegaInternalDropdownUpdateTarget = new VegaInternalEventID('dropdownUpdateTarget');
|
|
36
37
|
export const VegaInternalRichTextEditorFlushChanges = new VegaInternalEventID('richTextEditorFlushChanges');
|
|
37
38
|
export const VegaInternalRichTextEditorSelectionRangeChange = new VegaInternalEventID('richTextEditorSelectionRangeChange');
|
|
38
39
|
export const VegaInternalRichTextImageClick = new VegaInternalEventID('richTextImageClick');
|
|
@@ -9,13 +9,19 @@ import { Observer } from '../change-manager/observer/observer';
|
|
|
9
9
|
import changeManager from '../change-manager/change-manager';
|
|
10
10
|
import { FIELD_ERROR_MESSAGE_CHANGE } from '../change-manager/subject/static-subject/static-subject-title';
|
|
11
11
|
import { FieldErrorUIControllerSlimmer } from './field-error-ui-controller-slimmer';
|
|
12
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* The current class is used to manually control the form element error message.
|
|
14
|
+
* The component `vega-field-error` is used to control the error messages for form fields. to implement the error message display, we needs to know the form field error message container, field element, and other necessary options,
|
|
15
|
+
* the `form-field-controller-slimmer` has the required options and will inject to the all form fields, so we create current slimmer class and inject to the `form-field-controller-slimmer` to get all options.
|
|
16
|
+
* When the property `message` of the vega-field-error component changed, the target form field will receive the special subject and update the error message.
|
|
17
|
+
*/
|
|
13
18
|
export class FieldErrorControllerSlimmer extends VegaSlimmer {
|
|
14
19
|
constructor() {
|
|
15
20
|
super(...arguments);
|
|
21
|
+
// The host element field error UI controller.
|
|
16
22
|
this.fieldErrorUIController = new FieldErrorUIControllerSlimmer();
|
|
17
23
|
/**
|
|
18
|
-
*
|
|
24
|
+
* This method called mean that the current form field element nest in a vega-field-error component and the parent component property `message` changed, we need to show or hide the error message.
|
|
19
25
|
*
|
|
20
26
|
* @param {FieldErrorEventPayload} payload payload param
|
|
21
27
|
*/
|
|
@@ -4,20 +4,21 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { MapToComponentField as MapToClassField, VegaSlimmer } from 'vega-slimmer/core';
|
|
7
|
+
import { InjectVegaSlimmer, MapToComponentField as MapToClassField, VegaSlimmer } from 'vega-slimmer/core';
|
|
8
8
|
import ChangeManager from '../change-manager/change-manager';
|
|
9
9
|
import DomNodeSubjectFactory from '../change-manager/subject/dom-node-subject/dom-node-subject-factory';
|
|
10
10
|
import { VegaInternalFieldErrorStateChange } from '../event-manager/event-id/vega-internal-event-id';
|
|
11
11
|
import { SiblingContainerNestedErrorContainerRetrievalStrategy } from './field-error-ui-controller-strategies/sibling-container-nested-error-container-retrieval-strategy';
|
|
12
12
|
import { SiblingContainerSelfRetrievalStrategy } from './field-error-ui-controller-strategies/sibling-container-self-retrieval-strategy';
|
|
13
13
|
import { SiblingContainerErrorLabelContainerRetrievalStrategy } from './field-error-ui-controller-strategies/sibling-container-error-label-container-retrieval-strategy';
|
|
14
|
-
import { VegaInternalTranslation } from '../translation';
|
|
15
14
|
import { Observer } from '../change-manager/observer/observer';
|
|
16
15
|
import { UPDATE_TRANSLATION } from '../change-manager/subject/static-subject/static-subject-title';
|
|
16
|
+
import { FormFieldMessageTranslatorSlimmer } from './form-field-message-translator';
|
|
17
17
|
/** The `FieldErrorUIControllerSlimmer` class is responsible for displaying error messages and managing the invalid UI state of a form field. */
|
|
18
18
|
export class FieldErrorUIControllerSlimmer extends VegaSlimmer {
|
|
19
19
|
constructor() {
|
|
20
20
|
super();
|
|
21
|
+
this.formFieldMessageTranslatorSlimmer = new FormFieldMessageTranslatorSlimmer();
|
|
21
22
|
this.fieldErrorUiControllerStrategies = [
|
|
22
23
|
new SiblingContainerNestedErrorContainerRetrievalStrategy(),
|
|
23
24
|
new SiblingContainerSelfRetrievalStrategy(),
|
|
@@ -37,7 +38,8 @@ export class FieldErrorUIControllerSlimmer extends VegaSlimmer {
|
|
|
37
38
|
const inputContainer = this.getInputElementContainer();
|
|
38
39
|
if (errorMessage && inputContainer) {
|
|
39
40
|
const errorContainer = this.getErrorContainer(inputContainer);
|
|
40
|
-
errorContainer.innerHTML =
|
|
41
|
+
errorContainer.innerHTML =
|
|
42
|
+
this.formFieldMessageTranslatorSlimmer.getTranslatedMessage(errorMessage);
|
|
41
43
|
errorContainer.classList.remove('vega-hidden');
|
|
42
44
|
inputContainer.classList.add('error');
|
|
43
45
|
ChangeManager.notify(DomNodeSubjectFactory.getSubject(this.host, VegaInternalFieldErrorStateChange), {
|
|
@@ -86,18 +88,6 @@ export class FieldErrorUIControllerSlimmer extends VegaSlimmer {
|
|
|
86
88
|
}
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
|
-
/**
|
|
90
|
-
* Translates a given message based on its type.
|
|
91
|
-
*
|
|
92
|
-
* @param {EvaluateResult['message'] | EvaluateResultTranslation['message']} message - The message to be translated, which can be a string or a TranslationMessage.
|
|
93
|
-
* @returns {string} The translated message.
|
|
94
|
-
*/
|
|
95
|
-
getTranslatedMessage(message) {
|
|
96
|
-
if (typeof message === 'string') {
|
|
97
|
-
return VegaInternalTranslation.t(message);
|
|
98
|
-
}
|
|
99
|
-
return VegaInternalTranslation.t(message.key, ...(message.args || []));
|
|
100
|
-
}
|
|
101
91
|
/**
|
|
102
92
|
* Init translation observer of translation language changes
|
|
103
93
|
*/
|
|
@@ -109,7 +99,8 @@ export class FieldErrorUIControllerSlimmer extends VegaSlimmer {
|
|
|
109
99
|
if (inputContainer) {
|
|
110
100
|
const errorContainer = this.getErrorContainer(inputContainer);
|
|
111
101
|
if (errorContainer) {
|
|
112
|
-
errorContainer.innerHTML =
|
|
102
|
+
errorContainer.innerHTML =
|
|
103
|
+
this.formFieldMessageTranslatorSlimmer.getTranslatedMessage(this.errorMessage);
|
|
113
104
|
}
|
|
114
105
|
}
|
|
115
106
|
});
|
|
@@ -124,6 +115,9 @@ export class FieldErrorUIControllerSlimmer extends VegaSlimmer {
|
|
|
124
115
|
return true;
|
|
125
116
|
}
|
|
126
117
|
}
|
|
118
|
+
__decorate([
|
|
119
|
+
InjectVegaSlimmer()
|
|
120
|
+
], FieldErrorUIControllerSlimmer.prototype, "formFieldMessageTranslatorSlimmer", void 0);
|
|
127
121
|
__decorate([
|
|
128
122
|
MapToClassField()
|
|
129
123
|
], FieldErrorUIControllerSlimmer.prototype, "host", void 0);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { VegaSlimmer } from 'vega-slimmer/core';
|
|
2
|
+
import { VegaInternalTranslation } from '../translation';
|
|
3
|
+
/** The `FormFieldMessageTranslatorSlimmer` class is to get translated message */
|
|
4
|
+
export class FormFieldMessageTranslatorSlimmer extends VegaSlimmer {
|
|
5
|
+
/**
|
|
6
|
+
* Translates a given message based on its type.
|
|
7
|
+
*
|
|
8
|
+
* @param {EvaluateResult['message'] | EvaluateResultTranslation['message']} message - The message to be translated, which can be a string or a TranslationMessage.
|
|
9
|
+
* @returns {string} The translated message.
|
|
10
|
+
*/
|
|
11
|
+
getTranslatedMessage(message) {
|
|
12
|
+
if (typeof message === 'string') {
|
|
13
|
+
return VegaInternalTranslation.t(message);
|
|
14
|
+
}
|
|
15
|
+
return VegaInternalTranslation.t(message.key, ...(message.args || []));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -21,9 +21,12 @@ export class FormFieldValidInvokeSlimmer extends VegaSlimmer {
|
|
|
21
21
|
if (payload.timerId !== undefined) {
|
|
22
22
|
clearTimeout(payload.timerId);
|
|
23
23
|
}
|
|
24
|
-
const
|
|
25
|
-
if (
|
|
26
|
-
|
|
24
|
+
const validationResult = await this.validator.validate(payload.message);
|
|
25
|
+
if (validationResult) {
|
|
26
|
+
const { isValid, message } = validationResult;
|
|
27
|
+
if (typeof payload.promiseResolve === 'function') {
|
|
28
|
+
payload.promiseResolve({ isValid, message });
|
|
29
|
+
}
|
|
27
30
|
}
|
|
28
31
|
}
|
|
29
32
|
};
|
package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js
CHANGED
|
@@ -94,7 +94,7 @@ export class PositionCalculationController extends VegaSlimmer {
|
|
|
94
94
|
* @returns {void}
|
|
95
95
|
*/
|
|
96
96
|
adjustHeight() {
|
|
97
|
-
if (this.showConfig.matchContainerHeight) {
|
|
97
|
+
if (this.showConfig.matchContainerHeight && !this.showConfig.isScreenPosition) {
|
|
98
98
|
const { height: targetHeight } = this.showConfig.target.getBoundingClientRect();
|
|
99
99
|
let maxHeight = this.container.scrollHeight - this.showConfig.target.offsetTop - targetHeight;
|
|
100
100
|
if (this.showConfig.maxHeight) {
|
|
@@ -208,6 +208,16 @@ export class ElementAppender {
|
|
|
208
208
|
prepareShow() {
|
|
209
209
|
// Add relative position to the container while the container is static,
|
|
210
210
|
// https://developer.mozilla.org/en-US/docs/Web/CSS/position#types_of_positioning
|
|
211
|
+
if (!this.showConfig.isScreenPosition) {
|
|
212
|
+
this.initVisibleAppendElement();
|
|
213
|
+
}
|
|
214
|
+
this.showConfig.appendableElement.style.boxSizing = 'border-box';
|
|
215
|
+
this.positionCalculationController.setCalculationStrategy();
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* init visible append element.
|
|
219
|
+
*/
|
|
220
|
+
initVisibleAppendElement() {
|
|
211
221
|
const containerStyle = window.getComputedStyle(this.container);
|
|
212
222
|
const originContainerPosition = containerStyle.position;
|
|
213
223
|
if (!ElementAppender.containerMap.has(this.container)) {
|
|
@@ -219,8 +229,6 @@ export class ElementAppender {
|
|
|
219
229
|
if (originContainerPosition === 'static') {
|
|
220
230
|
this.container.style.position = 'relative';
|
|
221
231
|
}
|
|
222
|
-
this.showConfig.appendableElement.style.boxSizing = 'border-box';
|
|
223
|
-
this.positionCalculationController.setCalculationStrategy();
|
|
224
232
|
}
|
|
225
233
|
/**
|
|
226
234
|
* A function that takes no parameters and returns nothing. It sets the position of the appendable element.
|
|
@@ -12,6 +12,7 @@ import { FormFieldValidationRuleHandlerChain, } from './validation-rule-handler/
|
|
|
12
12
|
import { InjectVegaSlimmer, createDynamicSlimmer, methodPlaceholder } from 'vega-slimmer/core';
|
|
13
13
|
import { FieldErrorUIControllerSlimmer } from '../slimmers/field-error-ui-controller-slimmer';
|
|
14
14
|
import { PageResizeObserverSlimmer } from '../slimmers/page-resize-observer-slimmer';
|
|
15
|
+
import { FormFieldMessageTranslatorSlimmer } from '../slimmers/form-field-message-translator';
|
|
15
16
|
/**
|
|
16
17
|
* The FormFieldController class is a class that validates the value of an input elements
|
|
17
18
|
*
|
|
@@ -40,6 +41,7 @@ export class FormFieldController {
|
|
|
40
41
|
*/
|
|
41
42
|
constructor(defaultRules, hostElement, defaultValue, options) {
|
|
42
43
|
var _a, _b;
|
|
44
|
+
this.formFieldMessageTranslatorSlimmer = new FormFieldMessageTranslatorSlimmer();
|
|
43
45
|
this.fieldErrorUIController = new FieldErrorUIControllerSlimmer();
|
|
44
46
|
this.resizeObserverSlimmer = createDynamicSlimmer(FormFieldController, PageResizeObserverSlimmer, [], [{ mapFrom: 'connectResizeObserver', mapTo: 'connectResizeObserver' }], [
|
|
45
47
|
{
|
|
@@ -131,7 +133,7 @@ export class FormFieldController {
|
|
|
131
133
|
* It validates the input against the rules and returns a boolean indicating whether the input is valid or not
|
|
132
134
|
*
|
|
133
135
|
* @param {boolean} showError whether the validation result should be reflected in UI
|
|
134
|
-
* @returns {
|
|
136
|
+
* @returns {Promise<EvaluateResultBase>} A promise value.
|
|
135
137
|
*/
|
|
136
138
|
async validate(showError) {
|
|
137
139
|
return await this.valid([], showError);
|
|
@@ -206,8 +208,9 @@ export class FormFieldController {
|
|
|
206
208
|
if (hasAsyncRules) {
|
|
207
209
|
ChangeManager.notify(FORM_FIELD_PENDING_VALID_CHANGE, { host: this.host, detail: null });
|
|
208
210
|
}
|
|
209
|
-
const isValid = await this.formFieldValidationRuleHandlerChain.process(input, status, triggerStatus, showError, this.handleValidationResult);
|
|
210
|
-
|
|
211
|
+
const { isValid, message } = await this.formFieldValidationRuleHandlerChain.process(input, status, triggerStatus, showError, this.handleValidationResult);
|
|
212
|
+
const translatedMessage = this.formFieldMessageTranslatorSlimmer.getTranslatedMessage(message);
|
|
213
|
+
return { isValid, message: translatedMessage };
|
|
211
214
|
}
|
|
212
215
|
/**
|
|
213
216
|
* Invoke all listeners with the given isValid value
|
|
@@ -432,11 +435,16 @@ export class FormFieldController {
|
|
|
432
435
|
if (isSubmittedKey)
|
|
433
436
|
event.preventDefault();
|
|
434
437
|
return isSubmittedKey;
|
|
438
|
+
case 'VEGA-RICH-TEXT-EDITOR':
|
|
439
|
+
return false;
|
|
435
440
|
default:
|
|
436
441
|
return isEnterKey;
|
|
437
442
|
}
|
|
438
443
|
}
|
|
439
444
|
}
|
|
445
|
+
__decorate([
|
|
446
|
+
InjectVegaSlimmer()
|
|
447
|
+
], FormFieldController.prototype, "formFieldMessageTranslatorSlimmer", void 0);
|
|
440
448
|
__decorate([
|
|
441
449
|
InjectVegaSlimmer()
|
|
442
450
|
], FormFieldController.prototype, "fieldErrorUIController", void 0);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VegaRTEContent } from '../../../components/vega-rich-text-editor/dto/content-state';
|
|
2
2
|
/**
|
|
3
|
-
* A rule that checks if input range is empty or not
|
|
3
|
+
* A rule that checks if the input range is empty or not
|
|
4
4
|
*
|
|
5
5
|
* @implements {FormFieldValidationRule<string[]>}
|
|
6
6
|
*/
|
|
@@ -12,11 +12,12 @@ export class RichTextEditorRequiredRule {
|
|
|
12
12
|
* @returns {EvaluateResultTranslation} An object with two properties: isValid and message.
|
|
13
13
|
*/
|
|
14
14
|
evaluate(input) {
|
|
15
|
-
var _a;
|
|
15
|
+
var _a, _b;
|
|
16
16
|
if (!this.isAcceptedInputType(input)) {
|
|
17
17
|
throw new Error(`Invalid value ${input} for rich text editor`);
|
|
18
18
|
}
|
|
19
|
-
const isValid = ((_a = input === null || input === void 0 ? void 0 : input.blocks) === null || _a === void 0 ? void 0 : _a.length) >
|
|
19
|
+
const isValid = ((_a = input === null || input === void 0 ? void 0 : input.blocks) === null || _a === void 0 ? void 0 : _a.length) > 1 || // isValid: true when the length is greater than 1 to keep the same behavior as vega-textarea
|
|
20
|
+
(((_b = input === null || input === void 0 ? void 0 : input.blocks) === null || _b === void 0 ? void 0 : _b.length) === 1 && input.blocks.some((block) => block.isNotEmpty()));
|
|
20
21
|
return {
|
|
21
22
|
isValid,
|
|
22
23
|
message: isValid ? '' : 'This field is required',
|
|
@@ -54,6 +54,49 @@ test('return evaluate result as expect', () => {
|
|
|
54
54
|
isValid: true,
|
|
55
55
|
message: '',
|
|
56
56
|
});
|
|
57
|
+
expect(rule.evaluate(VegaRTEContent.fromJSON([
|
|
58
|
+
{
|
|
59
|
+
id: generateUUID(),
|
|
60
|
+
type: 'paragraph',
|
|
61
|
+
nodes: [
|
|
62
|
+
{
|
|
63
|
+
id: generateUUID(),
|
|
64
|
+
type: 'text',
|
|
65
|
+
text: ' ',
|
|
66
|
+
},
|
|
67
|
+
],
|
|
68
|
+
},
|
|
69
|
+
]))).toEqual({
|
|
70
|
+
isValid: true,
|
|
71
|
+
message: '',
|
|
72
|
+
});
|
|
73
|
+
expect(rule.evaluate(VegaRTEContent.fromJSON([
|
|
74
|
+
{
|
|
75
|
+
id: generateUUID(),
|
|
76
|
+
type: 'paragraph',
|
|
77
|
+
nodes: [
|
|
78
|
+
{
|
|
79
|
+
id: generateUUID(),
|
|
80
|
+
type: 'text',
|
|
81
|
+
text: '',
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: generateUUID(),
|
|
87
|
+
type: 'paragraph',
|
|
88
|
+
nodes: [
|
|
89
|
+
{
|
|
90
|
+
id: generateUUID(),
|
|
91
|
+
type: 'text',
|
|
92
|
+
text: '',
|
|
93
|
+
},
|
|
94
|
+
],
|
|
95
|
+
},
|
|
96
|
+
]))).toEqual({
|
|
97
|
+
isValid: true,
|
|
98
|
+
message: '',
|
|
99
|
+
});
|
|
57
100
|
expect(rule.evaluate(VegaRTEContent.fromJSON([
|
|
58
101
|
{
|
|
59
102
|
id: generateUUID(),
|
|
@@ -44,7 +44,7 @@ export class FormFieldValidationRuleHandlerChain {
|
|
|
44
44
|
* @param {(keyof FormFieldStatusMeta)[]} triggerStatus - These keys represent the fields that have triggered a change in status.
|
|
45
45
|
* @param {boolean | 'rule'} showError - A boolean or string rule form method call, It's a param of callback.
|
|
46
46
|
* @param {ValidationCallBack} callback - The method should be call when validation result is not valid.
|
|
47
|
-
* @returns {Promise<
|
|
47
|
+
* @returns {Promise<EvaluateResult>} validate result.
|
|
48
48
|
*/
|
|
49
49
|
async process(input, status, triggerStatus, showError, callback) {
|
|
50
50
|
const UUID = this.preProcess();
|
|
@@ -73,7 +73,12 @@ export class FormFieldValidationRuleHandlerChain {
|
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
this.postProcess(UUID, showError, result, callback);
|
|
76
|
-
|
|
76
|
+
if (result) {
|
|
77
|
+
return { isValid: false, message: result.message };
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
return { isValid: true, message: '' };
|
|
81
|
+
}
|
|
77
82
|
}
|
|
78
83
|
/**
|
|
79
84
|
* sets the processId to the UUID
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { F as FeatureFlag } from './feature-flag-controller-4b3fe6f8.js';
|
|
2
2
|
import { V as VegaLoader, a as VegaNotify, b as VegaEventManager, c as VegaZIndexManager, d as VegaSkeletonLoader } from './vega-skeleton-loader-controller-0aaaf1fa.js';
|
|
3
|
-
import { V as VegaThemeManager } from './node-annotation.abstract-
|
|
3
|
+
import { V as VegaThemeManager } from './node-annotation.abstract-af11b11b.js';
|
|
4
4
|
import { M as MapToComponentMethod, V as VegaSlimmer, s as setVegaLogLevel, G as GlobalSlimmersRegistry } from './global-slimmer-registry-17c4efd4.js';
|
|
5
5
|
import { V as VegaDialog } from './vega-dialog-controller-34eb8967.js';
|
|
6
6
|
import { v as vegaEnvManager } from './vega-env-manager-8f8dc473.js';
|
|
@@ -9,8 +9,7 @@ import './ui-62e4be97.js';
|
|
|
9
9
|
import { V as VegaInternalTranslation, a as VegaTranslation, s as staticTranslations } from './translation-a98970d8.js';
|
|
10
10
|
import { T as TypographyUrls } from './typography-396de03f.js';
|
|
11
11
|
import { V as ValidCreditCardNumberRule } from './valid-credit-card-number-rule-2aef3ad5.js';
|
|
12
|
-
import { w as waitForVega } from './
|
|
13
|
-
import { V as VegaRTEContent } from './content-state-f39c4bbf.js';
|
|
12
|
+
import { w as waitForVega, V as VegaRTEContent } from './content-state-42a06d75.js';
|
|
14
13
|
import { U as UPDATE_TRANSLATION } from './static-subject-title-e06a3840.js';
|
|
15
14
|
import { C as ChangeManager } from './change-manager-6a7eb88c.js';
|
|
16
15
|
import { O as Observer } from './dom-node-subject-factory-5831cdd4.js';
|