@globalpayments/vega 2.98.0 → 2.99.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/{action-color-accessibility-validator-24498816.js → action-color-accessibility-validator-b8a9ef0f.js} +2 -2
- package/dist/cjs/{app-globals-b3f05631.js → app-globals-a306dce6.js} +10 -10
- package/dist/cjs/{code-block-d78c2b2c.js → code-block-ea1f5eb3.js} +43 -6
- package/dist/cjs/{component-global-style-slimmer-93c5fb50.js → component-global-style-slimmer-ba588eb4.js} +1 -1
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-beb00fea.js → component-value-history-controller-slimmer.abstract-7071b064.js} +24 -5
- package/dist/cjs/{content-state-78a620a9.js → content-state-8d07d530.js} +60 -8
- package/dist/cjs/{dark-mode-style-controller-32d4054a.js → dark-mode-style-controller-f3da3342.js} +2 -2
- package/dist/cjs/{date-required-rule-5250f26d.js → date-required-rule-c0c498ad.js} +1 -1
- package/dist/cjs/{design-token-74674ee7.js → design-token-58bf7fe8.js} +3 -3
- package/dist/cjs/{element-appender-slimmer-597e9e48.js → element-appender-slimmer-a0269315.js} +2 -2
- package/dist/cjs/{form-field-controller-slimmer-a743be34.js → form-field-controller-slimmer-f73f200e.js} +2 -2
- package/dist/cjs/{image-annotation-action-85c4bd83.js → image-annotation-action-2a28038e.js} +3 -3
- package/dist/cjs/{image-extension-260fa69c.js → image-extension-9659708b.js} +2 -2
- package/dist/cjs/{index-592b4052.js → index-5d1adcd1.js} +86 -0
- package/dist/cjs/index.cjs.js +19 -19
- package/dist/cjs/{inject-keyboard-manager-6a6f5c9f.js → inject-keyboard-manager-4fa45f9c.js} +1 -1
- package/dist/cjs/{internal-calendar-period-factory-dfcdd3f6.js → internal-calendar-period-factory-6196bc80.js} +1 -1
- package/dist/cjs/{internal-translation-controller-1dac2df8.js → internal-translation-controller-51f7f865.js} +2 -0
- package/dist/cjs/{keyboard-manager-c56033b1.js → keyboard-manager-482fe257.js} +1 -1
- package/dist/cjs/{keyboard-manager-slimmer-7043a106.js → keyboard-manager-slimmer-a19430dd.js} +1 -1
- package/dist/cjs/{link-extension-220ff6a9.js → link-extension-11340e1c.js} +26 -7
- package/dist/cjs/loader.cjs.js +13 -13
- package/dist/cjs/{month-view-generator-7b704a80.js → month-view-generator-1a534451.js} +1 -1
- package/dist/cjs/{public-rules-5657bce4.js → public-rules-6c77b545.js} +9 -9
- package/dist/cjs/{range-c5afd53a.js → range-22ddd452.js} +1 -1
- package/dist/cjs/{responsive-format-facade-493d1763.js → responsive-format-facade-74e6d791.js} +1 -1
- package/dist/cjs/{rich-text-editor-required-rule-385c1b61.js → rich-text-editor-required-rule-09d1093a.js} +1 -1
- package/dist/cjs/{split-cell-operation-873d5db7.js → split-cell-operation-11bfb305.js} +14 -4
- package/dist/cjs/{state-border-formatter-711c7aaa.js → state-border-formatter-bf4f9f1c.js} +1 -1
- package/dist/cjs/{string-format-strategy.abstract-b61bdcbd.js → string-format-strategy.abstract-bf37b14c.js} +1 -1
- package/dist/cjs/{string-input-formatter-slimmer-ef65cca7.js → string-input-formatter-slimmer-ffeb18a6.js} +1 -1
- package/dist/cjs/{string-mask-strategy-ad3fa0ac.js → string-mask-strategy-7f394726.js} +2 -2
- package/dist/cjs/{style-formatter-8f711cb0.js → style-formatter-4ac63910.js} +2 -2
- package/dist/cjs/{time-required-rule-87417359.js → time-required-rule-e2a50003.js} +1 -1
- package/dist/cjs/{token-extension-78b5a026.js → token-extension-4686cb3b.js} +2920 -157
- package/dist/cjs/{translation-slimmer-77c7f37d.js → translation-slimmer-e4997f8f.js} +1 -1
- package/dist/cjs/{type-guard-a57ef3ac.js → type-guard-b8d7bb3f.js} +1 -1
- package/dist/cjs/{valid-credit-card-number-rule-4c0a3040.js → valid-credit-card-number-rule-f5a6f009.js} +1 -1
- package/dist/cjs/vega-accordion.cjs.entry.js +6 -6
- package/dist/cjs/vega-app-footer.cjs.entry.js +2 -2
- package/dist/cjs/vega-app-header-button.cjs.entry.js +5 -5
- package/dist/cjs/vega-box.cjs.entry.js +7 -7
- package/dist/cjs/vega-brand-logo.cjs.entry.js +2 -2
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/vega-button-circle.cjs.entry.js +6 -6
- package/dist/cjs/vega-button-link.cjs.entry.js +1 -1
- package/dist/cjs/vega-button.cjs.entry.js +4 -4
- package/dist/cjs/vega-calendar_5.cjs.entry.js +21 -10
- package/dist/cjs/vega-card.cjs.entry.js +5 -5
- package/dist/cjs/vega-carousel.cjs.entry.js +3 -3
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-chip.cjs.entry.js +5 -5
- package/dist/cjs/vega-code-block.cjs.entry.js +11 -11
- package/dist/cjs/vega-color-picker.cjs.entry.js +3 -3
- package/dist/cjs/vega-color-swatch-picker.cjs.entry.js +4 -4
- package/dist/cjs/vega-color-swatch.cjs.entry.js +2 -2
- package/dist/cjs/vega-combo-box.cjs.entry.js +9 -9
- package/dist/cjs/vega-counter-badge.cjs.entry.js +2 -2
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +14 -14
- package/dist/cjs/vega-dialog_2.cjs.entry.js +5 -5
- package/dist/cjs/vega-divider.cjs.entry.js +5 -5
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +23 -14
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-field-label.cjs.entry.js +3 -3
- package/dist/cjs/vega-file-uploader.cjs.entry.js +4 -4
- package/dist/cjs/vega-flag-icon.cjs.entry.js +5 -5
- package/dist/cjs/vega-flex.cjs.entry.js +6 -6
- package/dist/cjs/vega-font.cjs.entry.js +5 -5
- package/dist/cjs/vega-form.cjs.entry.js +2 -2
- package/dist/cjs/vega-grid.cjs.entry.js +5 -5
- package/dist/cjs/vega-icon.cjs.entry.js +6 -6
- package/dist/cjs/vega-image-uploader.cjs.entry.js +7 -7
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +7 -7
- package/dist/cjs/vega-input-numeric.cjs.entry.js +6 -6
- package/dist/cjs/vega-input-passcode.cjs.entry.js +6 -6
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +5 -5
- package/dist/cjs/vega-input-range.cjs.entry.js +4 -4
- package/dist/cjs/vega-input-select.cjs.entry.js +6 -6
- package/dist/cjs/vega-input.cjs.entry.js +7 -7
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +10 -10
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +2 -2
- package/dist/cjs/vega-pagination.cjs.entry.js +4 -4
- package/dist/cjs/vega-popover_2.cjs.entry.js +8 -8
- package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-radio_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +39 -11
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +79 -22
- package/dist/cjs/vega-rich-text-find-replace-panel.cjs.entry.js +1 -1
- package/dist/cjs/vega-rich-text-special-characters-panel.cjs.entry.js +5 -5
- package/dist/cjs/vega-rich-text-table-properties_3.cjs.entry.js +10 -10
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +5 -5
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +3 -3
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +3 -3
- package/dist/cjs/vega-signature-capture.cjs.entry.js +8 -8
- package/dist/cjs/vega-stepper.cjs.entry.js +3 -3
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +21 -8
- package/dist/cjs/vega-table_11.cjs.entry.js +81 -45
- package/dist/cjs/vega-textarea.cjs.entry.js +3 -3
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +10 -10
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +3 -3
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +6 -6
- package/dist/cjs/vega.cjs.js +13 -13
- package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-item-renderer.js +5 -2
- package/dist/collection/components/vega-calendar/vega-calendar-event-preview/slimmers/renderers/vega-calendar-event-preview-detail-renderer.js +9 -1
- package/dist/collection/components/vega-counter-badge/vega-counter-badge.js +2 -2
- package/dist/collection/components/vega-dropdown/vega-dropdown-group/slimmers/renderers/vega-dropdown-group-renderer.js +6 -4
- package/dist/collection/components/vega-dropdown/vega-dropdown-item/slimmers/renderers/vega-dropdown-item-renderer.js +10 -2
- package/dist/collection/components/vega-field-label/vega-field-label.css +1 -0
- package/dist/collection/components/vega-rich-text-editor/constants/constant.js +16 -0
- package/dist/collection/components/vega-rich-text-editor/dto/annotations/text-style-default-styles.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/dto/blocks/block.abstract.js +11 -0
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.js +5 -2
- package/dist/collection/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.js +36 -2
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.js +20 -3
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.js +12 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/block-boundary-registry.js +34 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +20 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/action-handler-strategies/insert-function-block-strategy.js +3 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/constants.js +8 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/function-block.js +14 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/dto/logic-control-block.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-containing-function-block-strategy.js +19 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-block-strategy.js +9 -5
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-function-content-strategy.js +3 -3
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-to-logic-control-block-strategy.js +4 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/function-extension.js +18 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-block-renderer.js +5 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/logic-control-block-renderer.js +2 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/utils.js +36 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/languages/language-extension.js +1 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/action-handler-strategies/image-replace-src-strategy.js +21 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/actions/image-replace-src-action.js +13 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/paste-image-parser.js +295 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/pending-image-registry.js +116 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.js +13 -4
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-extension.js +70 -7
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/default-paste-strategy.js +38 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/paste-processing-strategy.abstract.js +55 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/paste-strategy-selector.js +59 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/strategies/word-paste-strategy.js +416 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-code-block-transformer.js +106 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-image-transformer.js +198 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-list-transformer.js +591 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-paragraph-transformer.js +112 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-table-transformer.js +551 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-transformer.js +7 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/table/dto/table-block.js +10 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.js +4 -2
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node.js +44 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/extension-controller.js +2 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/text-style-annotation-handler.js +7 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/continue-inline-to-rte-text-block-strategy.js +17 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/helper/input-event-handler/insert-paste-handler.js +18 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/selection-controller.js +21 -2
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.js +7 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/vega-rich-text-editor-source-view-renderer.js +5 -2
- package/dist/collection/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.js +14 -7
- package/dist/collection/components/vega-tab-group/vega-tab-group.css +6 -0
- package/dist/collection/components/vega-tab-group/vega-tab-group.js +5 -0
- package/dist/collection/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.js +31 -1
- package/dist/collection/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.js +18 -11
- package/dist/collection/helpers/translation/locales/en.js +2 -0
- package/dist/collection/utils/sanitize/index.js +3 -2
- package/dist/collection/utils/sanitize/strategies/index.js +1 -0
- package/dist/collection/utils/sanitize/strategies/label-sanitize-strategy.js +14 -0
- package/dist/collection/utils/sanitize/strategies/plain-text-sanitize-strategy.js +70 -0
- package/dist/esm/{action-color-accessibility-validator-ce55cb07.js → action-color-accessibility-validator-08877515.js} +2 -2
- package/dist/esm/{app-globals-95c7110a.js → app-globals-c59364c2.js} +10 -10
- package/dist/esm/{code-block-9c513169.js → code-block-e6443949.js} +39 -7
- package/dist/esm/{component-global-style-slimmer-ac703085.js → component-global-style-slimmer-7d60a04a.js} +1 -1
- package/dist/esm/{component-value-history-controller-slimmer.abstract-9cef2a2a.js → component-value-history-controller-slimmer.abstract-ee393213.js} +24 -5
- package/dist/esm/{content-state-25c81c08.js → content-state-43cdacff.js} +60 -9
- package/dist/esm/{dark-mode-style-controller-ca5afd2d.js → dark-mode-style-controller-352f15ff.js} +2 -2
- package/dist/esm/{date-required-rule-85334d0c.js → date-required-rule-b5b67498.js} +1 -1
- package/dist/esm/{design-token-10ff79b5.js → design-token-8319bb59.js} +3 -3
- package/dist/esm/{element-appender-slimmer-8a06ecdd.js → element-appender-slimmer-c81d1fe3.js} +2 -2
- package/dist/esm/{form-field-controller-slimmer-68fc5380.js → form-field-controller-slimmer-511b7ac5.js} +2 -2
- package/dist/esm/{image-annotation-action-d7f2aecc.js → image-annotation-action-d7cb80aa.js} +3 -3
- package/dist/esm/{image-extension-fbd1ed6e.js → image-extension-9b8abd0d.js} +2 -2
- package/dist/esm/{index-3b327f29.js → index-35451d12.js} +86 -1
- package/dist/esm/index.js +19 -19
- package/dist/esm/{inject-keyboard-manager-ea1aad5b.js → inject-keyboard-manager-dd368d56.js} +1 -1
- package/dist/esm/{internal-calendar-period-factory-7b294fb6.js → internal-calendar-period-factory-d58f35c6.js} +1 -1
- package/dist/esm/{internal-translation-controller-fac22598.js → internal-translation-controller-b33430c6.js} +2 -0
- package/dist/esm/{keyboard-manager-50da85d7.js → keyboard-manager-b4a0d97d.js} +1 -1
- package/dist/esm/{keyboard-manager-slimmer-1f7c8bfb.js → keyboard-manager-slimmer-0517fc70.js} +1 -1
- package/dist/esm/{link-extension-e8ee103e.js → link-extension-230bae8d.js} +26 -7
- package/dist/esm/loader.js +13 -13
- package/dist/esm/{month-view-generator-a1a9a4ec.js → month-view-generator-f470caac.js} +1 -1
- package/dist/esm/{public-rules-49de79c7.js → public-rules-28ef32d3.js} +9 -9
- package/dist/esm/{range-b678c693.js → range-efad2578.js} +1 -1
- package/dist/esm/{responsive-format-facade-f19b601c.js → responsive-format-facade-dec87e46.js} +1 -1
- package/dist/esm/{rich-text-editor-required-rule-578e0958.js → rich-text-editor-required-rule-a697e5bd.js} +1 -1
- package/dist/esm/{split-cell-operation-1c8e7585.js → split-cell-operation-89b91a38.js} +14 -4
- package/dist/esm/{state-border-formatter-bfda33aa.js → state-border-formatter-1e900a2f.js} +1 -1
- package/dist/esm/{string-format-strategy.abstract-1f4ff1b3.js → string-format-strategy.abstract-d0ce3f65.js} +1 -1
- package/dist/esm/{string-input-formatter-slimmer-0006a107.js → string-input-formatter-slimmer-6546cfc7.js} +1 -1
- package/dist/esm/{string-mask-strategy-bbbcdbef.js → string-mask-strategy-dd13ae21.js} +2 -2
- package/dist/esm/{style-formatter-e9adc8f4.js → style-formatter-057d7120.js} +2 -2
- package/dist/esm/{time-required-rule-1ce2d0a0.js → time-required-rule-73753a54.js} +1 -1
- package/dist/esm/{token-extension-f2d009e3.js → token-extension-74a0eeb1.js} +2918 -155
- package/dist/esm/{translation-slimmer-ee0f0e76.js → translation-slimmer-ef970ffc.js} +1 -1
- package/dist/esm/{type-guard-f2624334.js → type-guard-6fc96870.js} +1 -1
- package/dist/esm/{valid-credit-card-number-rule-60212b1d.js → valid-credit-card-number-rule-b54a31e7.js} +1 -1
- package/dist/esm/vega-accordion.entry.js +6 -6
- package/dist/esm/vega-app-footer.entry.js +2 -2
- package/dist/esm/vega-app-header-button.entry.js +5 -5
- package/dist/esm/vega-box.entry.js +7 -7
- package/dist/esm/vega-brand-logo.entry.js +2 -2
- package/dist/esm/vega-breadcrumb.entry.js +2 -2
- package/dist/esm/vega-button-circle.entry.js +6 -6
- package/dist/esm/vega-button-link.entry.js +1 -1
- package/dist/esm/vega-button.entry.js +4 -4
- package/dist/esm/vega-calendar_5.entry.js +21 -10
- package/dist/esm/vega-card.entry.js +5 -5
- package/dist/esm/vega-carousel.entry.js +3 -3
- package/dist/esm/vega-checkbox_2.entry.js +3 -3
- package/dist/esm/vega-chip.entry.js +5 -5
- package/dist/esm/vega-code-block.entry.js +11 -11
- package/dist/esm/vega-color-picker.entry.js +3 -3
- package/dist/esm/vega-color-swatch-picker.entry.js +4 -4
- package/dist/esm/vega-color-swatch.entry.js +2 -2
- package/dist/esm/vega-combo-box.entry.js +9 -9
- package/dist/esm/vega-counter-badge.entry.js +2 -2
- package/dist/esm/vega-date-picker_2.entry.js +14 -14
- package/dist/esm/vega-dialog_2.entry.js +5 -5
- package/dist/esm/vega-divider.entry.js +5 -5
- package/dist/esm/vega-dropdown_5.entry.js +23 -14
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-field-label.entry.js +3 -3
- package/dist/esm/vega-file-uploader.entry.js +4 -4
- package/dist/esm/vega-flag-icon.entry.js +5 -5
- package/dist/esm/vega-flex.entry.js +6 -6
- package/dist/esm/vega-font.entry.js +5 -5
- package/dist/esm/vega-form.entry.js +2 -2
- package/dist/esm/vega-grid.entry.js +5 -5
- package/dist/esm/vega-icon.entry.js +6 -6
- package/dist/esm/vega-image-uploader.entry.js +7 -7
- package/dist/esm/vega-input-credit-card.entry.js +7 -7
- package/dist/esm/vega-input-numeric.entry.js +6 -6
- package/dist/esm/vega-input-passcode.entry.js +6 -6
- package/dist/esm/vega-input-phone-number.entry.js +5 -5
- package/dist/esm/vega-input-range.entry.js +4 -4
- package/dist/esm/vega-input-select.entry.js +6 -6
- package/dist/esm/vega-input.entry.js +7 -7
- package/dist/esm/vega-left-nav_5.entry.js +10 -10
- package/dist/esm/vega-loader-wrapper_2.entry.js +3 -3
- package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
- package/dist/esm/vega-pagination.entry.js +4 -4
- package/dist/esm/vega-popover_2.entry.js +8 -8
- package/dist/esm/vega-progress-tracker_2.entry.js +3 -3
- package/dist/esm/vega-radio_2.entry.js +6 -6
- package/dist/esm/vega-rich-text-content.entry.js +39 -11
- package/dist/esm/vega-rich-text-editor_4.entry.js +79 -22
- package/dist/esm/vega-rich-text-find-replace-panel.entry.js +1 -1
- package/dist/esm/vega-rich-text-special-characters-panel.entry.js +5 -5
- package/dist/esm/vega-rich-text-table-properties_3.entry.js +10 -10
- package/dist/esm/vega-selection-chip_2.entry.js +5 -5
- package/dist/esm/vega-selection-tile_2.entry.js +3 -3
- package/dist/esm/vega-sidenav_3.entry.js +3 -3
- package/dist/esm/vega-signature-capture.entry.js +8 -8
- package/dist/esm/vega-stepper.entry.js +3 -3
- package/dist/esm/vega-tab-group_2.entry.js +21 -8
- package/dist/esm/vega-table_11.entry.js +53 -17
- package/dist/esm/vega-textarea.entry.js +3 -3
- package/dist/esm/vega-time-picker_2.entry.js +10 -10
- package/dist/esm/vega-toggle-switch.entry.js +3 -3
- package/dist/esm/vega-tooltip_2.entry.js +6 -6
- package/dist/esm/vega.js +13 -13
- package/dist/sri/vega-sri-manifest.json +349 -349
- package/dist/types/components/vega-calendar/vega-calendar-event-preview/slimmers/renderers/vega-calendar-event-preview-detail-renderer.d.ts +2 -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-rich-text-editor/constants/constant.d.ts +16 -0
- package/dist/types/components/vega-rich-text-editor/dto/annotations/text-style-default-styles.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/dto/blocks/block.abstract.d.ts +9 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy-registry.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/filter-styles-strategy.abstract.d.ts +3 -2
- package/dist/types/components/vega-rich-text-editor/dto/filter-styles-strategies/text-node/title-heading-node-filter-styles-strategy.d.ts +25 -3
- package/dist/types/components/vega-rich-text-editor/dto/renderers/blocks/block-text-nodes-renderer.abstract.d.ts +7 -0
- package/dist/types/components/vega-rich-text-editor/dto/renderers/nodes/text-node-renderer.d.ts +11 -0
- package/dist/types/components/vega-rich-text-editor/extensions/block-boundary-registry.d.ts +21 -0
- package/dist/types/components/vega-rich-text-editor/extensions/extension.abstract.d.ts +15 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/constants.d.ts +4 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/dto/function-block.d.ts +7 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/element-to-dto-strategies/div-containing-function-block-strategy.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/function-extension.d.ts +6 -0
- package/dist/types/components/vega-rich-text-editor/extensions/functions/utils.d.ts +29 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/action-handler-strategies/image-replace-src-strategy.d.ts +12 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/actions/image-replace-src-action.d.ts +11 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/paste-image-parser.d.ts +136 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/parse-local-images-helper/pending-image-registry.d.ts +68 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-chooser-ui.d.ts +9 -4
- package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-extension.d.ts +39 -2
- package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/default-paste-strategy.d.ts +29 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/paste-processing-strategy.abstract.d.ts +61 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/paste-strategy-selector.d.ts +45 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/strategies/word-paste-strategy.d.ts +186 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-code-block-transformer.d.ts +51 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-image-transformer.d.ts +86 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-list-transformer.d.ts +271 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-paragraph-transformer.d.ts +25 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-table-transformer.d.ts +240 -0
- package/dist/types/components/vega-rich-text-editor/extensions/paste/word-paste-transformers/word-structure-transformer.d.ts +36 -0
- package/dist/types/components/vega-rich-text-editor/extensions/table/dto/table-block.d.ts +8 -0
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/span-to-token-node-strategy.d.ts +2 -2
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node.d.ts +19 -1
- package/dist/types/components/vega-rich-text-editor/interface.d.ts +10 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/helper/element-to-dto-strategy/annotation-handler/text-style-annotation-handler.d.ts +4 -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 +8 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/source-edit-toolbar-button-slimmer.d.ts +1 -0
- package/dist/types/components/vega-tab-group/slimmers/vega-tab-group/renderers/vega-tab-group-tab-list-renderer.d.ts +1 -0
- package/dist/types/components/vega-tab-group/types.d.ts +3 -1
- package/dist/types/components/vega-tab-group/vega-tab-group.d.ts +2 -0
- package/dist/types/components/vega-table/interface.d.ts +4 -4
- package/dist/types/components/vega-table/slimmers/controllers/vega-table-body-col-span-controller.d.ts +16 -0
- package/dist/types/components/vega-table/slimmers/renderers/vega-table-body-col-span-resolver.d.ts +8 -10
- package/dist/types/helpers/translation/interface.d.ts +3 -1
- package/dist/types/types/public-api.d.ts +1 -0
- package/dist/types/utils/sanitize/index.d.ts +3 -2
- package/dist/types/utils/sanitize/strategies/index.d.ts +1 -0
- package/dist/types/utils/sanitize/strategies/label-sanitize-strategy.d.ts +9 -0
- package/dist/types/utils/sanitize/strategies/plain-text-sanitize-strategy.d.ts +36 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-0cbf09f7.entry.js → p-024db952.entry.js} +1 -1
- package/dist/vega/p-0b2c4c0b.js +1 -0
- package/dist/vega/{p-c2277448.entry.js → p-0ca3b4bf.entry.js} +1 -1
- package/dist/vega/{p-6f537797.entry.js → p-1a37d63c.entry.js} +1 -1
- package/dist/vega/{p-b622c455.js → p-1fa22fda.js} +1 -1
- package/dist/vega/{p-d609c3fd.js → p-2044eba9.js} +1 -1
- package/dist/vega/{p-56db3323.js → p-22edd3cc.js} +1 -1
- package/dist/vega/{p-5f96e741.entry.js → p-23c1f378.entry.js} +1 -1
- package/dist/vega/{p-6c95a6a3.js → p-2529820e.js} +1 -1
- package/dist/vega/{p-8d96f0e8.entry.js → p-2af1d8b8.entry.js} +1 -1
- package/dist/vega/{p-17c69503.entry.js → p-2f89ee14.entry.js} +1 -1
- package/dist/vega/{p-2bb5a232.js → p-3091b105.js} +1 -1
- package/dist/vega/{p-52c69f9e.entry.js → p-328ebbdb.entry.js} +1 -1
- package/dist/vega/p-35628af4.js +1 -0
- package/dist/vega/{p-9abf7d0a.entry.js → p-35d37477.entry.js} +1 -1
- package/dist/vega/{p-8c56d74d.entry.js → p-3a230d4b.entry.js} +1 -1
- package/dist/vega/{p-4bfe3258.entry.js → p-3c152bad.entry.js} +1 -1
- package/dist/vega/p-3c559c8b.js +1 -0
- package/dist/vega/{p-d470fce2.entry.js → p-3c8421d5.entry.js} +1 -1
- package/dist/vega/{p-7dcd2850.entry.js → p-4022412e.entry.js} +1 -1
- package/dist/vega/{p-c70748f7.entry.js → p-433b1395.entry.js} +1 -1
- package/dist/vega/{p-b98ead05.entry.js → p-4370b954.entry.js} +1 -1
- package/dist/vega/p-444e24c6.js +1 -0
- package/dist/vega/p-4473d8b1.js +3 -0
- package/dist/vega/{p-a484e32d.entry.js → p-44999c88.entry.js} +1 -1
- package/dist/vega/{p-f29ea345.entry.js → p-47a48329.entry.js} +1 -1
- package/dist/vega/{p-0cf3b5c1.entry.js → p-49d7cfed.entry.js} +1 -1
- package/dist/vega/{p-92528dc9.entry.js → p-4afd6715.entry.js} +1 -1
- package/dist/vega/{p-461100b8.entry.js → p-4f6aaac5.entry.js} +1 -1
- package/dist/vega/p-50eda925.js +1 -0
- package/dist/vega/{p-ae2abdfa.js → p-5110c84f.js} +1 -1
- package/dist/vega/{p-2a245138.entry.js → p-5147c30d.entry.js} +1 -1
- package/dist/vega/{p-874e5624.js → p-52878ea9.js} +1 -1
- package/dist/vega/{p-b00ec194.entry.js → p-55dc3053.entry.js} +1 -1
- package/dist/vega/p-5af312f8.js +1 -0
- package/dist/vega/{p-3e09aeed.js → p-5b3c8a56.js} +1 -1
- package/dist/vega/{p-2acf9b42.entry.js → p-5e9e04f3.entry.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/p-6493f13a.entry.js +1 -0
- package/dist/vega/{p-56598858.entry.js → p-6659c910.entry.js} +1 -1
- package/dist/vega/{p-95c18f79.entry.js → p-66728dd4.entry.js} +1 -1
- package/dist/vega/{p-4cbfc01e.entry.js → p-66a785d0.entry.js} +1 -1
- package/dist/vega/{p-36d9e782.entry.js → p-66fe8b4e.entry.js} +1 -1
- package/dist/vega/p-67e88cd7.entry.js +1 -0
- package/dist/vega/{p-456f678b.js → p-691bdc20.js} +1 -1
- package/dist/vega/{p-94975537.entry.js → p-6d6b4495.entry.js} +1 -1
- package/dist/vega/p-7754b10f.entry.js +1 -0
- package/dist/vega/{p-085d1647.entry.js → p-77fb3971.entry.js} +1 -1
- package/dist/vega/{p-544ce391.entry.js → p-7977352b.entry.js} +1 -1
- package/dist/vega/{p-a91927eb.entry.js → p-7b133734.entry.js} +1 -1
- package/dist/vega/p-7b84a943.entry.js +1 -0
- package/dist/vega/{p-02d3ce79.entry.js → p-840444c9.entry.js} +1 -1
- package/dist/vega/{p-3737b9e2.entry.js → p-860e76f5.entry.js} +1 -1
- package/dist/vega/{p-72fd17a1.entry.js → p-867cc602.entry.js} +1 -1
- package/dist/vega/p-8d2a9012.js +1 -0
- package/dist/vega/{p-7e8fdac4.js → p-8d4be607.js} +1 -1
- package/dist/vega/p-8d77c7cf.js +1 -0
- package/dist/vega/{p-4fd0cf01.js → p-8f3b93db.js} +1 -1
- package/dist/vega/{p-56417ec5.entry.js → p-944e284d.entry.js} +1 -1
- package/dist/vega/{p-6fd4f2c6.js → p-94b54a95.js} +1 -1
- package/dist/vega/p-9c2b3279.js +1 -0
- package/dist/vega/{p-ca3c1317.entry.js → p-9c5289dc.entry.js} +1 -1
- package/dist/vega/{p-810c9c29.js → p-9c9b0629.js} +1 -1
- package/dist/vega/{p-585e4f1c.entry.js → p-9c9ff871.entry.js} +1 -1
- package/dist/vega/{p-2f07d719.entry.js → p-9d90e271.entry.js} +1 -1
- package/dist/vega/{p-d319ebb5.js → p-9e9f49f4.js} +1 -1
- package/dist/vega/{p-dcd3e3a7.js → p-a1f220ca.js} +1 -1
- package/dist/vega/{p-035e2f05.entry.js → p-a4360b7e.entry.js} +1 -1
- package/dist/vega/{p-6d4518d7.entry.js → p-a7517760.entry.js} +1 -1
- package/dist/vega/{p-c5fb8a69.entry.js → p-aa433430.entry.js} +1 -1
- package/dist/vega/{p-1cff027b.entry.js → p-aa914dbd.entry.js} +1 -1
- package/dist/vega/{p-72ab5cd5.entry.js → p-b12de1bf.entry.js} +1 -1
- package/dist/vega/p-b21cc390.entry.js +1 -0
- package/dist/vega/{p-dbb4b1d1.js → p-b3c4943b.js} +1 -1
- package/dist/vega/{p-1aedbfd2.entry.js → p-ba6881da.entry.js} +1 -1
- package/dist/vega/{p-9834d5d4.entry.js → p-bd7725f7.entry.js} +1 -1
- package/dist/vega/{p-a090b2be.js → p-c348eaf5.js} +1 -1
- package/dist/vega/{p-ccbe3f1b.entry.js → p-c8ad7207.entry.js} +1 -1
- package/dist/vega/{p-b3733762.entry.js → p-c8fb3aac.entry.js} +1 -1
- package/dist/vega/p-cc569b54.js +1 -0
- package/dist/vega/{p-c98c2f5f.entry.js → p-ccbed811.entry.js} +1 -1
- package/dist/vega/{p-da867019.entry.js → p-ce82d6bb.entry.js} +1 -1
- package/dist/vega/{p-a81ad3bd.js → p-cede3535.js} +1 -1
- package/dist/vega/p-d35a31a5.entry.js +1 -0
- package/dist/vega/{p-ac94ba1b.entry.js → p-d4d90ce2.entry.js} +1 -1
- package/dist/vega/{p-cb81126a.entry.js → p-d6023dc0.entry.js} +1 -1
- package/dist/vega/{p-a8174ad8.entry.js → p-d62e618a.entry.js} +1 -1
- package/dist/vega/{p-1ea9ad9a.js → p-dd0bd78b.js} +1 -1
- package/dist/vega/{p-36d2df7a.entry.js → p-ded1ecc1.entry.js} +1 -1
- package/dist/vega/p-df63c2fb.entry.js +1 -0
- package/dist/vega/{p-c6d775b8.entry.js → p-e1a65e06.entry.js} +1 -1
- package/dist/vega/{p-39c5054b.js → p-e1c82ca9.js} +1 -1
- package/dist/vega/{p-f6c0e9e7.entry.js → p-e469ba27.entry.js} +1 -1
- package/dist/vega/{p-373541fa.js → p-e4c5cb4f.js} +1 -1
- package/dist/vega/{p-ec64cc59.entry.js → p-f0a0fc77.entry.js} +1 -1
- package/dist/vega/{p-12e8a1b2.js → p-f13b39d8.js} +1 -1
- package/dist/vega/{p-4e065ef7.entry.js → p-f2384411.entry.js} +1 -1
- package/dist/vega/{p-8d2501b2.js → p-f9a3805d.js} +1 -1
- package/dist/vega/{p-1e0a8fd3.js → p-fa5cd8b1.js} +1 -1
- package/dist/vega/{p-2c2e8615.js → p-fcb6b499.js} +1 -1
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +1 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/paste/paste-constants.js +0 -6
- package/dist/types/components/vega-rich-text-editor/extensions/paste/paste-constants.d.ts +0 -6
- package/dist/vega/p-03eeadc1.entry.js +0 -1
- package/dist/vega/p-0eb29065.js +0 -3
- package/dist/vega/p-10d30c03.js +0 -1
- package/dist/vega/p-1250b1ab.entry.js +0 -1
- package/dist/vega/p-1abd3c17.js +0 -1
- package/dist/vega/p-2d158cbd.js +0 -1
- package/dist/vega/p-3d0b4074.js +0 -1
- package/dist/vega/p-56493601.js +0 -1
- package/dist/vega/p-571ec00b.js +0 -1
- package/dist/vega/p-5b1f5e4a.entry.js +0 -1
- package/dist/vega/p-6234852e.entry.js +0 -1
- package/dist/vega/p-781b7a54.js +0 -1
- package/dist/vega/p-cd69aeae.js +0 -1
- package/dist/vega/p-cfe268a8.entry.js +0 -1
- package/dist/vega/p-de8f0d98.js +0 -1
- package/dist/vega/p-f0e828d8.js +0 -1
- package/dist/vega/p-f62c5a20.entry.js +0 -1
- package/dist/vega/p-fa65956c.entry.js +0 -1
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Normalizes Word image markup into plain <img> tags, drops list-marker images,
|
|
3
|
+
* and optionally remaps image source paths.
|
|
4
|
+
*/
|
|
5
|
+
export class WordImageTransformer {
|
|
6
|
+
/** @inheritDoc */
|
|
7
|
+
getAllowedTags() {
|
|
8
|
+
return ['IMG'];
|
|
9
|
+
}
|
|
10
|
+
/** @inheritDoc */
|
|
11
|
+
getAllowedAttributes() {
|
|
12
|
+
return new Map([['IMG', ['src', 'alt', 'title', 'width', 'height']]]);
|
|
13
|
+
}
|
|
14
|
+
/** @inheritDoc */
|
|
15
|
+
getAllowedStyles() {
|
|
16
|
+
return [];
|
|
17
|
+
}
|
|
18
|
+
/** @inheritDoc */
|
|
19
|
+
apply(root) {
|
|
20
|
+
this.normalizeWordImageDataElements(root);
|
|
21
|
+
this.normalizeStandardImages(root);
|
|
22
|
+
this.liftImagesOutOfTextStyleBlocks(root);
|
|
23
|
+
this.insertSpanBetweenAdjacentImages(root);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Lifts images out of text-style blocks (`h1`-`h6`, Word title / subtitle
|
|
27
|
+
* paragraphs) so they become standalone top-level images.
|
|
28
|
+
*
|
|
29
|
+
* The RTE data model represents these blocks as text blocks whose children
|
|
30
|
+
* are text nodes only, so an `<img>` nested inside one has no text-node
|
|
31
|
+
* representation and would be silently dropped during DTO conversion. Moving
|
|
32
|
+
* each image to a sibling position right after its block lets the downstream
|
|
33
|
+
* image-block strategies pick it up. Images are re-inserted in document order
|
|
34
|
+
* so they stay aligned with the RTF files paired later.
|
|
35
|
+
*
|
|
36
|
+
* Word title / subtitle paragraphs still carry their raw `MsoTitle` /
|
|
37
|
+
* `MsoSubtitle` class here because {@link WordParagraphRoleTransformer} runs
|
|
38
|
+
* after this transformer.
|
|
39
|
+
*
|
|
40
|
+
* @param {HTMLElement} root Parsed Word fragment root.
|
|
41
|
+
*/
|
|
42
|
+
liftImagesOutOfTextStyleBlocks(root) {
|
|
43
|
+
const blockElements = Array.from(root.querySelectorAll('h1, h2, h3, h4, h5, h6, p')).filter((element) => this.isImageLiftTargetBlock(element));
|
|
44
|
+
blockElements.forEach((blockElement) => {
|
|
45
|
+
if (!blockElement.parentNode) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const imageElements = Array.from(blockElement.querySelectorAll('img'));
|
|
49
|
+
let referenceNode = blockElement;
|
|
50
|
+
imageElements.forEach((imageElement) => {
|
|
51
|
+
blockElement.parentNode.insertBefore(imageElement, referenceNode.nextSibling);
|
|
52
|
+
referenceNode = imageElement;
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Reports whether a block hosts its images as text-only children, requiring
|
|
58
|
+
* nested images to be lifted out: any heading (`h1`-`h6`) or a Word title /
|
|
59
|
+
* subtitle paragraph.
|
|
60
|
+
*
|
|
61
|
+
* @param {HTMLElement} element Candidate block element.
|
|
62
|
+
* @returns {boolean} `true` when nested images must be lifted out of the block.
|
|
63
|
+
*/
|
|
64
|
+
isImageLiftTargetBlock(element) {
|
|
65
|
+
const tagName = element.tagName.toLowerCase();
|
|
66
|
+
if (/^h[1-6]$/.test(tagName)) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
if (tagName === 'p') {
|
|
70
|
+
const className = (element.getAttribute('class') || '').toLowerCase();
|
|
71
|
+
return /msotitle/.test(className) || /msosubtitle/.test(className);
|
|
72
|
+
}
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Converts Word VML `v:imagedata` elements to plain `<img>` elements.
|
|
77
|
+
*
|
|
78
|
+
* @param {HTMLElement} root Parsed Word fragment root.
|
|
79
|
+
*/
|
|
80
|
+
normalizeWordImageDataElements(root) {
|
|
81
|
+
const imageDataElements = Array.from(root.querySelectorAll('v\\:imagedata, imagedata'));
|
|
82
|
+
imageDataElements.forEach((imageDataElement) => {
|
|
83
|
+
const src = imageDataElement.getAttribute('src') ||
|
|
84
|
+
imageDataElement.getAttribute('o:href') ||
|
|
85
|
+
imageDataElement.getAttribute('href') ||
|
|
86
|
+
'';
|
|
87
|
+
const alt = imageDataElement.getAttribute('alt') ||
|
|
88
|
+
imageDataElement.getAttribute('o:title') ||
|
|
89
|
+
imageDataElement.getAttribute('title') ||
|
|
90
|
+
'';
|
|
91
|
+
const wrapperElement = imageDataElement.closest('v\\:shape, shape') || imageDataElement;
|
|
92
|
+
if (!src) {
|
|
93
|
+
wrapperElement.remove();
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
// Non-local list images have no RTF counterpart, so drop them now. Local
|
|
97
|
+
// (file://) list images are kept as placeholders and removed later during
|
|
98
|
+
// preview pairing so the image order stays aligned with the RTF files.
|
|
99
|
+
if (this.isListImage(wrapperElement) && !src.startsWith('file://')) {
|
|
100
|
+
wrapperElement.remove();
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const imageElement = root.ownerDocument.createElement('img');
|
|
104
|
+
imageElement.setAttribute('src', src);
|
|
105
|
+
if (alt) {
|
|
106
|
+
imageElement.setAttribute('alt', alt);
|
|
107
|
+
}
|
|
108
|
+
if (wrapperElement.parentNode) {
|
|
109
|
+
const shapeId = wrapperElement.getAttribute('id') || '';
|
|
110
|
+
if (shapeId) {
|
|
111
|
+
this.removeFallbackImagesForShapeId(root, shapeId);
|
|
112
|
+
}
|
|
113
|
+
wrapperElement.parentNode.insertBefore(imageElement, wrapperElement);
|
|
114
|
+
wrapperElement.parentNode.removeChild(wrapperElement);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Removes non-VML fallback images that reference a specific Word VML shape id.
|
|
120
|
+
*
|
|
121
|
+
* Word clipboard HTML often includes both `v:imagedata` and an `<img v:shapes="...">`
|
|
122
|
+
* fallback for the same visual image. Once VML is normalized, the fallback must
|
|
123
|
+
* be removed to avoid duplicated image handling.
|
|
124
|
+
*
|
|
125
|
+
* @param {HTMLElement} root Parsed Word fragment root.
|
|
126
|
+
* @param {string} shapeId VML shape id referenced by fallback images.
|
|
127
|
+
*/
|
|
128
|
+
removeFallbackImagesForShapeId(root, shapeId) {
|
|
129
|
+
const imageElements = Array.from(root.querySelectorAll('img'));
|
|
130
|
+
imageElements.forEach((imageElement) => {
|
|
131
|
+
const referencedShapeId = imageElement.getAttribute('v:shapes') || imageElement.getAttribute('shapes') || '';
|
|
132
|
+
if (referencedShapeId === shapeId) {
|
|
133
|
+
imageElement.remove();
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Removes list-marker images and sourceless `<img>` elements.
|
|
139
|
+
*
|
|
140
|
+
* @param {HTMLElement} root Parsed Word fragment root.
|
|
141
|
+
*/
|
|
142
|
+
normalizeStandardImages(root) {
|
|
143
|
+
const imageElements = Array.from(root.querySelectorAll('img'));
|
|
144
|
+
imageElements.forEach((imageElement) => {
|
|
145
|
+
const src = imageElement.getAttribute('src') || '';
|
|
146
|
+
if (this.isListImage(imageElement)) {
|
|
147
|
+
// Non-local list images have no RTF counterpart, so drop them now. Local
|
|
148
|
+
// (file://) list images are kept as placeholders and removed later during
|
|
149
|
+
// preview pairing so the image order stays aligned with the RTF files.
|
|
150
|
+
if (!src.startsWith('file://')) {
|
|
151
|
+
imageElement.remove();
|
|
152
|
+
}
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (!src) {
|
|
156
|
+
imageElement.remove();
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Inserts an empty `<span> </span>` between adjacent images to avoid
|
|
162
|
+
* downstream image-block parsing treating a compact image run as a single image.
|
|
163
|
+
*
|
|
164
|
+
* @param {HTMLElement} root Parsed Word fragment root.
|
|
165
|
+
*/
|
|
166
|
+
insertSpanBetweenAdjacentImages(root) {
|
|
167
|
+
const imageElements = Array.from(root.querySelectorAll('img'));
|
|
168
|
+
imageElements.forEach((imageElement) => {
|
|
169
|
+
if (!imageElement.parentNode) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
const nextSibling = imageElement.nextSibling;
|
|
173
|
+
if (nextSibling &&
|
|
174
|
+
nextSibling.nodeType === Node.ELEMENT_NODE &&
|
|
175
|
+
nextSibling.tagName.toLowerCase() === 'img') {
|
|
176
|
+
const spacerElement = root.ownerDocument.createElement('span');
|
|
177
|
+
spacerElement.innerHTML = ' ';
|
|
178
|
+
imageElement.parentNode.insertBefore(spacerElement, nextSibling);
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Currently the RTE does not support list images, so they must be removed from the paste content.
|
|
184
|
+
* Local (file://) list images are kept as placeholders here and removed later during preview pairing
|
|
185
|
+
* so the local images stay aligned with the RTF images; non-local list images are removed immediately.
|
|
186
|
+
* Returns true when the image is part of list content and should be ignored.
|
|
187
|
+
*
|
|
188
|
+
* Word list markup (`MsoListParagraph` / `mso-list`) is already normalized into
|
|
189
|
+
* real `li/ul/ol` by {@link WordListRoleTransformer}, which runs before this
|
|
190
|
+
* transformer, so a plain list-ancestor check is sufficient here.
|
|
191
|
+
*
|
|
192
|
+
* @param {Element} element Image element (or its wrapper).
|
|
193
|
+
* @returns {boolean} Whether this image belongs to list content.
|
|
194
|
+
*/
|
|
195
|
+
isListImage(element) {
|
|
196
|
+
return Boolean(element.closest('li,ul,ol'));
|
|
197
|
+
}
|
|
198
|
+
}
|