q2-tecton-elements 1.53.2 → 1.53.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-76f63767.js → index-7aecfed8.js} +33 -1
- package/dist/cjs/index-7aecfed8.js.map +1 -0
- package/dist/cjs/q2-action-group.cjs.entry.js +1 -1
- 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-file-picker.cjs.entry.js +1 -1
- package/dist/cjs/q2-item_3.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-option.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-pill/test/q2-pill-test.e2e.js +1 -1
- package/dist/collection/components/q2-pill/test/q2-pill-test.e2e.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-504f1a9e.js → index-99c46474.js} +33 -2
- package/dist/{cjs/index-76f63767.js.map → esm/index-99c46474.js.map} +1 -1
- package/dist/esm/q2-action-group.entry.js +1 -1
- 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-file-picker.entry.js +1 -1
- package/dist/esm/q2-item_3.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-option.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/click-elsewhere_2.entry.js +139 -134
- package/dist/q2-tecton-elements/click-elsewhere_2.entry.js.map +1 -1
- package/dist/q2-tecton-elements/{index-504f1a9e.js → index-99c46474.js} +76 -51
- package/dist/q2-tecton-elements/index-99c46474.js.map +1 -0
- package/dist/q2-tecton-elements/q2-action-group.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-action-sheet.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-badge_7.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-calendar.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-card.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-carousel-pane.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-carousel.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-chart-area.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-chart-bar.entry.js +78 -78
- package/dist/q2-tecton-elements/q2-chart-donut.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-checkbox-group.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-checkbox.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-data-table.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-detail.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-dropdown-item.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-dropdown.entry.js +13 -11
- package/dist/q2-tecton-elements/q2-dropdown.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-editable-field.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-file-picker.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-item_3.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-loc.entry.js +4 -4
- package/dist/q2-tecton-elements/q2-message.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-month-picker.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-optgroup.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-option-list.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-option.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-pagination.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-pill.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-radio-group.entry.js +5 -5
- package/dist/q2-tecton-elements/q2-radio.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-relative-time.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-section.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-select.entry.js +44 -5
- package/dist/q2-tecton-elements/q2-select.entry.js.map +1 -1
- package/dist/q2-tecton-elements/q2-stepper-pane.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-stepper-vertical.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-stepper.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-tag.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-textarea.entry.js +1 -1
- package/dist/q2-tecton-elements/q2-tooltip.entry.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/esm/index-504f1a9e.js.map +0 -1
- package/dist/q2-tecton-elements/index-504f1a9e.js.map +0 -1
|
@@ -1 +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","_d","offsetTop","scrollY","_f","_e","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","validatedMaxHeight","maxHeight","isNaN","passive","capture","screen","orientation","removeProperty","windowHeight","maxSpaceAbove","maxSpaceBelow","outletOffset","distanceToIframeBottom","viewableSpaceBelow","isIframeShorterThanWindow","directionWithMostSpace","shouldUpdateMaxHeight","getPropertyValue","currentOrDetermineDirection","priorityMaxHeight","Math","min","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 } 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 /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n maxHeight: number;\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 get validatedMaxHeight(): number | undefined {\n const { maxHeight } = this;\n return isNaN(maxHeight) ? undefined : maxHeight;\n }\n\n addViewportListeners() {\n window.addEventListener('resize', this.viewPortOrientationChanged);\n visualViewport?.addEventListener('resize', this.viewPortChanged);\n window.addEventListener('scroll', this.viewPortChanged, { passive: true, capture: true });\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\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\n if (isModule) {\n const { outletOffset = 0, innerHeight = window.innerHeight } = window.Tecton?.platformDimensions || {};\n const distanceToIframeBottom = window.visualViewport.height - controlBottom;\n const viewableSpaceBelow = innerHeight - (outletOffset + controlBottom);\n const isIframeShorterThanWindow = distanceToIframeBottom < viewableSpaceBelow;\n windowHeight = innerHeight;\n // If the top of the module is below the top of the window we just use the controlTop\n // Otherwise we need to add the outletOffset to the controlTop\n maxSpaceAbove = (outletOffset > 0 ? controlTop : controlTop + outletOffset) - displayBuffer;\n maxSpaceBelow = isIframeShorterThanWindow\n ? distanceToIframeBottom - displayBuffer\n : viewableSpaceBelow - displayBuffer;\n } else {\n windowHeight = window.visualViewport.height;\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 const priorityMaxHeight = this.validatedMaxHeight || maxSpaceAbove;\n const maxHeight = Math.min(maxSpaceAbove, priorityMaxHeight);\n containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);\n }\n this.setDirectionAndShow('up');\n break;\n case 'down':\n if (shouldUpdateMaxHeight) {\n const priorityMaxHeight = this.validatedMaxHeight || maxSpaceBelow;\n const maxHeight = Math.min(maxSpaceBelow, priorityMaxHeight);\n containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}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?.visualViewport?.offsetTop - 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(\n '--comp-pop-top',\n `${controlBottom + (window?.visualViewport?.offsetTop ?? 0) + window.scrollY}px`\n );\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=\"auto\"\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
|
+
{"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","validatedMaxHeight","maxHeight","isNaN","isInScrollableContainer","isMobile","passive","capture","screen","orientation","removeProperty","windowHeight","maxSpaceAbove","maxSpaceBelow","outletOffset","topBarHeight","bottomBarHeight","distanceToIframeBottom","visualControlTop","visualControlBottom","viewableSpaceAbove","viewableSpaceBelow","isIframeShorterThanWindow","directionWithMostSpace","shouldUpdateMaxHeight","getPropertyValue","currentOrDetermineDirection","priorityMaxHeight","Math","min","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 /**\n * Force the maximum height of the popover. This value will be interpreted as pixels.\n * If no value is passed, or the value exceeds available space, the component will auto-detect the maximum height based on available space.\n */\n @Prop()\n maxHeight: number;\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 get validatedMaxHeight(): number | undefined {\n const { maxHeight } = this;\n return isNaN(maxHeight) ? undefined : maxHeight;\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 const priorityMaxHeight = this.validatedMaxHeight || maxSpaceAbove;\n const maxHeight = Math.min(maxSpaceAbove, priorityMaxHeight);\n containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}px`);\n }\n this.setDirectionAndShow('up');\n break;\n case 'down':\n if (shouldUpdateMaxHeight) {\n const priorityMaxHeight = this.validatedMaxHeight || maxSpaceBelow;\n const maxHeight = Math.min(maxSpaceBelow, priorityMaxHeight);\n containerElement.style.setProperty('--comp-pop-max-height', `${maxHeight}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,11 +1,11 @@
|
|
|
1
1
|
import { h as e } from "./index-7a5365e2.js";
|
|
2
2
|
|
|
3
3
|
const debounce = (e, n = 300) => {
|
|
4
|
-
let
|
|
5
|
-
return function(...
|
|
6
|
-
clearTimeout(
|
|
7
|
-
|
|
8
|
-
e(...
|
|
4
|
+
let o;
|
|
5
|
+
return function(...i) {
|
|
6
|
+
clearTimeout(o);
|
|
7
|
+
o = setTimeout((() => {
|
|
8
|
+
e(...i);
|
|
9
9
|
}), n);
|
|
10
10
|
};
|
|
11
11
|
};
|
|
@@ -14,13 +14,38 @@ function isMobile() {
|
|
|
14
14
|
return /Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile|IEMobile|Windows Phone|Opera Mini/i.test(navigator.userAgent);
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
function isInScrollableContainer(e) {
|
|
18
|
+
let n = e;
|
|
19
|
+
while (n && n !== document.body && n !== document.documentElement) {
|
|
20
|
+
// Move to parent
|
|
21
|
+
if (n.parentElement) {
|
|
22
|
+
n = n.parentElement;
|
|
23
|
+
} else {
|
|
24
|
+
// Try to cross shadow DOM boundary
|
|
25
|
+
const e = n.getRootNode();
|
|
26
|
+
if (e && e.host) {
|
|
27
|
+
n = e.host;
|
|
28
|
+
} else {
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const e = window.getComputedStyle(n);
|
|
33
|
+
const o = e.overflow === "scroll" || e.overflow === "auto" || e.overflowX === "scroll" || e.overflowX === "auto" || e.overflowY === "scroll" || e.overflowY === "auto";
|
|
34
|
+
const i = n.scrollHeight > n.clientHeight || n.scrollWidth > n.clientWidth;
|
|
35
|
+
if (o && i) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
|
|
17
42
|
function isRelatedTargetWithinHost(e, n) {
|
|
18
43
|
return e.relatedTarget !== n && !n.contains(e.relatedTarget);
|
|
19
44
|
}
|
|
20
45
|
|
|
21
46
|
function isEventFromElement(e, n) {
|
|
22
|
-
var
|
|
23
|
-
return ((
|
|
47
|
+
var o;
|
|
48
|
+
return ((o = e.composedPath) === null || o === void 0 ? void 0 : o.call(e)[0]) === n;
|
|
24
49
|
}
|
|
25
50
|
|
|
26
51
|
function overrideFocus(e) {
|
|
@@ -69,24 +94,24 @@ function waitForNextPaint() {
|
|
|
69
94
|
}
|
|
70
95
|
|
|
71
96
|
function loc(e, n) {
|
|
72
|
-
var
|
|
97
|
+
var o, i, t;
|
|
73
98
|
if (!e) return "";
|
|
74
|
-
if (((
|
|
99
|
+
if (((o = window.Tecton) === null || o === void 0 ? void 0 : o.noStrings) === true) {
|
|
75
100
|
return e;
|
|
76
101
|
}
|
|
77
|
-
return (t = (
|
|
102
|
+
return (t = (i = window === null || window === void 0 ? void 0 : window.TectonElements) === null || i === void 0 ? void 0 : i.loc(e, n)) !== null && t !== void 0 ? t : e;
|
|
78
103
|
}
|
|
79
104
|
|
|
80
105
|
function renderLabel(n) {
|
|
81
|
-
const {label:
|
|
106
|
+
const {label: o, hideLabel: i, optional: t, readonly: a} = n;
|
|
82
107
|
const r = [ "input-label" ];
|
|
83
108
|
let s = "";
|
|
84
|
-
let l =
|
|
109
|
+
let l = i;
|
|
85
110
|
if (!l) {
|
|
86
111
|
const e = n.hostElement.querySelectorAll('[slot="label"]');
|
|
87
|
-
const
|
|
88
|
-
const t = !!
|
|
89
|
-
l = t ||
|
|
112
|
+
const i = e.length > 0;
|
|
113
|
+
const t = !!o;
|
|
114
|
+
l = t || i ? false : true;
|
|
90
115
|
}
|
|
91
116
|
if (l) r.push("sr");
|
|
92
117
|
if (t) {
|
|
@@ -105,7 +130,7 @@ function renderLabel(n) {
|
|
|
105
130
|
class: r.join(" ")
|
|
106
131
|
}, e("slot", {
|
|
107
132
|
name: "label"
|
|
108
|
-
},
|
|
133
|
+
}, o ? loc(o) : undefined, s));
|
|
109
134
|
}
|
|
110
135
|
|
|
111
136
|
function hasSlotContent(e, n) {
|
|
@@ -116,8 +141,8 @@ function handleAriaLabel(e) {
|
|
|
116
141
|
const {ariaLabel: n} = e;
|
|
117
142
|
if (!n) return;
|
|
118
143
|
// If empty ariaLabel prop is set to primitive symbol by framework wrapper, set ariaLabel to undefined and return
|
|
119
|
-
const
|
|
120
|
-
if (n ===
|
|
144
|
+
const o = Symbol().toString();
|
|
145
|
+
if (n === o) {
|
|
121
146
|
e.ariaLabel = undefined;
|
|
122
147
|
return;
|
|
123
148
|
}
|
|
@@ -129,57 +154,57 @@ function handleAriaLabel(e) {
|
|
|
129
154
|
|
|
130
155
|
/**
|
|
131
156
|
* Handles when a prop has been renamed on a component without introducing a breaking change.
|
|
132
|
-
*/ function handleRenamedProp(e, n,
|
|
157
|
+
*/ function handleRenamedProp(e, n, o, i) {
|
|
133
158
|
if (typeof e[n] === "undefined") return;
|
|
134
159
|
// If old prop has value, aka set in component, call handleDeprecationWarning()
|
|
135
160
|
if (e[n]) {
|
|
136
161
|
handleDeprecationWarning(e, n, "prop");
|
|
137
162
|
}
|
|
138
|
-
e[
|
|
139
|
-
if (
|
|
163
|
+
e[o] = e[n];
|
|
164
|
+
if (i) {
|
|
140
165
|
delete e[n];
|
|
141
166
|
}
|
|
142
167
|
}
|
|
143
168
|
|
|
144
|
-
function handleDeprecationWarning(e, n,
|
|
169
|
+
function handleDeprecationWarning(e, n, o) {
|
|
145
170
|
if (window.location.hostname === "localhost" || window.location.host === "stack.q2developer.com") {
|
|
146
171
|
if (e[n] === "undefined") return;
|
|
147
|
-
const
|
|
148
|
-
switch (
|
|
172
|
+
const i = e.constructor.name.toLowerCase().slice(2);
|
|
173
|
+
switch (o) {
|
|
149
174
|
case "prop":
|
|
150
|
-
if (n === "size" &&
|
|
175
|
+
if (n === "size" && i === "btn") {
|
|
151
176
|
console.warn(`The property of size in q2-btn should not be typeof number, or typeof string containing a number. This functionality will be deprecated in an upcoming release. Instead, please use the value 'undefined', or typeof string with any of the following values: "small" / "medium" / "large" `);
|
|
152
177
|
} else {
|
|
153
|
-
console.warn(`The property ${n} in q2-${
|
|
178
|
+
console.warn(`The property ${n} in q2-${i} has been marked for deprecation and will be removed in an upcoming major release.`);
|
|
154
179
|
}
|
|
155
180
|
break;
|
|
156
181
|
|
|
157
182
|
case "function":
|
|
158
|
-
console.warn(`The function ${n} in ${
|
|
183
|
+
console.warn(`The function ${n} in ${i} has been marked for deprecation and will be removed in an upcoming major release.`);
|
|
159
184
|
break;
|
|
160
185
|
|
|
161
186
|
case "method":
|
|
162
|
-
console.warn(`The method ${n} in ${
|
|
187
|
+
console.warn(`The method ${n} in ${i} has been marked for deprecation and will be removed in an upcoming major release.`);
|
|
163
188
|
break;
|
|
164
189
|
|
|
165
190
|
case "event":
|
|
166
|
-
console.warn(`The event ${n} in ${
|
|
191
|
+
console.warn(`The event ${n} in ${i} has been marked for deprecation and will be removed in an upcoming major release.`);
|
|
167
192
|
break;
|
|
168
193
|
|
|
169
194
|
default:
|
|
170
|
-
console.error(`handleDeprecationWarning --\x3e No type found for desired deprecation: ${n} in q2-${
|
|
195
|
+
console.error(`handleDeprecationWarning --\x3e No type found for desired deprecation: ${n} in q2-${i}: deprecatedItemType = ${n}`);
|
|
171
196
|
}
|
|
172
197
|
}
|
|
173
198
|
}
|
|
174
199
|
|
|
175
200
|
function renderMessages(n) {
|
|
176
|
-
const
|
|
201
|
+
const o = n.hasError ? "danger" : "info";
|
|
177
202
|
return e("div", {
|
|
178
203
|
class: "messages-container"
|
|
179
204
|
}, e("q2-message", {
|
|
180
205
|
appearance: "minimal",
|
|
181
206
|
description: true,
|
|
182
|
-
type:
|
|
207
|
+
type: o,
|
|
183
208
|
"test-id": "message"
|
|
184
209
|
}, e("ul", {
|
|
185
210
|
id: n.inputDescribedBy
|
|
@@ -190,16 +215,16 @@ function renderMessages(n) {
|
|
|
190
215
|
|
|
191
216
|
function setMessageHeight(e) {
|
|
192
217
|
const n = e.hostElement.shadowRoot.querySelector(".messages-container");
|
|
193
|
-
const
|
|
218
|
+
const o = n.querySelector("q2-message");
|
|
194
219
|
nextPaint((() => {
|
|
195
|
-
const
|
|
196
|
-
if (n.style.getPropertyValue("height") === `${
|
|
197
|
-
if (
|
|
198
|
-
|
|
220
|
+
const i = e.showMessages && e.hasFocus ? o.getBoundingClientRect().height : 0;
|
|
221
|
+
if (n.style.getPropertyValue("height") === `${i}px`) return;
|
|
222
|
+
if (i === 0) {
|
|
223
|
+
o.classList.add("invisible");
|
|
199
224
|
n.style.removeProperty("height");
|
|
200
225
|
} else {
|
|
201
|
-
|
|
202
|
-
n.style.setProperty("height", `${
|
|
226
|
+
o.classList.remove("invisible");
|
|
227
|
+
n.style.setProperty("height", `${i}px`);
|
|
203
228
|
}
|
|
204
229
|
}));
|
|
205
230
|
}
|
|
@@ -228,28 +253,28 @@ const handleColor = e => {
|
|
|
228
253
|
* @return {Promise<string>} All translated text content in DOM order
|
|
229
254
|
*/ const getAllText = async (e, n = {}) => {
|
|
230
255
|
if (!e) return "";
|
|
231
|
-
const
|
|
256
|
+
const o = Object.assign({
|
|
232
257
|
trim: true,
|
|
233
258
|
normalizeWhitespace: false,
|
|
234
259
|
skipComponentReady: false
|
|
235
260
|
}, n);
|
|
236
|
-
const
|
|
261
|
+
const i = new Set([ "STYLE", "SCRIPT", "NOSCRIPT", "TEMPLATE", "#comment" ]);
|
|
237
262
|
const t = new WeakSet;
|
|
238
263
|
let a = "";
|
|
239
264
|
async function processNode(e) {
|
|
240
265
|
var n;
|
|
241
|
-
if (t.has(e) ||
|
|
266
|
+
if (t.has(e) || i.has(e.nodeName)) return;
|
|
242
267
|
t.add(e);
|
|
243
268
|
// Handle text nodes
|
|
244
269
|
if (e.nodeType === Node.TEXT_NODE) {
|
|
245
|
-
const
|
|
246
|
-
if (
|
|
270
|
+
const i = o.trim ? e.textContent.trim() : e.textContent;
|
|
271
|
+
if (i) {
|
|
247
272
|
// Add space between adjacent text nodes if needed
|
|
248
|
-
if (a && !a.endsWith(" ") && !
|
|
273
|
+
if (a && !a.endsWith(" ") && !i.startsWith(" ")) {
|
|
249
274
|
a += " ";
|
|
250
275
|
}
|
|
251
276
|
// Translate the text
|
|
252
|
-
a +=
|
|
277
|
+
a += o.skipComponentReady ? (n = window.TectonElements) === null || n === void 0 ? void 0 : n.loc(i) : loc(i);
|
|
253
278
|
}
|
|
254
279
|
return;
|
|
255
280
|
}
|
|
@@ -257,7 +282,7 @@ const handleColor = e => {
|
|
|
257
282
|
if (e.nodeType === Node.ELEMENT_NODE) {
|
|
258
283
|
// Wait for Stencil component if needed
|
|
259
284
|
const n = e.nodeName.startsWith("Q2-") && typeof e.componentOnReady === "function";
|
|
260
|
-
if (n && !
|
|
285
|
+
if (n && !o.skipComponentReady) {
|
|
261
286
|
await e.componentOnReady();
|
|
262
287
|
}
|
|
263
288
|
// Process children in light DOM
|
|
@@ -292,14 +317,14 @@ const handleColor = e => {
|
|
|
292
317
|
}
|
|
293
318
|
await processNode(e);
|
|
294
319
|
// Apply final formatting
|
|
295
|
-
if (
|
|
320
|
+
if (o.trim) {
|
|
296
321
|
a = a.trim();
|
|
297
322
|
}
|
|
298
|
-
if (
|
|
323
|
+
if (o.normalizeWhitespace) {
|
|
299
324
|
a = a.replace(/\s+/g, " ");
|
|
300
325
|
}
|
|
301
326
|
return a;
|
|
302
327
|
};
|
|
303
328
|
|
|
304
|
-
export { handleAriaLabel as a, handleColor as b, createGuid as c, isMobile as d, hasSlotContent as e, renderLabel as f, getAriaValueFromProp as g, handleDeprecationWarning as h, isEventFromElement as i, handleRenamedProp as j, isTouchDevice as k, loc as l, resizeIframe as m, nextPaint as n, overrideFocus as o, debounce as p, isRelatedTargetWithinHost as q, renderMessages as r, setMessageHeight as s, isFirefox as t, getAllText as u, isVisible as v, waitForNextPaint as w };
|
|
305
|
-
//# sourceMappingURL=index-
|
|
329
|
+
export { handleAriaLabel as a, handleColor as b, createGuid as c, isMobile as d, hasSlotContent as e, renderLabel as f, getAriaValueFromProp as g, handleDeprecationWarning as h, isEventFromElement as i, handleRenamedProp as j, isTouchDevice as k, loc as l, resizeIframe as m, nextPaint as n, overrideFocus as o, debounce as p, isRelatedTargetWithinHost as q, renderMessages as r, setMessageHeight as s, isFirefox as t, getAllText as u, isVisible as v, waitForNextPaint as w, isInScrollableContainer as x };
|
|
330
|
+
//# sourceMappingURL=index-99c46474.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["debounce","fn","delay","timeout","args","clearTimeout","setTimeout","isMobile","test","navigator","userAgent","isInScrollableContainer","element","current","document","body","documentElement","parentElement","root","getRootNode","host","style","window","getComputedStyle","hasScrollableOverflow","overflow","overflowX","overflowY","hasOverflowingContent","scrollHeight","clientHeight","scrollWidth","clientWidth","isRelatedTargetWithinHost","event","relatedTarget","contains","isEventFromElement","_a","composedPath","call","overrideFocus","hostElement","focus","dispatchEvent","FocusEvent","bubbles","isFirefox","toLowerCase","includes","isTouchDevice","maxTouchPoints","getAriaValueFromProp","prop","validValues","undefined","guid","createGuid","nextPaint","requestAnimationFrame","isVisible","offsetWidth","offsetHeight","getClientRects","length","waitForNextPaint","Promise","resolve","loc","key","subs","Tecton","noStrings","_c","_b","TectonElements","renderLabel","target","label","hideLabel","optional","readonly","labelClasses","helpText","shouldHideLabel","labelSlotElements","querySelectorAll","hasSlotContent","hasLabel","push","h","class","htmlFor","inputId","join","name","slotName","querySelector","handleAriaLabel","ariaLabel","FW_WRAPPERS_EMPTY_PROP","Symbol","toString","handleRenamedProp","oldProp","newProp","removeOldProp","handleDeprecationWarning","deprecatedItemName","deprecatedItemType","location","hostname","componentName","constructor","slice","console","warn","error","renderMessages","type","hasError","appearance","description","id","inputDescribedBy","messages","map","message","setMessageHeight","messageContainer","shadowRoot","q2Message","height","showMessages","hasFocus","getBoundingClientRect","getPropertyValue","classList","add","removeProperty","remove","setProperty","resizeIframe","handleColor","intent","color","getAllText","async","options","opts","Object","assign","trim","normalizeWhitespace","skipComponentReady","nodesToSkip","Set","processedNodes","WeakSet","result","processNode","node","has","nodeName","nodeType","Node","TEXT_NODE","text","textContent","endsWith","startsWith","ELEMENT_NODE","isStencilComponent","componentOnReady","child","childNodes","shadowChild","assignedNodes","assigned","fallback","replace"],"sources":["src/utils/index.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { Q2Btn } from 'src/components/q2-btn/q2-btn';\nimport { Q2Calendar } from 'src/components/q2-calendar/q2-calendar';\nimport { Q2Carousel } from 'src/components/q2-carousel/q2-carousel';\nimport { Q2Checkbox } from 'src/components/q2-checkbox/q2-checkbox';\nimport { Q2CheckboxGroup } from 'src/components/q2-checkbox-group/q2-checkbox-group';\nimport { Q2RadioGroup } from 'src/components/q2-radio-group/q2-radio-group';\nimport { Q2Dropdown } from 'src/components/q2-dropdown/q2-dropdown';\nimport { Q2DropdownItem } from 'src/components/q2-dropdown-item/q2-dropdown-item';\nimport { Q2EditableField } from 'src/components/q2-editable-field/q2-editable-field';\nimport { Q2Input } from 'src/components/q2-input/q2-input';\nimport { Q2Loading } from 'src/components/q2-loading/q2-loading';\nimport { Q2Radio } from 'src/components/q2-radio/q2-radio';\nimport { Q2Select } from 'src/components/q2-select/q2-select';\nimport { FormFieldTypes, IDict } from 'src/util';\n\nexport const debounce = <F extends (...args: Parameters<F>) => ReturnType<F>>(fn: F, delay: number = 300) => {\n let timeout: ReturnType<typeof setTimeout>;\n return function (...args: Parameters<F>) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n fn(...args);\n }, delay);\n };\n};\n\nexport function isAndroid(): boolean {\n return /Android/i.test(navigator.userAgent);\n}\n\nexport function isIOS(): boolean {\n return /iPad|iPhone|iPod/.test(navigator.userAgent);\n}\n\nexport function isMobile(): boolean {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|Mobile|IEMobile|Windows Phone|Opera Mini/i.test(\n navigator.userAgent\n );\n}\n\nexport function isInScrollableContainer(element) {\n let current = element;\n\n while (current && current !== document.body && current !== document.documentElement) {\n // Move to parent\n if (current.parentElement) {\n current = current.parentElement;\n } else {\n // Try to cross shadow DOM boundary\n const root = current.getRootNode();\n if (root && root.host) {\n current = root.host;\n } else {\n break;\n }\n }\n\n const style = window.getComputedStyle(current);\n const hasScrollableOverflow =\n style.overflow === 'scroll' ||\n style.overflow === 'auto' ||\n style.overflowX === 'scroll' ||\n style.overflowX === 'auto' ||\n style.overflowY === 'scroll' ||\n style.overflowY === 'auto';\n\n const hasOverflowingContent =\n current.scrollHeight > current.clientHeight || current.scrollWidth > current.clientWidth;\n\n if (hasScrollableOverflow && hasOverflowingContent) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function isHostLosingFocus(event: FocusEvent, hostElement: HTMLElement) {\n const type = event.type;\n const focusInTypes = ['focusin', 'focus'];\n const isFocusIn = focusInTypes.includes(type);\n\n // on focusin: `target` is element losing focus, `relatedTarget` is element gaining focus\n // on focusout: `target` is element gaining focus, `relatedTarget` is element losing focus\n const elementGainingFocus = isFocusIn ? event.target : event.relatedTarget;\n\n const isElementNestedInHostElement = (element: HTMLElement) => {\n if (element === hostElement) return true;\n if (element.parentElement) {\n return isElementNestedInHostElement(element.parentElement);\n }\n return false;\n };\n\n if (!(elementGainingFocus instanceof HTMLElement)) return true;\n return !isElementNestedInHostElement(elementGainingFocus);\n}\n\nexport function isRelatedTargetWithinHost(event: FocusEvent, element: HTMLElement) {\n return event.relatedTarget !== element && !element.contains(event.relatedTarget as Node);\n}\n\nexport function isEventFromElement(event: Event, element: HTMLElement): boolean {\n return event.composedPath?.()[0] === element;\n}\n\nexport function overrideFocus(hostElement: HTMLElement) {\n hostElement.focus = () => hostElement?.dispatchEvent(new FocusEvent('focus', { bubbles: false }));\n}\n\nexport function isFirefox() {\n const userAgent = navigator.userAgent.toLowerCase();\n return userAgent.includes('firefox');\n}\n\nexport function isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n}\n\nexport function isSafari() {\n const userAgent = navigator.userAgent.toLowerCase();\n return userAgent.includes('safari') && !userAgent.includes('chrome');\n}\n\n/**\n * Returns the value of a prop if it is defined and included in the `validValues`\n * array. This is used primarily to prevent Vue wrappers from setting aria props\n * to \"Symbol()\" when the prop is not set.\n */\nexport function getAriaValueFromProp(prop: string, validValues?: string[]) {\n if (prop === undefined) return prop;\n if (!validValues) return prop !== 'Symbol()' ? prop : undefined;\n return validValues.includes(prop) || prop === '' ? prop : undefined;\n}\n\nlet guid: number = 1000;\nexport function createGuid(): number {\n return guid++;\n}\n\nexport function nextPaint(fn: (value?: unknown) => void) {\n requestAnimationFrame(() => {\n requestAnimationFrame(fn);\n });\n}\n\nexport function isVisible(element: HTMLElement) {\n return element.offsetWidth > 0 || element.offsetHeight > 0 || element.getClientRects().length > 0;\n}\n\nexport function waitForNextPaint() {\n return new Promise(resolve => nextPaint(resolve));\n}\n\nexport function capitalize(value: string) {\n return `${value.charAt(0).toUpperCase()}${value.slice(1)}`;\n}\n\nexport function pick(props: string[]): (obj: object) => object {\n return obj => {\n return props.reduce((memo, prop) => {\n return {\n ...memo,\n [prop]: obj[prop],\n };\n }, {});\n };\n}\n\nexport function loc(key: string, subs?: IDict<any> | string[]) {\n if (!key) return '';\n if (window.Tecton?.noStrings === true) {\n return key;\n }\n return window?.TectonElements?.loc(key, subs) ?? key;\n}\n\nexport function renderLabel(target: FormFieldTypes | Q2RadioGroup | Q2CheckboxGroup) {\n const { label, hideLabel, optional, readonly } = target;\n const labelClasses: string[] = ['input-label'];\n let helpText = '';\n\n let shouldHideLabel = hideLabel;\n if (!shouldHideLabel) {\n const labelSlotElements = target.hostElement.querySelectorAll<HTMLSlotElement>('[slot=\"label\"]');\n const hasSlotContent = labelSlotElements.length > 0;\n const hasLabel = !!label;\n\n shouldHideLabel = hasLabel || hasSlotContent ? false : true;\n }\n\n if (shouldHideLabel) labelClasses.push('sr');\n if (optional) {\n helpText = <span class=\"optional-tag\">{loc('tecton.element.input.optional')}</span>;\n }\n if (readonly) {\n helpText = <span class=\"optional-tag\">{loc('tecton.element.input.readonly')}</span>;\n labelClasses.push('readonly-field');\n }\n return (\n <label\n htmlFor={target.inputId}\n class={labelClasses.join(' ')}\n >\n <slot name=\"label\">\n {label ? loc(label) : undefined}\n {helpText}\n </slot>\n </label>\n );\n}\n\nexport function hasSlotContent(target: HTMLElement, slotName: string) {\n return target.querySelector(`[slot=\"${slotName}\"]`) !== null;\n}\n\nexport function handleAriaLabel(\n target:\n | Q2Input\n | Q2Select\n | Q2Radio\n | Q2Checkbox\n | Q2EditableField\n | Q2Dropdown\n | Q2DropdownItem\n | Q2Loading\n | Q2Carousel\n | Q2Calendar\n | Q2Btn\n) {\n const { ariaLabel } = target;\n if (!ariaLabel) return;\n\n // If empty ariaLabel prop is set to primitive symbol by framework wrapper, set ariaLabel to undefined and return\n const FW_WRAPPERS_EMPTY_PROP = Symbol().toString();\n if (ariaLabel === FW_WRAPPERS_EMPTY_PROP) {\n target.ariaLabel = undefined;\n return;\n }\n\n // If ariaLabel is set, set hideLabel to true and set label to ariaLabel\n if ('hideLabel' in target) target.hideLabel = true;\n target.label = loc(ariaLabel);\n target.ariaLabel = undefined;\n}\n\n/**\n * Handles when a prop has been renamed on a component without introducing a breaking change.\n */\nexport function handleRenamedProp(target: object, oldProp: string, newProp: string, removeOldProp?: boolean) {\n if (typeof target[oldProp] === 'undefined') return;\n\n // If old prop has value, aka set in component, call handleDeprecationWarning()\n if (target[oldProp]) {\n handleDeprecationWarning(target, oldProp, 'prop');\n }\n\n target[newProp] = target[oldProp];\n\n if (removeOldProp) {\n delete target[oldProp];\n }\n}\n\nexport function handleDeprecationWarning(\n target: object,\n deprecatedItemName: string,\n deprecatedItemType: 'function' | 'prop' | 'method' | 'event'\n) {\n if (window.location.hostname === 'localhost' || window.location.host === 'stack.q2developer.com') {\n if (target[deprecatedItemName] === 'undefined') return;\n\n const componentName = target.constructor.name.toLowerCase().slice(2);\n\n switch (deprecatedItemType) {\n case 'prop':\n if (deprecatedItemName === 'size' && componentName === 'btn') {\n console.warn(\n `The property of size in q2-btn should not be typeof number, or typeof string containing a number. This functionality will be deprecated in an upcoming release. Instead, please use the value 'undefined', or typeof string with any of the following values: \"small\" / \"medium\" / \"large\" `\n );\n } else {\n console.warn(\n `The property ${deprecatedItemName} in q2-${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n }\n break;\n\n case 'function':\n console.warn(\n `The function ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n case 'method':\n console.warn(\n `The method ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n case 'event':\n console.warn(\n `The event ${deprecatedItemName} in ${componentName} has been marked for deprecation and will be removed in an upcoming major release.`\n );\n break;\n\n default:\n console.error(\n `handleDeprecationWarning --> No type found for desired deprecation: ${deprecatedItemName} in q2-${componentName}: deprecatedItemType = ${deprecatedItemName}`\n );\n }\n }\n}\n\nexport function renderMessages(target: FormFieldTypes) {\n const type = target.hasError ? 'danger' : 'info';\n\n return (\n <div class=\"messages-container\">\n <q2-message\n appearance=\"minimal\"\n description\n type={type}\n test-id=\"message\"\n >\n <ul id={target.inputDescribedBy}>\n {target.messages.map(message => (\n <li test-id=\"messageListItem\">{loc(message)}</li>\n ))}\n </ul>\n </q2-message>\n </div>\n );\n}\n\nexport function setMessageHeight(target: FormFieldTypes) {\n const messageContainer = (target.hostElement.shadowRoot as ShadowRoot).querySelector<HTMLDivElement>(\n '.messages-container'\n );\n const q2Message = messageContainer.querySelector('q2-message');\n nextPaint(() => {\n const height = target.showMessages && target.hasFocus ? q2Message.getBoundingClientRect().height : 0;\n\n if (messageContainer.style.getPropertyValue('height') === `${height}px`) return;\n\n if (height === 0) {\n q2Message.classList.add('invisible');\n messageContainer.style.removeProperty('height');\n } else {\n q2Message.classList.remove('invisible');\n messageContainer.style.setProperty('height', `${height}px`);\n }\n });\n}\n\nexport const resizeIframe = () => {\n return window.TectonElements?.resizeIframe?.();\n};\n\n// Handling color attribute (deprecated)\nexport const handleColor = (target: Q2Btn) => {\n if (!target.intent && ['primary', 'secondary'].includes(target.color)) {\n target.intent = `workflow-${target.color}` as HTMLQ2BtnElement['intent'];\n target.color = undefined;\n }\n};\n\n/**\n * Gets all translated text content from an element, including shadow DOM content\n *\n * @param {Element} element - The element to extract text from\n * @param {Object} options - Configuration options\n * @param {boolean} [options.trim=true] - Whether to trim whitespace\n * @param {boolean} [options.normalizeWhitespace=false] - Whether to normalize whitespace\n * @param {boolean} [options.skipComponentReady=false] - Skip waiting for components (for test environments)\n * @return {Promise<string>} All translated text content in DOM order\n */\nexport const getAllText = async (element, options = {}) => {\n if (!element) return '';\n\n const opts = {\n trim: true,\n normalizeWhitespace: false,\n skipComponentReady: false,\n ...options,\n };\n\n const nodesToSkip = new Set(['STYLE', 'SCRIPT', 'NOSCRIPT', 'TEMPLATE', '#comment']);\n const processedNodes = new WeakSet();\n let result = '';\n\n async function processNode(node) {\n if (processedNodes.has(node) || nodesToSkip.has(node.nodeName)) return;\n\n processedNodes.add(node);\n\n // Handle text nodes\n if (node.nodeType === Node.TEXT_NODE) {\n const text = opts.trim ? node.textContent.trim() : node.textContent;\n\n if (text) {\n // Add space between adjacent text nodes if needed\n if (result && !result.endsWith(' ') && !text.startsWith(' ')) {\n result += ' ';\n }\n\n // Translate the text\n result += opts.skipComponentReady ? window.TectonElements?.loc(text) : loc(text);\n }\n return;\n }\n\n // Handle element nodes\n if (node.nodeType === Node.ELEMENT_NODE) {\n // Wait for Stencil component if needed\n const isStencilComponent = node.nodeName.startsWith('Q2-') && typeof node.componentOnReady === 'function';\n\n if (isStencilComponent && !opts.skipComponentReady) {\n await node.componentOnReady();\n }\n\n // Process children in light DOM\n for (const child of node.childNodes) {\n await processNode(child);\n }\n\n // Process shadow DOM if present\n if (node.shadowRoot) {\n for (const shadowChild of node.shadowRoot.childNodes) {\n await processNode(shadowChild);\n }\n }\n\n // Handle slot elements with assigned nodes\n if (node.nodeName === 'SLOT' && typeof node.assignedNodes === 'function') {\n const assignedNodes = node.assignedNodes();\n\n if (assignedNodes.length > 0) {\n for (const assigned of assignedNodes) {\n if (!processedNodes.has(assigned)) {\n await processNode(assigned);\n }\n }\n } else {\n // Process slot fallback content\n for (const fallback of node.childNodes) {\n if (!processedNodes.has(fallback)) {\n await processNode(fallback);\n }\n }\n }\n }\n }\n }\n\n await processNode(element);\n\n // Apply final formatting\n if (opts.trim) {\n result = result.trim();\n }\n\n if (opts.normalizeWhitespace) {\n result = result.replace(/\\s+/g, ' ');\n }\n\n return result;\n};\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as t, h as e } from "./index-7a5365e2.js";
|
|
2
2
|
|
|
3
|
-
import { n as i } from "./index-
|
|
3
|
+
import { n as i } from "./index-99c46474.js";
|
|
4
4
|
|
|
5
5
|
const o = "*{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(:not([hidden])){display:block;width:100%;--comp-default-btn-group-margin:var(--app-scale-5x, 25px) 0;margin:var(--tct-btn-group-margin, var(--comp-default-btn-group-margin))}.container{width:100%;display:flex;gap:var(--tct-btn-group-gap, var(--app-scale-2x, 10px))}.container.vertical{flex-direction:var(--tct-btn-group-vertical-flex-direction, column)}.container.vertical ::slotted(q2-btn){display:block;width:100%}.container.horizontal{justify-content:var(--tct-btn-group-horizontal-justify-content, flex-start);flex-direction:var(--tct-btn-group-horizontal-flex-direction, row-reverse);align-items:var(--tct-btn-group-horizontal-align-items, center);flex-wrap:var(--tct-btn-group-horizontal-flex-wrap, wrap)}.container.horizontal.full-width{flex-wrap:nowrap}.container.vertical ::slotted(q2-btn),.container.horizontal.full-width ::slotted(q2-btn){display:block;width:100%}";
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as e, c as t, h as n, F as o, g as i } from "./index-7a5365e2.js";
|
|
2
2
|
|
|
3
|
-
import { l as a, w as r } from "./index-
|
|
3
|
+
import { l as a, w as r } from "./index-99c46474.js";
|
|
4
4
|
|
|
5
5
|
var s = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as t, h as r, g as o, F as a, a as e, c as i } from "./index-7a5365e2.js";
|
|
2
2
|
|
|
3
|
-
import { h as n, l as c, a as s, b as d, o as l, i as p, g as b, c as u, d as f, s as h, e as v, n as m, r as x, f as g } from "./index-
|
|
3
|
+
import { h as n, l as c, a as s, b as d, o as l, i as p, g as b, c as u, d as f, s as h, e as v, n as m, r as x, f as g } from "./index-99c46474.js";
|
|
4
4
|
|
|
5
5
|
import { s as k } from "./shapes-c7e1a3fa.js";
|
|
6
6
|
|
|
@@ -2,7 +2,7 @@ import { r as e, c as t, h as i, g as a } from "./index-7a5365e2.js";
|
|
|
2
2
|
|
|
3
3
|
import { d as n } from "./index-3184c760.js";
|
|
4
4
|
|
|
5
|
-
import { l as s, a as r, o, i as d, w as l, j as c } from "./index-
|
|
5
|
+
import { l as s, a as r, o, i as d, w as l, j as c } from "./index-99c46474.js";
|
|
6
6
|
|
|
7
7
|
function formatDateISO(e) {
|
|
8
8
|
const t = new Date(e);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as t, c as a, h as r, F as c, g as o } from "./index-7a5365e2.js";
|
|
2
2
|
|
|
3
|
-
import { k as e, o as i, i as s } from "./index-
|
|
3
|
+
import { k as e, o as i, i as s } from "./index-99c46474.js";
|
|
4
4
|
|
|
5
5
|
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{display:block}.container{position:relative;width:100%;text-align:start;height:100%;display:grid;gap:var(--tct-card-gap, var(--t-card-gap, var(--app-scale-3x, 15px)));margin:0;color:var(--tct-card-color, var(--t-card-color, var(--t-text, #4d4d4d)));--comp-avatar-size:var(--tct-card-avatar-size, var(--t-card-avatar-size, 44px));--comp-chevron-size:0;--comp-bar-width:var(--tct-card-bar-width, var(--t-card-bar-width, var(--app-scale-2x, 10px)));--comp-card-padding:var(--tct-card-padding, var(--t-card-padding, var(--app-scale-4x, 20px)))}.container.is-small{--comp-avatar-size:var(--tct-card-avatar-size, var(--t-card-avatar-size, 26px))}.container.has-avatar{grid-template-columns:var(--comp-avatar-size) 1fr;--tct-avatar-width:var(--comp-avatar-size);--tct-avatar-height:var(--comp-avatar-size);--tct-icon-size:var(--comp-avatar-size)}:host([bar][is-static]) .container{padding-left:var(--comp-card-padding)}:host(:not([is-static])) .container{--comp-border-radius:var(--tct-card-border-radius, var(--t-card-border-radius, var(--app-border-radius-1, 4px)));--comp-border-width:var(--tct-card-border-width, var(--t-card-border-width, 0px));border:none;background:var(--tct-card-background, var(--t-card-background, var(--t-base, #ffffff)));padding:var(--comp-card-padding);text-decoration:none;border-width:var(--comp-border-width);border-color:var(--tct-card-border-color, var(--t-card-border-color, transparent));border-style:var(--tct-card-border-style, solid);border-radius:var(--comp-border-radius);transition:box-shadow var(--tct-tween-1, var(--app-tween-1, 0.2s ease));box-shadow:var(--tct-card-box-shadow, var(--t-card-box-shadow, var(--app-shadow-2, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 4px 8px rgba(0, 0, 0, 0.14))))}:host(:not([is-static])) .container.clickable{cursor:pointer}@media (hover: hover){:host(:not([is-static])) .container.clickable{--comp-card-hover-box-shadow:var(--tct-card-hover-box-shadow, var(--t-card-hover-box-shadow, var(--app-shadow-3, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 8px 16px rgba(0, 0, 0, 0.14))))}:host(:not([is-static])) .container.clickable:hover,:host(:not([is-static])) .container.clickable:active,:host(:not([is-static])) .container.clickable:focus{color:var(--tct-card-color, var(--t-card-color, var(--t-text, #4d4d4d)));box-shadow:var(--const-double-focus-ring)}:host(:not([is-static])) .container.clickable:hover{box-shadow:var(--comp-card-hover-box-shadow)}:host(:not([is-static])) .container.clickable:focus:hover{box-shadow:var(--const-double-focus-ring), var(--comp-card-hover-box-shadow)}:host(:not([is-static])) .container.clickable:active{box-shadow:var(--tct-card-active-box-shadow, var(--t-card-active-box-shadow, var(--app-shadow-1, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 2px 4px rgba(0, 0, 0, 0.14))))}}:host(:not([is-static])) .container.is-touch{--comp-chevron-size:var(--tct-card-chevron-size, var(--t-card-chevron-size, 26px));grid-template-columns:1fr var(--comp-chevron-size)}:host(:not([is-static])) .container.has-avatar.is-touch{grid-template-columns:var(--comp-avatar-size) 1fr var(--comp-chevron-size)}.content{overflow:hidden;display:grid;gap:var(--tct-card-content-gap, var(--t-card-content-gap, var(--app-scale-1x, 5px)));align-content:start}h3,p{margin:0;padding:0;line-height:var(--tct-card-font-height, var(--t-card-font-height, 20px))}h3{font-weight:var(--tct-card-font-weight, var(--t-card-font-weight, 600));font-size:var(--tct-card-font-size, var(--t-card-font-size, 17px));text-overflow:ellipsis;overflow:hidden;white-space:nowrap}p{text-overflow:ellipsis;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.bar{--comp-bar-border-radius:calc(var(--comp-border-radius) - var(--comp-border-width));border-radius:var(--comp-bar-border-radius) 0 0 var(--comp-bar-border-radius);position:absolute;inset:0 auto auto 0;width:var(--comp-bar-width);background:var(--comp-bar-color);height:100%}.bar.color-primary{--comp-bar-color:var(--tct-card-bar-color-primary, var(--t-primary, #5446a4))}.bar.color-secondary{--comp-bar-color:var(--tct-card-bar-color-secondary, var(--t-secondary, #b6b3cc))}.bar.color-tertiary{--comp-bar-color:var(--tct-card-bar-color-tertiary, var(--t-tertiary, #ebe8fc))}.bar.color-info{--comp-bar-color:var(--tct-card-bar-color-info, var(--const-stoplight-info, #0079c1))}.bar.color-success{--comp-bar-color:var(--tct-card-bar-color-success, var(--const-stoplight-success, #0e8a00))}.bar.color-warning{--comp-bar-color:var(--tct-card-bar-color-warning, var(--const-stoplight-warning, #c35500))}.bar.color-alert{--comp-bar-color:var(--tct-card-bar-color-alert, var(--const-stoplight-alert, #c35500))}.bar.color-accent-1{--comp-bar-color:var(--tct-card-bar-color-accent-1, var(--t-accent-1, #e05252))}.bar.color-accent-2{--comp-bar-color:var(--tct-card-bar-color-accent-2, var(--t-accent-2, #e09952))}.bar.color-accent-3{--comp-bar-color:var(--tct-card-bar-color-accent-3, var(--t-accent-3, #e0e052))}.bar.color-accent-4{--comp-bar-color:var(--tct-card-bar-color-accent-4, var(--t-accent-4, #99e052))}.bar.color-accent-5{--comp-bar-color:var(--tct-card-bar-color-accent-5, var(--t-accent-5, #52e052))}.bar.color-accent-6{--comp-bar-color:var(--tct-card-bar-color-accent-6, var(--t-accent-6, #52e099))}.bar.color-accent-7{--comp-bar-color:var(--tct-card-bar-color-accent-7, var(--t-accent-7, #52e0e0))}.bar.color-accent-8{--comp-bar-color:var(--tct-card-bar-color-accent-8, var(--t-accent-8, #5299e0))}.bar.color-accent-9{--comp-bar-color:var(--tct-card-bar-color-accent-9, var(--t-accent-9, #5252e0))}.bar.color-accent-10{--comp-bar-color:var(--tct-card-bar-color-accent-10, var(--t-accent-10, #9952e0))}.bar.color-accent-11{--comp-bar-color:var(--tct-card-bar-color-accent-11, var(--t-accent-11, #e052e0))}.bar.color-accent-12{--comp-bar-color:var(--tct-card-bar-color-accent-12, var(--t-accent-12, #e05299))}.touch-indicator{align-self:center;--tct-icon-size:var(--comp-chevron-size)}";
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as e, c as a, h as t, H as r, g as o } from "./index-7a5365e2.js";
|
|
2
2
|
|
|
3
|
-
import { l as n } from "./index-
|
|
3
|
+
import { l as n } from "./index-99c46474.js";
|
|
4
4
|
|
|
5
5
|
const s = "*{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}q2-carousel .swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;transition:all 0.2s}q2-carousel-pane.q2-carousel-pane{--comp-carousel-pane-tween:var(--tct-tween-1, var(--app-tween-1, 0.2s ease));--comp-carousel-shadow:var(--app-shadow-2, 0px 0px 2px rgba(0, 0, 0, 0.12), 0px 4px 8px rgba(0, 0, 0, 0.14));cursor:grab}q2-carousel-pane.q2-carousel-pane:not([is-active-pane]) *{cursor:pointer}q2-carousel-pane.q2-carousel-pane:focus{box-shadow:none}q2-carousel-pane.q2-carousel-pane:focus .q2-carousel-pane-main-content{outline:none;box-shadow:var(--const-double-focus-ring)}q2-carousel-pane.q2-carousel-pane button{border:0;background:transparent;transition:all 0.2s;opacity:0.3;cursor:pointer}q2-carousel-pane.q2-carousel-pane button:hover{opacity:0.7}q2-carousel-pane.q2-carousel-pane .q2-carousel-pane-main-content{box-shadow:var(--comp-carousel-shadow);transition:var(--comp-carousel-pane-tween);background:var(--tct-carousel-background, var(--tct-carousel-background-color, var(--t-carousel-background-color, var(--tct-white, var(--app-white, #ffffff)))));border:var(--tct-carousel-pane-border-width, var(--t-carousel-pane-border-width, 0px)) solid var(--tct-carousel-pane-border-color, var(--t-carousel-pane-border-color, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc))))));border-radius:var(--tct-carousel-pane-border-radius, var(--t-carousel-pane-border-radius, 8px));padding:var(--tct-carousel-pane-padding, var(--t-carousel-pane-padding, 7px));height:var(--tct-carousel-pane-height, var(--t-carousel-pane-height, 10em))}q2-carousel-pane.q2-carousel-pane .q2-carousel-pane-main-content:hover{box-shadow:var(--const-double-focus-ring), var(--comp-carousel-shadow)}q2-carousel-pane.q2-carousel-pane[slot-frameless]:not([slot-frameless=false]) .q2-carousel-pane-main-content{box-shadow:none;border:0;border-radius:0;padding:0}";
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as e, c as t, h as i, F as n, H as s, g as r } from "./index-7a5365e2.js";
|
|
2
2
|
|
|
3
|
-
import { c as o, l as a, a as l, o as c, i as f } from "./index-
|
|
3
|
+
import { c as o, l as a, a as l, o as c, i as f } from "./index-99c46474.js";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* SSR Window 4.0.2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r, c as a, h as t, g as e } from "./index-7a5365e2.js";
|
|
2
2
|
|
|
3
|
-
import { o as i, l as n } from "./index-
|
|
3
|
+
import { o as i, l as n } from "./index-99c46474.js";
|
|
4
4
|
|
|
5
5
|
import { _ as o, c as s, e as v, l as f, u, s as l, i as h, g as d, n as c, Z as p, a as m, b as y, t as b, d as S, r as g, f as P, G as w, h as M, j as I, S as D, m as L, k as x, o as N, p as T, q as k, P as C, v as A, w as E, x as O, y as B, z as F, A as z, C as G, B as U, D as V, E as R, F as q, H as K, I as j, L as _, J as Z, K as $, M as X, N as Y, O as H, Q as J, R as W, T as Q, U as rr, V as ar, W as tr, X as er, Y as ir, $ as nr, a0 as or, a1 as sr, a2 as vr, a3 as fr, a4 as ur, a5 as lr, a6 as hr, a7 as dr, a8 as cr, a9 as pr, aa as mr, ab as yr, ac as br, ad as Sr, ae as gr, af as Pr } from "./charting-1abfb877.js";
|
|
6
6
|
|