@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
|
@@ -4,22 +4,30 @@ 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, VegaSlimmer } from 'vega-slimmer/core';
|
|
7
|
+
import { MapToComponentField, MapToComponentMethod, VegaSlimmer } from 'vega-slimmer/core';
|
|
8
8
|
import { h, Host } from '@stencil/core';
|
|
9
9
|
import { VegaDarkModeStyleController } from '../../../../helpers/theme/controllers/dark-mode-style-controller';
|
|
10
10
|
import { TextColorToolbarButtonSlimmer } from '../../../vega-rich-text-editor/slimmers/renderers/tools/text-color-toolbar-button-slimmer';
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import {
|
|
15
|
-
import { RTEListBlock } from '../../../vega-rich-text-editor/dto/blocks/list-block';
|
|
16
|
-
import { RTEListBlockRenderer } from '../../../vega-rich-text-editor/dto/renderers/blocks/list-block-renderer';
|
|
17
|
-
import { RTEListItemBlock } from '../../../vega-rich-text-editor/dto/blocks/list-item-block';
|
|
11
|
+
import RTETextBlockRenderer from '../../../vega-rich-text-editor/dto/renderers/blocks/text-block-renderer';
|
|
12
|
+
import RTEImageBlockRenderer from '../../../vega-rich-text-editor/dto/renderers/blocks/image-block-renderer';
|
|
13
|
+
import RTEListBlockRenderer from '../../../vega-rich-text-editor/dto/renderers/blocks/list-block-renderer';
|
|
14
|
+
import { VegaRTEContent } from '../../../vega-rich-text-editor/dto/content-state';
|
|
18
15
|
export class VegaRichTextContentRenderer extends VegaSlimmer {
|
|
19
16
|
constructor() {
|
|
20
17
|
super();
|
|
18
|
+
this.blockRenderers = [
|
|
19
|
+
RTETextBlockRenderer,
|
|
20
|
+
RTEImageBlockRenderer,
|
|
21
|
+
RTEListBlockRenderer,
|
|
22
|
+
];
|
|
21
23
|
VegaDarkModeStyleController.registerCustomDarkModeColor(TextColorToolbarButtonSlimmer.formatDarkModeColor());
|
|
22
24
|
}
|
|
25
|
+
componentWillLoad() {
|
|
26
|
+
this.setRTEContent();
|
|
27
|
+
}
|
|
28
|
+
watchValueUpdate() {
|
|
29
|
+
this.setRTEContent();
|
|
30
|
+
}
|
|
23
31
|
/**
|
|
24
32
|
* Get the rich text content element
|
|
25
33
|
*
|
|
@@ -31,6 +39,11 @@ export class VegaRichTextContentRenderer extends VegaSlimmer {
|
|
|
31
39
|
render() {
|
|
32
40
|
return h(Host, null, this.renderRichTextContent());
|
|
33
41
|
}
|
|
42
|
+
setRTEContent() {
|
|
43
|
+
if (this.content && !(this.content instanceof VegaRTEContent)) {
|
|
44
|
+
this.content = VegaRTEContent.fromJSON(this.content);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
34
47
|
renderRichTextContent() {
|
|
35
48
|
const showPlaceholder = this.shouldShowPlaceholder();
|
|
36
49
|
return (h("div", { ref: (el) => (this.richTextContentRef = el), class: { 'showPlaceholder': showPlaceholder, 'rich-text-content': true }, "data-placeholder": this.placeholder, contenteditable: this.contentEditable }, this.renderContent()));
|
|
@@ -39,19 +52,14 @@ export class VegaRichTextContentRenderer extends VegaSlimmer {
|
|
|
39
52
|
var _a;
|
|
40
53
|
const renderContext = { editable: this.contentEditable };
|
|
41
54
|
return (_a = this.content) === null || _a === void 0 ? void 0 : _a.blocks.map((block) => {
|
|
42
|
-
|
|
55
|
+
const blockRenderer = this.getBlockRenderer(block);
|
|
56
|
+
if (blockRenderer) {
|
|
57
|
+
return blockRenderer.render(block, renderContext);
|
|
58
|
+
}
|
|
43
59
|
});
|
|
44
60
|
}
|
|
45
|
-
getBlockRenderer(block
|
|
46
|
-
|
|
47
|
-
return new RTETextBlockRenderer(block, renderContext);
|
|
48
|
-
}
|
|
49
|
-
else if (block instanceof RTEListBlock) {
|
|
50
|
-
return new RTEListBlockRenderer(block, renderContext);
|
|
51
|
-
}
|
|
52
|
-
else if (block instanceof RTEImageBlock) {
|
|
53
|
-
return new RTEImageBlockRenderer(block, renderContext);
|
|
54
|
-
}
|
|
61
|
+
getBlockRenderer(block) {
|
|
62
|
+
return this.blockRenderers.find((renderer) => renderer.canHandle(block));
|
|
55
63
|
}
|
|
56
64
|
shouldShowPlaceholder() {
|
|
57
65
|
var _a;
|
|
@@ -78,3 +86,9 @@ __decorate([
|
|
|
78
86
|
__decorate([
|
|
79
87
|
MapToComponentField({ writable: true })
|
|
80
88
|
], VegaRichTextContentRenderer.prototype, "content", void 0);
|
|
89
|
+
__decorate([
|
|
90
|
+
MapToComponentMethod('componentWillLoad')
|
|
91
|
+
], VegaRichTextContentRenderer.prototype, "componentWillLoad", null);
|
|
92
|
+
__decorate([
|
|
93
|
+
MapToComponentMethod('watchValueUpdate')
|
|
94
|
+
], VegaRichTextContentRenderer.prototype, "watchValueUpdate", null);
|
|
@@ -4,8 +4,8 @@ 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 { Component, Element, Method, Prop, State } from '@stencil/core';
|
|
8
|
-
import { InjectVegaGlobalSlimmer, InjectVegaSlimmer } from 'vega-slimmer/core';
|
|
7
|
+
import { Component, Element, Method, Prop, State, Watch } from '@stencil/core';
|
|
8
|
+
import { InjectVegaGlobalSlimmer, InjectVegaSlimmer, methodPlaceholder, } from 'vega-slimmer/core';
|
|
9
9
|
import { sanitizeVegaComponent } from '../../utils/component';
|
|
10
10
|
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
|
|
11
11
|
import { VegaRichTextContentRenderer } from './slimmers/renderers/vega-rich-text-content-renderer';
|
|
@@ -28,6 +28,9 @@ export class VegaRichTextContent {
|
|
|
28
28
|
*/
|
|
29
29
|
this.contentEditable = false;
|
|
30
30
|
}
|
|
31
|
+
watchValueUpdate() {
|
|
32
|
+
methodPlaceholder();
|
|
33
|
+
}
|
|
31
34
|
/**
|
|
32
35
|
* Invoke this method to focus on rich text content editable div
|
|
33
36
|
*
|
|
@@ -54,7 +57,7 @@ export class VegaRichTextContent {
|
|
|
54
57
|
static get properties() { return {
|
|
55
58
|
"content": {
|
|
56
59
|
"type": "unknown",
|
|
57
|
-
"mutable":
|
|
60
|
+
"mutable": true,
|
|
58
61
|
"complexType": {
|
|
59
62
|
"original": "VegaRTEContent",
|
|
60
63
|
"resolved": "VegaRTEContent",
|
|
@@ -72,7 +75,7 @@ export class VegaRichTextContent {
|
|
|
72
75
|
"name": "vegaVersion",
|
|
73
76
|
"text": "2.34.0"
|
|
74
77
|
}],
|
|
75
|
-
"text": "Specifies the text or formatted information displayed by the rich text content."
|
|
78
|
+
"text": "Specifies the text or formatted information displayed by the rich text content, 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."
|
|
76
79
|
}
|
|
77
80
|
}
|
|
78
81
|
}; }
|
|
@@ -109,6 +112,10 @@ export class VegaRichTextContent {
|
|
|
109
112
|
}
|
|
110
113
|
}; }
|
|
111
114
|
static get elementRef() { return "host"; }
|
|
115
|
+
static get watchers() { return [{
|
|
116
|
+
"propName": "content",
|
|
117
|
+
"methodName": "watchValueUpdate"
|
|
118
|
+
}]; }
|
|
112
119
|
}
|
|
113
120
|
__decorate([
|
|
114
121
|
InjectVegaGlobalSlimmer()
|
|
@@ -2,22 +2,19 @@ import stateEntityRenderingRegistry from '../../../slimmers/controllers/state-en
|
|
|
2
2
|
import { BlockAnnotation } from '../../annotations/block-annotation.abstract';
|
|
3
3
|
import { isNonNullable } from '../../../../../types/type-guard';
|
|
4
4
|
export class RTEBlockRenderer {
|
|
5
|
-
|
|
6
|
-
this.block = block;
|
|
7
|
-
this.renderContext = renderContext;
|
|
8
|
-
}
|
|
9
|
-
registerRef(ref) {
|
|
5
|
+
registerRef(ref, block) {
|
|
10
6
|
if (ref) {
|
|
11
|
-
stateEntityRenderingRegistry.register(ref,
|
|
7
|
+
stateEntityRenderingRegistry.register(ref, block);
|
|
12
8
|
}
|
|
13
9
|
}
|
|
14
10
|
/**
|
|
15
11
|
* Get styles from annotations
|
|
16
12
|
*
|
|
13
|
+
* @param {RTEBlock} block - RTE block entity
|
|
17
14
|
* @returns {AnnotationStyle} - Annotation style
|
|
18
15
|
*/
|
|
19
|
-
getStyles() {
|
|
20
|
-
return Array.from(
|
|
16
|
+
getStyles(block) {
|
|
17
|
+
return Array.from(block.annotationMap.values())
|
|
21
18
|
.filter((annotation) => annotation instanceof BlockAnnotation)
|
|
22
19
|
.map((annotation) => annotation.render())
|
|
23
20
|
.filter(isNonNullable)
|
|
@@ -26,10 +23,11 @@ export class RTEBlockRenderer {
|
|
|
26
23
|
/**
|
|
27
24
|
* Get classes from annotations
|
|
28
25
|
*
|
|
26
|
+
* @param {RTEBlock} block - RTE block entity
|
|
29
27
|
* @returns {AnnotationStyle} - Annotation style
|
|
30
28
|
*/
|
|
31
|
-
getClasses() {
|
|
32
|
-
return Array.from(
|
|
29
|
+
getClasses(block) {
|
|
30
|
+
return Array.from(block.annotationMap.values())
|
|
33
31
|
.map((annotation) => { var _a; return (_a = annotation.renderClass) === null || _a === void 0 ? void 0 : _a.call(annotation); })
|
|
34
32
|
.filter(isNonNullable)
|
|
35
33
|
.reduce((pre, cur) => [pre, cur].join(' '), '');
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { h } from '@stencil/core';
|
|
2
|
+
import { InternalAnnotationTypeEnum } from '../../annotations/annotation.abstract';
|
|
3
|
+
import { RTEBlockRenderer } from './block-renderer.abstract';
|
|
4
|
+
import RTETextNodeRenderer from '../nodes/text-node-renderer';
|
|
5
|
+
import { NodeAnnotationTypeEnum } from '../../annotations/node-annotation.abstract';
|
|
6
|
+
import { isNonNullable } from '../../../../../types/type-guard';
|
|
7
|
+
import { generateUUID } from '../../../../../utils/misc';
|
|
8
|
+
import { LinkAnnotationAction } from '../../actions/link-annotation-action';
|
|
9
|
+
import { createEnterKeyHandlerToTriggerClick } from '../../../../../utils/accessibility';
|
|
10
|
+
import { DomNodeSubjectObserverFactory } from '../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
|
|
11
|
+
import { VegaChange } from '../../../../../helpers/event-manager/event-id/vega-event-id';
|
|
12
|
+
/**
|
|
13
|
+
* Abstract class for rendering blocks that contain text nodes with support for rendering text with link styles.
|
|
14
|
+
*/
|
|
15
|
+
export class RTEBlockTextNodesRenderer extends RTEBlockRenderer {
|
|
16
|
+
renderNodes(block, renderContext) {
|
|
17
|
+
const linkGroupAnnotation = block.getAnnotationByType(InternalAnnotationTypeEnum.LINK_GROUP);
|
|
18
|
+
return linkGroupAnnotation
|
|
19
|
+
? this.renderLinkNodes(block.nodes, renderContext)
|
|
20
|
+
: block.nodes.map((node) => RTETextNodeRenderer.render(node));
|
|
21
|
+
}
|
|
22
|
+
renderLinkNodes(nodes, { editable }) {
|
|
23
|
+
const blockNodes = this.groupNodesByLink(nodes);
|
|
24
|
+
return blockNodes.flatMap((item) => {
|
|
25
|
+
if (this.isLinkGroup(item)) {
|
|
26
|
+
const linkAnnotation = item[0].getAnnotationByType(NodeAnnotationTypeEnum.LINK);
|
|
27
|
+
return editable
|
|
28
|
+
? this.renderLinkEditorWrapper(item, linkAnnotation)
|
|
29
|
+
: this.renderLink(item, linkAnnotation);
|
|
30
|
+
}
|
|
31
|
+
return RTETextNodeRenderer.render(item);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
groupNodesByLink(nodes) {
|
|
35
|
+
return nodes.reduce((acc, node) => {
|
|
36
|
+
const nodeLinkAnnotation = node.getAnnotationByType(NodeAnnotationTypeEnum.LINK);
|
|
37
|
+
const lastGroup = acc[acc.length - 1];
|
|
38
|
+
if (isNonNullable(nodeLinkAnnotation)) {
|
|
39
|
+
if (lastGroup &&
|
|
40
|
+
this.isLinkGroup(lastGroup) &&
|
|
41
|
+
lastGroup[0].getAnnotationByType(NodeAnnotationTypeEnum.LINK).toEqual(nodeLinkAnnotation)) {
|
|
42
|
+
lastGroup.push(node);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
acc.push([node]);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
acc.push(node);
|
|
50
|
+
}
|
|
51
|
+
return acc;
|
|
52
|
+
}, []);
|
|
53
|
+
}
|
|
54
|
+
isLinkGroup(item) {
|
|
55
|
+
return Array.isArray(item);
|
|
56
|
+
}
|
|
57
|
+
renderLinkEditorWrapper(linkNodes, linkAnnotation) {
|
|
58
|
+
const { href } = linkAnnotation.link;
|
|
59
|
+
const textFromNodes = linkNodes.map((node) => node.text).join('');
|
|
60
|
+
const handleChange = ({ detail, }) => {
|
|
61
|
+
switch (detail.action) {
|
|
62
|
+
case 'link': {
|
|
63
|
+
const { url, text } = detail.payload;
|
|
64
|
+
const textChanged = text !== textFromNodes;
|
|
65
|
+
const groupKey = generateUUID();
|
|
66
|
+
linkNodes.forEach((node) => {
|
|
67
|
+
const linkAnnotationAction = new LinkAnnotationAction({
|
|
68
|
+
link: { href: url, groupKey: groupKey },
|
|
69
|
+
newText: textChanged ? text : undefined,
|
|
70
|
+
needMergeNode: textChanged && linkNodes.length > 1,
|
|
71
|
+
doSplit: false,
|
|
72
|
+
});
|
|
73
|
+
node.apply(linkAnnotationAction);
|
|
74
|
+
});
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
case 'unlink': {
|
|
78
|
+
linkNodes.forEach((node) => node.deleteAnnotationByType(NodeAnnotationTypeEnum.LINK));
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
let linkWrapperRef;
|
|
84
|
+
return (h("span", { class: "link-editor-wrapper", role: "link", tabIndex: 0, onKeyDown: createEnterKeyHandlerToTriggerClick(), ref: (ref) => {
|
|
85
|
+
if (ref) {
|
|
86
|
+
linkWrapperRef = ref;
|
|
87
|
+
}
|
|
88
|
+
} },
|
|
89
|
+
this.renderLink(linkNodes, linkAnnotation),
|
|
90
|
+
h("vega-rich-text-link-editor", { record: {
|
|
91
|
+
text: textFromNodes,
|
|
92
|
+
url: href,
|
|
93
|
+
}, ref: (ref) => {
|
|
94
|
+
if (ref) {
|
|
95
|
+
ref.target = linkWrapperRef;
|
|
96
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaChange, handleChange);
|
|
97
|
+
}
|
|
98
|
+
} })));
|
|
99
|
+
}
|
|
100
|
+
renderLink(linkNodes, linkAnnotation) {
|
|
101
|
+
const { href } = linkAnnotation.link;
|
|
102
|
+
return (h("a", { class: "v-rte--link", href: href, target: "_blank" }, linkNodes.map((node) => RTETextNodeRenderer.render(node))));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { h } from '@stencil/core';
|
|
2
|
+
import { RTEImageBlock } from '../../blocks/image-block';
|
|
2
3
|
import { RTEBlockRenderer } from './block-renderer.abstract';
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import RTEImageNodeRenderer from '../nodes/image-node-renderer';
|
|
5
|
+
class RTEImageBlockRenderer extends RTEBlockRenderer {
|
|
6
|
+
canHandle(block) {
|
|
7
|
+
return block instanceof RTEImageBlock;
|
|
7
8
|
}
|
|
8
|
-
render() {
|
|
9
|
-
return (h("div", { style: Object.assign({}, super.getStyles()), ref: (ref) => super.registerRef(ref), class: super.getClasses() },
|
|
10
|
-
return
|
|
9
|
+
render(block, renderContext) {
|
|
10
|
+
return (h("div", { style: Object.assign({}, super.getStyles(block)), ref: (ref) => super.registerRef(ref, block), class: super.getClasses(block) }, block.nodes.map((node) => {
|
|
11
|
+
return RTEImageNodeRenderer.render(node, renderContext);
|
|
11
12
|
})));
|
|
12
13
|
}
|
|
13
14
|
}
|
|
15
|
+
export default new RTEImageBlockRenderer();
|
package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/list-block-renderer.js
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { h } from '@stencil/core';
|
|
2
2
|
import { RTEBlockRenderer } from './block-renderer.abstract';
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import { RTEListBlock } from '../../blocks/list-block';
|
|
4
|
+
import RTEListItemBlockRenderer from './list-item-block-renderer';
|
|
5
|
+
class RTEListBlockRenderer extends RTEBlockRenderer {
|
|
6
|
+
canHandle(block) {
|
|
7
|
+
return block instanceof RTEListBlock;
|
|
7
8
|
}
|
|
8
|
-
render() {
|
|
9
|
-
const BlockTag =
|
|
10
|
-
return (h(BlockTag, { ref: (ref) => super.registerRef(ref) },
|
|
9
|
+
render(block, renderContext) {
|
|
10
|
+
const BlockTag = block.type === 'number-list' ? 'ol' : 'ul';
|
|
11
|
+
return (h(BlockTag, { ref: (ref) => super.registerRef(ref, block) }, block.blocks.map((listItemBlock) => RTEListItemBlockRenderer.render(listItemBlock, renderContext))));
|
|
11
12
|
}
|
|
12
13
|
}
|
|
14
|
+
export default new RTEListBlockRenderer();
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import { h } from '@stencil/core';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
super(block,
|
|
2
|
+
import RTEListBlockRenderer from './list-block-renderer';
|
|
3
|
+
import { RTEBlockTextNodesRenderer } from './block-text-nodes-renderer.abstract';
|
|
4
|
+
class RTEListItemBlockRenderer extends RTEBlockTextNodesRenderer {
|
|
5
|
+
render(block, renderContext) {
|
|
6
|
+
return (h("li", { ref: (ref) => super.registerRef(ref, block), style: super.getStyles(block), class: super.getClasses(block) },
|
|
7
|
+
super.renderNodes(block, renderContext),
|
|
8
|
+
this.renderChildren(block.children, renderContext)));
|
|
7
9
|
}
|
|
8
|
-
|
|
9
|
-
return
|
|
10
|
-
super.renderNodes(),
|
|
11
|
-
this.renderChildren(this.block.children)));
|
|
12
|
-
}
|
|
13
|
-
renderChildren(children) {
|
|
14
|
-
return children === null || children === void 0 ? void 0 : children.map((block) => new RTEListBlockRenderer(block, this.renderContext).render());
|
|
10
|
+
renderChildren(children, renderContext) {
|
|
11
|
+
return children === null || children === void 0 ? void 0 : children.map((block) => RTEListBlockRenderer.render(block, renderContext));
|
|
15
12
|
}
|
|
16
13
|
}
|
|
14
|
+
export default new RTEListItemBlockRenderer();
|
package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.js
CHANGED
|
@@ -1,27 +1,13 @@
|
|
|
1
1
|
import { h } from '@stencil/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import { generateUUID } from '../../../../../utils/misc';
|
|
8
|
-
import { LinkAnnotationAction } from '../../actions/link-annotation-action';
|
|
9
|
-
import { createEnterKeyHandlerToTriggerClick } from '../../../../../utils/accessibility';
|
|
10
|
-
import { DomNodeSubjectObserverFactory } from '../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
|
|
11
|
-
import { VegaChange } from '../../../../../helpers/event-manager/event-id/vega-event-id';
|
|
12
|
-
export class RTETextBlockRenderer extends RTEBlockRenderer {
|
|
13
|
-
constructor(block, renderContext) {
|
|
14
|
-
super(block, renderContext);
|
|
2
|
+
import { RTETextBlock } from '../../blocks/text-block';
|
|
3
|
+
import { RTEBlockTextNodesRenderer } from './block-text-nodes-renderer.abstract';
|
|
4
|
+
class RTETextBlockRenderer extends RTEBlockTextNodesRenderer {
|
|
5
|
+
canHandle(block) {
|
|
6
|
+
return block instanceof RTETextBlock;
|
|
15
7
|
}
|
|
16
|
-
render() {
|
|
17
|
-
const BlockTag = this.getBlockTagByType(
|
|
18
|
-
return (h(BlockTag, { ref: (ref) => super.registerRef(ref), style: super.getStyles(), class: super.getClasses() },
|
|
19
|
-
}
|
|
20
|
-
renderNodes() {
|
|
21
|
-
const linkGroupAnnotation = this.block.getAnnotationByType(InternalAnnotationTypeEnum.LINK_GROUP);
|
|
22
|
-
return linkGroupAnnotation
|
|
23
|
-
? this.renderLinkNodes(this.block.nodes, this.renderContext)
|
|
24
|
-
: this.block.nodes.map((node) => new RTETextNodeRenderer(node, this.renderContext).render());
|
|
8
|
+
render(block, renderContext) {
|
|
9
|
+
const BlockTag = this.getBlockTagByType(block.type);
|
|
10
|
+
return (h(BlockTag, { ref: (ref) => super.registerRef(ref, block), style: super.getStyles(block), class: super.getClasses(block) }, super.renderNodes(block, renderContext)));
|
|
25
11
|
}
|
|
26
12
|
getBlockTagByType(type) {
|
|
27
13
|
switch (type) {
|
|
@@ -38,86 +24,5 @@ export class RTETextBlockRenderer extends RTEBlockRenderer {
|
|
|
38
24
|
return 'p';
|
|
39
25
|
}
|
|
40
26
|
}
|
|
41
|
-
renderLinkNodes(nodes, { editable }) {
|
|
42
|
-
const blockNodes = this.groupNodesByLink(nodes);
|
|
43
|
-
return blockNodes.flatMap((item) => {
|
|
44
|
-
if (this.isLinkGroup(item)) {
|
|
45
|
-
const linkAnnotation = item[0].getAnnotationByType(NodeAnnotationTypeEnum.LINK);
|
|
46
|
-
return editable
|
|
47
|
-
? this.renderLinkEditorWrapper(item, linkAnnotation)
|
|
48
|
-
: this.renderLink(item, linkAnnotation);
|
|
49
|
-
}
|
|
50
|
-
return new RTETextNodeRenderer(item).render();
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
groupNodesByLink(nodes) {
|
|
54
|
-
return nodes.reduce((acc, node) => {
|
|
55
|
-
const nodeLinkAnnotation = node.getAnnotationByType(NodeAnnotationTypeEnum.LINK);
|
|
56
|
-
const lastGroup = acc[acc.length - 1];
|
|
57
|
-
if (isNonNullable(nodeLinkAnnotation)) {
|
|
58
|
-
if (lastGroup &&
|
|
59
|
-
this.isLinkGroup(lastGroup) &&
|
|
60
|
-
lastGroup[0].getAnnotationByType(NodeAnnotationTypeEnum.LINK).toEqual(nodeLinkAnnotation)) {
|
|
61
|
-
lastGroup.push(node);
|
|
62
|
-
}
|
|
63
|
-
else {
|
|
64
|
-
acc.push([node]);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
acc.push(node);
|
|
69
|
-
}
|
|
70
|
-
return acc;
|
|
71
|
-
}, []);
|
|
72
|
-
}
|
|
73
|
-
isLinkGroup(item) {
|
|
74
|
-
return Array.isArray(item);
|
|
75
|
-
}
|
|
76
|
-
renderLinkEditorWrapper(linkNodes, linkAnnotation) {
|
|
77
|
-
const { href } = linkAnnotation.link;
|
|
78
|
-
const textFromNodes = linkNodes.map((node) => node.text).join('');
|
|
79
|
-
const handleChange = ({ detail, }) => {
|
|
80
|
-
switch (detail.action) {
|
|
81
|
-
case 'link': {
|
|
82
|
-
const { url, text } = detail.payload;
|
|
83
|
-
const textChanged = text !== textFromNodes;
|
|
84
|
-
const groupKey = generateUUID();
|
|
85
|
-
linkNodes.forEach((node) => {
|
|
86
|
-
const linkAnnotationAction = new LinkAnnotationAction({
|
|
87
|
-
link: { href: url, groupKey: groupKey },
|
|
88
|
-
newText: textChanged ? text : undefined,
|
|
89
|
-
needMergeNode: textChanged && linkNodes.length > 1,
|
|
90
|
-
doSplit: false,
|
|
91
|
-
});
|
|
92
|
-
node.apply(linkAnnotationAction);
|
|
93
|
-
});
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
case 'unlink': {
|
|
97
|
-
linkNodes.forEach((node) => node.deleteAnnotationByType(NodeAnnotationTypeEnum.LINK));
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
let linkWrapperRef;
|
|
103
|
-
return (h("span", { class: "link-editor-wrapper", role: "link", tabIndex: 0, onKeyDown: createEnterKeyHandlerToTriggerClick(), ref: (ref) => {
|
|
104
|
-
if (ref) {
|
|
105
|
-
linkWrapperRef = ref;
|
|
106
|
-
}
|
|
107
|
-
} },
|
|
108
|
-
this.renderLink(linkNodes, linkAnnotation),
|
|
109
|
-
h("vega-rich-text-link-editor", { record: {
|
|
110
|
-
text: textFromNodes,
|
|
111
|
-
url: href,
|
|
112
|
-
}, ref: (ref) => {
|
|
113
|
-
if (ref) {
|
|
114
|
-
ref.target = linkWrapperRef;
|
|
115
|
-
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaChange, handleChange);
|
|
116
|
-
}
|
|
117
|
-
} })));
|
|
118
|
-
}
|
|
119
|
-
renderLink(linkNodes, linkAnnotation) {
|
|
120
|
-
const { href } = linkAnnotation.link;
|
|
121
|
-
return (h("a", { class: "v-rte--link", href: href, target: "_blank" }, linkNodes.map((node) => new RTETextNodeRenderer(node).render())));
|
|
122
|
-
}
|
|
123
27
|
}
|
|
28
|
+
export default new RTETextBlockRenderer();
|
package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/image-node-renderer.js
CHANGED
|
@@ -6,15 +6,15 @@ import stateEntityRenderingRegistry from '../../../slimmers/controllers/state-en
|
|
|
6
6
|
import { DomNodeSubjectObserverFactory } from '../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
|
|
7
7
|
import { VegaChange } from '../../../../../helpers/event-manager/event-id/vega-event-id';
|
|
8
8
|
import { RTENodeRenderer } from './node-renderer.abstract';
|
|
9
|
-
|
|
10
|
-
constructor(
|
|
11
|
-
super(
|
|
12
|
-
this.handleChange = ({ detail,
|
|
9
|
+
class RTEImageNodeRenderer extends RTENodeRenderer {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.handleChange = ({ detail }, node) => {
|
|
13
13
|
switch (detail.action) {
|
|
14
14
|
case 'edit': {
|
|
15
15
|
const size = detail.payload.size;
|
|
16
16
|
const alt = detail.payload.alt;
|
|
17
|
-
|
|
17
|
+
node.apply(new ImageAnnotationAction(size, alt));
|
|
18
18
|
break;
|
|
19
19
|
}
|
|
20
20
|
/*
|
|
@@ -28,21 +28,22 @@ export class RTEImageNodeRenderer extends RTENodeRenderer {
|
|
|
28
28
|
bubbles: true,
|
|
29
29
|
});
|
|
30
30
|
setTimeout(() => {
|
|
31
|
-
stateEntityRenderingRegistry.getDOMByEntity(
|
|
31
|
+
stateEntityRenderingRegistry.getDOMByEntity(node).dispatchEvent(event);
|
|
32
32
|
}, 50);
|
|
33
33
|
break;
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
|
-
render() {
|
|
39
|
-
const imageAnnotation =
|
|
38
|
+
render(node, renderContext) {
|
|
39
|
+
const imageAnnotation = node.getAnnotationByType(NodeAnnotationTypeEnum.IMAGE);
|
|
40
40
|
const { size, alt } = imageAnnotation || new ImageAnnotation('md', '');
|
|
41
|
-
return
|
|
42
|
-
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaChange, this.handleChange);
|
|
43
|
-
} }, this.renderImage(alt))) : (this.renderImage(alt));
|
|
41
|
+
return renderContext.editable ? (h("vega-rich-text-image-editor", { style: super.getStyles(node), size: size, alt: alt, ref: (ref) => {
|
|
42
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaChange, (e) => this.handleChange(e, node));
|
|
43
|
+
} }, this.renderImage(alt, node, renderContext))) : (this.renderImage(alt, node, renderContext));
|
|
44
44
|
}
|
|
45
|
-
renderImage(alt) {
|
|
46
|
-
return (h("img", { style:
|
|
45
|
+
renderImage(alt, node, renderContext) {
|
|
46
|
+
return (h("img", { style: renderContext.editable ? { width: '100%' } : super.getStyles(node), alt: alt, src: node.url, ref: (ref) => super.registerRef(ref, node) }));
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
+
export default new RTEImageNodeRenderer();
|
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
import stateEntityRenderingRegistry from '../../../slimmers/controllers/state-entity-rendering-registry';
|
|
2
2
|
import { NodeAnnotation } from '../../annotations/node-annotation.abstract';
|
|
3
3
|
export class RTENodeRenderer {
|
|
4
|
-
|
|
5
|
-
this.node = node;
|
|
6
|
-
this.renderContext = renderContext;
|
|
7
|
-
}
|
|
8
|
-
registerRef(ref) {
|
|
4
|
+
registerRef(ref, node) {
|
|
9
5
|
if (ref) {
|
|
10
|
-
stateEntityRenderingRegistry.register(ref,
|
|
6
|
+
stateEntityRenderingRegistry.register(ref, node);
|
|
11
7
|
}
|
|
12
8
|
}
|
|
13
9
|
/**
|
|
14
10
|
* Get styles from annotations
|
|
15
11
|
*
|
|
12
|
+
* @param {RTENode} node - The DTO node
|
|
16
13
|
* @returns {AnnotationStyle} - Annotation style
|
|
17
14
|
*/
|
|
18
|
-
getStyles() {
|
|
19
|
-
return Array.from(
|
|
15
|
+
getStyles(node) {
|
|
16
|
+
return Array.from(node.annotationMap.values())
|
|
20
17
|
.filter((annotation) => annotation instanceof NodeAnnotation)
|
|
21
18
|
.map((annotation) => annotation.render())
|
|
22
19
|
.filter(Boolean)
|
|
@@ -25,10 +22,11 @@ export class RTENodeRenderer {
|
|
|
25
22
|
/**
|
|
26
23
|
* Get classes from annotations
|
|
27
24
|
*
|
|
25
|
+
* @param {RTENode} node - The DTO node
|
|
28
26
|
* @returns {AnnotationStyle} - Annotation style
|
|
29
27
|
*/
|
|
30
|
-
getClasses() {
|
|
31
|
-
return Array.from(
|
|
28
|
+
getClasses(node) {
|
|
29
|
+
return Array.from(node.annotationMap.values())
|
|
32
30
|
.filter((annotation) => annotation instanceof NodeAnnotation)
|
|
33
31
|
.map((annotation) => { var _a; return (_a = annotation.renderClass) === null || _a === void 0 ? void 0 : _a.call(annotation); })
|
|
34
32
|
.filter(Boolean)
|
package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js
CHANGED
|
@@ -3,24 +3,22 @@ import { RTENodeRenderer } from './node-renderer.abstract';
|
|
|
3
3
|
import { NodeAnnotationTypeEnum } from '../../annotations/node-annotation.abstract';
|
|
4
4
|
import { ZERO_WIDTH_SPACE } from '../../../constants/constant';
|
|
5
5
|
import TextNodeElementRenderingRegistry from '../../../slimmers/controllers/text-node-rendering-registry';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
}
|
|
10
|
-
render() {
|
|
11
|
-
const codeAnnotation = this.node.annotationMap.get(NodeAnnotationTypeEnum.CODE);
|
|
6
|
+
class RTETextNodeRenderer extends RTENodeRenderer {
|
|
7
|
+
render(node) {
|
|
8
|
+
const codeAnnotation = node.annotationMap.get(NodeAnnotationTypeEnum.CODE);
|
|
12
9
|
if (codeAnnotation === null || codeAnnotation === void 0 ? void 0 : codeAnnotation.code) {
|
|
13
|
-
return (h("code", { style: super.getStyles(), class: super.getClasses(), ref: (ref) => this.registerRef(ref) },
|
|
10
|
+
return (h("code", { style: super.getStyles(node), class: super.getClasses(node), ref: (ref) => this.registerRef(ref, node) }, node.text || ZERO_WIDTH_SPACE));
|
|
14
11
|
}
|
|
15
|
-
return (h("span", { style: super.getStyles(), class: super.getClasses(), ref: (ref) => this.registerRef(ref) },
|
|
12
|
+
return (h("span", { style: super.getStyles(node), class: super.getClasses(node), ref: (ref) => this.registerRef(ref, node) }, node.text || ZERO_WIDTH_SPACE));
|
|
16
13
|
}
|
|
17
|
-
registerRef(ref) {
|
|
18
|
-
super.registerRef(ref);
|
|
14
|
+
registerRef(ref, node) {
|
|
15
|
+
super.registerRef(ref, node);
|
|
19
16
|
if (ref) {
|
|
20
|
-
const textColorAnnotation =
|
|
17
|
+
const textColorAnnotation = node.getAnnotationByType('TEXT_COLOR');
|
|
21
18
|
if (textColorAnnotation) {
|
|
22
19
|
TextNodeElementRenderingRegistry.register(ref, textColorAnnotation);
|
|
23
20
|
}
|
|
24
21
|
}
|
|
25
22
|
}
|
|
26
23
|
}
|
|
24
|
+
export default new RTETextNodeRenderer();
|
|
@@ -7,12 +7,14 @@ import { ImgToRTEImageBlockStrategy } from './img-to-rte-image-block-strategy';
|
|
|
7
7
|
import { VegaImageToRTEImageBlockStrategy } from './vega-image-to-rte-image-block-strategy';
|
|
8
8
|
import { OlToRTEListBlockStrategy } from './ol-to-rte-list-block-strategy';
|
|
9
9
|
import { SpanImageToRTEImageBlockStrategy } from './span-img-to-rte-image-block-strategy';
|
|
10
|
+
import { ULNotLiChildToRTEListItemBlockStrategy } from './ul-not-li-child-to-rte-list-item-block';
|
|
10
11
|
/** Element to DTO processor */
|
|
11
12
|
export class ElementToDtoStrategyProcessor {
|
|
12
13
|
constructor() {
|
|
13
14
|
this.elementStrategies = [
|
|
14
15
|
new UlToRTEListBlockStrategy(),
|
|
15
16
|
new OlToRTEListBlockStrategy(),
|
|
17
|
+
new ULNotLiChildToRTEListItemBlockStrategy(),
|
|
16
18
|
new LiToRTEListItemBlockStrategy(),
|
|
17
19
|
new InlineBlockToRTETextBlockStrategy(),
|
|
18
20
|
new ImgToRTEImageBlockStrategy(),
|