@heartlandone/vega 2.80.0 → 2.82.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-7a48292d.js → app-globals-3350d580.js} +7 -7
- package/dist/cjs/{aria-dialog-focusable-trap-slimmer-5a0a78fe.js → aria-dialog-focusable-trap-slimmer-5507f917.js} +15 -70
- package/dist/cjs/{child-nodes-event-prevent-slimmer-dd0bb8b6.js → child-nodes-event-prevent-slimmer-9b7095a4.js} +1 -1
- package/dist/cjs/{child-nodes-notify-observer-slimmer-a8d13f4c.js → child-nodes-notify-observer-slimmer-2631c381.js} +1 -1
- package/dist/cjs/{code-block-71a330a1.js → code-block-b1f8aded.js} +804 -63
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-fd077a6c.js → component-value-history-controller-slimmer.abstract-99fbd1f2.js} +6 -6
- package/dist/cjs/{content-state-afa26456.js → content-state-648652b4.js} +970 -467
- package/dist/cjs/{dark-mode-style-controller-3a04af3d.js → dark-mode-style-controller-bd765afb.js} +2 -322
- package/dist/cjs/{date-required-rule-9f0e3e99.js → date-required-rule-6addf5dd.js} +1 -1
- package/dist/cjs/{design-token-3f9589eb.js → design-token-93070bb8.js} +6 -130
- package/dist/cjs/{dom-node-subject-observer-factory-a3a60da4.js → dom-node-subject-observer-factory-9110cb94.js} +1 -1
- package/dist/cjs/drop-file-accept-filter-slimmer-cd619cc7.js +64 -0
- package/dist/cjs/{element-appender-slimmer-7a66229b.js → element-appender-slimmer-dedd3a34.js} +5 -5
- package/dist/cjs/{event-emit-slimmer-024e26bb.js → event-emit-slimmer-bcb458b2.js} +2 -2
- package/dist/cjs/{form-field-controller-slimmer-c487cf2b.js → form-field-controller-slimmer-0f3a028e.js} +5 -5
- package/dist/cjs/{image-annotation-action-4e72af4b.js → image-annotation-action-0339e983.js} +4 -4
- package/dist/cjs/index-58ea899e.js +4 -0
- package/dist/cjs/index.cjs.js +21 -18
- package/dist/cjs/{inject-keyboard-manager-d1a82089.js → inject-keyboard-manager-2d9c4f92.js} +1 -1
- package/dist/cjs/{internal-translation-controller-9f58a4e4.js → internal-translation-controller-fb1532f4.js} +3 -0
- package/dist/cjs/{internal-vega-event-manager-cc0f511c.js → internal-vega-event-manager-fef893bf.js} +1 -0
- package/dist/cjs/{keyboard-manager-9dbbb0d4.js → keyboard-manager-5ed6c472.js} +2 -2
- package/dist/cjs/{keyboard-manager-slimmer-68cff676.js → keyboard-manager-slimmer-879ff4f3.js} +1 -1
- package/dist/cjs/loader.cjs.js +15 -14
- package/dist/cjs/{month-view-generator-65a2f883.js → month-view-generator-d262e6ce.js} +1 -1
- package/dist/cjs/page-size-option-utils-d038dd3a.js +68 -0
- package/dist/cjs/{public-rules-36f202b3.js → public-rules-bce88d4e.js} +12 -11
- package/dist/cjs/{range-fa15d524.js → range-5bd6d72b.js} +2 -2
- package/dist/cjs/{responsive-format-facade-4419b4ae.js → responsive-format-facade-2cab7344.js} +3 -3
- package/dist/cjs/{rich-text-editor-required-rule-7d4c2973.js → rich-text-editor-required-rule-e8a922be.js} +1 -1
- package/dist/cjs/{split-cell-operation-19f98afb.js → split-cell-operation-bb388de6.js} +59 -24
- package/dist/cjs/state-border-formatter-4e5e4ed0.js +133 -0
- package/dist/cjs/{string-format-strategy.abstract-c65d9861.js → string-format-strategy.abstract-9a35e3b4.js} +1 -1
- package/dist/cjs/{string-input-formatter-slimmer-c2e04acc.js → string-input-formatter-slimmer-1018ddec.js} +4 -4
- package/dist/cjs/{string-mask-strategy-418fc0b8.js → string-mask-strategy-3aa17744.js} +2 -2
- package/dist/cjs/{style-formatter-3c9ce0e5.js → style-formatter-2226c869.js} +2 -2
- package/dist/cjs/{sub-state-notify-slimmer-7a4c6061.js → sub-state-notify-slimmer-b33171b0.js} +2 -2
- package/dist/cjs/{sub-state-observer-slimmer-f728e068.js → sub-state-observer-slimmer-b8f6f27b.js} +3 -3
- package/dist/cjs/{time-required-rule-ad091302.js → time-required-rule-970dfdca.js} +1 -1
- package/dist/cjs/tinycolor-polyfill-502efaa8.js +325 -0
- package/dist/cjs/{token-extension-90396de7.js → token-extension-9b213b6b.js} +212 -38
- package/dist/cjs/{translation-slimmer-c069ca84.js → translation-slimmer-d0c77ad2.js} +1 -1
- package/dist/cjs/{type-guard-d760850a.js → type-guard-3ec852d7.js} +51 -1
- package/dist/cjs/{ui-9e8c9732.js → ui-ae4ee13d.js} +69 -0
- package/dist/cjs/{valid-credit-card-number-rule-5ce8e973.js → valid-credit-card-number-rule-99d1bb34.js} +1 -1
- package/dist/cjs/vega-accordion.cjs.entry.js +9 -8
- package/dist/cjs/vega-app-footer.cjs.entry.js +2 -1
- package/dist/cjs/vega-app-header-button.cjs.entry.js +10 -9
- package/dist/cjs/vega-backdrop.cjs.entry.js +1 -1
- package/dist/cjs/vega-banner.cjs.entry.js +6 -5
- package/dist/cjs/vega-box.cjs.entry.js +7 -6
- package/dist/cjs/vega-brand-logo.cjs.entry.js +2 -1
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +29 -12
- package/dist/cjs/vega-button-circle.cjs.entry.js +11 -10
- package/dist/cjs/vega-button-group_2.cjs.entry.js +104 -15
- package/dist/cjs/vega-button-link.cjs.entry.js +5 -5
- package/dist/cjs/vega-button.cjs.entry.js +10 -10
- package/dist/cjs/vega-calendar_4.cjs.entry.js +12 -12
- package/dist/cjs/vega-card.cjs.entry.js +7 -6
- package/dist/cjs/vega-carousel.cjs.entry.js +7 -7
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +10 -10
- package/dist/cjs/vega-chip.cjs.entry.js +11 -10
- package/dist/cjs/vega-code-block.cjs.entry.js +16 -15
- package/dist/cjs/vega-color-picker.cjs.entry.js +28 -10
- package/dist/cjs/vega-color-swatch.cjs.entry.js +245 -0
- package/dist/cjs/vega-combo-box.cjs.entry.js +12 -12
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +342 -284
- package/dist/cjs/vega-dialog_2.cjs.entry.js +76 -202
- package/dist/cjs/vega-divider.cjs.entry.js +7 -6
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +75 -19
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-field-label.cjs.entry.js +4 -4
- package/dist/cjs/vega-file-uploader.cjs.entry.js +42 -92
- package/dist/cjs/vega-flag-icon.cjs.entry.js +5 -4
- package/dist/cjs/vega-flex.cjs.entry.js +8 -7
- package/dist/cjs/vega-font.cjs.entry.js +6 -5
- package/dist/cjs/vega-form.cjs.entry.js +12 -12
- package/dist/cjs/vega-grid.cjs.entry.js +6 -5
- package/dist/cjs/vega-icon.cjs.entry.js +6 -5
- package/dist/cjs/vega-image-uploader.cjs.entry.js +80 -15
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +13 -13
- package/dist/cjs/vega-input-numeric.cjs.entry.js +13 -13
- package/dist/cjs/vega-input-passcode.cjs.entry.js +12 -12
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +11 -11
- package/dist/cjs/vega-input-range.cjs.entry.js +10 -10
- package/dist/cjs/vega-input-select.cjs.entry.js +52 -17
- package/dist/cjs/vega-input.cjs.entry.js +17 -14
- package/dist/cjs/{vega-internal-event-id-a1837fa2.js → vega-internal-event-id-87014e4f.js} +2 -0
- package/dist/cjs/vega-item-toggle.cjs.entry.js +4 -4
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +122 -15
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-page-notification_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +5 -5
- package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +26 -10
- package/dist/cjs/vega-pagination.cjs.entry.js +48 -24
- package/dist/cjs/vega-popover_2.cjs.entry.js +14 -13
- package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +72 -17
- package/dist/cjs/vega-radio_2.cjs.entry.js +13 -13
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +104 -22
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +36 -24
- package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +15 -14
- package/dist/cjs/vega-section-title.cjs.entry.js +21 -3
- package/dist/cjs/vega-segment-control.cjs.entry.js +4 -4
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +12 -12
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +11 -11
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +10 -10
- package/dist/cjs/vega-signature-capture.cjs.entry.js +13 -12
- package/dist/cjs/vega-stepper.cjs.entry.js +11 -11
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +5 -5
- package/dist/cjs/vega-table_11.cjs.entry.js +436 -289
- package/dist/cjs/vega-text.cjs.entry.js +7 -3
- package/dist/cjs/vega-textarea.cjs.entry.js +9 -9
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +16 -16
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +8 -8
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +11 -10
- package/dist/cjs/vega.cjs.js +15 -14
- package/dist/cjs/{wait-for-component-did-render-b6aba2de.js → wait-for-component-did-render-16863a21.js} +2 -2
- package/dist/collection/collection-manifest.json +6 -0
- package/dist/collection/components/vega-banner/slimmers/renderers/vega-banner-renderer.js +1 -0
- package/dist/collection/components/vega-banner/vega-banner.css +36 -0
- package/dist/collection/components/vega-box/vega-box.js +1 -1
- package/dist/collection/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-item-renderer.js +9 -6
- package/dist/collection/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-renderer.js +4 -0
- package/dist/collection/components/vega-breadcrumb/vega-breadcrumb.css +6 -0
- package/dist/collection/components/vega-breadcrumb/vega-breadcrumb.js +31 -0
- package/dist/collection/components/vega-button/vega-button.css +4 -0
- package/dist/collection/components/vega-button-group/slimmers/controllers/vega-button-group-all-items-disabled-controller.js +64 -0
- package/dist/collection/components/vega-button-group/vega-button-group-item/slimmers/controllers/vega-button-group-item-sub-state-controller.js +7 -0
- package/dist/collection/components/vega-button-group/vega-button-group-item/slimmers/renderers/vega-button-group-item-renderer.js +6 -2
- package/dist/collection/components/vega-button-group/vega-button-group-item/vega-button-group-item.js +4 -2
- package/dist/collection/components/vega-button-group/vega-button-group.js +20 -1
- package/dist/collection/components/vega-card/vega-card.css +157 -0
- package/dist/collection/components/vega-card/vega-card.js +1 -1
- package/dist/collection/components/vega-chip/vega-chip.js +26 -1
- package/dist/collection/components/vega-color-picker/vega-color-picker.css +0 -1
- package/dist/collection/components/vega-color-picker/vega-color-picker.js +40 -1
- package/dist/collection/components/vega-color-swatch/slimmers/renderers/vega-color-swatch-renderer.js +127 -0
- package/dist/collection/components/vega-color-swatch/vega-color-swatch.css +155 -0
- package/dist/collection/components/vega-color-swatch/vega-color-swatch.js +314 -0
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-current-period-controller.js +5 -10
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-is-dual-months-controller.js +64 -0
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.js +3 -6
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.js +3 -11
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.js +2 -2
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.js +4 -5
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +13 -15
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.js +41 -2
- package/dist/collection/components/vega-dialog/vega-dialog.js +1 -1
- package/dist/collection/components/vega-divider/slimmers/controllers/vega-divider-size-controller.js +1 -1
- package/dist/collection/components/vega-divider/vega-divider.css +157 -0
- package/dist/collection/components/vega-divider/vega-divider.js +1 -1
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +37 -1
- package/dist/collection/components/vega-dropdown/slimmers/renderers/vega-dropdown-renderer.js +4 -1
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/controllers/vega-dropdown-item-state-controller.js +7 -0
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +5 -1
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.js +2 -1
- package/dist/collection/components/vega-dropdown/vega-dropdown.js +38 -0
- package/dist/collection/components/vega-file-uploader/vega-file-uploader.js +2 -2
- package/dist/collection/components/vega-flex/vega-flex.css +157 -0
- package/dist/collection/components/vega-flex/vega-flex.js +1 -1
- package/dist/collection/components/vega-image-uploader/slimmers/renderers/vega-image-uploader-default-content-renderer.js +45 -1
- package/dist/collection/components/vega-image-uploader/slimmers/renderers/vega-image-uploader-preview-content-renderer.js +16 -1
- package/dist/collection/components/vega-image-uploader/vega-image-uploader.js +5 -0
- package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-renderer.js +4 -1
- package/dist/collection/components/vega-input/vega-input.js +25 -0
- package/dist/collection/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.js +17 -4
- package/dist/collection/components/vega-input-select/vega-input-select.js +76 -0
- package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.js +0 -4
- package/dist/collection/components/vega-modal/slimmers/renderers/vega-modal-renderer.js +31 -21
- package/dist/collection/components/vega-modal/vega-modal.css +2685 -9
- package/dist/collection/components/vega-modal/vega-modal.js +75 -5
- package/dist/collection/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.js +85 -2
- package/dist/collection/components/vega-nav/vega-left-nav/vega-left-nav.js +23 -0
- package/dist/collection/components/vega-pagination/constants/page-size.js +2 -0
- package/dist/collection/components/vega-pagination/internal/vega-pagination-page-size-selector.js +11 -7
- package/dist/collection/components/vega-pagination/slimmers/controllers/vega-pagination-page-size-observer-controller.js +11 -1
- package/dist/collection/components/vega-pagination/utils/page-size-option-utils.js +57 -0
- package/dist/collection/components/vega-pagination/vega-pagination-page-size-selector-mobile/slimmers/renderers/page-size-selector-mobile-dropdown-renderer.js +15 -5
- package/dist/collection/components/vega-pagination/vega-pagination-page-size-selector-mobile/vega-pagination-page-size-selector-mobile.js +39 -3
- package/dist/collection/components/vega-pagination/vega-pagination.js +32 -11
- package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-direction-controller.js +34 -3
- package/dist/collection/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-step-controller.js +10 -2
- package/dist/collection/components/vega-progress-tracker/slimmers/renderers/vega-progress-tracker-renderer.js +4 -3
- package/dist/collection/components/vega-progress-tracker/vega-progress-tracker.js +37 -0
- package/dist/collection/components/vega-rich-text-editor/constants/constant.js +20 -0
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/image-annotation.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/inline-html-annotation.js +12 -0
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/link-group-annotation.js +8 -2
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +15 -4
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/code-block.js +6 -2
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/html-block.js +9 -15
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/image-block.js +3 -3
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-block.js +3 -3
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/list-item-block.js +3 -7
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/text-block.js +50 -9
- package/dist/collection/components/vega-rich-text-editor/dto/content-state.js +25 -6
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/code-block/code-block-filter-styles-strategy.js +39 -0
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/code-block/code-node-filter-styles-strategy.js +47 -0
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.js +64 -0
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.js +147 -14
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/image-node/image-filter-styles-strategy.js +26 -3
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-block-filter-styles-strategy.js +24 -0
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-heading-item-block-filter-styles-strategy.js +29 -0
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-item-block-filter-styles-strategy.js +39 -1
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-title-item-block-filter-styles-strategy.js +29 -0
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/predicate.js +94 -0
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-block/heading-filter-styles-strategy.js +15 -0
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-block/paragraph-filter-styles-strategy.js +48 -0
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-block/title-filter-styles-strategy.js +16 -0
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/code-filter-styles-strategy.js +32 -3
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/link-filter-styles-strategy.js +42 -3
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.js +108 -0
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/code-block-node.js +7 -2
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/image-node.js +2 -2
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/node.abstract.js +15 -4
- package/dist/collection/components/vega-rich-text-editor/dto/nodes/text-node.js +84 -14
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.js +61 -6
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.js +16 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js +14 -3
- package/dist/collection/components/vega-rich-text-editor/dto/setup.js +36 -6
- package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +10 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +9 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-annotation.js +17 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-caption-annotation.js +17 -18
- package/dist/collection/components/vega-rich-text-editor/extensions/table/annotations/table-cell-annotation.js +19 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-block.js +3 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-body-block.js +3 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-caption-block.js +21 -4
- package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-cell-block.js +3 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-head-block.js +3 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-head-cell-block.js +3 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-row-block.js +3 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/caption-to-caption-block-strategy.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/table/element-to-dto-strategies/td-to-table-cell-block-strategy.js +2 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/table/filter-styles-strategies/table-block/table-block-filter-styles-strategy.js +39 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/filter-styles-strategies/table-caption/table-caption-filter-styles-strategy.js +39 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/filter-styles-strategies/table-cell/table-cell-filter-styles-strategy.js +63 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/table-extension.js +7 -0
- package/dist/collection/components/vega-rich-text-editor/helpers/utils.js +24 -0
- package/dist/collection/components/vega-rich-text-editor/public-api.js +2 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/custom-style-annotation-handler.js +2 -25
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/html-element-to-annotation-generator.js +8 -2
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/inline-html-annotation-handler.js +30 -53
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/link-annotation-handler.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/text-style-annotation-handler.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.js +85 -17
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy-processor.js +12 -5
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/html-block-strategy.js +95 -43
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/inline-element-to-text-node-strategy.js +1 -2
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/predicate.js +29 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/strategy-tags.js +142 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.js +12 -2
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-editor.js +1 -1
- package/dist/collection/components/vega-section-title/slimmers/renderers/vega-section-title-renderer.js +8 -2
- package/dist/collection/components/vega-section-title/vega-section-title.css +35 -0
- package/dist/collection/components/vega-section-title/vega-section-title.js +64 -0
- package/dist/collection/components/vega-stepper/vega-stepper.css +15 -0
- package/dist/collection/components/vega-stepper/vega-stepper.js +2 -1
- package/dist/collection/components/vega-table/slimmers/controllers/vega-table-render-input-controller.js +25 -2
- package/dist/collection/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.js +28 -1
- package/dist/collection/components/vega-table/vega-table-cell/vega-table-cell.js +12 -10
- package/dist/collection/components/vega-table/vega-table-head-cell/vega-table-head-cell.js +14 -12
- package/dist/collection/components/vega-table/vega-table-head-row/slimmers/renderers/vega-table-head-row-renderer.js +5 -4
- package/dist/collection/components/vega-table/vega-table-head-row/vega-table-head-row.js +8 -1
- package/dist/collection/components/vega-text/slimmers/renderers/vega-text-tooltip-renderer.js +6 -2
- package/dist/collection/components/vega-text/vega-text.js +1 -1
- package/dist/collection/components/vega-tooltip/slimmers/controllers/vega-tooltip-element-appender-controller.js +1 -0
- package/dist/collection/components/vega-tooltip/vega-tooltip-content-box/vega-tooltip-content-box.css +1 -0
- package/dist/collection/components/vega-tooltip/vega-tooltip-content-box/vega-tooltip-content-box.js +1 -1
- package/dist/collection/components/vega-tooltip/vega-tooltip.js +1 -1
- package/dist/collection/helpers/event-manager/event-id/component-event-id-map.js +1 -0
- package/dist/collection/helpers/event-manager/event-id/vega-internal-event-id.js +1 -0
- package/dist/collection/helpers/formatter/responsive-map-formatter/responsive-margin-formatter.js +3 -3
- package/dist/collection/helpers/slimmers/aria-dialog-focusable-trap-slimmer.js +13 -68
- package/dist/collection/{components/vega-file-uploader/slimmers/controllers/vega-file-uploader-drop-file-filter-controller.js → helpers/slimmers/drop-file-accept-filter-slimmer.js} +13 -5
- package/dist/collection/helpers/slimmers/vega-table-child-render-input-consumer-slimmer.js +96 -0
- package/dist/collection/helpers/translation/locales/en.js +3 -0
- package/dist/collection/types/type-guard.js +47 -0
- package/dist/collection/utils/ui.js +68 -0
- package/dist/esm/{app-globals-e77015e3.js → app-globals-0b7e8b50.js} +7 -7
- package/dist/esm/{aria-dialog-focusable-trap-slimmer-5a2f92be.js → aria-dialog-focusable-trap-slimmer-853a91de.js} +15 -70
- package/dist/esm/{child-nodes-event-prevent-slimmer-2ecc3e1f.js → child-nodes-event-prevent-slimmer-9c24d4fc.js} +1 -1
- package/dist/esm/{child-nodes-notify-observer-slimmer-b7f0e419.js → child-nodes-notify-observer-slimmer-a8cb19cf.js} +1 -1
- package/dist/esm/{code-block-7d6f231b.js → code-block-b8be290a.js} +798 -64
- package/dist/esm/{component-value-history-controller-slimmer.abstract-acf65b17.js → component-value-history-controller-slimmer.abstract-10ccf8e6.js} +6 -6
- package/dist/esm/{content-state-084cd705.js → content-state-72b513d1.js} +959 -456
- package/dist/esm/{dark-mode-style-controller-82e5c1c6.js → dark-mode-style-controller-e9a6b097.js} +1 -321
- package/dist/esm/{date-required-rule-29608215.js → date-required-rule-891a6a57.js} +1 -1
- package/dist/esm/{design-token-edcd787b.js → design-token-59d07aa2.js} +6 -130
- package/dist/esm/{dom-node-subject-observer-factory-cea9248d.js → dom-node-subject-observer-factory-aca0116e.js} +1 -1
- package/dist/esm/drop-file-accept-filter-slimmer-ad759e4a.js +62 -0
- package/dist/esm/{element-appender-slimmer-08ec429b.js → element-appender-slimmer-5aca1bca.js} +5 -5
- package/dist/esm/{event-emit-slimmer-4fba1b35.js → event-emit-slimmer-32da9d90.js} +2 -2
- package/dist/esm/{form-field-controller-slimmer-8dd39707.js → form-field-controller-slimmer-899864a8.js} +5 -5
- package/dist/esm/{image-annotation-action-a6b33a81.js → image-annotation-action-ebd6c421.js} +4 -4
- package/dist/esm/index-090d31ca.js +4 -0
- package/dist/esm/index.js +20 -18
- package/dist/esm/{inject-keyboard-manager-7557816f.js → inject-keyboard-manager-dc1d7135.js} +1 -1
- package/dist/esm/{internal-translation-controller-b08aa9ab.js → internal-translation-controller-4fb104b2.js} +3 -0
- package/dist/esm/{internal-vega-event-manager-59f5bd47.js → internal-vega-event-manager-8a657bac.js} +1 -0
- package/dist/esm/{keyboard-manager-1846c6a5.js → keyboard-manager-6ea9968b.js} +2 -2
- package/dist/esm/{keyboard-manager-slimmer-1ae0aa4d.js → keyboard-manager-slimmer-7eed4734.js} +1 -1
- package/dist/esm/loader.js +15 -14
- package/dist/esm/{month-view-generator-b700ed08.js → month-view-generator-aaa27fce.js} +1 -1
- package/dist/esm/page-size-option-utils-50afc81a.js +61 -0
- package/dist/esm/{public-rules-fe2c7934.js → public-rules-f2005e11.js} +12 -11
- package/dist/esm/{range-00afe462.js → range-ed532278.js} +2 -2
- package/dist/esm/{responsive-format-facade-37d4d850.js → responsive-format-facade-e9926018.js} +3 -3
- package/dist/esm/{rich-text-editor-required-rule-6487ec94.js → rich-text-editor-required-rule-b559cf1a.js} +1 -1
- package/dist/esm/{split-cell-operation-9445e642.js → split-cell-operation-5587f594.js} +59 -24
- package/dist/esm/state-border-formatter-be51463d.js +129 -0
- package/dist/esm/{string-format-strategy.abstract-ec6d627b.js → string-format-strategy.abstract-0157b3c5.js} +1 -1
- package/dist/esm/{string-input-formatter-slimmer-959dff7a.js → string-input-formatter-slimmer-33ed3478.js} +4 -4
- package/dist/esm/{string-mask-strategy-49be41f0.js → string-mask-strategy-b58891b5.js} +2 -2
- package/dist/esm/{style-formatter-ad0b2bac.js → style-formatter-9662ae88.js} +2 -2
- package/dist/esm/{sub-state-notify-slimmer-ee8c417b.js → sub-state-notify-slimmer-1f907173.js} +2 -2
- package/dist/esm/{sub-state-observer-slimmer-4d30fa5c.js → sub-state-observer-slimmer-090c500a.js} +3 -3
- package/dist/esm/{time-required-rule-414b1590.js → time-required-rule-a9dc8473.js} +1 -1
- package/dist/esm/tinycolor-polyfill-7be0eb93.js +322 -0
- package/dist/esm/{token-extension-600b1c88.js → token-extension-9d717a35.js} +212 -38
- package/dist/esm/{translation-slimmer-35b1d0fa.js → translation-slimmer-4faae5a3.js} +1 -1
- package/dist/esm/{type-guard-23a08026.js → type-guard-152070e9.js} +49 -2
- package/dist/esm/{ui-ba5a4758.js → ui-b7600a48.js} +69 -1
- package/dist/esm/{valid-credit-card-number-rule-60abddac.js → valid-credit-card-number-rule-a7907cb7.js} +1 -1
- package/dist/esm/vega-accordion.entry.js +9 -8
- package/dist/esm/vega-app-footer.entry.js +2 -1
- package/dist/esm/vega-app-header-button.entry.js +10 -9
- package/dist/esm/vega-backdrop.entry.js +1 -1
- package/dist/esm/vega-banner.entry.js +6 -5
- package/dist/esm/vega-box.entry.js +7 -6
- package/dist/esm/vega-brand-logo.entry.js +2 -1
- package/dist/esm/vega-breadcrumb.entry.js +29 -12
- package/dist/esm/vega-button-circle.entry.js +11 -10
- package/dist/esm/vega-button-group_2.entry.js +104 -15
- package/dist/esm/vega-button-link.entry.js +5 -5
- package/dist/esm/vega-button.entry.js +10 -10
- package/dist/esm/vega-calendar_4.entry.js +12 -12
- package/dist/esm/vega-card.entry.js +7 -6
- package/dist/esm/vega-carousel.entry.js +7 -7
- package/dist/esm/vega-checkbox_2.entry.js +10 -10
- package/dist/esm/vega-chip.entry.js +11 -10
- package/dist/esm/vega-code-block.entry.js +16 -15
- package/dist/esm/vega-color-picker.entry.js +28 -10
- package/dist/esm/vega-color-swatch.entry.js +241 -0
- package/dist/esm/vega-combo-box.entry.js +12 -12
- package/dist/esm/vega-date-picker_2.entry.js +342 -284
- package/dist/esm/vega-dialog_2.entry.js +76 -202
- package/dist/esm/vega-divider.entry.js +7 -6
- package/dist/esm/vega-dropdown_5.entry.js +76 -20
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-field-label.entry.js +4 -4
- package/dist/esm/vega-file-uploader.entry.js +42 -92
- package/dist/esm/vega-flag-icon.entry.js +5 -4
- package/dist/esm/vega-flex.entry.js +8 -7
- package/dist/esm/vega-font.entry.js +6 -5
- package/dist/esm/vega-form.entry.js +12 -12
- package/dist/esm/vega-grid.entry.js +6 -5
- package/dist/esm/vega-icon.entry.js +6 -5
- package/dist/esm/vega-image-uploader.entry.js +80 -15
- package/dist/esm/vega-input-credit-card.entry.js +13 -13
- package/dist/esm/vega-input-numeric.entry.js +13 -13
- package/dist/esm/vega-input-passcode.entry.js +12 -12
- package/dist/esm/vega-input-phone-number.entry.js +11 -11
- package/dist/esm/vega-input-range.entry.js +10 -10
- package/dist/esm/vega-input-select.entry.js +52 -17
- package/dist/esm/vega-input.entry.js +17 -14
- package/dist/esm/{vega-internal-event-id-70bd893d.js → vega-internal-event-id-194bac82.js} +2 -1
- package/dist/esm/vega-item-toggle.entry.js +4 -4
- package/dist/esm/vega-left-nav_5.entry.js +122 -15
- package/dist/esm/vega-loader-wrapper_2.entry.js +4 -4
- package/dist/esm/vega-page-notification_2.entry.js +2 -2
- package/dist/esm/vega-pagination-page-selector-mobile.entry.js +5 -5
- package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +26 -10
- package/dist/esm/vega-pagination.entry.js +48 -24
- package/dist/esm/vega-popover_2.entry.js +14 -13
- package/dist/esm/vega-progress-tracker_2.entry.js +72 -17
- package/dist/esm/vega-radio_2.entry.js +13 -13
- package/dist/esm/vega-rich-text-content.entry.js +104 -22
- package/dist/esm/vega-rich-text-editor_4.entry.js +36 -24
- package/dist/esm/vega-rich-text-table-properties_3.entry.js +15 -14
- package/dist/esm/vega-section-title.entry.js +21 -3
- package/dist/esm/vega-segment-control.entry.js +4 -4
- package/dist/esm/vega-selection-chip_2.entry.js +12 -12
- package/dist/esm/vega-selection-tile_2.entry.js +11 -11
- package/dist/esm/vega-sidenav_3.entry.js +10 -10
- package/dist/esm/vega-signature-capture.entry.js +13 -12
- package/dist/esm/vega-stepper.entry.js +11 -11
- package/dist/esm/vega-tab-group_2.entry.js +5 -5
- package/dist/esm/vega-table_11.entry.js +436 -289
- package/dist/esm/vega-text.entry.js +7 -3
- package/dist/esm/vega-textarea.entry.js +9 -9
- package/dist/esm/vega-time-picker_2.entry.js +16 -16
- package/dist/esm/vega-toggle-switch.entry.js +8 -8
- package/dist/esm/vega-tooltip_2.entry.js +11 -10
- package/dist/esm/vega.js +15 -14
- package/dist/esm/{wait-for-component-did-render-03e7ccb2.js → wait-for-component-did-render-30cde59c.js} +2 -2
- package/dist/sri/vega-sri-manifest.json +389 -369
- package/dist/types/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-item-renderer.d.ts +1 -0
- package/dist/types/components/vega-breadcrumb/slimmers/renderers/vega-breadcrumb-renderer.d.ts +1 -0
- package/dist/types/components/vega-breadcrumb/vega-breadcrumb.d.ts +10 -0
- package/dist/types/components/vega-button-group/slimmers/controllers/vega-button-group-all-items-disabled-controller.d.ts +21 -0
- package/dist/types/components/vega-button-group/vega-button-group-item/slimmers/controllers/vega-button-group-item-sub-state-controller.d.ts +1 -0
- package/dist/types/components/vega-button-group/vega-button-group-item/slimmers/renderers/vega-button-group-item-renderer.d.ts +1 -0
- package/dist/types/components/vega-button-group/vega-button-group-item/vega-button-group-item.d.ts +1 -0
- package/dist/types/components/vega-button-group/vega-button-group.d.ts +5 -0
- package/dist/types/components/vega-chip/vega-chip.d.ts +9 -0
- package/dist/types/components/vega-color-picker/vega-color-picker.d.ts +14 -0
- package/dist/types/components/vega-color-swatch/slimmers/renderers/vega-color-swatch-renderer.d.ts +48 -0
- package/dist/types/components/vega-color-swatch/types.d.ts +5 -0
- package/dist/types/components/vega-color-swatch/vega-color-swatch.d.ts +86 -0
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-current-period-controller.d.ts +1 -6
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-is-dual-months-controller.d.ts +28 -0
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.d.ts +1 -2
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +1 -2
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.d.ts +1 -1
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.d.ts +1 -1
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.d.ts +12 -0
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +12 -0
- package/dist/types/components/vega-dropdown/slimmers/renderers/vega-dropdown-renderer.d.ts +1 -0
- package/dist/types/components/vega-dropdown/vega-dropdown-item/slimmers/controllers/vega-dropdown-item-state-controller.d.ts +1 -0
- package/dist/types/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.d.ts +1 -0
- package/dist/types/components/vega-dropdown/vega-dropdown-item/vega-dropdown-item.d.ts +4 -0
- package/dist/types/components/vega-dropdown/vega-dropdown.d.ts +10 -0
- package/dist/types/components/vega-file-uploader/vega-file-uploader.d.ts +2 -2
- package/dist/types/components/vega-image-uploader/slimmers/renderers/vega-image-uploader-default-content-renderer.d.ts +25 -0
- package/dist/types/components/vega-image-uploader/slimmers/renderers/vega-image-uploader-preview-content-renderer.d.ts +10 -0
- package/dist/types/components/vega-image-uploader/vega-image-uploader.d.ts +2 -0
- package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-renderer.d.ts +1 -0
- package/dist/types/components/vega-input/types.d.ts +5 -0
- package/dist/types/components/vega-input/vega-input.d.ts +17 -1
- package/dist/types/components/vega-input-select/slimmers/renderers/vega-input-select-dropdown-renderer.d.ts +3 -0
- package/dist/types/components/vega-input-select/types.d.ts +14 -0
- package/dist/types/components/vega-input-select/vega-input-select.d.ts +19 -1
- package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-open-state-controller.d.ts +0 -1
- package/dist/types/components/vega-modal/slimmers/renderers/vega-modal-renderer.d.ts +4 -0
- package/dist/types/components/vega-modal/vega-modal.d.ts +24 -3
- package/dist/types/components/vega-nav/vega-left-nav/slimmers/controllers/vega-left-nav-open-state-controller.d.ts +17 -0
- package/dist/types/components/vega-pagination/constants/page-size.d.ts +2 -0
- package/dist/types/components/vega-pagination/internal/vega-pagination-page-size-selector.d.ts +3 -2
- package/dist/types/components/vega-pagination/slimmers/controllers/vega-pagination-page-size-observer-controller.d.ts +2 -0
- package/dist/types/components/vega-pagination/types.d.ts +15 -0
- package/dist/types/components/vega-pagination/utils/page-size-option-utils.d.ts +42 -0
- package/dist/types/components/vega-pagination/vega-pagination-page-size-selector-mobile/slimmers/renderers/page-size-selector-mobile-dropdown-renderer.d.ts +2 -0
- package/dist/types/components/vega-pagination/vega-pagination-page-size-selector-mobile/vega-pagination-page-size-selector-mobile.d.ts +9 -2
- package/dist/types/components/vega-pagination/vega-pagination.d.ts +8 -3
- package/dist/types/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-direction-controller.d.ts +14 -2
- package/dist/types/components/vega-progress-tracker/slimmers/controllers/vega-progress-tracker-current-step-controller.d.ts +1 -0
- package/dist/types/components/vega-progress-tracker/slimmers/renderers/vega-progress-tracker-renderer.d.ts +1 -1
- package/dist/types/components/vega-progress-tracker/vega-progress-tracker.d.ts +16 -0
- package/dist/types/components/vega-rich-text-editor/constants/constant.d.ts +5 -0
- package/dist/types/components/vega-rich-text-editor/dto/annotations/image-annotation.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/dto/annotations/inline-html-annotation.d.ts +14 -0
- package/dist/types/components/vega-rich-text-editor/dto/annotations/link-group-annotation.d.ts +8 -2
- package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +4 -2
- package/dist/types/components/vega-rich-text-editor/dto/blocks/code-block.d.ts +2 -2
- package/dist/types/components/vega-rich-text-editor/dto/blocks/html-block.d.ts +1 -11
- package/dist/types/components/vega-rich-text-editor/dto/blocks/image-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/dto/blocks/list-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/dto/blocks/list-item-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/dto/blocks/text-block.d.ts +15 -2
- package/dist/types/components/vega-rich-text-editor/dto/content-state.d.ts +9 -3
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/code-block/code-block-filter-styles-strategy.d.ts +27 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/code-block/code-node-filter-styles-strategy.d.ts +27 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.d.ts +27 -1
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.d.ts +92 -8
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/image-node/image-filter-styles-strategy.d.ts +21 -3
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-block-filter-styles-strategy.d.ts +15 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-heading-item-block-filter-styles-strategy.d.ts +19 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-item-block-filter-styles-strategy.d.ts +25 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/list-block/list-title-item-block-filter-styles-strategy.d.ts +19 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/predicate.d.ts +72 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-block/heading-filter-styles-strategy.d.ts +10 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-block/paragraph-filter-styles-strategy.d.ts +34 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-block/title-filter-styles-strategy.d.ts +11 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/code-filter-styles-strategy.d.ts +25 -2
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/link-filter-styles-strategy.d.ts +24 -4
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.d.ts +62 -0
- package/dist/types/components/vega-rich-text-editor/dto/nodes/code-block-node.d.ts +7 -3
- package/dist/types/components/vega-rich-text-editor/dto/nodes/image-node.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/dto/nodes/node.abstract.d.ts +5 -3
- package/dist/types/components/vega-rich-text-editor/dto/nodes/text-node.d.ts +43 -4
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.d.ts +25 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/text-block-renderer.d.ts +5 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.d.ts +12 -0
- package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-annotation.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-caption-annotation.d.ts +7 -1
- package/dist/types/components/vega-rich-text-editor/extensions/table/annotations/table-cell-annotation.d.ts +9 -1
- package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-body-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-caption-block.d.ts +5 -2
- package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-cell-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-head-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-head-cell-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-row-block.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/extensions/table/filter-styles-strategies/table-block/table-block-filter-styles-strategy.d.ts +29 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/filter-styles-strategies/table-caption/table-caption-filter-styles-strategy.d.ts +29 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/filter-styles-strategies/table-cell/table-cell-filter-styles-strategy.d.ts +46 -0
- package/dist/types/components/vega-rich-text-editor/helpers/utils.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/interface.d.ts +27 -5
- package/dist/types/components/vega-rich-text-editor/public-api.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/custom-style-annotation-handler.d.ts +0 -7
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/html-element-to-annotation-generator.d.ts +1 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/inline-html-annotation-handler.d.ts +11 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.d.ts +43 -7
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/element-to-dto-strategy-processor.d.ts +8 -3
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/html-block-strategy.d.ts +34 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/predicate.d.ts +21 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/strategy-tags.d.ts +83 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.d.ts +6 -0
- package/dist/types/components/vega-section-title/slimmers/renderers/vega-section-title-renderer.d.ts +2 -0
- package/dist/types/components/vega-section-title/types.d.ts +1 -0
- package/dist/types/components/vega-section-title/vega-section-title.d.ts +14 -0
- package/dist/types/components/vega-table/slimmers/controllers/vega-table-render-input-controller.d.ts +8 -1
- package/dist/types/components/vega-table/slimmers/renderers/vega-table-pinned-renderer.d.ts +5 -1
- package/dist/types/components/vega-table/vega-table-cell/vega-table-cell.d.ts +5 -0
- package/dist/types/components/vega-table/vega-table-head-cell/vega-table-head-cell.d.ts +5 -0
- package/dist/types/components/vega-table/vega-table-head-row/slimmers/renderers/vega-table-head-row-renderer.d.ts +1 -0
- package/dist/types/components/vega-table/vega-table-head-row/vega-table-head-row.d.ts +4 -0
- package/dist/types/components/vega-text/types.d.ts +5 -3
- package/dist/types/components/vega-tooltip/vega-tooltip-content-box/vega-tooltip-content-box.d.ts +4 -0
- package/dist/types/components/vega-tooltip/vega-tooltip.d.ts +4 -0
- package/dist/types/components.d.ts +247 -13
- package/dist/types/helpers/event-manager/event-id/vega-internal-event-id.d.ts +1 -0
- package/dist/types/helpers/formatter/string-formatter/string-mask-strategy.d.ts +56 -3
- package/dist/types/helpers/slimmers/aria-dialog-focusable-trap-slimmer.d.ts +4 -12
- package/dist/types/helpers/slimmers/drop-file-accept-filter-slimmer.d.ts +29 -0
- package/dist/types/helpers/slimmers/vega-table-child-render-input-consumer-slimmer.d.ts +48 -0
- package/dist/types/helpers/translation/interface.d.ts +4 -1
- package/dist/types/types/components.type.d.ts +10 -0
- package/dist/types/types/public-api.d.ts +3 -1
- package/dist/types/types/type-guard.d.ts +29 -1
- package/dist/types/types/ui.type.d.ts +11 -1
- package/dist/types/utils/ui.d.ts +14 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-7618dde4.js → p-02467b61.js} +1 -1
- package/dist/vega/p-075bb809.entry.js +1 -0
- package/dist/vega/p-085de8fc.js +1 -0
- package/dist/vega/p-0915a8d3.entry.js +1 -0
- package/dist/vega/p-0caf52e0.js +1 -0
- package/dist/vega/{p-19ad4f15.entry.js → p-0dbd7723.entry.js} +1 -1
- package/dist/vega/{p-cf70c57d.js → p-103d20f5.js} +1 -1
- package/dist/vega/p-115d6053.entry.js +1 -0
- package/dist/vega/p-116e3963.js +1 -0
- package/dist/vega/p-14de7ba0.entry.js +1 -0
- package/dist/vega/p-19a30f98.entry.js +1 -0
- package/dist/vega/{p-90137c68.entry.js → p-1ca95601.entry.js} +1 -1
- package/dist/vega/p-1dd6ba67.js +1 -0
- package/dist/vega/p-1efb47fe.entry.js +1 -0
- package/dist/vega/p-23c840dc.entry.js +1 -0
- package/dist/vega/p-246eb001.entry.js +1 -0
- package/dist/vega/p-25ab7a33.entry.js +1 -0
- package/dist/vega/p-264b3309.entry.js +1 -0
- package/dist/vega/{p-c045e4c1.entry.js → p-280f63fa.entry.js} +1 -1
- package/dist/vega/p-295326ca.entry.js +1 -0
- package/dist/vega/p-29d31c98.entry.js +1 -0
- package/dist/vega/{p-382b71a3.entry.js → p-29f42c27.entry.js} +1 -1
- package/dist/vega/p-2b5cf2b3.js +1 -0
- package/dist/vega/{p-0313393d.entry.js → p-30445cd9.entry.js} +1 -1
- package/dist/vega/p-318f0df5.js +1 -0
- package/dist/vega/p-337a5e76.js +1 -0
- package/dist/vega/p-3505f7cc.entry.js +1 -0
- package/dist/vega/p-38af89b9.js +1 -0
- package/dist/vega/p-3fae8d3f.entry.js +1 -0
- package/dist/vega/{p-b696a861.js → p-42141782.js} +1 -1
- package/dist/vega/{p-d1ca70a1.js → p-44044ed7.js} +1 -1
- package/dist/vega/p-475bd8bf.entry.js +1 -0
- package/dist/vega/{p-df5bfbc4.entry.js → p-47611a83.entry.js} +1 -1
- package/dist/vega/p-4e95248c.entry.js +1 -0
- package/dist/vega/p-4f938ee4.entry.js +1 -0
- package/dist/vega/{p-f3456993.entry.js → p-513f51ec.entry.js} +1 -1
- package/dist/vega/{p-ba415db6.entry.js → p-51d2e0ab.entry.js} +1 -1
- package/dist/vega/{p-ab21fdf6.entry.js → p-58b6ac33.entry.js} +1 -1
- package/dist/vega/{p-7362723e.entry.js → p-596bc4f6.entry.js} +1 -1
- package/dist/vega/{p-70f1cf4e.entry.js → p-597588d0.entry.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/p-5ffdea8e.js +1 -0
- package/dist/vega/{p-3224e47c.js → p-6572e038.js} +1 -1
- package/dist/vega/{p-b5c2fff3.entry.js → p-6d95390b.entry.js} +1 -1
- package/dist/vega/p-6e70d3cc.js +1 -0
- package/dist/vega/p-6e9f832f.js +1 -0
- package/dist/vega/{p-c9201bf4.js → p-76063dcb.js} +1 -1
- package/dist/vega/p-783531cf.entry.js +1 -0
- package/dist/vega/{p-35386999.entry.js → p-7d85cc74.entry.js} +1 -1
- package/dist/vega/p-7df43192.entry.js +1 -0
- package/dist/vega/p-7faaa5e1.entry.js +1 -0
- package/dist/vega/{p-517434d4.entry.js → p-8583dd34.entry.js} +1 -1
- package/dist/vega/p-85abe824.entry.js +1 -0
- package/dist/vega/p-874bf8b2.js +1 -0
- package/dist/vega/p-88b6184c.entry.js +1 -0
- package/dist/vega/p-8aee6b74.js +1 -0
- package/dist/vega/{p-1557ed92.entry.js → p-8b217c7e.entry.js} +1 -1
- package/dist/vega/p-8da66d41.entry.js +1 -0
- package/dist/vega/{p-b3e40faf.js → p-956b170c.js} +1 -1
- package/dist/vega/{p-1c45565d.js → p-9751c801.js} +1 -1
- package/dist/vega/{p-7ceab8c7.entry.js → p-97f36f4e.entry.js} +1 -1
- package/dist/vega/p-988401c3.entry.js +1 -0
- package/dist/vega/{p-47ca1f69.entry.js → p-9c1a48b9.entry.js} +1 -1
- package/dist/vega/p-9d854d43.js +1 -0
- package/dist/vega/p-9dcecdd3.js +1 -0
- package/dist/vega/{p-612e3ded.js → p-a07c0f8c.js} +1 -1
- package/dist/vega/{p-576fe408.js → p-a0c3968b.js} +1 -1
- package/dist/vega/p-a30ae8a1.js +1 -0
- package/dist/vega/p-a5bd3ecd.entry.js +1 -0
- package/dist/vega/p-a6dbc63d.entry.js +1 -0
- package/dist/vega/p-aa985d73.js +1 -0
- package/dist/vega/{p-44c5cbb7.js → p-ab829745.js} +1 -1
- package/dist/vega/p-b08a70e6.entry.js +1 -0
- package/dist/vega/p-b19b1c08.js +1 -0
- package/dist/vega/p-b5497af2.entry.js +1 -0
- package/dist/vega/p-b7624ce4.js +1 -0
- package/dist/vega/p-b9386dd0.js +1 -0
- package/dist/vega/{p-e84b95d4.js → p-b9947846.js} +1 -1
- package/dist/vega/p-b9a95aca.entry.js +1 -0
- package/dist/vega/{p-dc9b5063.entry.js → p-bb46d8e6.entry.js} +1 -1
- package/dist/vega/{p-ec1d76c6.entry.js → p-c366e7f7.entry.js} +1 -1
- package/dist/vega/p-c36afa21.entry.js +1 -0
- package/dist/vega/{p-60cf2a68.js → p-c8435185.js} +1 -1
- package/dist/vega/{p-04e56b0c.entry.js → p-c8d41cdc.entry.js} +1 -1
- package/dist/vega/p-cab70b95.entry.js +1 -0
- package/dist/vega/p-cc18970f.entry.js +1 -0
- package/dist/vega/p-d320496e.entry.js +1 -0
- package/dist/vega/{p-89e56502.js → p-d32e83e7.js} +1 -1
- package/dist/vega/{p-65900dbf.entry.js → p-d456386a.entry.js} +1 -1
- package/dist/vega/p-d4f1f007.js +3 -0
- package/dist/vega/{p-82016096.js → p-d5531d3c.js} +1 -1
- package/dist/vega/{p-4eb282ef.entry.js → p-d7bd2470.entry.js} +1 -1
- package/dist/vega/p-d872beb1.entry.js +1 -0
- package/dist/vega/p-d9d5c693.entry.js +1 -0
- package/dist/vega/{p-be3517be.entry.js → p-da742a7f.entry.js} +1 -1
- package/dist/vega/{p-204c7d41.js → p-dd6211cd.js} +1 -1
- package/dist/vega/{p-f48c43f4.entry.js → p-e340d58c.entry.js} +1 -1
- package/dist/vega/p-e71864ff.js +1 -0
- package/dist/vega/{p-7912741f.entry.js → p-e7a4b760.entry.js} +1 -1
- package/dist/vega/{p-ffa2e3a6.entry.js → p-ea564928.entry.js} +1 -1
- package/dist/vega/p-eb0ebf50.entry.js +1 -0
- package/dist/vega/p-ebdb489c.entry.js +1 -0
- package/dist/vega/{p-7c2fecfd.entry.js → p-ed01657b.entry.js} +1 -1
- package/dist/vega/p-eda7cd76.entry.js +1 -0
- package/dist/vega/{p-68a531cf.js → p-edda10f7.js} +1 -1
- package/dist/vega/{p-2c2df248.js → p-ef59f6f0.js} +1 -1
- package/dist/vega/{p-1a2f92a3.entry.js → p-efc8c09e.entry.js} +1 -1
- package/dist/vega/p-f020738c.entry.js +1 -0
- package/dist/vega/{p-878851f6.js → p-f28a6074.js} +1 -1
- package/dist/vega/{p-07a2b42a.js → p-f7a5746b.js} +1 -1
- package/dist/vega/{p-9dc23325.entry.js → p-f89cf75a.entry.js} +1 -1
- package/dist/vega/p-fb5ea4b2.js +1 -0
- package/dist/vega/p-fc7ab79d.js +1 -0
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +1 -1
- package/dist/collection/components/vega-modal/slimmers/controllers/vega-modal-layout-controller.js +0 -146
- package/dist/types/components/vega-file-uploader/slimmers/controllers/vega-file-uploader-drop-file-filter-controller.d.ts +0 -22
- package/dist/types/components/vega-modal/slimmers/controllers/vega-modal-layout-controller.d.ts +0 -42
- package/dist/vega/p-010b5e74.js +0 -1
- package/dist/vega/p-01883ffc.entry.js +0 -1
- package/dist/vega/p-02578a59.js +0 -1
- package/dist/vega/p-043e685a.entry.js +0 -1
- package/dist/vega/p-08780df0.entry.js +0 -1
- package/dist/vega/p-10fa4eac.js +0 -1
- package/dist/vega/p-18619467.js +0 -1
- package/dist/vega/p-1feb4f2a.entry.js +0 -1
- package/dist/vega/p-203bc4db.entry.js +0 -1
- package/dist/vega/p-21c9e1ca.entry.js +0 -1
- package/dist/vega/p-22336063.js +0 -1
- package/dist/vega/p-224b67ff.entry.js +0 -1
- package/dist/vega/p-2d917e2d.entry.js +0 -1
- package/dist/vega/p-2e73582d.entry.js +0 -1
- package/dist/vega/p-334e3b02.entry.js +0 -1
- package/dist/vega/p-33860e54.js +0 -1
- package/dist/vega/p-365d21ac.entry.js +0 -1
- package/dist/vega/p-367d44d9.entry.js +0 -1
- package/dist/vega/p-3d2d267d.js +0 -1
- package/dist/vega/p-3f3c771a.entry.js +0 -1
- package/dist/vega/p-434fc427.entry.js +0 -1
- package/dist/vega/p-559197f8.js +0 -1
- package/dist/vega/p-5ae4ea20.entry.js +0 -1
- package/dist/vega/p-68124bc5.js +0 -1
- package/dist/vega/p-6af55f1c.entry.js +0 -1
- package/dist/vega/p-6c5250b3.js +0 -1
- package/dist/vega/p-6f2e5bc6.js +0 -1
- package/dist/vega/p-716c71e6.js +0 -1
- package/dist/vega/p-76b80a0c.js +0 -1
- package/dist/vega/p-7942c042.entry.js +0 -1
- package/dist/vega/p-8327635d.js +0 -1
- package/dist/vega/p-840ad046.entry.js +0 -1
- package/dist/vega/p-8ac2d165.js +0 -1
- package/dist/vega/p-8adf9732.entry.js +0 -1
- package/dist/vega/p-8b891f36.entry.js +0 -1
- package/dist/vega/p-9341c1a9.js +0 -1
- package/dist/vega/p-9390a94b.entry.js +0 -1
- package/dist/vega/p-9551da9c.entry.js +0 -1
- package/dist/vega/p-9862d1a8.entry.js +0 -1
- package/dist/vega/p-a4dbf2cc.js +0 -1
- package/dist/vega/p-a99e75a1.entry.js +0 -1
- package/dist/vega/p-b5a6bd0f.entry.js +0 -1
- package/dist/vega/p-c4e32125.entry.js +0 -1
- package/dist/vega/p-c5b698f6.entry.js +0 -1
- package/dist/vega/p-c61279a7.entry.js +0 -1
- package/dist/vega/p-c6d62f0d.js +0 -1
- package/dist/vega/p-c8feb644.entry.js +0 -1
- package/dist/vega/p-cc055723.entry.js +0 -1
- package/dist/vega/p-cca5042b.entry.js +0 -1
- package/dist/vega/p-cda45d2a.entry.js +0 -1
- package/dist/vega/p-cdf5b2f0.entry.js +0 -1
- package/dist/vega/p-d1494c7c.entry.js +0 -1
- package/dist/vega/p-d202e69d.entry.js +0 -1
- package/dist/vega/p-dcd18ab1.js +0 -1
- package/dist/vega/p-e4726dcd.entry.js +0 -1
- package/dist/vega/p-ea21462f.js +0 -1
- package/dist/vega/p-f4190826.entry.js +0 -1
- package/dist/vega/p-fdac91c4.entry.js +0 -1
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const changeManager = require('./change-manager-a297e4d2.js');
|
|
4
|
-
const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-
|
|
5
|
-
const vegaInternalEventId = require('./vega-internal-event-id-
|
|
4
|
+
const domNodeSubjectObserverFactory = require('./dom-node-subject-observer-factory-9110cb94.js');
|
|
5
|
+
const vegaInternalEventId = require('./vega-internal-event-id-87014e4f.js');
|
|
6
6
|
const string = require('./string-39438062.js');
|
|
7
7
|
const globalSlimmerRegistry = require('./global-slimmer-registry-b3bce7e0.js');
|
|
8
|
-
const typeGuard = require('./type-guard-
|
|
8
|
+
const typeGuard = require('./type-guard-3ec852d7.js');
|
|
9
|
+
const typography = require('./typography-4560e7f1.js');
|
|
9
10
|
const misc = require('./misc-3d30df91.js');
|
|
10
|
-
const darkModeStyleController = require('./dark-mode-style-controller-
|
|
11
|
+
const darkModeStyleController = require('./dark-mode-style-controller-bd765afb.js');
|
|
11
12
|
const object = require('./object-b53e9416.js');
|
|
12
|
-
const ui = require('./ui-
|
|
13
|
+
const ui = require('./ui-ae4ee13d.js');
|
|
13
14
|
|
|
14
15
|
exports.InternalAnnotationTypeEnum = void 0;
|
|
15
16
|
(function (InternalAnnotationTypeEnum) {
|
|
@@ -162,6 +163,405 @@ class ModifyContentAction {
|
|
|
162
163
|
}
|
|
163
164
|
}
|
|
164
165
|
|
|
166
|
+
/**
|
|
167
|
+
* Creates a style map from the inline styles of an HTML element. This function extracts the 'style' attribute from the given element.
|
|
168
|
+
*
|
|
169
|
+
* @param {HTMLElement} element The HTML element from which to extract inline styles.
|
|
170
|
+
* @returns {AnnotationStyle} An object representing the custom style annotations.
|
|
171
|
+
*/
|
|
172
|
+
function createStyleMapFromElement(element) {
|
|
173
|
+
const customStyle = element.getAttribute('style');
|
|
174
|
+
if (!customStyle)
|
|
175
|
+
return {};
|
|
176
|
+
const styleValue = customStyle.split(';').filter(Boolean);
|
|
177
|
+
return styleValue
|
|
178
|
+
.filter((key) => key !== ' ')
|
|
179
|
+
.map((key) => {
|
|
180
|
+
// to remove redundant quote pairs if needed, for example: ['fontFamily: "Roboto Mono"'] will be updated to ['fontFamily: Roboto Mono']
|
|
181
|
+
const styleObject = key.replace(/(['"])(.*?)\1/g, '$2').split(':');
|
|
182
|
+
const styleKey = string.dashCaseToCamel(styleObject[0].trim());
|
|
183
|
+
return {
|
|
184
|
+
[styleKey]: styleObject[1].trim().replace(';', ''),
|
|
185
|
+
};
|
|
186
|
+
})
|
|
187
|
+
.reduce((current, obj) => (Object.assign(Object.assign({}, current), obj)), {});
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* Abstract strategy class for filtering default styles in the rich text editor.
|
|
192
|
+
* Concrete strategies define which styles to strip via `stylesToBeFiltered`.
|
|
193
|
+
*
|
|
194
|
+
* This base is shared by two kinds of concrete strategies:
|
|
195
|
+
* 1. Block/node output strategies – filter inline styles when converting DTO → HTML.
|
|
196
|
+
* 2. Annotation parsing strategies – strip redundant defaults when converting HTML → DTO.
|
|
197
|
+
*/
|
|
198
|
+
class RTEFilterStylesStrategy {
|
|
199
|
+
constructor() {
|
|
200
|
+
/**
|
|
201
|
+
* The class name to be added to the element if the styles are successfully filtered. This should be defined in the concrete implementation of the strategy if needed.
|
|
202
|
+
* After the class name is added to the element, it will be removed in the next refill process to avoid redundant class names.
|
|
203
|
+
* The class name will only be added when the styles are successfully extracted, which means the expected styles are present in the full styles object and have been deleted from it.
|
|
204
|
+
*/
|
|
205
|
+
this.classNameToBeAdded = '';
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Removes matched default styles from the `customStyle` property of the given annotations object.
|
|
209
|
+
* If all custom styles are defaults, the `customStyle` key is deleted entirely.
|
|
210
|
+
*
|
|
211
|
+
* @param {VegaRTEAnnotations} annotations - The annotations object (mutated in place).
|
|
212
|
+
* @returns {VegaRTEAnnotations} The same annotations reference.
|
|
213
|
+
*/
|
|
214
|
+
filterAnnotations(annotations) {
|
|
215
|
+
const customStyle = annotations.customStyle;
|
|
216
|
+
if (!customStyle) {
|
|
217
|
+
return annotations;
|
|
218
|
+
}
|
|
219
|
+
this.extractAndDeleteMatchedStyles(customStyle);
|
|
220
|
+
if (Object.keys(customStyle).length === 0) {
|
|
221
|
+
delete annotations.customStyle;
|
|
222
|
+
}
|
|
223
|
+
return annotations;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Filters and deletes the matched styles from the full styles object, add the corresponding class name if necessary, and returns the result.
|
|
227
|
+
*
|
|
228
|
+
* @param {RTEFilterStyles} fullStyles - The full set of styles to filter.
|
|
229
|
+
* @param {string[]} classNames - The class names to consider.
|
|
230
|
+
* @returns {RTEFilterInlineStylesResult} The filtered styles and class names.
|
|
231
|
+
*/
|
|
232
|
+
filterAndDeleteStyles(fullStyles, classNames) {
|
|
233
|
+
const classSet = new Set(classNames);
|
|
234
|
+
const shouldAddClass = this.extractAndDeleteMatchedStyles(fullStyles);
|
|
235
|
+
if (shouldAddClass && this.classNameToBeAdded) {
|
|
236
|
+
classSet.add(this.classNameToBeAdded);
|
|
237
|
+
}
|
|
238
|
+
return {
|
|
239
|
+
styles: fullStyles,
|
|
240
|
+
classNames: Array.from(classSet),
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Refills the external styles for a given HTML element based on a matched external style rule.
|
|
245
|
+
*
|
|
246
|
+
* @param {HTMLElement} element - The HTML element to apply the styles to. The element's existing styles will be merged with the matched rule's styles, and the matched class name will be removed from the element.
|
|
247
|
+
*/
|
|
248
|
+
refillStyles(element) {
|
|
249
|
+
if (this.classNameToBeAdded) {
|
|
250
|
+
element.classList.remove(this.classNameToBeAdded);
|
|
251
|
+
}
|
|
252
|
+
const existingStyles = createStyleMapFromElement(element);
|
|
253
|
+
const mergedStyles = Object.assign(Object.assign({}, this.stylesToBeFiltered), existingStyles);
|
|
254
|
+
const cssText = Object.entries(Object.assign({}, mergedStyles))
|
|
255
|
+
.map(([key, value]) => `${string.camelToDashCase(key)}: ${value};`)
|
|
256
|
+
.join('');
|
|
257
|
+
element.setAttribute('style', cssText);
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Determines if the strategy can filter the given block or node instance.
|
|
261
|
+
* Return false by default, concrete strategies should override this method to specify the filtering logic based on the block or node instance's properties, such as its type or annotations.
|
|
262
|
+
*
|
|
263
|
+
* @param {RTEBlock | RTENode} _blockOrNodeInstance - The block or node instance to check.
|
|
264
|
+
* @returns {boolean} True if the strategy can filter the instance, false otherwise.
|
|
265
|
+
*/
|
|
266
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
267
|
+
canFilter(_blockOrNodeInstance) {
|
|
268
|
+
return false;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Determines if the strategy can refill styles for the given block or node class name and element.
|
|
272
|
+
* Return false by default to avoid unnecessary refill attempts, concrete strategies should override this method to specify the refilling logic based on the class name and element properties, such as the presence of certain attributes or existing styles.
|
|
273
|
+
*
|
|
274
|
+
* @param {string} _blockOrNodeClassName - The class name of the block or node.
|
|
275
|
+
* @param {HTMLElement} _element - The HTML element to apply the styles to.
|
|
276
|
+
* @returns {boolean} True if the strategy can refill styles, false otherwise.
|
|
277
|
+
*/
|
|
278
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
279
|
+
canRefill(_blockOrNodeClassName, _element) {
|
|
280
|
+
return false;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Generates the CSS text to be applied to the element based on the strategy's styles to filter. This method should be implemented in the concrete strategy class to return the appropriate CSS text for the styles it handles.
|
|
284
|
+
* Return an empty string by default to avoid applying any styles when the method is not implemented in a concrete strategy.
|
|
285
|
+
*
|
|
286
|
+
* @returns {string} The CSS text to be applied to the element.
|
|
287
|
+
*/
|
|
288
|
+
toCssText() {
|
|
289
|
+
return '';
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Whether this strategy should always filter, regardless of `autoMatchFormat`.
|
|
293
|
+
* Override to `true` when the filtered styles are always emitted as inline
|
|
294
|
+
* styles by the DTO (e.g. image `vertical-align`), so stripping them from
|
|
295
|
+
* `customStyle` is always safe.
|
|
296
|
+
*
|
|
297
|
+
* Defaults to `false` – the strategy only runs when `autoMatchFormat` is enabled.
|
|
298
|
+
* Used before invoke the filterAnnotations method.
|
|
299
|
+
*
|
|
300
|
+
* @returns {boolean} Whether filtering should always apply.
|
|
301
|
+
*/
|
|
302
|
+
get alwaysFilter() {
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Removes configured default style properties from the target styles object.
|
|
307
|
+
* Only properties whose value matches the configured default exactly are deleted.
|
|
308
|
+
*
|
|
309
|
+
* @param {Nullable<RTEFilterStyles>} styles - The styles object to mutate.
|
|
310
|
+
* @returns {boolean} `true` if at least one style was extracted.
|
|
311
|
+
*/
|
|
312
|
+
extractAndDeleteMatchedStyles(styles) {
|
|
313
|
+
let wasExtracted = false;
|
|
314
|
+
const defaults = this.stylesToBeFiltered;
|
|
315
|
+
if (styles && defaults) {
|
|
316
|
+
const styleKeys = Object.keys(defaults);
|
|
317
|
+
for (const key of styleKeys) {
|
|
318
|
+
if (styles[key] === defaults[key]) {
|
|
319
|
+
delete styles[key];
|
|
320
|
+
wasExtracted = true;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return wasExtracted;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Converts the styles map to a CSS text string.
|
|
328
|
+
*
|
|
329
|
+
* @param {string} tagName The HTML tag name.
|
|
330
|
+
* @param {string} [className] The optional class name.
|
|
331
|
+
* @returns {string} The CSS text string.
|
|
332
|
+
*/
|
|
333
|
+
buildCssTextForStyles(tagName, className) {
|
|
334
|
+
const selector = `.${RTEFilterStylesStrategy.RTE_CONTENT_CONTAINER_CLASS_NAME}` +
|
|
335
|
+
(className ? ` .${className}` : ` ${tagName}`);
|
|
336
|
+
const styles = Object.entries(this.stylesToBeFiltered)
|
|
337
|
+
.map(([key, value]) => `${string.camelToDashCase(key)}: ${value};`)
|
|
338
|
+
.join(' ');
|
|
339
|
+
return `${selector} { ${styles} }`;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Converts the styles map to a CSS text string.
|
|
343
|
+
*
|
|
344
|
+
* @param {RTEFilterStyles} [styles] The styles to convert. If not provided, the strategy's stylesToBeFiltered will be used.
|
|
345
|
+
* @returns {string} The CSS text string.
|
|
346
|
+
*/
|
|
347
|
+
convertStylesMapToCssText(styles) {
|
|
348
|
+
const stylesToConvert = styles || this.stylesToBeFiltered;
|
|
349
|
+
return Object.entries(stylesToConvert)
|
|
350
|
+
.map(([key, value]) => `${string.camelToDashCase(key)}: ${value};`)
|
|
351
|
+
.join(' ');
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Check if the styles of the block or node instance match the default paragraph styles.
|
|
355
|
+
*
|
|
356
|
+
* @param {RTEBlock | RTENode} blockOrNodeInstance - The block or node instance to check.
|
|
357
|
+
* @param {string[]} [checkedKeys] - Optional array of style keys to check. If not provided, all keys in stylesToBeFiltered will be checked.
|
|
358
|
+
* @returns {boolean} - True if the styles match the default paragraph styles, false otherwise.
|
|
359
|
+
*/
|
|
360
|
+
isBlockOrNodeStylesMatchFilterStyles(blockOrNodeInstance, checkedKeys) {
|
|
361
|
+
const styles = blockOrNodeInstance.getStyles({ standalone: true });
|
|
362
|
+
return this.isMatchFilterStyles(styles, checkedKeys);
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Checks if the given itemStyles match the default paragraph styles.
|
|
366
|
+
*
|
|
367
|
+
* @param {RTEFilterStyles} itemStyles - The styles to check against the default paragraph styles.
|
|
368
|
+
* @param {string[]} [checkedKeys] - Optional array of style keys to check. If not provided, all keys in stylesToBeFiltered will be checked.
|
|
369
|
+
* @returns {boolean} - True if the itemStyles match the default paragraph styles, false otherwise.
|
|
370
|
+
*/
|
|
371
|
+
isMatchFilterStyles(itemStyles, checkedKeys) {
|
|
372
|
+
const keysToCheck = checkedKeys && checkedKeys.length > 0 ? checkedKeys : Object.keys(this.stylesToBeFiltered);
|
|
373
|
+
return keysToCheck.every((key) => {
|
|
374
|
+
return itemStyles[key] === this.stylesToBeFiltered[key];
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Used for generate the style text, all styles should inside the content container.
|
|
380
|
+
* For example, if the style text is .v-rte-title {font-size: 24px;} the final generated style text should be .vega-rte-content .v-rte-title {font-size: 24px;} to make sure the styles are only applied to the elements inside the content container.
|
|
381
|
+
*/
|
|
382
|
+
RTEFilterStylesStrategy.RTE_CONTENT_CONTAINER_CLASS_NAME = 'vega-rte-content';
|
|
383
|
+
|
|
384
|
+
exports.NodeAnnotationTypeEnum = void 0;
|
|
385
|
+
(function (NodeAnnotationTypeEnum) {
|
|
386
|
+
NodeAnnotationTypeEnum["BOLD"] = "BOLD";
|
|
387
|
+
NodeAnnotationTypeEnum["ITALIC"] = "ITALIC";
|
|
388
|
+
NodeAnnotationTypeEnum["UNDERLINE"] = "UNDERLINE";
|
|
389
|
+
NodeAnnotationTypeEnum["STRIKETHROUGH"] = "STRIKETHROUGH";
|
|
390
|
+
NodeAnnotationTypeEnum["SELECTION_RANGE"] = "SELECTION_RANGE";
|
|
391
|
+
NodeAnnotationTypeEnum["IMAGE"] = "IMAGE";
|
|
392
|
+
NodeAnnotationTypeEnum["CODE"] = "CODE";
|
|
393
|
+
NodeAnnotationTypeEnum["TEXT_COLOR"] = "TEXT_COLOR";
|
|
394
|
+
NodeAnnotationTypeEnum["LINK"] = "LINK";
|
|
395
|
+
NodeAnnotationTypeEnum["INLINE_HTML"] = "INLINE_HTML";
|
|
396
|
+
NodeAnnotationTypeEnum["PLAIN_TEXT"] = "PLAIN_TEXT";
|
|
397
|
+
})(exports.NodeAnnotationTypeEnum || (exports.NodeAnnotationTypeEnum = {}));
|
|
398
|
+
/**
|
|
399
|
+
* Abstract class for all annotations
|
|
400
|
+
*/
|
|
401
|
+
class NodeAnnotation extends Annotation {
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Predicate class provides static methods to check specific conditions on HTML elements or dto instances.
|
|
406
|
+
*/
|
|
407
|
+
class Predicate {
|
|
408
|
+
/**
|
|
409
|
+
* Checks if the given class name corresponds to a text block.
|
|
410
|
+
*
|
|
411
|
+
* @param {string} className The class name to check.
|
|
412
|
+
* @returns {boolean} True if the class name corresponds to a text block, false otherwise.
|
|
413
|
+
*/
|
|
414
|
+
static isTextBlock(className) {
|
|
415
|
+
return className === this.RTE_TEXT_BLOCK_CLASS_NAME;
|
|
416
|
+
}
|
|
417
|
+
/**
|
|
418
|
+
* Checks if the given class name corresponds to a code block.
|
|
419
|
+
*
|
|
420
|
+
* @param {string} className The class name to check.
|
|
421
|
+
* @returns {boolean} True if the class name corresponds to a code block, false otherwise.
|
|
422
|
+
*/
|
|
423
|
+
static isCodeBlock(className) {
|
|
424
|
+
return className === 'RTECodeBlock';
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Checks if the given class name corresponds to a list block.
|
|
428
|
+
*
|
|
429
|
+
* @param {string} className The class name to check.
|
|
430
|
+
* @returns {boolean} True if the class name corresponds to a list block, false otherwise.
|
|
431
|
+
*/
|
|
432
|
+
static isListBlock(className) {
|
|
433
|
+
return className === 'RTEListBlock';
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Checks if the given class name corresponds to a list item block.
|
|
437
|
+
*
|
|
438
|
+
* @param {string} className The class name to check.
|
|
439
|
+
* @returns {boolean} True if the class name corresponds to a list item block, false otherwise.
|
|
440
|
+
*/
|
|
441
|
+
static isListItemBlock(className) {
|
|
442
|
+
return className === 'RTEListItemBlock';
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Checks if the given class name corresponds to a text node.
|
|
446
|
+
*
|
|
447
|
+
* @param {string} className The class name to check.
|
|
448
|
+
* @returns {boolean} True if the class name corresponds to a text node, false otherwise.
|
|
449
|
+
*/
|
|
450
|
+
static isTextNode(className) {
|
|
451
|
+
return className === this.RTE_TEXT_NODE_CLASS_NAME;
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Checks if the given block or node instance is a text node and has a link annotation.
|
|
455
|
+
*
|
|
456
|
+
* @param {RTEBlock | RTENode} blockOrNodeInstance The block or node instance to check.
|
|
457
|
+
* @returns {boolean} True if the block or node instance is a text node and has a link annotation, false otherwise.
|
|
458
|
+
*/
|
|
459
|
+
static isLinkNode(blockOrNodeInstance) {
|
|
460
|
+
return (this.isTextNode(blockOrNodeInstance.constructor.name) &&
|
|
461
|
+
!!blockOrNodeInstance.getAnnotationByType(exports.NodeAnnotationTypeEnum.LINK));
|
|
462
|
+
}
|
|
463
|
+
/**
|
|
464
|
+
* Checks if the given block or node instance is a code node, which is defined as a text node that has a code annotation.
|
|
465
|
+
*
|
|
466
|
+
* @param {RTEBlock | RTENode} blockOrNodeInstance The block or node instance to check.
|
|
467
|
+
* @returns {boolean} True if the block or node instance is a code node, false otherwise.
|
|
468
|
+
*/
|
|
469
|
+
static isCodeNode(blockOrNodeInstance) {
|
|
470
|
+
if (this.isTextNode(blockOrNodeInstance.constructor.name)) {
|
|
471
|
+
const codeAnnotation = blockOrNodeInstance.getAnnotationByType(exports.NodeAnnotationTypeEnum.CODE);
|
|
472
|
+
return !!codeAnnotation && codeAnnotation.code;
|
|
473
|
+
}
|
|
474
|
+
return false;
|
|
475
|
+
}
|
|
476
|
+
/**
|
|
477
|
+
* Check if the given block or node instance is an image node, which is defined as an instance of RTEImageNode.
|
|
478
|
+
*
|
|
479
|
+
* @param {RTEBlock | RTENode} blockOrNodeInstance The block or node instance to check.
|
|
480
|
+
* @returns {boolean} True if the block or node instance is an image node, false otherwise.
|
|
481
|
+
*/
|
|
482
|
+
static isImageNode(blockOrNodeInstance) {
|
|
483
|
+
return blockOrNodeInstance.constructor.name === 'RTEImageNode';
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Check if the given block or node instance is a code block node, which is defined as an instance of RTECodeBlockNode.
|
|
487
|
+
*
|
|
488
|
+
* @param {RTEBlock | RTENode} blockOrNodeInstance The block or node instance to check.
|
|
489
|
+
* @returns {boolean} True if the block or node instance is a code block node, false otherwise.
|
|
490
|
+
*/
|
|
491
|
+
static isCodeBlockNode(blockOrNodeInstance) {
|
|
492
|
+
return blockOrNodeInstance.constructor.name === 'RTECodeBlockNode';
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
Predicate.RTE_TEXT_NODE_CLASS_NAME = 'RTETextNode';
|
|
496
|
+
Predicate.RTE_TEXT_BLOCK_CLASS_NAME = 'RTETextBlock';
|
|
497
|
+
|
|
498
|
+
/**
|
|
499
|
+
* The LinkFilterStylesStrategy is responsible for filtering link styles from text nodes that are annotated as links.
|
|
500
|
+
*/
|
|
501
|
+
class LinkFilterStylesStrategy extends RTEFilterStylesStrategy {
|
|
502
|
+
constructor() {
|
|
503
|
+
super(...arguments);
|
|
504
|
+
this.stylesToBeFiltered = LinkGroupAnnotation.getDefaultStyles();
|
|
505
|
+
this.elementTagName = 'a';
|
|
506
|
+
}
|
|
507
|
+
/**
|
|
508
|
+
* Filter default link styles from `link.customStyle` in annotations.
|
|
509
|
+
*
|
|
510
|
+
* @param {VegaRTEAnnotations} annotations - The annotations to filter.
|
|
511
|
+
* @returns {VegaRTEAnnotations} The same annotations reference with link.customStyle cleaned up.
|
|
512
|
+
*/
|
|
513
|
+
filterAnnotations(annotations) {
|
|
514
|
+
const link = annotations.link;
|
|
515
|
+
if (!(link === null || link === void 0 ? void 0 : link.customStyle)) {
|
|
516
|
+
return annotations;
|
|
517
|
+
}
|
|
518
|
+
this.extractAndDeleteMatchedStyles(link.customStyle);
|
|
519
|
+
if (Object.keys(link.customStyle).length === 0) {
|
|
520
|
+
delete link.customStyle;
|
|
521
|
+
}
|
|
522
|
+
return annotations;
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* @inheritDoc
|
|
526
|
+
*/
|
|
527
|
+
canFilter(blockOrNodeInstance) {
|
|
528
|
+
return Predicate.isLinkNode(blockOrNodeInstance);
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* @inheritDoc
|
|
532
|
+
*/
|
|
533
|
+
canRefill(blockOrNodeClassName, element) {
|
|
534
|
+
return blockOrNodeClassName === 'RTETextNode' && element.matches(this.elementTagName);
|
|
535
|
+
}
|
|
536
|
+
/**
|
|
537
|
+
* @inheritDoc
|
|
538
|
+
*/
|
|
539
|
+
toCssText() {
|
|
540
|
+
return this.buildCssTextForStyles(this.elementTagName, this.classNameToBeAdded);
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Filters the inline styles for a link group annotation and updates the attributes accordingly.
|
|
544
|
+
*
|
|
545
|
+
* @param {Record<string, string | AnnotationStyle>} attributes The attributes of the link group annotation.
|
|
546
|
+
* @returns {Record<string, string | AnnotationStyle>} The updated attributes after filtering.
|
|
547
|
+
*/
|
|
548
|
+
filterLinkGroupInlineStyles(attributes) {
|
|
549
|
+
const fullStyles = attributes.style;
|
|
550
|
+
const classNames = attributes.class ? attributes.class.split(' ') : [];
|
|
551
|
+
const filterResult = this.filterAndDeleteStyles(fullStyles, classNames);
|
|
552
|
+
filterResult.styles &&
|
|
553
|
+
Object.keys(filterResult.styles).length > 0 &&
|
|
554
|
+
(attributes.style = filterResult.styles);
|
|
555
|
+
filterResult.classNames &&
|
|
556
|
+
filterResult.classNames.length > 0 &&
|
|
557
|
+
(attributes.class = filterResult.classNames.join(' '));
|
|
558
|
+
if (attributes.style && Object.keys(attributes.style).length === 0) {
|
|
559
|
+
delete attributes.style;
|
|
560
|
+
}
|
|
561
|
+
return attributes;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
|
|
165
565
|
/**
|
|
166
566
|
* Annotation to represent a link of grouped nodes
|
|
167
567
|
*/
|
|
@@ -194,11 +594,15 @@ class LinkGroupAnnotation extends Annotation {
|
|
|
194
594
|
* Convert the custom style, class and attribute to string which html can used
|
|
195
595
|
*
|
|
196
596
|
* @param {linkAnnotation} linkAnnotation current link annotation which saved custom style, class and attribute.
|
|
197
|
-
* @param {
|
|
597
|
+
* @param {LinkGroupConversionOptions} options - options.
|
|
198
598
|
* @returns {string} - string.
|
|
199
599
|
*/
|
|
200
600
|
toString(linkAnnotation, options) {
|
|
201
|
-
|
|
601
|
+
let attributes = this.toJsx(linkAnnotation, options);
|
|
602
|
+
if (options === null || options === void 0 ? void 0 : options.filterInlineStyles) {
|
|
603
|
+
attributes =
|
|
604
|
+
LinkGroupAnnotation.linkGroupFilterStylesStrategy.filterLinkGroupInlineStyles(attributes);
|
|
605
|
+
}
|
|
202
606
|
return Object.entries(attributes)
|
|
203
607
|
.map(([key, value]) => {
|
|
204
608
|
const valueString = typeof value === 'string' ? value : this.formatStyleToString(value);
|
|
@@ -280,6 +684,7 @@ class LinkGroupAnnotation extends Annotation {
|
|
|
280
684
|
.join(' ');
|
|
281
685
|
}
|
|
282
686
|
}
|
|
687
|
+
LinkGroupAnnotation.linkGroupFilterStylesStrategy = new LinkFilterStylesStrategy();
|
|
283
688
|
|
|
284
689
|
/**
|
|
285
690
|
* Annotation to make block with horizontal alignment
|
|
@@ -809,26 +1214,6 @@ class InternalWrapperAnnotation extends BlockAnnotation {
|
|
|
809
1214
|
}
|
|
810
1215
|
}
|
|
811
1216
|
|
|
812
|
-
exports.NodeAnnotationTypeEnum = void 0;
|
|
813
|
-
(function (NodeAnnotationTypeEnum) {
|
|
814
|
-
NodeAnnotationTypeEnum["BOLD"] = "BOLD";
|
|
815
|
-
NodeAnnotationTypeEnum["ITALIC"] = "ITALIC";
|
|
816
|
-
NodeAnnotationTypeEnum["UNDERLINE"] = "UNDERLINE";
|
|
817
|
-
NodeAnnotationTypeEnum["STRIKETHROUGH"] = "STRIKETHROUGH";
|
|
818
|
-
NodeAnnotationTypeEnum["SELECTION_RANGE"] = "SELECTION_RANGE";
|
|
819
|
-
NodeAnnotationTypeEnum["IMAGE"] = "IMAGE";
|
|
820
|
-
NodeAnnotationTypeEnum["CODE"] = "CODE";
|
|
821
|
-
NodeAnnotationTypeEnum["TEXT_COLOR"] = "TEXT_COLOR";
|
|
822
|
-
NodeAnnotationTypeEnum["LINK"] = "LINK";
|
|
823
|
-
NodeAnnotationTypeEnum["INLINE_HTML"] = "INLINE_HTML";
|
|
824
|
-
NodeAnnotationTypeEnum["PLAIN_TEXT"] = "PLAIN_TEXT";
|
|
825
|
-
})(exports.NodeAnnotationTypeEnum || (exports.NodeAnnotationTypeEnum = {}));
|
|
826
|
-
/**
|
|
827
|
-
* Abstract class for all annotations
|
|
828
|
-
*/
|
|
829
|
-
class NodeAnnotation extends Annotation {
|
|
830
|
-
}
|
|
831
|
-
|
|
832
1217
|
/**
|
|
833
1218
|
* Class to handle the style representation of annotations for RTE blocks and nodes.
|
|
834
1219
|
*/
|
|
@@ -911,6 +1296,105 @@ class RTEAnnotationStyle {
|
|
|
911
1296
|
}
|
|
912
1297
|
}
|
|
913
1298
|
|
|
1299
|
+
/**
|
|
1300
|
+
* Registry for managing filter styles strategies keyed by DTO class name.
|
|
1301
|
+
*
|
|
1302
|
+
* Provides common `register` / `getStrategies` primitives that both output-
|
|
1303
|
+
* filtering strategies (DTO → HTML) and annotation-parsing strategies
|
|
1304
|
+
* (HTML → DTO) build upon.
|
|
1305
|
+
*
|
|
1306
|
+
* TODO: Currently, the filter styles strategies are applied for all rich text editors. We need to apply the strategies with a specific rich text editor instance when we have multiple rich text editors in the future.
|
|
1307
|
+
*/
|
|
1308
|
+
class RTEFilterStylesStrategyRegistry {
|
|
1309
|
+
/**
|
|
1310
|
+
* Registers a filter styles strategy for a specific DTO class name.
|
|
1311
|
+
* Duplicate strategy instances are ignored.
|
|
1312
|
+
*
|
|
1313
|
+
* @param {string} dtoClassName - The DTO class name (e.g. `RTEListBlock.name`).
|
|
1314
|
+
* @param {RTEFilterStylesStrategy} strategy - The strategy instance to register.
|
|
1315
|
+
*/
|
|
1316
|
+
static register(dtoClassName, strategy) {
|
|
1317
|
+
var _a;
|
|
1318
|
+
const set = (_a = this.registry.get(dtoClassName)) !== null && _a !== void 0 ? _a : new Set();
|
|
1319
|
+
set.add(strategy);
|
|
1320
|
+
this.registry.set(dtoClassName, set);
|
|
1321
|
+
}
|
|
1322
|
+
/**
|
|
1323
|
+
* Retrieves all strategies registered for a given DTO class name.
|
|
1324
|
+
*
|
|
1325
|
+
* @param {string} dtoClassName - The DTO class name to look up.
|
|
1326
|
+
* @returns {RTEFilterStylesStrategy[]} Registered strategies (empty array if none).
|
|
1327
|
+
*/
|
|
1328
|
+
static getStrategies(dtoClassName) {
|
|
1329
|
+
var _a;
|
|
1330
|
+
return Array.from((_a = this.registry.get(dtoClassName)) !== null && _a !== void 0 ? _a : []);
|
|
1331
|
+
}
|
|
1332
|
+
/**
|
|
1333
|
+
* Executes the appropriate filter styles strategy for a given block or node instance.
|
|
1334
|
+
*
|
|
1335
|
+
* @param {RTEBlock | RTENode} blockOrNodeInstance - The block or node instance to filter styles for.
|
|
1336
|
+
* @param {RTEFilterStyles} styles - The full set of styles to filter.
|
|
1337
|
+
* @param {string[]} classNames - The class names to consider.
|
|
1338
|
+
* @returns {RTEFilterInlineStylesResult} The result of filtering, including the remaining styles and class names.
|
|
1339
|
+
*/
|
|
1340
|
+
static executeTheStrategyFilterAction(blockOrNodeInstance, styles, classNames) {
|
|
1341
|
+
const dtoClassName = blockOrNodeInstance.constructor.name;
|
|
1342
|
+
const strategies = this.getStrategies(dtoClassName);
|
|
1343
|
+
const matchedStrategies = strategies.filter((strategy) => {
|
|
1344
|
+
return strategy.canFilter(blockOrNodeInstance);
|
|
1345
|
+
});
|
|
1346
|
+
return matchedStrategies.reduce((result, strategy) => {
|
|
1347
|
+
return strategy.filterAndDeleteStyles(result.styles, result.classNames);
|
|
1348
|
+
}, {
|
|
1349
|
+
styles,
|
|
1350
|
+
classNames,
|
|
1351
|
+
});
|
|
1352
|
+
}
|
|
1353
|
+
/**
|
|
1354
|
+
* Executes the appropriate filter styles strategy for refilling styles on a given element.
|
|
1355
|
+
*
|
|
1356
|
+
* @param {string} dtoClassName The class name of the DTO.
|
|
1357
|
+
* @param {HTMLElement} element The HTML element to refill styles on.
|
|
1358
|
+
*/
|
|
1359
|
+
static executeTheStrategyRefillAction(dtoClassName, element) {
|
|
1360
|
+
const strategies = this.getStrategies(dtoClassName);
|
|
1361
|
+
const matchedStrategies = strategies.filter((strategy) => {
|
|
1362
|
+
return strategy.canRefill(dtoClassName, element);
|
|
1363
|
+
});
|
|
1364
|
+
matchedStrategies.forEach((strategy) => {
|
|
1365
|
+
strategy.refillStyles(element);
|
|
1366
|
+
});
|
|
1367
|
+
}
|
|
1368
|
+
/**
|
|
1369
|
+
* Based on the registered strategies, generates the CSS text for all strategies in the registry. The generated CSS text is grouped by DTO class names for better organization.
|
|
1370
|
+
*
|
|
1371
|
+
* @param {boolean} enableFontFaceImports - A flag indicating whether to include font-face declarations for typography styles.
|
|
1372
|
+
* @returns {string} The content of style file.
|
|
1373
|
+
*/
|
|
1374
|
+
static generateAllStylesContent(enableFontFaceImports = false) {
|
|
1375
|
+
const styleBlocks = [];
|
|
1376
|
+
if (enableFontFaceImports) {
|
|
1377
|
+
styleBlocks.push('/* Font-face imports begin */\n');
|
|
1378
|
+
styleBlocks.push(Object.keys(typography.TypographyUrls)
|
|
1379
|
+
.map((key) => {
|
|
1380
|
+
return `@import url('${typography.TypographyUrls[key].url}');\n`;
|
|
1381
|
+
})
|
|
1382
|
+
.join(' '));
|
|
1383
|
+
styleBlocks.push('/* Font-face imports end */\n');
|
|
1384
|
+
}
|
|
1385
|
+
this.registry.forEach((strategies) => {
|
|
1386
|
+
strategies.forEach((strategy) => {
|
|
1387
|
+
const cssText = strategy.toCssText();
|
|
1388
|
+
if (cssText && !styleBlocks.includes(cssText)) {
|
|
1389
|
+
styleBlocks.push(cssText);
|
|
1390
|
+
}
|
|
1391
|
+
});
|
|
1392
|
+
});
|
|
1393
|
+
return styleBlocks.join(' ');
|
|
1394
|
+
}
|
|
1395
|
+
}
|
|
1396
|
+
RTEFilterStylesStrategyRegistry.registry = new Map();
|
|
1397
|
+
|
|
914
1398
|
exports.NodeTypeEnum = void 0;
|
|
915
1399
|
(function (NodeTypeEnum) {
|
|
916
1400
|
NodeTypeEnum["TEXT"] = "TEXT";
|
|
@@ -1038,21 +1522,31 @@ class RTENode {
|
|
|
1038
1522
|
/**
|
|
1039
1523
|
* Generate attributes as string
|
|
1040
1524
|
*
|
|
1525
|
+
* @param {VegaRTETransformOptions} [options] - Options for converting the node to HTML.
|
|
1041
1526
|
* @param {...string} attrs - Additional attributes to include
|
|
1042
1527
|
* @returns {string} - Attributes as string
|
|
1043
1528
|
*/
|
|
1044
|
-
generateAttributeString(...attrs) {
|
|
1529
|
+
generateAttributeString(options, ...attrs) {
|
|
1045
1530
|
var _a;
|
|
1046
1531
|
const nodeAnnotationStyle = new RTEAnnotationStyle(this);
|
|
1047
|
-
const
|
|
1532
|
+
const fullStyles = nodeAnnotationStyle.toJSON({ standalone: true }, [
|
|
1048
1533
|
'textDecoration',
|
|
1049
1534
|
]);
|
|
1050
1535
|
const customClassAnnotation = this.annotationMap.get(exports.CommonAnnotationTypeEnum.CUSTOM_CLASS);
|
|
1536
|
+
let styles = fullStyles;
|
|
1537
|
+
let classNames = customClassAnnotation === null || customClassAnnotation === void 0 ? void 0 : customClassAnnotation.renderClass();
|
|
1538
|
+
if (options && options.filterInlineStyles) {
|
|
1539
|
+
const filterResult = RTEFilterStylesStrategyRegistry.executeTheStrategyFilterAction(this, fullStyles, classNames);
|
|
1540
|
+
styles = filterResult.styles;
|
|
1541
|
+
classNames = filterResult.classNames;
|
|
1542
|
+
}
|
|
1051
1543
|
const customAttributeString = ((_a = this.getCustomAttributesAnnotation()) === null || _a === void 0 ? void 0 : _a.toString(attrs)) || [];
|
|
1052
1544
|
const attributes = [
|
|
1053
1545
|
...customAttributeString,
|
|
1054
|
-
|
|
1055
|
-
styles
|
|
1546
|
+
classNames && classNames.length > 0 ? `class="${classNames.join(' ')}"` : null,
|
|
1547
|
+
styles && Object.keys(styles).length > 0
|
|
1548
|
+
? `style="${nodeAnnotationStyle.toCssText({ standalone: true }, undefined, styles)}"`
|
|
1549
|
+
: null,
|
|
1056
1550
|
...attrs,
|
|
1057
1551
|
].filter(typeGuard.isNonNullable);
|
|
1058
1552
|
return attributes.length ? ` ${attributes.join(' ')}` : '';
|
|
@@ -1350,19 +1844,29 @@ class RTEBlock {
|
|
|
1350
1844
|
/**
|
|
1351
1845
|
* Generate attributes as string
|
|
1352
1846
|
*
|
|
1847
|
+
* @param {VegaRTETransformOptions} options - Options to control the generation of the attribute string, such as whether to filter inline styles.
|
|
1353
1848
|
* @param {...string} attrs - Additional attributes to include
|
|
1354
1849
|
* @returns {string} - Attributes as string
|
|
1355
1850
|
*/
|
|
1356
|
-
generateAttributeString(...attrs) {
|
|
1851
|
+
generateAttributeString(options, ...attrs) {
|
|
1357
1852
|
var _a;
|
|
1358
1853
|
const blockAnnotationStyle = new RTEAnnotationStyle(this);
|
|
1359
|
-
const
|
|
1854
|
+
const fullStyles = blockAnnotationStyle.toJSON({ standalone: true });
|
|
1360
1855
|
const customClassAnnotation = this.annotationMap.get(exports.CommonAnnotationTypeEnum.CUSTOM_CLASS);
|
|
1856
|
+
let styles = fullStyles;
|
|
1857
|
+
let classNames = customClassAnnotation === null || customClassAnnotation === void 0 ? void 0 : customClassAnnotation.renderClass();
|
|
1858
|
+
if (options && options.filterInlineStyles) {
|
|
1859
|
+
const filterResult = RTEFilterStylesStrategyRegistry.executeTheStrategyFilterAction(this, fullStyles, classNames);
|
|
1860
|
+
styles = filterResult.styles;
|
|
1861
|
+
classNames = filterResult.classNames;
|
|
1862
|
+
}
|
|
1361
1863
|
const customAttributeString = ((_a = this.getCustomAttributesAnnotation()) === null || _a === void 0 ? void 0 : _a.toString(attrs)) || [];
|
|
1362
1864
|
const attributes = [
|
|
1363
1865
|
...customAttributeString,
|
|
1364
|
-
|
|
1365
|
-
styles
|
|
1866
|
+
classNames && classNames.length > 0 ? `class="${classNames.join(' ')}"` : null,
|
|
1867
|
+
styles && Object.keys(styles).length > 0
|
|
1868
|
+
? `style="${blockAnnotationStyle.toCssText({ standalone: true }, undefined, styles)}"`
|
|
1869
|
+
: null,
|
|
1366
1870
|
...attrs,
|
|
1367
1871
|
].filter(typeGuard.isNonNullable);
|
|
1368
1872
|
return attributes.length ? ` ${attributes.join(' ')}` : '';
|
|
@@ -1788,6 +2292,26 @@ const VegaRTEPresetToolbarItems = [
|
|
|
1788
2292
|
['image'],
|
|
1789
2293
|
['clearStyle'],
|
|
1790
2294
|
];
|
|
2295
|
+
/**
|
|
2296
|
+
* Void/self-closing HTML elements that have no closing tag and cannot contain children.
|
|
2297
|
+
* Source: https://html.spec.whatwg.org/multipage/syntax.html#void-elements
|
|
2298
|
+
*/
|
|
2299
|
+
const HTML_VOID_TAGS = new Set([
|
|
2300
|
+
'area',
|
|
2301
|
+
'base',
|
|
2302
|
+
'br',
|
|
2303
|
+
'col',
|
|
2304
|
+
'embed',
|
|
2305
|
+
'hr',
|
|
2306
|
+
'img',
|
|
2307
|
+
'input',
|
|
2308
|
+
'link',
|
|
2309
|
+
'meta',
|
|
2310
|
+
'param',
|
|
2311
|
+
'source',
|
|
2312
|
+
'track',
|
|
2313
|
+
'wbr',
|
|
2314
|
+
]);
|
|
1791
2315
|
|
|
1792
2316
|
/**
|
|
1793
2317
|
* Annotation to make text with text color
|
|
@@ -2557,6 +3081,7 @@ class InlineHtmlAnnotation extends Annotation {
|
|
|
2557
3081
|
static from(inlineHtml) {
|
|
2558
3082
|
const { htmlTag, child, customStyle, customClass, customAttribute } = inlineHtml;
|
|
2559
3083
|
const inlineHtmlAnnotation = new InlineHtmlAnnotation(htmlTag);
|
|
3084
|
+
inlineHtmlAnnotation.groupId = inlineHtml.groupId;
|
|
2560
3085
|
inlineHtmlAnnotation.child = child ? InlineHtmlAnnotation.from(child)[1] : undefined;
|
|
2561
3086
|
inlineHtmlAnnotation.customAttribute = customAttribute
|
|
2562
3087
|
? CustomAttributeAnnotation.from(customAttribute)[1]
|
|
@@ -2577,12 +3102,22 @@ class InlineHtmlAnnotation extends Annotation {
|
|
|
2577
3102
|
clone() {
|
|
2578
3103
|
var _a, _b, _c, _d;
|
|
2579
3104
|
const inlineHtmlAnnotation = new InlineHtmlAnnotation(this.htmlTag);
|
|
3105
|
+
inlineHtmlAnnotation.groupId = this.groupId;
|
|
2580
3106
|
inlineHtmlAnnotation.child = (_a = this.child) === null || _a === void 0 ? void 0 : _a.clone();
|
|
2581
3107
|
inlineHtmlAnnotation.customAttribute = (_b = this.customAttribute) === null || _b === void 0 ? void 0 : _b.clone();
|
|
2582
3108
|
inlineHtmlAnnotation.customClass = (_c = this.customClass) === null || _c === void 0 ? void 0 : _c.clone();
|
|
2583
3109
|
inlineHtmlAnnotation.customStyle = (_d = this.customStyle) === null || _d === void 0 ? void 0 : _d.clone();
|
|
2584
3110
|
return inlineHtmlAnnotation;
|
|
2585
3111
|
}
|
|
3112
|
+
/**
|
|
3113
|
+
* Build the props object used when rendering this annotation.
|
|
3114
|
+
*
|
|
3115
|
+
* @returns {Record<string, unknown>} Props for h(tag, props, children).
|
|
3116
|
+
*/
|
|
3117
|
+
renderProps() {
|
|
3118
|
+
var _a, _b, _c;
|
|
3119
|
+
return Object.assign(Object.assign({}, (_a = this.customAttribute) === null || _a === void 0 ? void 0 : _a.render()), { style: (_b = this.customStyle) === null || _b === void 0 ? void 0 : _b.renderStyle(), class: (_c = this.customClass) === null || _c === void 0 ? void 0 : _c.renderClass().join(' ') });
|
|
3120
|
+
}
|
|
2586
3121
|
/**
|
|
2587
3122
|
* Generate the JSON representation of the annotation
|
|
2588
3123
|
*
|
|
@@ -2593,6 +3128,7 @@ class InlineHtmlAnnotation extends Annotation {
|
|
|
2593
3128
|
return {
|
|
2594
3129
|
inlineHtml: object.cleanObject({
|
|
2595
3130
|
htmlTag: this.htmlTag,
|
|
3131
|
+
groupId: this.groupId,
|
|
2596
3132
|
child: (_a = this.child) === null || _a === void 0 ? void 0 : _a.toJSON().inlineHtml,
|
|
2597
3133
|
customAttribute: (_b = this.customAttribute) === null || _b === void 0 ? void 0 : _b.toJSON().customAttribute,
|
|
2598
3134
|
customClass: (_c = this.customClass) === null || _c === void 0 ? void 0 : _c.toJSON().customClass,
|
|
@@ -2831,9 +3367,11 @@ class RTETextNode extends RTENode {
|
|
|
2831
3367
|
/**
|
|
2832
3368
|
* @inheritDoc
|
|
2833
3369
|
*/
|
|
2834
|
-
toHtml() {
|
|
3370
|
+
toHtml(options) {
|
|
2835
3371
|
const inlineHtmlAnnotation = this.getAnnotationByType(exports.NodeAnnotationTypeEnum.INLINE_HTML);
|
|
2836
|
-
return inlineHtmlAnnotation
|
|
3372
|
+
return inlineHtmlAnnotation
|
|
3373
|
+
? this.renderWithWrapperStr(inlineHtmlAnnotation, options)
|
|
3374
|
+
: this.renderTextStr(options);
|
|
2837
3375
|
}
|
|
2838
3376
|
/**
|
|
2839
3377
|
* Creates a new RTETextNode with the specified text and copies the parent block and annotation map from the original node.
|
|
@@ -2858,6 +3396,9 @@ class RTETextNode extends RTENode {
|
|
|
2858
3396
|
* @returns {boolean} It returns `true` if the node is empty
|
|
2859
3397
|
*/
|
|
2860
3398
|
isEmpty() {
|
|
3399
|
+
// Inline HTML annotations (e.g., <br>) are considered non-empty even with empty text content.
|
|
3400
|
+
if (this.getAnnotationByType(exports.NodeAnnotationTypeEnum.INLINE_HTML))
|
|
3401
|
+
return false;
|
|
2861
3402
|
return !this.text || this.text === ZERO_WIDTH_SPACE || this.text === '\n';
|
|
2862
3403
|
}
|
|
2863
3404
|
/**
|
|
@@ -2897,6 +3438,54 @@ class RTETextNode extends RTENode {
|
|
|
2897
3438
|
isContentEditable() {
|
|
2898
3439
|
return true;
|
|
2899
3440
|
}
|
|
3441
|
+
/**
|
|
3442
|
+
* Returns the inline HTML wrapper descriptor at the given depth in the
|
|
3443
|
+
* annotation chain. Depth 0 is the outermost wrapper, depth 1 is its child, etc.
|
|
3444
|
+
*
|
|
3445
|
+
* @param {number} depth - Zero-based depth in the inline HTML chain.
|
|
3446
|
+
* @returns {InlineHtmlTagDescriptor | null} The wrapper descriptor at that depth, or `null`.
|
|
3447
|
+
*/
|
|
3448
|
+
getInlineHtmlTagAtDepth(depth) {
|
|
3449
|
+
const annotation = this.getInlineHtmlAnnotationAtDepth(depth);
|
|
3450
|
+
if (!annotation)
|
|
3451
|
+
return null;
|
|
3452
|
+
if (HTML_VOID_TAGS.has(annotation.htmlTag))
|
|
3453
|
+
return null;
|
|
3454
|
+
return {
|
|
3455
|
+
htmlTag: annotation.htmlTag,
|
|
3456
|
+
attrStr: this.annotationAttrStr(annotation),
|
|
3457
|
+
groupId: annotation.groupId,
|
|
3458
|
+
annotation,
|
|
3459
|
+
};
|
|
3460
|
+
}
|
|
3461
|
+
/**
|
|
3462
|
+
* Renders the node starting from the given depth in the inline HTML chain.
|
|
3463
|
+
* Depth 0 renders the full chain (equivalent to {@link toHtml} for inline HTML nodes).
|
|
3464
|
+
*
|
|
3465
|
+
* @param {number} depth - Zero-based depth to start rendering from.
|
|
3466
|
+
* @param {VegaRTETransformOptions} [options] - Optional conversion options that may affect how the text node is rendered as HTML.
|
|
3467
|
+
* @returns {string} HTML string from that depth onward.
|
|
3468
|
+
*/
|
|
3469
|
+
renderHtmlFromDepth(depth, options) {
|
|
3470
|
+
const annotation = this.getInlineHtmlAnnotationAtDepth(depth);
|
|
3471
|
+
if (!annotation)
|
|
3472
|
+
return this.renderTextStr(options);
|
|
3473
|
+
return this.renderWithWrapperStr(annotation, options);
|
|
3474
|
+
}
|
|
3475
|
+
/**
|
|
3476
|
+
* Traverses the inline HTML annotation chain to the given depth and returns
|
|
3477
|
+
* the annotation at that level, or `null` if the chain is shorter.
|
|
3478
|
+
*
|
|
3479
|
+
* @param {number} depth - Zero-based depth (0 = outermost annotation).
|
|
3480
|
+
* @returns {Nullable<InlineHtmlAnnotation>} The annotation at that depth, or `null`.
|
|
3481
|
+
*/
|
|
3482
|
+
getInlineHtmlAnnotationAtDepth(depth) {
|
|
3483
|
+
let current = this.getAnnotationByType(exports.NodeAnnotationTypeEnum.INLINE_HTML);
|
|
3484
|
+
for (let i = 0; i < depth && current; i++) {
|
|
3485
|
+
current = current.child;
|
|
3486
|
+
}
|
|
3487
|
+
return current;
|
|
3488
|
+
}
|
|
2900
3489
|
/**
|
|
2901
3490
|
* Registers the action strategies for the RTETextNode.
|
|
2902
3491
|
*/
|
|
@@ -2995,35 +3584,51 @@ class RTETextNode extends RTENode {
|
|
|
2995
3584
|
}
|
|
2996
3585
|
}
|
|
2997
3586
|
/**
|
|
2998
|
-
*
|
|
2999
|
-
*
|
|
3000
|
-
* @param {VegaInlineHtmlSchema} inlineHtmlNode - The inline HTML schema to wrap the text node.
|
|
3587
|
+
* @param {InlineHtmlAnnotation} inlineHtmlNode - The inline HTML annotation to wrap the text node.
|
|
3588
|
+
* @param {VegaRTETransformOptions} [options] - Optional conversion options that may affect how the text node is rendered as HTML.
|
|
3001
3589
|
* @returns {string} The HTML string representation of the text node wrapped with the inline HTML.
|
|
3002
3590
|
*/
|
|
3003
|
-
renderWithWrapperStr(inlineHtmlNode) {
|
|
3004
|
-
const { htmlTag,
|
|
3591
|
+
renderWithWrapperStr(inlineHtmlNode, options) {
|
|
3592
|
+
const { htmlTag, child } = inlineHtmlNode;
|
|
3593
|
+
const attrStr = this.annotationAttrStr(inlineHtmlNode);
|
|
3594
|
+
if (!child) {
|
|
3595
|
+
if (HTML_VOID_TAGS.has(htmlTag)) {
|
|
3596
|
+
return `<${htmlTag}${attrStr}>`;
|
|
3597
|
+
}
|
|
3598
|
+
if (!this.text) {
|
|
3599
|
+
return `<${htmlTag}${attrStr}></${htmlTag}>`;
|
|
3600
|
+
}
|
|
3601
|
+
return `<${htmlTag}${attrStr}>${this.renderTextStr(options)}</${htmlTag}>`;
|
|
3602
|
+
}
|
|
3603
|
+
return `<${htmlTag}${attrStr}>${this.renderWithWrapperStr(child, options)}</${htmlTag}>`;
|
|
3604
|
+
}
|
|
3605
|
+
/**
|
|
3606
|
+
* Generate the attribute string for the inline HTML annotation
|
|
3607
|
+
*
|
|
3608
|
+
* @param {InlineHtmlAnnotation} annotation - The inline HTML annotation
|
|
3609
|
+
* @returns {string} The attribute string for the inline HTML annotation
|
|
3610
|
+
*/
|
|
3611
|
+
annotationAttrStr(annotation) {
|
|
3612
|
+
const { customAttribute, customClass, customStyle } = annotation;
|
|
3005
3613
|
const attrs = [
|
|
3006
3614
|
...((customAttribute === null || customAttribute === void 0 ? void 0 : customAttribute.toString()) || []),
|
|
3007
3615
|
customClass === null || customClass === void 0 ? void 0 : customClass.toString(),
|
|
3008
3616
|
customStyle === null || customStyle === void 0 ? void 0 : customStyle.toString(),
|
|
3009
3617
|
].filter(typeGuard.isNonNullable);
|
|
3010
|
-
|
|
3011
|
-
if (!child) {
|
|
3012
|
-
return `<${htmlTag}${attrStr}>${this.renderTextStr()}</${htmlTag}>`;
|
|
3013
|
-
}
|
|
3014
|
-
return `<${htmlTag}${attrStr}>${this.renderWithWrapperStr(child)}</${htmlTag}>`;
|
|
3618
|
+
return attrs.length > 0 ? ` ${attrs.join(' ')}` : '';
|
|
3015
3619
|
}
|
|
3016
3620
|
/**
|
|
3017
3621
|
* Generates the HTML representation of the text node.
|
|
3018
3622
|
*
|
|
3623
|
+
* @param {VegaRTETransformOptions} [options] - Optional conversion options that may affect how the text node is rendered as HTML.
|
|
3019
3624
|
* @returns {string} The HTML string representation of the text node.
|
|
3020
3625
|
*/
|
|
3021
|
-
renderTextStr() {
|
|
3626
|
+
renderTextStr(options) {
|
|
3022
3627
|
var _a;
|
|
3023
3628
|
const NodeTag = ((_a = this.getAnnotationByType(exports.NodeAnnotationTypeEnum.CODE)) === null || _a === void 0 ? void 0 : _a.code)
|
|
3024
3629
|
? 'code'
|
|
3025
3630
|
: 'span';
|
|
3026
|
-
const attrStr = super.generateAttributeString();
|
|
3631
|
+
const attrStr = super.generateAttributeString(options);
|
|
3027
3632
|
// If the text contains a newline character, we need to replace it with a <br> tag.
|
|
3028
3633
|
if (this.text === '\n') {
|
|
3029
3634
|
return `<br>`;
|
|
@@ -3759,10 +4364,10 @@ class RTETextBlock extends RTEBlock {
|
|
|
3759
4364
|
/**
|
|
3760
4365
|
* @inheritDoc
|
|
3761
4366
|
*/
|
|
3762
|
-
toHtml() {
|
|
4367
|
+
toHtml(options) {
|
|
3763
4368
|
const BlockTag = this.getBlockTag();
|
|
3764
|
-
const attrStr = super.generateAttributeString();
|
|
3765
|
-
const nodesHtml = this.getChildrenHtml();
|
|
4369
|
+
const attrStr = super.generateAttributeString(options);
|
|
4370
|
+
const nodesHtml = this.getChildrenHtml(options);
|
|
3766
4371
|
return super.shouldRenderAsInternalWrapper()
|
|
3767
4372
|
? nodesHtml
|
|
3768
4373
|
: [`<${BlockTag}${attrStr}>`, nodesHtml, `</${BlockTag}>`].join('');
|
|
@@ -3831,13 +4436,14 @@ class RTETextBlock extends RTEBlock {
|
|
|
3831
4436
|
/**
|
|
3832
4437
|
* Get the HTML string for the children nodes, including handling link group annotations.
|
|
3833
4438
|
*
|
|
4439
|
+
* @param {VegaRTETransformOptions} [options] - Optional conversion options that may affect how the children nodes are rendered as HTML.
|
|
3834
4440
|
* @returns {string} The HTML string representing the children nodes.
|
|
3835
4441
|
*/
|
|
3836
|
-
getChildrenHtml() {
|
|
4442
|
+
getChildrenHtml(options) {
|
|
3837
4443
|
const linkGroupAnnotation = this.getAnnotationByType(exports.InternalAnnotationTypeEnum.LINK_GROUP);
|
|
3838
|
-
let nodesHtml = this.children
|
|
4444
|
+
let nodesHtml = this.renderGroupedNodesAtDepth(this.children, 0, options);
|
|
3839
4445
|
if (linkGroupAnnotation && this.children.length > 0) {
|
|
3840
|
-
nodesHtml = this.generateLinkHtml(linkGroupAnnotation, nodesHtml);
|
|
4446
|
+
nodesHtml = this.generateLinkHtml(linkGroupAnnotation, nodesHtml, options);
|
|
3841
4447
|
}
|
|
3842
4448
|
return nodesHtml;
|
|
3843
4449
|
}
|
|
@@ -3850,14 +4456,53 @@ class RTETextBlock extends RTEBlock {
|
|
|
3850
4456
|
strategy.execute(action, this);
|
|
3851
4457
|
}
|
|
3852
4458
|
}
|
|
4459
|
+
/**
|
|
4460
|
+
* Recursively groups `nodes` by their inline HTML wrapper at the given
|
|
4461
|
+
* `depth`, emitting shared wrappers for adjacent siblings with the same
|
|
4462
|
+
* `groupId` and descending into the next depth for each group.
|
|
4463
|
+
*
|
|
4464
|
+
* @param {RTETextNode[]} nodes - The nodes to render.
|
|
4465
|
+
* @param {number} depth - Current depth in the inline HTML chain (0 = outermost).
|
|
4466
|
+
* @param {VegaRTETransformOptions} [options] - Optional conversion options.
|
|
4467
|
+
* @returns {string} HTML string with grouped wrappers at this depth.
|
|
4468
|
+
*/
|
|
4469
|
+
renderGroupedNodesAtDepth(nodes, depth, options) {
|
|
4470
|
+
var _a;
|
|
4471
|
+
let result = '';
|
|
4472
|
+
let i = 0;
|
|
4473
|
+
while (i < nodes.length) {
|
|
4474
|
+
const tag = nodes[i].getInlineHtmlTagAtDepth(depth);
|
|
4475
|
+
if (!(tag === null || tag === void 0 ? void 0 : tag.groupId)) {
|
|
4476
|
+
result += nodes[i].renderHtmlFromDepth(depth, options);
|
|
4477
|
+
i++;
|
|
4478
|
+
continue;
|
|
4479
|
+
}
|
|
4480
|
+
let groupEnd = i + 1;
|
|
4481
|
+
while (groupEnd < nodes.length &&
|
|
4482
|
+
((_a = nodes[groupEnd].getInlineHtmlTagAtDepth(depth)) === null || _a === void 0 ? void 0 : _a.groupId) === tag.groupId) {
|
|
4483
|
+
groupEnd++;
|
|
4484
|
+
}
|
|
4485
|
+
if (groupEnd === i + 1) {
|
|
4486
|
+
// Single node in group — render normally.
|
|
4487
|
+
result += nodes[i].renderHtmlFromDepth(depth, options);
|
|
4488
|
+
}
|
|
4489
|
+
else {
|
|
4490
|
+
const innerHtml = this.renderGroupedNodesAtDepth(nodes.slice(i, groupEnd), depth + 1, options);
|
|
4491
|
+
result += `<${tag.htmlTag}${tag.attrStr}>${innerHtml}</${tag.htmlTag}>`;
|
|
4492
|
+
}
|
|
4493
|
+
i = groupEnd;
|
|
4494
|
+
}
|
|
4495
|
+
return result;
|
|
4496
|
+
}
|
|
3853
4497
|
/**
|
|
3854
4498
|
* Generate Link Html
|
|
3855
4499
|
*
|
|
3856
4500
|
* @param {LinkGroupAnnotation} linkGroupAnnotation - linkGroupAnnotation
|
|
3857
4501
|
* @param {string} nodesHtml - The nodes html
|
|
4502
|
+
* @param {VegaRTETransformOptions} [options] - Optional conversion options that may affect how the children nodes are rendered as HTML.
|
|
3858
4503
|
* @returns {string} link html
|
|
3859
4504
|
*/
|
|
3860
|
-
generateLinkHtml(linkGroupAnnotation, nodesHtml) {
|
|
4505
|
+
generateLinkHtml(linkGroupAnnotation, nodesHtml, options) {
|
|
3861
4506
|
nodesHtml = '';
|
|
3862
4507
|
let linkGroupNodes = [];
|
|
3863
4508
|
for (let i = 0; i < this.children.length; i++) {
|
|
@@ -3871,17 +4516,18 @@ class RTETextBlock extends RTEBlock {
|
|
|
3871
4516
|
currentLinkAnnotation.link.groupKey !== nextLinkAnnotation.link.groupKey) {
|
|
3872
4517
|
const linkAttributes = linkGroupAnnotation.toString(currentLinkAnnotation, {
|
|
3873
4518
|
standalone: true,
|
|
4519
|
+
filterInlineStyles: options === null || options === void 0 ? void 0 : options.filterInlineStyles,
|
|
3874
4520
|
});
|
|
3875
4521
|
nodesHtml += [
|
|
3876
4522
|
`<a${linkAttributes ? ` ${linkAttributes}` : ''}>`,
|
|
3877
|
-
|
|
4523
|
+
this.renderGroupedNodesAtDepth(linkGroupNodes, 0, options),
|
|
3878
4524
|
`</a>`,
|
|
3879
4525
|
].join('');
|
|
3880
4526
|
linkGroupNodes = [];
|
|
3881
4527
|
}
|
|
3882
4528
|
}
|
|
3883
4529
|
else {
|
|
3884
|
-
nodesHtml += this.children[i].toHtml();
|
|
4530
|
+
nodesHtml += this.children[i].toHtml(options);
|
|
3885
4531
|
}
|
|
3886
4532
|
}
|
|
3887
4533
|
return nodesHtml;
|
|
@@ -4257,6 +4903,52 @@ RTEDecoratorNode.DECORATOR_CONTAINER_CLASS = 'v-internal-decorator-container';
|
|
|
4257
4903
|
// CSS class names for the decorator node element
|
|
4258
4904
|
RTEDecoratorNode.DECORATOR_NODE_CLASS = 'v-internal-decorator-node';
|
|
4259
4905
|
|
|
4906
|
+
/**
|
|
4907
|
+
* Filter styles strategy for code block node, which defines the styles to be filtered and the conditions for filtering and refilling styles for code block nodes.
|
|
4908
|
+
*/
|
|
4909
|
+
class CodeBlockNodeFilterStylesStrategy extends RTEFilterStylesStrategy {
|
|
4910
|
+
constructor() {
|
|
4911
|
+
super(...arguments);
|
|
4912
|
+
this.stylesToBeFiltered = CodeBlockNodeFilterStylesStrategy.STYLES;
|
|
4913
|
+
this.elementTagName = 'pre code';
|
|
4914
|
+
}
|
|
4915
|
+
/**
|
|
4916
|
+
* @inheritDoc
|
|
4917
|
+
*/
|
|
4918
|
+
canFilter(blockOrNodeInstance) {
|
|
4919
|
+
return Predicate.isCodeBlockNode(blockOrNodeInstance);
|
|
4920
|
+
}
|
|
4921
|
+
/**
|
|
4922
|
+
* The code node styles is preset and will convert to vega-code-block element so we don't need to to refill styles back to element.
|
|
4923
|
+
*
|
|
4924
|
+
* @param {string} _blockOrNodeClassName The class name of the block or node.
|
|
4925
|
+
* @param {HTMLElement} _element The HTML element to check.
|
|
4926
|
+
* @returns {boolean} False, as we don't need to refill styles for code nodes.
|
|
4927
|
+
*/
|
|
4928
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
4929
|
+
canRefill(_blockOrNodeClassName, _element) {
|
|
4930
|
+
return false;
|
|
4931
|
+
}
|
|
4932
|
+
/**
|
|
4933
|
+
* @inheritDoc
|
|
4934
|
+
*/
|
|
4935
|
+
toCssText() {
|
|
4936
|
+
return this.buildCssTextForStyles(this.elementTagName, this.classNameToBeAdded);
|
|
4937
|
+
}
|
|
4938
|
+
}
|
|
4939
|
+
CodeBlockNodeFilterStylesStrategy.STYLES = {
|
|
4940
|
+
boxSizing: 'border-box',
|
|
4941
|
+
color: 'rgba(var(--v-text-primary, 32, 54, 69, 1))',
|
|
4942
|
+
textAlign: 'left',
|
|
4943
|
+
fontFamily: '"Roboto Mono"',
|
|
4944
|
+
fontWeight: '400',
|
|
4945
|
+
lineHeight: '22px',
|
|
4946
|
+
fontSize: '16px',
|
|
4947
|
+
whiteSpace: 'pre-wrap',
|
|
4948
|
+
minHeight: '22px',
|
|
4949
|
+
tabSize: '2px',
|
|
4950
|
+
};
|
|
4951
|
+
|
|
4260
4952
|
/**
|
|
4261
4953
|
* RTE code node DTO class.
|
|
4262
4954
|
*/
|
|
@@ -4269,6 +4961,7 @@ class RTECodeBlockNode extends RTEDecoratorNode {
|
|
|
4269
4961
|
this.text = content;
|
|
4270
4962
|
this.parent = parentBlock;
|
|
4271
4963
|
this.language = language;
|
|
4964
|
+
this.annotationMap.set(exports.CommonAnnotationTypeEnum.CUSTOM_STYLE, new CustomStyleAnnotation(CodeBlockNodeFilterStylesStrategy.STYLES));
|
|
4272
4965
|
}
|
|
4273
4966
|
/**
|
|
4274
4967
|
* The code node toJSON method will called internal.
|
|
@@ -4281,8 +4974,9 @@ class RTECodeBlockNode extends RTEDecoratorNode {
|
|
|
4281
4974
|
/**
|
|
4282
4975
|
* @inheritDoc
|
|
4283
4976
|
*/
|
|
4284
|
-
toHtml() {
|
|
4285
|
-
|
|
4977
|
+
toHtml(options) {
|
|
4978
|
+
const attrs = this.generateAttributeString(options);
|
|
4979
|
+
return `<code${attrs}>${this.text}</code>`;
|
|
4286
4980
|
}
|
|
4287
4981
|
/**
|
|
4288
4982
|
* @inheritDoc
|
|
@@ -4361,6 +5055,44 @@ class RemoveChildrenStrategy extends ActionHandleStrategy {
|
|
|
4361
5055
|
}
|
|
4362
5056
|
}
|
|
4363
5057
|
|
|
5058
|
+
/**
|
|
5059
|
+
* Filter styles strategy for code block, which defines the styles to be filtered and the conditions for filtering and refilling styles for code blocks.
|
|
5060
|
+
*/
|
|
5061
|
+
class CodeBlockFilterStylesStrategy extends RTEFilterStylesStrategy {
|
|
5062
|
+
constructor() {
|
|
5063
|
+
super(...arguments);
|
|
5064
|
+
this.stylesToBeFiltered = CodeBlockFilterStylesStrategy.STYLES;
|
|
5065
|
+
this.elementTagName = 'pre';
|
|
5066
|
+
}
|
|
5067
|
+
/**
|
|
5068
|
+
* @inheritDoc
|
|
5069
|
+
*/
|
|
5070
|
+
canFilter(blockOrNodeInstance) {
|
|
5071
|
+
return Predicate.isCodeBlock(blockOrNodeInstance.constructor.name);
|
|
5072
|
+
}
|
|
5073
|
+
/**
|
|
5074
|
+
* The code block styles is preset and will convert to vega-code-block element so we don't need to to refill styles back to element.
|
|
5075
|
+
*
|
|
5076
|
+
* @param {string} _blockOrNodeClassName The class name of the block or node.
|
|
5077
|
+
* @param {HTMLElement} _element The HTML element to check.
|
|
5078
|
+
* @returns {boolean} False, as we don't need to refill styles for code blocks.
|
|
5079
|
+
*/
|
|
5080
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5081
|
+
canRefill(_blockOrNodeClassName, _element) {
|
|
5082
|
+
return false;
|
|
5083
|
+
}
|
|
5084
|
+
/**
|
|
5085
|
+
* @inheritDoc
|
|
5086
|
+
*/
|
|
5087
|
+
toCssText() {
|
|
5088
|
+
return this.buildCssTextForStyles(this.elementTagName, this.classNameToBeAdded);
|
|
5089
|
+
}
|
|
5090
|
+
}
|
|
5091
|
+
CodeBlockFilterStylesStrategy.STYLES = {
|
|
5092
|
+
backgroundColor: 'rgba(var(--v-bg-secondary, 245, 247, 247, 1))',
|
|
5093
|
+
padding: '12px',
|
|
5094
|
+
};
|
|
5095
|
+
|
|
4364
5096
|
/**
|
|
4365
5097
|
* The code block DTO class.
|
|
4366
5098
|
*/
|
|
@@ -4368,6 +5100,7 @@ class RTECodeBlock extends RTEBlock {
|
|
|
4368
5100
|
constructor(id, content, language) {
|
|
4369
5101
|
super(id);
|
|
4370
5102
|
this.type = 'code-block';
|
|
5103
|
+
this.annotationMap = new Map([CustomStyleAnnotation.from(CodeBlockFilterStylesStrategy.STYLES)]);
|
|
4371
5104
|
this.children = [new RTECodeBlockNode(`${id}-1`, content, language, this)];
|
|
4372
5105
|
}
|
|
4373
5106
|
/**
|
|
@@ -4394,9 +5127,10 @@ class RTECodeBlock extends RTEBlock {
|
|
|
4394
5127
|
/**
|
|
4395
5128
|
* @inheritDoc
|
|
4396
5129
|
*/
|
|
4397
|
-
toHtml() {
|
|
5130
|
+
toHtml(options) {
|
|
4398
5131
|
const { language = exports.CodeLanguage['Plain Text'] } = this.children[0];
|
|
4399
|
-
|
|
5132
|
+
const attrStr = super.generateAttributeString(options);
|
|
5133
|
+
return `<pre data-language="${language}"${attrStr}>${this.children.map((node) => node.toHtml(options))}</pre>`;
|
|
4400
5134
|
}
|
|
4401
5135
|
/**
|
|
4402
5136
|
* @inheritDoc
|
|
@@ -4475,10 +5209,13 @@ exports.BoldAnnotationAction = BoldAnnotationAction;
|
|
|
4475
5209
|
exports.ClearFormattingAnnotationAction = ClearFormattingAnnotationAction;
|
|
4476
5210
|
exports.CodeAnnotation = CodeAnnotation;
|
|
4477
5211
|
exports.CodeAnnotationAction = CodeAnnotationAction;
|
|
5212
|
+
exports.CodeBlockFilterStylesStrategy = CodeBlockFilterStylesStrategy;
|
|
5213
|
+
exports.CodeBlockNodeFilterStylesStrategy = CodeBlockNodeFilterStylesStrategy;
|
|
4478
5214
|
exports.CommonAnnotation = CommonAnnotation;
|
|
4479
5215
|
exports.CustomAttributeAnnotation = CustomAttributeAnnotation;
|
|
4480
5216
|
exports.CustomClassAnnotation = CustomClassAnnotation;
|
|
4481
5217
|
exports.CustomStyleAnnotation = CustomStyleAnnotation;
|
|
5218
|
+
exports.HTML_VOID_TAGS = HTML_VOID_TAGS;
|
|
4482
5219
|
exports.HorizontalAlignmentAnnotation = HorizontalAlignmentAnnotation;
|
|
4483
5220
|
exports.HorizontalAlignmentAnnotationAction = HorizontalAlignmentAnnotationAction;
|
|
4484
5221
|
exports.ITALIC_FONT_STYLE = ITALIC_FONT_STYLE;
|
|
@@ -4487,15 +5224,18 @@ exports.InsertChildrenAfterAction = InsertChildrenAfterAction;
|
|
|
4487
5224
|
exports.InsertChildrenBeforeAction = InsertChildrenBeforeAction;
|
|
4488
5225
|
exports.ItalicAnnotationAction = ItalicAnnotationAction;
|
|
4489
5226
|
exports.LinkAnnotationAction = LinkAnnotationAction;
|
|
4490
|
-
exports.
|
|
5227
|
+
exports.LinkFilterStylesStrategy = LinkFilterStylesStrategy;
|
|
4491
5228
|
exports.ModifyContentAction = ModifyContentAction;
|
|
4492
5229
|
exports.NodeAnnotation = NodeAnnotation;
|
|
5230
|
+
exports.Predicate = Predicate;
|
|
4493
5231
|
exports.RTEAnnotationStyle = RTEAnnotationStyle;
|
|
4494
5232
|
exports.RTEBlock = RTEBlock;
|
|
4495
5233
|
exports.RTECodeBlock = RTECodeBlock;
|
|
4496
5234
|
exports.RTECodeBlockNode = RTECodeBlockNode;
|
|
4497
5235
|
exports.RTEDTOClassManager = RTEDTOClassManager$1;
|
|
4498
5236
|
exports.RTEDecoratorNode = RTEDecoratorNode;
|
|
5237
|
+
exports.RTEFilterStylesStrategy = RTEFilterStylesStrategy;
|
|
5238
|
+
exports.RTEFilterStylesStrategyRegistry = RTEFilterStylesStrategyRegistry;
|
|
4499
5239
|
exports.RTENode = RTENode;
|
|
4500
5240
|
exports.RTETextBlock = RTETextBlock;
|
|
4501
5241
|
exports.RTETextNode = RTETextNode;
|
|
@@ -4518,4 +5258,5 @@ exports.UpdateCodeBlockAction = UpdateCodeBlockAction;
|
|
|
4518
5258
|
exports.UpdateTextAction = UpdateTextAction;
|
|
4519
5259
|
exports.VegaRTEPresetToolbarItems = VegaRTEPresetToolbarItems;
|
|
4520
5260
|
exports.ZERO_WIDTH_SPACE = ZERO_WIDTH_SPACE;
|
|
5261
|
+
exports.createStyleMapFromElement = createStyleMapFromElement;
|
|
4521
5262
|
exports.stateEntityRenderingRegistry = stateEntityRenderingRegistry;
|