q2-tecton-elements 1.50.2 → 1.50.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/click-elsewhere_2.cjs.entry.js +19 -14
- package/dist/cjs/click-elsewhere_2.cjs.entry.js.map +1 -1
- package/dist/cjs/{index-799a5634.js → index-7f6e3c5a.js} +33 -1
- package/dist/cjs/index-7f6e3c5a.js.map +1 -0
- package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/q2-badge_7.cjs.entry.js +1 -1
- package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
- package/dist/cjs/q2-card.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
- package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
- package/dist/cjs/q2-detail.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-dropdown.cjs.entry.js +4 -2
- package/dist/cjs/q2-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
- package/dist/cjs/q2-item.cjs.entry.js +1 -1
- package/dist/cjs/q2-list.cjs.entry.js +1 -1
- package/dist/cjs/q2-loc.cjs.entry.js +1 -1
- package/dist/cjs/q2-message.cjs.entry.js +1 -1
- package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
- package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
- package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
- package/dist/cjs/q2-pill.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
- package/dist/cjs/q2-radio.cjs.entry.js +1 -1
- package/dist/cjs/q2-relative-time.cjs.entry.js +1 -1
- package/dist/cjs/q2-section.cjs.entry.js +1 -1
- package/dist/cjs/q2-select.cjs.entry.js +43 -3
- package/dist/cjs/q2-select.cjs.entry.js.map +1 -1
- package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
- package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
- package/dist/cjs/q2-tag.cjs.entry.js +1 -1
- package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
- package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js +3 -1
- package/dist/collection/components/q2-dropdown/q2-dropdown.js.map +1 -1
- package/dist/collection/components/q2-popover/q2-popover.js +19 -14
- package/dist/collection/components/q2-popover/q2-popover.js.map +1 -1
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js +230 -147
- package/dist/collection/components/q2-popover/test/q2-popover-test.spec.js.map +1 -1
- package/dist/collection/components/q2-select/q2-select.js +42 -2
- package/dist/collection/components/q2-select/q2-select.js.map +1 -1
- package/dist/collection/components/q2-select/test/q2-select-test.spec.js +146 -6
- package/dist/collection/components/q2-select/test/q2-select-test.spec.js.map +1 -1
- package/dist/collection/utils/index.js +37 -0
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/components/index2.js +32 -1
- package/dist/components/index2.js.map +1 -1
- package/dist/components/q2-dropdown.js +3 -1
- package/dist/components/q2-dropdown.js.map +1 -1
- package/dist/components/q2-popover2.js +19 -14
- package/dist/components/q2-popover2.js.map +1 -1
- package/dist/components/q2-select2.js +43 -3
- package/dist/components/q2-select2.js.map +1 -1
- package/dist/esm/click-elsewhere_2.entry.js +19 -14
- package/dist/esm/click-elsewhere_2.entry.js.map +1 -1
- package/dist/esm/{index-c774e1e4.js → index-c8cc7209.js} +33 -2
- package/dist/esm/index-c8cc7209.js.map +1 -0
- package/dist/esm/q2-action-sheet.entry.js +1 -1
- package/dist/esm/q2-badge_7.entry.js +1 -1
- package/dist/esm/q2-calendar.entry.js +1 -1
- package/dist/esm/q2-card.entry.js +1 -1
- package/dist/esm/q2-carousel-pane.entry.js +1 -1
- package/dist/esm/q2-carousel.entry.js +1 -1
- package/dist/esm/q2-chart-area.entry.js +1 -1
- package/dist/esm/q2-chart-bar.entry.js +1 -1
- package/dist/esm/q2-chart-donut.entry.js +1 -1
- package/dist/esm/q2-checkbox-group.entry.js +1 -1
- package/dist/esm/q2-checkbox.entry.js +1 -1
- package/dist/esm/q2-data-table.entry.js +1 -1
- package/dist/esm/q2-detail.entry.js +1 -1
- package/dist/esm/q2-dropdown-item.entry.js +1 -1
- package/dist/esm/q2-dropdown.entry.js +4 -2
- package/dist/esm/q2-dropdown.entry.js.map +1 -1
- package/dist/esm/q2-editable-field.entry.js +1 -1
- package/dist/esm/q2-item.entry.js +1 -1
- package/dist/esm/q2-list.entry.js +1 -1
- package/dist/esm/q2-loc.entry.js +1 -1
- package/dist/esm/q2-message.entry.js +1 -1
- package/dist/esm/q2-month-picker.entry.js +1 -1
- package/dist/esm/q2-optgroup.entry.js +1 -1
- package/dist/esm/q2-option-list.entry.js +1 -1
- package/dist/esm/q2-pagination.entry.js +1 -1
- package/dist/esm/q2-pill.entry.js +1 -1
- package/dist/esm/q2-radio-group.entry.js +1 -1
- package/dist/esm/q2-radio.entry.js +1 -1
- package/dist/esm/q2-relative-time.entry.js +1 -1
- package/dist/esm/q2-section.entry.js +1 -1
- package/dist/esm/q2-select.entry.js +43 -3
- package/dist/esm/q2-select.entry.js.map +1 -1
- package/dist/esm/q2-stepper-pane.entry.js +1 -1
- package/dist/esm/q2-stepper-vertical.entry.js +1 -1
- package/dist/esm/q2-stepper.entry.js +1 -1
- package/dist/esm/q2-tag.entry.js +1 -1
- package/dist/esm/q2-textarea.entry.js +1 -1
- package/dist/esm/q2-tooltip.entry.js +1 -1
- package/dist/jest.setup.js +11 -0
- package/dist/jest.setup.js.map +1 -1
- package/dist/q2-tecton-elements/{p-f321dc16.entry.js → p-00d5c9c4.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-016563e1.entry.js +2 -0
- package/dist/q2-tecton-elements/{p-fb72d692.entry.js.map → p-016563e1.entry.js.map} +1 -1
- package/dist/q2-tecton-elements/{p-68810402.entry.js → p-0c77ab7d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-7a5f1418.entry.js → p-0da2dfde.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-9ffc7859.entry.js → p-1148b992.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-a41da37c.entry.js → p-13630805.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-c59ad989.entry.js → p-1465cd9a.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-181d0482.entry.js +2 -0
- package/dist/q2-tecton-elements/p-181d0482.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-fe61cc4c.entry.js → p-1bcf4fe0.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-b0ef6f43.entry.js → p-200084c2.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-8cb85069.entry.js → p-3927fd62.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-cd460504.entry.js → p-3d7f5f4a.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-acba752c.entry.js → p-44049830.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-73cbf3bd.entry.js → p-53b0b123.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-b22410f6.entry.js → p-6041e3c3.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-c0e76a27.entry.js → p-6abfc75e.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-17a925c1.entry.js → p-7390e3d2.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-42e791cd.entry.js → p-7a3c82b1.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-531c96c8.entry.js → p-7dc8ad9d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-1d38ba53.entry.js → p-8823f132.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-c1790396.entry.js → p-90bd6c17.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-ec86e604.entry.js → p-91586158.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-d3f700fe.entry.js → p-919d614f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-fb65b8f3.entry.js → p-97c0111f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-cbb02f6f.entry.js → p-a04337ce.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-810edec0.entry.js → p-a4dc79c8.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-0106e160.entry.js → p-b773fd31.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-87b84009.entry.js → p-c395c46f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-b8aa76a0.entry.js → p-c620a664.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-fcb11cea.entry.js → p-c82e2e7f.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-bed61b18.entry.js → p-c89b40cc.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-ab35aa27.entry.js → p-e13b1b40.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-4498cd2f.entry.js → p-f02deb01.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-2e26e06d.entry.js → p-f50cfb8d.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-d5a11ae4.entry.js → p-f5ce223b.entry.js} +2 -2
- package/dist/q2-tecton-elements/p-f6e6f43e.entry.js +2 -0
- package/dist/q2-tecton-elements/p-f6e6f43e.entry.js.map +1 -0
- package/dist/q2-tecton-elements/{p-ba25f9a1.entry.js → p-f8f6acd1.entry.js} +2 -2
- package/dist/q2-tecton-elements/{p-19784a09.js → p-ff8ed604.js} +2 -2
- package/dist/q2-tecton-elements/p-ff8ed604.js.map +1 -0
- package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
- package/dist/types/builds/q2e/development/tecton/tecton/packages/q2-tecton-elements/.stencil/jest.setup.d.ts +9 -0
- package/dist/types/components/q2-select/q2-select.d.ts +4 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/package.json +3 -3
- package/dist/cjs/index-799a5634.js.map +0 -1
- package/dist/esm/index-c774e1e4.js.map +0 -1
- package/dist/q2-tecton-elements/p-19784a09.js.map +0 -1
- package/dist/q2-tecton-elements/p-d34fff19.entry.js +0 -2
- package/dist/q2-tecton-elements/p-d34fff19.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-e0675a03.entry.js +0 -2
- package/dist/q2-tecton-elements/p-e0675a03.entry.js.map +0 -1
- package/dist/q2-tecton-elements/p-fb72d692.entry.js +0 -2
- /package/dist/q2-tecton-elements/{p-f321dc16.entry.js.map → p-00d5c9c4.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-68810402.entry.js.map → p-0c77ab7d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-7a5f1418.entry.js.map → p-0da2dfde.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-9ffc7859.entry.js.map → p-1148b992.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-a41da37c.entry.js.map → p-13630805.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c59ad989.entry.js.map → p-1465cd9a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-fe61cc4c.entry.js.map → p-1bcf4fe0.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-b0ef6f43.entry.js.map → p-200084c2.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-8cb85069.entry.js.map → p-3927fd62.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-cd460504.entry.js.map → p-3d7f5f4a.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-acba752c.entry.js.map → p-44049830.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-73cbf3bd.entry.js.map → p-53b0b123.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-b22410f6.entry.js.map → p-6041e3c3.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c0e76a27.entry.js.map → p-6abfc75e.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-17a925c1.entry.js.map → p-7390e3d2.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-42e791cd.entry.js.map → p-7a3c82b1.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-531c96c8.entry.js.map → p-7dc8ad9d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-1d38ba53.entry.js.map → p-8823f132.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-c1790396.entry.js.map → p-90bd6c17.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ec86e604.entry.js.map → p-91586158.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-d3f700fe.entry.js.map → p-919d614f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-fb65b8f3.entry.js.map → p-97c0111f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-cbb02f6f.entry.js.map → p-a04337ce.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-810edec0.entry.js.map → p-a4dc79c8.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-0106e160.entry.js.map → p-b773fd31.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-87b84009.entry.js.map → p-c395c46f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-b8aa76a0.entry.js.map → p-c620a664.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-fcb11cea.entry.js.map → p-c82e2e7f.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-bed61b18.entry.js.map → p-c89b40cc.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ab35aa27.entry.js.map → p-e13b1b40.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-4498cd2f.entry.js.map → p-f02deb01.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-2e26e06d.entry.js.map → p-f50cfb8d.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-d5a11ae4.entry.js.map → p-f5ce223b.entry.js.map} +0 -0
- /package/dist/q2-tecton-elements/{p-ba25f9a1.entry.js.map → p-f8f6acd1.entry.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["q2DropdownCss","Q2DropdownStyle0","Q2Dropdown","this","dropdownItemSelector","closeDropdown","open","focusFirstItem","async","firstItem","hostElement","querySelector","waitForNextPaint","dispatchEvent","FocusEvent","focusLastItem","lastItem","focusToggle","controlElement","focus","onClickElsewhere","event","target","localName","stopPropagation","popoverElement","onDropdownMenuClick","item","disabled","separator","onDropdownMenuKeydown","key","preventDefault","focusAdjacentItem","onToggleClick","openDropdown","onToggleKeydown","componentWillLoad","popDirectionHandler","alignmentHandler","ariaLabelHandler","componentDidLoad","orchestrateResolvedMenuItems","overrideFocus","delegateFocus","isEventFromElement","popoverStateHandler","detail","_a","scrollContainerTo","top","additionalContextHandler","handleRenamedProp","handleAriaLabel","contextHandler","contextValueHandler","nameHandler","resolvedTypeHandler","determineDropdownItemCount","querySelectorAll","length","hasCustomButton","toggleButtonProps","allowedIntents","allowedTypes","type","includes","icon","fab","custom","intent","active","ariaExpanded","className","activeItem","direction","dropdownItems","Array","from","activeIndex","indexOf","targetIndex","targetItem","Event","navigateTo","featureName","moduleName","queryParams","_b","window","TectonElements","call","name","context","removeResolvedElements","resolveMenuItemElements","then","data","forEach","element","appendChild","catch","err","resolvedElements","removeChild","resolveMenu","contextValue","resolvedType","additionalContext","datas","map","menuItemData","onClickFn","contextIdParamName","action","showOverpanel","newDropdownItem","document","createElement","setAttribute","itemLabel","classList","add","textContent","onclick","overpanelPath","params","undefined","render","btnProps","h","class","onChange","ref","el","onClick","onKeyDown","label","hideLabel","loc","ariaHasPopup","block","description","Fragment","minHeight","popoverMinHeight","popoverDirection","align","popoverAlignment","mode","popoverMode","role"],"sources":["src/components/q2-dropdown/q2-dropdown.scss?tag=q2-dropdown&encapsulation=shadow","src/components/q2-dropdown/q2-dropdown.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-flex;\n}\n\n:host([block]) {\n display: block;\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 {\n handleAriaLabel,\n handleRenamedProp,\n isEventFromElement,\n loc,\n overrideFocus,\n waitForNextPaint,\n} from 'src/utils';\n\n@Component({ tag: 'q2-dropdown', shadow: true, styleUrl: 'q2-dropdown.scss' })\nexport class Q2Dropdown implements ComponentInterface {\n // #region Own Properties\n\n controlElement?: HTMLQ2BtnElement;\n dropdownItemSelector: string = 'q2-dropdown-item:not([disabled]):not([separator])';\n popoverElement?: HTMLQ2PopoverElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n @Prop({ reflect: true })\n additionalContext: string;\n\n /** @deprecated */\n @Prop({ reflect: true })\n alignment: 'left' | 'right';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** If `true`, component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /**\n * Tells the outlet what the type of object being passed in as contextValue.\n * This will allow for the hierarchy resolution logic to work to determine if an option should or should not be shown.\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n context: string;\n\n /**\n * Passes important information to the outlet (e.g., pass an account id that your platform can use to look up what module to show for that account type).\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n contextValue: string;\n\n /** Indicates the menu cannot be focused or interacted with. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Hide's the field's `<label>` element from view.\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /** The icon that will render within the toggle button. You may use any of the `q2-icon` types. */\n @Prop({ reflect: true })\n icon: string;\n\n /**\n * The text that appears within the button.\n * @warning\n * This property should not be used if the `type` is `icon`.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /**\n * Identifies this menu as an outlet. Used in conjunction with context and, optionally, `contextValue`.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n name: string;\n\n /** Determine whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n popDirection: 'up' | 'down';\n\n /** Aligns the popover dropdown to the left or right side of the input field. */\n @Prop({ mutable: true })\n popoverAlignment: 'left' | 'right' = 'left'; // being used in dropdown.scss\n\n /**\n * Force the direction of the popover dropdown when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ mutable: true })\n popoverDirection: 'up' | 'down';\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number = 150;\n\n /**\n * Determines the display mode of the popover.\n *\n * Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.\n *\n * @info\n * This is a temporary solution to work around styling issues related to using fixed positioning for the popover\n * when nested inside of elements with transform properties. This will be removed once the popover API is available\n * for use.\n */\n @Prop({ mutable: true })\n popoverMode: 'legacy' = null;\n\n /**\n * Use with `context` to tell the outlet where it appears. It will be matched with the appropriately configured module for that context.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n resolvedType: string;\n\n /** The type of button used as the menu toggle. */\n @Prop({ reflect: true })\n type: 'icon' | 'fab' | 'custom' | 'primary' | 'secondary' | 'neutral' = 'icon';\n\n // #endregion\n // #region Component Lifecycle Events\n\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 // #endregion\n // #region Listeners\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 // #endregion\n // #region Watchers\n\n @Watch('additionalContext')\n additionalContextHandler() {\n this.orchestrateResolvedMenuItems();\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('context')\n contextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('contextValue')\n contextValueHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('name')\n nameHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('popDirection')\n popDirectionHandler() {\n handleRenamedProp(this, 'popDirection', 'popoverDirection');\n }\n\n @Watch('resolvedType')\n resolvedTypeHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n // #endregion\n // #region Local Methods\n\n get determineDropdownItemCount() {\n return this.hostElement.querySelectorAll(this.dropdownItemSelector).length;\n }\n\n get hasCustomButton() {\n return !!this.hostElement.querySelector('[slot=custom-dropdown-button]');\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 closeDropdown = () => {\n if (!this.open) return;\n this.open = false;\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 focusFirstItem = async () => {\n const firstItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:first-child`\n );\n if (!firstItem) return;\n await waitForNextPaint();\n firstItem.dispatchEvent(new FocusEvent('focus'));\n };\n\n focusLastItem = async () => {\n const lastItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:last-child`\n );\n if (!lastItem) return;\n await waitForNextPaint();\n lastItem.dispatchEvent(new FocusEvent('focus'));\n };\n\n focusToggle = () => {\n this.controlElement.focus();\n };\n\n navigateTo(featureName: string, moduleName?: string, queryParams?: IDict<string>) {\n return window.TectonElements?.navigateTo?.(featureName, moduleName, queryParams);\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 onDropdownMenuClick = async (event: MouseEvent | CustomEvent) => {\n const item = event.target as HTMLQ2DropdownItemElement;\n if (item.disabled || item.separator) return;\n this.closeDropdown();\n await waitForNextPaint();\n this.focusToggle();\n };\n\n onDropdownMenuKeydown = (event: KeyboardEvent) => {\n const item = event.target as HTMLQ2DropdownItemElement;\n switch (event.key) {\n case 'Escape':\n this.closeDropdown();\n this.focusToggle();\n break;\n\n case 'Tab':\n this.closeDropdown();\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.focusAdjacentItem(item, 'prev');\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.focusAdjacentItem(item, 'next');\n break;\n\n default:\n break;\n }\n };\n\n onToggleClick = () => {\n if (this.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n };\n\n onToggleKeydown = async (event: KeyboardEvent) => {\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n this.openDropdown();\n await waitForNextPaint();\n this.focusLastItem();\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.openDropdown();\n await waitForNextPaint();\n this.focusFirstItem();\n return;\n\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n break;\n\n case 'Tab':\n if (!this.open) break;\n this.closeDropdown();\n break;\n\n default:\n break;\n }\n };\n\n openDropdown = () => {\n if (this.open) return;\n this.open = true;\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 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 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.textContent = menuItemData.itemLabel;\n newDropdownItem.onclick = onClickFn;\n\n return newDropdownItem;\n });\n });\n }\n\n showOverpanel(overpanelPath: string, params: IDict<string>) {\n return window.TectonElements?.showOverpanel?.(overpanelPath, params, undefined, true);\n }\n\n // #endregion\n // #region Render Methods\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 mode={this.popoverMode || undefined}\n block={this.block}\n >\n <div\n onClick={this.onDropdownMenuClick}\n onKeyDown={this.onDropdownMenuKeydown}\n role=\"menu\"\n aria-label={loc(this.label) || undefined}\n >\n <slot />\n </div>\n </q2-popover>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["q2DropdownCss","Q2DropdownStyle0","Q2Dropdown","this","dropdownItemSelector","closeDropdown","open","focusFirstItem","async","firstItem","hostElement","querySelector","waitForNextPaint","dispatchEvent","FocusEvent","focusLastItem","lastItem","focusToggle","controlElement","focus","onClickElsewhere","event","target","localName","stopPropagation","popoverElement","onDropdownMenuClick","item","disabled","separator","onDropdownMenuKeydown","key","preventDefault","focusAdjacentItem","onToggleClick","openDropdown","onToggleKeydown","componentWillLoad","popDirectionHandler","alignmentHandler","ariaLabelHandler","componentDidLoad","orchestrateResolvedMenuItems","overrideFocus","delegateFocus","isEventFromElement","popoverStateHandler","detail","_a","scrollContainerTo","top","additionalContextHandler","handleRenamedProp","handleAriaLabel","contextHandler","contextValueHandler","nameHandler","resolvedTypeHandler","determineDropdownItemCount","querySelectorAll","length","hasCustomButton","toggleButtonProps","allowedIntents","allowedTypes","type","includes","icon","fab","custom","intent","active","ariaExpanded","className","activeItem","direction","dropdownItems","Array","from","activeIndex","indexOf","targetIndex","targetItem","Event","navigateTo","featureName","moduleName","queryParams","_b","window","TectonElements","call","name","context","removeResolvedElements","resolveMenuItemElements","then","data","forEach","element","appendChild","catch","err","resolvedElements","removeChild","resolveMenu","contextValue","resolvedType","additionalContext","datas","map","menuItemData","onClickFn","contextIdParamName","action","showOverpanel","newDropdownItem","document","createElement","setAttribute","itemLabel","classList","add","textContent","onclick","overpanelPath","params","undefined","render","btnProps","h","class","onChange","ref","el","onClick","onKeyDown","label","hideLabel","loc","ariaHasPopup","block","description","Fragment","minHeight","popoverMinHeight","popoverDirection","align","popoverAlignment","mode","popoverMode","role"],"sources":["src/components/q2-dropdown/q2-dropdown.scss?tag=q2-dropdown&encapsulation=shadow","src/components/q2-dropdown/q2-dropdown.tsx"],"sourcesContent":["@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n:host {\n display: inline-flex;\n}\n\n:host([block]) {\n display: block;\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 {\n handleAriaLabel,\n handleRenamedProp,\n isEventFromElement,\n loc,\n overrideFocus,\n waitForNextPaint,\n} from 'src/utils';\n\n@Component({ tag: 'q2-dropdown', shadow: true, styleUrl: 'q2-dropdown.scss' })\nexport class Q2Dropdown implements ComponentInterface {\n // #region Own Properties\n\n controlElement?: HTMLQ2BtnElement;\n dropdownItemSelector: string = 'q2-dropdown-item:not([disabled]):not([separator])';\n popoverElement?: HTMLQ2PopoverElement;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Public Property API\n\n @Prop({ reflect: true })\n additionalContext: string;\n\n /** @deprecated */\n @Prop({ reflect: true })\n alignment: 'left' | 'right';\n\n /** @deprecated */\n @Prop({ reflect: true, mutable: true })\n ariaLabel: string;\n\n /** If `true`, component expands to fill the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /**\n * Tells the outlet what the type of object being passed in as contextValue.\n * This will allow for the hierarchy resolution logic to work to determine if an option should or should not be shown.\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n context: string;\n\n /**\n * Passes important information to the outlet (e.g., pass an account id that your platform can use to look up what module to show for that account type).\n *\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n contextValue: string;\n\n /** Indicates the menu cannot be focused or interacted with. */\n @Prop({ reflect: true })\n disabled: boolean;\n\n /**\n * Hide's the field's `<label>` element from view.\n * @warning\n * Only use when a visible label is impractical.\n */\n @Prop({ reflect: true, mutable: true })\n hideLabel: boolean;\n\n /** The icon that will render within the toggle button. You may use any of the `q2-icon` types. */\n @Prop({ reflect: true })\n icon: string;\n\n /**\n * The text that appears within the button.\n * @warning\n * This property should not be used if the `type` is `icon`.\n * @localizable\n */\n @Prop({ reflect: true, mutable: true })\n label: string;\n\n /**\n * Identifies this menu as an outlet. Used in conjunction with context and, optionally, `contextValue`.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n name: string;\n\n /** Determine whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n /** @deprecated */\n @Prop({ reflect: true })\n popDirection: 'up' | 'down';\n\n /** Aligns the popover dropdown to the left or right side of the input field. */\n @Prop({ mutable: true })\n popoverAlignment: 'left' | 'right' = 'left'; // being used in dropdown.scss\n\n /**\n * Force the direction of the popover dropdown when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ mutable: true })\n popoverDirection: 'up' | 'down';\n\n /** @deprecated */\n @Prop()\n popoverMinHeight: number = 150;\n\n /**\n * Determines the display mode of the popover.\n *\n * Providing a value of `legacy` instructs the popover to use absolute positioning instead of fixed positioning.\n *\n * @info\n * This is a temporary solution to work around styling issues related to using fixed positioning for the popover\n * when nested inside of elements with transform properties. This will be removed once the popover API is available\n * for use.\n */\n @Prop({ mutable: true })\n popoverMode: 'legacy' = null;\n\n /**\n * Use with `context` to tell the outlet where it appears. It will be matched with the appropriately configured module for that context.\n * @info\n * Only applicable when using `<q2-dropdown>` for outlets.\n */\n @Prop({ reflect: true })\n resolvedType: string;\n\n /** The type of button used as the menu toggle. */\n @Prop({ reflect: true })\n type: 'icon' | 'fab' | 'custom' | 'primary' | 'secondary' | 'neutral' = 'icon';\n\n // #endregion\n // #region Component Lifecycle Events\n\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 // #endregion\n // #region Listeners\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 // #endregion\n // #region Watchers\n\n @Watch('additionalContext')\n additionalContextHandler() {\n this.orchestrateResolvedMenuItems();\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('context')\n contextHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('contextValue')\n contextValueHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('name')\n nameHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n @Watch('popDirection')\n popDirectionHandler() {\n handleRenamedProp(this, 'popDirection', 'popoverDirection');\n }\n\n @Watch('resolvedType')\n resolvedTypeHandler() {\n this.orchestrateResolvedMenuItems();\n }\n\n // #endregion\n // #region Local Methods\n\n get determineDropdownItemCount() {\n return this.hostElement.querySelectorAll(this.dropdownItemSelector).length;\n }\n\n get hasCustomButton() {\n return !!this.hostElement.querySelector('[slot=custom-dropdown-button]');\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 closeDropdown = () => {\n if (!this.open) return;\n this.open = false;\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 focusFirstItem = async () => {\n const firstItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:first-child`\n );\n if (!firstItem) return;\n await waitForNextPaint();\n firstItem.dispatchEvent(new FocusEvent('focus'));\n };\n\n focusLastItem = async () => {\n const lastItem = this.hostElement.querySelector<HTMLQ2DropdownItemElement>(\n `${this.dropdownItemSelector}:last-child`\n );\n if (!lastItem) return;\n await waitForNextPaint();\n lastItem.dispatchEvent(new FocusEvent('focus'));\n };\n\n focusToggle = () => {\n this.controlElement.focus();\n };\n\n navigateTo(featureName: string, moduleName?: string, queryParams?: IDict<string>) {\n return window.TectonElements?.navigateTo?.(featureName, moduleName, queryParams);\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 onDropdownMenuClick = async (event: MouseEvent | CustomEvent) => {\n const item = event.target as HTMLQ2DropdownItemElement;\n if (item.disabled || item.separator) return;\n this.closeDropdown();\n await waitForNextPaint();\n this.focusToggle();\n };\n\n onDropdownMenuKeydown = (event: KeyboardEvent) => {\n const item = event.target as HTMLQ2DropdownItemElement;\n switch (event.key) {\n case 'Escape':\n this.closeDropdown();\n this.focusToggle();\n break;\n\n case 'Tab':\n this.closeDropdown();\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.focusAdjacentItem(item, 'prev');\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.focusAdjacentItem(item, 'next');\n break;\n\n default:\n break;\n }\n };\n\n onToggleClick = () => {\n this.popoverElement.controlElement = this.controlElement;\n if (this.open) {\n this.closeDropdown();\n } else {\n this.openDropdown();\n }\n };\n\n onToggleKeydown = async (event: KeyboardEvent) => {\n this.popoverElement.controlElement = this.controlElement;\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n this.openDropdown();\n await waitForNextPaint();\n this.focusLastItem();\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.openDropdown();\n await waitForNextPaint();\n this.focusFirstItem();\n return;\n\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n break;\n\n case 'Tab':\n if (!this.open) break;\n this.closeDropdown();\n break;\n\n default:\n break;\n }\n };\n\n openDropdown = () => {\n if (this.open) return;\n this.open = true;\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 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 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.textContent = menuItemData.itemLabel;\n newDropdownItem.onclick = onClickFn;\n\n return newDropdownItem;\n });\n });\n }\n\n showOverpanel(overpanelPath: string, params: IDict<string>) {\n return window.TectonElements?.showOverpanel?.(overpanelPath, params, undefined, true);\n }\n\n // #endregion\n // #region Render Methods\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 mode={this.popoverMode || undefined}\n block={this.block}\n >\n <div\n onClick={this.onDropdownMenuClick}\n onKeyDown={this.onDropdownMenuKeydown}\n role=\"menu\"\n aria-label={loc(this.label) || undefined}\n >\n <slot />\n </div>\n </q2-popover>\n </click-elsewhere>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as e,h as n,g as o}from"./p-a5f18e27.js";import{l as a,o as i}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as e,h as n,g as o}from"./p-a5f18e27.js";import{l as a,o as i}from"./p-ff8ed604.js";const r="*{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 #0066cc)}: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}.month-container{--comp-month-primary-background:var(--tct-btn-primary-background, var(--tct-btn-primary-bg, var(--t-btn-primary-bg, #2e2e2e)));--comp-month-primary-font-color:var(--tct-btn-primary-font-color, var(--t-btn-primary-font-color, var(--tct-white, var(--app-white, #ffffff))));--comp-month-primary-background:var(--tct-btn-secondary-background, var(--tct-btn-secondary-bg, var(--t-button-default-bg, #cccccc)));--comp-month-secondary-font-color:var(--tct-btn-secondary-font-color, var(--t-btn-secondary-font-color, var(--t-button-default-font-color, #2e2e2e)))}.month-container .navigation{display:flex;justify-content:space-between;flex-direction:row}.month-container .navigation .year-btn{padding:0 1rem;display:flex;align-items:center}.month-container .navigation .year-btn .year{margin-right:0.2rem}.month-container .navigation .year-btn .year-icon{--t-icon-stroke-width:2px;width:16px;height:16px;transition:all 0.3s ease-in-out}.month-container .navigation .year-btn .year-icon.on{transform:rotate(-180deg)}.month-container .navigation .month-controller{display:flex;align-items:center}.month-container .month-list{display:grid;grid-template-columns:auto auto auto}.month-container .month-list .month{display:flex;justify-content:center;align-items:center;padding:0.5rem 0}.month-container .month-list .month .month-button{border-radius:50%;aspect-ratio:1;width:50px;display:flex;justify-content:center;align-items:center}.month-container .month-list .month .month-button:hover{background:var(--comp-month-primary-background);color:var(--comp-month-secondary-font-color);cursor:pointer}.month-container .month-list .month .month-button:active,.month-container .month-list .month .month-button.active{background:var(--comp-month-primary-background);color:var(--comp-month-primary-font-color)}.month-container .today-label{padding:0.5rem 0;color:var(--tct-calendar-day-selected-outline-color, var(--t-calendar-day-selected-outline-color, var(--tct-stoplight-info, var(--const-stoplight-info, #0079c1))))}";const c=r;const s=class{constructor(n){t(this,n);this.toggleChange=e(this,"toggleChange",7);this.viewChange=e(this,"viewChange",7);this.monthGrid=[[0,1,2],[3,4,5],[6,7,8],[9,10,11]];this.months=["January","February","March","April","May","June","July","August","September","October","November","December"].map((t=>({label:a(`tecton.element.calendar.months.${t}`),abbr:a(`tecton.element.calendar.months.abbr.${t}`)})));this.scheduledAfterRender=[];this.focusMonth=t=>{const e=this.hostElement.shadowRoot.querySelector(`.month-button[data-index="${t}"]`);if(e){this.focusedIndex=t;e.focus()}};this.moveMonth=(t,e,n)=>{const o=t.length;const a=t[0].length;const i=Math.floor(e/a);const r=e%a;const c=[i,r];if(n.key==="ArrowUp"){n.stopPropagation();n.preventDefault();return t[Math.max(0,c[0]-1)][c[1]]}else if(n.key==="ArrowDown"){n.stopPropagation();n.preventDefault();return t[Math.min(o-1,c[0]+1)][c[1]]}else if(n.key==="ArrowLeft"){n.stopPropagation();n.preventDefault();return Math.max(0,e-1)}else if(n.key==="ArrowRight"){n.stopPropagation();n.preventDefault();return Math.min(this.months.length-1,e+1)}else{return t[c[0]][c[1]]}};this.onMonthKeydown=t=>{if(t.key==="Escape"||t.key==="Esc"){this.toggleChange.emit({close:true});return}const e=t.target.dataset.index;if(!e)return;if(t.key==="Enter"||t.key===" "){t.preventDefault();t.stopPropagation();this.selectMonth(Number(e))}else{const n=this.moveMonth(this.monthGrid,Number(e),t);this.focusMonth(n)}};this.onMonthSelection=t=>{var e,n;const o=t.target.closest(".month-button");if((e=o===null||o===void 0?void 0:o.dataset)===null||e===void 0?void 0:e.index){this.selectMonth(Number((n=o===null||o===void 0?void 0:o.dataset)===null||n===void 0?void 0:n.index))}};this.selectMonth=t=>{var e,n,o;this.selectedIndex=t;this.focusedIndex=t;const a=this.hostElement.shadowRoot.querySelector(`.month-button[data-index="${t}"]`);(e=this.hostElement.shadowRoot.querySelectorAll(`.month-button`))===null||e===void 0?void 0:e.forEach((t=>t.classList.remove("active")));a===null||a===void 0?void 0:a.classList.add("active");a===null||a===void 0?void 0:a.focus();const i={view:"day",monthIndex:t,selectedYear:this.year};(o=(n=this.hostElement).onchange)===null||o===void 0?void 0:o.call(n,new CustomEvent("click",{bubbles:true,detail:i}));this.viewChange.emit(i)};this.selectYear=t=>{this.year=Math.max(1970,t)};this.focusedIndex=0;this.selectedIndex=0;this.showYearLayer=false;this.disabledMonths=undefined;this.today=undefined;this.year=Number((new Date).toLocaleString("en-US",{year:"numeric"}))}componentDidLoad(){i(this.hostElement)}componentDidRender(){var t;(t=this.scheduledAfterRender)===null||t===void 0?void 0:t.forEach((t=>t()));this.scheduledAfterRender=[]}render(){return n("div",{key:"41559ba9825b5cc791d358015ca12289575c7c06",class:"month-container",onKeyDown:this.onMonthKeydown},n("div",{key:"0434aeee3d06b2e37dd4fb2c8817ddd813237aa3",class:"navigation"},n("q2-btn",{key:"068eb32831fa5e6eb1a5906349c4486e106171d9",class:"year-btn",onClick:()=>this.viewChange.emit({view:"year",selectedYear:this.year})},n("span",{key:"0e69eeb8776e6f65032b8cc802ef3dd37e5e64ab",class:"year"},this.year),n("q2-icon",{key:"c154f33104bc543a8f9f7046f41a04b0964f0ffa",class:"year-icon off",type:"chevron-down"})),n("div",{key:"5ed6100df7e3cd3fa7e7d5d6cac4adbf6ebf9749",class:"month-controller"},n("div",{key:"1b98c4cab4d4dd40d9cbfbbb4a7608b17ec2a81d",class:"cal-year-prev-next"},n("q2-btn",{key:"5251c99a73d9d44459f035eb26aada0e34cbc0b2",label:a("tecton.element.calendar.previousYear"),"hide-label":true,class:"cal-nav-btn prev-year","test-id":"previousYearButton",onClick:()=>this.selectYear(this.year-1)},n("q2-icon",{key:"df6ee5342abcc500bbaaf7075ee34abc622b7986",type:"arrow-left"})),n("q2-btn",{key:"f894d9a2384e576d12218a5472ee53255ffe2379",label:a("tecton.element.calendar.nextYear"),"hide-label":true,class:"cal-nav-btn next-year","test-id":"nextYearButton",onClick:()=>this.selectYear(this.year+1)},n("q2-icon",{key:"f34197160be8eb32239d38677b28556feba10b77",type:"arrow-right"}))))),n("div",{key:"9e4a87b89d5b9c4e1c8ea0dec6dbb538679eae42",class:"month-list",onClick:this.onMonthSelection},this.months.map(((t,e)=>n("div",{class:"month"},n("span",{role:"button",class:"month-button","data-index":e,"aria-label":t.label,tabindex:e===this.focusedIndex?0:-1},t.abbr))))),this.today&&n("div",{key:"755fa5c2438b60c87b3e863e6577d8c75358af08",class:"today-label"},a("tecton.element.calendar.today"),": ",this.today))}get hostElement(){return o(this)}};s.style=c;export{s as q2_month_picker};
|
|
2
|
+
//# sourceMappingURL=p-0c77ab7d.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as t,h as i,F as s,H as n,g as a}from"./p-a5f18e27.js";import{c as d,n as o,l as h}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as e,c as t,h as i,F as s,H as n,g as a}from"./p-a5f18e27.js";import{c as d,n as o,l as h}from"./p-ff8ed604.js";const c="*{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 #0066cc)}: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;position:relative}";const r=c;const l=class{constructor(i){e(this,i);this.activeChange=t(this,"activeChange",7);this.contentChange=t(this,"contentChange",7);this.statusChange=t(this,"statusChange",7);this.isChildActive=false;this.description=undefined;this.isActive=undefined;this.label=undefined;this.showWithChildren=undefined;this.status=undefined}connectedCallback(){if(!this.hostElement.id)this.hostElement.id=`step-${d()}`}disconnectedCallback(){this.mutationObserver.disconnect();this.mutationObserver=null}componentWillLoad(){this.checkForActiveChildren()}componentDidLoad(){const e=new MutationObserver((()=>{this.contentChange.emit()}));e.observe(this.hostElement,{childList:true,subtree:true,characterData:true});this.mutationObserver=e}isActiveChanged(e){this.activeChange.emit({status:this.status||"",isActive:e,id:this.hostElement.id,host:this.hostElement})}labelOrDescriptionChanged(){this.contentChange.emit()}checkForActiveChildren(){if(!this.showWithChildren)return;o((()=>{setTimeout((()=>{this.isChildActive=!!this.hostElement.querySelector("[slot='children'] > q2-stepper-pane[is-active]")}))}))}statusChanged(e){this.statusChange.emit({status:e,isActive:!!this.isActive,id:this.hostElement.id,host:this.hostElement})}render(){const{label:e,isActive:t}=this;return i(n,{key:"0ec2c26beb86d72f8fd14313a66dda90b9ada62f",role:"listitem"},i(s,{key:"27b0a776295214454762434a7f496d6efaa31b7d"},i("div",{key:"a8944c3026348cb577e17ef47b5f3fa4b3da2d4f","aria-label":e&&h(e),tabindex:"0",hidden:!t&&!(this.isChildActive&&this.showWithChildren)},i("slot",{key:"26d8de5d1f5a6325b3f1ed05c3decee9e86babbf"})),i("div",{key:"41c4e9029a3737b2d4bd3006cb0a40db817ea149",hidden:true},i("slot",{key:"8d6822a8e6d18df722f2cdf107f008e9b164fba0",name:"label",onSlotchange:()=>this.contentChange.emit()}),i("slot",{key:"349a961e0f1a60c5263cd1a91133dadb09fb9b53",name:"description",onSlotchange:()=>this.contentChange.emit()})),i("slot",{key:"c9dc4b6d304801fd212a73edbe3df6ac8fc5a995",name:"children"})))}get hostElement(){return a(this)}static get watchers(){return{isActive:["isActiveChanged"],label:["labelOrDescriptionChanged"],description:["labelOrDescriptionChanged"],showWithChildren:["checkForActiveChildren"],status:["statusChanged"]}}};l.style=r;export{l as q2_stepper_pane};
|
|
2
|
+
//# sourceMappingURL=p-0da2dfde.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,h as e,g as r}from"./p-a5f18e27.js";import{c as o,l as a}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,h as e,g as r}from"./p-a5f18e27.js";import{c as o,l as a}from"./p-ff8ed604.js";const i="*{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 #0066cc)}: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}.q2-optgroup-header{--comp-header-padding:var(--tct-scale-1, var(--app-scale-1x, 5px)) var(--tct-scale-2, var(--app-scale-2x, 10px));background:var(--tct-optgroup-header-background, var(--tct-optgroup-header-bg, var(--t-optgroup-header-bg, var(--tct-gray-13, var(--t-gray-13, var(--tct-gray-l2, var(--app-gray-l2, #e6e6e6)))))));color:var(--tct-optgroup-header-color, inherit);padding:var(--tct-optgroup-header-padding, var(--t-optgroup-header-padding, var(--comp-header-padding)));font-weight:var(--tct-optgroup-header-font-weight, var(--t-optgroup-header-font-weight, 600));text-transform:var(--tct-optgroup-header-text-transform, var(--t-optgroup-header-text-transform, uppercase));position:sticky;top:calc(var(--comp-popover-top-container-height, 0px) + var(--tct-optgroup-top, var(--t-optgroup-top, 0px)));z-index:5}";const s=i;const p=class{constructor(e){t(this,e);this.guid=o();this.setHidden=()=>{this.hidden=this.options.every((t=>t.hidden||t._multiSelectHidden))};this.hidden=false;this.disabled=false;this.label=undefined}disconnectedCallback(){this.mutationObserver.disconnect();this.mutationObserver=null}componentWillLoad(){const t=new MutationObserver(this.setHidden);t.observe(this.hostElement,{childList:true,attributes:true,subtree:true});this.mutationObserver=t;this.setHidden();this.disabledWatcher(this.disabled)}disabledWatcher(t){this.options.forEach((e=>{e.disabledGroup=!!t}))}get headerId(){return`q2-optgroup-header-${this.guid}`}get options(){return Array.from(this.hostElement.querySelectorAll("q2-option"))}render(){return e("div",{key:"bf31cc7803e61f63f9e2e5438f53e4444cbcd052",class:"q2-optgroup-container",hidden:this.hidden,"aria-labelledby":this.headerId,role:"group"},e("div",{key:"37b84e178bb47cc9ef7be0aa9027266366080b4c",class:"q2-optgroup-header",id:this.headerId},this.label&&a(this.label)||""),e("div",{key:"99215526f4608bdff86fa426afd2080a1fa83897",class:"q2-optgroup-options"},e("slot",{key:"a5d0c39acbd794d023004e272877bbc4768356f7"})))}get hostElement(){return r(this)}static get watchers(){return{disabled:["disabledWatcher"]}}};p.style=s;export{p as q2_optgroup};
|
|
2
|
+
//# sourceMappingURL=p-1148b992.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as e,h as a,F as r,g as i}from"./p-a5f18e27.js";import{o as c,i as s,c as n,l as o}from"./p-19784a09.js";const l='*{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 #0066cc)}: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:grid;grid-template-columns:var(--tct-stepper-vertical-list-width, var(--tct-advanced-stepper-list-width, var(--t-advanced-stepper-list-width, 180px))) 1fr;gap:var(--tct-stepper-vertical-layout-gap, var(--tct-advanced-stepper-layout-gap, var(--t-advanced-stepper-layout-gap, 120px)))}.step-label,.step-child-label{color:var(--comp-btn-label-color);font-size:var(--comp-btn-label-font-size);font-weight:var(--comp-label-font-weight, 400);min-height:1.5em}.step-label{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--tct-stepper-label-line-count, var(--tct-advanced-stepper-label-line-count, var(--t-advanced-stepper-label-line-count, 2)));-webkit-box-orient:vertical}[aria-selected=true] .step-label{font-weight:var(--tct-stepper-vertical-btn-active-font-weight, var(--tct-advanced-stepper-btn-active-font-weight, var(--t-advanced-stepper-btn-active-font-weight, 600)))}[aria-describedby] .step-label{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--tct-stepper-label-line-count, var(--tct-advanced-stepper-label-line-count, var(--t-advanced-stepper-label-line-count, 1)));-webkit-box-orient:vertical}.step-child-label{grid-area:content;color:var(--comp-btn-label-color)}.step-description{color:var(--tct-stepper-vertical-description-color, var(--tct-advanced-stepper-description-color, var(--t-advanced-stepper-description-color, var(--t-textA, rgba(77, 77, 77, 0.77)))));font-size:var(--tct-stepper-vertical-description-font-size, var(--tct-advanced-stepper-description-font-size, var(--t-advanced-stepper-description-font-size, var(--app-font-size-small, 12px))));padding-bottom:0.2em}ul{--comp-top-btn-icon-size:var(--tct-stepper-vertical-btn-icon-size, var(--tct-advanced-stepper-btn-icon-size, var(--t-advanced-stepper-btn-icon-size, 24px)));--comp-btn-icon-size:var(--comp-top-btn-icon-size);--comp-btn-content-gap:var(--tct-stepper-vertical-btn-gap, var(--tct-advanced-stepper-btn-gap, var(--t-advanced-stepper-btn-gap, var(--app-scale-3x, 15px))));--comp-btn-label-font-size:var(--tct-stepper-vertical-btn-label-font-size, var(--tct-advanced-stepper-btn-label-font-size, var(--t-advanced-stepper-btn-label-font-size, 16px)));--comp-btn-label-color:var(--tct-stepper-vertical-label-color, var(--tct-advanced-stepper-label-color, var(--t-advanced-stepper-label-color, var(--t-text, #4d4d4d))));--comp-tween:var(--tct-stepper-vertical-tween, var(--tct-advanced-stepper-tween, var(--t-advanced-stepper-tween, var(--app-tween-1, 0.2s ease))));--comp-bullet-bg:var(--tct-stepper-vertical-bullet-active-background, var(--tct-advanced-stepper-bullet-active-bg, var(--t-advanced-stepper-bullet-active-bg, var(--t-primary, #0079c1))));list-style:none;margin:0;padding:0}ul ul{--comp-btn-icon-size:var(--tct-stepper-vertical-child-btn-icon-size, var(--tct-advanced-stepper-child-btn-icon-size, var(--t-advanced-stepper-child-btn-icon-size, 12px)));--comp-btn-content-gap:var(--tct-stepper-vertical-btn-gap, var(--tct-advanced-stepper-btn-gap, var(--t-advanced-stepper-btn-gap, var(--app-scale-2x, 10px))));--comp-btn-label-font-size:var(--tct-stepper-vertical-child-btn-label-font-size, var(--tct-advanced-stepper-child-btn-label-font-size, var(--t-advanced-stepper-child-btn-label-font-size, var(--app-font-size-small, 12px))))}ul ul[aria-hidden=true]{display:none}.step-btn,.step-child-btn{display:grid;grid-template-columns:var(--comp-btn-icon-size) 1fr;gap:var(--comp-btn-content-gap);text-align:var(--tct-stepper-vertical-btn-text-align, var(--tct-advanced-stepper-btn-text-align, var(--t-advanced-stepper-btn-text-align, start)));grid-template-areas:"icon content";align-items:center;width:100%;position:relative;background:transparent;border:0;cursor:pointer;padding:0;transition-property:box-shadow;outline:none}.step-btn[aria-disabled],.step-child-btn[aria-disabled]{cursor:default;--comp-label-font-weight:300;--comp-btn-label-color:var(--tct-stepper-vertical-btn-locked-color, var(--tct-advanced-stepper-btn-locked-color, var(--t-advanced-stepper-btn-locked-color, var(--t-textA, rgba(77, 77, 77, 0.77)))))}.step-btn[aria-selected=true],.step-child-btn[aria-selected=true]{--comp-label-font-weight:600}.step-btn{min-height:var(--tct-stepper-vertical-btn-height, var(--tct-advanced-stepper-btn-height, var(--t-advanced-stepper-btn-height, 40px)));font-size:var(--tct-stepper-vertical-btn-font-size, var(--tct-advanced-stepper-btn-font-size, var(--t-advanced-stepper-btn-font-size, 16px)));--comp-active-color:var(--comp-bullet-bg)}.step-btn.status-complete{--comp-active-color:var(--const-stoplight-success, #0e8a00);--tct-stoplight-success:var(--comp-active-color)}.step-btn.status-error{--comp-active-color:var(--const-stoplight-alert, #d20a0a);--tct-stoplight-warning:var(--comp-active-color)}.step-btn.status-locked{cursor:not-allowed}.step-child-btn{--comp-active-color:var(--comp-bullet-bg);min-height:var(--tct-stepper-vertical-child-btn-height, var(--tct-advanced-stepper-child-btn-height, var(--t-advanced-stepper-child-btn-height, 30px)));padding-left:var(--tct-stepper-vertical-child-btn-left-padding, var(--tct-advanced-stepper-child-btn-left-padding, var(--t-advanced-stepper-child-btn-left-padding, var(--app-scale-2x, 10px))));font-size:var(--tct-stepper-vertical-child-btn-font-size, var(--tct-advanced-stepper-child-btn-font-size, var(--t-advanced-stepper-child-btn-font-size, 12px)));border-left-width:var(--tct-stepper-vertical-child-btn-left-border-width, var(--tct-advanced-stepper-child-btn-left-border-width, var(--t-advanced-stepper-child-btn-left-border-width, 3px)));border-left-style:var(--tct-stepper-vertical-child-btn-left-border-style, var(--tct-advanced-stepper-child-btn-left-border-style, var(--t-advanced-stepper-child-btn-left-border-style, solid)));border-left-color:transparent}.step-child-btn[aria-selected=true]{--comp-btn-label-color:var(--comp-active-color);border-left-color:var(--comp-active-color)}.step-child-btn.status-error{--comp-btn-label-color:var(--const-stoplight-alert, #d20a0a);--comp-active-color:var(--const-stoplight-alert, #d20a0a)}.step-child-btn.status-locked{cursor:not-allowed}.step-content{grid-area:content}.step-icon,.step-bubble,.step-child-icon{grid-area:icon;width:var(--comp-btn-icon-size);height:var(--comp-btn-icon-size);line-height:0}.step-icon q2-icon,.step-bubble q2-icon,.step-child-icon q2-icon{width:var(--comp-btn-icon-size);height:var(--comp-btn-icon-size);--tct-stoplight-warning:var(--comp-active-color)}.step-icon,.step-bubble{background:var(--comp-active-color);color:var(--t-base, #ffffff);border-radius:50%}.status-complete .step-icon,.status-error .step-icon,.status-complete .step-bubble,.status-error .step-bubble{background:var(--comp-active-color)}.step-icon q2-icon:before,.step-bubble q2-icon:before{content:"";display:block;background:var(--t-base, #ffffff);position:absolute;width:80%;height:80%;left:11%;top:11%;border-radius:50%}.status-locked .step-icon,.status-locked .step-bubble{background:var(--t-gray-12, #d9d9d9);color:var(--t-text, #4d4d4d)}[aria-selected=true] .step-icon,[aria-selected=true] .step-bubble{box-shadow:0 0 0 2px var(--t-base, #ffffff), 0 0 0 4px var(--comp-active-color)}.step-bubble{display:flex;justify-content:center;align-items:center;line-height:0}.step-child-icon q2-icon{--tct-icon-stroke-primary:var(--comp-active-color);--tct-icon-stroke-secondary:var(--comp-active-color)}[aria-selected=true] .step-child-icon q2-icon{fill:var(--comp-active-color);--tct-icon-stroke-secondary:var(--t-base, #ffffff)}.spacer{height:0;border-left-width:var(--tct-stepper-vertical-child-border-width, var(--tct-advanced-stepaer-child-border-width, var(--t-advanced-stepaer-child-border-width, 1px)));border-left-style:var(--tct-stepper-vertical-child-border-style, var(--tct-advanced-stepper-child-border-style, var(--t-advanced-stepper-child-border-style, solid)));border-left-color:var(--tct-stepper-vertical-child-border-color, var(--tct-advanced-stepper-child-border-color, var(--t-advanced-stepper-child-border-color, var(--t-gray-12, #d9d9d9))));overflow:hidden;margin-left:calc(var(--comp-top-btn-icon-size) / 2);transition:height var(--comp-tween)}.spacer.has-sibling{height:var(--tct-stepper-vertical-spacer-height, var(--tct-advanced-stepper-spacer-height, var(--t-advanced-stepper-spacer-height, var(--app-scale-6x, 30px))))}.spacer ul{opacity:0;transition:opacity var(--comp-tween)}.spacer.is-opening ul,.spacer.is-open ul{display:block;opacity:1 !important}.spacer.is-open{overflow:visible}';const p=l;const d=class{constructor(a){t(this,a);this.change=e(this,"change",7);this.scheduledAfterRender=[];this.buildPaneList=()=>{const{allRootPanes:t}=this;if(!t.length)return;this.structuredPanes=Array.from(t).reduce(((t,e)=>{var a,r;const i=Array.from((r=(a=e.querySelector("[slot=children]"))===null||a===void 0?void 0:a.children)!==null&&r!==void 0?r:[]).filter((({tagName:t})=>t==="Q2-STEPPER-PANE")).map(this.extractDetails);t.push(Object.assign(Object.assign({},this.extractDetails(e)),{children:i}));return t}),[])};this.determinePaneChanges=t=>{t.forEach((t=>{var e,a;if(t.type!=="childList")return;if(!t.addedNodes.length&&!t.removedNodes.length)return;if(((e=t.addedNodes[0])===null||e===void 0?void 0:e.nodeType)!==Node.ELEMENT_NODE&&((a=t.removedNodes[0])===null||a===void 0?void 0:a.nodeType)!==Node.ELEMENT_NODE)return;this.buildPaneList()}))};this.onStepClick=(t,e)=>{t.stopPropagation();const{currentStepId:a}=this;if(e===a)return;const r=this.allPanes.find((t=>t.id===e));this.change.emit({selectedStep:r,selectedStepId:e,currentStepId:a})};this.onStepKeyDown=(t,e)=>{const{key:a}=t;let r;switch(a){case"ArrowUp":case"ArrowLeft":t.preventDefault();r=this.getStepId(e,"prev");break;case"ArrowDown":case"ArrowRight":t.preventDefault();r=this.getStepId(e,"next");break;case"Home":t.preventDefault();r=this.getStepId(e,"first");break;case"End":t.preventDefault();r=this.getStepId(e,"last");break}if(!r)return;this.focusStepBtn(r,true)};this.structuredPanes=[];this.currentStepId=undefined}disconnectedCallback(){this.mutationObserver.disconnect();this.mutationObserver=null}componentWillLoad(){this.setDefaultPane();this.buildPaneList();const t=new MutationObserver(this.determinePaneChanges);const e={childList:true};t.observe(this.hostElement,e);this.allRootPanes.forEach((a=>{const r=a.querySelector("[slot=children]");if(r)t.observe(r,e)}));this.mutationObserver=t}componentDidLoad(){c(this.hostElement);setTimeout((()=>this.showStep(this.currentStepId)),0)}componentWillUpdate(){this.expandedStepChildrenList=null}componentDidRender(){this.scheduledAfterRender.forEach((t=>t()));this.scheduledAfterRender=[];this.openCurrentStepChildren()}defaultChangeHandler(t){const{hostElement:e}=this;if(t.target===e&&!e.getAttribute("onchange")&&!!t.detail){this.currentStepId=t.detail.selectedStepId}}delegateFocus(t){if(!s(t,this.hostElement))return;this.focusStepBtn(this.currentStepId,true)}statusChangeHandler(){this.buildPaneList()}currentStepChanged(t){this.showStep(t)}get allPanes(){return Array.from(this.hostElement.querySelectorAll("q2-stepper-pane"))}get allRootPanes(){return Array.from(this.hostElement.querySelectorAll(":scope > q2-stepper-pane"))}extractDetails(t){const{label:e,description:a,status:r}=t;if(!t.id)t.id=`step-${n()}`;return{id:t.id,label:e,description:a,status:r}}focusStepBtn(t,e){const a=this.hostElement.shadowRoot.querySelector(`button[id="${t}"]`);const r=document.activeElement===this.hostElement;if(!a)return;if(r||e){a.focus()}}getStepId(t,e){const a=Array.from(this.hostElement.shadowRoot.querySelectorAll('ul:not([aria-hidden="true"]) > li > button:not([aria-disabled="true"])'));const r=a.findIndex((e=>e.getAttribute("id")===t));let i;switch(e){case"prev":i=Math.max(r-1,0);break;case"next":i=Math.min(r+1,a.length-1);break;case"first":i=0;break;case"last":i=a.length-1;break}return a[i].getAttribute("id")}openCurrentStepChildren(){const{expandedStepChildrenList:t}=this;const e=this.hostElement.shadowRoot.querySelectorAll(".spacer");e.forEach((e=>{if(t&&e.contains(t)){e.style.height=`${t.clientHeight}px`;if(e.classList.contains("is-open"))return;e.classList.add("is-opening");e.addEventListener("transitionend",(()=>{e.classList.remove("is-opening");e.classList.add("is-open");this.resizeIframe()}),{once:true})}else{e.removeAttribute("style");e.classList.remove("is-open","is-opening")}}))}resizeIframe(){var t,e;return(e=(t=window===null||window===void 0?void 0:window.TectonElements)===null||t===void 0?void 0:t.resizeIframe)===null||e===void 0?void 0:e.call(t)}setDefaultPane(){if(this.currentStepId)return;const t=this.hostElement.querySelector("q2-stepper-pane");if(!t)return;if(!t.id)t.id=`step-${n()}`;this.currentStepId=t.id}showStep(t){this.scheduledAfterRender.push(this.resizeIframe);this.showStepPane(t);this.focusStepBtn(t)}showStepPane(t){this.allPanes.forEach((e=>{if(e.isActive||e.id===t){e.isActive=t===e.id}}))}renderChildStepBtn(t,e,r,i){const{currentStepId:c}=this;const{id:s,label:n,status:l}=t;const p=e+1;const d=n&&`label-${s}`;const b=s===c;const v=l==="locked";const h=!n&&o("tecton.element.advancedStepper.childNumber",[`${p}`,`${r}`,i]);let u;if(l==="error")u="warning-filled";const f=["step-child-btn"];if(l)f.push(`status-${l}`);return a("li",{role:"presentation"},a("button",{class:f.join(" "),type:"button","aria-labelledby":d,"aria-label":h,"aria-selected":`${b}`,id:s,"aria-disabled":v?"true":null,role:"tab",tabIndex:b?0:-1,onKeyDown:t=>!v&&this.onStepKeyDown(t,s),onClick:t=>!v&&this.onStepClick(t,s)},u&&a("div",{class:"step-child-icon"},a("q2-icon",{type:u})),n&&a("div",{class:"step-child-label",id:d},o(n))))}renderSpacer(t,e,r,i){const c=i&&!!t.children.length||!i;const s=["spacer"];if(!i)s.push("has-sibling");return c&&a("div",{class:s.join(" ")},!!t.children.length&&a("ul",{ref:t=>r&&(this.expandedStepChildrenList=t),"aria-hidden":`${!r}`},t.children.map(((t,a,r)=>this.renderChildStepBtn(t,a,r.length,e)))))}renderStepBtn(t,e){const{currentStepId:r,structuredPanes:i}=this;const c=e===i.length-1;const{id:s,label:n,description:l,status:p}=t;const d=e+1;const b=s===r;const v=n&&`label-${s}`;const h=p==="locked";const u=n&&o(n);const f=n&&l&&`description-${s}`;const g=!n&&o("tecton.element.advancedStepper.number",[`${d}`,`${i.length}`]);let m;if(p==="complete")m="success-filled";else if(p==="error")m="warning-filled";const w=["step-btn"];if(p)w.push(`status-${p}`);const x=t.children.map((t=>t.id));const y=b||x.includes(r);return a("li",{role:"presentation"},a("button",{class:w.join(" "),type:"button","aria-labelledby":v,"aria-describedBy":f,"aria-label":g,"aria-selected":`${b}`,"aria-expanded":!!t.children.length?`${y}`:null,id:s,"aria-disabled":h?"true":null,role:"tab",tabIndex:b?0:-1,onKeyDown:t=>!h&&this.onStepKeyDown(t,s),onClick:t=>!h&&this.onStepClick(t,s)},m?a("div",{class:"step-icon"},a("q2-icon",{type:m})):a("div",{class:"step-bubble"},d),n&&a("div",null,a("div",{class:"step-label",id:v},u),l&&a("div",{class:"step-description",id:f},o(l)))),this.renderSpacer(t,u,y,c))}render(){return a(r,{key:"61018b8e0bbd0c29a92713fceff3cf52c4868814"},a("ul",{key:"76c2af93f5090a89346ef7274de449f4050077e7",role:"tablist"},this.structuredPanes.map(((t,e)=>this.renderStepBtn(t,e)))),a("div",{key:"05647cdb5d50e995d21ecc67f5bf9abccf5e276f",role:"list"},a("slot",{key:"8aa5ba986a07c2791d6e6b3069db222a17c1aaac"})))}get hostElement(){return i(this)}static get watchers(){return{currentStepId:["currentStepChanged"]}}};d.style=p;export{d as q2_stepper_vertical};
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as e,h as a,F as r,g as i}from"./p-a5f18e27.js";import{o as c,i as s,c as n,l as o}from"./p-ff8ed604.js";const l='*{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 #0066cc)}: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:grid;grid-template-columns:var(--tct-stepper-vertical-list-width, var(--tct-advanced-stepper-list-width, var(--t-advanced-stepper-list-width, 180px))) 1fr;gap:var(--tct-stepper-vertical-layout-gap, var(--tct-advanced-stepper-layout-gap, var(--t-advanced-stepper-layout-gap, 120px)))}.step-label,.step-child-label{color:var(--comp-btn-label-color);font-size:var(--comp-btn-label-font-size);font-weight:var(--comp-label-font-weight, 400);min-height:1.5em}.step-label{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--tct-stepper-label-line-count, var(--tct-advanced-stepper-label-line-count, var(--t-advanced-stepper-label-line-count, 2)));-webkit-box-orient:vertical}[aria-selected=true] .step-label{font-weight:var(--tct-stepper-vertical-btn-active-font-weight, var(--tct-advanced-stepper-btn-active-font-weight, var(--t-advanced-stepper-btn-active-font-weight, 600)))}[aria-describedby] .step-label{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:var(--tct-stepper-label-line-count, var(--tct-advanced-stepper-label-line-count, var(--t-advanced-stepper-label-line-count, 1)));-webkit-box-orient:vertical}.step-child-label{grid-area:content;color:var(--comp-btn-label-color)}.step-description{color:var(--tct-stepper-vertical-description-color, var(--tct-advanced-stepper-description-color, var(--t-advanced-stepper-description-color, var(--t-textA, rgba(77, 77, 77, 0.77)))));font-size:var(--tct-stepper-vertical-description-font-size, var(--tct-advanced-stepper-description-font-size, var(--t-advanced-stepper-description-font-size, var(--app-font-size-small, 12px))));padding-bottom:0.2em}ul{--comp-top-btn-icon-size:var(--tct-stepper-vertical-btn-icon-size, var(--tct-advanced-stepper-btn-icon-size, var(--t-advanced-stepper-btn-icon-size, 24px)));--comp-btn-icon-size:var(--comp-top-btn-icon-size);--comp-btn-content-gap:var(--tct-stepper-vertical-btn-gap, var(--tct-advanced-stepper-btn-gap, var(--t-advanced-stepper-btn-gap, var(--app-scale-3x, 15px))));--comp-btn-label-font-size:var(--tct-stepper-vertical-btn-label-font-size, var(--tct-advanced-stepper-btn-label-font-size, var(--t-advanced-stepper-btn-label-font-size, 16px)));--comp-btn-label-color:var(--tct-stepper-vertical-label-color, var(--tct-advanced-stepper-label-color, var(--t-advanced-stepper-label-color, var(--t-text, #4d4d4d))));--comp-tween:var(--tct-stepper-vertical-tween, var(--tct-advanced-stepper-tween, var(--t-advanced-stepper-tween, var(--app-tween-1, 0.2s ease))));--comp-bullet-bg:var(--tct-stepper-vertical-bullet-active-background, var(--tct-advanced-stepper-bullet-active-bg, var(--t-advanced-stepper-bullet-active-bg, var(--t-primary, #0079c1))));list-style:none;margin:0;padding:0}ul ul{--comp-btn-icon-size:var(--tct-stepper-vertical-child-btn-icon-size, var(--tct-advanced-stepper-child-btn-icon-size, var(--t-advanced-stepper-child-btn-icon-size, 12px)));--comp-btn-content-gap:var(--tct-stepper-vertical-btn-gap, var(--tct-advanced-stepper-btn-gap, var(--t-advanced-stepper-btn-gap, var(--app-scale-2x, 10px))));--comp-btn-label-font-size:var(--tct-stepper-vertical-child-btn-label-font-size, var(--tct-advanced-stepper-child-btn-label-font-size, var(--t-advanced-stepper-child-btn-label-font-size, var(--app-font-size-small, 12px))))}ul ul[aria-hidden=true]{display:none}.step-btn,.step-child-btn{display:grid;grid-template-columns:var(--comp-btn-icon-size) 1fr;gap:var(--comp-btn-content-gap);text-align:var(--tct-stepper-vertical-btn-text-align, var(--tct-advanced-stepper-btn-text-align, var(--t-advanced-stepper-btn-text-align, start)));grid-template-areas:"icon content";align-items:center;width:100%;position:relative;background:transparent;border:0;cursor:pointer;padding:0;transition-property:box-shadow;outline:none}.step-btn[aria-disabled],.step-child-btn[aria-disabled]{cursor:default;--comp-label-font-weight:300;--comp-btn-label-color:var(--tct-stepper-vertical-btn-locked-color, var(--tct-advanced-stepper-btn-locked-color, var(--t-advanced-stepper-btn-locked-color, var(--t-textA, rgba(77, 77, 77, 0.77)))))}.step-btn[aria-selected=true],.step-child-btn[aria-selected=true]{--comp-label-font-weight:600}.step-btn{min-height:var(--tct-stepper-vertical-btn-height, var(--tct-advanced-stepper-btn-height, var(--t-advanced-stepper-btn-height, 40px)));font-size:var(--tct-stepper-vertical-btn-font-size, var(--tct-advanced-stepper-btn-font-size, var(--t-advanced-stepper-btn-font-size, 16px)));--comp-active-color:var(--comp-bullet-bg)}.step-btn.status-complete{--comp-active-color:var(--const-stoplight-success, #0e8a00);--tct-stoplight-success:var(--comp-active-color)}.step-btn.status-error{--comp-active-color:var(--const-stoplight-alert, #d20a0a);--tct-stoplight-warning:var(--comp-active-color)}.step-btn.status-locked{cursor:not-allowed}.step-child-btn{--comp-active-color:var(--comp-bullet-bg);min-height:var(--tct-stepper-vertical-child-btn-height, var(--tct-advanced-stepper-child-btn-height, var(--t-advanced-stepper-child-btn-height, 30px)));padding-left:var(--tct-stepper-vertical-child-btn-left-padding, var(--tct-advanced-stepper-child-btn-left-padding, var(--t-advanced-stepper-child-btn-left-padding, var(--app-scale-2x, 10px))));font-size:var(--tct-stepper-vertical-child-btn-font-size, var(--tct-advanced-stepper-child-btn-font-size, var(--t-advanced-stepper-child-btn-font-size, 12px)));border-left-width:var(--tct-stepper-vertical-child-btn-left-border-width, var(--tct-advanced-stepper-child-btn-left-border-width, var(--t-advanced-stepper-child-btn-left-border-width, 3px)));border-left-style:var(--tct-stepper-vertical-child-btn-left-border-style, var(--tct-advanced-stepper-child-btn-left-border-style, var(--t-advanced-stepper-child-btn-left-border-style, solid)));border-left-color:transparent}.step-child-btn[aria-selected=true]{--comp-btn-label-color:var(--comp-active-color);border-left-color:var(--comp-active-color)}.step-child-btn.status-error{--comp-btn-label-color:var(--const-stoplight-alert, #d20a0a);--comp-active-color:var(--const-stoplight-alert, #d20a0a)}.step-child-btn.status-locked{cursor:not-allowed}.step-content{grid-area:content}.step-icon,.step-bubble,.step-child-icon{grid-area:icon;width:var(--comp-btn-icon-size);height:var(--comp-btn-icon-size);line-height:0}.step-icon q2-icon,.step-bubble q2-icon,.step-child-icon q2-icon{width:var(--comp-btn-icon-size);height:var(--comp-btn-icon-size);--tct-stoplight-warning:var(--comp-active-color)}.step-icon,.step-bubble{background:var(--comp-active-color);color:var(--t-base, #ffffff);border-radius:50%}.status-complete .step-icon,.status-error .step-icon,.status-complete .step-bubble,.status-error .step-bubble{background:var(--comp-active-color)}.step-icon q2-icon:before,.step-bubble q2-icon:before{content:"";display:block;background:var(--t-base, #ffffff);position:absolute;width:80%;height:80%;left:11%;top:11%;border-radius:50%}.status-locked .step-icon,.status-locked .step-bubble{background:var(--t-gray-12, #d9d9d9);color:var(--t-text, #4d4d4d)}[aria-selected=true] .step-icon,[aria-selected=true] .step-bubble{box-shadow:0 0 0 2px var(--t-base, #ffffff), 0 0 0 4px var(--comp-active-color)}.step-bubble{display:flex;justify-content:center;align-items:center;line-height:0}.step-child-icon q2-icon{--tct-icon-stroke-primary:var(--comp-active-color);--tct-icon-stroke-secondary:var(--comp-active-color)}[aria-selected=true] .step-child-icon q2-icon{fill:var(--comp-active-color);--tct-icon-stroke-secondary:var(--t-base, #ffffff)}.spacer{height:0;border-left-width:var(--tct-stepper-vertical-child-border-width, var(--tct-advanced-stepaer-child-border-width, var(--t-advanced-stepaer-child-border-width, 1px)));border-left-style:var(--tct-stepper-vertical-child-border-style, var(--tct-advanced-stepper-child-border-style, var(--t-advanced-stepper-child-border-style, solid)));border-left-color:var(--tct-stepper-vertical-child-border-color, var(--tct-advanced-stepper-child-border-color, var(--t-advanced-stepper-child-border-color, var(--t-gray-12, #d9d9d9))));overflow:hidden;margin-left:calc(var(--comp-top-btn-icon-size) / 2);transition:height var(--comp-tween)}.spacer.has-sibling{height:var(--tct-stepper-vertical-spacer-height, var(--tct-advanced-stepper-spacer-height, var(--t-advanced-stepper-spacer-height, var(--app-scale-6x, 30px))))}.spacer ul{opacity:0;transition:opacity var(--comp-tween)}.spacer.is-opening ul,.spacer.is-open ul{display:block;opacity:1 !important}.spacer.is-open{overflow:visible}';const p=l;const d=class{constructor(a){t(this,a);this.change=e(this,"change",7);this.scheduledAfterRender=[];this.buildPaneList=()=>{const{allRootPanes:t}=this;if(!t.length)return;this.structuredPanes=Array.from(t).reduce(((t,e)=>{var a,r;const i=Array.from((r=(a=e.querySelector("[slot=children]"))===null||a===void 0?void 0:a.children)!==null&&r!==void 0?r:[]).filter((({tagName:t})=>t==="Q2-STEPPER-PANE")).map(this.extractDetails);t.push(Object.assign(Object.assign({},this.extractDetails(e)),{children:i}));return t}),[])};this.determinePaneChanges=t=>{t.forEach((t=>{var e,a;if(t.type!=="childList")return;if(!t.addedNodes.length&&!t.removedNodes.length)return;if(((e=t.addedNodes[0])===null||e===void 0?void 0:e.nodeType)!==Node.ELEMENT_NODE&&((a=t.removedNodes[0])===null||a===void 0?void 0:a.nodeType)!==Node.ELEMENT_NODE)return;this.buildPaneList()}))};this.onStepClick=(t,e)=>{t.stopPropagation();const{currentStepId:a}=this;if(e===a)return;const r=this.allPanes.find((t=>t.id===e));this.change.emit({selectedStep:r,selectedStepId:e,currentStepId:a})};this.onStepKeyDown=(t,e)=>{const{key:a}=t;let r;switch(a){case"ArrowUp":case"ArrowLeft":t.preventDefault();r=this.getStepId(e,"prev");break;case"ArrowDown":case"ArrowRight":t.preventDefault();r=this.getStepId(e,"next");break;case"Home":t.preventDefault();r=this.getStepId(e,"first");break;case"End":t.preventDefault();r=this.getStepId(e,"last");break}if(!r)return;this.focusStepBtn(r,true)};this.structuredPanes=[];this.currentStepId=undefined}disconnectedCallback(){this.mutationObserver.disconnect();this.mutationObserver=null}componentWillLoad(){this.setDefaultPane();this.buildPaneList();const t=new MutationObserver(this.determinePaneChanges);const e={childList:true};t.observe(this.hostElement,e);this.allRootPanes.forEach((a=>{const r=a.querySelector("[slot=children]");if(r)t.observe(r,e)}));this.mutationObserver=t}componentDidLoad(){c(this.hostElement);setTimeout((()=>this.showStep(this.currentStepId)),0)}componentWillUpdate(){this.expandedStepChildrenList=null}componentDidRender(){this.scheduledAfterRender.forEach((t=>t()));this.scheduledAfterRender=[];this.openCurrentStepChildren()}defaultChangeHandler(t){const{hostElement:e}=this;if(t.target===e&&!e.getAttribute("onchange")&&!!t.detail){this.currentStepId=t.detail.selectedStepId}}delegateFocus(t){if(!s(t,this.hostElement))return;this.focusStepBtn(this.currentStepId,true)}statusChangeHandler(){this.buildPaneList()}currentStepChanged(t){this.showStep(t)}get allPanes(){return Array.from(this.hostElement.querySelectorAll("q2-stepper-pane"))}get allRootPanes(){return Array.from(this.hostElement.querySelectorAll(":scope > q2-stepper-pane"))}extractDetails(t){const{label:e,description:a,status:r}=t;if(!t.id)t.id=`step-${n()}`;return{id:t.id,label:e,description:a,status:r}}focusStepBtn(t,e){const a=this.hostElement.shadowRoot.querySelector(`button[id="${t}"]`);const r=document.activeElement===this.hostElement;if(!a)return;if(r||e){a.focus()}}getStepId(t,e){const a=Array.from(this.hostElement.shadowRoot.querySelectorAll('ul:not([aria-hidden="true"]) > li > button:not([aria-disabled="true"])'));const r=a.findIndex((e=>e.getAttribute("id")===t));let i;switch(e){case"prev":i=Math.max(r-1,0);break;case"next":i=Math.min(r+1,a.length-1);break;case"first":i=0;break;case"last":i=a.length-1;break}return a[i].getAttribute("id")}openCurrentStepChildren(){const{expandedStepChildrenList:t}=this;const e=this.hostElement.shadowRoot.querySelectorAll(".spacer");e.forEach((e=>{if(t&&e.contains(t)){e.style.height=`${t.clientHeight}px`;if(e.classList.contains("is-open"))return;e.classList.add("is-opening");e.addEventListener("transitionend",(()=>{e.classList.remove("is-opening");e.classList.add("is-open");this.resizeIframe()}),{once:true})}else{e.removeAttribute("style");e.classList.remove("is-open","is-opening")}}))}resizeIframe(){var t,e;return(e=(t=window===null||window===void 0?void 0:window.TectonElements)===null||t===void 0?void 0:t.resizeIframe)===null||e===void 0?void 0:e.call(t)}setDefaultPane(){if(this.currentStepId)return;const t=this.hostElement.querySelector("q2-stepper-pane");if(!t)return;if(!t.id)t.id=`step-${n()}`;this.currentStepId=t.id}showStep(t){this.scheduledAfterRender.push(this.resizeIframe);this.showStepPane(t);this.focusStepBtn(t)}showStepPane(t){this.allPanes.forEach((e=>{if(e.isActive||e.id===t){e.isActive=t===e.id}}))}renderChildStepBtn(t,e,r,i){const{currentStepId:c}=this;const{id:s,label:n,status:l}=t;const p=e+1;const d=n&&`label-${s}`;const b=s===c;const v=l==="locked";const h=!n&&o("tecton.element.advancedStepper.childNumber",[`${p}`,`${r}`,i]);let u;if(l==="error")u="warning-filled";const f=["step-child-btn"];if(l)f.push(`status-${l}`);return a("li",{role:"presentation"},a("button",{class:f.join(" "),type:"button","aria-labelledby":d,"aria-label":h,"aria-selected":`${b}`,id:s,"aria-disabled":v?"true":null,role:"tab",tabIndex:b?0:-1,onKeyDown:t=>!v&&this.onStepKeyDown(t,s),onClick:t=>!v&&this.onStepClick(t,s)},u&&a("div",{class:"step-child-icon"},a("q2-icon",{type:u})),n&&a("div",{class:"step-child-label",id:d},o(n))))}renderSpacer(t,e,r,i){const c=i&&!!t.children.length||!i;const s=["spacer"];if(!i)s.push("has-sibling");return c&&a("div",{class:s.join(" ")},!!t.children.length&&a("ul",{ref:t=>r&&(this.expandedStepChildrenList=t),"aria-hidden":`${!r}`},t.children.map(((t,a,r)=>this.renderChildStepBtn(t,a,r.length,e)))))}renderStepBtn(t,e){const{currentStepId:r,structuredPanes:i}=this;const c=e===i.length-1;const{id:s,label:n,description:l,status:p}=t;const d=e+1;const b=s===r;const v=n&&`label-${s}`;const h=p==="locked";const u=n&&o(n);const f=n&&l&&`description-${s}`;const g=!n&&o("tecton.element.advancedStepper.number",[`${d}`,`${i.length}`]);let m;if(p==="complete")m="success-filled";else if(p==="error")m="warning-filled";const w=["step-btn"];if(p)w.push(`status-${p}`);const x=t.children.map((t=>t.id));const y=b||x.includes(r);return a("li",{role:"presentation"},a("button",{class:w.join(" "),type:"button","aria-labelledby":v,"aria-describedBy":f,"aria-label":g,"aria-selected":`${b}`,"aria-expanded":!!t.children.length?`${y}`:null,id:s,"aria-disabled":h?"true":null,role:"tab",tabIndex:b?0:-1,onKeyDown:t=>!h&&this.onStepKeyDown(t,s),onClick:t=>!h&&this.onStepClick(t,s)},m?a("div",{class:"step-icon"},a("q2-icon",{type:m})):a("div",{class:"step-bubble"},d),n&&a("div",null,a("div",{class:"step-label",id:v},u),l&&a("div",{class:"step-description",id:f},o(l)))),this.renderSpacer(t,u,y,c))}render(){return a(r,{key:"61018b8e0bbd0c29a92713fceff3cf52c4868814"},a("ul",{key:"76c2af93f5090a89346ef7274de449f4050077e7",role:"tablist"},this.structuredPanes.map(((t,e)=>this.renderStepBtn(t,e)))),a("div",{key:"05647cdb5d50e995d21ecc67f5bf9abccf5e276f",role:"list"},a("slot",{key:"8aa5ba986a07c2791d6e6b3069db222a17c1aaac"})))}get hostElement(){return i(this)}static get watchers(){return{currentStepId:["currentStepChanged"]}}};d.style=p;export{d as q2_stepper_vertical};
|
|
2
|
+
//# sourceMappingURL=p-13630805.entry.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as e,h as i,g as n}from"./p-a5f18e27.js";import{n as a,o,i as s,l as r}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as e,h as i,g as n}from"./p-a5f18e27.js";import{n as a,o,i as s,l as r}from"./p-ff8ed604.js";const c="*{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 #0066cc)}: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:flex;width:100%;justify-content:flex-end}:host([alignment=center]){justify-content:center}:host([alignment=left]){justify-content:flex-start}:host([hidden]){display:none}.container{display:inline-flex;column-gap:var(--tct-pagination-column-gap, var(--t-pagination-column-gap, var(--app-scale-2x, 10px)));align-items:center;height:var(--tct-pagination-height, var(--t-pagination-height, 44px))}.btn-group{display:flex;gap:var(--tct-pagination-btn-gap, var(--t-pagination-btn-gap, 0))}.description,.controls{white-space:nowrap}.controls{display:grid;grid-template-columns:auto 50px auto;align-items:center;gap:var(--tct-pagination-controls-gap, var(--t-pagination-controls-gap, var(--app-scale-1x, 5px)))}.controls[hidden]{display:none}.input-wrapper{height:var(--tct-pagination-height, var(--t-pagination-height, 44px));display:flex;align-items:center}q2-btn{--tct-btn-border-radius:var(--tct-pagination-btn-border-radius, var(--t-pagination-btn-border-radius));--tct-btn-border:var(--tct-pagination-btn-border, var(--t-pagination-btn-border))}q2-icon{--tct-icon-size:var(--tct-pagination-icon-size, var(--t-pagination-icon-size, 12px));color:var(--tct-pagination-icon-color, var(--t-pagination-icon-color, var(--t-text, #4d4d4d)))}q2-input{--tct-input-margin-top:0;--tct-input-margin-bottom:0;--tct-input-height:var(--tct-pagination-input-height, var(--t-pagination-input-height, 30px));--tct-input-min-height:var(--tct-input-height);--tct-input-align:center}q2-select{--tct-select-input-min-height:var(--tct-pagination-select-height, var(--t-pagination-select-height, 30px));--tct-select-input-max-height:var(--tct-pagination-select-height, var(--t-pagination-select-height, 30px));width:var(--tct-pagination-perpage-width, var(--t-pagination-perpage-width, 100%));min-width:var(--tct-pagination-perpage-min-width, var(--t-pagination-perpage-min-width, 110px))}";const d=c;const h=class{constructor(i){t(this,i);this.change=e(this,"change",7);this.checkSize=()=>{const{hostElement:t,containerElement:e}=this;const i=this.containerWidth>t.clientWidth;this.isSmall=i;if(i)return;a((()=>{const t=this.containerWidth===e.clientWidth;if(t)return;this.containerWidth=e.clientWidth;this.checkSize()}))};this.handlePageChange=t=>{const{totalPages:e,inputField:i}=this;if(t<1){t=1}else if(t>e){t=e}if(i.value!==`${t}`)i.value=`${t}`;if(!this.hostElement.onchange){this.page=t}this.change.emit({page:t})};this.handlePerPageChange=t=>{this.perPage=t.detail.value*1};this.isSmall=undefined;this.alignment=undefined;this.autoSize=true;this.page=undefined;this.pages=undefined;this.pagesOnly=undefined;this.perPage=undefined;this.perPageIncrements=undefined;this.recordsOnly=undefined;this.recordType=undefined;this.total=undefined}disconnectedCallback(){this.removeResizeObserver()}componentWillLoad(){this.manageResizeObserver()}componentDidLoad(){this.containerWidth=this.containerElement.clientWidth;o(this.hostElement)}onHostElementFocus(t){var e;if(!s(t,this.hostElement))return;const{isFullViewHidden:i,containerElement:n,inputField:a}=this;if(i){(e=n.querySelector("q2-btn:not([disabled])"))===null||e===void 0?void 0:e.focus()}else{a.focus()}}manageResizeObserver(){if(this.autoSize&&!this.recordsOnly&&!this.pagesOnly){if(this.resizeObserver)return;this.resizeObserver=new ResizeObserver((()=>this.checkSize()));this.resizeObserver.observe(this.hostElement);window.addEventListener("resize",this.checkSize)}else{this.isSmall=false;this.removeResizeObserver()}}get currentRange(){const{perPageWithDefault:t,totalWithDefault:e,pageWithDefault:i}=this;const n=(i-1)*t+1;const a=Math.min(i*t,e);return`${n} - ${a}`}get isFullViewHidden(){return this.isSmall||this.recordsOnly||this.pagesOnly}get nextRange(){const{perPageWithDefault:t,totalWithDefault:e,pageWithDefault:i}=this;const n=i*t+1;const a=Math.min((i+1)*t,e);return`${n} - ${a}`}get pageWithDefault(){return this.page||1}get perPageWithDefault(){return this.perPage||10}get prevRange(){const{perPageWithDefault:t,pageWithDefault:e}=this;const i=Math.max(1,(e-2)*t+1);const n=(e-1)*t;return`${i} - ${n}`}get recordTypeWithDefault(){return this.recordType||r("tecton.element.pagination.defaultRecordType")}get totalPages(){const{pagesOnly:t,totalWithDefault:e,perPageWithDefault:i,pages:n}=this;if(t&&n&&!isNaN(parseInt(`${n}`)))return n;return Math.ceil(e/i)}get totalWithDefault(){return this.total||0}removeResizeObserver(){var t;if(this.resizeObserver){(t=this.resizeObserver)===null||t===void 0?void 0:t.unobserve(this.hostElement);this.resizeObserver=null;window.removeEventListener("resize",this.checkSize)}}renderPerPage(){var t;if(!((t=this.perPageIncrements)===null||t===void 0?void 0:t.length)){return""}this.perPageIncrements=this.perPageIncrements.filter((t=>!isNaN(t))).map((t=>t*1)).sort(((t,e)=>t-e));if(this.perPage===undefined)this.perPage=this.perPageIncrements[0];return i("q2-select",{onChange:this.handlePerPageChange,value:this.perPageIncrements.includes(this.perPage)?`${this.perPage}`:undefined},this.perPageIncrements.map((t=>i("q2-option",{value:`${t}`,display:`${r("tecton.element.pagination.view")} ${t}`},`${r("tecton.element.pagination.view")} ${t}`))))}render(){var t;const{pagesOnly:e,recordsOnly:n,isFullViewHidden:a,recordTypeWithDefault:o,totalPages:s,totalWithDefault:c,pageWithDefault:d,currentRange:h,nextRange:l,prevRange:p}=this;const g=d===1;const f=d===s;let u=r("tecton.element.pagination.goToNext");let b=r("tecton.element.pagination.goToPrevious");if(e){b=r("tecton.element.pagination.goToPages",{next:d-1,total:s});u=r("tecton.element.pagination.goToPages",{next:d+1,total:s})}else if(n){b=r("tecton.element.pagination.goToRecords",{range:p,recordType:o.toLowerCase(),total:c});u=r("tecton.element.pagination.goToRecords",{range:l,recordType:o.toLowerCase(),total:c})}return i("nav",{key:"1df57094cf0b0f5f623f5e7f70607a94f80b0179",class:"container",ref:t=>this.containerElement=t,"aria-label":r("tecton.element.pagination.title")},i("div",{key:"7850e209336bb4194a1ac821e89aa1effd9fcbd2",class:"description","test-id":"description"},e?r("tecton.element.pagination.pages",{current:d,total:s}):r("tecton.element.pagination.description",{range:h,recordType:o.toLowerCase(),total:c.toLocaleString()})),i("div",{key:"8372f893cc0afc69a9884ce27ce93a4c17cea4c4",class:"btn-group"},i("q2-btn",{key:"a5294bf62bb10443c2610f364f23a00879749a7a",label:r("tecton.element.pagination.goToFirstPage"),disabled:g,hidden:a,onClick:()=>this.handlePageChange(1),"test-id":"firstPageBtn","hide-label":true},i("q2-icon",{key:"37c168662f034c6ec374d5a7bbcb5ad8df70d6b1",type:"chevron-double-left"})),i("q2-btn",{key:"462d9242881f2602b148802b99dcf0bf533d99ec",label:b,disabled:g,onClick:()=>this.handlePageChange(d-1),"test-id":"prevPageBtn","hide-label":true},i("q2-icon",{key:"9d9d67fed406efcd96e68c41c1d7b937195beb02",type:"chevron-left"}))),i("div",{key:"49fbe96cf1f76396919656f7079aac070a898704",class:"controls",hidden:a,"test-id":"controls"},i("span",{key:"bdd16190e2b4a4557747ca6212131f7d2d8f1805","aria-hidden":"true"},r("tecton.element.pagination.page")),i("div",{key:"fa1cc757c61f99d533718db6399130224afa4819",class:"input-wrapper",onClick:()=>this.inputField.dispatchEvent(new FocusEvent("focus"))},i("q2-input",{key:"682c980dc4a21a06189f6ee644c86ad1c2078005",type:"number",value:`${d}`,min:1,max:this.totalPages,hideLabel:true,optional:true,label:`${r("tecton.element.pagination.page")} (${r("tecton.element.pagination.ofPages",[s.toLocaleString()])})`,onChange:t=>this.handlePageChange(t.detail.value),"test-id":"pageInput",current:"page",ref:t=>this.inputField=t})),i("span",{key:"bf1aca5733c1e2112a2d79f2e5c05bd28caf0780","aria-hidden":"true"},r("tecton.element.pagination.ofPages",[s.toLocaleString()]))),i("div",{key:"35741ecb6d4a2fb9496aa59e77dba4b66531ee7a",class:"btn-group"},i("q2-btn",{key:"2c0800e1e72fa56670ffdd24f9a93f1160ceb639",label:u,disabled:f,onClick:()=>this.handlePageChange(d+1),"test-id":"nextPageBtn","hide-label":true},i("q2-icon",{key:"3e9ec0a68a00f355e9a4177f9d1da59a23b6ff0d",type:"chevron-right"})),i("q2-btn",{key:"5f58b662719325e084ebf22e4c2361ec704ad319",label:"tecton.element.pagination.goToLastPage",disabled:f,hidden:a,onClick:()=>this.handlePageChange(s),"test-id":"lastPageBtn","hide-label":true},i("q2-icon",{key:"04249b5dab29e6877efb0d8cb2733e3f19aeacb3",type:"chevron-double-right"}))),i("div",{key:"d959447e636f6054ad2b7b281c87fb0aa35b869d",class:"per-page",hidden:a||!((t=this.perPageIncrements)===null||t===void 0?void 0:t.length)},this.renderPerPage()))}get hostElement(){return n(this)}static get watchers(){return{recordsOnly:["manageResizeObserver"],pagesOnly:["manageResizeObserver"],autoSize:["manageResizeObserver"]}}};h.style=d;export{h as q2_pagination};
|
|
2
|
+
//# sourceMappingURL=p-1465cd9a.entry.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as o,c as t,g as i,h as e}from"./p-a5f18e27.js";import{h as s,w as r,v as n,d as p}from"./p-ff8ed604.js";const a=class{constructor(i){o(this,i);this.change=t(this,"change",7);this.isCurrentlyFocused=false;this.mouseEventList=["mousedown","dragstart","touchstart"];this.mouseHandler=o=>{const t=this.shadowContains(this.findActiveElement());const i=this.shadowContains(this.shadowEventTarget(o))||this.originatesInSlots(o.target);if(!i&&(this.isCurrentlyFocused||t)){this.isCurrentlyFocused=false;this.change.emit();return}this.isCurrentlyFocused=i||t};this.windowBlurHandler=()=>{this.isCurrentlyFocused=false;this.change.emit()}}connectedCallback(){this.mouseEventList.forEach((o=>{document.addEventListener(o,this.mouseHandler)}));window.addEventListener("blur",this.windowBlurHandler)}disconnectedCallback(){this.mouseEventList.forEach((o=>{document.removeEventListener(o,this.mouseHandler)}));window.removeEventListener("blur",this.windowBlurHandler)}componentWillLoad(){}findActiveElement(){let o=document.activeElement;while(true){if(!o||!o.shadowRoot){return o}o=o.shadowRoot.activeElement}}originatesInSlots(o){const t=this.hostElement.querySelectorAll("slot");for(const i of Array.from(t)){const t=i&&i.assignedNodes&&i.assignedNodes()||this.hostElement.childNodes;for(const i of Array.from(t)){if(i.contains(o)){return true}}}return false}shadowContains(o){while(true){if(o===this.hostElement){return true}if(!o){return false}o=o.parentNode||o.host}}shadowEventTarget(o){return o.composedPath()[0]||o.target}get hostElement(){return i(this)}};const c="*{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 #0066cc)}: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}.legacy.container{display:none}.legacy.show{display:block;z-index:var(--tct-popover-z-index, 50)}:popover-open,.show{position:absolute;margin:0;padding:0;overflow:auto;background:var(--tct-popover-background, var(--app-white, #ffffff));color:var(--tct-popover-font-color, var(--t-text, #4d4d4d));min-width:var(--tct-popover-min-width, 135px);margin-block:var(--tct-popover-margin-block, 0);box-shadow:var(--tct-popover-box-shadow, var(--app-shadow-1, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)));border-width:var(--tct-popover-border-width, 0);border-style:solid;border-color:var(--tct-popover-border-color, transparent);border-radius:var(--tct-popover-border-radius, 0);max-height:var(--comp-pop-max-height);left:var(--comp-pop-left);opacity:var(--comp-pop-opacity, 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, 4px)));--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}:popover-open.block,.show.block{right:unset;width:var(--comp-pop-width);min-width:var(--tct-popover-min-width, unset)}:popover-open.left,.show.left{left:var(--comp-pop-left);right:unset}:popover-open.right,.show.right{right:var(--comp-pop-right);left:unset}:popover-open.down,.show.down{top:var(--tct-popover-top, var(--comp-pop-top));bottom:unset}:popover-open.up,.show.up{top:unset;bottom:var(--comp-pop-bottom)}:popover-open::-webkit-scrollbar,.show::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}:popover-open::-webkit-scrollbar-thumb,.show::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}:popover-open::-webkit-scrollbar-track,.show::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}click-elsewhere{position:relative;display:block}";const l=c;const h=class{constructor(i){o(this,i);this.popoverStateChanged=t(this,"popoverStateChanged",7);this.displayBuffer=10;this.orientationChanged=false;this.handleMinHeight=()=>{if(this.minHeight){s(this,"minHeight","prop")}};this.handlePopoverToggleEvent=o=>{this.popoverStateChanged.emit({open:o.newState==="open"})};this.setAbsoluteCSSProperties=async()=>{const{controlElement:o,containerElement:t,currentDirection:i,align:e}=this;if(e==="right"){t.style.setProperty("--comp-pop-right","0");t.style.setProperty("--comp-pop-left","unset")}else{t.style.setProperty("--comp-pop-left","0");t.style.setProperty("--comp-pop-right","unset")}if(this.block){t.style.setProperty("--comp-pop-width","100%")}if(i==="up"){const i=getComputedStyle(o);const e=parseInt(i.height||"0")+parseInt(i.borderTopWidth||"0")+parseInt(i.borderBottomWidth||"0");t.style.setProperty("--comp-pop-bottom",`${e}px`)}await r();t.style.setProperty("--comp-pop-opacity","1")};this.setPopoverAPICSSProperties=async()=>{var o,t,i;const{controlElement:e,containerElement:s,currentDirection:n,isModule:p,align:a}=this;const{top:c,bottom:l,left:h,right:d}=(t=(o=e===null||e===void 0?void 0:e.getBoundingClientRect)===null||o===void 0?void 0:o.call(e))!==null&&t!==void 0?t:{top:0,bottom:0,left:0,right:0};const u=h;const v=((i=window===null||window===void 0?void 0:window.visualViewport)===null||i===void 0?void 0:i.width)-d;if(a==="right"){s.style.setProperty("--comp-pop-right",`${v-window.scrollX}px`);s.style.setProperty("--comp-pop-left","unset")}else{s.style.setProperty("--comp-pop-left",`${u+window.scrollX}px`);s.style.setProperty("--comp-pop-right","unset")}if(this.block)s.style.setProperty("--comp-pop-width",`${(e===null||e===void 0?void 0:e.offsetWidth)||0}px`);if(n==="up"){if(p){s.style.setProperty("--comp-pop-bottom",`${window.innerHeight-c}px`)}else{s.style.setProperty("--comp-pop-bottom",`${window.innerHeight-c-window.scrollY}px`)}}if(n==="down"){if(p){s.style.setProperty("--comp-pop-top",`${l}px`)}else{s.style.setProperty("--comp-pop-top",`${l+window.scrollY}px`)}}await r();s.style.setProperty("--comp-pop-opacity","1")};this.viewPortChanged=()=>{if(!this.open)return;this.determinePopDirection()};this.viewPortOrientationChanged=()=>{this.orientationChanged=true;this.viewPortChanged()};this.currentDirection=undefined;this.show=false;this.align="left";this.block=undefined;this.controlElement=undefined;this.direction=undefined;this.minHeight=undefined;this.mode=null;this.open=undefined}disconnectedCallback(){this.removeViewportListeners();this.containerElement.removeEventListener("toggle",this.handlePopoverToggleEvent);this.containerElement=null;this.contentElement=null;this.controlElement=null}componentWillLoad(){if(!this.supportsPopoverAPI){console.warn("The Popover API is not supported in this browser. Please update your browser to the latest version. The component will use legacy mode.");this.mode="legacy"}}componentDidLoad(){this.handleMinHeight();if(this.supportsPopoverAPI)this.containerElement.addEventListener("toggle",this.handlePopoverToggleEvent);if(this.open)this.determinePopDirection()}popoverStateHandler(o){const{detail:{open:t}}=o;if(t===this.open)return;this.open=t;o.stopPropagation()}async scrollContainerTo(o){this.containerElement.scrollTo(o)}async toggle(){this.open=!this.open}minHeightProvided(){this.handleMinHeight()}async openChanged(o){this.popoverStateChanged.emit({open:o});if(o){this.addViewportListeners();this.determinePopDirection()}else{this.removeViewportListeners();this.currentDirection=undefined;if(this.mode==="legacy"||!this.supportsPopoverAPI){this.show=false}else{this.containerElement.hidePopover()}await r();this.clearCSSProperties()}}get isModule(){var o,t;const i=window!==window.top;const e=Object.keys((t=(o=window.Tecton)===null||o===void 0?void 0:o.platformDimensions)!==null&&t!==void 0?t:{}).length>0;return i&&e}get providedDirection(){const{direction:o}=this;switch(o){case"up":case"down":return o;default:return undefined}}get supportsPopoverAPI(){return Object.hasOwn(HTMLElement.prototype,"popover")}addViewportListeners(){var o;window.addEventListener("resize",this.viewPortOrientationChanged);visualViewport===null||visualViewport===void 0?void 0:visualViewport.addEventListener("resize",this.viewPortChanged);if(n(this.hostElement)&&!p()){window.addEventListener("scroll",this.viewPortChanged,{passive:true,capture:true})}(o=screen===null||screen===void 0?void 0:screen.orientation)===null||o===void 0?void 0:o.addEventListener("orientationchange",this.viewPortOrientationChanged);window.addEventListener("orientationchange",this.viewPortOrientationChanged)}clearCSSProperties(){this.containerElement.style.removeProperty("--comp-pop-max-height");this.containerElement.style.removeProperty("--comp-pop-top");this.containerElement.style.removeProperty("--comp-pop-bottom");this.containerElement.style.removeProperty("--comp-pop-left");this.containerElement.style.removeProperty("--comp-pop-right");this.containerElement.style.removeProperty("--comp-pop-width");this.containerElement.style.removeProperty("--comp-pop-opacity")}async determinePopDirection(){var o,t,i;const{containerElement:e,controlElement:s,providedDirection:n,displayBuffer:p}=this;if(e)e.style.maxHeight=null;await r();const{isModule:a}=this;const{top:c,bottom:l}=(t=(o=s===null||s===void 0?void 0:s.getBoundingClientRect)===null||o===void 0?void 0:o.call(s))!==null&&t!==void 0?t:{top:0,bottom:0};let h;let d;let u;if(a){const{outletOffset:o=0,innerHeight:t=window.innerHeight,top:e=0,bottom:s=0}=((i=window.Tecton)===null||i===void 0?void 0:i.platformDimensions)||{};const r=window.innerHeight-l;const n=o>0?c:c+o-e;const a=o+l-e;const h=n;const v=t-s-a;const w=r<v;d=h-p;u=w?r-p:v-p}else{h=window.innerHeight;d=c-p;u=h-l-p}const v=d>u?"up":"down";const w=!e.style.getPropertyValue("--comp-pop-max-height")||this.orientationChanged;this.orientationChanged=false;const b=this.currentDirection||n||v;switch(b){case"up":if(w){e.style.setProperty("--comp-pop-max-height",`${d}px`)}this.setDirectionAndShow("up");break;case"down":if(w){e.style.setProperty("--comp-pop-max-height",`${u}px`)}this.setDirectionAndShow("down");break}}removeViewportListeners(){var o;window.removeEventListener("resize",this.viewPortOrientationChanged);visualViewport===null||visualViewport===void 0?void 0:visualViewport.removeEventListener("resize",this.viewPortChanged);window.removeEventListener("scroll",this.viewPortChanged,{capture:true});(o=screen===null||screen===void 0?void 0:screen.orientation)===null||o===void 0?void 0:o.removeEventListener("orientationchange",this.viewPortOrientationChanged);window.removeEventListener("orientationchange",this.viewPortOrientationChanged)}setDirectionAndShow(o){const t=this.open;if(!t)return;this.currentDirection=o;if(this.mode==="legacy"||!this.supportsPopoverAPI){this.show=true;this.setAbsoluteCSSProperties()}else{this.setPopoverAPICSSProperties();this.containerElement.showPopover()}}render(){const o=["container",this.currentDirection,this.align];if(this.show)o.push("show");if(this.block)o.push("block");if(this.mode==="legacy")o.push("legacy");return e("div",{key:"9e0d1d581cb24bf6189b289fbe4e77e21064b275",ref:o=>this.containerElement=o,class:o.join(" "),"test-id":"outerContainer",tabIndex:-1,popover:"manual"},e("div",{key:"8eff792ebb66e3f23985755e6884e8e3ce8ce9b3",ref:o=>this.contentElement=o,class:"content"},e("slot",{key:"68e641a22f00c6f9e8dbb8900dd22db5fb3f3c6b"})))}get hostElement(){return i(this)}static get watchers(){return{minHeight:["minHeightProvided"],open:["openChanged"]}}};h.style=l;export{a as click_elsewhere,h as q2_popover};
|
|
2
|
+
//# sourceMappingURL=p-181d0482.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ClickElsewhere","constructor","hostRef","this","isCurrentlyFocused","mouseEventList","mouseHandler","event","shadowContains","findActiveElement","aboutToBeFocused","shadowEventTarget","originatesInSlots","target","change","emit","windowBlurHandler","connectedCallback","forEach","eventName","document","addEventListener","window","disconnectedCallback","removeEventListener","componentWillLoad","workingElement","activeElement","shadowRoot","slots","hostElement","querySelectorAll","currentSlot","Array","from","lightNodes","assignedNodes","childNodes","currentNode","contains","child","parentNode","host","composedPath","q2PopoverCss","Q2PopoverStyle0","Q2Popover","displayBuffer","orientationChanged","handleMinHeight","minHeight","handleDeprecationWarning","handlePopoverToggleEvent","popoverStateChanged","open","newState","setAbsoluteCSSProperties","async","controlElement","containerElement","currentDirection","align","style","setProperty","block","controlStyle","getComputedStyle","controlSize","parseInt","height","borderTopWidth","borderBottomWidth","waitForNextPaint","setPopoverAPICSSProperties","isModule","top","controlTop","bottom","controlBottom","left","controlLeft","right","controlRight","_b","_a","getBoundingClientRect","call","popoverLeft","popoverRight","_c","visualViewport","width","scrollX","offsetWidth","innerHeight","scrollY","viewPortChanged","determinePopDirection","viewPortOrientationChanged","undefined","removeViewportListeners","contentElement","supportsPopoverAPI","console","warn","mode","componentDidLoad","popoverStateHandler","detail","stopPropagation","scrollContainerTo","options","scrollTo","toggle","minHeightProvided","openChanged","addViewportListeners","show","hidePopover","clearCSSProperties","isIframe","hasPlatformDimensions","Object","keys","Tecton","platformDimensions","length","providedDirection","direction","hasOwn","HTMLElement","prototype","isInScrollableContainer","isMobile","passive","capture","screen","orientation","removeProperty","maxHeight","windowHeight","maxSpaceAbove","maxSpaceBelow","outletOffset","topBarHeight","bottomBarHeight","distanceToIframeBottom","visualControlTop","visualControlBottom","viewableSpaceAbove","viewableSpaceBelow","isIframeShorterThanWindow","directionWithMostSpace","shouldUpdateMaxHeight","getPropertyValue","currentOrDetermineDirection","setDirectionAndShow","isOpen","showPopover","render","containerClasses","push","h","key","ref","el","class","join","tabIndex","popover"],"sources":["src/components/click-elsewhere/click-elsewhere.tsx","src/components/q2-popover/q2-popover.scss?tag=q2-popover&encapsulation=shadow","src/components/q2-popover/q2-popover.tsx"],"sourcesContent":["import { Component, ComponentInterface, Element, Event, EventEmitter } from '@stencil/core';\n\n@Component({\n tag: 'click-elsewhere',\n shadow: false,\n})\nexport class ClickElsewhere implements ComponentInterface {\n // #region Own Properties\n\n isCurrentlyFocused: boolean = false;\n /**\n * Listens for mouse and window events that happen outside this click-elsewhere element so we can close popovers when users click outside them\n */\n mouseEventList: string[] = ['mousedown', 'dragstart', 'touchstart'];\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the user clicks outside the element\n */\n @Event()\n change: EventEmitter;\n\n // #endregion\n // #region Component Lifecycle Events\n\n /* tslint:enable:no-empty */\n\n connectedCallback() {\n this.mouseEventList.forEach((eventName: string) => {\n document.addEventListener(eventName, this.mouseHandler);\n });\n window.addEventListener('blur', this.windowBlurHandler);\n }\n\n disconnectedCallback() {\n this.mouseEventList.forEach((eventName: string) => {\n document.removeEventListener(eventName, this.mouseHandler);\n });\n window.removeEventListener('blur', this.windowBlurHandler);\n }\n\n /* TODO: Stencil/Rollup is having issues compiling without this here. Will try to remove in future Stencil upgrade. */\n /* tslint:disable:no-empty */\n componentWillLoad() {}\n\n // #endregion\n // #region Local Methods\n\n findActiveElement(): Element | null {\n let workingElement = document.activeElement!;\n while (true) {\n if (!workingElement || !workingElement.shadowRoot) {\n return workingElement;\n }\n workingElement = workingElement.shadowRoot.activeElement;\n }\n }\n\n mouseHandler = (event: Event): void => {\n const isCurrentlyFocused = this.shadowContains(this.findActiveElement());\n const aboutToBeFocused =\n this.shadowContains(this.shadowEventTarget(event)) || this.originatesInSlots(event.target as Element);\n\n if (!aboutToBeFocused && (this.isCurrentlyFocused || isCurrentlyFocused)) {\n this.isCurrentlyFocused = false;\n this.change.emit();\n return;\n }\n this.isCurrentlyFocused = aboutToBeFocused || isCurrentlyFocused;\n };\n\n originatesInSlots(target: Element): boolean {\n const slots = this.hostElement.querySelectorAll('slot');\n for (const currentSlot of Array.from(slots)) {\n const lightNodes =\n (currentSlot && currentSlot.assignedNodes && currentSlot.assignedNodes()) ||\n this.hostElement.childNodes;\n\n for (const currentNode of Array.from(lightNodes)) {\n if (currentNode.contains(target)) {\n return true;\n }\n }\n }\n return false;\n }\n\n shadowContains(child: any): boolean {\n /**\n * shadow-dom enabled version of Node.contains()\n */\n\n while (true) {\n if (child === this.hostElement) {\n return true;\n }\n if (!child) {\n return false;\n }\n child = child.parentNode || child.host;\n }\n }\n\n shadowEventTarget(event: any): Element {\n return event.composedPath()[0] || event.target;\n }\n\n windowBlurHandler = (): void => {\n this.isCurrentlyFocused = false;\n this.change.emit();\n };\n}\n","@import '../../styles/host.scss';\n@import '../../styles/functions';\n\n.legacy {\n &.container {\n display: none;\n }\n\n &.show {\n display: block;\n z-index: var-list(--tct-popover-z-index, 50);\n }\n}\n\n:popover-open,\n.show {\n position: absolute;\n margin: 0;\n padding: 0;\n overflow: auto;\n background: var-list(--tct-popover-background, --app-white, #ffffff);\n color: var-list(--tct-popover-font-color, --t-text, #4d4d4d);\n min-width: var-list(--tct-popover-min-width, 135px);\n margin-block: var-list(--tct-popover-margin-block, 0);\n box-shadow: var-list(\n --tct-popover-box-shadow,\n --app-shadow-1,\n unquote('0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14)')\n );\n border-width: var-list(--tct-popover-border-width, 0);\n border-style: solid;\n border-color: var-list(--tct-popover-border-color, transparent);\n border-radius: var-list(--tct-popover-border-radius, 0);\n // the --comp variables are set via JS\n max-height: var(--comp-pop-max-height);\n left: var(--comp-pop-left);\n opacity: var(--comp-pop-opacity, 0);\n\n &.block {\n right: unset;\n width: var(--comp-pop-width);\n min-width: var-list(--tct-popover-min-width, unset);\n }\n\n &.left {\n left: var(--comp-pop-left);\n right: unset;\n }\n\n &.right {\n right: var(--comp-pop-right);\n left: unset;\n }\n\n &.down {\n top: var-list(--tct-popover-top, --comp-pop-top);\n bottom: unset;\n }\n\n &.up {\n top: unset;\n bottom: var(--comp-pop-bottom);\n }\n\n @include tiny-scrollbar();\n}\n\nclick-elsewhere {\n position: relative;\n display: block;\n}\n","import {\n Component,\n Prop,\n h,\n ComponentInterface,\n Element,\n Watch,\n Method,\n Listen,\n EventEmitter,\n Event,\n State,\n} from '@stencil/core';\nimport { handleDeprecationWarning, waitForNextPaint, isMobile, isInScrollableContainer } from '../../utils';\n\n@Component({ tag: 'q2-popover', shadow: true, styleUrl: 'q2-popover.scss' })\nexport class Q2Popover implements ComponentInterface {\n // #region Own Properties\n\n containerElement: HTMLDivElement;\n contentElement: HTMLDivElement;\n /**\n * The number of pixels to leave between the popover and the edge of the viewport\n */\n displayBuffer = 10;\n orientationChanged: boolean = false;\n\n // #endregion\n // #region Host HTML Element\n\n @Element()\n hostElement: HTMLElement;\n\n // #endregion\n // #region State Properties\n\n @State()\n currentDirection: 'down' | 'up' = undefined;\n\n // remove `show` when Popover API is supported in iOS\n @State()\n show: boolean = false;\n\n // #endregion\n // #region Public Property API\n\n /** Aligns the popover to the left or right side of the control element. */\n @Prop({ reflect: true })\n align: 'left' | 'right' = 'left';\n\n /** Indicates the popover will match the width of its parent element. */\n @Prop({ reflect: true })\n block: boolean;\n\n /** The element that controls the popover's behavior. */\n @Prop()\n controlElement: HTMLElement;\n\n /**\n * Force the direction of the popover when it opens.\n * If no value is passed, the component will auto-detect the direction based on available space.\n */\n @Prop({ reflect: true })\n direction: 'up' | 'down';\n\n /** @deprecated */\n @Prop()\n minHeight: number;\n\n @Prop()\n mode: 'legacy' = null;\n\n /** Controls whether the popover is open or closed. */\n @Prop({ reflect: true, mutable: true })\n open: boolean;\n\n // #endregion\n // #region Events\n\n /**\n * Emitted when the popover is opened or closed.\n */\n @Event()\n popoverStateChanged: EventEmitter<{ open: boolean }>;\n\n // #endregion\n // #region Component Lifecycle Events\n\n disconnectedCallback() {\n this.removeViewportListeners();\n this.containerElement.removeEventListener('toggle', this.handlePopoverToggleEvent);\n this.containerElement = null;\n this.contentElement = null;\n this.controlElement = null;\n }\n\n componentWillLoad() {\n if (!this.supportsPopoverAPI) {\n console.warn(\n 'The Popover API is not supported in this browser. Please update your browser to the latest version. The component will use legacy mode.'\n );\n this.mode = 'legacy';\n }\n }\n\n componentDidLoad() {\n this.handleMinHeight();\n if (this.supportsPopoverAPI) this.containerElement.addEventListener('toggle', this.handlePopoverToggleEvent);\n if (this.open) this.determinePopDirection();\n }\n\n // #endregion\n // #region Listeners\n\n @Listen('popoverState')\n popoverStateHandler(event: CustomEvent<{ open: boolean }>) {\n const {\n detail: { open },\n } = event;\n if (open === this.open) return;\n\n this.open = open;\n event.stopPropagation();\n }\n\n // #endregion\n // #region Public Methods API\n\n @Method()\n async scrollContainerTo(options: ScrollToOptions) {\n this.containerElement.scrollTo(options);\n }\n\n @Method()\n async toggle() {\n this.open = !this.open;\n }\n\n // #endregion\n // #region Watchers\n\n @Watch('minHeight')\n minHeightProvided() {\n this.handleMinHeight();\n }\n\n @Watch('open')\n async openChanged(open: boolean) {\n this.popoverStateChanged.emit({ open });\n\n if (open) {\n this.addViewportListeners();\n this.determinePopDirection();\n } else {\n this.removeViewportListeners();\n this.currentDirection = undefined;\n if (this.mode === 'legacy' || !this.supportsPopoverAPI) {\n this.show = false;\n } else {\n this.containerElement.hidePopover();\n }\n\n await waitForNextPaint();\n this.clearCSSProperties();\n }\n }\n\n // #endregion\n // #region Local Methods\n\n get isModule() {\n const isIframe = window !== window.top;\n const hasPlatformDimensions = Object.keys(window.Tecton?.platformDimensions ?? {}).length > 0;\n return isIframe && hasPlatformDimensions;\n }\n\n get providedDirection(): 'up' | 'down' | undefined {\n const { direction } = this;\n switch (direction) {\n case 'up':\n case 'down':\n return direction;\n default:\n return undefined;\n }\n }\n\n get supportsPopoverAPI(): boolean {\n return Object.hasOwn(HTMLElement.prototype, 'popover');\n }\n\n addViewportListeners() {\n window.addEventListener('resize', this.viewPortOrientationChanged);\n visualViewport?.addEventListener('resize', this.viewPortChanged);\n if (isInScrollableContainer(this.hostElement) && !isMobile()) {\n window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });\n }\n screen?.orientation?.addEventListener('orientationchange', this.viewPortOrientationChanged);\n window.addEventListener('orientationchange', this.viewPortOrientationChanged);\n }\n\n clearCSSProperties() {\n this.containerElement.style.removeProperty('--comp-pop-max-height');\n this.containerElement.style.removeProperty('--comp-pop-top');\n this.containerElement.style.removeProperty('--comp-pop-bottom');\n this.containerElement.style.removeProperty('--comp-pop-left');\n this.containerElement.style.removeProperty('--comp-pop-right');\n this.containerElement.style.removeProperty('--comp-pop-width');\n this.containerElement.style.removeProperty('--comp-pop-opacity');\n }\n\n async determinePopDirection() {\n const { containerElement, controlElement, providedDirection, displayBuffer } = this;\n if (containerElement) containerElement.style.maxHeight = null;\n await waitForNextPaint();\n\n const { isModule } = this;\n const { top: controlTop, bottom: controlBottom } = controlElement?.getBoundingClientRect?.() ?? {\n top: 0,\n bottom: 0,\n };\n\n let windowHeight: number;\n let maxSpaceAbove: number;\n let maxSpaceBelow: number;\n if (isModule) {\n const {\n outletOffset = 0,\n innerHeight = window.innerHeight,\n top: topBarHeight = 0,\n bottom: bottomBarHeight = 0,\n } = window.Tecton?.platformDimensions || {};\n\n const distanceToIframeBottom = window.innerHeight - controlBottom;\n\n // controlElement position visually on the page\n const visualControlTop = outletOffset > 0 ? controlTop : controlTop + outletOffset - topBarHeight;\n const visualControlBottom = outletOffset + controlBottom - topBarHeight;\n\n // visual space around the controlElement\n const viewableSpaceAbove = visualControlTop;\n const viewableSpaceBelow = innerHeight - bottomBarHeight - visualControlBottom;\n\n // calculate space above and below controlElement\n const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;\n maxSpaceAbove = viewableSpaceAbove - displayBuffer;\n maxSpaceBelow = isIframeShorterThanWindow\n ? distanceToIframeBottom - displayBuffer\n : viewableSpaceBelow - displayBuffer;\n } else {\n windowHeight = window.innerHeight;\n maxSpaceAbove = controlTop - displayBuffer;\n maxSpaceBelow = windowHeight - controlBottom - displayBuffer;\n }\n\n const directionWithMostSpace: 'up' | 'down' = maxSpaceAbove > maxSpaceBelow ? 'up' : 'down';\n\n // We do not want to update the max height once the popover is open unless the page orientation shifts (resize or mobile use cases)\n const shouldUpdateMaxHeight =\n !containerElement.style.getPropertyValue('--comp-pop-max-height') || this.orientationChanged;\n // we do not want to constantly update the max-height after an orientation change, so we switch this back to false\n this.orientationChanged = false;\n const currentOrDetermineDirection = this.currentDirection || providedDirection || directionWithMostSpace;\n\n switch (currentOrDetermineDirection) {\n case 'up':\n if (shouldUpdateMaxHeight) {\n containerElement.style.setProperty('--comp-pop-max-height', `${maxSpaceAbove}px`);\n }\n this.setDirectionAndShow('up');\n break;\n case 'down':\n if (shouldUpdateMaxHeight) {\n containerElement.style.setProperty('--comp-pop-max-height', `${maxSpaceBelow}px`);\n }\n this.setDirectionAndShow('down');\n break;\n default:\n break;\n }\n }\n\n handleMinHeight = () => {\n if (this.minHeight) {\n handleDeprecationWarning(this, 'minHeight', 'prop');\n }\n };\n\n handlePopoverToggleEvent = (event: ToggleEvent) => {\n this.popoverStateChanged.emit({ open: event.newState === 'open' });\n };\n\n removeViewportListeners() {\n window.removeEventListener('resize', this.viewPortOrientationChanged);\n visualViewport?.removeEventListener('resize', this.viewPortChanged);\n window.removeEventListener('scroll', this.viewPortChanged, { capture: true });\n screen?.orientation?.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n window.removeEventListener('orientationchange', this.viewPortOrientationChanged);\n }\n\n setAbsoluteCSSProperties = async () => {\n const { controlElement, containerElement, currentDirection, align } = this;\n\n if (align === 'right') {\n containerElement.style.setProperty('--comp-pop-right', '0');\n containerElement.style.setProperty('--comp-pop-left', 'unset');\n } else {\n containerElement.style.setProperty('--comp-pop-left', '0');\n containerElement.style.setProperty('--comp-pop-right', 'unset');\n }\n\n if (this.block) {\n containerElement.style.setProperty('--comp-pop-width', '100%');\n }\n\n if (currentDirection === 'up') {\n const controlStyle = getComputedStyle(controlElement);\n const controlSize =\n parseInt(controlStyle.height || '0') +\n parseInt(controlStyle.borderTopWidth || '0') +\n parseInt(controlStyle.borderBottomWidth || '0');\n\n containerElement.style.setProperty('--comp-pop-bottom', `${controlSize}px`);\n }\n\n // Wait for one paint to prevent layout thrashing\n await waitForNextPaint();\n containerElement.style.setProperty('--comp-pop-opacity', '1');\n };\n\n setDirectionAndShow(direction: 'up' | 'down') {\n // Due to some runtime inconsistency across devices/browsers we need to add one more check here because the\n // popover can be closed between the time the popover is opened and the time the direction is determined\n const isOpen = this.open;\n if (!isOpen) return;\n\n this.currentDirection = direction;\n if (this.mode === 'legacy' || !this.supportsPopoverAPI) {\n this.show = true;\n this.setAbsoluteCSSProperties();\n } else {\n this.setPopoverAPICSSProperties();\n this.containerElement.showPopover();\n }\n }\n\n setPopoverAPICSSProperties = async () => {\n const { controlElement, containerElement, currentDirection, isModule, align } = this;\n const {\n top: controlTop,\n bottom: controlBottom,\n left: controlLeft,\n right: controlRight,\n } = controlElement?.getBoundingClientRect?.() ?? {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n\n const popoverLeft: number = controlLeft;\n const popoverRight: number = window?.visualViewport?.width - controlRight;\n\n if (align === 'right') {\n containerElement.style.setProperty('--comp-pop-right', `${popoverRight - window.scrollX}px`);\n containerElement.style.setProperty('--comp-pop-left', 'unset');\n } else {\n containerElement.style.setProperty('--comp-pop-left', `${popoverLeft + window.scrollX}px`);\n containerElement.style.setProperty('--comp-pop-right', 'unset');\n }\n\n if (this.block) containerElement.style.setProperty('--comp-pop-width', `${controlElement?.offsetWidth || 0}px`);\n\n if (currentDirection === 'up') {\n if (isModule) {\n containerElement.style.setProperty('--comp-pop-bottom', `${window.innerHeight - controlTop}px`);\n } else {\n containerElement.style.setProperty(\n '--comp-pop-bottom',\n `${window.innerHeight - controlTop - window.scrollY}px`\n );\n }\n }\n\n if (currentDirection === 'down') {\n if (isModule) {\n containerElement.style.setProperty('--comp-pop-top', `${controlBottom}px`);\n } else {\n containerElement.style.setProperty('--comp-pop-top', `${controlBottom + window.scrollY}px`);\n }\n }\n\n // Wait for one paint to prevent layout thrashing\n await waitForNextPaint();\n containerElement.style.setProperty('--comp-pop-opacity', '1');\n };\n\n viewPortChanged = () => {\n if (!this.open) return;\n this.determinePopDirection();\n };\n\n viewPortOrientationChanged = () => {\n this.orientationChanged = true;\n this.viewPortChanged();\n };\n\n // #endregion\n // #region Render Methods\n\n render() {\n const containerClasses = ['container', this.currentDirection, this.align];\n if (this.show) containerClasses.push('show');\n if (this.block) containerClasses.push('block');\n if (this.mode === 'legacy') containerClasses.push('legacy');\n\n return (\n <div\n ref={el => (this.containerElement = el)}\n class={containerClasses.join(' ')}\n test-id=\"outerContainer\"\n tabIndex={-1}\n popover=\"manual\"\n >\n <div\n ref={el => (this.contentElement = el)}\n class=\"content\"\n >\n <slot />\n </div>\n </div>\n );\n }\n\n // #endregion\n}\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as t,c as e,h as i,g as r}from"./p-a5f18e27.js";import{c as s,f as o}from"./p-
|
|
2
|
-
//# sourceMappingURL=p-
|
|
1
|
+
import{r as t,c as e,h as i,g as r}from"./p-a5f18e27.js";import{c as s,f as o}from"./p-ff8ed604.js";const n="*{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 #0066cc)}: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{margin-top:var(--tct-scale-2, var(--app-scale-2x, 10px))}fieldset{padding:var(--tct-input-error-padding, 0);margin:0;border:0}fieldset.has-error{border-color:var(--tct-input-error-border-color, var(--const-stoplight-alert, #d20a0a));border-width:1px;border-style:solid;border-radius:var(--tct-border-radius-1, var(--app-border-radius-1, 4px));position:relative}fieldset.has-error .error-icon-container{top:8px;right:8px;position:absolute;width:40%;text-align:right;background:linear-gradient(to right, var(--tct-checkbox-group-error-gradient-start, var(--t-base-a0, rgba(255, 255, 255, 0))), var(--tct-checkbox-group-error-gradient-end, var(--t-base, rgb(255, 255, 255))))}fieldset.has-error legend+div.error-icon-container.no-label{top:28px}.group-legend{font-weight:600}legend.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0}.optional-tag{margin-left:var(--tct-input-label-optional-margin-left, var(--tct-scale-1, var(--app-scale-1x, 5px)));color:var(--tct-input-label-optional-font-color, var(--tct-a11y-color, var(--t-a11y-gray-color, var(--tct-gray-7, var(--t-gray-7, var(--tct-gray-d1, var(--app-gray-d1, #666666)))))));font-size:var(--tct-input-label-optional-font-size, 12px);font-weight:var(--tct-input-label-optional-font-weight, 400)}.flexed{margin:0;display:flex;flex-wrap:wrap;align-items:center;justify-content:center}.flexed.left{justify-content:left}";const a=n;const d=class{constructor(i){t(this,i);this.change=e(this,"change",7);this._id=`checkbox-group-${s()}`;this.onInnerCheckboxChange=t=>{t.stopImmediatePropagation();const e={};setTimeout((()=>{this.checkboxElements.forEach((t=>{e[t.value]=!!t.checked}));this.change.emit(e)}),0)};this.onMutationObserved=()=>{this.updateValue();this.updateDisabled();this.updateReadonly()};this.disabled=undefined;this.hasError=undefined;this.hideLabel=undefined;this.label=undefined;this.optional=undefined;this.readonly=undefined;this.value=undefined}disconnectedCallback(){if(this.mutationObserver){this.mutationObserver.disconnect();this.mutationObserver=null}}componentWillLoad(){this.updateReadonly()}componentDidLoad(){const t=new MutationObserver(this.onMutationObserved);t.observe(this.hostElement,{childList:true,subtree:true});this.mutationObserver=t;this.onMutationObserved()}onHostElementChange(t){if(t.target===this.hostElement&&!this.hostElement.onchange){this.value=t.detail}}setValue(t){const e=new Set(Array.isArray(t)?t:[t]);this.checkboxElements.forEach((t=>{if(e.has(t.value))t.click()}))}disabledObserver(){this.updateDisabled()}readonlyObserver(){this.updateReadonly()}valueObserver(){this.updateValue()}get checkboxElements(){return Array.from(this.hostElement.querySelectorAll("q2-checkbox"))}get inputId(){return this._id}get protectedValue(){return this.value||{}}inputDom(){return i("slot",null)}updateDisabled(){const t=this.disabled;this.checkboxElements.forEach((e=>{e.groupDisabled=t}))}updateReadonly(){const t=this.readonly;this.checkboxElements.forEach((e=>{e.slotReadonly=t}))}updateValue(){if(this.readonly)return;this.checkboxElements.forEach((t=>{if(this.protectedValue.hasOwnProperty(t.value)){t.checked=this.value[t.value]}}))}render(){const t=this.label||this.optional||this.readonly;return i("div",{key:"4114fcde4adac060df83295fa602362c36e5fe09"},t&&!this.hideLabel&&i("div",{key:"6611f3a1a8cb84f48dab0a57cedba61d5e5290c3",class:"group-legend"},o(this)),i("fieldset",{key:"aa1080e07d33e34f56ca6a68938e6f71f4f030bb",class:`q2-checkbox-fieldset ${this.hasError?"has-error":""}`,onChange:this.onInnerCheckboxChange,"aria-invalid":this.hasError===undefined?undefined:`${this.hasError}`},this.label||this.optional?i("legend",{class:"sr-only"},o(this)):"",this.hasError?i("div",{class:`error-icon-container ${this.label||this.optional?"":"no-label"}`},i("q2-icon",{class:"h(4) w(4) mrg-b(2)",type:"error"})):"",this.inputDom()))}get hostElement(){return r(this)}static get watchers(){return{disabled:["disabledObserver"],readonly:["readonlyObserver"],value:["valueObserver"]}}};d.style=a;export{d as q2_checkbox_group};
|
|
2
|
+
//# sourceMappingURL=p-1bcf4fe0.entry.js.map
|