q2-tecton-elements 1.27.0 → 1.27.2

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 (58) hide show
  1. package/dist/cjs/{action-sheet-4b366e9a.js → action-sheet-ab1abf24.js} +1 -1
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  4. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -0
  5. package/dist/cjs/q2-option-list_2.cjs.entry.js +9 -7
  6. package/dist/cjs/q2-pill.cjs.entry.js +28 -23
  7. package/dist/cjs/q2-select.cjs.entry.js +6 -3
  8. package/dist/cjs/q2-tag.cjs.entry.js +18 -13
  9. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  10. package/dist/collection/components/q2-avatar/styles.css +4 -12
  11. package/dist/collection/components/q2-dropdown/index.js +19 -0
  12. package/dist/collection/components/q2-option-list/index.js +33 -27
  13. package/dist/collection/components/q2-pill/index.js +63 -23
  14. package/dist/collection/components/q2-popover/styles.css +2 -3
  15. package/dist/collection/components/q2-select/index.js +5 -2
  16. package/dist/collection/components/q2-tag/index.js +55 -14
  17. package/dist/collection/utils/action-sheet.js +1 -1
  18. package/dist/components/action-sheet.js +1 -1
  19. package/dist/components/index13.js +10 -8
  20. package/dist/components/index14.js +1 -1
  21. package/dist/components/index3.js +1 -1
  22. package/dist/components/q2-dropdown.js +2 -0
  23. package/dist/components/q2-pill.js +30 -23
  24. package/dist/components/q2-select.js +5 -2
  25. package/dist/components/q2-tag.js +21 -14
  26. package/dist/docs.json +120 -20
  27. package/dist/esm/{action-sheet-a9597b32.js → action-sheet-bfcbe154.js} +1 -1
  28. package/dist/esm/loader.js +1 -1
  29. package/dist/esm/q2-avatar.entry.js +1 -1
  30. package/dist/esm/q2-dropdown.entry.js +1 -0
  31. package/dist/esm/q2-option-list_2.entry.js +10 -8
  32. package/dist/esm/q2-pill.entry.js +28 -23
  33. package/dist/esm/q2-select.entry.js +6 -3
  34. package/dist/esm/q2-tag.entry.js +19 -14
  35. package/dist/esm/q2-tecton-elements.js +1 -1
  36. package/dist/q2-tecton-elements/{p-414ca427.entry.js → p-31b655b6.entry.js} +1 -1
  37. package/dist/q2-tecton-elements/p-788adb51.js +1 -0
  38. package/dist/q2-tecton-elements/p-8fd3b580.entry.js +1 -0
  39. package/dist/q2-tecton-elements/p-a300d517.entry.js +1 -0
  40. package/dist/q2-tecton-elements/p-c1d33fd2.entry.js +1 -0
  41. package/dist/q2-tecton-elements/p-ceabfa93.entry.js +1 -0
  42. package/dist/q2-tecton-elements/p-dd1115c6.entry.js +1 -0
  43. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  44. package/dist/test/helpers.js +19 -0
  45. package/dist/types/components/q2-dropdown/index.d.ts +1 -0
  46. package/dist/types/components/q2-option-list/index.d.ts +5 -1
  47. package/dist/types/components/q2-pill/index.d.ts +5 -2
  48. package/dist/types/components/q2-select/index.d.ts +1 -1
  49. package/dist/types/components/q2-tag/index.d.ts +5 -2
  50. package/dist/types/components.d.ts +20 -2
  51. package/dist/types/workspace/workspace/{Tecton_tecton-production_master → tecton-production_release_1.27.x}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -0
  52. package/package.json +3 -3
  53. package/dist/q2-tecton-elements/p-04b9a7ee.entry.js +0 -1
  54. package/dist/q2-tecton-elements/p-521c9085.entry.js +0 -1
  55. package/dist/q2-tecton-elements/p-8e652d59.entry.js +0 -1
  56. package/dist/q2-tecton-elements/p-a1926e65.js +0 -1
  57. package/dist/q2-tecton-elements/p-aae8b9fc.entry.js +0 -1
  58. package/dist/q2-tecton-elements/p-ce67d77a.entry.js +0 -1
@@ -1,3 +1,4 @@
1
+ // @ts-nocheck
1
2
  import { newE2EPage } from '@stencil/core/testing';
2
3
  import { removeTimezoneOffset } from '../src/components/q2-calendar/helpers';
