@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
|
@@ -33,7 +33,7 @@ export class SpanToTokenNodeStrategy extends ElementToDTOStrategy {
|
|
|
33
33
|
/**
|
|
34
34
|
* @inheritDoc
|
|
35
35
|
*/
|
|
36
|
-
handle(elementsArray) {
|
|
36
|
+
handle(elementsArray, _options, parentTextAnnotations) {
|
|
37
37
|
const element = elementsArray[0];
|
|
38
38
|
const tokenKey = element.getAttribute('token-key');
|
|
39
39
|
const text = element.textContent;
|
|
@@ -46,7 +46,9 @@ export class SpanToTokenNodeStrategy extends ElementToDTOStrategy {
|
|
|
46
46
|
type: 'token',
|
|
47
47
|
token: tokenKey,
|
|
48
48
|
text,
|
|
49
|
-
annotations: Object.assign(Object.assign({}, restAnnotations),
|
|
49
|
+
annotations: Object.assign(Object.assign(Object.assign({}, restAnnotations), ((parentTextAnnotations === null || parentTextAnnotations === void 0 ? void 0 : parentTextAnnotations.inlineHtml)
|
|
50
|
+
? { inlineHtml: parentTextAnnotations.inlineHtml }
|
|
51
|
+
: {})), { customAttribute: this.createCustomAttrs(customAttribute) }),
|
|
50
52
|
};
|
|
51
53
|
}
|
|
52
54
|
/**
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { RTETextNode } from '../../dto/nodes/text-node';
|
|
2
|
+
import { HTML_VOID_TAGS } from '../../constants/constant';
|
|
3
|
+
import { isNonNullable } from '../../../../types/type-guard';
|
|
2
4
|
/**
|
|
3
5
|
* Token node for the Vega Rich Text Editor.
|
|
4
6
|
*/
|
|
@@ -54,5 +56,47 @@ export class RTETokenNode extends RTETextNode {
|
|
|
54
56
|
toHtml() {
|
|
55
57
|
return `<span class="token" contenteditable="false" template-token-key="${this.token}" token-key="${this.token}"${super.generateAttributeString()}>${this.text}</span>`;
|
|
56
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* @inheritDoc
|
|
61
|
+
*/
|
|
62
|
+
renderHtmlFromDepth(depth, options) {
|
|
63
|
+
void options;
|
|
64
|
+
const annotation = this.getInlineHtmlAnnotationAtDepth(depth);
|
|
65
|
+
if (!annotation)
|
|
66
|
+
return this.toHtml();
|
|
67
|
+
return this.renderTokenWithWrapperStr(annotation);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Render token markup wrapped by inline HTML annotations, preserving token attributes.
|
|
71
|
+
*
|
|
72
|
+
* @param {InlineHtmlAnnotation} inlineHtmlNode - Current wrapper annotation.
|
|
73
|
+
* @returns {string} Token HTML wrapped by inline HTML annotations.
|
|
74
|
+
*/
|
|
75
|
+
renderTokenWithWrapperStr(inlineHtmlNode) {
|
|
76
|
+
const { htmlTag, child } = inlineHtmlNode;
|
|
77
|
+
const attrStr = this.inlineHtmlAnnotationAttrStr(inlineHtmlNode);
|
|
78
|
+
if (!child) {
|
|
79
|
+
if (HTML_VOID_TAGS.has(htmlTag)) {
|
|
80
|
+
return `<${htmlTag}${attrStr}>`;
|
|
81
|
+
}
|
|
82
|
+
return `<${htmlTag}${attrStr}>${this.toHtml()}</${htmlTag}>`;
|
|
83
|
+
}
|
|
84
|
+
return `<${htmlTag}${attrStr}>${this.renderTokenWithWrapperStr(child)}</${htmlTag}>`;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Build inline HTML wrapper attributes string.
|
|
88
|
+
*
|
|
89
|
+
* @param {InlineHtmlAnnotation} annotation - Inline HTML annotation.
|
|
90
|
+
* @returns {string} Serialized attribute string.
|
|
91
|
+
*/
|
|
92
|
+
inlineHtmlAnnotationAttrStr(annotation) {
|
|
93
|
+
const { customAttribute, customClass, customStyle } = annotation;
|
|
94
|
+
const attrs = [
|
|
95
|
+
...((customAttribute === null || customAttribute === void 0 ? void 0 : customAttribute.toString()) || []),
|
|
96
|
+
customClass === null || customClass === void 0 ? void 0 : customClass.toString(),
|
|
97
|
+
customStyle === null || customStyle === void 0 ? void 0 : customStyle.toString(),
|
|
98
|
+
].filter(isNonNullable);
|
|
99
|
+
return attrs.length > 0 ? ` ${attrs.join(' ')}` : '';
|
|
100
|
+
}
|
|
57
101
|
}
|
|
58
102
|
RTETokenNode.dtoName = 'RTETokenNode';
|
|
@@ -7,6 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { MapToComponentField, MapToComponentMethod, VegaSlimmer } from 'vega-slimmer/core';
|
|
8
8
|
import { isArrayEqual } from '../../../../utils/array';
|
|
9
9
|
import { forceUpdate } from '@stencil/core';
|
|
10
|
+
import { BlockBoundaryRegistry } from '../../extensions/block-boundary-registry';
|
|
10
11
|
/**
|
|
11
12
|
* Inject the editor context to the extensions.
|
|
12
13
|
*/
|
|
@@ -113,6 +114,7 @@ export class RTEExtensionController extends VegaSlimmer {
|
|
|
113
114
|
getSelectedNodes: this.getSelectedNodes,
|
|
114
115
|
setSelectedNodes: this.selectionController.setSelectedNodes.bind(this.selectionController),
|
|
115
116
|
getSelection: this.selectionController.getSelection.bind(this.selectionController),
|
|
117
|
+
blockBoundaryRegistry: new BlockBoundaryRegistry(),
|
|
116
118
|
};
|
|
117
119
|
}
|
|
118
120
|
}
|
|
@@ -23,7 +23,10 @@ export class TextStyleAnnotationHandler extends AnnotationGeneratorStrategyAbstr
|
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* Get the node type of element. The element type is determined in the following
|
|
26
|
-
* order: "data-type" attribute, node name, font size
|
|
26
|
+
* order: "data-type" attribute, class name, node name, font size.
|
|
27
|
+
* Class name is checked before node name so that an explicit
|
|
28
|
+
* `v-rte--text-style-*` marker (e.g. applied by the Word paste transformer)
|
|
29
|
+
* takes precedence over the element's default tag-based role.
|
|
27
30
|
*
|
|
28
31
|
* @param {HTMLElement} element - element.
|
|
29
32
|
* @returns {Nullable<VegaRTETextStyleType>} - node type.
|
|
@@ -32,15 +35,15 @@ export class TextStyleAnnotationHandler extends AnnotationGeneratorStrategyAbstr
|
|
|
32
35
|
const byDataType = this.getElementTypeByDataType(element);
|
|
33
36
|
if (byDataType)
|
|
34
37
|
return byDataType;
|
|
38
|
+
const byClassName = this.getElementTypeByClassName(element);
|
|
39
|
+
if (byClassName)
|
|
40
|
+
return byClassName;
|
|
35
41
|
const byNodeName = this.getElementTypeByNodeName(element);
|
|
36
42
|
if (byNodeName)
|
|
37
43
|
return byNodeName;
|
|
38
44
|
const byFontSize = this.getElementTypeByFontSize(element);
|
|
39
45
|
if (byFontSize)
|
|
40
46
|
return byFontSize;
|
|
41
|
-
const byClassName = this.getElementTypeByClassName(element);
|
|
42
|
-
if (byClassName)
|
|
43
|
-
return byClassName;
|
|
44
47
|
return null;
|
|
45
48
|
}
|
|
46
49
|
/**
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { generateUUID } from '../../../../../../utils/misc';
|
|
2
2
|
import { RTETextBlock } from '../../../../dto/blocks/text-block';
|
|
3
3
|
import { RTETextNode } from '../../../../dto/nodes/text-node';
|
|
4
|
+
import { RTE_BLOCK_BOUNDARY_ATTRIBUTE } from '../../../../constants/constant';
|
|
4
5
|
import htmlElementToAnnotationGenerator from './annotation-handler/html-element-to-annotation-generator';
|
|
5
6
|
import { BlockToRTEBlockStrategyAbstract } from './block-to-rte-block-strategy.abstract';
|
|
6
7
|
import { ALWAYS_INLINE_TAGS, DEDICATED_STRATEGY_TAGS, PHRASING_CONTENT_TAGS, isInBlockTextContext, } from './strategy-tags';
|
|
@@ -83,6 +84,8 @@ export class ContinueInlineToRTETextBlockStrategy extends BlockToRTEBlockStrateg
|
|
|
83
84
|
isInlineCandidate(element, options) {
|
|
84
85
|
if (element.nodeType === Node.TEXT_NODE)
|
|
85
86
|
return true;
|
|
87
|
+
if (this.isBlockBoundaryElement(element, options))
|
|
88
|
+
return false;
|
|
86
89
|
if (ALWAYS_INLINE_TAGS.has(element.nodeName))
|
|
87
90
|
return true;
|
|
88
91
|
if (this.isDedicatedBlockTag(element.nodeName))
|
|
@@ -91,6 +94,20 @@ export class ContinueInlineToRTETextBlockStrategy extends BlockToRTEBlockStrateg
|
|
|
91
94
|
return true;
|
|
92
95
|
return this.isInlineLeafOrWrapper(element);
|
|
93
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Check whether an element marks a block boundary.
|
|
99
|
+
*
|
|
100
|
+
* @param {HTMLElement} element - Element to inspect.
|
|
101
|
+
* @param {VegaRTETransformOptions} options - Transformation options.
|
|
102
|
+
* @returns {boolean} Whether the element is a boundary.
|
|
103
|
+
*/
|
|
104
|
+
isBlockBoundaryElement(element, options) {
|
|
105
|
+
var _a;
|
|
106
|
+
if (element.hasAttribute(RTE_BLOCK_BOUNDARY_ATTRIBUTE)) {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
return !!((_a = options.blockBoundaryRegistry) === null || _a === void 0 ? void 0 : _a.isBoundary(element));
|
|
110
|
+
}
|
|
94
111
|
/**
|
|
95
112
|
* Returns true when the tag has a dedicated block strategy (excludes inline annotation tags CODE and A).
|
|
96
113
|
*
|
|
@@ -8,6 +8,7 @@ import { RTETextNode } from '../../../../dto/nodes/text-node';
|
|
|
8
8
|
import { generateUUID } from '../../../../../../utils/misc';
|
|
9
9
|
import { escapeHtml } from '../../../../helpers/utils';
|
|
10
10
|
import { ReplaceSelectedTextAction } from '../../../../dto/actions/replace-selected-text-action';
|
|
11
|
+
import { RTE_PASTE_MODE_DATA_TYPE, RTE_PASTE_MODE_WORD } from '../../../../constants/constant';
|
|
11
12
|
/**
|
|
12
13
|
* Handle user paste
|
|
13
14
|
*/
|
|
@@ -110,8 +111,11 @@ export class InsertPasteHandler extends BaseHandler {
|
|
|
110
111
|
const body = parsedDoc.body;
|
|
111
112
|
// Extract plain text from the parsed document
|
|
112
113
|
const plainText = (body.textContent || '').replace(/\r\n?/g, '\n');
|
|
113
|
-
// Check for rich inline formatting
|
|
114
|
-
|
|
114
|
+
// Check for rich inline formatting. Code blocks (`pre` carrying
|
|
115
|
+
// `data-language`, the marker the code-block strategy recognizes) count as
|
|
116
|
+
// formatting so they are never flattened to inline plain text, which would
|
|
117
|
+
// drop the code block on single-line pastes whose text equals the HTML text.
|
|
118
|
+
let hasFormatting = Boolean(body.querySelector('b,strong,i,em,s,del,strike,u,mark,code,pre[data-language]'));
|
|
115
119
|
if (!hasFormatting) {
|
|
116
120
|
hasFormatting = Array.from(body.querySelectorAll('span')).some((span) => {
|
|
117
121
|
const style = span.getAttribute('style') || span.getAttribute('data-style') || '';
|
|
@@ -202,9 +206,18 @@ export class InsertPasteHandler extends BaseHandler {
|
|
|
202
206
|
context.restore(rootElements);
|
|
203
207
|
this.normalizeImportedHtmlArtifacts(parsedDoc.body);
|
|
204
208
|
const htmlElements = Array.from(parsedDoc.body.childNodes);
|
|
205
|
-
|
|
209
|
+
// Word paste enables custom-annotation processing (skipCustomAnnotations: false)
|
|
210
|
+
// so that inline styles produced by WordPasteStrategy (colors, font-weight, etc.)
|
|
211
|
+
// are mapped to RTE annotations. Regular rich paste skips them (undefined → default).
|
|
212
|
+
const transformOptions = payload.type === RTE_PASTE_MODE_WORD
|
|
213
|
+
? {
|
|
214
|
+
autoMatchFormat: true,
|
|
215
|
+
skipCustomAnnotations: false,
|
|
216
|
+
}
|
|
217
|
+
: undefined;
|
|
218
|
+
const resultBlocks = ElementToDtoStrategyProcessor.process(htmlElements, transformOptions)
|
|
206
219
|
.filter(Boolean)
|
|
207
|
-
.map((output) => output.toDto())
|
|
220
|
+
.map((output) => output.toDto(transformOptions))
|
|
208
221
|
.filter(Boolean);
|
|
209
222
|
// Fallback for synthetic payloads: if strategy conversion yields no blocks
|
|
210
223
|
// but we still have plain text, create paragraph/text blocks directly.
|
|
@@ -475,6 +488,7 @@ export class InsertPasteHandler extends BaseHandler {
|
|
|
475
488
|
return {
|
|
476
489
|
html: event.dataTransfer.getData('text/html') || eventPayload.html || '',
|
|
477
490
|
text: event.dataTransfer.getData('text/plain') || eventPayload.text || '',
|
|
491
|
+
type: event.dataTransfer.getData(RTE_PASTE_MODE_DATA_TYPE) || '',
|
|
478
492
|
};
|
|
479
493
|
}
|
|
480
494
|
}
|
|
@@ -475,21 +475,40 @@ export class SelectionController extends AutoRunWhenReRenderTaskQueueSlimmer {
|
|
|
475
475
|
* @returns {Nullable<FocusNodeRangeState>} - The detected element's range state or null if not found.
|
|
476
476
|
*/
|
|
477
477
|
detectNearestElement(block, offset) {
|
|
478
|
+
// Atomic blocks (e.g. table) opt out of descent so the caret stays anchored to the
|
|
479
|
+
// block boundary — resolving into a cell would break paragraph insertion before/after.
|
|
480
|
+
if (!block.allowsCaretDescend()) {
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
478
483
|
if (block.children) {
|
|
479
484
|
const currentNode = block.children[offset];
|
|
480
485
|
const prevNode = block.children[offset - 1];
|
|
481
|
-
|
|
486
|
+
// A nested block (e.g. an html-block's inner paragraph rendered with
|
|
487
|
+
// `display: contents`) can receive the caret at its own boundary, so descend
|
|
488
|
+
// into it to reach the real node — the start of the next block or the end of
|
|
489
|
+
// the previous one.
|
|
490
|
+
if (currentNode instanceof RTENode) {
|
|
482
491
|
return {
|
|
483
492
|
startNode: currentNode,
|
|
484
493
|
startOffset: 0,
|
|
485
494
|
};
|
|
486
495
|
}
|
|
487
|
-
else if (
|
|
496
|
+
else if (currentNode instanceof RTEBlock) {
|
|
497
|
+
// Fall through to the previous node if descending yields nothing (e.g. an empty block).
|
|
498
|
+
const nested = this.detectNearestElement(currentNode, 0);
|
|
499
|
+
if (nested) {
|
|
500
|
+
return nested;
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
if (prevNode instanceof RTENode) {
|
|
488
504
|
return {
|
|
489
505
|
startNode: prevNode,
|
|
490
506
|
startOffset: prevNode.getRangeEndOffset(),
|
|
491
507
|
};
|
|
492
508
|
}
|
|
509
|
+
else if (prevNode instanceof RTEBlock) {
|
|
510
|
+
return this.detectNearestElement(prevNode, prevNode.children.length);
|
|
511
|
+
}
|
|
493
512
|
}
|
|
494
513
|
}
|
|
495
514
|
}
|
|
@@ -9,6 +9,7 @@ import { VegaInternalIconManager } from '../../../../../helpers/icon/internal-ic
|
|
|
9
9
|
import displayCode from '../../../assets/display-code';
|
|
10
10
|
import { MapToComponentField } from 'vega-slimmer/core';
|
|
11
11
|
import { VegaRTEContent } from '../../../dto/content-state';
|
|
12
|
+
import extensionContextManager from '../../../helpers/extension-context-manager';
|
|
12
13
|
export class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
13
14
|
constructor() {
|
|
14
15
|
super({
|
|
@@ -36,7 +37,9 @@ export class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
36
37
|
return super.isDisabled();
|
|
37
38
|
}
|
|
38
39
|
async saveSourceCode() {
|
|
40
|
+
var _a;
|
|
39
41
|
const sourceViewValue = this.richTextEditorSourceViewRenderer.getSourceCode();
|
|
42
|
+
const blockBoundaryRegistry = (_a = extensionContextManager.getExtensionContext(this.host)) === null || _a === void 0 ? void 0 : _a.blockBoundaryRegistry;
|
|
40
43
|
if (!sourceViewValue && this.value.isEmpty()) {
|
|
41
44
|
return;
|
|
42
45
|
}
|
|
@@ -44,6 +47,7 @@ export class SourceEditToolbarButtonSlimmer extends ToolbarButtonSlimmer {
|
|
|
44
47
|
await this.valueController.flushChanges(VegaRTEContent.fromHtml(sourceViewValue, {
|
|
45
48
|
autoMatchFormat: this.sourceEditConfig.autoMatchFormat,
|
|
46
49
|
filterInlineStyles: this.sourceEditConfig.filterInlineStyles,
|
|
50
|
+
blockBoundaryRegistry,
|
|
47
51
|
}));
|
|
48
52
|
}
|
|
49
53
|
}
|
|
@@ -66,6 +70,9 @@ __decorate([
|
|
|
66
70
|
__decorate([
|
|
67
71
|
MapToComponentField()
|
|
68
72
|
], SourceEditToolbarButtonSlimmer.prototype, "sourceEditConfig", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
MapToComponentField()
|
|
75
|
+
], SourceEditToolbarButtonSlimmer.prototype, "host", void 0);
|
|
69
76
|
__decorate([
|
|
70
77
|
MapToComponentField()
|
|
71
78
|
], SourceEditToolbarButtonSlimmer.prototype, "value", void 0);
|
|
@@ -10,6 +10,7 @@ import CodeFormatter from '../../../../helpers/code-format/code-formatter';
|
|
|
10
10
|
import { DomNodeSubjectObserverFactory } from '../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
|
|
11
11
|
import { VegaInternalCodeBlockBlur } from '../../../../helpers/event-manager/event-id/vega-internal-event-id';
|
|
12
12
|
import { VegaRTEContent } from '../../dto/content-state';
|
|
13
|
+
import extensionContextManager from '../../helpers/extension-context-manager';
|
|
13
14
|
/**
|
|
14
15
|
* The renderer for the source view of the rich text editor. It renders a code block for editing the source code of the rich text editor content.
|
|
15
16
|
*/
|
|
@@ -21,14 +22,16 @@ export class VegaRichTextEditorSourceViewRenderer extends VegaSlimmer {
|
|
|
21
22
|
* Handle the blur event of the code block. When the code block loses focus, emit the source code change event with the current source code.
|
|
22
23
|
*/
|
|
23
24
|
this.handleCodeBlockBlur = () => {
|
|
24
|
-
var _a;
|
|
25
|
+
var _a, _b;
|
|
25
26
|
// If source view is closed while blurring, it means the user switch back to normal mode, so we can skip emitting the change event.
|
|
26
27
|
if (this.sourceView) {
|
|
27
28
|
const filterInlineStyles = Boolean(this.sourceEditConfig.filterInlineStyles);
|
|
28
29
|
const sourceCode = this.getSourceCode();
|
|
30
|
+
const blockBoundaryRegistry = (_a = extensionContextManager.getExtensionContext(this.host)) === null || _a === void 0 ? void 0 : _a.blockBoundaryRegistry;
|
|
29
31
|
const newValue = VegaRTEContent.fromHtml(sourceCode, {
|
|
30
|
-
autoMatchFormat: (
|
|
32
|
+
autoMatchFormat: (_b = this.sourceEditConfig.autoMatchFormat) !== null && _b !== void 0 ? _b : true,
|
|
31
33
|
filterInlineStyles,
|
|
34
|
+
blockBoundaryRegistry,
|
|
32
35
|
});
|
|
33
36
|
const newSourceCode = newValue.toHtml({ filterInlineStyles });
|
|
34
37
|
if (newSourceCode !== this.prevRecord) {
|
|
@@ -78,18 +78,24 @@ export class VegaTabGroupTabListRenderer extends VegaSlimmer {
|
|
|
78
78
|
renderCounterBadgeDom(item) {
|
|
79
79
|
const counterBadge = item.counterBadge;
|
|
80
80
|
const counterBadgeClass = this.getCounterBadgeClassByCount(counterBadge);
|
|
81
|
-
return (
|
|
82
|
-
counterBadge.count > 0 && (h("div", { class: `vega-counter-badge ${counterBadgeClass}`, "aria-hidden": "true" },
|
|
83
|
-
h("vega-counter-badge", { count: counterBadge.count, color: counterBadge.color }))));
|
|
81
|
+
return (counterBadge &&
|
|
82
|
+
(!!counterBadge.dot || (counterBadge.count !== undefined && counterBadge.count > 0)) && (h("div", { class: `vega-counter-badge ${counterBadgeClass}`, "aria-hidden": "true" },
|
|
83
|
+
h("vega-counter-badge", { count: counterBadge.count, color: counterBadge.color, dot: counterBadge.dot }))));
|
|
84
84
|
}
|
|
85
85
|
getTabAriaLabel(item) {
|
|
86
86
|
const counterBadge = item.counterBadge;
|
|
87
|
+
if (counterBadge === null || counterBadge === void 0 ? void 0 : counterBadge.dot) {
|
|
88
|
+
return `${item.label}, ${this.translationSlimmer.t('notification')}`;
|
|
89
|
+
}
|
|
87
90
|
return (counterBadge === null || counterBadge === void 0 ? void 0 : counterBadge.count) && counterBadge.count > 0
|
|
88
91
|
? `${item.label}, ${counterBadge.count}`
|
|
89
92
|
: item.label;
|
|
90
93
|
}
|
|
91
94
|
getCounterBadgeClassByCount(counterBadge) {
|
|
92
|
-
if (counterBadge
|
|
95
|
+
if (counterBadge === null || counterBadge === void 0 ? void 0 : counterBadge.dot) {
|
|
96
|
+
return 'dot-variant';
|
|
97
|
+
}
|
|
98
|
+
if (counterBadge === null || counterBadge === void 0 ? void 0 : counterBadge.count) {
|
|
93
99
|
const digits = counterBadge.count.toString().length;
|
|
94
100
|
if (digits === 1) {
|
|
95
101
|
return 'one-digit';
|
|
@@ -101,9 +107,7 @@ export class VegaTabGroupTabListRenderer extends VegaSlimmer {
|
|
|
101
107
|
return 'multi-digits';
|
|
102
108
|
}
|
|
103
109
|
}
|
|
104
|
-
|
|
105
|
-
return '';
|
|
106
|
-
}
|
|
110
|
+
return '';
|
|
107
111
|
}
|
|
108
112
|
handleTabItemClick(event, dataTarget) {
|
|
109
113
|
this.selectedTargetController.handleTabItemClick(dataTarget);
|
|
@@ -143,3 +147,6 @@ __decorate([
|
|
|
143
147
|
__decorate([
|
|
144
148
|
MapToComponentField({ componentFieldName: 'vegaTabGroupVoiceOverFocusController' })
|
|
145
149
|
], VegaTabGroupTabListRenderer.prototype, "voiceOverFocusController", void 0);
|
|
150
|
+
__decorate([
|
|
151
|
+
MapToComponentField()
|
|
152
|
+
], VegaTabGroupTabListRenderer.prototype, "translationSlimmer", void 0);
|
|
@@ -114,6 +114,12 @@
|
|
|
114
114
|
padding-left: 8px;
|
|
115
115
|
top: 10px;
|
|
116
116
|
}
|
|
117
|
+
.vega-tab > div > .label .vega-counter-badge.dot-variant {
|
|
118
|
+
width: 20px;
|
|
119
|
+
}
|
|
120
|
+
.vega-tab > div > .label .vega-counter-badge.dot-variant vega-counter-badge {
|
|
121
|
+
left: 10px;
|
|
122
|
+
}
|
|
117
123
|
.vega-tab > div > .label .vega-counter-badge.one-digit {
|
|
118
124
|
width: 20px;
|
|
119
125
|
}
|
|
@@ -23,6 +23,7 @@ import { createEventEmitSlimmer, } from '../../helpers/event-manager/slimmers/ev
|
|
|
23
23
|
import { VegaClick } from '../../helpers/event-manager/event-id/vega-event-id';
|
|
24
24
|
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
|
|
25
25
|
import { VegaTabGroupRuntimeMetricsPayloadDefinition } from '../../constants/runtime-metrics-payload-definition/vega-tab-group/runtime-metrics-payload-definition';
|
|
26
|
+
import { TranslationSlimmer } from '../../helpers/slimmers/translation';
|
|
26
27
|
/**
|
|
27
28
|
* The Tab Group component organizes content into separate views, and allows users to switch between them without navigating away from the parent page.
|
|
28
29
|
*
|
|
@@ -32,6 +33,7 @@ export class VegaTabGroup {
|
|
|
32
33
|
constructor() {
|
|
33
34
|
this.globalSlimmers = {};
|
|
34
35
|
this.vegaTabGroupRenderer = new VegaTabGroupRenderer();
|
|
36
|
+
this.translationSlimmer = new TranslationSlimmer();
|
|
35
37
|
this.vegaTabGroupDirectionButtonRenderer = new VegaTabGroupSwitchPageButtonRenderer();
|
|
36
38
|
this.vegaTabGroupTabListRenderer = new VegaTabGroupTabListRenderer();
|
|
37
39
|
this.vegaTabGroupCloseButtonRenderer = new VegaTabGroupCloseButtonRenderer();
|
|
@@ -402,6 +404,9 @@ __decorate([
|
|
|
402
404
|
__decorate([
|
|
403
405
|
InjectVegaSlimmer()
|
|
404
406
|
], VegaTabGroup.prototype, "vegaTabGroupRenderer", void 0);
|
|
407
|
+
__decorate([
|
|
408
|
+
InjectVegaSlimmer()
|
|
409
|
+
], VegaTabGroup.prototype, "translationSlimmer", void 0);
|
|
405
410
|
__decorate([
|
|
406
411
|
InjectVegaSlimmer()
|
|
407
412
|
], VegaTabGroup.prototype, "vegaTabGroupDirectionButtonRenderer", void 0);
|
|
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { MapToComponentField, VegaSlimmer } from 'vega-slimmer/core';
|
|
8
8
|
import { resolveBodyColSpan } from '../renderers/vega-table-body-col-span-resolver';
|
|
9
|
+
import { BreakpointKeys } from '../../../../constants/ui';
|
|
9
10
|
/**
|
|
10
11
|
* Per-row body colspan controller.
|
|
11
12
|
*
|
|
@@ -16,6 +17,10 @@ import { resolveBodyColSpan } from '../renderers/vega-table-body-col-span-resolv
|
|
|
16
17
|
*
|
|
17
18
|
* The structural shape (a {@link VegaSlimmer} controller reading component fields) mirrors the
|
|
18
19
|
* main-branch `VegaTableExpandRowController` paradigm.
|
|
20
|
+
*
|
|
21
|
+
* Breakpoint-aware: maps the current breakpoint from the parent vega-table and computes
|
|
22
|
+
* which columns are hidden at that breakpoint so the colspan resolver can shrink before
|
|
23
|
+
* breakpoint-hidden columns (instead of mirroring across them).
|
|
19
24
|
*/
|
|
20
25
|
export class VegaTableBodyColSpanController extends VegaSlimmer {
|
|
21
26
|
constructor() {
|
|
@@ -43,6 +48,8 @@ export class VegaTableBodyColSpanController extends VegaSlimmer {
|
|
|
43
48
|
this.warnedColSpanKeys.clear();
|
|
44
49
|
this.lastWarnedColumnsRef = this.columns;
|
|
45
50
|
}
|
|
51
|
+
// Compute per-leaf hidden state based on current breakpoint.
|
|
52
|
+
const isHiddenAtBreakpoint = leaves.map((leaf) => this.isColumnHiddenAtBreakpoint(leaf));
|
|
46
53
|
const results = new Array(leaves.length).fill(null);
|
|
47
54
|
let skipCount = 0;
|
|
48
55
|
leaves.forEach((leaf, leafIndex) => {
|
|
@@ -53,7 +60,7 @@ export class VegaTableBodyColSpanController extends VegaSlimmer {
|
|
|
53
60
|
}
|
|
54
61
|
const column = this.findColumn(leaf);
|
|
55
62
|
const result = column
|
|
56
|
-
? resolveBodyColSpan(column, record, rowIndex, leafIndex, leaves, this.warnedColSpanKeys)
|
|
63
|
+
? resolveBodyColSpan(column, record, rowIndex, leafIndex, leaves, this.warnedColSpanKeys, isHiddenAtBreakpoint)
|
|
57
64
|
: { htmlColspan: 1, skipCount: 0 };
|
|
58
65
|
results[leafIndex] = result;
|
|
59
66
|
skipCount = result.skipCount;
|
|
@@ -71,7 +78,30 @@ export class VegaTableBodyColSpanController extends VegaSlimmer {
|
|
|
71
78
|
column.prop === renderInput.key ||
|
|
72
79
|
column.label === renderInput.key);
|
|
73
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Determine whether a leaf is hidden at the current breakpoint.
|
|
83
|
+
*
|
|
84
|
+
* A leaf is hidden when the column's breakpoint threshold is greater than the current breakpoint.
|
|
85
|
+
* Breakpoint order: 'default' < 'S' < 'M' < 'L' < 'XL'.
|
|
86
|
+
* Example: if currentBreakpoint is 'S' and column.breakpoint is 'M', the column is hidden (S < M).
|
|
87
|
+
*
|
|
88
|
+
* @param {ColumnRenderInputModel} leaf - The leaf render input to check.
|
|
89
|
+
* @returns {boolean} True if the leaf is hidden at the current breakpoint.
|
|
90
|
+
*/
|
|
91
|
+
isColumnHiddenAtBreakpoint(leaf) {
|
|
92
|
+
const column = this.findColumn(leaf);
|
|
93
|
+
if (!column || !column.breakpoint) {
|
|
94
|
+
return false; // No breakpoint = never hidden.
|
|
95
|
+
}
|
|
96
|
+
const currentBreakpointIndex = BreakpointKeys.indexOf(this.currentBreakpoint);
|
|
97
|
+
const columnBreakpointIndex = BreakpointKeys.indexOf(column.breakpoint);
|
|
98
|
+
// Column is hidden when current breakpoint is smaller than the column's breakpoint threshold.
|
|
99
|
+
return currentBreakpointIndex < columnBreakpointIndex;
|
|
100
|
+
}
|
|
74
101
|
}
|
|
75
102
|
__decorate([
|
|
76
103
|
MapToComponentField()
|
|
77
104
|
], VegaTableBodyColSpanController.prototype, "columns", void 0);
|
|
105
|
+
__decorate([
|
|
106
|
+
MapToComponentField()
|
|
107
|
+
], VegaTableBodyColSpanController.prototype, "currentBreakpoint", void 0);
|
|
@@ -37,16 +37,16 @@ function normalizeSpan(rawSpan) {
|
|
|
37
37
|
* Walk rightward from the starting leaf to find the widest legal span.
|
|
38
38
|
*
|
|
39
39
|
* Stops (and returns a clamp reason) when the span would either run past the end of the
|
|
40
|
-
* row
|
|
41
|
-
* Breakpoint-hidden columns are
|
|
42
|
-
* across them (matching header group colSpan).
|
|
40
|
+
* row, cross a pinned ↔ unpinned column boundary, or encounter a breakpoint-hidden column.
|
|
41
|
+
* Breakpoint-hidden columns are a shrink trigger (the span stops before them).
|
|
43
42
|
*
|
|
44
43
|
* @param {number} declared - The declared span requested by the column.
|
|
45
44
|
* @param {number} leafIndex - Index of the starting leaf in the flattened render-input array.
|
|
46
45
|
* @param {ColumnRenderInputModel[]} allLeaves - All leaf render inputs for the table (ordered).
|
|
46
|
+
* @param {boolean[]} isHiddenAtBreakpoint - Per-leaf boolean: true if leaf is hidden at current breakpoint.
|
|
47
47
|
* @returns {MaxSpan} The widest legal span plus the clamp reason (null when unconstrained).
|
|
48
48
|
*/
|
|
49
|
-
function computeMaxSpan(declared, leafIndex, allLeaves) {
|
|
49
|
+
function computeMaxSpan(declared, leafIndex, allLeaves, isHiddenAtBreakpoint) {
|
|
50
50
|
var _a, _b;
|
|
51
51
|
const startPinned = (_a = allLeaves[leafIndex]) === null || _a === void 0 ? void 0 : _a.pinned;
|
|
52
52
|
let span = 1;
|
|
@@ -58,6 +58,13 @@ function computeMaxSpan(declared, leafIndex, allLeaves) {
|
|
|
58
58
|
clampReason: `extends past the end of the row (${allLeaves.length} columns total)`,
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
+
// Reject if the next column is hidden at the current breakpoint.
|
|
62
|
+
if (isHiddenAtBreakpoint[leafIndex + offset]) {
|
|
63
|
+
return {
|
|
64
|
+
span,
|
|
65
|
+
clampReason: null, // Breakpoint-hidden stop is not a config-error warning — it is legitimate responsive hiding.
|
|
66
|
+
};
|
|
67
|
+
}
|
|
61
68
|
// Reject if the next column is in a different pinned group.
|
|
62
69
|
if (nextLeaf.pinned !== startPinned) {
|
|
63
70
|
return {
|
|
@@ -87,11 +94,10 @@ function warnClampOnce(colKey, declared, effective, reason, warnedKeys) {
|
|
|
87
94
|
/**
|
|
88
95
|
* Resolve the effective body-cell colspan for a single source-data row cell.
|
|
89
96
|
*
|
|
90
|
-
* Clamps the declared span so it never runs past the end of the row
|
|
91
|
-
* pinned ↔ unpinned column boundary
|
|
92
|
-
*
|
|
93
|
-
*
|
|
94
|
-
* column (matching header group colSpan) so the body grid stays column-aligned with the header.
|
|
97
|
+
* Clamps the declared span so it never runs past the end of the row, crosses a
|
|
98
|
+
* pinned ↔ unpinned column boundary, or encounters a breakpoint-hidden column (shrink before it).
|
|
99
|
+
* Structural clamps (end-of-row / pinned boundary) emit a warning once per column key
|
|
100
|
+
* (tracked via the caller-supplied {@link warnedKeys} set). Breakpoint-hidden stops are silent.
|
|
95
101
|
*
|
|
96
102
|
* @param {VegaTableColumnConfig} column - The column configuration for the spanning cell.
|
|
97
103
|
* @param {VegaTableDataSourceItem} record - The row data record.
|
|
@@ -99,14 +105,15 @@ function warnClampOnce(colKey, declared, effective, reason, warnedKeys) {
|
|
|
99
105
|
* @param {number} leafIndex - Index of this column in the flattened leaf render-input array.
|
|
100
106
|
* @param {ColumnRenderInputModel[]} allLeaves - All leaf render inputs for the table (ordered).
|
|
101
107
|
* @param {Set<string>} warnedKeys - Per-instance set tracking column keys that have already received a clamping warning.
|
|
108
|
+
* @param {boolean[]} isHiddenAtBreakpoint - Per-leaf boolean: true if leaf is hidden at current breakpoint.
|
|
102
109
|
* @returns {BodyColSpanResult} Resolved spanning metadata for the cell.
|
|
103
110
|
*/
|
|
104
|
-
export function resolveBodyColSpan(column, record, rowIndex, leafIndex, allLeaves, warnedKeys) {
|
|
111
|
+
export function resolveBodyColSpan(column, record, rowIndex, leafIndex, allLeaves, warnedKeys, isHiddenAtBreakpoint) {
|
|
105
112
|
var _a, _b, _c;
|
|
106
113
|
const declared = getDeclaredSpan(column, record, rowIndex);
|
|
107
114
|
if (!declared || declared <= 1)
|
|
108
115
|
return NO_SPAN;
|
|
109
|
-
const { span, clampReason } = computeMaxSpan(declared, leafIndex, allLeaves);
|
|
116
|
+
const { span, clampReason } = computeMaxSpan(declared, leafIndex, allLeaves, isHiddenAtBreakpoint);
|
|
110
117
|
const effectiveSpan = Math.min(declared, span);
|
|
111
118
|
if (clampReason && effectiveSpan < declared) {
|
|
112
119
|
const colKey = (_c = (_b = (_a = column.key) !== null && _a !== void 0 ? _a : column.prop) !== null && _b !== void 0 ? _b : column.label) !== null && _c !== void 0 ? _c : '';
|
|
@@ -188,6 +188,7 @@ export const staticTranslations = {
|
|
|
188
188
|
'pm': 'pm',
|
|
189
189
|
'{0} Selected': '{0} Selected',
|
|
190
190
|
'date picker': 'Date Picker',
|
|
191
|
+
'notification': 'notification',
|
|
191
192
|
'Selected result': 'Selected result',
|
|
192
193
|
'Close event preview detail': 'Close event preview detail',
|
|
193
194
|
'Edit event': 'Edit event',
|
|
@@ -220,5 +221,6 @@ export const staticTranslations = {
|
|
|
220
221
|
'Next': 'Next',
|
|
221
222
|
'Copy': 'Copy',
|
|
222
223
|
'Cut': 'Cut',
|
|
224
|
+
'Use Word': 'Use Word',
|
|
223
225
|
};
|
|
224
226
|
export default staticTranslations;
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { HtmlSanitizer } from './core/html-sanitizer';
|
|
5
5
|
export { SanitizeStrategy } from './core/sanitize-strategy';
|
|
6
|
-
export { LabelSanitizeStrategy, StyleSanitizeStrategy, EmptySanitizeStrategy } from './strategies';
|
|
6
|
+
export { LabelSanitizeStrategy, StyleSanitizeStrategy, EmptySanitizeStrategy, PlainTextSanitizeStrategy, } from './strategies';
|
|
7
7
|
import { HtmlSanitizer } from './core/html-sanitizer';
|
|
8
|
-
import { LabelSanitizeStrategy, StyleSanitizeStrategy, EmptySanitizeStrategy } from './strategies';
|
|
8
|
+
import { LabelSanitizeStrategy, StyleSanitizeStrategy, EmptySanitizeStrategy, PlainTextSanitizeStrategy, } from './strategies';
|
|
9
9
|
export const htmlSanitizer = new HtmlSanitizer();
|
|
10
10
|
export const labelSanitizeStrategy = new LabelSanitizeStrategy();
|
|
11
11
|
export const styleSanitizeStrategy = new StyleSanitizeStrategy();
|
|
12
12
|
export const emptySanitizeStrategy = new EmptySanitizeStrategy();
|
|
13
|
+
export const plainTextSanitizeStrategy = new PlainTextSanitizeStrategy();
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { LabelSanitizeStrategy } from './label-sanitize-strategy';
|
|
2
2
|
export { StyleSanitizeStrategy } from './style-sanitize-strategy';
|
|
3
3
|
export { EmptySanitizeStrategy } from './empty-sanitize-strategy';
|
|
4
|
+
export { PlainTextSanitizeStrategy } from './plain-text-sanitize-strategy';
|
|
@@ -10,4 +10,18 @@ export class LabelSanitizeStrategy extends SanitizeStrategy {
|
|
|
10
10
|
super(...arguments);
|
|
11
11
|
this.allowedTags = LABEL_ALLOWED_TAGS;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Drops script/style nodes entirely, including their text contents.
|
|
15
|
+
*
|
|
16
|
+
* @param {HTMLElement} element - Element node to sanitize.
|
|
17
|
+
* @param {Document} doc - Document reference used to create safe nodes.
|
|
18
|
+
* @returns {Nullable<Node>} Sanitized node or null when removed.
|
|
19
|
+
*/
|
|
20
|
+
sanitizeElement(element, doc) {
|
|
21
|
+
const tagName = element.tagName;
|
|
22
|
+
if (tagName === 'SCRIPT' || tagName === 'STYLE') {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
return super.sanitizeElement(element, doc);
|
|
26
|
+
}
|
|
13
27
|
}
|