@heartlandone/vega 2.76.0 → 2.77.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{app-globals-12b7d808.js → app-globals-1021e33e.js} +7 -7
- package/dist/cjs/aria-attributes-value-mapper-9a41b9cf.js +143 -0
- package/dist/cjs/{child-nodes-event-prevent-slimmer-84435957.js → child-nodes-event-prevent-slimmer-cc6d2919.js} +1 -1
- package/dist/cjs/{code-block-f1480ec3.js → code-block-f9b86a25.js} +1 -1
- package/dist/cjs/{component-value-history-controller-slimmer.abstract-a9264cc8.js → component-value-history-controller-slimmer.abstract-6bcff70b.js} +3 -3
- package/dist/cjs/{date-required-rule-912469e0.js → date-required-rule-d3c2d088.js} +1 -1
- package/dist/cjs/{design-token-41baf118.js → design-token-b21879b6.js} +2 -2
- package/dist/cjs/{dto-renderer-manager-809c947b.js → dto-renderer-manager-e2823eb8.js} +2 -2
- package/dist/cjs/{element-appender-slimmer-34e4eb56.js → element-appender-slimmer-40d39bba.js} +179 -20
- package/dist/cjs/{form-field-controller-slimmer-102f37c7.js → form-field-controller-slimmer-1b3a1388.js} +1 -1
- package/dist/cjs/{image-annotation-action-8d9fa20c.js → image-annotation-action-b83283d4.js} +2 -2
- package/dist/cjs/index.cjs.js +13 -13
- package/dist/cjs/{inject-keyboard-manager-0f5bd568.js → inject-keyboard-manager-ea5c598e.js} +1 -1
- package/dist/cjs/{internal-translation-controller-053eb0f1.js → internal-translation-controller-1f84ab0a.js} +15 -0
- package/dist/cjs/{keyboard-manager-055e9f67.js → keyboard-manager-16494c34.js} +1 -1
- package/dist/cjs/{keyboard-manager-slimmer-0cc0c1c7.js → keyboard-manager-slimmer-5b8fa209.js} +1 -1
- package/dist/cjs/legend-input-processor-1e53e5bc.js +2126 -0
- package/dist/cjs/loader.cjs.js +9 -9
- package/dist/cjs/{month-view-generator-6a6dd527.js → month-view-generator-1a57578d.js} +1 -1
- package/dist/cjs/{public-rules-922849f3.js → public-rules-5bd1624d.js} +7 -7
- package/dist/cjs/{range-8aa49b08.js → range-7a038973.js} +1 -1
- package/dist/cjs/{responsive-format-facade-ea59bdcd.js → responsive-format-facade-0b65ce4a.js} +2 -2
- package/dist/cjs/{rich-text-editor-required-rule-22225840.js → rich-text-editor-required-rule-d984c0b6.js} +1 -1
- package/dist/cjs/{string-format-strategy.abstract-f2575647.js → string-format-strategy.abstract-714bfad2.js} +1 -1
- package/dist/cjs/{string-input-formatter-slimmer-0a334fc6.js → string-input-formatter-slimmer-9ef2ec7a.js} +1 -1
- package/dist/cjs/{string-mask-strategy-dda58395.js → string-mask-strategy-bd2c18df.js} +2 -2
- package/dist/cjs/{style-formatter-0c3ced39.js → style-formatter-7a4e9811.js} +2 -2
- package/dist/cjs/{time-required-rule-d6fa7aa8.js → time-required-rule-50784b9f.js} +1 -1
- package/dist/cjs/{token-extension-07cac85d.js → token-extension-5a1c473e.js} +102 -81
- package/dist/cjs/{translation-slimmer-4533bd67.js → translation-slimmer-2c207e34.js} +1 -1
- package/dist/cjs/{type-guard-407ba0b8.js → type-guard-cd0376d4.js} +36 -1
- package/dist/cjs/{valid-credit-card-number-rule-41a8b51b.js → valid-credit-card-number-rule-3f8dc897.js} +1 -1
- package/dist/cjs/vega-accordion.cjs.entry.js +7 -7
- package/dist/cjs/vega-app-header-button.cjs.entry.js +39 -146
- package/dist/cjs/vega-banner.cjs.entry.js +1 -1
- package/dist/cjs/vega-bar-chart.cjs.entry.js +2 -2
- package/dist/cjs/vega-box.cjs.entry.js +6 -6
- package/dist/cjs/vega-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/vega-button-circle.cjs.entry.js +23 -8
- package/dist/cjs/vega-button-group_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-button-link.cjs.entry.js +18 -2
- package/dist/cjs/vega-button.cjs.entry.js +5 -5
- package/dist/cjs/vega-calendar_4.cjs.entry.js +7 -7
- package/dist/cjs/vega-card.cjs.entry.js +5 -5
- package/dist/cjs/vega-carousel.cjs.entry.js +4 -4
- package/dist/cjs/vega-checkbox_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-chip.cjs.entry.js +6 -6
- package/dist/cjs/vega-code-block.cjs.entry.js +10 -10
- package/dist/cjs/vega-color-picker.cjs.entry.js +2 -2
- package/dist/cjs/vega-combo-box.cjs.entry.js +7 -7
- package/dist/cjs/vega-date-picker_2.cjs.entry.js +128 -25
- package/dist/cjs/vega-dialog_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-divider.cjs.entry.js +5 -5
- package/dist/cjs/vega-dropdown_5.cjs.entry.js +33 -9
- package/dist/cjs/vega-env-manager-23b8b23c.js +2 -2
- package/dist/cjs/vega-file-uploader.cjs.entry.js +3 -3
- 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 +5 -5
- package/dist/cjs/vega-grid.cjs.entry.js +5 -5
- package/dist/cjs/vega-icon.cjs.entry.js +5 -5
- package/dist/cjs/vega-image-uploader.cjs.entry.js +7 -7
- package/dist/cjs/vega-input-credit-card.cjs.entry.js +8 -8
- package/dist/cjs/vega-input-numeric.cjs.entry.js +7 -7
- package/dist/cjs/vega-input-passcode.cjs.entry.js +39 -9
- package/dist/cjs/vega-input-phone-number.cjs.entry.js +4757 -5589
- package/dist/cjs/vega-input-range.cjs.entry.js +5 -5
- package/dist/cjs/vega-input-select.cjs.entry.js +7 -7
- package/dist/cjs/vega-input.cjs.entry.js +220 -125
- package/dist/cjs/vega-left-nav_5.cjs.entry.js +7 -8
- package/dist/cjs/vega-line-chart.cjs.entry.js +325 -23
- package/dist/cjs/vega-loader-wrapper_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-pagination-page-selector-mobile.cjs.entry.js +2 -2
- package/dist/cjs/vega-pagination-page-size-selector-mobile.cjs.entry.js +2 -2
- package/dist/cjs/vega-pagination.cjs.entry.js +6 -6
- package/dist/cjs/vega-pie-chart.cjs.entry.js +5 -88
- package/dist/cjs/vega-popover_2.cjs.entry.js +9 -9
- package/dist/cjs/vega-progress-tracker_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-radio_2.cjs.entry.js +7 -7
- package/dist/cjs/vega-rich-text-content.cjs.entry.js +26 -6
- package/dist/cjs/vega-rich-text-editor_4.cjs.entry.js +129 -31
- package/dist/cjs/vega-selection-chip_2.cjs.entry.js +6 -6
- package/dist/cjs/vega-selection-tile_2.cjs.entry.js +4 -4
- package/dist/cjs/vega-sidenav_3.cjs.entry.js +4 -4
- package/dist/cjs/vega-signature-capture.cjs.entry.js +7 -7
- package/dist/cjs/vega-stepper.cjs.entry.js +4 -4
- package/dist/cjs/vega-tab-group_2.cjs.entry.js +2 -2
- package/dist/cjs/vega-table_11.cjs.entry.js +6 -6
- package/dist/cjs/vega-textarea.cjs.entry.js +4 -4
- package/dist/cjs/vega-time-picker_2.cjs.entry.js +11 -11
- package/dist/cjs/vega-toggle-switch.cjs.entry.js +2 -2
- package/dist/cjs/vega-tooltip_2.cjs.entry.js +8 -8
- package/dist/cjs/vega.cjs.js +9 -9
- package/dist/cjs/y-axis-input-processor-54a26515.js +832 -0
- package/dist/collection/components/vega-accordion/slimmers/vega-accordion-renderer.js +1 -1
- package/dist/collection/components/vega-accordion/vega-accordion.css +5 -0
- package/dist/collection/components/vega-app-header-button/vega-app-header-button.js +44 -2
- package/dist/collection/components/vega-button-circle/vega-button-circle.js +17 -3
- package/dist/collection/components/vega-button-link/vega-button-link.js +16 -1
- package/dist/collection/components/vega-calendar/slimmers/common/renderers/vega-calendar-event-preview-popover-renderer.js +1 -1
- package/dist/collection/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.js +64 -0
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-selection-controller.js +3 -0
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-header-render.js +3 -3
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.js +19 -1
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-year-month-switcher-renderer.js +3 -2
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.js +18 -3
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.css +196 -207
- package/dist/collection/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.js +32 -0
- package/dist/collection/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.js +25 -0
- package/dist/collection/components/vega-input/slimmers/controllers/vega-input-render-mode-controller.js +1 -3
- package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-container-renderer.js +1 -5
- package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-renderer.js +1 -4
- package/dist/collection/components/vega-input/slimmers/renderers/vega-input-input-suggestions-renderer.js +5 -2
- package/dist/collection/components/vega-input/vega-input.js +24 -1
- package/dist/collection/components/vega-input-passcode/slimmers/controllers/vega-input-passcode-keyboard-controller.js +2 -0
- package/dist/collection/components/vega-input-passcode/slimmers/renderers/vega-input-passcode-renderer.js +30 -2
- package/dist/collection/components/vega-input-phone-number/slimmers/controllers/country-select-controller.js +1 -1
- package/dist/collection/components/vega-input-phone-number/slimmers/controllers/vega-input-phone-number-value-controller.js +1 -1
- package/dist/collection/components/vega-input-phone-number/slimmers/renderers/country-select-renderer.js +1 -1
- package/dist/collection/components/vega-input-phone-number/slimmers/renderers/phone-number-input-renderer.js +1 -1
- package/dist/collection/components/vega-input-phone-number/vega-input-phone-number.js +4 -4
- package/dist/collection/components/vega-nav/vega-left-nav-link/slimmers/renderers/vega-left-nav-link-renderer.js +2 -3
- package/dist/collection/components/vega-popover/vega-popover-content-box/vega-popover-content-box.css +5 -0
- package/dist/collection/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.js +15 -0
- package/dist/collection/components/vega-rich-text-editor/dto/renderers/nodes/image-node-renderer.js +7 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/base-extension-renderer.js +11 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.js +15 -1
- package/dist/collection/components/vega-rich-text-editor/extensions/extension.abstract.js +2 -0
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/function-extension.js +0 -11
- package/dist/collection/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.js +23 -23
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-extension.js +0 -10
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.js +7 -17
- package/dist/collection/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.js +12 -16
- package/dist/collection/components/vega-rich-text-editor/helpers/extension-context-manager.js +31 -0
- package/dist/collection/components/vega-rich-text-editor/helpers/extension-context-manager.test.js +19 -0
- package/dist/collection/components/vega-rich-text-editor/slimmers/controllers/insert-image-controller.js +7 -4
- package/dist/collection/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.js +113 -12
- package/dist/collection/components/vega-rich-text-editor/test/extensions/extension-test-utils.js +41 -0
- package/dist/collection/components/vega-rich-text-editor/vega-rich-text-image-editor/slimmers/renderers/vega-rich-text-image-editor-renderer.js +1 -1
- package/dist/collection/components/vega-tooltip/vega-tooltip-content-box/vega-tooltip-content-box.css +5 -0
- package/dist/collection/helpers/calendar/test/utils.test.js +54 -1
- package/dist/collection/helpers/calendar/utils.js +35 -0
- package/dist/collection/helpers/chart/input-processors/format-time-positions-input-processor.js +2 -2
- package/dist/collection/helpers/chart/input-processors/pie-chart-arc-path-input-processor.js +1 -1
- package/dist/collection/helpers/chart/input-processors/x-axis-input-processor.js +5 -3
- package/dist/collection/helpers/chart/input-processors/x-axis-label-formatter-input-processor.js +2 -1
- package/dist/collection/helpers/chart/input-processors/y-axis-input-processor.js +7 -5
- package/dist/collection/helpers/chart/interacting-entry-generator/arc-path-hover-generator.js +1 -1
- package/dist/collection/helpers/chart/interacting-entry-generator/pie-legend-hover-generator.js +1 -1
- package/dist/collection/helpers/chart/renderers/canvas-renderer.js +1 -1
- package/dist/collection/helpers/chart/renderers/svg-renderer.js +1 -1
- package/dist/collection/helpers/chart/test/drawers/arc-path-drawer.test.js +1 -1
- package/dist/collection/helpers/chart/test/input-processors/format-time-positions-input-processor.test.js +1 -1
- package/dist/collection/helpers/chart/test/input-processors/sort-positions-input-processor.test.js +1 -1
- package/dist/collection/helpers/chart/test/input-processors/x-axis-input-processor.test.js +39 -0
- package/dist/collection/helpers/chart/test/input-processors/x-axis-label-formatter-input-processor.test.js +61 -14
- package/dist/collection/helpers/chart/test/input-processors/y-axis-input-processor.coverage.test.js +39 -0
- package/dist/collection/helpers/chart/test/input-processors/y-axis-input-processor.test.js +14 -0
- package/dist/collection/helpers/chart/test/renderers/svg-renderer.test.js +1 -1
- package/dist/collection/helpers/common/test/wait-for-component-did-render.test.js +67 -0
- package/dist/collection/helpers/slimmers/element-appender/element-appender-slimmer.js +27 -0
- package/dist/collection/helpers/slimmers/element-appender/test/element-appender-slimmer.test.js +50 -0
- package/dist/collection/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.js +14 -3
- package/dist/collection/helpers/slimmers/mutation-observer/data-tab-index-value-mapper.js +80 -0
- package/dist/collection/helpers/slimmers/mutation-observer/test/aria-attributes-value-mapper.test.js +55 -3
- package/dist/collection/helpers/slimmers/mutation-observer/test/data-tab-index-value-mapper.test.js +120 -0
- package/dist/collection/helpers/slimmers/position-calculation/base-position-calculation-strategy.js +123 -9
- package/dist/collection/helpers/slimmers/position-calculation/position-calculation-controller.js +14 -4
- package/dist/collection/helpers/slimmers/position-calculation/screen-position-calculation-strategy.js +13 -4
- package/dist/collection/helpers/slimmers/position-calculation/test/body-position-calculation-strategy.test.js +7 -6
- package/dist/collection/helpers/slimmers/position-calculation/test/screen-position-calculation-strategy.test.js +162 -7
- package/dist/collection/helpers/translation/locales/en.js +15 -0
- package/dist/collection/helpers/translation/tests/internal-translation-controller.test.js +15 -0
- package/dist/collection/helpers/ui/test/element-appender.test.js +7 -5
- package/dist/collection/helpers/validator/rules/valid-phone-number-rule.js +1 -1
- package/dist/collection/helpers/validator/test/rules/valid-phone-number-rule.test.js +10 -0
- package/dist/collection/polyfill/d3/d3-array-polyfill.js +89 -0
- package/dist/collection/polyfill/d3/d3-axis-polyfill.js +195 -0
- package/dist/collection/polyfill/d3/d3-scale-polyfill.js +582 -0
- package/dist/collection/polyfill/d3/d3-selection-polyfill.js +274 -0
- package/dist/collection/polyfill/d3/d3-shape-polyfill.js +252 -0
- package/dist/collection/polyfill/d3/d3-time-format-polyfill.js +207 -0
- package/dist/collection/polyfill/d3/d3-time-polyfill.js +99 -0
- package/dist/collection/polyfill/d3/index.js +31 -0
- package/dist/collection/polyfill/d3/test/d3-array-polyfill.test.js +72 -0
- package/dist/collection/polyfill/d3/test/d3-axis-polyfill.test.js +171 -0
- package/dist/collection/polyfill/d3/test/d3-integration.test.js +137 -0
- package/dist/collection/polyfill/d3/test/d3-scale-polyfill.test.js +382 -0
- package/dist/collection/polyfill/d3/test/d3-selection-polyfill.test.js +239 -0
- package/dist/collection/polyfill/d3/test/d3-shape-polyfill.test.js +225 -0
- package/dist/collection/polyfill/d3/test/d3-time-format-polyfill.test.js +162 -0
- package/dist/collection/polyfill/d3/test/d3-time-polyfill.test.js +76 -0
- package/dist/collection/polyfill/d3/test/index.test.js +78 -0
- package/dist/collection/polyfill/libphonenumber/as-you-type.js +405 -0
- package/dist/collection/polyfill/libphonenumber/format-helpers.js +186 -0
- package/dist/collection/polyfill/libphonenumber/index.js +22 -0
- package/dist/collection/polyfill/libphonenumber/metadata.js +150 -0
- package/dist/collection/polyfill/libphonenumber/metadata.json.js +3900 -0
- package/dist/collection/polyfill/libphonenumber/parse-phone-number.js +127 -0
- package/dist/collection/polyfill/libphonenumber/phone-number.js +38 -0
- package/dist/collection/polyfill/libphonenumber/test/as-you-type.test.js +309 -0
- package/dist/collection/polyfill/libphonenumber/test/format-helpers.test.js +192 -0
- package/dist/collection/polyfill/libphonenumber/test/index.test.js +16 -0
- package/dist/collection/polyfill/libphonenumber/test/metadata.test.js +196 -0
- package/dist/collection/polyfill/libphonenumber/test/parse-phone-number.test.js +218 -0
- package/dist/collection/polyfill/libphonenumber/test/phone-number.test.js +56 -0
- package/dist/collection/polyfill/libphonenumber/types.js +23 -0
- package/dist/collection/utils/e2e-utils.js +6 -0
- package/dist/esm/{app-globals-c0676920.js → app-globals-0b3b7111.js} +7 -7
- package/dist/esm/aria-attributes-value-mapper-2c632641.js +141 -0
- package/dist/esm/{child-nodes-event-prevent-slimmer-649b9d30.js → child-nodes-event-prevent-slimmer-331312b8.js} +1 -1
- package/dist/esm/{code-block-b6247a45.js → code-block-2408a812.js} +1 -1
- package/dist/esm/{component-value-history-controller-slimmer.abstract-2bb8533d.js → component-value-history-controller-slimmer.abstract-ac40820f.js} +3 -3
- package/dist/esm/{date-required-rule-e771e7d9.js → date-required-rule-09d5aa16.js} +1 -1
- package/dist/esm/{design-token-4aee1c56.js → design-token-7dec1eab.js} +2 -2
- package/dist/esm/{dto-renderer-manager-6fd22ab7.js → dto-renderer-manager-d413de1e.js} +2 -2
- package/dist/esm/{element-appender-slimmer-e4713a72.js → element-appender-slimmer-5d573612.js} +179 -20
- package/dist/esm/{form-field-controller-slimmer-5817d14d.js → form-field-controller-slimmer-e1a5a884.js} +1 -1
- package/dist/esm/{image-annotation-action-6701b4c9.js → image-annotation-action-54936eaa.js} +2 -2
- package/dist/esm/index.js +13 -13
- package/dist/esm/{inject-keyboard-manager-78730062.js → inject-keyboard-manager-9339bba8.js} +1 -1
- package/dist/esm/{internal-translation-controller-911515f9.js → internal-translation-controller-113a6288.js} +15 -0
- package/dist/esm/{keyboard-manager-38934f94.js → keyboard-manager-f9bfa678.js} +1 -1
- package/dist/esm/{keyboard-manager-slimmer-9984d922.js → keyboard-manager-slimmer-c8898843.js} +1 -1
- package/dist/esm/legend-input-processor-122008c5.js +2116 -0
- package/dist/esm/loader.js +9 -9
- package/dist/esm/{month-view-generator-eaf9029c.js → month-view-generator-160a9feb.js} +1 -1
- package/dist/esm/{public-rules-25cc3a39.js → public-rules-41561e6e.js} +7 -7
- package/dist/esm/{range-663f44dc.js → range-a5d78e69.js} +1 -1
- package/dist/esm/{responsive-format-facade-7a071174.js → responsive-format-facade-2a36c54a.js} +2 -2
- package/dist/esm/{rich-text-editor-required-rule-a238b862.js → rich-text-editor-required-rule-b09039da.js} +1 -1
- package/dist/esm/{string-format-strategy.abstract-713fba36.js → string-format-strategy.abstract-944f759b.js} +1 -1
- package/dist/esm/{string-input-formatter-slimmer-5b413ff9.js → string-input-formatter-slimmer-2508d88b.js} +1 -1
- package/dist/esm/{string-mask-strategy-6beaf664.js → string-mask-strategy-f9e252a2.js} +2 -2
- package/dist/esm/{style-formatter-3d06b72d.js → style-formatter-6db1e890.js} +2 -2
- package/dist/esm/{time-required-rule-e4138a76.js → time-required-rule-c7cfb257.js} +1 -1
- package/dist/esm/{token-extension-e33fd151.js → token-extension-25df8dbb.js} +102 -81
- package/dist/esm/{translation-slimmer-2394b173.js → translation-slimmer-9f0339aa.js} +1 -1
- package/dist/esm/{type-guard-f50e34d6.js → type-guard-af324dcd.js} +36 -2
- package/dist/esm/{valid-credit-card-number-rule-22ce81db.js → valid-credit-card-number-rule-099dba7d.js} +1 -1
- package/dist/esm/vega-accordion.entry.js +7 -7
- package/dist/esm/vega-app-header-button.entry.js +38 -145
- package/dist/esm/vega-banner.entry.js +1 -1
- package/dist/esm/vega-bar-chart.entry.js +2 -2
- package/dist/esm/vega-box.entry.js +6 -6
- package/dist/esm/vega-breadcrumb.entry.js +2 -2
- package/dist/esm/vega-button-circle.entry.js +23 -8
- package/dist/esm/vega-button-group_2.entry.js +2 -2
- package/dist/esm/vega-button-link.entry.js +18 -2
- package/dist/esm/vega-button.entry.js +5 -5
- package/dist/esm/vega-calendar_4.entry.js +7 -7
- package/dist/esm/vega-card.entry.js +5 -5
- package/dist/esm/vega-carousel.entry.js +4 -4
- package/dist/esm/vega-checkbox_2.entry.js +4 -4
- package/dist/esm/vega-chip.entry.js +6 -6
- package/dist/esm/vega-code-block.entry.js +10 -10
- package/dist/esm/vega-color-picker.entry.js +2 -2
- package/dist/esm/vega-combo-box.entry.js +7 -7
- package/dist/esm/vega-date-picker_2.entry.js +129 -26
- package/dist/esm/vega-dialog_2.entry.js +6 -6
- package/dist/esm/vega-divider.entry.js +5 -5
- package/dist/esm/vega-dropdown_5.entry.js +34 -10
- package/dist/esm/vega-env-manager-8f8dc473.js +2 -2
- package/dist/esm/vega-file-uploader.entry.js +3 -3
- 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 +5 -5
- package/dist/esm/vega-grid.entry.js +5 -5
- package/dist/esm/vega-icon.entry.js +5 -5
- package/dist/esm/vega-image-uploader.entry.js +7 -7
- package/dist/esm/vega-input-credit-card.entry.js +8 -8
- package/dist/esm/vega-input-numeric.entry.js +7 -7
- package/dist/esm/vega-input-passcode.entry.js +39 -9
- package/dist/esm/vega-input-phone-number.entry.js +4757 -5589
- package/dist/esm/vega-input-range.entry.js +5 -5
- package/dist/esm/vega-input-select.entry.js +7 -7
- package/dist/esm/vega-input.entry.js +220 -125
- package/dist/esm/vega-left-nav_5.entry.js +7 -8
- package/dist/esm/vega-line-chart.entry.js +311 -9
- package/dist/esm/vega-loader-wrapper_2.entry.js +4 -4
- package/dist/esm/vega-pagination-page-selector-mobile.entry.js +2 -2
- package/dist/esm/vega-pagination-page-size-selector-mobile.entry.js +2 -2
- package/dist/esm/vega-pagination.entry.js +6 -6
- package/dist/esm/vega-pie-chart.entry.js +5 -88
- package/dist/esm/vega-popover_2.entry.js +9 -9
- package/dist/esm/vega-progress-tracker_2.entry.js +4 -4
- package/dist/esm/vega-radio_2.entry.js +7 -7
- package/dist/esm/vega-rich-text-content.entry.js +26 -6
- package/dist/esm/vega-rich-text-editor_4.entry.js +130 -32
- package/dist/esm/vega-selection-chip_2.entry.js +6 -6
- package/dist/esm/vega-selection-tile_2.entry.js +4 -4
- package/dist/esm/vega-sidenav_3.entry.js +4 -4
- package/dist/esm/vega-signature-capture.entry.js +7 -7
- package/dist/esm/vega-stepper.entry.js +4 -4
- package/dist/esm/vega-tab-group_2.entry.js +2 -2
- package/dist/esm/vega-table_11.entry.js +6 -6
- package/dist/esm/vega-textarea.entry.js +4 -4
- package/dist/esm/vega-time-picker_2.entry.js +11 -11
- package/dist/esm/vega-toggle-switch.entry.js +2 -2
- package/dist/esm/vega-tooltip_2.entry.js +8 -8
- package/dist/esm/vega.js +9 -9
- package/dist/esm/y-axis-input-processor-c7e05353.js +826 -0
- package/dist/sri/vega-sri-manifest.json +317 -313
- package/dist/types/components/vega-app-header-button/types.d.ts +18 -0
- package/dist/types/components/vega-app-header-button/vega-app-header-button.d.ts +8 -1
- package/dist/types/components/vega-button-circle/vega-button-circle.d.ts +2 -0
- package/dist/types/components/vega-button-link/vega-button-link.d.ts +2 -0
- package/dist/types/components/vega-date-picker/slimmers/controllers/vega-date-picker-calendar-open-state-controller.d.ts +21 -0
- package/dist/types/components/vega-date-picker/types.d.ts +14 -0
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/controllers/vega-date-picker-calendar-selection-controller.d.ts +1 -0
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-calendar-renderer.d.ts +7 -0
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/slimmers/renderers/vega-date-picker-month-item-renderer.d.ts +3 -0
- package/dist/types/components/vega-date-picker/vega-date-picker-calendar/vega-date-picker-calendar.d.ts +9 -1
- package/dist/types/components/vega-dropdown/slimmers/controllers/vega-dropdown-appender-controller.d.ts +11 -0
- package/dist/types/components/vega-input/slimmers/controllers/vega-input-render-mode-controller.d.ts +0 -1
- package/dist/types/components/vega-input/slimmers/renderers/vega-input-input-renderer.d.ts +0 -1
- package/dist/types/components/vega-input/vega-input.d.ts +4 -0
- package/dist/types/components/vega-input-passcode/slimmers/renderers/vega-input-passcode-renderer.d.ts +14 -0
- package/dist/types/components/vega-rich-text-content/slimmers/renderers/vega-rich-text-content-renderer.d.ts +6 -0
- package/dist/types/components/vega-rich-text-editor/extensions/base-extension-renderer.d.ts +9 -1
- package/dist/types/components/vega-rich-text-editor/extensions/base-toolbar-button-renderer.d.ts +9 -1
- package/dist/types/components/vega-rich-text-editor/extensions/functions/function-extension.d.ts +0 -7
- package/dist/types/components/vega-rich-text-editor/extensions/functions/renderers/function-toolbar-button-renderer.d.ts +5 -10
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-extension.d.ts +1 -5
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-node-renderer.d.ts +3 -8
- package/dist/types/components/vega-rich-text-editor/extensions/tokens/token-toolbar-button-renderer.d.ts +5 -9
- package/dist/types/components/vega-rich-text-editor/helpers/extension-context-manager.d.ts +26 -0
- package/dist/types/components/vega-rich-text-editor/helpers/extension-context-manager.test.d.ts +1 -0
- package/dist/types/components/vega-rich-text-editor/interface.d.ts +4 -0
- package/dist/types/components/vega-rich-text-editor/slimmers/controllers/insert-image-controller.d.ts +7 -1
- package/dist/types/components/vega-rich-text-editor/slimmers/renderers/tools/image-toolbar-button-slimmer.d.ts +30 -2
- package/dist/types/components/vega-rich-text-editor/test/extensions/extension-test-utils.d.ts +21 -0
- package/dist/types/components.d.ts +22 -2
- package/dist/types/helpers/calendar/utils.d.ts +17 -0
- package/dist/types/helpers/chart/test/input-processors/y-axis-input-processor.coverage.test.d.ts +1 -0
- package/dist/types/helpers/common/test/wait-for-component-did-render.test.d.ts +1 -0
- package/dist/types/helpers/slimmers/element-appender/element-appender-slimmer.d.ts +12 -0
- package/dist/types/helpers/slimmers/mutation-observer/aria-attributes-value-mapper.d.ts +2 -1
- package/dist/types/helpers/slimmers/mutation-observer/data-tab-index-value-mapper.d.ts +35 -0
- package/dist/types/helpers/slimmers/mutation-observer/test/data-tab-index-value-mapper.test.d.ts +1 -0
- package/dist/types/helpers/slimmers/position-calculation/base-position-calculation-strategy.d.ts +60 -3
- package/dist/types/helpers/slimmers/position-calculation/screen-position-calculation-strategy.d.ts +3 -2
- package/dist/types/helpers/slimmers/position-calculation/test/body-position-calculation-strategy.test.d.ts +1 -1
- package/dist/types/helpers/translation/interface.d.ts +15 -0
- package/dist/types/polyfill/d3/d3-array-polyfill.d.ts +48 -0
- package/dist/types/polyfill/d3/d3-axis-polyfill.d.ts +53 -0
- package/dist/types/polyfill/d3/d3-scale-polyfill.d.ts +42 -0
- package/dist/types/polyfill/d3/d3-selection-polyfill.d.ts +173 -0
- package/dist/types/polyfill/d3/d3-shape-polyfill.d.ts +129 -0
- package/dist/types/polyfill/d3/d3-time-format-polyfill.d.ts +28 -0
- package/dist/types/polyfill/d3/d3-time-polyfill.d.ts +68 -0
- package/dist/types/polyfill/d3/index.d.ts +27 -0
- package/dist/types/polyfill/d3/test/d3-array-polyfill.test.d.ts +1 -0
- package/dist/types/polyfill/d3/test/d3-axis-polyfill.test.d.ts +1 -0
- package/dist/types/polyfill/d3/test/d3-integration.test.d.ts +1 -0
- package/dist/types/polyfill/d3/test/d3-scale-polyfill.test.d.ts +1 -0
- package/dist/types/polyfill/d3/test/d3-selection-polyfill.test.d.ts +1 -0
- package/dist/types/polyfill/d3/test/d3-shape-polyfill.test.d.ts +1 -0
- package/dist/types/polyfill/d3/test/d3-time-format-polyfill.test.d.ts +1 -0
- package/dist/types/polyfill/d3/test/d3-time-polyfill.test.d.ts +1 -0
- package/dist/types/polyfill/d3/test/index.test.d.ts +1 -0
- package/dist/types/polyfill/libphonenumber/as-you-type.d.ts +154 -0
- package/dist/types/polyfill/libphonenumber/format-helpers.d.ts +64 -0
- package/dist/types/polyfill/libphonenumber/index.d.ts +22 -0
- package/dist/types/polyfill/libphonenumber/metadata.d.ts +45 -0
- package/dist/types/polyfill/libphonenumber/metadata.json.d.ts +470 -0
- package/dist/types/polyfill/libphonenumber/parse-phone-number.d.ts +26 -0
- package/dist/types/polyfill/libphonenumber/phone-number.d.ts +24 -0
- package/dist/types/polyfill/libphonenumber/test/as-you-type.test.d.ts +1 -0
- package/dist/types/polyfill/libphonenumber/test/format-helpers.test.d.ts +1 -0
- package/dist/types/polyfill/libphonenumber/test/index.test.d.ts +1 -0
- package/dist/types/polyfill/libphonenumber/test/metadata.test.d.ts +1 -0
- package/dist/types/polyfill/libphonenumber/test/parse-phone-number.test.d.ts +1 -0
- package/dist/types/polyfill/libphonenumber/test/phone-number.test.d.ts +1 -0
- package/dist/types/polyfill/libphonenumber/types.d.ts +77 -0
- package/dist/types/types/components.type.d.ts +2 -0
- package/dist/types/types/flag.type.d.ts +255 -4
- package/dist/types/types/ui.type.d.ts +3 -2
- package/dist/types/types/vega-chart.d.ts +10 -11
- package/dist/types/utils/e2e-utils.d.ts +2 -0
- package/dist/vega/index.esm.js +1 -1
- package/dist/vega/{p-d8fadcdc.entry.js → p-0037068c.entry.js} +1 -1
- package/dist/vega/{p-4bffdb28.js → p-051bbce6.js} +1 -1
- package/dist/vega/{p-02a7d60c.entry.js → p-0a3a285b.entry.js} +1 -1
- package/dist/vega/{p-1a3236e7.entry.js → p-0ac9a732.entry.js} +1 -1
- package/dist/vega/{p-2b49686d.entry.js → p-1033e4c4.entry.js} +1 -1
- package/dist/vega/{p-0e679d8c.js → p-10e51081.js} +1 -1
- package/dist/vega/p-15335b69.entry.js +1 -0
- package/dist/vega/{p-b366deff.entry.js → p-19270396.entry.js} +1 -1
- package/dist/vega/{p-10734a00.js → p-1a51bf6f.js} +1 -1
- package/dist/vega/{p-2d69632d.js → p-1a9b361b.js} +1 -1
- package/dist/vega/p-1ccba615.entry.js +1 -0
- package/dist/vega/{p-6dcdb580.entry.js → p-1deedff2.entry.js} +1 -1
- package/dist/vega/{p-6d60b66a.entry.js → p-22f3d35c.entry.js} +1 -1
- package/dist/vega/{p-3d8122ab.entry.js → p-23427f6a.entry.js} +1 -1
- package/dist/vega/p-2466316a.js +1 -0
- package/dist/vega/p-27b0af38.entry.js +1 -0
- package/dist/vega/{p-bb5e0192.entry.js → p-2c2193f2.entry.js} +1 -1
- package/dist/vega/{p-dd3a94f4.entry.js → p-3237be8b.entry.js} +1 -1
- package/dist/vega/{p-94a77fbe.entry.js → p-36a09524.entry.js} +1 -1
- package/dist/vega/{p-7181861a.js → p-38e850c3.js} +1 -1
- package/dist/vega/{p-e2af0e24.entry.js → p-3b9fc697.entry.js} +1 -1
- package/dist/vega/{p-3244c605.entry.js → p-41d14339.entry.js} +1 -1
- package/dist/vega/{p-a0b66c25.js → p-4c060ba9.js} +1 -1
- package/dist/vega/p-4d4bf82a.entry.js +1 -0
- package/dist/vega/{p-415ffa35.js → p-4d7d5583.js} +1 -1
- package/dist/vega/{p-2a10e2e5.js → p-4f146dae.js} +1 -1
- package/dist/vega/p-5f377954.js +1 -1
- package/dist/vega/{p-b256b7a4.js → p-600f7d6c.js} +1 -1
- package/dist/vega/{p-4ea30592.js → p-6188e783.js} +1 -1
- package/dist/vega/p-638d30a5.entry.js +1 -0
- package/dist/vega/{p-a7a8a4eb.entry.js → p-67b0ccdc.entry.js} +1 -1
- package/dist/vega/p-68846f0d.js +1 -0
- package/dist/vega/{p-d7a78c5e.entry.js → p-70444f6f.entry.js} +1 -1
- package/dist/vega/{p-e632475e.js → p-7127f966.js} +1 -1
- package/dist/vega/{p-49845a91.js → p-718c74ba.js} +1 -1
- package/dist/vega/p-77167587.entry.js +1 -0
- package/dist/vega/p-78ecfea0.entry.js +1 -0
- package/dist/vega/{p-b201f379.js → p-7cde8489.js} +1 -1
- package/dist/vega/p-8e34b266.js +1 -0
- package/dist/vega/p-9466619f.entry.js +1 -0
- package/dist/vega/p-9863e7a1.entry.js +1 -0
- package/dist/vega/p-999950d1.js +1 -0
- package/dist/vega/{p-9339c6c4.js → p-9a3a5b9e.js} +1 -1
- package/dist/vega/{p-b136ebba.entry.js → p-9adfcd47.entry.js} +1 -1
- package/dist/vega/{p-d555f677.entry.js → p-9e36f7ff.entry.js} +1 -1
- package/dist/vega/{p-8dbdd609.entry.js → p-9f9d9a53.entry.js} +1 -1
- package/dist/vega/{p-7958614a.entry.js → p-9feaac4b.entry.js} +1 -1
- package/dist/vega/{p-ca5898dc.entry.js → p-a0e69236.entry.js} +1 -1
- package/dist/vega/{p-95528b47.js → p-a17312a6.js} +1 -1
- package/dist/vega/p-a46e977b.entry.js +1 -0
- package/dist/vega/p-a79fdf2f.js +1 -0
- package/dist/vega/p-a800bf6d.js +1 -0
- package/dist/vega/{p-c29068fb.entry.js → p-aaf9b39f.entry.js} +1 -1
- package/dist/vega/{p-2e91295d.entry.js → p-acbb96b3.entry.js} +1 -1
- package/dist/vega/p-af2110fc.entry.js +1 -0
- package/dist/vega/{p-f14a5eae.entry.js → p-b35bb4a2.entry.js} +1 -1
- package/dist/vega/p-b8c10187.js +1 -0
- package/dist/vega/p-bdb5180c.js +1 -0
- package/dist/vega/{p-01d58eb8.entry.js → p-c086529c.entry.js} +1 -1
- package/dist/vega/{p-154f9cf7.entry.js → p-c61bcd92.entry.js} +1 -1
- package/dist/vega/{p-bebfbe95.entry.js → p-c7a9960f.entry.js} +1 -1
- package/dist/vega/{p-81b044b9.js → p-c7b9b7c2.js} +1 -1
- package/dist/vega/{p-f2b0b58a.js → p-c857e6e2.js} +1 -1
- package/dist/vega/{p-89f2e16d.entry.js → p-c871619c.entry.js} +1 -1
- package/dist/vega/{p-1f3cd061.entry.js → p-cbeb47be.entry.js} +1 -1
- package/dist/vega/{p-a786259a.js → p-cf6bfac7.js} +1 -1
- package/dist/vega/{p-57927b10.entry.js → p-d07f5d5a.entry.js} +1 -1
- package/dist/vega/{p-033c31d8.entry.js → p-d0975995.entry.js} +1 -1
- package/dist/vega/{p-d6dbbe61.entry.js → p-d2ee5711.entry.js} +1 -1
- package/dist/vega/{p-8950987b.entry.js → p-d2fc470e.entry.js} +1 -1
- package/dist/vega/{p-a560d8c5.entry.js → p-d70e1b75.entry.js} +1 -1
- package/dist/vega/p-d8180e42.entry.js +1 -0
- package/dist/vega/{p-3afc025e.entry.js → p-da0fd3dc.entry.js} +1 -1
- package/dist/vega/{p-087ea379.entry.js → p-da552ddf.entry.js} +1 -1
- package/dist/vega/{p-eda988d5.entry.js → p-ddce3e0e.entry.js} +1 -1
- package/dist/vega/{p-aa1174dc.js → p-dfb12762.js} +1 -1
- package/dist/vega/{p-8b153acd.entry.js → p-e0fb1f60.entry.js} +1 -1
- package/dist/vega/{p-249df6d2.entry.js → p-e1c017d1.entry.js} +1 -1
- package/dist/vega/p-e4917e76.js +1 -0
- package/dist/vega/{p-fd7ddd64.entry.js → p-e4c99b72.entry.js} +1 -1
- package/dist/vega/{p-9a137bab.entry.js → p-e841c1fe.entry.js} +1 -1
- package/dist/vega/{p-f05b8f76.entry.js → p-ea96b0f9.entry.js} +1 -1
- package/dist/vega/{p-76181a70.entry.js → p-eab9d999.entry.js} +1 -1
- package/dist/vega/{p-2cc9d126.entry.js → p-ed9ad4fd.entry.js} +1 -1
- package/dist/vega/{p-2ba78982.entry.js → p-ef603656.entry.js} +1 -1
- package/dist/vega/p-f5fcd13e.entry.js +1 -0
- package/dist/vega/{p-6d219c44.entry.js → p-f65cb0b6.entry.js} +1 -1
- package/dist/vega/p-faa9a3bd.js +1 -0
- package/dist/vega/{p-a8792e3d.js → p-fc049028.js} +1 -1
- package/dist/vega/p-ff287001.entry.js +1 -0
- package/dist/vega/{p-32183637.entry.js → p-ffb3e479.entry.js} +1 -1
- package/dist/vega/p-ffd080db.js +1 -0
- package/dist/vega/vega.esm.js +1 -1
- package/package.json +2 -6
- package/dist/cjs/legend-input-processor-27c65353.js +0 -4759
- package/dist/cjs/y-axis-input-processor-9fbfd5e7.js +0 -2302
- package/dist/esm/legend-input-processor-5ecae3a7.js +0 -4742
- package/dist/esm/y-axis-input-processor-bc54314a.js +0 -2290
- package/dist/vega/p-179aad4f.entry.js +0 -1
- package/dist/vega/p-1f5e35dc.entry.js +0 -1
- package/dist/vega/p-28ad1864.entry.js +0 -1
- package/dist/vega/p-32033e7a.js +0 -1
- package/dist/vega/p-32faa460.entry.js +0 -1
- package/dist/vega/p-464559e3.js +0 -1
- package/dist/vega/p-46b077d9.js +0 -1
- package/dist/vega/p-4e017458.entry.js +0 -1
- package/dist/vega/p-4e4a0228.entry.js +0 -1
- package/dist/vega/p-5831d6d3.entry.js +0 -1
- package/dist/vega/p-644f701a.js +0 -1
- package/dist/vega/p-6a62e476.entry.js +0 -1
- package/dist/vega/p-6b6f0fb4.js +0 -1
- package/dist/vega/p-a13a73fa.entry.js +0 -1
- package/dist/vega/p-b597393b.entry.js +0 -1
- package/dist/vega/p-be23bef2.js +0 -1
- package/dist/vega/p-c1d13eec.entry.js +0 -1
- package/dist/vega/p-c3d2f316.js +0 -1
- package/dist/vega/p-dad3ba5f.js +0 -1
- package/dist/vega/p-e1431c14.entry.js +0 -1
- package/dist/vega/p-e89e3ede.entry.js +0 -1
- package/dist/vega/p-f3d0f2dc.js +0 -1
- package/dist/vega/p-f5bafc45.entry.js +0 -1
- package/dist/vega/p-fc1fa345.js +0 -1
- /package/dist/cjs/{feature-flag-controller-04cb1e69.js → feature-flag-controller-9129ef52.js} +0 -0
- /package/dist/esm/{feature-flag-controller-09ea7e87.js → feature-flag-controller-30f7b625.js} +0 -0
- /package/dist/vega/{p-07cb0243.js → p-18e8d9b7.js} +0 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manager for storing and retrieving the extension context associated with each rich text editor host element.
|
|
3
|
+
*
|
|
4
|
+
* @todo Currently, there are three types of contexts in RTE: toolbar render context, extension context, and DTO render context. The second and third types are bound to the extension context via host props. We are considering optimizing these three types of contexts to make the program more flexible and easier to maintain.
|
|
5
|
+
*/
|
|
6
|
+
class RTEExtensionContextManager {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.extensionContextMap = new WeakMap();
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Store the extension context for the given rich text editor host element.
|
|
12
|
+
*
|
|
13
|
+
* @param {RTEExtensionContext} context - The extension context to store.
|
|
14
|
+
*/
|
|
15
|
+
setExtensionContext(context) {
|
|
16
|
+
if (context && context.host) {
|
|
17
|
+
this.extensionContextMap.set(context.host, context);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get the extension context for the given rich text editor host element.
|
|
22
|
+
*
|
|
23
|
+
* @typedef HTMLVegaRichTextEditorElement - The type definition for the rich text editor host element.
|
|
24
|
+
* @param {Nullable<HTMLVegaRichTextEditorElement>} el - The host rich text editor element.
|
|
25
|
+
* @returns {Nullable<RTEExtensionContext>} - The extension context associated with the host.
|
|
26
|
+
*/
|
|
27
|
+
getExtensionContext(el) {
|
|
28
|
+
return el ? this.extensionContextMap.get(el) : null;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export default new RTEExtensionContextManager();
|
package/dist/collection/components/vega-rich-text-editor/helpers/extension-context-manager.test.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import extensionContextManager from './extension-context-manager';
|
|
2
|
+
describe('extension context manager', () => {
|
|
3
|
+
it('should store and retrieve context by host element', () => {
|
|
4
|
+
const host = document.createElement('vega-rich-text-editor');
|
|
5
|
+
const context = {
|
|
6
|
+
host,
|
|
7
|
+
isSourceEditMode: jest.fn().mockReturnValue(false),
|
|
8
|
+
getSelectedNodes: jest.fn().mockReturnValue([]),
|
|
9
|
+
flushValue: jest.fn(),
|
|
10
|
+
};
|
|
11
|
+
extensionContextManager.setExtensionContext(context);
|
|
12
|
+
expect(extensionContextManager.getExtensionContext(host)).toBe(context);
|
|
13
|
+
expect(extensionContextManager.getExtensionContext(null)).toBeNull();
|
|
14
|
+
});
|
|
15
|
+
it('should return null when no context registered for host', () => {
|
|
16
|
+
const host = document.createElement('vega-rich-text-editor');
|
|
17
|
+
expect(extensionContextManager.getExtensionContext(host)).toBeUndefined();
|
|
18
|
+
});
|
|
19
|
+
});
|
|
@@ -20,10 +20,13 @@ export class InsertImageController extends VegaSlimmer {
|
|
|
20
20
|
* Insert a image to current state
|
|
21
21
|
*
|
|
22
22
|
* @param {string} imageUrl The image url
|
|
23
|
+
* @param {RTEBlock[]} selectedBlocks The current selected blocks, if not provided, will get from selectionController
|
|
24
|
+
* @param {RTENode[]} selectedNodes The current selected nodes, if not provided, will get from selectionController
|
|
25
|
+
* @param {RTERange} currentRange The current selected range, if not provided, will get from selectionController
|
|
23
26
|
* @returns {RTEImageNode} RTEImageNode
|
|
24
27
|
*/
|
|
25
|
-
insertImageToCaretPosition(imageUrl) {
|
|
26
|
-
|
|
28
|
+
insertImageToCaretPosition(imageUrl, selectedBlocks, selectedNodes, currentRange) {
|
|
29
|
+
selectedBlocks || (selectedBlocks = this.selectionController.getSelectedBlocks());
|
|
27
30
|
const imageBlock = new RTEImageBlock(generateUUID());
|
|
28
31
|
const newImageNode = new RTEImageNode(generateUUID(), imageUrl, imageBlock);
|
|
29
32
|
newImageNode.apply(new ImageAnnotationAction('md', ''));
|
|
@@ -33,8 +36,8 @@ export class InsertImageController extends VegaSlimmer {
|
|
|
33
36
|
void this.valueController.flushChanges(this.value);
|
|
34
37
|
}
|
|
35
38
|
else {
|
|
36
|
-
const { startOffset } = this.selectionController.getCurrentRange();
|
|
37
|
-
|
|
39
|
+
const { startOffset } = currentRange || this.selectionController.getCurrentRange();
|
|
40
|
+
selectedNodes || (selectedNodes = this.selectionController.getSelectedNodes());
|
|
38
41
|
selectedBlocks[0].apply(new InsertImageToBlockAction(selectedNodes[0], startOffset, imageBlock));
|
|
39
42
|
}
|
|
40
43
|
this.updateCaretPosition(newImageNode);
|
|
@@ -6,20 +6,46 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { VegaInternalIconManager } from '../../../../../helpers/icon/internal-icon-manager';
|
|
8
8
|
import image from '../../../assets/image';
|
|
9
|
-
import { h } from '@stencil/core';
|
|
9
|
+
import { Fragment, h } from '@stencil/core';
|
|
10
10
|
import { MapToComponentField } from 'vega-slimmer/core';
|
|
11
11
|
import { NodeAnnotationTypeEnum } from '../../../dto/annotations/node-annotation.abstract';
|
|
12
12
|
import { ImageUpdateUrlAction } from '../../../dto/actions/image-update-url-action';
|
|
13
13
|
import { VisualModeToolbarButtonSlimmer } from './visual-mode-toolbar-button-slimmer.abstract';
|
|
14
14
|
import { ModifyContentActionType } from '../../../dto/actions/modify-content-action.abstract';
|
|
15
|
+
import { DomNodeSubjectObserverFactory } from '../../../../../helpers/change-manager/subject/dom-node-subject/dom-node-subject-observer-factory';
|
|
16
|
+
import { VegaClick, VegaDropdownClick } from '../../../../../helpers/event-manager/event-id/vega-event-id';
|
|
17
|
+
import { tryGetDocument } from '../../../../../utils/try-get-document';
|
|
15
18
|
export class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
16
19
|
constructor() {
|
|
17
20
|
super({
|
|
18
21
|
icon: 'image',
|
|
19
22
|
tooltip: { text: 'Image' },
|
|
20
23
|
});
|
|
21
|
-
this.
|
|
22
|
-
this.
|
|
24
|
+
this.insertURLImage = async () => {
|
|
25
|
+
const url = this.normalizeSafeImageUrl(this.insertURLInputRef.value);
|
|
26
|
+
this.applyImageNode(url, 'url');
|
|
27
|
+
await this.insertURLModalRef.modal('hide');
|
|
28
|
+
};
|
|
29
|
+
this.handleDropdownItemClick = async (payload) => {
|
|
30
|
+
const safeDocument = tryGetDocument();
|
|
31
|
+
switch (payload.detail) {
|
|
32
|
+
case 'upload':
|
|
33
|
+
this.uploadInputRef.click();
|
|
34
|
+
break;
|
|
35
|
+
case 'url':
|
|
36
|
+
this.currentRange = this.selectionController.getCurrentRange();
|
|
37
|
+
this.currentSelectedNodes = this.selectionController.getSelectedNodes();
|
|
38
|
+
this.currentSelectedBlocks = this.selectionController.getSelectedBlocks();
|
|
39
|
+
safeDocument && safeDocument.body.append(this.insertURLModalRef);
|
|
40
|
+
this.insertURLInputRef.value = '';
|
|
41
|
+
await this.insertURLModalRef.modal('show');
|
|
42
|
+
await this.insertURLInputRef.doFocus();
|
|
43
|
+
break;
|
|
44
|
+
/* istanbul ignore next */
|
|
45
|
+
default:
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
await this.dropdownRef.hide();
|
|
23
49
|
};
|
|
24
50
|
/**
|
|
25
51
|
* The below method is e2e-test covered in
|
|
@@ -32,13 +58,7 @@ export class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
32
58
|
if (!input.files.length) {
|
|
33
59
|
return;
|
|
34
60
|
}
|
|
35
|
-
const node = this.
|
|
36
|
-
if (!this.updateNodeURLMap) {
|
|
37
|
-
this.updateNodeURLMap = new Map();
|
|
38
|
-
}
|
|
39
|
-
this.updateNodeURLMap.set(node, (url) => {
|
|
40
|
-
node.apply(new ImageUpdateUrlAction(url));
|
|
41
|
-
});
|
|
61
|
+
const node = this.applyImageNode(URL.createObjectURL(input.files[0]), 'upload');
|
|
42
62
|
const payload = {
|
|
43
63
|
file: input.files[0],
|
|
44
64
|
sendBackUploadedURLCallback: this.updateNodeURLMap.get(node),
|
|
@@ -49,8 +69,14 @@ export class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
49
69
|
}
|
|
50
70
|
renderBtnWrapper(renderBtn) {
|
|
51
71
|
return (h("vega-box", null,
|
|
52
|
-
|
|
53
|
-
|
|
72
|
+
h("vega-dropdown", { selectType: "none", trigger: "click", alignment: "center", ref: (ref) => {
|
|
73
|
+
this.dropdownRef = ref;
|
|
74
|
+
this.addDropdownObserver(ref);
|
|
75
|
+
} },
|
|
76
|
+
renderBtn({ showArrowIcon: true }),
|
|
77
|
+
h("div", Object.assign({ slot: "items" }, super.preventLostFocus()), this.renderDropdownContent())),
|
|
78
|
+
this.renderUploadInput(),
|
|
79
|
+
this.renderInsertURLModal()));
|
|
54
80
|
}
|
|
55
81
|
isSelected() {
|
|
56
82
|
return false;
|
|
@@ -62,10 +88,85 @@ export class ImageToolbarButtonSlimmer extends VisualModeToolbarButtonSlimmer {
|
|
|
62
88
|
selectedNodes.some((node) => node.getAnnotationByType(NodeAnnotationTypeEnum.LINK)) ||
|
|
63
89
|
this.shouldDisabledToolbar(selectedBlock, ModifyContentActionType.INSERT_IMAGE_TO_BLOCK));
|
|
64
90
|
}
|
|
91
|
+
renderDropdownContent() {
|
|
92
|
+
return (h(Fragment, null, ImageToolbarButtonSlimmer.items.map((item) => {
|
|
93
|
+
return (h("vega-dropdown-item", { key: item.key, itemKey: item.key }, this.translationSlimmer.t(item.label)));
|
|
94
|
+
})));
|
|
95
|
+
}
|
|
96
|
+
renderUploadInput() {
|
|
97
|
+
return (h("input", { type: "file", style: { display: 'none' }, ref: (node) => (this.uploadInputRef = node), accept: "image/*", onChange: this.fileInputChange }));
|
|
98
|
+
}
|
|
99
|
+
renderInsertURLModal() {
|
|
100
|
+
return (h("vega-modal", { size: 500, backdropColor: "semi", ref: (node) => (this.insertURLModalRef = node) },
|
|
101
|
+
h("div", { slot: "modal-title" }, this.translationSlimmer.t('Image via URL')),
|
|
102
|
+
h("div", { slot: "modal-content" },
|
|
103
|
+
h("vega-input", { placeholder: this.translationSlimmer.t('URL'), ref: (ref) => (this.insertURLInputRef = ref),
|
|
104
|
+
/* istanbul ignore next */
|
|
105
|
+
// eslint-disable-next-line react/jsx-no-bind
|
|
106
|
+
onKeyDown: async (event) => {
|
|
107
|
+
event.key === 'Enter' && (await this.insertURLImage());
|
|
108
|
+
} })),
|
|
109
|
+
h("vega-flex", { slot: "modal-footer", gap: "size-8", alignItems: "center", justifyContent: "end" },
|
|
110
|
+
h("vega-button", { label: this.translationSlimmer.t('Cancel'), variant: "secondary", ref: (ref) => {
|
|
111
|
+
this.addModalCancelObserver(ref);
|
|
112
|
+
} }),
|
|
113
|
+
h("vega-button", { label: this.translationSlimmer.t('Insert'), ref: (ref) => {
|
|
114
|
+
this.addModalInsertObserver(ref);
|
|
115
|
+
} }))));
|
|
116
|
+
}
|
|
117
|
+
addDropdownObserver(dropdownRef) {
|
|
118
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(dropdownRef, VegaDropdownClick, this.handleDropdownItemClick);
|
|
119
|
+
}
|
|
120
|
+
addModalCancelObserver(buttonRef) {
|
|
121
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(buttonRef, VegaClick, async () => {
|
|
122
|
+
await this.insertURLModalRef.modal('hide');
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
addModalInsertObserver(buttonRef) {
|
|
126
|
+
DomNodeSubjectObserverFactory.addUniqueObserverToNode(buttonRef, VegaClick, this.insertURLImage);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* The below method is e2e-test covered in
|
|
130
|
+
* @see{module:should-update-url-properly-when-upload-images}
|
|
131
|
+
*/
|
|
132
|
+
/* istanbul ignore next */
|
|
133
|
+
applyImageNode(url, type) {
|
|
134
|
+
const node = type === 'url'
|
|
135
|
+
? this.insertImageController.insertImageToCaretPosition(url, this.currentSelectedBlocks, this.currentSelectedNodes, this.currentRange)
|
|
136
|
+
: this.insertImageController.insertImageToCaretPosition(url);
|
|
137
|
+
if (!this.updateNodeURLMap) {
|
|
138
|
+
this.updateNodeURLMap = new Map();
|
|
139
|
+
}
|
|
140
|
+
this.updateNodeURLMap.set(node, (url) => {
|
|
141
|
+
node.apply(new ImageUpdateUrlAction(url));
|
|
142
|
+
});
|
|
143
|
+
return node;
|
|
144
|
+
}
|
|
145
|
+
normalizeSafeImageUrl(url) {
|
|
146
|
+
try {
|
|
147
|
+
const parsedUrl = new URL(url);
|
|
148
|
+
if (parsedUrl.protocol === 'javascript:') {
|
|
149
|
+
return '';
|
|
150
|
+
}
|
|
151
|
+
// eslint-disable-next-line no-empty
|
|
152
|
+
}
|
|
153
|
+
catch (_error) { }
|
|
154
|
+
return url;
|
|
155
|
+
}
|
|
65
156
|
}
|
|
66
157
|
(() => {
|
|
67
158
|
VegaInternalIconManager.register({ image: image });
|
|
68
159
|
})();
|
|
160
|
+
ImageToolbarButtonSlimmer.items = [
|
|
161
|
+
{
|
|
162
|
+
key: 'upload',
|
|
163
|
+
label: 'Upload from computer',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
key: 'url',
|
|
167
|
+
label: 'Insert via URL',
|
|
168
|
+
},
|
|
169
|
+
];
|
|
69
170
|
__decorate([
|
|
70
171
|
MapToComponentField()
|
|
71
172
|
], ImageToolbarButtonSlimmer.prototype, "insertImageController", void 0);
|
package/dist/collection/components/vega-rich-text-editor/test/extensions/extension-test-utils.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import extensionContextManager from '../../helpers/extension-context-manager';
|
|
2
|
+
import { tryGetDocument } from '../../../../utils/try-get-document';
|
|
3
|
+
import { RTERange } from '../../dto/range';
|
|
4
|
+
/**
|
|
5
|
+
* Gets a mock rich text editor element for testing purposes.
|
|
6
|
+
*
|
|
7
|
+
* @returns {HTMLElement} A mock rich text editor element.
|
|
8
|
+
*/
|
|
9
|
+
export function getMockRichTextEditor() {
|
|
10
|
+
var _a;
|
|
11
|
+
return (_a = tryGetDocument()) === null || _a === void 0 ? void 0 : _a.createElement('vega-rich-text-editor');
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Mocks the extension context for testing purposes.
|
|
15
|
+
*
|
|
16
|
+
* @param {Partial<RTEExtensionContext>} context - Partial context to override default mock values.
|
|
17
|
+
* @returns {RTEExtensionContext} The mocked extension context.
|
|
18
|
+
*/
|
|
19
|
+
export function mockExtensionContext(context = {}) {
|
|
20
|
+
const extensionContext = {
|
|
21
|
+
host: context.host || getMockRichTextEditor(),
|
|
22
|
+
isSourceEditMode: context.isSourceEditMode || jest.fn().mockReturnValue(false),
|
|
23
|
+
getSelectedNodes: context.getSelectedNodes || jest.fn().mockReturnValue([]),
|
|
24
|
+
flushValue: context.flushValue || jest.fn(),
|
|
25
|
+
};
|
|
26
|
+
extensionContextManager.setExtensionContext(extensionContext);
|
|
27
|
+
return extensionContext;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Mocks the toolbar render context for testing purposes.
|
|
31
|
+
*
|
|
32
|
+
* @param {Partial<VegaRTEToolbarRenderContext>} context - Partial context to override default mock values.
|
|
33
|
+
* @returns {VegaRTEToolbarRenderContext} The mocked toolbar render context.
|
|
34
|
+
*/
|
|
35
|
+
export function mockToolbarRenderContext(context = {}) {
|
|
36
|
+
return {
|
|
37
|
+
host: context.host || getMockRichTextEditor(),
|
|
38
|
+
rteRange: context.rteRange || new RTERange(),
|
|
39
|
+
sourceEditMode: context.sourceEditMode || false,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
@@ -27,7 +27,7 @@ export class VegaRichTextImageEditorRenderer extends VegaSlimmer {
|
|
|
27
27
|
};
|
|
28
28
|
}
|
|
29
29
|
render() {
|
|
30
|
-
return (h("vega-popover", { style: { width: '100%' }, trigger: "click", alignment: "start", placement: "bottom", showArrow: false, ref: (ref) => {
|
|
30
|
+
return (h("vega-popover", { style: { width: '100%' }, trigger: "click", alignment: "start", placement: "bottom", showArrow: false, isScreenPosition: true, ref: (ref) => {
|
|
31
31
|
this.popoverRef = ref;
|
|
32
32
|
DomNodeSubjectObserverFactory.addUniqueObserverToNode(ref, VegaPopoverShow, () => {
|
|
33
33
|
this.selected = true;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { getWeekdays } from '../utils';
|
|
1
|
+
import { getWeekdays, buildDatePickerAnnouncement, getSystemTimezone } from '../utils';
|
|
2
|
+
import { CalendarDate } from '../calendar-date';
|
|
2
3
|
describe('utils', () => {
|
|
3
4
|
it('should return weekdays as expected by default', () => {
|
|
4
5
|
expect(getWeekdays()).toEqual([0, 1, 2, 3, 4, 5, 6]);
|
|
@@ -6,4 +7,56 @@ describe('utils', () => {
|
|
|
6
7
|
it('should return weekdays as expected when change the firstWeekDay', () => {
|
|
7
8
|
expect(getWeekdays(1)).toEqual([1, 2, 3, 4, 5, 6, 0]);
|
|
8
9
|
});
|
|
10
|
+
it('should return a non-empty string for getSystemTimezone', () => {
|
|
11
|
+
expect(typeof getSystemTimezone()).toBe('string');
|
|
12
|
+
expect(getSystemTimezone().length).toBeGreaterThan(0);
|
|
13
|
+
});
|
|
14
|
+
describe('buildDatePickerAnnouncement', () => {
|
|
15
|
+
it('should return empty string when both startDate and endDate are null', () => {
|
|
16
|
+
expect(buildDatePickerAnnouncement({ mode: 'single', startDate: null })).toBe('');
|
|
17
|
+
expect(buildDatePickerAnnouncement({ mode: 'range', startDate: null, endDate: null })).toBe('');
|
|
18
|
+
});
|
|
19
|
+
it('should return single mode announcement with startDate', () => {
|
|
20
|
+
const startDate = new CalendarDate(2025, 3, 15);
|
|
21
|
+
const result = buildDatePickerAnnouncement({ mode: 'single', startDate });
|
|
22
|
+
expect(result).toContain('Selected result');
|
|
23
|
+
expect(result).toContain('March');
|
|
24
|
+
expect(result).toContain('15');
|
|
25
|
+
expect(result).toContain('2025');
|
|
26
|
+
});
|
|
27
|
+
it('should return empty string for single mode without startDate', () => {
|
|
28
|
+
expect(buildDatePickerAnnouncement({ mode: 'single', startDate: null })).toBe('');
|
|
29
|
+
});
|
|
30
|
+
it('should return range mode announcement with both startDate and endDate', () => {
|
|
31
|
+
const startDate = new CalendarDate(2025, 3, 10);
|
|
32
|
+
const endDate = new CalendarDate(2025, 3, 20);
|
|
33
|
+
const result = buildDatePickerAnnouncement({ mode: 'range', startDate, endDate });
|
|
34
|
+
expect(result).toContain('Selected result');
|
|
35
|
+
expect(result).toContain('Start Date');
|
|
36
|
+
expect(result).toContain('End Date');
|
|
37
|
+
expect(result).toContain('March');
|
|
38
|
+
expect(result).toContain('10');
|
|
39
|
+
expect(result).toContain('20');
|
|
40
|
+
});
|
|
41
|
+
it('should return range mode announcement with only startDate', () => {
|
|
42
|
+
const startDate = new CalendarDate(2025, 6, 1);
|
|
43
|
+
const result = buildDatePickerAnnouncement({ mode: 'range', startDate, endDate: null });
|
|
44
|
+
expect(result).toContain('Selected result');
|
|
45
|
+
expect(result).toContain('Start Date');
|
|
46
|
+
expect(result).toContain('June');
|
|
47
|
+
expect(result).toContain('1');
|
|
48
|
+
expect(result).not.toContain('End Date');
|
|
49
|
+
});
|
|
50
|
+
it('should return empty string for range mode without any dates', () => {
|
|
51
|
+
expect(buildDatePickerAnnouncement({ mode: 'range', startDate: null, endDate: null })).toBe('');
|
|
52
|
+
});
|
|
53
|
+
it('should return empty string for range mode with only endDate', () => {
|
|
54
|
+
const endDate = new CalendarDate(2025, 3, 20);
|
|
55
|
+
expect(buildDatePickerAnnouncement({ mode: 'range', startDate: null, endDate })).toBe('');
|
|
56
|
+
});
|
|
57
|
+
it('should return empty string for single mode with only endDate', () => {
|
|
58
|
+
const endDate = new CalendarDate(2025, 3, 20);
|
|
59
|
+
expect(buildDatePickerAnnouncement({ mode: 'single', startDate: null, endDate })).toBe('');
|
|
60
|
+
});
|
|
61
|
+
});
|
|
9
62
|
});
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { VegaInternalTranslation } from '../translation/internal-translation-controller';
|
|
1
2
|
/**
|
|
2
3
|
* Get a week days array
|
|
3
4
|
*
|
|
@@ -26,3 +27,37 @@ export var WeekdayLongNames;
|
|
|
26
27
|
export const getSystemTimezone = () => {
|
|
27
28
|
return Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
28
29
|
};
|
|
30
|
+
/**
|
|
31
|
+
* Build an aria announcement string for date picker selection.
|
|
32
|
+
* TODO: consider to implement i18n for aria announcement .
|
|
33
|
+
*
|
|
34
|
+
* @param {object} options - The options for building the announcement.
|
|
35
|
+
* @param {'single' | 'range'} options.mode - The date picker selection mode.
|
|
36
|
+
* @param {Nullable<CalendarDate>} options.startDate - The start date.
|
|
37
|
+
* @param {Nullable<CalendarDate>} [options.endDate] - The end date (used in range mode).
|
|
38
|
+
* @returns {string} - The aria announcement string.
|
|
39
|
+
*/
|
|
40
|
+
export const buildDatePickerAnnouncement = (options) => {
|
|
41
|
+
const mode = options.mode;
|
|
42
|
+
const startDate = options.startDate;
|
|
43
|
+
const endDate = options.endDate;
|
|
44
|
+
if (!startDate && !endDate) {
|
|
45
|
+
return '';
|
|
46
|
+
}
|
|
47
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
48
|
+
const formatDate = (d) => `${d.getMonthName()} ${d.date} ${d.year}`;
|
|
49
|
+
if (mode === 'single' && startDate) {
|
|
50
|
+
return `${VegaInternalTranslation.t('Selected result')}: ${formatDate(startDate)}`;
|
|
51
|
+
}
|
|
52
|
+
if (mode === 'range') {
|
|
53
|
+
const startDateLabel = VegaInternalTranslation.t('Start Date');
|
|
54
|
+
const endDateLabel = VegaInternalTranslation.t('End Date');
|
|
55
|
+
if (startDate && endDate) {
|
|
56
|
+
return `${VegaInternalTranslation.t('Selected result')} ${startDateLabel}: ${formatDate(startDate)}. ${endDateLabel}: ${formatDate(endDate)}.`;
|
|
57
|
+
}
|
|
58
|
+
if (startDate) {
|
|
59
|
+
return `${VegaInternalTranslation.t('Selected result')} ${startDateLabel}: ${formatDate(startDate)}.`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return '';
|
|
63
|
+
};
|
package/dist/collection/helpers/chart/input-processors/format-time-positions-input-processor.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { convertArrayToNestedArray, flatNestedArray } from '../../../utils/array';
|
|
2
|
-
import { map as d3Map, timeParse as d3TimeParse } from 'd3';
|
|
2
|
+
import { map as d3Map, timeParse as d3TimeParse } from '../../../polyfill/d3';
|
|
3
3
|
/** The FormatTimePositionsInputProcessor class processes input data for a line chart by formatting time positions if the x-axis type is 'time'. */
|
|
4
4
|
export class FormatTimePositionsInputProcessor {
|
|
5
5
|
/**
|
|
@@ -30,7 +30,7 @@ export class FormatTimePositionsInputProcessor {
|
|
|
30
30
|
let lengthArray = [];
|
|
31
31
|
const flatArray = flatNestedArray(data);
|
|
32
32
|
const flatArray_date = d3Map(flatArray, (d) => {
|
|
33
|
-
return { x: typeof d.x === 'string' ? d3TimeParse('%Y-%m-%d')(d.x) : d.x, y: d.y };
|
|
33
|
+
return { x: (typeof d.x === 'string' ? d3TimeParse('%Y-%m-%d')(d.x) : d.x), y: d.y };
|
|
34
34
|
});
|
|
35
35
|
if (data && Array.isArray(data[0])) {
|
|
36
36
|
lengthArray = data.map((item) => item.length);
|
package/dist/collection/helpers/chart/input-processors/pie-chart-arc-path-input-processor.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { pie as d3Pie } from 'd3';
|
|
1
|
+
import { pie as d3Pie } from '../../../polyfill/d3';
|
|
2
2
|
/** The PieChartArchPathInputProcessor class processes input data to generate options for rendering a pie or donut chart with D3.js. */
|
|
3
3
|
export class PieChartArchPathInputProcessor {
|
|
4
4
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { flatNestedArray } from '../../../utils/array';
|
|
2
|
-
import { scaleTime, scaleLinear, scaleBand, extent as d3Extent } from 'd3';
|
|
2
|
+
import { scaleTime, scaleLinear, scaleBand, extent as d3Extent } from '../../../polyfill/d3';
|
|
3
3
|
/** The XAxisInputProcessor class generates X-axis options for a line chart based on input data and previous layout results. */
|
|
4
4
|
export class XAxisInputProcessor {
|
|
5
5
|
/**
|
|
@@ -43,16 +43,18 @@ export class XAxisInputProcessor {
|
|
|
43
43
|
const xData = flatData.map((item) => item.x);
|
|
44
44
|
let xScale;
|
|
45
45
|
if (xAxisType === 'time') {
|
|
46
|
+
const ext = d3Extent(xData);
|
|
46
47
|
xScale = scaleTime()
|
|
47
|
-
.domain(
|
|
48
|
+
.domain(ext[0] !== undefined ? ext : [new Date(), new Date()])
|
|
48
49
|
.range([0, width]);
|
|
49
50
|
}
|
|
50
51
|
else if (xAxisType === 'category') {
|
|
51
52
|
xScale = scaleBand(typeof sorter === 'function' ? xData.sort(sorter) : xData, [0, width]).padding(padding);
|
|
52
53
|
}
|
|
53
54
|
else {
|
|
55
|
+
const ext = d3Extent(xData);
|
|
54
56
|
xScale = scaleLinear()
|
|
55
|
-
.domain(
|
|
57
|
+
.domain(ext[0] !== undefined ? ext : [0, 0])
|
|
56
58
|
.range([0, width]);
|
|
57
59
|
}
|
|
58
60
|
return xScale;
|
package/dist/collection/helpers/chart/input-processors/x-axis-label-formatter-input-processor.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { timeFormat
|
|
1
|
+
import { timeFormat } from '../../../polyfill/d3/d3-time-format-polyfill';
|
|
2
|
+
import { timeSecond, timeMinute, timeHour, timeDay, timeMonth, timeWeek, timeYear, } from '../../../polyfill/d3/d3-time-polyfill';
|
|
2
3
|
/** The XAxisInputProcessor class generates X-axis options for a line chart based on input data and previous layout results. */
|
|
3
4
|
export class XAxisLabelFormatterInputProcessor {
|
|
4
5
|
constructor() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { flatNestedArray } from '../../../utils/array';
|
|
2
|
-
import { min as d3Min, max as d3Max, extent as d3Extent, scaleLinear } from 'd3';
|
|
2
|
+
import { min as d3Min, max as d3Max, extent as d3Extent, scaleLinear } from '../../../polyfill/d3';
|
|
3
3
|
/** The YAxisInputProcessor class generates Y-axis options for a line chart based on input data and previous layout results. */
|
|
4
4
|
export class YAxisInputProcessor {
|
|
5
5
|
/**
|
|
@@ -37,14 +37,16 @@ export class YAxisInputProcessor {
|
|
|
37
37
|
* @returns {ScaleType}y scale
|
|
38
38
|
*/
|
|
39
39
|
getScale(data, range, ticks) {
|
|
40
|
+
var _a, _b;
|
|
40
41
|
const flatData = flatNestedArray(data);
|
|
41
42
|
const yData = flatData.map((item) => item.y).concat(0);
|
|
42
|
-
let maxYData = d3Max(yData);
|
|
43
|
-
let minYData = d3Min(yData);
|
|
43
|
+
let maxYData = (_a = d3Max(yData)) !== null && _a !== void 0 ? _a : 0;
|
|
44
|
+
let minYData = (_b = d3Min(yData)) !== null && _b !== void 0 ? _b : 0;
|
|
44
45
|
let yScale = scaleLinear().domain([minYData, maxYData]);
|
|
45
|
-
const ticksValue = yScale.ticks(ticks);
|
|
46
|
+
const ticksValue = (yScale.ticks ? yScale.ticks(ticks) : []);
|
|
46
47
|
const step = Math.abs(ticksValue[ticksValue.length - 1] - ticksValue[ticksValue.length - 2]);
|
|
47
|
-
const
|
|
48
|
+
const ext = d3Extent(ticksValue);
|
|
49
|
+
const [minTickValue, maxTickValue] = ext[0] !== undefined ? ext : [0, 0];
|
|
48
50
|
if (minYData < minTickValue) {
|
|
49
51
|
minYData = minTickValue - step;
|
|
50
52
|
ticks += 1;
|
package/dist/collection/helpers/chart/interacting-entry-generator/arc-path-hover-generator.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { InteractingEntryGenerator } from './interacting-entry-generator';
|
|
2
|
-
import { select as d3Select } from 'd3';
|
|
2
|
+
import { select as d3Select } from '../../../polyfill/d3';
|
|
3
3
|
/** The `ArcPathHoverGenerator` class is a TypeScript function that handles mouseover events on SVG elements with a specific class and modifies their appearance. */
|
|
4
4
|
export class ArcPathHoverGenerator extends InteractingEntryGenerator {
|
|
5
5
|
constructor() {
|
package/dist/collection/helpers/chart/interacting-entry-generator/pie-legend-hover-generator.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { InteractingEntryGenerator } from './interacting-entry-generator';
|
|
2
|
-
import { select as d3Select } from 'd3';
|
|
2
|
+
import { select as d3Select } from '../../../polyfill/d3';
|
|
3
3
|
/** The PieLegendHoverGenerator class generates an InteractingEntry object that handles mouseover events on a legend of a D3 pie chart and triggers a mouseover event on the corresponding path element. */
|
|
4
4
|
export class PieLegendHoverGenerator extends InteractingEntryGenerator {
|
|
5
5
|
constructor() {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseRenderer } from './base-renderer';
|
|
2
|
-
import { line as d3Line, create as d3Create } from 'd3';
|
|
2
|
+
import { line as d3Line, create as d3Create } from '../../../polyfill/d3';
|
|
3
3
|
/**
|
|
4
4
|
* The CanvasRenderer class is a TypeScript class that extends the BaseRenderer class and provides
|
|
5
5
|
* methods for drawing various shapes and elements on a canvas.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseRenderer } from './base-renderer';
|
|
2
|
-
import { select as d3Select, create as d3Create, line as d3Line, axisBottom, axisLeft, arc as d3Arc, } from 'd3';
|
|
2
|
+
import { select as d3Select, create as d3Create, line as d3Line, axisBottom, axisLeft, arc as d3Arc, } from '../../../polyfill/d3';
|
|
3
3
|
/** This class is used to render charts using SVG elements. */
|
|
4
4
|
export class SVGRenderer extends BaseRenderer {
|
|
5
5
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SVGRenderer } from '../../renderers/svg-renderer';
|
|
2
2
|
import { ArcPathDrawer } from '../../drawers/arc-path-drawer';
|
|
3
|
-
import { pie as d3Pie } from 'd3';
|
|
3
|
+
import { pie as d3Pie } from '../../../../polyfill/d3';
|
|
4
4
|
import { SVGInteractor } from '../../interactors/svg-interactor';
|
|
5
5
|
describe('path drawer', () => {
|
|
6
6
|
it('should call renderer function when run the execute function', () => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FormatTimePositionsInputProcessor } from '../../input-processors/format-time-positions-input-processor';
|
|
2
|
-
import { timeParse as d3TimeParse } from 'd3';
|
|
2
|
+
import { timeParse as d3TimeParse } from '../../../../polyfill/d3';
|
|
3
3
|
describe('formatTimePositionsInputProcessor', () => {
|
|
4
4
|
const formatTimePositionsInputProcessor = new FormatTimePositionsInputProcessor();
|
|
5
5
|
it('should return expect result when call the process function ', () => {
|
package/dist/collection/helpers/chart/test/input-processors/sort-positions-input-processor.test.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SortPositionsInputProcessor } from '../../input-processors/sort-positions-input-processor';
|
|
2
|
-
import { timeParse as d3TimeParse } from 'd3';
|
|
2
|
+
import { timeParse as d3TimeParse } from '../../../../polyfill/d3';
|
|
3
3
|
describe('sortPositionsInputProcessor', () => {
|
|
4
4
|
const sortPositionsInputProcessor = new SortPositionsInputProcessor();
|
|
5
5
|
it('should return expect result when call the process function ', () => {
|
|
@@ -36,4 +36,43 @@ describe('scaleGenerator', () => {
|
|
|
36
36
|
expect(xAxisInputProcessor['getScale'](stringData, width, 'category').domain()).toEqual(stringData.map((item) => item.x));
|
|
37
37
|
expect(xAxisInputProcessor['getScale'](stringDataNeedSort, width, 'category', 1, (item, nextItem) => 'ABCD'.indexOf(item) - 'ABCD'.indexOf(nextItem)).domain()).toEqual(['A', 'B', 'C', 'D']);
|
|
38
38
|
});
|
|
39
|
+
it('should fall back to default domains when input data is empty', () => {
|
|
40
|
+
const width = 200;
|
|
41
|
+
expect(xAxisInputProcessor['getScale']([], width, 'value').domain()).toEqual([0, 0]);
|
|
42
|
+
const timeDomain = xAxisInputProcessor['getScale']([], width, 'time', 1).domain();
|
|
43
|
+
expect(timeDomain[0]).toBeInstanceOf(Date);
|
|
44
|
+
expect(timeDomain[1]).toBeInstanceOf(Date);
|
|
45
|
+
expect(Math.abs(timeDomain[1].getTime() - timeDomain[0].getTime())).toBeLessThan(10);
|
|
46
|
+
});
|
|
47
|
+
it('should pass correct padding to getScale based on container tagName', () => {
|
|
48
|
+
const getScaleSpy = jest
|
|
49
|
+
.spyOn(xAxisInputProcessor, 'getScale')
|
|
50
|
+
.mockReturnValue({});
|
|
51
|
+
const previousOutput = {
|
|
52
|
+
width: 200,
|
|
53
|
+
height: 100,
|
|
54
|
+
innerWidth: 200,
|
|
55
|
+
innerHeight: 100,
|
|
56
|
+
top: 0,
|
|
57
|
+
left: 0,
|
|
58
|
+
right: 0,
|
|
59
|
+
bottom: 0,
|
|
60
|
+
};
|
|
61
|
+
const dataSource = [];
|
|
62
|
+
const lineChartInput = {
|
|
63
|
+
dataSource,
|
|
64
|
+
container: document.createElement('vega-line-chart'),
|
|
65
|
+
xAxis: { type: 'value' },
|
|
66
|
+
};
|
|
67
|
+
xAxisInputProcessor.process(lineChartInput, previousOutput);
|
|
68
|
+
expect(getScaleSpy).toHaveBeenLastCalledWith(dataSource, 200, 'value', 1, undefined);
|
|
69
|
+
const divChartInput = {
|
|
70
|
+
dataSource,
|
|
71
|
+
container: document.createElement('div'),
|
|
72
|
+
xAxis: { type: 'value' },
|
|
73
|
+
};
|
|
74
|
+
xAxisInputProcessor.process(divChartInput, previousOutput);
|
|
75
|
+
expect(getScaleSpy).toHaveBeenLastCalledWith(dataSource, 200, 'value', 0.1, undefined);
|
|
76
|
+
getScaleSpy.mockRestore();
|
|
77
|
+
});
|
|
39
78
|
});
|