3
4
  export async function dispatchEvent(page, selectors, eventType, eventInit) {
@@ -137,3 +138,21 @@ export const testDeprecatedAriaLabel = async (element, label = 'My Label') => {
137
138
  expect(element).toHaveAttribute('hide-label');
138
139
  expect(await element.getProperty('ariaLabel')).toBeUndefined();
139
140
  };
141
+ export const checkStylesForCompilationIssues = async (page, selector) => {
142
+ return page.$eval(selector, el => {
143
+ const adoptedStyleSheets = el.shadowRoot.adoptedStyleSheets;
144
+ const result = adoptedStyleSheets.reduce((accum, styleSheet) => {
145
+ Array.from(styleSheet.cssRules).forEach(rule => {
146
+ const hasVarList = rule.cssText.includes('var-list(');
147
+ const hasVarPrefixer = rule.cssText.includes('var-prefixer(');
148
+ if (hasVarList || hasVarPrefixer)
149
+ accum.push(rule.selectorText);
150
+ });
151
+ return accum;
152
+ }, []);
153
+ if (!!result.length) {
154
+ console.log(`The following selectors have compilation issues: ${result.join(', ')}`);
155
+ }
156
+ return result;
157
+ });
158
+ };
@@ -7,6 +7,7 @@ export declare class Q2Dropdown implements ComponentInterface {
7
7
  hideLabel: boolean;
8
8
  disabled: boolean;
9
9
  popDirection: 'up' | 'down';
10
+ alignment: 'left' | 'right';
10
11
  name: string;
11
12
  context: string;
12
13
  contextValue: string;
@@ -4,7 +4,6 @@ export interface IOptionValue {
4
4
  display?: string;
5
5
  }
6
6
  export declare class Q2OptionList implements ComponentInterface {
7
- role: 'listbox' | 'menu';
8
7
  customSearch: boolean;
9
8
  noSelect: boolean;
10
9
  align: 'left' | 'right';
@@ -12,7 +11,12 @@ export declare class Q2OptionList implements ComponentInterface {
12
11
  multiple: boolean;
13
12
  disabled: boolean;
14
13
  showSelected: boolean;
14
+ /**
15
+ * Translates to the role of the option list
16
+ * @type {('menu' | 'listbox')}
17
+ */
15
18
  type: 'menu' | 'listbox';
19
+ label: string;
16
20
  change: EventEmitter<{
17
21
  value: string;
18
22
  values: IOptionValue[];
@@ -13,7 +13,9 @@ export declare class Q2Pill implements ComponentInterface {
13
13
  selectedOptions: IOptionValue[];
14
14
  popoverMinHeight: number;
15
15
  popoverDirection: 'up' | 'down';
16
- hasOptions: boolean;
16
+ popoverAlignment: 'left' | 'right';
17
+ optionListLabel: string;
18
+ optionCount: number;
17
19
  selectedOptionElements: HTMLQ2OptionElement[];
18
20
  hostElement: HTMLElement;
19
21
  change: EventEmitter<{
@@ -36,7 +38,7 @@ export declare class Q2Pill implements ComponentInterface {
36
38
  syncValueProperties: () => void;
37
39
  getOption: (value: string) => Promise<HTMLQ2OptionElement>;
38
40
  updateSelectedOptionElements: () => Promise<void>;
39
- determineHasOptions: () => void;
41
+ determineOptionCount: () => void;
40
42
  executeActionSheet(event: MouseEvent | KeyboardEvent): Promise<void>;
41
43
  handleSelectionChanges(changeDetails: {
42
44
  value?: string;
@@ -56,5 +58,6 @@ export declare class Q2Pill implements ComponentInterface {
56
58
  handleWrapperClick: () => void;
57
59
  onClickElsewhere: (event: CustomEvent) => void;
58
60
  generateIcon(): any;
61
+ generateHiddenElement(): any;
59
62
  render(): any;
60
63
  }
@@ -31,7 +31,7 @@ export declare class Q2Select implements ComponentInterface {
31
31
  statusMessage: string;
32
32
  prioritizeSearch: boolean;
33
33
  structuredSelectedOptions: IOptionValue[];
34
- inputField?: HTMLQ2InputElement | HTMLButtonElement;
34
+ inputField?: HTMLQ2InputElement;
35
35
  optionList: HTMLQ2OptionListElement;
36
36
  popoverElement?: HTMLQ2PopoverElement;
37
37
  multiSelectHeader?: HTMLDivElement;
@@ -6,7 +6,9 @@ export declare class Q2Tag implements ComponentInterface {
6
6
  theme: 'primary' | 'secondary' | 'tertiary';
7
7
  popoverMinHeight: number;
8
8
  popoverDirection: 'up' | 'down';
9
- hasOptions: boolean;
9
+ popoverAlignment: 'left' | 'right';
10
+ optionListLabel: string;
11
+ optionCount: number;
10
12
  hostElement: HTMLElement;
11
13
  click: EventEmitter<{
12
14
  value: string;
@@ -18,7 +20,7 @@ export declare class Q2Tag implements ComponentInterface {
18
20
  componentWillLoad(): void;
19
21
  componentDidLoad(): void;
20
22
  disconnectedCallback(): void;
21
- determineHasOptions: () => void;
23
+ determineOptionCount: () => void;
22
24
  delegateFocus(event: FocusEvent): void;
23
25
  popoverStateHandler({ detail: { open } }: CustomEvent<{
24
26
  open: boolean;
@@ -29,5 +31,6 @@ export declare class Q2Tag implements ComponentInterface {
29
31
  handleKeydown: (event: KeyboardEvent) => Promise<void>;
30
32
  handleButtonFocusout: (event: FocusEvent) => Promise<void>;
31
33
  handleWrapperClick: () => void;
34
+ generateHiddenElement(): any;
32
35
  render(): any;
33
36
  }
@@ -238,6 +238,7 @@ export namespace Components {
238
238
  "value": object;
239
239
  }
240
240
  interface Q2Dropdown {
241
+ "alignment": 'left' | 'right';
241
242
  /**
242
243
  * @deprecated
243
244
  */
@@ -400,13 +401,17 @@ export namespace Components {
400
401
  "getContents": () => Promise<(HTMLQ2OptgroupElement | HTMLQ2OptionElement)[]>;
401
402
  "getOptions": () => Promise<HTMLQ2OptionElement[]>;
402
403
  "handleExternalKeydown": (event: KeyboardEvent) => Promise<void>;
404
+ "label": string;
403
405
  "multiple": boolean;
404
406
  "noSelect": boolean;
405
- "role": 'listbox' | 'menu';
406
407
  "selectedOptions": IOptionValue[];
407
408
  "setActiveElement": (index: number) => Promise<void>;
408
409
  "setDefaultActiveElement": () => Promise<void>;
409
410
  "showSelected": boolean;
411
+ /**
412
+ * Translates to the role of the option list
413
+ * @type {('menu' | 'listbox')}
414
+ */
410
415
  "type": 'menu' | 'listbox';
411
416
  }
412
417
  interface Q2Pagination {
@@ -426,6 +431,8 @@ export namespace Components {
426
431
  "maxLength": number;
427
432
  "multiple": boolean;
428
433
  "open": boolean;
434
+ "optionListLabel": string;
435
+ "popoverAlignment": 'left' | 'right';
429
436
  "popoverDirection": 'up' | 'down';
430
437
  "popoverMinHeight": number;
431
438
  "selectedOptions": IOptionValue1[];
@@ -578,6 +585,8 @@ export namespace Components {
578
585
  "hoist": boolean;
579
586
  "label": string;
580
587
  "open": boolean;
588
+ "optionListLabel": string;
589
+ "popoverAlignment": 'left' | 'right';
581
590
  "popoverDirection": 'up' | 'down';
582
591
  "popoverMinHeight": number;
583
592
  "theme": 'primary' | 'secondary' | 'tertiary';
@@ -1279,6 +1288,7 @@ declare namespace LocalJSX {
1279
1288
  "value"?: object;
1280
1289
  }
1281
1290
  interface Q2Dropdown {
1291
+ "alignment"?: 'left' | 'right';
1282
1292
  /**
1283
1293
  * @deprecated
1284
1294
  */
@@ -1444,14 +1454,18 @@ declare namespace LocalJSX {
1444
1454
  "align"?: 'left' | 'right';
1445
1455
  "customSearch"?: boolean;
1446
1456
  "disabled"?: boolean;
1457
+ "label"?: string;
1447
1458
  "multiple"?: boolean;
1448
1459
  "noSelect"?: boolean;
1449
1460
  "onChange"?: (event: Q2OptionListCustomEvent<{ value: string; values: IOptionValue[] }>) => void;
1450
1461
  "onPopoverState"?: (event: Q2OptionListCustomEvent<{ open: boolean; action: 'close' | 'select' | 'open' }>) => void;
1451
1462
  "onReady"?: (event: Q2OptionListCustomEvent<any>) => void;
1452
- "role"?: 'listbox' | 'menu';
1453
1463
  "selectedOptions"?: IOptionValue[];
1454
1464
  "showSelected"?: boolean;
1465
+ /**
1466
+ * Translates to the role of the option list
1467
+ * @type {('menu' | 'listbox')}
1468
+ */
1455
1469
  "type"?: 'menu' | 'listbox';
1456
1470
  }
1457
1471
  interface Q2Pagination {
@@ -1473,6 +1487,8 @@ declare namespace LocalJSX {
1473
1487
  "multiple"?: boolean;
1474
1488
  "onChange"?: (event: Q2PillCustomEvent<{ value: string; values: IOptionValue1[]; active: boolean }>) => void;
1475
1489
  "open"?: boolean;
1490
+ "optionListLabel"?: string;
1491
+ "popoverAlignment"?: 'left' | 'right';
1476
1492
  "popoverDirection"?: 'up' | 'down';
1477
1493
  "popoverMinHeight"?: number;
1478
1494
  "selectedOptions"?: IOptionValue1[];
@@ -1638,6 +1654,8 @@ declare namespace LocalJSX {
1638
1654
  "label"?: string;
1639
1655
  "onClick"?: (event: Q2TagCustomEvent<{ value: string }>) => void;
1640
1656
  "open"?: boolean;
1657
+ "optionListLabel"?: string;
1658
+ "popoverAlignment"?: 'left' | 'right';
1641
1659
  "popoverDirection"?: 'up' | 'down';
1642
1660
  "popoverMinHeight"?: number;
1643
1661
  "theme"?: 'primary' | 'secondary' | 'tertiary';
@@ -15,3 +15,4 @@ export declare const getFocusedOptionValue: (page: E2EPage) => Promise<string>;
15
15
  export declare const getFocusedTagName: (page: E2EPage) => Promise<string>;
16
16
  export declare function getFocusedAttribute(page: E2EPage, attribute: string): Promise<string>;
17
17
  export declare const testDeprecatedAriaLabel: (element: E2EElement, label?: string) => Promise<void>;
18
+ export declare const checkStylesForCompilationIssues: (page: E2EPage, selector: string) => Promise<any>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "q2-tecton-elements",
3
- "version": "1.27.0",
3
+ "version": "1.27.2",
4
4
  "description": "Q2 Tecton Custom Elements",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -50,9 +50,9 @@
50
50
  "dependencies": {
51
51
  "@stencil/core": "2.19.2",
52
52
  "puppeteer": "^10.4.0",
53
- "q2-tecton-common": "^1.27.0",
53
+ "q2-tecton-common": "1.27.2",
54
54
  "smoothscroll-polyfill": "^0.4.4",
55
55
  "swiper": "8.4.4"
56
56
  },
57
- "gitHead": "615181d24c9a59e1711856815aca09eb92d47bed"
57
+ "gitHead": "35579409b87722f7979ba58452282e34e4f965da"
58
58
  }
@@ -1 +0,0 @@
1
- import{r as t,c as i,h as o,g as e}from"./p-926a3e80.js";import{r,o as a,l as n,a as l}from"./p-2453cd92.js";import{s,a as c}from"./p-a1926e65.js";const p=class{constructor(o){var e;t(this,o),this.change=i(this,"change",7),this.scheduledAfterRender=[],this.syncValueProperties=()=>{const{value:t,selectedOptions:i}=this;(null==i?void 0:i.length)?this.selectedOptionsChanged(i):t&&this.valueChanged(t)},this.getOption=async t=>this.optionList?(await this.optionList.getOptions()).find((i=>i.value===t)):this.hostElement.querySelector(`q2-option[value="${t}"]`),this.updateSelectedOptionElements=async()=>{var t;const{selectedOptions:i}=this,o=i.map((t=>t.value)),e=await(null===(t=this.optionList)||void 0===t?void 0:t.getOptions());this.hasOptions&&(this.active=!!o.length),this.selectedOptionElements=(null==e?void 0:e.filter((t=>o.includes(t.value))))||[]},this.determineHasOptions=()=>{const t=!!this.hostElement.querySelectorAll("q2-option").length;this.hasOptions=t},this.clearSelectedOptions=()=>{this.selectedOptions=[],this.value=null,this.active=!1,this.open=!1,this.primaryBtn.focus(),this.change.emit({value:null,values:[],active:!1}),this.scheduledAfterRender.push(r)},this.handleClick=async t=>{if(t.stopPropagation(),!this.disabled)if(this.hasOptions)s(this)?this.executeActionSheet(t):await this.popoverElement.toggle();else{const{value:t,label:i}=this,o=this.active=!this.active,e=o?[{value:t,display:i}]:[];this.selectedOptions=e,this.change.emit({value:t,values:e,active:o})}},this.handleKeydown=async t=>{!this.hasOptions||this.disabled||t.metaKey||t.ctrlKey||"Tab"===t.key||(t.preventDefault(),s(this,t)?this.executeActionSheet(t):this.optionList.handleExternalKeydown(t))},this.handleButtonFocusout=async t=>{var i;const o=t.relatedTarget;null!==(i="Q2-OPTION"===(null==o?void 0:o.tagName))&&void 0!==i&&i||(this.open=!1)},this.handleChange=t=>{t.stopPropagation(),this.hasOptions&&this.handleSelectionChanges(t.detail)},this.handleWrapperClick=()=>{this.primaryBtn.focus(),this.primaryBtn.click()},this.onClickElsewhere=t=>{if("click-elsewhere"===t.target.localName){t.stopPropagation();const{popoverElement:i}=this;if(!i)return;i.open=!1}},this.hoist=!!(null===(e=window.Tecton)||void 0===e?void 0:e.useActionSheets),this.disabled=void 0,this.active=void 0,this.open=void 0,this.multiple=void 0,this.maxLength=void 0,this.label=void 0,this.value=void 0,this.theme=void 0,this.selectedOptions=[],this.popoverMinHeight=150,this.popoverDirection=void 0,this.hasOptions=void 0,this.selectedOptionElements=[]}componentWillLoad(){const t=new MutationObserver(this.determineHasOptions);t.observe(this.hostElement,{childList:!0,attributes:!0}),this.mutationObserver=t}componentDidLoad(){a(this.hostElement),this.syncValueProperties()}componentDidRender(){this.scheduledAfterRender.forEach((t=>t())),this.scheduledAfterRender=[]}disconnectedCallback(){this.mutationObserver.disconnect(),this.mutationObserver=null}get buttonContent(){const{label:t,selectedOptions:i,selectedOptionElements:o,hasOptions:e}=this;return e&&0!==o.length?1===o.length?o[0].display:n("tecton.element.pill.activeCount",{count:i.length}):t}get truncatedButtonContent(){const{maxLength:t,buttonContent:i}=this;return t&&i.length>t?`${i.substring(0,t)}…`:i}async executeActionSheet(t){const i=await c(this,t);this.handleSelectionChanges(i)}async handleSelectionChanges(t){const{multiple:i}=this,{value:o="",values:e=[]}=t,r=i?!!e.length:!!o;if(!this.hostElement.onchange)if(i)this.selectedOptions=e,this.value=void 0;else{const t=await this.getOption(o);this.selectedOptions=t?[{value:t.value,display:t.display}]:void 0,this.value=t.value||void 0}this.change.emit({value:o,values:e,active:r})}async valueChanged(t){var i,o;const{multiple:e,selectedOptions:r}=this,a=null!==(o=null===(i=null==r?void 0:r[0])||void 0===i?void 0:i.value)&&void 0!==o?o:null;if(!e)if(t===a)this.updateSelectedOptionElements();else{const i=await this.getOption(t),{value:o,display:e}=i||{value:t,display:null};this.selectedOptions=[{value:o,display:e}]}}selectedOptionsChanged(t){var i,o;const{multiple:e}=this,r=null!==(o=null===(i=null==t?void 0:t[0])||void 0===i?void 0:i.value)&&void 0!==o?o:null;e?(this.value&&(this.value=null),this.updateSelectedOptionElements()):this.value===r?this.updateSelectedOptionElements():this.value=r}delegateFocus(t){l(t,this.hostElement)&&this.primaryBtn.focus()}popoverStateHandler({detail:{open:t}}){this.open!==t&&(this.open=t),t||this.optionList.setActiveElement(null)}generateIcon(){const{hasOptions:t,active:i}=this,e=t&&i,r=e||!t?"close":"chevron-down";return o(e?"button":"div",{class:"btn-close",onClick:e&&this.clearSelectedOptions,disabled:e&&this.disabled,"aria-label":e&&n("tecton.element.pill.clearSelection"),type:e&&"button"},o("q2-icon",{type:r}))}render(){const{hasOptions:t,active:i,open:e}=this,r=["btn-wrapper"];return(t||i)&&r.push("has-icon"),t&&r.push("has-options"),o("click-elsewhere",{onChange:this.onClickElsewhere},o("div",{class:r.join(" ")},o("div",{class:"btn-height-wrapper",ref:t=>this.primaryBtnWrapper=t,onClick:this.handleWrapperClick,tabIndex:-1},o("button",{class:"btn-primary","test-id":"btn-control",type:"button",ref:t=>this.primaryBtn=t,onClick:this.handleClick,onKeyDown:this.handleKeydown,onFocusout:this.handleButtonFocusout,disabled:this.disabled,"aria-selected":!t&&i?"true":"false","aria-roledescription":!t&&"filter","aria-controls":t&&"option-list","aria-haspopup":t&&"true","aria-expanded":t&&`${!!e}`||void 0,"aria-label":this.maxLength&&this.buttonContent},this.truncatedButtonContent,!t&&i&&o("span",{class:"sr"},"(",n("tecton.element.pill.active"),")"))),this.generateIcon()),this.hasOptions&&o("q2-popover",{ref:t=>this.popoverElement=t,controlElement:this.primaryBtn,open:this.open,minHeight:this.popoverMinHeight,direction:this.popoverDirection,align:"right"},o("q2-option-list",{role:"menu",ref:t=>this.optionList=t,id:"option-list",onChange:this.handleChange,multiple:this.multiple,selectedOptions:this.selectedOptions,onReady:()=>this.updateSelectedOptionElements()},o("slot",null))))}get hostElement(){return e(this)}static get watchers(){return{value:["valueChanged"],selectedOptions:["selectedOptionsChanged"]}}};p.style="*{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-block;position:relative;line-height:0}:host(:not(:last-child)){margin-inline-end:var(--tct-pill-margin, var(--t-pill-margin, var(--app-scale-2x, 10px)))}q2-popover,.btn-wrapper{--comp-pill-min-height:var(--tct-pill-min-height, var(--t-pill-min-height, 44px));--comp-pill-btn-height:var(--tct-pill-btn-height, var(--t-pill-btn-height, 30px))}.btn-wrapper{--comp-pill-btn-border-width:var(--tct-pill-btn-border-width, var(--t-pill-btn-border-width, 2px));--comp-close-size:0px;--comp-btn-background:var(--tct-pill-btn-background, var(--t-pill-btn-background, var(--t-base, #ffffff)));--compt-hover-btn-background:var(--tct-pill-hover-btn-background, var(--t-pill-hover-btn-background, var(--t-gray-13, #e6e6e6)));--comp-btn-padding:var(--tct-pill-btn-padding-inline, var(--t-pill-btn-padding-inline, var(--app-scale-3x, 15px)));--comp-btn-color:var(--tct-pill-btn-color, var(--t-pill-btn-color, var(--t-gray-3, #262626)));--comp-active-btn-color:var(--comp-btn-background);--comp-active-btn-background:var(--tct-pill-active-btn-background, var(--t-pill-active-btn-background, var(--t-gray-7, #666666)));--comp-active-btn-border-color:var(--tct-pill-active-btn-border-color, var(--t-pill-active-btn-border-color, var(--t-gray-7, #666666)));--comp-hover-active-btn-background:var(--tct-pill-active-btn-background, var(--t-pill-active-btn-background, var(--t-gray-6, #4d4d4d)));--comp-hover-active-btn-border-color:var(--tct-pill-active-btn-background, var(--t-pill-active-btn-background, var(--t-gray-6, #4d4d4d)));position:relative}:host(:not(:empty)) .btn-wrapper,.btn-wrapper.has-icon{--comp-close-size:var(--comp-pill-btn-height)}:host([active]) .btn-wrapper{--comp-btn-color:var(--tct-pill-active-btn-color, var(--t-pill-active-btn-color, var(--t-base, #ffffff)))}:host([theme=primary]) .btn-wrapper{--comp-active-btn-background:var(--t-primary-l5, #61c4ff);--comp-active-btn-color:var(--t-primary-text, #ffffff);--comp-active-btn-border-color:var(--t-primary-l5, #61c4ff);--comp-hover-active-btn-background:var(--t-primary-l3, #21acff);--comp-hover-active-btn-border-color:var(--t-primary-l3, #21acff)}:host([theme=secondary]) .btn-wrapper{--comp-active-btn-background:var(--t-secondary-l5, #d9e1e6);--comp-active-btn-color:var(--t-secondary-text, #141414);--comp-active-btn-border-color:var(--t-secondary-l5, #d9e1e6);--comp-hover-active-btn-background:var(--t-secondary-l3, #c9d5db);--comp-hover-active-btn-border-color:var(--t-secondary-l3, #c9d5db)}:host([theme=tertiary]) .btn-wrapper{--comp-active-btn-background:var(--t-tertiary-l5, #f4fafe);--comp-active-btn-color:var(--t-tertiary-text, #141414);--comp-active-btn-border-color:var(--t-tertiary-l5, #f4fafe);--comp-hover-active-btn-background:var(--t-tertiary-l3, #eff8fd);--comp-hover-active-btn-border-color:var(--t-tertiary-l3, #eff8fd)}.btn-height-wrapper{height:var(--comp-pill-min-height);display:flex;align-items:center;cursor:pointer}.btn-height-wrapper:focus{box-shadow:none}:host([disabled]) .btn-height-wrapper{cursor:not-allowed}.btn-close,.btn-primary{cursor:pointer;height:var(--comp-pill-btn-height);border-style:solid;border-radius:var(--tct-pill-btn-border-radius, var(--t-pill-btn-border-radius, 30px));transition-property:background, color, padding, width, opacity;transition:var(--tct-pill-btn-tween, var(--t-pill-btn-tween, var(--app-tween-1, 0.2s ease)))}:host([disabled]) .btn-close,:host([disabled]) .btn-primary,:host([disabled]) q2-icon{opacity:var(--tct-pill-disabled-opacity, var(--t-pill-disabled-opacity, var(--tct-disabled-opacity, var(--app-disabled-opacity, 0.4))));cursor:not-allowed}.btn-primary{background:var(--comp-btn-background);border-width:var(--comp-pill-btn-border-width);border-color:var(--tct-pill-btn-border-color, var(--t-pill-btn-border-color, var(--t-a11y-gray-color-AA, #949494)));padding-inline:var(--comp-btn-padding);padding-right:calc(var(--comp-btn-padding) + var(--comp-close-size));font-size:var(--tct-pill-btn-font-size, var(--t-pill-btn-font-size, var(--app-font-size, 14px)));color:var(--comp-btn-color);display:block;width:100%;text-align:start}.btn-primary:focus,.btn-primary:hover{background:var(--comp-hover-btn-background)}:host(:not(:empty)) .btn-primary,.has-icon .btn-primary{padding-right:calc(var(--tct-pill-icon-gap, var(--t-pill-icon-gap, var(--app-scale-1x, 5px))) + var(--comp-close-size))}.has-options .btn-primary{text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:var(--tct-pill-max-width, var(--t-pill-max-width, 200px))}:host([active]) .btn-primary{background:var(--comp-active-btn-background);border-color:var(--comp-active-btn-border-color);color:var(--comp-active-btn-color)}:host([active]) .btn-primary:focus,:host([active]) .btn-primary:hover{background:var(--comp-hover-active-btn-background);border-color:var(--comp-hover-active-btn-border-color)}.btn-close{background:transparent;border-color:transparent;border-width:var(--comp-pill-btn-border-width);width:var(--comp-close-size);height:var(--comp-close-size);padding:0;border:0;display:inline-flex;justify-content:center;align-items:center;position:absolute;right:0;top:50%;transform:translateY(-50%);opacity:0}:host([active]) .btn-close{color:var(--comp-active-btn-color)}:host(:not(:empty)) .btn-close,.has-icon .btn-close{opacity:1}q2-icon{--t-icon-stroke-primary:currentColor;width:var(--tct-pill-icon-size, var(--t-pill-icon-size, 14px));height:var(--tct-pill-icon-size, var(--t-pill-icon-size, 14px));transition-property:transform;transition:var(--tct-pill-btn-tween, var(--t-pill-btn-tween, var(--app-tween-1, 0.2s ease)))}div.btn-close{pointer-events:none}:host([open]) div.btn-close q2-icon{transform:rotate(180deg)}:host([active]) button.btn-close:focus,:host([active]) button.btn-close:hover{background:var(--tct-pill-hover-close-btn-background, var(--t-pill-hover-close-btn-background, var(--t-top-a1, rgba(13, 13, 13, 0.35))));border-color:var(--tct-pill-hover-close-btn-border-color, var(--t-pill-hover-close-btn-border-color, var(--t-top-a1, rgba(13, 13, 13, 0.35))))}q2-popover{top:calc(var(--comp-pill-min-height) - (var(--comp-pill-min-height) - var(--comp-pill-btn-height)) / 2)}";export{p as q2_pill}
@@ -1 +0,0 @@
1
- import{r as t,c as i,h as a,H as o,g as e}from"./p-926a3e80.js";import{o as r,a as s,l as n}from"./p-2453cd92.js";import{s as c,a as h}from"./p-a1926e65.js";const p=class{constructor(a){var o;t(this,a),this.click=i(this,"click",7),this.determineHasOptions=()=>{const t=!!this.hostElement.querySelectorAll("q2-option").length;this.hasOptions=t},this.onClickElsewhere=t=>{if("click-elsewhere"===t.target.localName){t.stopPropagation();const{popoverElement:i}=this;if(!i)return;i.open=!1}},this.handleChange=t=>{if(t.stopPropagation(),!this.hasOptions)return;const{value:i}=t.detail;this.click.emit({value:i})},this.handleClick=async t=>{if(t.stopPropagation(),this.popoverElement.controlElement=this.dropdownBtn,c(this)){const{value:i}=await h(this,t);this.click.emit({value:i})}else this.popoverElement.toggle()},this.handleKeydown=async t=>{if(!t.metaKey&&!t.ctrlKey&&"Tab"!==t.key)if(t.preventDefault(),this.popoverElement.controlElement=this.dropdownBtn,c(this,t)){const{value:i}=await h(this,t);this.click.emit({value:i})}else this.optionList.handleExternalKeydown(t)},this.handleButtonFocusout=async t=>{var i;const a=t.relatedTarget;null!==(i="Q2-OPTION"===(null==a?void 0:a.tagName))&&void 0!==i&&i||(this.open=!1)},this.handleWrapperClick=()=>{this.dropdownBtn.focus(),this.dropdownBtn.click()},this.hoist=!!(null===(o=window.Tecton)||void 0===o?void 0:o.useActionSheets),this.open=void 0,this.label=void 0,this.theme=void 0,this.popoverMinHeight=150,this.popoverDirection=void 0,this.hasOptions=void 0}componentWillLoad(){const t=new MutationObserver(this.determineHasOptions);t.observe(this.hostElement,{childList:!0,attributes:!0}),this.mutationObserver=t}componentDidLoad(){r(this.hostElement)}disconnectedCallback(){this.mutationObserver.disconnect(),this.mutationObserver=null}delegateFocus(t){s(t,this.hostElement)&&this.hasOptions&&this.dropdownBtn.focus()}popoverStateHandler({detail:{open:t}}){this.open!==t&&(this.open=t),t||this.optionList.setActiveElement(null)}render(){const{hasOptions:t,open:i}=this,e=["tag-wrapper"];return t&&e.push("has-options"),a(o,{role:"listitem"},a("click-elsewhere",{onChange:this.onClickElsewhere},a("div",{class:e.join(" "),onClick:t=>t.stopPropagation()},a("div",{class:"tag"},this.label),this.hasOptions&&a("div",{class:"btn-wrapper",onClick:this.handleWrapperClick},a("button",{ref:t=>this.dropdownBtn=t,"test-id":"btn-control",onClick:this.handleClick,onKeyDown:this.handleKeydown,onFocusout:this.handleButtonFocusout,"aria-controls":"option-list","aria-haspopup":"true","aria-expanded":i?"true":"false","aria-label":n("tecton.element.tag.viewOptions")},a("q2-icon",{type:"options"})))),this.hasOptions&&a("q2-popover",{ref:t=>this.popoverElement=t,controlElement:this.dropdownBtn,open:this.open,minHeight:this.popoverMinHeight,direction:this.popoverDirection,align:"right"},a("q2-option-list",{id:"option-list",role:"menu",ref:t=>this.optionList=t,onChange:this.handleChange,align:"right",type:"menu","no-select":!0},a("slot",null)))))}get hostElement(){return e(this)}};p.style="*{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-block;position:relative;line-height:0}:host(:not(:last-child)){margin-inline-end:var(--tct-tag-margin, var(--t-tag-margin, var(--app-scale-2x, 10px)))}.tag-wrapper{--comp-tag-btn-size:var(--tct-tag-btn-size, var(--t-tag-btn-size, var(--app-scale-6x, 30px)));--comp-tag-background:var(--tct-tag-background, var(--t-tag-background, var(--t-gray-13, #e6e6e6)));--comp-tag-color:var(--tct-tag-color, var(--t-tag-color, var(--t-gray-3, #262626)));position:relative}:host([theme=primary]) .tag-wrapper{--comp-tag-background:var(--t-primary-l5, #61c4ff);--comp-tag-color:var(--t-primary-text, #ffffff)}:host([theme=secondary]) .tag-wrapper{--comp-tag-background:var(--t-secondary-l5, #d9e1e6);--comp-tag-color:var(--t-secondary-text, #000000)}:host([theme=tertiary]) .tag-wrapper{--comp-tag-background:var(--t-tertiary-l5, #f4fafe);--comp-tag-color:var(--t-tertiary-text, #000000)}.tag{height:var(--tct-tag-height, var(--t-tag-height, var(--app-scale-6x, 30px)));line-height:var(--tct-tag-height, var(--t-tag-height, var(--app-scale-6x, 30px)));padding-inline:var(--tct-tag-padding-inline, var(--t-tag-padding-inline, var(--app-scale-3x, 15px)));background:var(--comp-tag-background);color:var(--comp-tag-color);border-radius:var(--tct-tag-border-radius, var(--t-tag-border-radius, var(--app-border-radius-1, 3px)))}.has-options .tag{padding-right:var(--comp-tag-btn-size)}.btn-wrapper{--comp-tag-clickable-size:var(--tct-tag-clickable-size, var(--t-tag-clickable-size, 44px));--comp-tag-btn-offset:calc(calc(calc(var(--comp-tag-clickable-size) - var(--comp-tag-btn-size)) / 2) * -1);height:var(--comp-tag-clickable-size);width:var(--comp-tag-clickable-size);display:flex;align-items:center;justify-content:center;position:absolute;right:var(--comp-tag-btn-offset);top:var(--comp-tag-btn-offset);cursor:pointer}button{width:var(--comp-tag-btn-size);height:var(--comp-tag-btn-size);stroke:var(--comp-tag-color);--tct-icon-stroke-primary:var(--comp-tag-color);cursor:pointer;border:0;background:transparent;display:flex;align-items:center;justify-content:center;padding:0;--tct-icon-size:18px}";export{p as q2_tag}
@@ -1 +0,0 @@
1
- import{r as t,c as i,h as e,H as s,g as o}from"./p-926a3e80.js";import{o as n,w as r,n as a,a as h,r as l}from"./p-2453cd92.js";const c=class{constructor(e){t(this,e),this.change=i(this,"change",7),this.popoverState=i(this,"popoverState",7),this.ready=i(this,"ready",3),this.scheduledAfterRender=[],this.keyStore={queue:[],lastPressedAt:new Date},this.searchAndFocus=(t,i)=>{(()=>{const i=new Date;i.getTime()-this.keyStore.lastPressedAt.getTime()>1e3&&(this.keyStore.queue.length=0),1===this.keyStore.queue.length&&this.keyStore.queue[0]===t||this.keyStore.queue.push(t),this.keyStore.lastPressedAt=i})();const e=(t=>{const i=this.keyStore.queue.join("");return t.find((t=>!t.element.disabled&&t.element.display&&(t.element.display.match(new RegExp(`^${i}`,"i"))||t.element.display.replace(/\s/g,"").match(new RegExp(`^${i}`,"i")))))})((()=>{this.pivotIndex=void 0===this.pivotIndex?0:(this.activeIndex||0)+1;const t=this.allOptions.map(((t,i)=>({element:t,index:i})));return[...t.slice(this.pivotIndex),...t.slice(0,this.pivotIndex)]})());e&&(({index:t})=>{this.multiple?this.openDropdownWithActiveElement(t):(this.activeIndex=t,i?this.selectOption(this.allOptions[t]):this.setActiveElement(t))})(e)},this.externalKeydownHandler=t=>{t.stopPropagation();const{activeIndex:i,customSearch:e,allOptions:s}=this,{key:o}=t;let n;switch(o){case" ":if(this.searchString){if(e)break;this.searchOptions(o,!0);break}"menu"===this.role?(this.activeIndex=0,this.openDropdownWithActiveElement(0)):this.setDefaultActiveElement();break;case"Enter":"menu"===this.role?(this.activeIndex=0,this.openDropdownWithActiveElement(0)):this.setDefaultActiveElement();break;case"ArrowUp":if(t.preventDefault(),this.activeIndex=0,n=this.selectedOptions.length?this.getDefaultActiveIndex():this.getNextVisibleIndex(-1),-1===n)break;this.openDropdownWithActiveElement(n);break;case"ArrowDown":if(t.preventDefault(),this.activeIndex=0,n=this.selectedOptions.length?this.getDefaultActiveIndex():this.getNextVisibleIndex(0),-1===n)break;this.openDropdownWithActiveElement(n);break;case"Home":t.preventDefault(),this.openDropdownWithActiveElement(0);break;case"End":t.preventDefault(),this.openDropdownWithActiveElement(s.length-1);break;case"PageUp":t.preventDefault(),this.openDropdownWithActiveElement(Math.max((i||0)-10,0));break;case"PageDown":t.preventDefault(),this.openDropdownWithActiveElement(Math.min((i||0)+10,s.length-1));break;case"Tab":this.popoverState.emit({open:!1,action:"close"});break;case"Esc":case"Escape":this.noSelect&&this.setActiveElement(null),this.popoverState.emit({open:!1,action:"close"});break;default:if(e)break;if(!o.match(/^[\w]$/))break;this.searchOptions(o,!0)}},this.internalKeydownHandler=t=>{t.stopPropagation();const{activeIndex:i,customSearch:e,allOptions:s}=this,{key:o,shiftKey:n}=t;let r;switch(o){case" ":if(this.searchString&&!this.multiple){if(e)break;this.searchOptions(o,!1);break}if(t.preventDefault(),r=s.find((t=>t.active)),!r||r.disabled)break;this.selectOption(r);break;case"Enter":if(t.preventDefault(),r=s.find((t=>t.active)),!r||r.disabled)break;this.selectOption(r);break;case"ArrowUp":if(t.preventDefault(),0===i)break;if(void 0===i){this.setDefaultActiveElement();break}{const t=this.getNextVisibleIndex(-1);if(-1===t)break;this.adjustActiveOptionAndScroll(t-i);break}case"ArrowDown":if(t.preventDefault(),i===s.length-1)break;if(void 0===i){this.setDefaultActiveElement();break}{const t=this.getNextVisibleIndex(1);if(-1===t)break;this.adjustActiveOptionAndScroll(t-i);break}case"Home":t.preventDefault(),this.openDropdownWithActiveElement(0);break;case"End":t.preventDefault(),this.openDropdownWithActiveElement(s.length-1);break;case"PageUp":t.preventDefault(),this.openDropdownWithActiveElement(Math.max(i-10,0));break;case"PageDown":t.preventDefault(),this.openDropdownWithActiveElement(Math.min(i+10,s.length-1));break;case"Tab":if(n)break;if(this.multiple&&"listbox"===this.role)break;if(r=s.find((t=>t.active)),!r||r.disabled)return;this.selectOption(r);break;case"Esc":case"Escape":this.noSelect&&this.setActiveElement(null),this.popoverState.emit({open:!1,action:"close"});break;default:if(e)break;if(!o.match(/^[\w]$/))break;this.searchOptions(o,!1)}},this.focusoutHandler=t=>{const{relatedTarget:i}=t,e=this.allOptions.includes(i),s=!e&&this.hostElement.contains(i);(e||s)&&t.stopPropagation()},this.clickHandler=t=>{const i=t.target.closest("q2-option");this.selectOption(i)},this.role="listbox",this.customSearch=void 0,this.noSelect=void 0,this.align=void 0,this.selectedOptions=[],this.multiple=void 0,this.disabled=void 0,this.showSelected=void 0,this.type=void 0,this.hasOptions=void 0}componentWillLoad(){this.hasOptions=!!this.hostElement.querySelectorAll("q2-option").length}componentDidLoad(){n(this.hostElement),this.checkOptions(),this.selectedOptionsUpdated(),this.ready.emit()}componentDidRender(){this.scheduledAfterRender.forEach((t=>t())),this.scheduledAfterRender=[]}get allContents(){const t=this.getRootSlot(this.hostElement),i=["Q2-OPTGROUP","Q2-OPTION"];return t.filter((t=>i.includes(t.tagName)))}get allOptions(){const t=i=>i.reduce(((i,e)=>"Q2-OPTGROUP"===e.tagName?[...i,...t(Array.from(e.children))]:"Q2-OPTION"===e.tagName?[...i,e]:i),[]);return t(this.allContents)}get allVisibleOptions(){return this.allOptions.filter((t=>!(t.hidden||t._multiSelectHidden||t.disabled||t.disabledGroup)))}async checkOptions(){const{type:t}=this,i=await this.getOptions();if(!t)return;const e="menu"===t?"menuitem":"option";i.forEach((t=>{t.role=e}))}getRootSlot(t){var i;const e=t.querySelector("slot"),s=null!==(i=null==e?void 0:e.assignedElements())&&void 0!==i?i:Array.from(t.children);return s.length&&"SLOT"===s[0].tagName?this.getRootSlot(s[0]):s}scrollToActiveOption(){const t=this.allOptions[this.activeIndex];null==t||t.scrollIntoView({block:"nearest"})}async openDropdownWithActiveElement(t){this.disabled||(this.activeIndex=t,this.popoverState.emit({open:!0,action:"open"}),await r(),this.setActiveOption(),await r(),this.setFocusedOption(),this.scrollToActiveOption())}getDefaultActiveIndex(){const{allOptions:t}=this,i=t.findIndex((t=>t.selected));if(i>-1)return i;const e=t.findIndex((t=>!t.hidden));return e>-1?e:0}updateSingleOptionAttrs(){var t;const{allOptions:i,selectedOptions:e}=this,s=(null===(t=e[0])||void 0===t?void 0:t.value)||void 0;i.forEach((t=>{t.selected=t.value===s}))}updateMultipleOptionAttrs(){const{allOptions:t,selectedOptions:i}=this,e=i.map((({value:t})=>t));t.forEach((t=>{t.selected=e.includes(t.value)}))}setActiveOption(){const t=this.activeIndex;this.allOptions.forEach(((i,e)=>{i.active=t===e}))}setFocusedOption(){const t=this.allOptions[this.activeIndex];t&&(this.hostElement.offsetParent?t.focus():a((()=>t.focus())))}getNextVisibleIndex(t){const{allVisibleOptions:i,allOptions:e,activeIndex:s}=this;let o=i.indexOf(e[s])+t;return o<0?o=i.length-1:o>i.length-1&&(o=0),e.indexOf(i[o])}focusSelectedSibling(t){const{allVisibleOptions:i,allOptions:e}=this;if(i.length<2)return void(this.showSelected=!1);const s=i.indexOf(t),o=e.indexOf(i[s?s-1:s+1]);this.activeIndex=o,this.setFocusedOption(),this.scheduledAfterRender.push((()=>{t._multiSelectHidden=!t.selected}))}selectOption(t){const{multiple:i,noSelect:e,showSelected:s}=this;if(!t||t.disabled||t.disabledGroup)return;const o=t.value,n={value:o,display:t.display||t.innerText.trim()};let r=[];if(i){const{selectedOptions:i}=this;r=i.find((t=>t.value===o))?i.filter((({value:t})=>t!==o)):[...i,n],s&&this.focusSelectedSibling(t)}else r=[n];e?this.setActiveElement(null):this.selectedOptions=r,this.change.emit({value:o,values:r}),i||this.popoverState.emit({open:!1,action:"select"})}adjustActiveOptionAndScroll(t){this.activeIndex+=t,this.setActiveOption(),this.setFocusedOption(),this.scrollToActiveOption()}resetTimer(){this.searchStringTimer&&clearTimeout(this.searchStringTimer),this.searchStringTimer=window.setTimeout((()=>{this.searchString=null}),2e3)}searchOptions(t,i){this.searchString=t,this.searchAndFocus(t,i)}showSelectedUpdated(t){t&&0===this.selectedOptions.length?this.showSelected=!1:this.allOptions.forEach((i=>i._multiSelectHidden=!!t&&!i.selected))}selectedOptionsUpdated(){this.multiple?this.updateMultipleOptionAttrs():this.updateSingleOptionAttrs()}delegateFocus(t){if(!h(t,this.hostElement))return;this.popoverState.emit({open:!0,action:"open"});const{activeIndex:i}=this;"number"==typeof i&&i>-1?(this.setActiveOption(),this.setFocusedOption()):this.setDefaultActiveElement()}handleClick(t){t.stopPropagation()}async setDefaultActiveElement(){this.activeIndex=this.getDefaultActiveIndex(),this.setActiveOption(),this.setFocusedOption()}async setActiveElement(t){this.activeIndex=t,this.setActiveOption(),this.setFocusedOption()}async handleExternalKeydown(t){this.externalKeydownHandler(t)}async getContents(){return this.allContents}async getOptions(){return this.allOptions}render(){return e(s,null,e("div",{class:"content",ref:t=>this.contentElement=t,onFocusout:this.focusoutHandler},e("div",{class:"options",role:this.type||"listbox",onKeyDown:this.internalKeydownHandler,onClick:this.clickHandler},e("slot",null))))}get hostElement(){return o(this)}static get watchers(){return{showSelected:["showSelectedUpdated"],selectedOptions:["selectedOptionsUpdated"]}}};c.style="*{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{position:relative;width:100%;display:block;line-height:var(--tct-option-list-line-height, var(--t-option-list-line-height, var(--app-line-height, 1.428571429em)))}.content{text-align:start}:host([is-sizeable]) .content{display:block;height:auto}";const d=class{constructor(e){t(this,e),this.popoverStateChanged=i(this,"popoverStateChanged",7),this.scheduledAfterRender=[],this.viewPortChanged=()=>{this.open&&this.determinePopDirection()},this.direction=void 0,this.align=void 0,this.open=void 0,this.block=void 0,this.minHeight=void 0,this.controlElement=void 0,this.currentDirection=void 0,this.show=!1}componentDidLoad(){this.open&&this.determinePopDirection()}componentDidRender(){setTimeout((()=>{this.scheduledAfterRender.forEach((t=>t())),this.scheduledAfterRender=[]}),25)}disconnectedCallback(){this.removeViewportListeners()}async toggle(){this.open=!this.open}openChanged(t){this.popoverStateChanged.emit({open:t}),this.scheduledAfterRender.push(l),t?(this.addViewportListeners(),this.determinePopDirection()):(this.removeViewportListeners(),this.containerElement.addEventListener("transitionend",(()=>{this.open||(this.currentDirection=void 0,this.containerElement.style.removeProperty("display"),this.containerElement.style.removeProperty("--comp-pop-max-height"))}),{once:!0}),this.show=!1)}popoverStateHandler(t){const{detail:{open:i}}=t;i!==this.open&&(this.open=i,t.stopPropagation())}addViewportListeners(){window.visualViewport.addEventListener("resize",this.viewPortChanged)}removeViewportListeners(){window.visualViewport.removeEventListener("resize",this.viewPortChanged)}async setDirectionAndShow(t){"up"===t&&this.determinePopOffset(),this.currentDirection=t,this.show=!0}async determinePopDirection(){var t,i,e,s,o,n,a;const{containerElement:h,contentElement:l,direction:c,controlElement:d,currentDirection:p}=this;h&&(h.style.maxHeight=null);const b=null!=c?c:p;h.style.setProperty("display","block"),await r();const{top:v,height:u}=null!==(t=null==d?void 0:d.getBoundingClientRect())&&void 0!==t?t:{top:0,height:0},w=l.clientHeight,f=(null===(e=null===(i=window.Tecton)||void 0===i?void 0:i.platformDimensions)||void 0===e?void 0:e.scrollY)||(null===(s=window.visualViewport)||void 0===s?void 0:s.offsetTop)||0,g=f+((null===(n=null===(o=window.Tecton)||void 0===o?void 0:o.platformDimensions)||void 0===n?void 0:n.innerHeight)||(null===(a=window.visualViewport)||void 0===a?void 0:a.height)||window.innerHeight)-v-u,m=g>w,x=w<=v;let k;if("down"===b&&m)return this.setDirectionAndShow("down");if("up"===b&&x)return this.setDirectionAndShow("up");if(void 0===b&&m?k="down":void 0===b&&x&&(k="up"),k)return this.setDirectionAndShow(k);const{minHeight:y=150}=this,O=g>=y+5;let E;return"down"===b?(E=Math.max(g-5,y),k="down"):"up"===b?(E=Math.max(v-5,y),k="up"):O?(E=Math.max(g-5,y),k="down"):(E=Math.max(v-f-5,y),k="up"),h.style.setProperty("--comp-pop-max-height",`${E}px`),this.setDirectionAndShow(k)}determinePopOffset(){var t;const{controlElement:i,containerElement:e}=this,s=null!==(t=null==i?void 0:i.getBoundingClientRect().height)&&void 0!==t?t:0;e.style.setProperty("--comp-pop-offset",`${s}px`)}render(){const t=["container",this.currentDirection];return this.show&&t.push("show"),e("div",{ref:t=>this.containerElement=t,class:t.join(" "),"test-id":"outerContainer"},e("div",{ref:t=>this.contentElement=t,class:"content"},e("slot",null)))}get hostElement(){return o(this)}static get watchers(){return{open:["openChanged"]}}};d.style="*{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:block;width:100%}:host([align=right]){display:block;position:absolute;right:0;text-align:end;left:unset}.container{display:none;overflow:hidden;opacity:0;height:0;position:absolute;top:var(--tct-popover-top, var(--t-popover-top, initial));visibility:hidden;background-color:var(--tct-popover-background-color, var(--t-popover-background-color, var(--app-white, #ffffff)));color:var(--tct-popover-text-color, var(--t-popover-text-color, var(--t-text, #4d4d4d)));z-index:var(--tct-popover-z-index, var(--t-popover-z-index, 100));width:max-content;min-width:var(--tct-popover-min-width, var(--t-popover-min-width, 135px));box-shadow:var(--tct-popover-box-shadow, var(--t-popover-box-shadow, var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3))));text-align:start;left:0;transition:opacity var(--app-tween-1, 0.2s ease), max-height var(--app-tween-1, 0.2s ease);border-radius:var(--tct-popover-border-radius, var(--t-popover-border-radius, 0));max-height:var(--comp-pop-max-height);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.container::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.container::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.container::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}:host([block]) .container{left:unset;right:unset;width:100%;min-width:unset}:host([align=right]) .container{right:0;text-align:end;left:unset}.container :host([open]){display:block}:host([open]) .container.show{height:auto;overflow:auto;opacity:1;visibility:visible}.container.up{bottom:var(--comp-pop-offset)}click-elsewhere{position:relative;display:block}.content{height:auto}";export{c as q2_option_list,d as q2_popover}
@@ -1 +0,0 @@
1
- const e=(e,n)=>{var t;if(!("open"in document.createElement("dialog")))return!1;if(!(null===(t=window.TectonElements)||void 0===t?void 0:t.showActionSheet))return!1;if(n){const e=n instanceof KeyboardEvent,t=n instanceof MouseEvent,i=e&&["ArrowDown","ArrowUp","PageDown","PageUp","Home","End"].includes(n.key);if(!(t&&"click"===n.type||i))return!1}return!!e.hoist},n=e=>{const t={disabled:!1,display:"",hidden:!1,multiline:!1,value:"",innerHTML:""},i=Object.keys(t),o={disabled:!1,label:"",options:[]},r=Object.keys(o);return e.map((e=>{if("Q2-OPTGROUP"===e.tagName){const t=e;return r.reduce(((i,o)=>{if("options"===o){const t=Array.from(e.children).filter((e=>"Q2-OPTION"===e.tagName||"Q2-OPTGROUP"===e.tagName));i[o]=n(t)}else i[o]=t[o];return i}),Object.assign({},o))}if("Q2-OPTION"===e.tagName)return i.reduce(((n,t)=>(n[t]=e[t],n)),Object.assign({},t))}))},t=async(e,t)=>{var i;const o=await(async(e,t)=>({appearance:"list",title:e.label||"",description:"",event:t,listProps:{multiple:!!e.optionList.multiple,selectedOptions:e.optionList.selectedOptions||[],noSelect:!!e.optionList.noSelect},options:n(await e.optionList.getContents())}))(e,t);return null===(i=window.TectonElements)||void 0===i?void 0:i.showActionSheet(o)};export{t as a,e as s}
@@ -1 +0,0 @@
1
- import{r as t,c as e,h as i,g as s}from"./p-926a3e80.js";import{l,h as o,o as a,d as r,a as n,e as c}from"./p-2453cd92.js";import{s as h,a as d}from"./p-a1926e65.js";const p=class{constructor(i){var s;t(this,i),this.change=e(this,"change",7),this.input=e(this,"input",7),this.scheduledAfterRender=[],this.showSelectedOptions=()=>{this.showSelected=!0},this.showAllOptions=()=>{this.showSelected=!1},this.onMutationObserved=()=>{const t=this.hostElement.querySelector(".custom-display-content"),e=this.hostElement.shadowRoot.querySelector('slot[name="q2-select-display"]'),i=e?e.assignedNodes().length>0:t.children.length>0;this.hasCustomDisplay!==i&&(this.hasCustomDisplay=i)},this.onOptionListChange=t=>{t.stopPropagation();const{values:e}=t.detail;0===e.length&&this.showAllOptions(),this.handleSelectionChanges(t.detail)},this.popoverStateChanged=({detail:{open:t}})=>{this.open!==t&&(this.open=t,t&&!this.searchText||(this.optionList.setActiveElement(null),this.inputField.focus()))},this.inputKeydownHandler=t=>{if(!this.readonly&&!this.disabled)return h(this,t)?this.executeActionSheet(t):void(this.searchable&&!["ArrowDown","ArrowUp","PageDown","PageUp","Home","End","Escape","Tab"].includes(t.key)||(this.shouldClearSearchText(t)&&this.clearSearchText(),this.optionList.handleExternalKeydown(t)))},this.visibilityToggleKeyDown=t=>{const e=t.key,i="Tab"===e&&t.shiftKey;["ArrowLeft","ArrowRight","ArrowUp","ArrowDown"].includes(e)&&t.stopPropagation(),i&&(t.stopPropagation(),this.optionList.setDefaultActiveElement())},this.inputClickHandler=async t=>{if(t.stopPropagation(),h(this))return this.executeActionSheet(t);this.toggleDropdown(),this.focusInput()},this.inputInputHandler=t=>{t.stopPropagation();const e=t.detail.value;!!this.value&&this.inputField.value!==e&&this.clearValue(),this.open||this.openDropdownWithoutActiveElement(),this.prioritizeSearch=!0,this.searchText=e,this.input.emit({query:e})},this.inputFocusHandler=()=>{this.inputFocused=!0},this.inputBlurHandler=()=>{this.inputFocused=!1},this.inputChangeHandler=t=>{t.stopPropagation()},this.clickedElsewhere=t=>{"click-elsewhere"===t.target.localName&&(t.stopPropagation(),this.open&&this.closeDropdown())},this.onCustomDisplayClick=t=>{t.stopPropagation(),this.focusInput(),this.toggleDropdown()},this.label=void 0,this.hideLabel=void 0,this.value=void 0,this.selectedOptions=[],this.disabled=!1,this.readonly=!1,this.invalid=void 0,this.listLabel=l("tecton.element.select.listLabel"),this.errors=void 0,this.multiple=!1,this.minRows=3,this.popDirection=void 0,this.searchable=!1,this.multilineOptions=!1,this.optional=!1,this.placeholder=void 0,this.hoist=!!(null===(s=window.Tecton)||void 0===s?void 0:s.useActionSheets),this.ariaLabel=void 0,this.open=!1,this.showSelected=!1,this.searchText="",this.hasCustomDisplay=!1,this.inputFocused=!1,this.statusMessage=void 0,this.prioritizeSearch=!1,this.structuredSelectedOptions=[]}componentWillLoad(){o(this),this.buildStructuredSelectedOptions(),this.handleMultilineOptionsUpdate(this.multilineOptions,!1)}componentDidLoad(){const t=new MutationObserver(this.onMutationObserved);t.observe(this.hostElement,{childList:!0,subtree:!0}),this.mutationObserver=t,this.onMutationObserved(),a(this.hostElement),setTimeout((()=>this.checkSelectedDisplay()),0)}componentDidRender(){setTimeout((()=>{this.scheduledAfterRender.forEach((t=>t())),this.scheduledAfterRender=[]}),25)}disconnectedCallback(){var t;null===(t=this.mutationObserver)||void 0===t||t.disconnect(),this.mutationObserver=null}get innerInputField(){var t,e;return null===(e=null===(t=this.inputField)||void 0===t?void 0:t.shadowRoot)||void 0===e?void 0:e.querySelector(".input-field")}get badgeValue(){var t,e;if(!this.multiple)return null;const i=null!==(e=null===(t=this.selectedOptions)||void 0===t?void 0:t.length)&&void 0!==e?e:0;return this.open&&this.searchable?i?`${i}`:null:i>1?"+"+(i-1):null}get popoverMinHeight(){const{minRows:t}=this,e=this.hostElement.querySelector("q2-option:not([hidden])");let i=e&&window.getComputedStyle(e).minHeight;return i&&"0px"!==i||(i="44px"),t*parseInt(i)}get selectedDisplay(){return this.prioritizeSearch||this.searchText?this.searchText:this.hasCustomDisplay?"":this.multiple?this.calculateMultiSelectSelectedDisplay():this.calculateSingleSelectSelectedDisplay()}get selectedDisplaySlot(){return this.hostElement.querySelector('[slot="_selected-display"]')}get firstSelectedValue(){var t;return this.multiple?null===(t=this.selectedOptions)||void 0===t?void 0:t[0]:this.value}get firstSelectedOptionElement(){const{firstSelectedValue:t}=this;return t?this.optionElements.find((({value:e})=>e===t)):null}get optionElements(){return Array.from(this.hostElement.querySelectorAll("q2-option"))}get wrapperClasses(){const{errors:t}=this,e=["q2-select-container"];return Array.isArray(t)&&t.length>0&&e.push("has-error"),this.inputFocused&&e.push("is-focused"),this.searchable&&e.push("is-searchable"),e.join(" ")}buildStructuredSelectedOptions(){const{multiple:t,selectedOptions:e,value:i}=this;this.structuredSelectedOptions=t?(null==e?void 0:e.length)?e.map((t=>"string"==typeof t?{value:t}:t)):[]:i?[{value:i}]:[]}ariaLabelObserver(){o(this)}valueUpdated(){this.multiple||this.clearSearchText()}handleMultilineOptionsUpdate(t,e){t!==e&&this.optionElements.forEach((e=>e.multiline=t))}openChanged(t){this.scheduledAfterRender.push((()=>{const{multiple:e,multiSelectHeader:i,popoverElement:s}=this,l=t&&e&&(null==i?void 0:i.offsetHeight)||0;l?s.style.setProperty("--comp-multi-select-header-height",`${l}px`):s.style.removeProperty("--comp-multi-select-header-height")}))}keydownHandler(t){this.inputKeydownHandler(t)}onHostElementChange(t){this.readonly||this.disabled||t.target!==this.hostElement||this.hostElement.onchange||(this.multiple?(this.value=null,this.selectedOptions=t.detail.selectedOptions):(this.value=t.detail.value,this.selectedOptions=[]))}onHostElementInput(t){if(!this.searchable||t.target!==this.hostElement||this.hostElement.oninput)return;const e=this.optionElements,i=this.searchText.trim().toLocaleLowerCase();let s=0;e.forEach((t=>{var e;if(""===i)return void(t.hidden=!1);const l="Q2-CARD"===(null===(e=t.firstElementChild)||void 0===e?void 0:e.tagName)?t.firstElementChild.title:null,{display:o="",innerText:a=""}=t,r=[o,l,a].some((t=>{var e;return null!==(e=null==t?void 0:t.toLocaleLowerCase().includes(i))&&void 0!==e&&e}));t.hidden=!r,r&&s++})),this.setStatusMessage(l(i?"tecton.element.select.searchable.results":"tecton.element.select.allOptions",[i?s:e.length]))}delegateFocus(t){const e=r(t,this.hostElement);(this.prioritizeSearch=e&&this.searchable)?this.clearSelectedDisplay():n(t,this.hostElement)&&this.inputField.shadowRoot.querySelector(".input-field").focus()}handleFocusout(t){const e=c(t,this.hostElement);e&&this.closeDropdown(),this.prioritizeSearch=!e&&this.searchable}async executeActionSheet(t){const e=await d(this,t);this.handleSelectionChanges(e)}handleSelectionChanges(t){const{value:e="",values:i=[]}=t,s=i.map((t=>t.value)),{multiple:l}=this;this.hostElement.onchange||(this.selectedOptions=s),this.change.emit({value:l?void 0:e,selectedOptions:l?s:void 0})}clearValue(){const{multiple:t}=this;this.value="",this.selectedOptions=[],this.change.emit({value:t?void 0:"",selectedOptions:t?[]:void 0})}calculateMultiSelectSelectedDisplay(){var t,e,i;const{firstSelectedOptionElement:s,firstSelectedValue:o,multilineOptions:a}=this;return o?(null==s?void 0:s.display)?l(s.display):a&&this.searchable?this.searchText:a?"":null!==(i=null!==(e=null===(t=null==s?void 0:s.textContent)||void 0===t?void 0:t.trim())&&void 0!==e?e:null==s?void 0:s.value)&&void 0!==i?i:o:""}calculateSingleSelectSelectedDisplay(){var t;const{firstSelectedOptionElement:e}=this;return(null==e?void 0:e.display)&&l(e.display)||(null===(t=null==e?void 0:e.textContent)||void 0===t?void 0:t.trim())||this.value||""}openDropdownWithoutActiveElement(){this.readonly||this.disabled||(this.optionList.setActiveElement(null),this.open=!0)}closeDropdown(){this.open=!1,this.clearSearchText()}clearSearchText(){this.searchText&&(this.searchText="",this.input.emit({query:""}))}toggleDropdown(){this.readonly||this.disabled||(this.open&&!this.searchText?this.closeDropdown():this.openDropdownWithoutActiveElement())}focusInput(){var t;null===(t=this.inputField)||void 0===t||t.dispatchEvent(new FocusEvent("focus"))}setStatusMessage(t){clearTimeout(this.statusMessageTimer),this.statusMessage="",this.statusMessageTimer=setTimeout((()=>{this.statusMessage=t}),1e3)}clearSelectedDisplay(){var t;null===(t=this.selectedDisplaySlot)||void 0===t||t.remove()}checkSelectedDisplay(){let t=this.selectedDisplaySlot;const{value:e,multiple:i,selectedOptions:s,multilineOptions:l,firstSelectedOptionElement:o,prioritizeSearch:a}=this;if(a||!l||!e&&i&&!(null==s?void 0:s.length))return this.clearSelectedDisplay();if(!o||o.display)return this.clearSelectedDisplay();const r=o.firstElementChild.cloneNode(!0);return r.querySelectorAll("[hide-on-select]").forEach((t=>t.remove())),t?(t.style.setProperty("--comp-selected-display-height",0===t.clientHeight?"auto":`${t.clientHeight}px`),t.firstElementChild.outerHTML!==r.outerHTML&&t.replaceChild(r,t.firstElementChild)):(t=document.createElement("div"),t.slot="_selected-display",t.appendChild(r),this.hostElement.appendChild(t)),t}checkSelectedDisplayHeight(){const{selectedDisplaySlot:t}=this;t&&t.style.setProperty("--comp-selected-display-height","44px")}shouldClearSearchText(t){return this.searchable&&!!this.searchText&&"Escape"===t.key}renderCustomDisplay(){if(this.checkSelectedDisplay())return this.checkSelectedDisplayHeight(),i("slot",{name:"_selected-display",slot:"custom-display"})}render(){const t=!this.searchable;return i("click-elsewhere",{class:this.wrapperClasses,onChange:this.clickedElsewhere},i("div",{"aria-live":"polite","aria-atomic":"true",role:"status",class:"sr"},this.statusMessage),i("q2-input",{ref:t=>this.inputField=t,class:"q2-select-input",label:this.label&&l(this.label)||"",value:this.selectedDisplay,errors:Array.isArray(this.errors)&&this.errors.length>0&&this.errors.map((t=>l(t)))||this.invalid&&["tecton.element.select.invalid"]||[],disabled:this.disabled,optional:this.optional,readonly:this.readonly,placeholder:this.placeholder||void 0,hideLabel:this.hideLabel,ariaExpanded:`${this.open}`,ariaControls:"option-list",ariaHaspopup:"listbox",role:this.searchable?"combobox":null,pseudo:t,"test-id":"toggleDropdown","hide-messages":!0,iconRight:"chevron-down",onClick:this.inputClickHandler,onInput:this.inputInputHandler,onKeyDown:this.inputKeydownHandler,onFocus:this.inputFocusHandler,onBlur:this.inputBlurHandler,onChange:this.inputChangeHandler,badgeValue:this.badgeValue,badgeTheme:this.inputFocused?"primary":void 0},this.renderCustomDisplay()),i("div",{class:"custom-display-content",hidden:!this.hasCustomDisplay||!!this.searchText,onClick:this.onCustomDisplayClick},i("slot",{name:"q2-select-display"})),this.optionsDropdown())}optionsDropdown(){return i("q2-popover",{ref:t=>this.popoverElement=t,controlElement:this.innerInputField,open:this.open,minHeight:this.popoverMinHeight,direction:this.popDirection,onPopoverStateChanged:this.popoverStateChanged,block:!0},i("div",{class:"popover-content",tabindex:"-1"},i("q2-option-list",{ref:t=>this.optionList=t,id:"option-list","show-selected":this.showSelected,"aria-label":this.listLabel,multiple:this.multiple,selectedOptions:this.structuredSelectedOptions,onChange:this.onOptionListChange},i("slot",null)),this.multiple&&this.visibilityToggle()))}visibilityToggle(){var t,e;const s=null!==(e=null===(t=this.selectedOptions)||void 0===t?void 0:t.length)&&void 0!==e?e:0,{showSelected:o}=this;return i("div",{class:"multi-select-header",ref:t=>this.multiSelectHeader=t},i("fieldset",null,i("legend",{"aria-label":l("tecton.element.select.multiHeader.showing")},l("tecton.element.select.multiHeader.showing")),i("div",null,i("input",{class:"sr",type:"radio",id:"all",name:"viewDisplay",value:"all",checked:!o,"aria-label":l("tecton.element.select.multiHeader.allAriaLabel"),"test-id":"allOptionsButton",onClick:this.showAllOptions,onKeyDown:this.visibilityToggleKeyDown}),i("label",{htmlFor:"all"},l("tecton.element.select.multiHeader.all"))),i("div",null,i("input",{class:"sr",type:"radio",id:"selected",disabled:0===s,name:"viewDisplay",value:"selected","aria-label":l("tecton.element.select.multiHeader.selectedAriaLabel",[s]),checked:o,"test-id":"selectedOptionsButton",onClick:this.showSelectedOptions,onKeyDown:this.visibilityToggleKeyDown}),i("label",{htmlFor:"selected"},l("tecton.element.select.multiHeader.selected",[s])))))}get hostElement(){return s(this)}static get watchers(){return{value:["buildStructuredSelectedOptions","valueUpdated"],selectedOptions:["buildStructuredSelectedOptions"],ariaLabel:["ariaLabelObserver"],multilineOptions:["handleMultilineOptionsUpdate"],open:["openChanged"]}}};p.style="*{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}.q2-element-dropdown{display:none;position:absolute;background-color:var(--app-white, #ffffff);color:var(--t-text, #4d4d4d);left:0;width:100%;z-index:100;margin-top:1px;box-shadow:var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3));height:0;overflow:hidden;opacity:0;visibility:hidden;transition:opacity var(--app-tween-1, 0.2s ease);border-radius:var(--tct-dropdown-border-radius, --t-dropdown-border-radius, 0);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.q2-element-dropdown::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.q2-element-dropdown::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown.sizable{display:block;height:auto}.dropdown-open .q2-element-dropdown{display:block;height:auto;overflow:auto;opacity:1;visibility:visible}:host([alignment=right]) .q2-element-dropdown{left:auto;right:0}:host([block]) q2-btn,:host([block]){display:block}:host{display:block;margin-top:var(--tct-select-margin-top, var(--app-scale-4, 30px));margin-bottom:var(--tct-select-margin-bottom, var(--app-scale-4, 30px))}.q2-select-container{position:relative;display:block}.q2-select-input{margin:0;--tct-input-min-height:var(--tct-select-input-min-height, var(--t-select-input-min-height));--tct-input-max-height:var(--tct-select-input-max-height, var(--t-select-input-max-height, none))}::slotted([slot=_selected-display]){width:100%;min-height:var(--comp-selected-display-height, 44px)}.custom-display-content{position:absolute;bottom:0;left:calc(var(--tct-scale-2, var(--app-scale-2x, 10px)) + 1px);height:44px;width:calc(100% - 34px - var(--tct-scale-3, var(--app-scale-3x, 15px)));overflow:hidden;cursor:pointer;transition:left var(--tct-tween-2, var(--app-tween-1, 0.2s ease))}.custom-display-content:not([hidden]){display:flex;align-items:center}.is-searchable.is-focused .custom-display-content,.is-searchable .custom-display-content:active{left:calc(var(--tct-scale-3, var(--app-scale-3x, 15px)) + 1px)}.has-error .custom-display-content{width:calc(100% - 68px - var(--tct-scale-3, var(--app-scale-3x, 15px)))}.popover-content{display:flex;flex-direction:column-reverse}.multi-select-header{padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-2, var(--app-scale-2x, 10px));position:sticky;top:0;z-index:5;background:var(--app-white);display:flex;gap:var(--app-scale-2x, 10px);align-items:center}.multi-select-header fieldset{margin:0;padding:0;border:0;display:flex;gap:var(--app-scale-2x, 10px)}.multi-select-header legend{padding:0;float:left}.multi-select-header label{cursor:pointer;padding:var(--tct-select-multi-select-option-padding, var(--t-select-multi-select-option-padding, var(--tct-btn-badge-padding, var(--t-btn-badge-padding, 2px 5px))));font-size:var(--tct-select-multi-select-option-font-size, var(--t-select-multi-select-option-font-size, var(--tct-btn-badge-font-size, var(--t-btn-badge-font-size, inherit))));border-radius:var(--tct-select-multi-select-option-radius, var(--t-select-multi-select-option-radius, var(--tct-btn-badge-border-radius, var(--t-btn-badge-border-radius, var(--app-border-radius-1, 3px)))));background-color:var(--tct-select-multi-select-option-bg, var(--t-select-multi-select-option-bg, var(--tct-btn-badge-bg, var(--t-btn-badge-bg, transparent))));color:var(--tct-select-multi-select-option-color, var(--t-select-multi-select-option-color, var(--tct-btn-badge-font-color, var(--t-btn-badge-font-color, inherit))))}.multi-select-header label:hover{background-color:var(--tct-select-multi-select-option-hover-background-color, var(--t-select-multi-select-option-hover-background-color, var(--tct-btn-badge-hover-bg, var(--t-btn-badge-hover-bg, var(--tct-gray-14, var(--t-gray-14, var(--app-gray-l3, #f2f2f2)))))));color:var(--tct-select-multi-select-option-color, var(--t-select-multi-select-option-color, var(--tct-btn-badge-hover-font-color, var(--t-btn-badge-hover-font-color, var(--tct-gray-5, var(--t-gray-5, var(--app-gray-d2, #404040)))))))}.multi-select-header input:checked+label,.multi-select-header input:checked+label:enabled:hover{background-color:var(--tct-select-multi-select-option-active-background-color, var(--t-select-multi-select-option-active-background-color, var(--tct-btn-primary-bg, var(--t-btn-primary-bg, #2e2e2e))));color:var(--tct-select-multi-select-option-active-color, var(--t-select-multi-select-option-active-color, var(--tct-btn-primary-font-color, var(--t-btn-primary-font-color, var(--app-white, #ffffff)))))}.multi-select-header input:disabled+label{opacity:var(--tct-select-multi-select-option-active-color, var(--t-select-multi-select-option-active-color, var(--tct-btn-disabled-opacity, var(--t-btn-disabled-opacity, var(--app-disabled-opacity, 0.4)))));cursor:not-allowed}.multi-select-header input:focus+label{box-shadow:var(--const-double-focus-ring)}";export{p as q2_select}
@@ -1 +0,0 @@
1
- import{r as t,h as o,F as r,g as e}from"./p-926a3e80.js";import{s as i,h as s,a as n,o as d,l as a}from"./p-2453cd92.js";const h=class{constructor(o){t(this,o),this.scheduledAfterRender=[],this.dropdownItemSelector="q2-dropdown-item:not([disabled]):not([separator])",this.focusToggle=()=>{const t=this.hostElement.shadowRoot.querySelector(".dropdown-button");t&&t.dispatchEvent(new FocusEvent("focus"))},this.openDropdown=()=>{i(this),this.dropdownOpen||(this.dropdownOpen=!0,this.scheduledAfterRender.push(this.resizeIframe))},this.closeDropdown=()=>{this.dropdownOpen&&(this.dropdownOpen=!1,this.scheduledAfterRender.push((()=>{this.resizeIframe()})))},this.onClickElsewhere=t=>{"click-elsewhere"===t.target.localName&&(t.stopPropagation(),this.closeDropdown())},this.onToggleClick=()=>{if(this.dropdownOpen)return this.focusToggle(),void this.closeDropdown();this.focusToggle(),this.openDropdown()},this.onToggleKeydown=t=>["ArrowUp","Up"].includes(t.key)?(t.preventDefault(),this.openDropdown(),void this.focusLastItem()):["ArrowDown","Down"].includes(t.key)?(t.preventDefault(),this.openDropdown(),void this.focusFirstItem()):["Escape","Esc"].includes(t.key)?(t.preventDefault(),this.focusToggle(),void this.closeDropdown()):void 0,this.onDropdownMenuClick=t=>{if("q2-dropdown-item"!==t.target.localName)return;const o=t.target;o.disabled||o.separator||(this.focusToggle(),this.closeDropdown())},this.onDropdownMenuKeydown=t=>{if(["Escape","Esc"].includes(t.key))return this.closeDropdown(),void this.focusToggle();if("q2-dropdown-item"!==t.target.localName)return;const o=t.target;return["ArrowUp","Up"].includes(t.key)?(t.preventDefault(),void this.focusAdjacentItem(o,"prev")):["ArrowDown","Down"].includes(t.key)?(t.preventDefault(),void this.focusAdjacentItem(o,"next")):void 0},this.type="icon",this.icon=void 0,this.label=void 0,this.hideLabel=void 0,this.disabled=void 0,this.popDirection=void 0,this.name=void 0,this.context=void 0,this.contextValue=void 0,this.resolvedType=void 0,this.block=void 0,this.ariaLabel=void 0,this.dropdownOpen=!1}resizeIframe(){return window.TectonElements&&window.TectonElements.resizeIframe&&window.TectonElements.resizeIframe()}resolveMenu(){return this.name&&window.TectonElements&&window.TectonElements.resolveMenu(this.name,this.contextValue,this.resolvedType)}orchestrateResolvedMenuItems(){this.name&&this.context?this.resolveMenuItemElements().then((t=>{this.removeResolvedElements(),t.forEach((t=>{this.hostElement.appendChild(t)}))})).catch((t=>{throw this.removeResolvedElements(),t})):this.removeResolvedElements()}removeResolvedElements(){this.hostElement.querySelectorAll("q2-dropdown-item.resolved-menu-item").forEach((t=>this.hostElement.removeChild(t)))}resolveMenuItemElements(){return this.resolveMenu().then((t=>t.map((t=>{let o,r;switch(t["tct-ctxid"]&&(r={},r[t.contextIdParamName]=t["tct-ctxid"]),t.action){case"navigateTo":o=()=>this.navigateTo(t.featureName,t.moduleName,r);break;case"showOverpanel":o=()=>this.showOverpanel(`${t.featureName}.${t.moduleName}`,r)}const e=document.createElement("q2-dropdown-item");return e.setAttribute("value",t.itemLabel),e.classList.add("resolved-menu-item"),e.innerHTML=t.itemLabel,e.onclick=o,e}))))}navigateTo(t,o,r){return window.TectonElements&&window.TectonElements.navigateTo(t,o,r)}showOverpanel(t,o){return window.TectonElements&&window.TectonElements.showOverpanel(t,o,void 0,!0)}get hasCustomButton(){return!!this.hostElement.querySelector("[slot=custom-dropdown-button]")}get toggleButtonProps(){const t=["primary","secondary","neutral"],o=["icon","fab","custom",...t].includes(this.type)?this.type:"",r="icon"===o,e="fab"===o,i="custom"===o;let s;return t.includes(o)&&(s="neutral"===o?o:`workflow-${o}`),{icon:r,fab:e,intent:s,active:this.dropdownOpen,disabled:!!this.disabled,ariaExpanded:this.dropdownOpen,className:"dropdown-button"+(r||e||s?"":" unstyled"),custom:i}}ariaLabelObserver(){s(this)}nameHandler(){this.orchestrateResolvedMenuItems()}contextHandler(){this.orchestrateResolvedMenuItems()}contextValueHandler(){this.orchestrateResolvedMenuItems()}resolvedTypeHandler(){this.orchestrateResolvedMenuItems()}delegateFocus(t){n(t,this.hostElement)&&this.controlElement.shadowRoot.querySelector("button").focus()}componentWillLoad(){s(this)}componentDidLoad(){this.orchestrateResolvedMenuItems(),d(this.hostElement)}componentDidRender(){setTimeout((()=>{this.scheduledAfterRender.forEach((t=>t())),this.scheduledAfterRender=[]}),25)}focusFirstItem(){const t=this.hostElement.querySelector(`${this.dropdownItemSelector}:first-child`);t&&t.dispatchEvent(new FocusEvent("focus"))}focusLastItem(){const t=this.hostElement.querySelector(`${this.dropdownItemSelector}:last-child`);t&&t.dispatchEvent(new FocusEvent("focus"))}focusAdjacentItem(t,o){const r=Array.from(this.hostElement.querySelectorAll(this.dropdownItemSelector)),e=r.indexOf(t);if(-1===e)return;let i=0;"next"===o?i=e<r.length-1?e+1:0:"prev"===o&&(i=e>0?e-1:r.length-1);const s=r[i];s&&s.dispatchEvent(new Event("focus"))}render(){const t=this.toggleButtonProps;return o("click-elsewhere",{class:"dropdown-container"+(this.dropdownOpen?" dropdown-open":""),onChange:this.onClickElsewhere,"test-id":"dropdownContainer"},o("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?a(this.label):void 0,hideLabel:this.hideLabel,ariaHasPopup:"menu","test-id":"dropdownButton",block:this.block},this.hasCustomButton?o("div",{"test-id":"dropdownCustom",class:t.custom?"":"hidden"},o("slot",{name:"custom-dropdown-button"})):o(r,null,this.icon?o("q2-icon",{type:this.icon}):" ",this.label&&!this.hideLabel&&o("span",{class:"dropdown-button-text"},a(this.label)))),o("div",{ref:t=>this.dropdownContainer=t,class:"q2-element-dropdown "+("up"===this.privatePopDirection?"dropup":""),role:"menu",onClick:this.onDropdownMenuClick,onKeyDown:this.onDropdownMenuKeydown},o("div",null,o("slot",null),this.dropdownOpen&&o("q2-btn",{class:"sr close-dropdown",onFocus:this.closeDropdown}))))}get hostElement(){return e(this)}static get watchers(){return{ariaLabel:["ariaLabelObserver"],name:["nameHandler"],context:["contextHandler"],contextValue:["contextValueHandler"],resolvedType:["resolvedTypeHandler"]}}};h.style="*{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}.q2-element-dropdown{display:none;position:absolute;background-color:var(--app-white, #ffffff);color:var(--t-text, #4d4d4d);left:0;width:100%;z-index:100;margin-top:1px;box-shadow:var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3));height:0;overflow:hidden;opacity:0;visibility:hidden;transition:opacity var(--app-tween-1, 0.2s ease);border-radius:var(--tct-dropdown-border-radius, --t-dropdown-border-radius, 0);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.q2-element-dropdown::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.q2-element-dropdown::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown.sizable{display:block;height:auto}.dropdown-open .q2-element-dropdown{display:block;height:auto;overflow:auto;opacity:1;visibility:visible}:host([alignment=right]) .q2-element-dropdown{left:auto;right:0}:host([block]) q2-btn,:host([block]){display:block}:host{display:inline-flex}.dropdown-container{position:relative;display:block}.dropdown-button-content{display:flex;align-items:center}.dropdown-button.unstyled .dropdown-button-content{padding:var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-1, var(--app-scale-1x, 5px))}.q2-element-dropdown{width:var(--tct-dropdown-width, var(--t-dropdown-width, 175px))}.q2-element-dropdown.dropup{bottom:var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px))}q2-btn[color=primary]~.q2-element-dropdown.dropup,q2-btn[intent=workflow-primary]~.q2-element-dropdown.dropup{bottom:calc(var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px)) + var(--tct-btn-primary-border-width, var(--t-btn-primary-border-width, 0)))}q2-btn[color=secondary]~.q2-element-dropdown.dropup,q2-btn[intent=workflow-secondary]~.q2-element-dropdown.dropup{bottom:calc(var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px)) + var(--tct-btn-secondary-border-width, var(--t-btn-secondary-border-width, 0)))}q2-btn[intent=neutral]~.q2-element-dropdown.dropup{bottom:calc(var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px)) + var(--tct-btn-neutral-border-width, var(--t-btn-neutral-border-width, 0)))}";export{h as q2_dropdown}