q2-tecton-elements 1.35.1 → 1.36.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.
Files changed (96) hide show
  1. package/dist/cjs/charting-d02cba1f.js.map +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/q2-chart-area.cjs.entry.js.map +1 -1
  4. package/dist/cjs/q2-chart-bar.cjs.entry.js.map +1 -1
  5. package/dist/cjs/q2-chart-donut.cjs.entry.js.map +1 -1
  6. package/dist/cjs/q2-dropdown.cjs.entry.js +2 -2
  7. package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
  8. package/dist/cjs/q2-input.cjs.entry.js +26 -1
  9. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  10. package/dist/cjs/q2-pagination.cjs.entry.js +36 -10
  11. package/dist/cjs/q2-pagination.cjs.entry.js.map +1 -1
  12. package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-tab-container.cjs.entry.js.map +1 -1
  14. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  15. package/dist/collection/collection-manifest.json +1 -1
  16. package/dist/collection/components/q2-chart-area/index.js +1 -1
  17. package/dist/collection/components/q2-chart-area/index.js.map +1 -1
  18. package/dist/collection/components/q2-chart-bar/index.js +1 -1
  19. package/dist/collection/components/q2-chart-bar/index.js.map +1 -1
  20. package/dist/collection/components/q2-chart-donut/index.js +2 -2
  21. package/dist/collection/components/q2-chart-donut/index.js.map +1 -1
  22. package/dist/collection/components/q2-data-table/index.js +6 -6
  23. package/dist/collection/components/q2-dropdown/index.js +1 -1
  24. package/dist/collection/components/q2-dropdown/index.js.map +1 -1
  25. package/dist/collection/components/q2-dropdown/styles.css +4 -0
  26. package/dist/collection/components/q2-input/index.js +30 -2
  27. package/dist/collection/components/q2-input/index.js.map +1 -1
  28. package/dist/collection/components/q2-input/styles.css +3 -6
  29. package/dist/collection/components/q2-option-list/index.js +2 -2
  30. package/dist/collection/components/q2-pagination/index.js +60 -9
  31. package/dist/collection/components/q2-pagination/index.js.map +1 -1
  32. package/dist/collection/components/q2-pagination/styles.css +1 -0
  33. package/dist/collection/components/q2-stepper-pane/index.js +2 -2
  34. package/dist/collection/components/q2-tab-container/index.js +1 -1
  35. package/dist/collection/components/q2-tab-container/index.js.map +1 -1
  36. package/dist/collection/utils/charting.js.map +1 -1
  37. package/dist/components/charting.js.map +1 -1
  38. package/dist/components/index9.js +28 -2
  39. package/dist/components/index9.js.map +1 -1
  40. package/dist/components/q2-chart-area.js.map +1 -1
  41. package/dist/components/q2-chart-bar.js.map +1 -1
  42. package/dist/components/q2-chart-donut.js.map +1 -1
  43. package/dist/components/q2-dropdown.js +2 -2
  44. package/dist/components/q2-dropdown.js.map +1 -1
  45. package/dist/components/q2-pagination.js +37 -10
  46. package/dist/components/q2-pagination.js.map +1 -1
  47. package/dist/components/q2-tab-container.js +1 -1
  48. package/dist/components/q2-tab-container.js.map +1 -1
  49. package/dist/docs.json +18 -1
  50. package/dist/esm/charting-2a73ba8e.js.map +1 -1
  51. package/dist/esm/loader.js +1 -1
  52. package/dist/esm/q2-chart-area.entry.js.map +1 -1
  53. package/dist/esm/q2-chart-bar.entry.js.map +1 -1
  54. package/dist/esm/q2-chart-donut.entry.js.map +1 -1
  55. package/dist/esm/q2-dropdown.entry.js +2 -2
  56. package/dist/esm/q2-dropdown.entry.js.map +1 -1
  57. package/dist/esm/q2-input.entry.js +26 -1
  58. package/dist/esm/q2-input.entry.js.map +1 -1
  59. package/dist/esm/q2-pagination.entry.js +36 -10
  60. package/dist/esm/q2-pagination.entry.js.map +1 -1
  61. package/dist/esm/q2-tab-container.entry.js +1 -1
  62. package/dist/esm/q2-tab-container.entry.js.map +1 -1
  63. package/dist/esm/q2-tecton-elements.js +1 -1
  64. package/dist/q2-tecton-elements/p-15ca5c98.entry.js +2 -0
  65. package/dist/q2-tecton-elements/p-15ca5c98.entry.js.map +1 -0
  66. package/dist/q2-tecton-elements/p-458b1987.js.map +1 -1
  67. package/dist/q2-tecton-elements/p-586c8654.entry.js.map +1 -1
  68. package/dist/q2-tecton-elements/{p-f6be73b7.entry.js → p-6e6b160d.entry.js} +2 -2
  69. package/dist/q2-tecton-elements/{p-f6be73b7.entry.js.map → p-6e6b160d.entry.js.map} +1 -1
  70. package/dist/q2-tecton-elements/p-8c6f8d06.entry.js.map +1 -1
  71. package/dist/q2-tecton-elements/p-c3650c2e.entry.js +2 -0
  72. package/dist/q2-tecton-elements/p-c3650c2e.entry.js.map +1 -0
  73. package/dist/q2-tecton-elements/p-dafdb018.entry.js +2 -0
  74. package/dist/q2-tecton-elements/p-dafdb018.entry.js.map +1 -0
  75. package/dist/q2-tecton-elements/p-e5a8f7ff.entry.js.map +1 -1
  76. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  77. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js.map +1 -1
  78. package/dist/test/elements/q2-dropdown-test.e2e.js +28 -0
  79. package/dist/test/elements/q2-dropdown-test.e2e.js.map +1 -1
  80. package/dist/test/elements/q2-input-test.e2e.js +24 -6
  81. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  82. package/dist/types/components/q2-chart-area/index.d.ts +1 -1
  83. package/dist/types/components/q2-chart-bar/index.d.ts +1 -1
  84. package/dist/types/components/q2-chart-donut/index.d.ts +1 -4
  85. package/dist/types/components/q2-input/index.d.ts +4 -0
  86. package/dist/types/components/q2-pagination/index.d.ts +4 -0
  87. package/dist/types/components.d.ts +4 -4
  88. package/dist/types/utils/charting.d.ts +0 -6
  89. package/package.json +3 -3
  90. package/dist/q2-tecton-elements/p-57838409.entry.js +0 -2
  91. package/dist/q2-tecton-elements/p-57838409.entry.js.map +0 -1
  92. package/dist/q2-tecton-elements/p-a2d5cda5.entry.js +0 -2
  93. package/dist/q2-tecton-elements/p-a2d5cda5.entry.js.map +0 -1
  94. package/dist/q2-tecton-elements/p-deb1e1c8.entry.js +0 -2
  95. package/dist/q2-tecton-elements/p-deb1e1c8.entry.js.map +0 -1
  96. /package/dist/types/workspace/workspace/{tecton-production_release_1.35.x → _Gitlab_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime';
2
2
  import * as echarts from 'echarts/core';
3
- import { IChartData } from 'src/utils/charting';
3
+ import { IChartData } from 'q2-tecton-common/lib/types/element-types';
4
4
  export declare class Q2ChartArea implements ComponentInterface {
5
5
  data: IChartData[];
6
6
  alignChartName: 'left' | 'right' | 'center';
@@ -1,6 +1,6 @@
1
1
  import { ComponentInterface } from '../../stencil-public-runtime';
2
2
  import * as echarts from 'echarts/core';
3
- import { IChartData } from 'src/utils/charting';
3
+ import { IChartData } from 'q2-tecton-common/lib/types/element-types';
4
4
  export declare class Q2ChartBar implements ComponentInterface {
5
5
  data: IChartData[];
6
6
  alignChartName: 'left' | 'right' | 'center';
@@ -1,9 +1,6 @@
1
1
  import { ComponentInterface, EventEmitter, Event } from '../../stencil-public-runtime';
2
2
  import * as echarts from 'echarts/core';
3
- import { IChartData } from 'src/utils/charting';
4
- export interface IDonutChartData extends IChartData {
5
- icon?: string;
6
- }
3
+ import { IDonutChartData } from 'q2-tecton-common/lib/types/element-types';
7
4
  export declare class Q2ChartDonut implements ComponentInterface {
8
5
  chartName: string;
9
6
  summaryIcon: string;
@@ -62,12 +62,15 @@ export declare class Q2Input {
62
62
  hints: string[];
63
63
  formattedValueObject: IFormatterValueObject;
64
64
  hasFocus: boolean;
65
+ isSmall: boolean;
66
+ resizeObserver: ResizeObserver;
65
67
  scheduledAfterRender: (() => void)[];
66
68
  valueOnFocus: string;
67
69
  isMobile: boolean;
68
70
  componentWillLoad(): void;
69
71
  componentDidLoad(): void;
70
72
  componentDidRender(): void;
73
+ disconnectedCallback(): void;
71
74
  getFormattedValue(value: string, valueChangedFromProperty: boolean): IFormatterValueObject;
72
75
  hostElement: HTMLElement;
73
76
  get canClear(): boolean;
@@ -91,6 +94,7 @@ export declare class Q2Input {
91
94
  get visibilityToggleText(): string;
92
95
  formatAndUpdateValueFromProp(): void;
93
96
  get inputMode(): any;
97
+ manageClearableResizeObserver(clearable?: boolean): void;
94
98
  ariaLabelObserver(): void;
95
99
  valueObserver(): void;
96
100
  formattedValueObjectObserver(): void;
@@ -7,6 +7,7 @@ export declare class Q2Pagination implements ComponentInterface {
7
7
  pages: number;
8
8
  recordsOnly: boolean;
9
9
  pagesOnly: boolean;
10
+ autoSize: boolean;
10
11
  hostElement: HTMLElement;
11
12
  change: any;
12
13
  isSmall: boolean;
@@ -14,8 +15,10 @@ export declare class Q2Pagination implements ComponentInterface {
14
15
  containerElement: HTMLElement;
15
16
  containerWidth: number;
16
17
  resizeObserver: ResizeObserver;
18
+ componentWillLoad(): void;
17
19
  componentDidLoad(): void;
18
20
  disconnectedCallback(): void;
21
+ manageResizeObserver(): void;
19
22
  onHostElementFocus(event: any): void;
20
23
  get isFullViewHidden(): boolean;
21
24
  get pageWithDefault(): number;
@@ -24,6 +27,7 @@ export declare class Q2Pagination implements ComponentInterface {
24
27
  get recordTypeWithDefault(): string;
25
28
  get currentRange(): string;
26
29
  get totalPages(): number;
30
+ removeResizeObserver(): void;
27
31
  handlePageChange: (page: number) => void;
28
32
  checkSize: () => void;
29
33
  render(): any;
@@ -6,8 +6,7 @@
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
8
  import { ActionSheetData, ActionSheetListCloseData } from "q2-tecton-common/lib/utility/action-sheet";
9
- import { IChartData } from "src/utils/charting";
10
- import { IDonutChartData } from "./components/q2-chart-donut/index";
9
+ import { IChartData, IDonutChartData } from "q2-tecton-common/lib/types/element-types";
11
10
  import { Q2DataTableHeader, Q2DataTableRow, Q2DataTableSerializedRow } from "./components/q2-data-table/index";
12
11
  import { Q2Input } from "./components/q2-input";
13
12
  import { InputType } from "./components/q2-input/index";
@@ -18,8 +17,7 @@ import { IOptionValue } from "./components/q2-option-list/index";
18
17
  import { IOptionValue as IOptionValue1 } from "./components/q2-option-list";
19
18
  import { IStepperPaneEvent } from "./components/q2-stepper-pane/index";
20
19
  export { ActionSheetData, ActionSheetListCloseData } from "q2-tecton-common/lib/utility/action-sheet";
21
- export { IChartData } from "src/utils/charting";
22
- export { IDonutChartData } from "./components/q2-chart-donut/index";
20
+ export { IChartData, IDonutChartData } from "q2-tecton-common/lib/types/element-types";
23
21
  export { Q2DataTableHeader, Q2DataTableRow, Q2DataTableSerializedRow } from "./components/q2-data-table/index";
24
22
  export { Q2Input } from "./components/q2-input";
25
23
  export { InputType } from "./components/q2-input/index";
@@ -475,6 +473,7 @@ export namespace Components {
475
473
  "type": 'menu' | 'listbox';
476
474
  }
477
475
  interface Q2Pagination {
476
+ "autoSize": boolean;
478
477
  "page": number;
479
478
  "pages": number;
480
479
  "pagesOnly": boolean;
@@ -1603,6 +1602,7 @@ declare namespace LocalJSX {
1603
1602
  "type"?: 'menu' | 'listbox';
1604
1603
  }
1605
1604
  interface Q2Pagination {
1605
+ "autoSize"?: boolean;
1606
1606
  "onChange"?: (event: Q2PaginationCustomEvent<any>) => void;
1607
1607
  "page"?: number;
1608
1608
  "pages"?: number;
@@ -1,9 +1,3 @@
1
- export interface IChartData {
2
- id: string;
3
- value: number;
4
- name: string;
5
- color?: string;
6
- }
7
1
  interface NumberFormatOptions {
8
2
  type?: string;
9
3
  decimals?: number | string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "q2-tecton-elements",
3
- "version": "1.35.1",
3
+ "version": "1.36.0",
4
4
  "description": "Q2 Tecton Custom Elements",
5
5
  "license": "MIT",
6
6
  "author": "Q2 Tecton Team",
@@ -35,7 +35,7 @@
35
35
  },
36
36
  "dependencies": {
37
37
  "@stencil/core": "3.4.2",
38
- "q2-tecton-common": "1.35.1",
38
+ "q2-tecton-common": "1.36.0",
39
39
  "smoothscroll-polyfill": "^0.4.4",
40
40
  "swiper": "8.4.4"
41
41
  },
@@ -54,5 +54,5 @@
54
54
  "tslint-config-prettier": "^1.18.0",
55
55
  "typescript": "4.7.4"
56
56
  },
57
- "gitHead": "70c2b5d43434022686649771ba1ae98dbf7704b7"
57
+ "gitHead": "23b59d3c4c0ed69487f453c9630216137c289c50"
58
58
  }
@@ -1,2 +0,0 @@
1
- import{r as t,h as i,F as e,g as n}from"./p-277dc8cd.js";import{a as s,h as o,i as r,o as d,l as h}from"./p-99ab3236.js";const a="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}:host{display:inline-flex}click-elsewhere{position:relative;display:block}q2-popover{--tct-popover-min-width:var(--tct-dropdown-width, var(--t-dropdown-width))}";const l=class{constructor(i){t(this,i);this.dropdownItemSelector="q2-dropdown-item:not([disabled]):not([separator])";this.focusToggle=()=>{this.controlElement.shadowRoot.querySelector("button").focus()};this.openDropdown=()=>{if(this.open)return;this.open=true};this.closeDropdown=()=>{if(!this.open)return;this.open=false};this.onClickElsewhere=t=>{const i=t.target;if(i.localName==="click-elsewhere"){t.stopPropagation();const{popoverElement:i}=this;if(!i)return;i.open=false}};this.onToggleClick=()=>{if(this.open){this.closeDropdown()}else{this.openDropdown()}};this.onToggleKeydown=t=>{if(["ArrowUp","Up"].includes(t.key)){t.preventDefault();this.openDropdown();this.focusLastItem();return}if(["ArrowDown","Down"].includes(t.key)){t.preventDefault();this.openDropdown();this.focusFirstItem();return}if(["Escape","Esc"].includes(t.key)){t.preventDefault();this.focusToggle();this.closeDropdown();return}};this.onDropdownMenuClick=t=>{if(t.target.localName!=="q2-dropdown-item"){return}const i=t.target;if(!i.disabled&&!i.separator){this.focusToggle();this.closeDropdown()}};this.onDropdownMenuKeydown=t=>{if(["Escape","Esc"].includes(t.key)){this.closeDropdown();this.focusToggle();return}if(t.target.localName!=="q2-dropdown-item"){return}const i=t.target;if(["ArrowUp","Up"].includes(t.key)){t.preventDefault();this.focusAdjacentItem(i,"prev");return}if(["ArrowDown","Down"].includes(t.key)){t.preventDefault();this.focusAdjacentItem(i,"next");return}if(t.key==="Tab"){t.preventDefault()}};this.type="icon";this.icon=undefined;this.label=undefined;this.hideLabel=undefined;this.disabled=undefined;this.name=undefined;this.context=undefined;this.contextValue=undefined;this.resolvedType=undefined;this.additionalContext=undefined;this.block=undefined;this.open=undefined;this.popoverMinHeight=150;this.popoverDirection=undefined;this.popoverAlignment="left";this.alignment=undefined;this.popDirection=undefined;this.ariaLabel=undefined}resolveMenu(){return this.name&&window.TectonElements&&window.TectonElements.resolveMenu(this.name,this.contextValue,this.resolvedType,this.additionalContext)}orchestrateResolvedMenuItems(){if(!this.name||!this.context){this.removeResolvedElements();return}this.resolveMenuItemElements().then((t=>{this.removeResolvedElements();t.forEach((t=>{this.hostElement.appendChild(t)}))})).catch((t=>{this.removeResolvedElements();throw t}))}removeResolvedElements(){const t=this.hostElement.querySelectorAll("q2-dropdown-item.resolved-menu-item");t.forEach((t=>this.hostElement.removeChild(t)))}resolveMenuItemElements(){return this.resolveMenu().then((t=>t.map((t=>{let i;let e;if(t["tct-ctxid"]){e={};e[t.contextIdParamName]=t["tct-ctxid"]}switch(t.action){case"navigateTo":i=()=>this.navigateTo(t.featureName,t.moduleName,e);break;case"showOverpanel":i=()=>this.showOverpanel(`${t.featureName}.${t.moduleName}`,e);break}const n=document.createElement("q2-dropdown-item");n.setAttribute("value",t.itemLabel);n.classList.add("resolved-menu-item");n.innerHTML=t.itemLabel;n.onclick=i;return n}))))}navigateTo(t,i,e){var n,s;return(s=(n=window.TectonElements)===null||n===void 0?void 0:n.navigateTo)===null||s===void 0?void 0:s.call(n,t,i,e)}showOverpanel(t,i){var e,n;return(n=(e=window.TectonElements)===null||e===void 0?void 0:e.showOverpanel)===null||n===void 0?void 0:n.call(e,t,i,undefined,true)}get hasCustomButton(){return!!this.hostElement.querySelector("[slot=custom-dropdown-button]")}get determineDropdownItemCount(){return this.hostElement.querySelectorAll(this.dropdownItemSelector).length}get toggleButtonProps(){const t=["primary","secondary","neutral"];const i=["icon","fab","custom",...t];const e=i.includes(this.type)?this.type:"";const n=e==="icon";const s=e==="fab";const o=e==="custom";let r;if(t.includes(e)){r=e==="neutral"?e:`workflow-${e}`}const d=this.open;const h=!!this.disabled;const a=this.open;const l=!n&&!s&&!r?"unstyled":"";return{icon:n,fab:s,intent:r,active:d,disabled:h,ariaExpanded:a,className:l,custom:o}}popDirectionHandler(){s(this,"popDirection","popoverDirection")}alignmentHandler(){s(this,"alignment","popoverAlignment")}ariaLabelHandler(){o(this)}nameHandler(){this.orchestrateResolvedMenuItems()}contextHandler(){this.orchestrateResolvedMenuItems()}contextValueHandler(){this.orchestrateResolvedMenuItems()}resolvedTypeHandler(){this.orchestrateResolvedMenuItems()}additionalContextHandler(){this.orchestrateResolvedMenuItems()}delegateFocus(t){if(!r(t,this.hostElement))return;this.focusToggle()}popoverStateHandler({detail:{open:t}}){var i;if(this.open!==t)this.open=t;(i=this.popoverElement)===null||i===void 0?void 0:i.scrollContainerTo({top:0})}componentWillLoad(){this.popDirectionHandler();this.alignmentHandler();this.ariaLabelHandler()}componentDidLoad(){this.orchestrateResolvedMenuItems();d(this.hostElement)}focusFirstItem(){const t=this.hostElement.querySelector(`${this.dropdownItemSelector}:first-child`);t===null||t===void 0?void 0:t.dispatchEvent(new FocusEvent("focus"))}focusLastItem(){const t=this.hostElement.querySelector(`${this.dropdownItemSelector}:last-child`);t===null||t===void 0?void 0:t.dispatchEvent(new FocusEvent("focus"))}focusAdjacentItem(t,i){const e=Array.from(this.hostElement.querySelectorAll(this.dropdownItemSelector));const n=e.indexOf(t);if(n===-1){return}let s=0;if(i==="next"){s=n<e.length-1?n+1:0}else if(i==="prev"){if(n>0){s=n-1}else{s=e.length-1}}const o=e[s];o&&o.dispatchEvent(new Event("focus"))}render(){const t=this.toggleButtonProps;return i("click-elsewhere",{class:this.open?"dropdown-open":"",onChange:this.onClickElsewhere,"test-id":"dropdownContainer"},i("q2-btn",{ref:t=>this.controlElement=t,class:t.className,onClick:this.onToggleClick,onKeyDown:this.onToggleKeydown,fab:t.fab,intent:t.intent,active:t.active,disabled:t.disabled,ariaExpanded:`${!!t.ariaExpanded}`,label:this.hideLabel&&this.label?h(this.label):undefined,hideLabel:this.hideLabel,ariaHasPopup:"menu","test-id":"dropdownButton",block:this.block,description:h("tecton.element.dropdown.itemCount",[this.determineDropdownItemCount])},this.hasCustomButton?i("div",{"test-id":"dropdownCustom",class:t.custom?"":"hidden"},i("slot",{name:"custom-dropdown-button"})):i(e,null,this.icon?i("q2-icon",{type:this.icon}):" ",this.label&&!this.hideLabel&&i("span",{class:"dropdown-button-text"},h(this.label)))),i("q2-popover",{ref:t=>this.popoverElement=t,controlElement:this.controlElement,open:this.open,minHeight:this.popoverMinHeight,direction:this.popoverDirection,align:this.popoverAlignment},i("div",{onClick:this.onDropdownMenuClick,onKeyDown:this.onDropdownMenuKeydown},i("slot",null),this.open&&i("q2-btn",{class:"sr close-dropdown",onFocus:this.closeDropdown}))))}get hostElement(){return n(this)}static get watchers(){return{popDirection:["popDirectionHandler"],alignment:["alignmentHandler"],ariaLabel:["ariaLabelHandler"],name:["nameHandler"],context:["contextHandler"],contextValue:["contextValueHandler"],resolvedType:["resolvedTypeHandler"],additionalContext:["additionalContextHandler"]}}};l.style=a;export{l as q2_dropdown};
2
- //# sourceMappingURL=p-57838409.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["stylesCss","Q2Dropdown","this","dropdownItemSelector","focusToggle","controlElement","shadowRoot","querySelector","focus","openDropdown","open","closeDropdown","onClickElsewhere","event","target","localName","stopPropagation","popoverElement","onToggleClick","onToggleKeydown","includes","key","preventDefault","focusLastItem","focusFirstItem","onDropdownMenuClick","item","disabled","separator","onDropdownMenuKeydown","focusAdjacentItem","resolveMenu","name","window","TectonElements","contextValue","resolvedType","additionalContext","orchestrateResolvedMenuItems","context","removeResolvedElements","resolveMenuItemElements","then","data","forEach","element","hostElement","appendChild","catch","err","resolvedElements","querySelectorAll","removeChild","datas","map","menuItemData","onClickFn","queryParams","contextIdParamName","action","navigateTo","featureName","moduleName","showOverpanel","newDropdownItem","document","createElement","setAttribute","itemLabel","classList","add","innerHTML","onclick","_b","_a","call","overpanelPath","params","undefined","hasCustomButton","determineDropdownItemCount","length","toggleButtonProps","allowedIntents","allowedTypes","type","icon","fab","custom","intent","active","ariaExpanded","className","popDirectionHandler","handleRenamedProp","alignmentHandler","ariaLabelHandler","handleAriaLabel","nameHandler","contextHandler","contextValueHandler","resolvedTypeHandler","additionalContextHandler","delegateFocus","isEventFromElement","popoverStateHandler","detail","scrollContainerTo","top","componentWillLoad","componentDidLoad","overrideFocus","firstItem","dispatchEvent","FocusEvent","lastItem","activeItem","direction","dropdownItems","Array","from","activeIndex","indexOf","targetIndex","targetItem","Event","render","btnProps","h","class","onChange","ref","el","onClick","onKeyDown","label","hideLabel","loc","ariaHasPopup","block","description","Fragment","minHeight","popoverMinHeight","popoverDirection","align","popoverAlignment","onFocus"],"sources":["./src/components/q2-dropdown/styles.scss?tag=q2-dropdown&encapsulation=shadow","./src/components/q2-dropdown/index.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-flex;\n}\n\nclick-elsewhere {\n position: relative;\n display: block;\n}\n\nq2-popover {\n --tct-popover-min-width: #{var-list(var-prefixer(dropdown-width))};\n}\n","import { Component, ComponentInterface, Prop, Element, Watch, h, Fragment, Listen } from '@stencil/core';\nimport { IDict } from 'src/util';\nimport { handleAriaLabel, handleRenamedProp, isEventFromElement, loc, overrideFocus } from 'src/utils';\n\n@Component({\n tag: 'q2-dropdown',\n shadow: true,\n styleUrl: 'styles.scss',\n})\nexport class Q2Dropdown implements ComponentInterface {\n @Prop({ reflect: true }) type: 'icon' | 'fab' | 'custom' | 'primary' | 'secondary' | 'neutral' = 'icon';\n @Prop({ reflect: true }) icon: string;\n @Prop({ reflect: true, mutable: true }) label: string;\n @Prop({ reflect: true, mutable: true }) hideLabel: boolean;\n @Prop({ reflect: true }) disabled: boolean;\n @Prop({ reflect: true }) name: string;\n @Prop({ reflect: true }) context: string;\n @Prop({ reflect: true }) contextValue: string;\n @Prop({ reflect: true }) resolvedType: string;\n @Prop({ reflect: true }) additionalContext: string;\n @Prop({ reflect: true }) block: boolean;\n @Prop({ reflect: true, mutable: true }) open: boolean;\n @Prop() popoverMinHeight: number = 150;\n @Prop({ mutable: true }) popoverDirection: 'up' | 'down';\n @Prop({ mutable: true }) popoverAlignment: 'left' | 'right' = 'left'; // being used in dropdown.scss\n\n /** @deprecated */\n @Prop({ reflect: true }) alignment: 'left' | 'right';\n\n /** @deprecated */\n @Prop({ reflect: true }) popDirection: 'up' | 'down';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true }) ariaLabel: string;\n\n @Element() hostElement: HTMLElement;\n privatePopDirection: 'down' | 'up';\n controlElement?: HTMLQ2BtnElement;\n popoverElement?: HTMLQ2PopoverElement;\n dropdownItemSelector: string = 'q2-dropdown-item:not([disabled]):not([separator])';\n\n resolveMenu() {\n return (\n this.name &&\n window.TectonElements &&\n window.TectonElements.resolveMenu(this.name, this.contextValue, this.resolvedType, this.additionalContext)\n );\n }\n\n orchestrateResolvedMenuItems() {\n if (!this.name || !this.context) {\n // this is only for contextual menu outlets\n this.removeResolvedElements();\n return;\n }\n\n this.resolveMenuItemElements()\n .then(data => {\n this.removeResolvedElements();\n data.forEach(element => {\n this.hostElement.appendChild(element);\n });\n })\n .catch(err => {\n this.removeResolvedElements();\n throw err;\n });\n }\n\n removeResolvedElements() {\n const resolvedElements = this.hostElement.querySelectorAll('q2-dropdown-item.resolved-menu-item');\n resolvedElements.forEach(element => this.hostElement.removeChild(element));\n }\n\n resolveMenuItemElements() {\n return this.resolveMenu().then(datas => {\n return datas.map(menuItemData => {\n let onClickFn;\n let queryParams;\n if (menuItemData['tct-ctxid']) {\n queryParams = {};\n queryParams[menuItemData.contextIdParamName] = menuItemData['tct-ctxid'];\n }\n\n switch (menuItemData.action) {\n case 'navigateTo':\n onClickFn = () =>\n this.navigateTo(menuItemData.featureName, menuItemData.moduleName, queryParams);\n break;\n case 'showOverpanel':\n onClickFn = () =>\n this.showOverpanel(`${menuItemData.featureName}.${menuItemData.moduleName}`, queryParams);\n break;\n }\n\n const newDropdownItem = document.createElement('q2-dropdown-item');\n newDropdownItem.setAttribute('value', menuItemData.itemLabel);\n newDropdownItem.classList.add('resolved-menu-item');\n newDropdownItem.innerHTML = menuItemData.itemLabel;\n newDropdownItem.onclick = onClickFn;\n\n return newDropdownItem;\n });\n });\n }\n\n navigateTo(featureName: string, moduleName?: string, queryParams?: IDict<string>) {\n return window.TectonElements?.navigateTo?.(featureName, moduleName, queryParams);\n }\n\n showOverpanel(overpanelPath: string, params: IDict<string>) {\n return window.TectonElements?.showOverpanel?.(overpanelPath, params, undefined, true);\n }\n\n get hasCustomButton() {\n return !!this.hostElement.querySelector('[slot=custom-dropdown-button]');\n }\n\n get determineDropdownItemCount() {\n return this.hostElement.querySelectorAll(this.dropdownItemSelector).length;\n }\n\n get toggleButtonProps() {\n const allowedIntents = ['primary', 'secondary', 'neutral'];\n const allowedTypes = ['icon', 'fab', 'custom', ...allowedIntents];\n const type = allowedTypes.includes(this.type) ? this.type : '';\n const icon = type === 'icon';\n const fab = type === 'fab';\n const custom = type === 'custom';\n let intent;\n if (allowedIntents.includes(type)) {\n intent = type === 'neutral' ? type : `workflow-${type}`;\n }\n const active = this.open;\n const disabled = !!this.disabled;\n const ariaExpanded = this.open;\n const className = !icon && !fab && !intent ? 'unstyled' : '';\n\n return {\n icon,\n fab,\n intent,\n active,\n disabled,\n ariaExpanded,\n className,\n custom,\n };\n }\n\n //////// Observers //////////\n @Watch('popDirection')\n popDirectionHandler() {\n handleRenamedProp(this, 'popDirection', 'popoverDirection');\n }\n\n @Watch('alignment')\n alignmentHandler() {\n handleRenamedProp(this, 'alignment', 'popoverAlignment');\n }\n\n @Watch('ariaLabel')\n ariaLabelHandler() {\n handleAriaLabel(this);\n }\n\n @Watch('name')\n nameHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('context')\n contextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('contextValue')\n contextValueHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('resolvedType')\n resolvedTypeHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('additionalContext')\n additionalContextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Listen('focus')\n delegateFocus(event: FocusEvent) {\n if (!isEventFromElement(event, this.hostElement)) return;\n this.focusToggle();\n }\n\n @Listen('popoverStateChanged')\n popoverStateHandler({ detail: { open } }: CustomEvent<{ open: boolean }>) {\n if (this.open !== open) this.open = open;\n this.popoverElement?.scrollContainerTo({ top: 0 });\n }\n\n ///// Lifecycle Hooks ////////\n componentWillLoad() {\n this.popDirectionHandler();\n this.alignmentHandler();\n this.ariaLabelHandler();\n }\n\n componentDidLoad() {\n this.orchestrateResolvedMenuItems();\n overrideFocus(this.hostElement);\n }\n\n ///// Actions ////////\n focusToggle = () => {\n this.controlElement.shadowRoot.querySelector<HTMLButtonElement>('button').focus();\n };\n\n openDropdown = () => {\n if (this.open) return;\n this.open = true;\n };\n\n closeDropdown = () => {\n if (!this.open) return;\n this.open = false;\n };\n\n onClickElsewhere = (event: CustomEvent) => {\n const target = event.target as HTMLClickElsewhereElement;\n if (target.localName === 'click-elsewhere') {\n event.stopPropagation();\n const { popoverElement } = this;\n if (!popoverElement) return;\n popoverElement.open = false;\n }\n };\n\n onToggleClick = () => {\n if (this.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n };\n\n onToggleKeydown = (event: KeyboardEvent) => {\n if (['ArrowUp', 'Up'].includes(event.key)) {\n event.preventDefault();\n this.openDropdown();\n this.focusLastItem();\n return;\n }\n\n if (['ArrowDown', 'Down'].includes(event.key)) {\n event.preventDefault();\n this.openDropdown();\n this.focusFirstItem();\n return;\n }\n\n if (['Escape', 'Esc'].includes(event.key)) {\n event.preventDefault();\n this.focusToggle();\n this.closeDropdown();\n return;\n }\n };\n\n onDropdownMenuClick = (event: MouseEvent | CustomEvent) => {\n if ((event.target as HTMLElement).localName !== 'q2-dropdown-item') {\n return;\n }\n const item = event.target as HTMLQ2DropdownItemElement;\n if (!item.disabled && !item.separator) {\n this.focusToggle();\n this.closeDropdown();\n }\n };\n\n focusFirstItem() {\n const firstItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:first-child`\n );\n\n firstItem?.dispatchEvent(new FocusEvent('focus'));\n }\n\n focusLastItem() {\n const lastItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:last-child`\n );\n lastItem?.dispatchEvent(new FocusEvent('focus'));\n }\n\n focusAdjacentItem(activeItem: HTMLQ2DropdownItemElement, direction: 'next' | 'prev') {\n const dropdownItems: HTMLQ2DropdownItemElement[] = Array.from(\n this.hostElement.querySelectorAll(this.dropdownItemSelector)\n );\n\n const activeIndex = dropdownItems.indexOf(activeItem);\n\n if (activeIndex === -1) {\n return;\n }\n\n let targetIndex: number = 0;\n if (direction === 'next') {\n targetIndex = activeIndex < dropdownItems.length - 1 ? activeIndex + 1 : 0;\n } else if (direction === 'prev') {\n if (activeIndex > 0) {\n targetIndex = activeIndex - 1;\n } else {\n targetIndex = dropdownItems.length - 1;\n }\n }\n const targetItem = dropdownItems[targetIndex];\n targetItem && targetItem.dispatchEvent(new Event('focus'));\n }\n\n onDropdownMenuKeydown = (event: KeyboardEvent) => {\n if (['Escape', 'Esc'].includes(event.key)) {\n this.closeDropdown();\n this.focusToggle();\n return;\n }\n\n if ((event.target as HTMLElement).localName !== 'q2-dropdown-item') {\n return;\n }\n\n const item = event.target as HTMLQ2DropdownItemElement;\n if (['ArrowUp', 'Up'].includes(event.key)) {\n event.preventDefault();\n this.focusAdjacentItem(item, 'prev');\n return;\n }\n\n if (['ArrowDown', 'Down'].includes(event.key)) {\n event.preventDefault();\n this.focusAdjacentItem(item, 'next');\n return;\n }\n if (event.key === 'Tab') {\n event.preventDefault();\n }\n };\n\n /// DOM ///\n\n render() {\n const btnProps = this.toggleButtonProps;\n\n return (\n <click-elsewhere\n class={this.open ? 'dropdown-open' : ''}\n onChange={this.onClickElsewhere}\n test-id=\"dropdownContainer\"\n >\n <q2-btn\n ref={el => (this.controlElement = el)}\n class={btnProps.className}\n onClick={this.onToggleClick}\n onKeyDown={this.onToggleKeydown}\n fab={btnProps.fab}\n intent={btnProps.intent}\n active={btnProps.active}\n disabled={btnProps.disabled}\n ariaExpanded={`${!!btnProps.ariaExpanded}`}\n label={this.hideLabel && this.label ? loc(this.label) : undefined}\n hideLabel={this.hideLabel}\n ariaHasPopup=\"menu\"\n test-id=\"dropdownButton\"\n block={this.block}\n description={loc('tecton.element.dropdown.itemCount', [this.determineDropdownItemCount])}\n >\n {this.hasCustomButton ? (\n <div\n test-id=\"dropdownCustom\"\n class={btnProps.custom ? '' : 'hidden'}\n >\n <slot name=\"custom-dropdown-button\" />\n </div>\n ) : (\n <Fragment>\n {this.icon ? <q2-icon type={this.icon} /> : ' '}\n {this.label && !this.hideLabel && (\n <span class=\"dropdown-button-text\">{loc(this.label)}</span>\n )}\n </Fragment>\n )}\n </q2-btn>\n <q2-popover\n ref={el => (this.popoverElement = el)}\n controlElement={this.controlElement}\n open={this.open}\n minHeight={this.popoverMinHeight}\n direction={this.popoverDirection}\n align={this.popoverAlignment}\n >\n <div\n onClick={this.onDropdownMenuClick}\n onKeyDown={this.onDropdownMenuKeydown}\n >\n <slot />\n {this.open && (\n <q2-btn\n class=\"sr close-dropdown\"\n onFocus={this.closeDropdown}\n />\n )}\n </div>\n </q2-popover>\n </click-elsewhere>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as r,h as a,F as e,g as i}from"./p-277dc8cd.js";import{k as n,c as s,s as o,h as p,o as d,l as c,i as f,m as u,g as l}from"./p-99ab3236.js";function m(t="",r={prefix:"",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:"",allowDecimal:false,allowNegative:true},a=false){const e=t[0]==="-";let i=t;const n=!!r.allowDecimal&&!!r.decimals;if(a){const t=i.replace(/[^\d.]/g,"");i=t&&Number(t).toFixed(n?r.decimals:0)||""}i=i.replace(/[^\d]/g,"");let{integerString:s,decimalString:o}=h(i,n,r.decimals);let p=r.decimalSeparator;if(!n){p="";o=""}const d=r.allowNegative&&e?"-":"";i=`${d}${s}${p}${o}`;s=s.replace(/\B(?=(\d{3})+(?!\d))/g,r.thousandsSeparator);const c=d||s?`${d}${s}${p}${o}`:"";const f=d||s?`${d}${r.prefix}${s}${p}${o}${r.suffix}`:"";let u=c.length-i.length;if(p){u=u+r.decimalSeparator.length}const l=r.prefix||r.suffix;const m=Number.MAX_SAFE_INTEGER.toString().length+u+o.length;const x=`${s.replace(/[^0-9]/g,"")}${o}`.replace(/^0+/,"");return{value:i,formattedValue:c,fullyFormattedValue:f,prefix:l,suffix:"",formattingCharacterCount:u,maxlength:m,unformattedValue:x}}function h(t,r=false,a){if(!r){return{integerString:t,decimalString:""}}const e=t.length-a;let i=t.substring(0,e).padStart(1,"0");if(i.length>1&&i[0]==="0"){i=i.substring(1)}const n=t.substring(e).padStart(a,"0");return{integerString:i,decimalString:n}}function x(t="",r="",a){const e=a&&a.prefix||"";const i=a&&a.suffix||"";if(!t||!r){const r=`${e}${t}${i}`;return{value:t,formattedValue:t,fullyFormattedValue:r,prefix:e.trim()||i.trim(),formattingCharacterCount:0,unformattedValue:t}}const{unformattedValue:n,formattedValue:s,formattingCharacterCount:o}=y(t,r);const p=`${e}${s}${i}`;const d=r.length;const c=C(r,e,i);return{value:n,formattedValue:s,fullyFormattedValue:p,prefix:e.trim()||i.trim(),formattingCharacterCount:o,maxlength:d,minFormattedLength:c,unformattedValue:n}}const S=["?"];function v(t){return S.includes(t)}const b=["#","@","*",...S];function g(t){return b.includes(t)}function k(t){const r=b.join("|");const a=t.replace(new RegExp(`[${r}]`,"g"),"").split("");return new Set(a)}function w(t,r){return r.has(t)}function M(t,r){switch(r){case"#":t=t.replace(/[^\d]/g,"");break;case"@":t=t.toUpperCase().replace(/[^A-Z]+/g,"");break;case"*":t=t.toUpperCase().replace(/[^\dA-Z]+/g,"");break;case"?":t=t.replace(/[^\d]/g,"");break;default:return t}return t}function y(t,r){const a=r.split("");const e=k(r);let i=0;let n=0;let s="";const o=a.reduce(((r,a)=>{if(i>=t.length){return r}if(v(a)&&w(t[i],e)){return r}if(g(a)){i=D(t,i,e);if(i>=t.length){return r}const n=M(t[i],a);r+=n;s+=n;i++}else{r+=a;n++;if(a===t[i]){i++}}return r}),"");return{unformattedValue:s,formattedValue:o,formattingCharacterCount:n}}function D(t,r,a){if(w(t[r],a)){r++;return D(t,r,a)}return r}function C(t,r,a){return t.replace(new RegExp(`[${S.join("|")}]`,"g"),"").length+r.length+a.length}const A={AED:{prefix:"",suffix:"د.إ",decimals:2,decimalSeparator:".",thousandsSeparator:","},AFN:{prefix:"¤",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},ALL:{prefix:"L",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},AMD:{prefix:"դր.",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},ANG:{prefix:"ƒ",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},AOA:{prefix:"Kz",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},ARS:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},AUD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},AWG:{prefix:"ƒ",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},AZN:{prefix:"¤",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},BAM:{prefix:"КМ",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},BBD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},BDT:{prefix:"৳",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},BGN:{prefix:"৳",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},BHD:{prefix:"",suffix:"ب.د",decimals:3,decimalSeparator:".",thousandsSeparator:","},BIF:{prefix:"Fr",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},BMD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},BND:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},BOB:{prefix:"Bs.",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},BRL:{prefix:"R$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},BSD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},BTN:{prefix:"¤",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},BWP:{prefix:"P",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},BYN:{prefix:"Br",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},BZD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},CAD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},CDF:{prefix:"Fr",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},CHF:{prefix:"Fr",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},CLF:{prefix:"Fr",suffix:"",decimals:4,decimalSeparator:".",thousandsSeparator:","},CLP:{prefix:"$",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},CNY:{prefix:"¥",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},COP:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},CRC:{prefix:"₡",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},CUC:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},CUP:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},CVE:{prefix:"$",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},CZK:{prefix:"Kč",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},DJF:{prefix:"Fr",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},DKK:{prefix:"kr",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},DOP:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},DZD:{prefix:"",suffix:"د.ج",decimals:2,decimalSeparator:".",thousandsSeparator:","},EEK:{prefix:"KR",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},EGP:{prefix:"£",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},ERN:{prefix:"Nfk",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},ETB:{prefix:"¤",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},EUR:{prefix:"€",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},FJD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},FKP:{prefix:"£",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},GBP:{prefix:"£",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},GEL:{prefix:"ლ",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},GHS:{prefix:"¤",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},GIP:{prefix:"£",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},GMD:{prefix:"D",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},GNF:{prefix:"Fr",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},GTQ:{prefix:"Q",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},GYD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},HKD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},HNL:{prefix:"L",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},HRK:{prefix:"kn",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},HTG:{prefix:"G",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},HUF:{prefix:"Ft",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},IDR:{prefix:"Rs",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},ILS:{prefix:"₪",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},INR:{prefix:"₨",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},IQD:{prefix:"",suffix:"ع.د",decimals:3,decimalSeparator:".",thousandsSeparator:","},IRR:{prefix:"¤",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},ISK:{prefix:"kr",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},JMD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},JOD:{prefix:"",suffix:"د.ا",decimals:3,decimalSeparator:".",thousandsSeparator:","},JPY:{prefix:"¥",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},KES:{prefix:"Sh",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},KGS:{prefix:"¤",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},KHR:{prefix:"¤",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},KMF:{prefix:"Fr",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},KPW:{prefix:"₩",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},KRW:{prefix:"₩",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},KWD:{prefix:"د.ك",suffix:"",decimals:3,decimalSeparator:".",thousandsSeparator:","},KYD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},KZT:{prefix:"〒",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},LAK:{prefix:"₭",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},LBP:{prefix:"",suffix:"ل.ل",decimals:2,decimalSeparator:".",thousandsSeparator:","},LKR:{prefix:"Rs",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},LRD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},LSL:{prefix:"L",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},LTL:{prefix:"Lt",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},LVL:{prefix:"Ls",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},LYD:{prefix:"",suffix:"ل.د",decimals:3,decimalSeparator:".",thousandsSeparator:","},MAD:{prefix:"",suffix:"د.م.",decimals:2,decimalSeparator:".",thousandsSeparator:","},MDL:{prefix:"L",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},MGA:{prefix:"¤",suffix:"",decimals:1,decimalSeparator:".",thousandsSeparator:","},MKD:{prefix:"ден",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},MMK:{prefix:"K",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},MNT:{prefix:"₮",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},MOP:{prefix:"P",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},MRU:{prefix:"UM",suffix:"",decimals:1,decimalSeparator:".",thousandsSeparator:","},MUR:{prefix:"₨",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},MVR:{prefix:"¤",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},MWK:{prefix:"MK",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},MXN:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},MYR:{prefix:"RM",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},MZN:{prefix:"MTn",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},NAD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},NGN:{prefix:"₦",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},NIO:{prefix:"C$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},NOK:{prefix:"kr",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},NPR:{prefix:"₨",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},NZD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},OMR:{prefix:"",suffix:"ر.ع.",decimals:3,decimalSeparator:".",thousandsSeparator:","},PAB:{prefix:"B/.",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},PEN:{prefix:"S/.",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},PGK:{prefix:"K",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},PHP:{prefix:"p",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},PKR:{prefix:"₨",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},PLN:{prefix:"zł",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},PYG:{prefix:"¤",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},QAR:{prefix:"",suffix:"ر.ق",decimals:2,decimalSeparator:".",thousandsSeparator:","},RON:{prefix:"L",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},RSD:{prefix:"дин.",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},RUB:{prefix:"руб.",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},RWF:{prefix:"Fr",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},SAR:{prefix:"",suffix:"ر.س",decimals:2,decimalSeparator:".",thousandsSeparator:","},SBD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},SCR:{prefix:"₨",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},SDG:{prefix:"£",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},SEK:{prefix:"kr",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},SGD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},SHP:{prefix:"£",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},SKK:{prefix:"Sk",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},SLL:{prefix:"Le",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},SOS:{prefix:"Sh",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},SRD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},STN:{prefix:"Db",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},SVC:{prefix:"₡",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},SYP:{prefix:"£",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},SZL:{prefix:"L",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},THB:{prefix:"฿",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},TJS:{prefix:"ЅМ",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},TMM:{prefix:"m",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},TND:{prefix:"",suffix:"د.ت",decimals:3,decimalSeparator:".",thousandsSeparator:","},TOP:{prefix:"T$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},TRY:{prefix:"YTL",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},TTD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},TWD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},TZS:{prefix:"Sh",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},UAH:{prefix:"¤",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},UGX:{prefix:"Sh",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},USD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},UYU:{prefix:"$",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},UZS:{prefix:"¤",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},VEF:{prefix:"Bs F",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},VND:{prefix:"₫",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},VUV:{prefix:"Vt",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},WST:{prefix:"T",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},XAF:{prefix:"Fr",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},XCD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},XOF:{prefix:"Fr",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},XPF:{prefix:"Fr",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:","},YER:{prefix:"¤",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},ZAR:{prefix:"R",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},ZMW:{prefix:"ZK",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","},ZWD:{prefix:"$",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:","}};function Y(t,r="USD",a=false){let e=r||"";let i=true;if(e.includes("-integer")){e=e.split("-integer")[0];i=false}const n=A[e];if(!n){return x(t)}const s=Object.assign(Object.assign({},n),{allowDecimal:i&&n.decimals>0,allowNegative:false});return m(t,s,a)}const L={AF:{mask:"(##) #######",prefix:"+93 "},AL:{mask:"#######",prefix:"+355 "},DZ:{mask:"(##) ###-###",prefix:"+213 "},AD:{mask:"(#) #####",prefix:"+376 "},AO:{mask:"#########",prefix:"+244 "},AI:{mask:"(###) ###-####",prefix:"+1 "},AG:{mask:"(###) ###-####",prefix:"+1 "},AR:{mask:"##########",prefix:"+54 "},AM:{mask:"########",prefix:"+375 "},AQ:{mask:"##-####",prefix:"+672 "},AW:{mask:"###-####",prefix:"+297 "},AU:{mask:"(##) ####-####",prefix:"+61 "},AT:{mask:"#############",prefix:"+43 "},AZ:{mask:"#########",prefix:"+994 "},BS:{mask:"(###) ###-####",prefix:"+1 "},BH:{mask:"####-####",prefix:"+973 "},BD:{mask:"#########",prefix:"+880 "},BB:{mask:"(###) ###-####",prefix:"+1 "},BY:{mask:"#########",prefix:"+375 "},BE:{mask:"########??",prefix:"+32 "},BZ:{mask:"#######",prefix:"+501 "},BJ:{mask:"(##) ###-###",prefix:"+229 "},BM:{mask:"(###) ###-####",prefix:"+1 "},BT:{mask:"(#) ###-###",prefix:"+975 "},BO:{mask:"(#) ###-####",prefix:"+591 "},BA:{mask:"(##) ##-##-##",prefix:"+387 "},BW:{mask:"########",prefix:"+267 "},BR:{mask:"(##) ####-####",prefix:"+55 "},BN:{mask:"###-####",prefix:"+673 "},BG:{mask:"#######?",prefix:"+359 "},BF:{mask:"##-##-##-##",prefix:"+226 "},BI:{mask:"####-####",prefix:"+257 "},KH:{mask:"(##) ######",prefix:"+855 "},CM:{mask:"####-####",prefix:"+237 "},CA:{mask:"(###) ###-####",prefix:"+1 "},CV:{mask:"###-####",prefix:"+238 "},KY:{mask:"(###) ###-####",prefix:"+1 "},CF:{mask:"###-###",prefix:"+236 "},TD:{mask:"###-##-##",prefix:"+235 "},CL:{mask:"#########",prefix:"+56 "},CN:{mask:"###########",prefix:"+86 "},CO:{mask:"##########",prefix:"57 "},KM:{mask:"###-####",prefix:"+269 "},CD:{mask:"###-####",prefix:"+243 "},CG:{mask:"###-####",prefix:"+242 "},CR:{mask:"####-####",prefix:"+506 "},CI:{mask:"####-####",prefix:"+225 "},HR:{mask:"########?",prefix:"+385 "},CU:{mask:"###########",prefix:"+53 "},CY:{mask:"####-####",prefix:"+357 "},CZ:{mask:"#########",prefix:"+420 "},DK:{mask:"####-####",prefix:"+45 "},DJ:{mask:"##-##-##-##",prefix:"+253 "},DM:{mask:"(###) ###-####",prefix:"+1 "},DO:{mask:"(###) ###-####",prefix:"+1 "},TL:{mask:"###-####",prefix:"+670 "},EC:{mask:"(##) ###-####",prefix:"+593 "},EG:{mask:"##########",prefix:"+20 "},SV:{mask:"####-####",prefix:"+503 "},GQ:{mask:"##-####",prefix:"+240 "},EE:{mask:"#######?",prefix:"+372 "},ET:{mask:"(##) ###-####",prefix:"+251 "},FK:{mask:"#####",prefix:"+500 "},FO:{mask:"######",prefix:"+298 "},FJ:{mask:"###-####",prefix:"+679 "},FI:{mask:"############",prefix:"+358 "},FR:{mask:"#########",prefix:"+33 "},GF:{mask:"##########",prefix:"+594 "},PF:{mask:"######",prefix:"+689 "},GA:{mask:"######?",prefix:"+241 "},GM:{mask:"###-####",prefix:"+220 "},GE:{mask:"########",prefix:"+995 "},DE:{mask:"###########",prefix:"+49 "},GH:{mask:"#########",prefix:"+233 "},GI:{mask:"####-####",prefix:"+350 "},GR:{mask:"##########",prefix:"+30 "},GL:{mask:"###-###",prefix:"+299 "},GD:{mask:"(###) ###-####",prefix:"+1 "},GP:{mask:"##########",prefix:"+590 "},GU:{mask:"(###) ###-####",prefix:"+1 "},GT:{mask:"####-####",prefix:"+502 "},GN:{mask:"####-####",prefix:"+224 "},GW:{mask:"###-####",prefix:"+245 "},GY:{mask:"(###) ####",prefix:"+592 "},HK:{mask:"####-####",prefix:"+852 "},HN:{mask:"########",prefix:"+504 "},HT:{mask:"####-####",prefix:"+509 "},HU:{mask:"########??",prefix:"+36 "},IS:{mask:"#########",prefix:"+354 "},IN:{mask:"##########",prefix:"+91 "},ID:{mask:"#######??????",prefix:"+62 "},IR:{mask:"##########",prefix:"+98 "},IQ:{mask:"##########",prefix:"+964 "},IE:{mask:"#########",prefix:"+353 "},IL:{mask:"#########",prefix:"+972 "},IT:{mask:"##########",prefix:"+39 "},JM:{mask:"(###) ###-####",prefix:"+1 "},JP:{mask:"#########",prefix:"+81 "},JO:{mask:"#########",prefix:"+962 "},KZ:{mask:"(###) ####-###",prefix:"+7 "},KE:{mask:"##########",prefix:"+254 "},KI:{mask:"##-###",prefix:"+686 "},KR:{mask:"##########",prefix:"+82 "},KW:{mask:"####-####",prefix:"+965 "},KG:{mask:"#########",prefix:"+996 "},LA:{mask:"########?",prefix:"+856 "},LV:{mask:"####-####",prefix:"+371 "},LB:{mask:"#######?",prefix:"+961 "},LS:{mask:"##-###-###",prefix:"+266 "},LY:{mask:"########?",prefix:"+218 "},LI:{mask:"###-####",prefix:"+423 "},LT:{mask:"########",prefix:"+370 "},LU:{mask:"###########",prefix:"+352 "},MO:{mask:"####-####",prefix:"+853 "},MK:{mask:"########",prefix:"+389 "},MG:{mask:"##-##-###-##",prefix:"+261 "},MW:{mask:"#########",prefix:"+265 "},MY:{mask:"##########",prefix:"+60 "},MV:{mask:"###-####",prefix:"+960 "},ML:{mask:"####-####",prefix:"+223 "},MT:{mask:"##-##-##-##",prefix:"+356 "},MH:{mask:"###-####",prefix:"+692 "},MQ:{mask:"###-######",prefix:"+596 "},MU:{mask:"###-####",prefix:"+230 "},MX:{mask:"(###) ###-####",prefix:"+52 "},MD:{mask:"########",prefix:"+373 "},MC:{mask:"####-####",prefix:"+377 "},MN:{mask:"###########",prefix:"+976 "},MS:{mask:"(###) ###-####",prefix:"+1 "},MA:{mask:"#########?",prefix:"+212 "},MZ:{mask:"#########",prefix:"+258 "},MM:{mask:"########",prefix:"+95 "},NA:{mask:"##########",prefix:"+264 "},NP:{mask:"##########",prefix:"+977 "},NL:{mask:"#########",prefix:"+31 "},AN:{mask:"########",prefix:"+599 "},NC:{mask:"###-###",prefix:"+687 "},NZ:{mask:"##########",prefix:"+64 "},NI:{mask:"####-####",prefix:"+505 "},NE:{mask:"##-###-###",prefix:"+227 "},NG:{mask:"##########",prefix:"+234 "},MP:{mask:"(###) ###-####",prefix:"+1 "},NO:{mask:"####-####",prefix:"+47 "},OM:{mask:"####-####",prefix:"+968 "},PK:{mask:"##########",prefix:"+92 "},PW:{mask:"###-####",prefix:"+680 "},PA:{mask:"########",prefix:"+507 "},PG:{mask:"########",prefix:"+675 "},PE:{mask:"###########",prefix:"+51 "},PH:{mask:"##########",prefix:"+63 "},PL:{mask:"#########",prefix:"+48 "},PT:{mask:"#-####-####",prefix:"+351 "},PR:{mask:"(###) ###-####",prefix:"+1 "},QA:{mask:"###-####",prefix:"+974 "},RE:{mask:"###-###-###",prefix:"+262 "},RO:{mask:"#########",prefix:"+40 "},RU:{mask:"##########",prefix:"+7 "},RW:{mask:"###-###-###",prefix:"+250 "},SH:{mask:"#-###",prefix:"+290 "},KN:{mask:"(###) ###-####",prefix:"+1 "},LC:{mask:"(###) ###-####",prefix:"+1 "},VC:{mask:"(###) ###-####",prefix:"+1 "},ST:{mask:"##-####",prefix:"+239 "},SA:{mask:"#########",prefix:"+966 "},SN:{mask:"##-###-####",prefix:"+221 "},SC:{mask:"###-###",prefix:"+248 "},SL:{mask:"(##) ###-###",prefix:"+232 "},SG:{mask:"####-####",prefix:"+65 "},SK:{mask:"#########",prefix:"+421 "},SI:{mask:"########",prefix:"+386 "},SB:{mask:"##-###",prefix:"+677 "},ZA:{mask:"(##) ###-####",prefix:"+27 "},ES:{mask:"###-###-###",prefix:"+34 "},LK:{mask:"(##) ###-####",prefix:"+94 "},SD:{mask:"##-###-####",prefix:"+249 "},SR:{mask:"######?",prefix:"+597 "},SZ:{mask:"###-####",prefix:"+268 "},SE:{mask:"###########",prefix:"+46 "},CH:{mask:"(##) ###-####",prefix:"+41 "},SY:{mask:"#########",prefix:"+963 "},TJ:{mask:"#########",prefix:"+992 "},TZ:{mask:"#########",prefix:"+255 "},TH:{mask:"#########",prefix:"+66 "},TG:{mask:"###-####",prefix:"+228 "},TT:{mask:"(###) ###-####",prefix:"+1 "},TN:{mask:"##-###-###",prefix:"+216 "},TR:{mask:"(###) ###-####",prefix:"+90 "},TM:{mask:"########",prefix:"+993 "},TC:{mask:"(###) ###-####",prefix:"+1 "},UG:{mask:"#########",prefix:"+256 "},UA:{mask:"(##) ###-####",prefix:"+380 "},AE:{mask:"#########",prefix:"+971 "},GB:{mask:"#########????",prefix:"+44 "},UY:{mask:"########?",prefix:"+598 "},UZ:{mask:"(##) ###-####",prefix:"+998 "},VE:{mask:"(###) ###-####",prefix:"+58 "},VN:{mask:"#######????",prefix:"+84 "},VG:{mask:"(###) ###-####",prefix:"+1 "},VI:{mask:"(###) ###-####",prefix:"+1 "},YE:{mask:"#########",prefix:"+967 "},ZM:{mask:"#########",prefix:"+260 "},ZW:{mask:"#########",prefix:"+263 "},AC:{mask:"####",prefix:"+247 "},ME:{mask:"(##) ###-####",prefix:"+382 "},PS:{mask:"#########",prefix:"+970 "},RS:{mask:"#########",prefix:"+381 "},TW:{mask:"#########",prefix:"+886 "},CW:{mask:"#-###-####",prefix:"+599 "},US:{mask:"(###) ###-####",prefix:""}};function N(t,r="US"){const{mask:a,prefix:e}=L[r]||L.US;const i={prefix:e};const n=t||"";if(r==="BR"&&n.replace(/[^0-9]/g,"").length===11){return x(n,"(##) #####-####",i)}else{return x(n,a,i)}}function F(t){return x(t,"###-##-####")}function I(t){return x(t,"##-#######")}function R(t){const r=(t||"").replace(/[^\da-zA-Z]/g,"");return x(r)}function $(t,r){let a=t||"";if(r==="spaced"){a=a.replace(/[^a-zA-Z ]/g,"")}else{a=a.replace(/[^a-zA-Z]/g,"")}return x(a)}const T={delimited:{prefix:"",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:",",allowDecimal:false,allowNegative:true},integer:{prefix:"",suffix:"",decimals:0,decimalSeparator:".",thousandsSeparator:"",allowDecimal:true,allowNegative:true},dec:{prefix:"",suffix:"",decimals:2,decimalSeparator:".",thousandsSeparator:",",allowDecimal:true,allowNegative:true}};function G(t){let r;if(t.includes("dec")){r=Number(t.replace("dec",""));t="dec"}let a=T[t];if(!a){return}a=Object.assign({},a);if(r){a.decimals=r}return a}function O(t="",r="",a=false){const e=G(r);if(!e){const r=(t||"").replace(/[^\d.,-]/g,"");return x(r)}return m(t,e,a)}function P(t="",r="",a=false){const e=G(r);if(!e){const r=(t||"").replace(/[^\d.,-]/g,"");return x(r,undefined,{suffix:"%"})}e.suffix="%";return m(t,e,a)}const B={AF:"####",AL:"####",DZ:"#####",AC:"ASCN 1ZZ",AD:"AD###",AR:"####","AR+":"@####@@@",AI:"AI-2640",AM:"####",AS:"#####","AS+4":"#####-####",AU:"####",AT:"####",AZ:"AZ ####",BH:"###?",BD:"####",BB:"BB#####",BY:"######",BE:"####",BM:"@@ **",BT:"#####",BA:"######",BR:"#####","BR+3":"#####-###",VG:"VG####",BN:"@@####",BG:"####",KH:"#####",KY:"KY#-####",CA:"@#@ #@#",CL:"###-####",CN:"######",CX:"####",CC:"####",CO:"######",CR:"#####","CR+4":"#####-####",CV:"####",HR:"#####",CU:"#####",CY:"####",CZ:"### ##",DK:"####",DO:"#####",EC:"######",SV:"####",EG:"#####",EE:"#####",ET:"####",FK:"FIQQ 1ZZ",FO:"###",FI:"#####",FR:"#####",GF:"973##",PF:"987##",GI:"GX11 1AA",GE:"####",DE:"#####",GR:"### ##",GL:"####",GP:"971##",GU:"#####","GU+4":"#####-####",GT:"#####",GG:"GY#? #@@",GN:"###",GS:"SIQQ 1ZZ",GW:"####",HT:"####",HN:"@@####","HN-":"#####",HU:"####",IS:"###",IN:"### ###",ID:"#####",IE:"*** ****",IR:"##########",IQ:"#####",IM:"IM#? #@@",IL:"#######",IT:"#####",JM:"##",JP:"###-####",JE:"JE#? #@@",JO:"#####",KZ:"######",KE:"#####",KR:"#####",KN:"KN####",XK:"#####",KW:"#####",KG:"######",LA:"#####",LV:"LV-####",LB:"####? ????",LS:"###",LR:"####",LI:"####",LT:"#####",LU:"####",MK:"####",MG:"###",MY:"#####",MV:"#####",MT:"@@@ ####",MH:"#####","MH+4":"#####-####",MU:"#####",MQ:"972##",MW:"######",YT:"976##",MX:"#####",FM:"#####","FM+4":"#####-####",MD:"####",MC:"980##",MN:"#####",ME:"#####",MA:"#####",MZ:"####",MM:"#####",NA:"#####",NP:"#####",NC:"988##",NZ:"####",NI:"#####",NE:"####",NG:"######",NF:"####",MP:"#####",NO:"####",OM:"###",PK:"#####",PW:"#####","PW+4":"#####-####",PS:"###",PA:"####",PG:"###",PY:"####",PE:"#####","PE+":"####",PH:"####",PL:"##-###",PT:"####","PT+3":"####-###",PR:"#####","PR+4":"#####-####",RE:"974##",PM:"975##",PN:"PCRN 1ZZ",RO:"######",RU:"######",LC:"LC## ###",VC:"####",WS:"####",SM:"4879#",SA:"#####","SA+4":"#####-####",SN:"#####",RS:"#####",SG:"######",SH:"@@@@ 1ZZ",SK:"### ##",SI:"####",SO:"@@ #####",ZA:"####",ES:"#####",LK:"#####",SD:"#####",SZ:"@###",SE:"### ##",CH:"####",SJ:"####",TW:"###","TW+2":"###-##?",TJ:"######",TZ:"#####",TH:"#####",TT:"######",TN:"####",TR:"#####",TM:"######",UA:"#####",UY:"#####",VI:"#####","VI+4":"#####-####",UZ:"######",VE:"####","VE-":"####-@",VN:"#####?",YU:"#####",WF:"986##",ZM:"#####",US:"#####","US+4":"#####-####"};function K(t,r="US"){const a=B[r];if(!a){return R(t)}return x(t,a)}const E={"MM/DD/YYYY":"##/##/####","M/D/YYYY":"#?/#?/####","MM/DD/YY":"##/##/##","M/D/YY":"#?/#?/##","MM/YY":"##/##","M/YY":"#?/##","DD/MM/YYYY":"##/##/####","D/M/YYYY":"#?/#?/####","DD/MM/YY":"##/##/##","D/M/YY":"#?/#?/##","MM-DD-YYYY":"##-##-####","M-D-YYYY":"#?-#?-####","MM-DD-YY":"##-##-##","M-D-YY":"#?-#?-##","MM-YY":"##-##","M-YY":"#?-##","DD-MM-YYYY":"##-##-####","D-M-YYYY":"#?-#?-####","DD-MM-YY":"##-##-##","D-M-YY":"#?-#?-##"};function V(t,r="MM/DD/YYYY"){const a=E[r]||E["MM/DD/YYYY"];const e=x(t,a);return Object.assign(Object.assign({},e),{value:e.formattedValue})}function Z(t){const r=X.detectCreditCardTypeFromValue(t);const a=Q[r](t);if(t.length<2&&r==="unknown"){a.leftIcon="card"}return a}const U=function t(r){const a=x(r,"#### #### #### ####");return Object.assign(Object.assign({},a),{type:"unknown",leftIcon:"card-unknown",leftIconMuted:r.length<16})};const H=function t(r){const a=x(r,"#### ###### #####");return Object.assign(Object.assign({},a),{type:"amex",leftIcon:"card-amex-color",leftIconMuted:r.length<15})};const z=function t(r){const a=x(r,"#### #### #### ####");return Object.assign(Object.assign({},a),{type:"discover",leftIcon:"card-discover-color",leftIconMuted:r.length<16})};const W=function t(r){const a=x(r,"#### #### #### ####");return Object.assign(Object.assign({},a),{type:"masterCard",leftIcon:"card-mastercard-color",leftIconMuted:r.length<16})};const j=function t(r){const a=x(r,"#### #### #### ####");return Object.assign(Object.assign({},a),{type:"visa",leftIcon:"card-visa-color",leftIconMuted:r.length<16})};const J=function t(r){const a=x(r,"#### ###### ####");return Object.assign(Object.assign({},a),{type:"dinersClub",leftIcon:"card-dinersclub-color",leftIconMuted:r.length<14})};const Q={discover:z,amex:H,masterCard:W,visa:j,dinersClub:J,unknown:U};function q(t){const r=parseInt(t.charAt(0));const a=parseInt(t.charAt(1));switch(r){case 2:if(a>1&&a<8){if(t.length>=4){const r=parseInt(t.substr(0,4));if(r>=2221&&r<2721){return"masterCard"}}else{return"masterCard"}}break;case 3:if(a===4||a===7){return"amex"}if(a===0){if(t.length>2){const r=parseInt(t.charAt(2));if(r<6||r===9){return"dinersClub"}}else{return"dinersClub"}}if(a===6||a===8||a===9){return"dinersClub"}break;case 4:return"visa";case 5:if(a>0&&a<6){return"masterCard"}break;case 6:if(a===0){if(t.length>3){const r=t.substr(0,4);if(r==="6011"){return"discover"}}else{return"discover"}}if(a===4){if(t.length>2){const r=parseInt(t.substr(0,3));if(r>643){return"discover"}}else{return"discover"}}if(a===5){return"discover"}if(a===2){if(t.length>5){const r=parseInt(t.substr(0,6));if(r>=622126&&r<=622925){return"discover"}}else{return"discover"}}break;default:return"unknown"}return"unknown"}const X={detectCreditCardTypeFromValue:q,format:Z,amexFormatter:H,dinersClubInternationalFormatter:J,discoverFormatter:z,masterCardFormatter:W,visaFormatter:j,unknownFormatter:U};const _='* {\n box-sizing: border-box;\n}\n\n*:active {\n outline: none;\n}\n\n*:focus {\n outline: none;\n box-shadow: var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C);\n}\n\n:host {\n box-shadow: none !important;\n}\n\n::-moz-focus-inner {\n border: none;\n}\n\ninput,\ntextarea,\nbutton {\n font-family: inherit;\n font-size: inherit;\n font-stretch: inherit;\n}\n\n:host(.sr),\n:host(.sr) button {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n white-space: nowrap;\n}\n\n.sr,\n.sr button {\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n white-space: nowrap;\n}\n\n.hidden {\n display: none;\n}\n\n:host([hidden]) {\n display: none;\n}\n\n.invisible {\n visibility: hidden;\n}\n\n:host {\n display: block;\n margin: var(--tct-input-margin-top, var(--t-input-margin-top, var(--app-scale-6x, 30px))) 0 var(--tct-input-margin-bottom, var(--t-input-margin-bottom, var(--app-scale-6x, 30px)));\n font-size: var(--tct-input-font-size, var(--t-input-font-size, var(--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\n.field-container {\n --comp-input-tween: var(--tct-input-tween, var(--t-input-tween, var(--tct-tween-2, var(--app-tween-2, 0.4s ease))));\n}\n\nlabel {\n --comp-label-padding: var(--tct-input-label-padding, 0 var(--tct-input-label-padding-right, var(--t-input-label-padding-right, 0)) 0 var(--tct-input-label-padding-left, var(--t-input-label-padding-left, 0)));\n --comp-label-margin: var(--tct-input-label-margin, var(--tct-input-label-margin-top, var(--t-input-label-margin-top, 0)) 0 var(--tct-input-label-margin-bottom, var(--t-input-label-margin-bottom, var(--tct-scale-1, var(--app-scale-1x, 5px)))));\n display: block;\n padding: var(--comp-label-padding);\n margin: var(--comp-label-margin);\n color: var(--tct-input-label-font-color, var(--t-input-label-font-color, inherit));\n font-size: var(--tct-input-label-font-size, var(--t-input-label-font-size, inherit));\n font-weight: var(--tct-input-label-font-weight, var(--t-input-label-font-weight, 600));\n text-transform: var(--tct-input-label-text-transform, var(--t-input-label-text-transform, none));\n letter-spacing: var(--tct-input-label-letter-spacing, var(--t-input-label-letter-spacing, normal));\n transition: color var(--comp-input-tween);\n}\n\n.optional-tag {\n --comp-label-optional-margin: var(--tct-input-label-optional-margin, 0 0 0 var(--tct-input-label-optional-margin-left, var(--t-input-label-optional-margin-left, var(--tct-scale-1, var(--app-scale-1x, 5px)))));\n margin: var(--comp-label-optional-margin);\n color: var(--tct-input-label-optional-font-color, var(--t-input-label-optional-font-color, var(--t-textA, var(--t-a11y-gray-color, rgba(77, 77, 77, 0.77)))));\n font-size: var(--tct-input-label-optional-font-size, var(--t-input-label-optional-font-size, 12px));\n font-weight: var(--tct-input-label-optional-font-weight, var(--t-input-label-optional-font-weight, 400));\n}\n\n.input-container {\n --comp-input-background: var(--tct-input-background, var(--tct-input-bg, var(--t-input-bg, var(--t-gray-14, #fcfcfd))));\n --comp-input-horizontal-gap: var(--tct-input-horizontal-gap, var(--t-input-horizontal-gap, 0));\n --comp-input-border-top-left-radius: var(--tct-input-border-top-left-radius, var(--t-input-border-top-left-radius, var(--tct-border-radius-1, var(--app-border-radius-1, 3px))));\n --comp-input-border-top-right-radius: var(--tct-input-border-top-right-radius, var(--t-input-border-top-right-radius, var(--tct-border-radius-1, var(--app-border-radius-1, 3px))));\n --comp-input-border-bottom-right-radius: var(--tct-input-border-bottom-right-radius, var(--t-input-border-bottom-right-radius, var(--tct-border-radius-1, var(--app-border-radius-1, 3px))));\n --comp-input-border-bottom-left-radius: var(--tct-input-border-bottom-left-radius, var(--t-input-border-bottom-left-radius, var(--tct-border-radius-1, var(--app-border-radius-1, 3px))));\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(--tct-input-border-color, var(--t-input-border-color, var(--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(--tct-input-min-height, var(--t-input-min-height, 44px));\n --comp-input-max-height: var(--tct-input-max-height, var(--t-input-max-height));\n --comp-input-hover-ring-color: var(--tct-input-hover-ring-color, var(--t-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 container-type: inline-size;\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(--tct-input-box-shadow, var(--t-input-box-shadow, none));\n transition: border-width var(--comp-input-tween), border-color var(--comp-input-tween), box-shadow var(--comp-input-tween);\n}\n:host([disabled]:not([disabled=false])) .input-container {\n cursor: not-allowed;\n opacity: var(--tct-input-disabled-opacity, var(--t-input-disabled-opacity, var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4))));\n}\n\n.input-field {\n --comp-input-padding: var(--tct-input-padding, 0 var(--tct-input-horizontal-padding, var(--t-input-horizontal-padding, var(--tct-scale-2, var(--app-scale-2x, 10px)))));\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(--tct-input-height, var(--t-input-height, 44px));\n width: 100%;\n padding: var(--comp-input-padding);\n background: transparent;\n color: var(--tct-input-font-color, var(--t-input-font-color, var(--t-text, inherit)));\n display: inline-block;\n text-align: var(--tct-input-align, "start");\n font-weight: var(--tct-input-font-weight, var(--t-input-font-weight, 400));\n /* To remove up/down arrow in number field for webkit based browser */\n /* For Firefox */\n}\n.input-field:focus {\n outline: none;\n box-shadow: none;\n}\n.input-field::-webkit-outer-spin-button, .input-field::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n}\n.input-field[type=number] {\n -moz-appearance: textfield;\n}\n.input-field::-ms-clear {\n display: none;\n}\n.input-field[type=search]::-webkit-search-decoration, .input-field[type=search]::-webkit-search-cancel-button, .input-field[type=search]::-webkit-search-results-button, .input-field[type=search]::-webkit-search-results-decoration {\n display: none;\n}\n.input-field[disabled]:not([disabled=false]) {\n cursor: not-allowed;\n}\n.right-aligned .input-field {\n text-align: right;\n}\n.input-field:is(input) {\n flex: 1;\n}\n.input-field:is(button) {\n display: inline-flex;\n align-items: center;\n}\n.has-custom-display .input-field:is(button) {\n height: auto;\n padding: 0;\n}\n.input-field:is(button) span {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: block;\n}\n\n.custom-display-container {\n max-width: 100%;\n}\n.has-custom-display .custom-display-container {\n --comp-default-padding: var(--app-scale-2x, 10px) var(--app-scale-2x, 10px) var(--app-scale-3x, 15px);\n padding: var(--tct-input-padding, var(--t-input-padding, var(--comp-default-padding)));\n width: 100%;\n}\n\n.has-error .input-container:hover {\n --comp-input-hover-ring-color: var(--tct-input-error-border-color, var(--t-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(--tct-input-hover-border-width, var(--comp-input-border-width));\n border-color: var(--tct-input-hover-border-color, var(--comp-input-border-color));\n background: var(--tct-input-hover-background, var(--comp-input-background));\n box-shadow: var(--comp-input-hover-ring), var(--tct-input-hover-box-shadow, var(--t-input-hover-box-shadow, 0 0 transparent));\n}\n\n.has-focus .input-container {\n border-width: var(--tct-input-focus-border-width, var(--comp-input-focus-border-width));\n border-color: var(--tct-input-focus-border-color, var(--t-input-focus-border-color, var(--comp-input-border-color)));\n background: var(--tct-input-focus-background, var(--comp-input-background));\n box-shadow: var(--const-double-focus-ring), var(--tct-input-focus-box-shadow, var(--t-input-focus-box-shadow, 0 0 transparent));\n}\n.has-focus .input-container:hover {\n border-width: var(--tct-input-hover-border-width, var(--comp-input-border-width));\n border-color: var(--tct-input-hover-border-color, var(--comp-input-border-color));\n background: var(--tct-input-hover-background, var(--comp-input-background));\n box-shadow: var(--comp-input-hover-ring), var(--tct-input-hover-box-shadow, var(--t-input-hover-box-shadow, 0 0 transparent));\n}\n\n.input-field::placeholder,\n.placeholder-text {\n color: var(--tct-input-placeholder-font-color, var(--t-input-placeholder-font-color, var(--t-textA, var(--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.input-icons-container-left > div:not(.vertical-separator),\n.input-icons-container-right > div:not(.vertical-separator) {\n min-width: var(--tct-icon-min-width, 44px);\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.input-icons-container-left:empty,\n.input-icons-container-right:empty {\n display: none;\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(--app-scale-2x, 10px);\n}\n.input-icons-container-right .btn-visibility-toggle {\n color: var(--tct-input-visibility-toggle-font-color, var(--tct-primary, var(--t-primary, #006eb2)));\n font-size: var(--tct-input-visibility-toggle-font-size, 12px);\n padding: var(--tct-input-visibility-toggle-padding, var(--comp-visibility-toggle-padding));\n}\n\nq2-icon {\n margin-top: calc(var(--tct-input-border-top-width, var(--t-input-border-top-width, 1px)) / 2);\n margin-bottom: calc(var(--tct-input-border-bottom-width, var(--t-input-border-bottom-width, 1px)) / 2);\n pointer-events: none;\n color: var(--tct-input-icon-stroke-primary, var(--t-input-icon-stroke-primary, var(--t-a11y-gray-color, var(--t-textA, var(--app-gray, #747474)))));\n --tct-icon-stroke-primary: var(--tct-input-icon-stroke-primary, var(--t-input-icon-stroke-primary, var(--t-a11y-gray-color, var(--t-textA, var(--app-gray, #747474)))));\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(--tct-input-height, var(--t-input-height, 44px));\n font-size: var(--tct-input-prefix-font-size, var(--t-input-prefix-font-size, inherit));\n color: var(--tct-input-prefix-font-color, var(--t-input-prefix-font-color, inherit));\n background: var(--tct-input-prefix-background, var(--tct-input-prefix-bg, var(--t-input-prefix-bg, var(--tct-input-background, var(--tct-input-bg, var(--t-input-bg, var(--tct-gray-14, var(--t-gray-14, #f2f2f2))))))));\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(--tct-input-border-top-width, var(--t-input-border-top-width, 1px)) - var(--tct-input-border-left-width, var(--t-input-border-left-width, 1px))\n );\n border-bottom-left-radius: calc(\n var(--comp-input-border-bottom-left-radius) - var(--tct-input-border-bottom-width, var(--t-input-border-bottom-width, 1px)) - var(--tct-input-border-left-width, var(--t-input-border-left-width, 1px))\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(--tct-input-border-top-width, var(--t-input-border-top-width, 1px)) - var(--tct-input-border-right-width, var(--t-input-border-right-width, 1px))\n );\n border-bottom-right-radius: calc(\n var(--comp-input-border-bottom-right-radius) - var(--tct-input-border-bottom-width, var(--t-input-border-bottom-width, 1px)) - var(--tct-input-border-right-width, var(--t-input-border-right-width, 1px))\n );\n}\n\n.icon-error {\n color: var(--tct-stoplight-error, var(--const-stoplight-alert, #c30000));\n --tct-icon-stroke-primary: var(--tct-stoplight-error, var(--const-stoplight-alert, #c30000));\n}\n\n.pw-show {\n position: absolute;\n margin-right: var(--tct-scale-2, var(--app-scale-2x, 10px));\n}\n\n.btn-clear {\n --tct-icon-size: 17px;\n}\n\n@container (max-width: 190px) {\n .input-container .btn-clear {\n --tct-btn-icon-width: 17px;\n }\n}\n.messages-container {\n height: 0px;\n overflow: hidden;\n background: var(--tct-message-background, var(--tct-message-bg, var(--t-message-bg, var(--tct-gray-14, var(--t-gray-14, var(--tct-gray-l3, var(--app-gray-l3, #f2f2f2)))))));\n box-shadow: var(--tct-input-message-box-shadow, var(--t-input-message-box-shadow, var(--tct-box-shadow-1, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3)))));\n transition: height var(--tct-input-messages-tween, var(--t-input-messages-tween, var(--tct-tween-1, var(--app-tween-1, 0.2s ease))));\n margin-top: var(--tct-input-messages-margin-top, 2px);\n z-index: var(--tct-input-messages-z-index, 5);\n position: absolute;\n width: 100%;\n color: var(--tct-input-messages-font-color, var(--t-input-messages-font-color, inherit));\n}\n\n.has-error label {\n color: var(--tct-input-error-label-font-color, var(--t-input-error-label-font-color, var(--tct-input-label-font-color, var(--t-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(--tct-input-error-prefix-font-color, var(--t-input-error-prefix-font-color, inherit));\n background: var(--tct-input-error-prefix-background, var(--tct-input-error-prefix-bg, var(--t-input-error-prefix-bg, var(--tct-input-background, var(--tct-input-bg, var(--t-input-bg, var(--tct-gray-14, var(--t-gray-14, var(--tct-gray-l3, var(--app-gray-l3, #f2f2f2))))))))));\n}\n\n.has-error .input-container:not(:focus-within) {\n border-color: var(--tct-input-error-border-color, var(--t-input-error-border-color, var(--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 var(--tct-input-prefix-border-color, var(--t-input-prefix-border-color, var(--tct-input-border-color, var(--t-input-border-color, var(--t-a11y-gray-color-AA, #404040)))));\n}';const tt={text:"text",tel:"tel",number:"number",password:"text",search:"search",url:"url",email:"email",currency:"text",phone:"tel",ssn:"text",alphanumeric:"text",alpha:"text",numeric:"text",percentage:"text",postal:"text",date:"text","credit-card":"text"};const rt=class{constructor(a){t(this,a);this.input=r(this,"input",7);this.change=r(this,"change",7);this.clear=r(this,"clear",7);this.formatted=r(this,"formatted",7);this.scheduledAfterRender=[];this.isMobile=n();this.guid=s();this.onToggleVisibility=()=>{this.hostElement.dispatchEvent(new FocusEvent("focus"));this.textHidden=!this.textHidden};this.onInputClick=()=>{if(this.shouldCursorStayAtEnd)this.placeCursorAtEnd()};this.onInputFocus=()=>{if(this.inputField.tagName==="INPUT"){this.scheduledAfterRender.push((()=>this.shouldCursorStayAtEnd?this.placeCursorAtEnd():this.setCursorPosition(this.calculateCursorPositionOnFocus())))}this.hasFocus=true;o(this);this.valueOnFocus=this.value};this.onInputBlur=()=>{this.hasFocus=false;o(this);if(this.valueOnFocus!==this.formattedValueObject.value){this.valueOnFocus=this.formattedValueObject.value;this.change.emit(Object.assign({value:this.formattedValueObject.value,formattedValue:this.formattedValueObject.fullyFormattedValue,minFormattedLength:this.formattedValueObject.minFormattedLength},this.formattedValueObject.type&&{type:this.formattedValueObject.type}))}};this.onInputInput=t=>{t.stopPropagation();const r=this.getFormattedValue(t.target.value,false);this.handleDataInput(r)};this.onInputPaste=t=>{if(this.type==="currency"){const r=t.clipboardData.getData("text");const a=this.getFormattedValue(r,true);t.preventDefault();this.handleDataInput(a)}};this.handleValueAndCursor=()=>{const t=this.calculateCursorPositionOnInput();if(this.type!=="number")this.inputField.value=this.formattedValueObject.formattedValue;this.input.emit(Object.assign({value:this.formattedValueObject.value,formattedValue:this.formattedValueObject.fullyFormattedValue,minFormattedLength:this.formattedValueObject.minFormattedLength},this.formattedValueObject.type&&{type:this.formattedValueObject.type}));if(!this.formattedValueObject.value){this.clear.emit()}this.setCursorPosition(t)};this.onInputKeydown=t=>{const r=["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"];const{key:a}=t;if(this.shouldCursorStayAtEnd&&r.includes(a))t.preventDefault();if(a==="Enter"&&this.valueOnFocus!==this.formattedValueObject.value){this.valueOnFocus=this.formattedValueObject.value;this.change.emit(Object.assign({value:this.formattedValueObject.value,formattedValue:this.formattedValueObject.fullyFormattedValue,minFormattedLength:this.formattedValueObject.minFormattedLength},this.formattedValueObject.type&&{type:this.formattedValueObject.type}))}};this.onClearInput=()=>{const t={value:"",formattedValue:"",minFormattedLength:this.formattedValueObject.minFormattedLength};this.input.emit(t);this.change.emit(t);this.clear.emit();this.inputField.focus()};this.value=undefined;this.label=undefined;this.hideLabel=undefined;this.type="text";this.placeholder=undefined;this.disabled=false;this.autocomplete=undefined;this.autocorrect=undefined;this.autocapitalize=undefined;this.autofocus=undefined;this.hideMessages=undefined;this.iconLeft=undefined;this.iconRight=undefined;this.readonly=undefined;this.clearable=undefined;this.optional=undefined;this.min=undefined;this.max=undefined;this.step=undefined;this.formatModifier=undefined;this.maxlength=undefined;this.pseudo=undefined;this.showVisibilityToggle=false;this.textHidden=undefined;this.badgeValue=undefined;this.badgeTheme=undefined;this.role=undefined;this.ariaControls=undefined;this.ariaOwns=undefined;this.ariaHaspopup=undefined;this.ariaExpanded=undefined;this.ariaActivedescendant=undefined;this.current=undefined;this.ariaLabel=undefined;this.errors=undefined;this.hints=undefined;this.formattedValueObject=undefined;this.hasFocus=undefined}componentWillLoad(){if(isNaN(this.maxlength)){this.maxlength=undefined}this.formattedValueObject=this.getFormattedValue(this.stringValue,true);Object.defineProperty(this.hostElement,"formattedValue",{get:()=>{var t,r;return(r=(t=this.formattedValueObject)===null||t===void 0?void 0:t.formattedValue)!==null&&r!==void 0?r:""}});p(this);if(this.textHidden===undefined){this.textHidden=this.type==="password"}}componentDidLoad(){if(!this.pseudo){this.inputField.value=this.formattedValueObject.formattedValue}if(this.autofocus===true){this.inputField.focus()}d(this.hostElement)}componentDidRender(){this.scheduledAfterRender.forEach((t=>t()));this.scheduledAfterRender=[]}getFormattedValue(t,r){const a={currency:Y,phone:N,ssn:F,tin:I,alphanumeric:R,alpha:$,numeric:O,percentage:P,postal:K,date:V,"credit-card":X.format};if(a[this.type]){return a[this.type](t,this.formatModifier,r)}return{value:t,formattedValue:t,fullyFormattedValue:t,formattingCharacterCount:0,unformattedValue:t}}get canClear(){var t,r;return this.clearable&&!!((r=(t=this.inputField)===null||t===void 0?void 0:t.value)!==null&&r!==void 0?r:this.value)}get shouldCursorStayAtEnd(){return this.isMobile&&this.type==="currency"}get hasError(){return Array.isArray(this.errors)&&this.errors.length>0}get messages(){return this.errors&&this.errors.length>0&&this.errors||this.hints&&this.hints.length>0&&this.hints||[]}get inputField(){return this.hostElement.shadowRoot.querySelector(".input-field")}get showMessages(){return this.messages.length>0&&!this.hideMessages}get inputId(){return`input-guid-${this.guid}`}get inputDescribedBy(){return this.showMessages?`${this.inputId}-description`:undefined}get isMaskedType(){const t=["currency","phone","ssn","tin","alphanumeric","alpha","numeric","percentage","postal","date","credit-card"];return t.includes(this.type)}get wrapperClasses(){const t=["field-container"];if(this.hasError)t.push("has-error");if(!!this.value)t.push("has-value");if(this.clearable&&!!this.value)t.push("has-clear");if(this.hasFocus)t.push("has-focus");if(this.formattedValueObject.prefix)t.push("has-prefix");if(this.computedIconLeft)t.push("has-icon-left");if(this.showIconSeparator)t.push("has-icon-separator");if(this.formattedValueObject.suffix)t.push("has-suffix");if(!this.formattedValueObject.suffix&&this.iconRight)t.push("has-icon-right");if(this.type==="currency")t.push("right-aligned");else t.push("left-aligned");if(this.hasCustomDisplaySlot)t.push("has-custom-display");return t.join(" ")}get computedType(){if(["password","text","ssn"].includes(this.type)&&this.textHidden){return"password"}else{return this.type&&tt[this.type]||"text"}}get computedAutocomplete(){if(this.type==="currency")return"transaction-amount";return this.autocomplete||"off"}get computedIconLeft(){if(this.formattedValueObject.prefix){return}if(this.type==="search"){return"search"}if(this.formattedValueObject.leftIcon){return this.formattedValueObject.leftIcon}return this.iconLeft}get showIconSeparator(){return this.type==="credit-card"||!!this.formattedValueObject.prefix}get computedClassForIconLeft(){let t="icon-left";if(this.formattedValueObject.leftIconMuted){t+=" icon-left-muted"}return t}get stringValue(){return this.value&&String(this.value)||""}get canSetSelection(){return!["email","number"].includes(this.computedType)}get visibilityToggleText(){return c(`tecton.element.input.toggle.${this.textHidden?"show":"hide"}`)}formatAndUpdateValueFromProp(){this.formattedValueObject=this.getFormattedValue(this.stringValue,true);if(!this.pseudo){const t=()=>{this.inputField.value=this.formattedValueObject.formattedValue};this.inputField?t():this.scheduledAfterRender.push((()=>t()))}}get inputMode(){const t={currency:"numeric",ssn:"numeric",tin:"numeric",numeric:"decimal",percentage:"decimal",postal:"numeric",date:"numeric","credit-card":"numeric"};return this.type&&t[this.type]||undefined}ariaLabelObserver(){p(this)}valueObserver(){this.formatAndUpdateValueFromProp()}formattedValueObjectObserver(){this.formatted.emit(this.formattedValueObject)}typeObserver(){this.formatAndUpdateValueFromProp()}formatModifierObserver(){this.formatAndUpdateValueFromProp()}hintsObserver(){this.hasFocus&&this.scheduledAfterRender.push((()=>o(this)))}errorsObserver(){this.hasFocus&&this.scheduledAfterRender.push((()=>o(this)))}onHostElementFocus(t){if(!f(t,this.hostElement))return;this.inputField.focus()}onHostElementChange(t){if(t.target===this.hostElement&&!this.hostElement.onchange){this.value=t.detail.value}}handleDataInput(t){if(this.maxlength===undefined||t.unformattedValue.length<=this.maxlength||t.unformattedValue.length<=this.formattedValueObject.unformattedValue.length){this.formattedValueObject=t}else if(this.maxlength){t=this.getFormattedValue(t.unformattedValue.substring(0,this.maxlength),false);this.formattedValueObject=t}this.handleValueAndCursor()}render(){return a("div",{class:this.wrapperClasses},l(this),this.inputContainerDOM(),u(this))}get hasCustomDisplaySlot(){return!!this.hostElement.querySelector("[slot=custom-display]")}inputContainerDOM(){return a("div",{class:"input-container",tabindex:-1,"test-id":"inputContainer"},a("div",{class:"input-icons-container-left"},this.formattedValueObject.prefix&&a("div",{class:"input-prefix"},this.formattedValueObject.prefix),this.computedIconLeft&&a("div",null,a("q2-icon",{type:this.computedIconLeft,class:this.computedClassForIconLeft})),a("slot",{name:"input-left"}),this.showIconSeparator&&a("div",{class:"vertical-separator"}),this.hasError&&this.type==="currency"&&a("div",null,a("q2-icon",{type:"error",class:"icon-error","test-id":"iconError"}))),this.pseudo?this.pseudoInputDOM():this.standardInputDOM(),a("div",{class:"input-icons-container-right"},this.canClear&&a("q2-btn",{class:"btn-clear",ariaLabel:c("tecton.element.input.clear",[this.label]),"test-id":"clearButton",onClick:this.onClearInput},a("q2-icon",{type:"close",class:"icon-clear"})),["password","text","ssn","tin"].includes(this.type)&&this.showVisibilityToggle&&a("q2-btn",{class:"btn-visibility-toggle","test-id":"toggleVisibilityButton",onClick:this.onToggleVisibility},this.visibilityToggleText),this.formattedValueObject.suffix&&a("span",{class:"input-suffix"},this.formattedValueObject.suffix),this.badgeValue&&a("q2-badge",{size:"large",theme:this.badgeTheme},this.badgeValue),this.hasError&&this.type!=="currency"&&a("div",null,a("q2-icon",{type:"error",class:"icon-error","test-id":"iconError"})),this.iconRight&&!this.formattedValueObject.suffix&&a("div",null,a("q2-icon",{type:this.iconRight,class:"icon-right"})),a("slot",{name:"input-right"})))}standardInputDOM(){const{hasCustomDisplaySlot:t}=this;const r=["input-field"];if(t)r.push("sr");return a(e,null,t&&a("div",{class:"custom-display-container"},a("slot",{name:"custom-display"})),a("input",{class:r.join(" "),id:this.inputId,type:this.computedType,size:this.formattedValueObject.prefix?10:undefined,max:this.max,min:this.min,step:this.step,"aria-current":this.current||undefined,"aria-describedby":this.inputDescribedBy,"aria-required":`${!this.optional}`,"aria-invalid":`${this.hasError}`,"aria-controls":this.ariaControls&&`${this.ariaControls}`||undefined,"aria-owns":this.ariaOwns&&`${this.ariaOwns}`||undefined,"aria-haspopup":this.ariaHaspopup&&`${this.ariaHaspopup}`||undefined,"aria-expanded":!!this.ariaExpanded&&`${!!this.ariaExpanded}`||undefined,"aria-activedescendant":this.ariaActivedescendant&&`${this.ariaActivedescendant}`,"aria-label":this.hideLabel&&this.label?c(this.label):undefined,autocomplete:this.computedAutocomplete,autocapitalize:this.autocapitalize,autocorrect:this.autocorrect==="on"?"on":"off",autofocus:this.autofocus,placeholder:this.placeholder&&c(this.placeholder)||undefined,role:this.role&&`${this.role}`||undefined,"test-id":"inputField",readonly:!!this.readonly,disabled:!!this.disabled,onFocus:this.onInputFocus,onBlur:this.onInputBlur,onClick:this.onInputClick,onKeyDown:this.onInputKeydown,onInput:this.onInputInput,onPaste:this.onInputPaste,inputmode:this.inputMode}))}pseudoInputDOM(){const t=!this.value&&!!this.placeholder;let r="";if(this.optional){r=c("tecton.element.input.optional")}if(this.readonly){r=c("tecton.element.input.readonly")}return a("div",{class:"pseudo-input-container"},a("button",{class:"input-field",type:"button",id:this.inputId,"aria-describedby":this.inputDescribedBy,"aria-invalid":`${this.hasError}`,"aria-controls":this.ariaControls&&`${this.ariaControls}`||undefined,"aria-owns":this.ariaOwns&&`${this.ariaOwns}`||undefined,"aria-haspopup":this.ariaHaspopup&&`${this.ariaHaspopup}`||undefined,"aria-expanded":this.ariaExpanded==="true"?"true":undefined,"aria-activedescendant":this.ariaActivedescendant&&`${this.ariaActivedescendant}`,"aria-label":`${this.value}, ${this.label&&c(this.label)||""}${r}`,role:this.role&&`${this.role}`||undefined,disabled:!!this.disabled,"test-id":"q2InputInnerClearButton",onFocus:this.onInputFocus,onBlur:this.onInputBlur},a("div",{class:"custom-display-container"},a("slot",{name:"custom-display"},a("span",{class:t?"placeholder-text":""},t?this.placeholder:this.value)))))}placeCursorAtEnd(){const{inputField:t}=this;t.selectionStart=t.selectionEnd=t.value.length}calculateCursorPositionOnInput(){const t=this.inputField;const r=this.formattedValueObject.formattedValue.length;const a=t.value.length;const e=this.type==="currency"?r:0;return{startingPosition:t&&t.selectionStart||e,valueLength:r,previousValueLength:t&&a,hasSelection:false}}calculateCursorPositionOnFocus(){var t,r,a;const{inputField:e}=this;const i=(r=(t=e===null||e===void 0?void 0:e.value)===null||t===void 0?void 0:t.length)!==null&&r!==void 0?r:0;const n=(a=e===null||e===void 0?void 0:e.selectionStart)!==null&&a!==void 0?a:i;return{startingPosition:n,valueLength:i,previousValueLength:i,hasSelection:getSelection().toString().length>0}}setCursorPosition(t){if(this.canSetSelection&&!t.hasSelection){const r=this.inputField;const{valueLength:a,previousValueLength:e,startingPosition:i}=t;if(i===a&&a>=e&&this.type==="currency"){r.setSelectionRange(a,a)}else{const t=a-e;const n=i+(t>0?t:0);r.setSelectionRange(n,n)}}}get hostElement(){return i(this)}static get watchers(){return{ariaLabel:["ariaLabelObserver"],value:["valueObserver"],formattedValueObject:["formattedValueObjectObserver"],type:["typeObserver"],formatModifier:["formatModifierObserver"],hints:["hintsObserver"],errors:["errorsObserver"]}}};rt.style=_;export{rt as q2_input};
2
- //# sourceMappingURL=p-a2d5cda5.entry.js.map