@genesislcap/design-system-configurator 14.476.0 → 14.477.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/445.1453f57156984b5c184ade9268f99598.js.map +1 -0
- package/dist/{445.445.5284ee7dcb17042d6ed9.js → 445.445.1e7a32e17c1fa9bc6b35.js} +2 -2
- package/dist/designSystemConfigurator.b0988fc779d81793812e22457ded1b46.js.map +1 -0
- package/dist/index.html +1 -1
- package/dist/main.2998d19f765a3b36b174ad5e90fde9be.js.map +1 -0
- package/dist/main.ffa12b49ab901b12bae2.js +2 -0
- package/dist/{npm.ag-grid-community.065c3632fe14cad54fabab52406e4759.js.map → npm.ag-grid-community.80bfa283ddc75a1c7b9b81733c7fafda.js.map} +1 -1
- package/dist/{npm.ag-grid-community.909.4279495def4b3f05276a.js → npm.ag-grid-community.909.38e00d5aa526065d8b43.js} +3 -3
- package/dist/npm.ag-stack.2e557a7c22cb1ed6a21d029806b1289d.js.map +1 -0
- package/dist/npm.ag-stack.475.cb6224965c8435e4f803.js +2 -0
- package/dist/remoteEntry.js +2 -2
- package/package.json +13 -13
- package/dist/445.2ef63d3e6c1723f6088ff7ce10894ef1.js.map +0 -1
- package/dist/designSystemConfigurator.e65c599a1975b09ba45b8fbe94b5749b.js.map +0 -1
- package/dist/main.29ea13a8b799cc26ab31.js +0 -2
- package/dist/main.3178cf1e771c47682fff76173b478de3.js.map +0 -1
- /package/dist/{npm.ag-grid-community.909.4279495def4b3f05276a.js.LICENSE.txt → npm.ag-grid-community.909.38e00d5aa526065d8b43.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"npm.ag-stack.475.xxxxxxxxxxxxxxxxxxxx.js","mappings":"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","sources":["webpack://@genesislcap/design-system-configurator/javascript/node_modules/ag-stack/dist/package/main.esm.mjs"],"sourcesContent":["// packages/ag-stack/src/constants/keyCode.ts\nvar KeyCode = {\n BACKSPACE: \"Backspace\",\n TAB: \"Tab\",\n ENTER: \"Enter\",\n ESCAPE: \"Escape\",\n SPACE: \" \",\n LEFT: \"ArrowLeft\",\n UP: \"ArrowUp\",\n RIGHT: \"ArrowRight\",\n DOWN: \"ArrowDown\",\n DELETE: \"Delete\",\n F2: \"F2\",\n PAGE_UP: \"PageUp\",\n PAGE_DOWN: \"PageDown\",\n PAGE_HOME: \"Home\",\n PAGE_END: \"End\",\n // these should be used with `event.code` instead of `event.key`\n // as `event.key` changes when non-latin keyboards are used\n A: \"KeyA\",\n C: \"KeyC\",\n D: \"KeyD\",\n V: \"KeyV\",\n X: \"KeyX\",\n Y: \"KeyY\",\n Z: \"KeyZ\"\n};\nvar A_KEYCODE = 65;\nvar C_KEYCODE = 67;\nvar V_KEYCODE = 86;\nvar D_KEYCODE = 68;\nvar Z_KEYCODE = 90;\nvar Y_KEYCODE = 89;\nfunction _normaliseQwertyAzerty(keyboardEvent) {\n const { keyCode } = keyboardEvent;\n let code;\n switch (keyCode) {\n case A_KEYCODE:\n code = KeyCode.A;\n break;\n case C_KEYCODE:\n code = KeyCode.C;\n break;\n case V_KEYCODE:\n code = KeyCode.V;\n break;\n case D_KEYCODE:\n code = KeyCode.D;\n break;\n case Z_KEYCODE:\n code = KeyCode.Z;\n break;\n case Y_KEYCODE:\n code = KeyCode.Y;\n break;\n default:\n code = keyboardEvent.code;\n }\n return code;\n}\n\n// packages/ag-stack/src/version.ts\nvar VERSION = \"36.0.0\";\n\n// packages/ag-stack/src/theming/shared/shared.css\nvar shared_default = ':where([class^=ag-]),:where([class^=ag-]):after,:where([class^=ag-]):before{box-sizing:border-box}:where([class^=ag-]):where(button){color:inherit}:where([class^=ag-]):where(input:not([type]),input[type=text],input[type=number],input[type=tel],input[type=date],input[type=datetime-local],textarea){font-family:inherit;font-size:inherit;line-height:inherit;padding:0}:where([class^=ag-]):where(div,span,label):focus-visible{box-shadow:inset var(--ag-focus-shadow);outline:none;&:where(.invalid){box-shadow:inset var(--ag-focus-error-shadow)}}:where([class^=ag-]) ::-ms-clear{display:none}.ag-hidden{display:none!important}.ag-invisible{visibility:hidden!important}.ag-tab-guard{display:block;height:0;position:absolute;width:0}.ag-tab-guard-top{top:1px}.ag-tab-guard-bottom{bottom:1px}.ag-measurement-container{height:0;overflow:hidden;visibility:hidden;width:0}.ag-measurement-element-border{display:inline-block}.ag-measurement-element-border:before{border-left:var(--ag-internal-measurement-border);content:\"\";display:block}.ag-popup{background-color:var(--ag-wrapper-background-color)}.ag-popup-child{top:0;z-index:5}.ag-popup-child:where(:not(.ag-tooltip-custom)){box-shadow:var(--ag-popup-shadow)}.ag-input-wrapper,.ag-picker-field-wrapper{align-items:center;display:flex;flex:1 1 auto;line-height:normal;position:relative}.ag-input-field{align-items:center;display:flex;flex-direction:row}.ag-input-field-input:where(:not([type=checkbox],[type=radio])){flex:1 1 auto;min-width:0;width:100%}.ag-styled-root{cursor:default;display:contents;line-height:normal;white-space:normal;-webkit-font-smoothing:antialiased;color:var(--ag-text-color);color-scheme:var(--ag-browser-color-scheme);font-family:var(--ag-font-family);font-size:var(--ag-font-size);font-weight:var(--ag-font-weight);--ag-indentation-level:0}:where(.ag-icon):before{align-items:center;background-color:currentcolor;color:inherit;content:\"\";display:flex;font-family:inherit;font-size:var(--ag-icon-size);font-style:normal;font-variant:normal;height:var(--ag-icon-size);justify-content:center;line-height:var(--ag-icon-size);-webkit-mask-size:contain;mask-size:contain;text-transform:none;width:var(--ag-icon-size)}.ag-icon{background-position:50%;background-repeat:no-repeat;background-size:contain;color:var(--ag-icon-color);display:block;height:var(--ag-icon-size);position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--ag-icon-size)}.ag-disabled .ag-icon,[disabled] .ag-icon{opacity:.5}.ag-icon-grip.ag-disabled,.ag-icon-grip[disabled]{opacity:.35}.ag-icon-loading{animation-duration:1s;animation-iteration-count:infinite;animation-name:spin;animation-timing-function:linear}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ag-resizer{pointer-events:none;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:1}:where(.ag-resizer){&.ag-resizer-topLeft{cursor:nwse-resize;height:5px;left:0;top:0;width:5px}&.ag-resizer-top{cursor:ns-resize;height:5px;left:5px;right:5px;top:0}&.ag-resizer-topRight{cursor:nesw-resize;height:5px;right:0;top:0;width:5px}&.ag-resizer-right{bottom:5px;cursor:ew-resize;right:0;top:5px;width:5px}&.ag-resizer-bottomRight{bottom:0;cursor:nwse-resize;height:5px;right:0;width:5px}&.ag-resizer-bottom{bottom:0;cursor:ns-resize;height:5px;left:5px;right:5px}&.ag-resizer-bottomLeft{bottom:0;cursor:nesw-resize;height:5px;left:0;width:5px}&.ag-resizer-left{bottom:5px;cursor:ew-resize;left:0;top:5px;width:5px}}.ag-menu{background-color:var(--ag-menu-background-color);border:var(--ag-menu-border);border-radius:var(--ag-border-radius);box-shadow:var(--ag-menu-shadow);color:var(--ag-menu-text-color);max-height:100%;overflow-y:auto;position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none}';\n\n// packages/ag-stack/src/theming/inject.ts\nvar IS_SSR = typeof window !== \"object\" || !window?.document?.fonts?.forEach;\nvar FORCE_LEGACY_THEMES = false;\nvar _injectGlobalCSS = (rawCss, styleContainer, debugId, layer, priority, nonce, isParams = false) => {\n if (IS_SSR || FORCE_LEGACY_THEMES) {\n return;\n }\n let injectedCss = rawCss;\n if (layer) {\n injectedCss = `@layer ${CSS.escape(layer).replaceAll(\"\\\\.\", \".\")} { ${rawCss} }`;\n }\n let injections = injectionState.map.get(styleContainer);\n if (!injections) {\n injections = [];\n injectionState.map.set(styleContainer, injections);\n }\n if (injections.some((i) => i.injectedCss === injectedCss)) {\n return;\n }\n const el = document.createElement(\"style\");\n if (nonce) {\n el.setAttribute(\"nonce\", nonce);\n }\n el.dataset.agCss = debugId;\n el.dataset.agCssVersion = VERSION;\n el.textContent = injectedCss;\n const newInjection = { rawCss, injectedCss, el, priority, isParams };\n let insertAfter;\n for (const injection of injections) {\n if (injection.priority > priority) {\n break;\n }\n insertAfter = injection;\n }\n if (insertAfter) {\n insertAfter.el.after(el);\n const index = injections.indexOf(insertAfter);\n injections.splice(index + 1, 0, newInjection);\n } else {\n if (styleContainer.nodeName === \"STYLE\") {\n styleContainer.after(el);\n } else {\n styleContainer.insertBefore(el, styleContainer.querySelector(\":not(title, meta)\"));\n }\n injections.push(newInjection);\n }\n};\nvar _injectCoreAndModuleCSS = (styleContainer, layer, nonce, moduleCss) => {\n _injectGlobalCSS(shared_default, styleContainer, \"shared\", layer, 0, nonce);\n moduleCss?.forEach(\n (css, debugId) => css.forEach((singleCss) => _injectGlobalCSS(singleCss, styleContainer, debugId, layer, 0, nonce))\n );\n};\nvar _useParamsCss = (environment, paramsCss, paramsDebugId, styleContainer, layer, nonce) => {\n if (IS_SSR || FORCE_LEGACY_THEMES) {\n return;\n }\n const gridState = injectionState.grids.get(environment);\n if (!gridState) {\n injectionState.grids.set(environment, { styleContainer, paramsCss });\n } else {\n gridState.paramsCss = paramsCss;\n }\n removeStaleParamsCss(styleContainer);\n if (paramsCss && paramsDebugId) {\n _injectGlobalCSS(paramsCss, styleContainer, paramsDebugId, layer, 2, nonce, true);\n }\n};\nvar _unregisterInstanceUsingThemingAPI = (environment) => {\n const styleContainer = injectionState.grids.get(environment)?.styleContainer;\n if (!styleContainer) {\n return;\n }\n injectionState.grids.delete(environment);\n const containerStillInUse = Array.from(injectionState.grids.values()).some(\n (gs) => gs.styleContainer === styleContainer\n );\n if (containerStillInUse) {\n removeStaleParamsCss(styleContainer);\n } else {\n removeStaleParamsCss(styleContainer, true);\n injectionState.map.delete(styleContainer);\n }\n};\nvar removeStaleParamsCss = (styleContainer, deleteAll = false) => {\n const neededCss = /* @__PURE__ */ new Set();\n for (const gs of injectionState.grids.values()) {\n if (gs.styleContainer === styleContainer) {\n neededCss.add(gs.paramsCss);\n }\n }\n const injections = injectionState.map.get(styleContainer) ?? [];\n for (let i = injections.length - 1; i >= 0; i--) {\n if (deleteAll || injections[i].isParams && !neededCss.has(injections[i].rawCss)) {\n injections[i].el.remove();\n injections.splice(i, 1);\n }\n }\n};\nvar getInjectionState = () => {\n const versionMap = globalThis.agStyleInjectionVersions ?? (globalThis.agStyleInjectionVersions = /* @__PURE__ */ new Map());\n let state = versionMap.get(VERSION);\n if (!state) {\n state = {\n map: /* @__PURE__ */ new WeakMap(),\n grids: /* @__PURE__ */ new Map(),\n paramsId: 0\n };\n versionMap.set(VERSION, state);\n }\n return state;\n};\nvar injectionState = getInjectionState();\n\n// packages/ag-stack/src/theming/partImpl.ts\nvar createPart = (args) => {\n return new PartImpl(args);\n};\nvar defaultModeName = \"$default\";\nvar partCounter = 0;\nvar PartImpl = class {\n constructor({ feature, params, modeParams = {}, css, cssImports }) {\n this.feature = feature;\n this.css = css;\n this.cssImports = cssImports;\n this.modeParams = {\n // NOTE: it's important that default is defined first, putting it\n // first in iteration order, because when merging params the default\n // params override any prior modal params, so modal params in this\n // part need to come after default params to prevent them from being\n // immediately overridden.\n [defaultModeName]: {\n ...modeParams[defaultModeName] ?? {},\n ...params ?? {}\n },\n ...modeParams\n };\n }\n use(styleContainer, layer, nonce) {\n let inject = this._inject;\n if (inject == null) {\n let { css } = this;\n if (css) {\n const className = `ag-theme-${this.feature ?? \"part\"}-${++partCounter}`;\n if (typeof css === \"function\") {\n css = css();\n }\n css = `:where(.${className}) {\n${css}\n}\n`;\n for (const cssImport of this.cssImports ?? []) {\n css = `@import url(${JSON.stringify(cssImport)});\n${css}`;\n }\n inject = { css, class: className };\n } else {\n inject = false;\n }\n this._inject = inject;\n }\n if (inject && styleContainer) {\n _injectGlobalCSS(inject.css, styleContainer, inject.class, layer, 1, nonce);\n }\n return inject ? inject.class : false;\n }\n};\n\n// packages/ag-stack/src/utils/promise.ts\nfunction _isPromise(fn) {\n return typeof fn.then === \"function\";\n}\nfunction _wrapInterval(action, timeout) {\n return new AgPromise((resolve) => {\n resolve(window.setInterval(action, timeout));\n });\n}\nvar AgPromise = class _AgPromise {\n constructor(callback) {\n this.status = 0 /* IN_PROGRESS */;\n this.resolution = null;\n this.waiters = [];\n callback(\n (value) => this.onDone(value),\n (params) => this.onReject(params)\n );\n }\n static all(promises) {\n return promises.length ? new _AgPromise((resolve) => {\n let remainingToResolve = promises.length;\n const combinedValues = new Array(remainingToResolve);\n promises.forEach((promise, index) => {\n promise.then((value) => {\n combinedValues[index] = value;\n remainingToResolve--;\n if (remainingToResolve === 0) {\n resolve(combinedValues);\n }\n });\n });\n }) : _AgPromise.resolve();\n }\n static resolve(value = null) {\n return new _AgPromise((resolve) => resolve(value));\n }\n then(func) {\n return new _AgPromise((resolve) => {\n if (this.status === 1 /* RESOLVED */) {\n resolve(func(this.resolution));\n } else {\n this.waiters.push((value) => resolve(func(value)));\n }\n });\n }\n onDone(value) {\n this.status = 1 /* RESOLVED */;\n this.resolution = value;\n for (const waiter of this.waiters) {\n waiter(value);\n }\n }\n onReject(_) {\n }\n};\n\n// packages/ag-stack/src/constants/direction.ts\nvar Direction = /* @__PURE__ */ ((Direction2) => {\n Direction2[Direction2[\"Vertical\"] = 0] = \"Vertical\";\n Direction2[Direction2[\"Horizontal\"] = 1] = \"Horizontal\";\n return Direction2;\n})(Direction || {});\n\n// packages/ag-stack/src/events/localEventService.ts\nvar LocalEventService = class {\n constructor() {\n this.allSyncListeners = /* @__PURE__ */ new Map();\n this.allAsyncListeners = /* @__PURE__ */ new Map();\n this.globalSyncListeners = /* @__PURE__ */ new Set();\n this.globalAsyncListeners = /* @__PURE__ */ new Set();\n this.asyncFunctionsQueue = [];\n this.scheduled = false;\n // using an object performs better than a Set for the number of different events we have\n this.firedEvents = {};\n }\n setFrameworkOverrides(frameworkOverrides) {\n this.frameworkOverrides = frameworkOverrides;\n }\n getListeners(eventType, async, autoCreateListenerCollection) {\n const listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;\n let listeners = listenerMap.get(eventType);\n if (!listeners && autoCreateListenerCollection) {\n listeners = /* @__PURE__ */ new Set();\n listenerMap.set(eventType, listeners);\n }\n return listeners;\n }\n noRegisteredListenersExist() {\n return this.allSyncListeners.size === 0 && this.allAsyncListeners.size === 0 && this.globalSyncListeners.size === 0 && this.globalAsyncListeners.size === 0;\n }\n addEventListener(eventType, listener, async = false) {\n this.getListeners(eventType, async, true).add(listener);\n }\n removeEventListener(eventType, listener, async = false) {\n const listeners = this.getListeners(eventType, async, false);\n if (!listeners) {\n return;\n }\n listeners.delete(listener);\n if (listeners.size === 0) {\n (async ? this.allAsyncListeners : this.allSyncListeners).delete(eventType);\n }\n }\n addGlobalListener(listener, async = false) {\n this.getGlobalListeners(async).add(listener);\n }\n removeGlobalListener(listener, async = false) {\n this.getGlobalListeners(async).delete(listener);\n }\n dispatchEvent(event) {\n this.dispatchToListeners(event, true);\n this.dispatchToListeners(event, false);\n this.firedEvents[event.type] = true;\n }\n dispatchEventOnce(event) {\n if (!this.firedEvents[event.type]) {\n this.dispatchEvent(event);\n }\n }\n dispatchToListeners(event, async) {\n const eventType = event.type;\n if (async && \"event\" in event) {\n const browserEvent = event.event;\n if (browserEvent instanceof Event) {\n event.eventPath = browserEvent.composedPath();\n }\n }\n const { frameworkOverrides } = this;\n const runCallback = (func) => {\n const callback = frameworkOverrides ? () => frameworkOverrides.wrapIncoming(func) : func;\n if (async) {\n this.dispatchAsync(callback);\n } else {\n callback();\n }\n };\n const originalListeners = this.getListeners(eventType, async, false);\n if ((originalListeners?.size ?? 0) > 0) {\n const listeners = new Set(originalListeners);\n for (const listener of listeners) {\n if (!originalListeners?.has(listener)) {\n continue;\n }\n runCallback(() => listener(event));\n }\n }\n const globalListenersSrc = this.getGlobalListeners(async);\n if (globalListenersSrc.size > 0) {\n const globalListeners = new Set(globalListenersSrc);\n for (const listener of globalListeners) {\n runCallback(() => listener(eventType, event));\n }\n }\n }\n getGlobalListeners(async) {\n return async ? this.globalAsyncListeners : this.globalSyncListeners;\n }\n // this gets called inside the grid's thread, for each event that it\n // wants to set async. the grid then batches the events into one setTimeout()\n // because setTimeout() is an expensive operation. ideally we would have\n // each event in it's own setTimeout(), but we batch for performance.\n dispatchAsync(func) {\n this.asyncFunctionsQueue.push(func);\n if (!this.scheduled) {\n const flush = () => {\n window.setTimeout(this.flushAsyncQueue.bind(this), 0);\n };\n const frameworkOverrides = this.frameworkOverrides;\n if (frameworkOverrides) {\n frameworkOverrides.wrapIncoming(flush);\n } else {\n flush();\n }\n this.scheduled = true;\n }\n }\n // this happens in the next VM turn only, and empties the queue of events\n flushAsyncQueue() {\n this.scheduled = false;\n const queueCopy = this.asyncFunctionsQueue.slice();\n this.asyncFunctionsQueue = [];\n for (const func of queueCopy) {\n func();\n }\n }\n};\n\n// packages/ag-stack/src/utils/array.ts\nfunction _last(arr) {\n const len = arr?.length;\n return len ? arr[len - 1] : void 0;\n}\nfunction _areEqual(a, b, comparator) {\n if (a === b) {\n return true;\n }\n if (!a || !b) {\n return a == null && b == null;\n }\n const len = a.length;\n if (len !== b.length) {\n return false;\n }\n if (comparator) {\n for (let i = 0; i < len; ++i) {\n const valueA = a[i];\n const valueB = b[i];\n if (valueA !== valueB && !comparator(valueA, valueB)) {\n return false;\n }\n }\n return true;\n }\n for (let i = 0; i < len; ++i) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\nfunction _reuseArrayIfEqual(prev, current) {\n if (!current) {\n return [];\n }\n const len = current.length;\n if (prev && prev !== current && prev.length === len) {\n for (let i = 0; i < len; ++i) {\n if (prev[i] !== current[i]) {\n return current.slice();\n }\n }\n return prev;\n }\n return current.slice();\n}\nfunction _removeFromArray(array, object) {\n const index = array.indexOf(object);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction _removeAllFromArray(array, elementsToRemove) {\n const len = array.length;\n const removeLen = elementsToRemove.length;\n if (!len || !removeLen) {\n return;\n }\n let j = 0;\n const removeSet = new Set(elementsToRemove);\n for (let i = 0; i < len; ++i) {\n const value = array[i];\n if (!removeSet.has(value)) {\n if (i !== j) {\n array[j] = value;\n }\n ++j;\n }\n }\n if (j < len) {\n array.length = j;\n }\n}\nfunction _moveInArray(array, objectsToMove, toIndex) {\n const objectsToMoveLen = objectsToMove.length;\n for (let i = 0; i < objectsToMoveLen; ++i) {\n _removeFromArray(array, objectsToMove[i]);\n }\n for (let i = objectsToMoveLen - 1; i >= 0; i--) {\n array.splice(toIndex, 0, objectsToMove[i]);\n }\n}\nfunction _flatten(arrays) {\n return [].concat.apply([], arrays);\n}\nfunction _symmetricDiff(a, b) {\n if (a === b) {\n return [];\n }\n const leftLen = a?.length;\n const rightLen = b?.length;\n if (!leftLen) {\n return b ? b.slice() : [];\n }\n if (!rightLen) {\n return a ? a.slice() : [];\n }\n const diff = new Set(a);\n for (let i = 0; i < rightLen; ++i) {\n const item = b[i];\n if (!diff.delete(item)) {\n diff.add(item);\n }\n }\n return Array.from(diff);\n}\nfunction _pushToMapArray(map, key, value) {\n const bucket = map.get(key);\n if (bucket === void 0) {\n map.set(key, [value]);\n return;\n }\n bucket.push(value);\n}\nfunction _indexMap(arr) {\n const map = /* @__PURE__ */ new Map();\n if (arr) {\n for (let i = 0, len = arr.length; i < len; ++i) {\n map.set(arr[i], i);\n }\n }\n return map;\n}\n\n// packages/ag-stack/src/utils/generic.ts\nvar _makeNull = (value) => {\n if (value == null || value === \"\") {\n return null;\n }\n return value;\n};\nfunction _exists(value) {\n return value != null && value !== \"\";\n}\nfunction _missing(value) {\n return !_exists(value);\n}\nvar _toStringOrNull = (value) => {\n return value != null && typeof value.toString === \"function\" ? value.toString() : null;\n};\nvar _jsonEquals = (val1, val2) => {\n const val1Json = val1 ? JSON.stringify(val1) : null;\n const val2Json = val2 ? JSON.stringify(val2) : null;\n return val1Json === val2Json;\n};\nvar _defaultComparator = (valueA, valueB, accentedCompare = false) => {\n if (typeof valueA === \"object\" && valueA !== null && typeof valueA.toNumber === \"function\") {\n valueA = valueA.toNumber();\n }\n if (typeof valueB === \"object\" && valueB !== null && typeof valueB.toNumber === \"function\") {\n valueB = valueB.toNumber();\n }\n if (valueA == null) {\n return valueB == null ? 0 : -1;\n }\n if (valueB == null) {\n return 1;\n }\n if (!accentedCompare || typeof valueA !== \"string\") {\n if (valueA > valueB) {\n return 1;\n }\n if (valueA < valueB) {\n return -1;\n }\n return 0;\n }\n return valueA.localeCompare(valueB);\n};\n\n// packages/ag-stack/src/utils/document.ts\nfunction _getRootNode(beans) {\n return beans.eRootDiv.getRootNode();\n}\nfunction _getActiveDomElement(beans) {\n return _getRootNode(beans).activeElement;\n}\nfunction _getDocument(beans) {\n const { gos, eRootDiv } = beans;\n let result = null;\n const optionsGetDocument = gos.get(\"getDocument\");\n if (optionsGetDocument && _exists(optionsGetDocument)) {\n result = optionsGetDocument();\n } else if (eRootDiv) {\n result = eRootDiv.ownerDocument;\n }\n if (result && _exists(result)) {\n return result;\n }\n return document;\n}\nfunction _isNothingFocused(beans) {\n const activeEl = _getActiveDomElement(beans);\n return activeEl === null || activeEl === _getDocument(beans).body;\n}\nfunction _getWindow(beans) {\n const eDocument = _getDocument(beans);\n return eDocument.defaultView || window;\n}\nfunction _getPageBody(beans) {\n let rootNode = null;\n let targetEl;\n try {\n rootNode = _getDocument(beans).fullscreenElement;\n } catch {\n } finally {\n if (!rootNode) {\n rootNode = _getRootNode(beans);\n }\n const body = rootNode.querySelector(\"body\");\n if (body) {\n targetEl = body;\n } else if (rootNode instanceof ShadowRoot) {\n targetEl = rootNode;\n } else if (rootNode instanceof Document) {\n targetEl = rootNode?.documentElement;\n } else {\n targetEl = rootNode;\n }\n }\n return targetEl;\n}\nfunction _getBodyWidth(beans) {\n const body = _getPageBody(beans);\n return body?.clientWidth ?? (window.innerWidth || -1);\n}\nfunction _getBodyHeight(beans) {\n const body = _getPageBody(beans);\n return body?.clientHeight ?? (window.innerHeight || -1);\n}\n\n// packages/ag-stack/src/utils/aria.ts\nfunction _toggleAriaAttribute(element, attribute, value) {\n if (value == null || typeof value === \"string\" && value == \"\") {\n _removeAriaAttribute(element, attribute);\n } else {\n _setAriaAttribute(element, attribute, value);\n }\n}\nfunction _setAriaAttribute(element, attribute, value) {\n element.setAttribute(_ariaAttributeName(attribute), value.toString());\n}\nfunction _removeAriaAttribute(element, attribute) {\n element.removeAttribute(_ariaAttributeName(attribute));\n}\nfunction _ariaAttributeName(attribute) {\n return `aria-${attribute}`;\n}\nfunction _setAriaRole(element, role) {\n if (role) {\n element.setAttribute(\"role\", role);\n } else {\n element.removeAttribute(\"role\");\n }\n}\nfunction _getAriaPosInSet(element) {\n return Number.parseInt(element.getAttribute(\"aria-posinset\"), 10);\n}\nfunction _getAriaLabel(element) {\n return element.getAttribute(\"aria-label\");\n}\nfunction _setAriaLabel(element, label) {\n _toggleAriaAttribute(element, \"label\", label);\n}\nfunction _setAriaLabelledBy(element, labelledBy) {\n _toggleAriaAttribute(element, \"labelledby\", labelledBy);\n}\nfunction _setAriaDescribedBy(element, describedby) {\n _toggleAriaAttribute(element, \"describedby\", describedby);\n}\nfunction _setAriaLive(element, live) {\n _toggleAriaAttribute(element, \"live\", live);\n}\nfunction _setAriaAtomic(element, atomic) {\n _toggleAriaAttribute(element, \"atomic\", atomic);\n}\nfunction _setAriaRelevant(element, relevant) {\n _toggleAriaAttribute(element, \"relevant\", relevant);\n}\nfunction _setAriaInvalid(element, invalid) {\n _toggleAriaAttribute(element, \"invalid\", invalid);\n}\nfunction _setAriaLevel(element, level) {\n _toggleAriaAttribute(element, \"level\", level);\n}\nfunction _setAriaDisabled(element, disabled) {\n _toggleAriaAttribute(element, \"disabled\", disabled);\n}\nfunction _setAriaHidden(element, hidden) {\n _toggleAriaAttribute(element, \"hidden\", hidden);\n}\nfunction _setAriaActiveDescendant(element, descendantId) {\n _toggleAriaAttribute(element, \"activedescendant\", descendantId);\n}\nfunction _setAriaAutoComplete(element, autoComplete) {\n _setAriaAttribute(element, \"autocomplete\", autoComplete);\n}\nfunction _setAriaExpanded(element, expanded) {\n _setAriaAttribute(element, \"expanded\", expanded);\n}\nfunction _removeAriaExpanded(element) {\n _removeAriaAttribute(element, \"expanded\");\n}\nfunction _setAriaSetSize(element, setsize) {\n _setAriaAttribute(element, \"setsize\", setsize);\n}\nfunction _setAriaPosInSet(element, position) {\n _setAriaAttribute(element, \"posinset\", position);\n}\nfunction _setAriaMultiSelectable(element, multiSelectable) {\n _setAriaAttribute(element, \"multiselectable\", multiSelectable);\n}\nfunction _setAriaRowCount(element, rowCount) {\n _setAriaAttribute(element, \"rowcount\", rowCount);\n}\nfunction _setAriaRowIndex(element, rowIndex) {\n _setAriaAttribute(element, \"rowindex\", rowIndex);\n}\nfunction _setAriaRowSpan(element, spanCount) {\n _setAriaAttribute(element, \"rowspan\", spanCount);\n}\nfunction _setAriaColCount(element, colCount) {\n _setAriaAttribute(element, \"colcount\", colCount);\n}\nfunction _setAriaColIndex(element, colIndex) {\n _setAriaAttribute(element, \"colindex\", colIndex);\n}\nfunction _setAriaColSpan(element, colSpan) {\n _setAriaAttribute(element, \"colspan\", colSpan);\n}\nfunction _setAriaSort(element, sort) {\n _setAriaAttribute(element, \"sort\", sort);\n}\nfunction _removeAriaSort(element) {\n _removeAriaAttribute(element, \"sort\");\n}\nfunction _setAriaSelected(element, selected) {\n _toggleAriaAttribute(element, \"selected\", selected);\n}\nfunction _setAriaChecked(element, checked) {\n _setAriaAttribute(element, \"checked\", checked === void 0 ? \"mixed\" : checked);\n}\nfunction _setAriaControls(controllerElement, controlledId) {\n _toggleAriaAttribute(controllerElement, \"controls\", controlledId);\n}\nfunction _setAriaControlsAndLabel(controllerElement, controlledElement) {\n _setAriaControls(controllerElement, controlledElement.id);\n _setAriaLabelledBy(controlledElement, controllerElement.id);\n}\nfunction _setAriaOwns(ownerElement, ownedId) {\n _toggleAriaAttribute(ownerElement, \"owns\", ownedId);\n}\nfunction _setAriaHasPopup(element, hasPopup) {\n _toggleAriaAttribute(element, \"haspopup\", hasPopup === false ? null : hasPopup);\n}\nfunction _getAriaCheckboxStateName(translate, state) {\n return state === void 0 ? translate(\"ariaIndeterminate\", \"indeterminate\") : state === true ? translate(\"ariaChecked\", \"checked\") : translate(\"ariaUnchecked\", \"unchecked\");\n}\nfunction _setAriaOrientation(element, orientation) {\n if (orientation) {\n _setAriaAttribute(element, \"orientation\", orientation);\n } else {\n _removeAriaAttribute(element, \"orientation\");\n }\n}\n\n// packages/ag-stack/src/utils/dom.ts\nfunction _radioCssClass(element, elementClass, otherElementClass) {\n const parent = element.parentElement;\n let sibling = parent && parent.firstChild;\n while (sibling) {\n if (elementClass) {\n sibling.classList.toggle(elementClass, sibling === element);\n }\n if (otherElementClass) {\n sibling.classList.toggle(otherElementClass, sibling !== element);\n }\n sibling = sibling.nextSibling;\n }\n}\nvar FOCUSABLE_SELECTOR = \"[tabindex], input, select, button, textarea, [href]\";\nvar FOCUSABLE_EXCLUDE = \"[disabled], .ag-disabled:not(.ag-button), .ag-disabled *\";\nfunction _isFocusableFormField(element) {\n if (!element) {\n return false;\n }\n const isFocusable = element.matches(\"input, select, button, textarea\");\n if (!isFocusable) {\n return false;\n }\n const isNotFocusable = element.matches(FOCUSABLE_EXCLUDE);\n if (!isNotFocusable) {\n return false;\n }\n return _isVisible(element);\n}\nfunction _setDisplayed(element, displayed, options = {}) {\n const { skipAriaHidden } = options;\n element.classList.toggle(\"ag-hidden\", !displayed);\n if (!skipAriaHidden) {\n _setAriaHidden(element, !displayed);\n }\n}\nfunction _setVisible(element, visible, options = {}) {\n const { skipAriaHidden } = options;\n element.classList.toggle(\"ag-invisible\", !visible);\n if (!skipAriaHidden) {\n _setAriaHidden(element, !visible);\n }\n}\nfunction _setDisabled(element, disabled) {\n const attributeName = \"disabled\";\n const addOrRemoveDisabledAttribute = disabled ? (e) => e.setAttribute(attributeName, \"\") : (e) => e.removeAttribute(attributeName);\n addOrRemoveDisabledAttribute(element);\n const inputs = element.querySelectorAll(\"input\") ?? [];\n for (const input of inputs) {\n addOrRemoveDisabledAttribute(input);\n }\n}\nfunction _isElementChildOfClass(element, cls, maxNest) {\n let counter = 0;\n while (element) {\n if (element.classList.contains(cls)) {\n return true;\n }\n element = element.parentElement;\n if (typeof maxNest == \"number\") {\n if (++counter > maxNest) {\n break;\n }\n } else if (element === maxNest) {\n break;\n }\n }\n return false;\n}\nfunction _getElementSize(el) {\n const {\n height,\n width,\n borderTopWidth,\n borderRightWidth,\n borderBottomWidth,\n borderLeftWidth,\n paddingTop,\n paddingRight,\n paddingBottom,\n paddingLeft,\n marginTop,\n marginRight,\n marginBottom,\n marginLeft,\n boxSizing\n } = window.getComputedStyle(el);\n const pf = Number.parseFloat;\n return {\n height: pf(height || \"0\"),\n width: pf(width || \"0\"),\n borderTopWidth: pf(borderTopWidth || \"0\"),\n borderRightWidth: pf(borderRightWidth || \"0\"),\n borderBottomWidth: pf(borderBottomWidth || \"0\"),\n borderLeftWidth: pf(borderLeftWidth || \"0\"),\n paddingTop: pf(paddingTop || \"0\"),\n paddingRight: pf(paddingRight || \"0\"),\n paddingBottom: pf(paddingBottom || \"0\"),\n paddingLeft: pf(paddingLeft || \"0\"),\n marginTop: pf(marginTop || \"0\"),\n marginRight: pf(marginRight || \"0\"),\n marginBottom: pf(marginBottom || \"0\"),\n marginLeft: pf(marginLeft || \"0\"),\n boxSizing\n };\n}\nfunction _getInnerHeight(el) {\n const size = _getElementSize(el);\n if (size.boxSizing === \"border-box\") {\n return size.height - size.paddingTop - size.paddingBottom - size.borderTopWidth - size.borderBottomWidth;\n }\n return size.height;\n}\nfunction _getInnerWidth(el) {\n const size = _getElementSize(el);\n if (size.boxSizing === \"border-box\") {\n return size.width - size.paddingLeft - size.paddingRight - size.borderLeftWidth - size.borderRightWidth;\n }\n return size.width;\n}\nfunction _getAbsoluteHeight(el) {\n const { height, marginBottom, marginTop } = _getElementSize(el);\n return Math.floor(height + marginBottom + marginTop);\n}\nfunction _getAbsoluteWidth(el) {\n const { width, marginLeft, marginRight } = _getElementSize(el);\n return Math.floor(width + marginLeft + marginRight);\n}\nfunction _getElementRectWithOffset(el) {\n const offsetElementRect = el.getBoundingClientRect();\n const { borderTopWidth, borderLeftWidth, borderRightWidth, borderBottomWidth } = _getElementSize(el);\n return {\n top: offsetElementRect.top + (borderTopWidth || 0),\n left: offsetElementRect.left + (borderLeftWidth || 0),\n right: offsetElementRect.right + (borderRightWidth || 0),\n bottom: offsetElementRect.bottom + (borderBottomWidth || 0)\n };\n}\nfunction _getScrollLeft(element, rtl) {\n let scrollLeft = element.scrollLeft;\n if (rtl) {\n scrollLeft = Math.abs(scrollLeft);\n }\n return scrollLeft;\n}\nfunction _setScrollLeft(element, value, rtl) {\n if (rtl) {\n value *= -1;\n }\n element.scrollLeft = value;\n}\nfunction _clearElement(el) {\n while (el?.firstChild) {\n el.firstChild.remove();\n }\n}\nfunction _removeFromParent(node) {\n if (node?.parentNode) {\n node.remove();\n }\n}\nfunction _isInDOM(element) {\n return !!element.offsetParent;\n}\nfunction _isVisible(element) {\n if (element.checkVisibility) {\n return element.checkVisibility({ checkVisibilityCSS: true });\n }\n const isHidden = !_isInDOM(element) || window.getComputedStyle(element).visibility !== \"visible\";\n return !isHidden;\n}\nfunction _loadTemplate(template) {\n const tempDiv = document.createElement(\"div\");\n tempDiv.innerHTML = (template || \"\").trim();\n return tempDiv.firstChild;\n}\nfunction _ensureDomOrder(eContainer, eChild, eChildBefore) {\n if (eChildBefore?.nextSibling === eChild) {\n return;\n }\n if (!eContainer.firstChild) {\n eContainer.appendChild(eChild);\n } else if (eChildBefore) {\n if (eChildBefore.nextSibling) {\n eContainer.insertBefore(eChild, eChildBefore.nextSibling);\n } else {\n eContainer.appendChild(eChild);\n }\n } else if (eContainer.firstChild && eContainer.firstChild !== eChild) {\n eContainer.prepend(eChild);\n }\n}\nfunction _setDomChildOrder(eContainer, orderedChildren) {\n for (let i = 0; i < orderedChildren.length; i++) {\n const correctCellAtIndex = orderedChildren[i];\n const actualCellAtIndex = eContainer.children[i];\n if (actualCellAtIndex !== correctCellAtIndex) {\n eContainer.insertBefore(correctCellAtIndex, actualCellAtIndex);\n }\n }\n}\nfunction _camelCaseToHyphenated(camelCase) {\n return camelCase.replace(/[A-Z]/g, (s) => `-${s.toLocaleLowerCase()}`);\n}\nfunction _addStylesToElement(eElement, styles) {\n if (!styles) {\n return;\n }\n for (const key of Object.keys(styles)) {\n const value = styles[key];\n if (!key?.length || value == null) {\n continue;\n }\n const parsedKey = _camelCaseToHyphenated(key);\n const valueAsString = value.toString();\n const parsedValue = valueAsString.replace(/\\s*!important/g, \"\");\n const priority = parsedValue.length != valueAsString.length ? \"important\" : void 0;\n eElement.style.setProperty(parsedKey, parsedValue, priority);\n }\n}\nfunction _isElementOverflowingCallback(getElement) {\n return () => {\n const element = getElement();\n if (!element) {\n return true;\n }\n return _isHorizontalScrollShowing(element) || _isVerticalScrollShowing(element);\n };\n}\nfunction _isHorizontalScrollShowing(element) {\n return element.clientWidth < element.scrollWidth;\n}\nfunction _isVerticalScrollShowing(element) {\n return element.clientHeight < element.scrollHeight;\n}\nfunction _setElementWidth(element, width) {\n if (width === \"flex\") {\n element.style.removeProperty(\"width\");\n element.style.removeProperty(\"minWidth\");\n element.style.removeProperty(\"maxWidth\");\n element.style.flex = \"1 1 auto\";\n } else {\n _setFixedWidth(element, width);\n }\n}\nfunction _setFixedWidth(element, width) {\n width = _formatSize(width);\n element.style.width = width;\n element.style.maxWidth = width;\n element.style.minWidth = width;\n}\nfunction _setFixedHeight(element, height) {\n height = _formatSize(height);\n element.style.height = height;\n element.style.maxHeight = height;\n element.style.minHeight = height;\n}\nfunction _formatSize(size) {\n return typeof size === \"number\" ? `${size}px` : size;\n}\nfunction _isNodeOrElement(o) {\n return o instanceof Node || o instanceof HTMLElement;\n}\nfunction _addOrRemoveAttribute(element, name, value) {\n if (value == null || value === \"\") {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value.toString());\n }\n}\nfunction _placeCaretAtEnd(beans, contentElement) {\n if (!contentElement.isContentEditable) {\n return;\n }\n const selection = _getWindow(beans).getSelection();\n if (!selection) {\n return;\n }\n const range = _getDocument(beans).createRange();\n range.selectNodeContents(contentElement);\n range.collapse(false);\n selection.removeAllRanges();\n selection.addRange(range);\n}\nfunction _observeResize(beans, element, callback) {\n const win = _getWindow(beans);\n const ResizeObserverImpl = win.ResizeObserver;\n const resizeObserver = ResizeObserverImpl ? new ResizeObserverImpl(callback) : null;\n resizeObserver?.observe(element);\n return () => resizeObserver?.disconnect();\n}\nfunction _requestAnimationFrame(beans, callback) {\n const win = _getWindow(beans);\n if (win.requestAnimationFrame) {\n win.requestAnimationFrame(callback);\n } else if (win.webkitRequestAnimationFrame) {\n win.webkitRequestAnimationFrame(callback);\n } else {\n win.setTimeout(callback, 0);\n }\n}\nvar DataRefAttribute = \"data-ref\";\nvar whitespaceNode;\nfunction getWhitespaceNode() {\n whitespaceNode ?? (whitespaceNode = document.createTextNode(\" \"));\n return whitespaceNode.cloneNode();\n}\nfunction _createAgElement(params) {\n const { attrs, children, cls, ref, role, tag } = params;\n const element = document.createElement(tag);\n if (cls) {\n element.className = cls;\n }\n if (ref) {\n element.setAttribute(DataRefAttribute, ref);\n }\n if (role) {\n element.setAttribute(\"role\", role);\n }\n if (attrs) {\n for (const key of Object.keys(attrs)) {\n element.setAttribute(key, attrs[key]);\n }\n }\n if (children) {\n if (typeof children === \"string\") {\n element.textContent = children;\n } else {\n let addFirstWhitespace = true;\n for (const child of children) {\n if (child) {\n if (typeof child === \"string\") {\n element.appendChild(document.createTextNode(child));\n addFirstWhitespace = false;\n } else if (typeof child === \"function\") {\n element.appendChild(child());\n } else {\n if (addFirstWhitespace) {\n element.appendChild(getWhitespaceNode());\n addFirstWhitespace = false;\n }\n element.append(_createAgElement(child));\n element.appendChild(getWhitespaceNode());\n }\n }\n }\n }\n }\n return element;\n}\n\n// packages/ag-stack/src/utils/event.ts\nvar PASSIVE_EVENTS = [\"touchstart\", \"touchend\", \"touchmove\", \"touchcancel\", \"scroll\"];\nvar NON_PASSIVE_EVENTS = [\"wheel\"];\nvar supports = {};\nvar _isEventSupported = /* @__PURE__ */ (() => {\n const tags = {\n select: \"input\",\n change: \"input\",\n submit: \"form\",\n reset: \"form\",\n error: \"img\",\n load: \"img\",\n abort: \"img\"\n };\n const eventChecker = (eventName) => {\n if (typeof supports[eventName] === \"boolean\") {\n return supports[eventName];\n }\n const el = document.createElement(tags[eventName] || \"div\");\n eventName = \"on\" + eventName;\n return supports[eventName] = eventName in el;\n };\n return eventChecker;\n})();\nfunction _isElementInEventPath(element, event) {\n if (!event || !element) {\n return false;\n }\n return _getEventPath(event).indexOf(element) >= 0;\n}\nfunction _createEventPath(event) {\n const res = [];\n let pointer = event.target;\n while (pointer) {\n res.push(pointer);\n pointer = pointer.parentElement;\n }\n return res;\n}\nfunction _getEventPath(event) {\n const eventNoType = event;\n if (eventNoType.path) {\n return eventNoType.path;\n }\n if (eventNoType.composedPath) {\n return eventNoType.composedPath();\n }\n return _createEventPath(eventNoType);\n}\nfunction _addSafePassiveEventListener(eElement, event, listener) {\n const passive = getPassiveStateForEvent(event);\n let options;\n if (passive != null) {\n options = { passive };\n }\n eElement.addEventListener(event, listener, options);\n}\nvar getPassiveStateForEvent = (event) => {\n const isPassive = PASSIVE_EVENTS.includes(event);\n const isNonPassive = NON_PASSIVE_EVENTS.includes(event);\n if (isPassive) {\n return true;\n }\n if (isNonPassive) {\n return false;\n }\n};\nfunction _areEventsNear(e1, e2, pixelCount) {\n if (pixelCount === 0) {\n return false;\n }\n const diffX = Math.abs(e1.clientX - e2.clientX);\n const diffY = Math.abs(e1.clientY - e2.clientY);\n return Math.max(diffX, diffY) <= pixelCount;\n}\nvar _getFirstActiveTouch = (touch, touchList) => {\n const identifier = touch.identifier;\n for (let i = 0, len = touchList.length; i < len; ++i) {\n const item = touchList[i];\n if (item.identifier === identifier) {\n return item;\n }\n }\n return null;\n};\nfunction _isEventFromThisInstance(beans, event) {\n return beans.gos.isElementInThisInstance(event.target);\n}\nfunction _anchorElementToMouseMoveEvent(element, mouseMoveEvent, beans) {\n const eRect = element.getBoundingClientRect();\n const height = eRect.height;\n const browserWidth = _getBodyWidth(beans) - 2;\n const browserHeight = _getBodyHeight(beans) - 2;\n const offsetParent = element.offsetParent;\n if (!offsetParent) {\n return;\n }\n const offsetParentSize = _getElementRectWithOffset(element.offsetParent);\n const { clientY, clientX } = mouseMoveEvent;\n let top = clientY - offsetParentSize.top - height / 2;\n let left = clientX - offsetParentSize.left - 10;\n const eDocument = _getDocument(beans);\n const win = eDocument.defaultView || window;\n const windowScrollY = win.pageYOffset || eDocument.documentElement.scrollTop;\n const windowScrollX = win.pageXOffset || eDocument.documentElement.scrollLeft;\n if (browserWidth > 0 && left + element.clientWidth > browserWidth + windowScrollX) {\n left = browserWidth + windowScrollX - element.clientWidth;\n }\n if (left < 0) {\n left = 0;\n }\n if (browserHeight > 0 && top + element.clientHeight > browserHeight + windowScrollY) {\n top = browserHeight + windowScrollY - element.clientHeight;\n }\n if (top < 0) {\n top = 0;\n }\n element.style.left = `${left}px`;\n element.style.top = `${top}px`;\n}\nvar addTempEventHandlers = (list, ...handlers) => {\n for (const handler of handlers) {\n const [target, type, eventListener, options] = handler;\n target.addEventListener(type, eventListener, options);\n list.push(handler);\n }\n};\nvar clearTempEventHandlers = (list) => {\n if (list) {\n for (const [target, type, listener, options] of list) {\n target.removeEventListener(type, listener, options);\n }\n list.length = 0;\n }\n};\nvar preventEventDefault = (event) => {\n if (event.cancelable) {\n event.preventDefault();\n }\n};\n\n// packages/ag-stack/src/utils/locale.ts\nfunction defaultLocaleTextFunc(_key, defaultValue) {\n return defaultValue;\n}\nfunction _getLocaleTextFunc(localeSvc) {\n return localeSvc?.getLocaleTextFunc() ?? defaultLocaleTextFunc;\n}\nfunction _translate(bean, localeValues, key, variableValues) {\n const defaultValue = localeValues[key];\n return bean.getLocaleTextFunc()(\n key,\n typeof defaultValue === \"function\" ? defaultValue(variableValues) : defaultValue,\n variableValues\n );\n}\nfunction _getLocaleTextFromFunc(getLocaleText) {\n return (key, defaultValue, variableValues) => {\n return getLocaleText({\n key,\n defaultValue,\n variableValues\n });\n };\n}\nfunction _getLocaleTextFromMap(localeText) {\n return (key, defaultValue, variableValues) => {\n let localisedText = localeText?.[key];\n if (localisedText && variableValues?.length) {\n let found = 0;\n while (true) {\n if (found >= variableValues.length) {\n break;\n }\n const idx = localisedText.indexOf(\"${variable}\");\n if (idx === -1) {\n break;\n }\n localisedText = localisedText.replace(\"${variable}\", variableValues[found++]);\n }\n }\n return localisedText ?? defaultValue;\n };\n}\n\n// packages/ag-stack/src/core/agBeanStub.ts\nvar DESTROYED_EVENT = { type: \"destroyed\" };\nvar AgBeanStub = class {\n constructor() {\n this.beans = null;\n this.gos = null;\n this.eventSvc = null;\n /** Indicates whether the bean has been destroyed */\n this.destroyed = false;\n this.localEventService = null;\n // Cold — touched only on bean creation / destruction.\n this.stubContext = null;\n // not named context to allow children to use 'context' as a variable name\n this.destroyFunctions = null;\n this.propertyListenerId = 0;\n // Enable multiple grid properties to be updated together by the user but only trigger shared logic once.\n // Closely related to logic in GridOptionsUtils.ts _processOnChange\n // Lazy — most beans never register grouped property listeners, so the lookup object is allocated on first use.\n this.lastChangeSetIdLookup = null;\n }\n preWireBeans(beans) {\n this.beans = beans;\n this.gos = beans.gos;\n this.eventSvc = beans.eventSvc;\n this.stubContext = beans.context;\n }\n // this was a test constructor niall built, when active, it prints after 5 seconds all beans/components that are\n // not destroyed. to use, create a new grid, then api.destroy() before 5 seconds. then anything that gets printed\n // points to a bean or component that was not properly disposed of.\n // constructor() {\n // setTimeout(()=> {\n // if (this.isAlive()) {\n // let prototype: any = Object.getPrototypeOf(this);\n // const constructor: any = prototype.constructor;\n // const constructorString = constructor.toString();\n // const beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n // console.log('is alive ' + beanName);\n // }\n // }, 5000);\n // }\n destroy() {\n const destroyFunctions = this.destroyFunctions;\n if (destroyFunctions) {\n for (let i = 0; i < destroyFunctions.length; i++) {\n destroyFunctions[i]();\n }\n destroyFunctions.length = 0;\n }\n this.destroyed = true;\n this.dispatchLocalEvent(DESTROYED_EVENT);\n }\n /** Add a local event listener against this BeanStub */\n addEventListener(eventType, listener, async) {\n let localEventService = this.localEventService;\n if (!localEventService) {\n localEventService = new LocalEventService();\n this.localEventService = localEventService;\n }\n localEventService.addEventListener(eventType, listener, async);\n }\n /** Remove a local event listener from this BeanStub */\n removeEventListener(eventType, listener, async) {\n this.localEventService?.removeEventListener(eventType, listener, async);\n }\n dispatchLocalEvent(event) {\n this.localEventService?.dispatchEvent(event);\n }\n addManagedElementListeners(object, handlers) {\n return this._setupListeners(object, handlers);\n }\n addManagedEventListeners(handlers) {\n return this._setupListeners(this.eventSvc, handlers);\n }\n addManagedListeners(object, handlers) {\n return this._setupListeners(object, handlers);\n }\n _setupListeners(object, handlers) {\n const destroyFuncs = [];\n const keys = Object.keys(handlers);\n for (let i = 0, len = keys.length; i < len; ++i) {\n const k = keys[i];\n const handler = handlers[k];\n if (handler) {\n destroyFuncs.push(this._setupListener(object, k, handler));\n }\n }\n return destroyFuncs;\n }\n _setupListener(object, event, listener) {\n if (this.destroyed) {\n return () => null;\n }\n let destroyFunc;\n if (isAgEventEmitter(object)) {\n object.__addEventListener(event, listener);\n destroyFunc = () => {\n object.__removeEventListener(event, listener);\n return null;\n };\n } else {\n const objIsEventService = isEventService(object);\n if (object instanceof HTMLElement) {\n _addSafePassiveEventListener(object, event, listener);\n } else if (objIsEventService) {\n object.addListener(event, listener);\n } else {\n object.addEventListener(event, listener);\n }\n destroyFunc = objIsEventService ? () => {\n object.removeListener(event, listener);\n return null;\n } : () => {\n object.removeEventListener(event, listener);\n return null;\n };\n }\n return this.registerDestroyFunc(destroyFunc);\n }\n /**\n * Setup a managed property listener for the given property.\n * However, stores the destroy function in the beanStub so that if this bean\n * is a component the destroy function will be called when the component is destroyed\n * as opposed to being cleaned up only when the properties service is destroyed.\n */\n setupPropertyListener(event, listener) {\n const { gos } = this;\n gos.addPropertyEventListener(event, listener);\n const destroyFunc = () => {\n gos.removePropertyEventListener(event, listener);\n return null;\n };\n return this.registerDestroyFunc(destroyFunc);\n }\n /**\n * Setup a managed property listener for the given GridOption property.\n * @param event GridOption property to listen to changes for.\n * @param listener Listener to run when property value changes\n */\n addManagedPropertyListener(event, listener) {\n if (this.destroyed) {\n return () => null;\n }\n return this.setupPropertyListener(event, listener);\n }\n /**\n * Setup managed property listeners for the given set of GridOption properties.\n * The listener will be run if any of the property changes but will only run once if\n * multiple of the properties change within the same framework lifecycle event.\n * Works on the basis that GridOptionsService updates all properties *before* any property change events are fired.\n * @param events Array of GridOption properties to listen for changes too.\n * @param listener Shared listener to run if any of the properties change\n */\n addManagedPropertyListeners(events, listener) {\n if (this.destroyed) {\n return;\n }\n const eventsKey = events.join(\"-\") + this.propertyListenerId++;\n const wrappedListener = (event) => {\n const changeSet = event.changeSet;\n if (changeSet) {\n let lookup = this.lastChangeSetIdLookup;\n if (!lookup) {\n lookup = {};\n this.lastChangeSetIdLookup = lookup;\n }\n if (changeSet.id === lookup[eventsKey]) {\n return;\n }\n lookup[eventsKey] = changeSet.id;\n }\n const propertiesChangeEvent = {\n type: \"propertyChanged\",\n changeSet,\n source: event.source\n };\n listener(propertiesChangeEvent);\n };\n for (let i = 0, len = events.length; i < len; ++i) {\n this.setupPropertyListener(events[i], wrappedListener);\n }\n }\n // Prototype method, not a per-instance arrow — never invoked detached, so binding per bean only wastes memory.\n isAlive() {\n return !this.destroyed;\n }\n getLocaleTextFunc() {\n return _getLocaleTextFunc(this.beans.localeSvc);\n }\n // Lazy — most beans never register a destroy func, so the array is allocated on first push.\n pushDestroyFunc(destroyFunc) {\n const destroyFunctions = this.destroyFunctions;\n if (destroyFunctions) {\n destroyFunctions.push(destroyFunc);\n } else {\n this.destroyFunctions = [destroyFunc];\n }\n }\n /** Register a destroy func and return an unregister callback that removes it if called before destroy. */\n registerDestroyFunc(destroyFunc) {\n this.pushDestroyFunc(destroyFunc);\n return () => {\n destroyFunc();\n const destroyFunctions = this.destroyFunctions;\n if (destroyFunctions) {\n _removeFromArray(destroyFunctions, destroyFunc);\n }\n return null;\n };\n }\n addDestroyFunc(func) {\n if (this.destroyed) {\n func();\n } else {\n this.pushDestroyFunc(func);\n }\n }\n /** doesn't throw an error if `bean` is undefined */\n createOptionalManagedBean(bean, context) {\n return bean ? this.createManagedBean(bean, context) : void 0;\n }\n createManagedBean(bean, context) {\n const res = this.createBean(bean, context);\n this.addDestroyFunc(this.destroyBean.bind(this, bean, context));\n return res;\n }\n createBean(bean, context, afterPreCreateCallback) {\n return (context || this.stubContext).createBean(bean, afterPreCreateCallback);\n }\n /**\n * Destroys a bean and returns undefined to support destruction and clean up in a single line.\n * this.dateComp = this.context.destroyBean(this.dateComp);\n */\n destroyBean(bean, context) {\n return (context || this.stubContext).destroyBean(bean);\n }\n /**\n * Destroys an array of beans and returns an empty array to support destruction and clean up in a single line.\n * this.dateComps = this.context.destroyBeans(this.dateComps);\n */\n destroyBeans(beans, context) {\n return (context || this.stubContext).destroyBeans(beans);\n }\n};\nAgBeanStub.prototype.__v_skip = true;\nfunction isAgEventEmitter(object) {\n return object.__addEventListener !== void 0;\n}\nfunction isEventService(object) {\n return object.eventServiceType === \"global\";\n}\n\n// packages/ag-stack/src/interfaces/agComponent.ts\nvar RefPlaceholder = null;\nfunction _isComponent(item) {\n return typeof item?.getGui === \"function\";\n}\n\n// packages/ag-stack/src/rendering/cssClassManager.ts\nvar CssClassManager = class {\n constructor(getGui) {\n // to minimise DOM hits, we only apply CSS classes if they have changed. as adding a CSS class that is already\n // there, or removing one that wasn't present, all takes CPU.\n this.cssClassStates = {};\n this.getGui = getGui;\n }\n toggleCss(className, addOrRemove) {\n if (!className) {\n return;\n }\n if (className.includes(\" \")) {\n const list = (className || \"\").split(\" \");\n if (list.length > 1) {\n for (const cls of list) {\n this.toggleCss(cls, addOrRemove);\n }\n return;\n }\n }\n const updateNeeded = this.cssClassStates[className] !== addOrRemove;\n if (updateNeeded && className.length) {\n this.getGui()?.classList.toggle(className, addOrRemove);\n this.cssClassStates[className] = addOrRemove;\n }\n }\n};\n\n// packages/ag-stack/src/core/agComponentStub.ts\nvar compIdSequence = 0;\nvar AgComponentStub = class extends AgBeanStub {\n constructor(templateOrParams, componentSelectors) {\n super();\n this.suppressDataRefValidation = false;\n // if false, then CSS class \"ag-hidden\" is applied, which sets \"display: none\"\n this.displayed = true;\n // if false, then CSS class \"ag-invisible\" is applied, which sets \"visibility: hidden\"\n this.visible = true;\n // unique id for this row component. this is used for getting a reference to the HTML dom.\n // we cannot use the RowNode id as this is not unique (due to animation, old rows can be lying\n // around as we create a new rowComp instance for the same row node).\n this.compId = compIdSequence++;\n this.cssManager = new CssClassManager(() => this.eGui);\n this.componentSelectors = new Map((componentSelectors ?? []).map((comp) => [comp.selector, comp]));\n if (templateOrParams) {\n this.setTemplate(templateOrParams);\n }\n }\n preConstruct() {\n this.wireTemplate(this.getGui());\n this.addGlobalCss();\n }\n wireTemplate(element, paramsMap) {\n if (element && this.gos) {\n this.applyElementsToComponent(element);\n this.createChildComponentsFromTags(element, paramsMap);\n }\n }\n getCompId() {\n return this.compId;\n }\n getDataRefAttribute(element) {\n if (element.getAttribute) {\n return element.getAttribute(DataRefAttribute);\n }\n return null;\n }\n applyElementsToComponent(element, elementRef, paramsMap, newComponent = null) {\n if (elementRef === void 0) {\n elementRef = this.getDataRefAttribute(element);\n }\n if (elementRef) {\n const current = this[elementRef];\n if (current === RefPlaceholder) {\n this[elementRef] = newComponent ?? element;\n } else {\n const usedAsParamRef = paramsMap?.[elementRef];\n if (!this.suppressDataRefValidation && !usedAsParamRef) {\n throw new Error(`data-ref: ${elementRef} on ${this.constructor.name} with ${current}`);\n }\n }\n }\n }\n // for registered components only, eg creates AgCheckbox instance from ag-checkbox HTML tag\n createChildComponentsFromTags(parentNode, paramsMap) {\n const childNodeList = [];\n for (const childNode of parentNode.childNodes ?? []) {\n childNodeList.push(childNode);\n }\n for (const childNode of childNodeList) {\n if (!(childNode instanceof HTMLElement)) {\n continue;\n }\n const childComp = this.createComponentFromElement(\n childNode,\n (childComp2) => {\n const childGui = childComp2.getGui();\n if (childGui) {\n for (const attr of childNode.attributes ?? []) {\n childGui.setAttribute(attr.name, attr.value);\n }\n }\n },\n paramsMap\n );\n if (childComp) {\n if (childComp.addItems && childNode.children.length) {\n this.createChildComponentsFromTags(childNode, paramsMap);\n const items = Array.prototype.slice.call(childNode.children);\n childComp.addItems(items);\n }\n this.swapComponentForNode(childComp, parentNode, childNode);\n } else if (childNode.childNodes) {\n this.createChildComponentsFromTags(childNode, paramsMap);\n }\n }\n }\n createComponentFromElement(element, afterPreCreateCallback, paramsMap) {\n const key = element.nodeName;\n const elementRef = this.getDataRefAttribute(element);\n const isAgGridComponent = key.indexOf(\"AG-\") === 0;\n const componentSelector = isAgGridComponent ? this.componentSelectors.get(key) : null;\n let newComponent = null;\n if (componentSelector) {\n const componentParams = paramsMap && elementRef ? paramsMap[elementRef] : void 0;\n newComponent = new componentSelector.component(componentParams);\n newComponent.setParentComponent(\n this\n );\n this.createBean(newComponent, null, afterPreCreateCallback);\n } else if (isAgGridComponent) {\n throw new Error(`selector: ${key}`);\n }\n this.applyElementsToComponent(element, elementRef, paramsMap, newComponent);\n return newComponent;\n }\n swapComponentForNode(newComponent, parentNode, childNode) {\n const eComponent = newComponent.getGui();\n parentNode.replaceChild(eComponent, childNode);\n parentNode.insertBefore(document.createComment(childNode.nodeName), eComponent);\n this.addDestroyFunc(this.destroyBean.bind(this, newComponent));\n }\n activateTabIndex(elements, overrideTabIndex) {\n const tabIndex = overrideTabIndex ?? this.gos.get(\"tabIndex\");\n if (!elements) {\n elements = [];\n }\n if (!elements.length) {\n elements.push(this.getGui());\n }\n for (const el of elements) {\n el.setAttribute(\"tabindex\", tabIndex.toString());\n }\n }\n setTemplate(templateOrParams, componentSelectors, paramsMap) {\n let eGui;\n if (typeof templateOrParams === \"string\" || templateOrParams == null) {\n eGui = _loadTemplate(templateOrParams);\n } else {\n eGui = _createAgElement(templateOrParams);\n }\n this.setTemplateFromElement(eGui, componentSelectors, paramsMap);\n }\n setTemplateFromElement(element, components, paramsMap, suppressDataRefValidation = false) {\n this.eGui = element;\n this.suppressDataRefValidation = suppressDataRefValidation;\n if (components) {\n for (let i = 0; i < components.length; i++) {\n const component = components[i];\n this.componentSelectors.set(component.selector, component);\n }\n }\n this.wireTemplate(element, paramsMap);\n }\n getGui() {\n return this.eGui;\n }\n getFocusableElement() {\n return this.eGui;\n }\n getAriaElement() {\n return this.getFocusableElement();\n }\n setParentComponent(component) {\n this.parentComponent = component;\n }\n getParentComponent() {\n return this.parentComponent;\n }\n // this method is for older code, that wants to provide the gui element,\n // it is not intended for this to be in ag-Stack\n setGui(eGui) {\n this.eGui = eGui;\n }\n queryForHtmlElement(cssSelector) {\n return this.eGui.querySelector(cssSelector);\n }\n getContainerAndElement(newChild, container) {\n let parent = container;\n if (newChild == null) {\n return null;\n }\n if (!parent) {\n parent = this.eGui;\n }\n if (_isNodeOrElement(newChild)) {\n return {\n element: newChild,\n parent\n };\n }\n return {\n element: newChild.getGui(),\n parent\n };\n }\n prependChild(newChild, container) {\n const { element, parent } = this.getContainerAndElement(newChild, container) || {};\n if (!element || !parent) {\n return;\n }\n parent.prepend(element);\n }\n appendChild(newChild, container) {\n const { element, parent } = this.getContainerAndElement(newChild, container) || {};\n if (!element || !parent) {\n return;\n }\n parent.appendChild(element);\n }\n isDisplayed() {\n return this.displayed;\n }\n setVisible(visible, options = {}) {\n if (visible !== this.visible) {\n this.visible = visible;\n const { skipAriaHidden } = options;\n _setVisible(this.eGui, visible, { skipAriaHidden });\n }\n }\n setDisplayed(displayed, options = {}) {\n if (displayed !== this.displayed) {\n this.displayed = displayed;\n const { skipAriaHidden } = options;\n _setDisplayed(this.eGui, displayed, { skipAriaHidden });\n const event = {\n type: \"displayChanged\",\n visible: this.displayed\n };\n this.dispatchLocalEvent(event);\n }\n }\n destroy() {\n if (this.parentComponent) {\n this.parentComponent = void 0;\n }\n super.destroy();\n }\n addGuiEventListener(event, listener, options) {\n this.eGui.addEventListener(event, listener, options);\n this.addDestroyFunc(() => this.eGui.removeEventListener(event, listener));\n }\n addCss(className) {\n this.cssManager.toggleCss(className, true);\n }\n removeCss(className) {\n this.cssManager.toggleCss(className, false);\n }\n toggleCss(className, addOrRemove) {\n this.cssManager.toggleCss(className, addOrRemove);\n }\n registerCSS(css) {\n if (this.css === globalCssAdded) {\n this.css = [css];\n this.addGlobalCss();\n } else {\n this.css || (this.css = []);\n this.css.push(css);\n }\n }\n addGlobalCss() {\n if (Array.isArray(this.css)) {\n const debugId = \"component-\" + Object.getPrototypeOf(this)?.constructor?.name;\n for (const css of this.css ?? []) {\n this.beans.environment.addGlobalCSS(css, debugId);\n }\n }\n this.css = globalCssAdded;\n }\n};\nvar globalCssAdded = /* @__PURE__ */ Symbol();\n\n// packages/ag-stack/src/core/agContext.ts\nvar contextId = 1;\nvar AgContext = class {\n constructor(params) {\n this.beans = {};\n this.createdBeans = [];\n this.destroyed = false;\n this.instanceId = contextId++;\n if (!params?.beanClasses) {\n return;\n }\n this.beanDestroyComparator = params.beanDestroyComparator;\n this.init(params);\n }\n init(params) {\n this.id = params.id;\n this.beans.context = this;\n this.destroyCallback = params.destroyCallback;\n for (const beanName of Object.keys(params.providedBeanInstances)) {\n this.beans[beanName] = params.providedBeanInstances[beanName];\n }\n for (const BeanClass of params.beanClasses) {\n const instance = new BeanClass();\n if (instance.beanName) {\n this.beans[instance.beanName] = instance;\n } else {\n console.error(`Bean ${BeanClass.name} is missing beanName`);\n }\n this.createdBeans.push(instance);\n }\n for (const beanFunc of params.derivedBeans ?? []) {\n const { beanName, bean } = beanFunc(this);\n this.beans[beanName] = bean;\n this.createdBeans.push(bean);\n }\n if (params.beanInitComparator) {\n this.createdBeans.sort(params.beanInitComparator);\n }\n this.initBeans(this.createdBeans);\n }\n getBeanInstances() {\n return Object.values(this.beans);\n }\n createBean(bean, afterPreCreateCallback) {\n this.initBeans([bean], afterPreCreateCallback);\n return bean;\n }\n initBeans(beanInstances, afterPreCreateCallback) {\n const beans = this.beans;\n for (const instance of beanInstances) {\n instance.preWireBeans?.(beans);\n instance.wireBeans?.(beans);\n }\n for (const instance of beanInstances) {\n instance.preConstruct?.();\n }\n if (afterPreCreateCallback) {\n beanInstances.forEach(afterPreCreateCallback);\n }\n for (const instance of beanInstances) {\n instance.postConstruct?.();\n }\n }\n getBeans() {\n return this.beans;\n }\n getBean(name) {\n return this.beans[name];\n }\n getId() {\n return this.id;\n }\n destroy() {\n if (this.destroyed) {\n return;\n }\n this.destroyed = true;\n const beanInstances = this.getBeanInstances();\n if (this.beanDestroyComparator) {\n beanInstances.sort(this.beanDestroyComparator);\n }\n this.destroyBeans(beanInstances);\n this.beans = {};\n this.createdBeans = [];\n this.destroyCallback?.();\n }\n /**\n * Destroys a bean and returns undefined to support destruction and clean up in a single line.\n * this.dateComp = this.context.destroyBean(this.dateComp);\n */\n destroyBean(bean) {\n bean?.destroy?.();\n }\n /**\n * Destroys an array of beans and returns an empty array to support destruction and clean up in a single line.\n * this.dateComps = this.context.destroyBeans(this.dateComps);\n */\n destroyBeans(beans) {\n if (beans) {\n for (let i = 0; i < beans.length; i++) {\n this.destroyBean(beans[i]);\n }\n }\n return [];\n }\n isDestroyed() {\n return this.destroyed;\n }\n};\n\n// packages/ag-stack/src/utils/function.ts\nvar doOnceSet = /* @__PURE__ */ new Set();\nvar _doOnce = (func, key) => {\n if (!doOnceSet.has(key)) {\n doOnceSet.add(key);\n func();\n }\n};\n_doOnce._set = doOnceSet;\nvar batchedCallsSetTimeout = {\n pending: false,\n funcs: []\n};\nvar batchedCallsRaf = {\n pending: false,\n funcs: []\n};\nfunction _batchCall(func, mode = \"setTimeout\", beans) {\n const batch = mode === \"raf\" ? batchedCallsRaf : batchedCallsSetTimeout;\n batch.funcs.push(func);\n if (batch.pending) {\n return;\n }\n batch.pending = true;\n const runBatch = () => {\n const funcsCopy = batch.funcs.slice();\n batch.funcs.length = 0;\n batch.pending = false;\n for (const func2 of funcsCopy) {\n func2();\n }\n };\n if (mode === \"raf\") {\n _requestAnimationFrame(beans, runBatch);\n } else {\n window.setTimeout(runBatch, 0);\n }\n}\nfunction _debounce(bean, func, delay) {\n let timeout;\n return function(...args) {\n const context = this;\n window.clearTimeout(timeout);\n timeout = window.setTimeout(function() {\n if (bean.isAlive()) {\n func.apply(context, args);\n }\n }, delay);\n return timeout;\n };\n}\nfunction _throttle(func, wait) {\n let previousCall = 0;\n return function(...args) {\n const context = this;\n const currentCall = Date.now();\n if (currentCall - previousCall < wait) {\n return;\n }\n previousCall = currentCall;\n func.apply(context, args);\n };\n}\nfunction _waitUntil(bean, condition, callback, timeout = 100) {\n const timeStamp = Date.now();\n let interval = null;\n let executed = false;\n const clearWait = () => {\n if (interval != null) {\n window.clearInterval(interval);\n interval = null;\n }\n };\n bean.addDestroyFunc(clearWait);\n const internalCallback = () => {\n const reachedTimeout = Date.now() - timeStamp > timeout;\n if (condition() || reachedTimeout) {\n callback();\n executed = true;\n clearWait();\n }\n };\n internalCallback();\n if (!executed) {\n interval = window.setInterval(internalCallback, 10);\n }\n}\n\n// packages/ag-stack/src/core/baseAriaAnnouncementService.ts\nvar BaseAriaAnnouncementService = class extends AgBeanStub {\n constructor() {\n super();\n this.beanName = \"ariaAnnounce\";\n this.descriptionContainer = null;\n this.pendingAnnouncements = /* @__PURE__ */ new Map();\n this.lastAnnouncement = \"\";\n this.updateAnnouncement = _debounce(this, this.updateAnnouncement.bind(this), 200);\n }\n postConstruct() {\n const beans = this.beans;\n const eDocument = _getDocument(beans);\n const div = this.descriptionContainer = eDocument.createElement(\"div\");\n div.classList.add(\"ag-aria-description-container\");\n _setAriaLive(div, \"polite\");\n _setAriaRelevant(div, \"additions text\");\n _setAriaAtomic(div, true);\n beans.eRootDiv.appendChild(div);\n }\n /**\n * @param key used for debouncing calls\n */\n announceValue(value, key) {\n this.pendingAnnouncements.set(key, value);\n this.updateAnnouncement();\n }\n updateAnnouncement() {\n if (!this.descriptionContainer) {\n return;\n }\n const value = Array.from(this.pendingAnnouncements.values()).join(\". \");\n this.pendingAnnouncements.clear();\n this.descriptionContainer.textContent = \"\";\n setTimeout(() => {\n this.handleAnnouncementUpdate(value);\n }, 50);\n }\n handleAnnouncementUpdate(value) {\n if (!this.isAlive() || !this.descriptionContainer) {\n return;\n }\n let valueToAnnounce = value;\n if (valueToAnnounce == null || valueToAnnounce.replace(/[ .]/g, \"\") == \"\") {\n this.lastAnnouncement = \"\";\n return;\n }\n if (this.lastAnnouncement === valueToAnnounce) {\n valueToAnnounce = `${valueToAnnounce}\\u200B`;\n }\n this.lastAnnouncement = valueToAnnounce;\n this.descriptionContainer.textContent = valueToAnnounce;\n }\n destroy() {\n super.destroy();\n const { descriptionContainer } = this;\n if (descriptionContainer) {\n _clearElement(descriptionContainer);\n descriptionContainer.remove();\n }\n this.descriptionContainer = null;\n this.pendingAnnouncements.clear();\n }\n};\n\n// packages/ag-stack/src/theming/styledRoot.ts\nfunction _initDetachedStyledRoot(env, child) {\n const [outer, inner] = _createStyledRootElements();\n inner.appendChild(child);\n const destroy = _initStyledRootFromInnerOfThreeElements(env, inner);\n return [outer, destroy];\n}\nfunction _initStyledRoot(env, parent, child) {\n const [element, destroy] = _initDetachedStyledRoot(env, child);\n parent.appendChild(element);\n return () => {\n destroy();\n element.remove();\n };\n}\nfunction _createStyledRootElements() {\n const el = { tag: \"div\", cls: \"ag-styled-root\" };\n const outer = _createAgElement({ ...el, children: [{ ...el, children: [el] }] });\n return [outer, outer.firstElementChild.firstElementChild];\n}\nfunction _initStyledRootFromInnerOfThreeElements(env, inner, postApplyClasses) {\n const middle = inner.parentElement;\n const outer = middle.parentElement;\n const applyClasses = () => {\n const [inheritClass, applyClass, directionClass] = env.getStyledRootClasses();\n outer.className = [\"ag-styled-root\", inheritClass].join(\" \");\n middle.className = [\"ag-styled-root\", applyClass].join(\" \");\n inner.className = [\"ag-styled-root\", directionClass].join(\" \");\n postApplyClasses?.();\n };\n applyClasses();\n return env.onThemeChanged(applyClasses);\n}\n\n// packages/ag-stack/src/core/baseDragAndDropService.ts\nvar BaseDragAndDropService = class extends AgBeanStub {\n constructor() {\n super(...arguments);\n this.beanName = \"dragAndDrop\";\n this.dragSourceAndParamsList = [];\n this.dragItem = null;\n this.dragInitialSourcePointerOffsetX = 0;\n this.dragInitialSourcePointerOffsetY = 0;\n this.lastMouseEvent = null;\n this.lastDraggingEvent = null;\n this.dragSource = null;\n this.dragImageCompPromise = null;\n this.dragImageComp = null;\n this.disconnect = null;\n this.dragImageLastIcon = void 0;\n this.dragImageLastLabel = void 0;\n this.dropTargets = [];\n this.externalDropZoneCount = 0;\n this.lastDropTarget = null;\n }\n addDragSource(dragSource, allowTouch = false) {\n const entry = {\n capturePointer: true,\n dragSource,\n eElement: dragSource.eElement,\n dragStartPixels: dragSource.dragStartPixels,\n onDragStart: (mouseEvent) => this.onDragStart(dragSource, mouseEvent),\n onDragStop: this.onDragStop.bind(this),\n onDragging: this.onDragging.bind(this),\n onDragCancel: this.onDragCancel.bind(this),\n includeTouch: allowTouch\n };\n this.dragSourceAndParamsList.push(entry);\n this.beans.dragSvc.addDragSource(entry);\n }\n setDragImageCompIcon(iconName, shake = false) {\n const component = this.dragImageComp;\n if (component && (shake || this.dragImageLastIcon !== iconName)) {\n this.dragImageLastIcon = iconName;\n component.setIcon(iconName, shake);\n }\n }\n removeDragSource(dragSource) {\n const { dragSourceAndParamsList, beans } = this;\n for (let i = 0, len = dragSourceAndParamsList.length; i < len; i++) {\n if (dragSourceAndParamsList[i].dragSource === dragSource) {\n const sourceAndParams = dragSourceAndParamsList[i];\n beans.dragSvc?.removeDragSource(sourceAndParams);\n dragSourceAndParamsList.splice(i, 1);\n break;\n }\n }\n }\n destroy() {\n const { dragSourceAndParamsList, dropTargets, beans } = this;\n const dragSvc = beans.dragSvc;\n for (const sourceAndParams of dragSourceAndParamsList) {\n dragSvc?.removeDragSource(sourceAndParams);\n }\n dragSourceAndParamsList.length = 0;\n dropTargets.length = 0;\n this.externalDropZoneCount = 0;\n this.clearDragAndDropProperties();\n super.destroy();\n }\n nudge() {\n const lastMouseEvent = this.lastMouseEvent;\n if (lastMouseEvent) {\n this.onDragging(lastMouseEvent, true);\n }\n }\n onDragStart(dragSource, mouseEvent) {\n this.lastMouseEvent = mouseEvent;\n this.dragSource = dragSource;\n this.dragItem = dragSource.getDragItem();\n const rect = dragSource.eElement.getBoundingClientRect();\n this.dragInitialSourcePointerOffsetX = mouseEvent.clientX - rect.left;\n this.dragInitialSourcePointerOffsetY = mouseEvent.clientY - rect.top;\n dragSource.onDragStarted?.();\n this.createAndUpdateDragImageComp(dragSource);\n }\n onDragStop(mouseEvent) {\n const { dragSource, lastDropTarget } = this;\n dragSource?.onDragStopped?.();\n if (lastDropTarget) {\n const dragEndEvent = this.dropTargetEvent(lastDropTarget, mouseEvent, false);\n lastDropTarget.onDragStop?.(dragEndEvent);\n }\n this.clearDragAndDropProperties();\n }\n onDragCancel() {\n const { dragSource, lastDropTarget, lastMouseEvent } = this;\n dragSource?.onDragCancelled?.();\n if (lastDropTarget && lastMouseEvent) {\n const dragCancelEvent = this.dropTargetEvent(lastDropTarget, lastMouseEvent, false);\n lastDropTarget.onDragCancel?.(dragCancelEvent);\n }\n this.clearDragAndDropProperties();\n }\n onDragging(mouseEvent, fromNudge = false) {\n this.positionDragImageComp(mouseEvent);\n const dropTarget = this.findCurrentDropTarget(mouseEvent);\n const { lastDropTarget, dragSource, dragItem } = this;\n let needUpdate = false;\n if (dropTarget !== lastDropTarget) {\n needUpdate = true;\n if (lastDropTarget) {\n const dragLeaveEvent = this.dropTargetEvent(lastDropTarget, mouseEvent, fromNudge);\n lastDropTarget.onDragLeave?.(dragLeaveEvent);\n }\n if (lastDropTarget !== null && !dropTarget) {\n this.handleExit(dragSource, dragItem);\n } else if (lastDropTarget === null && dropTarget) {\n this.handleEnter(dragSource, dragItem);\n }\n if (dropTarget) {\n const dragEnterEvent = this.dropTargetEvent(dropTarget, mouseEvent, fromNudge);\n dropTarget.onDragEnter?.(dragEnterEvent);\n }\n this.lastDropTarget = dropTarget;\n } else if (dropTarget) {\n const dragMoveEvent = this.dropTargetEvent(dropTarget, mouseEvent, fromNudge);\n dropTarget.onDragging?.(dragMoveEvent);\n if (dragMoveEvent?.changed) {\n needUpdate = true;\n }\n }\n this.lastMouseEvent = mouseEvent;\n if (needUpdate) {\n this.updateDragImageComp();\n }\n }\n clearDragAndDropProperties() {\n this.removeDragImageComp(this.dragImageComp);\n this.dragImageCompPromise = null;\n this.dragImageLastIcon = void 0;\n this.dragImageLastLabel = void 0;\n this.lastMouseEvent = null;\n this.lastDraggingEvent = null;\n this.lastDropTarget = null;\n this.dragItem = null;\n this.dragInitialSourcePointerOffsetX = 0;\n this.dragInitialSourcePointerOffsetY = 0;\n this.dragSource = null;\n }\n getAllContainersFromDropTarget(dropTarget) {\n const primaryContainer = dropTarget.getContainer();\n const secondaryContainers = dropTarget.getSecondaryContainers?.();\n const secondaryContainersLen = secondaryContainers?.length;\n if (!secondaryContainersLen) {\n return [[primaryContainer]];\n }\n const containers = new Array(secondaryContainersLen + 1);\n containers[0] = [primaryContainer];\n for (let i = 0; i < secondaryContainersLen; ++i) {\n containers[i + 1] = secondaryContainers[i];\n }\n return containers;\n }\n // checks if the mouse is on the drop target. it checks eContainer and eSecondaryContainers\n isMouseOnDropTarget(mouseEvent, dropTarget) {\n const allContainersFromDropTarget = this.getAllContainersFromDropTarget(dropTarget);\n let mouseOverTarget = false;\n const allContainersIntersect = (mouseEvent2, containers) => {\n for (const container of containers) {\n const { width, height, left, right, top, bottom } = container.getBoundingClientRect();\n if (width === 0 || height === 0) {\n return false;\n }\n const horizontalFit = mouseEvent2.clientX >= left && mouseEvent2.clientX < right;\n const verticalFit = mouseEvent2.clientY >= top && mouseEvent2.clientY < bottom;\n if (!horizontalFit || !verticalFit) {\n return false;\n }\n }\n return true;\n };\n for (const currentContainers of allContainersFromDropTarget) {\n if (allContainersIntersect(mouseEvent, currentContainers)) {\n mouseOverTarget = true;\n break;\n }\n }\n const { eElement, type } = this.dragSource;\n if (dropTarget.targetContainsSource && !dropTarget.getContainer().contains(eElement)) {\n return false;\n }\n return mouseOverTarget && dropTarget.isInterestedIn(type, eElement);\n }\n findCurrentDropTarget(mouseEvent) {\n const validDropTargets = [];\n const dropTargets = this.dropTargets;\n for (let i = 0, len2 = dropTargets.length; i < len2; ++i) {\n const target = dropTargets[i];\n if (this.isMouseOnDropTarget(mouseEvent, target)) {\n validDropTargets.push(target);\n }\n }\n const len = validDropTargets.length;\n if (len === 0) {\n return null;\n }\n if (len === 1) {\n return validDropTargets[0];\n }\n const rootNode = _getRootNode(this.beans);\n const elementStack = rootNode.elementsFromPoint(mouseEvent.clientX, mouseEvent.clientY);\n for (let i = 0, stackLen = elementStack.length; i < stackLen; ++i) {\n const el = elementStack[i];\n for (let targetIndex = 0, targetsLen = validDropTargets.length; targetIndex < targetsLen; targetIndex++) {\n const dropTarget = validDropTargets[targetIndex];\n const containerGroups = this.getAllContainersFromDropTarget(dropTarget);\n let matched = false;\n for (let groupIdx = 0, groupLen = containerGroups.length; groupIdx < groupLen && !matched; groupIdx++) {\n const group = containerGroups[groupIdx];\n for (let elIdx = 0, elLen = group.length; elIdx < elLen; elIdx++) {\n if (group[elIdx] === el) {\n matched = true;\n break;\n }\n }\n }\n if (matched) {\n return dropTarget;\n }\n }\n }\n return null;\n }\n addDropTarget(dropTarget) {\n this.dropTargets.push(dropTarget);\n if (dropTarget.external) {\n this.externalDropZoneCount++;\n }\n }\n removeDropTarget(dropTarget) {\n const container = dropTarget.getContainer();\n const dropTargets = this.dropTargets;\n let writeIndex = 0;\n for (let readIndex = 0, len = dropTargets.length; readIndex < len; ++readIndex) {\n const target = dropTargets[readIndex];\n if (target.getContainer() === container) {\n if (target.external) {\n --this.externalDropZoneCount;\n }\n continue;\n }\n if (writeIndex !== readIndex) {\n dropTargets[writeIndex] = target;\n }\n ++writeIndex;\n }\n dropTargets.length = writeIndex;\n }\n hasExternalDropZones() {\n return this.externalDropZoneCount > 0;\n }\n findExternalZone(container) {\n const dropTargets = this.dropTargets;\n for (let i = 0, len = dropTargets.length; i < len; ++i) {\n const zone = dropTargets[i];\n if (zone.external && zone.getContainer() === container) {\n return zone;\n }\n }\n return null;\n }\n dropTargetEvent(dropTarget, mouseEvent, fromNudge) {\n const {\n dragSource,\n dragItem,\n lastDraggingEvent,\n lastMouseEvent,\n dragInitialSourcePointerOffsetX,\n dragInitialSourcePointerOffsetY\n } = this;\n const dropZoneTarget = dropTarget.getContainer();\n const rect = dropZoneTarget.getBoundingClientRect();\n const { clientX, clientY } = mouseEvent;\n const xDir = clientX - (lastMouseEvent?.clientX || 0);\n const yDir = clientY - (lastMouseEvent?.clientY || 0);\n const draggingEvent = this.createEvent({\n event: mouseEvent,\n x: clientX - rect.left,\n // relative x\n y: clientY - rect.top,\n // relative y\n vDirection: yDir > 0 ? \"down\" : yDir < 0 ? \"up\" : null,\n hDirection: xDir < 0 ? \"left\" : xDir > 0 ? \"right\" : null,\n initialSourcePointerOffsetX: dragInitialSourcePointerOffsetX,\n initialSourcePointerOffsetY: dragInitialSourcePointerOffsetY,\n dragSource,\n fromNudge,\n dragItem,\n dropZoneTarget,\n dropTarget: lastDraggingEvent?.dropTarget ?? null,\n // updated by rowDragFeature\n changed: !!lastDraggingEvent?.changed\n });\n this.lastDraggingEvent = draggingEvent;\n return draggingEvent;\n }\n positionDragImageComp(event) {\n const gui = this.dragImageComp?.getGui();\n if (gui) {\n _anchorElementToMouseMoveEvent(gui, event, this.beans);\n }\n }\n removeDragImageComp(comp) {\n if (this.dragImageComp === comp) {\n this.dragImageComp = null;\n }\n if (comp) {\n this.disconnect?.();\n this.disconnect = null;\n this.destroyBean(comp);\n }\n }\n createAndUpdateDragImageComp(dragSource) {\n const promise = this.createDragImageComp(dragSource) ?? null;\n this.dragImageCompPromise = promise;\n promise?.then((dragImageComp) => {\n const lastMouseEvent = this.lastMouseEvent;\n if (promise !== this.dragImageCompPromise || !lastMouseEvent || !this.isAlive()) {\n this.destroyBean(dragImageComp);\n return;\n }\n this.dragImageCompPromise = null;\n this.dragImageLastIcon = void 0;\n this.dragImageLastLabel = void 0;\n const oldDragImageComp = this.dragImageComp;\n if (oldDragImageComp !== dragImageComp) {\n this.dragImageComp = dragImageComp;\n this.removeDragImageComp(oldDragImageComp);\n }\n if (dragImageComp) {\n this.appendDragImageComp(dragImageComp);\n this.updateDragImageComp();\n this.positionDragImageComp(lastMouseEvent);\n }\n });\n }\n appendDragImageComp(component) {\n const eGui = component.getGui();\n const style = eGui.style;\n style.position = \"absolute\";\n style.zIndex = \"9999\";\n if (this.beans.dragSvc?.hasPointerCapture()) {\n style.pointerEvents = \"none\";\n }\n this.gos.setInstanceDomData(eGui);\n style.top = \"20px\";\n style.left = \"20px\";\n const targetEl = _getPageBody(this.beans);\n if (!targetEl) {\n this.warnNoBody();\n return;\n }\n this.disconnect = _initStyledRoot(this.beans.environment, targetEl, eGui);\n }\n updateDragImageComp() {\n const { dragImageComp, dragSource, lastDropTarget, lastDraggingEvent, dragImageLastLabel } = this;\n if (!dragImageComp) {\n return;\n }\n this.setDragImageCompIcon(lastDropTarget?.getIconName?.(lastDraggingEvent) ?? null);\n let label = dragSource?.dragItemName;\n if (typeof label === \"function\") {\n label = label(lastDraggingEvent);\n }\n label || (label = \"\");\n if (dragImageLastLabel !== label) {\n this.dragImageLastLabel = label;\n dragImageComp.setLabel(label);\n }\n }\n};\n\n// packages/ag-stack/src/events/pointerCapture.ts\nvar tryPointerCapture = (eElement, pointerId) => {\n if (pointerId != null && eElement?.setPointerCapture) {\n try {\n eElement.setPointerCapture(pointerId);\n return eElement.hasPointerCapture(pointerId);\n } catch {\n }\n }\n return false;\n};\nvar capturePointer = (eElement, mouseEvent) => {\n if (typeof PointerEvent === \"undefined\" || !(mouseEvent instanceof PointerEvent)) {\n return null;\n }\n const pointerId = mouseEvent.pointerId;\n if (!tryPointerCapture(eElement, pointerId)) {\n return null;\n }\n const capture = {\n eElement,\n pointerId,\n onLost(pointerEvent) {\n pointerLostHandler(capture, pointerEvent);\n }\n };\n eElement.addEventListener(\"lostpointercapture\", capture.onLost);\n return capture;\n};\nvar releasePointerCapture = (capture) => {\n if (!capture) {\n return;\n }\n removeLostHandler(capture);\n const { eElement, pointerId } = capture;\n if (!eElement) {\n return;\n }\n try {\n eElement.releasePointerCapture(pointerId);\n } catch {\n }\n capture.eElement = null;\n};\nvar removeLostHandler = (capture) => {\n const { eElement, onLost } = capture;\n if (eElement && onLost) {\n eElement.removeEventListener(\"lostpointercapture\", onLost);\n capture.onLost = null;\n }\n};\nvar pointerLostHandler = (capture, pointerEvent) => {\n removeLostHandler(capture);\n const { eElement, pointerId } = capture;\n if (eElement && pointerEvent.pointerId === pointerId) {\n tryPointerCapture(eElement, pointerId);\n }\n};\n\n// packages/ag-stack/src/utils/browser.ts\nvar isSafari;\nvar isFirefox;\nvar isMacOs;\nvar isIOS;\nvar invisibleScrollbar;\nvar browserScrollbarWidth;\nvar maxDivHeight;\nfunction _isBrowserSafari() {\n if (isSafari === void 0) {\n isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n }\n return isSafari;\n}\nfunction _isBrowserFirefox() {\n if (isFirefox === void 0) {\n isFirefox = /(firefox)/i.test(navigator.userAgent);\n }\n return isFirefox;\n}\nfunction _isMacOsUserAgent() {\n if (isMacOs === void 0) {\n isMacOs = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\n }\n return isMacOs;\n}\nfunction _isIOSUserAgent() {\n if (isIOS === void 0) {\n isIOS = /iPad|iPhone|iPod/.test(navigator.platform) || navigator.platform === \"MacIntel\" && navigator.maxTouchPoints > 1;\n }\n return isIOS;\n}\nfunction _getTabIndex(el) {\n if (!el) {\n return null;\n }\n const numberTabIndex = el.tabIndex;\n const tabIndex = el.getAttribute(\"tabIndex\");\n if (numberTabIndex === -1 && (tabIndex === null || tabIndex === \"\" && !_isBrowserFirefox())) {\n return null;\n }\n return numberTabIndex.toString();\n}\nfunction _getMaxDivHeight() {\n if (maxDivHeight !== void 0) {\n return maxDivHeight;\n }\n if (!document.body) {\n return -1;\n }\n let res = 1e6;\n const testUpTo = _isBrowserFirefox() ? 6e6 : 1e9;\n const div = document.createElement(\"div\");\n document.body.appendChild(div);\n while (true) {\n const test = res * 2;\n div.style.height = test + \"px\";\n if (test > testUpTo || div.clientHeight !== test) {\n break;\n } else {\n res = test;\n }\n }\n div.remove();\n maxDivHeight = res;\n return res;\n}\nfunction _getScrollbarWidth() {\n if (browserScrollbarWidth == null) {\n initScrollbarWidthAndVisibility();\n }\n return browserScrollbarWidth;\n}\nfunction initScrollbarWidthAndVisibility() {\n const body = document.body;\n const div = document.createElement(\"div\");\n div.style.width = div.style.height = \"100px\";\n div.style.opacity = \"0\";\n div.style.overflow = \"scroll\";\n div.style.msOverflowStyle = \"scrollbar\";\n div.style.position = \"absolute\";\n body.appendChild(div);\n let width = div.offsetWidth - div.clientWidth;\n if (width === 0 && div.clientWidth === 0) {\n width = null;\n }\n if (div.parentNode) {\n div.remove();\n }\n if (width != null) {\n browserScrollbarWidth = width;\n invisibleScrollbar = width === 0;\n }\n}\nfunction _isInvisibleScrollbar() {\n if (invisibleScrollbar == null) {\n initScrollbarWidthAndVisibility();\n }\n return invisibleScrollbar;\n}\n\n// packages/ag-stack/src/core/baseDragService.ts\nvar activePointerDrags;\nvar handledDragEvents;\nvar PASSIVE_TRUE = { passive: true };\nvar PASSIVE_FALSE = { passive: false };\nvar addHandledDragEvent = (event) => {\n if (!handledDragEvents) {\n handledDragEvents = /* @__PURE__ */ new WeakSet();\n } else if (handledDragEvents.has(event)) {\n return false;\n }\n handledDragEvents.add(event);\n return true;\n};\nvar BaseDragService = class extends AgBeanStub {\n constructor() {\n super(...arguments);\n this.beanName = \"dragSvc\";\n this.dragging = false;\n this.drag = null;\n this.dragSources = [];\n }\n get startTarget() {\n return this.drag?.start.target ?? null;\n }\n /** True if there is at least one active pointer drag in any BaseDragService instance in the page */\n isPointer() {\n return !!activePointerDrags?.has(_getRootNode(this.beans));\n }\n hasPointerCapture() {\n const capture = this.drag?.pointerCapture;\n return !!(capture && this.beans.eRootDiv.hasPointerCapture?.(capture.pointerId));\n }\n destroy() {\n if (this.drag) {\n this.cancelDrag();\n }\n const dragSources = this.dragSources;\n for (const entry of dragSources) {\n destroyDragSourceEntry(entry);\n }\n dragSources.length = 0;\n super.destroy();\n }\n removeDragSource(params) {\n const dragSources = this.dragSources;\n for (let i = 0, len = dragSources.length; i < len; ++i) {\n const entry = dragSources[i];\n if (entry.params === params) {\n dragSources.splice(i, 1);\n destroyDragSourceEntry(entry);\n break;\n }\n }\n }\n addDragSource(params) {\n if (!this.isAlive()) {\n return;\n }\n const { eElement, includeTouch } = params;\n const handlers = [];\n let oldTouchAction;\n if (includeTouch) {\n const style = eElement.style;\n if (style) {\n oldTouchAction = style.touchAction;\n style.touchAction = \"none\";\n }\n }\n const dragSource = { handlers, params, oldTouchAction };\n this.dragSources.push(dragSource);\n const pointerDownListener = (event) => this.onPointerDown(params, event);\n const mouseListener = (event) => this.onMouseDown(params, event);\n addTempEventHandlers(\n handlers,\n [eElement, \"pointerdown\", pointerDownListener, PASSIVE_FALSE],\n [eElement, \"mousedown\", mouseListener]\n );\n const suppressTouch = this.gos.get(\"suppressTouch\");\n if (includeTouch && !suppressTouch) {\n const touchListener = (touchEvent) => this.onTouchStart(params, touchEvent);\n addTempEventHandlers(handlers, [eElement, \"touchstart\", touchListener, PASSIVE_FALSE]);\n }\n }\n cancelDrag(eElement) {\n const drag = this.drag;\n eElement ?? (eElement = drag?.eElement);\n if (eElement) {\n this.eventSvc.dispatchEvent({ type: \"dragCancelled\", target: eElement });\n }\n drag?.params.onDragCancel?.();\n this.destroyDrag();\n }\n shouldPreventMouseEvent(mouseEvent) {\n const type = mouseEvent.type;\n const isMouseMove = type === \"mousemove\" || type === \"pointermove\";\n return isMouseMove && mouseEvent.cancelable && _isEventFromThisInstance(this.beans, mouseEvent) && !_isFocusableFormField(getEventTargetElement(mouseEvent));\n }\n initDrag(drag, ...handlers) {\n this.drag = drag;\n const beans = this.beans;\n const onScroll = (event) => this.onScroll(event);\n const keydownEvent = (ev) => this.onKeyDown(ev);\n const rootEl = _getRootNode(beans);\n const eDocument = _getDocument(beans);\n addTempEventHandlers(\n drag.handlers,\n [rootEl, \"contextmenu\", preventEventDefault],\n [rootEl, \"keydown\", keydownEvent],\n [eDocument, \"scroll\", onScroll, { capture: true }],\n [eDocument.defaultView || window, \"scroll\", onScroll],\n ...handlers\n );\n }\n destroyDrag() {\n this.dragging = false;\n const drag = this.drag;\n if (drag) {\n const rootEl = drag.rootEl;\n if (activePointerDrags?.get(rootEl) === drag) {\n activePointerDrags.delete(rootEl);\n }\n this.drag = null;\n releasePointerCapture(drag.pointerCapture);\n clearTempEventHandlers(drag.handlers);\n }\n }\n // Pointer Events path (preferred when supported)\n onPointerDown(params, pointerEvent) {\n if (this.isPointer()) {\n return;\n }\n const beans = this.beans;\n if (handledDragEvents?.has(pointerEvent)) {\n return;\n }\n const pointerType = pointerEvent.pointerType;\n if (pointerType === \"touch\") {\n if (beans.gos.get(\"suppressTouch\") || !params.includeTouch) {\n return;\n }\n if (params.stopPropagationForTouch) {\n pointerEvent.stopPropagation();\n }\n if (_isFocusableFormField(getEventTargetElement(pointerEvent))) {\n return;\n }\n }\n if (!pointerEvent.isPrimary) {\n return;\n }\n if (pointerType === \"mouse\" && pointerEvent.button !== 0) {\n return;\n }\n this.destroyDrag();\n const rootEl = _getRootNode(beans);\n const eElement = params.eElement;\n const pointerId = pointerEvent.pointerId;\n const pointerDrag = new Dragging(rootEl, params, pointerEvent, pointerId);\n activePointerDrags ?? (activePointerDrags = /* @__PURE__ */ new WeakMap());\n activePointerDrags.set(rootEl, pointerDrag);\n const onPointerMove = (ev) => {\n if (ev.pointerId === pointerId) {\n this.onMouseOrPointerMove(ev);\n }\n };\n const onUp = (ev) => {\n if (ev.pointerId === pointerId) {\n this.onMouseOrPointerUp(ev);\n }\n };\n const onCancel = (ev) => {\n if (ev.pointerId === pointerId && addHandledDragEvent(ev)) {\n this.cancelDrag();\n }\n };\n const dragPreventEventDefault = (e) => this.draggingPreventDefault(e);\n this.initDrag(\n pointerDrag,\n [rootEl, \"pointerup\", onUp],\n [rootEl, \"pointercancel\", onCancel],\n [rootEl, \"pointermove\", onPointerMove, PASSIVE_FALSE],\n [rootEl, \"touchmove\", dragPreventEventDefault, PASSIVE_FALSE],\n [eElement, \"mousemove\", dragPreventEventDefault, PASSIVE_FALSE]\n );\n if (params.dragStartPixels === 0) {\n this.onMouseOrPointerMove(pointerEvent);\n } else {\n addHandledDragEvent(pointerEvent);\n }\n }\n // gets called whenever mouse down on any drag source\n onTouchStart(params, touchEvent) {\n const suppressTouch = this.gos.get(\"suppressTouch\");\n if (suppressTouch || !params.includeTouch) {\n return;\n }\n if (!addHandledDragEvent(touchEvent)) {\n return;\n }\n if (_isFocusableFormField(getEventTargetElement(touchEvent))) {\n return;\n }\n if (params.stopPropagationForTouch) {\n touchEvent.stopPropagation();\n }\n if (this.isPointer()) {\n if (this.dragging) {\n preventEventDefault(touchEvent);\n }\n return;\n }\n this.destroyDrag();\n const beans = this.beans;\n const rootEl = _getRootNode(beans);\n const touchDrag = new Dragging(rootEl, params, touchEvent.touches[0]);\n const touchMoveEvent = (e) => this.onTouchMove(e);\n const touchEndEvent = (e) => this.onTouchUp(e);\n const touchCancelEvent = (e) => this.onTouchCancel(e);\n const dragPreventEventDefault = (e) => this.draggingPreventDefault(e);\n const rootNode = _getRootNode(beans);\n const target = touchEvent.target ?? params.eElement;\n this.initDrag(\n touchDrag,\n [target, \"touchmove\", touchMoveEvent, PASSIVE_TRUE],\n [target, \"touchend\", touchEndEvent, PASSIVE_TRUE],\n [target, \"touchcancel\", touchCancelEvent, PASSIVE_TRUE],\n [rootNode, \"touchmove\", dragPreventEventDefault, PASSIVE_FALSE],\n [rootNode, \"touchend\", touchEndEvent, PASSIVE_FALSE],\n [rootNode, \"touchcancel\", touchCancelEvent, PASSIVE_FALSE]\n );\n if (params.dragStartPixels === 0) {\n this.onMove(touchDrag.start);\n }\n }\n /** preventEventDefault on the event while dragging only and if the event is cancellable */\n draggingPreventDefault(e) {\n if (this.dragging) {\n preventEventDefault(e);\n }\n }\n // gets called whenever mouse down on any drag source\n onMouseDown(params, mouseEvent) {\n if (mouseEvent.button !== 0) {\n return;\n }\n if (handledDragEvents?.has(mouseEvent)) {\n return;\n }\n if (this.isPointer()) {\n return;\n }\n const beans = this.beans;\n this.destroyDrag();\n const mouseDrag = new Dragging(_getRootNode(beans), params, mouseEvent);\n const mouseMoveEvent = (event) => this.onMouseOrPointerMove(event);\n const mouseUpEvent = (event) => this.onMouseOrPointerUp(event);\n const target = _getRootNode(beans);\n this.initDrag(mouseDrag, [target, \"mousemove\", mouseMoveEvent], [target, \"mouseup\", mouseUpEvent]);\n if (params.dragStartPixels === 0) {\n this.onMouseOrPointerMove(mouseEvent);\n } else {\n addHandledDragEvent(mouseEvent);\n }\n }\n onScroll(event) {\n if (!addHandledDragEvent(event)) {\n return;\n }\n const drag = this.drag;\n const lastDrag = drag?.lastDrag;\n if (lastDrag && this.dragging) {\n drag.params?.onDragging?.(lastDrag);\n }\n }\n /** only gets called after a mouse down - as this is only added after mouseDown and is removed when mouseUp happens */\n onMouseOrPointerMove(mouseEvent) {\n if (!addHandledDragEvent(mouseEvent)) {\n return;\n }\n if (_isBrowserSafari()) {\n _getDocument(this.beans).getSelection()?.removeAllRanges();\n }\n if (this.shouldPreventMouseEvent(mouseEvent)) {\n preventEventDefault(mouseEvent);\n }\n this.onMove(mouseEvent);\n }\n onTouchCancel(touchEvent) {\n const drag = this.drag;\n if (!drag || !addHandledDragEvent(touchEvent)) {\n return;\n }\n if (!_getFirstActiveTouch(drag.start, touchEvent.changedTouches)) {\n return;\n }\n this.cancelDrag();\n }\n onTouchMove(touchEvent) {\n const drag = this.drag;\n if (!drag || !addHandledDragEvent(touchEvent)) {\n return;\n }\n const touch = _getFirstActiveTouch(drag.start, touchEvent.touches);\n if (touch) {\n this.onMove(touch);\n this.draggingPreventDefault(touchEvent);\n }\n }\n onMove(currentEvent) {\n const drag = this.drag;\n if (!drag) {\n return;\n }\n drag.lastDrag = currentEvent;\n const dragSource = drag.params;\n if (!this.dragging) {\n const start = drag.start;\n const dragStartPixels = dragSource.dragStartPixels;\n const requiredPixelDiff = dragStartPixels ?? 4;\n if (_areEventsNear(currentEvent, start, requiredPixelDiff)) {\n return;\n }\n this.dragging = true;\n if (dragSource.capturePointer) {\n drag.pointerCapture = capturePointer(this.beans.eRootDiv, currentEvent);\n }\n this.eventSvc.dispatchEvent({\n type: \"dragStarted\",\n target: dragSource.eElement\n });\n dragSource.onDragStart?.(start);\n if (this.drag !== drag) {\n return;\n }\n dragSource.onDragging?.(start);\n if (this.drag !== drag) {\n return;\n }\n }\n dragSource.onDragging?.(currentEvent);\n }\n onTouchUp(touchEvent) {\n const drag = this.drag;\n if (drag && addHandledDragEvent(touchEvent)) {\n this.onUp(_getFirstActiveTouch(drag.start, touchEvent.changedTouches));\n }\n }\n onMouseOrPointerUp(mouseEvent) {\n if (addHandledDragEvent(mouseEvent)) {\n this.onUp(mouseEvent);\n }\n }\n onUp(eventOrTouch) {\n const drag = this.drag;\n if (!drag) {\n return;\n }\n if (!eventOrTouch) {\n eventOrTouch = drag.lastDrag;\n }\n if (eventOrTouch && this.dragging) {\n this.dragging = false;\n drag.params.onDragStop?.(eventOrTouch);\n this.eventSvc.dispatchEvent({\n type: \"dragStopped\",\n target: drag.params.eElement\n });\n }\n this.destroyDrag();\n }\n // shared keydown handler to cancel current drag with ESC\n onKeyDown(event) {\n if (event.key === KeyCode.ESCAPE) {\n this.cancelDrag();\n }\n }\n};\nvar destroyDragSourceEntry = (dragSource) => {\n clearTempEventHandlers(dragSource.handlers);\n const oldTouchAction = dragSource.oldTouchAction;\n if (oldTouchAction != null) {\n const style = dragSource.params.eElement.style;\n if (style) {\n style.touchAction = oldTouchAction;\n }\n }\n};\nvar Dragging = class {\n constructor(rootEl, params, start, pointerId = null) {\n this.rootEl = rootEl;\n this.params = params;\n this.start = start;\n this.pointerId = pointerId;\n this.handlers = [];\n this.lastDrag = null;\n this.pointerCapture = null;\n this.eElement = params.eElement;\n }\n};\nvar getEventTargetElement = (event) => {\n const target = event.target;\n return target instanceof Element ? target : null;\n};\n\n// packages/ag-stack/src/theming/themeUtils.ts\nvar kebabCase = (str) => str.replace(/[A-Z]|\\d+/g, (m) => `-${m}`).toLowerCase();\nvar paramToVariableName = (paramName) => `--ag-${kebabCase(paramName)}`;\nvar paramToVariableExpression = (paramName) => `var(${paramToVariableName(paramName)})`;\nvar clamp = (value, min, max) => Math.max(min, Math.min(max, value));\nvar memoize = (fn) => {\n const values = /* @__PURE__ */ new Map();\n return (a) => {\n const key = a;\n if (!values.has(key)) {\n values.set(key, fn(a));\n }\n return values.get(key);\n };\n};\nvar accentMix = (mix) => ({ ref: \"accentColor\", mix });\nvar foregroundMix = (mix) => ({ ref: \"foregroundColor\", mix });\nvar foregroundBackgroundMix = (mix) => ({\n ref: \"foregroundColor\",\n mix,\n onto: \"backgroundColor\"\n});\nvar foregroundHeaderBackgroundMix = (mix) => ({\n ref: \"foregroundColor\",\n mix,\n onto: \"headerBackgroundColor\"\n});\nvar backgroundColor = { ref: \"backgroundColor\" };\nvar foregroundColor = { ref: \"foregroundColor\" };\nvar accentColor = { ref: \"accentColor\" };\n\n// packages/ag-stack/src/theming/shared/shared-css.ts\nvar defaultLightColorSchemeParams = {\n backgroundColor: \"#fff\",\n foregroundColor: \"#181d1f\",\n borderColor: foregroundMix(0.15),\n chromeBackgroundColor: foregroundBackgroundMix(0.02),\n browserColorScheme: \"light\"\n};\nvar defaultFontFamily = () => [\n \"-apple-system\",\n \"BlinkMacSystemFont\",\n \"Segoe UI\",\n \"Roboto\",\n \"Oxygen-Sans\",\n \"Ubuntu\",\n \"Cantarell\",\n \"Helvetica Neue\",\n \"sans-serif\"\n];\nvar sharedDefaults = {\n ...defaultLightColorSchemeParams,\n textColor: foregroundColor,\n accentColor: \"#2196f3\",\n invalidColor: \"#e02525\",\n fontFamily: defaultFontFamily(),\n subtleTextColor: {\n ref: \"textColor\",\n mix: 0.5\n },\n borderWidth: 1,\n borderRadius: 4,\n spacing: 8,\n fontSize: 14,\n fontWeight: 400,\n focusShadow: {\n spread: 3,\n color: accentMix(0.5)\n },\n focusErrorShadow: {\n spread: 3,\n color: {\n ref: \"invalidColor\",\n onto: \"backgroundColor\",\n mix: 0.5\n }\n },\n popupShadow: \"0 0 16px #00000026\",\n cardShadow: \"0 1px 4px 1px #00000018\",\n dropdownShadow: { ref: \"cardShadow\" },\n listItemHeight: {\n calc: \"max(iconSize, dataFontSize) + widgetVerticalSpacing\"\n },\n dragAndDropImageBackgroundColor: backgroundColor,\n dragAndDropImageBorder: true,\n dragAndDropImageNotAllowedBorder: {\n color: {\n ref: \"invalidColor\",\n onto: \"dragAndDropImageBackgroundColor\",\n mix: 0.5\n }\n },\n dragAndDropImageShadow: {\n ref: \"popupShadow\"\n },\n iconSize: 16,\n iconColor: \"inherit\",\n toggleButtonWidth: 28,\n toggleButtonHeight: 18,\n toggleButtonOnBackgroundColor: accentColor,\n toggleButtonOffBackgroundColor: foregroundBackgroundMix(0.3),\n toggleButtonSwitchBackgroundColor: backgroundColor,\n toggleButtonSwitchInset: 2,\n tooltipBackgroundColor: {\n ref: \"chromeBackgroundColor\"\n },\n tooltipErrorBackgroundColor: {\n ref: \"invalidColor\",\n onto: \"backgroundColor\",\n mix: 0.1\n },\n tooltipTextColor: {\n ref: \"textColor\"\n },\n tooltipErrorTextColor: {\n ref: \"invalidColor\"\n },\n tooltipBorder: true,\n tooltipErrorBorder: {\n color: {\n ref: \"invalidColor\",\n onto: \"backgroundColor\",\n mix: 0.25\n }\n },\n panelBackgroundColor: backgroundColor,\n panelTitleBarHeight: { ref: \"headerHeight\" },\n panelTitleBarBackgroundColor: {\n ref: \"headerBackgroundColor\"\n },\n panelTitleBarIconColor: {\n ref: \"headerTextColor\"\n },\n panelTitleBarTextColor: {\n ref: \"headerTextColor\"\n },\n panelTitleBarFontFamily: {\n ref: \"headerFontFamily\"\n },\n panelTitleBarFontSize: {\n ref: \"headerFontSize\"\n },\n panelTitleBarFontWeight: {\n ref: \"headerFontWeight\"\n },\n panelTitleBarBorder: true,\n // Unlike other picker field params, pickerFieldHeight must be a shared param\n // because the pagination panel height depends on it\n pickerFieldHeight: {\n calc: \"max(iconSize, fontSize) + spacing * 2\"\n },\n dialogShadow: {\n ref: \"popupShadow\"\n },\n dialogBorder: {\n color: foregroundMix(0.2)\n },\n widgetContainerHorizontalPadding: {\n calc: \"spacing * 1.5\"\n },\n widgetContainerVerticalPadding: {\n calc: \"spacing * 1.5\"\n },\n widgetHorizontalSpacing: {\n calc: \"spacing * 1.5\"\n },\n widgetVerticalSpacing: {\n ref: \"spacing\"\n },\n dataFontSize: {\n ref: \"fontSize\"\n },\n headerBackgroundColor: {\n ref: \"chromeBackgroundColor\"\n },\n headerFontFamily: {\n ref: \"fontFamily\"\n },\n headerFontSize: {\n ref: \"fontSize\"\n },\n headerFontWeight: 500,\n headerTextColor: {\n ref: \"textColor\"\n },\n headerHeight: {\n calc: \"max(iconSize, headerFontSize) + spacing * 4 * headerVerticalPaddingScale\"\n },\n headerVerticalPaddingScale: 1,\n menuBorder: {\n color: foregroundMix(0.2)\n },\n menuBackgroundColor: foregroundBackgroundMix(0.03),\n menuTextColor: foregroundBackgroundMix(0.95),\n menuShadow: {\n ref: \"popupShadow\"\n },\n menuSeparatorColor: {\n ref: \"borderColor\"\n }\n};\n\n// packages/ag-stack/src/theming/themeTypeUtils.ts\nvar paramTypes = [\n \"colorScheme\",\n \"color\",\n \"length\",\n \"scale\",\n \"borderStyle\",\n \"border\",\n \"shadow\",\n \"image\",\n \"fontFamily\",\n \"fontWeight\",\n \"duration\"\n];\nvar getParamType = memoize((param) => {\n param = param.toLowerCase();\n return paramTypes.find((type) => param.endsWith(type.toLowerCase())) ?? \"length\";\n});\nvar literalToCSS = (value) => {\n if (typeof value === \"object\" && value?.ref) {\n return paramToVariableExpression(value.ref);\n }\n if (typeof value === \"string\") {\n return value;\n }\n if (typeof value === \"number\") {\n return String(value);\n }\n return false;\n};\nvar colorValueToCss = (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (typeof value === \"object\" && value && \"ref\" in value) {\n const colorExpr = paramToVariableExpression(value.ref);\n if (value.mix == null) {\n return colorExpr;\n }\n const backgroundExpr = value.onto ? paramToVariableExpression(value.onto) : \"transparent\";\n return `color-mix(in srgb, ${backgroundExpr}, ${colorExpr} ${clamp(value.mix * 100, 0, 100)}%)`;\n }\n return false;\n};\nvar colorSchemeValueToCss = literalToCSS;\nvar lengthValueToCss = (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (typeof value === \"number\") {\n return `${value}px`;\n }\n if (typeof value === \"object\" && value && \"calc\" in value) {\n const valueWithSpaces = value.calc.replace(/ ?[*/+] ?/g, \" $& \");\n return `calc(${valueWithSpaces.replace(/-?\\b[a-z][a-z0-9]*\\b(?![-(])/gi, (p) => p[0] === \"-\" ? p : \" \" + paramToVariableExpression(p) + \" \")})`;\n }\n if (typeof value === \"object\" && value && \"ref\" in value) {\n return paramToVariableExpression(value.ref);\n }\n return false;\n};\nvar scaleValueToCss = literalToCSS;\nvar borderValueToCss = (value, param) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (value === true) {\n return borderValueToCss({}, param);\n }\n if (value === false) {\n return param === \"columnBorder\" ? borderValueToCss({ color: \"transparent\" }, param) : \"none\";\n }\n if (typeof value === \"object\" && value && \"ref\" in value) {\n return paramToVariableExpression(value.ref);\n }\n return borderStyleValueToCss(value.style ?? \"solid\") + \" \" + lengthValueToCss(value.width ?? { ref: \"borderWidth\" }) + \" \" + colorValueToCss(value.color ?? { ref: \"borderColor\" });\n};\nvar shadowValueParamsToCss = (value) => {\n return [\n lengthValueToCss(value.offsetX ?? 0),\n lengthValueToCss(value.offsetY ?? 0),\n lengthValueToCss(value.radius ?? 0),\n lengthValueToCss(value.spread ?? 0),\n colorValueToCss(value.color ?? { ref: \"foregroundColor\" }),\n ...value.inset ? [\"inset\"] : []\n ].join(\" \");\n};\nvar shadowValueToCss = (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (value === false) {\n return \"none\";\n }\n if (typeof value === \"object\" && value && \"ref\" in value) {\n return paramToVariableExpression(value.ref);\n }\n if (Array.isArray(value)) {\n return value.map(shadowValueParamsToCss).join(\", \");\n }\n return shadowValueParamsToCss(value);\n};\nvar borderStyleValueToCss = literalToCSS;\nvar fontFamilyValueToCss = (value) => {\n if (typeof value === \"string\") {\n return value.includes(\",\") ? value : quoteUnsafeChars(value);\n }\n if (typeof value === \"object\" && value && \"googleFont\" in value) {\n return fontFamilyValueToCss(value.googleFont);\n }\n if (typeof value === \"object\" && value && \"ref\" in value) {\n return paramToVariableExpression(value.ref);\n }\n if (Array.isArray(value)) {\n return value.map((font) => {\n if (typeof font === \"object\" && \"googleFont\" in font) {\n font = font.googleFont;\n }\n return quoteUnsafeChars(font);\n }).join(\", \");\n }\n return false;\n};\nvar quoteUnsafeChars = (font) => (\n // don't quote var() expressions or quote safe identifier names, so that\n // people can specify fonts like sans-serif which are keywords not strings,\n // or var(--my-var)\n /^[\\w-]+$|\\w\\(/.test(font) ? font : JSON.stringify(font)\n);\nvar fontWeightValueToCss = literalToCSS;\nvar imageValueToCss = (value) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (typeof value === \"object\" && value && \"url\" in value) {\n return `url(${JSON.stringify(value.url)})`;\n }\n if (typeof value === \"object\" && value && \"svg\" in value) {\n return imageValueToCss({ url: `data:image/svg+xml,${encodeURIComponent(value.svg)}` });\n }\n if (typeof value === \"object\" && value && \"ref\" in value) {\n return paramToVariableExpression(value.ref);\n }\n return false;\n};\nvar durationValueToCss = (value, param, themeLogger) => {\n if (typeof value === \"string\") {\n return value;\n }\n if (typeof value === \"number\") {\n if (value >= 10) {\n themeLogger?.warn(104, { value, param });\n }\n return `${value}s`;\n }\n if (typeof value === \"object\" && value && \"ref\" in value) {\n return paramToVariableExpression(value.ref);\n }\n return false;\n};\nvar paramValidators = {\n color: colorValueToCss,\n colorScheme: colorSchemeValueToCss,\n length: lengthValueToCss,\n scale: scaleValueToCss,\n border: borderValueToCss,\n borderStyle: borderStyleValueToCss,\n shadow: shadowValueToCss,\n image: imageValueToCss,\n fontFamily: fontFamilyValueToCss,\n fontWeight: fontWeightValueToCss,\n duration: durationValueToCss\n};\nvar paramValueToCss = (param, value, themeLogger) => {\n const type = getParamType(param);\n return paramValidators[type](value, param, themeLogger);\n};\n\n// packages/ag-stack/src/theming/themeImpl.ts\nvar _asThemeImpl = (theme) => {\n if (!(theme instanceof ThemeImpl)) {\n throw new Error(\"theme is not an object created by createTheme\");\n }\n return theme;\n};\nvar createSharedTheme = (themeLogger, overridePrefix) => new ThemeImpl({ themeLogger, overridePrefix });\nvar ThemeImpl = class _ThemeImpl {\n constructor(params, parts = []) {\n this.params = params;\n this.parts = parts;\n }\n withPart(part) {\n if (typeof part === \"function\") {\n part = part();\n }\n if (!(part instanceof PartImpl)) {\n this.params.themeLogger.preInitErr(259, \"Invalid part\", { part });\n return this;\n }\n return new _ThemeImpl(this.params, [...this.parts, part]);\n }\n withoutPart(feature) {\n return this.withPart(createPart({ feature }));\n }\n withParams(params, mode = defaultModeName) {\n return this.withPart(\n createPart({\n modeParams: { [mode]: params }\n })\n );\n }\n _startUse({ styleContainer, cssLayer, nonce, loadThemeGoogleFonts, moduleCss }) {\n if (IS_SSR) {\n return;\n }\n if (FORCE_LEGACY_THEMES) {\n return;\n }\n uninstallLegacyCSS();\n _injectCoreAndModuleCSS(styleContainer, cssLayer, nonce, moduleCss);\n const googleFontsUsed = getGoogleFontsUsed(this);\n if (googleFontsUsed.length > 0) {\n for (const googleFont of googleFontsUsed) {\n if (loadThemeGoogleFonts) {\n loadGoogleFont(googleFont, nonce);\n }\n }\n }\n for (const part of this.parts) {\n part.use(styleContainer, cssLayer, nonce);\n }\n }\n _getCssClasses() {\n if (FORCE_LEGACY_THEMES) {\n return [\"\", \"ag-theme-quartz\"];\n }\n return this._cssClassCache ?? (this._cssClassCache = [\n this._getParamsClassName(true),\n deduplicatePartsByFeature(this.parts).map((part) => part.use(void 0, void 0, void 0)).filter(Boolean).concat(this._getParamsClassName()).join(\" \")\n ]);\n }\n _getClassNamesId() {\n return this._classNamesId ?? (this._classNamesId = ++getInjectionState().paramsId);\n }\n _getParamsClassName(inherit = false) {\n return `ag-theme-${inherit ? \"inherit\" : \"params\"}-${this._getClassNamesId()}`;\n }\n _getModeParams() {\n let paramsCache = this._paramsCache;\n if (!paramsCache) {\n const mergedModeParams = {\n // NOTE: defining the default mode here is important, it ensures\n // that the default mode is first in iteration order, which puts\n // it first in outputted CSS, allowing other modes to override it\n [defaultModeName]: { ...sharedDefaults }\n };\n for (const part of deduplicatePartsByFeature(this.parts)) {\n for (const partMode of Object.keys(part.modeParams)) {\n const partParams = part.modeParams[partMode];\n if (partParams) {\n const mergedParams = mergedModeParams[partMode] ?? (mergedModeParams[partMode] = {});\n const partParamNames = /* @__PURE__ */ new Set();\n for (const partParamName of Object.keys(partParams)) {\n const partParamValue = partParams[partParamName];\n if (partParamValue !== void 0) {\n mergedParams[partParamName] = partParamValue;\n partParamNames.add(partParamName);\n }\n }\n if (partMode === defaultModeName) {\n for (const mergedMode of Object.keys(mergedModeParams)) {\n const mergedParams2 = mergedModeParams[mergedMode];\n if (mergedMode !== defaultModeName) {\n for (const partParamName of partParamNames) {\n delete mergedParams2[partParamName];\n }\n }\n }\n }\n }\n }\n }\n this._paramsCache = paramsCache = mergedModeParams;\n }\n return paramsCache;\n }\n _getParamsCss() {\n if (!this._paramsCssCache) {\n let variablesCss = \"\";\n let inheritanceCss = \"\";\n const modeParams = this._getModeParams();\n const { overridePrefix, themeLogger } = this.params;\n const cssOverridePrefix = overridePrefix ? `--ag-${overridePrefix}-` : void 0;\n for (const mode of Object.keys(modeParams)) {\n const params = modeParams[mode];\n if (mode !== defaultModeName) {\n const escapedMode = typeof CSS === \"object\" ? CSS.escape(mode) : mode;\n const wrapPrefix = `:where(html[data-ag-theme-mode=\"${escapedMode}\"],body[data-ag-theme-mode=\"${escapedMode}\"],.ag-theme-mode[data-ag-theme-mode=\"${escapedMode}\"]) & {\n`;\n variablesCss += wrapPrefix;\n inheritanceCss += wrapPrefix;\n }\n for (const key of Object.keys(params).sort()) {\n const value = params[key];\n const cssValue = paramValueToCss(key, value, themeLogger);\n if (cssValue === false) {\n themeLogger.error(107, { key, value });\n } else {\n const cssName = paramToVariableName(key);\n const overrideName = cssOverridePrefix ? cssName.replace(\"--ag-\", cssOverridePrefix) : cssName;\n const inheritedName = cssName.replace(\"--ag-\", \"--ag-inherited-\");\n variablesCss += `\t${cssName}: var(${inheritedName}, ${cssValue});\n`;\n inheritanceCss += `\t${inheritedName}: var(${overrideName});\n`;\n }\n }\n if (mode !== defaultModeName) {\n variablesCss += \"}\\n\";\n inheritanceCss += \"}\\n\";\n }\n }\n let css = `:where(.${this._getParamsClassName()}) {\n${variablesCss}}\n`;\n css += `:where(.${this._getParamsClassName(true)}) {\n${inheritanceCss}}\n`;\n this._paramsCssCache = css;\n }\n return this._paramsCssCache;\n }\n};\nvar deduplicatePartsByFeature = (parts) => {\n const lastPartByFeature = /* @__PURE__ */ new Map();\n for (const part of parts) {\n lastPartByFeature.set(part.feature, part);\n }\n const result = [];\n for (const part of parts) {\n if (!part.feature || lastPartByFeature.get(part.feature) === part) {\n result.push(part);\n }\n }\n return result;\n};\nvar getGoogleFontsUsed = (theme) => {\n const googleFontsUsed = /* @__PURE__ */ new Set();\n const visitParamValue = (paramValue) => {\n if (Array.isArray(paramValue)) {\n paramValue.forEach(visitParamValue);\n } else {\n const googleFont = paramValue?.googleFont;\n if (typeof googleFont === \"string\") {\n googleFontsUsed.add(googleFont);\n }\n }\n };\n const allModeValues = Object.values(theme._getModeParams());\n const allValues = allModeValues.flatMap((mv) => Object.values(mv));\n allValues.forEach(visitParamValue);\n return Array.from(googleFontsUsed).sort();\n};\nvar uninstalledLegacyCSS = false;\nvar uninstallLegacyCSS = () => {\n if (uninstalledLegacyCSS) {\n return;\n }\n uninstalledLegacyCSS = true;\n for (const style of Array.from(document.head.querySelectorAll('style[data-ag-scope=\"legacy\"]'))) {\n style.remove();\n }\n};\nvar loadGoogleFont = async (font, nonce) => {\n const css = `@import url('https://${googleFontsDomain}/css2?family=${encodeURIComponent(font)}:wght@100;200;300;400;500;600;700;800;900&display=swap');\n`;\n _injectGlobalCSS(css, document.head, `googleFont:${font}`, void 0, 0, nonce);\n};\nvar googleFontsDomain = \"fonts.googleapis.com\";\n\n// packages/ag-stack/src/core/baseEnvironment.ts\nvar LIST_ITEM_HEIGHT = {\n changeKey: \"listItemHeight\",\n type: \"length\",\n defaultValue: 24\n};\nvar BaseEnvironment = class extends AgBeanStub {\n constructor() {\n super(...arguments);\n this.beanName = \"environment\";\n this.sizeEls = /* @__PURE__ */ new Map();\n this.lastKnownValues = /* @__PURE__ */ new Map();\n this.sizesMeasured = false;\n this.globalCSS = [];\n }\n wireBeans(beans) {\n this.eRootDiv = beans.eRootDiv;\n }\n postConstruct() {\n const { gos, eRootDiv } = this;\n gos.setInstanceDomData(eRootDiv);\n const themeStyleContainer = gos.get(\"themeStyleContainer\");\n const hasShadowRootGlobal = typeof ShadowRoot !== \"undefined\";\n const isShadowRoot = hasShadowRootGlobal && eRootDiv.getRootNode() instanceof ShadowRoot;\n this.eStyleContainer = (typeof themeStyleContainer === \"function\" ? themeStyleContainer() : themeStyleContainer) ?? (isShadowRoot ? eRootDiv : document.head);\n if (!themeStyleContainer && !isShadowRoot && hasShadowRootGlobal) {\n warnOnAttachToShadowRoot(eRootDiv, this.shadowRootError.bind(this), this.addDestroyFunc.bind(this));\n }\n this.cssLayer = gos.get(\"themeCssLayer\");\n this.styleNonce = gos.get(\"styleNonce\");\n this.addManagedPropertyListener(\"theme\", () => this.handleThemeChange());\n this.handleThemeChange();\n this.mutationObserver = new MutationObserver(() => {\n this.fireStylesChangedEvent(\"theme\");\n });\n this.addDestroyFunc(() => this.mutationObserver.disconnect());\n this.initStyledRoot();\n this.getSizeEl(LIST_ITEM_HEIGHT);\n this.initVariables();\n this.addDestroyFunc(() => _unregisterInstanceUsingThemingAPI(this));\n }\n getStyledRootClasses() {\n const { theme } = this;\n const [inheritClass, applyClass] = theme ? theme._getCssClasses() : [\"\", this.getLegacyThemeClasses()];\n const directionClass = this.gos.get(\"enableRtl\") ? \"ag-rtl\" : \"ag-ltr\";\n return [inheritClass, applyClass, directionClass];\n }\n getLegacyThemeClasses() {\n const themeClasses = /* @__PURE__ */ new Set();\n this.mutationObserver.disconnect();\n let node = this.eRootDiv.parentElement;\n while (node) {\n if (!node.classList.contains(\"ag-styled-root\")) {\n let isThemeEl = false;\n for (const cls of node.classList) {\n if (cls.startsWith(\"ag-theme-\")) {\n isThemeEl = true;\n themeClasses.add(cls);\n }\n }\n if (isThemeEl) {\n this.mutationObserver.observe(node, {\n attributes: true,\n attributeFilter: [\"class\"]\n });\n }\n }\n node = node.parentElement;\n }\n return [...themeClasses].join(\" \");\n }\n onThemeChanged(handler) {\n const listener = (e) => {\n if (e.themeChanged) {\n handler();\n }\n };\n this.eventSvc.addListener(\"stylesChanged\", listener);\n return () => this.eventSvc.removeListener(\"stylesChanged\", listener);\n }\n addGlobalCSS(css, debugId) {\n if (this.theme) {\n _injectGlobalCSS(css, this.eStyleContainer, debugId, this.cssLayer, 0, this.styleNonce);\n } else {\n this.globalCSS.push([css, debugId]);\n }\n }\n getDefaultListItemHeight() {\n return this.getCSSVariablePixelValue(LIST_ITEM_HEIGHT);\n }\n getCSSVariablePixelValue(variable) {\n const cached = this.lastKnownValues.get(variable);\n if (cached != null) {\n return cached;\n }\n const measurement = this.measureSizeEl(variable);\n if (measurement === \"detached\" || measurement === \"no-styles\") {\n if (variable.cacheDefault) {\n this.lastKnownValues.set(variable, variable.defaultValue);\n }\n return variable.defaultValue;\n }\n this.lastKnownValues.set(variable, measurement);\n return measurement;\n }\n measureSizeEl(variable) {\n const sizeEl = this.getSizeEl(variable);\n if (sizeEl.offsetParent == null) {\n return \"detached\";\n }\n const newSize = sizeEl.offsetWidth;\n if (newSize === NO_VALUE_SENTINEL) {\n return \"no-styles\";\n }\n this.sizesMeasured = true;\n return newSize;\n }\n getMeasurementContainer() {\n let container = this.eMeasurementContainer;\n if (!container) {\n container = this.eMeasurementContainer = _createAgElement({ tag: \"div\", cls: \"ag-measurement-container\" });\n this.eRootDiv.appendChild(container);\n }\n return container;\n }\n getSizeEl(variable) {\n let sizeEl = this.sizeEls.get(variable);\n if (sizeEl) {\n return sizeEl;\n }\n const container = this.getMeasurementContainer();\n sizeEl = _createAgElement({ tag: \"div\" });\n const cssName = this.setSizeElStyles(sizeEl, variable);\n container.appendChild(sizeEl);\n this.sizeEls.set(variable, sizeEl);\n const { type, noWarn } = variable;\n if (type !== \"length\" && type !== \"border\") {\n return sizeEl;\n }\n let lastMeasurement = this.measureSizeEl(variable);\n if (lastMeasurement === \"no-styles\" && !noWarn) {\n this.varError(cssName, variable.defaultValue);\n }\n const unsubscribe = _observeResize(this.beans, sizeEl, () => {\n const newMeasurement = this.measureSizeEl(variable);\n if (newMeasurement === \"detached\" || newMeasurement === \"no-styles\") {\n return;\n }\n this.lastKnownValues.set(variable, newMeasurement);\n if (newMeasurement !== lastMeasurement) {\n lastMeasurement = newMeasurement;\n this.fireStylesChangedEvent(variable.changeKey);\n }\n });\n this.addDestroyFunc(() => unsubscribe());\n return sizeEl;\n }\n setSizeElStyles(sizeEl, variable) {\n const { changeKey, type } = variable;\n let cssName = paramToVariableName(changeKey);\n if (type === \"border\") {\n if (cssName.endsWith(\"-width\")) {\n cssName = cssName.slice(0, -6);\n }\n sizeEl.className = \"ag-measurement-element-border\";\n sizeEl.style.setProperty(\n \"--ag-internal-measurement-border\",\n `var(${cssName}, solid ${NO_VALUE_SENTINEL}px)`\n );\n } else {\n sizeEl.style.width = `var(${cssName}, ${NO_VALUE_SENTINEL}px)`;\n }\n return cssName;\n }\n handleThemeChange() {\n const { gos, theme: oldTheme } = this;\n const themeProperty = gos.get(\"theme\");\n let newTheme;\n if (themeProperty === \"legacy\") {\n newTheme = void 0;\n } else {\n const themeOrDefault = themeProperty ?? this.getDefaultTheme();\n if (themeOrDefault instanceof ThemeImpl) {\n newTheme = themeOrDefault;\n } else {\n this.themeError(themeOrDefault);\n }\n }\n if (newTheme !== oldTheme) {\n this.handleNewTheme(newTheme);\n }\n this.postProcessThemeChange(newTheme, themeProperty);\n }\n handleNewTheme(newTheme) {\n const { gos, globalCSS } = this;\n const additionalCss = this.getAdditionalCss();\n if (newTheme) {\n _injectCoreAndModuleCSS(this.eStyleContainer, this.cssLayer, this.styleNonce, additionalCss);\n for (const [css, debugId] of globalCSS) {\n _injectGlobalCSS(css, this.eStyleContainer, debugId, this.cssLayer, 0, this.styleNonce);\n }\n globalCSS.length = 0;\n }\n this.theme = newTheme;\n newTheme?._startUse({\n loadThemeGoogleFonts: gos.get(\"loadThemeGoogleFonts\"),\n styleContainer: this.eStyleContainer,\n cssLayer: this.cssLayer,\n nonce: this.styleNonce,\n moduleCss: additionalCss\n });\n _useParamsCss(\n this,\n newTheme?._getParamsCss() ?? null,\n newTheme?._getParamsClassName() ?? null,\n this.eStyleContainer,\n this.cssLayer,\n this.styleNonce\n );\n this.fireStylesChangedEvent(\"theme\");\n }\n fireStylesChangedEvent(change) {\n this.eventSvc.dispatchEvent({\n type: \"stylesChanged\",\n [`${change}Changed`]: true\n });\n }\n // overridden by studio\n initStyledRoot() {\n this.addDestroyFunc(_initStyledRootFromInnerOfThreeElements(this, this.eRootDiv));\n }\n};\nvar NO_VALUE_SENTINEL = 15538;\nvar warnOnAttachToShadowRoot = (el, errorCallback, onDestroy) => {\n let retries = 60;\n const interval = setInterval(() => {\n if (typeof ShadowRoot !== \"undefined\" && el.getRootNode() instanceof ShadowRoot) {\n errorCallback();\n clearInterval(interval);\n }\n if (el.isConnected || --retries < 0) {\n clearInterval(interval);\n }\n }, 1e3);\n onDestroy(() => clearInterval(interval));\n};\n\n// packages/ag-stack/src/core/baseRegistry.ts\nvar BaseRegistry = class extends AgBeanStub {\n constructor() {\n super(...arguments);\n this.beanName = \"registry\";\n }\n registerDynamicBeans(dynamicBeans) {\n if (dynamicBeans) {\n this.dynamicBeans ?? (this.dynamicBeans = {});\n for (const name of Object.keys(dynamicBeans)) {\n this.dynamicBeans[name] = dynamicBeans[name];\n }\n }\n }\n createDynamicBean(name, mandatory, ...args) {\n if (!this.dynamicBeans) {\n throw new Error(this.getDynamicError(name, true));\n }\n const BeanClass = this.dynamicBeans[name];\n if (BeanClass == null) {\n if (mandatory) {\n throw new Error(this.getDynamicError(name, false));\n }\n return void 0;\n }\n return new BeanClass(...args);\n }\n};\n\n// packages/ag-stack/src/events/baseEventService.ts\nvar BaseEventService = class extends AgBeanStub {\n constructor() {\n super(...arguments);\n this.beanName = \"eventSvc\";\n this.eventServiceType = \"global\";\n this.globalSvc = new LocalEventService();\n }\n addListener(eventType, listener, async) {\n this.globalSvc.addEventListener(eventType, listener, async);\n }\n removeListener(eventType, listener, async) {\n this.globalSvc.removeEventListener(eventType, listener, async);\n }\n addGlobalListener(listener, async = false) {\n this.globalSvc.addGlobalListener(listener, async);\n }\n removeGlobalListener(listener, async = false) {\n this.globalSvc.removeGlobalListener(listener, async);\n }\n dispatchEvent(event) {\n this.globalSvc.dispatchEvent(this.gos.addCommon(event));\n }\n dispatchEventOnce(event) {\n this.globalSvc.dispatchEventOnce(this.gos.addCommon(event));\n }\n};\n\n// packages/ag-stack/src/utils/focus.ts\nvar keyboardModeActive = false;\nvar instanceCount = 0;\nfunction addKeyboardModeEvents(doc) {\n if (instanceCount > 0) {\n return;\n }\n doc.addEventListener(\"keydown\", toggleKeyboardMode);\n doc.addEventListener(\"mousedown\", toggleKeyboardMode);\n}\nfunction removeKeyboardModeEvents(doc) {\n if (instanceCount > 0) {\n return;\n }\n doc.removeEventListener(\"keydown\", toggleKeyboardMode);\n doc.removeEventListener(\"mousedown\", toggleKeyboardMode);\n}\nfunction toggleKeyboardMode(event) {\n const isKeyboardActive = keyboardModeActive;\n const isKeyboardEvent = event.type === \"keydown\";\n if (isKeyboardEvent) {\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n }\n if (isKeyboardActive === isKeyboardEvent) {\n return;\n }\n keyboardModeActive = isKeyboardEvent;\n}\nfunction _registerKeyboardFocusEvents(beans) {\n const eDocument = _getDocument(beans);\n addKeyboardModeEvents(eDocument);\n instanceCount++;\n return () => {\n instanceCount--;\n removeKeyboardModeEvents(eDocument);\n };\n}\nfunction _isKeyboardMode() {\n return keyboardModeActive;\n}\nfunction _findFocusableElements(rootNode, exclude, onlyUnmanaged = false) {\n const focusableString = FOCUSABLE_SELECTOR;\n let excludeString = FOCUSABLE_EXCLUDE;\n if (exclude) {\n excludeString += \", \" + exclude;\n }\n if (onlyUnmanaged) {\n excludeString += ', [tabindex=\"-1\"]';\n }\n const nodes = Array.prototype.slice.apply(rootNode.querySelectorAll(focusableString)).filter((node) => {\n return _isVisible(node);\n });\n const excludeNodes = Array.prototype.slice.apply(rootNode.querySelectorAll(excludeString));\n if (!excludeNodes.length) {\n return nodes;\n }\n const diff = (a, b) => a.filter((element) => b.indexOf(element) === -1);\n return diff(nodes, excludeNodes);\n}\nfunction _focusInto(rootNode, up = false, onlyUnmanaged = false, excludeTabGuards = false) {\n const focusableElements = _findFocusableElements(\n rootNode,\n excludeTabGuards ? \".ag-tab-guard\" : null,\n onlyUnmanaged\n );\n const toFocus = up ? _last(focusableElements) : focusableElements[0];\n if (toFocus) {\n toFocus.focus({ preventScroll: true });\n return true;\n }\n return false;\n}\nfunction _findNextFocusableElement(beans, rootNode, onlyManaged, backwards) {\n const focusable = _findFocusableElements(rootNode, onlyManaged ? ':not([tabindex=\"-1\"])' : null);\n const activeEl = _getActiveDomElement(beans);\n let currentIndex;\n if (onlyManaged) {\n currentIndex = focusable.findIndex((el) => el.contains(activeEl));\n } else {\n currentIndex = focusable.indexOf(activeEl);\n }\n const nextIndex = currentIndex + (backwards ? -1 : 1);\n if (nextIndex < 0 || nextIndex >= focusable.length) {\n return null;\n }\n return focusable[nextIndex];\n}\nfunction _findTabbableParent(node, limit = 5) {\n let counter = 0;\n while (node && _getTabIndex(node) === null && ++counter <= limit) {\n node = node.parentElement;\n }\n if (_getTabIndex(node) === null) {\n return null;\n }\n return node;\n}\nfunction _scrollHorizontallyToShow(target) {\n let container = target;\n while (container && !_canScrollHorizontally(container)) {\n const parentEl = container.parentElement;\n container = parentEl?.className.startsWith(\"ag-\") ? parentEl : null;\n }\n if (!container) {\n return;\n }\n if (target === _findFocusableElements(container, null, true)[0]) {\n container.scrollLeft = 0;\n }\n const c = container.getBoundingClientRect();\n const t = target.getBoundingClientRect();\n if (t.left < c.left) {\n container.scrollLeft -= c.left - t.left;\n } else if (t.right > c.right) {\n container.scrollLeft += t.right - c.right;\n }\n}\nfunction _canScrollHorizontally(el) {\n const overflowX = getComputedStyle(el).overflowX;\n return overflowX === \"auto\" || overflowX === \"scroll\";\n}\n\n// packages/ag-stack/src/focus/agManagedFocusFeature.ts\nvar FOCUS_MANAGED_CLASS = \"ag-focus-managed\";\nvar AgManagedFocusFeature = class extends AgBeanStub {\n constructor(eFocusable, stopPropagationCallbacks = {\n isStopPropagation: () => false,\n stopPropagation: () => {\n }\n }, callbacks = {}) {\n super();\n this.eFocusable = eFocusable;\n this.stopPropagationCallbacks = stopPropagationCallbacks;\n this.callbacks = callbacks;\n this.callbacks = {\n shouldStopEventPropagation: () => false,\n onTabKeyDown: (e) => {\n if (e.defaultPrevented) {\n return;\n }\n const nextRoot = _findNextFocusableElement(this.beans, this.eFocusable, false, e.shiftKey);\n if (!nextRoot) {\n return;\n }\n nextRoot.focus();\n e.preventDefault();\n },\n ...callbacks\n };\n }\n postConstruct() {\n const {\n eFocusable,\n callbacks: { onFocusIn, onFocusOut }\n } = this;\n eFocusable.classList.add(FOCUS_MANAGED_CLASS);\n this.addKeyDownListeners(eFocusable);\n if (onFocusIn) {\n this.addManagedElementListeners(eFocusable, { focusin: onFocusIn });\n }\n if (onFocusOut) {\n this.addManagedElementListeners(eFocusable, { focusout: onFocusOut });\n }\n }\n addKeyDownListeners(eGui) {\n this.addManagedElementListeners(eGui, {\n keydown: (e) => {\n if (e.defaultPrevented || this.stopPropagationCallbacks.isStopPropagation(e)) {\n return;\n }\n const { callbacks } = this;\n if (callbacks.shouldStopEventPropagation(e)) {\n this.stopPropagationCallbacks.stopPropagation(e);\n return;\n }\n if (e.key === KeyCode.TAB) {\n callbacks.onTabKeyDown(e);\n } else if (callbacks.handleKeyDown) {\n callbacks.handleKeyDown(e);\n }\n }\n });\n }\n};\n\n// packages/ag-stack/src/focus/tabGuardCtrl.ts\nvar TabGuardClassNames = {\n TAB_GUARD: \"ag-tab-guard\",\n TAB_GUARD_TOP: \"ag-tab-guard-top\",\n TAB_GUARD_BOTTOM: \"ag-tab-guard-bottom\"\n};\nvar AgTabGuardCtrl = class extends AgBeanStub {\n constructor(params, stopPropagationCallbacks) {\n super();\n this.stopPropagationCallbacks = stopPropagationCallbacks;\n this.skipTabGuardFocus = false;\n this.forcingFocusOut = false;\n // Used when `isFocusableContainer` enabled\n this.allowFocus = false;\n const {\n comp,\n eTopGuard,\n eBottomGuard,\n focusTrapActive,\n forceFocusOutWhenTabGuardsAreEmpty,\n isFocusableContainer,\n focusInnerElement,\n onFocusIn,\n onFocusOut,\n shouldStopEventPropagation,\n onTabKeyDown,\n handleKeyDown,\n isEmpty,\n eFocusableElement\n } = params;\n this.comp = comp;\n this.eTopGuard = eTopGuard;\n this.eBottomGuard = eBottomGuard;\n this.providedFocusInnerElement = focusInnerElement;\n this.eFocusableElement = eFocusableElement;\n this.focusTrapActive = !!focusTrapActive;\n this.forceFocusOutWhenTabGuardsAreEmpty = !!forceFocusOutWhenTabGuardsAreEmpty;\n this.isFocusableContainer = !!isFocusableContainer;\n this.providedFocusIn = onFocusIn;\n this.providedFocusOut = onFocusOut;\n this.providedShouldStopEventPropagation = shouldStopEventPropagation;\n this.providedOnTabKeyDown = onTabKeyDown;\n this.providedHandleKeyDown = handleKeyDown;\n this.providedIsEmpty = isEmpty;\n }\n postConstruct() {\n this.createManagedBean(\n new AgManagedFocusFeature(this.eFocusableElement, this.stopPropagationCallbacks, {\n shouldStopEventPropagation: () => this.shouldStopEventPropagation(),\n onTabKeyDown: (e) => this.onTabKeyDown(e),\n handleKeyDown: (e) => this.handleKeyDown(e),\n onFocusIn: (e) => this.onFocusIn(e),\n onFocusOut: (e) => this.onFocusOut(e)\n })\n );\n this.activateTabGuards();\n for (const guard of [this.eTopGuard, this.eBottomGuard]) {\n this.addManagedElementListeners(guard, { focus: this.onFocus.bind(this) });\n }\n }\n handleKeyDown(e) {\n if (this.providedHandleKeyDown) {\n this.providedHandleKeyDown(e);\n }\n }\n tabGuardsAreActive() {\n return !!this.eTopGuard && this.eTopGuard.hasAttribute(\"tabIndex\");\n }\n shouldStopEventPropagation() {\n if (this.providedShouldStopEventPropagation) {\n return this.providedShouldStopEventPropagation();\n }\n return false;\n }\n activateTabGuards() {\n if (this.forcingFocusOut) {\n return;\n }\n const tabIndex = this.gos.get(\"tabIndex\");\n this.comp.setTabIndex(tabIndex.toString());\n }\n deactivateTabGuards() {\n this.comp.setTabIndex();\n }\n onFocus(e) {\n if (this.isFocusableContainer && !this.eFocusableElement.contains(e.relatedTarget)) {\n if (!this.allowFocus) {\n this.findNextElementOutsideAndFocus(e.target === this.eBottomGuard);\n return;\n }\n }\n if (this.skipTabGuardFocus) {\n this.skipTabGuardFocus = false;\n return;\n }\n if (this.forceFocusOutWhenTabGuardsAreEmpty) {\n const isEmpty = this.providedIsEmpty ? this.providedIsEmpty() : _findFocusableElements(this.eFocusableElement, \".ag-tab-guard\").length === 0;\n if (isEmpty) {\n this.findNextElementOutsideAndFocus(e.target === this.eBottomGuard);\n return;\n }\n }\n if (this.isFocusableContainer && this.eFocusableElement.contains(e.relatedTarget)) {\n return;\n }\n const fromBottom = e.target === this.eBottomGuard;\n const hasFocusedInnerElement = this.providedFocusInnerElement ? this.providedFocusInnerElement(fromBottom) : this.focusInnerElement(fromBottom);\n if (!hasFocusedInnerElement && this.forceFocusOutWhenTabGuardsAreEmpty) {\n this.findNextElementOutsideAndFocus(e.target === this.eBottomGuard);\n }\n }\n findNextElementOutsideAndFocus(up) {\n const eDocument = _getDocument(this.beans);\n const focusableEls = _findFocusableElements(eDocument.body, null, true);\n const index = focusableEls.indexOf(up ? this.eTopGuard : this.eBottomGuard);\n if (index === -1) {\n return;\n }\n let start;\n let end;\n if (up) {\n start = 0;\n end = index;\n } else {\n start = index + 1;\n end = focusableEls.length;\n }\n const focusableRange = focusableEls.slice(start, end);\n const targetTabIndex = this.gos.get(\"tabIndex\");\n focusableRange.sort((a, b) => {\n const indexA = Number.parseInt(a.getAttribute(\"tabindex\") || \"0\");\n const indexB = Number.parseInt(b.getAttribute(\"tabindex\") || \"0\");\n if (indexB === targetTabIndex) {\n return 1;\n }\n if (indexA === targetTabIndex) {\n return -1;\n }\n if (indexA === 0) {\n return 1;\n }\n if (indexB === 0) {\n return -1;\n }\n return indexA - indexB;\n });\n focusableRange[up ? focusableRange.length - 1 : 0]?.focus();\n }\n onFocusIn(e) {\n if (this.focusTrapActive || this.forcingFocusOut) {\n return;\n }\n if (this.providedFocusIn) {\n this.providedFocusIn(e);\n }\n if (!this.isFocusableContainer) {\n this.deactivateTabGuards();\n }\n }\n onFocusOut(e) {\n if (this.focusTrapActive) {\n return;\n }\n if (this.providedFocusOut) {\n this.providedFocusOut(e);\n }\n if (!this.eFocusableElement.contains(e.relatedTarget)) {\n this.activateTabGuards();\n }\n }\n onTabKeyDown(e) {\n if (this.providedOnTabKeyDown) {\n this.providedOnTabKeyDown(e);\n return;\n }\n if (this.focusTrapActive) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n const tabGuardsAreActive = this.tabGuardsAreActive();\n if (tabGuardsAreActive) {\n this.deactivateTabGuards();\n }\n const nextRoot = this.getNextFocusableElement(e.shiftKey);\n if (tabGuardsAreActive) {\n setTimeout(() => this.activateTabGuards(), 0);\n }\n if (!nextRoot) {\n return;\n }\n nextRoot.focus();\n e.preventDefault();\n }\n focusInnerElement(fromBottom = false) {\n const focusable = _findFocusableElements(this.eFocusableElement);\n if (this.tabGuardsAreActive()) {\n focusable.splice(0, 1);\n focusable.splice(-1, 1);\n }\n if (!focusable.length) {\n return false;\n }\n focusable[fromBottom ? focusable.length - 1 : 0].focus({ preventScroll: true });\n return true;\n }\n getNextFocusableElement(backwards) {\n return _findNextFocusableElement(this.beans, this.eFocusableElement, false, backwards);\n }\n forceFocusOutOfContainer(up = false) {\n if (this.forcingFocusOut) {\n return;\n }\n const tabGuardToFocus = up ? this.eTopGuard : this.eBottomGuard;\n this.activateTabGuards();\n this.skipTabGuardFocus = true;\n this.forcingFocusOut = true;\n tabGuardToFocus.focus();\n window.setTimeout(() => {\n this.forcingFocusOut = false;\n this.activateTabGuards();\n });\n }\n isTabGuard(element, bottom) {\n return element === this.eTopGuard && !bottom || element === this.eBottomGuard && (bottom ?? true);\n }\n setAllowFocus(allowFocus) {\n this.allowFocus = allowFocus;\n }\n};\n\n// packages/ag-stack/src/focus/agTabGuardFeature.ts\nvar AgTabGuardFeature = class extends AgBeanStub {\n constructor(comp, stopPropagationCallbacks) {\n super();\n this.comp = comp;\n this.stopPropagationCallbacks = stopPropagationCallbacks;\n }\n initialiseTabGuard(params) {\n this.eTopGuard = this.createTabGuard(\"top\");\n this.eBottomGuard = this.createTabGuard(\"bottom\");\n this.eFocusableElement = this.comp.getFocusableElement();\n const { eTopGuard, eBottomGuard, eFocusableElement, stopPropagationCallbacks } = this;\n const tabGuards = [eTopGuard, eBottomGuard];\n const compProxy = {\n setTabIndex: (tabIndex) => {\n for (const tabGuard of tabGuards) {\n if (tabIndex == null) {\n tabGuard.removeAttribute(\"tabindex\");\n } else {\n tabGuard.setAttribute(\"tabindex\", tabIndex);\n }\n }\n }\n };\n this.addTabGuards(eTopGuard, eBottomGuard);\n const {\n focusTrapActive = false,\n onFocusIn,\n onFocusOut,\n focusInnerElement,\n handleKeyDown,\n onTabKeyDown,\n shouldStopEventPropagation,\n isEmpty,\n forceFocusOutWhenTabGuardsAreEmpty,\n isFocusableContainer\n } = params;\n this.tabGuardCtrl = this.createManagedBean(\n new AgTabGuardCtrl(\n {\n comp: compProxy,\n focusTrapActive,\n eTopGuard,\n eBottomGuard,\n eFocusableElement,\n onFocusIn,\n onFocusOut,\n focusInnerElement,\n handleKeyDown,\n onTabKeyDown,\n shouldStopEventPropagation,\n isEmpty,\n forceFocusOutWhenTabGuardsAreEmpty,\n isFocusableContainer\n },\n stopPropagationCallbacks\n )\n );\n }\n getTabGuardCtrl() {\n return this.tabGuardCtrl;\n }\n createTabGuard(side) {\n const tabGuard = _getDocument(this.beans).createElement(\"div\");\n const cls = side === \"top\" ? TabGuardClassNames.TAB_GUARD_TOP : TabGuardClassNames.TAB_GUARD_BOTTOM;\n tabGuard.classList.add(TabGuardClassNames.TAB_GUARD, cls);\n _setAriaRole(tabGuard, \"presentation\");\n return tabGuard;\n }\n addTabGuards(topTabGuard, bottomTabGuard) {\n const eFocusableElement = this.eFocusableElement;\n eFocusableElement.prepend(topTabGuard);\n eFocusableElement.append(bottomTabGuard);\n }\n removeAllChildrenExceptTabGuards() {\n const tabGuards = [this.eTopGuard, this.eBottomGuard];\n _clearElement(this.comp.getFocusableElement());\n this.addTabGuards(...tabGuards);\n }\n forceFocusOutOfContainer(up = false) {\n this.tabGuardCtrl.forceFocusOutOfContainer(up);\n }\n appendChild(appendChild, newChild, container) {\n if (!_isNodeOrElement(newChild)) {\n newChild = newChild.getGui();\n }\n const { eBottomGuard: bottomTabGuard } = this;\n if (bottomTabGuard) {\n bottomTabGuard.before(newChild);\n } else {\n appendChild(newChild, container);\n }\n }\n destroy() {\n const { eTopGuard, eBottomGuard } = this;\n _removeFromParent(eTopGuard);\n _removeFromParent(eBottomGuard);\n super.destroy();\n }\n};\n\n// packages/ag-stack/src/focus/agTabGuardComp.ts\nvar AgTabGuardComp = class extends AgComponentStub {\n initialiseTabGuard(params, stopPropagationCallbacks) {\n this.tabGuardFeature = this.createManagedBean(new AgTabGuardFeature(this, stopPropagationCallbacks));\n this.tabGuardFeature.initialiseTabGuard(params);\n }\n forceFocusOutOfContainer(up = false) {\n this.tabGuardFeature.forceFocusOutOfContainer(up);\n }\n appendChild(newChild, container) {\n this.tabGuardFeature.appendChild(super.appendChild.bind(this), newChild, container);\n }\n};\n\n// packages/ag-stack/src/popup/agPopupComponent.ts\nvar AgPopupComponent = class extends AgComponentStub {\n isPopup() {\n return true;\n }\n setParentComponent(container) {\n container.addCss(\"ag-has-popup\");\n super.setParentComponent(container);\n }\n destroy() {\n const parentComp = this.parentComponent;\n const hasParent = parentComp?.isAlive();\n if (hasParent) {\n parentComp.getGui().classList.remove(\"ag-has-popup\");\n }\n super.destroy();\n }\n};\n\n// packages/ag-stack/src/popup/popupPositionUtils.ts\nvar MIRRORED_ANCHORS = {\n tl: \"tr\",\n tr: \"tl\",\n l: \"r\",\n r: \"l\",\n bl: \"br\",\n br: \"bl\"\n};\nfunction getRectSize(rect) {\n return {\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n}\nfunction fitsWithinBounds(position, targetSize, boundsSize) {\n return position.x >= 0 && position.y >= 0 && position.x + targetSize.width <= boundsSize.width && position.y + targetSize.height <= boundsSize.height;\n}\nfunction toRelativeRect(rect, parentRect) {\n return {\n top: rect.top - parentRect.top,\n left: rect.left - parentRect.left,\n right: rect.right - parentRect.left,\n bottom: rect.bottom - parentRect.top\n };\n}\nfunction computeAlignedPosition(referenceRect, targetSize, alignment, gap = 0) {\n const [targetAnchor, refAnchor] = alignment.split(\"-\");\n const ref = getAnchorPoint(referenceRect, refAnchor);\n const offset = getAnchorOffset(targetSize, targetAnchor);\n const gapDir = getGapDirection(targetAnchor, refAnchor);\n return {\n x: ref.x - offset.x + gapDir.dx * gap,\n y: ref.y - offset.y + gapDir.dy * gap\n };\n}\nfunction findBestPlacement(referenceRect, targetSize, parentSize, placements, gapOrOptions = 0) {\n const { gap, enableRtl, mirrorPlacementsInRtl } = normaliseFindBestPlacementOptions(gapOrOptions);\n const effectivePlacements = getEffectivePlacements(placements, enableRtl, mirrorPlacementsInRtl);\n const { width, height } = targetSize;\n const maxX = Math.max(parentSize.width - width, 0);\n const maxY = Math.max(parentSize.height - height, 0);\n for (const alignment of effectivePlacements) {\n const pos = computeAlignedPosition(referenceRect, targetSize, alignment, gap);\n const clampedX = Math.min(Math.max(pos.x, 0), maxX);\n const clampedY = Math.min(Math.max(pos.y, 0), maxY);\n const noOverlap = clampedX + width <= referenceRect.left || clampedX >= referenceRect.right || clampedY + height <= referenceRect.top || clampedY >= referenceRect.bottom;\n if (noOverlap) {\n return { x: clampedX, y: clampedY };\n }\n }\n const fallback = computeAlignedPosition(referenceRect, targetSize, effectivePlacements[0], gap);\n return {\n x: Math.min(Math.max(fallback.x, 0), maxX),\n y: Math.min(Math.max(fallback.y, 0), maxY)\n };\n}\nfunction getEffectivePlacements(placements, enableRtl = false, mirrorPlacementsInRtl = true) {\n if (!enableRtl || !mirrorPlacementsInRtl) {\n return placements;\n }\n return placements.map(mirrorAlignment);\n}\nfunction getAnchorPoint(rect, anchor) {\n const cx = (rect.left + rect.right) / 2;\n const cy = (rect.top + rect.bottom) / 2;\n switch (anchor) {\n case \"tl\":\n return { x: rect.left, y: rect.top };\n case \"tc\":\n return { x: cx, y: rect.top };\n case \"tr\":\n return { x: rect.right, y: rect.top };\n case \"l\":\n return { x: rect.left, y: cy };\n case \"c\":\n return { x: cx, y: cy };\n case \"r\":\n return { x: rect.right, y: cy };\n case \"bl\":\n return { x: rect.left, y: rect.bottom };\n case \"bc\":\n return { x: cx, y: rect.bottom };\n case \"br\":\n return { x: rect.right, y: rect.bottom };\n }\n}\nfunction getAnchorOffset(size, anchor) {\n return getAnchorPoint({ top: 0, left: 0, right: size.width, bottom: size.height }, anchor);\n}\nfunction getGapDirection(targetAnchor, refAnchor) {\n const th = anchorH(targetAnchor);\n const rh = anchorH(refAnchor);\n const tv = anchorV(targetAnchor);\n const rv = anchorV(refAnchor);\n return {\n dx: Math.sign(rh - th),\n dy: Math.sign(rv - tv)\n };\n}\nfunction normaliseFindBestPlacementOptions(gapOrOptions) {\n if (typeof gapOrOptions === \"number\") {\n return {\n gap: gapOrOptions,\n enableRtl: false,\n mirrorPlacementsInRtl: true\n };\n }\n return {\n gap: gapOrOptions.gap ?? 0,\n enableRtl: gapOrOptions.enableRtl ?? false,\n mirrorPlacementsInRtl: gapOrOptions.mirrorPlacementsInRtl ?? true\n };\n}\nfunction mirrorAlignment(alignment) {\n const [targetAnchor, referenceAnchor] = alignment.split(\"-\");\n return `${mirrorAnchor(targetAnchor)}-${mirrorAnchor(referenceAnchor)}`;\n}\nfunction mirrorAnchor(anchor) {\n return MIRRORED_ANCHORS[anchor] ?? anchor;\n}\nfunction anchorH(anchor) {\n const ch = anchor.length === 2 ? anchor[1] : anchor;\n if (ch === \"l\") {\n return -1;\n }\n if (ch === \"r\") {\n return 1;\n }\n return 0;\n}\nfunction anchorV(anchor) {\n if (anchor.length === 1) {\n return 0;\n }\n if (anchor.startsWith(\"t\")) {\n return -1;\n }\n if (anchor.startsWith(\"b\")) {\n return 1;\n }\n return 0;\n}\n\n// packages/ag-stack/src/popup/basePopupService.ts\nvar instanceIdSeq = 0;\nvar WAIT_FOR_POPUP_CONTENT_RESIZE = 200;\nvar BasePopupService = class extends AgBeanStub {\n constructor() {\n super(...arguments);\n this.beanName = \"popupSvc\";\n this.popupList = [];\n }\n getPopupParent() {\n const ePopupParent = this.gos.get(\"popupParent\");\n if (ePopupParent) {\n return ePopupParent;\n }\n return this.getDefaultPopupParent();\n }\n positionPopupUnderMouseEvent(params) {\n const { ePopup, nudgeX, nudgeY, skipObserver } = params;\n this.positionPopup({\n ePopup,\n nudgeX,\n nudgeY,\n keepWithinBounds: true,\n skipObserver,\n updatePosition: () => this.calculatePointerAlign(params.mouseEvent),\n postProcessCallback: () => this.callPostProcessPopup(params.additionalParams, params.type, params.ePopup, null, params.mouseEvent)\n });\n }\n calculatePointerAlign(e) {\n const parentRect = this.getParentRect();\n return {\n x: e.clientX - parentRect.left,\n y: e.clientY - parentRect.top\n };\n }\n positionPopupByComponent(params) {\n const {\n ePopup,\n nudgeX,\n nudgeY,\n keepWithinBounds,\n eventSource,\n alignSide = \"left\",\n position = \"over\",\n type\n } = params;\n const sourceRect = eventSource.getBoundingClientRect();\n const parentRect = this.getParentRect();\n this.setAlignedTo(eventSource, ePopup);\n const updatePosition = () => {\n const relativeRect = toRelativeRect(sourceRect, parentRect);\n const targetSize = { width: ePopup.offsetWidth, height: ePopup.offsetHeight };\n const right = alignSide === \"right\";\n if (position === \"over\") {\n this.setAlignedStyles(ePopup, \"over\");\n return computeAlignedPosition(relativeRect, targetSize, right ? \"tr-tr\" : \"tl-tl\");\n }\n this.setAlignedStyles(ePopup, \"under\");\n const side = this.shouldRenderUnderOrAbove(ePopup, sourceRect, parentRect, params.nudgeY || 0);\n if (side === \"under\") {\n return computeAlignedPosition(relativeRect, targetSize, right ? \"tr-br\" : \"tl-bl\");\n }\n const pos = computeAlignedPosition(relativeRect, targetSize, right ? \"br-tr\" : \"bl-tl\");\n pos.y -= (nudgeY || 0) * 2;\n return pos;\n };\n this.positionPopup({\n ePopup,\n nudgeX,\n nudgeY,\n keepWithinBounds,\n updatePosition,\n postProcessCallback: () => this.callPostProcessPopup(params.additionalParams, type, ePopup, eventSource, null)\n });\n }\n positionPopupForMenu(params) {\n const { eventSource, ePopup, event } = params;\n const sourceRect = eventSource.getBoundingClientRect();\n const parentRect = this.getParentRect();\n this.setAlignedTo(eventSource, ePopup);\n let minWidthSet = false;\n const updatePosition = () => {\n const relativeRect = toRelativeRect(sourceRect, parentRect);\n const y = this.keepXYWithinBounds(ePopup, relativeRect.top, 0 /* Vertical */);\n const minWidth = ePopup.clientWidth > 0 ? ePopup.clientWidth : 200;\n if (!minWidthSet) {\n ePopup.style.minWidth = `${minWidth}px`;\n minWidthSet = true;\n }\n const widthOfParent = parentRect.right - parentRect.left;\n const maxX = widthOfParent - minWidth;\n const targetSize = { width: minWidth, height: ePopup.offsetHeight };\n const rightX = computeAlignedPosition(relativeRect, targetSize, \"tl-tr\").x - 2;\n const leftX = computeAlignedPosition(relativeRect, targetSize, \"tr-tl\").x;\n let x;\n if (this.gos.get(\"enableRtl\")) {\n x = leftX;\n if (x < 0) {\n x = rightX;\n this.setAlignedStyles(ePopup, \"left\");\n }\n if (x > maxX) {\n x = 0;\n this.setAlignedStyles(ePopup, \"right\");\n }\n } else {\n x = rightX;\n if (x > maxX) {\n x = leftX;\n this.setAlignedStyles(ePopup, \"right\");\n }\n if (x < 0) {\n x = 0;\n this.setAlignedStyles(ePopup, \"left\");\n }\n }\n return { x, y };\n };\n this.positionPopup({\n ePopup,\n keepWithinBounds: true,\n updatePosition,\n postProcessCallback: () => this.callPostProcessPopup(\n params.additionalParams,\n \"subMenu\",\n ePopup,\n eventSource,\n event instanceof KeyboardEvent ? void 0 : event\n )\n });\n }\n shouldRenderUnderOrAbove(ePopup, targetCompRect, parentRect, nudgeY) {\n const spaceAvailableUnder = parentRect.bottom - targetCompRect.bottom;\n const spaceAvailableAbove = targetCompRect.top - parentRect.top;\n const spaceRequired = ePopup.offsetHeight + nudgeY;\n if (spaceAvailableUnder > spaceRequired) {\n return \"under\";\n }\n if (spaceAvailableAbove > spaceRequired || spaceAvailableAbove > spaceAvailableUnder) {\n return \"above\";\n }\n return \"under\";\n }\n setAlignedStyles(ePopup, positioned) {\n const popupIdx = this.getPopupIndex(ePopup);\n if (popupIdx === -1) {\n return;\n }\n const popup = this.popupList[popupIdx];\n const { alignedToElement } = popup;\n if (!alignedToElement) {\n return;\n }\n const positions = [\"right\", \"left\", \"over\", \"above\", \"under\"];\n for (const position of positions) {\n alignedToElement.classList.remove(`ag-has-popup-positioned-${position}`);\n ePopup.classList.remove(`ag-popup-positioned-${position}`);\n }\n if (!positioned) {\n return;\n }\n alignedToElement.classList.add(`ag-has-popup-positioned-${positioned}`);\n ePopup.classList.add(`ag-popup-positioned-${positioned}`);\n }\n setAlignedTo(eventSource, ePopup) {\n const popupIdx = this.getPopupIndex(ePopup);\n if (popupIdx !== -1) {\n const popup = this.popupList[popupIdx];\n popup.alignedToElement = eventSource;\n }\n }\n positionPopup(params) {\n const { ePopup, keepWithinBounds, nudgeX, nudgeY, skipObserver, updatePosition } = params;\n const lastSize = { width: 0, height: 0 };\n const updatePopupPosition = (fromResizeObserver = false) => {\n let { x, y } = updatePosition();\n if (fromResizeObserver && ePopup.clientWidth === lastSize.width && ePopup.clientHeight === lastSize.height) {\n return;\n }\n lastSize.width = ePopup.clientWidth;\n lastSize.height = ePopup.clientHeight;\n if (nudgeX) {\n x += nudgeX;\n }\n if (nudgeY) {\n y += nudgeY;\n }\n if (keepWithinBounds) {\n x = this.keepXYWithinBounds(ePopup, x, 1 /* Horizontal */);\n y = this.keepXYWithinBounds(ePopup, y, 0 /* Vertical */);\n }\n ePopup.style.left = `${x}px`;\n ePopup.style.top = `${y}px`;\n if (params.postProcessCallback) {\n params.postProcessCallback();\n }\n };\n updatePopupPosition();\n if (!skipObserver) {\n const resizeObserverDestroyFunc = _observeResize(this.beans, ePopup, () => updatePopupPosition(true));\n setTimeout(() => resizeObserverDestroyFunc(), WAIT_FOR_POPUP_CONTENT_RESIZE);\n }\n }\n getParentRect() {\n const eDocument = _getDocument(this.beans);\n let popupParent = this.getPopupParent();\n if (popupParent === eDocument.body) {\n popupParent = eDocument.documentElement;\n } else if (getComputedStyle(popupParent).position === \"static\") {\n popupParent = popupParent.offsetParent;\n }\n return _getElementRectWithOffset(popupParent);\n }\n keepXYWithinBounds(ePopup, position, direction) {\n const isVertical = direction === 0 /* Vertical */;\n const sizeProperty = isVertical ? \"clientHeight\" : \"clientWidth\";\n const anchorProperty = isVertical ? \"top\" : \"left\";\n const offsetProperty = isVertical ? \"height\" : \"width\";\n const scrollPositionProperty = isVertical ? \"scrollTop\" : \"scrollLeft\";\n const eDocument = _getDocument(this.beans);\n const docElement = eDocument.documentElement;\n const popupParent = this.getPopupParent();\n const popupRect = ePopup.getBoundingClientRect();\n const parentRect = popupParent.getBoundingClientRect();\n const documentRect = eDocument.documentElement.getBoundingClientRect();\n const isBody = popupParent === eDocument.body;\n const offsetSize = Math.ceil(popupRect[offsetProperty]);\n const getSize = isVertical ? _getAbsoluteHeight : _getAbsoluteWidth;\n let sizeOfParent = isBody ? getSize(docElement) + docElement[scrollPositionProperty] : popupParent[sizeProperty];\n if (isBody) {\n sizeOfParent -= Math.abs(documentRect[anchorProperty] - parentRect[anchorProperty]);\n }\n const max = sizeOfParent - offsetSize;\n return Math.min(Math.max(position, 0), Math.max(max, 0));\n }\n addPopup(params) {\n const { eChild, ariaLabel, ariaOwns, alwaysOnTop, positionCallback, anchorToElement } = params;\n const pos = this.getPopupIndex(eChild);\n if (pos !== -1) {\n const popup = this.popupList[pos];\n return { hideFunc: popup.hideFunc };\n }\n this.initialisePopupPosition(eChild);\n eChild.classList.add(\"ag-popup-child\");\n if (!eChild.hasAttribute(\"role\")) {\n _setAriaRole(eChild, \"dialog\");\n }\n if (ariaLabel) {\n _setAriaLabel(eChild, ariaLabel);\n } else if (ariaOwns) {\n eChild.id || (eChild.id = `popup-component-${instanceIdSeq}`);\n _setAriaOwns(ariaOwns, eChild.id);\n }\n const wrapperEl = _createAgElement({ tag: \"div\", cls: \"ag-popup\" });\n wrapperEl.appendChild(eChild);\n const disconnect = _initStyledRoot(this.beans.environment, this.getPopupParent(), wrapperEl);\n if (alwaysOnTop) {\n this.setAlwaysOnTop(eChild, true);\n } else {\n this.bringPopupToFront(eChild);\n }\n const removeListeners = this.addEventListenersToPopup({ ...params, wrapperEl, disconnect });\n if (positionCallback) {\n positionCallback();\n }\n this.addPopupToPopupList(eChild, removeListeners, anchorToElement);\n return {\n hideFunc: removeListeners\n };\n }\n initialisePopupPosition(element) {\n const ePopupParent = this.getPopupParent();\n const ePopupParentRect = ePopupParent.getBoundingClientRect();\n if (!_exists(element.style.top)) {\n element.style.top = `${ePopupParentRect.top * -1}px`;\n }\n if (!_exists(element.style.left)) {\n element.style.left = `${ePopupParentRect.left * -1}px`;\n }\n }\n addEventListenersToPopup(params) {\n const beans = this.beans;\n const eDocument = _getDocument(beans);\n const { wrapperEl, eChild: popupEl, closedCallback, afterGuiAttached, closeOnEsc, modal, ariaOwns } = params;\n let popupHidden = false;\n const hidePopupOnKeyboardEvent = (event) => {\n if (!wrapperEl.contains(_getActiveDomElement(beans))) {\n return;\n }\n const key = event.key;\n if (key === KeyCode.ESCAPE && !this.isStopPropagation(event)) {\n removeListeners({ keyboardEvent: event });\n }\n };\n const hidePopupOnMouseEvent = (event) => removeListeners({ mouseEvent: event });\n const hidePopupOnTouchEvent = (event) => removeListeners({ touchEvent: event });\n const removeListeners = (popupParams = {}) => {\n const { mouseEvent, touchEvent, keyboardEvent, forceHide } = popupParams;\n if (!forceHide && // we don't hide popup if the event was on the child, or any\n // children of this child\n (this.isEventFromCurrentPopup({ mouseEvent, touchEvent }, popupEl) || // this method should only be called once. the client can have different\n // paths, each one wanting to close, so this method may be called multiple times.\n popupHidden)) {\n return;\n }\n popupHidden = true;\n params.disconnect();\n eDocument.removeEventListener(\"keydown\", hidePopupOnKeyboardEvent);\n eDocument.removeEventListener(\"mousedown\", hidePopupOnMouseEvent);\n eDocument.removeEventListener(\"touchstart\", hidePopupOnTouchEvent);\n eDocument.removeEventListener(\"contextmenu\", hidePopupOnMouseEvent);\n this.eventSvc.removeListener(\"dragStarted\", hidePopupOnMouseEvent);\n if (closedCallback) {\n closedCallback(mouseEvent || touchEvent || keyboardEvent);\n }\n this.removePopupFromPopupList(popupEl, ariaOwns);\n };\n if (afterGuiAttached) {\n afterGuiAttached({ hidePopup: removeListeners });\n }\n window.setTimeout(() => {\n if (closeOnEsc) {\n eDocument.addEventListener(\"keydown\", hidePopupOnKeyboardEvent);\n }\n if (modal) {\n eDocument.addEventListener(\"mousedown\", hidePopupOnMouseEvent);\n this.eventSvc.addListener(\"dragStarted\", hidePopupOnMouseEvent);\n eDocument.addEventListener(\"touchstart\", hidePopupOnTouchEvent);\n eDocument.addEventListener(\"contextmenu\", hidePopupOnMouseEvent);\n }\n }, 0);\n return removeListeners;\n }\n addPopupToPopupList(element, removeListeners, anchorToElement) {\n this.popupList.push({\n element,\n hideFunc: removeListeners,\n instanceId: instanceIdSeq,\n isAnchored: !!anchorToElement\n });\n if (anchorToElement) {\n this.setPopupPositionRelatedToElement(element, anchorToElement);\n }\n instanceIdSeq = instanceIdSeq + 1;\n }\n getPopupIndex(el) {\n return this.popupList.findIndex((p) => p.element === el);\n }\n setPopupPositionRelatedToElement(popupEl, relativeElement) {\n const popupIndex = this.getPopupIndex(popupEl);\n if (popupIndex === -1) {\n return;\n }\n const popup = this.popupList[popupIndex];\n if (popup.stopAnchoringPromise) {\n popup.stopAnchoringPromise.then((destroyFunc) => destroyFunc?.());\n }\n popup.stopAnchoringPromise = void 0;\n popup.isAnchored = false;\n if (!relativeElement) {\n return;\n }\n const destroyPositionTracker = this.keepPopupPositionedRelativeTo({\n element: relativeElement,\n ePopup: popupEl,\n hidePopup: popup.hideFunc\n });\n popup.stopAnchoringPromise = destroyPositionTracker;\n popup.isAnchored = true;\n return destroyPositionTracker;\n }\n removePopupFromPopupList(element, ariaOwns) {\n this.setAlignedStyles(element, null);\n this.setPopupPositionRelatedToElement(element, null);\n if (ariaOwns) {\n _setAriaOwns(ariaOwns, null);\n }\n this.popupList = this.popupList.filter((p) => p.element !== element);\n }\n keepPopupPositionedRelativeTo(params) {\n const eParent = this.getPopupParent();\n const parentRect = eParent.getBoundingClientRect();\n const { element, ePopup } = params;\n const sourceRect = element.getBoundingClientRect();\n const extractFromPixelValue = (pxSize) => Number.parseInt(pxSize.substring(0, pxSize.length - 1), 10);\n const createPosition = (prop, direction) => {\n const initialDiff = parentRect[prop] - sourceRect[prop];\n const initial = extractFromPixelValue(ePopup.style[prop]);\n return {\n initialDiff,\n lastDiff: initialDiff,\n initial,\n last: initial,\n direction\n };\n };\n const topPosition = createPosition(\"top\", 0 /* Vertical */);\n const leftPosition = createPosition(\"left\", 1 /* Horizontal */);\n const fwOverrides = this.beans.frameworkOverrides;\n return new AgPromise((resolve) => {\n fwOverrides.wrapIncoming(() => {\n _wrapInterval(() => {\n const pRect = eParent.getBoundingClientRect();\n const sRect = element.getBoundingClientRect();\n const elementNotInDom = sRect.top == 0 && sRect.left == 0 && sRect.height == 0 && sRect.width == 0;\n if (elementNotInDom) {\n params.hidePopup();\n return;\n }\n const calculateNewPosition = (position, prop) => {\n const current = extractFromPixelValue(ePopup.style[prop]);\n if (position.last !== current) {\n position.initial = current;\n position.last = current;\n }\n const currentDiff = pRect[prop] - sRect[prop];\n if (currentDiff != position.lastDiff) {\n const newValue = this.keepXYWithinBounds(\n ePopup,\n position.initial + position.initialDiff - currentDiff,\n position.direction\n );\n ePopup.style[prop] = `${newValue}px`;\n position.last = newValue;\n }\n position.lastDiff = currentDiff;\n };\n calculateNewPosition(topPosition, \"top\");\n calculateNewPosition(leftPosition, \"left\");\n }, 200).then((intervalId) => {\n const result = () => {\n if (intervalId != null) {\n window.clearInterval(intervalId);\n }\n };\n resolve(result);\n });\n }, \"popupPositioning\");\n });\n }\n isEventFromCurrentPopup(params, target) {\n const { mouseEvent, touchEvent } = params;\n const event = mouseEvent ? mouseEvent : touchEvent;\n if (!event) {\n return false;\n }\n const indexOfThisChild = this.getPopupIndex(target);\n if (indexOfThisChild === -1) {\n return false;\n }\n for (let i = indexOfThisChild; i < this.popupList.length; i++) {\n const popup = this.popupList[i];\n if (_isElementInEventPath(popup.element, event)) {\n return true;\n }\n }\n return this.isElementWithinCustomPopup(event.target);\n }\n isElementWithinCustomPopup(el) {\n const eDocument = _getDocument(this.beans);\n while (el && el !== eDocument.body) {\n if (el.classList.contains(\"ag-custom-component-popup\") || el.parentElement === null) {\n return true;\n }\n el = el.parentElement;\n }\n return false;\n }\n getWrapper(ePopup) {\n while (!ePopup.classList.contains(\"ag-popup\") && ePopup.parentElement) {\n ePopup = ePopup.parentElement;\n }\n return ePopup.classList.contains(\"ag-popup\") ? ePopup : null;\n }\n getPopupRoot(ePopup) {\n const parent = this.getPopupParent();\n let popupRoot = ePopup;\n while (popupRoot.parentElement && popupRoot.parentElement !== parent) {\n popupRoot = popupRoot.parentElement;\n }\n return popupRoot;\n }\n setAlwaysOnTop(ePopup, alwaysOnTop) {\n const eWrapper = this.getWrapper(ePopup);\n if (!eWrapper) {\n return;\n }\n eWrapper.classList.toggle(\"ag-always-on-top\", !!alwaysOnTop);\n if (alwaysOnTop) {\n this.bringPopupToFront(eWrapper);\n }\n }\n /** @returns true if moved */\n bringPopupToFront(ePopup) {\n const parent = this.getPopupParent();\n const popupList = Array.prototype.slice.call(parent.querySelectorAll(\".ag-popup\"));\n const popupLen = popupList.length;\n const eWrapper = this.getWrapper(ePopup);\n if (!eWrapper || popupLen <= 1 || !parent.contains(ePopup)) {\n return;\n }\n const standardPopupList = [];\n const alwaysOnTopList = [];\n for (const popup of popupList) {\n if (popup === eWrapper) {\n continue;\n }\n if (popup.classList.contains(\"ag-always-on-top\")) {\n alwaysOnTopList.push(popup);\n } else {\n standardPopupList.push(popup);\n }\n }\n const innerElsScrollMap = [];\n const onTopLength = alwaysOnTopList.length;\n const isPopupAlwaysOnTop = eWrapper.classList.contains(\"ag-always-on-top\");\n const shouldBeLast = isPopupAlwaysOnTop || !onTopLength;\n const targetList = shouldBeLast ? [...standardPopupList, ...alwaysOnTopList, eWrapper] : [...standardPopupList, eWrapper, ...alwaysOnTopList];\n for (let i = 0; i <= popupLen; i++) {\n const currentPopup = targetList[i];\n if (popupList[i] === targetList[i] || currentPopup === eWrapper) {\n continue;\n }\n const innerEls = currentPopup.querySelectorAll(\"div\");\n for (const el of innerEls) {\n if (el.scrollTop !== 0) {\n innerElsScrollMap.push([el, el.scrollTop]);\n }\n }\n if (i === 0) {\n parent.prepend(this.getPopupRoot(currentPopup));\n } else {\n this.getPopupRoot(targetList[i - 1]).after(this.getPopupRoot(currentPopup));\n }\n }\n while (innerElsScrollMap.length) {\n const currentEl = innerElsScrollMap.pop();\n currentEl[0].scrollTop = currentEl[1];\n }\n }\n};\n\n// packages/ag-stack/src/rendering/agPositionableFeature.ts\nvar RESIZE_CONTAINER_STYLE = \"ag-resizer-wrapper\";\nvar makeDiv = (dataRefPrefix, classSuffix) => ({\n tag: \"div\",\n ref: `${dataRefPrefix}Resizer`,\n cls: `ag-resizer ag-resizer-${classSuffix}`\n});\nvar RESIZE_TEMPLATE = {\n tag: \"div\",\n cls: RESIZE_CONTAINER_STYLE,\n children: [\n makeDiv(\"eTopLeft\", \"topLeft\"),\n makeDiv(\"eTop\", \"top\"),\n makeDiv(\"eTopRight\", \"topRight\"),\n makeDiv(\"eRight\", \"right\"),\n makeDiv(\"eBottomRight\", \"bottomRight\"),\n makeDiv(\"eBottom\", \"bottom\"),\n makeDiv(\"eBottomLeft\", \"bottomLeft\"),\n makeDiv(\"eLeft\", \"left\")\n ]\n};\nvar AgPositionableFeature = class extends AgBeanStub {\n constructor(element, config) {\n super();\n this.element = element;\n this.dragStartPosition = {\n x: 0,\n y: 0\n };\n this.position = {\n x: 0,\n y: 0\n };\n this.lastSize = {\n width: -1,\n height: -1\n };\n this.positioned = false;\n this.resizersAdded = false;\n this.resizeListeners = [];\n this.boundaryEl = null;\n this.isResizing = false;\n this.isMoving = false;\n this.resizable = {};\n this.movable = false;\n this.currentResizer = null;\n this.config = { popup: false, ...config };\n }\n wireBeans(beans) {\n this.popupSvc = beans.popupSvc;\n this.dragSvc = beans.dragSvc;\n }\n center(postProcessCallback) {\n const { clientHeight, clientWidth } = this.offsetParent;\n const x = clientWidth / 2 - this.getWidth() / 2;\n const y = clientHeight / 2 - this.getHeight() / 2;\n this.offsetElement(x, y, postProcessCallback);\n }\n initialisePosition(postProcessCallback) {\n if (this.positioned) {\n return;\n }\n const { centered, forcePopupParentAsOffsetParent, minWidth, width, minHeight, height, x, y } = this.config;\n if (!this.offsetParent) {\n this.setOffsetParent();\n }\n let computedMinHeight = 0;\n let computedMinWidth = 0;\n const isElementVisible = _isVisible(this.element);\n if (isElementVisible) {\n const boundaryEl = this.findBoundaryElement();\n const offsetParentComputedStyles = window.getComputedStyle(boundaryEl);\n if (offsetParentComputedStyles.minWidth != null) {\n const paddingWidth = boundaryEl.offsetWidth - this.element.offsetWidth;\n computedMinWidth = Number.parseInt(offsetParentComputedStyles.minWidth, 10) - paddingWidth;\n }\n if (offsetParentComputedStyles.minHeight != null) {\n const paddingHeight = boundaryEl.offsetHeight - this.element.offsetHeight;\n computedMinHeight = Number.parseInt(offsetParentComputedStyles.minHeight, 10) - paddingHeight;\n }\n }\n this.minHeight = minHeight || computedMinHeight;\n this.minWidth = minWidth || computedMinWidth;\n if (width) {\n this.setWidth(width);\n }\n if (height) {\n this.setHeight(height);\n }\n if (!width || !height) {\n this.refreshSize();\n }\n if (centered) {\n this.center(postProcessCallback);\n } else if (x || y) {\n this.offsetElement(x, y, postProcessCallback);\n } else if (isElementVisible && forcePopupParentAsOffsetParent) {\n let boundaryEl = this.boundaryEl;\n let initialisedDuringPositioning = true;\n if (!boundaryEl) {\n boundaryEl = this.findBoundaryElement();\n initialisedDuringPositioning = false;\n }\n if (boundaryEl) {\n const top = Number.parseFloat(boundaryEl.style.top);\n const left = Number.parseFloat(boundaryEl.style.left);\n if (initialisedDuringPositioning) {\n this.offsetElement(Number.isNaN(left) ? 0 : left, Number.isNaN(top) ? 0 : top, postProcessCallback);\n } else {\n this.setPosition(left, top);\n }\n }\n }\n this.positioned = !!this.offsetParent;\n }\n isPositioned() {\n return this.positioned;\n }\n getPosition() {\n return this.position;\n }\n setMovable(movable, moveElement) {\n if (!this.config.popup || movable === this.movable) {\n return;\n }\n this.movable = movable;\n const params = this.moveElementDragListener || {\n eElement: moveElement,\n onDragStart: this.onMoveStart.bind(this),\n onDragging: this.onMove.bind(this),\n onDragStop: this.onMoveEnd.bind(this)\n };\n if (movable) {\n this.dragSvc?.addDragSource(params);\n this.moveElementDragListener = params;\n } else {\n this.dragSvc?.removeDragSource(params);\n this.moveElementDragListener = void 0;\n }\n }\n setResizable(resizable) {\n this.clearResizeListeners();\n if (resizable) {\n this.addResizers();\n } else {\n this.removeResizers();\n }\n if (typeof resizable === \"boolean\") {\n if (resizable === false) {\n return;\n }\n resizable = {\n topLeft: resizable,\n top: resizable,\n topRight: resizable,\n right: resizable,\n bottomRight: resizable,\n bottom: resizable,\n bottomLeft: resizable,\n left: resizable\n };\n }\n for (const side of Object.keys(resizable)) {\n const isSideResizable = !!resizable[side];\n const resizerEl = this.getResizerElement(side);\n const params = {\n dragStartPixels: 0,\n eElement: resizerEl,\n onDragStart: (e) => this.onResizeStart(e, side),\n onDragging: this.onResize.bind(this),\n onDragStop: (e) => this.onResizeEnd(e, side)\n };\n if (isSideResizable || !this.isAlive() && !isSideResizable) {\n if (isSideResizable) {\n this.dragSvc?.addDragSource(params);\n this.resizeListeners.push(params);\n resizerEl.style.pointerEvents = \"all\";\n } else {\n resizerEl.style.pointerEvents = \"none\";\n }\n this.resizable[side] = isSideResizable;\n }\n }\n }\n removeSizeFromEl() {\n this.element.style.removeProperty(\"height\");\n this.element.style.removeProperty(\"width\");\n this.element.style.removeProperty(\"flex\");\n }\n restoreLastSize() {\n this.element.style.flex = \"0 0 auto\";\n const { height, width } = this.lastSize;\n if (width !== -1) {\n this.element.style.width = `${width}px`;\n }\n if (height !== -1) {\n this.element.style.height = `${height}px`;\n }\n }\n getHeight() {\n return this.element.offsetHeight;\n }\n setHeight(height) {\n const { popup } = this.config;\n const eGui = this.element;\n let isPercent = false;\n if (typeof height === \"string\" && height.includes(\"%\")) {\n _setFixedHeight(eGui, height);\n height = _getAbsoluteHeight(eGui);\n isPercent = true;\n } else {\n height = Math.max(this.minHeight, height);\n if (this.positioned) {\n const availableHeight = this.getAvailableHeight();\n if (availableHeight && height > availableHeight) {\n height = availableHeight;\n }\n }\n }\n if (eGui.style.height !== \"\" && this.getHeight() === height) {\n return;\n }\n if (isPercent) {\n eGui.style.maxHeight = \"unset\";\n eGui.style.minHeight = \"unset\";\n } else if (popup) {\n _setFixedHeight(eGui, height);\n } else {\n eGui.style.height = `${height}px`;\n eGui.style.flex = \"0 0 auto\";\n this.lastSize.height = typeof height === \"number\" ? height : Number.parseFloat(height);\n }\n }\n getAvailableHeight() {\n const { popup, forcePopupParentAsOffsetParent } = this.config;\n if (!this.positioned) {\n this.initialisePosition();\n }\n const { clientHeight } = this.offsetParent;\n if (!clientHeight) {\n return null;\n }\n const elRect = this.element.getBoundingClientRect();\n const offsetParentRect = this.offsetParent.getBoundingClientRect();\n const yPosition = popup ? this.position.y : elRect.top;\n const parentTop = popup ? 0 : offsetParentRect.top;\n let additionalHeight = 0;\n if (forcePopupParentAsOffsetParent) {\n const parentEl = this.element.parentElement;\n if (parentEl) {\n const { bottom } = parentEl.getBoundingClientRect();\n additionalHeight = bottom - elRect.bottom;\n }\n }\n const availableHeight = clientHeight + parentTop - yPosition - additionalHeight;\n return availableHeight;\n }\n getWidth() {\n return this.element.offsetWidth;\n }\n setWidth(width) {\n const eGui = this.element;\n const { popup } = this.config;\n let isPercent = false;\n if (typeof width === \"string\" && width.includes(\"%\")) {\n _setFixedWidth(eGui, width);\n width = _getAbsoluteWidth(eGui);\n isPercent = true;\n } else if (this.positioned) {\n width = Math.max(this.minWidth, width);\n const { clientWidth } = this.offsetParent;\n const xPosition = popup ? this.position.x : this.element.getBoundingClientRect().left;\n if (clientWidth && width + xPosition > clientWidth) {\n width = clientWidth - xPosition;\n }\n }\n if (this.getWidth() === width) {\n return;\n }\n if (isPercent) {\n eGui.style.maxWidth = \"unset\";\n eGui.style.minWidth = \"unset\";\n } else if (this.config.popup) {\n _setFixedWidth(eGui, width);\n } else {\n eGui.style.width = `${width}px`;\n eGui.style.flex = \" unset\";\n this.lastSize.width = typeof width === \"number\" ? width : Number.parseFloat(width);\n }\n }\n offsetElement(x = 0, y = 0, postProcessCallback) {\n const { forcePopupParentAsOffsetParent } = this.config;\n const ePopup = forcePopupParentAsOffsetParent ? this.boundaryEl : this.element;\n if (!ePopup) {\n return;\n }\n this.popupSvc?.positionPopup({\n ePopup,\n keepWithinBounds: true,\n skipObserver: this.movable || this.isResizable(),\n updatePosition: () => ({ x, y }),\n postProcessCallback\n });\n this.setPosition(Number.parseFloat(ePopup.style.left), Number.parseFloat(ePopup.style.top));\n }\n constrainSizeToAvailableHeight(constrain) {\n if (!this.config.forcePopupParentAsOffsetParent) {\n return;\n }\n const applyMaxHeightToElement = () => {\n const availableHeight = this.getAvailableHeight();\n this.element.style.setProperty(\"max-height\", `${availableHeight}px`);\n };\n if (constrain && this.popupSvc) {\n this.resizeObserverSubscriber?.();\n this.resizeObserverSubscriber = _observeResize(\n this.beans,\n this.popupSvc?.getPopupParent(),\n applyMaxHeightToElement\n );\n } else {\n this.element.style.removeProperty(\"max-height\");\n if (this.resizeObserverSubscriber) {\n this.resizeObserverSubscriber();\n this.resizeObserverSubscriber = void 0;\n }\n }\n }\n setPosition(x, y) {\n this.position.x = x;\n this.position.y = y;\n }\n updateDragStartPosition(x, y) {\n this.dragStartPosition = { x, y };\n }\n calculateMouseMovement(params) {\n const { e, isLeft, isTop, anywhereWithin, topBuffer } = params;\n const xDiff = e.clientX - this.dragStartPosition.x;\n const yDiff = e.clientY - this.dragStartPosition.y;\n const movementX = this.shouldSkipX(e, !!isLeft, !!anywhereWithin, xDiff) ? 0 : xDiff;\n const movementY = this.shouldSkipY(e, !!isTop, topBuffer, yDiff) ? 0 : yDiff;\n return { movementX, movementY };\n }\n shouldSkipX(e, isLeft, anywhereWithin, diff) {\n const elRect = this.element.getBoundingClientRect();\n const parentRect = this.offsetParent.getBoundingClientRect();\n const boundaryElRect = this.boundaryEl.getBoundingClientRect();\n const xPosition = this.config.popup ? this.position.x : elRect.left;\n let skipX = xPosition <= 0 && parentRect.left >= e.clientX || parentRect.right <= e.clientX && parentRect.right <= boundaryElRect.right;\n if (skipX) {\n return true;\n }\n if (isLeft) {\n skipX = // skip if we are moving to the left and the cursor\n // is positioned to the right of the left side anchor\n diff < 0 && e.clientX > xPosition + parentRect.left || // skip if we are moving to the right and the cursor\n // is positioned to the left of the dialog\n diff > 0 && e.clientX < xPosition + parentRect.left;\n } else if (anywhereWithin) {\n skipX = diff < 0 && e.clientX > boundaryElRect.right || diff > 0 && e.clientX < xPosition + parentRect.left;\n } else {\n skipX = // if the movement is bound to the right side of the dialog\n // we skip if we are moving to the left and the cursor\n // is to the right of the dialog\n diff < 0 && e.clientX > boundaryElRect.right || // or skip if we are moving to the right and the cursor\n // is to the left of the right side anchor\n diff > 0 && e.clientX < boundaryElRect.right;\n }\n return skipX;\n }\n shouldSkipY(e, isTop, topBuffer = 0, diff) {\n const elRect = this.element.getBoundingClientRect();\n const parentRect = this.offsetParent.getBoundingClientRect();\n const boundaryElRect = this.boundaryEl.getBoundingClientRect();\n const yPosition = this.config.popup ? this.position.y : elRect.top;\n let skipY = yPosition <= 0 && parentRect.top >= e.clientY || parentRect.bottom <= e.clientY && parentRect.bottom <= boundaryElRect.bottom;\n if (skipY) {\n return true;\n }\n if (isTop) {\n skipY = // skip if we are moving to towards top and the cursor is\n // below the top anchor + topBuffer\n // note: topBuffer is used when moving the dialog using the title bar\n diff < 0 && e.clientY > yPosition + parentRect.top + topBuffer || // skip if we are moving to the bottom and the cursor is\n // above the top anchor\n diff > 0 && e.clientY < yPosition + parentRect.top;\n } else {\n skipY = // skip if we are moving towards the top and the cursor\n // is below the bottom anchor\n diff < 0 && e.clientY > boundaryElRect.bottom || // skip if we are moving towards the bottom and the cursor\n // is above the bottom anchor\n diff > 0 && e.clientY < boundaryElRect.bottom;\n }\n return skipY;\n }\n createResizeMap() {\n const getElement = (ref) => ({\n element: this.element.querySelector(`[data-ref=${ref}Resizer]`)\n });\n this.resizerMap = {\n topLeft: getElement(\"eTopLeft\"),\n top: getElement(\"eTop\"),\n topRight: getElement(\"eTopRight\"),\n right: getElement(\"eRight\"),\n bottomRight: getElement(\"eBottomRight\"),\n bottom: getElement(\"eBottom\"),\n bottomLeft: getElement(\"eBottomLeft\"),\n left: getElement(\"eLeft\")\n };\n }\n addResizers() {\n if (this.resizersAdded) {\n return;\n }\n const eGui = this.element;\n if (!eGui) {\n return;\n }\n eGui.appendChild(_createAgElement(RESIZE_TEMPLATE));\n this.createResizeMap();\n this.resizersAdded = true;\n }\n removeResizers() {\n this.resizerMap = void 0;\n const resizerEl = this.element.querySelector(`.${RESIZE_CONTAINER_STYLE}`);\n resizerEl?.remove();\n this.resizersAdded = false;\n }\n getResizerElement(side) {\n return this.resizerMap[side].element;\n }\n onResizeStart(e, side) {\n this.boundaryEl = this.findBoundaryElement();\n if (!this.positioned) {\n this.initialisePosition();\n }\n this.currentResizer = {\n isTop: !!side.match(/top/i),\n isRight: !!side.match(/right/i),\n isBottom: !!side.match(/bottom/i),\n isLeft: !!side.match(/left/i)\n };\n this.element.classList.add(\"ag-resizing\");\n this.resizerMap[side].element.classList.add(\"ag-active\");\n const { popup, forcePopupParentAsOffsetParent } = this.config;\n if (!popup && !forcePopupParentAsOffsetParent) {\n this.applySizeToSiblings(this.currentResizer.isBottom || this.currentResizer.isTop);\n }\n this.isResizing = true;\n this.updateDragStartPosition(e.clientX, e.clientY);\n }\n getSiblings() {\n const element = this.element;\n const parent = element.parentElement;\n if (!parent) {\n return null;\n }\n return Array.prototype.slice.call(parent.children).filter((el) => !el.classList.contains(\"ag-hidden\"));\n }\n getMinSizeOfSiblings() {\n const siblings = this.getSiblings() || [];\n let height = 0;\n let width = 0;\n for (const currentEl of siblings) {\n const isFlex = !!currentEl.style.flex && currentEl.style.flex !== \"0 0 auto\";\n if (currentEl === this.element) {\n continue;\n }\n let nextHeight = this.minHeight || 0;\n let nextWidth = this.minWidth || 0;\n if (isFlex) {\n const computedStyle = window.getComputedStyle(currentEl);\n if (computedStyle.minHeight) {\n nextHeight = Number.parseInt(computedStyle.minHeight, 10);\n }\n if (computedStyle.minWidth) {\n nextWidth = Number.parseInt(computedStyle.minWidth, 10);\n }\n } else {\n nextHeight = currentEl.offsetHeight;\n nextWidth = currentEl.offsetWidth;\n }\n height += nextHeight;\n width += nextWidth;\n }\n return { height, width };\n }\n applySizeToSiblings(vertical) {\n let containerToFlex = null;\n const siblings = this.getSiblings();\n if (!siblings) {\n return;\n }\n for (let i = 0; i < siblings.length; i++) {\n const el = siblings[i];\n if (el === containerToFlex) {\n continue;\n }\n if (vertical) {\n el.style.height = `${el.offsetHeight}px`;\n } else {\n el.style.width = `${el.offsetWidth}px`;\n }\n el.style.flex = \"0 0 auto\";\n if (el === this.element) {\n containerToFlex = siblings[i + 1];\n }\n }\n if (containerToFlex) {\n containerToFlex.style.removeProperty(\"height\");\n containerToFlex.style.removeProperty(\"min-height\");\n containerToFlex.style.removeProperty(\"max-height\");\n containerToFlex.style.flex = \"1 1 auto\";\n }\n }\n isResizable() {\n return Object.values(this.resizable).some((value) => value);\n }\n onResize(e) {\n if (!this.isResizing || !this.currentResizer) {\n return;\n }\n const { popup, forcePopupParentAsOffsetParent } = this.config;\n const { isTop, isRight, isBottom, isLeft } = this.currentResizer;\n const isHorizontal = isRight || isLeft;\n const isVertical = isBottom || isTop;\n const { movementX, movementY } = this.calculateMouseMovement({ e, isLeft, isTop });\n const xPosition = this.position.x;\n const yPosition = this.position.y;\n let offsetLeft = 0;\n let offsetTop = 0;\n if (isHorizontal && movementX) {\n const direction = isLeft ? -1 : 1;\n const oldWidth = this.getWidth();\n const newWidth = oldWidth + movementX * direction;\n let skipWidth = false;\n if (isLeft) {\n offsetLeft = oldWidth - newWidth;\n if (xPosition + offsetLeft <= 0 || newWidth <= this.minWidth) {\n skipWidth = true;\n offsetLeft = 0;\n }\n }\n if (!skipWidth) {\n this.setWidth(newWidth);\n }\n }\n if (isVertical && movementY) {\n const direction = isTop ? -1 : 1;\n const oldHeight = this.getHeight();\n const newHeight = oldHeight + movementY * direction;\n let skipHeight = false;\n if (isTop) {\n offsetTop = oldHeight - newHeight;\n if (yPosition + offsetTop <= 0 || newHeight <= this.minHeight) {\n skipHeight = true;\n offsetTop = 0;\n }\n } else if (\n // do not let the size of all siblings be higher than the parent container\n !this.config.popup && !this.config.forcePopupParentAsOffsetParent && oldHeight < newHeight && this.getMinSizeOfSiblings().height + newHeight > this.element.parentElement.offsetHeight\n ) {\n skipHeight = true;\n }\n if (!skipHeight) {\n this.setHeight(newHeight);\n }\n }\n this.updateDragStartPosition(e.clientX, e.clientY);\n if ((popup || forcePopupParentAsOffsetParent) && offsetLeft || offsetTop) {\n this.offsetElement(xPosition + offsetLeft, yPosition + offsetTop);\n }\n }\n onResizeEnd(e, side) {\n this.isResizing = false;\n this.currentResizer = null;\n this.boundaryEl = null;\n this.element.classList.remove(\"ag-resizing\");\n this.resizerMap[side].element.classList.remove(\"ag-active\");\n this.dispatchLocalEvent({ type: \"resize\" });\n }\n refreshSize() {\n const eGui = this.element;\n if (this.config.popup) {\n if (!this.config.width) {\n this.setWidth(eGui.offsetWidth);\n }\n if (!this.config.height) {\n this.setHeight(eGui.offsetHeight);\n }\n }\n }\n onMoveStart(e) {\n this.boundaryEl = this.findBoundaryElement();\n if (!this.positioned) {\n this.initialisePosition();\n }\n this.isMoving = true;\n this.element.classList.add(\"ag-moving\");\n this.updateDragStartPosition(e.clientX, e.clientY);\n }\n onMove(e) {\n if (!this.isMoving) {\n return;\n }\n const { x, y } = this.position;\n let topBuffer;\n if (this.config.calculateTopBuffer) {\n topBuffer = this.config.calculateTopBuffer();\n }\n const { movementX, movementY } = this.calculateMouseMovement({\n e,\n isTop: true,\n anywhereWithin: true,\n topBuffer\n });\n this.offsetElement(x + movementX, y + movementY);\n this.updateDragStartPosition(e.clientX, e.clientY);\n }\n onMoveEnd() {\n this.isMoving = false;\n this.boundaryEl = null;\n this.element.classList.remove(\"ag-moving\");\n }\n setOffsetParent() {\n if (this.config.forcePopupParentAsOffsetParent && this.popupSvc) {\n this.offsetParent = this.popupSvc.getPopupParent();\n } else {\n this.offsetParent = this.element.offsetParent;\n }\n }\n findBoundaryElement() {\n let el = this.element;\n while (el) {\n if (window.getComputedStyle(el).position !== \"static\") {\n return el;\n }\n el = el.parentElement;\n }\n return this.element;\n }\n clearResizeListeners() {\n while (this.resizeListeners.length) {\n const params = this.resizeListeners.pop();\n this.dragSvc?.removeDragSource(params);\n }\n }\n destroy() {\n super.destroy();\n if (this.moveElementDragListener) {\n this.dragSvc?.removeDragSource(this.moveElementDragListener);\n }\n this.constrainSizeToAvailableHeight(false);\n this.clearResizeListeners();\n this.removeResizers();\n }\n};\n\n// packages/ag-stack/src/rendering/autoScrollService.ts\nvar AutoScrollService = class {\n constructor(params) {\n this.tickingInterval = null;\n this.onScrollCallback = null;\n this.scrollContainer = params.scrollContainer;\n this.scrollHorizontally = params.scrollAxis.includes(\"x\");\n this.scrollVertically = params.scrollAxis.includes(\"y\");\n this.scrollByTick = params.scrollByTick ?? 20;\n if (params.onScrollCallback) {\n this.onScrollCallback = params.onScrollCallback;\n }\n if (this.scrollVertically) {\n this.getVerticalPosition = params.getVerticalPosition;\n this.setVerticalPosition = params.setVerticalPosition;\n }\n if (this.scrollHorizontally) {\n this.getHorizontalPosition = params.getHorizontalPosition;\n this.setHorizontalPosition = params.setHorizontalPosition;\n }\n this.shouldSkipVerticalScroll = params.shouldSkipVerticalScroll || (() => false);\n this.shouldSkipHorizontalScroll = params.shouldSkipHorizontalScroll || (() => false);\n this.getTopOffset = params.getTopOffset || (() => 0);\n this.getBottomOffset = params.getBottomOffset || (() => 0);\n }\n /** True while auto-scrolling */\n get scrolling() {\n return this.tickingInterval !== null;\n }\n check(mouseEvent, forceSkipVerticalScroll = false) {\n const skipVerticalScroll = !this.scrollVertically || forceSkipVerticalScroll || this.shouldSkipVerticalScroll();\n const skipHorizontalScroll = !this.scrollHorizontally || this.shouldSkipHorizontalScroll();\n if (skipVerticalScroll && skipHorizontalScroll) {\n return;\n }\n const rect = this.scrollContainer.getBoundingClientRect();\n const scrollTick = this.scrollByTick;\n const topOffset = this.getTopOffset();\n const bottomOffset = this.getBottomOffset();\n this.tickLeft = !skipHorizontalScroll && mouseEvent.clientX < rect.left + scrollTick;\n this.tickRight = !skipHorizontalScroll && mouseEvent.clientX > rect.right - scrollTick;\n this.tickUp = !skipVerticalScroll && mouseEvent.clientY < rect.top + topOffset + scrollTick;\n this.tickDown = !skipVerticalScroll && mouseEvent.clientY > rect.bottom - bottomOffset - scrollTick;\n if (this.tickLeft || this.tickRight || this.tickUp || this.tickDown) {\n this.ensureTickingStarted();\n } else {\n this.ensureCleared();\n }\n }\n ensureTickingStarted() {\n if (this.tickingInterval === null) {\n this.tickingInterval = window.setInterval(this.doTick.bind(this), 100);\n this.tickCount = 0;\n }\n }\n doTick() {\n this.tickCount++;\n const tickAmount = this.tickCount > 20 ? 200 : this.tickCount > 10 ? 80 : 40;\n if (this.scrollVertically) {\n const vScrollPosition = this.getVerticalPosition();\n if (this.tickUp) {\n this.setVerticalPosition(vScrollPosition - tickAmount);\n }\n if (this.tickDown) {\n this.setVerticalPosition(vScrollPosition + tickAmount);\n }\n }\n if (this.scrollHorizontally) {\n const hScrollPosition = this.getHorizontalPosition();\n if (this.tickLeft) {\n this.setHorizontalPosition(hScrollPosition - tickAmount);\n }\n if (this.tickRight) {\n this.setHorizontalPosition(hScrollPosition + tickAmount);\n }\n }\n if (this.onScrollCallback) {\n this.onScrollCallback();\n }\n }\n ensureCleared() {\n if (this.tickingInterval) {\n window.clearInterval(this.tickingInterval);\n this.tickingInterval = null;\n }\n }\n};\n\n// packages/ag-stack/src/tooltip/agTooltipFeature.ts\nvar AgTooltipFeature = class extends AgBeanStub {\n constructor(ctrl, beans) {\n super();\n this.ctrl = ctrl;\n if (beans) {\n this.beans = beans;\n }\n }\n postConstruct() {\n this.refreshTooltip();\n }\n /**\n *\n * @param tooltip The tooltip value\n * @param allowEmptyString Set it to true to allow the title to be set to `''`. This is necessary\n * when the browser adds a default tooltip the element and the tooltip service will be displayed\n * next to a browser tooltip causing confusion.\n */\n setBrowserTooltip(tooltip, allowEmptyString) {\n const name = \"title\";\n const eGui = this.ctrl.getGui();\n if (!eGui) {\n return;\n }\n if (tooltip != null && (tooltip != \"\" || allowEmptyString)) {\n eGui.setAttribute(name, tooltip);\n } else {\n eGui.removeAttribute(name);\n }\n }\n updateTooltipText() {\n const { getTooltipValue } = this.ctrl;\n if (getTooltipValue) {\n this.tooltip = getTooltipValue();\n }\n }\n createTooltipFeatureIfNeeded() {\n if (this.tooltipManager == null) {\n const tooltipManager = this.beans.registry.createDynamicBean(\"tooltipStateManager\", true, this.ctrl, () => this.tooltip);\n if (tooltipManager) {\n this.tooltipManager = this.createBean(tooltipManager, this.beans.context);\n }\n }\n }\n attemptToShowTooltip() {\n this.tooltipManager?.prepareToShowTooltip();\n }\n attemptToHideTooltip() {\n this.tooltipManager?.hideTooltip();\n }\n setTooltipAndRefresh(tooltip) {\n this.tooltip = tooltip;\n this.refreshTooltip();\n }\n refreshTooltip(clearWithEmptyString) {\n this.browserTooltips = this.beans.gos.get(\"enableBrowserTooltips\");\n this.updateTooltipText();\n if (this.browserTooltips) {\n this.setBrowserTooltip(this.tooltip);\n this.tooltipManager = this.destroyBean(this.tooltipManager, this.beans.context);\n } else {\n this.setBrowserTooltip(clearWithEmptyString ? \"\" : null, clearWithEmptyString);\n this.createTooltipFeatureIfNeeded();\n }\n }\n destroy() {\n this.tooltipManager = this.destroyBean(this.tooltipManager, this.beans.context);\n super.destroy();\n }\n};\n\n// packages/ag-stack/src/tooltip/baseTooltipStateManager.ts\nvar SHOW_SWITCH_TOOLTIP_DIFF = 1e3;\nvar FADE_OUT_TOOLTIP_TIMEOUT = 1e3;\nvar INTERACTIVE_HIDE_DELAY = 100;\nvar lastTooltipHideTime;\nvar isLocked = false;\nvar BaseTooltipStateManager = class extends AgBeanStub {\n constructor(tooltipCtrl, getTooltipValue) {\n super();\n this.tooltipCtrl = tooltipCtrl;\n this.getTooltipValue = getTooltipValue;\n this.interactionEnabled = false;\n this.isInteractingWithTooltip = false;\n this.state = 0 /* NOTHING */;\n // when showing the tooltip, we need to make sure it's the most recent instance we request, as due to\n // async we could request two tooltips before the first instance returns, in which case we should\n // disregard the second instance.\n this.tooltipInstanceCount = 0;\n this.tooltipMouseTrack = false;\n }\n wireBeans(beans) {\n this.popupSvc = beans.popupSvc;\n }\n postConstruct() {\n if (this.gos.get(\"tooltipInteraction\")) {\n this.interactionEnabled = true;\n }\n this.tooltipTrigger = this.getTooltipTrigger();\n this.tooltipMouseTrack = this.gos.get(\"tooltipMouseTrack\");\n const el = this.tooltipCtrl.getGui();\n if (this.tooltipTrigger === 0 /* HOVER */) {\n this.addManagedListeners(el, {\n mouseenter: this.onMouseEnter.bind(this),\n mouseleave: this.onMouseLeave.bind(this)\n });\n }\n if (this.tooltipTrigger === 1 /* FOCUS */) {\n this.addManagedListeners(el, {\n focusin: this.onFocusIn.bind(this),\n focusout: this.onFocusOut.bind(this)\n });\n }\n this.addManagedListeners(el, { mousemove: this.onMouseMove.bind(this) });\n if (!this.interactionEnabled) {\n this.addManagedListeners(el, {\n mousedown: this.onMouseDown.bind(this),\n keydown: this.onKeyDown.bind(this)\n });\n }\n }\n getGridOptionsTooltipDelay(delayOption) {\n const delay = this.gos.get(delayOption);\n return Math.max(200, delay);\n }\n getTooltipDelay(type) {\n return this.tooltipCtrl[`getTooltip${type}DelayOverride`]?.() ?? this.getGridOptionsTooltipDelay(`tooltip${type}Delay`);\n }\n destroy() {\n this.setToDoNothing();\n super.destroy();\n }\n getTooltipTrigger() {\n const trigger = this.gos.get(\"tooltipTrigger\");\n if (!trigger || trigger === \"hover\") {\n return 0 /* HOVER */;\n }\n return 1 /* FOCUS */;\n }\n onMouseEnter(e) {\n if (this.interactionEnabled && this.interactiveTooltipTimeoutId) {\n this.unlockService();\n this.startHideTimeout();\n }\n if (_isIOSUserAgent()) {\n return;\n }\n if (isLocked) {\n this.showTooltipTimeoutId = window.setTimeout(() => {\n this.prepareToShowTooltip(e);\n }, INTERACTIVE_HIDE_DELAY);\n } else {\n this.prepareToShowTooltip(e);\n }\n }\n onMouseMove(e) {\n if (this.lastMouseEvent) {\n this.lastMouseEvent = e;\n }\n if (this.tooltipMouseTrack && this.state === 2 /* SHOWING */ && this.tooltipComp) {\n this.positionTooltip();\n }\n }\n onMouseDown() {\n this.setToDoNothing();\n }\n onMouseLeave() {\n if (this.interactionEnabled) {\n this.lockService();\n } else {\n this.setToDoNothing();\n }\n }\n onFocusIn() {\n this.prepareToShowTooltip();\n }\n onFocusOut(e) {\n const relatedTarget = e.relatedTarget;\n const parentCompGui = this.tooltipCtrl.getGui();\n const tooltipGui = this.tooltipComp?.getGui();\n if (this.isInteractingWithTooltip || parentCompGui.contains(relatedTarget) || this.interactionEnabled && tooltipGui?.contains(relatedTarget)) {\n return;\n }\n this.setToDoNothing();\n }\n onKeyDown() {\n if (this.isInteractingWithTooltip) {\n this.isInteractingWithTooltip = false;\n }\n this.setToDoNothing();\n }\n prepareToShowTooltip(mouseEvent) {\n if (this.state != 0 /* NOTHING */ || isLocked) {\n return;\n }\n let delay = 0;\n if (mouseEvent) {\n delay = this.isLastTooltipHiddenRecently() ? this.getTooltipDelay(\"SwitchShow\") : this.getTooltipDelay(\"Show\");\n }\n this.lastMouseEvent = mouseEvent || null;\n this.showTooltipTimeoutId = window.setTimeout(this.showTooltip.bind(this), delay);\n this.state = 1 /* WAITING_TO_SHOW */;\n }\n isLastTooltipHiddenRecently() {\n const now = Date.now();\n const then = lastTooltipHideTime;\n return now - then < SHOW_SWITCH_TOOLTIP_DIFF;\n }\n setToDoNothing(fromHideTooltip) {\n if (!fromHideTooltip && this.state === 2 /* SHOWING */) {\n this.hideTooltip();\n }\n if (this.onBodyScrollEventCallback) {\n this.onBodyScrollEventCallback();\n this.onBodyScrollEventCallback = void 0;\n }\n this.clearEventHandlers();\n if (this.onDocumentKeyDownCallback) {\n this.onDocumentKeyDownCallback();\n this.onDocumentKeyDownCallback = void 0;\n }\n this.clearTimeouts();\n this.state = 0 /* NOTHING */;\n this.lastMouseEvent = null;\n }\n showTooltip() {\n const value = this.getTooltipValue();\n const ctrl = this.tooltipCtrl;\n if (!_exists(value) || ctrl.shouldDisplayTooltip && !ctrl.shouldDisplayTooltip()) {\n this.setToDoNothing();\n return;\n }\n const params = this.gos.addCommon({\n location: ctrl.getLocation?.() ?? \"UNKNOWN\",\n value,\n hideTooltipCallback: () => this.hideTooltip(true),\n ...ctrl.getAdditionalParams?.()\n });\n this.state = 2 /* SHOWING */;\n this.tooltipInstanceCount++;\n const callback = this.newTooltipComponentCallback.bind(this, this.tooltipInstanceCount);\n this.createTooltipComp(params, callback);\n }\n hideTooltip(forceHide) {\n if (!forceHide && this.isInteractingWithTooltip) {\n return;\n }\n if (this.tooltipComp) {\n this.destroyTooltipComp();\n lastTooltipHideTime = Date.now();\n }\n this.eventSvc.dispatchEvent({\n type: \"tooltipHide\",\n parentGui: this.tooltipCtrl.getGui()\n });\n if (forceHide) {\n this.isInteractingWithTooltip = false;\n }\n this.setToDoNothing(true);\n }\n newTooltipComponentCallback(tooltipInstanceCopy, tooltipComp) {\n const compNoLongerNeeded = this.state !== 2 /* SHOWING */ || this.tooltipInstanceCount !== tooltipInstanceCopy;\n if (compNoLongerNeeded) {\n this.destroyBean(tooltipComp);\n return;\n }\n const eGui = tooltipComp.getGui();\n this.tooltipComp = tooltipComp;\n if (!eGui.classList.contains(\"ag-tooltip\")) {\n eGui.classList.add(\"ag-tooltip-custom\");\n }\n if (this.tooltipTrigger === 0 /* HOVER */) {\n eGui.classList.add(\"ag-tooltip-animate\");\n }\n if (this.interactionEnabled) {\n eGui.classList.add(\"ag-tooltip-interactive\");\n }\n const translate = this.getLocaleTextFunc();\n const addPopupRes = this.popupSvc?.addPopup({\n eChild: eGui,\n ariaLabel: translate(\"ariaLabelTooltip\", \"Tooltip\")\n });\n if (addPopupRes) {\n this.tooltipPopupDestroyFunc = addPopupRes.hideFunc;\n }\n this.positionTooltip();\n if (this.tooltipTrigger === 1 /* FOCUS */) {\n const listener = () => this.setToDoNothing();\n [this.onBodyScrollEventCallback] = this.addManagedEventListeners({\n bodyScroll: listener\n });\n this.setEventHandlers(listener);\n }\n if (this.interactionEnabled) {\n [this.tooltipMouseEnterListener, this.tooltipMouseLeaveListener] = this.addManagedElementListeners(eGui, {\n mouseenter: this.onTooltipMouseEnter.bind(this),\n mouseleave: this.onTooltipMouseLeave.bind(this)\n });\n [this.onDocumentKeyDownCallback] = this.addManagedElementListeners(_getDocument(this.beans), {\n keydown: (e) => {\n if (!eGui.contains(e?.target)) {\n this.onKeyDown();\n }\n }\n });\n if (this.tooltipTrigger === 1 /* FOCUS */) {\n [this.tooltipFocusInListener, this.tooltipFocusOutListener] = this.addManagedElementListeners(eGui, {\n focusin: this.onTooltipFocusIn.bind(this),\n focusout: this.onTooltipFocusOut.bind(this)\n });\n }\n }\n this.eventSvc.dispatchEvent({\n type: \"tooltipShow\",\n tooltipGui: eGui,\n parentGui: this.tooltipCtrl.getGui()\n });\n this.startHideTimeout();\n }\n onTooltipMouseEnter() {\n this.isInteractingWithTooltip = true;\n this.unlockService();\n }\n onTooltipMouseLeave() {\n if (this.isTooltipFocused()) {\n return;\n }\n this.isInteractingWithTooltip = false;\n this.lockService();\n }\n onTooltipFocusIn() {\n this.isInteractingWithTooltip = true;\n }\n isTooltipFocused() {\n const tooltipGui = this.tooltipComp?.getGui();\n const activeEl = _getActiveDomElement(this.beans);\n return !!tooltipGui && tooltipGui.contains(activeEl);\n }\n onTooltipFocusOut(e) {\n const parentGui = this.tooltipCtrl.getGui();\n if (this.isTooltipFocused()) {\n return;\n }\n this.isInteractingWithTooltip = false;\n if (parentGui.contains(e.relatedTarget)) {\n this.startHideTimeout();\n } else {\n this.hideTooltip();\n }\n }\n positionTooltip() {\n const params = {\n type: \"tooltip\",\n ePopup: this.tooltipComp.getGui(),\n nudgeY: 18,\n skipObserver: this.tooltipMouseTrack\n };\n if (this.lastMouseEvent) {\n this.popupSvc?.positionPopupUnderMouseEvent({\n ...params,\n mouseEvent: this.lastMouseEvent\n });\n } else {\n this.popupSvc?.positionPopupByComponent({\n ...params,\n eventSource: this.tooltipCtrl.getGui(),\n position: \"under\",\n keepWithinBounds: true,\n nudgeY: 5\n });\n }\n }\n destroyTooltipComp() {\n this.tooltipComp.getGui().classList.add(\"ag-tooltip-hiding\");\n const tooltipPopupDestroyFunc = this.tooltipPopupDestroyFunc;\n const tooltipComp = this.tooltipComp;\n const delay = this.tooltipTrigger === 0 /* HOVER */ ? FADE_OUT_TOOLTIP_TIMEOUT : 0;\n window.setTimeout(() => {\n tooltipPopupDestroyFunc();\n this.destroyBean(tooltipComp);\n }, delay);\n this.clearTooltipListeners();\n this.tooltipPopupDestroyFunc = void 0;\n this.tooltipComp = void 0;\n }\n clearTooltipListeners() {\n for (const listener of [\n this.tooltipMouseEnterListener,\n this.tooltipMouseLeaveListener,\n this.tooltipFocusInListener,\n this.tooltipFocusOutListener\n ]) {\n if (listener) {\n listener();\n }\n }\n this.tooltipMouseEnterListener = this.tooltipMouseLeaveListener = this.tooltipFocusInListener = this.tooltipFocusOutListener = null;\n }\n lockService() {\n isLocked = true;\n this.interactiveTooltipTimeoutId = window.setTimeout(() => {\n this.unlockService();\n this.setToDoNothing();\n }, INTERACTIVE_HIDE_DELAY);\n }\n unlockService() {\n isLocked = false;\n this.clearInteractiveTimeout();\n }\n startHideTimeout() {\n this.clearHideTimeout();\n this.hideTooltipTimeoutId = window.setTimeout(this.hideTooltip.bind(this), this.getTooltipDelay(\"Hide\"));\n }\n clearShowTimeout() {\n if (!this.showTooltipTimeoutId) {\n return;\n }\n window.clearTimeout(this.showTooltipTimeoutId);\n this.showTooltipTimeoutId = void 0;\n }\n clearHideTimeout() {\n if (!this.hideTooltipTimeoutId) {\n return;\n }\n window.clearTimeout(this.hideTooltipTimeoutId);\n this.hideTooltipTimeoutId = void 0;\n }\n clearInteractiveTimeout() {\n if (!this.interactiveTooltipTimeoutId) {\n return;\n }\n window.clearTimeout(this.interactiveTooltipTimeoutId);\n this.interactiveTooltipTimeoutId = void 0;\n }\n clearTimeouts() {\n this.clearShowTimeout();\n this.clearHideTimeout();\n this.clearInteractiveTimeout();\n }\n};\n\n// packages/ag-stack/src/tooltip/agHighlightTooltipFeature.ts\nvar AgHighlightTooltipFeature = class extends AgTooltipFeature {\n constructor(ctrl, highlightTracker, beans) {\n super(ctrl, beans);\n this.highlightTracker = highlightTracker;\n this.onHighlight = this.onHighlight.bind(this);\n }\n postConstruct() {\n super.postConstruct();\n this.wireHighlightListeners();\n }\n wireHighlightListeners() {\n this.addManagedPropertyListener(\"tooltipTrigger\", ({ currentValue }) => {\n this.setTooltipMode(currentValue);\n });\n this.setTooltipMode(this.gos.get(\"tooltipTrigger\"));\n this.highlightTracker.addEventListener(\"itemHighlighted\", this.onHighlight);\n }\n onHighlight(event) {\n if (this.tooltipMode !== 1 /* FOCUS */) {\n return;\n }\n if (event.highlighted) {\n this.attemptToShowTooltip();\n } else {\n this.attemptToHideTooltip();\n }\n }\n setTooltipMode(tooltipTriggerMode = \"focus\") {\n this.tooltipMode = tooltipTriggerMode === \"focus\" ? 1 /* FOCUS */ : 0 /* HOVER */;\n }\n destroy() {\n this.highlightTracker.removeEventListener(\"itemHighlighted\", this.onHighlight);\n super.destroy();\n }\n};\n\n// packages/ag-stack/src/utils/string.ts\nvar reUnescapedHtml = /[&<>\"']/g;\nvar HTML_ESCAPES = {\n \"&\": \"&\",\n \"<\": \"<\",\n \">\": \">\",\n '\"': \""\",\n \"'\": \"'\"\n};\nfunction _toString(toEscape) {\n return toEscape?.toString().toString() ?? null;\n}\nfunction _escapeString(toEscape) {\n return _toString(toEscape)?.replace(reUnescapedHtml, (chr) => HTML_ESCAPES[chr]) ?? null;\n}\nfunction _isStringLargerThan(value, length, trim) {\n if (typeof value !== \"string\") {\n return false;\n }\n if (trim) {\n value = value.trim();\n }\n return typeof value === \"string\" && value.length > length;\n}\nfunction _isExpressionString(value) {\n return _isStringLargerThan(value, 1) && value.codePointAt(0) === 61;\n}\nfunction _camelCaseToHumanText(camelCase) {\n if (!camelCase || camelCase == null) {\n return null;\n }\n const rex = /([a-z])([A-Z])/g;\n const rexCaps = /([A-Z]+)([A-Z])([a-z])/g;\n const words = camelCase.replace(rex, \"$1 $2\").replace(rexCaps, \"$1 $2$3\").replace(/\\./g, \" \").split(\" \");\n return words.map((word) => word.substring(0, 1).toUpperCase() + (word.length > 1 ? word.substring(1, word.length) : \"\")).join(\" \");\n}\n\n// packages/ag-stack/src/tooltip/agTooltipComponent.ts\nvar AgTooltipComponent = class extends AgPopupComponent {\n constructor() {\n super({ tag: \"div\", cls: \"ag-tooltip\" });\n }\n // will need to type params\n init(params) {\n const { value } = params;\n const eGui = this.getGui();\n eGui.textContent = _toString(value);\n const locationKebabCase = params.location.replace(/([a-z])([A-Z0-9])/g, \"$1-$2\").toLowerCase();\n eGui.classList.add(`ag-${locationKebabCase}-tooltip`);\n }\n};\n\n// packages/ag-stack/src/utils/bigInt.ts\nvar _parseBigIntOrNull = (value) => {\n if (typeof value === \"bigint\") {\n return value;\n }\n let trimmed;\n if (typeof value === \"number\") {\n trimmed = value;\n } else if (typeof value === \"string\") {\n trimmed = value.trim();\n if (trimmed === \"\") {\n return null;\n }\n if (trimmed.endsWith(\"n\")) {\n trimmed = trimmed.slice(0, -1);\n }\n if (!/^[+-]?\\d+$/.test(trimmed)) {\n return null;\n }\n }\n if (trimmed == null) {\n return null;\n }\n try {\n return BigInt(trimmed);\n } catch {\n return null;\n }\n};\n\n// packages/ag-stack/src/utils/date.ts\nvar DATE_TIME_SEPARATOR = \"T\";\nvar DATE_TIME_SEPARATOR_REGEXP = new RegExp(`[${DATE_TIME_SEPARATOR} ]`);\nvar DATE_TIME_REGEXP = new RegExp(`^\\\\d{4}-\\\\d{2}-\\\\d{2}(${DATE_TIME_SEPARATOR}\\\\d{2}:\\\\d{2}:\\\\d{2}\\\\D?)?`);\nfunction _padStartWidthZeros(value, totalStringSize) {\n return value.toString().padStart(totalStringSize, \"0\");\n}\nfunction _serialiseDate(date, includeTime = true, separator = DATE_TIME_SEPARATOR) {\n if (!date) {\n return null;\n }\n let serialised = [date.getFullYear(), date.getMonth() + 1, date.getDate()].map((part) => _padStartWidthZeros(part, 2)).join(\"-\");\n if (includeTime) {\n serialised += separator + [date.getHours(), date.getMinutes(), date.getSeconds()].map((part) => _padStartWidthZeros(part, 2)).join(\":\");\n }\n return serialised;\n}\nfunction _getDateParts(d, includeTime = true) {\n if (!d) {\n return null;\n }\n if (includeTime) {\n return [\n String(d.getFullYear()),\n String(d.getMonth() + 1),\n _padStartWidthZeros(d.getDate(), 2),\n _padStartWidthZeros(d.getHours(), 2),\n `:${_padStartWidthZeros(d.getMinutes(), 2)}`,\n `:${_padStartWidthZeros(d.getSeconds(), 2)}`\n ];\n }\n return [d.getFullYear(), d.getMonth() + 1, _padStartWidthZeros(d.getDate(), 2)].map(String);\n}\nvar calculateOrdinal = (value) => {\n if (value > 3 && value < 21) {\n return \"th\";\n }\n const remainder = value % 10;\n switch (remainder) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n }\n return \"th\";\n};\nvar MONTHS = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\nvar DAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\nfunction _dateToFormattedString(date, format) {\n if (format == null) {\n return _serialiseDate(date, false);\n }\n const fullYear = _padStartWidthZeros(date.getFullYear(), 4);\n const replace = {\n YYYY: () => fullYear.slice(fullYear.length - 4, fullYear.length),\n YY: () => fullYear.slice(fullYear.length - 2, fullYear.length),\n Y: () => `${date.getFullYear()}`,\n MMMM: () => MONTHS[date.getMonth()],\n MMM: () => MONTHS[date.getMonth()].slice(0, 3),\n MM: () => _padStartWidthZeros(date.getMonth() + 1, 2),\n Mo: () => `${date.getMonth() + 1}${calculateOrdinal(date.getMonth() + 1)}`,\n M: () => `${date.getMonth() + 1}`,\n Do: () => `${date.getDate()}${calculateOrdinal(date.getDate())}`,\n DD: () => _padStartWidthZeros(date.getDate(), 2),\n D: () => `${date.getDate()}`,\n dddd: () => DAYS[date.getDay()],\n ddd: () => DAYS[date.getDay()].slice(0, 3),\n dd: () => DAYS[date.getDay()].slice(0, 2),\n do: () => `${date.getDay()}${calculateOrdinal(date.getDay())}`,\n d: () => `${date.getDay()}`\n };\n const regexp = new RegExp(Object.keys(replace).join(\"|\"), \"g\");\n return format.replace(regexp, (match) => {\n if (match in replace) {\n return replace[match]();\n }\n return match;\n });\n}\nfunction _isValidDate(value, bailIfInvalidTime = false) {\n return !!_parseDateTimeFromString(value, bailIfInvalidTime);\n}\nfunction _isValidDateTime(value) {\n return _isValidDate(value, true);\n}\nfunction _parseDateTimeFromString(value, bailIfInvalidTime = false, skipValidation) {\n if (!value) {\n return null;\n }\n if (!skipValidation && !DATE_TIME_REGEXP.test(value)) {\n return null;\n }\n const [dateStr, timeStr] = value.split(DATE_TIME_SEPARATOR_REGEXP);\n if (!dateStr) {\n return null;\n }\n const fields = dateStr.split(\"-\").map((f) => Number.parseInt(f, 10));\n if (fields.filter((f) => !isNaN(f)).length !== 3) {\n return null;\n }\n const [year, month, day] = fields;\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {\n return null;\n }\n if (!timeStr && bailIfInvalidTime) {\n return null;\n }\n if (!timeStr || timeStr === \"00:00:00\") {\n return date;\n }\n const [hours, minutes, seconds] = timeStr.split(\":\").map((part) => Number.parseInt(part, 10));\n if (hours >= 0 && hours < 24) {\n date.setHours(hours);\n } else if (bailIfInvalidTime) {\n return null;\n }\n if (minutes >= 0 && minutes < 60) {\n date.setMinutes(minutes);\n } else if (bailIfInvalidTime) {\n return null;\n }\n if (seconds >= 0 && seconds < 60) {\n date.setSeconds(seconds);\n } else if (bailIfInvalidTime) {\n return null;\n }\n return date;\n}\n\n// packages/ag-stack/src/utils/download.ts\nfunction _downloadFile(fileName, content) {\n const win = document.defaultView ?? window;\n if (!win) {\n return;\n }\n const element = document.createElement(\"a\");\n const url = win.URL.createObjectURL(content);\n element.setAttribute(\"href\", url);\n element.setAttribute(\"download\", fileName);\n element.style.display = \"none\";\n document.body.appendChild(element);\n element.dispatchEvent(\n new MouseEvent(\"click\", {\n bubbles: false,\n cancelable: true,\n view: win\n })\n );\n element.remove();\n win.setTimeout(() => {\n win.URL.revokeObjectURL(url);\n }, 0);\n}\n\n// packages/ag-stack/src/utils/fuzzyMatch.ts\nfunction _fuzzySuggestions(params) {\n const { inputValue, allSuggestions, hideIrrelevant, maxSuggestions } = params;\n let thisSuggestions = (allSuggestions ?? []).map(\n (text, idx) => ({\n value: text,\n relevance: _getLevenshteinSimilarityDistance(inputValue, text),\n idx\n })\n );\n thisSuggestions.sort((a, b) => a.relevance - b.relevance);\n if (hideIrrelevant) {\n thisSuggestions = thisSuggestions.filter(\n (suggestion) => suggestion.relevance < Math.max(suggestion.value.length, inputValue.length)\n );\n }\n if (maxSuggestions != null && maxSuggestions > 0) {\n thisSuggestions = thisSuggestions.slice(0, maxSuggestions);\n }\n const values = [];\n const indices = [];\n for (const suggestion of thisSuggestions) {\n values.push(suggestion.value);\n indices.push(suggestion.idx);\n }\n return { values, indices };\n}\nfunction _getLevenshteinSimilarityDistance(source, target) {\n const sourceLength = source.length;\n const targetLength = target.length;\n if (targetLength === 0) {\n return sourceLength ? sourceLength : 0;\n }\n let inputLower = source.toLocaleLowerCase();\n let targetLower = target.toLocaleLowerCase();\n let swapTmp;\n if (sourceLength > 0) {\n const substringPos = targetLower.indexOf(inputLower);\n if (substringPos >= 0) {\n return substringPos * 0.01;\n }\n }\n if (source.length < target.length) {\n swapTmp = targetLower;\n targetLower = inputLower;\n inputLower = swapTmp;\n swapTmp = target;\n target = source;\n source = swapTmp;\n }\n let previousRow = new Uint16Array(targetLength + 1);\n let currentRow = new Uint16Array(targetLength + 1);\n for (let j = 0; j <= targetLength; j++) {\n previousRow[j] = j;\n }\n let secondaryScore = 0;\n const earlyMatchLimit = sourceLength / 2 - 10;\n for (let i = 1; i <= sourceLength; i++) {\n const inputChar = source[i - 1];\n const inputCharLower = inputLower[i - 1];\n currentRow[0] = i;\n for (let j = 1; j <= targetLength; j++) {\n const targetChar = target[j - 1];\n const targetCharLower = targetLower[j - 1];\n if (inputCharLower !== targetCharLower) {\n const insertCost = currentRow[j - 1];\n const deleteCost = previousRow[j];\n const replaceCost = previousRow[j - 1];\n let cost = insertCost < deleteCost ? insertCost : deleteCost;\n if (replaceCost < cost) {\n cost = replaceCost;\n }\n currentRow[j] = cost + 1 | 0;\n continue;\n }\n secondaryScore++;\n if (inputChar === targetChar) {\n secondaryScore++;\n }\n if (i > 1 && j > 1) {\n const prevSourceChar = source[i - 2];\n const prevSourceCharLower = inputLower[i - 2];\n const prevTargetChar = target[j - 2];\n const prevTargetCharLower = targetLower[j - 2];\n if (prevSourceCharLower === prevTargetCharLower) {\n secondaryScore++;\n if (prevSourceChar === prevTargetChar) {\n secondaryScore++;\n }\n }\n }\n if (i < earlyMatchLimit) {\n secondaryScore++;\n }\n currentRow[j] = previousRow[j - 1];\n }\n swapTmp = previousRow;\n previousRow = currentRow;\n currentRow = swapTmp;\n }\n return previousRow[targetLength] / (secondaryScore + 1);\n}\n\n// packages/ag-stack/src/utils/keyboard.ts\nfunction _isEventFromPrintableCharacter(event) {\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return false;\n }\n const printableCharacter = event.key?.length === 1;\n return printableCharacter;\n}\n\n// packages/ag-stack/src/utils/value.ts\nfunction _getValueUsingDotField(data, field) {\n const fields = field.split(\".\");\n let currentObject = data;\n for (let i = 0; i < fields.length; i++) {\n if (currentObject == null) {\n return void 0;\n }\n currentObject = currentObject[fields[i]];\n }\n return currentObject;\n}\nexport {\n AgBeanStub,\n AgComponentStub,\n AgContext,\n AgHighlightTooltipFeature,\n AgManagedFocusFeature,\n AgPopupComponent,\n AgPositionableFeature,\n AgPromise,\n AgTabGuardComp,\n AgTabGuardCtrl,\n AgTabGuardFeature,\n AgTooltipComponent,\n AgTooltipFeature,\n AutoScrollService,\n BaseAriaAnnouncementService,\n BaseDragAndDropService,\n BaseDragService,\n BaseEnvironment,\n BaseEventService,\n BasePopupService,\n BaseRegistry,\n BaseTooltipStateManager,\n CssClassManager,\n Direction,\n FOCUS_MANAGED_CLASS,\n KeyCode,\n LocalEventService,\n MONTHS,\n RefPlaceholder,\n TabGuardClassNames,\n ThemeImpl,\n _addOrRemoveAttribute,\n _addStylesToElement,\n _anchorElementToMouseMoveEvent,\n _areEqual,\n _areEventsNear,\n _asThemeImpl,\n _batchCall,\n _camelCaseToHumanText,\n _clearElement,\n computeAlignedPosition as _computeAlignedPosition,\n _createAgElement,\n _createStyledRootElements,\n _dateToFormattedString,\n _debounce,\n _defaultComparator,\n _doOnce,\n _downloadFile,\n _ensureDomOrder,\n _escapeString,\n _exists,\n findBestPlacement as _findBestPlacement,\n _findFocusableElements,\n _findNextFocusableElement,\n _findTabbableParent,\n fitsWithinBounds as _fitsWithinBounds,\n _flatten,\n _focusInto,\n _formatSize,\n _fuzzySuggestions,\n _getAbsoluteHeight,\n _getAbsoluteWidth,\n _getActiveDomElement,\n _getAriaCheckboxStateName,\n _getAriaLabel,\n _getAriaPosInSet,\n _getDateParts,\n _getDocument,\n getEffectivePlacements as _getEffectivePlacements,\n _getElementSize,\n _getFirstActiveTouch,\n _getInnerHeight,\n _getInnerWidth,\n _getLocaleTextFromFunc,\n _getLocaleTextFromMap,\n _getLocaleTextFunc,\n _getMaxDivHeight,\n _getPageBody,\n getRectSize as _getRectSize,\n _getRootNode,\n _getScrollLeft,\n _getScrollbarWidth,\n _getTabIndex,\n _getValueUsingDotField,\n _getWindow,\n _indexMap,\n _initDetachedStyledRoot,\n _initStyledRoot,\n _initStyledRootFromInnerOfThreeElements,\n _isBrowserFirefox,\n _isBrowserSafari,\n _isComponent,\n _isElementChildOfClass,\n _isElementInEventPath,\n _isElementOverflowingCallback,\n _isEventFromPrintableCharacter,\n _isEventFromThisInstance,\n _isEventSupported,\n _isExpressionString,\n _isFocusableFormField,\n _isHorizontalScrollShowing,\n _isIOSUserAgent,\n _isInDOM,\n _isInvisibleScrollbar,\n _isKeyboardMode,\n _isMacOsUserAgent,\n _isNodeOrElement,\n _isNothingFocused,\n _isPromise,\n _isStringLargerThan,\n _isValidDate,\n _isValidDateTime,\n _isVisible,\n _jsonEquals,\n _last,\n _loadTemplate,\n _makeNull,\n _missing,\n _moveInArray,\n _normaliseQwertyAzerty,\n _observeResize,\n _parseBigIntOrNull,\n _parseDateTimeFromString,\n _placeCaretAtEnd,\n _pushToMapArray,\n _radioCssClass,\n _registerKeyboardFocusEvents,\n _removeAllFromArray,\n _removeAriaExpanded,\n _removeAriaSort,\n _removeFromArray,\n _removeFromParent,\n _requestAnimationFrame,\n _reuseArrayIfEqual,\n _scrollHorizontallyToShow,\n _serialiseDate,\n _setAriaActiveDescendant,\n _setAriaAutoComplete,\n _setAriaChecked,\n _setAriaColCount,\n _setAriaColIndex,\n _setAriaColSpan,\n _setAriaControls,\n _setAriaControlsAndLabel,\n _setAriaDescribedBy,\n _setAriaDisabled,\n _setAriaExpanded,\n _setAriaHasPopup,\n _setAriaHidden,\n _setAriaInvalid,\n _setAriaLabel,\n _setAriaLabelledBy,\n _setAriaLevel,\n _setAriaLive,\n _setAriaMultiSelectable,\n _setAriaOrientation,\n _setAriaPosInSet,\n _setAriaRole,\n _setAriaRowCount,\n _setAriaRowIndex,\n _setAriaRowSpan,\n _setAriaSelected,\n _setAriaSetSize,\n _setAriaSort,\n _setDisabled,\n _setDisplayed,\n _setDomChildOrder,\n _setElementWidth,\n _setFixedHeight,\n _setFixedWidth,\n _setScrollLeft,\n _setVisible,\n _symmetricDiff,\n _throttle,\n toRelativeRect as _toRelativeRect,\n _toString,\n _toStringOrNull,\n _translate,\n _waitUntil,\n accentColor,\n accentMix,\n addTempEventHandlers,\n backgroundColor,\n clearTempEventHandlers,\n colorValueToCss,\n createPart,\n createSharedTheme,\n defaultFontFamily,\n defaultLightColorSchemeParams,\n fontFamilyValueToCss,\n fontWeightValueToCss,\n foregroundBackgroundMix,\n foregroundColor,\n foregroundHeaderBackgroundMix,\n foregroundMix,\n getParamType,\n imageValueToCss,\n paramToVariableName,\n paramValueToCss,\n preventEventDefault,\n sharedDefaults\n};\n"],"names":["KeyCode","BACKSPACE","TAB","ENTER","ESCAPE","SPACE","LEFT","UP","RIGHT","DOWN","DELETE","F2","PAGE_UP","PAGE_DOWN","PAGE_HOME","PAGE_END","A","C","D","V","X","Y","Z","_normaliseQwertyAzerty","keyboardEvent","keyCode","code","VERSION","IS_SSR","window","document","fonts","forEach","_injectGlobalCSS","rawCss","styleContainer","debugId","layer","priority","nonce","isParams","injectedCss","CSS","escape","replaceAll","injections","injectionState","map","get","set","some","i","el","createElement","setAttribute","dataset","agCss","agCssVersion","textContent","newInjection","insertAfter","injection","after","index","indexOf","splice","nodeName","insertBefore","querySelector","push","_injectCoreAndModuleCSS","moduleCss","css","singleCss","removeStaleParamsCss","deleteAll","neededCss","Set","gs","grids","values","add","paramsCss","length","has","remove","getInjectionState","versionMap","globalThis","agStyleInjectionVersions","Map","state","WeakMap","paramsId","createPart","args","PartImpl","defaultModeName","partCounter","constructor","feature","params","modeParams","cssImports","this","use","inject","_inject","className","cssImport","JSON","stringify","class","AgPromise","_AgPromise","callback","status","resolution","waiters","value","onDone","onReject","all","promises","resolve","remainingToResolve","combinedValues","Array","promise","then","func","waiter","_","Direction","Direction2","LocalEventService","allSyncListeners","allAsyncListeners","globalSyncListeners","globalAsyncListeners","asyncFunctionsQueue","scheduled","firedEvents","setFrameworkOverrides","frameworkOverrides","getListeners","eventType","async","autoCreateListenerCollection","listenerMap","listeners","noRegisteredListenersExist","size","addEventListener","listener","removeEventListener","delete","addGlobalListener","getGlobalListeners","removeGlobalListener","dispatchEvent","event","dispatchToListeners","type","dispatchEventOnce","browserEvent","Event","eventPath","composedPath","runCallback","wrapIncoming","dispatchAsync","originalListeners","globalListenersSrc","globalListeners","flush","setTimeout","flushAsyncQueue","bind","queueCopy","slice","_last","arr","len","_areEqual","a","b","comparator","valueA","valueB","_reuseArrayIfEqual","prev","current","_removeFromArray","array","object","_removeAllFromArray","elementsToRemove","removeLen","j","removeSet","_moveInArray","objectsToMove","toIndex","objectsToMoveLen","_symmetricDiff","leftLen","rightLen","diff","item","from","_pushToMapArray","key","bucket","_indexMap","_makeNull","_exists","_missing","_toStringOrNull","toString","_jsonEquals","val1","val2","_defaultComparator","accentedCompare","toNumber","localeCompare","_getRootNode","beans","eRootDiv","getRootNode","_getActiveDomElement","activeElement","_getDocument","gos","result","optionsGetDocument","ownerDocument","_isNothingFocused","activeEl","body","_getWindow","defaultView","_getPageBody","targetEl","rootNode","fullscreenElement","ShadowRoot","Document","documentElement","_toggleAriaAttribute","element","attribute","_removeAriaAttribute","_setAriaAttribute","_ariaAttributeName","removeAttribute","_setAriaRole","role","_getAriaLabel","getAttribute","_setAriaLabel","label","_setAriaLabelledBy","labelledBy","_setAriaLive","live","_setAriaInvalid","invalid","_setAriaDisabled","disabled","_setAriaHidden","hidden","_setAriaExpanded","expanded","_setAriaSetSize","setsize","_setAriaPosInSet","position","_setAriaMultiSelectable","multiSelectable","_setAriaRowCount","rowCount","_setAriaRowIndex","rowIndex","_setAriaRowSpan","spanCount","_setAriaColCount","colCount","_setAriaColIndex","colIndex","_setAriaColSpan","colSpan","_setAriaSort","sort","_removeAriaSort","_setAriaSelected","selected","_setAriaControlsAndLabel","controllerElement","controlledElement","controlledId","_setAriaControls","id","_setAriaOwns","ownerElement","ownedId","_getAriaCheckboxStateName","translate","FOCUSABLE_EXCLUDE","_isFocusableFormField","matches","_isVisible","_setDisplayed","displayed","options","skipAriaHidden","classList","toggle","_setDisabled","attributeName","addOrRemoveDisabledAttribute","e","inputs","querySelectorAll","input","_isElementChildOfClass","cls","maxNest","counter","contains","parentElement","_getElementSize","height","width","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","paddingTop","paddingRight","paddingBottom","paddingLeft","marginTop","marginRight","marginBottom","marginLeft","boxSizing","getComputedStyle","pf","Number","parseFloat","_getInnerHeight","_getInnerWidth","_getAbsoluteHeight","Math","floor","_getAbsoluteWidth","_getElementRectWithOffset","offsetElementRect","getBoundingClientRect","top","left","right","bottom","_getScrollLeft","rtl","scrollLeft","abs","_setScrollLeft","_clearElement","firstChild","_removeFromParent","node","parentNode","_isInDOM","offsetParent","checkVisibility","checkVisibilityCSS","visibility","_loadTemplate","template","tempDiv","innerHTML","trim","_ensureDomOrder","eContainer","eChild","eChildBefore","nextSibling","appendChild","prepend","_setDomChildOrder","orderedChildren","correctCellAtIndex","actualCellAtIndex","children","_camelCaseToHyphenated","camelCase","replace","s","toLocaleLowerCase","_addStylesToElement","eElement","styles","Object","keys","parsedKey","valueAsString","parsedValue","style","setProperty","_isElementOverflowingCallback","getElement","_isHorizontalScrollShowing","clientHeight","scrollHeight","_isVerticalScrollShowing","clientWidth","scrollWidth","_setElementWidth","removeProperty","flex","_setFixedWidth","_formatSize","maxWidth","minWidth","_setFixedHeight","maxHeight","minHeight","_isNodeOrElement","o","Node","HTMLElement","_addOrRemoveAttribute","name","_placeCaretAtEnd","contentElement","isContentEditable","selection","getSelection","range","createRange","selectNodeContents","collapse","removeAllRanges","addRange","_observeResize","ResizeObserverImpl","ResizeObserver","resizeObserver","observe","disconnect","_requestAnimationFrame","win","requestAnimationFrame","webkitRequestAnimationFrame","whitespaceNode","DataRefAttribute","getWhitespaceNode","createTextNode","cloneNode","_createAgElement","attrs","ref","tag","addFirstWhitespace","child","append","PASSIVE_EVENTS","NON_PASSIVE_EVENTS","supports","_isEventSupported","tags","select","change","submit","reset","error","load","abort","eventName","_isElementInEventPath","eventNoType","path","res","pointer","target","_createEventPath","_getEventPath","getPassiveStateForEvent","isPassive","includes","isNonPassive","_areEventsNear","e1","e2","pixelCount","diffX","clientX","diffY","clientY","max","_getFirstActiveTouch","touch","touchList","identifier","_isEventFromThisInstance","isElementInThisInstance","_anchorElementToMouseMoveEvent","mouseMoveEvent","browserWidth","innerWidth","_getBodyWidth","browserHeight","innerHeight","_getBodyHeight","offsetParentSize","eDocument","windowScrollY","pageYOffset","scrollTop","windowScrollX","pageXOffset","addTempEventHandlers","list","handlers","handler","eventListener","clearTempEventHandlers","preventEventDefault","cancelable","preventDefault","defaultLocaleTextFunc","_key","defaultValue","_getLocaleTextFunc","localeSvc","getLocaleTextFunc","_translate","bean","localeValues","variableValues","_getLocaleTextFromFunc","getLocaleText","_getLocaleTextFromMap","localeText","localisedText","found","DESTROYED_EVENT","AgBeanStub","eventSvc","destroyed","localEventService","stubContext","destroyFunctions","propertyListenerId","lastChangeSetIdLookup","preWireBeans","context","destroy","dispatchLocalEvent","addManagedElementListeners","_setupListeners","addManagedEventListeners","addManagedListeners","destroyFuncs","k","_setupListener","destroyFunc","__addEventListener","isAgEventEmitter","__removeEventListener","objIsEventService","eventServiceType","isEventService","passive","_addSafePassiveEventListener","addListener","removeListener","registerDestroyFunc","setupPropertyListener","addPropertyEventListener","removePropertyEventListener","addManagedPropertyListener","addManagedPropertyListeners","events","eventsKey","join","wrappedListener","changeSet","lookup","propertiesChangeEvent","source","isAlive","pushDestroyFunc","addDestroyFunc","createOptionalManagedBean","createManagedBean","createBean","destroyBean","afterPreCreateCallback","destroyBeans","prototype","__v_skip","RefPlaceholder","_isComponent","getGui","CssClassManager","cssClassStates","toggleCss","addOrRemove","split","compIdSequence","AgComponentStub","templateOrParams","componentSelectors","super","suppressDataRefValidation","visible","compId","cssManager","eGui","comp","selector","setTemplate","preConstruct","wireTemplate","addGlobalCss","paramsMap","applyElementsToComponent","createChildComponentsFromTags","getCompId","getDataRefAttribute","elementRef","newComponent","usedAsParamRef","Error","childNodeList","childNode","childNodes","childComp","createComponentFromElement","childComp2","childGui","attr","attributes","addItems","items","call","swapComponentForNode","isAgGridComponent","componentSelector","componentParams","component","setParentComponent","eComponent","replaceChild","createComment","activateTabIndex","elements","overrideTabIndex","tabIndex","setTemplateFromElement","components","getFocusableElement","getAriaElement","parentComponent","getParentComponent","setGui","queryForHtmlElement","cssSelector","getContainerAndElement","newChild","container","parent","prependChild","isDisplayed","setVisible","_setVisible","setDisplayed","addGuiEventListener","addCss","removeCss","registerCSS","globalCssAdded","isArray","getPrototypeOf","environment","addGlobalCSS","Symbol","contextId","AgContext","createdBeans","instanceId","beanClasses","beanDestroyComparator","init","destroyCallback","beanName","providedBeanInstances","BeanClass","instance","console","beanFunc","derivedBeans","beanInitComparator","initBeans","getBeanInstances","beanInstances","wireBeans","postConstruct","getBeans","getBean","getId","isDestroyed","doOnceSet","_doOnce","_set","batchedCallsSetTimeout","pending","funcs","batchedCallsRaf","_batchCall","mode","batch","runBatch","funcsCopy","func2","_debounce","delay","timeout","clearTimeout","apply","_throttle","wait","previousCall","currentCall","Date","now","_waitUntil","condition","timeStamp","interval","executed","clearWait","clearInterval","internalCallback","reachedTimeout","setInterval","BaseAriaAnnouncementService","descriptionContainer","pendingAnnouncements","lastAnnouncement","updateAnnouncement","div","atomic","_setAriaAtomic","announceValue","clear","handleAnnouncementUpdate","valueToAnnounce","_initStyledRoot","env","outer","inner","_createStyledRootElements","_initStyledRootFromInnerOfThreeElements","_initDetachedStyledRoot","firstElementChild","postApplyClasses","middle","applyClasses","inheritClass","applyClass","directionClass","getStyledRootClasses","onThemeChanged","isSafari","isFirefox","isMacOs","isIOS","invisibleScrollbar","browserScrollbarWidth","maxDivHeight","activePointerDrags","handledDragEvents","BaseDragAndDropService","arguments","dragSourceAndParamsList","dragItem","dragInitialSourcePointerOffsetX","dragInitialSourcePointerOffsetY","lastMouseEvent","lastDraggingEvent","dragSource","dragImageCompPromise","dragImageComp","dragImageLastIcon","dragImageLastLabel","dropTargets","externalDropZoneCount","lastDropTarget","addDragSource","allowTouch","entry","capturePointer","dragStartPixels","onDragStart","mouseEvent","onDragStop","onDragging","onDragCancel","includeTouch","dragSvc","setDragImageCompIcon","iconName","shake","setIcon","removeDragSource","sourceAndParams","clearDragAndDropProperties","nudge","getDragItem","rect","onDragStarted","createAndUpdateDragImageComp","onDragStopped","dragEndEvent","dropTargetEvent","onDragCancelled","dragCancelEvent","fromNudge","positionDragImageComp","dropTarget","findCurrentDropTarget","needUpdate","dragLeaveEvent","onDragLeave","handleEnter","handleExit","dragEnterEvent","onDragEnter","dragMoveEvent","changed","updateDragImageComp","removeDragImageComp","getAllContainersFromDropTarget","primaryContainer","getContainer","secondaryContainers","getSecondaryContainers","secondaryContainersLen","containers","isMouseOnDropTarget","allContainersFromDropTarget","mouseOverTarget","allContainersIntersect","mouseEvent2","horizontalFit","verticalFit","currentContainers","targetContainsSource","isInterestedIn","validDropTargets","len2","elementStack","elementsFromPoint","stackLen","targetIndex","targetsLen","containerGroups","matched","groupIdx","groupLen","group","elIdx","elLen","addDropTarget","external","removeDropTarget","writeIndex","readIndex","hasExternalDropZones","findExternalZone","zone","dropZoneTarget","xDir","yDir","draggingEvent","createEvent","x","y","vDirection","hDirection","initialSourcePointerOffsetX","initialSourcePointerOffsetY","gui","createDragImageComp","oldDragImageComp","appendDragImageComp","zIndex","hasPointerCapture","pointerEvents","setInstanceDomData","warnNoBody","getIconName","dragItemName","setLabel","tryPointerCapture","pointerId","setPointerCapture","removeLostHandler","capture","onLost","pointerLostHandler","pointerEvent","_isBrowserSafari","test","navigator","userAgent","_isBrowserFirefox","_isMacOsUserAgent","platform","_isIOSUserAgent","maxTouchPoints","_getTabIndex","numberTabIndex","_getMaxDivHeight","testUpTo","_getScrollbarWidth","initScrollbarWidthAndVisibility","opacity","overflow","msOverflowStyle","offsetWidth","_isInvisibleScrollbar","PASSIVE_TRUE","PASSIVE_FALSE","addHandledDragEvent","WeakSet","BaseDragService","dragging","drag","dragSources","startTarget","start","isPointer","pointerCapture","cancelDrag","destroyDragSourceEntry","oldTouchAction","touchAction","onPointerDown","onMouseDown","suppressTouch","touchEvent","onTouchStart","destroyDrag","shouldPreventMouseEvent","getEventTargetElement","initDrag","onScroll","rootEl","ev","onKeyDown","releasePointerCapture","pointerType","stopPropagationForTouch","stopPropagation","isPrimary","button","pointerDrag","Dragging","dragPreventEventDefault","draggingPreventDefault","onMouseOrPointerUp","onMouseOrPointerMove","touchDrag","touches","touchEndEvent","onTouchUp","touchCancelEvent","onTouchCancel","onTouchMove","onMove","mouseDrag","lastDrag","changedTouches","currentEvent","PointerEvent","onUp","eventOrTouch","Element","paramToVariableName","paramName","str","m","toLowerCase","paramToVariableExpression","accentMix","mix","foregroundMix","foregroundBackgroundMix","onto","foregroundHeaderBackgroundMix","backgroundColor","foregroundColor","accentColor","defaultLightColorSchemeParams","borderColor","chromeBackgroundColor","browserColorScheme","defaultFontFamily","sharedDefaults","textColor","invalidColor","fontFamily","subtleTextColor","borderWidth","borderRadius","spacing","fontSize","fontWeight","focusShadow","spread","color","focusErrorShadow","popupShadow","cardShadow","dropdownShadow","listItemHeight","calc","dragAndDropImageBackgroundColor","dragAndDropImageBorder","dragAndDropImageNotAllowedBorder","dragAndDropImageShadow","iconSize","iconColor","toggleButtonWidth","toggleButtonHeight","toggleButtonOnBackgroundColor","toggleButtonOffBackgroundColor","toggleButtonSwitchBackgroundColor","toggleButtonSwitchInset","tooltipBackgroundColor","tooltipErrorBackgroundColor","tooltipTextColor","tooltipErrorTextColor","tooltipBorder","tooltipErrorBorder","panelBackgroundColor","panelTitleBarHeight","panelTitleBarBackgroundColor","panelTitleBarIconColor","panelTitleBarTextColor","panelTitleBarFontFamily","panelTitleBarFontSize","panelTitleBarFontWeight","panelTitleBarBorder","pickerFieldHeight","dialogShadow","dialogBorder","widgetContainerHorizontalPadding","widgetContainerVerticalPadding","widgetHorizontalSpacing","widgetVerticalSpacing","dataFontSize","headerBackgroundColor","headerFontFamily","headerFontSize","headerFontWeight","headerTextColor","headerHeight","headerVerticalPaddingScale","menuBorder","menuBackgroundColor","menuTextColor","menuShadow","menuSeparatorColor","paramTypes","getParamType","fn","memoize","param","find","endsWith","literalToCSS","String","colorValueToCss","colorExpr","min","clamp","lengthValueToCss","p","borderValueToCss","borderStyleValueToCss","shadowValueParamsToCss","offsetX","offsetY","radius","inset","fontFamilyValueToCss","quoteUnsafeChars","googleFont","font","imageValueToCss","url","encodeURIComponent","svg","paramValidators","colorScheme","scale","border","borderStyle","shadow","image","duration","themeLogger","warn","paramValueToCss","createSharedTheme","overridePrefix","ThemeImpl","_ThemeImpl","parts","withPart","part","preInitErr","withoutPart","withParams","_startUse","cssLayer","loadThemeGoogleFonts","uninstallLegacyCSS","googleFontsUsed","getGoogleFontsUsed","loadGoogleFont","_getCssClasses","_cssClassCache","_getParamsClassName","deduplicatePartsByFeature","filter","Boolean","concat","_getClassNamesId","_classNamesId","inherit","_getModeParams","paramsCache","_paramsCache","mergedModeParams","partMode","partParams","mergedParams","partParamNames","partParamName","partParamValue","mergedMode","mergedParams2","_getParamsCss","_paramsCssCache","variablesCss","inheritanceCss","cssOverridePrefix","escapedMode","wrapPrefix","cssValue","cssName","overrideName","inheritedName","lastPartByFeature","theme","visitParamValue","paramValue","flatMap","mv","uninstalledLegacyCSS","head","googleFontsDomain","LIST_ITEM_HEIGHT","changeKey","BaseEnvironment","sizeEls","lastKnownValues","sizesMeasured","globalCSS","themeStyleContainer","hasShadowRootGlobal","isShadowRoot","eStyleContainer","warnOnAttachToShadowRoot","shadowRootError","styleNonce","handleThemeChange","mutationObserver","MutationObserver","fireStylesChangedEvent","initStyledRoot","getSizeEl","initVariables","_unregisterInstanceUsingThemingAPI","getLegacyThemeClasses","themeClasses","isThemeEl","startsWith","attributeFilter","themeChanged","getDefaultListItemHeight","getCSSVariablePixelValue","variable","cached","measurement","measureSizeEl","cacheDefault","sizeEl","newSize","NO_VALUE_SENTINEL","getMeasurementContainer","eMeasurementContainer","setSizeElStyles","noWarn","lastMeasurement","varError","unsubscribe","newMeasurement","oldTheme","themeProperty","newTheme","themeOrDefault","getDefaultTheme","themeError","handleNewTheme","postProcessThemeChange","additionalCss","getAdditionalCss","paramsDebugId","gridState","_useParamsCss","errorCallback","onDestroy","retries","isConnected","BaseRegistry","registerDynamicBeans","dynamicBeans","createDynamicBean","mandatory","getDynamicError","BaseEventService","globalSvc","addCommon","keyboardModeActive","instanceCount","toggleKeyboardMode","isKeyboardActive","isKeyboardEvent","ctrlKey","metaKey","altKey","_registerKeyboardFocusEvents","doc","removeKeyboardModeEvents","_isKeyboardMode","_findFocusableElements","exclude","onlyUnmanaged","excludeString","nodes","excludeNodes","_focusInto","up","excludeTabGuards","focusableElements","toFocus","focus","preventScroll","_findNextFocusableElement","onlyManaged","backwards","focusable","currentIndex","findIndex","nextIndex","_findTabbableParent","limit","_scrollHorizontallyToShow","_canScrollHorizontally","parentEl","c","t","overflowX","AgManagedFocusFeature","eFocusable","stopPropagationCallbacks","isStopPropagation","callbacks","shouldStopEventPropagation","onTabKeyDown","defaultPrevented","nextRoot","shiftKey","onFocusIn","onFocusOut","addKeyDownListeners","focusin","focusout","keydown","handleKeyDown","TabGuardClassNames","AgTabGuardCtrl","skipTabGuardFocus","forcingFocusOut","allowFocus","eTopGuard","eBottomGuard","focusTrapActive","forceFocusOutWhenTabGuardsAreEmpty","isFocusableContainer","focusInnerElement","isEmpty","eFocusableElement","providedFocusInnerElement","providedFocusIn","providedFocusOut","providedShouldStopEventPropagation","providedOnTabKeyDown","providedHandleKeyDown","providedIsEmpty","activateTabGuards","guard","onFocus","tabGuardsAreActive","hasAttribute","setTabIndex","deactivateTabGuards","relatedTarget","findNextElementOutsideAndFocus","fromBottom","focusableEls","end","focusableRange","targetTabIndex","indexA","parseInt","indexB","getNextFocusableElement","forceFocusOutOfContainer","tabGuardToFocus","isTabGuard","setAllowFocus","AgTabGuardFeature","initialiseTabGuard","createTabGuard","tabGuards","compProxy","tabGuard","addTabGuards","tabGuardCtrl","getTabGuardCtrl","side","topTabGuard","bottomTabGuard","removeAllChildrenExceptTabGuards","before","AgTabGuardComp","tabGuardFeature","AgPopupComponent","isPopup","parentComp","hasParent","toRelativeRect","parentRect","computeAlignedPosition","referenceRect","targetSize","alignment","gap","targetAnchor","refAnchor","getAnchorPoint","offset","anchor","gapDir","th","anchorH","rh","tv","anchorV","rv","dx","sign","dy","getGapDirection","cx","cy","ch","lastTooltipHideTime","instanceIdSeq","BasePopupService","popupList","getPopupParent","ePopupParent","getDefaultPopupParent","positionPopupUnderMouseEvent","ePopup","nudgeX","nudgeY","skipObserver","positionPopup","keepWithinBounds","updatePosition","calculatePointerAlign","postProcessCallback","callPostProcessPopup","additionalParams","getParentRect","positionPopupByComponent","eventSource","alignSide","sourceRect","setAlignedTo","relativeRect","offsetHeight","setAlignedStyles","shouldRenderUnderOrAbove","pos","positionPopupForMenu","minWidthSet","keepXYWithinBounds","maxX","rightX","leftX","KeyboardEvent","targetCompRect","spaceAvailableUnder","spaceAvailableAbove","spaceRequired","positioned","popupIdx","getPopupIndex","popup","alignedToElement","positions","lastSize","updatePopupPosition","fromResizeObserver","resizeObserverDestroyFunc","popupParent","direction","isVertical","sizeProperty","anchorProperty","offsetProperty","scrollPositionProperty","docElement","popupRect","documentRect","isBody","offsetSize","ceil","sizeOfParent","addPopup","ariaLabel","ariaOwns","alwaysOnTop","positionCallback","anchorToElement","hideFunc","initialisePopupPosition","wrapperEl","setAlwaysOnTop","bringPopupToFront","removeListeners","addEventListenersToPopup","addPopupToPopupList","ePopupParentRect","popupEl","closedCallback","afterGuiAttached","closeOnEsc","modal","popupHidden","hidePopupOnKeyboardEvent","hidePopupOnMouseEvent","hidePopupOnTouchEvent","popupParams","forceHide","isEventFromCurrentPopup","removePopupFromPopupList","hidePopup","isAnchored","setPopupPositionRelatedToElement","relativeElement","popupIndex","stopAnchoringPromise","destroyPositionTracker","keepPopupPositionedRelativeTo","eParent","extractFromPixelValue","pxSize","substring","createPosition","prop","initialDiff","initial","lastDiff","last","topPosition","leftPosition","fwOverrides","action","pRect","sRect","calculateNewPosition","currentDiff","newValue","intervalId","indexOfThisChild","isElementWithinCustomPopup","getWrapper","getPopupRoot","popupRoot","eWrapper","popupLen","standardPopupList","alwaysOnTopList","innerElsScrollMap","onTopLength","targetList","currentPopup","innerEls","currentEl","pop","RESIZE_CONTAINER_STYLE","makeDiv","dataRefPrefix","classSuffix","RESIZE_TEMPLATE","AgPositionableFeature","config","dragStartPosition","resizersAdded","resizeListeners","boundaryEl","isResizing","isMoving","resizable","movable","currentResizer","popupSvc","center","getWidth","getHeight","offsetElement","initialisePosition","centered","forcePopupParentAsOffsetParent","setOffsetParent","computedMinHeight","computedMinWidth","isElementVisible","findBoundaryElement","offsetParentComputedStyles","paddingWidth","paddingHeight","setWidth","setHeight","refreshSize","initialisedDuringPositioning","isNaN","setPosition","isPositioned","getPosition","setMovable","moveElement","moveElementDragListener","onMoveStart","onMoveEnd","setResizable","clearResizeListeners","addResizers","removeResizers","topLeft","topRight","bottomRight","bottomLeft","isSideResizable","resizerEl","getResizerElement","onResizeStart","onResize","onResizeEnd","removeSizeFromEl","restoreLastSize","isPercent","availableHeight","getAvailableHeight","elRect","offsetParentRect","yPosition","parentTop","additionalHeight","xPosition","isResizable","constrainSizeToAvailableHeight","constrain","applyMaxHeightToElement","resizeObserverSubscriber","updateDragStartPosition","calculateMouseMovement","isLeft","isTop","anywhereWithin","topBuffer","xDiff","yDiff","movementX","shouldSkipX","movementY","shouldSkipY","boundaryElRect","skipX","skipY","createResizeMap","resizerMap","match","isRight","isBottom","applySizeToSiblings","getSiblings","getMinSizeOfSiblings","siblings","isFlex","nextHeight","nextWidth","computedStyle","vertical","containerToFlex","isHorizontal","offsetLeft","offsetTop","oldWidth","newWidth","skipWidth","oldHeight","newHeight","skipHeight","calculateTopBuffer","AutoScrollService","tickingInterval","onScrollCallback","scrollContainer","scrollHorizontally","scrollAxis","scrollVertically","scrollByTick","getVerticalPosition","setVerticalPosition","getHorizontalPosition","setHorizontalPosition","shouldSkipVerticalScroll","shouldSkipHorizontalScroll","getTopOffset","getBottomOffset","scrolling","check","forceSkipVerticalScroll","skipVerticalScroll","skipHorizontalScroll","scrollTick","topOffset","bottomOffset","tickLeft","tickRight","tickUp","tickDown","ensureTickingStarted","ensureCleared","doTick","tickCount","tickAmount","vScrollPosition","hScrollPosition","AgTooltipFeature","ctrl","refreshTooltip","setBrowserTooltip","tooltip","allowEmptyString","updateTooltipText","getTooltipValue","createTooltipFeatureIfNeeded","tooltipManager","registry","attemptToShowTooltip","prepareToShowTooltip","attemptToHideTooltip","hideTooltip","setTooltipAndRefresh","clearWithEmptyString","browserTooltips","isLocked","BaseTooltipStateManager","tooltipCtrl","interactionEnabled","isInteractingWithTooltip","tooltipInstanceCount","tooltipMouseTrack","tooltipTrigger","getTooltipTrigger","mouseenter","onMouseEnter","mouseleave","onMouseLeave","mousemove","onMouseMove","mousedown","getGridOptionsTooltipDelay","delayOption","getTooltipDelay","setToDoNothing","trigger","interactiveTooltipTimeoutId","unlockService","startHideTimeout","showTooltipTimeoutId","tooltipComp","positionTooltip","lockService","parentCompGui","tooltipGui","isLastTooltipHiddenRecently","showTooltip","fromHideTooltip","onBodyScrollEventCallback","clearEventHandlers","onDocumentKeyDownCallback","clearTimeouts","shouldDisplayTooltip","location","getLocation","hideTooltipCallback","getAdditionalParams","newTooltipComponentCallback","createTooltipComp","destroyTooltipComp","parentGui","tooltipInstanceCopy","addPopupRes","tooltipPopupDestroyFunc","bodyScroll","setEventHandlers","tooltipMouseEnterListener","tooltipMouseLeaveListener","onTooltipMouseEnter","onTooltipMouseLeave","tooltipFocusInListener","tooltipFocusOutListener","onTooltipFocusIn","onTooltipFocusOut","isTooltipFocused","clearTooltipListeners","clearInteractiveTimeout","clearHideTimeout","hideTooltipTimeoutId","clearShowTimeout","AgHighlightTooltipFeature","highlightTracker","onHighlight","wireHighlightListeners","currentValue","setTooltipMode","tooltipMode","highlighted","tooltipTriggerMode","reUnescapedHtml","HTML_ESCAPES","_toString","toEscape","_escapeString","chr","_isStringLargerThan","_isExpressionString","codePointAt","_camelCaseToHumanText","word","toUpperCase","AgTooltipComponent","locationKebabCase","_parseBigIntOrNull","trimmed","BigInt","DATE_TIME_SEPARATOR_REGEXP","RegExp","DATE_TIME_REGEXP","_padStartWidthZeros","totalStringSize","padStart","_serialiseDate","date","includeTime","separator","serialised","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","_getDateParts","d","calculateOrdinal","MONTHS","DAYS","_dateToFormattedString","format","fullYear","YYYY","YY","MMMM","MMM","MM","Mo","M","Do","DD","dddd","getDay","ddd","dd","do","regexp","_isValidDate","bailIfInvalidTime","_parseDateTimeFromString","_isValidDateTime","skipValidation","dateStr","timeStr","fields","f","year","month","day","hours","minutes","seconds","setHours","setMinutes","setSeconds","_downloadFile","fileName","content","URL","createObjectURL","display","MouseEvent","bubbles","view","revokeObjectURL","_fuzzySuggestions","inputValue","allSuggestions","hideIrrelevant","maxSuggestions","thisSuggestions","text","idx","relevance","_getLevenshteinSimilarityDistance","suggestion","indices","sourceLength","targetLength","swapTmp","inputLower","targetLower","substringPos","previousRow","Uint16Array","currentRow","secondaryScore","earlyMatchLimit","inputChar","inputCharLower","targetChar","insertCost","deleteCost","replaceCost","cost","prevSourceChar","prevSourceCharLower","prevTargetChar","_isEventFromPrintableCharacter","_getValueUsingDotField","data","field","currentObject"],"sourceRoot":""}
|