q2-tecton-elements 1.36.0 → 1.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/click-elsewhere_2.cjs.entry.js +1 -1
- package/dist/cjs/{index-f6545293.js → index-6f9f259c.js} +12 -9
- package/dist/cjs/index-6f9f259c.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/q2-action-sheet.cjs.entry.js +2 -2
- package/dist/cjs/q2-action-sheet.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +46 -3
- package/dist/cjs/q2-calendar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +2 -2
- package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +12 -8
- package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +25 -6
- package/dist/cjs/q2-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +2 -2
- package/dist/cjs/q2-data-table.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +34 -6
- package/dist/cjs/q2-editable-field.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-icon.cjs.entry.js +1 -1
- package/dist/cjs/q2-input.cjs.entry.js +17 -10
- package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +14 -13
- package/dist/cjs/q2-message.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-optgroup_2.cjs.entry.js +1 -1
- package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +3 -3
- package/dist/cjs/q2-pill.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +9 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +12 -3
- package/dist/cjs/q2-radio.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +54 -5
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
- package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +1 -1
- package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +13 -1
- package/dist/cjs/q2-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/collection/components/q2-action-sheet/styles.css +0 -8
- package/dist/collection/components/q2-calendar/index.js +120 -2
- package/dist/collection/components/q2-calendar/index.js.map +1 -1
- package/dist/collection/components/q2-chart-area/index.js +1 -1
- package/dist/collection/components/q2-chart-area/index.js.map +1 -1
- package/dist/collection/components/q2-chart-bar/index.js +1 -1
- package/dist/collection/components/q2-chart-bar/index.js.map +1 -1
- package/dist/collection/components/q2-chart-donut/index.js +11 -7
- package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
- package/dist/collection/components/q2-checkbox-group/index.js +45 -5
- package/dist/collection/components/q2-checkbox-group/index.js.map +1 -1
- package/dist/collection/components/q2-data-table/styles.css +37 -36
- package/dist/collection/components/q2-editable-field/index.js +96 -6
- package/dist/collection/components/q2-editable-field/index.js.map +1 -1
- package/dist/collection/components/q2-input/index.js +48 -10
- package/dist/collection/components/q2-input/index.js.map +1 -1
- package/dist/collection/components/q2-message/index.js +14 -13
- package/dist/collection/components/q2-message/index.js.map +1 -1
- package/dist/collection/components/q2-pill/index.js +2 -2
- package/dist/collection/components/q2-pill/index.js.map +1 -1
- package/dist/collection/components/q2-radio/index.js +29 -3
- package/dist/collection/components/q2-radio/index.js.map +1 -1
- package/dist/collection/components/q2-radio-group/index.js +27 -0
- package/dist/collection/components/q2-radio-group/index.js.map +1 -1
- package/dist/collection/components/q2-select/index.js +127 -5
- package/dist/collection/components/q2-select/index.js.map +1 -1
- package/dist/collection/components/q2-textarea/index.js +37 -0
- package/dist/collection/components/q2-textarea/index.js.map +1 -1
- package/dist/collection/utils/index.js +8 -6
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/components/index11.js +14 -13
- package/dist/components/index11.js.map +1 -1
- package/dist/components/index16.js +11 -8
- package/dist/components/index16.js.map +1 -1
- package/dist/components/index9.js +19 -10
- package/dist/components/index9.js.map +1 -1
- package/dist/components/q2-action-sheet.js +1 -1
- package/dist/components/q2-action-sheet.js.map +1 -1
- package/dist/components/q2-calendar.js +51 -4
- package/dist/components/q2-calendar.js.map +1 -1
- package/dist/components/q2-chart-area.js +1 -1
- package/dist/components/q2-chart-area.js.map +1 -1
- package/dist/components/q2-chart-bar.js +1 -1
- package/dist/components/q2-chart-bar.js.map +1 -1
- package/dist/components/q2-chart-donut.js +11 -7
- package/dist/components/q2-chart-donut.js.map +1 -1
- package/dist/components/q2-checkbox-group.js +26 -6
- package/dist/components/q2-checkbox-group.js.map +1 -1
- package/dist/components/q2-data-table.js +1 -1
- package/dist/components/q2-data-table.js.map +1 -1
- package/dist/components/q2-editable-field.js +39 -7
- package/dist/components/q2-editable-field.js.map +1 -1
- package/dist/components/q2-pill.js +2 -2
- package/dist/components/q2-pill.js.map +1 -1
- package/dist/components/q2-radio-group.js +10 -1
- package/dist/components/q2-radio-group.js.map +1 -1
- package/dist/components/q2-radio.js +13 -3
- package/dist/components/q2-radio.js.map +1 -1
- package/dist/components/q2-select.js +59 -6
- package/dist/components/q2-select.js.map +1 -1
- package/dist/components/q2-textarea.js +15 -2
- package/dist/components/q2-textarea.js.map +1 -1
- package/dist/docs.json +224 -9
- package/dist/esm/click-elsewhere_2.entry.js +1 -1
- package/dist/esm/{index-35ff2881.js → index-74a659a5.js} +12 -9
- package/dist/esm/index-74a659a5.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/q2-action-sheet.entry.js +2 -2
- package/dist/esm/q2-action-sheet.entry.js.map +1 -1
- package/dist/esm/q2-btn_2.entry.js +1 -1
- package/dist/esm/q2-calendar.entry.js +46 -3
- package/dist/esm/q2-calendar.entry.js.map +1 -1
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +1 -1
- package/dist/esm/q2-carousel.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js +2 -2
- package/dist/esm/q2-chart-area.entry.js.map +1 -1
- package/dist/esm/q2-chart-bar.entry.js +2 -2
- package/dist/esm/q2-chart-bar.entry.js.map +1 -1
- package/dist/esm/q2-chart-donut.entry.js +12 -8
- package/dist/esm/q2-chart-donut.entry.js.map +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +25 -6
- package/dist/esm/q2-checkbox-group.entry.js.map +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +2 -2
- package/dist/esm/q2-data-table.entry.js.map +1 -1
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +1 -1
- package/dist/esm/q2-editable-field.entry.js +34 -6
- package/dist/esm/q2-editable-field.entry.js.map +1 -1
- package/dist/esm/q2-icon.entry.js +1 -1
- package/dist/esm/q2-input.entry.js +17 -10
- package/dist/esm/q2-input.entry.js.map +1 -1
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +14 -13
- package/dist/esm/q2-message.entry.js.map +1 -1
- package/dist/esm/q2-month-picker.entry.js +1 -1
- package/dist/esm/q2-optgroup_2.entry.js +1 -1
- package/dist/esm/q2-option-list.entry.js +1 -1
- package/dist/esm/q2-pagination.entry.js +1 -1
- package/dist/esm/q2-pill.entry.js +3 -3
- package/dist/esm/q2-pill.entry.js.map +1 -1
- package/dist/esm/q2-radio-group.entry.js +9 -1
- package/dist/esm/q2-radio-group.entry.js.map +1 -1
- package/dist/esm/q2-radio.entry.js +12 -3
- package/dist/esm/q2-radio.entry.js.map +1 -1
- package/dist/esm/q2-section.entry.js +1 -1
- package/dist/esm/q2-select.entry.js +54 -5
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-tab-container.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js +1 -1
- package/dist/esm/q2-tecton-elements.js +1 -1
- package/dist/esm/q2-textarea.entry.js +13 -1
- package/dist/esm/q2-textarea.entry.js.map +1 -1
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/q2-tecton-elements/{p-2b91b34e.entry.js → p-077107c1.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-09d4b3d3.entry.js +2 -0
- package/dist/q2-tecton-elements/p-09d4b3d3.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-b73e7870.entry.js → p-0d4aec6e.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-1c993698.entry.js +2 -0
- package/dist/q2-tecton-elements/p-1c993698.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-0c1b74e9.entry.js → p-252889b7.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-252889b7.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-d4da72f0.entry.js → p-25bd1b18.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-25bd1b18.entry.js.map +1 -0
- package/dist/q2-tecton-elements/p-2a975246.entry.js +2 -0
- package/dist/q2-tecton-elements/p-2a975246.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-55deaceb.entry.js → p-30facf35.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-3798ad96.entry.js +2 -0
- package/dist/q2-tecton-elements/p-3798ad96.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-2325975a.entry.js → p-46287c02.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js → p-47c60d4a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-6cc730db.entry.js → p-4abbd0b1.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-dafdb018.entry.js → p-570c1d3d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-570c1d3d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-4fb81d03.entry.js → p-578e3f98.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-58cdb9c7.entry.js +2 -0
- package/dist/q2-tecton-elements/p-58cdb9c7.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-c3650c2e.entry.js → p-597f8656.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-ce27270b.entry.js → p-59d34a17.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-3c0d391b.entry.js → p-5bc4d94c.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-70a59bf1.entry.js → p-67f33354.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-67f33354.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-c9f32e51.entry.js → p-6cacc879.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-f637136f.entry.js → p-7366d36d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js → p-75fd6df5.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-e5a8f7ff.entry.js.map → p-75fd6df5.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-68371e6d.entry.js → p-8e7b762a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-ece07c0d.entry.js → p-9a28b93a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-d3827468.entry.js → p-9c9a2550.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-15ca5c98.entry.js → p-9d743327.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js → p-9ef2829e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8c6f8d06.entry.js.map → p-9ef2829e.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js → p-a52371cf.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-f11326c2.entry.js → p-a53e9f1e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-586c8654.entry.js → p-a60f82c0.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-a60f82c0.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-6e6b160d.entry.js → p-ac82ea35.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js → p-bfd69d42.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-82bda2ff.entry.js → p-db6921fb.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-cfbd2cb1.entry.js → p-e45856f7.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-e45856f7.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-654987bf.entry.js → p-e8858d0d.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-e8858d0d.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-99ab3236.js → p-ef856249.js} +2 -2
- package/dist/q2-tecton-elements/p-ef856249.js.map +1 -0
- package/dist/q2-tecton-elements/{p-073df9e2.entry.js → p-efbe6c17.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-efbe6c17.entry.js.map +1 -0
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
- package/dist/test/elements/q2-calendar-test.e2e.js +177 -0
- package/dist/test/elements/q2-calendar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-area-test.e2e.js +30 -1
- package/dist/test/elements/q2-chart-area-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-bar-test.e2e.js +30 -1
- package/dist/test/elements/q2-chart-bar-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-chart-donut-test.e2e.js +21 -18
- package/dist/test/elements/q2-chart-donut-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-checkbox-group-test.e2e.js +138 -18
- package/dist/test/elements/q2-checkbox-group-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-checkbox-test.e2e.js +143 -115
- package/dist/test/elements/q2-checkbox-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-editable-field-test.e2e.js +149 -28
- package/dist/test/elements/q2-editable-field-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-input-test.e2e.js +150 -9
- package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-message-test.e2e.js +38 -1
- package/dist/test/elements/q2-message-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-pill-test.e2e.js +37 -1
- package/dist/test/elements/q2-pill-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-radio-group-test.e2e.js +148 -186
- package/dist/test/elements/q2-radio-group-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-radio-test.e2e.js +100 -15
- package/dist/test/elements/q2-radio-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-select-test.e2e.js +203 -0
- package/dist/test/elements/q2-select-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-tag-test.e2e.js +5 -0
- package/dist/test/elements/q2-tag-test.e2e.js.map +1 -1
- package/dist/test/elements/q2-textarea-test.e2e.js +33 -1
- package/dist/test/elements/q2-textarea-test.e2e.js.map +1 -1
- package/dist/types/components/q2-calendar/index.d.ts +8 -1
- package/dist/types/components/q2-chart-donut/index.d.ts +1 -1
- package/dist/types/components/q2-checkbox-group/index.d.ts +3 -0
- package/dist/types/components/q2-editable-field/index.d.ts +10 -2
- package/dist/types/components/q2-input/index.d.ts +2 -0
- package/dist/types/components/q2-message/index.d.ts +1 -0
- package/dist/types/components/q2-radio/index.d.ts +1 -0
- package/dist/types/components/q2-radio-group/index.d.ts +1 -0
- package/dist/types/components/q2-select/index.d.ts +9 -1
- package/dist/types/components/q2-textarea/index.d.ts +2 -0
- package/dist/types/components.d.ts +19 -0
- package/package.json +3 -3
- package/dist/cjs/index-f6545293.js.map +0 -1
- package/dist/esm/index-35ff2881.js.map +0 -1
- package/dist/q2-tecton-elements/p-073df9e2.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-0c1b74e9.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-215d5ab4.entry.js +0 -2
- package/dist/q2-tecton-elements/p-215d5ab4.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-2987498c.entry.js +0 -2
- package/dist/q2-tecton-elements/p-2987498c.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-586c8654.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-654987bf.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-70a59bf1.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-7a6e33d4.entry.js +0 -2
- package/dist/q2-tecton-elements/p-7a6e33d4.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-99ab3236.js.map +0 -1
- package/dist/q2-tecton-elements/p-ae2fa966.entry.js +0 -2
- package/dist/q2-tecton-elements/p-ae2fa966.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-b8d1c16f.entry.js +0 -2
- package/dist/q2-tecton-elements/p-b8d1c16f.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-cfbd2cb1.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-d4da72f0.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-dafdb018.entry.js.map +0 -1
- /package/dist/q2-tecton-elements/{p-2b91b34e.entry.js.map → p-077107c1.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-b73e7870.entry.js.map → p-0d4aec6e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-55deaceb.entry.js.map → p-30facf35.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2325975a.entry.js.map → p-46287c02.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2bf5a3bc.entry.js.map → p-47c60d4a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6cc730db.entry.js.map → p-4abbd0b1.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-4fb81d03.entry.js.map → p-578e3f98.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c3650c2e.entry.js.map → p-597f8656.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ce27270b.entry.js.map → p-59d34a17.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-3c0d391b.entry.js.map → p-5bc4d94c.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c9f32e51.entry.js.map → p-6cacc879.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-f637136f.entry.js.map → p-7366d36d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-68371e6d.entry.js.map → p-8e7b762a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ece07c0d.entry.js.map → p-9a28b93a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-d3827468.entry.js.map → p-9c9a2550.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-15ca5c98.entry.js.map → p-9d743327.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-3fd4f83d.entry.js.map → p-a52371cf.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-f11326c2.entry.js.map → p-a53e9f1e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-6e6b160d.entry.js.map → p-ac82ea35.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-8e8a40ca.entry.js.map → p-bfd69d42.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-82bda2ff.entry.js.map → p-db6921fb.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"index9.js","mappings":"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","names":[],"sources":["./src/components/q2-input/formatting/number.ts","./src/components/q2-input/formatting/generic.ts","./src/components/q2-input/formatting/currency.ts","./src/components/q2-input/formatting/phone.ts","./src/components/q2-input/formatting/ssn.ts","./src/components/q2-input/formatting/tin.ts","./src/components/q2-input/formatting/alphanumeric.ts","./src/components/q2-input/formatting/alpha.ts","./src/components/q2-input/formatting/numeric.ts","./src/components/q2-input/formatting/postal.ts","./src/components/q2-input/formatting/date.ts","./src/components/q2-input/formatting/credit-card.ts","./src/components/q2-input/styles.scss?tag=q2-input&encapsulation=shadow","./src/components/q2-input/index.tsx"],"sourcesContent":["import { IFormatterValueObject, INumberInputFormatOptions } from '../types';\n\nexport default function formatNumber(\n val: string = '',\n options: INumberInputFormatOptions = {\n prefix: '',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: '',\n allowDecimal: false,\n allowNegative: true,\n },\n explicit: boolean = false\n): IFormatterValueObject {\n const isNegative = val[0] === '-';\n\n let value = val;\n\n const allowDecimal = !!options.allowDecimal && !!options.decimals;\n\n if (explicit) {\n const parsedValue = value.replace(/[^\\d.]/g, '');\n value = (parsedValue && Number(parsedValue).toFixed(allowDecimal ? options.decimals : 0)) || '';\n }\n\n value = value.replace(/[^\\d]/g, '');\n\n let { integerString, decimalString } = splitValue(value, allowDecimal, options.decimals);\n\n // define decimalString\n let decimalSeparator = options.decimalSeparator;\n if (!allowDecimal) {\n decimalSeparator = '';\n decimalString = '';\n }\n\n // define negative\n const negativeSymbol = options.allowNegative && isNegative ? '-' : '';\n\n value = `${negativeSymbol}${integerString}${decimalSeparator}${decimalString}`;\n\n // format integerString\n integerString = integerString.replace(/\\B(?=(\\d{3})+(?!\\d))/g, options.thousandsSeparator);\n\n const formattedValue: string =\n negativeSymbol || integerString ? `${negativeSymbol}${integerString}${decimalSeparator}${decimalString}` : '';\n\n const fullyFormattedValue: string =\n negativeSymbol || integerString\n ? `${negativeSymbol}${options.prefix}${integerString}${decimalSeparator}${decimalString}${options.suffix}`\n : '';\n\n let formattingCharacterCount = formattedValue.length - value.length;\n\n if (decimalSeparator) {\n formattingCharacterCount = formattingCharacterCount + options.decimalSeparator.length;\n }\n\n const prefix = options.prefix || options.suffix;\n const maxlength = Number.MAX_SAFE_INTEGER.toString().length + formattingCharacterCount + decimalString.length;\n\n const unformattedValue = `${integerString.replace(/[^0-9]/g, '')}${decimalString}`.replace(/^0+/, '');\n\n return {\n value,\n formattedValue,\n fullyFormattedValue,\n prefix,\n suffix: '',\n formattingCharacterCount,\n maxlength,\n unformattedValue,\n };\n}\n\nfunction splitValue(\n value: string,\n allowDecimal: boolean = false,\n decimals: number\n): { integerString: string; decimalString: string } {\n if (!allowDecimal) {\n return {\n integerString: value,\n decimalString: '',\n };\n }\n\n const splitIndex = value.length - decimals;\n\n let integerString = value.substring(0, splitIndex).padStart(1, '0');\n if (integerString.length > 1 && integerString[0] === '0') {\n integerString = integerString.substring(1);\n }\n\n const decimalString = value.substring(splitIndex).padStart(decimals, '0');\n\n return {\n integerString,\n decimalString,\n };\n}\n","import { IFormatterValueObject } from '../types';\n\nexport default function formatValue(\n value: string = '',\n mask: string = '',\n options?: {\n prefix?: string;\n suffix?: string;\n }\n): IFormatterValueObject {\n const prefix = (options && options.prefix) || '';\n const suffix = (options && options.suffix) || '';\n\n if (!value || !mask) {\n const fullyFormattedValue = `${prefix}${value}${suffix}`;\n return {\n value,\n formattedValue: value,\n fullyFormattedValue,\n prefix: prefix.trim() || suffix.trim(),\n formattingCharacterCount: 0,\n unformattedValue: value,\n };\n }\n\n const { unformattedValue, formattedValue, formattingCharacterCount } = generateMask(value, mask);\n\n const fullyFormattedValue = `${prefix}${formattedValue}${suffix}`;\n const maxlength = mask.length;\n const minFormattedLength = getMinimumFormattedLength(mask, prefix, suffix);\n\n return {\n value: unformattedValue,\n formattedValue,\n fullyFormattedValue,\n prefix: prefix.trim() || suffix.trim(),\n formattingCharacterCount,\n maxlength,\n minFormattedLength,\n unformattedValue,\n };\n}\n\nconst optionalValidatingChars = ['?'];\nfunction isOptionalValidatingChar(character: string): boolean {\n return optionalValidatingChars.includes(character);\n}\n\nconst knownValidatingChars = ['#', '@', '*', ...optionalValidatingChars];\nfunction isKnownValidatingChar(character: string): boolean {\n return knownValidatingChars.includes(character);\n}\n\nfunction getStaticFormattingChars(mask: string): Set<string> {\n const knownChars = knownValidatingChars.join('|');\n const formattingChars = mask.replace(new RegExp(`[${knownChars}]`, 'g'), '').split('');\n return new Set(formattingChars);\n}\n\nfunction isStaticFormattingChar(character: string, formattingChars: Set<string>): boolean {\n return formattingChars.has(character);\n}\n\nfunction getValidatedChar(char: string, matcher: string) {\n switch (matcher) {\n case '#':\n char = char.replace(/[^\\d]/g, '');\n break;\n case '@':\n char = char.toUpperCase().replace(/[^A-Z]+/g, ''); // allows only upper case\n break;\n case '*':\n char = char.toUpperCase().replace(/[^\\dA-Z]+/g, '');\n break;\n case '?':\n char = char.replace(/[^\\d]/g, '');\n break;\n default:\n return char;\n }\n return char;\n}\n\nfunction generateMask(value: string, mask: string) {\n const maskArray = mask.split('');\n const formattingChars = getStaticFormattingChars(mask);\n let currentValueIndex: number = 0;\n let formattingCharacterCount: number = 0;\n let unformattedValue: string = '';\n\n const formattedValue = maskArray.reduce((acc: string, character: string) => {\n if (currentValueIndex >= value.length) {\n return acc;\n }\n\n if (isOptionalValidatingChar(character) && isStaticFormattingChar(value[currentValueIndex], formattingChars)) {\n return acc;\n }\n\n if (isKnownValidatingChar(character)) {\n // Step value index if formatting character pushed out of place by user input\n currentValueIndex = getNextNonFormattingCharIndex(value, currentValueIndex, formattingChars);\n\n if (currentValueIndex >= value.length) {\n return acc;\n }\n\n const validChar = getValidatedChar(value[currentValueIndex], character);\n acc += validChar;\n unformattedValue += validChar;\n currentValueIndex++;\n } else {\n // Static formatting characters added directly to formatted string\n acc += character;\n formattingCharacterCount++;\n\n if (character === value[currentValueIndex]) {\n // Continue to walk value if next value at this index matches formatting character\n currentValueIndex++;\n }\n }\n\n return acc;\n }, '');\n\n return {\n unformattedValue,\n formattedValue,\n formattingCharacterCount,\n };\n}\n\nfunction getNextNonFormattingCharIndex(value: string, currentValueIndex: number, formattingChars: Set<string>): number {\n if (isStaticFormattingChar(value[currentValueIndex], formattingChars)) {\n currentValueIndex++;\n return getNextNonFormattingCharIndex(value, currentValueIndex, formattingChars);\n }\n\n return currentValueIndex;\n}\n\nfunction getMinimumFormattedLength(mask: string, prefix: string, suffix: string): number {\n return (\n mask.replace(new RegExp(`[${optionalValidatingChars.join('|')}]`, 'g'), '').length +\n prefix.length +\n suffix.length\n );\n}\n","import formatNumber from './number';\nimport formatValue from './generic';\nimport { IFormatterValueObject, INumberInputFormatOptions } from '../types';\n\n// decimal data source: http://www.iso.org/iso/home/standards/currency_codes.htm 09/Nov/2016\nexport const currencyFormats = {\n AED: {\n prefix: '',\n suffix: 'د.إ',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.99د.إ'\n AFN: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n ALL: {\n prefix: 'L',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'L9,999.99'\n AMD: {\n prefix: 'դր.',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'դր.9,999.99'\n ANG: {\n prefix: 'ƒ',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ƒ9,999.99'\n AOA: {\n prefix: 'Kz',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Kz9,999.99'\n ARS: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n AUD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n AWG: {\n prefix: 'ƒ',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ƒ9,999.99'\n AZN: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n BAM: {\n prefix: 'КМ',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'КМ9,999.99'\n BBD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n BDT: {\n prefix: '৳',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '৳9,999.99'\n BGN: {\n prefix: '৳',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '৳9,999.99'\n BHD: {\n prefix: '',\n suffix: 'ب.د',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.999ب.د'\n BIF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n BMD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n BND: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n BOB: {\n prefix: 'Bs.',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Bs.9,999.99'\n BRL: {\n prefix: 'R$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'R$9,999.99'\n BSD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n BTN: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n BWP: {\n prefix: 'P',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'P9,999.99'\n BYN: {\n prefix: 'Br',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Br9,999'\n BZD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n CAD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n CDF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999.99'\n CHF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999.99'\n CLF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 4,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9.999.9999'\n CLP: {\n prefix: '$',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999'\n CNY: {\n prefix: '¥',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¥9,999.99'\n COP: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n CRC: {\n prefix: '₡',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₡9,999.99'\n CUC: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n CUP: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n CVE: {\n prefix: '$',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999'\n CZK: {\n prefix: 'Kč',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Kč9,999.99'\n DJF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n DKK: {\n prefix: 'kr',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'kr9,999.99'\n DOP: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n DZD: {\n prefix: '',\n suffix: 'د.ج',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.99د.ج'\n EEK: {\n prefix: 'KR',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'KR9,999.99'\n EGP: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n ERN: {\n prefix: 'Nfk',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Nfk9,999.99'\n ETB: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n EUR: {\n prefix: '€',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '€9,999.99'\n FJD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n FKP: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n GBP: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n GEL: {\n prefix: 'ლ',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ლ9,999.99'\n GHS: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n GIP: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n GMD: {\n prefix: 'D',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'D9,999.99'\n GNF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n GTQ: {\n prefix: 'Q',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Q9,999.99'\n GYD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n HKD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.9'\n HNL: {\n prefix: 'L',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'L9,999.99'\n HRK: {\n prefix: 'kn',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'kn9,999.99'\n HTG: {\n prefix: 'G',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'G9,999.99'\n HUF: {\n prefix: 'Ft',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Ft9,999.99'\n IDR: {\n prefix: 'Rs',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Rs9,999.99'\n ILS: {\n prefix: '₪',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₪9,999.99'\n INR: {\n prefix: '₨',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₨9,999.99'\n IQD: {\n prefix: '',\n suffix: 'ع.د',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.999ع.د'\n IRR: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n ISK: {\n prefix: 'kr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'kr9,999'\n JMD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n JOD: {\n prefix: '',\n suffix: 'د.ا',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.99د.ا'\n JPY: {\n prefix: '¥',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¥9,999'\n KES: {\n prefix: 'Sh',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Sh9,999.99'\n KGS: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n KHR: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n KMF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n KPW: {\n prefix: '₩',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₩9,999.99'\n KRW: {\n prefix: '₩',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₩9,999.99'\n KWD: {\n prefix: 'د.ك',\n suffix: '',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.999د.ك'\n KYD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n KZT: {\n prefix: '〒',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '〒9,999.99'\n LAK: {\n prefix: '₭',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₭9,999.99'\n LBP: {\n prefix: '',\n suffix: 'ل.ل',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ل.ل9,999.99'\n LKR: {\n prefix: 'Rs',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Rs9,999.99'\n LRD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n LSL: {\n prefix: 'L',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'L9,999.99'\n LTL: {\n prefix: 'Lt',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Lt9,999.99'\n LVL: {\n prefix: 'Ls',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Ls9,999.99'\n LYD: {\n prefix: '',\n suffix: 'ل.د',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.999ل.د'\n MAD: {\n prefix: '',\n suffix: 'د.م.',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.99د.م.'\n MDL: {\n prefix: 'L',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'L9,999.99'\n MGA: {\n prefix: '¤',\n suffix: '',\n decimals: 1,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.9'\n MKD: {\n prefix: 'ден',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ден9,999.99'\n MMK: {\n prefix: 'K',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'K9,999.99'\n MNT: {\n prefix: '₮',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₮9,999.99'\n MOP: {\n prefix: 'P',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'P9,999.99'\n MRU: {\n prefix: 'UM',\n suffix: '',\n decimals: 1,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'UM9,999.9'\n MUR: {\n prefix: '₨',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₨9,999.99'\n MVR: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n MWK: {\n prefix: 'MK',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'MK9,999.99'\n MXN: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n MYR: {\n prefix: 'RM',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'RM9,999.99'\n MZN: {\n prefix: 'MTn',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'MTn9,999.99'\n NAD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n NGN: {\n prefix: '₦',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₦9,999.99'\n NIO: {\n prefix: 'C$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'C$9,999.99'\n NOK: {\n prefix: 'kr',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'kr9,999.99'\n NPR: {\n prefix: '₨',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₨9,999.99'\n NZD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n OMR: {\n prefix: '',\n suffix: 'ر.ع.',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.999ر.ع.'\n PAB: {\n prefix: 'B/.',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'B/.9,999.99'\n PEN: {\n prefix: 'S/.',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'S/.9,999.99'\n PGK: {\n prefix: 'K',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'K9,999.99'\n PHP: {\n prefix: 'p',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'p9,999.99'\n PKR: {\n prefix: '₨',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₨9,999.99'\n PLN: {\n prefix: 'zł',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'zł9,999.99'\n PYG: {\n prefix: '¤',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999'\n QAR: {\n prefix: '',\n suffix: 'ر.ق',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.99ر.ق'\n RON: {\n prefix: 'L',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'L9,999.99'\n RSD: {\n prefix: 'дин.',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'дин.9,999.99'\n RUB: {\n prefix: 'руб.',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'руб.9,999.99'\n RWF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n SAR: {\n prefix: '',\n suffix: 'ر.س',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.99ر.س'\n SBD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n SCR: {\n prefix: '₨',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₨9,999.99'\n SDG: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n SEK: {\n prefix: 'kr',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'kr9,999.99'\n SGD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n SHP: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n SKK: {\n prefix: 'Sk',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Sk9,999.99'\n SLL: {\n prefix: 'Le',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Le9,999.99'\n SOS: {\n prefix: 'Sh',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Sh9,999.99'\n SRD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n STN: {\n prefix: 'Db',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Db9,999.99'\n SVC: {\n prefix: '₡',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₡9,999.99'\n SYP: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n SZL: {\n prefix: 'L',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'L9,999.99'\n THB: {\n prefix: '฿',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '฿9,999.99'\n TJS: {\n prefix: 'ЅМ',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ЅМ9,999.99'\n TMM: {\n prefix: 'm',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'm9,999.99'\n TND: {\n prefix: '',\n suffix: 'د.ت',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.999د.ت'\n TOP: {\n prefix: 'T$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'T$9,999.99'\n TRY: {\n prefix: 'YTL',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'YTL9,999.99'\n TTD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n TWD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n TZS: {\n prefix: 'Sh',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Sh9,999.99'\n UAH: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n UGX: {\n prefix: 'Sh',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Sh9,999'\n USD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n UYU: {\n prefix: '$',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999'\n UZS: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n VEF: {\n prefix: 'Bs F',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Bs F9,999.99'\n VND: {\n prefix: '₫',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₫9,999'\n VUV: {\n prefix: 'Vt',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Vt9,999'\n WST: {\n prefix: 'T',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'T9,999.99'\n XAF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n XCD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n XOF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n XPF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n YER: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n ZAR: {\n prefix: 'R',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'R9,999.99'\n ZMW: {\n prefix: 'ZK',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ZK9,999.99'\n ZWD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n};\n\nexport default function formatCurrency(\n value: string,\n currencyCode: string = 'USD',\n explicit: boolean = false\n): IFormatterValueObject {\n let processedCurrencyCode = currencyCode || '';\n let allowDecimal = true;\n\n if (processedCurrencyCode.includes('-integer')) {\n processedCurrencyCode = processedCurrencyCode.split('-integer')[0];\n allowDecimal = false;\n }\n\n const currencyFormat = currencyFormats[processedCurrencyCode];\n\n if (!currencyFormat) {\n return formatValue(value);\n }\n\n const options: INumberInputFormatOptions = {\n ...currencyFormat,\n allowDecimal: allowDecimal && currencyFormat.decimals > 0,\n allowNegative: false,\n };\n\n return formatNumber(value, options, explicit);\n}\n","import { IFormatterValueObject } from '../types';\nimport formatValue from './generic';\n\nexport const phoneNumberFormats = {\n AF: {\n mask: '(##) #######',\n prefix: '+93 ',\n },\n AL: {\n mask: '#######',\n prefix: '+355 ',\n },\n DZ: {\n mask: '(##) ###-###',\n prefix: '+213 ',\n },\n // AS\n AD: {\n mask: '(#) #####',\n prefix: '+376 ',\n },\n AO: {\n mask: '#########',\n prefix: '+244 ',\n },\n AI: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n AG: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n AR: {\n mask: '##########',\n prefix: '+54 ',\n },\n AM: {\n mask: '########',\n prefix: '+375 ',\n },\n AQ: {\n mask: '##-####',\n prefix: '+672 ',\n },\n AW: {\n mask: '###-####',\n prefix: '+297 ',\n },\n AU: {\n mask: '(##) ####-####',\n prefix: '+61 ',\n },\n /* AT: {\n mask:'####?????????',\n prefix: ''\n }, */\n AT: {\n mask: '#############',\n prefix: '+43 ',\n },\n /* AZ: {\n mask:'########?',\n prefix: ''\n }, */\n AZ: {\n mask: '#########',\n prefix: '+994 ',\n },\n BS: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n BH: {\n mask: '####-####',\n prefix: '+973 ',\n },\n /* BD: {\n mask:'#######??',\n prefix: ''\n }, */\n BD: {\n mask: '#########',\n prefix: '+880 ',\n },\n BB: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n BY: {\n mask: '#########',\n prefix: '+375 ',\n },\n BE: {\n mask: '########??',\n prefix: '+32 ',\n },\n BZ: {\n mask: '#######',\n prefix: '+501 ',\n },\n BJ: {\n mask: '(##) ###-###',\n prefix: '+229 ',\n },\n BM: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n BT: {\n mask: '(#) ###-###',\n prefix: '+975 ',\n },\n BO: {\n mask: '(#) ###-####',\n prefix: '+591 ',\n },\n BA: {\n mask: '(##) ##-##-##',\n prefix: '+387 ',\n },\n /* BW: {\n mask:'#######?',\n prefix: ''\n }, */\n BW: {\n mask: '########',\n prefix: '+267 ',\n },\n BR: {\n mask: '(##) ####-####',\n prefix: '+55 ',\n },\n BN: {\n mask: '###-####',\n prefix: '+673 ',\n },\n BG: {\n mask: '#######?',\n prefix: '+359 ',\n },\n BF: {\n mask: '##-##-##-##',\n prefix: '+226 ',\n },\n BI: {\n mask: '####-####',\n prefix: '+257 ',\n },\n KH: {\n mask: '(##) ######',\n prefix: '+855 ',\n },\n CM: {\n mask: '####-####',\n prefix: '+237 ',\n },\n CA: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n CV: {\n mask: '###-####',\n prefix: '+238 ',\n },\n KY: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n CF: {\n mask: '###-###',\n prefix: '+236 ',\n },\n TD: {\n mask: '###-##-##',\n prefix: '+235 ',\n },\n /* CL: {\n mask:'########?',\n prefix: ''\n }, */\n CL: {\n mask: '#########',\n prefix: '+56 ',\n },\n /* CN: {\n mask:'########???',\n prefix: ''\n }, */\n CN: {\n mask: '###########',\n prefix: '+86 ',\n },\n /* CO: {\n mask:'########??',\n prefix: ''\n }, */\n CO: {\n mask: '##########',\n prefix: '57 ',\n },\n KM: {\n mask: '###-####',\n prefix: '+269 ',\n },\n CD: {\n mask: '###-####',\n prefix: '+243 ',\n },\n CG: {\n mask: '###-####',\n prefix: '+242 ',\n },\n // CK\n CR: {\n mask: '####-####',\n prefix: '+506 ',\n },\n CI: {\n mask: '####-####',\n prefix: '+225 ',\n },\n HR: {\n mask: '########?',\n prefix: '+385 ',\n },\n /* CU: {\n mask:'#####?ID:?????',\n prefix: ''\n }, */\n CU: {\n mask: '###########',\n prefix: '+53 ',\n },\n CY: {\n mask: '####-####',\n prefix: '+357 ',\n },\n CZ: {\n mask: '#########',\n prefix: '+420 ',\n },\n DK: {\n mask: '####-####',\n prefix: '+45 ',\n },\n DJ: {\n mask: '##-##-##-##',\n prefix: '+253 ',\n },\n DM: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n DO: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n TL: {\n mask: '###-####',\n prefix: '+670 ',\n },\n EC: {\n mask: '(##) ###-####',\n prefix: '+593 ',\n },\n /* EG: {\n mask:'########??',\n prefix: ''\n }, */\n EG: {\n mask: '##########',\n prefix: '+20 ',\n },\n SV: {\n mask: '####-####',\n prefix: '+503 ',\n },\n GQ: {\n mask: '##-####',\n prefix: '+240 ',\n },\n // ER:\n EE: {\n mask: '#######?',\n prefix: '+372 ',\n },\n ET: {\n mask: '(##) ###-####',\n prefix: '+251 ',\n },\n FK: {\n mask: '#####',\n prefix: '+500 ',\n },\n FO: {\n mask: '######',\n prefix: '+298 ',\n },\n FJ: {\n mask: '###-####',\n prefix: '+679 ',\n },\n /* FI: {\n mask:'#####???????',\n prefix: ''\n }, */\n FI: {\n mask: '############',\n prefix: '+358 ',\n },\n FR: {\n mask: '#########',\n prefix: '+33 ',\n },\n /* GF: {\n mask:'#########?',\n prefix: ''\n }, */\n GF: {\n mask: '##########',\n prefix: '+594 ',\n },\n PF: {\n mask: '######',\n prefix: '+689 ',\n },\n GA: {\n mask: '######?',\n prefix: '+241 ',\n },\n GM: {\n mask: '###-####',\n prefix: '+220 ',\n },\n GE: {\n mask: '########',\n prefix: '+995 ',\n },\n /* DE: {\n mask:'######?????',\n prefix: ''\n }, */\n DE: {\n mask: '###########',\n prefix: '+49 ',\n },\n /* GH: {\n mask:'########?',\n prefix: ''\n }, */\n GH: {\n mask: '#########',\n prefix: '+233 ',\n },\n GI: {\n mask: '####-####',\n prefix: '+350 ',\n },\n GR: {\n mask: '##########',\n prefix: '+30 ',\n },\n GL: {\n mask: '###-###',\n prefix: '+299 ',\n },\n GD: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n GP: {\n mask: '##########',\n prefix: '+590 ',\n },\n GU: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n GT: {\n mask: '####-####',\n prefix: '+502 ',\n },\n GN: {\n mask: '####-####',\n prefix: '+224 ',\n },\n GW: {\n mask: '###-####',\n prefix: '+245 ',\n },\n GY: {\n mask: '(###) ####',\n prefix: '+592 ',\n },\n HK: {\n mask: '####-####',\n prefix: '+852 ',\n },\n HN: {\n mask: '########',\n prefix: '+504 ',\n },\n HT: {\n mask: '####-####',\n prefix: '+509 ',\n },\n HU: {\n mask: '########??',\n prefix: '+36 ',\n },\n /* IS: {\n mask:'#######??',\n prefix: ''\n }, */\n IS: {\n mask: '#########',\n prefix: '+354 ',\n },\n IN: {\n mask: '##########',\n prefix: '+91 ',\n },\n /* ID: {\n mask:'#######???',\n prefix: ''\n }, */\n ID: {\n mask: '#######??????', // allows 7 ~ 13 digits\n prefix: '+62 ',\n },\n IR: {\n mask: '##########',\n prefix: '+98 ',\n },\n /* IQ: {\n mask:'########??',\n prefix: ''\n }, */\n IQ: {\n mask: '##########',\n prefix: '+964 ',\n },\n /* IE: {\n mask:'#######??',\n prefix: ''\n }, */\n IE: {\n mask: '#########',\n prefix: '+353 ',\n },\n /* IL: {\n mask:'########?',\n prefix: ''\n }, */\n IL: {\n mask: '#########',\n prefix: '+972 ',\n },\n /* IT: {\n mask:'######????',\n prefix: ''\n }, */\n IT: {\n mask: '##########',\n prefix: '+39 ',\n },\n JM: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n JP: {\n mask: '#########',\n prefix: '+81 ',\n },\n /* JO: {\n mask:'#######??',\n prefix: ''\n }, */\n JO: {\n mask: '#########',\n prefix: '+962 ',\n },\n KZ: {\n mask: '(###) ####-###',\n prefix: '+7 ',\n },\n /* KE: {\n mask:'######????',\n prefix: ''\n }, */\n KE: {\n mask: '##########',\n prefix: '+254 ',\n },\n KI: {\n mask: '##-###',\n prefix: '+686 ',\n },\n // kp\n /* KR: {\n mask:'####??????',\n prefix: ''\n }, */\n KR: {\n mask: '##########',\n prefix: '+82 ',\n },\n KW: {\n mask: '####-####',\n prefix: '+965 ',\n },\n KG: {\n mask: '#########',\n prefix: '+996 ',\n },\n LA: {\n mask: '########?',\n prefix: '+856 ',\n },\n LV: {\n mask: '####-####',\n prefix: '+371 ',\n },\n LB: {\n mask: '#######?',\n prefix: '+961 ',\n },\n LS: {\n mask: '##-###-###',\n prefix: '+266 ',\n },\n // LR\n /* LY: {\n mask:'########?',\n prefix: ''\n }, */\n LY: {\n mask: '########?',\n prefix: '+218 ',\n },\n LI: {\n mask: '###-####',\n prefix: '+423 ',\n },\n LT: {\n mask: '########',\n prefix: '+370 ',\n },\n /* LU: {\n mask:'#####??????',\n prefix: '+352 '\n }, */\n LU: {\n mask: '###########',\n prefix: '+352 ',\n },\n MO: {\n mask: '####-####',\n prefix: '+853 ',\n },\n MK: {\n mask: '########',\n prefix: '+389 ',\n },\n MG: {\n mask: '##-##-###-##',\n prefix: '+261 ',\n },\n /* MW: {\n mask:'#######??',\n prefix: '+265 '\n }, */\n MW: {\n mask: '#########',\n prefix: '+265 ',\n },\n /* MY: {\n mask:'#######???',\n prefix: '+60 '\n }, */\n MY: {\n mask: '##########',\n prefix: '+60 ',\n },\n MV: {\n mask: '###-####',\n prefix: '+960 ',\n },\n ML: {\n mask: '####-####',\n prefix: '+223 ',\n },\n MT: {\n mask: '##-##-##-##',\n prefix: '+356 ',\n },\n MH: {\n mask: '###-####',\n prefix: '+692 ',\n },\n MQ: {\n mask: '###-######',\n prefix: '+596 ',\n },\n // MR\n MU: {\n mask: '###-####',\n prefix: '+230 ',\n },\n // YT\n MX: {\n mask: '(###) ###-####',\n prefix: '+52 ',\n },\n // FM\n MD: {\n mask: '########',\n prefix: '+373 ',\n },\n MC: {\n mask: '####-####',\n prefix: '+377 ',\n },\n /* MN: {\n mask:'######?????',\n prefix: '+976 '\n }, */\n MN: {\n mask: '###########',\n prefix: '+976 ',\n },\n MS: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n MA: {\n mask: '#########?', // allows 9 ~ 10 digits\n prefix: '+212 ',\n },\n /* MZ: {\n mask:'########?',\n prefix: '+258 '\n }, */\n MZ: {\n mask: '#########',\n prefix: '+258 ',\n },\n /* MM: {\n mask:'#######?',\n prefix: '+95 '\n }, */\n MM: {\n mask: '########',\n prefix: '+95 ',\n },\n /* NA: {\n mask:'######????',\n prefix: '+264 '\n }, */\n NA: {\n mask: '##########',\n prefix: '+264 ',\n },\n // NR\n /* NP: {\n mask:'########??',\n prefix: '+977 '\n }, */\n NP: {\n mask: '##########',\n prefix: '+977 ',\n },\n NL: {\n mask: '#########',\n prefix: '+31 ',\n },\n /* AN: {\n mask:'#######?',\n prefix: '+599 '\n }, */\n AN: {\n mask: '########',\n prefix: '+599 ',\n },\n NC: {\n mask: '###-###',\n prefix: '+687 ',\n },\n /* NZ: {\n mask:'########??',\n prefix: '+64 '\n }, */\n NZ: {\n mask: '##########',\n prefix: '+64 ',\n },\n NI: {\n mask: '####-####',\n prefix: '+505 ',\n },\n NE: {\n mask: '##-###-###',\n prefix: '+227 ',\n },\n /* NG: {\n mask:'########??',\n prefix: '+234 '\n }, */\n NG: {\n mask: '##########',\n prefix: '+234 ',\n },\n // NU\n MP: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n NO: {\n mask: '####-####',\n prefix: '+47 ',\n },\n OM: {\n mask: '####-####',\n prefix: '+968 ',\n },\n /* PK: {\n mask:'#########?',\n prefix: '+92 '\n }, */\n PK: {\n mask: '##########',\n prefix: '+92 ',\n },\n PW: {\n mask: '###-####',\n prefix: '+680 ',\n },\n /* PA: {\n mask:'#######?',\n prefix: '+507 '\n }, */\n PA: {\n mask: '########',\n prefix: '+507 ',\n },\n /* PG: {\n mask:'#######?',\n prefix: '+675 '\n }, */\n PG: {\n mask: '########',\n prefix: '+675 ',\n },\n // PY\n /* PE: {\n mask:'#######????',\n prefix: '+51 '\n }, */\n PE: {\n mask: '###########',\n prefix: '+51 ',\n },\n /* PH: {\n mask:'########??',\n prefix: '+63 '\n }, */\n PH: {\n mask: '##########',\n prefix: '+63 ',\n },\n PL: {\n mask: '#########',\n prefix: '+48 ',\n },\n PT: {\n mask: '#-####-####',\n prefix: '+351 ',\n },\n PR: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n QA: {\n mask: '###-####',\n prefix: '+974 ',\n },\n RE: {\n mask: '###-###-###',\n prefix: '+262 ',\n },\n RO: {\n mask: '#########',\n prefix: '+40 ',\n },\n RU: {\n mask: '##########',\n prefix: '+7 ',\n },\n RW: {\n mask: '###-###-###',\n prefix: '+250 ',\n },\n SH: {\n mask: '#-###',\n prefix: '+290 ',\n },\n // PM\n KN: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n LC: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n VC: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n // WS\n // SM\n ST: {\n mask: '##-####',\n prefix: '+239 ',\n },\n /* SA: {\n mask:'########?',\n prefix: '+966 '\n }, */\n SA: {\n mask: '#########',\n prefix: '+966 ',\n },\n SN: {\n mask: '##-###-####',\n prefix: '+221 ',\n },\n SC: {\n mask: '###-###',\n prefix: '+248 ',\n },\n SL: {\n mask: '(##) ###-###',\n prefix: '+232 ',\n },\n SG: {\n mask: '####-####',\n prefix: '+65 ',\n },\n SK: {\n mask: '#########',\n prefix: '+421 ',\n },\n SI: {\n mask: '########',\n prefix: '+386 ',\n },\n SB: {\n mask: '##-###',\n prefix: '+677 ',\n },\n // SO\n ZA: {\n mask: '(##) ###-####',\n prefix: '+27 ',\n },\n ES: {\n mask: '###-###-###',\n prefix: '+34 ',\n },\n LK: {\n mask: '(##) ###-####',\n prefix: '+94 ',\n },\n SD: {\n mask: '##-###-####',\n prefix: '+249 ',\n },\n SR: {\n mask: '######?',\n prefix: '+597 ',\n },\n SZ: {\n mask: '###-####',\n prefix: '+268 ',\n },\n /* SE: {\n mask:'######?????',\n prefix: '+46 '\n }, */\n SE: {\n mask: '###########',\n prefix: '+46 ',\n },\n CH: {\n mask: '(##) ###-####',\n prefix: '+41 ',\n },\n /* SY: {\n mask:'########?',\n prefix: '+963 '\n }, */\n SY: {\n mask: '#########',\n prefix: '+963 ',\n },\n TJ: {\n mask: '#########',\n prefix: '+992 ',\n },\n TZ: {\n mask: '#########',\n prefix: '+255 ',\n },\n /* TH: {\n mask:'########?',\n prefix: '+66 '\n }, */\n TH: {\n mask: '#########',\n prefix: '+66 ',\n },\n TG: {\n mask: '###-####',\n prefix: '+228 ',\n },\n // TK\n // TO\n TT: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n TN: {\n mask: '##-###-###',\n prefix: '+216 ',\n },\n TR: {\n mask: '(###) ###-####',\n prefix: '+90 ',\n },\n TM: {\n mask: '########',\n prefix: '+993 ',\n },\n TC: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n // TV\n UG: {\n mask: '#########',\n prefix: '+256 ',\n },\n UA: {\n mask: '(##) ###-####',\n prefix: '+380 ',\n },\n /* AE: {\n mask:'########?',\n prefix: '+971 '\n }, */\n AE: {\n mask: '#########',\n prefix: '+971 ',\n },\n /* GB: {\n mask:'##########???',\n prefix: '+44 '\n }, */\n GB: {\n mask: '#########????',\n prefix: '+44 ',\n },\n UY: {\n mask: '########?',\n prefix: '+598 ',\n },\n UZ: {\n mask: '(##) ###-####',\n prefix: '+998 ',\n },\n // VU\n // VA\n VE: {\n mask: '(###) ###-####',\n prefix: '+58 ',\n },\n VN: {\n mask: '#######????',\n prefix: '+84 ',\n },\n VG: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n VI: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n // WF\n /* YE: {\n mask:'#######??',\n prefix: '+967 '\n }, */\n YE: {\n mask: '#########',\n prefix: '+967 ',\n },\n // YU\n ZM: {\n mask: '#########',\n prefix: '+260 ',\n },\n /* ZW: {\n mask:'####?????',\n prefix: '+263 '\n }, */\n ZW: {\n mask: '#########',\n prefix: '+263 ',\n },\n AC: {\n mask: '####',\n prefix: '+247 ',\n },\n ME: {\n mask: '(##) ###-####',\n prefix: '+382 ',\n },\n /* PS: {\n mask:'########?',\n prefix: '+970 '\n }, */\n PS: {\n mask: '#########',\n prefix: '+970 ',\n },\n /* RS: {\n mask:'#######??',\n prefix: '+381 '\n }, */\n RS: {\n mask: '#########',\n prefix: '+381 ',\n },\n /* TW: {\n mask:'########?',\n prefix: '+886 '\n }, */\n TW: {\n mask: '#########',\n prefix: '+886 ',\n },\n CW: {\n mask: '#-###-####',\n prefix: '+599 ',\n },\n US: {\n mask: '(###) ###-####',\n prefix: '',\n },\n};\n\nexport default function formatPhoneNumber(value: string, isoCode: string = 'US'): IFormatterValueObject {\n const { mask, prefix } = phoneNumberFormats[isoCode] || phoneNumberFormats.US;\n\n const options = {\n prefix,\n };\n\n const val = value || '';\n // Brazil need edge case handle, mobile: (xx) xxxxx-xxxx, land phone: (xx) xxxx-xxxx\n if (isoCode === 'BR' && val.replace(/[^0-9]/g, '').length === 11) {\n return formatValue(val, '(##) #####-####', options);\n } else {\n return formatValue(val, mask, options);\n }\n}\n","import formatValue from './generic';\n\nexport default function formatSSN(value: string) {\n return formatValue(value, '###-##-####');\n}\n","import formatValue from './generic';\n\nexport default function formatTIN(value: string) {\n return formatValue(value, '##-#######');\n}\n","import formatValue from './generic';\n\nexport default function formatAlphanumeric(value: string) {\n const val = (value || '').replace(/[^\\da-zA-Z]/g, '');\n return formatValue(val);\n}\n","import formatValue from './generic';\n\nexport default function formatAlpha(value: string, modifier?: string) {\n let val = value || '';\n\n if (modifier === 'spaced') {\n val = val.replace(/[^a-zA-Z ]/g, '');\n } else {\n val = val.replace(/[^a-zA-Z]/g, '');\n }\n\n return formatValue(val);\n}\n","import formatNumber from './number';\nimport formatValue from './generic';\nimport { IDict } from '../../../util';\nimport { INumberInputFormatOptions } from '../types';\n\nconst numberFormats: IDict<INumberInputFormatOptions> = {\n delimited: {\n prefix: '',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n allowDecimal: false,\n allowNegative: true,\n },\n integer: {\n prefix: '',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: '',\n allowDecimal: true,\n allowNegative: true,\n },\n dec: {\n prefix: '',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n allowDecimal: true,\n allowNegative: true,\n },\n};\n\nfunction getNumberFormat(key: string): INumberInputFormatOptions | undefined {\n let decimals: number;\n if (key.includes('dec')) {\n decimals = Number(key.replace('dec', ''));\n key = 'dec';\n }\n\n let numberFormat = numberFormats[key];\n\n if (!numberFormat) {\n return;\n }\n\n numberFormat = { ...numberFormat };\n\n if (decimals) {\n numberFormat.decimals = decimals;\n }\n\n return numberFormat;\n}\n\nfunction formatNumeric(value: string = '', modifier: string = '', explicit: boolean = false) {\n const numberFormat = getNumberFormat(modifier);\n\n if (!numberFormat) {\n const val = (value || '').replace(/[^\\d.,-]/g, '');\n return formatValue(val);\n }\n\n return formatNumber(value, numberFormat, explicit);\n}\n\nexport function formatPercentage(value: string = '', modifier: string = '', explicit: boolean = false) {\n const numberFormat = getNumberFormat(modifier);\n\n if (!numberFormat) {\n const val = (value || '').replace(/[^\\d.,-]/g, '');\n return formatValue(val, undefined, { suffix: '%' });\n }\n\n numberFormat.suffix = '%';\n\n return formatNumber(value, numberFormat, explicit);\n}\n\nexport default formatNumeric;\n","import formatValue from './generic';\nimport formatAlphanumeric from './alphanumeric';\n\nconst postalCodeFormats = {\n AF: '####',\n AL: '####',\n DZ: '#####',\n AC: 'ASCN 1ZZ',\n AD: 'AD###', // pre\n AR: '####',\n 'AR+': '@####@@@',\n AI: 'AI-2640',\n AM: '####',\n AS: '#####',\n 'AS+4': '#####-####',\n AU: '####',\n AT: '####',\n AZ: 'AZ ####', // pre\n BH: '###?',\n BD: '####',\n BB: 'BB#####', // pre\n BY: '######',\n BE: '####',\n BM: '@@ **',\n BT: '#####',\n BA: '######',\n BR: '#####',\n 'BR+3': '#####-###',\n VG: 'VG####', // pre\n BN: '@@####',\n BG: '####',\n KH: '#####',\n KY: 'KY#-####', // pre\n CA: '@#@ #@#',\n CL: '###-####',\n CN: '######',\n CX: '####',\n CC: '####',\n CO: '######',\n CR: '#####',\n 'CR+4': '#####-####',\n CV: '####',\n HR: '#####',\n CU: '#####',\n CY: '####',\n CZ: '### ##',\n DK: '####',\n DO: '#####',\n EC: '######',\n SV: '####',\n EG: '#####',\n EE: '#####',\n ET: '####',\n FK: 'FIQQ 1ZZ',\n FO: '###',\n FI: '#####',\n FR: '#####',\n GF: '973##', // pre?\n PF: '987##', // pre?\n GI: 'GX11 1AA',\n GE: '####',\n DE: '#####',\n GR: '### ##',\n GL: '####',\n GP: '971##', // pre?\n GU: '#####',\n 'GU+4': '#####-####',\n GT: '#####',\n GG: 'GY#? #@@',\n GN: '###',\n GS: 'SIQQ 1ZZ',\n GW: '####',\n HT: '####',\n HN: '@@####',\n 'HN-': '#####',\n HU: '####',\n IS: '###',\n IN: '### ###',\n ID: '#####',\n IE: '*** ****',\n IR: '##########',\n IQ: '#####',\n IM: 'IM#? #@@', // pre\n IL: '#######',\n IT: '#####',\n JM: '##',\n JP: '###-####',\n JE: 'JE#? #@@', // pre\n JO: '#####',\n KZ: '######',\n KE: '#####',\n KR: '#####',\n KN: 'KN####',\n XK: '#####',\n KW: '#####',\n KG: '######',\n LA: '#####',\n LV: 'LV-####', // pre\n LB: '####? ????', // also 00000\n LS: '###',\n LR: '####',\n LI: '####',\n LT: '#####', // pre-\n LU: '####',\n MK: '####',\n MG: '###',\n MY: '#####',\n MV: '#####',\n MT: '@@@ ####',\n MH: '#####',\n 'MH+4': '#####-####',\n MU: '#####',\n MQ: '972##', // pre?\n MW: '######',\n YT: '976##', // pre?\n MX: '#####',\n FM: '#####',\n 'FM+4': '#####-####',\n MD: '####', // pre\n MC: '980##', // pre?\n MN: '#####',\n ME: '#####',\n MA: '#####',\n MZ: '####',\n MM: '#####',\n NA: '#####',\n NP: '#####',\n NC: '988##', // pre?\n NZ: '####',\n NI: '#####',\n NE: '####',\n NG: '######',\n NF: '####',\n MP: '#####',\n NO: '####',\n OM: '###',\n PK: '#####',\n PW: '#####',\n 'PW+4': '#####-####',\n PS: '###',\n PA: '####',\n PG: '###',\n PY: '####',\n PE: '#####',\n 'PE+': '####', // pre\n PH: '####',\n PL: '##-###',\n PT: '####',\n 'PT+3': '####-###',\n PR: '#####',\n 'PR+4': '#####-####',\n RE: '974##', // pre?\n PM: '975##',\n PN: 'PCRN 1ZZ',\n RO: '######',\n RU: '######',\n LC: 'LC## ###', // pre\n VC: '####', // pre\n WS: '####', // pre\n SM: '4879#', // pre?\n SA: '#####',\n 'SA+4': '#####-####',\n SN: '#####',\n RS: '#####',\n SG: '######',\n SH: '@@@@ 1ZZ',\n SK: '### ##',\n SI: '####', // pre?\n SO: '@@ #####',\n ZA: '####',\n ES: '#####',\n LK: '#####',\n SD: '#####',\n SZ: '@###',\n SE: '### ##',\n CH: '####',\n SJ: '####',\n TW: '###',\n 'TW+2': '###-##?',\n TJ: '######',\n TZ: '#####',\n TH: '#####',\n TT: '######',\n TN: '####',\n TR: '#####',\n TM: '######',\n UA: '#####',\n UY: '#####',\n VI: '#####',\n 'VI+4': '#####-####',\n UZ: '######',\n VE: '####',\n 'VE-': '####-@',\n VN: '#####?',\n YU: '#####',\n WF: '986##', // pre?\n ZM: '#####',\n US: '#####',\n 'US+4': '#####-####',\n};\nexport default function formatPostalCode(value: string, modifier: string = 'US') {\n const mask = postalCodeFormats[modifier];\n\n if (!mask) {\n return formatAlphanumeric(value);\n }\n\n return formatValue(value, mask);\n}\n","import formatValue from './generic';\n\nconst dateFormats = {\n 'MM/DD/YYYY': '##/##/####',\n 'M/D/YYYY': '#?/#?/####',\n 'MM/DD/YY': '##/##/##',\n 'M/D/YY': '#?/#?/##',\n 'MM/YY': '##/##',\n 'M/YY': '#?/##',\n 'DD/MM/YYYY': '##/##/####',\n 'D/M/YYYY': '#?/#?/####',\n 'DD/MM/YY': '##/##/##',\n 'D/M/YY': '#?/#?/##',\n 'MM-DD-YYYY': '##-##-####',\n 'M-D-YYYY': '#?-#?-####',\n 'MM-DD-YY': '##-##-##',\n 'M-D-YY': '#?-#?-##',\n 'MM-YY': '##-##',\n 'M-YY': '#?-##',\n 'DD-MM-YYYY': '##-##-####',\n 'D-M-YYYY': '#?-#?-####',\n 'DD-MM-YY': '##-##-##',\n 'D-M-YY': '#?-#?-##',\n};\n\nexport default function formatDate(value: string, format: string = 'MM/DD/YYYY') {\n const mask = dateFormats[format] || dateFormats['MM/DD/YYYY'];\n\n const formattedValueObject = formatValue(value, mask);\n\n return {\n ...formattedValueObject,\n value: formattedValueObject.formattedValue,\n };\n}\n","import formatValue from './generic';\nimport { IFormatterValueObject } from '../types';\n\ninterface FormattedCreditCardObject extends IFormatterValueObject {\n type: string;\n leftIcon: string;\n leftIconMuted: boolean;\n}\n\ntype Formatter = (value: string) => FormattedCreditCardObject;\n\nfunction format(value: string): FormattedCreditCardObject {\n // have a initial generic mask which then converts to specific mask\n const detectedType = formatCreditCard.detectCreditCardTypeFromValue(value);\n const formattedValueObject = creditCardFormatters[detectedType](value);\n\n if (value.length < 2 && detectedType === 'unknown') {\n formattedValueObject.leftIcon = 'card';\n }\n return formattedValueObject;\n}\n\nconst unknownFormatter: Formatter = function unknownFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'unknown',\n leftIcon: 'card-unknown',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst amexFormatter: Formatter = function amexFn(value) {\n const valueObject = formatValue(value, '#### ###### #####');\n\n return {\n ...valueObject,\n type: 'amex',\n leftIcon: 'card-amex-color',\n leftIconMuted: value.length < 15,\n };\n};\n\nconst discoverFormatter: Formatter = function discoverFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'discover',\n leftIcon: 'card-discover-color',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst masterCardFormatter: Formatter = function masterCardFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'masterCard',\n leftIcon: 'card-mastercard-color',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst visaFormatter: Formatter = function visaFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'visa',\n leftIcon: 'card-visa-color',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst dinersClubInternationalFormatter: Formatter = function dinersClub(value) {\n const valueObject = formatValue(value, '#### ###### ####');\n\n return {\n ...valueObject,\n type: 'dinersClub',\n leftIcon: 'card-dinersclub-color',\n leftIconMuted: value.length < 14,\n };\n};\n\nconst creditCardFormatters = {\n discover: discoverFormatter,\n amex: amexFormatter,\n masterCard: masterCardFormatter,\n visa: visaFormatter,\n dinersClub: dinersClubInternationalFormatter,\n unknown: unknownFormatter,\n};\n\n/* tslint:disable:cyclomatic-complexity */\nfunction detectCreditCardTypeFromValue(value: string): string {\n // use value and some algorithm from the internet to detect and return card type based on string\n // return string 'unknown' if algorithm cannot detect or returns a type that is not one of our 5 supported types\n const firstInt = parseInt(value.charAt(0));\n const secondInt = parseInt(value.charAt(1));\n\n switch (firstInt) {\n case 2:\n if (secondInt > 1 && secondInt < 8) {\n if (value.length >= 4) {\n const firstfour = parseInt(value.substr(0, 4));\n if (firstfour >= 2221 && firstfour < 2721) {\n return 'masterCard';\n }\n } else {\n return 'masterCard';\n }\n }\n break;\n case 3:\n if (secondInt === 4 || secondInt === 7) {\n return 'amex';\n }\n if (secondInt === 0) {\n if (value.length > 2) {\n const thirdInt = parseInt(value.charAt(2));\n if (thirdInt < 6 || thirdInt === 9) {\n return 'dinersClub';\n }\n } else {\n return 'dinersClub';\n }\n }\n if (secondInt === 6 || secondInt === 8 || secondInt === 9) {\n return 'dinersClub';\n }\n break;\n case 4:\n return 'visa';\n case 5:\n if (secondInt > 0 && secondInt < 6) {\n return 'masterCard';\n }\n break;\n case 6:\n if (secondInt === 0) {\n if (value.length > 3) {\n const firstfour = value.substr(0, 4);\n if (firstfour === '6011') {\n return 'discover';\n }\n } else {\n return 'discover';\n }\n }\n if (secondInt === 4) {\n if (value.length > 2) {\n const firstthree = parseInt(value.substr(0, 3));\n if (firstthree > 643) {\n return 'discover';\n }\n } else {\n return 'discover';\n }\n }\n if (secondInt === 5) {\n return 'discover';\n }\n if (secondInt === 2) {\n if (value.length > 5) {\n const firstsix = parseInt(value.substr(0, 6));\n if (firstsix >= 622126 && firstsix <= 622925) {\n return 'discover';\n }\n } else {\n return 'discover';\n }\n }\n break;\n default:\n return 'unknown';\n }\n return 'unknown';\n}\n/* tslint:enable:cyclomatic-complexity */\n\nconst formatCreditCard = {\n detectCreditCardTypeFromValue,\n format,\n amexFormatter,\n dinersClubInternationalFormatter,\n discoverFormatter,\n masterCardFormatter,\n visaFormatter,\n unknownFormatter,\n};\n\nexport default formatCreditCard;\n","@import '../../styles/host';\n@import '../../styles/functions';\n\n:host {\n display: block;\n margin: var-list(var-prefixer(input-margin-top), --app-scale-6x, 30px) 0\n var-list(var-prefixer(input-margin-bottom), --app-scale-6x, 30px);\n font-size: var-list(var-prefixer(input-font-size), --app-font-size, inherit);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.field-container,\n.input-container {\n position: relative;\n}\n.field-container {\n --comp-input-tween: #{var-list(var-prefixer(input-tween), --tct-tween-2, --app-tween-2, unquote('0.4s ease'))};\n\n &.is-small {\n .btn-clear {\n --tct-btn-icon-width: 20px;\n }\n }\n}\n\nlabel {\n --comp-label-padding: #{var-list(\n --tct-input-label-padding,\n unquote(\n '0 #{var-list(var-prefixer(input-label-padding-right), 0)} 0 #{var-list(var-prefixer(input-label-padding-left), 0)}'\n )\n )};\n --comp-label-margin: #{var-list(\n --tct-input-label-margin,\n unquote(\n '#{var-list(var-prefixer(input-label-margin-top), 0)} 0 #{var-list(var-prefixer(input-label-margin-bottom), --tct-scale-1, --app-scale-1x, 5px)}'\n )\n )};\n display: block;\n padding: var(--comp-label-padding);\n margin: var(--comp-label-margin);\n color: var-list(var-prefixer(input-label-font-color), inherit);\n font-size: var-list(var-prefixer(input-label-font-size), inherit);\n font-weight: var-list(var-prefixer(input-label-font-weight), 600);\n text-transform: var-list(var-prefixer(input-label-text-transform), none);\n letter-spacing: var-list(var-prefixer(input-label-letter-spacing), normal);\n transition: color var(--comp-input-tween);\n}\n\n.optional-tag {\n --comp-label-optional-margin: #{var-list(\n --tct-input-label-optional-margin,\n unquote(\n '0 0 0 #{var-list(var-prefixer(input-label-optional-margin-left), --tct-scale-1, --app-scale-1x, 5px)}'\n )\n )};\n margin: var(--comp-label-optional-margin);\n color: var-list(\n var-prefixer(input-label-optional-font-color),\n --t-textA,\n --t-a11y-gray-color,\n rgba(77, 77, 77, 0.77)\n );\n font-size: var-list(var-prefixer(input-label-optional-font-size), 12px);\n font-weight: var-list(var-prefixer(input-label-optional-font-weight), 400);\n}\n\n.input-container {\n --comp-input-background: #{var-list(--tct-input-background, var-prefixer(input-bg), --t-gray-14, #fcfcfd)};\n --comp-input-horizontal-gap: #{var-list(var-prefixer(input-horizontal-gap), 0)};\n --comp-input-border-top-left-radius: #{var-list(\n var-prefixer(input-border-top-left-radius),\n --tct-border-radius-1,\n --app-border-radius-1,\n 3px\n )};\n --comp-input-border-top-right-radius: #{var-list(\n var-prefixer(input-border-top-right-radius),\n --tct-border-radius-1,\n --app-border-radius-1,\n 3px\n )};\n --comp-input-border-bottom-right-radius: #{var-list(\n var-prefixer(input-border-bottom-right-radius),\n --tct-border-radius-1,\n --app-border-radius-1,\n 3px\n )};\n --comp-input-border-bottom-left-radius: #{var-list(\n var-prefixer(input-border-bottom-left-radius),\n --tct-border-radius-1,\n --app-border-radius-1,\n 3px\n )};\n --comp-input-border-radius: var(--comp-input-border-top-left-radius) var(--comp-input-border-top-right-radius)\n var(--comp-input-border-bottom-right-radius) var(--comp-input-border-bottom-left-radius);\n --comp-input-border-width: var(--tct-input-border-top-width, 1px) var(--tct-input-border-right-width, 1px)\n var(--tct-input-border-bottom-width, 1px) var(--tct-input-border-left-width, 1px);\n --comp-input-focus-border-width: var(--tct-input-focus-border-top-width, 1px)\n var(--tct-input-focus-border-right-width, 1px) var(--tct-input-focus-border-bottom-width, 1px)\n var(--tct-input-focus-border-left-width, 1px);\n --comp-input-border-color: #{var-list(var-prefixer(input-border-color), --t-a11y-gray-color-AA, #404040)};\n --comp-input-prefix-clearance: calc(3 * var(--tct-input-prefix-font-size, 14px) + var(--tct-scale-1, 5px));\n --comp-input-icon-clearance: 34px;\n --comp-input-min-height: #{var-list(var-prefixer(input-min-height), 44px)};\n --comp-input-max-height: #{var-list(var-prefixer(input-max-height))};\n\n --comp-input-hover-ring-color: #{var-list(var-prefixer(input-hover-ring-color))};\n --comp-input-hover-ring: #{0 0 0 2px var(--t-base), 0 0 0 4px var(--comp-input-hover-ring-color)};\n\n background: var(--comp-input-background);\n display: flex;\n align-items: center;\n border-width: var(--comp-input-border-width);\n border-style: solid;\n border-color: var(--comp-input-border-color);\n border-radius: var(--comp-input-border-radius);\n box-shadow: var-list(var-prefixer(input-box-shadow), none);\n transition: border-width var(--comp-input-tween), border-color var(--comp-input-tween),\n box-shadow var(--comp-input-tween);\n\n :host([disabled]:not([disabled='false'])) & {\n cursor: not-allowed;\n opacity: var-list(var-prefixer(input-disabled-opacity), --tct-disabled-opacity, --app-disabled-opacity, 0.4);\n }\n}\n\n.input-field {\n --comp-input-padding: #{var-list(\n --tct-input-padding,\n unquote('0 #{var-list(var-prefixer(input-horizontal-padding), --tct-scale-2, --app-scale-2x, 10px)}')\n )};\n flex: 1;\n border: 0;\n -webkit-appearance: none;\n appearance: none;\n box-sizing: border-box;\n min-height: var(--comp-input-min-height);\n max-height: var(--comp-input-max-height);\n overflow-y: hidden;\n height: var-list(var-prefixer(input-height), 44px);\n width: 100%;\n padding: var(--comp-input-padding);\n background: transparent;\n color: var-list(var-prefixer(input-font-color), --t-text, inherit);\n display: inline-block;\n text-align: var(--tct-input-align, 'start');\n font-weight: var-list(var-prefixer(input-font-weight), 400);\n\n &:focus {\n outline: none;\n box-shadow: none;\n }\n /* To remove up/down arrow in number field for webkit based browser */\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n /* For Firefox */\n &[type='number'] {\n -moz-appearance: textfield;\n }\n\n &::-ms-clear {\n display: none;\n }\n\n &[type='search'] {\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n display: none;\n }\n }\n\n &[disabled]:not([disabled='false']) {\n cursor: not-allowed;\n }\n\n .right-aligned & {\n text-align: right;\n }\n\n &:is(input) {\n flex: 1;\n }\n\n &:is(button) {\n display: inline-flex;\n align-items: center;\n\n .has-custom-display & {\n height: auto;\n padding: 0;\n }\n\n span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n }\n }\n}\n\n.custom-display-container {\n max-width: 100%;\n\n .has-custom-display & {\n --comp-default-padding: var(--app-scale-2x, 10px) var(--app-scale-2x, 10px) var(--app-scale-3x, 15px);\n padding: var-list(var-prefixer(input-padding), --comp-default-padding);\n width: 100%;\n }\n}\n\n.has-error .input-container:hover {\n --comp-input-hover-ring-color: #{var-list(var-prefixer(input-error-border-color))};\n --comp-input-hover-ring: #{0 0 0 2px var(--t-base), 0 0 0 4px var(--comp-input-hover-ring-color)};\n}\n\n.input-container:hover {\n border-width: var-list(--tct-input-hover-border-width, --comp-input-border-width);\n border-color: var-list(--tct-input-hover-border-color, --comp-input-border-color);\n background: var-list(--tct-input-hover-background, --comp-input-background);\n box-shadow: var(--comp-input-hover-ring), var-list(var-prefixer(input-hover-box-shadow), unquote('0 0 transparent'));\n}\n\n.has-focus .input-container {\n border-width: var-list(--tct-input-focus-border-width, --comp-input-focus-border-width);\n border-color: var-list(var-prefixer(input-focus-border-color), --comp-input-border-color);\n background: var-list(--tct-input-focus-background, --comp-input-background);\n box-shadow: var(--const-double-focus-ring),\n var-list(var-prefixer(input-focus-box-shadow), unquote('0 0 transparent'));\n\n &:hover {\n border-width: var-list(--tct-input-hover-border-width, --comp-input-border-width);\n border-color: var-list(--tct-input-hover-border-color, --comp-input-border-color);\n background: var-list(--tct-input-hover-background, --comp-input-background);\n box-shadow: var(--comp-input-hover-ring),\n var-list(var-prefixer(input-hover-box-shadow), unquote('0 0 transparent'));\n }\n}\n\n.input-field::placeholder,\n.placeholder-text {\n color: var-list(var-prefixer(input-placeholder-font-color), --t-textA, --app-gray-d1, rgba(77, 77, 77, 0.77));\n}\n\n.pseudo-input-container {\n min-width: 0;\n flex: 1;\n}\n\n.input-icons-container-left,\n.input-icons-container-right {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--comp-input-horizontal-gap);\n\n > div:not(.vertical-separator) {\n min-width: var-list(--tct-icon-min-width, 44px);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &:empty {\n display: none;\n }\n}\n\n.input-icons-container-left {\n padding-left: var(--comp-input-horizontal-gap);\n}\n\n.input-icons-container-right {\n padding-right: var(--comp-input-horizontal-gap);\n --comp-visibility-toggle-padding: 0px #{var-list(--app-scale-2x, 10px)};\n\n .btn-visibility-toggle {\n color: var-list(--tct-input-visibility-toggle-font-color, var-prefixer(primary), #006eb2);\n font-size: var-list(--tct-input-visibility-toggle-font-size, 12px);\n padding: var-list(--tct-input-visibility-toggle-padding, --comp-visibility-toggle-padding);\n }\n}\n\nq2-icon {\n margin-top: calc(#{var-list(var-prefixer(input-border-top-width), 1px)} / 2);\n margin-bottom: calc(#{var-list(var-prefixer(input-border-bottom-width), 1px)} / 2);\n pointer-events: none;\n color: var-list(var-prefixer(input-icon-stroke-primary), --t-a11y-gray-color, --t-textA, --app-gray, #747474);\n --tct-icon-stroke-primary: #{var-list(\n var-prefixer(input-icon-stroke-primary),\n --t-a11y-gray-color,\n --t-textA,\n --app-gray,\n #747474\n )};\n}\n\n.icon-left-muted {\n opacity: 0.5;\n}\n\n.input-prefix,\n.input-suffix {\n min-height: var(--comp-input-min-height);\n max-height: var(--comp-input-max-height);\n height: var-list(var-prefixer(input-height), 44px);\n font-size: var-list(var-prefixer(input-prefix-font-size), inherit);\n color: var-list(var-prefixer(input-prefix-font-color), inherit);\n background: var-list(\n --tct-input-prefix-background,\n var-prefixer(input-prefix-bg),\n --tct-input-background,\n var-prefixer(input-bg),\n var-prefixer(gray-14),\n #f2f2f2\n );\n transition: color var(--comp-input-tween), background var(--comp-input-tween);\n}\n\n.input-prefix {\n border-top-left-radius: calc(\n var(--comp-input-border-top-left-radius) - #{var-list(var-prefixer(input-border-top-width), 1px)} - #{var-list(\n var-prefixer(input-border-left-width),\n 1px\n )}\n );\n border-bottom-left-radius: calc(\n var(--comp-input-border-bottom-left-radius) - #{var-list(var-prefixer(input-border-bottom-width), 1px)} - #{var-list(\n var-prefixer(input-border-left-width),\n 1px\n )}\n );\n pointer-events: none; /* used to allow iOS voiceover to display keyboard in input TCT-1194 */\n}\n\n.input-suffix {\n border-top-right-radius: calc(\n var(--comp-input-border-top-right-radius) - #{var-list(var-prefixer(input-border-top-width), 1px)} - #{var-list(\n var-prefixer(input-border-right-width),\n 1px\n )}\n );\n border-bottom-right-radius: calc(\n var(--comp-input-border-bottom-right-radius) - #{var-list(var-prefixer(input-border-bottom-width), 1px)} - #{var-list(\n var-prefixer(input-border-right-width),\n 1px\n )}\n );\n}\n\n.icon-error {\n color: var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000);\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000)};\n}\n\n.pw-show {\n position: absolute;\n margin-right: var-list(--tct-scale-2, --app-scale-2x, 10px);\n}\n\n.btn-clear {\n --tct-icon-size: 17px;\n}\n\n.messages-container {\n height: 0px;\n overflow: hidden;\n background: var-list(\n --tct-message-background,\n var-prefixer(message-bg),\n var-prefixer(gray-14),\n --tct-gray-l3,\n --app-gray-l3,\n #f2f2f2\n );\n box-shadow: var-list(\n var-prefixer(input-message-box-shadow),\n --tct-box-shadow-1,\n --app-shadow-1,\n unquote('0 2px 4px rgba(0, 0, 0, 0.3)')\n );\n transition: height var-list(var-prefixer(input-messages-tween), --tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n margin-top: var-list(--tct-input-messages-margin-top, 2px);\n z-index: var-list(--tct-input-messages-z-index, 5);\n position: absolute;\n width: 100%;\n color: var-list(var-prefixer(input-messages-font-color), inherit);\n}\n\n.has-error label {\n color: var-list(var-prefixer(input-error-label-font-color), var-prefixer(input-label-font-color), inherit);\n}\n\n.has-error:not(.has-focus) .input-prefix,\n.has-error:not(.has-focus) .input-suffix {\n color: var-list(var-prefixer(input-error-prefix-font-color), inherit);\n background: var-list(\n --tct-input-error-prefix-background,\n var-prefixer(input-error-prefix-bg),\n --tct-input-background,\n var-prefixer(input-bg),\n var-prefixer(gray-14),\n --tct-gray-l3,\n --app-gray-l3,\n #f2f2f2\n );\n}\n\n.has-error .input-container:not(:focus-within) {\n border-color: var-list(var-prefixer(input-error-border-color), --const-stoplight-alert, #c30000);\n}\n\n.icon-left {\n width: 26px;\n height: 26px;\n}\n\n.vertical-separator {\n height: calc(var(--comp-input-min-height) - 2px);\n border-right: 1px solid\n var-list(\n var-prefixer(input-prefix-border-color),\n var-prefixer(input-border-color),\n --t-a11y-gray-color-AA,\n #404040\n );\n}\n","import { Component, Prop, Element, State, Event, EventEmitter, h, Watch, Listen, Fragment } from '@stencil/core';\nimport {\n createGuid,\n labelDOM,\n loc,\n messagesDOM,\n setMessageHeight,\n handleAriaLabel,\n overrideFocus,\n isEventFromElement,\n isMobile,\n} from 'src/utils';\nimport { IFormatterValueObject, ICursorData, IEventDetail } from './types';\nimport formatCurrency from './formatting/currency';\nimport formatPhoneNumber from './formatting/phone';\nimport formatSSN from './formatting/ssn';\nimport formatTIN from './formatting/tin';\nimport formatAlphanumeric from './formatting/alphanumeric';\nimport formatAlpha from './formatting/alpha';\nimport formatNumeric, { formatPercentage } from './formatting/numeric';\nimport formatPostalCode from './formatting/postal';\nimport formatDate from './formatting/date';\nimport formatCreditCard from './formatting/credit-card';\nimport { Q2Icon } from '../q2-icon';\nimport { Q2Badge } from '../q2-badge';\n\nconst inputTypeMap = {\n text: 'text',\n tel: 'tel',\n number: 'number',\n password: 'text',\n search: 'search',\n url: 'url',\n email: 'email',\n currency: 'text',\n phone: 'tel',\n ssn: 'text',\n alphanumeric: 'text',\n alpha: 'text',\n numeric: 'text',\n percentage: 'text',\n postal: 'text',\n date: 'text',\n 'credit-card': 'text',\n};\n\nexport type InputType = keyof typeof inputTypeMap;\n\n@Component({\n tag: 'q2-input',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Input {\n @Prop({ mutable: true }) value: string;\n @Prop({ reflect: true, mutable: true }) label: string;\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n @Prop({ reflect: true }) type: InputType = 'text';\n @Prop({ reflect: true }) placeholder: string;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) autocomplete: string;\n @Prop({ reflect: true }) autocorrect: 'on' | 'off';\n @Prop({ reflect: true }) autocapitalize: string;\n @Prop({ reflect: true }) autofocus: boolean;\n @Prop({ reflect: true }) hideMessages: boolean;\n @Prop({ reflect: true }) iconLeft: Q2Icon['type'];\n @Prop({ reflect: true }) iconRight: Q2Icon['type'];\n @Prop({ reflect: true }) readonly: boolean;\n @Prop({ reflect: true }) clearable: boolean;\n @Prop({ reflect: true }) optional: boolean;\n @Prop({ reflect: true }) min: number;\n @Prop({ reflect: true }) max: number;\n @Prop({ reflect: true }) step: number;\n @Prop({ reflect: true }) formatModifier: string;\n @Prop({ reflect: true, mutable: true }) maxlength: number;\n @Prop({ reflect: true }) pseudo: boolean;\n @Prop({ reflect: true }) showVisibilityToggle: boolean = false;\n @Prop({ reflect: true, mutable: true }) textHidden: boolean;\n @Prop({ reflect: true }) badgeValue: string;\n @Prop({ reflect: true }) badgeTheme: Q2Badge['theme'];\n @Prop() role: string;\n @Prop() ariaControls: string;\n @Prop() ariaOwns: string;\n @Prop() ariaHaspopup: string;\n @Prop() ariaExpanded: string;\n @Prop() ariaActivedescendant: string;\n @Prop() current: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @Prop() errors: string[];\n @Prop() hints: string[];\n\n @State() formattedValueObject: IFormatterValueObject;\n @State() hasFocus: boolean;\n @State() isSmall: boolean = false;\n\n resizeObserver: ResizeObserver;\n scheduledAfterRender: (() => void)[] = [];\n valueOnFocus: string;\n isMobile: boolean = isMobile();\n\n /////// LIFECYCLE HOOKS ////////\n\n componentWillLoad() {\n if (isNaN(this.maxlength)) {\n this.maxlength = undefined;\n }\n this.formattedValueObject = this.getFormattedValue(this.stringValue, true);\n\n Object.defineProperty(this.hostElement, 'formattedValue', {\n get: () => this.formattedValueObject?.formattedValue ?? '',\n });\n\n handleAriaLabel(this);\n if (this.textHidden === undefined) {\n this.textHidden = this.type === 'password';\n }\n\n this.manageClearableResizeObserver(this.clearable);\n }\n\n componentDidLoad() {\n if (!this.pseudo) {\n this.inputField.value = this.formattedValueObject.formattedValue;\n }\n\n if (this.autofocus === true) {\n this.inputField.focus();\n }\n\n overrideFocus(this.hostElement);\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n disconnectedCallback() {\n this.manageClearableResizeObserver();\n }\n\n getFormattedValue(value: string, valueChangedFromProperty: boolean): IFormatterValueObject {\n const formattingFunctions = {\n currency: formatCurrency,\n phone: formatPhoneNumber,\n ssn: formatSSN,\n tin: formatTIN,\n alphanumeric: formatAlphanumeric,\n alpha: formatAlpha,\n numeric: formatNumeric,\n percentage: formatPercentage,\n postal: formatPostalCode,\n date: formatDate,\n 'credit-card': formatCreditCard.format,\n };\n\n if (formattingFunctions[this.type]) {\n return formattingFunctions[this.type](value, this.formatModifier, valueChangedFromProperty);\n }\n\n return {\n value,\n formattedValue: value,\n fullyFormattedValue: value,\n formattingCharacterCount: 0,\n unformattedValue: value,\n };\n }\n\n @Element() hostElement: HTMLElement;\n\n get canClear() {\n return this.clearable && !!(this.inputField?.value ?? this.value);\n }\n\n get shouldCursorStayAtEnd() {\n return this.isMobile && this.type === 'currency';\n }\n\n get hasError() {\n return Array.isArray(this.errors) && this.errors.length > 0;\n }\n\n get messages(): string[] {\n return (\n (this.errors && this.errors.length > 0 && this.errors) ||\n (this.hints && this.hints.length > 0 && this.hints) ||\n []\n );\n }\n\n get inputField() {\n return this.hostElement.shadowRoot.querySelector<HTMLInputElement>('.input-field');\n }\n\n get showMessages() {\n return this.messages.length > 0 && !this.hideMessages;\n }\n\n guid = createGuid();\n\n get inputId() {\n return `input-guid-${this.guid}`;\n }\n\n get inputDescribedBy() {\n return this.showMessages ? `${this.inputId}-description` : undefined;\n }\n\n get isMaskedType(): boolean {\n const maskedTypes: string[] = [\n 'currency',\n 'phone',\n 'ssn',\n 'tin',\n 'alphanumeric',\n 'alpha',\n 'numeric',\n 'percentage',\n 'postal',\n 'date',\n 'credit-card',\n ];\n\n return maskedTypes.includes(this.type);\n }\n\n get wrapperClasses() {\n const classNames = ['field-container'];\n if (this.hasError) classNames.push('has-error');\n if (!!this.value) classNames.push('has-value');\n if (this.clearable && !!this.value) classNames.push('has-clear');\n if (this.hasFocus) classNames.push('has-focus');\n if (this.isSmall) classNames.push('is-small');\n if (this.formattedValueObject.prefix) classNames.push('has-prefix');\n if (this.computedIconLeft) classNames.push('has-icon-left');\n if (this.showIconSeparator) classNames.push('has-icon-separator');\n if (this.formattedValueObject.suffix) classNames.push('has-suffix');\n if (!this.formattedValueObject.suffix && this.iconRight) classNames.push('has-icon-right');\n if (this.type === 'currency') classNames.push('right-aligned');\n else classNames.push('left-aligned');\n if (this.hasCustomDisplaySlot) classNames.push('has-custom-display');\n\n return classNames.join(' ');\n }\n\n get computedType() {\n if (['password', 'text', 'ssn'].includes(this.type) && this.textHidden) {\n return 'password';\n } else {\n return (this.type && inputTypeMap[this.type]) || 'text';\n }\n }\n\n get computedAutocomplete() {\n // force off for currency type\n if (this.type === 'currency') return 'transaction-amount';\n return this.autocomplete || 'off';\n }\n\n get computedIconLeft(): string | undefined {\n if (this.formattedValueObject.prefix) {\n return;\n }\n\n if (this.type === 'search') {\n return 'search';\n }\n\n if (this.formattedValueObject.leftIcon) {\n return this.formattedValueObject.leftIcon;\n }\n\n return this.iconLeft;\n }\n\n get showIconSeparator(): boolean {\n return this.type === 'credit-card' || !!this.formattedValueObject.prefix;\n }\n\n get computedClassForIconLeft(): string | undefined {\n let className = 'icon-left';\n if (this.formattedValueObject.leftIconMuted) {\n className += ' icon-left-muted';\n }\n return className;\n }\n\n get stringValue(): string {\n return (this.value && String(this.value)) || '';\n }\n\n get canSetSelection(): boolean {\n // email and number type don't support setSelectionRange\n return !['email', 'number'].includes(this.computedType);\n }\n\n get visibilityToggleText(): string {\n return loc(`tecton.element.input.toggle.${this.textHidden ? 'show' : 'hide'}`);\n }\n\n formatAndUpdateValueFromProp() {\n this.formattedValueObject = this.getFormattedValue(this.stringValue, true);\n\n if (!this.pseudo) {\n const setValue = () => {\n this.inputField.value = this.formattedValueObject.formattedValue;\n };\n\n this.inputField ? setValue() : this.scheduledAfterRender.push(() => setValue());\n }\n }\n\n get inputMode() {\n const inputModeMap = {\n currency: 'numeric',\n ssn: 'numeric',\n tin: 'numeric',\n numeric: 'decimal',\n percentage: 'decimal',\n postal: 'numeric',\n date: 'numeric',\n 'credit-card': 'numeric',\n };\n\n return (this.type && inputModeMap[this.type]) || undefined;\n }\n\n //////// OBSERVERS //////////\n\n @Watch('clearable')\n manageClearableResizeObserver(clearable?: boolean) {\n const isSmallThreshold = 190;\n if (clearable) {\n if (this.resizeObserver) return;\n this.resizeObserver = new ResizeObserver(([entry]) => {\n this.isSmall = isSmallThreshold > entry.contentRect.width;\n });\n this.resizeObserver.observe(this.hostElement);\n } else {\n this.isSmall = false;\n this.resizeObserver?.unobserve(this.hostElement);\n this.resizeObserver = null;\n }\n }\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('value')\n valueObserver() {\n this.formatAndUpdateValueFromProp();\n }\n\n @Watch('formattedValueObject')\n formattedValueObjectObserver() {\n this.formatted.emit(this.formattedValueObject);\n }\n\n @Watch('type')\n typeObserver() {\n this.formatAndUpdateValueFromProp();\n }\n\n @Watch('formatModifier')\n formatModifierObserver() {\n this.formatAndUpdateValueFromProp();\n }\n\n @Watch('hints')\n hintsObserver() {\n this.hasFocus && this.scheduledAfterRender.push(() => setMessageHeight(this));\n }\n\n @Watch('errors')\n errorsObserver() {\n this.hasFocus && this.scheduledAfterRender.push(() => setMessageHeight(this));\n }\n\n ///////// HOST ELEMENT EVENTS //////\n @Listen('focus')\n onHostElementFocus(event) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.inputField.focus();\n }\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n if (event.target === this.hostElement && !this.hostElement.onchange) {\n this.value = event.detail.value;\n }\n }\n\n ///////// Events /////////\n\n @Event() input: EventEmitter<IEventDetail>;\n @Event() change: EventEmitter<IEventDetail>;\n @Event() clear: EventEmitter<IEventDetail>;\n @Event() formatted: EventEmitter<IEventDetail>;\n\n ///// ACTIONS ////////\n\n onToggleVisibility = () => {\n this.hostElement.dispatchEvent(new FocusEvent('focus'));\n this.textHidden = !this.textHidden;\n };\n\n onInputClick = () => {\n if (this.shouldCursorStayAtEnd) this.placeCursorAtEnd();\n };\n\n onInputFocus = () => {\n if (this.inputField.tagName === 'INPUT') {\n this.scheduledAfterRender.push(() =>\n this.shouldCursorStayAtEnd\n ? this.placeCursorAtEnd()\n : this.setCursorPosition(this.calculateCursorPositionOnFocus())\n );\n }\n this.hasFocus = true;\n setMessageHeight(this);\n this.valueOnFocus = this.value;\n };\n\n onInputBlur = () => {\n this.hasFocus = false;\n setMessageHeight(this);\n if (this.valueOnFocus !== this.formattedValueObject.value) {\n this.valueOnFocus = this.formattedValueObject.value;\n this.change.emit({\n value: this.formattedValueObject.value,\n formattedValue: this.formattedValueObject.fullyFormattedValue,\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n ...(this.formattedValueObject.type && { type: this.formattedValueObject.type }),\n });\n }\n };\n\n onInputInput = (event: InputEvent) => {\n event.stopPropagation();\n const newFormattedValue = this.getFormattedValue((event.target as HTMLInputElement).value, false);\n this.handleDataInput(newFormattedValue);\n };\n\n onInputPaste = (event: ClipboardEvent) => {\n if (this.type === 'currency') {\n const clipboardData = event.clipboardData.getData('text');\n const newFormattedValue = this.getFormattedValue(clipboardData, true);\n event.preventDefault();\n this.handleDataInput(newFormattedValue);\n }\n };\n\n handleDataInput(newFormattedValue: IFormatterValueObject) {\n if (\n this.maxlength === undefined ||\n newFormattedValue.unformattedValue.length <= this.maxlength ||\n newFormattedValue.unformattedValue.length <= this.formattedValueObject.unformattedValue.length\n ) {\n this.formattedValueObject = newFormattedValue;\n } else if (this.maxlength) {\n newFormattedValue = this.getFormattedValue(\n newFormattedValue.unformattedValue.substring(0, this.maxlength),\n false\n );\n this.formattedValueObject = newFormattedValue;\n }\n this.handleValueAndCursor();\n }\n\n handleValueAndCursor = () => {\n // ORDER IMPORTANT: calculate cursor position -> set value -> set cursor position\n const cursorPosition = this.calculateCursorPositionOnInput();\n // when type=number: returns only valid decimal on input event, should not update itself (e.g. typing \"1.\" )\n if (this.type !== 'number') this.inputField.value = this.formattedValueObject.formattedValue;\n this.input.emit({\n value: this.formattedValueObject.value,\n formattedValue: this.formattedValueObject.fullyFormattedValue,\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n ...(this.formattedValueObject.type && { type: this.formattedValueObject.type }),\n });\n if (!this.formattedValueObject.value) {\n this.clear.emit();\n }\n this.setCursorPosition(cursorPosition);\n };\n\n onInputKeydown = (event: KeyboardEvent) => {\n const keysThatMoveCursor = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'];\n const { key } = event;\n if (this.shouldCursorStayAtEnd && keysThatMoveCursor.includes(key)) event.preventDefault();\n if (key === 'Enter' && this.valueOnFocus !== this.formattedValueObject.value) {\n this.valueOnFocus = this.formattedValueObject.value;\n this.change.emit({\n value: this.formattedValueObject.value,\n formattedValue: this.formattedValueObject.fullyFormattedValue,\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n ...(this.formattedValueObject.type && { type: this.formattedValueObject.type }),\n });\n }\n };\n\n onClearInput = () => {\n const eventDetail = {\n value: '',\n formattedValue: '',\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n };\n this.input.emit(eventDetail);\n this.change.emit(eventDetail);\n this.clear.emit();\n this.inputField.focus();\n };\n /////// VIEW METHODS ///////\n\n render() {\n return (\n <div class={this.wrapperClasses}>\n {labelDOM(this)}\n {this.inputContainerDOM()}\n {messagesDOM(this)}\n </div>\n );\n }\n\n get hasCustomDisplaySlot() {\n return !!this.hostElement.querySelector('[slot=custom-display]');\n }\n\n /* tslint:disable:cyclomatic-complexity */\n inputContainerDOM() {\n return (\n <div\n class=\"input-container\"\n tabindex={-1}\n test-id=\"inputContainer\"\n >\n <div class=\"input-icons-container-left\">\n {this.formattedValueObject.prefix && (\n <div class=\"input-prefix\">{this.formattedValueObject.prefix}</div>\n )}\n {this.computedIconLeft && (\n <div>\n <q2-icon\n type={this.computedIconLeft}\n class={this.computedClassForIconLeft}\n />\n </div>\n )}\n <slot name=\"input-left\" />\n {this.showIconSeparator && <div class=\"vertical-separator\" />}\n {this.hasError && this.type === 'currency' && (\n <div>\n <q2-icon\n type=\"error\"\n class=\"icon-error\"\n test-id=\"iconError\"\n />\n </div>\n )}\n </div>\n {this.pseudo ? this.pseudoInputDOM() : this.standardInputDOM()}\n <div class=\"input-icons-container-right\">\n {this.canClear && (\n <q2-btn\n class=\"btn-clear\"\n ariaLabel={loc('tecton.element.input.clear', [this.label])}\n test-id=\"clearButton\"\n onClick={this.onClearInput}\n >\n <q2-icon\n type=\"close\"\n class=\"icon-clear\"\n />\n </q2-btn>\n )}\n {['password', 'text', 'ssn', 'tin'].includes(this.type) && this.showVisibilityToggle && (\n <q2-btn\n class=\"btn-visibility-toggle\"\n test-id=\"toggleVisibilityButton\"\n onClick={this.onToggleVisibility}\n >\n {this.visibilityToggleText}\n </q2-btn>\n )}\n {this.formattedValueObject.suffix && (\n <span class=\"input-suffix\">{this.formattedValueObject.suffix}</span>\n )}\n {this.badgeValue && (\n <q2-badge\n size=\"large\"\n theme={this.badgeTheme}\n >\n {this.badgeValue}\n </q2-badge>\n )}\n {this.hasError && this.type !== 'currency' && (\n <div>\n <q2-icon\n type=\"error\"\n class=\"icon-error\"\n test-id=\"iconError\"\n />\n </div>\n )}\n {this.iconRight && !this.formattedValueObject.suffix && (\n <div>\n <q2-icon\n type={this.iconRight}\n class=\"icon-right\"\n />\n </div>\n )}\n <slot name=\"input-right\" />\n </div>\n </div>\n );\n }\n /* tslint:enable:cyclomatic-complexity */\n\n /* tslint:disable:cyclomatic-complexity */\n standardInputDOM() {\n const { hasCustomDisplaySlot } = this;\n const inputClasses = ['input-field'];\n if (hasCustomDisplaySlot) inputClasses.push('sr');\n return (\n <Fragment>\n {hasCustomDisplaySlot && (\n <div class=\"custom-display-container\">\n <slot name=\"custom-display\"></slot>\n </div>\n )}\n <input\n class={inputClasses.join(' ')}\n id={this.inputId}\n type={this.computedType}\n size={this.formattedValueObject.prefix ? 10 : undefined}\n max={this.max}\n min={this.min}\n step={this.step}\n aria-current={this.current || undefined}\n aria-describedby={this.inputDescribedBy}\n aria-required={`${!this.optional}`}\n aria-invalid={`${this.hasError}`}\n aria-controls={(this.ariaControls && `${this.ariaControls}`) || undefined}\n aria-owns={(this.ariaOwns && `${this.ariaOwns}`) || undefined}\n aria-haspopup={(this.ariaHaspopup && `${this.ariaHaspopup}`) || undefined}\n aria-expanded={(!!this.ariaExpanded && `${!!this.ariaExpanded}`) || undefined}\n aria-activedescendant={this.ariaActivedescendant && `${this.ariaActivedescendant}`}\n aria-label={this.hideLabel && this.label ? loc(this.label) : undefined}\n autocomplete={this.computedAutocomplete}\n autocapitalize={this.autocapitalize}\n autocorrect={this.autocorrect === 'on' ? 'on' : 'off'}\n autofocus={this.autofocus}\n placeholder={(this.placeholder && loc(this.placeholder)) || undefined}\n role={(this.role && `${this.role}`) || undefined}\n test-id=\"inputField\"\n readonly={!!this.readonly}\n disabled={!!this.disabled}\n onFocus={this.onInputFocus}\n onBlur={this.onInputBlur}\n onClick={this.onInputClick}\n onKeyDown={this.onInputKeydown}\n onInput={this.onInputInput}\n onPaste={this.onInputPaste}\n inputmode={this.inputMode}\n />\n </Fragment>\n );\n }\n /* tslint:enable:cyclomatic-complexity */\n\n pseudoInputDOM() {\n const showPlaceholder = !this.value && !!this.placeholder;\n let ariaLabelSuffix = '';\n if (this.optional) {\n ariaLabelSuffix = loc('tecton.element.input.optional');\n }\n if (this.readonly) {\n ariaLabelSuffix = loc('tecton.element.input.readonly');\n }\n\n return (\n <div class=\"pseudo-input-container\">\n <button\n class=\"input-field\"\n type=\"button\"\n id={this.inputId}\n aria-describedby={this.inputDescribedBy}\n aria-invalid={`${this.hasError}`}\n aria-controls={(this.ariaControls && `${this.ariaControls}`) || undefined}\n aria-owns={(this.ariaOwns && `${this.ariaOwns}`) || undefined}\n aria-haspopup={(this.ariaHaspopup && `${this.ariaHaspopup}`) || undefined}\n aria-expanded={this.ariaExpanded === 'true' ? 'true' : undefined}\n aria-activedescendant={this.ariaActivedescendant && `${this.ariaActivedescendant}`}\n aria-label={`${this.value}, ${(this.label && loc(this.label)) || ''}${ariaLabelSuffix}`}\n role={(this.role && `${this.role}`) || undefined}\n disabled={!!this.disabled}\n test-id=\"q2InputInnerClearButton\"\n onFocus={this.onInputFocus}\n onBlur={this.onInputBlur}\n >\n <div class=\"custom-display-container\">\n <slot name=\"custom-display\">\n <span class={showPlaceholder ? 'placeholder-text' : ''}>\n {showPlaceholder ? this.placeholder : this.value}\n </span>\n </slot>\n </div>\n </button>\n </div>\n );\n }\n\n placeCursorAtEnd() {\n const { inputField } = this;\n inputField.selectionStart = inputField.selectionEnd = inputField.value.length;\n }\n\n calculateCursorPositionOnInput(): ICursorData {\n const input = this.inputField;\n const formattedLength = this.formattedValueObject.formattedValue.length;\n const currentValueLength = input.value.length;\n const defaultPosition = this.type === 'currency' ? formattedLength : 0;\n return {\n startingPosition: (input && input.selectionStart) || defaultPosition,\n valueLength: formattedLength,\n previousValueLength: input && currentValueLength,\n hasSelection: false,\n };\n }\n\n calculateCursorPositionOnFocus(): ICursorData {\n const { inputField } = this;\n const valueLength = inputField?.value?.length ?? 0;\n const startingPosition = inputField?.selectionStart ?? valueLength;\n\n return {\n startingPosition,\n valueLength,\n previousValueLength: valueLength,\n hasSelection: getSelection().toString().length > 0,\n };\n }\n\n setCursorPosition(cursorData: ICursorData) {\n if (this.canSetSelection && !cursorData.hasSelection) {\n const input = this.inputField;\n const { valueLength, previousValueLength, startingPosition } = cursorData;\n if (startingPosition === valueLength && valueLength >= previousValueLength && this.type === 'currency') {\n input.setSelectionRange(valueLength, valueLength);\n } else {\n const difference = valueLength - previousValueLength;\n // Never allow the cursor to move in reverse\n const newPosition = startingPosition + (difference > 0 ? difference : 0);\n input.setSelectionRange(newPosition, newPosition);\n }\n }\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"index9.js","mappings":"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","names":[],"sources":["./src/components/q2-input/formatting/number.ts","./src/components/q2-input/formatting/generic.ts","./src/components/q2-input/formatting/currency.ts","./src/components/q2-input/formatting/phone.ts","./src/components/q2-input/formatting/ssn.ts","./src/components/q2-input/formatting/tin.ts","./src/components/q2-input/formatting/alphanumeric.ts","./src/components/q2-input/formatting/alpha.ts","./src/components/q2-input/formatting/numeric.ts","./src/components/q2-input/formatting/postal.ts","./src/components/q2-input/formatting/date.ts","./src/components/q2-input/formatting/credit-card.ts","./src/components/q2-input/styles.scss?tag=q2-input&encapsulation=shadow","./src/components/q2-input/index.tsx"],"sourcesContent":["import { IFormatterValueObject, INumberInputFormatOptions } from '../types';\n\nexport default function formatNumber(\n val: string = '',\n options: INumberInputFormatOptions = {\n prefix: '',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: '',\n allowDecimal: false,\n allowNegative: true,\n },\n explicit: boolean = false\n): IFormatterValueObject {\n const isNegative = val[0] === '-';\n\n let value = val;\n\n const allowDecimal = !!options.allowDecimal && !!options.decimals;\n\n if (explicit) {\n const parsedValue = value.replace(/[^\\d.]/g, '');\n value = (parsedValue && Number(parsedValue).toFixed(allowDecimal ? options.decimals : 0)) || '';\n }\n\n value = value.replace(/[^\\d]/g, '');\n\n let { integerString, decimalString } = splitValue(value, allowDecimal, options.decimals);\n\n // define decimalString\n let decimalSeparator = options.decimalSeparator;\n if (!allowDecimal) {\n decimalSeparator = '';\n decimalString = '';\n }\n\n // define negative\n const negativeSymbol = options.allowNegative && isNegative ? '-' : '';\n\n value = `${negativeSymbol}${integerString}${decimalSeparator}${decimalString}`;\n\n // format integerString\n integerString = integerString.replace(/\\B(?=(\\d{3})+(?!\\d))/g, options.thousandsSeparator);\n\n const formattedValue: string =\n negativeSymbol || integerString ? `${negativeSymbol}${integerString}${decimalSeparator}${decimalString}` : '';\n\n const fullyFormattedValue: string =\n negativeSymbol || integerString\n ? `${negativeSymbol}${options.prefix}${integerString}${decimalSeparator}${decimalString}${options.suffix}`\n : '';\n\n let formattingCharacterCount = formattedValue.length - value.length;\n\n if (decimalSeparator) {\n formattingCharacterCount = formattingCharacterCount + options.decimalSeparator.length;\n }\n\n const prefix = options.prefix || options.suffix;\n const maxlength = Number.MAX_SAFE_INTEGER.toString().length + formattingCharacterCount + decimalString.length;\n\n const unformattedValue = `${integerString.replace(/[^0-9]/g, '')}${decimalString}`.replace(/^0+/, '');\n\n return {\n value,\n formattedValue,\n fullyFormattedValue,\n prefix,\n suffix: '',\n formattingCharacterCount,\n maxlength,\n unformattedValue,\n };\n}\n\nfunction splitValue(\n value: string,\n allowDecimal: boolean = false,\n decimals: number\n): { integerString: string; decimalString: string } {\n if (!allowDecimal) {\n return {\n integerString: value,\n decimalString: '',\n };\n }\n\n const splitIndex = value.length - decimals;\n\n let integerString = value.substring(0, splitIndex).padStart(1, '0');\n if (integerString.length > 1 && integerString[0] === '0') {\n integerString = integerString.substring(1);\n }\n\n const decimalString = value.substring(splitIndex).padStart(decimals, '0');\n\n return {\n integerString,\n decimalString,\n };\n}\n","import { IFormatterValueObject } from '../types';\n\nexport default function formatValue(\n value: string = '',\n mask: string = '',\n options?: {\n prefix?: string;\n suffix?: string;\n }\n): IFormatterValueObject {\n const prefix = (options && options.prefix) || '';\n const suffix = (options && options.suffix) || '';\n\n if (!value || !mask) {\n const fullyFormattedValue = `${prefix}${value}${suffix}`;\n return {\n value,\n formattedValue: value,\n fullyFormattedValue,\n prefix: prefix.trim() || suffix.trim(),\n formattingCharacterCount: 0,\n unformattedValue: value,\n };\n }\n\n const { unformattedValue, formattedValue, formattingCharacterCount } = generateMask(value, mask);\n\n const fullyFormattedValue = `${prefix}${formattedValue}${suffix}`;\n const maxlength = mask.length;\n const minFormattedLength = getMinimumFormattedLength(mask, prefix, suffix);\n\n return {\n value: unformattedValue,\n formattedValue,\n fullyFormattedValue,\n prefix: prefix.trim() || suffix.trim(),\n formattingCharacterCount,\n maxlength,\n minFormattedLength,\n unformattedValue,\n };\n}\n\nconst optionalValidatingChars = ['?'];\nfunction isOptionalValidatingChar(character: string): boolean {\n return optionalValidatingChars.includes(character);\n}\n\nconst knownValidatingChars = ['#', '@', '*', ...optionalValidatingChars];\nfunction isKnownValidatingChar(character: string): boolean {\n return knownValidatingChars.includes(character);\n}\n\nfunction getStaticFormattingChars(mask: string): Set<string> {\n const knownChars = knownValidatingChars.join('|');\n const formattingChars = mask.replace(new RegExp(`[${knownChars}]`, 'g'), '').split('');\n return new Set(formattingChars);\n}\n\nfunction isStaticFormattingChar(character: string, formattingChars: Set<string>): boolean {\n return formattingChars.has(character);\n}\n\nfunction getValidatedChar(char: string, matcher: string) {\n switch (matcher) {\n case '#':\n char = char.replace(/[^\\d]/g, '');\n break;\n case '@':\n char = char.toUpperCase().replace(/[^A-Z]+/g, ''); // allows only upper case\n break;\n case '*':\n char = char.toUpperCase().replace(/[^\\dA-Z]+/g, '');\n break;\n case '?':\n char = char.replace(/[^\\d]/g, '');\n break;\n default:\n return char;\n }\n return char;\n}\n\nfunction generateMask(value: string, mask: string) {\n const maskArray = mask.split('');\n const formattingChars = getStaticFormattingChars(mask);\n let currentValueIndex: number = 0;\n let formattingCharacterCount: number = 0;\n let unformattedValue: string = '';\n\n const formattedValue = maskArray.reduce((acc: string, character: string) => {\n if (currentValueIndex >= value.length) {\n return acc;\n }\n\n if (isOptionalValidatingChar(character) && isStaticFormattingChar(value[currentValueIndex], formattingChars)) {\n return acc;\n }\n\n if (isKnownValidatingChar(character)) {\n // Step value index if formatting character pushed out of place by user input\n currentValueIndex = getNextNonFormattingCharIndex(value, currentValueIndex, formattingChars);\n\n if (currentValueIndex >= value.length) {\n return acc;\n }\n\n const validChar = getValidatedChar(value[currentValueIndex], character);\n acc += validChar;\n unformattedValue += validChar;\n currentValueIndex++;\n } else {\n // Static formatting characters added directly to formatted string\n acc += character;\n formattingCharacterCount++;\n\n if (character === value[currentValueIndex]) {\n // Continue to walk value if next value at this index matches formatting character\n currentValueIndex++;\n }\n }\n\n return acc;\n }, '');\n\n return {\n unformattedValue,\n formattedValue,\n formattingCharacterCount,\n };\n}\n\nfunction getNextNonFormattingCharIndex(value: string, currentValueIndex: number, formattingChars: Set<string>): number {\n if (isStaticFormattingChar(value[currentValueIndex], formattingChars)) {\n currentValueIndex++;\n return getNextNonFormattingCharIndex(value, currentValueIndex, formattingChars);\n }\n\n return currentValueIndex;\n}\n\nfunction getMinimumFormattedLength(mask: string, prefix: string, suffix: string): number {\n return (\n mask.replace(new RegExp(`[${optionalValidatingChars.join('|')}]`, 'g'), '').length +\n prefix.length +\n suffix.length\n );\n}\n","import formatNumber from './number';\nimport formatValue from './generic';\nimport { IFormatterValueObject, INumberInputFormatOptions } from '../types';\n\n// decimal data source: http://www.iso.org/iso/home/standards/currency_codes.htm 09/Nov/2016\nexport const currencyFormats = {\n AED: {\n prefix: '',\n suffix: 'د.إ',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.99د.إ'\n AFN: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n ALL: {\n prefix: 'L',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'L9,999.99'\n AMD: {\n prefix: 'դր.',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'դր.9,999.99'\n ANG: {\n prefix: 'ƒ',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ƒ9,999.99'\n AOA: {\n prefix: 'Kz',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Kz9,999.99'\n ARS: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n AUD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n AWG: {\n prefix: 'ƒ',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ƒ9,999.99'\n AZN: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n BAM: {\n prefix: 'КМ',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'КМ9,999.99'\n BBD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n BDT: {\n prefix: '৳',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '৳9,999.99'\n BGN: {\n prefix: '৳',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '৳9,999.99'\n BHD: {\n prefix: '',\n suffix: 'ب.د',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.999ب.د'\n BIF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n BMD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n BND: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n BOB: {\n prefix: 'Bs.',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Bs.9,999.99'\n BRL: {\n prefix: 'R$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'R$9,999.99'\n BSD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n BTN: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n BWP: {\n prefix: 'P',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'P9,999.99'\n BYN: {\n prefix: 'Br',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Br9,999'\n BZD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n CAD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n CDF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999.99'\n CHF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999.99'\n CLF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 4,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9.999.9999'\n CLP: {\n prefix: '$',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999'\n CNY: {\n prefix: '¥',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¥9,999.99'\n COP: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n CRC: {\n prefix: '₡',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₡9,999.99'\n CUC: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n CUP: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n CVE: {\n prefix: '$',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999'\n CZK: {\n prefix: 'Kč',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Kč9,999.99'\n DJF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n DKK: {\n prefix: 'kr',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'kr9,999.99'\n DOP: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n DZD: {\n prefix: '',\n suffix: 'د.ج',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.99د.ج'\n EEK: {\n prefix: 'KR',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'KR9,999.99'\n EGP: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n ERN: {\n prefix: 'Nfk',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Nfk9,999.99'\n ETB: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n EUR: {\n prefix: '€',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '€9,999.99'\n FJD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n FKP: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n GBP: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n GEL: {\n prefix: 'ლ',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ლ9,999.99'\n GHS: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n GIP: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n GMD: {\n prefix: 'D',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'D9,999.99'\n GNF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n GTQ: {\n prefix: 'Q',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Q9,999.99'\n GYD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n HKD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.9'\n HNL: {\n prefix: 'L',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'L9,999.99'\n HRK: {\n prefix: 'kn',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'kn9,999.99'\n HTG: {\n prefix: 'G',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'G9,999.99'\n HUF: {\n prefix: 'Ft',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Ft9,999.99'\n IDR: {\n prefix: 'Rs',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Rs9,999.99'\n ILS: {\n prefix: '₪',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₪9,999.99'\n INR: {\n prefix: '₨',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₨9,999.99'\n IQD: {\n prefix: '',\n suffix: 'ع.د',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.999ع.د'\n IRR: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n ISK: {\n prefix: 'kr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'kr9,999'\n JMD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n JOD: {\n prefix: '',\n suffix: 'د.ا',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.99د.ا'\n JPY: {\n prefix: '¥',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¥9,999'\n KES: {\n prefix: 'Sh',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Sh9,999.99'\n KGS: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n KHR: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n KMF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n KPW: {\n prefix: '₩',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₩9,999.99'\n KRW: {\n prefix: '₩',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₩9,999.99'\n KWD: {\n prefix: 'د.ك',\n suffix: '',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.999د.ك'\n KYD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n KZT: {\n prefix: '〒',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '〒9,999.99'\n LAK: {\n prefix: '₭',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₭9,999.99'\n LBP: {\n prefix: '',\n suffix: 'ل.ل',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ل.ل9,999.99'\n LKR: {\n prefix: 'Rs',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Rs9,999.99'\n LRD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n LSL: {\n prefix: 'L',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'L9,999.99'\n LTL: {\n prefix: 'Lt',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Lt9,999.99'\n LVL: {\n prefix: 'Ls',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Ls9,999.99'\n LYD: {\n prefix: '',\n suffix: 'ل.د',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.999ل.د'\n MAD: {\n prefix: '',\n suffix: 'د.م.',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.99د.م.'\n MDL: {\n prefix: 'L',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'L9,999.99'\n MGA: {\n prefix: '¤',\n suffix: '',\n decimals: 1,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.9'\n MKD: {\n prefix: 'ден',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ден9,999.99'\n MMK: {\n prefix: 'K',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'K9,999.99'\n MNT: {\n prefix: '₮',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₮9,999.99'\n MOP: {\n prefix: 'P',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'P9,999.99'\n MRU: {\n prefix: 'UM',\n suffix: '',\n decimals: 1,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'UM9,999.9'\n MUR: {\n prefix: '₨',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₨9,999.99'\n MVR: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n MWK: {\n prefix: 'MK',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'MK9,999.99'\n MXN: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n MYR: {\n prefix: 'RM',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'RM9,999.99'\n MZN: {\n prefix: 'MTn',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'MTn9,999.99'\n NAD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n NGN: {\n prefix: '₦',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₦9,999.99'\n NIO: {\n prefix: 'C$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'C$9,999.99'\n NOK: {\n prefix: 'kr',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'kr9,999.99'\n NPR: {\n prefix: '₨',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₨9,999.99'\n NZD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n OMR: {\n prefix: '',\n suffix: 'ر.ع.',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.999ر.ع.'\n PAB: {\n prefix: 'B/.',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'B/.9,999.99'\n PEN: {\n prefix: 'S/.',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'S/.9,999.99'\n PGK: {\n prefix: 'K',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'K9,999.99'\n PHP: {\n prefix: 'p',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'p9,999.99'\n PKR: {\n prefix: '₨',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₨9,999.99'\n PLN: {\n prefix: 'zł',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'zł9,999.99'\n PYG: {\n prefix: '¤',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999'\n QAR: {\n prefix: '',\n suffix: 'ر.ق',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.99ر.ق'\n RON: {\n prefix: 'L',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'L9,999.99'\n RSD: {\n prefix: 'дин.',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'дин.9,999.99'\n RUB: {\n prefix: 'руб.',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'руб.9,999.99'\n RWF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n SAR: {\n prefix: '',\n suffix: 'ر.س',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.99ر.س'\n SBD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n SCR: {\n prefix: '₨',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₨9,999.99'\n SDG: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n SEK: {\n prefix: 'kr',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'kr9,999.99'\n SGD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n SHP: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n SKK: {\n prefix: 'Sk',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Sk9,999.99'\n SLL: {\n prefix: 'Le',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Le9,999.99'\n SOS: {\n prefix: 'Sh',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Sh9,999.99'\n SRD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n STN: {\n prefix: 'Db',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Db9,999.99'\n SVC: {\n prefix: '₡',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₡9,999.99'\n SYP: {\n prefix: '£',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '£9,999.99'\n SZL: {\n prefix: 'L',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'L9,999.99'\n THB: {\n prefix: '฿',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '฿9,999.99'\n TJS: {\n prefix: 'ЅМ',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ЅМ9,999.99'\n TMM: {\n prefix: 'm',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'm9,999.99'\n TND: {\n prefix: '',\n suffix: 'د.ت',\n decimals: 3,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '9,999.999د.ت'\n TOP: {\n prefix: 'T$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'T$9,999.99'\n TRY: {\n prefix: 'YTL',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'YTL9,999.99'\n TTD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n TWD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n TZS: {\n prefix: 'Sh',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Sh9,999.99'\n UAH: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n UGX: {\n prefix: 'Sh',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Sh9,999'\n USD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n UYU: {\n prefix: '$',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999'\n UZS: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n VEF: {\n prefix: 'Bs F',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Bs F9,999.99'\n VND: {\n prefix: '₫',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '₫9,999'\n VUV: {\n prefix: 'Vt',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Vt9,999'\n WST: {\n prefix: 'T',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'T9,999.99'\n XAF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n XCD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n XOF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n XPF: {\n prefix: 'Fr',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'Fr9,999'\n YER: {\n prefix: '¤',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '¤9,999.99'\n ZAR: {\n prefix: 'R',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'R9,999.99'\n ZMW: {\n prefix: 'ZK',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // 'ZK9,999.99'\n ZWD: {\n prefix: '$',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n }, // '$9,999.99'\n};\n\nexport default function formatCurrency(\n value: string,\n currencyCode: string = 'USD',\n explicit: boolean = false\n): IFormatterValueObject {\n let processedCurrencyCode = currencyCode || '';\n let allowDecimal = true;\n\n if (processedCurrencyCode.includes('-integer')) {\n processedCurrencyCode = processedCurrencyCode.split('-integer')[0];\n allowDecimal = false;\n }\n\n const currencyFormat = currencyFormats[processedCurrencyCode];\n\n if (!currencyFormat) {\n return formatValue(value);\n }\n\n const options: INumberInputFormatOptions = {\n ...currencyFormat,\n allowDecimal: allowDecimal && currencyFormat.decimals > 0,\n allowNegative: false,\n };\n\n return formatNumber(value, options, explicit);\n}\n","import { IFormatterValueObject } from '../types';\nimport formatValue from './generic';\n\nexport const phoneNumberFormats = {\n AF: {\n mask: '(##) #######',\n prefix: '+93 ',\n },\n AL: {\n mask: '#######',\n prefix: '+355 ',\n },\n DZ: {\n mask: '(##) ###-###',\n prefix: '+213 ',\n },\n // AS\n AD: {\n mask: '(#) #####',\n prefix: '+376 ',\n },\n AO: {\n mask: '#########',\n prefix: '+244 ',\n },\n AI: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n AG: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n AR: {\n mask: '##########',\n prefix: '+54 ',\n },\n AM: {\n mask: '########',\n prefix: '+375 ',\n },\n AQ: {\n mask: '##-####',\n prefix: '+672 ',\n },\n AW: {\n mask: '###-####',\n prefix: '+297 ',\n },\n AU: {\n mask: '(##) ####-####',\n prefix: '+61 ',\n },\n /* AT: {\n mask:'####?????????',\n prefix: ''\n }, */\n AT: {\n mask: '#############',\n prefix: '+43 ',\n },\n /* AZ: {\n mask:'########?',\n prefix: ''\n }, */\n AZ: {\n mask: '#########',\n prefix: '+994 ',\n },\n BS: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n BH: {\n mask: '####-####',\n prefix: '+973 ',\n },\n /* BD: {\n mask:'#######??',\n prefix: ''\n }, */\n BD: {\n mask: '#########',\n prefix: '+880 ',\n },\n BB: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n BY: {\n mask: '#########',\n prefix: '+375 ',\n },\n BE: {\n mask: '########??',\n prefix: '+32 ',\n },\n BZ: {\n mask: '#######',\n prefix: '+501 ',\n },\n BJ: {\n mask: '(##) ###-###',\n prefix: '+229 ',\n },\n BM: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n BT: {\n mask: '(#) ###-###',\n prefix: '+975 ',\n },\n BO: {\n mask: '(#) ###-####',\n prefix: '+591 ',\n },\n BA: {\n mask: '(##) ##-##-##',\n prefix: '+387 ',\n },\n /* BW: {\n mask:'#######?',\n prefix: ''\n }, */\n BW: {\n mask: '########',\n prefix: '+267 ',\n },\n BR: {\n mask: '(##) ####-####',\n prefix: '+55 ',\n },\n BN: {\n mask: '###-####',\n prefix: '+673 ',\n },\n BG: {\n mask: '#######?',\n prefix: '+359 ',\n },\n BF: {\n mask: '##-##-##-##',\n prefix: '+226 ',\n },\n BI: {\n mask: '####-####',\n prefix: '+257 ',\n },\n KH: {\n mask: '(##) ######',\n prefix: '+855 ',\n },\n CM: {\n mask: '####-####',\n prefix: '+237 ',\n },\n CA: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n CV: {\n mask: '###-####',\n prefix: '+238 ',\n },\n KY: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n CF: {\n mask: '###-###',\n prefix: '+236 ',\n },\n TD: {\n mask: '###-##-##',\n prefix: '+235 ',\n },\n /* CL: {\n mask:'########?',\n prefix: ''\n }, */\n CL: {\n mask: '#########',\n prefix: '+56 ',\n },\n /* CN: {\n mask:'########???',\n prefix: ''\n }, */\n CN: {\n mask: '###########',\n prefix: '+86 ',\n },\n /* CO: {\n mask:'########??',\n prefix: ''\n }, */\n CO: {\n mask: '##########',\n prefix: '57 ',\n },\n KM: {\n mask: '###-####',\n prefix: '+269 ',\n },\n CD: {\n mask: '###-####',\n prefix: '+243 ',\n },\n CG: {\n mask: '###-####',\n prefix: '+242 ',\n },\n // CK\n CR: {\n mask: '####-####',\n prefix: '+506 ',\n },\n CI: {\n mask: '####-####',\n prefix: '+225 ',\n },\n HR: {\n mask: '########?',\n prefix: '+385 ',\n },\n /* CU: {\n mask:'#####?ID:?????',\n prefix: ''\n }, */\n CU: {\n mask: '###########',\n prefix: '+53 ',\n },\n CY: {\n mask: '####-####',\n prefix: '+357 ',\n },\n CZ: {\n mask: '#########',\n prefix: '+420 ',\n },\n DK: {\n mask: '####-####',\n prefix: '+45 ',\n },\n DJ: {\n mask: '##-##-##-##',\n prefix: '+253 ',\n },\n DM: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n DO: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n TL: {\n mask: '###-####',\n prefix: '+670 ',\n },\n EC: {\n mask: '(##) ###-####',\n prefix: '+593 ',\n },\n /* EG: {\n mask:'########??',\n prefix: ''\n }, */\n EG: {\n mask: '##########',\n prefix: '+20 ',\n },\n SV: {\n mask: '####-####',\n prefix: '+503 ',\n },\n GQ: {\n mask: '##-####',\n prefix: '+240 ',\n },\n // ER:\n EE: {\n mask: '#######?',\n prefix: '+372 ',\n },\n ET: {\n mask: '(##) ###-####',\n prefix: '+251 ',\n },\n FK: {\n mask: '#####',\n prefix: '+500 ',\n },\n FO: {\n mask: '######',\n prefix: '+298 ',\n },\n FJ: {\n mask: '###-####',\n prefix: '+679 ',\n },\n /* FI: {\n mask:'#####???????',\n prefix: ''\n }, */\n FI: {\n mask: '############',\n prefix: '+358 ',\n },\n FR: {\n mask: '#########',\n prefix: '+33 ',\n },\n /* GF: {\n mask:'#########?',\n prefix: ''\n }, */\n GF: {\n mask: '##########',\n prefix: '+594 ',\n },\n PF: {\n mask: '######',\n prefix: '+689 ',\n },\n GA: {\n mask: '######?',\n prefix: '+241 ',\n },\n GM: {\n mask: '###-####',\n prefix: '+220 ',\n },\n GE: {\n mask: '########',\n prefix: '+995 ',\n },\n /* DE: {\n mask:'######?????',\n prefix: ''\n }, */\n DE: {\n mask: '###########',\n prefix: '+49 ',\n },\n /* GH: {\n mask:'########?',\n prefix: ''\n }, */\n GH: {\n mask: '#########',\n prefix: '+233 ',\n },\n GI: {\n mask: '####-####',\n prefix: '+350 ',\n },\n GR: {\n mask: '##########',\n prefix: '+30 ',\n },\n GL: {\n mask: '###-###',\n prefix: '+299 ',\n },\n GD: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n GP: {\n mask: '##########',\n prefix: '+590 ',\n },\n GU: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n GT: {\n mask: '####-####',\n prefix: '+502 ',\n },\n GN: {\n mask: '####-####',\n prefix: '+224 ',\n },\n GW: {\n mask: '###-####',\n prefix: '+245 ',\n },\n GY: {\n mask: '(###) ####',\n prefix: '+592 ',\n },\n HK: {\n mask: '####-####',\n prefix: '+852 ',\n },\n HN: {\n mask: '########',\n prefix: '+504 ',\n },\n HT: {\n mask: '####-####',\n prefix: '+509 ',\n },\n HU: {\n mask: '########??',\n prefix: '+36 ',\n },\n /* IS: {\n mask:'#######??',\n prefix: ''\n }, */\n IS: {\n mask: '#########',\n prefix: '+354 ',\n },\n IN: {\n mask: '##########',\n prefix: '+91 ',\n },\n /* ID: {\n mask:'#######???',\n prefix: ''\n }, */\n ID: {\n mask: '#######??????', // allows 7 ~ 13 digits\n prefix: '+62 ',\n },\n IR: {\n mask: '##########',\n prefix: '+98 ',\n },\n /* IQ: {\n mask:'########??',\n prefix: ''\n }, */\n IQ: {\n mask: '##########',\n prefix: '+964 ',\n },\n /* IE: {\n mask:'#######??',\n prefix: ''\n }, */\n IE: {\n mask: '#########',\n prefix: '+353 ',\n },\n /* IL: {\n mask:'########?',\n prefix: ''\n }, */\n IL: {\n mask: '#########',\n prefix: '+972 ',\n },\n /* IT: {\n mask:'######????',\n prefix: ''\n }, */\n IT: {\n mask: '##########',\n prefix: '+39 ',\n },\n JM: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n JP: {\n mask: '#########',\n prefix: '+81 ',\n },\n /* JO: {\n mask:'#######??',\n prefix: ''\n }, */\n JO: {\n mask: '#########',\n prefix: '+962 ',\n },\n KZ: {\n mask: '(###) ####-###',\n prefix: '+7 ',\n },\n /* KE: {\n mask:'######????',\n prefix: ''\n }, */\n KE: {\n mask: '##########',\n prefix: '+254 ',\n },\n KI: {\n mask: '##-###',\n prefix: '+686 ',\n },\n // kp\n /* KR: {\n mask:'####??????',\n prefix: ''\n }, */\n KR: {\n mask: '##########',\n prefix: '+82 ',\n },\n KW: {\n mask: '####-####',\n prefix: '+965 ',\n },\n KG: {\n mask: '#########',\n prefix: '+996 ',\n },\n LA: {\n mask: '########?',\n prefix: '+856 ',\n },\n LV: {\n mask: '####-####',\n prefix: '+371 ',\n },\n LB: {\n mask: '#######?',\n prefix: '+961 ',\n },\n LS: {\n mask: '##-###-###',\n prefix: '+266 ',\n },\n // LR\n /* LY: {\n mask:'########?',\n prefix: ''\n }, */\n LY: {\n mask: '########?',\n prefix: '+218 ',\n },\n LI: {\n mask: '###-####',\n prefix: '+423 ',\n },\n LT: {\n mask: '########',\n prefix: '+370 ',\n },\n /* LU: {\n mask:'#####??????',\n prefix: '+352 '\n }, */\n LU: {\n mask: '###########',\n prefix: '+352 ',\n },\n MO: {\n mask: '####-####',\n prefix: '+853 ',\n },\n MK: {\n mask: '########',\n prefix: '+389 ',\n },\n MG: {\n mask: '##-##-###-##',\n prefix: '+261 ',\n },\n /* MW: {\n mask:'#######??',\n prefix: '+265 '\n }, */\n MW: {\n mask: '#########',\n prefix: '+265 ',\n },\n /* MY: {\n mask:'#######???',\n prefix: '+60 '\n }, */\n MY: {\n mask: '##########',\n prefix: '+60 ',\n },\n MV: {\n mask: '###-####',\n prefix: '+960 ',\n },\n ML: {\n mask: '####-####',\n prefix: '+223 ',\n },\n MT: {\n mask: '##-##-##-##',\n prefix: '+356 ',\n },\n MH: {\n mask: '###-####',\n prefix: '+692 ',\n },\n MQ: {\n mask: '###-######',\n prefix: '+596 ',\n },\n // MR\n MU: {\n mask: '###-####',\n prefix: '+230 ',\n },\n // YT\n MX: {\n mask: '(###) ###-####',\n prefix: '+52 ',\n },\n // FM\n MD: {\n mask: '########',\n prefix: '+373 ',\n },\n MC: {\n mask: '####-####',\n prefix: '+377 ',\n },\n /* MN: {\n mask:'######?????',\n prefix: '+976 '\n }, */\n MN: {\n mask: '###########',\n prefix: '+976 ',\n },\n MS: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n MA: {\n mask: '#########?', // allows 9 ~ 10 digits\n prefix: '+212 ',\n },\n /* MZ: {\n mask:'########?',\n prefix: '+258 '\n }, */\n MZ: {\n mask: '#########',\n prefix: '+258 ',\n },\n /* MM: {\n mask:'#######?',\n prefix: '+95 '\n }, */\n MM: {\n mask: '########',\n prefix: '+95 ',\n },\n /* NA: {\n mask:'######????',\n prefix: '+264 '\n }, */\n NA: {\n mask: '##########',\n prefix: '+264 ',\n },\n // NR\n /* NP: {\n mask:'########??',\n prefix: '+977 '\n }, */\n NP: {\n mask: '##########',\n prefix: '+977 ',\n },\n NL: {\n mask: '#########',\n prefix: '+31 ',\n },\n /* AN: {\n mask:'#######?',\n prefix: '+599 '\n }, */\n AN: {\n mask: '########',\n prefix: '+599 ',\n },\n NC: {\n mask: '###-###',\n prefix: '+687 ',\n },\n /* NZ: {\n mask:'########??',\n prefix: '+64 '\n }, */\n NZ: {\n mask: '##########',\n prefix: '+64 ',\n },\n NI: {\n mask: '####-####',\n prefix: '+505 ',\n },\n NE: {\n mask: '##-###-###',\n prefix: '+227 ',\n },\n /* NG: {\n mask:'########??',\n prefix: '+234 '\n }, */\n NG: {\n mask: '##########',\n prefix: '+234 ',\n },\n // NU\n MP: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n NO: {\n mask: '####-####',\n prefix: '+47 ',\n },\n OM: {\n mask: '####-####',\n prefix: '+968 ',\n },\n /* PK: {\n mask:'#########?',\n prefix: '+92 '\n }, */\n PK: {\n mask: '##########',\n prefix: '+92 ',\n },\n PW: {\n mask: '###-####',\n prefix: '+680 ',\n },\n /* PA: {\n mask:'#######?',\n prefix: '+507 '\n }, */\n PA: {\n mask: '########',\n prefix: '+507 ',\n },\n /* PG: {\n mask:'#######?',\n prefix: '+675 '\n }, */\n PG: {\n mask: '########',\n prefix: '+675 ',\n },\n // PY\n /* PE: {\n mask:'#######????',\n prefix: '+51 '\n }, */\n PE: {\n mask: '###########',\n prefix: '+51 ',\n },\n /* PH: {\n mask:'########??',\n prefix: '+63 '\n }, */\n PH: {\n mask: '##########',\n prefix: '+63 ',\n },\n PL: {\n mask: '#########',\n prefix: '+48 ',\n },\n PT: {\n mask: '#-####-####',\n prefix: '+351 ',\n },\n PR: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n QA: {\n mask: '###-####',\n prefix: '+974 ',\n },\n RE: {\n mask: '###-###-###',\n prefix: '+262 ',\n },\n RO: {\n mask: '#########',\n prefix: '+40 ',\n },\n RU: {\n mask: '##########',\n prefix: '+7 ',\n },\n RW: {\n mask: '###-###-###',\n prefix: '+250 ',\n },\n SH: {\n mask: '#-###',\n prefix: '+290 ',\n },\n // PM\n KN: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n LC: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n VC: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n // WS\n // SM\n ST: {\n mask: '##-####',\n prefix: '+239 ',\n },\n /* SA: {\n mask:'########?',\n prefix: '+966 '\n }, */\n SA: {\n mask: '#########',\n prefix: '+966 ',\n },\n SN: {\n mask: '##-###-####',\n prefix: '+221 ',\n },\n SC: {\n mask: '###-###',\n prefix: '+248 ',\n },\n SL: {\n mask: '(##) ###-###',\n prefix: '+232 ',\n },\n SG: {\n mask: '####-####',\n prefix: '+65 ',\n },\n SK: {\n mask: '#########',\n prefix: '+421 ',\n },\n SI: {\n mask: '########',\n prefix: '+386 ',\n },\n SB: {\n mask: '##-###',\n prefix: '+677 ',\n },\n // SO\n ZA: {\n mask: '(##) ###-####',\n prefix: '+27 ',\n },\n ES: {\n mask: '###-###-###',\n prefix: '+34 ',\n },\n LK: {\n mask: '(##) ###-####',\n prefix: '+94 ',\n },\n SD: {\n mask: '##-###-####',\n prefix: '+249 ',\n },\n SR: {\n mask: '######?',\n prefix: '+597 ',\n },\n SZ: {\n mask: '###-####',\n prefix: '+268 ',\n },\n /* SE: {\n mask:'######?????',\n prefix: '+46 '\n }, */\n SE: {\n mask: '###########',\n prefix: '+46 ',\n },\n CH: {\n mask: '(##) ###-####',\n prefix: '+41 ',\n },\n /* SY: {\n mask:'########?',\n prefix: '+963 '\n }, */\n SY: {\n mask: '#########',\n prefix: '+963 ',\n },\n TJ: {\n mask: '#########',\n prefix: '+992 ',\n },\n TZ: {\n mask: '#########',\n prefix: '+255 ',\n },\n /* TH: {\n mask:'########?',\n prefix: '+66 '\n }, */\n TH: {\n mask: '#########',\n prefix: '+66 ',\n },\n TG: {\n mask: '###-####',\n prefix: '+228 ',\n },\n // TK\n // TO\n TT: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n TN: {\n mask: '##-###-###',\n prefix: '+216 ',\n },\n TR: {\n mask: '(###) ###-####',\n prefix: '+90 ',\n },\n TM: {\n mask: '########',\n prefix: '+993 ',\n },\n TC: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n // TV\n UG: {\n mask: '#########',\n prefix: '+256 ',\n },\n UA: {\n mask: '(##) ###-####',\n prefix: '+380 ',\n },\n /* AE: {\n mask:'########?',\n prefix: '+971 '\n }, */\n AE: {\n mask: '#########',\n prefix: '+971 ',\n },\n /* GB: {\n mask:'##########???',\n prefix: '+44 '\n }, */\n GB: {\n mask: '#########????',\n prefix: '+44 ',\n },\n UY: {\n mask: '########?',\n prefix: '+598 ',\n },\n UZ: {\n mask: '(##) ###-####',\n prefix: '+998 ',\n },\n // VU\n // VA\n VE: {\n mask: '(###) ###-####',\n prefix: '+58 ',\n },\n VN: {\n mask: '#######????',\n prefix: '+84 ',\n },\n VG: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n VI: {\n mask: '(###) ###-####',\n prefix: '+1 ',\n },\n // WF\n /* YE: {\n mask:'#######??',\n prefix: '+967 '\n }, */\n YE: {\n mask: '#########',\n prefix: '+967 ',\n },\n // YU\n ZM: {\n mask: '#########',\n prefix: '+260 ',\n },\n /* ZW: {\n mask:'####?????',\n prefix: '+263 '\n }, */\n ZW: {\n mask: '#########',\n prefix: '+263 ',\n },\n AC: {\n mask: '####',\n prefix: '+247 ',\n },\n ME: {\n mask: '(##) ###-####',\n prefix: '+382 ',\n },\n /* PS: {\n mask:'########?',\n prefix: '+970 '\n }, */\n PS: {\n mask: '#########',\n prefix: '+970 ',\n },\n /* RS: {\n mask:'#######??',\n prefix: '+381 '\n }, */\n RS: {\n mask: '#########',\n prefix: '+381 ',\n },\n /* TW: {\n mask:'########?',\n prefix: '+886 '\n }, */\n TW: {\n mask: '#########',\n prefix: '+886 ',\n },\n CW: {\n mask: '#-###-####',\n prefix: '+599 ',\n },\n US: {\n mask: '(###) ###-####',\n prefix: '',\n },\n};\n\nexport default function formatPhoneNumber(value: string, isoCode: string = 'US'): IFormatterValueObject {\n const { mask, prefix } = phoneNumberFormats[isoCode] || phoneNumberFormats.US;\n\n const options = {\n prefix,\n };\n\n const val = value || '';\n // Brazil need edge case handle, mobile: (xx) xxxxx-xxxx, land phone: (xx) xxxx-xxxx\n if (isoCode === 'BR' && val.replace(/[^0-9]/g, '').length === 11) {\n return formatValue(val, '(##) #####-####', options);\n } else {\n return formatValue(val, mask, options);\n }\n}\n","import formatValue from './generic';\n\nexport default function formatSSN(value: string) {\n return formatValue(value, '###-##-####');\n}\n","import formatValue from './generic';\n\nexport default function formatTIN(value: string) {\n return formatValue(value, '##-#######');\n}\n","import formatValue from './generic';\n\nexport default function formatAlphanumeric(value: string) {\n const val = (value || '').replace(/[^\\da-zA-Z]/g, '');\n return formatValue(val);\n}\n","import formatValue from './generic';\n\nexport default function formatAlpha(value: string, modifier?: string) {\n let val = value || '';\n\n if (modifier === 'spaced') {\n val = val.replace(/[^a-zA-Z ]/g, '');\n } else {\n val = val.replace(/[^a-zA-Z]/g, '');\n }\n\n return formatValue(val);\n}\n","import formatNumber from './number';\nimport formatValue from './generic';\nimport { IDict } from '../../../util';\nimport { INumberInputFormatOptions } from '../types';\n\nconst numberFormats: IDict<INumberInputFormatOptions> = {\n delimited: {\n prefix: '',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n allowDecimal: false,\n allowNegative: true,\n },\n integer: {\n prefix: '',\n suffix: '',\n decimals: 0,\n decimalSeparator: '.',\n thousandsSeparator: '',\n allowDecimal: true,\n allowNegative: true,\n },\n dec: {\n prefix: '',\n suffix: '',\n decimals: 2,\n decimalSeparator: '.',\n thousandsSeparator: ',',\n allowDecimal: true,\n allowNegative: true,\n },\n};\n\nfunction getNumberFormat(key: string): INumberInputFormatOptions | undefined {\n let decimals: number;\n if (key.includes('dec')) {\n decimals = Number(key.replace('dec', ''));\n key = 'dec';\n }\n\n let numberFormat = numberFormats[key];\n\n if (!numberFormat) {\n return;\n }\n\n numberFormat = { ...numberFormat };\n\n if (decimals) {\n numberFormat.decimals = decimals;\n }\n\n return numberFormat;\n}\n\nfunction formatNumeric(value: string = '', modifier: string = '', explicit: boolean = false) {\n const numberFormat = getNumberFormat(modifier);\n\n if (!numberFormat) {\n const val = (value || '').replace(/[^\\d.,-]/g, '');\n return formatValue(val);\n }\n\n return formatNumber(value, numberFormat, explicit);\n}\n\nexport function formatPercentage(value: string = '', modifier: string = '', explicit: boolean = false) {\n const numberFormat = getNumberFormat(modifier);\n\n if (!numberFormat) {\n const val = (value || '').replace(/[^\\d.,-]/g, '');\n return formatValue(val, undefined, { suffix: '%' });\n }\n\n numberFormat.suffix = '%';\n\n return formatNumber(value, numberFormat, explicit);\n}\n\nexport default formatNumeric;\n","import formatValue from './generic';\nimport formatAlphanumeric from './alphanumeric';\n\nconst postalCodeFormats = {\n AF: '####',\n AL: '####',\n DZ: '#####',\n AC: 'ASCN 1ZZ',\n AD: 'AD###', // pre\n AR: '####',\n 'AR+': '@####@@@',\n AI: 'AI-2640',\n AM: '####',\n AS: '#####',\n 'AS+4': '#####-####',\n AU: '####',\n AT: '####',\n AZ: 'AZ ####', // pre\n BH: '###?',\n BD: '####',\n BB: 'BB#####', // pre\n BY: '######',\n BE: '####',\n BM: '@@ **',\n BT: '#####',\n BA: '######',\n BR: '#####',\n 'BR+3': '#####-###',\n VG: 'VG####', // pre\n BN: '@@####',\n BG: '####',\n KH: '#####',\n KY: 'KY#-####', // pre\n CA: '@#@ #@#',\n CL: '###-####',\n CN: '######',\n CX: '####',\n CC: '####',\n CO: '######',\n CR: '#####',\n 'CR+4': '#####-####',\n CV: '####',\n HR: '#####',\n CU: '#####',\n CY: '####',\n CZ: '### ##',\n DK: '####',\n DO: '#####',\n EC: '######',\n SV: '####',\n EG: '#####',\n EE: '#####',\n ET: '####',\n FK: 'FIQQ 1ZZ',\n FO: '###',\n FI: '#####',\n FR: '#####',\n GF: '973##', // pre?\n PF: '987##', // pre?\n GI: 'GX11 1AA',\n GE: '####',\n DE: '#####',\n GR: '### ##',\n GL: '####',\n GP: '971##', // pre?\n GU: '#####',\n 'GU+4': '#####-####',\n GT: '#####',\n GG: 'GY#? #@@',\n GN: '###',\n GS: 'SIQQ 1ZZ',\n GW: '####',\n HT: '####',\n HN: '@@####',\n 'HN-': '#####',\n HU: '####',\n IS: '###',\n IN: '### ###',\n ID: '#####',\n IE: '*** ****',\n IR: '##########',\n IQ: '#####',\n IM: 'IM#? #@@', // pre\n IL: '#######',\n IT: '#####',\n JM: '##',\n JP: '###-####',\n JE: 'JE#? #@@', // pre\n JO: '#####',\n KZ: '######',\n KE: '#####',\n KR: '#####',\n KN: 'KN####',\n XK: '#####',\n KW: '#####',\n KG: '######',\n LA: '#####',\n LV: 'LV-####', // pre\n LB: '####? ????', // also 00000\n LS: '###',\n LR: '####',\n LI: '####',\n LT: '#####', // pre-\n LU: '####',\n MK: '####',\n MG: '###',\n MY: '#####',\n MV: '#####',\n MT: '@@@ ####',\n MH: '#####',\n 'MH+4': '#####-####',\n MU: '#####',\n MQ: '972##', // pre?\n MW: '######',\n YT: '976##', // pre?\n MX: '#####',\n FM: '#####',\n 'FM+4': '#####-####',\n MD: '####', // pre\n MC: '980##', // pre?\n MN: '#####',\n ME: '#####',\n MA: '#####',\n MZ: '####',\n MM: '#####',\n NA: '#####',\n NP: '#####',\n NC: '988##', // pre?\n NZ: '####',\n NI: '#####',\n NE: '####',\n NG: '######',\n NF: '####',\n MP: '#####',\n NO: '####',\n OM: '###',\n PK: '#####',\n PW: '#####',\n 'PW+4': '#####-####',\n PS: '###',\n PA: '####',\n PG: '###',\n PY: '####',\n PE: '#####',\n 'PE+': '####', // pre\n PH: '####',\n PL: '##-###',\n PT: '####',\n 'PT+3': '####-###',\n PR: '#####',\n 'PR+4': '#####-####',\n RE: '974##', // pre?\n PM: '975##',\n PN: 'PCRN 1ZZ',\n RO: '######',\n RU: '######',\n LC: 'LC## ###', // pre\n VC: '####', // pre\n WS: '####', // pre\n SM: '4879#', // pre?\n SA: '#####',\n 'SA+4': '#####-####',\n SN: '#####',\n RS: '#####',\n SG: '######',\n SH: '@@@@ 1ZZ',\n SK: '### ##',\n SI: '####', // pre?\n SO: '@@ #####',\n ZA: '####',\n ES: '#####',\n LK: '#####',\n SD: '#####',\n SZ: '@###',\n SE: '### ##',\n CH: '####',\n SJ: '####',\n TW: '###',\n 'TW+2': '###-##?',\n TJ: '######',\n TZ: '#####',\n TH: '#####',\n TT: '######',\n TN: '####',\n TR: '#####',\n TM: '######',\n UA: '#####',\n UY: '#####',\n VI: '#####',\n 'VI+4': '#####-####',\n UZ: '######',\n VE: '####',\n 'VE-': '####-@',\n VN: '#####?',\n YU: '#####',\n WF: '986##', // pre?\n ZM: '#####',\n US: '#####',\n 'US+4': '#####-####',\n};\nexport default function formatPostalCode(value: string, modifier: string = 'US') {\n const mask = postalCodeFormats[modifier];\n\n if (!mask) {\n return formatAlphanumeric(value);\n }\n\n return formatValue(value, mask);\n}\n","import formatValue from './generic';\n\nconst dateFormats = {\n 'MM/DD/YYYY': '##/##/####',\n 'M/D/YYYY': '#?/#?/####',\n 'MM/DD/YY': '##/##/##',\n 'M/D/YY': '#?/#?/##',\n 'MM/YY': '##/##',\n 'M/YY': '#?/##',\n 'DD/MM/YYYY': '##/##/####',\n 'D/M/YYYY': '#?/#?/####',\n 'DD/MM/YY': '##/##/##',\n 'D/M/YY': '#?/#?/##',\n 'MM-DD-YYYY': '##-##-####',\n 'M-D-YYYY': '#?-#?-####',\n 'MM-DD-YY': '##-##-##',\n 'M-D-YY': '#?-#?-##',\n 'MM-YY': '##-##',\n 'M-YY': '#?-##',\n 'DD-MM-YYYY': '##-##-####',\n 'D-M-YYYY': '#?-#?-####',\n 'DD-MM-YY': '##-##-##',\n 'D-M-YY': '#?-#?-##',\n};\n\nexport default function formatDate(value: string, format: string = 'MM/DD/YYYY') {\n const mask = dateFormats[format] || dateFormats['MM/DD/YYYY'];\n\n const formattedValueObject = formatValue(value, mask);\n\n return {\n ...formattedValueObject,\n value: formattedValueObject.formattedValue,\n };\n}\n","import formatValue from './generic';\nimport { IFormatterValueObject } from '../types';\n\ninterface FormattedCreditCardObject extends IFormatterValueObject {\n type: string;\n leftIcon: string;\n leftIconMuted: boolean;\n}\n\ntype Formatter = (value: string) => FormattedCreditCardObject;\n\nfunction format(value: string): FormattedCreditCardObject {\n // have a initial generic mask which then converts to specific mask\n const detectedType = formatCreditCard.detectCreditCardTypeFromValue(value);\n const formattedValueObject = creditCardFormatters[detectedType](value);\n\n if (value.length < 2 && detectedType === 'unknown') {\n formattedValueObject.leftIcon = 'card';\n }\n return formattedValueObject;\n}\n\nconst unknownFormatter: Formatter = function unknownFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'unknown',\n leftIcon: 'card-unknown',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst amexFormatter: Formatter = function amexFn(value) {\n const valueObject = formatValue(value, '#### ###### #####');\n\n return {\n ...valueObject,\n type: 'amex',\n leftIcon: 'card-amex-color',\n leftIconMuted: value.length < 15,\n };\n};\n\nconst discoverFormatter: Formatter = function discoverFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'discover',\n leftIcon: 'card-discover-color',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst masterCardFormatter: Formatter = function masterCardFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'masterCard',\n leftIcon: 'card-mastercard-color',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst visaFormatter: Formatter = function visaFn(value) {\n const valueObject = formatValue(value, '#### #### #### ####');\n\n return {\n ...valueObject,\n type: 'visa',\n leftIcon: 'card-visa-color',\n leftIconMuted: value.length < 16,\n };\n};\n\nconst dinersClubInternationalFormatter: Formatter = function dinersClub(value) {\n const valueObject = formatValue(value, '#### ###### ####');\n\n return {\n ...valueObject,\n type: 'dinersClub',\n leftIcon: 'card-dinersclub-color',\n leftIconMuted: value.length < 14,\n };\n};\n\nconst creditCardFormatters = {\n discover: discoverFormatter,\n amex: amexFormatter,\n masterCard: masterCardFormatter,\n visa: visaFormatter,\n dinersClub: dinersClubInternationalFormatter,\n unknown: unknownFormatter,\n};\n\n/* tslint:disable:cyclomatic-complexity */\nfunction detectCreditCardTypeFromValue(value: string): string {\n // use value and some algorithm from the internet to detect and return card type based on string\n // return string 'unknown' if algorithm cannot detect or returns a type that is not one of our 5 supported types\n const firstInt = parseInt(value.charAt(0));\n const secondInt = parseInt(value.charAt(1));\n\n switch (firstInt) {\n case 2:\n if (secondInt > 1 && secondInt < 8) {\n if (value.length >= 4) {\n const firstfour = parseInt(value.substr(0, 4));\n if (firstfour >= 2221 && firstfour < 2721) {\n return 'masterCard';\n }\n } else {\n return 'masterCard';\n }\n }\n break;\n case 3:\n if (secondInt === 4 || secondInt === 7) {\n return 'amex';\n }\n if (secondInt === 0) {\n if (value.length > 2) {\n const thirdInt = parseInt(value.charAt(2));\n if (thirdInt < 6 || thirdInt === 9) {\n return 'dinersClub';\n }\n } else {\n return 'dinersClub';\n }\n }\n if (secondInt === 6 || secondInt === 8 || secondInt === 9) {\n return 'dinersClub';\n }\n break;\n case 4:\n return 'visa';\n case 5:\n if (secondInt > 0 && secondInt < 6) {\n return 'masterCard';\n }\n break;\n case 6:\n if (secondInt === 0) {\n if (value.length > 3) {\n const firstfour = value.substr(0, 4);\n if (firstfour === '6011') {\n return 'discover';\n }\n } else {\n return 'discover';\n }\n }\n if (secondInt === 4) {\n if (value.length > 2) {\n const firstthree = parseInt(value.substr(0, 3));\n if (firstthree > 643) {\n return 'discover';\n }\n } else {\n return 'discover';\n }\n }\n if (secondInt === 5) {\n return 'discover';\n }\n if (secondInt === 2) {\n if (value.length > 5) {\n const firstsix = parseInt(value.substr(0, 6));\n if (firstsix >= 622126 && firstsix <= 622925) {\n return 'discover';\n }\n } else {\n return 'discover';\n }\n }\n break;\n default:\n return 'unknown';\n }\n return 'unknown';\n}\n/* tslint:enable:cyclomatic-complexity */\n\nconst formatCreditCard = {\n detectCreditCardTypeFromValue,\n format,\n amexFormatter,\n dinersClubInternationalFormatter,\n discoverFormatter,\n masterCardFormatter,\n visaFormatter,\n unknownFormatter,\n};\n\nexport default formatCreditCard;\n","@import '../../styles/host';\n@import '../../styles/functions';\n\n:host {\n display: block;\n margin: var-list(var-prefixer(input-margin-top), --app-scale-6x, 30px) 0\n var-list(var-prefixer(input-margin-bottom), --app-scale-6x, 30px);\n font-size: var-list(var-prefixer(input-font-size), --app-font-size, inherit);\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.field-container,\n.input-container {\n position: relative;\n}\n.field-container {\n --comp-input-tween: #{var-list(var-prefixer(input-tween), --tct-tween-2, --app-tween-2, unquote('0.4s ease'))};\n\n &.is-small {\n .btn-clear {\n --tct-btn-icon-width: 20px;\n }\n }\n}\n\nlabel {\n --comp-label-padding: #{var-list(\n --tct-input-label-padding,\n unquote(\n '0 #{var-list(var-prefixer(input-label-padding-right), 0)} 0 #{var-list(var-prefixer(input-label-padding-left), 0)}'\n )\n )};\n --comp-label-margin: #{var-list(\n --tct-input-label-margin,\n unquote(\n '#{var-list(var-prefixer(input-label-margin-top), 0)} 0 #{var-list(var-prefixer(input-label-margin-bottom), --tct-scale-1, --app-scale-1x, 5px)}'\n )\n )};\n display: block;\n padding: var(--comp-label-padding);\n margin: var(--comp-label-margin);\n color: var-list(var-prefixer(input-label-font-color), inherit);\n font-size: var-list(var-prefixer(input-label-font-size), inherit);\n font-weight: var-list(var-prefixer(input-label-font-weight), 600);\n text-transform: var-list(var-prefixer(input-label-text-transform), none);\n letter-spacing: var-list(var-prefixer(input-label-letter-spacing), normal);\n transition: color var(--comp-input-tween);\n}\n\n.optional-tag {\n --comp-label-optional-margin: #{var-list(\n --tct-input-label-optional-margin,\n unquote(\n '0 0 0 #{var-list(var-prefixer(input-label-optional-margin-left), --tct-scale-1, --app-scale-1x, 5px)}'\n )\n )};\n margin: var(--comp-label-optional-margin);\n color: var-list(\n var-prefixer(input-label-optional-font-color),\n --t-textA,\n --t-a11y-gray-color,\n rgba(77, 77, 77, 0.77)\n );\n font-size: var-list(var-prefixer(input-label-optional-font-size), 12px);\n font-weight: var-list(var-prefixer(input-label-optional-font-weight), 400);\n}\n\n.input-container {\n --comp-input-background: #{var-list(--tct-input-background, var-prefixer(input-bg), --t-gray-14, #fcfcfd)};\n --comp-input-horizontal-gap: #{var-list(var-prefixer(input-horizontal-gap), 0)};\n --comp-input-border-top-left-radius: #{var-list(\n var-prefixer(input-border-top-left-radius),\n --tct-border-radius-1,\n --app-border-radius-1,\n 3px\n )};\n --comp-input-border-top-right-radius: #{var-list(\n var-prefixer(input-border-top-right-radius),\n --tct-border-radius-1,\n --app-border-radius-1,\n 3px\n )};\n --comp-input-border-bottom-right-radius: #{var-list(\n var-prefixer(input-border-bottom-right-radius),\n --tct-border-radius-1,\n --app-border-radius-1,\n 3px\n )};\n --comp-input-border-bottom-left-radius: #{var-list(\n var-prefixer(input-border-bottom-left-radius),\n --tct-border-radius-1,\n --app-border-radius-1,\n 3px\n )};\n --comp-input-border-radius: var(--comp-input-border-top-left-radius) var(--comp-input-border-top-right-radius)\n var(--comp-input-border-bottom-right-radius) var(--comp-input-border-bottom-left-radius);\n --comp-input-border-width: var(--tct-input-border-top-width, 1px) var(--tct-input-border-right-width, 1px)\n var(--tct-input-border-bottom-width, 1px) var(--tct-input-border-left-width, 1px);\n --comp-input-focus-border-width: var(--tct-input-focus-border-top-width, 1px)\n var(--tct-input-focus-border-right-width, 1px) var(--tct-input-focus-border-bottom-width, 1px)\n var(--tct-input-focus-border-left-width, 1px);\n --comp-input-border-color: #{var-list(var-prefixer(input-border-color), --t-a11y-gray-color-AA, #404040)};\n --comp-input-prefix-clearance: calc(3 * var(--tct-input-prefix-font-size, 14px) + var(--tct-scale-1, 5px));\n --comp-input-icon-clearance: 34px;\n --comp-input-min-height: #{var-list(var-prefixer(input-min-height), 44px)};\n --comp-input-max-height: #{var-list(var-prefixer(input-max-height))};\n\n --comp-input-hover-ring-color: #{var-list(var-prefixer(input-hover-ring-color))};\n --comp-input-hover-ring: #{0 0 0 2px var(--t-base), 0 0 0 4px var(--comp-input-hover-ring-color)};\n\n background: var(--comp-input-background);\n display: flex;\n align-items: center;\n border-width: var(--comp-input-border-width);\n border-style: solid;\n border-color: var(--comp-input-border-color);\n border-radius: var(--comp-input-border-radius);\n box-shadow: var-list(var-prefixer(input-box-shadow), none);\n transition: border-width var(--comp-input-tween), border-color var(--comp-input-tween),\n box-shadow var(--comp-input-tween);\n\n :host([disabled]:not([disabled='false'])) & {\n cursor: not-allowed;\n opacity: var-list(var-prefixer(input-disabled-opacity), --tct-disabled-opacity, --app-disabled-opacity, 0.4);\n }\n}\n\n.input-field {\n --comp-input-padding: #{var-list(\n --tct-input-padding,\n unquote('0 #{var-list(var-prefixer(input-horizontal-padding), --tct-scale-2, --app-scale-2x, 10px)}')\n )};\n flex: 1;\n border: 0;\n -webkit-appearance: none;\n appearance: none;\n box-sizing: border-box;\n min-height: var(--comp-input-min-height);\n max-height: var(--comp-input-max-height);\n overflow-y: hidden;\n height: var-list(var-prefixer(input-height), 44px);\n width: 100%;\n padding: var(--comp-input-padding);\n background: transparent;\n color: var-list(var-prefixer(input-font-color), --t-text, inherit);\n display: inline-block;\n text-align: var(--tct-input-align, 'start');\n font-weight: var-list(var-prefixer(input-font-weight), 400);\n\n &:focus {\n outline: none;\n box-shadow: none;\n }\n /* To remove up/down arrow in number field for webkit based browser */\n &::-webkit-outer-spin-button,\n &::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n /* For Firefox */\n &[type='number'] {\n -moz-appearance: textfield;\n }\n\n &::-ms-clear {\n display: none;\n }\n\n &[type='search'] {\n &::-webkit-search-decoration,\n &::-webkit-search-cancel-button,\n &::-webkit-search-results-button,\n &::-webkit-search-results-decoration {\n display: none;\n }\n }\n\n &[disabled]:not([disabled='false']) {\n cursor: not-allowed;\n }\n\n .right-aligned & {\n text-align: right;\n }\n\n &:is(input) {\n flex: 1;\n }\n\n &:is(button) {\n display: inline-flex;\n align-items: center;\n\n .has-custom-display & {\n height: auto;\n padding: 0;\n }\n\n span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n }\n }\n}\n\n.custom-display-container {\n max-width: 100%;\n\n .has-custom-display & {\n --comp-default-padding: var(--app-scale-2x, 10px) var(--app-scale-2x, 10px) var(--app-scale-3x, 15px);\n padding: var-list(var-prefixer(input-padding), --comp-default-padding);\n width: 100%;\n }\n}\n\n.has-error .input-container:hover {\n --comp-input-hover-ring-color: #{var-list(var-prefixer(input-error-border-color))};\n --comp-input-hover-ring: #{0 0 0 2px var(--t-base), 0 0 0 4px var(--comp-input-hover-ring-color)};\n}\n\n.input-container:hover {\n border-width: var-list(--tct-input-hover-border-width, --comp-input-border-width);\n border-color: var-list(--tct-input-hover-border-color, --comp-input-border-color);\n background: var-list(--tct-input-hover-background, --comp-input-background);\n box-shadow: var(--comp-input-hover-ring), var-list(var-prefixer(input-hover-box-shadow), unquote('0 0 transparent'));\n}\n\n.has-focus .input-container {\n border-width: var-list(--tct-input-focus-border-width, --comp-input-focus-border-width);\n border-color: var-list(var-prefixer(input-focus-border-color), --comp-input-border-color);\n background: var-list(--tct-input-focus-background, --comp-input-background);\n box-shadow: var(--const-double-focus-ring),\n var-list(var-prefixer(input-focus-box-shadow), unquote('0 0 transparent'));\n\n &:hover {\n border-width: var-list(--tct-input-hover-border-width, --comp-input-border-width);\n border-color: var-list(--tct-input-hover-border-color, --comp-input-border-color);\n background: var-list(--tct-input-hover-background, --comp-input-background);\n box-shadow: var(--comp-input-hover-ring),\n var-list(var-prefixer(input-hover-box-shadow), unquote('0 0 transparent'));\n }\n}\n\n.input-field::placeholder,\n.placeholder-text {\n color: var-list(var-prefixer(input-placeholder-font-color), --t-textA, --app-gray-d1, rgba(77, 77, 77, 0.77));\n}\n\n.pseudo-input-container {\n min-width: 0;\n flex: 1;\n}\n\n.input-icons-container-left,\n.input-icons-container-right {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: var(--comp-input-horizontal-gap);\n\n > div:not(.vertical-separator) {\n min-width: var-list(--tct-icon-min-width, 44px);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n &:empty {\n display: none;\n }\n}\n\n.input-icons-container-left {\n padding-left: var(--comp-input-horizontal-gap);\n}\n\n.input-icons-container-right {\n padding-right: var(--comp-input-horizontal-gap);\n --comp-visibility-toggle-padding: 0px #{var-list(--app-scale-2x, 10px)};\n\n .btn-visibility-toggle {\n color: var-list(--tct-input-visibility-toggle-font-color, var-prefixer(primary), #006eb2);\n font-size: var-list(--tct-input-visibility-toggle-font-size, 12px);\n padding: var-list(--tct-input-visibility-toggle-padding, --comp-visibility-toggle-padding);\n }\n}\n\nq2-icon {\n margin-top: calc(#{var-list(var-prefixer(input-border-top-width), 1px)} / 2);\n margin-bottom: calc(#{var-list(var-prefixer(input-border-bottom-width), 1px)} / 2);\n pointer-events: none;\n color: var-list(var-prefixer(input-icon-stroke-primary), --t-a11y-gray-color, --t-textA, --app-gray, #747474);\n --tct-icon-stroke-primary: #{var-list(\n var-prefixer(input-icon-stroke-primary),\n --t-a11y-gray-color,\n --t-textA,\n --app-gray,\n #747474\n )};\n}\n\n.icon-left-muted {\n opacity: 0.5;\n}\n\n.input-prefix,\n.input-suffix {\n min-height: var(--comp-input-min-height);\n max-height: var(--comp-input-max-height);\n height: var-list(var-prefixer(input-height), 44px);\n font-size: var-list(var-prefixer(input-prefix-font-size), inherit);\n color: var-list(var-prefixer(input-prefix-font-color), inherit);\n background: var-list(\n --tct-input-prefix-background,\n var-prefixer(input-prefix-bg),\n --tct-input-background,\n var-prefixer(input-bg),\n var-prefixer(gray-14),\n #f2f2f2\n );\n transition: color var(--comp-input-tween), background var(--comp-input-tween);\n}\n\n.input-prefix {\n border-top-left-radius: calc(\n var(--comp-input-border-top-left-radius) - #{var-list(var-prefixer(input-border-top-width), 1px)} - #{var-list(\n var-prefixer(input-border-left-width),\n 1px\n )}\n );\n border-bottom-left-radius: calc(\n var(--comp-input-border-bottom-left-radius) - #{var-list(var-prefixer(input-border-bottom-width), 1px)} - #{var-list(\n var-prefixer(input-border-left-width),\n 1px\n )}\n );\n pointer-events: none; /* used to allow iOS voiceover to display keyboard in input TCT-1194 */\n}\n\n.input-suffix {\n border-top-right-radius: calc(\n var(--comp-input-border-top-right-radius) - #{var-list(var-prefixer(input-border-top-width), 1px)} - #{var-list(\n var-prefixer(input-border-right-width),\n 1px\n )}\n );\n border-bottom-right-radius: calc(\n var(--comp-input-border-bottom-right-radius) - #{var-list(var-prefixer(input-border-bottom-width), 1px)} - #{var-list(\n var-prefixer(input-border-right-width),\n 1px\n )}\n );\n}\n\n.icon-error {\n color: var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000);\n --tct-icon-stroke-primary: #{var-list(--tct-stoplight-error, --const-stoplight-alert, #c30000)};\n}\n\n.pw-show {\n position: absolute;\n margin-right: var-list(--tct-scale-2, --app-scale-2x, 10px);\n}\n\n.btn-clear {\n --tct-icon-size: 17px;\n}\n\n.messages-container {\n height: 0px;\n overflow: hidden;\n background: var-list(\n --tct-message-background,\n var-prefixer(message-bg),\n var-prefixer(gray-14),\n --tct-gray-l3,\n --app-gray-l3,\n #f2f2f2\n );\n box-shadow: var-list(\n var-prefixer(input-message-box-shadow),\n --tct-box-shadow-1,\n --app-shadow-1,\n unquote('0 2px 4px rgba(0, 0, 0, 0.3)')\n );\n transition: height var-list(var-prefixer(input-messages-tween), --tct-tween-1, --app-tween-1, unquote('0.2s ease'));\n margin-top: var-list(--tct-input-messages-margin-top, 2px);\n z-index: var-list(--tct-input-messages-z-index, 5);\n position: absolute;\n width: 100%;\n color: var-list(var-prefixer(input-messages-font-color), inherit);\n}\n\n.has-error label {\n color: var-list(var-prefixer(input-error-label-font-color), var-prefixer(input-label-font-color), inherit);\n}\n\n.has-error:not(.has-focus) .input-prefix,\n.has-error:not(.has-focus) .input-suffix {\n color: var-list(var-prefixer(input-error-prefix-font-color), inherit);\n background: var-list(\n --tct-input-error-prefix-background,\n var-prefixer(input-error-prefix-bg),\n --tct-input-background,\n var-prefixer(input-bg),\n var-prefixer(gray-14),\n --tct-gray-l3,\n --app-gray-l3,\n #f2f2f2\n );\n}\n\n.has-error .input-container:not(:focus-within) {\n border-color: var-list(var-prefixer(input-error-border-color), --const-stoplight-alert, #c30000);\n}\n\n.icon-left {\n width: 26px;\n height: 26px;\n}\n\n.vertical-separator {\n height: calc(var(--comp-input-min-height) - 2px);\n border-right: 1px solid\n var-list(\n var-prefixer(input-prefix-border-color),\n var-prefixer(input-border-color),\n --t-a11y-gray-color-AA,\n #404040\n );\n}\n","import {\n Component,\n Prop,\n Element,\n State,\n Event,\n EventEmitter,\n h,\n Watch,\n Listen,\n Fragment,\n Method,\n} from '@stencil/core';\nimport {\n createGuid,\n labelDOM,\n loc,\n messagesDOM,\n setMessageHeight,\n handleAriaLabel,\n overrideFocus,\n isEventFromElement,\n isMobile,\n} from 'src/utils';\nimport { IFormatterValueObject, ICursorData, IEventDetail } from './types';\nimport formatCurrency from './formatting/currency';\nimport formatPhoneNumber from './formatting/phone';\nimport formatSSN from './formatting/ssn';\nimport formatTIN from './formatting/tin';\nimport formatAlphanumeric from './formatting/alphanumeric';\nimport formatAlpha from './formatting/alpha';\nimport formatNumeric, { formatPercentage } from './formatting/numeric';\nimport formatPostalCode from './formatting/postal';\nimport formatDate from './formatting/date';\nimport formatCreditCard from './formatting/credit-card';\nimport { Q2Icon } from '../q2-icon';\nimport { Q2Badge } from '../q2-badge';\n\nconst inputTypeMap = {\n text: 'text',\n tel: 'tel',\n number: 'number',\n password: 'text',\n search: 'search',\n url: 'url',\n email: 'email',\n currency: 'text',\n phone: 'tel',\n ssn: 'text',\n alphanumeric: 'text',\n alpha: 'text',\n numeric: 'text',\n percentage: 'text',\n postal: 'text',\n date: 'text',\n 'credit-card': 'text',\n};\n\nexport type InputType = keyof typeof inputTypeMap;\n\n@Component({\n tag: 'q2-input',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Input {\n @Prop({ mutable: true }) value: string;\n @Prop({ reflect: true, mutable: true }) label: string;\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n @Prop({ reflect: true }) type: InputType = 'text';\n @Prop({ reflect: true }) placeholder: string;\n @Prop({ reflect: true }) disabled: boolean = false;\n @Prop({ reflect: true }) autocomplete: string;\n @Prop({ reflect: true }) autocorrect: 'on' | 'off';\n @Prop({ reflect: true }) autocapitalize: string;\n @Prop({ reflect: true }) autofocus: boolean;\n @Prop({ reflect: true }) hideMessages: boolean;\n @Prop({ reflect: true }) iconLeft: Q2Icon['type'];\n @Prop({ reflect: true }) iconRight: Q2Icon['type'];\n @Prop({ reflect: true }) readonly: boolean;\n @Prop({ reflect: true }) clearable: boolean;\n @Prop({ reflect: true }) optional: boolean;\n @Prop({ reflect: true }) min: number;\n @Prop({ reflect: true }) max: number;\n @Prop({ reflect: true }) step: number;\n @Prop({ reflect: true }) formatModifier: string;\n @Prop({ reflect: true, mutable: true }) maxlength: number;\n @Prop({ reflect: true }) pseudo: boolean;\n @Prop({ reflect: true }) showVisibilityToggle: boolean = false;\n @Prop({ reflect: true, mutable: true }) textHidden: boolean;\n @Prop({ reflect: true }) badgeValue: string;\n @Prop({ reflect: true }) badgeTheme: Q2Badge['theme'];\n @Prop() role: string;\n @Prop() ariaControls: string;\n @Prop() ariaOwns: string;\n @Prop() ariaHaspopup: string;\n @Prop() ariaExpanded: string;\n @Prop() ariaActivedescendant: string;\n @Prop() current: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @Prop() errors: string[];\n @Prop() hints: string[];\n\n @State() formattedValueObject: IFormatterValueObject;\n @State() hasFocus: boolean;\n @State() isSmall: boolean = false;\n\n resizeObserver: ResizeObserver;\n scheduledAfterRender: (() => void)[] = [];\n valueOnFocus: string;\n isMobile: boolean = isMobile();\n\n /////// LIFECYCLE HOOKS ////////\n\n componentWillLoad() {\n if (isNaN(this.maxlength)) {\n this.maxlength = undefined;\n }\n this.formattedValueObject = this.getFormattedValue(this.stringValue, true);\n\n Object.defineProperty(this.hostElement, 'formattedValue', {\n get: () => this.formattedValueObject?.formattedValue ?? '',\n });\n\n handleAriaLabel(this);\n if (this.textHidden === undefined) {\n this.textHidden = this.type === 'password';\n }\n\n this.manageClearableResizeObserver(this.clearable);\n }\n\n componentDidLoad() {\n if (!this.pseudo) {\n this.inputField.value = this.formattedValueObject.formattedValue;\n }\n\n if (this.autofocus === true) {\n this.inputField.focus();\n }\n\n overrideFocus(this.hostElement);\n }\n\n componentDidRender() {\n this.scheduledAfterRender.forEach(fn => fn());\n this.scheduledAfterRender = [];\n }\n\n disconnectedCallback() {\n this.manageClearableResizeObserver();\n }\n\n getFormattedValue(value: string, valueChangedFromProperty: boolean): IFormatterValueObject {\n const formattingFunctions = {\n currency: formatCurrency,\n phone: formatPhoneNumber,\n ssn: formatSSN,\n tin: formatTIN,\n alphanumeric: formatAlphanumeric,\n alpha: formatAlpha,\n numeric: formatNumeric,\n percentage: formatPercentage,\n postal: formatPostalCode,\n date: formatDate,\n 'credit-card': formatCreditCard.format,\n };\n\n if (formattingFunctions[this.type]) {\n return formattingFunctions[this.type](value, this.formatModifier, valueChangedFromProperty);\n }\n\n return {\n value,\n formattedValue: value,\n fullyFormattedValue: value,\n formattingCharacterCount: 0,\n unformattedValue: value,\n };\n }\n\n @Element() hostElement: HTMLElement;\n\n get canClear() {\n return this.clearable && !!(this.inputField?.value ?? this.value);\n }\n\n get shouldCursorStayAtEnd() {\n return this.isMobile && this.type === 'currency';\n }\n\n get hasError() {\n return Array.isArray(this.errors) && this.errors.length > 0;\n }\n\n get messages(): string[] {\n return (\n (this.errors && this.errors.length > 0 && this.errors) ||\n (this.hints && this.hints.length > 0 && this.hints) ||\n []\n );\n }\n\n get inputField() {\n return this.hostElement.shadowRoot.querySelector<HTMLInputElement>('.input-field');\n }\n\n get showMessages() {\n return this.messages.length > 0 && !this.hideMessages;\n }\n\n guid = createGuid();\n\n get inputId() {\n return `input-guid-${this.guid}`;\n }\n\n get inputDescribedBy() {\n return this.showMessages ? `${this.inputId}-description` : undefined;\n }\n\n get isMaskedType(): boolean {\n const maskedTypes: string[] = [\n 'currency',\n 'phone',\n 'ssn',\n 'tin',\n 'alphanumeric',\n 'alpha',\n 'numeric',\n 'percentage',\n 'postal',\n 'date',\n 'credit-card',\n ];\n\n return maskedTypes.includes(this.type);\n }\n\n get wrapperClasses() {\n const classNames = ['field-container'];\n if (this.hasError) classNames.push('has-error');\n if (!!this.value) classNames.push('has-value');\n if (this.clearable && !!this.value) classNames.push('has-clear');\n if (this.hasFocus) classNames.push('has-focus');\n if (this.isSmall) classNames.push('is-small');\n if (this.formattedValueObject.prefix) classNames.push('has-prefix');\n if (this.computedIconLeft) classNames.push('has-icon-left');\n if (this.showIconSeparator) classNames.push('has-icon-separator');\n if (this.formattedValueObject.suffix) classNames.push('has-suffix');\n if (!this.formattedValueObject.suffix && this.iconRight) classNames.push('has-icon-right');\n if (this.type === 'currency') classNames.push('right-aligned');\n else classNames.push('left-aligned');\n if (this.hasCustomDisplaySlot) classNames.push('has-custom-display');\n\n return classNames.join(' ');\n }\n\n get computedType() {\n if (['password', 'text', 'ssn'].includes(this.type) && this.textHidden) {\n return 'password';\n } else {\n return (this.type && inputTypeMap[this.type]) || 'text';\n }\n }\n\n get computedAutocomplete() {\n // force off for currency type\n if (this.type === 'currency') return 'transaction-amount';\n return this.autocomplete || 'off';\n }\n\n get computedIconLeft(): string | undefined {\n if (this.formattedValueObject.prefix) {\n return;\n }\n\n if (this.type === 'search') {\n return 'search';\n }\n\n if (this.formattedValueObject.leftIcon) {\n return this.formattedValueObject.leftIcon;\n }\n\n return this.iconLeft;\n }\n\n get showIconSeparator(): boolean {\n return this.type === 'credit-card' || !!this.formattedValueObject.prefix;\n }\n\n get computedClassForIconLeft(): string | undefined {\n let className = 'icon-left';\n if (this.formattedValueObject.leftIconMuted) {\n className += ' icon-left-muted';\n }\n return className;\n }\n\n get stringValue(): string {\n return (this.value && String(this.value)) || '';\n }\n\n get canSetSelection(): boolean {\n // email and number type don't support setSelectionRange\n return !['email', 'number'].includes(this.computedType);\n }\n\n get visibilityToggleText(): string {\n return loc(`tecton.element.input.toggle.${this.textHidden ? 'show' : 'hide'}`);\n }\n\n formatAndUpdateValueFromProp() {\n this.formattedValueObject = this.getFormattedValue(this.stringValue, true);\n\n if (!this.pseudo) {\n const setValue = () => {\n this.inputField.value = this.formattedValueObject.formattedValue;\n };\n\n this.inputField ? setValue() : this.scheduledAfterRender.push(() => setValue());\n }\n }\n\n get inputMode() {\n const inputModeMap = {\n currency: 'numeric',\n ssn: 'numeric',\n tin: 'numeric',\n numeric: 'decimal',\n percentage: 'decimal',\n postal: 'numeric',\n date: 'numeric',\n 'credit-card': 'numeric',\n };\n\n return (this.type && inputModeMap[this.type]) || undefined;\n }\n\n //////// OBSERVERS //////////\n\n @Watch('clearable')\n manageClearableResizeObserver(clearable?: boolean) {\n const isSmallThreshold = 190;\n if (clearable) {\n if (this.resizeObserver) return;\n this.resizeObserver = new ResizeObserver(([entry]) => {\n this.isSmall = isSmallThreshold > entry.contentRect.width;\n });\n this.resizeObserver.observe(this.hostElement);\n } else {\n this.isSmall = false;\n this.resizeObserver?.unobserve(this.hostElement);\n this.resizeObserver = null;\n }\n }\n\n @Watch('ariaLabel')\n ariaLabelObserver() {\n handleAriaLabel(this);\n }\n\n @Watch('value')\n valueObserver() {\n this.formatAndUpdateValueFromProp();\n }\n\n @Watch('formattedValueObject')\n formattedValueObjectObserver() {\n this.formatted.emit(this.formattedValueObject);\n }\n\n @Watch('type')\n typeObserver() {\n this.formatAndUpdateValueFromProp();\n }\n\n @Watch('formatModifier')\n formatModifierObserver() {\n this.formatAndUpdateValueFromProp();\n }\n\n @Watch('hints')\n hintsObserver() {\n this.hasFocus && this.scheduledAfterRender.push(() => setMessageHeight(this));\n }\n\n @Watch('errors')\n errorsObserver() {\n this.hasFocus && this.scheduledAfterRender.push(() => setMessageHeight(this));\n }\n\n /// Methods ///\n @Method()\n setValue(value: string) {\n const { inputField } = this;\n inputField.focus();\n inputField.dispatchEvent(new FocusEvent('focus'));\n inputField.value = value;\n inputField.dispatchEvent(new InputEvent('input'));\n }\n\n @Method()\n clearValue() {\n if (!this.clearable) return;\n this.onClearInput();\n }\n\n ///////// HOST ELEMENT EVENTS //////\n @Listen('focus')\n onHostElementFocus(event) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.inputField.focus();\n }\n\n @Listen('change')\n onHostElementChange(event: CustomEvent) {\n event.stopPropagation();\n if (event.target === this.hostElement && !this.hostElement.onchange) {\n this.value = event.detail.value;\n }\n }\n\n ///////// Events /////////\n\n @Event() input: EventEmitter<IEventDetail>;\n @Event() change: EventEmitter<IEventDetail>;\n @Event() clear: EventEmitter<IEventDetail>;\n @Event() formatted: EventEmitter<IEventDetail>;\n\n ///// ACTIONS ////////\n\n onToggleVisibility = () => {\n this.hostElement.dispatchEvent(new FocusEvent('focus'));\n this.textHidden = !this.textHidden;\n };\n\n onInputClick = () => {\n if (this.shouldCursorStayAtEnd) this.placeCursorAtEnd();\n };\n\n onInputFocus = () => {\n if (this.inputField.tagName === 'INPUT') {\n this.scheduledAfterRender.push(() =>\n this.shouldCursorStayAtEnd\n ? this.placeCursorAtEnd()\n : this.setCursorPosition(this.calculateCursorPositionOnFocus())\n );\n }\n this.hasFocus = true;\n setMessageHeight(this);\n this.valueOnFocus = this.value;\n };\n\n onInputBlur = () => {\n this.hasFocus = false;\n setMessageHeight(this);\n if (this.valueOnFocus !== this.formattedValueObject.value) {\n this.valueOnFocus = this.formattedValueObject.value;\n this.change.emit({\n value: this.formattedValueObject.value,\n formattedValue: this.formattedValueObject.fullyFormattedValue,\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n ...(this.formattedValueObject.type && { type: this.formattedValueObject.type }),\n });\n }\n };\n\n onInputInput = (event: InputEvent) => {\n event.stopPropagation();\n const newFormattedValue = this.getFormattedValue((event.target as HTMLInputElement).value, false);\n this.handleDataInput(newFormattedValue);\n };\n\n onInputPaste = (event: ClipboardEvent) => {\n if (this.type === 'currency') {\n const clipboardData = event.clipboardData.getData('text');\n const newFormattedValue = this.getFormattedValue(clipboardData, true);\n event.preventDefault();\n this.handleDataInput(newFormattedValue);\n }\n };\n\n handleDataInput(newFormattedValue: IFormatterValueObject) {\n if (\n this.maxlength === undefined ||\n newFormattedValue.unformattedValue.length <= this.maxlength ||\n newFormattedValue.unformattedValue.length <= this.formattedValueObject.unformattedValue.length\n ) {\n this.formattedValueObject = newFormattedValue;\n } else if (this.maxlength) {\n newFormattedValue = this.getFormattedValue(\n newFormattedValue.unformattedValue.substring(0, this.maxlength),\n false\n );\n this.formattedValueObject = newFormattedValue;\n }\n this.handleValueAndCursor();\n }\n\n handleValueAndCursor = () => {\n // ORDER IMPORTANT: calculate cursor position -> set value -> set cursor position\n const cursorPosition = this.calculateCursorPositionOnInput();\n // when type=number: returns only valid decimal on input event, should not update itself (e.g. typing \"1.\" )\n if (this.type !== 'number') this.inputField.value = this.formattedValueObject.formattedValue;\n this.input.emit({\n value: this.formattedValueObject.value,\n formattedValue: this.formattedValueObject.fullyFormattedValue,\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n ...(this.formattedValueObject.type && { type: this.formattedValueObject.type }),\n });\n if (!this.formattedValueObject.value) {\n this.clear.emit();\n }\n this.setCursorPosition(cursorPosition);\n };\n\n onInputKeydown = (event: KeyboardEvent) => {\n const keysThatMoveCursor = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'];\n const { key } = event;\n if (this.shouldCursorStayAtEnd && keysThatMoveCursor.includes(key)) event.preventDefault();\n if (key === 'Enter' && this.valueOnFocus !== this.formattedValueObject.value) {\n this.valueOnFocus = this.formattedValueObject.value;\n this.change.emit({\n value: this.formattedValueObject.value,\n formattedValue: this.formattedValueObject.fullyFormattedValue,\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n ...(this.formattedValueObject.type && { type: this.formattedValueObject.type }),\n });\n }\n };\n\n onClearInput = () => {\n const eventDetail = {\n value: '',\n formattedValue: '',\n minFormattedLength: this.formattedValueObject.minFormattedLength,\n };\n this.input.emit(eventDetail);\n this.change.emit(eventDetail);\n this.clear.emit();\n this.inputField.focus();\n };\n /////// VIEW METHODS ///////\n\n render() {\n return (\n <div class={this.wrapperClasses}>\n {labelDOM(this)}\n {this.inputContainerDOM()}\n {messagesDOM(this)}\n </div>\n );\n }\n\n get hasCustomDisplaySlot() {\n return !!this.hostElement.querySelector('[slot=custom-display]');\n }\n\n /* tslint:disable:cyclomatic-complexity */\n inputContainerDOM() {\n return (\n <div\n class=\"input-container\"\n tabindex={-1}\n test-id=\"inputContainer\"\n >\n <div class=\"input-icons-container-left\">\n {this.formattedValueObject.prefix && (\n <div class=\"input-prefix\">{this.formattedValueObject.prefix}</div>\n )}\n {this.computedIconLeft && (\n <div>\n <q2-icon\n type={this.computedIconLeft}\n class={this.computedClassForIconLeft}\n />\n </div>\n )}\n <slot name=\"input-left\" />\n {this.showIconSeparator && <div class=\"vertical-separator\" />}\n {this.hasError && this.type === 'currency' && (\n <div>\n <q2-icon\n type=\"error\"\n class=\"icon-error\"\n test-id=\"iconError\"\n />\n </div>\n )}\n </div>\n {this.pseudo ? this.pseudoInputDOM() : this.standardInputDOM()}\n <div class=\"input-icons-container-right\">\n {this.canClear && (\n <q2-btn\n class=\"btn-clear\"\n ariaLabel={loc('tecton.element.input.clear', [this.label])}\n test-id=\"clearButton\"\n onClick={this.onClearInput}\n >\n <q2-icon\n type=\"close\"\n class=\"icon-clear\"\n />\n </q2-btn>\n )}\n {['password', 'text', 'ssn', 'tin'].includes(this.type) && this.showVisibilityToggle && (\n <q2-btn\n class=\"btn-visibility-toggle\"\n test-id=\"toggleVisibilityButton\"\n onClick={this.onToggleVisibility}\n >\n {this.visibilityToggleText}\n </q2-btn>\n )}\n {this.formattedValueObject.suffix && (\n <span class=\"input-suffix\">{this.formattedValueObject.suffix}</span>\n )}\n {this.badgeValue && (\n <q2-badge\n size=\"large\"\n theme={this.badgeTheme}\n >\n {this.badgeValue}\n </q2-badge>\n )}\n {this.hasError && this.type !== 'currency' && (\n <div>\n <q2-icon\n type=\"error\"\n class=\"icon-error\"\n test-id=\"iconError\"\n />\n </div>\n )}\n {this.iconRight && !this.formattedValueObject.suffix && (\n <div>\n <q2-icon\n type={this.iconRight}\n class=\"icon-right\"\n />\n </div>\n )}\n <slot name=\"input-right\" />\n </div>\n </div>\n );\n }\n /* tslint:enable:cyclomatic-complexity */\n\n /* tslint:disable:cyclomatic-complexity */\n standardInputDOM() {\n const { hasCustomDisplaySlot } = this;\n const inputClasses = ['input-field'];\n if (hasCustomDisplaySlot) inputClasses.push('sr');\n return (\n <Fragment>\n {hasCustomDisplaySlot && (\n <div class=\"custom-display-container\">\n <slot name=\"custom-display\"></slot>\n </div>\n )}\n <input\n class={inputClasses.join(' ')}\n id={this.inputId}\n type={this.computedType}\n size={this.formattedValueObject.prefix ? 10 : undefined}\n max={this.max}\n min={this.min}\n step={this.step}\n aria-current={this.current || undefined}\n aria-describedby={this.inputDescribedBy}\n aria-required={`${!this.optional}`}\n aria-invalid={`${this.hasError}`}\n aria-controls={(this.ariaControls && `${this.ariaControls}`) || undefined}\n aria-owns={(this.ariaOwns && `${this.ariaOwns}`) || undefined}\n aria-haspopup={(this.ariaHaspopup && `${this.ariaHaspopup}`) || undefined}\n aria-expanded={(!!this.ariaExpanded && `${!!this.ariaExpanded}`) || undefined}\n aria-activedescendant={this.ariaActivedescendant && `${this.ariaActivedescendant}`}\n autocomplete={this.computedAutocomplete}\n autocapitalize={this.autocapitalize}\n autocorrect={this.autocorrect === 'on' ? 'on' : 'off'}\n autofocus={this.autofocus}\n placeholder={(this.placeholder && loc(this.placeholder)) || undefined}\n role={(this.role && `${this.role}`) || undefined}\n test-id=\"inputField\"\n readonly={!!this.readonly}\n disabled={!!this.disabled}\n onFocus={this.onInputFocus}\n onBlur={this.onInputBlur}\n onClick={this.onInputClick}\n onKeyDown={this.onInputKeydown}\n onInput={this.onInputInput}\n onPaste={this.onInputPaste}\n inputmode={this.inputMode}\n />\n </Fragment>\n );\n }\n /* tslint:enable:cyclomatic-complexity */\n\n pseudoInputDOM() {\n const showPlaceholder = !this.value && !!this.placeholder;\n return (\n <div class=\"pseudo-input-container\">\n <button\n class=\"input-field\"\n type=\"button\"\n id={this.inputId}\n aria-describedby={this.inputDescribedBy}\n aria-invalid={`${this.hasError}`}\n aria-controls={(this.ariaControls && `${this.ariaControls}`) || undefined}\n aria-owns={(this.ariaOwns && `${this.ariaOwns}`) || undefined}\n aria-haspopup={(this.ariaHaspopup && `${this.ariaHaspopup}`) || undefined}\n aria-expanded={this.ariaExpanded === 'true' ? 'true' : undefined}\n aria-activedescendant={this.ariaActivedescendant && `${this.ariaActivedescendant}`}\n role={(this.role && `${this.role}`) || undefined}\n disabled={!!this.disabled}\n test-id=\"q2InputInnerClearButton\"\n onFocus={this.onInputFocus}\n onBlur={this.onInputBlur}\n >\n <div class=\"custom-display-container\">\n <slot name=\"custom-display\">\n <span class={showPlaceholder ? 'placeholder-text' : ''}>\n {showPlaceholder ? this.placeholder : this.value}\n </span>\n </slot>\n </div>\n </button>\n </div>\n );\n }\n\n placeCursorAtEnd() {\n const { inputField } = this;\n inputField.selectionStart = inputField.selectionEnd = inputField.value.length;\n }\n\n calculateCursorPositionOnInput(): ICursorData {\n const input = this.inputField;\n const formattedLength = this.formattedValueObject.formattedValue.length;\n const currentValueLength = input.value.length;\n const defaultPosition = this.type === 'currency' ? formattedLength : 0;\n return {\n startingPosition: (input && input.selectionStart) || defaultPosition,\n valueLength: formattedLength,\n previousValueLength: input && currentValueLength,\n hasSelection: false,\n };\n }\n\n calculateCursorPositionOnFocus(): ICursorData {\n const { inputField } = this;\n const valueLength = inputField?.value?.length ?? 0;\n const startingPosition = inputField?.selectionStart ?? valueLength;\n\n return {\n startingPosition,\n valueLength,\n previousValueLength: valueLength,\n hasSelection: getSelection().toString().length > 0,\n };\n }\n\n setCursorPosition(cursorData: ICursorData) {\n if (this.canSetSelection && !cursorData.hasSelection) {\n const input = this.inputField;\n const { valueLength, previousValueLength, startingPosition } = cursorData;\n if (startingPosition === valueLength && valueLength >= previousValueLength && this.type === 'currency') {\n input.setSelectionRange(valueLength, valueLength);\n } else {\n const difference = valueLength - previousValueLength;\n // Never allow the cursor to move in reverse\n const newPosition = startingPosition + (difference > 0 ? difference : 0);\n input.setSelectionRange(newPosition, newPosition);\n }\n }\n }\n}\n"],"version":3}
|