@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,16 @@
|
|
|
1
|
+
import { getCountryCallingCode, getCountries, parseIncompletePhoneNumber, parsePhoneNumber, formatIncompletePhoneNumber, AsYouType, PhoneNumber, PARSE_ERROR_NOT_A_NUMBER, PARSE_ERROR_INVALID_COUNTRY, } from '../index';
|
|
2
|
+
describe('libphonenumber polyfill index', () => {
|
|
3
|
+
it('should export all required functions and classes', () => {
|
|
4
|
+
expect(getCountryCallingCode).toBeDefined();
|
|
5
|
+
expect(getCountries).toBeDefined();
|
|
6
|
+
expect(parseIncompletePhoneNumber).toBeDefined();
|
|
7
|
+
expect(parsePhoneNumber).toBeDefined();
|
|
8
|
+
expect(formatIncompletePhoneNumber).toBeDefined();
|
|
9
|
+
expect(AsYouType).toBeDefined();
|
|
10
|
+
expect(PhoneNumber).toBeDefined();
|
|
11
|
+
});
|
|
12
|
+
it('should export error constants', () => {
|
|
13
|
+
expect(PARSE_ERROR_NOT_A_NUMBER).toBeDefined();
|
|
14
|
+
expect(PARSE_ERROR_INVALID_COUNTRY).toBeDefined();
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { META, getCountryCallingCode, getCountries, getFormats, detectCallingCode, getCountryByNationalNumber, } from '../metadata';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// META singleton
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
describe('META singleton', () => {
|
|
6
|
+
it('should have a version number', () => {
|
|
7
|
+
expect(META.version).toBeDefined();
|
|
8
|
+
expect(typeof META.version).toBe('number');
|
|
9
|
+
});
|
|
10
|
+
it('should contain countryCallingCode mapping', () => {
|
|
11
|
+
expect(META.countryCallingCode).toBeDefined();
|
|
12
|
+
expect(META.countryCallingCode['1']).toContain('US');
|
|
13
|
+
});
|
|
14
|
+
it('should contain countries mapping', () => {
|
|
15
|
+
expect(META.countries).toBeDefined();
|
|
16
|
+
expect(META.countries['US']).toBeDefined();
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
// getCountryCallingCode
|
|
21
|
+
// ---------------------------------------------------------------------------
|
|
22
|
+
describe('getCountryCallingCode', () => {
|
|
23
|
+
it('should return "1" for US', () => {
|
|
24
|
+
expect(getCountryCallingCode('US')).toBe('1');
|
|
25
|
+
});
|
|
26
|
+
it('should return "44" for GB', () => {
|
|
27
|
+
expect(getCountryCallingCode('GB')).toBe('44');
|
|
28
|
+
});
|
|
29
|
+
it('should return "86" for CN', () => {
|
|
30
|
+
expect(getCountryCallingCode('CN')).toBe('86');
|
|
31
|
+
});
|
|
32
|
+
it('should return "49" for DE', () => {
|
|
33
|
+
expect(getCountryCallingCode('DE')).toBe('49');
|
|
34
|
+
});
|
|
35
|
+
it('should return "61" for AU', () => {
|
|
36
|
+
expect(getCountryCallingCode('AU')).toBe('61');
|
|
37
|
+
});
|
|
38
|
+
it('should throw for unknown country', () => {
|
|
39
|
+
expect(() => getCountryCallingCode('ZZ')).toThrow('Unknown country: ZZ');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
// ---------------------------------------------------------------------------
|
|
43
|
+
// getCountries
|
|
44
|
+
// ---------------------------------------------------------------------------
|
|
45
|
+
describe('getCountries', () => {
|
|
46
|
+
it('should return an array of country codes', () => {
|
|
47
|
+
const countries = getCountries();
|
|
48
|
+
expect(Array.isArray(countries)).toBe(true);
|
|
49
|
+
expect(countries.length).toBeGreaterThan(0);
|
|
50
|
+
});
|
|
51
|
+
it('should include common countries', () => {
|
|
52
|
+
const countries = getCountries();
|
|
53
|
+
expect(countries).toContain('US');
|
|
54
|
+
expect(countries).toContain('GB');
|
|
55
|
+
expect(countries).toContain('CN');
|
|
56
|
+
expect(countries).toContain('DE');
|
|
57
|
+
expect(countries).toContain('JP');
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
// ---------------------------------------------------------------------------
|
|
61
|
+
// getFormats
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
describe('getFormats', () => {
|
|
64
|
+
it('should return format rules for US', () => {
|
|
65
|
+
const formats = getFormats('US');
|
|
66
|
+
expect(formats).toBeDefined();
|
|
67
|
+
expect(Array.isArray(formats)).toBe(true);
|
|
68
|
+
const definedFormats = formats;
|
|
69
|
+
expect(definedFormats.length).toBeGreaterThan(0);
|
|
70
|
+
});
|
|
71
|
+
it('should return format rules for GB', () => {
|
|
72
|
+
const formats = getFormats('GB');
|
|
73
|
+
expect(formats).toBeDefined();
|
|
74
|
+
const definedFormats = formats;
|
|
75
|
+
expect(definedFormats.length).toBeGreaterThan(0);
|
|
76
|
+
});
|
|
77
|
+
it('should inherit formats from primary country for NANPA siblings', () => {
|
|
78
|
+
// CA and VI share calling code '1' with US and have no own formats
|
|
79
|
+
const caFormats = getFormats('CA');
|
|
80
|
+
const usFormats = getFormats('US');
|
|
81
|
+
expect(caFormats).toBeDefined();
|
|
82
|
+
// CA inherits from US, so they should be the same formats
|
|
83
|
+
expect(caFormats).toEqual(usFormats);
|
|
84
|
+
});
|
|
85
|
+
it('should return undefined for unknown country', () => {
|
|
86
|
+
const formats = getFormats('ZZ');
|
|
87
|
+
expect(formats).toBeUndefined();
|
|
88
|
+
});
|
|
89
|
+
it('should return format tuples with correct structure', () => {
|
|
90
|
+
const formats = getFormats('US');
|
|
91
|
+
expect(formats).toBeDefined();
|
|
92
|
+
const definedFormats = formats;
|
|
93
|
+
const firstFormat = definedFormats[0];
|
|
94
|
+
// [0] pattern (string), [1] replacement (string), [2] leadingDigitsPatterns (string[])
|
|
95
|
+
expect(typeof firstFormat[0]).toBe('string');
|
|
96
|
+
expect(typeof firstFormat[1]).toBe('string');
|
|
97
|
+
expect(Array.isArray(firstFormat[2])).toBe(true);
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
// detectCallingCode
|
|
102
|
+
// ---------------------------------------------------------------------------
|
|
103
|
+
describe('detectCallingCode', () => {
|
|
104
|
+
it('should detect US calling code from digits starting with 1', () => {
|
|
105
|
+
const result = detectCallingCode('13023334444');
|
|
106
|
+
expect(result.callingCode).toBe('1');
|
|
107
|
+
expect(result.countries).toContain('US');
|
|
108
|
+
});
|
|
109
|
+
it('should detect UK calling code from digits starting with 44', () => {
|
|
110
|
+
const result = detectCallingCode('447911123456');
|
|
111
|
+
expect(result.callingCode).toBe('44');
|
|
112
|
+
expect(result.countries).toContain('GB');
|
|
113
|
+
});
|
|
114
|
+
it('should detect CN calling code from digits starting with 86', () => {
|
|
115
|
+
const result = detectCallingCode('8613812345678');
|
|
116
|
+
expect(result.callingCode).toBe('86');
|
|
117
|
+
expect(result.countries).toContain('CN');
|
|
118
|
+
});
|
|
119
|
+
it('should detect 3-digit calling codes (e.g., 375 for BY)', () => {
|
|
120
|
+
const result = detectCallingCode('375291234567');
|
|
121
|
+
expect(result.callingCode).toBe('375');
|
|
122
|
+
expect(result.countries).toContain('BY');
|
|
123
|
+
});
|
|
124
|
+
it('should return undefined for unrecognized digits', () => {
|
|
125
|
+
const result = detectCallingCode('');
|
|
126
|
+
expect(result.callingCode).toBeUndefined();
|
|
127
|
+
expect(result.countries).toBeUndefined();
|
|
128
|
+
});
|
|
129
|
+
it('should return NANPA countries for calling code 1', () => {
|
|
130
|
+
const result = detectCallingCode('1');
|
|
131
|
+
expect(result.callingCode).toBe('1');
|
|
132
|
+
expect(result.countries).toBeDefined();
|
|
133
|
+
const definedCountries = result.countries;
|
|
134
|
+
expect(definedCountries.length).toBeGreaterThan(1);
|
|
135
|
+
expect(result.countries).toContain('US');
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
// ---------------------------------------------------------------------------
|
|
139
|
+
// getCountryByNationalNumber
|
|
140
|
+
// ---------------------------------------------------------------------------
|
|
141
|
+
describe('getCountryByNationalNumber', () => {
|
|
142
|
+
it('should distinguish VI from US by leading digits 340', () => {
|
|
143
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
144
|
+
const nanpaCountries = META.countryCallingCode['1'];
|
|
145
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
146
|
+
expect(nanpaCountries).toBeDefined();
|
|
147
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
148
|
+
const country = getCountryByNationalNumber(nanpaCountries, '3405100000');
|
|
149
|
+
expect(country).toBe('VI');
|
|
150
|
+
});
|
|
151
|
+
it('should distinguish PR from US by leading digits 787/939', () => {
|
|
152
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
153
|
+
const nanpaCountries = META.countryCallingCode['1'];
|
|
154
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
155
|
+
const country = getCountryByNationalNumber(nanpaCountries, '7871234567');
|
|
156
|
+
expect(country).toBe('PR');
|
|
157
|
+
});
|
|
158
|
+
it('should fall back to type-based matching when no leading digits', () => {
|
|
159
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
160
|
+
const nanpaCountries = META.countryCallingCode['1'];
|
|
161
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
162
|
+
const country = getCountryByNationalNumber(nanpaCountries, '2025551234');
|
|
163
|
+
// US numbers with area code 202 should match US
|
|
164
|
+
expect(country).toBeDefined();
|
|
165
|
+
});
|
|
166
|
+
it('should return undefined when no country matches', () => {
|
|
167
|
+
const country = getCountryByNationalNumber(['US'], '');
|
|
168
|
+
expect(country).toBeUndefined();
|
|
169
|
+
});
|
|
170
|
+
it('should skip non-existent countries in first pass', () => {
|
|
171
|
+
// 'FAKE' does not exist in META.countries — the loop should skip it via `if (!entry) continue`
|
|
172
|
+
const country = getCountryByNationalNumber(['FAKE', 'VI'], '3405100000');
|
|
173
|
+
expect(country).toBe('VI');
|
|
174
|
+
});
|
|
175
|
+
it('should skip non-existent countries in second pass', () => {
|
|
176
|
+
// 'FAKE' is checked in both passes — first pass skips (no entry), second pass also skips
|
|
177
|
+
// US has no leadingDigits so it falls to second pass for type matching
|
|
178
|
+
const country = getCountryByNationalNumber(['FAKE', 'US'], '2025551234');
|
|
179
|
+
expect(country).toBe('US');
|
|
180
|
+
});
|
|
181
|
+
it('should return country from first-pass leading digits match', () => {
|
|
182
|
+
// VI has leadingDigits '340'. When possibleCountries includes VI
|
|
183
|
+
// and nationalNumber starts with 340, the first pass matches and returns VI.
|
|
184
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
185
|
+
const country = getCountryByNationalNumber(['VI', 'US'], '3405100000');
|
|
186
|
+
expect(country).toBe('VI');
|
|
187
|
+
});
|
|
188
|
+
it('should not match leading digits when nationalNumber is empty', () => {
|
|
189
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
190
|
+
const country = getCountryByNationalNumber(['VI', 'US'], '');
|
|
191
|
+
// VI has leadingDigits '340' but nationalNumber '' fails the check
|
|
192
|
+
// Falls through to second pass, US has no leadingDigits → type matching
|
|
193
|
+
// Empty string won't match US type patterns either
|
|
194
|
+
expect(country).toBeUndefined();
|
|
195
|
+
});
|
|
196
|
+
});
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { parseIncompletePhoneNumber, parsePhoneNumber } from '../parse-phone-number';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// parseIncompletePhoneNumber
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
describe('parseIncompletePhoneNumber', () => {
|
|
6
|
+
it('should strip non-digit characters', () => {
|
|
7
|
+
expect(parseIncompletePhoneNumber('(302) 333-4444')).toBe('3023334444');
|
|
8
|
+
});
|
|
9
|
+
it('should keep a leading +', () => {
|
|
10
|
+
expect(parseIncompletePhoneNumber('+1 (302) 333-4444')).toBe('+13023334444');
|
|
11
|
+
});
|
|
12
|
+
it('should only keep the first + (at position 0)', () => {
|
|
13
|
+
expect(parseIncompletePhoneNumber('1+2+3')).toBe('123');
|
|
14
|
+
});
|
|
15
|
+
it('should return empty string for empty input', () => {
|
|
16
|
+
expect(parseIncompletePhoneNumber('')).toBe('');
|
|
17
|
+
});
|
|
18
|
+
it('should return "+" for input containing only "+"', () => {
|
|
19
|
+
expect(parseIncompletePhoneNumber('+')).toBe('+');
|
|
20
|
+
});
|
|
21
|
+
it('should strip letters and special characters', () => {
|
|
22
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
23
|
+
expect(parseIncompletePhoneNumber('abc 123 def 456')).toBe('123456');
|
|
24
|
+
});
|
|
25
|
+
it('should handle input with only non-digit characters', () => {
|
|
26
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
27
|
+
expect(parseIncompletePhoneNumber('abc def')).toBe('');
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// parsePhoneNumber — international format (+)
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
describe('parsePhoneNumber (international)', () => {
|
|
34
|
+
it('should parse a US number with country code', () => {
|
|
35
|
+
const phoneNumber = parsePhoneNumber('+1 (302) 333-4444');
|
|
36
|
+
expect(phoneNumber.countryCallingCode).toBe('1');
|
|
37
|
+
expect(phoneNumber.nationalNumber).toBe('3023334444');
|
|
38
|
+
expect(phoneNumber.country).toBe('US');
|
|
39
|
+
});
|
|
40
|
+
it('should parse a GB number', () => {
|
|
41
|
+
const phoneNumber = parsePhoneNumber('+44 2012345678');
|
|
42
|
+
expect(phoneNumber.countryCallingCode).toBe('44');
|
|
43
|
+
expect(phoneNumber.nationalNumber).toBe('2012345678');
|
|
44
|
+
// Calling code 44 is shared by GB/GG/JE/IM; country resolved by type matching
|
|
45
|
+
expect(phoneNumber.country).toBeDefined();
|
|
46
|
+
});
|
|
47
|
+
it('should parse a CN number', () => {
|
|
48
|
+
const phoneNumber = parsePhoneNumber('+86 138 1234 5678');
|
|
49
|
+
expect(phoneNumber.countryCallingCode).toBe('86');
|
|
50
|
+
expect(phoneNumber.nationalNumber).toBe('13812345678');
|
|
51
|
+
expect(phoneNumber.country).toBe('CN');
|
|
52
|
+
});
|
|
53
|
+
it('should parse a DE number', () => {
|
|
54
|
+
const phoneNumber = parsePhoneNumber('+49 30 12345678');
|
|
55
|
+
expect(phoneNumber.countryCallingCode).toBe('49');
|
|
56
|
+
expect(phoneNumber.country).toBe('DE');
|
|
57
|
+
});
|
|
58
|
+
it('should detect VI by leading digits 340', () => {
|
|
59
|
+
const phoneNumber = parsePhoneNumber('+1 340 510 0000');
|
|
60
|
+
expect(phoneNumber.country).toBe('VI');
|
|
61
|
+
expect(phoneNumber.nationalNumber).toBe('3405100000');
|
|
62
|
+
});
|
|
63
|
+
it('should detect PR by leading digits 787', () => {
|
|
64
|
+
const phoneNumber = parsePhoneNumber('+1 787 123 4567');
|
|
65
|
+
expect(phoneNumber.country).toBe('PR');
|
|
66
|
+
});
|
|
67
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
68
|
+
it('should strip NANPA trunk prefix when parsing +1 with 11 digits starting with 1', () => {
|
|
69
|
+
const phoneNumber = parsePhoneNumber('+113405100000');
|
|
70
|
+
expect(phoneNumber.country).toBe('VI');
|
|
71
|
+
expect(phoneNumber.nationalNumber).toBe('3405100000');
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
// ---------------------------------------------------------------------------
|
|
75
|
+
// parsePhoneNumber — national format (with defaultCountry)
|
|
76
|
+
// ---------------------------------------------------------------------------
|
|
77
|
+
describe('parsePhoneNumber (national / defaultCountry)', () => {
|
|
78
|
+
it('should parse a US national number with default country', () => {
|
|
79
|
+
const phoneNumber = parsePhoneNumber('(302) 333-4444', 'US');
|
|
80
|
+
expect(phoneNumber.countryCallingCode).toBe('1');
|
|
81
|
+
expect(phoneNumber.nationalNumber).toBe('3023334444');
|
|
82
|
+
expect(phoneNumber.country).toBe('US');
|
|
83
|
+
});
|
|
84
|
+
it('should parse a GB national number', () => {
|
|
85
|
+
const phoneNumber = parsePhoneNumber('07911 123456', {
|
|
86
|
+
defaultCountry: 'GB',
|
|
87
|
+
});
|
|
88
|
+
expect(phoneNumber.countryCallingCode).toBe('44');
|
|
89
|
+
expect(phoneNumber.country).toBe('GB');
|
|
90
|
+
});
|
|
91
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
92
|
+
it('should detect NANPA sibling country in national mode', () => {
|
|
93
|
+
// 340 area code → VI
|
|
94
|
+
const phoneNumber = parsePhoneNumber('3405100000', 'US');
|
|
95
|
+
expect(phoneNumber.country).toBe('VI');
|
|
96
|
+
});
|
|
97
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
98
|
+
it('should strip NANPA trunk prefix 1 from 11-digit national number', () => {
|
|
99
|
+
const phoneNumber = parsePhoneNumber('13405100000', 'US');
|
|
100
|
+
expect(phoneNumber.nationalNumber).toBe('3405100000');
|
|
101
|
+
expect(phoneNumber.country).toBe('VI');
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
// ---------------------------------------------------------------------------
|
|
105
|
+
// parsePhoneNumber — national format with unique calling code
|
|
106
|
+
// ---------------------------------------------------------------------------
|
|
107
|
+
describe('parsePhoneNumber (unique calling code)', () => {
|
|
108
|
+
it('should fall back to defaultCountry when calling code has no siblings', () => {
|
|
109
|
+
// DE has calling code 49, which is unique (not shared with other countries)
|
|
110
|
+
const phoneNumber = parsePhoneNumber('3012345678', 'DE');
|
|
111
|
+
expect(phoneNumber.countryCallingCode).toBe('49');
|
|
112
|
+
expect(phoneNumber.country).toBe('DE');
|
|
113
|
+
});
|
|
114
|
+
it('should use defaultCountry for CN national number', () => {
|
|
115
|
+
// CN has calling code 86, unique
|
|
116
|
+
const phoneNumber = parsePhoneNumber('13812345678', 'CN');
|
|
117
|
+
expect(phoneNumber.countryCallingCode).toBe('86');
|
|
118
|
+
expect(phoneNumber.country).toBe('CN');
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
// ---------------------------------------------------------------------------
|
|
122
|
+
// parsePhoneNumber — national prefix extraction
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
describe('parsePhoneNumber (return with resolved country and number)', () => {
|
|
125
|
+
it('should return a PhoneNumber for a country without nationalPrefixForParsing', () => {
|
|
126
|
+
// KR (South Korea) has no nationalPrefixForParsing (entry[7] is falsy),
|
|
127
|
+
// so the prefix-extraction block is skipped entirely and execution
|
|
128
|
+
// falls through to the final return statement.
|
|
129
|
+
const phoneNumber = parsePhoneNumber('+82 10 1234 5678');
|
|
130
|
+
expect(phoneNumber.countryCallingCode).toBe('82');
|
|
131
|
+
expect(phoneNumber.country).toBe('KR');
|
|
132
|
+
expect(phoneNumber.nationalNumber).toBe('1012345678');
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
describe('parsePhoneNumber (national prefix extraction)', () => {
|
|
136
|
+
it('should strip national prefix when stripped version matches but original does not', () => {
|
|
137
|
+
// GB has nationalPrefixForParsing = '0' (entry[7]).
|
|
138
|
+
// If we parse a GB national number starting with '0', the prefix '0' is matched.
|
|
139
|
+
// '07911123456': original '07911123456' fails validation (starts with 0),
|
|
140
|
+
// afterPrefix '7911123456' passes validation → nationalNumber = '7911123456'
|
|
141
|
+
const phoneNumber = parsePhoneNumber('07911123456', 'GB');
|
|
142
|
+
expect(phoneNumber.countryCallingCode).toBe('44');
|
|
143
|
+
expect(phoneNumber.country).toBe('GB');
|
|
144
|
+
expect(phoneNumber.nationalNumber).toBe('7911123456');
|
|
145
|
+
});
|
|
146
|
+
it('should NOT strip prefix if original already matches validation', () => {
|
|
147
|
+
// A CN number that already matches validation shouldn't have prefix stripped
|
|
148
|
+
const phoneNumber = parsePhoneNumber('+8613812345678');
|
|
149
|
+
expect(phoneNumber.country).toBe('CN');
|
|
150
|
+
expect(phoneNumber.nationalNumber).toBe('13812345678');
|
|
151
|
+
});
|
|
152
|
+
it('should not strip when afterPrefix is empty', () => {
|
|
153
|
+
// If the entire national number IS the prefix match, afterPrefix = ''
|
|
154
|
+
// strippedMatches should be false (afterPrefix.length > 0 fails)
|
|
155
|
+
// Use IT which has nationalPrefixForParsing. Parse a number where the
|
|
156
|
+
// entire string matches the prefix pattern but nothing is left after.
|
|
157
|
+
// Simplest: use a defaultCountry with prefix, where the number = prefix.
|
|
158
|
+
// GB prefix is '0'. Parsing '0' as national GB: prefix '0' matched,
|
|
159
|
+
// afterPrefix is '', strippedMatches is false, number stays '0'.
|
|
160
|
+
const phoneNumber = parsePhoneNumber('0', 'GB');
|
|
161
|
+
expect(phoneNumber.nationalNumber).toBe('0');
|
|
162
|
+
});
|
|
163
|
+
it('should not strip when prefix match length is 0', () => {
|
|
164
|
+
// Some nationalPrefixForParsing patterns can match zero-length strings.
|
|
165
|
+
// The code checks match[0].length > 0. If 0, the block is skipped entirely.
|
|
166
|
+
// JP has nationalPrefixForParsing = '0' which shouldn't match zero-length
|
|
167
|
+
// but a number not starting with '0' simply won't match → block skipped
|
|
168
|
+
const phoneNumber = parsePhoneNumber('3012345678', 'JP');
|
|
169
|
+
expect(phoneNumber.nationalNumber).toBe('3012345678');
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
// ---------------------------------------------------------------------------
|
|
173
|
+
// parsePhoneNumber — error handling
|
|
174
|
+
// ---------------------------------------------------------------------------
|
|
175
|
+
describe('parsePhoneNumber (errors)', () => {
|
|
176
|
+
it('should throw NOT_A_NUMBER for empty input', () => {
|
|
177
|
+
expect(() => parsePhoneNumber('')).toThrow('NOT_A_NUMBER');
|
|
178
|
+
});
|
|
179
|
+
it('should throw NOT_A_NUMBER for just "+"', () => {
|
|
180
|
+
expect(() => parsePhoneNumber('+')).toThrow('NOT_A_NUMBER');
|
|
181
|
+
});
|
|
182
|
+
it('should throw NOT_A_NUMBER for non-numeric text', () => {
|
|
183
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
184
|
+
expect(() => parsePhoneNumber('abc')).toThrow('NOT_A_NUMBER');
|
|
185
|
+
});
|
|
186
|
+
it('should throw INVALID_COUNTRY when no + and no defaultCountry', () => {
|
|
187
|
+
expect(() => parsePhoneNumber('3023334444')).toThrow('INVALID_COUNTRY');
|
|
188
|
+
});
|
|
189
|
+
it('should throw INVALID_COUNTRY for unrecognized calling code', () => {
|
|
190
|
+
expect(() => parsePhoneNumber('+99999999999')).toThrow('INVALID_COUNTRY');
|
|
191
|
+
});
|
|
192
|
+
it('should throw NOT_A_NUMBER with extract=false when input contains letters', () => {
|
|
193
|
+
// eslint-disable-next-line spellcheck/spell-checker
|
|
194
|
+
expect(() => parsePhoneNumber('abc123', { extract: false })).toThrow('NOT_A_NUMBER');
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
// ---------------------------------------------------------------------------
|
|
198
|
+
// parsePhoneNumber — options object
|
|
199
|
+
// ---------------------------------------------------------------------------
|
|
200
|
+
describe('parsePhoneNumber (options)', () => {
|
|
201
|
+
it('should accept string shorthand for defaultCountry', () => {
|
|
202
|
+
const phoneNumber = parsePhoneNumber('2025551234', 'US');
|
|
203
|
+
expect(phoneNumber.country).toBe('US');
|
|
204
|
+
});
|
|
205
|
+
it('should accept options object with defaultCountry', () => {
|
|
206
|
+
const phoneNumber = parsePhoneNumber('2025551234', {
|
|
207
|
+
defaultCountry: 'US',
|
|
208
|
+
});
|
|
209
|
+
expect(phoneNumber.country).toBe('US');
|
|
210
|
+
});
|
|
211
|
+
it('should accept options with extract=true (default)', () => {
|
|
212
|
+
const phoneNumber = parsePhoneNumber('Call me at 2025551234', {
|
|
213
|
+
defaultCountry: 'US',
|
|
214
|
+
extract: true,
|
|
215
|
+
});
|
|
216
|
+
expect(phoneNumber.nationalNumber).toBe('2025551234');
|
|
217
|
+
});
|
|
218
|
+
});
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { PhoneNumber } from '../phone-number';
|
|
2
|
+
// ---------------------------------------------------------------------------
|
|
3
|
+
// Constructor & properties
|
|
4
|
+
// ---------------------------------------------------------------------------
|
|
5
|
+
describe('PhoneNumber', () => {
|
|
6
|
+
describe('constructor and properties', () => {
|
|
7
|
+
it('should store countryCallingCode, nationalNumber, and country', () => {
|
|
8
|
+
const phoneNumber = new PhoneNumber('1', '3023334444', 'US');
|
|
9
|
+
expect(phoneNumber.countryCallingCode).toBe('1');
|
|
10
|
+
expect(phoneNumber.nationalNumber).toBe('3023334444');
|
|
11
|
+
expect(phoneNumber.country).toBe('US');
|
|
12
|
+
});
|
|
13
|
+
it('should allow undefined country', () => {
|
|
14
|
+
const phoneNumber = new PhoneNumber('1', '3023334444');
|
|
15
|
+
expect(phoneNumber.country).toBeUndefined();
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
// -----------------------------------------------------------------------
|
|
19
|
+
// isValid()
|
|
20
|
+
// -----------------------------------------------------------------------
|
|
21
|
+
describe('isValid', () => {
|
|
22
|
+
it('should return true for a valid US number', () => {
|
|
23
|
+
const phoneNumber = new PhoneNumber('1', '2025551234', 'US');
|
|
24
|
+
expect(phoneNumber.isValid()).toBe(true);
|
|
25
|
+
});
|
|
26
|
+
it('should return false for a too-short US number', () => {
|
|
27
|
+
const phoneNumber = new PhoneNumber('1', '20255', 'US');
|
|
28
|
+
expect(phoneNumber.isValid()).toBe(false);
|
|
29
|
+
});
|
|
30
|
+
it('should return false for a too-long US number', () => {
|
|
31
|
+
const phoneNumber = new PhoneNumber('1', '20255512345678', 'US');
|
|
32
|
+
expect(phoneNumber.isValid()).toBe(false);
|
|
33
|
+
});
|
|
34
|
+
it('should return false when country is undefined', () => {
|
|
35
|
+
const phoneNumber = new PhoneNumber('1', '2025551234');
|
|
36
|
+
expect(phoneNumber.isValid()).toBe(false);
|
|
37
|
+
});
|
|
38
|
+
it('should return true for a valid GB number', () => {
|
|
39
|
+
const phoneNumber = new PhoneNumber('44', '7911123456', 'GB');
|
|
40
|
+
expect(phoneNumber.isValid()).toBe(true);
|
|
41
|
+
});
|
|
42
|
+
it('should return true for a valid CN mobile number', () => {
|
|
43
|
+
const phoneNumber = new PhoneNumber('86', '13812345678', 'CN');
|
|
44
|
+
expect(phoneNumber.isValid()).toBe(true);
|
|
45
|
+
});
|
|
46
|
+
it('should return false when national number does not match validation pattern', () => {
|
|
47
|
+
// US numbers cannot start with 0 or 1 in area code
|
|
48
|
+
const phoneNumber = new PhoneNumber('1', '0005551234', 'US');
|
|
49
|
+
expect(phoneNumber.isValid()).toBe(false);
|
|
50
|
+
});
|
|
51
|
+
it('should return false when country is not in metadata', () => {
|
|
52
|
+
const phoneNumber = new PhoneNumber('1', '2025551234', 'ZZ');
|
|
53
|
+
expect(phoneNumber.isValid()).toBe(false);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// Constants
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
/** Placeholder character used in formatting templates. */
|
|
5
|
+
export const DIGIT_PLACEHOLDER = 'x';
|
|
6
|
+
/** Dummy digit used to generate formatting templates. */
|
|
7
|
+
export const DUMMY_DIGIT = '9';
|
|
8
|
+
/** Maximum possible national number length. */
|
|
9
|
+
export const LONGEST_NATIONAL_NUMBER_LENGTH = 15;
|
|
10
|
+
/** Minimum digits before progressive leading-digits matching kicks in. */
|
|
11
|
+
export const MIN_LEADING_DIGITS_LENGTH = 3;
|
|
12
|
+
/**
|
|
13
|
+
* Pattern that matches national prefix formatting rules that are just "$1"
|
|
14
|
+
* or "($1)" — i.e. rules that don't actually prepend a national prefix digit.
|
|
15
|
+
*/
|
|
16
|
+
export const FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\(?\$1\)?$/;
|
|
17
|
+
// ---------------------------------------------------------------------------
|
|
18
|
+
// Parse error codes
|
|
19
|
+
// ---------------------------------------------------------------------------
|
|
20
|
+
/** Error code thrown when the input does not contain a valid phone number. */
|
|
21
|
+
export const PARSE_ERROR_NOT_A_NUMBER = 'NOT_A_NUMBER';
|
|
22
|
+
/** Error code thrown when the country cannot be determined from the input. */
|
|
23
|
+
export const PARSE_ERROR_INVALID_COUNTRY = 'INVALID_COUNTRY';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { newE2EPage } from '@stencil/core/testing';
|
|
2
2
|
import * as axe from 'axe-core';
|
|
3
3
|
import { TestIcons } from '../test-assets/test-icons';
|
|
4
|
+
import { getViewportByDeviceType } from './test-utils';
|
|
4
5
|
/**
|
|
5
6
|
* NOTE: This method is only for **E2E** test cases.
|
|
6
7
|
* Clear the input field and type the input
|
|
@@ -241,10 +242,15 @@ export const getScreenshotDiffResults = async (page, desc, selector) => {
|
|
|
241
242
|
* @param {number} config.timeout --sets the content timeout
|
|
242
243
|
* @param {InjectFeatureFlagsConfig} config.featureFlags -inject feature flags.
|
|
243
244
|
* @param {string} config.timezone -sets the browser timezone (defaults to 'Asia/Shanghai' for consistent behavior across environments).
|
|
245
|
+
* @param {boolean} config.isMobile - whether to set the viewport to a mobile device size (defaults to false).
|
|
244
246
|
*/
|
|
245
247
|
export const initVegaE2EPage = async (content, config) => {
|
|
246
248
|
var _a, _b, _c;
|
|
247
249
|
const page = await newE2EPage();
|
|
250
|
+
if (config === null || config === void 0 ? void 0 : config.isMobile) {
|
|
251
|
+
await page.setUserAgent('Mobile');
|
|
252
|
+
await page.setViewport(getViewportByDeviceType('mobile'));
|
|
253
|
+
}
|
|
248
254
|
// Set timezone to ensure consistent behavior across different environments
|
|
249
255
|
const timezone = (_a = config === null || config === void 0 ? void 0 : config.timezone) !== null && _a !== void 0 ? _a : 'Asia/Shanghai';
|
|
250
256
|
const pageWithTimezone = page;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { F as FeatureFlag } from './feature-flag-controller-
|
|
2
|
-
import { V as VegaLoader, a as VegaNotify, b as VegaThemeManager, c as VegaEventManager, d as VegaZIndexManager, w as waitForVega, e as VegaSkeletonLoader, f as VegaTranslation, g as VegaRTETokenExtension, h as VegaRTELanguageExtension, i as VegaRTEFunctionExtension } from './token-extension-
|
|
1
|
+
import { F as FeatureFlag } from './feature-flag-controller-30f7b625.js';
|
|
2
|
+
import { V as VegaLoader, a as VegaNotify, b as VegaThemeManager, c as VegaEventManager, d as VegaZIndexManager, w as waitForVega, e as VegaSkeletonLoader, f as VegaTranslation, g as VegaRTETokenExtension, h as VegaRTELanguageExtension, i as VegaRTEFunctionExtension } from './token-extension-25df8dbb.js';
|
|
3
3
|
import { M as MapToComponentMethod, V as VegaSlimmer, s as setVegaLogLevel, G as GlobalSlimmersRegistry } from './global-slimmer-registry-17c4efd4.js';
|
|
4
4
|
import { V as VegaDialog } from './vega-dialog-controller-bbb2fc52.js';
|
|
5
5
|
import { T as TypographyUrls } from './typography-396de03f.js';
|
|
6
6
|
import { V as VegaIconManager } from './icon-manager-539d7cf7.js';
|
|
7
|
-
import { V as VegaInternalTranslation, s as staticTranslations } from './internal-translation-controller-
|
|
8
|
-
import { V as ValidCreditCardNumberRule } from './valid-credit-card-number-rule-
|
|
7
|
+
import { V as VegaInternalTranslation, s as staticTranslations } from './internal-translation-controller-113a6288.js';
|
|
8
|
+
import { V as ValidCreditCardNumberRule } from './valid-credit-card-number-rule-099dba7d.js';
|
|
9
9
|
import { v as vegaEnvManager } from './vega-env-manager-8f8dc473.js';
|
|
10
10
|
import { U as UPDATE_TRANSLATION } from './static-subject-title-52f93124.js';
|
|
11
11
|
import { C as ChangeManager } from './change-manager-6a7eb88c.js';
|
|
12
12
|
import { O as Observer } from './observer-3959f9dd.js';
|
|
13
13
|
import { f as forceUpdate } from './index-090d31ca.js';
|
|
14
|
-
import { V as VegaRTEContent } from './dto-renderer-manager-
|
|
14
|
+
import { V as VegaRTEContent } from './dto-renderer-manager-d413de1e.js';
|
|
15
15
|
import { v as vegaNonceManager, s as setVegaNonce } from './vega-nonce-manager-497e5eb5.js';
|
|
16
|
-
import { V as VegaRTEPresetToolbarItems } from './code-block-
|
|
16
|
+
import { V as VegaRTEPresetToolbarItems } from './code-block-2408a812.js';
|
|
17
17
|
|
|
18
18
|
var __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
|
19
19
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -394,7 +394,7 @@ function injectVegaRichTextEditorClassIntoGlobal() {
|
|
|
394
394
|
* Inject VegaPublicValidationRules to global as a public api
|
|
395
395
|
*/
|
|
396
396
|
function injectVegaPublicValidationRules() {
|
|
397
|
-
void import('./public-rules-
|
|
397
|
+
void import('./public-rules-41561e6e.js').then((module) => {
|
|
398
398
|
Object.entries(module).forEach(([name, value]) => {
|
|
399
399
|
globalThis[name] = value;
|
|
400
400
|
});
|