@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { XAxisLabelFormatterInputProcessor } from '../../input-processors/x-axis-label-formatter-input-processor';
|
|
2
|
-
import { scaleTime } from 'd3';
|
|
2
|
+
import { scaleTime } from '../../../../polyfill/d3';
|
|
3
3
|
describe('xAxisLabelFormatterInputProcessor', () => {
|
|
4
4
|
const xAxisLabelFormatterInputProcessor = new XAxisLabelFormatterInputProcessor();
|
|
5
5
|
it('should not override the default scale formatter function when the type is not time or labelFormatter is not empty', () => {
|
|
@@ -41,22 +41,69 @@ describe('xAxisLabelFormatterInputProcessor', () => {
|
|
|
41
41
|
});
|
|
42
42
|
it('should call the expect function when call the time formatter function', () => {
|
|
43
43
|
const mockXAxisLabelFormatterInputProcessor = new XAxisLabelFormatterInputProcessor();
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
|
|
44
|
+
const mockMillisecond = jest.fn((_date) => {
|
|
45
|
+
void _date;
|
|
46
|
+
return '';
|
|
47
|
+
});
|
|
48
|
+
const mockSecond = jest.fn((_date) => {
|
|
49
|
+
void _date;
|
|
50
|
+
return '';
|
|
51
|
+
});
|
|
52
|
+
const mockMinute = jest.fn((_date) => {
|
|
53
|
+
void _date;
|
|
54
|
+
return '';
|
|
55
|
+
});
|
|
56
|
+
const mockHour = jest.fn((_date) => {
|
|
57
|
+
void _date;
|
|
58
|
+
return '';
|
|
59
|
+
});
|
|
60
|
+
const mockDay = jest.fn((_date) => {
|
|
61
|
+
void _date;
|
|
62
|
+
return '';
|
|
63
|
+
});
|
|
64
|
+
const mockWeek = jest.fn((_date) => {
|
|
65
|
+
void _date;
|
|
66
|
+
return '';
|
|
67
|
+
});
|
|
68
|
+
const mockMonth = jest.fn((_date) => {
|
|
69
|
+
void _date;
|
|
70
|
+
return '';
|
|
71
|
+
});
|
|
72
|
+
const mockYear = jest.fn((_date) => {
|
|
73
|
+
void _date;
|
|
74
|
+
return '';
|
|
75
|
+
});
|
|
76
|
+
mockXAxisLabelFormatterInputProcessor['formatMillisecond'] = mockMillisecond;
|
|
77
|
+
mockXAxisLabelFormatterInputProcessor['formatSecond'] = mockSecond;
|
|
78
|
+
mockXAxisLabelFormatterInputProcessor['formatMinute'] = mockMinute;
|
|
79
|
+
mockXAxisLabelFormatterInputProcessor['formatHour'] = mockHour;
|
|
80
|
+
mockXAxisLabelFormatterInputProcessor['formatDay'] = mockDay;
|
|
81
|
+
mockXAxisLabelFormatterInputProcessor['formatWeek'] = mockWeek;
|
|
82
|
+
mockXAxisLabelFormatterInputProcessor['formatMonth'] = mockMonth;
|
|
83
|
+
mockXAxisLabelFormatterInputProcessor['formatYear'] = mockYear;
|
|
84
|
+
// millisecond: has ms
|
|
85
|
+
mockXAxisLabelFormatterInputProcessor['timeFormatter'](new Date('2023-03-02T00:00:00.100Z'));
|
|
86
|
+
expect(mockMillisecond).toBeCalledTimes(1);
|
|
87
|
+
// second: at second boundary but within a minute
|
|
88
|
+
mockXAxisLabelFormatterInputProcessor['timeFormatter'](new Date('2023-03-02T00:00:01.000Z'));
|
|
54
89
|
expect(mockSecond).toBeCalledTimes(1);
|
|
55
|
-
|
|
90
|
+
// minute: at minute boundary but within an hour
|
|
91
|
+
mockXAxisLabelFormatterInputProcessor['timeFormatter'](new Date('2023-03-02T00:01:00.000Z'));
|
|
56
92
|
expect(mockMinute).toBeCalledTimes(1);
|
|
57
|
-
|
|
93
|
+
// hour: at hour boundary but within a day
|
|
94
|
+
mockXAxisLabelFormatterInputProcessor['timeFormatter'](new Date('2023-03-02T01:00:00.000Z'));
|
|
58
95
|
expect(mockHour).toBeCalledTimes(1);
|
|
59
|
-
|
|
96
|
+
// day: at day boundary but not week boundary (Thu)
|
|
97
|
+
mockXAxisLabelFormatterInputProcessor['timeFormatter'](new Date('2023-03-02T00:00:00.000Z'));
|
|
60
98
|
expect(mockDay).toBeCalledTimes(1);
|
|
99
|
+
// week: at week boundary (Sun) but not month boundary
|
|
100
|
+
mockXAxisLabelFormatterInputProcessor['timeFormatter'](new Date('2023-03-05T00:00:00.000Z'));
|
|
101
|
+
expect(mockWeek).toBeCalledTimes(1);
|
|
102
|
+
// month: at month boundary but not year boundary
|
|
103
|
+
mockXAxisLabelFormatterInputProcessor['timeFormatter'](new Date('2023-02-01T00:00:00.000Z'));
|
|
104
|
+
expect(mockMonth).toBeCalledTimes(1);
|
|
105
|
+
// year: at year boundary
|
|
106
|
+
mockXAxisLabelFormatterInputProcessor['timeFormatter'](new Date('2023-01-01T00:00:00.000Z'));
|
|
107
|
+
expect(mockYear).toBeCalledTimes(1);
|
|
61
108
|
});
|
|
62
109
|
});
|
package/dist/collection/helpers/chart/test/input-processors/y-axis-input-processor.coverage.test.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
describe('YAxisInputProcessor - coverage-only branches', () => {
|
|
2
|
+
it('should fall back when polyfill returns undefined/empty', () => {
|
|
3
|
+
jest.isolateModules(() => {
|
|
4
|
+
const createdScales = [];
|
|
5
|
+
jest.doMock('../../../../polyfill/d3', () => {
|
|
6
|
+
const scaleLinear = jest.fn(() => {
|
|
7
|
+
const scale = {
|
|
8
|
+
domain: jest.fn(function () {
|
|
9
|
+
return this;
|
|
10
|
+
}),
|
|
11
|
+
range: jest.fn(function () {
|
|
12
|
+
return this;
|
|
13
|
+
}),
|
|
14
|
+
// intentionally no ticks()
|
|
15
|
+
};
|
|
16
|
+
createdScales.push(scale);
|
|
17
|
+
return scale;
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
scaleLinear,
|
|
21
|
+
max: jest.fn(() => undefined),
|
|
22
|
+
min: jest.fn(() => undefined),
|
|
23
|
+
extent: jest.fn(() => [undefined, undefined]),
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
27
|
+
const requiredModule = require('../../input-processors/y-axis-input-processor');
|
|
28
|
+
const processor = new requiredModule.YAxisInputProcessor();
|
|
29
|
+
const data = [{ x: 1, y: 0 }];
|
|
30
|
+
const result = processor['getScale'](data, [200, 0], 4);
|
|
31
|
+
expect(result.ticks).toBe(4);
|
|
32
|
+
expect(createdScales.length).toBe(2);
|
|
33
|
+
expect(createdScales[0].domain).toHaveBeenCalledWith([0, 0]);
|
|
34
|
+
expect(createdScales[1].domain).toHaveBeenCalledWith([0, 0]);
|
|
35
|
+
expect(createdScales[1].range).toHaveBeenCalledWith([200, 0]);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
export {};
|
|
@@ -14,6 +14,20 @@ describe('scaleGenerator', () => {
|
|
|
14
14
|
]);
|
|
15
15
|
expect(yAxisInputProcessor['getScale'](numberData, [height, 0], 4).scale.domain()[0]).toEqual(0);
|
|
16
16
|
});
|
|
17
|
+
it('should expand domain/ticks when tick rounding excludes min/max', () => {
|
|
18
|
+
// Use values where the generated tick start/stop (based on a rounded step)
|
|
19
|
+
// does not include the data min/max, forcing both min and max adjustments.
|
|
20
|
+
const numberData = [
|
|
21
|
+
{ x: 1, y: -125 },
|
|
22
|
+
{ x: 2, y: 210 },
|
|
23
|
+
];
|
|
24
|
+
const height = 200;
|
|
25
|
+
const result = yAxisInputProcessor['getScale'](numberData, [height, 0], 4);
|
|
26
|
+
const domain = result.scale.domain();
|
|
27
|
+
expect(domain[0]).toBeLessThanOrEqual(-125);
|
|
28
|
+
expect(domain[1]).toBeGreaterThanOrEqual(210);
|
|
29
|
+
expect(result.ticks).toBeGreaterThan(4);
|
|
30
|
+
});
|
|
17
31
|
// VD-992
|
|
18
32
|
it('should return the correct min data when call the getScale function', () => {
|
|
19
33
|
const numberData = [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SVGRenderer } from '../../renderers/svg-renderer';
|
|
2
|
-
import { scaleLinear } from 'd3';
|
|
2
|
+
import { scaleLinear } from '../../../../polyfill/d3';
|
|
3
3
|
describe('svg renderer', () => {
|
|
4
4
|
it('should set context layout when run the set layout function', () => {
|
|
5
5
|
const context = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { waitForComponentDidRender } from '../index';
|
|
2
|
+
import ChangeManager from '../../change-manager/change-manager';
|
|
3
|
+
import domNodeSubjectFactory from '../../change-manager/subject/dom-node-subject/dom-node-subject-factory';
|
|
4
|
+
import { VegaInternalComponentDidRender } from '../../event-manager/event-id/vega-internal-event-id';
|
|
5
|
+
/**
|
|
6
|
+
* Creates a minimal HTMLStencilElement-compatible HTMLElement for testing.
|
|
7
|
+
*/
|
|
8
|
+
function createComponentRef() {
|
|
9
|
+
return document.createElement('div');
|
|
10
|
+
}
|
|
11
|
+
describe('waitForComponentDidRender', () => {
|
|
12
|
+
it('resolves the promise when ChangeManager notifies the subject', async () => {
|
|
13
|
+
const componentRef = createComponentRef();
|
|
14
|
+
// Start waiting — do NOT await yet; we need to trigger the notify first.
|
|
15
|
+
const waitPromise = waitForComponentDidRender(componentRef);
|
|
16
|
+
// Grab the subject that the function just registered an observer on.
|
|
17
|
+
const subject = domNodeSubjectFactory.getSubject(componentRef, VegaInternalComponentDidRender);
|
|
18
|
+
// Simulate the component firing its "componentDidRender" internal event.
|
|
19
|
+
ChangeManager.notify(subject, null);
|
|
20
|
+
// The promise should now be resolved.
|
|
21
|
+
await expect(waitPromise).resolves.toBeNull();
|
|
22
|
+
});
|
|
23
|
+
it('un registers the observer from ChangeManager after the promise resolves', async () => {
|
|
24
|
+
var _a, _b;
|
|
25
|
+
const componentRef = createComponentRef();
|
|
26
|
+
const waitPromise = waitForComponentDidRender(componentRef);
|
|
27
|
+
const subject = domNodeSubjectFactory.getSubject(componentRef, VegaInternalComponentDidRender);
|
|
28
|
+
// Capture the observer count before notification.
|
|
29
|
+
const observersBefore = ((_a = ChangeManager['pubSubMap'].get(subject)) !== null && _a !== void 0 ? _a : []).length;
|
|
30
|
+
// Notify once — this should resolve the promise AND unregister the observer.
|
|
31
|
+
ChangeManager.notify(subject, null);
|
|
32
|
+
await waitPromise;
|
|
33
|
+
// After resolving, the observer must have been removed.
|
|
34
|
+
const observersAfter = ((_b = ChangeManager['pubSubMap'].get(subject)) !== null && _b !== void 0 ? _b : []).length;
|
|
35
|
+
expect(observersAfter).toBe(observersBefore - 1);
|
|
36
|
+
});
|
|
37
|
+
it('resolves with null', async () => {
|
|
38
|
+
const componentRef = createComponentRef();
|
|
39
|
+
const waitPromise = waitForComponentDidRender(componentRef);
|
|
40
|
+
const subject = domNodeSubjectFactory.getSubject(componentRef, VegaInternalComponentDidRender);
|
|
41
|
+
ChangeManager.notify(subject, null);
|
|
42
|
+
const result = await waitPromise;
|
|
43
|
+
expect(result).toBeNull();
|
|
44
|
+
});
|
|
45
|
+
it('registers an observer with ChangeManager before the event fires', async () => {
|
|
46
|
+
const componentRef = createComponentRef();
|
|
47
|
+
// Spy on register BEFORE calling the function under test.
|
|
48
|
+
const registerSpy = jest.spyOn(ChangeManager, 'register');
|
|
49
|
+
const waitPromise = waitForComponentDidRender(componentRef);
|
|
50
|
+
expect(registerSpy).toHaveBeenCalledTimes(1);
|
|
51
|
+
// Clean up — trigger resolve so the promise does not leak.
|
|
52
|
+
const subject = domNodeSubjectFactory.getSubject(componentRef, VegaInternalComponentDidRender);
|
|
53
|
+
ChangeManager.notify(subject, null);
|
|
54
|
+
await waitPromise;
|
|
55
|
+
registerSpy.mockRestore();
|
|
56
|
+
});
|
|
57
|
+
it('calls ChangeManager.unregister when the observer is notified', async () => {
|
|
58
|
+
const componentRef = createComponentRef();
|
|
59
|
+
const unregisterSpy = jest.spyOn(ChangeManager, 'unregister');
|
|
60
|
+
const waitPromise = waitForComponentDidRender(componentRef);
|
|
61
|
+
const subject = domNodeSubjectFactory.getSubject(componentRef, VegaInternalComponentDidRender);
|
|
62
|
+
ChangeManager.notify(subject, null);
|
|
63
|
+
await waitPromise;
|
|
64
|
+
expect(unregisterSpy).toHaveBeenCalledTimes(1);
|
|
65
|
+
unregisterSpy.mockRestore();
|
|
66
|
+
});
|
|
67
|
+
});
|
|
@@ -173,6 +173,7 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
173
173
|
show() {
|
|
174
174
|
this.elementAppender && this.elementAppender.show();
|
|
175
175
|
this[this.isDropdownShowName] = true;
|
|
176
|
+
this.setAriaOwns();
|
|
176
177
|
}
|
|
177
178
|
hide() {
|
|
178
179
|
this.elementAppender && this.elementAppender.hide();
|
|
@@ -182,6 +183,7 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
182
183
|
});
|
|
183
184
|
}
|
|
184
185
|
destroy() {
|
|
186
|
+
this.removeAriaOwns();
|
|
185
187
|
this.destroyElementAppender();
|
|
186
188
|
this[this.isDropdownShowName] = false;
|
|
187
189
|
}
|
|
@@ -264,6 +266,31 @@ export class ElementAppenderSlimmer extends VegaSlimmer {
|
|
|
264
266
|
return new NoneTriggerStrategy();
|
|
265
267
|
}
|
|
266
268
|
}
|
|
269
|
+
/**
|
|
270
|
+
* Sets `ariaOwnsElements` on the target element to reference the appendable element directly.
|
|
271
|
+
* Uses the Element Reflection API which works across shadow DOM boundaries by using
|
|
272
|
+
* direct element references instead of IDREF strings.
|
|
273
|
+
* This ensures screen readers (e.g. VoiceOver) can navigate to the portal-appended
|
|
274
|
+
* content immediately after the trigger, rather than at the end of the document.
|
|
275
|
+
*/
|
|
276
|
+
setAriaOwns() {
|
|
277
|
+
if (this.showConfig) {
|
|
278
|
+
const target = this.showConfig.target;
|
|
279
|
+
const appendableElement = this.showConfig.appendableElement;
|
|
280
|
+
if (target && appendableElement) {
|
|
281
|
+
target.ariaOwnsElements = [appendableElement];
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Removes `ariaOwnsElements` from the target element when the popup is hidden or destroyed.
|
|
287
|
+
*/
|
|
288
|
+
removeAriaOwns() {
|
|
289
|
+
var _a;
|
|
290
|
+
if ((_a = this.showConfig) === null || _a === void 0 ? void 0 : _a.target) {
|
|
291
|
+
this.showConfig.target.ariaOwnsElements = [];
|
|
292
|
+
}
|
|
293
|
+
}
|
|
267
294
|
}
|
|
268
295
|
ElementAppenderSlimmer.DELAY_HIDE_TIME = 100;
|
|
269
296
|
__decorate([
|
package/dist/collection/helpers/slimmers/element-appender/test/element-appender-slimmer.test.js
CHANGED
|
@@ -568,4 +568,54 @@ describe('ElementAppender slimmer test suite', () => {
|
|
|
568
568
|
expect(child2.appendableElement).toHaveClass('vega-force-hidden');
|
|
569
569
|
});
|
|
570
570
|
});
|
|
571
|
+
describe('AriaOwns management', () => {
|
|
572
|
+
test('should set ariaOwnsElements on target when show is called', () => {
|
|
573
|
+
const mockedComponent = new MockedComponent();
|
|
574
|
+
const target = new MockHTMLElement('body', 'div');
|
|
575
|
+
const appendableElement = new MockHTMLElement('body', 'div');
|
|
576
|
+
appendableElement.classList.add('vega-force-hidden');
|
|
577
|
+
mockedComponent.target = target;
|
|
578
|
+
mockedComponent.appendableElement = appendableElement;
|
|
579
|
+
mockedComponent.componentDidLoad();
|
|
580
|
+
mockedComponent.show();
|
|
581
|
+
expect(target.ariaOwnsElements).toEqual([
|
|
582
|
+
appendableElement,
|
|
583
|
+
]);
|
|
584
|
+
});
|
|
585
|
+
test('should remove ariaOwnsElements from target when destroy is called', () => {
|
|
586
|
+
const mockedComponent = new MockedComponent();
|
|
587
|
+
const target = new MockHTMLElement('body', 'div');
|
|
588
|
+
const appendableElement = new MockHTMLElement('body', 'div');
|
|
589
|
+
appendableElement.classList.add('vega-force-hidden');
|
|
590
|
+
mockedComponent.target = target;
|
|
591
|
+
mockedComponent.appendableElement = appendableElement;
|
|
592
|
+
mockedComponent.componentDidLoad();
|
|
593
|
+
mockedComponent.show();
|
|
594
|
+
expect(target.ariaOwnsElements).toEqual([
|
|
595
|
+
appendableElement,
|
|
596
|
+
]);
|
|
597
|
+
mockedComponent.destroy();
|
|
598
|
+
expect(target.ariaOwnsElements).toEqual([]);
|
|
599
|
+
});
|
|
600
|
+
test('should not throw when show is called without showConfig', () => {
|
|
601
|
+
const mockedComponent = new MockedComponent();
|
|
602
|
+
mockedComponent.target = null;
|
|
603
|
+
mockedComponent.appendableElement = null;
|
|
604
|
+
spyOn(LogUtility, 'error');
|
|
605
|
+
mockedComponent.componentDidLoad();
|
|
606
|
+
expect(() => mockedComponent.show()).not.toThrow();
|
|
607
|
+
});
|
|
608
|
+
test('should not throw when destroy is called without target', () => {
|
|
609
|
+
const mockedComponent = new MockedComponent();
|
|
610
|
+
mockedComponent.target = null;
|
|
611
|
+
mockedComponent.appendableElement = null;
|
|
612
|
+
spyOn(LogUtility, 'error');
|
|
613
|
+
mockedComponent.componentDidLoad();
|
|
614
|
+
expect(() => mockedComponent.destroy()).not.toThrow();
|
|
615
|
+
});
|
|
616
|
+
test('should not throw when destroy is called before componentDidLoad', () => {
|
|
617
|
+
const mockedComponent = new MockedComponent();
|
|
618
|
+
expect(() => mockedComponent.destroy()).not.toThrow();
|
|
619
|
+
});
|
|
620
|
+
});
|
|
571
621
|
});
|
|
@@ -102,12 +102,23 @@ export class AriaAttributesValueMapper extends MutationObserverSlimmer {
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
if (finalValue === null || finalValue === undefined || String(finalValue).trim() === '') {
|
|
105
|
-
finalValue = defaultValue
|
|
105
|
+
finalValue = defaultValue;
|
|
106
106
|
}
|
|
107
107
|
try {
|
|
108
|
+
if (String(finalValue).trim() === '') {
|
|
109
|
+
target.removeAttribute(ariaAttr);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
108
112
|
const existing = target.getAttribute(ariaAttr);
|
|
109
|
-
if (
|
|
110
|
-
|
|
113
|
+
if (finalValue === null || finalValue === undefined) {
|
|
114
|
+
if (existing !== null) {
|
|
115
|
+
target.removeAttribute(ariaAttr);
|
|
116
|
+
}
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const stringValue = String(finalValue);
|
|
120
|
+
if (existing !== stringValue) {
|
|
121
|
+
target.setAttribute(ariaAttr, stringValue);
|
|
111
122
|
}
|
|
112
123
|
}
|
|
113
124
|
catch (e) {
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { MapToComponentMethod } from 'vega-slimmer/core';
|
|
8
|
+
import { MutationObserverSlimmer } from './mutation-observer-slimmer';
|
|
9
|
+
/**
|
|
10
|
+
* Maps host data-tabindex to inner native input tabindex.
|
|
11
|
+
*/
|
|
12
|
+
export class DataTabIndexValueMapper extends MutationObserverSlimmer {
|
|
13
|
+
/**
|
|
14
|
+
* Constructor for DataTabIndexValueMapper
|
|
15
|
+
*
|
|
16
|
+
* @param {() => HTMLElement} targetGetter - Function to get the target HTMLElement
|
|
17
|
+
*/
|
|
18
|
+
constructor(targetGetter) {
|
|
19
|
+
super({
|
|
20
|
+
options: { attributes: true, attributeFilter: [DataTabIndexValueMapper.OBSERVED_ATTRIBUTE] },
|
|
21
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
22
|
+
callback: () => {
|
|
23
|
+
this.performMapping();
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
this.targetGetter = targetGetter;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Component lifecycle - [componentDidLoad]
|
|
30
|
+
*/
|
|
31
|
+
componentDidLoad() {
|
|
32
|
+
this.performMapping();
|
|
33
|
+
super.componentDidLoad && super.componentDidLoad();
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Component lifecycle - [componentDidRender]
|
|
37
|
+
*/
|
|
38
|
+
componentDidRender() {
|
|
39
|
+
this.performMapping();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Performs the mapping of host data-tabindex to target element's tabindex.
|
|
43
|
+
* If the host attribute value is null, undefined, or empty string, it removes the tabindex attribute from the target.
|
|
44
|
+
* Otherwise, it sets the target's tabindex to the host attribute value.
|
|
45
|
+
*/
|
|
46
|
+
performMapping() {
|
|
47
|
+
const target = this.targetGetter ? this.targetGetter() : null;
|
|
48
|
+
if (!target)
|
|
49
|
+
return;
|
|
50
|
+
const hostValue = this.host.getAttribute(DataTabIndexValueMapper.OBSERVED_ATTRIBUTE);
|
|
51
|
+
if (this.shouldRemoveTabIndex(hostValue)) {
|
|
52
|
+
target.removeAttribute('tabindex');
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const tabIndexValue = String(hostValue);
|
|
56
|
+
if (target.getAttribute('tabindex') !== tabIndexValue) {
|
|
57
|
+
target.setAttribute('tabindex', tabIndexValue);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Determines whether the tabindex attribute should be removed from the target element.
|
|
62
|
+
*
|
|
63
|
+
* @param {string | null} hostValue - The value of the host element's data-tabindex attribute
|
|
64
|
+
* @returns {boolean} True if the tabindex should be removed, false otherwise
|
|
65
|
+
*/
|
|
66
|
+
shouldRemoveTabIndex(hostValue) {
|
|
67
|
+
if (hostValue === null || hostValue === undefined) {
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
const normalizedValue = String(hostValue).trim().toLowerCase();
|
|
71
|
+
return normalizedValue === '' || normalizedValue === 'null' || normalizedValue === 'undefined';
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
DataTabIndexValueMapper.OBSERVED_ATTRIBUTE = 'data-tabindex';
|
|
75
|
+
__decorate([
|
|
76
|
+
MapToComponentMethod('componentDidLoad')
|
|
77
|
+
], DataTabIndexValueMapper.prototype, "componentDidLoad", null);
|
|
78
|
+
__decorate([
|
|
79
|
+
MapToComponentMethod('componentDidRender')
|
|
80
|
+
], DataTabIndexValueMapper.prototype, "componentDidRender", null);
|
package/dist/collection/helpers/slimmers/mutation-observer/test/aria-attributes-value-mapper.test.js
CHANGED
|
@@ -168,7 +168,7 @@ describe('AriaAttributesValueMapper', () => {
|
|
|
168
168
|
comp.componentDidLoad();
|
|
169
169
|
}).not.toThrow();
|
|
170
170
|
});
|
|
171
|
-
it('should
|
|
171
|
+
it('should omit aria attribute when no defaultValue provided', () => {
|
|
172
172
|
const comp = new MockedComponent();
|
|
173
173
|
const button = document.createElement('button');
|
|
174
174
|
// no dependencies present on host and no defaultValue in map
|
|
@@ -177,8 +177,47 @@ describe('AriaAttributesValueMapper', () => {
|
|
|
177
177
|
}));
|
|
178
178
|
comp.connectedCallback();
|
|
179
179
|
comp.componentDidLoad();
|
|
180
|
-
|
|
181
|
-
|
|
180
|
+
expect(button.hasAttribute('aria-label')).toBeFalsy();
|
|
181
|
+
});
|
|
182
|
+
it('should omit aria attribute when defaultValue is null', () => {
|
|
183
|
+
const comp = new MockedComponent();
|
|
184
|
+
const button = document.createElement('button');
|
|
185
|
+
comp.setMapper(new AriaAttributesValueMapper(() => button, {
|
|
186
|
+
'aria-label': {
|
|
187
|
+
dependency: ['data-aria-label', 'label'],
|
|
188
|
+
defaultValue: null,
|
|
189
|
+
},
|
|
190
|
+
}));
|
|
191
|
+
comp.connectedCallback();
|
|
192
|
+
comp.componentDidLoad();
|
|
193
|
+
expect(button.hasAttribute('aria-label')).toBeFalsy();
|
|
194
|
+
});
|
|
195
|
+
it('should omit aria attribute when defaultValue is undefined', () => {
|
|
196
|
+
const comp = new MockedComponent();
|
|
197
|
+
const button = document.createElement('button');
|
|
198
|
+
comp.setMapper(new AriaAttributesValueMapper(() => button, {
|
|
199
|
+
'aria-label': {
|
|
200
|
+
dependency: ['data-aria-label', 'label'],
|
|
201
|
+
defaultValue: undefined,
|
|
202
|
+
},
|
|
203
|
+
}));
|
|
204
|
+
comp.connectedCallback();
|
|
205
|
+
comp.componentDidLoad();
|
|
206
|
+
expect(button.hasAttribute('aria-label')).toBeFalsy();
|
|
207
|
+
});
|
|
208
|
+
it('should remove existing aria attribute when resolved value is undefined', () => {
|
|
209
|
+
const comp = new MockedComponent();
|
|
210
|
+
const button = document.createElement('button');
|
|
211
|
+
button.setAttribute('aria-label', 'legacy-value');
|
|
212
|
+
comp.setMapper(new AriaAttributesValueMapper(() => button, {
|
|
213
|
+
'aria-label': {
|
|
214
|
+
dependency: ['data-aria-label', 'label'],
|
|
215
|
+
defaultValue: undefined,
|
|
216
|
+
},
|
|
217
|
+
}));
|
|
218
|
+
comp.connectedCallback();
|
|
219
|
+
comp.componentDidLoad();
|
|
220
|
+
expect(button.hasAttribute('aria-label')).toBeFalsy();
|
|
182
221
|
});
|
|
183
222
|
it('should handle empty mutations array (pass undefined to performMapping)', () => {
|
|
184
223
|
const comp = new MockedComponent();
|
|
@@ -193,4 +232,17 @@ describe('AriaAttributesValueMapper', () => {
|
|
|
193
232
|
MockedMutationObserver.mock.instances[0].trigger([]);
|
|
194
233
|
expect(button.getAttribute('aria-label')).toBe('test');
|
|
195
234
|
});
|
|
235
|
+
it('should be null for aria attribute when defaultValue is empty string', () => {
|
|
236
|
+
const comp = new MockedComponent();
|
|
237
|
+
const button = document.createElement('button');
|
|
238
|
+
comp.setMapper(new AriaAttributesValueMapper(() => button, {
|
|
239
|
+
'aria-label': {
|
|
240
|
+
dependency: ['data-aria-label', 'label'],
|
|
241
|
+
defaultValue: '',
|
|
242
|
+
},
|
|
243
|
+
}));
|
|
244
|
+
comp.connectedCallback();
|
|
245
|
+
comp.componentDidLoad();
|
|
246
|
+
expect(button.getAttribute('aria-label')).toBe(null);
|
|
247
|
+
});
|
|
196
248
|
});
|
package/dist/collection/helpers/slimmers/mutation-observer/test/data-tab-index-value-mapper.test.js
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { MockHTMLElement } from '@stencil/core/mock-doc';
|
|
8
|
+
import { InjectVegaSlimmer } from 'vega-slimmer/core';
|
|
9
|
+
import { MockedMutationObserver } from '../../../../utils/spec-utils';
|
|
10
|
+
import { DataTabIndexValueMapper } from '../data-tab-index-value-mapper';
|
|
11
|
+
describe('DataTabIndexValueMapper', () => {
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
global.MutationObserver = MockedMutationObserver;
|
|
14
|
+
MockedMutationObserver.mockClear();
|
|
15
|
+
});
|
|
16
|
+
class MockedComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.host = new MockHTMLElement('body', 'mocked-component');
|
|
19
|
+
}
|
|
20
|
+
connectedCallback() {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
componentDidLoad() {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
setMapper(mapper) {
|
|
27
|
+
this.dataTabIndexValueMapper = mapper;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
__decorate([
|
|
31
|
+
InjectVegaSlimmer()
|
|
32
|
+
], MockedComponent.prototype, "dataTabIndexValueMapper", void 0);
|
|
33
|
+
it('should map host data-tabindex to native input tabindex on load', () => {
|
|
34
|
+
const comp = new MockedComponent();
|
|
35
|
+
const input = document.createElement('input');
|
|
36
|
+
comp.host.setAttribute('data-tabindex', '-1');
|
|
37
|
+
comp.setMapper(new DataTabIndexValueMapper(() => input));
|
|
38
|
+
comp.connectedCallback();
|
|
39
|
+
comp.componentDidLoad();
|
|
40
|
+
expect(input.getAttribute('tabindex')).toBe('-1');
|
|
41
|
+
expect(MockedMutationObserver.mock.instances[0].observe).toHaveBeenCalledWith(comp.host, {
|
|
42
|
+
attributes: true,
|
|
43
|
+
attributeFilter: ['data-tabindex'],
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
it('should update native input tabindex when host data-tabindex changes', () => {
|
|
47
|
+
const comp = new MockedComponent();
|
|
48
|
+
const input = document.createElement('input');
|
|
49
|
+
comp.host.setAttribute('data-tabindex', '0');
|
|
50
|
+
comp.setMapper(new DataTabIndexValueMapper(() => input));
|
|
51
|
+
comp.connectedCallback();
|
|
52
|
+
comp.componentDidLoad();
|
|
53
|
+
expect(input.getAttribute('tabindex')).toBe('0');
|
|
54
|
+
comp.host.setAttribute('data-tabindex', '-1');
|
|
55
|
+
MockedMutationObserver.mock.instances[0].trigger([{ attributeName: 'data-tabindex', oldValue: '0' }]);
|
|
56
|
+
expect(input.getAttribute('tabindex')).toBe('-1');
|
|
57
|
+
});
|
|
58
|
+
it('should remove native input tabindex when host data-tabindex is empty or missing', () => {
|
|
59
|
+
const comp = new MockedComponent();
|
|
60
|
+
const input = document.createElement('input');
|
|
61
|
+
comp.host.setAttribute('data-tabindex', '0');
|
|
62
|
+
comp.setMapper(new DataTabIndexValueMapper(() => input));
|
|
63
|
+
comp.connectedCallback();
|
|
64
|
+
comp.componentDidLoad();
|
|
65
|
+
expect(input.getAttribute('tabindex')).toBe('0');
|
|
66
|
+
comp.host.setAttribute('data-tabindex', '');
|
|
67
|
+
MockedMutationObserver.mock.instances[0].trigger([{ attributeName: 'data-tabindex', oldValue: '0' }]);
|
|
68
|
+
expect(input.hasAttribute('tabindex')).toBeFalsy();
|
|
69
|
+
comp.host.removeAttribute('data-tabindex');
|
|
70
|
+
MockedMutationObserver.mock.instances[0].trigger([{ attributeName: 'data-tabindex', oldValue: '' }]);
|
|
71
|
+
expect(input.hasAttribute('tabindex')).toBeFalsy();
|
|
72
|
+
});
|
|
73
|
+
it('should remove native input tabindex when host data-tabindex is "null" or "undefined" string', () => {
|
|
74
|
+
const comp = new MockedComponent();
|
|
75
|
+
const input = document.createElement('input');
|
|
76
|
+
comp.host.setAttribute('data-tabindex', '0');
|
|
77
|
+
comp.setMapper(new DataTabIndexValueMapper(() => input));
|
|
78
|
+
comp.connectedCallback();
|
|
79
|
+
comp.componentDidLoad();
|
|
80
|
+
expect(input.getAttribute('tabindex')).toBe('0');
|
|
81
|
+
comp.host.setAttribute('data-tabindex', 'null');
|
|
82
|
+
MockedMutationObserver.mock.instances[0].trigger([{ attributeName: 'data-tabindex', oldValue: '0' }]);
|
|
83
|
+
expect(input.hasAttribute('tabindex')).toBeFalsy();
|
|
84
|
+
comp.host.setAttribute('data-tabindex', 'undefined');
|
|
85
|
+
MockedMutationObserver.mock.instances[0].trigger([
|
|
86
|
+
{ attributeName: 'data-tabindex', oldValue: 'null' },
|
|
87
|
+
]);
|
|
88
|
+
expect(input.hasAttribute('tabindex')).toBeFalsy();
|
|
89
|
+
});
|
|
90
|
+
it('should return early when targetGetter returns null', () => {
|
|
91
|
+
const comp = new MockedComponent();
|
|
92
|
+
comp.host.setAttribute('data-tabindex', '0');
|
|
93
|
+
comp.setMapper(new DataTabIndexValueMapper(() => null));
|
|
94
|
+
expect(() => {
|
|
95
|
+
comp.connectedCallback();
|
|
96
|
+
comp.componentDidLoad();
|
|
97
|
+
MockedMutationObserver.mock.instances[0].trigger([
|
|
98
|
+
{ attributeName: 'data-tabindex', oldValue: null },
|
|
99
|
+
]);
|
|
100
|
+
}).not.toThrow();
|
|
101
|
+
});
|
|
102
|
+
it('should return early when targetGetter field is null', () => {
|
|
103
|
+
const comp = new MockedComponent();
|
|
104
|
+
const input = document.createElement('input');
|
|
105
|
+
comp.host.setAttribute('data-tabindex', '1');
|
|
106
|
+
const mapper = new DataTabIndexValueMapper(() => input);
|
|
107
|
+
// force the private readonly field to null so ternary fallback branch is executed
|
|
108
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
109
|
+
mapper.targetGetter = null;
|
|
110
|
+
comp.setMapper(mapper);
|
|
111
|
+
expect(() => {
|
|
112
|
+
comp.connectedCallback();
|
|
113
|
+
comp.componentDidLoad();
|
|
114
|
+
MockedMutationObserver.mock.instances[0].trigger([
|
|
115
|
+
{ attributeName: 'data-tabindex', oldValue: null },
|
|
116
|
+
]);
|
|
117
|
+
}).not.toThrow();
|
|
118
|
+
expect(input.hasAttribute('tabindex')).toBeFalsy();
|
|
119
|
+
});
|
|
120
|
+
});
|