{"version":3,"file":"externals/@servicenow/sn-window-manager/index.min.js","mappings":"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","sources":["webpack:///css-loader/6.7.1/dist/runtime/api.js","webpack:///css-loader/6.7.1/dist/runtime/noSourceMaps.js","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/bottomToolbar/sn-overflow-popover/sn-overflow-popover.scss","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/bottomToolbar/styles.scss","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/fragments/debug-styles.scss","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/styles.scss","webpack:///@servicenow/sn-window-manager/src/sn-window/styles.scss","webpack:///./src/sn-window-manager/bottomToolbar/sn-overflow-popover/sn-overflow-popover.scss?fa83","webpack:///./src/sn-window-manager/bottomToolbar/styles.scss?d78e","webpack:///./src/sn-window-manager/fragments/debug-styles.scss?a7bc","webpack:///./src/sn-window-manager/styles.scss?52e6","webpack:///./src/sn-window/styles.scss?e331","webpack:///@babel/runtime/7.25.7/helpers/extends.js","webpack:///@babel/runtime/7.25.7/helpers/objectWithoutPropertiesLoose.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///external module \"/uxasset/externals/@servicenow/ui-core/index.jsdbx\"","webpack:///external module \"/uxasset/externals/@servicenow/ui-renderer-snabbdom/index.jsdbx\"","webpack:///external module \"/uxasset/externals/@servicenow/now-button/index.jsdbx\"","webpack:///external module \"/uxasset/externals/sn-translate/index.jsdbx\"","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/utilities/actions.js","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/utilities/helpers.js","webpack:///@servicenow/sn-window-manager/src/sn-window/behaviors/utils/helpers.js","webpack:///@servicenow/sn-window-manager/src/sn-window/fragments/buttons.js","webpack:///@servicenow/sn-window-manager/src/sn-window/behaviors/utils/keyboard-events.js","webpack:///@servicenow/sn-window-manager/src/sn-window/actions.js","webpack:///external module \"/uxasset/externals/@devsnc/library-uxf/index.jsdbx\"","webpack:///external module \"/uxasset/externals/@devsnc/unav-utils/29.0.1-polaris.19/index.jsdbx\"","webpack:///external module \"/uxasset/externals/@devsnc/snowdash/28.0.1/index.jsdbx\"","webpack:///external module \"/uxasset/externals/dompurify/3.2.6/index.jsdbx\"","webpack:///external module \"/uxasset/externals/@servicenow/behavior-focus/27.0.2/index.jsdbx\"","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/utilities/constants.js","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/utilities/index.js","webpack:///@servicenow/sn-window-manager/src/sn-window/sn-window.effects.js","webpack:///@servicenow/sn-window-manager/src/sn-window/fragments/buttonPanel.js","webpack:///@servicenow/sn-window-manager/src/sn-window/fragments/dockedWindow.js","webpack:///@servicenow/sn-window-manager/src/sn-window/sn-window.view.js","webpack:///external module \"/uxasset/externals/@servicenow/behavior-rtl/27.3.4/index.jsdbx\"","webpack:///external module \"/uxasset/externals/@servicenow/behavior-modal/27.0.2/index.jsdbx\"","webpack:///external module \"/uxasset/externals/@servicenow/behavior-resizable/27.0.2/index.jsdbx\"","webpack:///@servicenow/sn-window-manager/src/sn-window/behaviors/utils/mouse-events.js","webpack:///@servicenow/sn-window-manager/src/sn-window/behaviors/drag-behavior.js","webpack:///@servicenow/sn-window-manager/src/sn-window/sn-window.js","webpack:///external module \"/uxasset/externals/@servicenow/now-modal/index.jsdbx\"","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/fragments/debug-panel.js","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/bottomToolbar/bottomToolbar.utils.js","webpack:///external module \"/uxasset/externals/@servicenow/now-popover/index.jsdbx\"","webpack:///external module \"/uxasset/externals/@servicenow/now-tooltip/index.jsdbx\"","webpack:///external module \"/uxasset/externals/@servicenow/now-loader/index.jsdbx\"","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/bottomToolbar/sn-overflow-popover/sn-overflow-popover.js","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/bottomToolbar/bottomToolbar.view.js","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/bottomToolbar/bottomToolbar.effects.js","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/bottomToolbar/bottomToolbar.js","webpack:///external module \"/uxasset/externals/@servicenow/now-dropdown/index.jsdbx\"","webpack:///@servicenow/sn-window-manager/example/header-button-example.js","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/sn-window-manager.view.js","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/sn-window-manager.effects.js","webpack:///external module \"/uxasset/externals/@servicenow/now-trigger-library/index.jsdbx\"","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/behaviors/keyboard-shortcuts-behavior.js","webpack:///@servicenow/sn-window-manager/src/sn-window-manager/sn-window-manager.js","webpack:///@servicenow/sn-window-manager/src/__imaginary__/entry-wrapper.js"],"sourcesContent":["\"use strict\";\n\n/*\n  MIT License http://www.opensource.org/licenses/mit-license.php\n  Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n  var list = []; // return the list of modules as css string\n\n  list.toString = function toString() {\n    return this.map(function (item) {\n      var content = \"\";\n      var needLayer = typeof item[5] !== \"undefined\";\n\n      if (item[4]) {\n        content += \"@supports (\".concat(item[4], \") {\");\n      }\n\n      if (item[2]) {\n        content += \"@media \".concat(item[2], \" {\");\n      }\n\n      if (needLayer) {\n        content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n      }\n\n      content += cssWithMappingToString(item);\n\n      if (needLayer) {\n        content += \"}\";\n      }\n\n      if (item[2]) {\n        content += \"}\";\n      }\n\n      if (item[4]) {\n        content += \"}\";\n      }\n\n      return content;\n    }).join(\"\");\n  }; // import a list of modules into the list\n\n\n  list.i = function i(modules, media, dedupe, supports, layer) {\n    if (typeof modules === \"string\") {\n      modules = [[null, modules, undefined]];\n    }\n\n    var alreadyImportedModules = {};\n\n    if (dedupe) {\n      for (var k = 0; k < this.length; k++) {\n        var id = this[k][0];\n\n        if (id != null) {\n          alreadyImportedModules[id] = true;\n        }\n      }\n    }\n\n    for (var _k = 0; _k < modules.length; _k++) {\n      var item = [].concat(modules[_k]);\n\n      if (dedupe && alreadyImportedModules[item[0]]) {\n        continue;\n      }\n\n      if (typeof layer !== \"undefined\") {\n        if (typeof item[5] === \"undefined\") {\n          item[5] = layer;\n        } else {\n          item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n          item[5] = layer;\n        }\n      }\n\n      if (media) {\n        if (!item[2]) {\n          item[2] = media;\n        } else {\n          item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n          item[2] = media;\n        }\n      }\n\n      if (supports) {\n        if (!item[4]) {\n          item[4] = \"\".concat(supports);\n        } else {\n          item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n          item[4] = supports;\n        }\n      }\n\n      list.push(item);\n    }\n  };\n\n  return list;\n};","\"use strict\";\n\nmodule.exports = function (i) {\n  return i[1];\n};","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".now-align{display:flex}.now-align.-row.-reverse{flex-direction:row-reverse}.now-align.-column{flex-direction:column}.now-align.-column.-reverse{flex-direction:column-reverse}.now-align.-wrap{flex-wrap:wrap}.now-align.-inline{justify-content:space-between}.now-align.-inline-center{justify-content:center}.now-align.-inline-end{justify-content:flex-end}.now-align.-block-start{align-items:flex-start}.now-align.-block-center{align-items:center}.now-align.-block-end{align-items:flex-end}.now-m-block--xxs{margin-block-end:calc(.125rem*var(--na-ss-rem-multiplier))}.now-m-block--xxs,.now-m-block-start--xxs{margin-block-start:calc(.125rem*var(--na-ss-rem-multiplier))}.now-m-block-end--xxs{margin-block-end:calc(.125rem*var(--na-ss-rem-multiplier))}.now-m-inline--xxs{margin-inline-end:calc(.125rem*var(--na-ss-rem-multiplier))}.now-m-inline--xxs,.now-m-inline-start--xxs{margin-inline-start:calc(.125rem*var(--na-ss-rem-multiplier))}.now-m-inline-end--xxs{margin-inline-end:calc(.125rem*var(--na-ss-rem-multiplier))}.now-m-block--xs{margin-block-end:calc(.25rem*var(--na-ss-rem-multiplier))}.now-m-block--xs,.now-m-block-start--xs{margin-block-start:calc(.25rem*var(--na-ss-rem-multiplier))}.now-m-block-end--xs{margin-block-end:calc(.25rem*var(--na-ss-rem-multiplier))}.now-m-inline--xs{margin-inline-end:calc(.25rem*var(--na-ss-rem-multiplier))}.now-m-inline--xs,.now-m-inline-start--xs{margin-inline-start:calc(.25rem*var(--na-ss-rem-multiplier))}.now-m-inline-end--xs{margin-inline-end:calc(.25rem*var(--na-ss-rem-multiplier))}.now-m-block--sm{margin-block-end:calc(.5rem*var(--na-ss-rem-multiplier))}.now-m-block--sm,.now-m-block-start--sm{margin-block-start:calc(.5rem*var(--na-ss-rem-multiplier))}.now-m-block-end--sm{margin-block-end:calc(.5rem*var(--na-ss-rem-multiplier))}.now-m-inline--sm{margin-inline-end:calc(.5rem*var(--na-ss-rem-multiplier))}.now-m-inline--sm,.now-m-inline-start--sm{margin-inline-start:calc(.5rem*var(--na-ss-rem-multiplier))}.now-m-inline-end--sm{margin-inline-end:calc(.5rem*var(--na-ss-rem-multiplier))}.now-p-block--sm{padding-block-end:calc(.5rem*var(--na-ss-rem-multiplier))}.now-p-block--sm,.now-p-block-start--sm{padding-block-start:calc(.5rem*var(--na-ss-rem-multiplier))}.now-p-block-end--sm{padding-block-end:calc(.5rem*var(--na-ss-rem-multiplier))}.now-p-inline--sm{padding-inline-end:calc(.5rem*var(--na-ss-rem-multiplier))}.now-p-inline--sm,.now-p-inline-start--sm{padding-inline-start:calc(.5rem*var(--na-ss-rem-multiplier))}.now-p-inline-end--sm{padding-inline-end:calc(.5rem*var(--na-ss-rem-multiplier))}:host{box-sizing:border-box;font-family:var(--now-font-family,\\\"Source Sans Pro\\\",Arial,sans-serif);line-height:var(--now-line-height,1.25)}:host([hidden]){display:none}*,:after,:before{box-sizing:border-box}:host{display:block}.sn-overflow-popover{background-color:RGB(var(--now-popover--background-color,var(--now-color--neutral-0,255,255,255)));border-radius:6px;color:RGB(var(--now-menu-contextual_container_label--primary--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28))));display:flex;flex-direction:column;max-width:250px;overflow:hidden}.sn-overflow-popover-header{align-items:center;background-color:RGB(var(--now-color_background--secondary,var(--now-color_background--secondary,var(--now-color--neutral-1,246,247,247))));border-bottom:1px solid RGB(var(--now-menu-contextual_container--primary--border-color,var(--now-color_divider--tertiary,var(--now-color--neutral-3,209,214,214))));color:RGB(var(--now-color_text--tertiary,var(--now-color_text--tertiary,var(--now-color--neutral-12,66,80,81))));display:flex;font-size:12px;font-weight:400;min-height:24px;padding:4px 16px}.sn-overflow-popover-list{max-height:300px;overflow-y:auto;padding:calc(.25rem*var(--na-ss-rem-multiplier)) 0}.sn-overflow-popover-item{align-items:center;background-color:RGB(var(--now-popover--background-color,var(--now-color--neutral-0,255,255,255)));border-bottom:1px solid RGB(var(--now-menu-contextual_container--primary--border-color,var(--now-color_divider--tertiary,var(--now-color--neutral-3,209,214,214))));color:RGB(var(--now-menu-contextual_container_label--primary--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28))));cursor:pointer;display:flex;gap:8px;min-height:32px;outline:none;padding:8px 16px 8px 16px}.sn-overflow-popover-item:focus,.sn-overflow-popover-item:hover{background-color:RGB(var(--sn-overflow-popover-item--background-color--hover,var(--now-color_background--secondary,var(--now-color--neutral-1,246,247,247))));color:RGB(var(--now-menu-contextual_container_label--primary--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28))))}.sn-overflow-popover-item:focus{box-shadow:inset 0 0 0 2px RGB(var(--now-color_border--primary,var(--now-color_border--primary,var(--now-color--neutral-7,135,147,148))))}.sn-overflow-popover-item:last-child{border-bottom:none}.sn-overflow-popover-item-icon{flex-shrink:0;height:16px;width:16px}.sn-overflow-popover-item-icon,.sn-overflow-popover-item:hover .sn-overflow-popover-item-icon{color:RGB(var(--now-color_text--primary,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28))))}.sn-overflow-popover-item-content{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.sn-overflow-popover-item-title{color:RGB(var(--now-color_text--primary,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28))));font-size:16px}.sn-overflow-popover-item-subtitle,.sn-overflow-popover-item-title{font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sn-overflow-popover-item-subtitle{color:RGB(var(--sn-overflow-popover-item-subtitle--color,var(--now-color_text--secondary,var(--now-color--neutral-15,44,53,55))));font-size:calc(.75rem*var(--na-ss-rem-multiplier))}.sn-overflow-popover-item-close{align-items:center;display:flex;flex-shrink:0;justify-content:center}@media(forced-colors:active){.sn-overflow-popover{border-color:highlight}.sn-overflow-popover-header{border-bottom-color:highlight}.sn-overflow-popover-header,.sn-overflow-popover-item:hover{background-color:highlight;color:highlighttext}.sn-overflow-popover-item:hover .sn-overflow-popover-item-icon{color:highlighttext}}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":host{box-sizing:border-box;font-family:var(--now-font-family,\\\"Source Sans Pro\\\",Arial,sans-serif);line-height:var(--now-line-height,1.25)}:host([hidden]){display:none}*,:after,:before{box-sizing:border-box}.sn-window-manager-toolbar{background-color:RGB(var(--now-color_background--primary,var(--now-color--neutral-0,255,255,255)));border-radius:20px 20px 0 0;bottom:0;box-shadow:0 -2px 4px rgba(0,0,0,.1);display:flex;flex-direction:row;height:0;left:0;overflow:hidden;pointer-events:all;position:absolute;right:0;transition:left .15s ease-in-out,right .15s ease-in-out,height .15s ease-in-out;z-index:100}.sn-window-manager-toolbar.opened{border-radius:20px 20px 0 0;border-top:solid 1px RGB(var(--now-color_border--tertiary,var(--now-color--neutral-3,209,214,214)));height:56px}.sn-window-manager-toolbar.is-rtl{direction:rtl}.sn-window-manager-toolbar .toolbar-zone{align-items:center;display:flex}.sn-window-manager-toolbar .toolbar-zone.zone3{align-content:center;flex:0 0 auto;flex-direction:column;flex-wrap:wrap;justify-content:center;margin-inline-end:calc(.75rem*var(--na-ss-rem-multiplier));margin-inline-start:auto;max-width:calc(100% - 153px - 2rem*var(--na-ss-rem-multiplier));min-width:0}.sn-window-manager-toolbar .toolbar-zone.zone3 now-loader{display:none}.sn-window-manager-toolbar .toolbar-zone.zone1,.sn-window-manager-toolbar .toolbar-zone.zone2{align-items:stretch;display:flex;flex:0 1 auto;gap:0;margin:0;max-width:100%;min-width:0;overflow:hidden;padding:0}.sn-window-manager-toolbar .toolbar-zone.zone1.empty,.sn-window-manager-toolbar .toolbar-zone.zone2.empty{flex:0 0 0}.sn-window-manager-toolbar .toolbar-zone.zone1.balanced,.sn-window-manager-toolbar .toolbar-zone.zone2.balanced{flex:1 1 0}.sn-window-manager-toolbar .toolbar-zone.zone1 .window-button:not(.overflow),.sn-window-manager-toolbar .toolbar-zone.zone2 .window-button:not(.overflow){flex:1 1 0;max-width:180px;min-width:0;transition:width .3s ease-in-out;width:100%}.sn-window-manager-toolbar .toolbar-zone.zone1 .window-button:not(.overflow) button,.sn-window-manager-toolbar .toolbar-zone.zone2 .window-button:not(.overflow) button{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.sn-window-manager-toolbar .toolbar-zone.zone1 .window-button:not(.overflow) .button-content,.sn-window-manager-toolbar .toolbar-zone.zone2 .window-button:not(.overflow) .button-content{overflow:hidden;width:100%}.sn-window-manager-toolbar .toolbar-zone.zone1 .window-button:not(.overflow) .button-label,.sn-window-manager-toolbar .toolbar-zone.zone2 .window-button:not(.overflow) .button-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sn-window-manager-toolbar .toolbar-zone.zone1 .window-button.overflow,.sn-window-manager-toolbar .toolbar-zone.zone2 .window-button.overflow{flex:0 0 auto;max-width:60px;transition:none}.sn-window-manager-toolbar .zone-divider{align-self:center;background-color:RGB(var(--now-color_divider--primary,var(--now-color--neutral-7,135,147,148)));flex:0 0 auto;height:32px;margin:auto calc(.75rem*var(--na-ss-rem-multiplier));width:1px}.sn-window-manager-toolbar .zone1:last-child{margin-inline-end:0}.sn-window-manager-toolbar .minimization-zone{align-items:stretch;display:flex;flex:0 0 auto;flex-direction:row;gap:0;justify-content:flex-start;margin-inline-end:calc(1rem*var(--na-ss-rem-multiplier));margin-inline-start:calc(1rem*var(--na-ss-rem-multiplier));max-width:calc(100% - var(--zone3-width, 0px) - 64px);min-width:0;overflow:hidden;white-space:nowrap;width:auto}.sn-window-manager-toolbar .minimization-zone.balanced .zone1.balanced,.sn-window-manager-toolbar .minimization-zone.balanced .zone2.balanced{flex:1 1 0}@media(max-width:768px){.sn-window-manager-toolbar{z-index:3020}.sn-window-manager-toolbar .window-button:not(.overflow){min-width:120px}}@media(max-width:480px){.sn-window-manager-toolbar .window-button:not(.overflow){min-width:100px}}@media(max-width:320px){.sn-window-manager-toolbar{flex-direction:row;justify-content:space-between}.sn-window-manager-toolbar .toolbar-zone.zone3{flex:0 0 auto;margin-inline-end:calc(.75rem*var(--na-ss-rem-multiplier));margin-inline-start:auto;order:3}.sn-window-manager-toolbar .minimization-zone{align-items:center;flex:0 0 auto;flex-direction:row;gap:0;max-width:none;order:1}.sn-window-manager-toolbar .minimization-zone .zone1,.sn-window-manager-toolbar .minimization-zone .zone2{flex:0 0 auto}.sn-window-manager-toolbar .minimization-zone .zone1 .window-button:not(.overflow),.sn-window-manager-toolbar .minimization-zone .zone2 .window-button:not(.overflow){display:none}.sn-window-manager-toolbar .minimization-zone .zone1 .window-button.overflow,.sn-window-manager-toolbar .minimization-zone .zone2 .window-button.overflow{display:flex}.sn-window-manager-toolbar .minimization-zone .zone-divider{display:block;margin:auto calc(.75rem*var(--na-ss-rem-multiplier))}}.sn-window-manager-toolbar.left-dock-open{left:var(--left-dock-width)}.sn-window-manager-toolbar.right-dock-open{right:var(--right-dock-width)}.sn-window-manager-toolbar.bottom-dock-open{bottom:var(--bottom-dock-height)}.sn-window-manager-toolbar .window-button{--now-button_icon--primary--color:RGB($now-color--text-primary);--now-button-iconic--bare_primary--color:RGB($now-color--text-primary);flex:0 0 auto;height:40px;margin:calc(.5rem*var(--na-ss-rem-multiplier)) calc(.75rem*var(--na-ss-rem-multiplier)) calc(.5rem*var(--na-ss-rem-multiplier)) 0;overflow:hidden;width:180px}.sn-window-manager-toolbar .window-button button{border:0;border-radius:var(--now-actionable--border-radius,0);color:var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28));cursor:pointer;font-family:var(--now-font-family,\\\"Source Sans Pro\\\",Arial,sans-serif);font-weight:var(--now-actionable--font-weight,normal);height:40px;margin:0;max-width:100%;overflow:hidden;padding:0;padding-inline-end:calc(1rem*var(--na-ss-rem-multiplier));padding-inline-start:calc(1rem*var(--na-ss-rem-multiplier));text-align:start;width:100%}.sn-window-manager-toolbar .window-button button .button-icons{display:grid;gap:calc(.25rem*var(--na-ss-rem-multiplier));grid-auto-columns:calc(1rem*var(--na-ss-rem-multiplier));grid-auto-flow:column}.sn-window-manager-toolbar .window-button button .button-content{align-items:center;display:grid;grid-template-columns:min-content 1fr min-content;justify-content:start}.sn-window-manager-toolbar .window-button button .label-text{font-size:14px;font-style:normal;font-weight:600;line-height:16px}.sn-window-manager-toolbar .window-button button .label-text,.sn-window-manager-toolbar .window-button button .subtext{overflow:hidden;text-align:start;text-overflow:ellipsis;white-space:nowrap}.sn-window-manager-toolbar .window-button button .label-text.has-icon,.sn-window-manager-toolbar .window-button button .subtext.has-icon{padding-inline-start:calc(.5rem*var(--na-ss-rem-multiplier))}.sn-window-manager-toolbar .window-button button .button-label{overflow:hidden}.sn-window-manager-toolbar .window-button button .subtext{color:RGB(var(--now-color_text--secondary,var(--now-color--neutral-15,44,53,55)));font-size:12px;font-weight:400;line-height:14px}.sn-window-manager-toolbar .window-button button .window-close-button{padding-inline-start:calc(.25rem*var(--na-ss-rem-multiplier))}.sn-window-manager-toolbar .window-button button:hover{box-shadow:0 calc(.125rem*var(--na-ss-rem-multiplier)) calc(.25rem*var(--na-ss-rem-multiplier)) 0 RGB(56,56,56,var(--now-opacity--less,.25))}.sn-window-manager-toolbar .window-button button:focus::-moz-focus-inner{border-style:none}.sn-window-manager-toolbar .window-button button:focus:focus{box-shadow:inset 0 0 0 calc(.125rem*var(--na-ss-rem-multiplier)) RGB(var(--now-color_focus-ring,var(--now-color--secondary-1,1,119,142))),inset 0 0 0 calc(.1875rem*var(--na-ss-rem-multiplier)) RGB(var(--now-color_focus-ring_shadow,var(--now-color_background--primary,var(--now-color--neutral-0,255,255,255))));outline:none}@media(forced-colors:active){.sn-window-manager-toolbar .window-button button:focus:focus{outline:1px solid highlight}}.sn-window-manager-toolbar .window-button button.-primary{background-color:RGB(var(--now-color_background--primary,var(--now-color--neutral-0,255,255,255)));border:1px solid RGB(var(--now-color_border--tertiary,var(--now-color--neutral-3,209,214,214)))}.sn-window-manager-toolbar .window-button button.-primary:hover{background-color:RGB(var(--now-color_surface--brand-3,200,223,214))}.sn-window-manager-toolbar .window-button button.-primary:active{background-color:RGB(var(--now-color_surface--brand-4,183,212,201))}.sn-window-manager-toolbar .window-button button.-secondary{background-color:RGB(var(--now-color_surface--neutral-3,232,234,234))}.sn-window-manager-toolbar .window-button button.-secondary:hover{background-color:RGB(var(--now-color_surface--neutral-4,221,225,225))}.sn-window-manager-toolbar .window-button button.-secondary:active{background-color:RGB(var(--now-color_surface--neutral-5,211,215,216))}.sn-window-manager-toolbar .window-button button.-tertiary{background-color:RGB(var(--now-button--tertiary--background-color,var(--now-color_background--primary,var(--now-color--neutral-0,255,255,255))),var(--now-button--tertiary--background-color-alpha,0));border-color:RGB(var(--now-button--tertiary--border-color,var(--now-color--neutral-7,135,147,148)),var(--now-button--tertiary--border-color-alpha,1));border-end-end-radius:var(--now-button--tertiary--border-end-end-radius,var(--now-button--tertiary--border-radius,var(--now-button--border-radius,var(--now-actionable--border-radius,0))));border-end-start-radius:var(--now-button--tertiary--border-end-start-radius,var(--now-button--tertiary--border-radius,var(--now-button--border-radius,var(--now-actionable--border-radius,0))));border-start-end-radius:var(--now-button--tertiary--border-start-end-radius,var(--now-button--tertiary--border-radius,var(--now-button--border-radius,var(--now-actionable--border-radius,0))));border-start-start-radius:var(--now-button--tertiary--border-start-start-radius,var(--now-button--tertiary--border-radius,var(--now-button--border-radius,var(--now-actionable--border-radius,0))));border-width:var(--now-button--tertiary--border-width,var(--now-button--border-width,var(--now-actionable--border-width,1px)));color:RGB(var(--now-button--tertiary--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28))),var(--now-button--tertiary--color-alpha,1))}.sn-window-manager-toolbar .window-button button.-tertiary .now-button-icon{color:RGB(var(--now-button_icon--tertiary--color,var(--now-button--tertiary--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28)))))}.sn-window-manager-toolbar .window-button button.-tertiary:not(.is-disabled):hover{background-color:RGB(var(--now-button--tertiary--background-color--hover,var(--now-color--neutral-2,228,230,231)),var(--now-button--tertiary--background-color-alpha--hover,1));border-color:RGB(var(--now-button--tertiary--border-color--hover,var(--now-button--tertiary--border-color,var(--now-color--neutral-7,135,147,148))),var(--now-button--tertiary--border-color-alpha--hover,var(--now-button--tertiary--border-color-alpha,1)));color:RGB(var(--now-button--tertiary--color--hover,var(--now-color--secondary-2,1,89,107)),var(--now-button--tertiary--color-alpha--hover,var(--now-button--tertiary--color-alpha,1)))}.sn-window-manager-toolbar .window-button button.-tertiary:not(.is-disabled):hover .now-button-icon{color:RGB(var(--now-button_icon--tertiary--color--hover,var(--now-button--tertiary--color--hover,var(--now-color--secondary-2,1,89,107))))}.sn-window-manager-toolbar .window-button button.-tertiary:not(.is-disabled):active{background-color:RGB(var(--now-button--tertiary--background-color--active,var(--now-color--neutral-5,172,180,181)),var(--now-button--tertiary--background-color-alpha--active,1));border-color:RGB(var(--now-button--tertiary--border-color--active,var(--now-button--tertiary--border-color,var(--now-color--neutral-7,135,147,148))),var(--now-button--tertiary--border-color-alpha--active,var(--now-button--tertiary--border-color-alpha,1)));color:RGB(var(--now-button--tertiary--color--active,var(--now-color--secondary-3,1,60,71)),var(--now-button--tertiary--color-alpha--active,var(--now-button--tertiary--color-alpha,1)))}.sn-window-manager-toolbar .window-button button.-tertiary:not(.is-disabled):active .now-button-icon{color:RGB(var(--now-button_icon--tertiary--color--active,var(--now-button--tertiary--color--active,var(--now-color--secondary-3,1,60,71))))}.sn-window-manager-toolbar .window-button button.-tertiary.is-disabled{opacity:var(--now-button--tertiary--opacity--disabled,var(--now-button--opacity--disabled,var(--now-actionable--opacity--disabled,var(--now-opacity--less,.25))))}.sn-window-manager-toolbar .window-button.overflow{flex:0 0 auto;margin-inline-end:0;min-width:48px;position:relative;width:auto;z-index:1}.sn-window-manager-toolbar .window-button.overflow button{align-items:center;display:flex;justify-content:center;min-width:48px;padding-inline-end:calc(.75rem*var(--na-ss-rem-multiplier));padding-inline-start:calc(.75rem*var(--na-ss-rem-multiplier));text-align:center;width:auto}.sn-window-manager-toolbar .window-button.overflow button .button-content,.sn-window-manager-toolbar .window-button.overflow button .button-label{align-items:center;display:flex;justify-content:center;width:100%}.sn-window-manager-toolbar .window-button.overflow button .button-label .label-text{text-align:center}.sn-window-manager-toolbar .window-button:last-child{margin-inline-end:0}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":host{box-sizing:border-box;font-family:var(--now-font-family,\\\"Source Sans Pro\\\",Arial,sans-serif);line-height:var(--now-line-height,1.25)}:host([hidden]){display:none}*,:after,:before{box-sizing:border-box}:host{--now-color_text--primary:#000}.debug-panel{background-color:#fff;background:radial-gradient(circle at top,#fff,#bbb);color:#000;display:flex;flex-direction:column;height:100%}.debug-panel h1,.debug-panel h2,.debug-panel h3{margin:0;padding:0 0 0 10px}.debug-panel .button-panel{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px;margin:0 0 10px 0}.debug-panel.side-docked .debug-controls{height:235px}.debug-panel .debug-controls{flex-grow:0;height:227px;overflow:hidden;overflow:auto;transition:height .15s ease-in-out}.debug-panel .debug-controls.hidden{height:0}.debug-panel .debug-windows-list{contain:strict;flex-grow:1}.debug-panel .debug-windows-list .window-list{display:grid;height:calc(100% - 24px);overflow:auto}.debug-panel .debug-windows-list .window-list ul{background-color:hsla(0,0%,100%,.5);border-radius:3px;margin:10px auto;padding:0 5px;width:75%}.debug-panel .debug-windows-list .window-list ul li:nth-child(2n){background-color:#d3d3d3}.debug-panel .debug-windows-list .window-list ul li{align-items:center;display:grid;grid-template-columns:auto min-content}.debug-panel .debug-windows-list .window-list ul li:hover{background-color:hsla(0,0%,100%,.8)}.debug-panel .debug-windows-list .window-list ul li .window-button-panel{--now-button_icon--primary--color:0,0,0;display:flex;flex-direction:row}.debug-panel.bottom-docked{display:grid;grid-template-columns:30% auto;transition:all .15s ease-in-out}.debug-panel.bottom-docked h3{text-align:center}.debug-panel.bottom-docked .button-panel{justify-content:center}.debug-panel.bottom-docked.hide-buttons{grid-template-columns:0 auto}.debug-panel.bottom-docked .debug-controls,.debug-panel.bottom-docked .debug-controls.hidden{height:267px}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":host{box-sizing:border-box;font-family:var(--now-font-family,\\\"Source Sans Pro\\\",Arial,sans-serif);line-height:var(--now-line-height,1.25)}:host([hidden]){display:none}*,:after,:before{box-sizing:border-box}:host{--na-ss-rem-multiplier:var(--classicsponlydonotuse--rem-multipy,1);--standard-dock-width:calc(20rem*var(--na-ss-rem-multiplier));--standard-dock-height:calc(20rem*var(--na-ss-rem-multiplier));--left-dock-width:var(--standard-dock-width);--right-dock-width:var(--standard-dock-width);--bottom-dock-height:var(--standard-dock-height);height:100vh;pointer-events:none;width:100%}:host now-modal{pointer-events:all}div[id*=modal]{background-color:RGB(var(--now-color--neutral-21,0,0,0),.5);height:100vh;left:0;opacity:0;pointer-events:all;position:fixed;top:0;transition:opacity .25s ease-in-out;width:100vw;z-index:3999}div[id*=modal].modal-visible{opacity:1}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \":host{box-sizing:border-box;font-family:var(--now-font-family,\\\"Source Sans Pro\\\",Arial,sans-serif);line-height:var(--now-line-height,1.25)}:host([hidden]){display:none}*,:after,:before{box-sizing:border-box}:host{--now-toggle_label--color:RGB($sn-window_header_label--primary--color);--standard-dock-width:calc(20rem*var(--na-ss-rem-multiplier));--standard-dock-height:calc(20rem*var(--na-ss-rem-multiplier));--left-dock-width:var(--standard-dock-width);--right-dock-width:var(--standard-dock-width);--bottom-dock-height:var(--standard-dock-height);--transition-timing:250ms;--transition-timing-slow:500ms;--transition-timing-fast:50ms;--transition-timing-delay:150ms;--transition-curve:cubic-bezier(0.4,0,1,1);--transition-curve-y:cubic-bezier(0,0,0.6,1);--transition-curve-y-negative:cubic-bezier(1,0.2,1,1);--transition-curve-shift:cubic-bezier(0.85,0,0.14,1);pointer-events:all}:host .now-button-iconic.is-bare.-primary{padding:10px}.window-button-panel{align-items:center;display:flex;flex-direction:row;justify-content:space-between}now-toggle{color:RGB(var(--sn-window_header_label--primary--color,var(--now-color--neutral-0,255,255,255)))}:host(.disable-animation) .sn-window-wrapper{transition:none!important}.docked-window{-webkit-user-select:text;user-select:text}.docked-window .header{align-items:center;background-color:RGB(var(--sn-window_header--primary--background-color,var(--now-color_chrome--brand-10,21,32,32)));color:RGB(var(--sn-window_header_label--primary--color,var(--now-color--neutral-0,255,255,255)));display:grid;grid-template-columns:auto max-content max-content;padding:0 calc(1rem*var(--na-ss-rem-multiplier))}.docked-window .header .heading-label{display:inline;line-height:normal;vertical-align:middle}.docked-window .header .heading-label.-sm{font-size:calc(.75rem*var(--na-ss-rem-multiplier));font-weight:400}.docked-window .header .heading-label.-md{font-size:calc(1rem*var(--na-ss-rem-multiplier));font-weight:600}.docked-window .header.primary{--now-button_icon--primary--color:var(--sn-window_header_label--primary--color,var(--now-color--neutral-0,255,255,255));--now-button_icon--primary--color--hover:var(--sn-window_header_label--primary--color,var(--now-color--neutral-0,255,255,255));--now-button_icon--primary--color--active:var(--sn-window_header_label--primary--color,var(--now-color--neutral-0,255,255,255));--now-button--bare_primary--background-color--hover:var(--sn-window-header_button--primary--background--color--hover,var(--now-color_chrome--brand-4,77,96,97));--now-button--bare_primary--background-color--active:var(--sn-window-header_button--primary--background--color--active,var(--now-color_chrome--brand-4,77,96,97));--now-button--bare_primary--background-color-alpha--hover:1;--now-button--bare_primary--background-color-alpha--active:1;--now-dropdown_icon--secondary--color:var(--sn-window_header_label--primary--color,var(--now-color--neutral-0,255,255,255));--now-dropdown_icon--secondary--color--hover:var(--sn-window_header_label--primary--color,var(--now-color--neutral-0,255,255,255));--now-dropdown_icon--secondary--color--active:var(--sn-window_header_label--primary--color,var(--now-color--neutral-0,255,255,255));--now-dropdown--secondary--border-width:0;--now-dropdown--secondary--background-color--hover:var(--sn-window-header_button--primary--background--color--hover,var(--now-color_chrome--brand-4,77,96,97));--now-dropdown--secondary--background-color--active:var(--sn-window-header_button--primary--background--color--active,var(--now-color_chrome--brand-4,77,96,97));--now-dropdown--secondary--background-color-alpha--hover:1;--now-dropdown--secondary--background-color-alpha--active:1;--now-button-iconic--bare_tertiary--color:var(--sn-window_header_label--primary--color,var(--now-color--neutral-0,255,255,255));--now-button-iconic--bare_tertiary--color--hover:var(--sn-window_header_label--primary--color,var(--now-color--neutral-0,255,255,255));--now-button-iconic--bare_tertiary--color--active:var(--sn-window_header_label--primary--color,var(--now-color--neutral-0,255,255,255));--now-button-iconic--bare_tertiary--background-color--hover:var(--sn-window-header_button--primary--background--color--hover,var(--now-color_chrome--brand-4,77,96,97));--now-button-iconic--bare_tertiary--background-color--active:var(--sn-window-header_button--primary--background--color--active,var(--now-color_chrome--brand-4,77,96,97));--now-button-iconic--bare_tertiary--background-color-alpha--hover:1;--now-button-iconic--bare_tertiary--background-color-alpha--active:1}.docked-window .header.initial{--now-button_icon--primary--color:var(--sn-window_header_label--initial--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28)));--now-button_icon--primary--color--hover:var(--sn-window_header_label--initial--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28)));--now-button_icon--primary--color--active:var(--sn-window_header_label--initial--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28)));--now-dropdown_icon--secondary--color:var(--sn-window_header_label--initial--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28)));--now-dropdown_icon--secondary--color--hover:var(--sn-window_header_label--initial--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28)));--now-dropdown_icon--secondary--color--active:var(--sn-window_header_label--initial--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28)));--now-dropdown--secondary--border-width:0;--now-dropdown--secondary--background-color--hover:var(--now-modeless-dialog_actions--initial--background-color--hover,var(--now-color--neutral-15,44,53,55));--now-dropdown--secondary--background-color--active:var(--now-modeless-dialog_actions--initial--background-color--active,var(--now-color--neutral-15,44,53,55));--now-dropdown--secondary--background-color-alpha--hover:0.1;--now-dropdown--secondary--background-color-alpha--active:0.1;--now-button--bare_primary--background-color-alpha--hover:0.1;--now-button--bare_primary--background-color-alpha--active:0.1;--now-button--bare_primary--background-color--hover:var(--now-modeless-dialog_actions--initial--background-color--hover,var(--now-color--neutral-15,44,53,55));--now-button--bare_primary--background-color--active:var(--now-modeless-dialog_actions--initial--background-color--active,var(--now-color--neutral-15,44,53,55));background-color:RGB(var(--sn-window_header--initial--background-color,var(--now-color--neutral-0,255,255,255)));color:RGB(var(--sn-window_header_label--initial--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28))))}.docked-window .header.initial:not(.hide-divider){border-bottom:solid 1px RGB(var(--now-modeless-dialog--border-color,var(--now-color--neutral-3,209,214,214)))}.docked-window .header.secondary{--now-button_icon--primary--color:var(--sn-window_header_label--secondary--color,var(--now-color--neutral-0,255,255,255));--now-button_icon--primary--color--hover:var(--sn-window_header_label--secondary--color,var(--now-color--neutral-0,255,255,255));--now-button_icon--primary--color--active:var(--sn-window_header_label--secondary--color,var(--now-color--neutral-0,255,255,255));--now-dropdown_icon--secondary--color:var(--sn-window_header_label--secondary--color,var(--now-color--neutral-0,255,255,255));--now-dropdown_icon--secondary--color--hover:var(--sn-window_header_label--secondary--color,var(--now-color--neutral-0,255,255,255));--now-dropdown_icon--secondary--color--active:var(--sn-window_header_label--secondary--color,var(--now-color--neutral-0,255,255,255));--now-dropdown--secondary--border-width:0;--now-dropdown--secondary--background-color--hover:var(--sn-window-header_button--secondary--background--color--hover,var(--now-color_chrome--brand-4,77,96,97));--now-dropdown--secondary--background-color--active:var(--sn-window-header_button--secondary--background--color--active,var(--now-color_chrome--brand-4,77,96,97));--now-dropdown--secondary--background-color-alpha--hover:1;--now-dropdown--secondary--background-color-alpha--active:1;--now-button--bare_primary--background-color--hover:var(--sn-window-header_button--secondary--background--color--hover,var(--now-color_chrome--brand-4,77,96,97));--now-button--bare_primary--background-color--active:var(--sn-window-header_button--secondary--background--color--active,var(--now-color_chrome--brand-4,77,96,97));--now-button--bare_primary--background-color-alpha--hover:1;--now-button--bare_primary--background-color-alpha--active:1;background-color:RGB(var(--sn-window_header--secondary--background-color,var(--now-color_chrome--brand-5,41,63,64)));color:RGB(var(--sn-window_header_label--secondary--color,var(--now-color--neutral-0,255,255,255)))}.docked-window .header.aiex{--now-button_icon--primary--color:var(--sn-window_header_button--aiex--color,var(--now-color_text--tertiary,var(--now-color--neutral-12,66,80,81)));--now-button--bare_primary--color:var(--sn-window_header_button--aiex--color,var(--now-color_text--tertiary,var(--now-color--neutral-12,66,80,81)));--now-button_icon--primary--color--hover:var(--sn-window_header_button--aiex--color,var(--now-color_text--tertiary,var(--now-color--neutral-12,66,80,81)));--now-button_icon--primary--color--active:var(--sn-window_header_button--aiex--color,var(--now-color_text--tertiary,var(--now-color--neutral-12,66,80,81)));background-color:transparent;color:rgb(var(--sn-window_header_label--aiex--color,var(--now-color_text--primary,var(--now-color--neutral-18,22,27,28))))}.docked-window .header.aiex now-icon{color:rgb(var(--sn-window_header_icon--aiex--color,var(--now-color--secondary-1,1,119,142)))}.docked-window .header.aiex .heading-label{font-weight:700}.docked-window .header .now-animation-container{display:flex;gap:calc(.5rem*var(--na-ss-rem-multiplier))}.docked-window .header now-animation{block-size:calc(2rem*var(--na-ss-rem-multiplier));inline-size:calc(2rem*var(--na-ss-rem-multiplier))}.docked-window{display:flex;flex-direction:column;height:100%}.docked-window .header{flex-grow:0;height:52px}.docked-window div[slot=content]{background-color:RGBA(var(--now-modeless-dialog--background-color,var(--now-color--neutral-0,255,255,255)),1);flex-grow:1;height:calc(100% - 52px);overflow:auto}.docked-window div[slot=content]>:not(debug-panel,sn-collab-chat){display:block;height:100%}.docked-window div[slot=footer]{--now-toggle_label--color:initial;background-color:RGBA(var(--now-window--background-color,var(--now-color_background--primary,var(--now-color--neutral-0,255,255,255))),1)}.docked-window div[slot=footer]>*{display:block}.docked-window .heading-container{align-items:center}.docked-window .heading-container now-icon{padding-inline-end:calc(.5rem*var(--na-ss-rem-multiplier))}.docked-window .heading-container now-icon.unread-indicator{color:#00b5ff;transform:scale(.5)}.docked-window .heading-container .privacy-indicator{margin:0 calc(.5rem*var(--na-ss-rem-multiplier))}.floating,.modal{box-shadow:0 calc(1rem*var(--na-ss-rem-multiplier)) calc(1.5rem*var(--na-ss-rem-multiplier)) 0 RGB(56,56,56,var(--now-opacity--less,.25))}.floating .header,.modal .header{border-radius:var(--now-window--border-radius,calc(.25rem*var(--na-ss-rem-multiplier)*var(--na-ss-rem-multiplier, 1))) var(--now-window--border-radius,calc(.25rem*var(--na-ss-rem-multiplier)*var(--na-ss-rem-multiplier, 1))) 0 0}.sn-window-wrapper{background-color:RGBA(var(--now-modeless-dialog--background-color,var(--now-color--neutral-0,255,255,255)),1);border:RGB(var(--now-window--border-color,var(--now-color_divider--secondary,var(--now-color--neutral-5,172,180,181)))) solid 1px;display:flex;flex-direction:column;opacity:1;position:fixed;z-index:2000}.sn-window-wrapper,.sn-window-wrapper:not(.is-animating){transition:transform var(--transition-timing) var(--transition-curve),opacity var(--transition-timing) var(--transition-curve)}.sn-window-wrapper.fit-content{height:auto!important;max-height:calc(100vh - 40px);max-width:calc(100vw - 40px);min-height:200px;min-width:320px;overflow:visible;width:auto!important}.sn-window-wrapper.fit-content .docked-window{display:inline-block;height:auto!important;overflow:visible;width:auto!important}.sn-window-wrapper.fit-content .docked-window [slot=content]{display:block;height:auto!important;max-width:100%;overflow:visible;width:auto!important}.sn-window-wrapper.fit-content .docked-window [slot=content]>*{max-width:100%;width:auto!important}.sn-window-wrapper.auto-resize .docked-window{display:contents}.sn-window-wrapper.auto-resize .docked-window [slot=content]{display:flex;flex-grow:1;flex-shrink:1;min-block-size:0}.sn-window-wrapper.use-flex .docked-window{display:contents}.sn-window-wrapper.use-flex .docked-window div[slot=content]{display:flex}.sn-window-wrapper.is-animating{transition:border-radius var(--transition-timing) var(--transition-curve),bottom var(--transition-timing) var(--transition-curve),height var(--transition-timing) var(--transition-curve),left var(--transition-timing) var(--transition-curve),opacity var(--transition-timing-fast) var(--transition-curve) var(--transition-timing-delay),right var(--transition-timing) var(--transition-curve),top var(--transition-timing) var(--transition-curve),transform var(--transition-timing) var(--transition-curve),width var(--transition-timing) var(--transition-curve)}.sn-window-wrapper .header{flex-grow:0;height:var(--sn-window-header-height,52px);line-height:52px}.sn-window-wrapper .header .heading-container{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sn-window-wrapper .header .heading-label{vertical-align:middle}.sn-window-wrapper.can-drag .header{cursor:move}.sn-window-wrapper.active{opacity:1;z-index:2002}.sn-window-wrapper.active now-modeless-dialog{--now-opacity--less:0.25}.sn-window-wrapper.closed{transform:scale(.000001)}.sn-window-wrapper.minimized{transform:scale(.25)}.sn-window-wrapper.hidden{visibility:hidden}.sn-window-wrapper.closed,.sn-window-wrapper.minimized{opacity:0;pointer-events:none;transform-origin:top right!important}.sn-window-wrapper.close-to-top{transform:scale(.000001);transform-origin:top left}.sn-window-wrapper.transition-docked-to-docked,.sn-window-wrapper.transition-docked-to-floating,.sn-window-wrapper.transition-docked-to-modal,.sn-window-wrapper.transition-floating-to-docked,.sn-window-wrapper.transition-floating-to-modal,.sn-window-wrapper.transition-modal-to-docked,.sn-window-wrapper.transition-modal-to-floating{transition:border-radius var(--transition-timing-slow) var(--transition-curve-shift),bottom var(--transition-timing-slow) var(--transition-curve-shift),height var(--transition-timing-slow) var(--transition-curve-shift),left var(--transition-timing-slow) var(--transition-curve-shift),opacity var(--transition-timing) var(--transition-curve-shift),right var(--transition-timing-slow) var(--transition-curve-shift),top var(--transition-timing-slow) var(--transition-curve-shift),transform var(--transition-timing-slow) var(--transition-curve-shift),width var(--transition-timing-slow) var(--transition-curve-shift)}.sn-window-wrapper.transition-minimized-to-floating{transition:border-radius var(--transition-timing) var(--transition-curve),bottom var(--transition-timing) var(--transition-curve),height var(--transition-timing) var(--transition-curve),left var(--transition-timing) var(--transition-curve),opacity var(--transition-timing-fast) var(--transition-curve) .2s,right var(--transition-timing) var(--transition-curve),top var(--transition-timing) var(--transition-curve-y-negative),transform var(--transition-timing) var(--transition-curve),width var(--transition-timing) var(--transition-curve)}.sn-window-wrapper.transition-floating-to-minimized,.sn-window-wrapper.transition-modal-to-minimized{transition:border-radius var(--transition-timing) var(--transition-curve),bottom var(--transition-timing) var(--transition-curve),height var(--transition-timing) var(--transition-curve),left var(--transition-timing) var(--transition-curve),opacity var(--transition-timing-fast) var(--transition-curve) var(--transition-timing-delay),right var(--transition-timing) var(--transition-curve),top var(--transition-timing) var(--transition-curve-y),transform var(--transition-timing) var(--transition-curve),width var(--transition-timing) var(--transition-curve)}.sn-window-wrapper.close-to-top{transition:border-radius var(--transition-timing) var(--transition-curve),bottom var(--transition-timing) var(--transition-curve),height var(--transition-timing) var(--transition-curve),left var(--transition-timing) var(--transition-curve),opacity var(--transition-timing) var(--transition-curve),right var(--transition-timing) var(--transition-curve),top var(--transition-timing) var(--transition-curve-y),transform var(--transition-timing) var(--transition-curve),width var(--transition-timing) var(--transition-curve)}.sn-window-wrapper.transition-floating-to-modal,.sn-window-wrapper.transition-modal-to-floating{transform-origin:center center!important}.sn-window-wrapper.transition-floating-to-minimized,.sn-window-wrapper.transition-minimized-to-docked,.sn-window-wrapper.transition-minimized-to-floating,.sn-window-wrapper.transition-minimized-to-modal,.sn-window-wrapper.transition-modal-to-minimized{transform-origin:top right!important}.sn-window-wrapper.floating{background-color:RGBA(var(--now-modeless-dialog--background-color,var(--now-color--neutral-0,255,255,255)),0)}.sn-window-wrapper.floating,.sn-window-wrapper.modal{border-radius:var(--now-window--border-radius,calc(.25rem*var(--na-ss-rem-multiplier)));overflow:hidden}.sn-window-wrapper.modal{background-color:RGBA(var(--now-modeless-dialog--background-color,var(--now-color--neutral-0,255,255,255)),1);border:solid 1px RGB(var(--now-modeless-dialog--border-color,var(--now-color--neutral-3,209,214,214)));z-index:3999!important}.sn-window-wrapper.docked-right{border-width:0 0 0 1px}.sn-window-wrapper.docked-left{border-width:0 1px 0 0}.sn-window-wrapper.docked-bottom{border-width:1px 0 0 0}.sn-window-wrapper.docked-bottom.left-dock-open{left:320px;width:calc(100% - 320px)}.sn-window-wrapper.docked-bottom.right-dock-open{right:320px;width:calc(100% - 320px)}.sn-window-wrapper.docked-bottom.left-dock-open.right-dock-open{width:calc(100% - 640px)}.sn-window-wrapper.fullscreen-view{border-radius:0;bottom:0;left:0;position:fixed;right:0;top:0}.sn-window-wrapper.aiex{border-left:1px solid rgb(var(--sn-window--aiex--border-color,var(--now-color_border--tertiary,var(--now-color--neutral-3,209,214,214))));container-type:inline-size}.sn-window-wrapper.aiex div[slot=content]{background:transparent}.sn-window-wrapper.aiex .docked-window{background:linear-gradient(180deg,rgba(var(--sn-window--aiex--background-color,var(--now-color_surface--brand-1,236,244,241)),.8) 0,rgba(var(--sn-window--aiex--background-color,var(--now-color_surface--brand-1,236,244,241)),.25) 50%,rgba(var(--sn-window--aiex--background-color,var(--now-color_surface--brand-1,236,244,241)),.1) 100%),rgb(var(--now-color_background--primary,var(--now-color--neutral-0,255,255,255)))}@container (min-width: 820px){.sn-window-wrapper.aiex .docked-window{background:linear-gradient(110deg,rgba(var(--sn-window--aiex--background-color,var(--now-color_surface--brand-1,236,244,241)),.65) .36%,rgba(var(--sn-window--aiex--background-color,var(--now-color_surface--brand-1,236,244,241)),.5) 50.18%,rgba(var(--sn-window--aiex--background-color,var(--now-color_surface--brand-1,236,244,241)),.25) 100%),rgb(var(--now-color_background--primary,var(--now-color--neutral-0,255,255,255)))!important}}.sn-window-wrapper.aiex.floating,.sn-window-wrapper.aiex.modal{border:1px solid rgb(var(--sn-window--aiex--border-color,var(--now-color_border--tertiary,var(--now-color--neutral-3,209,214,214))));border-radius:var(--sn-window--aiex--border-radius,calc(.75rem*var(--na-ss-rem-multiplier)));box-shadow:0 12px 24px 0 rgba(var(--sn-window--aiex--shadow-color,56,56,56),.25)}.accessibility-drag-button{block-size:1px;inline-size:1px;opacity:0;overflow:hidden}.accessibility-drag-button:focus{block-size:auto;inline-size:auto;opacity:1;overflow:initial}.sn-window-manager-modal-overlay{background-color:RGB(var(--now-color--neutral-21,0,0,0),.5);height:100vh;left:0;pointer-events:all;position:fixed;top:0;width:100vw;z-index:3999}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n        var result = require(\"!!../../../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../../../node_modules/.pnpm/postcss-loader@7.0.1_postcss@8.4.31_webpack@5.95.0/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../../../node_modules/.pnpm/resolve-url-loader@5.0.0/node_modules/resolve-url-loader/index.js??ruleSet[1].rules[2].use[3]!../../../../../../node_modules/.pnpm/sass-loader@13.0.2_sass@1.53.0_webpack@5.95.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[4]!./sn-overflow-popover.scss\");\n\n        if (result && result.__esModule) {\n            result = result.default;\n        }\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    ","\n        var result = require(\"!!../../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../../node_modules/.pnpm/postcss-loader@7.0.1_postcss@8.4.31_webpack@5.95.0/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../../node_modules/.pnpm/resolve-url-loader@5.0.0/node_modules/resolve-url-loader/index.js??ruleSet[1].rules[2].use[3]!../../../../../node_modules/.pnpm/sass-loader@13.0.2_sass@1.53.0_webpack@5.95.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[4]!./styles.scss\");\n\n        if (result && result.__esModule) {\n            result = result.default;\n        }\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    ","\n        var result = require(\"!!../../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../../node_modules/.pnpm/postcss-loader@7.0.1_postcss@8.4.31_webpack@5.95.0/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../../node_modules/.pnpm/resolve-url-loader@5.0.0/node_modules/resolve-url-loader/index.js??ruleSet[1].rules[2].use[3]!../../../../../node_modules/.pnpm/sass-loader@13.0.2_sass@1.53.0_webpack@5.95.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[4]!./debug-styles.scss\");\n\n        if (result && result.__esModule) {\n            result = result.default;\n        }\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    ","\n        var result = require(\"!!../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../node_modules/.pnpm/postcss-loader@7.0.1_postcss@8.4.31_webpack@5.95.0/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/.pnpm/resolve-url-loader@5.0.0/node_modules/resolve-url-loader/index.js??ruleSet[1].rules[2].use[3]!../../../../node_modules/.pnpm/sass-loader@13.0.2_sass@1.53.0_webpack@5.95.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[4]!./styles.scss\");\n\n        if (result && result.__esModule) {\n            result = result.default;\n        }\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    ","\n        var result = require(\"!!../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../node_modules/.pnpm/postcss-loader@7.0.1_postcss@8.4.31_webpack@5.95.0/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/.pnpm/resolve-url-loader@5.0.0/node_modules/resolve-url-loader/index.js??ruleSet[1].rules[2].use[3]!../../../../node_modules/.pnpm/sass-loader@13.0.2_sass@1.53.0_webpack@5.95.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[4]!./styles.scss\");\n\n        if (result && result.__esModule) {\n            result = result.default;\n        }\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    ","function _extends() {\n  return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (e.includes(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"actionTypes\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__.__esModule\n\t\t\t\t\tif (cjsModule && 'actionTypes' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"].actionTypes;\n\t\t\t\t\t} else if ('actionTypes' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__.actionTypes || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"].actionTypes;\n\t\t\t\t}, [\"createCustomElement\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__.__esModule\n\t\t\t\t\tif (cjsModule && 'createCustomElement' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"].createCustomElement;\n\t\t\t\t\t} else if ('createCustomElement' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__.createCustomElement || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__[\"default\"].createCustomElement;\n\t\t\t\t} });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"Fragment\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__.__esModule\n\t\t\t\t\tif (cjsModule && 'Fragment' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"].Fragment;\n\t\t\t\t\t} else if ('Fragment' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__.Fragment || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"].Fragment;\n\t\t\t\t}, [\"createElement\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__.__esModule\n\t\t\t\t\tif (cjsModule && 'createElement' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"].createElement;\n\t\t\t\t\t} else if ('createElement' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__.createElement || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"].createElement;\n\t\t\t\t}, [\"createRef\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__.__esModule\n\t\t\t\t\tif (cjsModule && 'createRef' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"].createRef;\n\t\t\t\t\t} else if ('createRef' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__.createRef || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"].createRef;\n\t\t\t\t}, [\"default\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__.__esModule\n\t\t\t\t\tif (cjsModule && 'default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"];\n\t\t\t\t\t} else if ('default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__[\"default\"][\"default\"];\n\t\t\t\t} });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({  });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"t\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__.__esModule\n\t\t\t\t\tif (cjsModule && 't' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__[\"default\"].t;\n\t\t\t\t\t} else if ('t' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__.t || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__[\"default\"].t;\n\t\t\t\t} });","// private events called from within window manager\nexport const CREATE_WINDOW = 'PRIVATE#CREATE_WINDOW';\nexport const CLOSE_WINDOW = 'PRIVATE#CLOSE_WINDOW';\nexport const OPEN_WINDOW = 'PRIVATE#OPEN_WINDOW';\nexport const OPEN_DEBUG_WINDOW = 'PRIVATE#OPEN_DEBUG_WINDOW';\nexport const BROADCAST_MESSAGE = 'PRIVATE#BROADCAST_MESSAGE';\nexport const RELAY_MESSAGE = 'PRIVATE#RELAY_MESSAGE';\nexport const FOCUS_WINDOW = 'PRIVATE#FOCUS_WINDOW';\nexport const SET_HEADER_BUTTONS = 'PRIVATE#SET_HEADER_BUTTONS';\nexport const CHECK_WINDOW_LOCATIONS = 'PRIVATE#CHECK_WINDOW_LOCATIONS';\nexport const TOGGLE_DOCK = 'PRIVATE#TOGGLE_DOCK_STATE';\nexport const TOGGLE_MODAL_STATE = 'PRIVATE#TOGGLE_MODAL_STATE';\nexport const TOGGLE_MINIMIZE_STATE = 'PRIVATE#TOGGLE_MINIMIZE_STATE';\nexport const CLOSE_DOCK = 'PRIVATE#CLOSE_DOCK';\nexport const UPDATE_BODY_CLASS_NAMES = 'PRIVATE#UPDATE_BODY_CLASS_NAMES';\nexport const SCREEN_CHANGED = 'PRIVATE#SCREEN_CHANGED';\nexport const SET_DIRTY_STATE = 'PRIVATE#SET_DIRTY_STATE';\nexport const SET_WINDOW_PROPERTIES = 'PRIVATE#SET_WINDOW_PROPERTIES';\nexport const SN_WINDOW_DIALOG_CLOSE_CONFIRMED =\n\t'PRIVATE#SN_WINDOW_DIALOG_CLOSE_CONFIRMED';\nexport const UPDATE_BOTTOM_TOOLBAR_ELEMENTS =\n\t'PRIVATE#UPDATE_BOTTOM_TOOLBAR_ELEMENTS';\nexport const TOGGLE_OVERFLOW_POPOVER = 'PRIVATE#TOGGLE_OVERFLOW_POPOVER';\nexport const SET_OVERFLOW_BUTTON_REF = 'PRIVATE#SET_OVERFLOW_BUTTON_REF';\nexport const SN_WINDOW_DIALOG_CLOSE_CANCELED =\n\t'PRIVATE#SN_WINDOW_DIALOG_CLOSE_CANCELED';\nexport const UPDATE_MINIMIZED_TARGET_POSITION =\n\t'PRIVATE#UPDATE_MINIMIZED_TARGET_POSITION';\nexport const FOCUS_BOTTOM_TOOLBAR_REQUESTED =\n\t'PRIVATE#FOCUS_BOTTOM_TOOLBAR_REQUESTED';\n\n// generic publicly available events\nexport const WM_CREATE_WINDOW = 'SN_WINDOW_MANAGER#CREATE_WINDOW';\nexport const WM_CLOSE_WINDOW = 'SN_WINDOW_MANAGER#CLOSE_WINDOW';\nexport const WM_OPEN_WINDOW = 'SN_WINDOW_MANAGER#OPEN_WINDOW';\nexport const WM_CLOSE_DOCK = 'SN_WINDOW_MANAGER#CLOSE_DOCK';\nexport const WM_TOGGLE_DOCK = 'SN_WINDOW_MANAGER#TOGGLE_DOCK';\nexport const WM_TOGGLE_MODAL = 'SN_WINDOW_MANAGER#TOGGLE_MODAL';\nexport const WM_TOGGLE_MINIMIZED = 'SN_WINDOW_MANAGER#TOGGLE_MINIMIZED';\nexport const WM_RELAY_MESSAGE = 'SN_WINDOW_MANAGER#RELAY_MESSAGE';\nexport const WM_FOCUS_WINDOW = 'SN_WINDOW_MANAGER#FOCUS_WINDOW';\nexport const WM_SET_HEADER_BUTTONS = 'SN_WINDOW_MANAGER#SET_HEADER_BUTTONS';\nexport const WM_SET_DIRTY_STATE = 'SN_WINDOW_MANAGER#SET_DIRTY_STATE';\nexport const WM_SET_WINDOW_PROPERTIES =\n\t'SN_WINDOW_MANAGER#SET_WINDOW_PROPERTIES';\n\n// UIB<>UXF specific events\nexport const UXF_CREATE_MODELESS_WINDOW = 'UXF#CREATE_MODELESS_WINDOW';\nexport const UXF_SHOW_MODELESS_WINDOW = 'UXF#SHOW_MODELESS_WINDOW';\nexport const UXF_CLOSE_MODELESS_WINDOW = 'UXF#CLOSE_MODELESS_WINDOW';\nexport const UXF_MINIMIZE_MODELESS_WINDOW = 'UXF#MINIMIZE_MODELESS_WINDOW';\nexport const UXF_DIRTY_MODELESS_WINDOW = 'UXF#DIRTY_MODELESS_WINDOW';\nexport const UXF_UPDATE_MODELESS_WINDOW = 'UXF#UPDATE_MODELESS_WINDOW';\nexport const UXF_SELECT_MODELESS_WINDOW = 'UXF#SELECT_MODELESS_WINDOW';\nexport const UXF_WM_SCREEN_SELECTED = 'UXF#WM_SCREEN_SELECTED';\nexport const UXF_CLOSE_MODELESS_WINDOW_ON_STAGE =\n\t'UXF#CLOSE_MODELESS_WINDOW_ON_STAGE';\n\n// header button events sent from within a UIB or workspace page\nexport const UXF_FOCUS_WINDOW = 'UXF#FOCUS_WINDOW';\nexport const UXF_CLOSE_DOCK = 'UXF#CLOSE_DOCK';\nexport const UXF_TOGGLE_DOCK = 'UXF#TOGGLE_DOCK';\nexport const UXF_TOGGLE_MODAL = 'UXF#TOGGLE_MODAL_STATE';\nexport const UXF_TOGGLE_MINIMIZED = 'UXF#TOGGLE_MINIMIZED_STATE';\nexport const UXF_CLOSE_WINDOW = 'UXF#CLOSE_WINDOW';\nexport const UXF_OPEN_WINDOW = 'UXF#OPEN_WINDOW';\nexport const UXF_WINDOW_FOCUSED = 'UXF#WINDOW_FOCUSED';\n\n// AI Engagement actions\nexport const AIEL_NAVIGATION_REQUESTED = 'AIEL_NAVIGATION_REQUESTED';\nexport const GLOBAL_NAVIGATION_REQUESTED = 'GLOBAL_NAVIGATION_REQUESTED';\nexport const NAV_ITEM_SELECTED = 'NAV_ITEM_SELECTED';\n\n// Sidebar specific events\nexport const SIDEBAR_UNREAD_MESSAGE = 'SIDEBAR#UNREAD_MESSAGE';\nexport const SET_SIDEBAR_CHAT_PRIVATE = 'SIDEBAR#CHAT_PRIVATE';\n","export const clampDialogPosition = ({dialogLocation, dialogSize}) => {\n\tconst {left, top} = normalizeDialogLocation(dialogLocation, dialogSize);\n\tconst {width, height} = dialogSize;\n\n\t// Get viewport dimensions\n\tconst viewportWidth = window.innerWidth;\n\tconst viewportHeight = window.innerHeight;\n\n\t// Always resize to fit available space when needed\n\tconst clampedWidth = Math.min(width, viewportWidth);\n\tconst clampedHeight = Math.min(height, viewportHeight);\n\n\t// Calculate the maximum valid positions\n\tconst maxLeft = viewportWidth - clampedWidth;\n\tconst maxTop = viewportHeight - clampedHeight;\n\n\t// Ensure the dialog stays in bounds\n\tconst newLeft = Math.max(0, Math.min(left, maxLeft));\n\tconst newTop = Math.max(0, Math.min(top, maxTop));\n\n\treturn {\n\t\tleft: newLeft,\n\t\tright: viewportWidth - newLeft - clampedWidth,\n\t\ttop: newTop,\n\t\tbottom: viewportHeight - newTop - clampedHeight,\n\t\twidth: clampedWidth,\n\t\theight: clampedHeight,\n\t};\n};\n\n// Check if the window is in bounds\nexport const isWindowInBounds = (\n\tdialogSize,\n\tdialogLocation,\n\tviewportWidth,\n\tviewportHeight,\n) => {\n\tconst normalizedDialogLocation = normalizeDialogLocation(\n\t\tdialogLocation,\n\t\tdialogSize,\n\t);\n\n\tconst windowLocationValid =\n\t\tnormalizedDialogLocation.left >= 0 && normalizedDialogLocation.top >= 0;\n\tconst windowLocationInBounds =\n\t\tnormalizedDialogLocation.left + dialogSize.width <= viewportWidth &&\n\t\tnormalizedDialogLocation.top + dialogSize.height <= viewportHeight;\n\n\treturn windowLocationValid && windowLocationInBounds;\n};\n\n// Normalize the windows location so we don't have to worry about comparing different coordinate types for different windows\nexport const normalizeDialogLocation = (\n\tdialogLocation,\n\tdialogSize,\n\tcoordinateSystem = 'TL',\n) => {\n\tconst {top, left, bottom, right} = dialogLocation;\n\tconst {width, height} = dialogSize;\n\n\tswitch (coordinateSystem) {\n\t\tcase 'TL':\n\t\t\treturn {\n\t\t\t\t...(top !== undefined\n\t\t\t\t\t? {top}\n\t\t\t\t\t: {top: window.innerHeight - bottom - height}),\n\t\t\t\t...(left !== undefined\n\t\t\t\t\t? {left}\n\t\t\t\t\t: {left: window.innerWidth - right - width}),\n\t\t\t};\n\t\tcase 'BR':\n\t\t\treturn {\n\t\t\t\t...(bottom !== undefined\n\t\t\t\t\t? {bottom}\n\t\t\t\t\t: {bottom: window.innerHeight - top - height}),\n\t\t\t\t...(right !== undefined\n\t\t\t\t\t? {right}\n\t\t\t\t\t: {right: window.innerWidth - left - width}),\n\t\t\t};\n\t\tdefault:\n\t\t\treturn dialogLocation;\n\t}\n};\n\n// Check if two windows are overlapping\nexport const areWindowsOverlapping = (window1, window2) => {\n\t// Normalize the windows locations to use top/left\n\tconst normalizedWindow1 = normalizeDialogLocation(\n\t\twindow1.dialogLocation,\n\t\twindow1.dialogSize,\n\t);\n\tconst normalizedWindow2 = normalizeDialogLocation(\n\t\twindow2.dialogLocation,\n\t\twindow2.dialogSize,\n\t);\n\n\t// Check if both windows are open and their normalized positions are the same\n\tconst windowsAreOpen = window1.isOpen === true && window2.isOpen === true;\n\tconst windowsAreInSameLocation =\n\t\tnormalizedWindow1.left === normalizedWindow2.left &&\n\t\tnormalizedWindow1.top === normalizedWindow2.top;\n\n\treturn windowsAreOpen && windowsAreInSameLocation;\n};\n\nexport function findAvailableDialogPosition(\n\tinitialPosition,\n\twindowsList,\n\tdialogSize,\n\tbottomDockHeight = 0,\n\tnewWindowConfig = {},\n) {\n\tlet {top, left} = normalizeDialogLocation(initialPosition, dialogSize);\n\tconst {width, height} = dialogSize;\n\tconst offset = 52;\n\tconst maxLeft = window.innerWidth - width;\n\tconst maxTop = window.innerHeight - height - bottomDockHeight;\n\tconst newWindowsList = [...windowsList, newWindowConfig];\n\n\t//Start positions in case of wrap around\n\tlet startLeft = 0,\n\t\tstartTop = 0;\n\n\tlet isOccupied = true;\n\n\twhile (isOccupied) {\n\t\tconst clampedLeft = Math.max(0, Math.min(left, maxLeft));\n\t\tconst clampedTop = Math.max(0, Math.min(top, maxTop));\n\n\t\tisOccupied = newWindowsList.some(\n\t\t\t(window) =>\n\t\t\t\twindow.isOpen &&\n\t\t\t\twindow.dialogLocation.left === clampedLeft &&\n\t\t\t\twindow.dialogLocation.top === clampedTop,\n\t\t);\n\n\t\tif (!isOccupied) {\n\t\t\treturn {top: clampedTop, left: clampedLeft};\n\t\t}\n\n\t\tleft += offset;\n\t\ttop += offset;\n\n\t\t// Wrap around if bounds exceeded\n\t\tif (left > maxLeft && startLeft + offset <= maxLeft) {\n\t\t\tstartLeft += offset;\n\t\t\tleft = startLeft;\n\t\t}\n\n\t\tif (top > maxTop && startTop + offset <= maxTop) {\n\t\t\tstartTop += offset;\n\t\t\ttop = startTop;\n\t\t}\n\t}\n\treturn {\n\t\ttop: Math.max(0, Math.min(initialPosition.top, maxTop)),\n\t\tleft: Math.max(0, Math.min(initialPosition.left, maxLeft)),\n\t};\n}\n\n/**\n * Adjusts the dialog location of a window to account for the bottom dock height.\n * @param {Object} newWindowConfig - The window configuration object.\n * @param {number} bottomDockHeight - The height of the bottom dock, the div offsetHeight.\n * @returns {Object} The normalized adjusted dialog location: top & bottom.\n */\nexport const updateDialogLocationBottomDock = (\n\tnewWindowConfig,\n\tbottomDockHeight,\n) => {\n\tconst dialogHeight = newWindowConfig.autoResizableConfig\n\t\t.enableAutoResizableHeight\n\t\t? newWindowConfig.autoResizableConfig.autoResizableMinHeight\n\t\t: newWindowConfig.dialogSize.height;\n\n\tnewWindowConfig.dialogSize.height = dialogHeight;\n\n\tconst normalizedLocation = normalizeDialogLocation(\n\t\tnewWindowConfig.dialogLocation,\n\t\tnewWindowConfig.dialogSize,\n\t);\n\n\tif (\n\t\twindow.innerHeight -\n\t\t\tnormalizedLocation.top -\n\t\t\tnewWindowConfig.dialogSize.height <\n\t\tbottomDockHeight\n\t) {\n\t\tif (newWindowConfig.autoResizableConfig.enableAutoResizableHeight) {\n\t\t\treturn {\n\t\t\t\t...newWindowConfig.dialogLocation,\n\t\t\t\tbottom: newWindowConfig.offset[0] + bottomDockHeight,\n\t\t\t};\n\t\t} else {\n\t\t\treturn {\n\t\t\t\t...normalizedLocation,\n\t\t\t\ttop:\n\t\t\t\t\twindow.innerHeight -\n\t\t\t\t\tnewWindowConfig.dialogSize.height -\n\t\t\t\t\tnewWindowConfig.offset[0] -\n\t\t\t\t\tbottomDockHeight,\n\t\t\t};\n\t\t}\n\t} else {\n\t\treturn newWindowConfig.dialogLocation;\n\t}\n};\n\n/**\n * Focus an element with retry using requestAnimationFrame\n * Useful when element may not be immediately ready for focus\n * @param {HTMLElement} element - Element to focus\n * @param {number} maxRetries - Maximum number of retry attempts\n * @returns {Promise<boolean>} True if focus succeeded, false otherwise\n */\nexport const focusElementWithRetry = (element, maxRetries = 3) =>\n\tnew Promise((resolve) => {\n\t\tif (!element) {\n\t\t\tresolve(false);\n\t\t\treturn;\n\t\t}\n\n\t\tlet attempts = 0;\n\n\t\tconst attemptFocus = () => {\n\t\t\tattempts++;\n\n\t\t\ttry {\n\t\t\t\telement.focus();\n\t\t\t\t// If focus() doesn't throw, assume success\n\t\t\t\tresolve(true);\n\t\t\t} catch (_error) {\n\t\t\t\t// Retry if we haven't exceeded max attempts\n\t\t\t\tif (attempts < maxRetries) {\n\t\t\t\t\trequestAnimationFrame(attemptFocus);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(false);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trequestAnimationFrame(attemptFocus);\n\t});\n\nexport const isDeepEqual = (object1, object2) => {\n\tconst objKeys1 = Object.keys(object1);\n\tconst objKeys2 = Object.keys(object2);\n\n\tif (objKeys1.length !== objKeys2.length) {\n\t\treturn false;\n\t}\n\n\tfor (const key of objKeys1) {\n\t\tconst value1 = object1[key];\n\t\tconst value2 = object2[key];\n\n\t\tconst isObjects = isObject(value1) && isObject(value2);\n\t\tconst isFunctions = isFunction(value1) && isFunction(value2);\n\n\t\tif (\n\t\t\t(isObjects && !isDeepEqual(value1, value2)) ||\n\t\t\t(!isObjects && !isFunctions && value1 !== value2)\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n};\n\nconst isObject = (object) => object != null && typeof object === 'object';\n\nconst isFunction = (object) => object != null && typeof object === 'function';\n","import {normalizeDialogLocation} from '../../../sn-window-manager/utilities/helpers';\n\nexport const deepSearchElement = (selector, root = document.body) => {\n\tconst queue = [root];\n\twhile (queue.length > 0) {\n\t\tconst top = queue.shift();\n\t\tconst ele = top.querySelector(selector);\n\t\tif (ele) {\n\t\t\treturn ele;\n\t\t}\n\n\t\tconst topShadow = top.shadowRoot;\n\t\tif (topShadow) {\n\t\t\tqueue.push(topShadow);\n\t\t}\n\t\tconst allSearched = top.querySelectorAll('*');\n\t\tfor (let i = 0; i < allSearched.length; i++) {\n\t\t\tif (allSearched[i].shadowRoot) {\n\t\t\t\tqueue.push(allSearched[i].shadowRoot);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport const keepInBoundary = (\n\tcontainer,\n\tboundaryElement,\n\ttoolBar,\n\tdialogLocation,\n\tstrict = false,\n) => {\n\tconst WINDOW_OFFSET = 0;\n\tconst offset = strict ? WINDOW_OFFSET : 0;\n\tconst minSpacing = 0;\n\tconst {top, left} = dialogLocation;\n\n\tif (typeof container === 'string') {\n\t\t// eslint-disable-next-line no-param-reassign\n\t\tcontainer = deepSearchElement(`.${container}`);\n\t}\n\n\tif (!(container && boundaryElement)) {\n\t\treturn;\n\t}\n\n\tconst draggableRect = container.getBoundingClientRect();\n\tconst boundaryRec = boundaryElement.getBoundingClientRect();\n\n\t// Check against top of viewport\n\tif (draggableRect.top < boundaryRec.top + offset) {\n\t\tif (top) {\n\t\t\tcontainer.style.top = `${boundaryRec.top + WINDOW_OFFSET}px`;\n\t\t\tcontainer.style.bottom = 'auto';\n\t\t} else {\n\t\t\tcontainer.style.bottom = `${window.innerHeight - draggableRect.height - (boundaryRec.top + WINDOW_OFFSET)}px`;\n\t\t\tcontainer.style.top = 'auto';\n\t\t}\n\t}\n\t// If bottomtoolbar is open, check against its top boundary\n\telse if (toolBar && toolBar.classList.contains('opened')) {\n\t\tconst toolBarRect = toolBar.getBoundingClientRect();\n\t\tif (draggableRect.bottom > toolBarRect.top) {\n\t\t\tconst newTop = toolBarRect.top - draggableRect.height - minSpacing;\n\t\t\tif (top) {\n\t\t\t\tcontainer.style.top = `${newTop}px`;\n\t\t\t\tcontainer.style.bottom = 'auto';\n\t\t\t} else {\n\t\t\t\tcontainer.style.bottom = `${window.innerHeight - draggableRect.height - newTop}px`;\n\t\t\t\tcontainer.style.top = 'auto';\n\t\t\t}\n\t\t}\n\t}\n\t// Otherwise, check against the bottom of the viewport\n\telse if (draggableRect.bottom + offset > boundaryRec.bottom) {\n\t\tif (top) {\n\t\t\tcontainer.style.top = `${window.innerHeight - draggableRect.height - WINDOW_OFFSET}px`;\n\t\t\tcontainer.style.bottom = 'auto';\n\t\t} else {\n\t\t\tcontainer.style.bottom = `${WINDOW_OFFSET}px`;\n\t\t\tcontainer.style.top = 'auto';\n\t\t}\n\t}\n\n\tif (draggableRect.right + offset > boundaryRec.right) {\n\t\tif (left) {\n\t\t\tcontainer.style.left = `${window.innerWidth - draggableRect.width - WINDOW_OFFSET}px`;\n\t\t\tcontainer.style.right = 'auto';\n\t\t} else {\n\t\t\tcontainer.style.right = `${WINDOW_OFFSET}px`;\n\t\t\tcontainer.style.left = 'auto';\n\t\t}\n\t} else if (draggableRect.left < boundaryRec.left + offset) {\n\t\tif (left) {\n\t\t\tcontainer.style.left = `${boundaryRec.left + WINDOW_OFFSET}px`;\n\t\t\tcontainer.style.right = 'auto';\n\t\t} else {\n\t\t\tcontainer.style.right = `${window.innerWidth - draggableRect.width - (boundaryRec.left + WINDOW_OFFSET)}px`;\n\t\t\tcontainer.style.left = 'auto';\n\t\t}\n\t}\n};\n\nexport const shiftTo = (\n\tcontainer,\n\tnewX,\n\tnewY,\n\tdialogSize,\n\tdialogLocation,\n\ttoolBar,\n) => {\n\tconst {width, height} = dialogSize;\n\tconst {top, left} = dialogLocation;\n\n\tif (top) {\n\t\tcontainer.style.top = `${newY}px`;\n\t\tcontainer.style.bottom = 'auto';\n\t} else {\n\t\tcontainer.style.bottom = `${window.innerHeight - height - newY}px`;\n\t\tcontainer.style.top = 'auto';\n\t}\n\tif (left) {\n\t\tcontainer.style.left = `${newX}px`;\n\t\tcontainer.style.right = 'auto';\n\t} else {\n\t\tcontainer.style.right = `${window.innerWidth - width - newX}px`;\n\t\tcontainer.style.left = 'auto';\n\t}\n\n\tkeepInBoundary(container, document.body, toolBar, dialogLocation);\n};\n\nexport const resetWindowSize = (container) => {\n\tconst containerBounds = container.getBoundingClientRect();\n\n\tcontainer.style.width = `${containerBounds.width}px`;\n\tcontainer.style.height = `${containerBounds.height}px`;\n};\n\nexport function matchCoordinateSystemToClosingLocation(coeffects) {\n\tconst {\n\t\tproperties: {\n\t\t\tdialogSize,\n\t\t\tdialogLocation,\n\t\t\twindowConfig: {closeToElement},\n\t\t},\n\t\tdispatch,\n\t} = coeffects;\n\n\tdispatch('UPDATE_FLOATING_MENU_LOCATION', {\n\t\t...normalizeDialogLocation(\n\t\t\tdialogLocation,\n\t\t\tdialogSize,\n\t\t\tcloseToElement?.bottom !== undefined ? 'BR' : 'TL',\n\t\t),\n\t\tforceUpdate: true,\n\t});\n}\n\nexport const createHDSBoundsPayload = (\n\tbounds,\n\tmouseEvent = undefined,\n\tfullscreen = undefined,\n) => {\n\tconst payload = {\n\t\tpositions: {\n\t\t\tmouse: {\n\t\t\t\tX: mouseEvent\n\t\t\t\t\t? Math.floor(mouseEvent.clientX)\n\t\t\t\t\t: Math.floor(bounds.left + bounds.width / 2),\n\t\t\t\tY: mouseEvent\n\t\t\t\t\t? Math.floor(mouseEvent.clientY)\n\t\t\t\t\t: Math.floor(bounds.top + bounds.height / 2),\n\t\t\t},\n\t\t\toffset: {\n\t\t\t\tleft: Math.floor(bounds.left),\n\t\t\t\ttop: Math.floor(bounds.top),\n\t\t\t},\n\t\t},\n\t\tdimensions: {\n\t\t\twidth: Math.floor(bounds.width),\n\t\t\theight: Math.floor(bounds.height),\n\t\t},\n\t};\n\tif (fullscreen !== undefined) {\n\t\tpayload.fullscreen = fullscreen;\n\t}\n\treturn payload;\n};\n\nexport const dispatchModelessDialogAction = ({\n\tcontentElement,\n\twindowConfig,\n\tactionName,\n\tpayload,\n\tbounds,\n\tdialogSize,\n\tdialogLocation,\n\tmouseEvent,\n\tisFullscreen,\n}) => {\n\tif (!contentElement?.dispatch) {\n\t\treturn;\n\t}\n\n\tif (bounds) {\n\t\tcontentElement.dispatch(\n\t\t\tactionName,\n\t\t\tcreateHDSBoundsPayload(bounds, mouseEvent, isFullscreen),\n\t\t);\n\t} else if (dialogSize && dialogLocation) {\n\t\tconst constructedBounds = {\n\t\t\tleft:\n\t\t\t\tdialogLocation.left ??\n\t\t\t\twindow.innerWidth - dialogLocation.right - dialogSize.width,\n\t\t\ttop:\n\t\t\t\tdialogLocation.top ??\n\t\t\t\twindow.innerHeight - dialogLocation.bottom - dialogSize.height,\n\t\t\twidth: dialogSize.width,\n\t\t\theight: dialogSize.height,\n\t\t};\n\t\tcontentElement.dispatch(\n\t\t\tactionName,\n\t\t\tcreateHDSBoundsPayload(constructedBounds, mouseEvent, isFullscreen),\n\t\t);\n\t} else {\n\t\tcontentElement.dispatch(actionName, payload);\n\t}\n};\n","import {Fragment, createRef} from '@servicenow/ui-renderer-snabbdom';\nimport {t} from 'sn-translate';\nimport {\n\tCLOSE_WINDOW,\n\tOPEN_WINDOW,\n\tTOGGLE_MINIMIZE_STATE,\n\tTOGGLE_MODAL_STATE,\n\tTOGGLE_DOCK,\n\tUXF_TOGGLE_DOCK,\n\tUXF_TOGGLE_MODAL,\n\tUXF_TOGGLE_MINIMIZED,\n\tUXF_CLOSE_WINDOW,\n\tUXF_OPEN_WINDOW,\n} from '../../sn-window-manager/utilities/actions';\nimport {matchCoordinateSystemToClosingLocation} from '../behaviors/utils/helpers';\nimport {KEY_MOVEMENT_STEP_AMOUNT, KEY_MOVEMENT_STEP_MULTIPLIER} from '../behaviors/utils/keyboard-events';\n\n\nconst defaultButtonVariant = 'primary';\nconst touchEnhancedButtonSize = 'lg';\n\n// Only screens smaller than 421px will use touch enhanced buttons\nconst determineUseTouchEnhancedButtons = (coeffects) =>\n\tcoeffects?.properties?.browserDimensions?.width !== 0 &&\n\tcoeffects?.properties?.browserDimensions?.width < 421;\n\nexport const CustomHeaderButtonIconic = ({button, dispatch, coeffects}) => {\n\tlet ButtonComponent = null;\n\n\tif (button.type === 'element') {\n\t\treturn button.element;\n\t}\n\n\tswitch (button.type) {\n\t\tcase 'icon':\n\t\t\tButtonComponent = 'now-button-iconic';\n\t\t\tbreak;\n\t\tcase 'button':\n\t\t\tButtonComponent = 'now-button';\n\t\t\tbreak;\n\t\tcase 'toggle':\n\t\t\tButtonComponent = 'now-toggle';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tButtonComponent = button.type;\n\t}\n\n\treturn (\n\t\t<ButtonComponent\n\t\t\t{...button.properties}\n\t\t\tkey={button.id || null}\n\t\t\thide-padding\n\t\t\tsize={\n\t\t\t\tbutton.properties?.size ||\n\t\t\t\t(determineUseTouchEnhancedButtons(coeffects)\n\t\t\t\t\t? touchEnhancedButtonSize\n\t\t\t\t\t: coeffects.windowConfig.size)\n\t\t\t}\n\t\t\tbare\n\t\t\ticon={button.properties?.icon}\n\t\t\tvariant={defaultButtonVariant}\n\t\t\ttooltip-content={button.properties?.tooltipContent || button.label}\n\t\t\tconfigAria={\n\t\t\t\tbutton.properties?.configAria || {\n\t\t\t\t\tbutton: {\n\t\t\t\t\t\t'aria-label': button.properties?.tooltipContent || button.label,\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t\ton-click={() => {\n\t\t\t\tif (button.properties?.onClick) {\n\t\t\t\t\tbutton.properties?.onClick(button);\n\t\t\t\t} else {\n\t\t\t\t\tdispatch(button.action, button);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tappend-to-payload={button.properties?.appendToPayload || null}\n\t\t/>\n\t);\n};\n\nexport const CloseButton = ({coeffects}) => {\n\tconst {windowConfig, dispatch, useTouchEnhancedButtons} = coeffects;\n\tconst dispatchedEvent = windowConfig.isUXFWindow\n\t\t? UXF_CLOSE_WINDOW\n\t\t: CLOSE_WINDOW;\n\n\tconst tooltipLabel = windowConfig.closeButtonTooltip\n\t\t? windowConfig.closeButtonTooltip\n\t\t: t('Close {0}', windowConfig.headingLabel);\n\n\treturn (\n\t\t<now-button\n\t\t\tid=\"close-window\"\n\t\t\thide-padding\n\t\t\ticon={windowConfig?.closeIcon}\n\t\t\tsize={\n\t\t\t\tuseTouchEnhancedButtons ? touchEnhancedButtonSize : windowConfig.size\n\t\t\t}\n\t\t\tbare\n\t\t\tvariant={defaultButtonVariant}\n\t\t\ttooltip-content={tooltipLabel}\n\t\t\tconfigAria={{\n\t\t\t\tbutton: {\n\t\t\t\t\t'aria-label': tooltipLabel,\n\t\t\t\t},\n\t\t\t}}\n\t\t\tappend-to-payload={{\n\t\t\t\tbuttonAction: windowConfig.isUXFWindow ? 'close_window' : 'close',\n\t\t\t\twindowConfig,\n\t\t\t}}\n\t\t\ton-click={(e) => {\n\t\t\t\t// if this is a UXF window we need to listen for now_button click event in launcherBehavior\n\t\t\t\t// so we can pass along the meta info to the close window action\n\t\t\t\te.stopPropagation();\n\t\t\t\tif (!windowConfig.isUXFWindow) {\n\t\t\t\t\tmatchCoordinateSystemToClosingLocation(coeffects);\n\t\t\t\t\tdispatch(dispatchedEvent, {windowConfig, closedFromButton: true});\n\t\t\t\t}\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const OpenButton = (coeffects) => {\n\tconst {windowConfig, dispatch, useTouchEnhancedButtons} = coeffects;\n\tconst dispatchedEvent = windowConfig.isUXFWindow\n\t\t? UXF_OPEN_WINDOW\n\t\t: OPEN_WINDOW;\n\n\tconst tooltipLabel = t('Open {0}', windowConfig.headingLabel);\n\n\treturn (\n\t\t<now-button\n\t\t\tid=\"open-window\"\n\t\t\thide-padding\n\t\t\ticon=\"plus-outline\"\n\t\t\tsize={\n\t\t\t\tuseTouchEnhancedButtons ? touchEnhancedButtonSize : windowConfig.size\n\t\t\t}\n\t\t\tbare\n\t\t\tvariant={defaultButtonVariant}\n\t\t\ttooltip-content={tooltipLabel}\n\t\t\tconfigAria={{\n\t\t\t\tbutton: {\n\t\t\t\t\t'aria-label': tooltipLabel,\n\t\t\t\t},\n\t\t\t}}\n\t\t\ton-click={() => {\n\t\t\t\tdispatch(dispatchedEvent, {windowConfig});\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const BottomDockButton = ({coeffects}) => {\n\tconst {windowConfig, windowsState, dispatch} = coeffects;\n\tlet buttonId, buttonIcon, tooltipLabel;\n\n\tif (windowsState?.bottomDockId === windowConfig?.id) {\n\t\tbuttonId = 'undock';\n\t\tbuttonIcon = 'panel-display-popout-outline';\n\t\ttooltipLabel = t('Undock {0}', windowConfig.headingLabel);\n\t} else {\n\t\tbuttonId = 'bottom-dock';\n\t\tbuttonIcon = 'panel-display-bottom-outline';\n\t\ttooltipLabel = t('Dock {0} To Bottom', windowConfig.headingLabel);\n\t}\n\n\tconst dispatchedEvent = windowConfig.isUXFWindow\n\t\t? UXF_TOGGLE_DOCK\n\t\t: TOGGLE_DOCK;\n\n\treturn (\n\t\t<now-button\n\t\t\tid={buttonId}\n\t\t\thide-padding\n\t\t\ticon={buttonIcon}\n\t\t\tsize={\n\t\t\t\tdetermineUseTouchEnhancedButtons(coeffects)\n\t\t\t\t\t? touchEnhancedButtonSize\n\t\t\t\t\t: windowConfig.size\n\t\t\t}\n\t\t\tbare\n\t\t\tvariant={defaultButtonVariant}\n\t\t\ttooltip-content={tooltipLabel}\n\t\t\tconfigAria={{\n\t\t\t\tbutton: {\n\t\t\t\t\t'aria-label': tooltipLabel,\n\t\t\t\t},\n\t\t\t}}\n\t\t\ton-click={() => {\n\t\t\t\tdispatch(dispatchedEvent, {windowConfig, dockLocation: 'bottom'});\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const LeftDockButton = ({coeffects}) => {\n\tconst {\n\t\twindowConfig,\n\t\twindowsState,\n\t\tdispatch,\n\t\tproperties: {showHorizontalDockOptions},\n\t} = coeffects;\n\tconst isRTL = document.dir === 'rtl';\n\tconst isDocked =\n\t\twindowsState?.[isRTL ? 'rightDockId' : 'leftDockId'] === windowConfig?.id;\n\n\tlet buttonId, buttonIcon, dockTooltip;\n\n\tif (isDocked) {\n\t\tbuttonId = 'undock';\n\t\tbuttonIcon = `${windowConfig.dockConfig.dockRightIcon}-fill`;\n\t\tdockTooltip = t('Unpin {0}', windowConfig.headingLabel);\n\t} else {\n\t\tbuttonIcon = `${windowConfig.dockConfig.dockRightIcon}-outline`;\n\n\t\t// If we don't have multiple dock options, just specify that we are pinning\n\t\tif (!showHorizontalDockOptions) {\n\t\t\tbuttonId = 'pin';\n\t\t\tdockTooltip = t('Pin {0}', windowConfig.headingLabel);\n\t\t} else {\n\t\t\t// Case on which side we are pinning to based on RTL\n\t\t\tif (isRTL) {\n\t\t\t\tbuttonId = 'right-dock';\n\t\t\t\tdockTooltip = t('Pin {0} right', windowConfig.headingLabel);\n\t\t\t} else {\n\t\t\t\tbuttonId = 'left-dock';\n\t\t\t\tdockTooltip = t('Pin {0} left', windowConfig.headingLabel);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst dispatchedEvent = windowConfig.isUXFWindow\n\t\t? UXF_TOGGLE_DOCK\n\t\t: TOGGLE_DOCK;\n\n\treturn (\n\t\t<now-button\n\t\t\tclass={{\n\t\t\t\t'singular-dock-button': !showHorizontalDockOptions && !isDocked,\n\t\t\t\t'left-dock-button':\n\t\t\t\t\t(!showHorizontalDockOptions && isDocked) || showHorizontalDockOptions,\n\t\t\t}}\n\t\t\tid={buttonId}\n\t\t\thide-padding\n\t\t\ticon={buttonIcon}\n\t\t\tsize={\n\t\t\t\tdetermineUseTouchEnhancedButtons(coeffects)\n\t\t\t\t\t? touchEnhancedButtonSize\n\t\t\t\t\t: windowConfig.size\n\t\t\t}\n\t\t\tbare\n\t\t\tvariant={defaultButtonVariant}\n\t\t\ttooltip-content={dockTooltip}\n\t\t\tconfigAria={{\n\t\t\t\tbutton: {\n\t\t\t\t\t'aria-label': dockTooltip,\n\t\t\t\t},\n\t\t\t}}\n\t\t\ton-click={(e) => {\n\t\t\t\tdispatch(dispatchedEvent, {\n\t\t\t\t\twindowConfig,\n\t\t\t\t\tdockLocation: isRTL ? 'right' : 'left',\n\t\t\t\t});\n\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const RightDockButton = ({coeffects}) => {\n\tconst {\n\t\twindowConfig,\n\t\twindowsState,\n\t\tdispatch,\n\t\tproperties: {showHorizontalDockOptions},\n\t} = coeffects;\n\tconst isRTL = document.dir === 'rtl';\n\tconst isDocked =\n\t\twindowsState[isRTL ? 'leftDockId' : 'rightDockId'] === windowConfig?.id;\n\n\tlet buttonId, buttonIcon, dockTooltip;\n\n\tif (isDocked) {\n\t\tbuttonId = 'undock';\n\t\tbuttonIcon = `${windowConfig.dockConfig.dockRightIcon}-fill`;\n\t\tdockTooltip = t('Unpin {0}', windowConfig.headingLabel);\n\t} else {\n\t\tbuttonIcon = `${windowConfig.dockConfig.dockRightIcon}-outline`;\n\n\t\t// If we don't have multiple dock options, just specify that we are pinning\n\t\tif (!showHorizontalDockOptions) {\n\t\t\tbuttonId = 'pin';\n\t\t\tdockTooltip = t('Pin {0}', windowConfig.headingLabel);\n\t\t} else {\n\t\t\t// Case on which side we are pinning to based on RTL\n\t\t\tif (isRTL) {\n\t\t\t\tbuttonId = 'left-dock';\n\t\t\t\tdockTooltip = t('Pin {0} left', windowConfig.headingLabel);\n\t\t\t} else {\n\t\t\t\tbuttonId = 'right-dock';\n\t\t\t\tdockTooltip = t('Pin {0} right', windowConfig.headingLabel);\n\t\t\t}\n\t\t}\n\t}\n\n\tconst dispatchedEvent = windowConfig.isUXFWindow\n\t\t? UXF_TOGGLE_DOCK\n\t\t: TOGGLE_DOCK;\n\n\treturn (\n\t\t<now-button\n\t\t\tclass={{\n\t\t\t\t'singular-dock-button': !showHorizontalDockOptions && !isDocked,\n\t\t\t\t'right-dock-button':\n\t\t\t\t\t(!showHorizontalDockOptions && isDocked) || showHorizontalDockOptions,\n\t\t\t}}\n\t\t\tid={buttonId}\n\t\t\thide-padding\n\t\t\ticon={buttonIcon}\n\t\t\tsize={\n\t\t\t\tdetermineUseTouchEnhancedButtons(coeffects)\n\t\t\t\t\t? touchEnhancedButtonSize\n\t\t\t\t\t: windowConfig.size\n\t\t\t}\n\t\t\tbare\n\t\t\tvariant={defaultButtonVariant}\n\t\t\ttooltip-content={dockTooltip}\n\t\t\tconfigAria={{\n\t\t\t\tbutton: {\n\t\t\t\t\t'aria-label': dockTooltip,\n\t\t\t\t},\n\t\t\t}}\n\t\t\ton-click={(e) => {\n\t\t\t\tdispatch(dispatchedEvent, {\n\t\t\t\t\twindowConfig,\n\t\t\t\t\tdockLocation: isRTL ? 'left' : 'right',\n\t\t\t\t});\n\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const ToggleModalButton = ({coeffects}) => {\n\tconst {windowConfig, properties, dispatch} = coeffects;\n\tlet buttonId, buttonIcon, tooltipLabel;\n\n\tif (properties?.isModal) {\n\t\tbuttonId = 'leave-modal';\n\t\tbuttonIcon = 'collapse-outline';\n\t\ttooltipLabel = t('Leave Modal');\n\t} else {\n\t\tbuttonId = 'enter-modal';\n\t\tbuttonIcon = 'expand-outline';\n\t\ttooltipLabel = t('Enter Modal');\n\t}\n\n\tconst dispatchedEvent = windowConfig.isUXFWindow\n\t\t? UXF_TOGGLE_MODAL\n\t\t: TOGGLE_MODAL_STATE;\n\n\treturn (\n\t\t<now-button\n\t\t\tid={buttonId}\n\t\t\thide-padding\n\t\t\ticon={buttonIcon}\n\t\t\tsize={\n\t\t\t\tdetermineUseTouchEnhancedButtons(coeffects)\n\t\t\t\t\t? touchEnhancedButtonSize\n\t\t\t\t\t: windowConfig.size\n\t\t\t}\n\t\t\tbare\n\t\t\tvariant={defaultButtonVariant}\n\t\t\ttooltip-content={tooltipLabel}\n\t\t\tconfigAria={{\n\t\t\t\tbutton: {\n\t\t\t\t\t'aria-label': tooltipLabel,\n\t\t\t\t},\n\t\t\t}}\n\t\t\ton-click={() => {\n\t\t\t\tdispatch(dispatchedEvent, {windowConfig});\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const MinimizeWindowButton = ({coeffects}) => {\n\tconst {windowConfig, windowsState, dispatch} = coeffects;\n\tconst currMinimizedWidows = windowsState.minimizedWindows || [];\n\tconst isMinimized = currMinimizedWidows.includes(windowConfig.id);\n\n\tlet buttonId, buttonIcon, tooltipLabel;\n\tif (isMinimized) {\n\t\tbuttonId = 'maximize';\n\t\tbuttonIcon = 'maximize-outline';\n\t\ttooltipLabel = t('Restore {0}', windowConfig.headingLabel);\n\t} else {\n\t\tbuttonId = 'minimize';\n\t\tbuttonIcon = 'minimize-outline';\n\t\ttooltipLabel = t('Minimize {0}', windowConfig.headingLabel);\n\t}\n\n\tconst dispatchedEvent = windowConfig.isUXFWindow\n\t\t? UXF_TOGGLE_MINIMIZED\n\t\t: TOGGLE_MINIMIZE_STATE;\n\n\treturn (\n\t\t<now-button\n\t\t\tid={buttonId}\n\t\t\thide-padding\n\t\t\ticon={buttonIcon}\n\t\t\tsize={\n\t\t\t\tdetermineUseTouchEnhancedButtons(coeffects)\n\t\t\t\t\t? touchEnhancedButtonSize\n\t\t\t\t\t: windowConfig.size\n\t\t\t}\n\t\t\tbare\n\t\t\tvariant={defaultButtonVariant}\n\t\t\ttooltip-content={tooltipLabel}\n\t\t\tconfigAria={{\n\t\t\t\tbutton: {\n\t\t\t\t\t'aria-label': tooltipLabel,\n\t\t\t\t},\n\t\t\t}}\n\t\t\ton-click={() => {\n\t\t\t\tdispatch(dispatchedEvent, {windowConfig});\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const DragButton = ({coeffects}) => {\n\tconst {windowConfig, dispatch, state, updateState} = coeffects;\n\n\tconst buttonIcon = 'grid-vertical-outline';\n\n\tconst tooltipContent = state?.isDragModeEnabled\n\t\t? t('Use arrow keys to move by {0} pixels. Hold SHIFT to move by {1} pixels.', KEY_MOVEMENT_STEP_AMOUNT, KEY_MOVEMENT_STEP_AMOUNT * KEY_MOVEMENT_STEP_MULTIPLIER)\n\t\t: t('Press SPACE to enable dragging.');\n\n\tconst setTargetRef = (ref) => setTimeout(() => updateState({targetRef: ref}));\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<now-button\n\t\t\t\tid=\"drag-button\"\n\t\t\t\thook-insert={({elm}) => setTargetRef(elm)}\n\t\t\t\thook-destroy={() => setTargetRef(null)}\n\t\t\t\tclassName=\"accessibility-drag-button\"\n\t\t\t\thide-padding\n\t\t\t\ticon={buttonIcon}\n\t\t\t\tsize={\n\t\t\t\t\tdetermineUseTouchEnhancedButtons(coeffects)\n\t\t\t\t\t\t? touchEnhancedButtonSize\n\t\t\t\t\t\t: windowConfig.size\n\t\t\t\t}\n\t\t\t\tbare\n\t\t\t\tvariant={defaultButtonVariant}\n\t\t\t\tconfigAria={{\n\t\t\t\t\tbutton: {\n\t\t\t\t\t\t'aria-label': tooltipContent,\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\ton-click={() => {\n\t\t\t\t\tdispatch('TOGGLE_DRAG_MODE');\n\t\t\t\t}}\n\t\t\t\ton-blur={() => {\n\t\t\t\t\tdispatch('TOGGLE_DRAG_MODE', {enabled: false});\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t{state?.targetRef ? (\n\t\t\t\t<now-tooltip target-ref={state.targetRef} content={tooltipContent} />\n\t\t\t) : null}\n\t\t</Fragment>\n\t);\n};\n","import {shiftTo} from './helpers';\nexport const KEY_MOVEMENT_STEP_AMOUNT = 5;\nexport const KEY_MOVEMENT_STEP_MULTIPLIER = 10;\n\nexport const keyPressed = (e, state, dispatch, bottomToolBar) => {\n\tconst {dragContainerElement} = state;\n\n\tconst origLeft = dragContainerElement.offsetLeft;\n\tconst origTop = dragContainerElement.offsetTop;\n\tlet newLeft = origLeft;\n\tlet newTop = origTop;\n\n\tconst isShift = e.shiftKey;\n\n\tif (e.key === 'ArrowUp') {\n\t\tnewTop =\n\t\t\tnewTop -\n\t\t\t(isShift ? KEY_MOVEMENT_STEP_AMOUNT * KEY_MOVEMENT_STEP_MULTIPLIER : KEY_MOVEMENT_STEP_AMOUNT);\n\t} else if (e.key === 'ArrowDown') {\n\t\tnewTop =\n\t\t\tnewTop +\n\t\t\t(isShift ? KEY_MOVEMENT_STEP_AMOUNT * KEY_MOVEMENT_STEP_MULTIPLIER : KEY_MOVEMENT_STEP_AMOUNT);\n\t}\n\n\tif (e.key === 'ArrowLeft') {\n\t\tnewLeft =\n\t\t\tnewLeft -\n\t\t\t(isShift ? KEY_MOVEMENT_STEP_AMOUNT * KEY_MOVEMENT_STEP_MULTIPLIER : KEY_MOVEMENT_STEP_AMOUNT);\n\t} else if (e.key === 'ArrowRight') {\n\t\tnewLeft =\n\t\t\tnewLeft +\n\t\t\t(isShift ? KEY_MOVEMENT_STEP_AMOUNT * KEY_MOVEMENT_STEP_MULTIPLIER : KEY_MOVEMENT_STEP_AMOUNT);\n\t} else if (e.key === 'Escape') {\n\t\tdispatch('TOGGLE_DRAG_MODE', {enabled: false});\n\t\treturn;\n\t}\n\n\tif (origLeft !== newLeft || origTop !== newTop) {\n\t\tshiftTo(\n\t\t\tdragContainerElement,\n\t\t\tnewLeft,\n\t\t\tnewTop,\n\t\t\tstate.properties.dialogSize,\n\t\t\tstate.properties.dialogLocation,\n\t\t\tbottomToolBar,\n\t\t);\n\t}\n};\n","// standard actions for the SN_WINDOW\nexport const SN_WINDOW_OPENED = 'SN_WINDOW#WINDOW_OPENED';\nexport const SN_WINDOW_CLOSED = 'SN_WINDOW#WINDOW_CLOSED';\nexport const SN_WINDOW_CREATED = 'SN_WINDOW#WINDOW_CREATED';\nexport const SN_WINDOW_FOCUSED = 'SN_WINDOW#WINDOW_FOCUSED';\nexport const SN_WINDOW_MODALIZED = 'SN_WINDOW#WINDOW_MODALIZED';\nexport const SN_WINDOW_DOCKED = 'SN_WINDOW#WINDOW_DOCKED';\nexport const SN_WINDOW_MINIMIZED = 'SN_WINDOW#WINDOW_MINIMIZED';\nexport const SN_WINDOW_CHECK_LOCATION = 'SN_WINDOW#CHECK_LOCATION';\nexport const SN_WINDOW_START_DRAG = 'SN_WINDOW#START_DRAG';\nexport const SN_WINDOW_END_DRAG = 'SN_WINDOW#END_DRAG';\nexport const SN_WINDOW_KEY_PRESSED = 'SN_WINDOW#KEY_PRESSED';\nexport const SN_WINDOW_SET_DIRTY_STATE = 'SN_WINDOW#SET_DIRTY_STATE';\nexport const SN_WINDOW_DIRTY_STATE_SET = 'SN_WINDOW#DIRTY_STATE_SET';\nexport const SN_WINDOW_SET_WINDOW_SIZE = 'SN_WINDOW#SET_WINDOW_SIZE';\nexport const SN_WINDOW_SET_DOCKED_WINDOW_SIZE =\n\t'SN_WINDOW#SET_DOCKED_WINDOW_SIZE';\nexport const SN_WINDOW_SET_WINDOW_PROPERTIES =\n\t'SN_WINDOW#SET_WINDOW_PROPERTIES';\n\n// HDS: Modeless Dialog Action Constants for backwards compatability\nexport const NOW_MODELESS_DIALOG_MOUSEDOWN = 'NOW_MODELESS_DIALOG#MOUSEDOWN';\nexport const NOW_MODELESS_DIALOG_MOUSEUP = 'NOW_MODELESS_DIALOG#MOUSEUP';\nexport const NOW_MODELESS_DIALOG_OPENED_SET = 'NOW_MODELESS_DIALOG#OPENED_SET';\nexport const NOW_MODELESS_DIALOG_CLOSE = 'NOW_MODELESS_DIALOG#CLOSE';\nexport const NOW_MODELESS_DIALOG_MAXIMIZE = 'NOW_MODELESS_DIALOG#MAXIMIZE';\nexport const NOW_MODELESS_DIALOG_MINIMIZE = 'NOW_MODELESS_DIALOG#MINIMIZE';\nexport const NOW_MODELESS_DIALOG_RESIZABLE_END =\n\t'NOW_MODELESS_DIALOG#RESIZABLE_END';\nexport const NOW_MODELESS_DIALOG_CONTENT_VISIBLE =\n\t'NOW_MODELESS_DIALOG#CONTENT_VISIBLE';\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"getComponentsByTagNames\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__.__esModule\n\t\t\t\t\tif (cjsModule && 'getComponentsByTagNames' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"].getComponentsByTagNames;\n\t\t\t\t\t} else if ('getComponentsByTagNames' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__.getComponentsByTagNames || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"].getComponentsByTagNames;\n\t\t\t\t} });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"PREFERENCES\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__.__esModule\n\t\t\t\t\tif (cjsModule && 'PREFERENCES' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"].PREFERENCES;\n\t\t\t\t\t} else if ('PREFERENCES' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__.PREFERENCES || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"].PREFERENCES;\n\t\t\t\t}, [\"getBooleanPreferenceValue\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__.__esModule\n\t\t\t\t\tif (cjsModule && 'getBooleanPreferenceValue' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"].getBooleanPreferenceValue;\n\t\t\t\t\t} else if ('getBooleanPreferenceValue' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__.getBooleanPreferenceValue || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"].getBooleanPreferenceValue;\n\t\t\t\t} });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"debounce\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__.__esModule\n\t\t\t\t\tif (cjsModule && 'debounce' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"].debounce;\n\t\t\t\t\t} else if ('debounce' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__.debounce || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"].debounce;\n\t\t\t\t} });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__.__esModule\n\t\t\t\t\tif (cjsModule && 'default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__[\"default\"][\"default\"];\n\t\t\t\t\t} else if ('default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__[\"default\"] || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__[\"default\"][\"default\"];\n\t\t\t\t} });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__.__esModule\n\t\t\t\t\tif (cjsModule && 'default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"];\n\t\t\t\t\t} else if ('default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"];\n\t\t\t\t}, [\"getFocusableNodes\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__.__esModule\n\t\t\t\t\tif (cjsModule && 'getFocusableNodes' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"].getFocusableNodes;\n\t\t\t\t\t} else if ('getFocusableNodes' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__.getFocusableNodes || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"].getFocusableNodes;\n\t\t\t\t} });","export const PORTAL_TYPES = {\n\tUNIFIED_NAVIGATION: 'unified-navigation',\n\tSERVICE_PORTAL: 'service-portal',\n\tEXAMPLE_APP: 'example-app',\n};\n","/* eslint-disable no-console */\nimport {getComponentsByTagNames} from '@devsnc/library-uxf';\nimport {getBooleanPreferenceValue, PREFERENCES} from '@devsnc/unav-utils';\nimport {debounce} from '@devsnc/snowdash';\nimport DOMPurify from 'dompurify';\n\nimport {\n\tCLOSE_WINDOW,\n\tCREATE_WINDOW,\n\tOPEN_DEBUG_WINDOW,\n\tOPEN_WINDOW,\n\tRELAY_MESSAGE,\n\tBROADCAST_MESSAGE,\n\tTOGGLE_MODAL_STATE,\n\tCLOSE_DOCK,\n\tTOGGLE_DOCK,\n\tUPDATE_BODY_CLASS_NAMES,\n\tCHECK_WINDOW_LOCATIONS,\n\tSET_HEADER_BUTTONS,\n\tTOGGLE_MINIMIZE_STATE,\n\tSCREEN_CHANGED,\n\tSET_DIRTY_STATE,\n\tFOCUS_WINDOW,\n\tSET_WINDOW_PROPERTIES,\n\tUPDATE_BOTTOM_TOOLBAR_ELEMENTS,\n} from './actions';\n\nimport {\n\tareWindowsOverlapping,\n\tclampDialogPosition,\n\tfindAvailableDialogPosition,\n\tisWindowInBounds,\n\tupdateDialogLocationBottomDock,\n\tfocusElementWithRetry,\n\tisDeepEqual,\n} from './helpers';\nimport {getFocusableNodes} from '@servicenow/behavior-focus';\n\nimport {PORTAL_TYPES} from './constants';\nimport {\n\tSN_WINDOW_CHECK_LOCATION,\n\tSN_WINDOW_CLOSED,\n\tSN_WINDOW_MINIMIZED,\n\tSN_WINDOW_OPENED,\n\tNOW_MODELESS_DIALOG_MOUSEDOWN,\n\tNOW_MODELESS_DIALOG_MOUSEUP,\n\tNOW_MODELESS_DIALOG_OPENED_SET,\n\tNOW_MODELESS_DIALOG_CLOSE,\n\tNOW_MODELESS_DIALOG_MAXIMIZE,\n\tNOW_MODELESS_DIALOG_MINIMIZE,\n} from '../../sn-window/actions';\nimport {dispatchModelessDialogAction} from '../../sn-window/behaviors/utils/helpers';\n\nfunction createGuid() {\n\treturn 'xxxxxxxx'.replace(/[xy]/g, function (c) {\n\t\tconst r = (Math.random() * 16) | 0,\n\t\t\tv = c === 'x' ? r : (r & 0x3) | 0x8;\n\t\treturn v.toString(16);\n\t});\n}\n\nconst ensureArray = (value) =>\n\tArray.isArray(value)\n\t\t? value\n\t\t: typeof value === 'string'\n\t\t\t? JSON.parse(value)\n\t\t\t: (value ?? [0, 0]);\n\nconst normalizeDialogSize = (dialogSize) => {\n\tif (!dialogSize) {\n\t\treturn {width: 320, height: 480};\n\t}\n\n\tconst convertValue = (value, dimension) => {\n\t\t// Convert percentage values to pixels based on browser window size\n\t\tif (typeof value === 'string' && value.endsWith('%')) {\n\t\t\tconst percentage = parseFloat(value) / 100;\n\t\t\tconst browserSize =\n\t\t\t\tdimension === 'width' ? window.innerWidth : window.innerHeight;\n\t\t\treturn Math.round(browserSize * percentage);\n\t\t}\n\t\treturn value;\n\t};\n\n\treturn {\n\t\twidth: convertValue(dialogSize.width, 'width') ?? 320,\n\t\theight: convertValue(dialogSize.height, 'height') ?? 480,\n\t};\n};\n// DOMPurify to strip HTML, then decode entities, replace BBCode tags\nconst sanitizeHtmlString = (str) => {\n\tconst sanitized = DOMPurify.sanitize(str, {ALLOWED_TAGS: []});\n\treturn decodeEntities(sanitized)\n\t\t.replace(/\\[\\/?\\w+]/g, '')\n\t\t.trim();\n};\n\n//Copied from polaris-app-shell\nfunction decodeEntities(str) {\n\tif (!str || !str.length) {\n\t\treturn '';\n\t}\n\treturn str.replace(/&(#?[\\w\\d]+);?/g, function (match, token) {\n\t\t// Consider tokens only starting with '#'\n\t\tif (token.charAt(0) === '#') {\n\t\t\tlet charCode;\n\n\t\t\t// If the token starts with 'x', parse token as hexadecimal else consider decimal.\n\t\t\tif (token.charAt(1) === 'x') {\n\t\t\t\tcharCode = parseInt(token.substr(2).toLowerCase(), 16);\n\t\t\t} else {\n\t\t\t\tcharCode = parseInt(token.substr(1));\n\t\t\t}\n\n\t\t\t// Character code must be a number and should lie between the valid range\n\t\t\tif (!isNaN(charCode) && charCode >= -32768 && charCode <= 65535) {\n\t\t\t\t// convert code to corresponding character symbol\n\t\t\t\treturn String.fromCharCode(charCode) || match;\n\t\t\t}\n\t\t}\n\n\t\t// Decode common named entities\n\t\tconst namedEntities = {\n\t\t\tamp: '&',\n\t\t\tlt: '<',\n\t\t\tgt: '>',\n\t\t\tquot: '\"',\n\t\t\tapos: \"'\",\n\t\t\tnbsp: ' ',\n\t\t};\n\t\treturn namedEntities[token] || match;\n\t});\n}\n\nconst newWindowDataConfig = (payload, portalType) => ({\n\tid: payload.id || createGuid(),\n\theadingLabel: payload.title ? sanitizeHtmlString(payload.title) : '',\n\tpinnedHeaderHeight: payload.pinnedHeaderHeight || '52px',\n\tisUXFWindow: payload.isUXFWindow || false,\n\tisOpen: payload.isOpen !== undefined ? payload.isOpen : true,\n\tposition: payload.position || 'centered',\n\tcanDrag: payload.canDrag !== undefined ? payload.canDrag : true,\n\tcanResize: payload.canResize !== undefined ? payload.canResize : true,\n\tcanMinimize:\n\t\tportalType === PORTAL_TYPES.SERVICE_PORTAL\n\t\t\t? false\n\t\t\t: payload.canMinimize !== undefined\n\t\t\t\t? payload.canMinimize\n\t\t\t\t: false,\n\tcanMaximize: payload.canMaximize !== undefined ? payload.canMaximize : false,\n\tcanClose: payload.canClose !== undefined ? payload.canClose : true,\n\tcloseIcon: payload?.closeIcon ?? 'close-outline',\n\tcloseToTop: payload.closeToTop !== undefined ? payload.closeToTop : false,\n\tcloseToElement:\n\t\tpayload.closeToElement !== undefined ? payload.closeToElement : null,\n\tcanDock: payload.canDock !== undefined ? payload.canDock : false,\n\tstartingState: payload.startingState || 'floating',\n\tisGlobalWindow:\n\t\tpayload.isGlobalWindow !== undefined ? payload.isGlobalWindow : true,\n\tscreenKey: payload.screenKey || null,\n\tinstanceId: payload.instanceId || null,\n\texperienceId: payload.experienceId || null,\n\tuxrComponentId: payload.componentId || null,\n\tcategory: payload.category || null,\n\tminimizedTitle: payload.minimizedTitle\n\t\t? sanitizeHtmlString(payload.minimizedTitle)\n\t\t: '',\n\tmodelessDialogControllerId: payload.modelessDialogControllerId || null,\n\toffset: ensureArray(payload.offset || [0, 0]),\n\tdockConfig: {\n\t\tdockRight: payload.dockConfig?.dockRight ?? true,\n\t\tdockLeft: payload.dockConfig?.dockLeft ?? true,\n\t\tdockBottom: payload.dockConfig?.dockBottom ?? false,\n\t\tdockRightIcon: payload.dockConfig?.dockRightIcon ?? 'thumbtack',\n\t\tdockLeftIcon: payload.dockConfig?.dockLeftIcon ?? 'thumbtack',\n\t},\n\tcanToggleModal:\n\t\tpayload.canToggleModal !== undefined ? payload.canToggleModal : false,\n\tfullscreenViewConfig: {\n\t\tmodalThresholds: {\n\t\t\twidth: payload.fullscreenViewConfig?.modalThresholds?.width || 641,\n\t\t\theight: payload.fullscreenViewConfig?.modalThresholds?.height || -1,\n\t\t},\n\t\tstandardThresholds: {\n\t\t\twidth: payload.fullscreenViewConfig?.standardThresholds?.width || 421,\n\t\t\theight: payload.fullscreenViewConfig?.standardThresholds?.height || 650,\n\t\t},\n\t},\n\tisPersistent: payload.isPersistent || false,\n\theaderButtons: payload.headerButtons || [],\n\tisModal: payload.isModal || payload.startingState === 'modal' || false,\n\theaderIcon: {\n\t\ticon: payload.headerIcon?.icon || null,\n\t\tsize: payload.headerIcon?.size || 'lg',\n\t},\n\tdialogSize: normalizeDialogSize(payload.dialogSize),\n\tdialogLocation: {\n\t\ttop: payload.dialogLocation?.top ?? -1,\n\t\tbottom: payload.dialogLocation?.bottom ?? -1,\n\t\tleft: payload.dialogLocation?.left ?? -1,\n\t\tright: payload.dialogLocation?.right ?? -1,\n\t},\n\tdockedWindowSize: payload.dockedWindowSize || 320,\n\tmodalSize: {\n\t\twidth: payload.modalSize?.width || '95%',\n\t\theight: payload.modalSize?.height || '85%',\n\t},\n\tcontent: {\n\t\tcomponent: payload.content?.component || null,\n\t\tproperties: payload.content?.properties || null,\n\t},\n\tresizableConfig: payload.resizableConfig || {\n\t\tenableResizable: payload.canResize !== undefined ? payload.canResize : true,\n\t\tresizableMinWidth: 320,\n\t\tresizableMinHeight: 280,\n\t\tresizableMaxWidth: payload.resizableConfig?.resizableMaxWidth || null,\n\t\tresizableMaxHeight: payload.resizableConfig?.resizableMaxHeight || null,\n\t\tcontext: 'float',\n\t},\n\t// Store percentage values separately (not in resizableConfig) for browser resize calculations\n\tmaxWindowSizePercentage: payload.maxWindowSizePercentage || null,\n\tautoResizableConfig: payload.autoResizableConfig || {\n\t\tenableAutoResizableHeight: false,\n\t},\n\tvariant: payload.variant || 'secondary',\n\tfitContent:\n\t\t(payload.content?.component !== null && payload.fitContent) || false,\n\tsize: payload.size || 'md',\n\tconfigAria: payload.configAria || {},\n\tstateChangeCallback: payload.stateChangeCallback || null,\n\tmodalOverlayClickEnabled: payload.modalOverlayClickEnabled || false,\n\treopenAsFloatingWindow: payload.reopenAsFloatingWindow || false,\n\tcloseButtonTooltip: payload.closeButtonTooltip || null,\n\tconfirmClose: payload.confirmClose || false,\n\tconfirmCloseMessage: payload.confirmCloseMessage || null,\n\thideHeadingDivider: payload.hideHeadingDivider || false,\n\tuseFlexContentLayout:\n\t\tpayload.autoResizableConfig?.enableAutoResizableHeight ||\n\t\tpayload.useFlexContentLayout\n\t\t\t? true\n\t\t\t: false,\n});\n\nexport function createStyleSheet(coeffects) {\n\tconst {\n\t\tproperties: {dynamicStyleSheet},\n\t\tupdateProperties,\n\t} = coeffects;\n\n\tif (dynamicStyleSheet !== null) {\n\t\treturn dynamicStyleSheet;\n\t}\n\n\tconst styleEl = document.createElement('style');\n\tstyleEl.id = 'sn-window-manager-styles';\n\n\t// Append <style> element to <head>\n\tdocument.head.appendChild(styleEl);\n\n\t// Grab style element's sheet\n\tconst newStyleSheet = styleEl.sheet;\n\tupdateProperties({\n\t\tdynamicStyleSheet: newStyleSheet,\n\t});\n\n\treturn newStyleSheet;\n}\n\n// ---------- Mutation Observer for the entire browser window ----------\nconst handleBrowserWindowMutations = (\n\tmutationsList,\n\tupdateProperties,\n\tdispatch,\n) => {\n\tfor (const mutation of mutationsList) {\n\t\tconst browserDimensions = {width: 0, height: 0};\n\t\tif (mutation.contentRect?.width !== undefined) {\n\t\t\tbrowserDimensions.width = parseInt(mutation.contentRect.width);\n\t\t}\n\t\tif (mutation.contentRect?.height !== undefined) {\n\t\t\tbrowserDimensions.height = parseInt(mutation.contentRect.height);\n\t\t}\n\t\tupdateProperties({browserDimensions});\n\t}\n\tdispatch(CHECK_WINDOW_LOCATIONS);\n};\n\nconst createBrowserWindowMutationObserver = (updateProperties, dispatch) => {\n\tconst modalWindow = document.querySelector('body');\n\n\tconst mutationObs = new ResizeObserver(\n\t\tdebounce((mutationsList) => {\n\t\t\thandleBrowserWindowMutations(mutationsList, updateProperties, dispatch);\n\t\t}, 10),\n\t);\n\tmutationObs.observe(modalWindow);\n\tupdateProperties({browserWindowMutationObserver: mutationObs});\n};\n\nexport const componentBootstrap = (coeffects) => {\n\tconst {dispatch, properties, state, host, updateProperties} = coeffects;\n\n\t// setup and include any CSS needed for the page to be able to support docking\n\tconst newStyleSheet = createStyleSheet(coeffects);\n\n\tswitch (properties.portalType) {\n\t\tcase PORTAL_TYPES.SERVICE_PORTAL:\n\t\t\tnewStyleSheet.insertRule(\n\t\t\t\t'body > .sp-page-root { transition: padding-right 150ms ease-in-out, padding-left 150ms ease-in-out, padding-bottom 150ms ease-in-out; }',\n\t\t\t\tnewStyleSheet.cssRules.length,\n\t\t\t);\n\t\t\tnewStyleSheet.insertRule(\n\t\t\t\t'.dockLeft > .sp-page-root { padding-left: 320px; }',\n\t\t\t\tnewStyleSheet.cssRules.length,\n\t\t\t);\n\t\t\tnewStyleSheet.insertRule(\n\t\t\t\t'.dockRight > .sp-page-root { padding-right: 320px; }',\n\t\t\t\tnewStyleSheet.cssRules.length,\n\t\t\t);\n\t\t\tnewStyleSheet.insertRule(\n\t\t\t\t'.dockBottom > .sp-page-root { padding-bottom: 320px; }',\n\t\t\t\tnewStyleSheet.cssRules.length,\n\t\t\t);\n\n\t\t\tbreak;\n\n\t\tcase PORTAL_TYPES.UNIFIED_NAVIGATION:\n\t\t\t// if (properties.unifiedNavComponent) {\n\t\t\tconsole.info('notify unified nav of window manager');\n\t\t\tdispatch('POLARIS#REGISTER_WINDOW_MANAGER', {\n\t\t\t\twindowManager: host,\n\t\t\t});\n\t\t\t// }\n\t\t\tbreak;\n\n\t\tcase PORTAL_TYPES.EXAMPLE_APP:\n\t\t\thost.style.setProperty('--now-canvas-ai-border-color--primary', 'black');\n\t\t\tnewStyleSheet.insertRule(\n\t\t\t\t'body { transition: padding-inline-start 200ms cubic-bezier(0.4, 0, 0.5, 1) 300ms, padding-inline-end 200ms cubic-bezier(0.4, 0, 0.5, 1) 300ms; }',\n\t\t\t\tnewStyleSheet.cssRules.length,\n\t\t\t);\n\t\t\tnewStyleSheet.insertRule(\n\t\t\t\t'.dockLeft { padding-left: 320px; }',\n\t\t\t\tnewStyleSheet.cssRules.length,\n\t\t\t);\n\t\t\tnewStyleSheet.insertRule(\n\t\t\t\t'.dockRight { padding-right: 320px; }',\n\t\t\t\tnewStyleSheet.cssRules.length,\n\t\t\t);\n\t\t\tnewStyleSheet.insertRule(\n\t\t\t\t'.dockBottom { padding-bottom: 320px; }',\n\t\t\t\tnewStyleSheet.cssRules.length,\n\t\t\t);\n\n\t\t\tbreak;\n\t}\n\n\t// setup window commands for the sn-window-manager\n\twindow.nowWindowManager = host;\n\twindow.nowWindowManager.createWindow = (windowConfig) => {\n\t\tdispatch(CREATE_WINDOW, windowConfig);\n\t};\n\twindow.nowWindowManager.openWindow = (windowId, props = null) => {\n\t\tdispatch(OPEN_WINDOW, {\n\t\t\twindowConfig: {id: windowId},\n\t\t\tnewProperties: props,\n\t\t});\n\t};\n\twindow.nowWindowManager.closeWindow = (\n\t\twindowId,\n\t\tforceDestroy = false,\n\t\tmeta,\n\t) => {\n\t\tdispatch(CLOSE_WINDOW, {windowConfig: {id: windowId}, forceDestroy, meta});\n\t};\n\twindow.nowWindowManager.closeDock = (dockLocation, secondaryMenuId) => {\n\t\tdispatch(CLOSE_DOCK, {\n\t\t\tdock: dockLocation,\n\t\t\tsecondaryMenuId,\n\t\t});\n\t};\n\twindow.nowWindowManager.toggleDock = (windowId, dockLocation) => {\n\t\tdispatch(TOGGLE_DOCK, {windowConfig: {id: windowId}, dockLocation});\n\t};\n\twindow.nowWindowManager.toggleModal = (\n\t\twindowId,\n\t\tforceEnableModal = false,\n\t) => {\n\t\tdispatch(TOGGLE_MODAL_STATE, {\n\t\t\twindowConfig: {id: windowId},\n\t\t\tforceEnableModal,\n\t\t});\n\t};\n\twindow.nowWindowManager.toggleMinimized = (\n\t\twindowId,\n\t\tforceMinimize = false,\n\t) => {\n\t\tdispatch(TOGGLE_MINIMIZE_STATE, {\n\t\t\twindowConfig: {id: windowId},\n\t\t\tforceMinimize,\n\t\t});\n\t};\n\twindow.nowWindowManager.relayMessage = (message) => {\n\t\tdispatch(RELAY_MESSAGE, message);\n\t};\n\twindow.nowWindowManager.debugWindow = () => {\n\t\tdispatch(OPEN_DEBUG_WINDOW);\n\t};\n\twindow.nowWindowManager.focusWindow = (windowId) => {\n\t\tdispatch(FOCUS_WINDOW, {\n\t\t\twindowConfig: {id: windowId},\n\t\t});\n\t};\n\twindow.nowWindowManager.getContentElement = (windowId) => {\n\t\tconst currentWindow = window.nowWindowManager.windowsList.find(\n\t\t\t(window) => window.id === windowId,\n\t\t);\n\n\t\tif (currentWindow) {\n\t\t\treturn currentWindow.component.contentElement;\n\t\t}\n\t\treturn null;\n\t};\n\n\twindow.nowWindowManager.setHeaderButtons = (windowId, buttonsData) => {\n\t\tconst currentWindow = window.nowWindowManager.windowsList.find(\n\t\t\t(window) => window.id === windowId,\n\t\t);\n\t\tif (currentWindow) {\n\t\t\tdispatchEventToWindow(\n\t\t\t\twindow.nowWindowManager.windowsList,\n\t\t\t\tcurrentWindow.id,\n\t\t\t\tSET_HEADER_BUTTONS,\n\t\t\t\t{\n\t\t\t\t\theaderButtons: buttonsData,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t};\n\n\twindow.nowWindowManager.doesWindowExist = (windowId) => {\n\t\tconst currentWindow = window.nowWindowManager.windowsList.find(\n\t\t\t(window) => window.id === windowId,\n\t\t);\n\t\treturn currentWindow !== undefined && currentWindow !== null;\n\t};\n\n\twindow.nowWindowManager.isWindowOpen = (windowId) => {\n\t\tif (!window.nowWindowManager.doesWindowExist(windowId)) {\n\t\t\tconsole.warn('Could not find window in windowsList:', windowId);\n\t\t\treturn false;\n\t\t}\n\t\tconst currentWindow = window.nowWindowManager.windowsList.find(\n\t\t\t(window) => window.id === windowId,\n\t\t);\n\t\treturn currentWindow.isOpen === true;\n\t};\n\n\twindow.nowWindowManager.setContentProperties = (windowId, props) => {\n\t\tconst currentWindow = window.nowWindowManager.windowsList.find(\n\t\t\t(window) => window.id === windowId,\n\t\t);\n\n\t\tObject.keys(props).forEach((key) => {\n\t\t\tcurrentWindow.component.contentElement[key] = props[key];\n\t\t});\n\t};\n\n\twindow.nowWindowManager.setWindowProperties = (windowId, props) => {\n\t\tdispatch(SET_WINDOW_PROPERTIES, {windowId, newProperties: props});\n\t};\n\n\twindow.nowWindowManager.setWindowSize = (windowId, size, dockedMode) => {\n\t\tconst windowsList = window.nowWindowManager.windowsList;\n\t\tconst currentWindow = window.nowWindowManager.windowsList.find(\n\t\t\t(window) => window.id === windowId,\n\t\t);\n\n\t\tif (currentWindow) {\n\t\t\t// Only allow docked window size to be set in service portal\n\t\t\tif (dockedMode) {\n\t\t\t\tif (\n\t\t\t\t\twindow.nowWindowManager.portalType === PORTAL_TYPES.SERVICE_PORTAL\n\t\t\t\t) {\n\t\t\t\t\tconst newDockedWindowSize = {\n\t\t\t\t\t\tsize:\n\t\t\t\t\t\t\tsize.width ||\n\t\t\t\t\t\t\tsize.height ||\n\t\t\t\t\t\t\tcurrentWindow.component.dockedWindowSize,\n\t\t\t\t\t};\n\t\t\t\t\tdispatchEventToWindow(\n\t\t\t\t\t\twindowsList,\n\t\t\t\t\t\tcurrentWindow.id,\n\t\t\t\t\t\t'SN_WINDOW#SET_DOCKED_WINDOW_SIZE',\n\t\t\t\t\t\tnewDockedWindowSize,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst newDialogSize = {\n\t\t\t\t\twidth: size.width || currentWindow.component.dialogSize.width,\n\t\t\t\t\theight: size.height || currentWindow.component.dialogSize.height,\n\t\t\t\t};\n\t\t\t\tdispatchEventToWindow(\n\t\t\t\t\twindowsList,\n\t\t\t\t\tcurrentWindow.id,\n\t\t\t\t\t'SN_WINDOW#SET_WINDOW_SIZE',\n\t\t\t\t\tnewDialogSize,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t};\n\n\twindow.nowWindowManager.handleScreenChanged = (payload) => {\n\t\tdispatch(SCREEN_CHANGED, payload);\n\t};\n\n\twindow.nowWindowManager.setDirtyState = (windowId, dirtyState) => {\n\t\tdispatch(SET_DIRTY_STATE, {id: windowId, dirtyState});\n\t};\n\n\twindow.nowWindowManager.updateUserPreferences = (name, value) => {\n\t\tupdateProperties({\n\t\t\tuserPreferences: {\n\t\t\t\t...state.properties.userPreferences,\n\t\t\t\t[name]: value,\n\t\t\t},\n\t\t});\n\t\tif (name === PREFERENCES.DISABLE_ANIMATION) {\n\t\t\tupdateProperties({animationsDisabled: value});\n\t\t}\n\t};\n\n\twindow.nowWindowManager.closeAllWindows = (forceDestroy = false) => {\n\t\tconst windowsToClose = [...window.nowWindowManager.windowsList];\n\t\twindowsToClose.forEach((windowConfig) => {\n\t\t\twindow.nowWindowManager.closeWindow(windowConfig.id, forceDestroy);\n\t\t});\n\t};\n\n\twindow.nowWindowManager.getDockedWindowId = (dockLocation) => {\n\t\tconst windowsState = window.nowWindowManager.windowsState;\n\n\t\tlet result;\n\t\tswitch (dockLocation) {\n\t\t\tcase 'left':\n\t\t\t\tresult = windowsState.leftDockId;\n\t\t\t\tbreak;\n\t\t\tcase 'right':\n\t\t\t\tresult = windowsState.rightDockId;\n\t\t\t\tbreak;\n\t\t\tcase 'bottom':\n\t\t\t\tresult = windowsState.bottomDockId;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tresult = null;\n\t\t}\n\t\treturn result;\n\t};\n\n\tconst userPrefs = window.ux_globals?.userPrefs || {};\n\tupdateProperties({\n\t\tuserPreferences: userPrefs,\n\t});\n\n\tconst coerceBoolean = (val) => {\n\t\tif (typeof val === 'boolean') {\n\t\t\treturn val;\n\t\t}\n\t\tif (typeof val === 'string') {\n\t\t\treturn val.toLowerCase() === 'true' || val === '1';\n\t\t}\n\t\tif (typeof val === 'number') {\n\t\t\treturn val === 1;\n\t\t}\n\t\treturn false;\n\t};\n\n\tlet animationsDisabled = false;\n\ttry {\n\t\tanimationsDisabled = getBooleanPreferenceValue(\n\t\t\tuserPrefs,\n\t\t\tPREFERENCES.DISABLE_ANIMATION,\n\t\t);\n\t} catch (_err) {\n\t\tif (Array.isArray(userPrefs)) {\n\t\t\tconst pref = userPrefs.find(\n\t\t\t\t(p) => p?.name === PREFERENCES.DISABLE_ANIMATION,\n\t\t\t);\n\t\t\tanimationsDisabled = coerceBoolean(pref?.value);\n\t\t} else if (userPrefs && typeof userPrefs === 'object') {\n\t\t\tanimationsDisabled = coerceBoolean(\n\t\t\t\tuserPrefs?.[PREFERENCES.DISABLE_ANIMATION],\n\t\t\t);\n\t\t}\n\t}\n\tupdateProperties({animationsDisabled});\n\n\tcreateBrowserWindowMutationObserver(updateProperties, dispatch);\n\tif (window.ux_globals?.__windowManagerConfig) {\n\t\twindow.ux_globals.__windowManagerConfig.isLoaded = true;\n\t}\n\n\tconsole.info('sn-window-manager - started', {properties, state});\n};\n\nexport const handlePropertyChange = ({action, state}) => {\n\tconst {\n\t\tpayload: {name, value},\n\t} = action;\n\n\tif (\n\t\tname === 'browserDimensions' ||\n\t\tname === 'windowsState' ||\n\t\tname === 'windowsList' ||\n\t\tname === 'portalType' ||\n\t\tname === 'animationsDisabled' ||\n\t\tname === 'screenInfo'\n\t) {\n\t\tstate.properties.windowsList.map((currentWindow) => {\n\t\t\tdispatchEventToWindow(\n\t\t\t\tstate.properties.windowsList,\n\t\t\t\tcurrentWindow.id,\n\t\t\t\t'PROPERTY_CHANGED',\n\t\t\t\t{name, value},\n\t\t\t);\n\t\t});\n\t}\n};\n\nexport const handleDomTreeReady = (coeffects) => {\n\tconst {state, host, dispatch, updateProperties} = coeffects;\n\tconst {properties} = state;\n\n\t// if we are in the example app, open the debug window by default\n\tif (properties.portalType === PORTAL_TYPES.EXAMPLE_APP) {\n\t\tdispatch(OPEN_DEBUG_WINDOW);\n\t}\n\n\tconst bottomToolBar = host.shadowRoot.querySelector(\n\t\t'sn-window-manager-bottom-toolbar',\n\t);\n\tupdateProperties({\n\t\tbottomToolbarComponent: bottomToolBar,\n\t});\n};\n\nexport const handleComponentConnected = () => {\n\t// console.info('sn-window-manager - Component connected');\n};\n\nconst completeDockToggle = (\n\tnewLeftDockId,\n\tnewRightDockId,\n\tnewBottomDockId,\n\tdockSide,\n\tcoeffects,\n\tpayload,\n) => {\n\tconst {updateProperties, state, dispatch} = coeffects;\n\tconst {properties} = state;\n\tconst {windowsState, windowsList} = properties;\n\tconst currentWindow = windowsList.find(\n\t\t(window) => window.id === payload.windowConfig.id,\n\t);\n\n\tconst isWindowDocked =\n\t\tnewLeftDockId === payload.windowConfig.id ||\n\t\tnewRightDockId === payload.windowConfig.id ||\n\t\tnewBottomDockId === payload.windowConfig.id;\n\n\tlet modalWindows = windowsState.modalWindows || [];\n\tif (windowsState.modalWindows.includes(payload.windowConfig.id)) {\n\t\tmodalWindows = windowsState.modalWindows.filter(\n\t\t\t(windowId) => windowId !== payload.windowConfig.id,\n\t\t);\n\t\tconst currentWindow = windowsList.find(\n\t\t\t(window) => window.id === payload.windowConfig.id,\n\t\t);\n\t\tcurrentWindow.isModal = false;\n\t}\n\n\tupdateProperties({\n\t\twindowsState: {\n\t\t\t...windowsState,\n\t\t\tleftDockId: newLeftDockId,\n\t\t\trightDockId: newRightDockId,\n\t\t\tbottomDockId: newBottomDockId,\n\t\t\tmodalWindows: modalWindows,\n\t\t},\n\t});\n\tdispatch(UPDATE_BODY_CLASS_NAMES, {secondaryMenuId: payload.secondaryMenuId});\n\thandleStateChangeCallback(\n\t\tcurrentWindow,\n\t\tisWindowDocked ? 'docked-' + dockSide : 'floating',\n\t);\n};\n\nexport const handleToggleLeftDock = (coeffects) => {\n\tconst {state, action} = coeffects;\n\tconst {properties} = state;\n\tconst {payload} = action;\n\n\tconst newLeftDockId =\n\t\tproperties.windowsState.leftDockId === payload.windowConfig.id\n\t\t\t? null\n\t\t\t: payload.windowConfig.id;\n\tconst newRightDockId =\n\t\tproperties.windowsState.rightDockId === payload.windowConfig.id\n\t\t\t? null\n\t\t\t: properties.windowsState.rightDockId;\n\tconst newBottomDockId =\n\t\tproperties.windowsState.bottomDockId === payload.windowConfig.id\n\t\t\t? null\n\t\t\t: properties.windowsState.bottomDockId;\n\n\tcompleteDockToggle(\n\t\tnewLeftDockId,\n\t\tnewRightDockId,\n\t\tnewBottomDockId,\n\t\t'left',\n\t\tcoeffects,\n\t\tpayload,\n\t);\n};\n\nexport const handleToggleRightDock = (coeffects) => {\n\tconst {state, action} = coeffects;\n\tconst {properties} = state;\n\tconst {windowsState} = properties;\n\tconst {payload} = action;\n\n\tconst newLeftDockId =\n\t\twindowsState.leftDockId === payload.windowConfig.id\n\t\t\t? null\n\t\t\t: windowsState.leftDockId;\n\tconst newRightDockId =\n\t\twindowsState.rightDockId === payload.windowConfig.id\n\t\t\t? null\n\t\t\t: payload.windowConfig.id;\n\tconst newBottomDockId =\n\t\twindowsState.bottomDockId === payload.windowConfig.id\n\t\t\t? null\n\t\t\t: windowsState.bottomDockId;\n\n\tcompleteDockToggle(\n\t\tnewLeftDockId,\n\t\tnewRightDockId,\n\t\tnewBottomDockId,\n\t\t'right',\n\t\tcoeffects,\n\t\tpayload,\n\t);\n};\n\nexport const handleToggleBottomDock = (coeffects) => {\n\tconst {state, action} = coeffects;\n\tconst {properties} = state;\n\tconst {payload} = action;\n\n\tconst newLeftDockId =\n\t\tproperties.windowsState.leftDockId === payload.windowConfig.id\n\t\t\t? null\n\t\t\t: properties.windowsState.leftDockId;\n\tconst newRightDockId =\n\t\tproperties.windowsState.rightDockId === payload.windowConfig.id\n\t\t\t? null\n\t\t\t: properties.windowsState.rightDockId;\n\tconst newBottomDockId =\n\t\tproperties.windowsState.bottomDockId === payload.windowConfig.id\n\t\t\t? null\n\t\t\t: payload.windowConfig.id;\n\n\tcompleteDockToggle(\n\t\tnewLeftDockId,\n\t\tnewRightDockId,\n\t\tnewBottomDockId,\n\t\t'bottom',\n\t\tcoeffects,\n\t\tpayload,\n\t);\n};\n\nexport const handleToggleDock = (coeffects) => {\n\tconst {action, properties} = coeffects;\n\tconst {windowsList} = properties;\n\tconst {\n\t\tpayload: {dockLocation, windowConfig, overrideConfig = false},\n\t} = action;\n\tconst currentWindow = windowsList.find(\n\t\t(window) => window.id === windowConfig.id,\n\t);\n\n\t// Ensure the config doesn't prevent docking (unless overrideConfig is true)\n\tif (!currentWindow || (!currentWindow.canDock && !overrideConfig)) {\n\t\treturn;\n\t}\n\n\tif (dockLocation === 'left') {\n\t\thandleToggleLeftDock(coeffects);\n\t} else if (dockLocation === 'right') {\n\t\thandleToggleRightDock(coeffects);\n\t} else if (dockLocation === 'bottom') {\n\t\thandleToggleBottomDock(coeffects);\n\t}\n};\n\nexport const handleCloseDock = (coeffects) => {\n\tconst {action, updateProperties, state, dispatch} = coeffects;\n\tconst {payload} = action;\n\tconst {properties} = state;\n\tlet newLeftDockId = properties.windowsState.leftDockId;\n\tlet newRightDockId = properties.windowsState.rightDockId;\n\tlet newBottomDockId = properties.windowsState.bottomDockId;\n\tlet undockedWindowId;\n\n\t// Close the window that was docked to the side specified\n\tif (payload.dock === 'left') {\n\t\tundockedWindowId = newLeftDockId;\n\t\tnewLeftDockId = null;\n\t} else if (payload.dock === 'right') {\n\t\tundockedWindowId = newRightDockId;\n\t\tnewRightDockId = null;\n\t} else if (payload.dock === 'bottom') {\n\t\tundockedWindowId = newBottomDockId;\n\t\tnewBottomDockId = null;\n\t}\n\n\tupdateProperties({\n\t\twindowsState: {\n\t\t\t...properties.windowsState,\n\t\t\tleftDockId: newLeftDockId,\n\t\t\trightDockId: newRightDockId,\n\t\t\tbottomDockId: newBottomDockId,\n\t\t},\n\t});\n\tdispatch(UPDATE_BODY_CLASS_NAMES, {secondaryMenuId: payload.secondaryMenuId});\n\t// Get window that was undocked\n\tif (undockedWindowId !== null) {\n\t\tconst undockedWindow = properties.windowsList.find(\n\t\t\t(window) => window.id === undockedWindowId,\n\t\t);\n\t\thandleStateChangeCallback(undockedWindow, 'floating');\n\t}\n};\n\nexport const updateBodyClassName = (coeffects) => {\n\tconst {\n\t\tstate,\n\t\taction: {payload},\n\t\tdispatch,\n\t} = coeffects;\n\tconst {properties} = state;\n\tconst {windowsState} = properties;\n\tconst {leftDockId, rightDockId, bottomDockId} = windowsState;\n\n\t// closing left dock\n\tif (document.body.classList.contains('dockLeft') && leftDockId === null) {\n\t\tdocument.body.classList.remove('dockLeft');\n\t\tif (!payload.secondaryMenuId) {\n\t\t\tdispatch(\n\t\t\t\tdocument.dir === 'rtl' ? 'CONTEXTUAL_MENU#PINNED' : 'MAIN_MENU#PINNED',\n\t\t\t\t{\n\t\t\t\t\tdoPinning: false,\n\t\t\t\t\tisPrimary: true,\n\t\t\t\t\tprimaryMenuId: null,\n\t\t\t\t\tisPinnedWindow: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n\t// closing right dock\n\tif (document.body.classList.contains('dockRight') && rightDockId === null) {\n\t\tdocument.body.classList.remove('dockRight');\n\t\tif (!payload.secondaryMenuId) {\n\t\t\tdispatch('CONTEXTUAL_MENU#PINNED', {\n\t\t\t\tdoPinning: false,\n\t\t\t\tisPrimary: true,\n\t\t\t\tprimaryMenuId: null,\n\t\t\t\tisPinnedWindow: true,\n\t\t\t});\n\t\t}\n\t}\n\t// closing bottom dock\n\tif (document.body.classList.contains('dockBottom') && bottomDockId === null) {\n\t\tdocument.body.classList.remove('dockBottom');\n\t}\n\n\t// opening left dock\n\tif (!document.body.classList.contains('dockLeft') && leftDockId !== null) {\n\t\tdocument.body.classList.add('dockLeft');\n\t\tdispatch(\n\t\t\tdocument.dir === 'rtl' ? 'CONTEXTUAL_MENU#PINNED' : 'MAIN_MENU#PINNED',\n\t\t\t{\n\t\t\t\tdoPinning: true,\n\t\t\t\tisPrimary: true,\n\t\t\t\tprimaryMenuId: leftDockId,\n\t\t\t\tisPinnedWindow: true,\n\t\t\t},\n\t\t);\n\t}\n\t// opening right dock\n\tif (!document.body.classList.contains('dockRight') && rightDockId !== null) {\n\t\tdocument.body.classList.add('dockRight');\n\t\tdispatch('CONTEXTUAL_MENU#PINNED', {\n\t\t\tdoPinning: true,\n\t\t\tisPrimary: true,\n\t\t\tprimaryMenuId: rightDockId,\n\t\t\tisPinnedWindow: true,\n\t\t});\n\t}\n\t// opening bottom dock\n\tif (\n\t\t!document.body.classList.contains('dockBottom') &&\n\t\tbottomDockId !== null\n\t) {\n\t\tdocument.body.classList.add('dockBottom');\n\t}\n};\n\nexport const handleStateChangeCallback = (windowConfig, state) => {\n\tif (windowConfig.stateChangeCallback) {\n\t\twindowConfig.stateChangeCallback({state});\n\t}\n};\n\nexport const handleCreateWindow = (coeffects) => {\n\tconst {updateProperties, state, action, host, dispatch} = coeffects;\n\tconst {\n\t\twindowsList,\n\t\twindowsState,\n\t\tportalType,\n\t\tbrowserDimensions,\n\t\tbottomToolbarComponent,\n\t} = state.properties;\n\tconst {payload} = action;\n\n\tconst existingWindowConfig = windowsList.find(\n\t\t(currentWindow) => currentWindow.id === payload.id,\n\t);\n\n\tif (existingWindowConfig) {\n\t\tcoeffects.action.payload.windowConfig = existingWindowConfig;\n\n\t\t// DEF0722407: if a window has been created with isOpen set to false\n\t\t// and createWindow gets called again for that same window, do not open it.\n\t\t// we need to check the incoming payload and not existingWindowConfig because isOpen\n\t\t// could change in existingWindowConfig after it has been created\n\t\tif (coeffects.action.payload.windowConfig.isOpen !== false) {\n\t\t\t// eslint-disable-next-line no-use-before-define\n\t\t\thandleOpenWindow(coeffects);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (\n\t\tpayload.content?.component &&\n\t\ttypeof payload.content?.component === 'string'\n\t) {\n\t\tgetComponentsByTagNames([payload.content.component]);\n\t}\n\n\tconst newWindowConfig = newWindowDataConfig(payload, portalType);\n\n\tconsole.info('New Window Config', {newWindowConfig, payload});\n\n\t// determine window position if the user has opted to define position and offset instead of dialogLocation\n\n\t// Case where the y value is not specified\n\tif (\n\t\tnewWindowConfig.dialogLocation.top === -1 &&\n\t\tnewWindowConfig.dialogLocation.bottom === -1\n\t) {\n\t\tif (newWindowConfig.position === 'centered') {\n\t\t\tnewWindowConfig.dialogLocation.top =\n\t\t\t\t(window.innerHeight - newWindowConfig.dialogSize.height) / 2;\n\t\t} else if (\n\t\t\tnewWindowConfig.position === 'top-right' ||\n\t\t\tnewWindowConfig.position === 'top-left'\n\t\t) {\n\t\t\tnewWindowConfig.dialogLocation.top = newWindowConfig.offset[1];\n\t\t} else if (\n\t\t\tnewWindowConfig.position === 'bottom-right' ||\n\t\t\tnewWindowConfig.position === 'bottom-left'\n\t\t) {\n\t\t\tnewWindowConfig.dialogLocation.bottom = newWindowConfig.offset[1];\n\t\t}\n\t}\n\n\t// Case where the x value is not specified\n\tif (\n\t\tnewWindowConfig.dialogLocation.left === -1 &&\n\t\tnewWindowConfig.dialogLocation.right === -1\n\t) {\n\t\tif (newWindowConfig.position === 'centered') {\n\t\t\tnewWindowConfig.dialogLocation.left =\n\t\t\t\t(window.innerWidth - newWindowConfig.dialogSize.width) / 2;\n\t\t} else if (\n\t\t\tnewWindowConfig.position === 'top-left' ||\n\t\t\tnewWindowConfig.position === 'bottom-left'\n\t\t) {\n\t\t\tnewWindowConfig.dialogLocation.left = newWindowConfig.offset[0];\n\t\t} else if (\n\t\t\tnewWindowConfig.position === 'top-right' ||\n\t\t\tnewWindowConfig.position === 'bottom-right'\n\t\t) {\n\t\t\tnewWindowConfig.dialogLocation.right = newWindowConfig.offset[0];\n\t\t}\n\t}\n\n\t// Only keep the coordinate system that is being used\n\tnewWindowConfig.dialogLocation = {\n\t\t...(newWindowConfig.dialogLocation.top !== -1\n\t\t\t? {top: newWindowConfig.dialogLocation.top}\n\t\t\t: {bottom: newWindowConfig.dialogLocation.bottom}),\n\t\t...(newWindowConfig.dialogLocation.left !== -1\n\t\t\t? {left: newWindowConfig.dialogLocation.left}\n\t\t\t: {right: newWindowConfig.dialogLocation.right}),\n\t};\n\n\t//get the current sn-window-manager-toolbar height\n\tconst {offsetHeight: bottomDockHeight} =\n\t\tbottomToolbarComponent.shadowRoot.querySelector(\n\t\t\t'.sn-window-manager-toolbar',\n\t\t);\n\t//adjust window location and normalize the coordinates for offset\n\tnewWindowConfig.dialogLocation = updateDialogLocationBottomDock(\n\t\tnewWindowConfig,\n\t\tbottomDockHeight,\n\t);\n\n\t// Offset window if it's overlapping with another window\n\tconst isAnyWindowOverlapping = windowsList.find((window) =>\n\t\tareWindowsOverlapping(window, newWindowConfig),\n\t);\n\tif (isAnyWindowOverlapping) {\n\t\tnewWindowConfig.dialogLocation = findAvailableDialogPosition(\n\t\t\tnewWindowConfig.dialogLocation,\n\t\t\twindowsList,\n\t\t\tnewWindowConfig.dialogSize,\n\t\t\tbottomDockHeight,\n\t\t\tnewWindowConfig,\n\t\t);\n\t}\n\n\t// Position it top left to allow for proper fit-content calculation\n\tif (newWindowConfig.fitContent) {\n\t\tnewWindowConfig.dialogLocation = {top: 0, left: 0};\n\t}\n\n\t// create new sn-window element\n\tconst nowWindow = document.createElement('sn-window');\n\tnowWindow.animationsDisabled = state.properties.animationsDisabled;\n\tnowWindow.id = `window-${newWindowConfig.id}`;\n\tnowWindow.windowConfig = newWindowConfig;\n\tnowWindow.windowsList = windowsList;\n\tnowWindow.windowsState = windowsState;\n\tnowWindow.dialogSize = newWindowConfig.dialogSize;\n\tnowWindow.dialogLocation = newWindowConfig.dialogLocation;\n\tnowWindow.dockedWindowSize = newWindowConfig.dockedWindowSize;\n\tnowWindow.modalSize = newWindowConfig.modalSize;\n\tnowWindow.portalType = portalType || PORTAL_TYPES.UNIFIED_NAVIGATION;\n\tnowWindow.isModal = newWindowConfig.isModal;\n\tnowWindow.isDocked = newWindowConfig.startingState?.indexOf('docked') >= 0;\n\tnowWindow.isFloating =\n\t\tnewWindowConfig.startingState?.indexOf('floating') >= 0;\n\tnowWindow.canResize = newWindowConfig.canResize;\n\tnowWindow.resizableConfig = newWindowConfig.resizableConfig;\n\tnowWindow.maxWindowSizePercentage = newWindowConfig.maxWindowSizePercentage;\n\tnowWindow.fullscreenViewConfig = newWindowConfig.fullscreenViewConfig;\n\tnowWindow.browserDimensions = browserDimensions;\n\tnowWindow.bottomToolbarComponent = bottomToolbarComponent;\n\tnowWindow.configAria = newWindowConfig.configAria;\n\tnowWindow.isHidden = newWindowConfig.fitContent;\n\tnowWindow.isDirty = false;\n\tnowWindow.isOpen = newWindowConfig.isOpen;\n\n\tnewWindowConfig.component = nowWindow;\n\n\tconst modalWindows = windowsState.modalWindows || [];\n\n\tif (newWindowConfig.startingState === 'modal') {\n\t\t// nowWindow.resizableConfig.enableResizable = false;\n\t\tmodalWindows.push(newWindowConfig.id);\n\t}\n\n\tif (newWindowConfig.startingState?.indexOf('docked') >= 0) {\n\t\t// nowWindow.resizableConfig.enableResizable = false;\n\t\tif (newWindowConfig.startingState === 'docked-left') {\n\t\t\twindowsState.leftDockId = newWindowConfig.id;\n\t\t}\n\t\tif (newWindowConfig.startingState === 'docked-right') {\n\t\t\twindowsState.rightDockId = newWindowConfig.id;\n\t\t}\n\t\tif (newWindowConfig.startingState === 'docked-bottom') {\n\t\t\twindowsState.bottomDockId = newWindowConfig.id;\n\t\t}\n\n\t\tdispatch(UPDATE_BODY_CLASS_NAMES);\n\t}\n\n\t// call state change callback\n\thandleStateChangeCallback(\n\t\tnewWindowConfig,\n\t\t!newWindowConfig.isOpen ? 'closed' : newWindowConfig.startingState,\n\t);\n\n\t// append the new window to host element\n\tif (\n\t\tpayload.content.component.elm?.tagName === 'NOW-UXF-PAGE-SIMPLE-CONTAINER'\n\t) {\n\t\tpayload.content.component.elm.appendChild(nowWindow);\n\t} else {\n\t\thost.shadowRoot.appendChild(nowWindow);\n\t}\n\n\t//if uxf window and hideOthers is enabled, minimize other windows\n\tif (newWindowConfig.isUXFWindow && payload.hideOthers) {\n\t\tfor (const window of windowsList) {\n\t\t\tif (window.id !== newWindowConfig.id) {\n\t\t\t\thandleToggleMinimize({\n\t\t\t\t\t...coeffects,\n\t\t\t\t\taction: {\n\t\t\t\t\t\t...coeffects.action,\n\t\t\t\t\t\tpayload: {\n\t\t\t\t\t\t\twindowConfig: {id: window.id},\n\t\t\t\t\t\t\tforceMinimize: true,\n\t\t\t\t\t\t\toverrideConfig: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tupdateProperties({\n\t\twindowsList: [...windowsList, newWindowConfig],\n\t\twindowsState: {\n\t\t\t...windowsState,\n\t\t\tactiveWindowId: newWindowConfig.id,\n\t\t\tmodalWindows: modalWindows,\n\t\t},\n\t});\n};\n\nexport const handleCloseWindow = (coeffects) => {\n\tconst {updateProperties, state, action, dispatch} = coeffects;\n\tconst {windowsList, windowsState, showCloseConfirmDialog} = state.properties;\n\tconst {\n\t\tpayload: {\n\t\t\twindowConfig,\n\t\t\tforceDestroy = false,\n\t\t\toverrideConfig = false,\n\t\t\tclosedFromButton = false,\n\t\t},\n\t} = action;\n\tconst currentWindow = windowsList.find(\n\t\t(window) => window.id === windowConfig.id,\n\t);\n\n\tconst reopenAsFloatingWindow = currentWindow?.reopenAsFloatingWindow || false;\n\n\t// Ensure the config doesn't prevent closing (unless overrideConfig is true)\n\tif (\n\t\t!currentWindow ||\n\t\t(!currentWindow.canClose && !overrideConfig && !forceDestroy)\n\t) {\n\t\treturn;\n\t}\n\n\tconsole.info('Closing Window', {\n\t\tshowCloseConfirmDialog,\n\t\tcurrentWindow,\n\t\tpayload: action.payload,\n\t});\n\n\tif (\n\t\t(!forceDestroy && currentWindow.component.isDirty) ||\n\t\twindowConfig.confirmClose\n\t) {\n\t\tupdateProperties({\n\t\t\tshowCloseConfirmDialog: true,\n\t\t\tclosingWindowId: currentWindow.id,\n\t\t\tconfirmCloseMessage: windowConfig.confirmCloseMessage || null,\n\t\t});\n\t\tif (currentWindow.component.isDirty) {\n\t\t\tdispatchEventToWindow(\n\t\t\t\twindowsList,\n\t\t\t\tcurrentWindow.id,\n\t\t\t\t'SN_WINDOW#CLOSE_REQUESTED',\n\t\t\t\t{\n\t\t\t\t\tmeta: action.payload.meta,\n\t\t\t\t\twindowId: currentWindow.id,\n\t\t\t\t\tscreenKey: currentWindow.screenKey,\n\t\t\t\t\tinstanceId: currentWindow.instanceId,\n\t\t\t\t\texperienceId: currentWindow.experienceId,\n\t\t\t\t\tcomponentId: currentWindow.uxrComponentId,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\treturn;\n\t}\n\n\tconst nowWindow = currentWindow.component;\n\tconst isPersistent = currentWindow.isPersistent || false;\n\n\tlet newWindowsList = null;\n\tlet newMinimizedWindows = windowsState.minimizedWindows || [];\n\tlet newModalWindows = windowsState.modalWindows || [];\n\tconst activeWindowId = windowsState.activeWindowId || null;\n\n\t// let the window's content element know that the window is being closed before we close it\n\tif (showCloseConfirmDialog) {\n\t\tdispatchEventToWindow(\n\t\t\twindowsList,\n\t\t\tcurrentWindow.id,\n\t\t\t'SN_WINDOW#CLOSE_CONFIRMED',\n\t\t\t{\n\t\t\t\twindowId: currentWindow.id,\n\t\t\t\tscreenKey: currentWindow.screenKey,\n\t\t\t\tinstanceId: currentWindow.instanceId,\n\t\t\t\texperienceId: currentWindow.experienceId,\n\t\t\t\tcomponentId: currentWindow.uxrComponentId,\n\t\t\t},\n\t\t);\n\t}\n\n\t// HDS legacy: Dispatch NOW_MODELESS_DIALOG events\n\tconst windowComponent = currentWindow.component;\n\tconst contentElement = currentWindow.component?.contentElement;\n\tconst isFullscreen = currentWindow.component.isFullscreenView ?? false;\n\n\tdispatchModelessDialogAction({\n\t\tcontentElement,\n\t\twindowConfig: currentWindow.windowConfig,\n\t\tactionName: NOW_MODELESS_DIALOG_OPENED_SET,\n\t\tpayload: {value: false},\n\t});\n\n\t// DEF0802061: dont disaptch this event if the window is already closed as it will trigger ai-notebook-explorer to close a dialog which should not get closed\n\tif (currentWindow.isOpen) {\n\t\twindow.requestAnimationFrame(() => {\n\t\t\tconst windowBounds = windowComponent?.shadowRoot\n\t\t\t\t?.querySelector('.sn-window-wrapper')\n\t\t\t\t?.getBoundingClientRect();\n\t\t\tif (windowBounds) {\n\t\t\t\tdispatchModelessDialogAction({\n\t\t\t\t\tcontentElement,\n\t\t\t\t\twindowConfig: currentWindow.windowConfig,\n\t\t\t\t\tactionName: NOW_MODELESS_DIALOG_CLOSE,\n\t\t\t\t\tbounds: windowBounds,\n\t\t\t\t\tisFullscreen,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\twindow.requestAnimationFrame(() => {\n\t\tdispatchEventToContentElement(currentWindow, SN_WINDOW_CLOSED, {\n\t\t\twasConfirmed: showCloseConfirmDialog,\n\t\t\tclosedFromButton,\n\t\t});\n\t});\n\n\t// If the window is persistent AND we aren't forcing a destroy, then just close the window\n\tif (isPersistent && !forceDestroy) {\n\t\tcurrentWindow.isOpen = false;\n\t\tcurrentWindow.component.isOpen = false;\n\n\t\t// remove old entry from windowsList and add the updated entry\n\t\tnewWindowsList = windowsList.filter(\n\t\t\t(window) => window.id !== currentWindow.id,\n\t\t);\n\t\tnewWindowsList.push(currentWindow);\n\t\tnewMinimizedWindows = windowsState.minimizedWindows.filter(\n\t\t\t(window) => window !== currentWindow.id,\n\t\t);\n\t} else {\n\t\tcurrentWindow.isOpen = false;\n\t\tcurrentWindow.component.isOpen = false;\n\n\t\tnewWindowsList = windowsList.filter(\n\t\t\t(window) => window.id !== currentWindow.id,\n\t\t);\n\t\tnewMinimizedWindows = windowsState.minimizedWindows.filter(\n\t\t\t(window) => window !== currentWindow.id,\n\t\t);\n\t\tnewModalWindows = windowsState.modalWindows.filter(\n\t\t\t(window) => window !== currentWindow.id,\n\t\t);\n\n\t\tsetTimeout(() => {\n\t\t\tnowWindow.remove();\n\t\t}, 30);\n\t}\n\n\tif (windowsState.leftDockId === currentWindow.id) {\n\t\twindowsState.leftDockId = null;\n\t\tcurrentWindow.component.stateWhenClosed = 'docked-left';\n\t}\n\tif (windowsState.rightDockId === currentWindow.id) {\n\t\twindowsState.rightDockId = null;\n\t\tcurrentWindow.component.stateWhenClosed = 'docked-right';\n\t}\n\tif (windowsState.bottomDockId === currentWindow.id) {\n\t\twindowsState.bottomDockId = null;\n\t\tcurrentWindow.component.stateWhenClosed = 'docked-bottom';\n\t}\n\tif (currentWindow.component.isModal) {\n\t\tcurrentWindow.component.stateWhenClosed = 'modal';\n\t}\n\tif (reopenAsFloatingWindow || currentWindow.component.isFloating) {\n\t\tcurrentWindow.component.stateWhenClosed = 'floating';\n\t}\n\n\tupdateProperties({\n\t\tshowCloseConfirmDialog: false,\n\t\tclosingWindowId: null,\n\t\twindowsList: newWindowsList,\n\t\twindowsState: {\n\t\t\t...windowsState,\n\t\t\tminimizedWindows: newMinimizedWindows,\n\t\t\tmodalWindows: newModalWindows,\n\t\t\t...(reopenAsFloatingWindow && {\n\t\t\t\tmodalWindows: newModalWindows.filter(\n\t\t\t\t\t(window) => window !== currentWindow.id,\n\t\t\t\t),\n\t\t\t}),\n\t\t\tactiveWindowId:\n\t\t\t\tactiveWindowId === currentWindow.id ? null : activeWindowId,\n\t\t},\n\t});\n\n\twindow.requestAnimationFrame(() => {\n\t\tdispatch(UPDATE_BODY_CLASS_NAMES);\n\t});\n\n\thandleStateChangeCallback(currentWindow, 'closed');\n};\n\nexport const handleOpenWindow = (coeffects) => {\n\tconst {updateProperties, state, action, dispatch} = coeffects;\n\tconst {windowsList, windowsState} = state.properties;\n\tconst {payload} = action;\n\tconst currentWindow = windowsList.find(\n\t\t(window) => window.id === payload.windowConfig.id,\n\t);\n\n\tif (!currentWindow) {\n\t\treturn;\n\t}\n\n\tif (payload.newProperties) {\n\t\t// interate over the contentElementData and set the properties on the contentElement component\n\t\tconst contentElementProperties = payload.newProperties || null;\n\t\tif (contentElementProperties) {\n\t\t\tObject.keys(contentElementProperties).forEach((key) => {\n\t\t\t\tcurrentWindow.component.contentElement[key] =\n\t\t\t\t\tcontentElementProperties[key];\n\t\t\t});\n\t\t}\n\t}\n\n\tif (currentWindow.isOpen) {\n\t\t// Window is already open, just bring it to front\n\t\tupdateProperties({\n\t\t\twindowsState: {\n\t\t\t\t...windowsState,\n\t\t\t\tactiveWindowId: currentWindow.id,\n\t\t\t},\n\t\t});\n\n\t\tdispatchEventToContentElement(currentWindow, SN_WINDOW_OPENED);\n\t\treturn;\n\t}\n\n\tcurrentWindow.isOpen = true;\n\t// Animate it early to beat any race condition\n\tcurrentWindow.component.isAnimating = true;\n\tcurrentWindow.component.isOpen = true;\n\n\tconst newWindowList = windowsList.filter(\n\t\t(window) => window.id !== currentWindow.id,\n\t);\n\tnewWindowList.push(currentWindow);\n\n\tconst isMinimized = windowsState.minimizedWindows.includes(currentWindow.id);\n\tlet minimizedWindows = windowsState.minimizedWindows || [];\n\tif (isMinimized) {\n\t\tminimizedWindows = windowsState.minimizedWindows.filter(\n\t\t\t(windowId) => windowId !== currentWindow.id,\n\t\t);\n\t}\n\n\tconst windowStartingState = currentWindow.component.stateWhenClosed;\n\tif (windowStartingState !== '') {\n\t\tif (windowStartingState.indexOf('docked') >= 0) {\n\t\t\tif (windowStartingState === 'docked-left') {\n\t\t\t\twindowsState.leftDockId = currentWindow.id;\n\t\t\t}\n\t\t\tif (windowStartingState === 'docked-right') {\n\t\t\t\twindowsState.rightDockId = currentWindow.id;\n\t\t\t}\n\t\t\tif (windowStartingState === 'docked-bottom') {\n\t\t\t\twindowsState.bottomDockId = currentWindow.id;\n\t\t\t}\n\t\t\tcurrentWindow.component.isDocked = true;\n\t\t}\n\n\t\tcurrentWindow.component.stateWhenClosed = '';\n\t\tdispatch(UPDATE_BODY_CLASS_NAMES);\n\t\thandleStateChangeCallback(currentWindow, windowStartingState);\n\t}\n\n\tupdateProperties({\n\t\twindowsList: newWindowList,\n\t\twindowsState: {\n\t\t\t...state.properties.windowsState,\n\t\t\tactiveWindowId: currentWindow.id,\n\t\t\tminimizedWindows: minimizedWindows,\n\t\t},\n\t});\n\n\tdispatchEventToContentElement(currentWindow, SN_WINDOW_OPENED);\n};\n\nexport const handleModalToggle = (coeffects) => {\n\tconst {updateProperties, state, action, dispatch} = coeffects;\n\tconst {\n\t\tproperties: {windowsState, windowsList},\n\t} = state;\n\tconst {\n\t\tpayload: {windowConfig, forceEnableModal = false, overrideConfig = false},\n\t} = action;\n\tconst currentWindow = windowsList.find(\n\t\t(window) => window.id === windowConfig.id,\n\t);\n\n\t// Check if config doesn't prevent modal toggling (unless overrideConfig is true)\n\tif (\n\t\t!currentWindow ||\n\t\t(!(currentWindow.canToggleModal || currentWindow.canMaximize) &&\n\t\t\t!overrideConfig)\n\t) {\n\t\treturn;\n\t}\n\n\tlet modalWindows = windowsState.modalWindows || [];\n\n\tlet isModal;\n\n\tif (windowsState.modalWindows.includes(currentWindow.id)) {\n\t\t// When the window is already modal, we only want to remove it if the user isn't forcing modal mode\n\t\tif (!forceEnableModal) {\n\t\t\tmodalWindows = windowsState.modalWindows.filter(\n\t\t\t\t(windowId) => windowId !== currentWindow.id,\n\t\t\t);\n\t\t\tisModal = false;\n\t\t}\n\t} else {\n\t\tmodalWindows.push(currentWindow.id);\n\t\tisModal = true;\n\t}\n\n\tupdateProperties({\n\t\twindowsState: {\n\t\t\t...windowsState,\n\t\t\tmodalWindows: modalWindows,\n\t\t\tactiveWindowId: currentWindow.id,\n\t\t\tleftDockId:\n\t\t\t\twindowsState.leftDockId === currentWindow.id\n\t\t\t\t\t? null\n\t\t\t\t\t: windowsState.leftDockId,\n\t\t\trightDockId:\n\t\t\t\twindowsState.rightDockId === currentWindow.id\n\t\t\t\t\t? null\n\t\t\t\t\t: windowsState.rightDockId,\n\t\t\tbottomDockId:\n\t\t\t\twindowsState.bottomDockId === currentWindow.id\n\t\t\t\t\t? null\n\t\t\t\t\t: windowsState.bottomDockId,\n\t\t},\n\t});\n\tdispatch(UPDATE_BODY_CLASS_NAMES);\n\thandleStateChangeCallback(currentWindow, isModal ? 'modal' : 'floating');\n\t// HDS legacy: Toggle between full-screen view (floating) and modal view\n\tconst isFullscreen = isModal;\n\tdispatchModelessDialogAction({\n\t\tcontentElement: currentWindow?.component?.contentElement,\n\t\twindowConfig: currentWindow.windowConfig,\n\t\tactionName: NOW_MODELESS_DIALOG_MAXIMIZE,\n\t\tdialogSize: currentWindow?.component?.dialogSize,\n\t\tdialogLocation: currentWindow?.component?.dialogLocation,\n\t\tisFullscreen,\n\t});\n};\n\nexport const handleModelessMousedown = (coeffects) => {\n\tconst {action, state} = coeffects;\n\tconst {payload} = action;\n\tconst {properties} = state;\n\n\tif (properties.windowConfig.canDrag) {\n\t\tdispatchModelessDialogAction({\n\t\t\tcontentElement: properties.contentElement,\n\t\t\twindowConfig: properties.windowConfig,\n\t\t\tactionName: NOW_MODELESS_DIALOG_MOUSEDOWN,\n\t\t\tdialogSize: properties.dialogSize,\n\t\t\tdialogLocation: properties.dialogLocation,\n\t\t\tmouseEvent: payload.mouseEvent,\n\t\t});\n\t}\n};\n\nexport const handleModelessMouseup = (coeffects) => {\n\tconst {action, state} = coeffects;\n\tconst {properties} = state;\n\n\tdispatchModelessDialogAction({\n\t\tcontentElement: properties.contentElement,\n\t\twindowConfig: properties.windowConfig,\n\t\tactionName: NOW_MODELESS_DIALOG_MOUSEUP,\n\t\tdialogSize: properties.dialogSize,\n\t\tdialogLocation: properties.dialogLocation,\n\t\tmouseEvent: action.payload?.mouseEvent,\n\t});\n};\n\nexport const handleSetWindowActive = (coeffects) => {\n\tconst {updateProperties, state, action} = coeffects;\n\tconst {windowsState} = state.properties;\n\tconst {payload} = action;\n\n\tconst currentWindow = state.properties.windowsList.find(\n\t\t(window) => window.id === payload.windowConfig.id,\n\t);\n\n\t// Focus the window\n\tcurrentWindow.component.focus();\n\n\tif (\n\t\twindowsState.activeWindowId === payload.windowConfig.id ||\n\t\t!currentWindow\n\t) {\n\t\treturn;\n\t}\n\n\tupdateProperties({\n\t\twindowsState: {\n\t\t\t...windowsState,\n\t\t\tactiveWindowId: payload.windowConfig.id,\n\t\t},\n\t});\n\t// dispatchEventToContentElement(currentWindow, SN_WINDOW_FOCUSED);\n};\n\nexport const handleToggleMinimize = (coeffects) => {\n\tconst {\n\t\tupdateProperties,\n\t\tstate: {\n\t\t\tproperties: {windowsList, windowsState},\n\t\t},\n\t\taction: {\n\t\t\tpayload: {\n\t\t\t\twindowConfig: {id: windowId},\n\t\t\t\tforceMinimize = false,\n\t\t\t\toverrideConfig = false,\n\t\t\t},\n\t\t},\n\t} = coeffects;\n\tconst currWindow = windowsList.find(\n\t\t(currentWindow) => currentWindow.id === windowId,\n\t);\n\n\t// Ensure the config doesn't prevent minimizing (unless overrideConfig is true)\n\tif (!currWindow || (!currWindow.canMinimize && !overrideConfig)) {\n\t\treturn;\n\t}\n\n\tconst currMinimizedWidows = windowsState.minimizedWindows || [];\n\tconst isMinimized = currMinimizedWidows.includes(windowId);\n\tlet newActiveWindowId;\n\n\tif (isMinimized) {\n\t\t// When the window is already minimized and we're forcing minimization, we maintain the current state\n\t\tif (forceMinimize) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove it from our list of minimized windows\n\t\tcurrMinimizedWidows.splice(currMinimizedWidows.indexOf(windowId), 1);\n\n\t\t// Update new active window id\n\t\tnewActiveWindowId = windowId;\n\n\t\t// Keep existing positions for other minimized windows, remove only this window's position\n\t\tconst existingPositions = {\n\t\t\t...windowsState.minimizedTargetPositions,\n\t\t};\n\t\tdelete existingPositions[windowId];\n\n\t\tconst newWindowsState = {\n\t\t\t...windowsState,\n\t\t\tminimizedWindows: currMinimizedWidows,\n\t\t\tactiveWindowId: newActiveWindowId,\n\t\t\tminimizedTargetPositions: existingPositions,\n\t\t\tisRestoring: true,\n\t\t};\n\n\t\tupdateProperties({\n\t\t\twindowsState: newWindowsState,\n\t\t});\n\t\t// Propagate to windows so their COMPONENT_PROPERTY_CHANGED runs and they recompute/animate\n\t\twindowsList.forEach((window) => {\n\t\t\tif (window.component) {\n\t\t\t\twindow.component.windowsState = newWindowsState;\n\t\t\t\tdispatchEventToWindow(windowsList, window.id, 'PROPERTY_CHANGED', {\n\t\t\t\t\tname: 'windowsState',\n\t\t\t\t\tvalue: newWindowsState,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tsetTimeout(() => {\n\t\t\tconst existingPositionValues = Object.values(existingPositions);\n\t\t\tconst finalWindowsState =\n\t\t\t\texistingPositionValues.length > 0\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...windowsState,\n\t\t\t\t\t\t\tminimizedTargetPositions: Object.fromEntries(\n\t\t\t\t\t\t\t\tcurrMinimizedWidows\n\t\t\t\t\t\t\t\t\t.map((wId, index) => [\n\t\t\t\t\t\t\t\t\t\twId,\n\t\t\t\t\t\t\t\t\t\texistingPositionValues.sort((a, b) => a.left - b.left)[\n\t\t\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t.filter(([, position]) => position),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tisRestoring: false,\n\t\t\t\t\t\t}\n\t\t\t\t\t: {\n\t\t\t\t\t\t\t...windowsState,\n\t\t\t\t\t\t\tisRestoring: false,\n\t\t\t\t\t\t};\n\n\t\t\tupdateProperties({windowsState: finalWindowsState});\n\t\t\t// Propagate to windows so their COMPONENT_PROPERTY_CHANGED runs and they recompute/animate\n\n\t\t\twindowsList.forEach((window) => {\n\t\t\t\tif (window.component) {\n\t\t\t\t\twindow.component.windowsState = finalWindowsState;\n\t\t\t\t\tdispatchEventToWindow(windowsList, window.id, 'PROPERTY_CHANGED', {\n\t\t\t\t\t\tname: 'windowsState',\n\t\t\t\t\t\tvalue: finalWindowsState,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}, 100);\n\n\t\tconst viewportWidth = window.innerWidth;\n\t\tconst viewportHeight = window.innerHeight;\n\t\tconst dialogSize = currWindow.component.dialogSize;\n\t\tconst dialogLocation = currWindow.component.dialogLocation;\n\n\t\t// Only clamp the window if it's overflowing the viewport\n\t\tif (\n\t\t\t!isWindowInBounds(\n\t\t\t\tdialogSize,\n\t\t\t\tdialogLocation,\n\t\t\t\tviewportWidth,\n\t\t\t\tviewportHeight,\n\t\t\t)\n\t\t) {\n\t\t\tconst clampedPosition = clampDialogPosition({dialogLocation, dialogSize});\n\n\t\t\tcurrWindow.dialogLocation = {\n\t\t\t\t...(dialogLocation.top !== undefined\n\t\t\t\t\t? {top: clampedPosition.top}\n\t\t\t\t\t: {bottom: clampedPosition.bottom}),\n\t\t\t\t...(dialogLocation.left !== undefined\n\t\t\t\t\t? {left: clampedPosition.left}\n\t\t\t\t\t: {right: clampedPosition.right}),\n\t\t\t};\n\t\t\tcurrWindow.dialogSize = {\n\t\t\t\twidth: clampedPosition.width,\n\t\t\t\theight: clampedPosition.height,\n\t\t\t};\n\n\t\t\tcurrWindow.component.dialogLocation = currWindow.dialogLocation;\n\t\t\tcurrWindow.component.dialogSize = currWindow.dialogSize;\n\t\t}\n\n\t\tconst windowContainer =\n\t\t\tcurrWindow.component.shadowRoot.querySelector('.sn-window-wrapper');\n\n\t\tif (!windowContainer) {\n\t\t\treturn;\n\t\t}\n\t} else {\n\t\t// HDS legacy: Dispatch NOW_MODELESS_DIALOG#MINIMIZE before hiding\n\t\tconst windowBounds = currWindow.component?.shadowRoot\n\t\t\t?.querySelector('.sn-window-wrapper')\n\t\t\t?.getBoundingClientRect();\n\t\tif (windowBounds) {\n\t\t\tconst isFullscreen = currWindow.component.isFullscreenView || false;\n\t\t\tdispatchModelessDialogAction({\n\t\t\t\tcontentElement: currWindow?.component?.contentElement,\n\t\t\t\twindowConfig: currWindow.windowConfig,\n\t\t\t\tactionName: NOW_MODELESS_DIALOG_MINIMIZE,\n\t\t\t\tbounds: windowBounds,\n\t\t\t\tisFullscreen,\n\t\t\t});\n\t\t}\n\n\t\t// Update new active window id\n\t\tnewActiveWindowId = windowsState.activeWindowId;\n\n\t\t// Add it to our list of minimized windows\n\t\tcurrMinimizedWidows.push(windowId);\n\t}\n\n\t// toggle the properties\n\tcurrWindow.isMinimized = !isMinimized;\n\tcurrWindow.component.isMinimized = !isMinimized;\n\tcurrWindow.isOpen = isMinimized;\n\tcurrWindow.component.isOpen = isMinimized;\n\n\tdispatchEventToContentElement(currWindow, SN_WINDOW_MINIMIZED, {\n\t\tisMinimized: !isMinimized,\n\t});\n\n\tupdateProperties({\n\t\twindowsState: {\n\t\t\t...windowsState,\n\t\t\tminimizedWindows: currMinimizedWidows,\n\t\t\tactiveWindowId: newActiveWindowId,\n\t\t},\n\t});\n};\n\nexport const handleCheckWindowLocations = (coeffects) => {\n\tconst {\n\t\tstate: {\n\t\t\tproperties: {windowsList},\n\t\t},\n\t} = coeffects;\n\n\twindowsList.map((currentWindow) => {\n\t\tdispatchEventToWindow(\n\t\t\twindowsList,\n\t\t\tcurrentWindow.id,\n\t\t\tSN_WINDOW_CHECK_LOCATION,\n\t\t\t{\n\t\t\t\twidth: document.body.offsetWidth,\n\t\t\t\theight: document.body.offsetHeight,\n\t\t\t},\n\t\t);\n\t});\n};\n\nexport const relayMessage = ({state, action}) => {\n\tconst {properties} = state;\n\tconst {windowsList} = properties;\n\n\twindowsList.map((currentWindow) => {\n\t\tconst childWindow = currentWindow.component;\n\t\tchildWindow.dispatch(BROADCAST_MESSAGE, action.payload);\n\t});\n};\n\nexport const handleScreenChanged = (coeffects) => {\n\tconst {updateProperties, state, action} = coeffects;\n\tconst {payload} = action;\n\n\tupdateProperties({\n\t\tscreenInfo: {\n\t\t\tscreenKey: payload.screenKey,\n\t\t\tinstanceId: payload.instanceId,\n\t\t\texperienceId: payload.experienceId,\n\t\t},\n\t});\n\n\tconst bottomToolbar = state.properties.bottomToolbarComponent;\n\n\trequestAnimationFrame(() => {\n\t\tbottomToolbar.dispatch(UPDATE_BOTTOM_TOOLBAR_ELEMENTS, payload);\n\t});\n};\n\nexport const handleSetDirtyState = (coeffects) => {\n\tconst {dispatch, action} = coeffects;\n\tconst {id, dirtyState} = action.payload;\n\tdispatch(SET_WINDOW_PROPERTIES, {\n\t\twindowId: id,\n\t\tnewProperties: {isDirty: dirtyState},\n\t});\n};\n\nexport const handleDialogCloseConfirmed = (coeffects) => {\n\tconst {state, dispatch, updateProperties} = coeffects;\n\tconst {properties} = state;\n\tconst {windowsList, closingWindowId} = properties;\n\tconst currentWindow = windowsList.find(\n\t\t(window) => window.id === closingWindowId,\n\t);\n\tdispatch(CLOSE_WINDOW, {\n\t\twindowConfig: {id: closingWindowId},\n\t\tforceDestroy: true,\n\t});\n};\n\nexport const handleDialogCloseCancelled = (coeffects) => {\n\tconst {\n\t\tupdateProperties,\n\t\tproperties: {windowsList, closingWindowId},\n\t} = coeffects;\n\tupdateProperties({\n\t\tshowCloseConfirmDialog: false,\n\t\tclosingWindowId: null,\n\t});\n\tdispatchEventToWindow(\n\t\twindowsList,\n\t\tclosingWindowId,\n\t\t'SN_WINDOW#CLOSE_CANCELED',\n\t);\n};\n\nexport const handleSetWindowProperties = (coeffects) => {\n\tconst {state, action, updateProperties} = coeffects;\n\tconst {payload} = action;\n\tconst {windowsList} = state.properties;\n\tconst currentWindow = windowsList.find(\n\t\t(window) => window.id === payload.windowId,\n\t);\n\n\tconsole.info('Setting window properties', {payload, currentWindow});\n\n\tif (!currentWindow) {\n\t\treturn;\n\t}\n\n\t// update the window properties\n\tconst sanitizedProperties = {};\n\tObject.keys(payload.newProperties).forEach((key) => {\n\t\tlet propertyValue = payload.newProperties[key];\n\n\t\t// Sanitize title properties to remove HTML tags\n\t\tif ((key === 'minimizedTitle' || key === 'headingLabel') && propertyValue) {\n\t\t\tpropertyValue = sanitizeHtmlString(propertyValue);\n\t\t}\n\n\t\tsanitizedProperties[key] = propertyValue;\n\n\t\tif (key in currentWindow) {\n\t\t\tcurrentWindow[key] = propertyValue;\n\t\t}\n\t\tif (key in currentWindow.component) {\n\t\t\tcurrentWindow.component[key] = propertyValue;\n\t\t}\n\t});\n\n\tupdateProperties({\n\t\twindowsList: [...windowsList],\n\t});\n\n\tdispatchEventToWindow(\n\t\twindowsList,\n\t\tcurrentWindow.id,\n\t\t'SN_WINDOW#SET_WINDOW_PROPERTIES',\n\t\tsanitizedProperties,\n\t);\n};\n\nconst dispatchEventToContentElement = (\n\tcurrentWindow,\n\tevent,\n\textraPayload = {},\n) => {\n\tconsole.info('Dispatching event to content element', {\n\t\tevent,\n\t\tcurrentWindow,\n\t\textraPayload,\n\t});\n\t// let the window's content element know that the window is being opened/closed\n\tif (currentWindow.component?.contentElement?.dispatch) {\n\t\tcurrentWindow.component.contentElement.dispatch(event, {\n\t\t\twindowId: currentWindow.id,\n\t\t\tscreenKey: currentWindow.screenKey,\n\t\t\tinstanceId: currentWindow.instanceId,\n\t\t\texperienceId: currentWindow.experienceId,\n\t\t\tcomponentId: currentWindow.uxrComponentId,\n\t\t\t...extraPayload,\n\t\t});\n\t}\n};\n\nconst dispatchEventToWindow = (\n\twindowsList,\n\twindowId,\n\tevent,\n\teventPayload = {},\n) => {\n\tconst currentWindow = windowsList.find((window) => window.id === windowId);\n\tif (currentWindow) {\n\t\tcurrentWindow.component.dispatch(event, eventPayload);\n\t}\n};\n\nexport const handleSidebarUnreadMessage = (coeffects) => {\n\tconst {dispatch, action} = coeffects;\n\tconst {id, isUnread} = action.payload;\n\tdispatch(SET_WINDOW_PROPERTIES, {\n\t\twindowId: id,\n\t\tnewProperties: {isMessageUnread: isUnread},\n\t});\n};\n\nexport const handleSetSidebarChatPrivate = (coeffects) => {\n\tconst {dispatch, action} = coeffects;\n\tconst {id, isPrivate} = action.payload;\n\tdispatch(SET_WINDOW_PROPERTIES, {\n\t\twindowId: id,\n\t\tnewProperties: {isChatPrivate: isPrivate},\n\t});\n};\n\nexport const openDebugWindow = (coeffects) => {\n\tconst {state, dispatch} = coeffects;\n\n\tdispatch(CREATE_WINDOW, {\n\t\tid: 'debug-panel-window',\n\t\ttitle: `Window Manager Debug Panel`,\n\t\tcategory: 'Debug Tools',\n\t\tisPersistent: true,\n\t\tstartingState: 'floating',\n\t\tcloseToTop: false,\n\t\tcanResize: true,\n\t\tcanDrag: true,\n\t\tcanMinimize: true,\n\t\tcanMaximize: true,\n\t\tcanClose: true,\n\t\tcanDock: true,\n\t\tvariant: 'secondary',\n\t\tisOpen: true,\n\t\tposition: 'bottom-left',\n\t\toffset: '[100,50]',\n\t\tcloseButtonTooltip: 'Click this button to close the Debug Window',\n\t\tconfirmClose: true,\n\t\tconfirmCloseMessage: 'Are you sure you want to close the Debug Window?',\n\t\tdockConfig: {\n\t\t\tdockLeft: true,\n\t\t\tdockRight: true,\n\t\t\tdockBottom: true,\n\t\t},\n\t\tdialogSize: {\n\t\t\twidth: 640,\n\t\t\theight: 420,\n\t\t},\n\t\theaderIcon: {\n\t\t\ticon: 'bug-search-fill',\n\t\t\tvariant: 'initial',\n\t\t},\n\t\tcontent: {\n\t\t\tcomponent: 'debug-panel',\n\t\t\tproperties: {\n\t\t\t\ttitle: 'Debug Panel',\n\t\t\t\twindowsList: state.properties.windowsList,\n\t\t\t\twindowsState: state.properties.windowsState,\n\t\t\t},\n\t\t},\n\t});\n};\n\n// When a toolbar button mounts we measure its rect in the manager and store it in windowsState.\n// Because manager props don't auto-propagate into each sn-window, we explicitly push the updated\n// windowsState to the target window so its COMPONENT_PROPERTY_CHANGED runs and it recomputes the\n// minimized animation. We dispatch 'PROPERTY_CHANGED' and also call updateProperties on the window\n// to ensure both component logic and slotted content see the change immediately.\nexport const handleMinimizedTargetPosition = ({\n\tstate,\n\taction,\n\tupdateProperties,\n}) => {\n\tconst {windowId, rect} = action.payload;\n\n\tconst isMinimized =\n\t\tstate.properties.windowsState.minimizedWindows?.includes(windowId);\n\tif (!isMinimized) {\n\t\treturn;\n\t}\n\n\tconst prevPositions =\n\t\tstate.properties.windowsState.minimizedTargetPositions || {};\n\n\tconst updatedPositions = {\n\t\t...prevPositions,\n\t\t[windowId]: rect,\n\t};\n\n\tconst newWindowsState = {\n\t\t...state.properties.windowsState,\n\t\tminimizedTargetPositions: updatedPositions,\n\t};\n\n\tconst isSame = isDeepEqual(\n\t\tstate.properties.windowsState.minimizedTargetPositions,\n\t\tupdatedPositions,\n\t);\n\tif (isSame) {\n\t\treturn;\n\t}\n\n\tupdateProperties({\n\t\twindowsState: newWindowsState,\n\t});\n\n\tconst currentWindow = state.properties.windowsList.find(\n\t\t(window) => window.id === windowId,\n\t);\n\n\tif (currentWindow?.component) {\n\t\tcurrentWindow.component.windowsState = newWindowsState;\n\t\t// Propagate to the target window so its COMPONENT_PROPERTY_CHANGED runs and it recomputes/animates\n\t\tdispatchEventToWindow(\n\t\t\tstate.properties.windowsList,\n\t\t\twindowId,\n\t\t\t'PROPERTY_CHANGED',\n\t\t\t{\n\t\t\t\tname: 'windowsState',\n\t\t\t\tvalue: newWindowsState,\n\t\t\t},\n\t\t);\n\n\t\tif (currentWindow.component.updateProperties) {\n\t\t\tcurrentWindow.component.updateProperties({\n\t\t\t\twindowsState: newWindowsState,\n\t\t\t});\n\t\t}\n\t} else {\n\t\tconsole.warn('Could not find window in windowsList:', windowId);\n\t}\n};\n\nexport const refreshAllMinimizedPositions = ({state, updateProperties}) => {\n\tconst clearedPositions = {};\n\n\tconst newWindowsState = {\n\t\t...state.properties.windowsState,\n\t\tminimizedTargetPositions: clearedPositions,\n\t};\n\n\tupdateProperties({\n\t\twindowsState: newWindowsState,\n\t});\n\t// Propagate to windows so their COMPONENT_PROPERTY_CHANGED runs and they recompute/animate\n\tstate.properties.windowsList.forEach((window) => {\n\t\tif (window.component) {\n\t\t\twindow.component.windowsState = newWindowsState;\n\t\t\tdispatchEventToWindow(\n\t\t\t\tstate.properties.windowsList,\n\t\t\t\twindow.id,\n\t\t\t\t'PROPERTY_CHANGED',\n\t\t\t\t{\n\t\t\t\t\tname: 'windowsState',\n\t\t\t\t\tvalue: newWindowsState,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t});\n};\n\n/**\n * Handle focus bottom toolbar request from keyboard shortcut\n * Finds first minimized window button and focuses it with retry pattern\n * Announces state to screen readers\n */\nexport const handleFocusBottomToolbar = (coeffects) => {\n\tconst {state, dispatch} = coeffects;\n\tconst {properties} = state;\n\tconst {bottomToolbarComponent, windowsState} = properties;\n\n\t// Check if bottom toolbar exists\n\tif (!bottomToolbarComponent) {\n\t\tconsole.warn('[WM Shortcuts] No bottom toolbar component');\n\t\treturn;\n\t}\n\n\t// Check if there are minimized windows\n\tconst minimizedCount = windowsState?.minimizedWindows?.length ?? 0;\n\n\tif (minimizedCount === 0) {\n\t\t// Announce no minimized windows\n\t\tdispatch('ARIA_LIVE_REGION_UPDATE_REQUESTED', {\n\t\t\tmessage: 'No minimized windows',\n\t\t\ttype: 'polite',\n\t\t\treplaceContent: true,\n\t\t});\n\t\treturn;\n\t}\n\n\t// Find and focus first button using getFocusableNodes\n\tconst toolbar = bottomToolbarComponent?.shadowRoot?.querySelector(\n\t\t'.sn-window-manager-toolbar',\n\t);\n\tconst focusableNodes = getFocusableNodes(toolbar);\n\tconst firstButton = focusableNodes?.tabbableNodes?.[0] ?? null;\n\n\tif (!firstButton) {\n\t\tdispatch('ARIA_LIVE_REGION_UPDATE_REQUESTED', {\n\t\t\tmessage: 'Bottom toolbar not available',\n\t\t\ttype: 'polite',\n\t\t\treplaceContent: true,\n\t\t});\n\t\treturn;\n\t}\n\n\t// Focus with retry pattern (returns a promise but we don't need to await it)\n\tfocusElementWithRetry(firstButton).then((focusSuccess) => {\n\t\tif (focusSuccess) {\n\t\t\t// Announce to screen reader\n\t\t\tconst message =\n\t\t\t\tminimizedCount === 1\n\t\t\t\t\t? 'Bottom bar focused. 1 minimized window.'\n\t\t\t\t\t: `Bottom bar focused. ${minimizedCount} minimized windows.`;\n\t\t\tdispatch('ARIA_LIVE_REGION_UPDATE_REQUESTED', {\n\t\t\t\tmessage,\n\t\t\t\ttype: 'polite',\n\t\t\t\treplaceContent: true,\n\t\t\t});\n\t\t}\n\t});\n};\n\n/**\n * handle when polaris tells window manager a menu is pinned/unpinned\n * @param {*} coeffects\n */\nexport const handlePolarisMenuPinned = (coeffects) => {\n\tconst {\n\t\taction: {payload},\n\t\tproperties: {windowsState},\n\t\tupdateProperties,\n\t} = coeffects;\n\n\tif (payload.type === 'mainMenu') {\n\t\tupdateProperties({\n\t\t\twindowsState: {\n\t\t\t\t...windowsState,\n\t\t\t\tleftDockId: payload.pinned ? payload.menuId : null,\n\t\t\t},\n\t\t});\n\t}\n\n\tif (payload.type === 'contextualMenu') {\n\t\tupdateProperties({\n\t\t\twindowsState: {\n\t\t\t\t...windowsState,\n\t\t\t\trightDockId: payload.pinned ? payload.menuId : null,\n\t\t\t},\n\t\t});\n\t}\n};\n","import {actionTypes} from '@servicenow/ui-core';\n\nimport {\n\tBROADCAST_MESSAGE,\n\tSET_HEADER_BUTTONS,\n\tTOGGLE_MODAL_STATE,\n} from '../sn-window-manager/utilities/actions';\nimport {\n\tclampDialogPosition,\n\tfindAvailableDialogPosition,\n\tisWindowInBounds,\n} from '../sn-window-manager/utilities/helpers';\nimport {\n\tSN_WINDOW_CHECK_LOCATION,\n\tSN_WINDOW_CREATED,\n\tSN_WINDOW_FOCUSED,\n\tSN_WINDOW_SET_DIRTY_STATE,\n\tSN_WINDOW_MODALIZED,\n\tSN_WINDOW_DOCKED,\n\tSN_WINDOW_MINIMIZED,\n\tSN_WINDOW_SET_WINDOW_SIZE,\n\tSN_WINDOW_SET_DOCKED_WINDOW_SIZE,\n\tSN_WINDOW_SET_WINDOW_PROPERTIES,\n\tNOW_MODELESS_DIALOG_CONTENT_VISIBLE,\n\tNOW_MODELESS_DIALOG_RESIZABLE_END,\n} from './actions';\nimport {\n\tdeepSearchElement,\n\tdispatchModelessDialogAction,\n} from './behaviors/utils/helpers';\nimport {handleStateChangeCallback} from '../sn-window-manager/utilities';\nimport {getFocusableNodes} from '@servicenow/behavior-focus';\n\nconst {\n\tCOMPONENT_DOM_TREE_READY,\n\tCOMPONENT_PROPERTY_CHANGED,\n\tCOMPONENT_RENDERED,\n} = actionTypes;\n\nconst setAnimationClass = (host, disabled) => {\n\tif (disabled) {\n\t\thost.classList?.add('disable-animation');\n\t} else {\n\t\thost.classList?.remove('disable-animation');\n\t}\n};\nconst animationTimeouts = new WeakMap();\n\nexport const isFullScreen = (\n\tbrowserDimensions,\n\tisModal,\n\tfullscreenViewConfig,\n) => {\n\t// Get width and height thresholds based on whether the window is a modal\n\tconst widthThreshold = isModal\n\t\t? fullscreenViewConfig.modalThresholds.width\n\t\t: fullscreenViewConfig.standardThresholds.width;\n\tconst heightThreshold = isModal\n\t\t? fullscreenViewConfig.modalThresholds.height\n\t\t: fullscreenViewConfig.standardThresholds.height;\n\n\t// If browserDimensions are not yet initialized (0,0), don't treat as fullscreen\n\tif (browserDimensions?.width === 0 || browserDimensions?.height === 0) {\n\t\treturn false;\n\t}\n\n\t// Check if the browser dimensions are less than the thresholds\n\treturn (\n\t\tbrowserDimensions.width < widthThreshold ||\n\t\tbrowserDimensions.height < heightThreshold\n\t);\n};\n\nexport const computeStyleObj = (properties) => {\n\tconst {windowsState, windowConfig} = properties;\n\n\tconst {top, left, bottom, right} = properties.dialogLocation;\n\tconst autoResizeEnabled =\n\t\twindowConfig.autoResizableConfig?.enableAutoResizableHeight;\n\n\t// default and floating\n\tlet styleObj = {\n\t\t...(top !== undefined\n\t\t\t? {top: `${top}px`, bottom: 'auto'}\n\t\t\t: {bottom: `${bottom}px`, top: 'auto'}),\n\t\t...(left !== undefined\n\t\t\t? {left: `${left}px`, right: 'auto'}\n\t\t\t: {right: `${right}px`, left: 'auto'}),\n\t\twidth: `${properties.dialogSize.width}px`,\n\t\theight: autoResizeEnabled ? 'initial' : `${properties.dialogSize.height}px`,\n\t\t'min-height': autoResizeEnabled\n\t\t\t? `${Math.min(\n\t\t\t\t\tproperties.windowConfig.autoResizableConfig?.autoResizableMinHeight,\n\t\t\t\t\twindow.innerHeight,\n\t\t\t\t)}px`\n\t\t\t: 'auto',\n\t\t'max-height': autoResizeEnabled\n\t\t\t? `${properties.windowConfig.autoResizableConfig?.autoResizableMaxHeight}px`\n\t\t\t: 'auto',\n\t};\n\n\tif (\n\t\tisFullScreen(\n\t\t\tproperties.browserDimensions,\n\t\t\tproperties.isModal,\n\t\t\tproperties.fullscreenViewConfig,\n\t\t) &&\n\t\tproperties.isOpen\n\t) {\n\t\tstyleObj = {\n\t\t\t...(top !== undefined ? {top: '0px'} : {bottom: '0px'}),\n\t\t\t...(left !== undefined ? {left: '0px'} : {right: '0px'}),\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tborderRadius: 0,\n\t\t};\n\t} else if (properties.isDocked) {\n\t\tconst isLeft = windowsState.leftDockId === windowConfig.id;\n\t\tconst isRight = windowsState.rightDockId === windowConfig.id;\n\t\tconst isBottom = windowsState.bottomDockId === windowConfig.id;\n\n\t\tif (isLeft) {\n\t\t\tstyleObj = {\n\t\t\t\t...(top !== undefined ? {top: '0px'} : {bottom: '0px'}),\n\t\t\t\t...(left !== undefined\n\t\t\t\t\t? {left: '0px'}\n\t\t\t\t\t: {right: `calc(100vw - ${properties.dockedWindowSize}px)`}),\n\t\t\t\twidth: `${properties.dockedWindowSize}px`,\n\t\t\t\theight: '100vh',\n\t\t\t};\n\t\t} else if (isRight) {\n\t\t\tstyleObj = {\n\t\t\t\t...(top !== undefined ? {top: '0px'} : {bottom: '0px'}),\n\t\t\t\t...(left !== undefined\n\t\t\t\t\t? {left: `calc(100vw - ${properties.dockedWindowSize}px)`}\n\t\t\t\t\t: {right: '0px'}),\n\t\t\t\twidth: `${properties.dockedWindowSize}px`,\n\t\t\t\theight: '100vh',\n\t\t\t};\n\t\t} else if (isBottom) {\n\t\t\tstyleObj = {\n\t\t\t\t...(top !== undefined\n\t\t\t\t\t? {top: `calc(100vh - ${properties.dockedWindowSize}px)`}\n\t\t\t\t\t: {bottom: '0px'}),\n\t\t\t\t...(left !== undefined ? {left: '0px'} : {right: '0px'}),\n\t\t\t\twidth: `${window.innerWidth}px`,\n\t\t\t\theight: `${properties.dockedWindowSize}px`,\n\t\t\t};\n\t\t}\n\t} else if (windowConfig.closeToTop && !properties.isOpen) {\n\t\tconst isRTL = document.dir === 'rtl';\n\n\t\t// Try to find the target element for precise closing position\n\t\tlet targetX, targetY;\n\t\tlet found = false;\n\n\t\tconst closeToSelector =\n\t\t\ttypeof windowConfig.closeToElement === 'string'\n\t\t\t\t? windowConfig.closeToElement\n\t\t\t\t: null;\n\t\tif (closeToSelector) {\n\t\t\tconst targetElement = deepSearchElement(closeToSelector);\n\t\t\tif (targetElement) {\n\t\t\t\tconst targetRect = targetElement.getBoundingClientRect();\n\t\t\t\ttargetX = targetRect.left + targetRect.width / 2;\n\t\t\t\ttargetY = targetRect.top + targetRect.height / 2;\n\t\t\t\tfound = true;\n\t\t\t}\n\t\t}\n\n\t\tif (!found) {\n\t\t\t// Fallback: original hardcoded coordinates\n\t\t\ttargetX = !isRTL\n\t\t\t\t? window.innerWidth - 210\n\t\t\t\t: window.innerWidth - (window.innerWidth - 210);\n\t\t\ttargetY = 12;\n\t\t}\n\n\t\tlet closingLocation;\n\n\t\tif (top !== undefined) {\n\t\t\tclosingLocation = {\n\t\t\t\ttop: `${targetY}px`,\n\t\t\t\tleft: `${targetX}px`,\n\t\t\t\tbottom: 'auto',\n\t\t\t\tright: 'auto',\n\t\t\t};\n\t\t} else {\n\t\t\tclosingLocation = {\n\t\t\t\tbottom: `${window.innerHeight - targetY - properties.dialogSize.height}px`,\n\t\t\t\tright: `${window.innerWidth - targetX - properties.dialogSize.width}px`,\n\t\t\t\ttop: 'auto',\n\t\t\t\tleft: 'auto',\n\t\t\t};\n\t\t}\n\n\t\tstyleObj = {\n\t\t\t...closingLocation,\n\t\t\twidth: `${properties.dialogSize.width}px`,\n\t\t\theight: `${properties.dialogSize.height}px`,\n\t\t};\n\t} else if (properties.isMinimized) {\n\t\tconst target =\n\t\t\tproperties.windowsState?.minimizedTargetPositions?.[\n\t\t\t\tproperties.windowConfig.id\n\t\t\t];\n\t\tconst positionsCleared =\n\t\t\tObject.keys(properties.windowsState?.minimizedTargetPositions || {})\n\t\t\t\t.length === 0;\n\t\tconst isRestoring = properties.windowsState?.isRestoring;\n\n\t\tif (target && !positionsCleared && !isRestoring) {\n\t\t\tconst targetTopRightX = target.left + target.width;\n\t\t\tconst targetTopRightY = target.top;\n\n\t\t\tconst isFirstSlot = target.left <= 16; // First button is typically at left: 16px\n\t\t\tconst verticalOffset = isFirstSlot ? 52 : 0; // Apply 52px offset only to first slot\n\n\t\t\tconst modalLeft = targetTopRightX - properties.dialogSize.width;\n\t\t\tconst modalTop = targetTopRightY - verticalOffset;\n\n\t\t\tstyleObj = {\n\t\t\t\t...(top !== undefined\n\t\t\t\t\t? {top: `${modalTop}px`}\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tbottom: `${\n\t\t\t\t\t\t\t\twindow.innerHeight - modalTop - properties.dialogSize.height\n\t\t\t\t\t\t\t}px`,\n\t\t\t\t\t\t}),\n\t\t\t\t...(left !== undefined\n\t\t\t\t\t? {left: `${modalLeft}px`}\n\t\t\t\t\t: {\n\t\t\t\t\t\t\tright: `${\n\t\t\t\t\t\t\t\twindow.innerWidth - modalLeft - properties.dialogSize.width\n\t\t\t\t\t\t\t}px`,\n\t\t\t\t\t\t}),\n\t\t\t\twidth: `${properties.dialogSize.width}px`,\n\t\t\t\theight: `${properties.dialogSize.height}px`,\n\t\t\t};\n\t\t} else {\n\t\t\t// Keep previous style until the minimize target is available\n\t\t\tstyleObj = {\n\t\t\t\t...properties.styleObj,\n\t\t\t};\n\t\t}\n\t} else if (properties.isModal) {\n\t\tconst autoResizeEnabled =\n\t\t\twindowConfig.autoResizableConfig?.enableAutoResizableHeight;\n\n\t\tif (autoResizeEnabled) {\n\t\t\t// Use CSS-based centering for auto-sizing modals\n\t\t\tstyleObj = {\n\t\t\t\ttop: '50%',\n\t\t\t\tleft: '50%',\n\t\t\t\ttransform: 'translate(-50%, -50%)',\n\t\t\t\twidth: windowConfig.autoResizableConfig?.modalWidth || '600px',\n\t\t\t\theight: 'auto',\n\t\t\t\ttransformOrigin: 'center center',\n\t\t\t\t'min-height': `${windowConfig.autoResizableConfig?.autoResizableMinHeight || 200}px`,\n\t\t\t\t'max-height': `${\n\t\t\t\t\twindowConfig.autoResizableConfig?.autoResizableMaxHeight ||\n\t\t\t\t\twindow.innerHeight * 0.9\n\t\t\t\t}px`,\n\t\t\t};\n\t\t} else {\n\t\t\tlet modalTop = 0;\n\t\t\tlet modalLeft = 0;\n\t\t\tconst mWidth = properties.modalSize.width;\n\t\t\tconst mHeight = properties.modalSize.height;\n\n\t\t\tconst dimension = (dim, total) => {\n\t\t\t\tif (typeof dim === 'number') {\n\t\t\t\t\treturn {px: dim, css: `${dim}px`};\n\t\t\t\t}\n\t\t\t\tif (typeof dim === 'string') {\n\t\t\t\t\tif (dim.endsWith('%')) {\n\t\t\t\t\t\tconst percent = parseFloat(dim) * 0.01;\n\t\t\t\t\t\treturn {px: total * percent, css: dim};\n\t\t\t\t\t}\n\t\t\t\t\tif (dim.endsWith('px')) {\n\t\t\t\t\t\tconst px = parseInt(dim, 10);\n\t\t\t\t\t\treturn {px, css: dim};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {px: 0, css: '0px'};\n\t\t\t};\n\n\t\t\tconst {px: widthPx, css: widthCss} = dimension(mWidth, window.innerWidth);\n\t\t\tconst {px: heightPx, css: heightCss} = dimension(\n\t\t\t\tmHeight,\n\t\t\t\twindow.innerHeight,\n\t\t\t);\n\n\t\t\tmodalLeft = (window.innerWidth - widthPx) / 2;\n\t\t\tmodalTop = (window.innerHeight - heightPx) / 2;\n\n\t\t\tstyleObj = {\n\t\t\t\t...(top !== undefined\n\t\t\t\t\t? {top: `${modalTop}px`}\n\t\t\t\t\t: {bottom: `${window.innerHeight - modalTop - heightPx}px`}),\n\t\t\t\t...(left !== undefined\n\t\t\t\t\t? {left: `${modalLeft}px`}\n\t\t\t\t\t: {right: `${window.innerWidth - modalLeft - widthPx}px`}),\n\t\t\t\twidth: widthCss,\n\t\t\t\theight: heightCss,\n\t\t\t};\n\t\t}\n\t}\n\n\tstyleObj = {\n\t\t...styleObj,\n\t\t...(top !== undefined && !styleObj.transformOrigin\n\t\t\t? {transformOrigin: 'top left'}\n\t\t\t: {transformOrigin: 'bottom right'}),\n\t};\n\n\treturn styleObj;\n};\n\n// ----- TODO: Remove block once the new thumbtack icons are provided -----\n// NOTE: This code is EXTREMELY brittle, and will break if the structure of the shadow DOM changes\n// Temporary solution while the other direction thumbtack icons are not available\nconst updateShadowRootStyling = (host) => {\n\t// find the header of the window\n\tconst header = host.shadowRoot.querySelector('.header');\n\tif (!header) {\n\t\treturn;\n\t}\n\n\t// clear any styling from all existing buttons.\n\tconst existingButtons = header.querySelectorAll(\n\t\t'now-button, now-button-iconic',\n\t);\n\texistingButtons.forEach((button) => {\n\t\tconst shadowRoot = button.shadowRoot?.querySelector('now-icon')?.shadowRoot;\n\t\tif (shadowRoot) {\n\t\t\tconst style = shadowRoot.querySelector('style');\n\t\t\tif (style) {\n\t\t\t\tshadowRoot.removeChild(style);\n\t\t\t}\n\t\t}\n\t});\n\n\t// check if there is only one dock button. If so, rotate it 45 degrees\n\tlet icon = header.querySelector('.singular-dock-button');\n\tlet transform = 'transform: rotate(-45deg); margin-top: -2px;';\n\n\t// if there more than one dock button, then icon will be null\n\t// so grab the right side dock button and flip it horizontally\n\tif (!icon) {\n\t\ticon = header.querySelector('.right-dock-button');\n\t\ttransform = 'transform: scaleX(-1);';\n\t}\n\n\t// if icon is still null then no dock buttons were found and nothing needs to be done\n\tif (!icon) {\n\t\treturn;\n\t}\n\n\t// ugly and hacky but this stops styling custom icons provided for the pinning button\n\tif (!icon?.icon?.includes('thumbtack')) {\n\t\treturn;\n\t}\n\n\t// dig down and find the now-icon shadow root\n\tconst nowIconShadowRoot =\n\t\ticon.shadowRoot?.querySelector('now-icon')?.shadowRoot;\n\n\t// if now-icon was not found, then there is nothing to do\n\tif (!nowIconShadowRoot) {\n\t\treturn;\n\t}\n\n\t// Remove any existing style first to prevent duplicates\n\tconst existingStyle = nowIconShadowRoot.querySelector('style');\n\tif (existingStyle) {\n\t\tnowIconShadowRoot.removeChild(existingStyle);\n\t}\n\n\t// Add the new style to rotate the now-icon in the button\n\tconst styling = document.createElement('style');\n\tstyling.innerHTML = `.now-icon { ${transform} }`;\n\tnowIconShadowRoot.appendChild(styling);\n};\n\nconst handleSetHeaderButtons = (coeffects) => {\n\tconst {state, action, updateProperties} = coeffects;\n\tconst {properties} = state;\n\tconst {windowConfig} = properties;\n\n\tupdateProperties({\n\t\twindowConfig: {\n\t\t\t...windowConfig,\n\t\t\theaderButtons: action.payload.headerButtons,\n\t\t},\n\t});\n};\n\nconst handleSetWindowSize = (coeffects) => {\n\tconst {\n\t\tstate: {properties},\n\t\taction: {payload},\n\t\tdispatch,\n\t\tupdateProperties,\n\t} = coeffects;\n\tconst {dialogSize, dialogLocation, windowConfig} = properties;\n\n\tconsole.info('window handleSetWindowSize', {payload});\n\n\tif (\n\t\tpayload.width !== dialogSize.width ||\n\t\tpayload.height !== dialogSize.height\n\t) {\n\t\tconst viewportWidth = window.innerWidth;\n\t\tconst viewportHeight = window.innerHeight;\n\t\tconst newDialogSize = {\n\t\t\twidth: payload.width ? payload.width : dialogSize.width,\n\t\t\theight: payload.height ? payload.height : dialogSize.height,\n\t\t};\n\t\tlet clampedPosition = {\n\t\t\t...dialogLocation,\n\t\t\t...newDialogSize,\n\t\t};\n\n\t\t// Clamp the window if it's now out of bounds\n\t\tif (\n\t\t\t!isWindowInBounds(\n\t\t\t\tnewDialogSize,\n\t\t\t\tdialogLocation,\n\t\t\t\tviewportWidth,\n\t\t\t\tviewportHeight,\n\t\t\t)\n\t\t) {\n\t\t\tclampedPosition = clampDialogPosition({\n\t\t\t\tdialogLocation,\n\t\t\t\tdialogSize: newDialogSize,\n\t\t\t});\n\t\t}\n\n\t\tif (windowConfig.autoResizableConfig?.enableAutoResizableHeight) {\n\t\t\tupdateProperties({\n\t\t\t\twindowConfig: {\n\t\t\t\t\t...windowConfig,\n\t\t\t\t\tautoResizableConfig: {\n\t\t\t\t\t\t...windowConfig.autoResizableConfig,\n\t\t\t\t\t\tenableAutoResizableHeight: false,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\twindow.requestAnimationFrame(() => {\n\t\t\tdispatch('UPDATE_FLOATING_MENU_LOCATION', clampedPosition);\n\t\t});\n\t}\n};\n\nconst updateButtonFocus = (host, focusButtonId, isActive = true) => {\n\tconst headerElement = host.shadowRoot.querySelector('.docked-window');\n\tif (!headerElement) {\n\t\treturn;\n\t}\n\n\tconst buttons = getFocusableNodes(headerElement)?.tabbableNodes || [];\n\n\t// blur every button to prevent tooltips from sticking around when they shouldnt\n\tbuttons?.forEach((button) => {\n\t\tbutton.blur();\n\t});\n\n\tif (focusButtonId && isActive) {\n\t\tconst buttonToFocus = host.shadowRoot?.querySelector(\n\t\t\t`now-button[id=\"${focusButtonId}\"]`,\n\t\t);\n\t\tbuttonToFocus?.shadowRoot.querySelector('button')?.focus();\n\t}\n\n\tif (!focusButtonId && isActive) {\n\t\tconsole.info('Focusing first button', buttons[0]);\n\t\tbuttons[0]?.focus();\n\t}\n};\n\nexport const actionHandlers = {\n\t[COMPONENT_RENDERED]: (coeffects) => {\n\t\tconst {\n\t\t\tstate: {\n\t\t\t\thasModalEventListenerSet,\n\t\t\t\tproperties: {isModal, windowConfig},\n\t\t\t},\n\t\t\tupdateState,\n\t\t\tdispatch,\n\t\t\thost,\n\t\t} = coeffects;\n\t\tconst modalElement = host.parentNode.querySelector('[id^=\"modal-origin\"]');\n\n\t\t// Handle modal event listener setup/removal\n\t\tif (\n\t\t\twindowConfig.modalOverlayClickEnabled &&\n\t\t\twindowConfig.canMaximize &&\n\t\t\tisModal !== !!hasModalEventListenerSet\n\t\t) {\n\t\t\tif (isModal) {\n\t\t\t\tif (modalElement) {\n\t\t\t\t\t// Set up modal event listener\n\t\t\t\t\tmodalElement.addEventListener('click', () => {\n\t\t\t\t\t\tdispatch(TOGGLE_MODAL_STATE, {windowConfig: {id: windowConfig.id}});\n\t\t\t\t\t});\n\n\t\t\t\t\t// Update state to track that listener is set\n\t\t\t\t\tupdateState({\n\t\t\t\t\t\toperation: 'set',\n\t\t\t\t\t\tpath: 'hasModalEventListenerSet',\n\t\t\t\t\t\tvalue: true,\n\t\t\t\t\t\tshouldRender: false,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Clean up state when no longer a modal\n\t\t\t\tupdateState({\n\t\t\t\t\toperation: 'set',\n\t\t\t\t\tpath: 'hasModalEventListenerSet',\n\t\t\t\t\tvalue: false,\n\t\t\t\t\tshouldRender: false,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\tisModal &&\n\t\t\tmodalElement &&\n\t\t\t!modalElement.classList.contains('modal-visible')\n\t\t) {\n\t\t\twindow.requestAnimationFrame(() => {\n\t\t\t\tmodalElement.classList.add('modal-visible');\n\t\t\t});\n\t\t}\n\t},\n\t[COMPONENT_DOM_TREE_READY]: (coeffects) => {\n\t\tconst {state, host, updateProperties, dispatch} = coeffects;\n\t\tconst {properties} = state;\n\n\t\tsetAnimationClass(host, properties.animationsDisabled);\n\n\t\tif (properties.contentElement !== null) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst content = properties.windowConfig.content || null;\n\t\tconst contentTagName = content?.component || 'div';\n\t\tconst contentElementProperties = content?.properties || null;\n\t\tconst contentElement =\n\t\t\ttypeof contentTagName === 'string'\n\t\t\t\t? document.createElement(contentTagName)\n\t\t\t\t: contentTagName.elm || contentTagName;\n\n\t\tlet slottedHeading = null;\n\t\tlet slottedContent = null;\n\t\tlet slottedFooter = null;\n\t\tlet slottedActions = null;\n\n\t\tif (contentElement.querySelectorAll('[slot=\"heading\"]').length > 0) {\n\t\t\t// slottedHeading = contentElement.querySelector('[slot=\"heading\"]');\n\t\t\tconst headingElements =\n\t\t\t\tcontentElement.querySelectorAll('[slot=\"heading\"]');\n\t\t\tslottedHeading = document.createDocumentFragment();\n\t\t\theadingElements.forEach((elem) => {\n\t\t\t\tslottedHeading.appendChild(elem);\n\t\t\t});\n\t\t}\n\t\t// Only extract content slot elements that are direct children, not nested descendants\n\t\tconst contentElements = contentElement.querySelectorAll(\n\t\t\t':scope > [slot=\"content\"]',\n\t\t);\n\t\tif (contentElements.length > 0) {\n\t\t\tslottedContent = document.createDocumentFragment();\n\t\t\tcontentElements.forEach((elem) => {\n\t\t\t\tslottedContent.appendChild(elem);\n\t\t\t});\n\t\t}\n\t\tconst footerElements = contentElement.querySelectorAll(\n\t\t\t':scope > [slot=\"footer\"]',\n\t\t);\n\t\tif (footerElements.length > 0) {\n\t\t\tslottedFooter = document.createDocumentFragment();\n\t\t\tfooterElements.forEach((elem) => {\n\t\t\t\tslottedFooter.appendChild(elem);\n\t\t\t});\n\t\t}\n\t\tif (contentElement.querySelectorAll('[slot=\"actions\"]').length > 0) {\n\t\t\t// slottedActions = contentElement.querySelector('[slot=\"actions\"]');\n\t\t\tconst actionsElements =\n\t\t\t\tcontentElement.querySelectorAll('[slot=\"actions\"]');\n\t\t\t// force slotted NOW-BUTTON-ICONIC buttons to be the same size and style as other header buttons\n\t\t\tactionsElements.forEach((elem) => {\n\t\t\t\tif (elem.tagName === 'NOW-BUTTON-ICONIC') {\n\t\t\t\t\telem['size'] = properties.windowConfig.size;\n\t\t\t\t\telem['hidePadding'] = false;\n\t\t\t\t}\n\t\t\t});\n\t\t\tslottedActions = document.createDocumentFragment();\n\t\t\tactionsElements.forEach((elem) => {\n\t\t\t\tslottedActions.appendChild(elem);\n\t\t\t});\n\t\t}\n\n\t\tcontentElement['windowConfig'] = properties.windowConfig;\n\t\tcontentElement['windowsState'] = properties.windowsState;\n\t\tcontentElement['portalType'] = properties.portalType;\n\t\tcontentElement['dialogSize'] = properties.dialogSize;\n\t\tcontentElement['dialogLocation'] = properties.dialogLocation;\n\t\tcontentElement['isDocked'] = properties.isDocked;\n\t\tcontentElement['isModal'] = properties.isModal;\n\t\tcontentElement['isFloating'] = properties.isFloating;\n\n\t\t// interate over the contentElementData and set the properties on the contentElement component\n\t\tif (contentElementProperties) {\n\t\t\tObject.keys(contentElementProperties).forEach((key) => {\n\t\t\t\tcontentElement[key] = contentElementProperties[key];\n\t\t\t});\n\t\t}\n\n\t\ttry {\n\t\t\t// Append the content element to the host element\n\t\t\tconst parentElement = host.shadowRoot.querySelector('.docked-window');\n\n\t\t\tif (!parentElement) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// DEF0787761 - Prepended the content element in next frame to prevent\n\t\t\t// now-code-editor from locking up the page when it tries to adjust its layout on initial load\n\t\t\t// when the content element contains a now-code-editor element\n\t\t\twindow.requestAnimationFrame(() => {\n\t\t\t\tconst contentSlot = parentElement.querySelector('div[slot=\"content\"]');\n\t\t\t\ttry {\n\t\t\t\t\tcontentSlot.prepend(slottedContent ?? contentElement);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif (error.name === 'HierarchyRequestError') {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t'sn-window-manager: Skipped prepending content to avoid a HierarchyRequestError. ',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\terror: error,\n\t\t\t\t\t\t\t\tcontentElement,\n\t\t\t\t\t\t\t\tcontentSlot,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthrow error;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (slottedFooter) {\n\t\t\t\t\tconst footerSlot = parentElement.querySelector('div[slot=\"footer\"]');\n\t\t\t\t\tif (\n\t\t\t\t\t\tslottedFooter.hasAttribute &&\n\t\t\t\t\t\tslottedFooter.hasAttribute('slot')\n\t\t\t\t\t) {\n\t\t\t\t\t\tslottedFooter.removeAttribute('slot');\n\t\t\t\t\t}\n\t\t\t\t\tfooterSlot.prepend(slottedFooter);\n\t\t\t\t}\n\n\t\t\t\tif (slottedHeading) {\n\t\t\t\t\tconst headerSlot = parentElement.querySelector('div[slot=\"heading\"]');\n\t\t\t\t\tif (\n\t\t\t\t\t\tslottedHeading.hasAttribute &&\n\t\t\t\t\t\tslottedHeading.hasAttribute('slot')\n\t\t\t\t\t) {\n\t\t\t\t\t\tslottedHeading.removeAttribute('slot');\n\t\t\t\t\t}\n\t\t\t\t\theaderSlot.prepend(slottedHeading);\n\t\t\t\t}\n\n\t\t\t\tif (slottedActions) {\n\t\t\t\t\tconst actionsSlot = parentElement.querySelector(\n\t\t\t\t\t\t'div[slot=\"actions\"]',\n\t\t\t\t\t);\n\t\t\t\t\tif (\n\t\t\t\t\t\tslottedActions.hasAttribute &&\n\t\t\t\t\t\tslottedActions.hasAttribute('slot')\n\t\t\t\t\t) {\n\t\t\t\t\t\tslottedActions.removeAttribute('slot');\n\t\t\t\t\t}\n\t\t\t\t\tactionsSlot.prepend(slottedActions);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst resizeEnabled =\n\t\t\t\tproperties.windowConfig.canDrag &&\n\t\t\t\tproperties.windowConfig.startingState !== 'modal' &&\n\t\t\t\tproperties.windowConfig.startingState?.indexOf('docked') === -1;\n\n\t\t\tif (properties.windowConfig.fitContent) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tconst container = host.shadowRoot.querySelector('.docked-window');\n\n\t\t\t\t\tconst content = container.querySelector('[slot=\"content\"]');\n\t\t\t\t\tconst header = container.querySelector('div[slot=\"heading\"]');\n\t\t\t\t\tconst footer = container.querySelector('div[slot=\"footer\"]');\n\n\t\t\t\t\tconst headerHeight = header?.offsetHeight || 0;\n\t\t\t\t\tconst footerHeight = footer?.offsetHeight || 0;\n\t\t\t\t\tconst contentRect = content.getBoundingClientRect();\n\n\t\t\t\t\tconst margin = 20;\n\t\t\t\t\tconst viewportHeight = window.innerHeight;\n\t\t\t\t\tconst viewportWidth = window.innerWidth;\n\n\t\t\t\t\tlet bottomToolbarHeight = 0;\n\t\t\t\t\tif (properties.bottomToolbarComponent) {\n\t\t\t\t\t\tconst toolbar =\n\t\t\t\t\t\t\tproperties.bottomToolbarComponent.shadowRoot?.querySelector(\n\t\t\t\t\t\t\t\t'.sn-window-manager-toolbar',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\tif (toolbar) {\n\t\t\t\t\t\t\tbottomToolbarHeight = toolbar.offsetHeight;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Calculate available height considering bottom toolbar\n\t\t\t\t\tconst availableHeight = viewportHeight - bottomToolbarHeight;\n\n\t\t\t\t\tconst dialogHeight = Math.max(\n\t\t\t\t\t\theaderHeight + contentRect.height + footerHeight,\n\t\t\t\t\t\t200,\n\t\t\t\t\t);\n\t\t\t\t\tconst dialogWidth = Math.max(\n\t\t\t\t\t\tMath.min(contentRect.width, viewportWidth - margin * 2),\n\t\t\t\t\t\t320,\n\t\t\t\t\t);\n\n\t\t\t\t\tconst top = Math.max(\n\t\t\t\t\t\tmargin,\n\t\t\t\t\t\tMath.min(\n\t\t\t\t\t\t\t(availableHeight - dialogHeight) / 2,\n\t\t\t\t\t\t\tavailableHeight - dialogHeight - margin,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t\tconst left = Math.max(\n\t\t\t\t\t\tmargin,\n\t\t\t\t\t\tMath.min(\n\t\t\t\t\t\t\t(viewportWidth - dialogWidth) / 2,\n\t\t\t\t\t\t\tviewportWidth - dialogWidth - margin,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\n\t\t\t\t\tdispatch('UPDATE_FLOATING_MENU_LOCATION', {\n\t\t\t\t\t\ttop: Math.round(top),\n\t\t\t\t\t\tleft: Math.round(left),\n\t\t\t\t\t\twidth: dialogWidth,\n\t\t\t\t\t\theight: dialogHeight,\n\t\t\t\t\t});\n\t\t\t\t}, 100);\n\t\t\t}\n\n\t\t\t// temp fix until HDS fixes DEF0708685 in resizableBehavior\n\t\t\t// once HDS fixes resize behavior and we remove this, we will still need\n\t\t\t// to fix our custom drag behavior to toggle pointer-events on the iframe\n\t\t\thost.addEventListener('mousedown', () => {\n\t\t\t\tconst iframeElement = deepSearchElement(\n\t\t\t\t\t'iframe#gsft_main',\n\t\t\t\t\tdocument.body,\n\t\t\t\t);\n\t\t\t\tif (iframeElement) {\n\t\t\t\t\tiframeElement.style.pointerEvents = 'none';\n\t\t\t\t}\n\t\t\t});\n\t\t\thost.addEventListener('mouseup', () => {\n\t\t\t\tconst iframeElement = deepSearchElement(\n\t\t\t\t\t'iframe#gsft_main',\n\t\t\t\t\tdocument.body,\n\t\t\t\t);\n\t\t\t\tif (iframeElement) {\n\t\t\t\t\tiframeElement.style.pointerEvents = 'auto';\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tupdateProperties({\n\t\t\t\tcontentElement,\n\t\t\t\tslottedHeading,\n\t\t\t\tslottedContent,\n\t\t\t\tslottedFooter,\n\t\t\t\tslottedActions,\n\t\t\t\tstyleObj: computeStyleObj({\n\t\t\t\t\t...properties,\n\t\t\t\t}),\n\t\t\t});\n\n\t\t\t// delay updating resizableConfig for resizableBehavior.\n\t\t\t// The behavior expects to start in an enabled state for the on/off toggle to work.\n\t\t\t// Otherwise if it starts in a disabled state it will never create its resize element\n\t\t\t// and so when resize is enabled again, the behavior does not\n\t\t\t// have its resize element to attach to the DOM\n\t\t\tsetTimeout(() => {\n\t\t\t\tupdateProperties({\n\t\t\t\t\tresizableConfig: {\n\t\t\t\t\t\t...properties.resizableConfig,\n\t\t\t\t\t\tenableResizable: resizeEnabled,\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\t// TODO: Remove once the new thumbtack icons are provided\n\t\t\t\t// Temporary solution while the other direction thumbtack icons are not available\n\t\t\t\tupdateShadowRootStyling(host);\n\t\t\t}, 100);\n\n\t\t\tif (contentElement.dispatch) {\n\t\t\t\tcontentElement.dispatch(SN_WINDOW_CREATED, {\n\t\t\t\t\tscreenKey: properties.windowConfig.screenKey,\n\t\t\t\t\tinstanceId: properties.windowConfig.instanceId,\n\t\t\t\t\texperienceId: properties.windowConfig.experienceId,\n\t\t\t\t\twindowId: properties.windowConfig.id,\n\t\t\t\t\tcomponentId: properties.windowConfig.uxrComponentId,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// HDS legacy: Dispatch CONTENT_VISIBLE when window is first created and has contentElement\n\t\t\tif (properties.isOpen && contentElement.dispatch) {\n\t\t\t\tdispatchModelessDialogAction({\n\t\t\t\t\tcontentElement,\n\t\t\t\t\twindowConfig: properties.windowConfig,\n\t\t\t\t\tactionName: NOW_MODELESS_DIALOG_CONTENT_VISIBLE,\n\t\t\t\t\tpayload: {},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst genStyles = getComputedStyle(host);\n\t\t\tconst remMulitplier = genStyles.getPropertyValue(\n\t\t\t\t'--na-ss-rem-multiplier',\n\t\t\t);\n\t\t\tif (!remMulitplier || remMulitplier === '') {\n\t\t\t\thost.style.setProperty('--na-ss-rem-multiplier', '1');\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error('sn-window - DOM Tree Error', error);\n\t\t}\n\t},\n\t[COMPONENT_PROPERTY_CHANGED]: (coeffects) => {\n\t\tconst {state, action, updateProperties, host, dispatch} = coeffects;\n\t\tconst {properties} = state;\n\t\tconst {windowConfig, windowsState, isOpen, contentElement} = properties;\n\t\tconst {name, value, previousValue} = action.payload;\n\t\tconst nextWindowsState = name === 'windowsState' ? value : windowsState;\n\n\t\tif (name === 'animationsDisabled') {\n\t\t\tupdateProperties({animationsDisabled: value});\n\t\t\tsetAnimationClass(host, value);\n\t\t}\n\n\t\tif (name === 'windowsState' || name === 'isOpen') {\n\t\t\tconst isDocked =\n\t\t\t\tnextWindowsState.leftDockId === windowConfig.id ||\n\t\t\t\tnextWindowsState.rightDockId === windowConfig.id ||\n\t\t\t\tnextWindowsState.bottomDockId === windowConfig.id;\n\t\t\tconst isMinimized = nextWindowsState.minimizedWindows.includes(\n\t\t\t\twindowConfig.id,\n\t\t\t);\n\t\t\tconst isActive =\n\t\t\t\tisOpen &&\n\t\t\t\t!isDocked &&\n\t\t\t\t!isMinimized &&\n\t\t\t\twindowConfig.id === nextWindowsState.activeWindowId;\n\t\t\tconst isModal =\n\t\t\t\tisOpen && nextWindowsState.modalWindows.includes(windowConfig.id);\n\t\t\tconst isFloating = !isDocked && !isModal && isOpen;\n\n\t\t\tconst prevTargetPos =\n\t\t\t\tpreviousValue?.minimizedTargetPositions?.[windowConfig.id];\n\t\t\tconst newTargetPos = value?.minimizedTargetPositions?.[windowConfig.id];\n\t\t\t// Recompute when the minimized target first appears or when its rect changes\n\t\t\tconst targetPositionInitiallySet =\n\t\t\t\tisMinimized && !prevTargetPos && newTargetPos;\n\t\t\tconst targetPositionChanged =\n\t\t\t\tname === 'windowsState' &&\n\t\t\t\t((prevTargetPos?.top ?? null) !== (newTargetPos?.top ?? null) ||\n\t\t\t\t\t(prevTargetPos?.left ?? null) !== (newTargetPos?.left ?? null) ||\n\t\t\t\t\t(prevTargetPos?.width ?? null) !== (newTargetPos?.width ?? null) ||\n\t\t\t\t\t(prevTargetPos?.height ?? null) !== (newTargetPos?.height ?? null));\n\n\t\t\tconst getDockKey = (state, id) =>\n\t\t\t\tObject.keys(state).find(\n\t\t\t\t\t(key) => key.endsWith('DockId') && state[key] === id,\n\t\t\t\t) ?? null;\n\t\t\tconst prevDockKey = getDockKey(previousValue, windowConfig.id);\n\t\t\tconst newDockKey = getDockKey(value, windowConfig.id);\n\t\t\tconst dockTargetChange = prevDockKey !== newDockKey;\n\t\t\tconst isOpeningOrClosing = name === 'isOpen' && previousValue !== value;\n\t\t\tconst isOpening = isOpeningOrClosing && value === true;\n\n\t\t\t// Check if we're transitioning in or out of a modal state (except for when we're opening/closing/minimizing)\n\t\t\tconst modalTransition =\n\t\t\t\tisModal !== properties.isModal && !isOpeningOrClosing;\n\t\t\tconst animationTimeoutDuration =\n\t\t\t\tprevDockKey || newDockKey || modalTransition ? 510 : 260;\n\n\t\t\tconst hasMinimizeTarget =\n\t\t\t\tnextWindowsState.minimizedTargetPositions?.[windowConfig.id];\n\t\t\tconst isMinimizing = isMinimized && !properties.isMinimized;\n\t\t\tconst isRestoring = !isMinimized && properties.isMinimized;\n\n\t\t\tlet willAnimate = false;\n\n\t\t\t// Check if animations are enabled and if any of the conditions are true\n\t\t\tif (\n\t\t\t\t!properties.animationsDisabled &&\n\t\t\t\t(dockTargetChange ||\n\t\t\t\t\tisMinimized !== properties.isMinimized ||\n\t\t\t\t\t(isMinimizing && hasMinimizeTarget) ||\n\t\t\t\t\tisRestoring ||\n\t\t\t\t\tisDocked !== properties.isDocked ||\n\t\t\t\t\tisModal !== properties.isModal ||\n\t\t\t\t\tproperties.isAnimating ||\n\t\t\t\t\tisOpeningOrClosing)\n\t\t\t) {\n\t\t\t\twillAnimate = true;\n\t\t\t}\n\n\t\t\tconst didPropsChange =\n\t\t\t\tdockTargetChange ||\n\t\t\t\tisDocked !== properties.isDocked ||\n\t\t\t\tisMinimized !== properties.isMinimized ||\n\t\t\t\tisActive !== properties.isActive ||\n\t\t\t\tisModal !== properties.isModal ||\n\t\t\t\tisFloating !== properties.isFloating ||\n\t\t\t\twillAnimate !== properties.isAnimating ||\n\t\t\t\t(name === 'isOpen' && previousValue !== value) ||\n\t\t\t\ttargetPositionInitiallySet ||\n\t\t\t\ttargetPositionChanged ||\n\t\t\t\tisOpeningOrClosing;\n\n\t\t\tif (!didPropsChange) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet newState = properties.currentState;\n\n\t\t\tif (isDocked) {\n\t\t\t\tnewState = 'docked';\n\t\t\t} else if (isMinimized) {\n\t\t\t\tnewState = 'minimized';\n\t\t\t} else if (isModal) {\n\t\t\t\tnewState = 'modal';\n\t\t\t} else if (isFloating) {\n\t\t\t\tnewState = 'floating';\n\t\t\t} else {\n\t\t\t\tnewState = 'closed';\n\t\t\t}\n\n\t\t\tconst dispatchEventToContent = (event, extraPayload = {}) => {\n\t\t\t\tif (contentElement?.dispatch) {\n\t\t\t\t\tcontentElement.dispatch(event, {\n\t\t\t\t\t\twindowId: windowConfig.id,\n\t\t\t\t\t\tscreenKey: windowConfig.screenKey,\n\t\t\t\t\t\tinstanceId: windowConfig.instanceId,\n\t\t\t\t\t\texperienceId: windowConfig.experienceId,\n\t\t\t\t\t\tcomponentId: windowConfig.uxrComponentId,\n\t\t\t\t\t\t...extraPayload,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// notify content component if window became active\n\t\t\tif (isActive !== properties.isActive) {\n\t\t\t\tdispatchEventToContent(SN_WINDOW_FOCUSED, {\n\t\t\t\t\thasFocus: isActive,\n\t\t\t\t});\n\t\t\t}\n\t\t\t// notify content component if window became minimized\n\t\t\tif (isMinimized !== properties.isMinimized) {\n\t\t\t\tdispatchEventToContent(SN_WINDOW_MINIMIZED, {\n\t\t\t\t\tisMinimized,\n\t\t\t\t});\n\t\t\t\tif (!isMinimized && isActive) {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tupdateButtonFocus(host, 'minimize', value);\n\t\t\t\t\t}, animationTimeoutDuration);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// HDS legacy: Dispatch CONTENT_VISIBLE when window opens and contentElement exists\n\t\t\tif (isOpening && contentElement?.dispatch) {\n\t\t\t\tdispatchModelessDialogAction({\n\t\t\t\t\tcontentElement,\n\t\t\t\t\twindowConfig,\n\t\t\t\t\tactionName: NOW_MODELESS_DIALOG_CONTENT_VISIBLE,\n\t\t\t\t\tpayload: {},\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// notify content component if window was toggled in/out of modal state\n\t\t\tif (isModal !== properties.isModal) {\n\t\t\t\tdispatchEventToContent(SN_WINDOW_MODALIZED, {\n\t\t\t\t\tisModal,\n\t\t\t\t});\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tupdateButtonFocus(\n\t\t\t\t\t\thost,\n\t\t\t\t\t\tisModal ? 'leave-modal' : 'enter-modal',\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t);\n\t\t\t\t}, animationTimeoutDuration);\n\t\t\t}\n\t\t\t// notify content component if window was toggled in/out of docked state\n\t\t\tif (isDocked !== properties.isDocked) {\n\t\t\t\tdispatchEventToContent(SN_WINDOW_DOCKED, {\n\t\t\t\t\tisDocked,\n\t\t\t\t});\n\n\t\t\t\tif (isDocked) {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tupdateButtonFocus(host, 'undock', true);\n\t\t\t\t\t}, animationTimeoutDuration);\n\t\t\t\t} else {\n\t\t\t\t\tif (prevDockKey === 'leftDockId') {\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tupdateButtonFocus(host, 'left-dock', true);\n\t\t\t\t\t\t}, animationTimeoutDuration);\n\t\t\t\t\t} else if (prevDockKey === 'rightDockId') {\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tupdateButtonFocus(host, 'right-dock', true);\n\t\t\t\t\t\t}, animationTimeoutDuration);\n\t\t\t\t\t} else if (prevDockKey === 'bottomDockId') {\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tupdateButtonFocus(host, 'bottom-dock', true);\n\t\t\t\t\t\t}, animationTimeoutDuration);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// TODO: Remove once the new thumbtack icons are provided\n\t\t\t\t// Temporary solution while the other direction thumbtack icons are not available\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tupdateShadowRootStyling(host);\n\t\t\t\t}, 50);\n\t\t\t}\n\n\t\t\tconst newStyleObj = computeStyleObj({\n\t\t\t\t...properties,\n\t\t\t\twindowsState: nextWindowsState,\n\t\t\t\tisDocked,\n\t\t\t\tisMinimized,\n\t\t\t\tisModal,\n\t\t\t\tisFloating,\n\t\t\t\tisOpen: name === 'isOpen' ? value : isOpen,\n\t\t\t});\n\n\t\t\t// If minimized without a known target, keep current style to avoid an initial snap\n\t\t\tlet finalStyleObj =\n\t\t\t\tisMinimized && !hasMinimizeTarget ? properties.styleObj : newStyleObj;\n\n\t\t\t// For floating/modal close-to-top: keep the window at its current position\n\t\t\t// and set transformOrigin to point at the sparkle icon. The .close-to-top\n\t\t\t// CSS class applies transform: scale(0.000001), which shrinks the window\n\t\t\t// toward the origin — visually closing into the sparkle.\n\t\t\t// Docked close is unaffected (uses the natural two-event flow).\n\t\t\tif (\n\t\t\t\twindowConfig.closeToTop &&\n\t\t\t\tisOpeningOrClosing &&\n\t\t\t\t!value &&\n\t\t\t\t!properties.isDocked\n\t\t\t) {\n\t\t\t\t// Find sparkle icon center\n\t\t\t\tconst closeToSelector =\n\t\t\t\t\ttypeof windowConfig.closeToElement === 'string'\n\t\t\t\t\t\t? windowConfig.closeToElement\n\t\t\t\t\t\t: null;\n\t\t\t\tlet targetX, targetY;\n\t\t\t\tlet found = false;\n\n\t\t\t\tif (closeToSelector) {\n\t\t\t\t\tconst targetElement = deepSearchElement(closeToSelector);\n\t\t\t\t\tif (targetElement) {\n\t\t\t\t\t\tconst targetRect = targetElement.getBoundingClientRect();\n\t\t\t\t\t\ttargetX = targetRect.left + targetRect.width / 2;\n\t\t\t\t\t\ttargetY = targetRect.top + targetRect.height / 2;\n\t\t\t\t\t\tfound = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!found) {\n\t\t\t\t\tconst isRTL = document.dir === 'rtl';\n\t\t\t\t\ttargetX = !isRTL ? window.innerWidth - 210 : 210;\n\t\t\t\t\ttargetY = 12;\n\t\t\t\t}\n\n\t\t\t\t// Parse current rendered position to compute relative transformOrigin\n\t\t\t\tconst currentStyle = properties.styleObj || {};\n\t\t\t\tlet elLeft = parseFloat(currentStyle.left);\n\t\t\t\tif (isNaN(elLeft)) {\n\t\t\t\t\tconst elRight = parseFloat(currentStyle.right);\n\t\t\t\t\tconst elWidth = parseFloat(currentStyle.width);\n\t\t\t\t\tif (!isNaN(elRight) && !isNaN(elWidth)) {\n\t\t\t\t\t\telLeft = window.innerWidth - elRight - elWidth;\n\t\t\t\t\t} else {\n\t\t\t\t\t\telLeft = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet elTop = parseFloat(currentStyle.top);\n\t\t\t\tif (isNaN(elTop)) {\n\t\t\t\t\tconst elBottom = parseFloat(currentStyle.bottom);\n\t\t\t\t\tconst elHeight = parseFloat(currentStyle.height);\n\t\t\t\t\tif (!isNaN(elBottom) && !isNaN(elHeight)) {\n\t\t\t\t\t\telTop = window.innerHeight - elBottom - elHeight;\n\t\t\t\t\t} else {\n\t\t\t\t\t\telTop = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst originX = targetX - elLeft;\n\t\t\t\tconst originY = targetY - elTop;\n\n\t\t\t\t// Keep current position, remove any inline transform so .close-to-top's\n\t\t\t\t// scale(0.000001) takes effect, and set transformOrigin toward sparkle\n\t\t\t\tconst {transform, ...restStyle} = currentStyle;\n\t\t\t\tfinalStyleObj = {\n\t\t\t\t\t...restStyle,\n\t\t\t\t\ttransformOrigin: `${originX}px ${originY}px`,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Skip immediate resizableConfig update during dock state changes to avoid race condition\n\t\t\t// The delayed update below will handle it after is-fullscreen class is removed\n\t\t\tconst skipImmediateResizeUpdate =\n\t\t\t\tisDocked !== properties.isDocked || isModal !== properties.isModal;\n\n\t\t\t// Extract resizable config update\n\t\t\tconst resizableConfigUpdate = !skipImmediateResizeUpdate\n\t\t\t\t? {\n\t\t\t\t\t\tresizableConfig: {\n\t\t\t\t\t\t\t...properties.resizableConfig,\n\t\t\t\t\t\t\tenableResizable: isFloating,\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t: {};\n\n\t\t\tupdateProperties({\n\t\t\t\tisFloating,\n\t\t\t\tisDocked,\n\t\t\t\tisMinimized,\n\t\t\t\tisActive,\n\t\t\t\tisModal,\n\t\t\t\tcanDrag: windowConfig.canDrag && newState === 'floating',\n\t\t\t\tcurrentState:\n\t\t\t\t\tisOpeningOrClosing || !properties.isAnimating\n\t\t\t\t\t\t? newState\n\t\t\t\t\t\t: properties.currentState,\n\t\t\t\tlastState:\n\t\t\t\t\tisOpeningOrClosing || !properties.isAnimating\n\t\t\t\t\t\t? properties.currentState\n\t\t\t\t\t\t: properties.lastState,\n\t\t\t\tisAnimating: willAnimate,\n\t\t\t\topened: isModal, // this is just for modalBehavior to tell it to open the background overlay\n\t\t\t\t...resizableConfigUpdate,\n\t\t\t\twindowConfig: {\n\t\t\t\t\t...windowConfig,\n\t\t\t\t\tpinnedHeaderHeight: isDocked\n\t\t\t\t\t\t? properties.windowsList.find((w) => w.id === windowConfig.id)\n\t\t\t\t\t\t\t\t?.pinnedHeaderHeight\n\t\t\t\t\t\t: '52px',\n\t\t\t\t},\n\t\t\t\tstyleObj: finalStyleObj,\n\t\t\t});\n\n\t\t\t// need to set timeout to wait for .is-fullscreen to change so that\n\t\t\t// the property handler on the resizable behavior can make the change correctly\n\t\t\t// TODO: post Y releases we can update the property normally as long as we remove the\n\t\t\t// is-fullscreen class from the resizable div\n\t\t\tif (\n\t\t\t\tproperties.resizableConfig.enableResizable !== isFloating ||\n\t\t\t\tskipImmediateResizeUpdate\n\t\t\t) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tupdateProperties({\n\t\t\t\t\t\tresizableConfig: {\n\t\t\t\t\t\t\t...properties.resizableConfig,\n\t\t\t\t\t\t\tenableResizable: isFloating,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t}, 100);\n\t\t\t}\n\n\t\t\t// Clear any existing timer for this host and set a new one if animations are enabled\n\t\t\tconst existingTimeout = animationTimeouts.get(host);\n\t\t\tif (!properties.animationsDisabled && existingTimeout) {\n\t\t\t\tclearTimeout(existingTimeout);\n\t\t\t\tanimationTimeouts.delete(host);\n\t\t\t}\n\n\t\t\tif (properties.animationsDisabled) {\n\t\t\t\tupdateProperties({\n\t\t\t\t\tisAnimating: false,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst t = setTimeout(() => {\n\t\t\t\t\tupdateProperties({\n\t\t\t\t\t\tisAnimating: false,\n\t\t\t\t\t});\n\t\t\t\t\tanimationTimeouts.delete(host);\n\t\t\t\t}, animationTimeoutDuration);\n\t\t\t\tanimationTimeouts.set(host, t);\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (name === 'isFloating' && value) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst modelessDialog = host.shadowRoot.querySelector(\n\t\t\t\t\t'now-modeless-dialog',\n\t\t\t\t);\n\t\t\t\tif (!modelessDialog) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst wrapper =\n\t\t\t\t\tmodelessDialog.shadowRoot.querySelector('div[role=\"dialog\"]');\n\t\t\t\tconst wrapperBounds = wrapper?.getBoundingClientRect();\n\n\t\t\t\tdispatch('UPDATE_FLOATING_MENU_LOCATION', {\n\t\t\t\t\ttop: wrapperBounds.top,\n\t\t\t\t\tbottom: window.innerHeight - wrapperBounds.bottom,\n\t\t\t\t\tleft: wrapperBounds.left,\n\t\t\t\t\tright: window.innerWidth - wrapperBounds.right,\n\t\t\t\t\twidth: wrapperBounds.width,\n\t\t\t\t\theight: wrapperBounds.height,\n\t\t\t\t});\n\t\t\t}, 100);\n\t\t}\n\n\t\tif (\n\t\t\tname === 'browserDimensions' ||\n\t\t\tname === 'isModal' ||\n\t\t\tname === 'fullscreenViewConfig'\n\t\t) {\n\t\t\t// Check whether the window should now be in fullscreen view\n\t\t\tconst isFullscreenView = isFullScreen(\n\t\t\t\tproperties.browserDimensions,\n\t\t\t\tproperties.isModal,\n\t\t\t\tproperties.fullscreenViewConfig,\n\t\t\t);\n\n\t\t\t// If the fullscreen status has changed, update the property and recompute the style object\n\t\t\tif (isFullscreenView !== properties.isFullscreenView) {\n\t\t\t\tupdateProperties({\n\t\t\t\t\tisFullscreenView,\n\t\t\t\t\tstyleObj: computeStyleObj(properties),\n\t\t\t\t});\n\n\t\t\t\t// Handle state change\n\t\t\t\tlet newState;\n\t\t\t\tif (isFullscreenView) {\n\t\t\t\t\tnewState = 'fullscreen';\n\t\t\t\t} else {\n\t\t\t\t\t// The window has returned to original state before fullscreen\n\t\t\t\t\tif (properties.isDocked) {\n\t\t\t\t\t\tconst dockedSide =\n\t\t\t\t\t\t\twindowsState.leftDockId === windowConfig.id\n\t\t\t\t\t\t\t\t? 'left'\n\t\t\t\t\t\t\t\t: windowsState.rightDockId === windowConfig.id\n\t\t\t\t\t\t\t\t\t? 'right'\n\t\t\t\t\t\t\t\t\t: windowsState.bottomDockId === windowConfig.id\n\t\t\t\t\t\t\t\t\t\t? 'bottom'\n\t\t\t\t\t\t\t\t\t\t: null;\n\t\t\t\t\t\tnewState = `docked-${dockedSide}`;\n\t\t\t\t\t} else if (properties.isModal) {\n\t\t\t\t\t\tnewState = 'modal';\n\t\t\t\t\t} else if (properties.isMinimized) {\n\t\t\t\t\t\tnewState = 'minimized';\n\t\t\t\t\t} else if (properties.isFloating) {\n\t\t\t\t\t\tnewState = 'floating';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thandleStateChangeCallback(windowConfig, newState);\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tname !== 'resizableConfig' &&\n\t\t\tname !== 'fullscreenViewConfig' &&\n\t\t\tcontentElement\n\t\t) {\n\t\t\tcontentElement[name] = value;\n\t\t}\n\t},\n\t['PROPERTY_CHANGED']: ({state, action, updateProperties}) => {\n\t\tconst {\n\t\t\tpayload: {name, value},\n\t\t} = action;\n\t\tconst {properties} = state;\n\n\t\tupdateProperties({\n\t\t\t[name]: value,\n\t\t});\n\n\t\tif (\n\t\t\tproperties.contentElement &&\n\t\t\tname !== 'resizableConfig' &&\n\t\t\tname !== 'fullscreenViewConfig'\n\t\t) {\n\t\t\tproperties.contentElement[name] = value;\n\t\t}\n\n\t\tif (name === 'screenInfo') {\n\t\t\tupdateProperties({\n\t\t\t\tscreenInfo: value,\n\t\t\t});\n\t\t}\n\t},\n\t[BROADCAST_MESSAGE]: ({state, action}) => {\n\t\tstate.properties.contentElement.dispatch('HANDLE_MESSAGE', action.payload);\n\t},\n\t['UPDATE_FLOATING_MENU_LOCATION']: (coeffects) => {\n\t\tconst {state, action, updateProperties, properties} = coeffects;\n\t\tconst {\n\t\t\tproperties: {isFloating, dialogSize, dialogLocation, isAnimating},\n\t\t} = state;\n\t\tconst {payload} = action;\n\t\tconst {width, height, forceUpdate} = payload;\n\n\t\t// Don't update window location if window is in fullscreen view\n\t\tif (properties.isFullscreenView) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ((!isFloating || isAnimating || !properties.isOpen) && !forceUpdate) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet matchesCurrentLocationFormat = true;\n\t\tlet locationIsDifferent = false;\n\t\tlet coordinateSystem = [];\n\n\t\t// Check if the update matches the current location format and/or the location is different\n\t\tfor (const key of Object.keys(dialogLocation)) {\n\t\t\tif (payload[key] !== undefined) {\n\t\t\t\tif (dialogLocation[key] !== payload[key]) {\n\t\t\t\t\tlocationIsDifferent = true;\n\t\t\t\t}\n\t\t\t\tcoordinateSystem.push(key);\n\t\t\t} else {\n\t\t\t\tmatchesCurrentLocationFormat = false;\n\t\t\t\tcoordinateSystem =\n\t\t\t\t\tpayload['top'] !== undefined ? ['top', 'left'] : ['bottom', 'right'];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\t!matchesCurrentLocationFormat ||\n\t\t\tlocationIsDifferent ||\n\t\t\twidth !== dialogSize.width ||\n\t\t\theight !== dialogSize.height\n\t\t) {\n\t\t\t// Use the new location/size or fallback to stored location/size\n\t\t\tconst newLocation =\n\t\t\t\tpayload[coordinateSystem[0]] !== undefined &&\n\t\t\t\tpayload[coordinateSystem[1]] !== undefined\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t[coordinateSystem[0]]: payload[coordinateSystem[0]],\n\t\t\t\t\t\t\t[coordinateSystem[1]]: payload[coordinateSystem[1]],\n\t\t\t\t\t\t}\n\t\t\t\t\t: dialogLocation;\n\n\t\t\tconst newSize = {\n\t\t\t\twidth: width === 0 || !width ? dialogSize.width : width,\n\t\t\t\theight: height === 0 || !height ? dialogSize.height : height,\n\t\t\t};\n\n\t\t\tupdateProperties({\n\t\t\t\tdialogLocation: newLocation,\n\t\t\t\tdialogSize: newSize,\n\t\t\t\tstyleObj: computeStyleObj({\n\t\t\t\t\t...state.properties,\n\t\t\t\t\tdialogLocation: newLocation,\n\t\t\t\t\tdialogSize: newSize,\n\t\t\t\t}),\n\t\t\t});\n\t\t}\n\t},\n\t[SET_HEADER_BUTTONS]: handleSetHeaderButtons,\n\t// this is for backwards compatibility with Y and Z releases\n\t// it will be removed in a future release\n\t['NOW_WINDOW_MANAGER#SET_HEADER_BUTTONS']: handleSetHeaderButtons,\n\t[SN_WINDOW_CHECK_LOCATION]: (coeffects) => {\n\t\tconst {\n\t\t\tstate: {properties},\n\t\t\taction: {payload = {}},\n\t\t\tdispatch,\n\t\t} = coeffects;\n\t\tconst {dialogLocation, dialogSize, windowsState, windowConfig} = properties;\n\n\t\tconst isLeftDocked = windowsState.leftDockId === windowConfig.id;\n\t\tconst isRightDocked = windowsState.rightDockId === windowConfig.id;\n\t\tconst isBottomDocked = windowsState.bottomDockId === windowConfig.id;\n\t\tconst isMinimized = windowsState.minimizedWindows.includes(windowConfig.id);\n\t\tconst isModal = windowConfig.isModal;\n\n\t\tif (\n\t\t\tisLeftDocked ||\n\t\t\tisRightDocked ||\n\t\t\tisBottomDocked ||\n\t\t\tisMinimized ||\n\t\t\tisModal\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Get viewport dimensions\n\t\tconst viewportWidth = window.innerWidth;\n\t\tconst viewportHeight = window.innerHeight;\n\n\t\tlet clampedPosition = {\n\t\t\t...dialogLocation,\n\t\t\twidth: dialogSize.width,\n\t\t\theight: dialogSize.height,\n\t\t};\n\n\t\t// If the window is out of bounds, calculate the clamped position\n\t\tif (\n\t\t\t!isWindowInBounds(\n\t\t\t\tdialogSize,\n\t\t\t\tdialogLocation,\n\t\t\t\tviewportWidth,\n\t\t\t\tviewportHeight,\n\t\t\t)\n\t\t) {\n\t\t\tclampedPosition = clampDialogPosition({dialogLocation, dialogSize});\n\t\t}\n\n\t\t// Always update on forceUpdate or if there's an actual change\n\t\tif (\n\t\t\tpayload.forceUpdate ||\n\t\t\tclampedPosition.top !== dialogLocation.top ||\n\t\t\tclampedPosition.bottom !== dialogLocation.bottom ||\n\t\t\tclampedPosition.left !== dialogLocation.left ||\n\t\t\tclampedPosition.right !== dialogLocation.right ||\n\t\t\tclampedPosition.width !== dialogSize.width ||\n\t\t\tclampedPosition.height !== dialogSize.height\n\t\t) {\n\t\t\tdispatch('UPDATE_FLOATING_MENU_LOCATION', clampedPosition);\n\t\t}\n\t},\n\t[SN_WINDOW_SET_WINDOW_SIZE]: handleSetWindowSize,\n\t// this is for backwards compatibility with Y and Z releases\n\t// it will be removed in a future release\n\t['NOW_WINDOW#SET_WINDOW_SIZE']: handleSetWindowSize,\n\t[SN_WINDOW_SET_DOCKED_WINDOW_SIZE]: {\n\t\teffect: ({\n\t\t\tproperties,\n\t\t\taction: {\n\t\t\t\tpayload: {size},\n\t\t\t},\n\t\t\tupdateProperties,\n\t\t}) => {\n\t\t\tconst minWidth = '320';\n\t\t\tconst maxWidth = window.innerWidth * 0.5;\n\n\t\t\t// We should possibly also check innerHeight since dockedWindowSize is used for bottom docking as well\n\t\t\tif (size >= minWidth && size <= maxWidth) {\n\t\t\t\tupdateProperties({\n\t\t\t\t\twindowConfig: {\n\t\t\t\t\t\t...properties.windowConfig,\n\t\t\t\t\t\tdockedWindowSize: size,\n\t\t\t\t\t},\n\t\t\t\t\tdockedWindowSize: size,\n\t\t\t\t\tstyleObj: computeStyleObj({\n\t\t\t\t\t\t...properties,\n\t\t\t\t\t\tdockedWindowSize: size,\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tstopPropagation: true,\n\t},\n\t[SN_WINDOW_SET_DIRTY_STATE]: (coeffects) => {\n\t\tconst {\n\t\t\taction: {payload},\n\t\t\tupdateProperties,\n\t\t} = coeffects;\n\n\t\tupdateProperties({\n\t\t\tisDirty: payload,\n\t\t});\n\t},\n\t[SN_WINDOW_SET_WINDOW_PROPERTIES]: (coeffects) => {\n\t\tconst {updateProperties, action} = coeffects;\n\t\tconst {payload} = action;\n\n\t\tupdateProperties(({properties}) => {\n\t\t\tlet newHeadingLabel = properties.windowConfig.headingLabel;\n\n\t\t\tif (payload.headingLabel) {\n\t\t\t\tnewHeadingLabel = payload.headingLabel;\n\t\t\t} else if (payload.title) {\n\t\t\t\tnewHeadingLabel = payload.title;\n\t\t\t} else if (payload.dialogTitle) {\n\t\t\t\tnewHeadingLabel = payload.dialogTitle;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tpath: 'windowConfig',\n\t\t\t\tvalue: {\n\t\t\t\t\t...properties.windowConfig,\n\t\t\t\t\t...payload,\n\t\t\t\t\theadingLabel: newHeadingLabel,\n\t\t\t\t},\n\t\t\t};\n\t\t});\n\t},\n\t['SN_WINDOW#CLOSE_REQUESTED']: (coeffects) => {\n\t\tconst {\n\t\t\taction: {payload},\n\t\t\tdispatch,\n\t\t\tproperties,\n\t\t} = coeffects;\n\t\tconsole.info(\n\t\t\t'sn-window - SN_WINDOW#CLOSE_REQUESTED',\n\t\t\tproperties.windowConfig.modelessDialogControllerId,\n\t\t\t{payload},\n\t\t);\n\t\tdispatch(\n\t\t\t'UXF#DIALOG_CLOSE_REQUESTED',\n\t\t\t{\n\t\t\t\tsourceElementId: properties.windowConfig.modelessDialogControllerId,\n\t\t\t\tinstanceId: payload.instanceId,\n\t\t\t\tcompositionId: payload.screenKey,\n\t\t\t},\n\t\t\tpayload.meta,\n\t\t);\n\t},\n\t['SN_WINDOW#CLOSE_CONFIRMED']: (coeffects) => {\n\t\tconst {\n\t\t\tstate: {properties},\n\t\t\taction: {payload},\n\t\t\tupdateProperties,\n\t\t\tdispatch,\n\t\t} = coeffects;\n\t\tconsole.info('sn-window - SN_WINDOW#CLOSE_CONFIRMED', {\n\t\t\tpayload,\n\t\t\tproperties,\n\t\t});\n\t\tproperties.contentElement?.dispatch('DIALOG_CLOSE_CONFIRMED', payload);\n\t},\n\t['SN_WINDOW#CLOSE_CANCELED']: (coeffects) => {\n\t\tconst {properties} = coeffects;\n\t\tproperties.contentElement?.dispatch('DIALOG_CLOSE_CANCELED');\n\t},\n\t['PRIVATE#RESIZABLE_END']: (coeffects) => {\n\t\tconst {updateProperties, properties, action} = coeffects;\n\n\t\tupdateProperties({\n\t\t\twindowConfig: {\n\t\t\t\t...properties.windowConfig,\n\t\t\t\tautoResizableConfig: {\n\t\t\t\t\t...properties.windowConfig.autoResizableConfig,\n\t\t\t\t\tenableAutoResizableHeight: false,\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\t// HDS legacy: Dispatch NOW_MODELESS_DIALOG#RESIZABLE_END when resize completes\n\t\tconst payload = action.payload || {};\n\t\tdispatchModelessDialogAction({\n\t\t\tcontentElement: properties.contentElement,\n\t\t\twindowConfig: properties.windowConfig,\n\t\t\tactionName: NOW_MODELESS_DIALOG_RESIZABLE_END,\n\t\t\tpayload: {\n\t\t\t\twidth: payload.width,\n\t\t\t\theight: payload.height,\n\t\t\t\tleft: payload.left,\n\t\t\t\ttop: payload.top,\n\t\t\t},\n\t\t});\n\t},\n};\n\nexport const eventHandlers = [\n\t{\n\t\tevents: ['resize'],\n\t\teffect: ({host, properties}) => {\n\t\t\tif (properties.maxWindowSizePercentage) {\n\t\t\t\tconst {width: widthPercent, height: heightPercent} =\n\t\t\t\t\tproperties.windowConfig.maxWindowSizePercentage;\n\t\t\t\tconst dialogElement = host.shadowRoot.querySelector(\n\t\t\t\t\t'.now-modeless-dialog',\n\t\t\t\t);\n\t\t\t\tconst newMaxWidth = Math.floor(\n\t\t\t\t\twindow.innerWidth * (widthPercent / 100),\n\t\t\t\t);\n\t\t\t\tconst newMaxHeight = Math.floor(\n\t\t\t\t\twindow.innerHeight * (heightPercent / 100),\n\t\t\t\t);\n\t\t\t\tif (\n\t\t\t\t\tproperties.dialogSize?.width !== newMaxWidth ||\n\t\t\t\t\tproperties.dialogSize?.height !== newMaxHeight\n\t\t\t\t) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tproperties.isFloating &&\n\t\t\t\t\t\t(properties.dialogSize?.width > newMaxWidth ||\n\t\t\t\t\t\t\tproperties.dialogSize?.height > newMaxHeight)\n\t\t\t\t\t) {\n\t\t\t\t\t\tdialogElement.style.width = newMaxWidth + 'px';\n\t\t\t\t\t\tdialogElement.style.height = newMaxHeight + 'px';\n\t\t\t\t\t}\n\t\t\t\t\tdialogElement.lastChild.resizableMaxWidth = newMaxWidth;\n\t\t\t\t\tdialogElement.lastChild.resizableMaxHeight = newMaxHeight;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\ttarget: window,\n\t},\n];\n","import '@servicenow/now-button';\nimport {\n\tCloseButton,\n\tOpenButton,\n\tRightDockButton,\n\tLeftDockButton,\n\tToggleModalButton,\n\tMinimizeWindowButton,\n\tCustomHeaderButtonIconic,\n\tDragButton,\n} from './buttons';\nimport {isFullScreen} from '../sn-window.effects';\n\nexport const ButtonsPanel = (coeffects) => {\n\tconst {\n\t\twindowConfig,\n\t\twindowsState,\n\t\tproperties: {\n\t\t\tisMinimized,\n\t\t\tisDocked,\n\t\t\tisOpen,\n\t\t\tbrowserDimensions,\n\t\t\tisModal,\n\t\t\tfullscreenViewConfig,\n\t\t},\n\t\tdispatch,\n\t} = coeffects;\n\n\tif (isMinimized) {\n\t\treturn null;\n\t}\n\n\tconst isLeftDocked = windowsState.leftDockId === windowConfig.id;\n\tconst isRightDocked = windowsState.rightDockId === windowConfig.id;\n\t// const isBottomDocked = windowsState.bottomDockId === windowConfig.id;\n\t// const isMinimized = windowsState.minimizedWindows.includes(windowConfig.id);\n\t// const isDocked = isLeftDocked || isRightDocked || isBottomDocked;\n\n\t// Only modal windows with screens smaller than 421px will use touch enhanced buttons\n\t// TODO: Remove this block once the new thumbtack icons are provided\n\tconst fullScreenBreakpoint =\n\t\t(isModal\n\t\t\t? fullscreenViewConfig?.modalThresholds?.width\n\t\t\t: fullscreenViewConfig?.standardThresholds?.width) || 421;\n\tconst useTouchEnhancedButtons =\n\t\tbrowserDimensions.width !== 0 &&\n\t\tbrowserDimensions.width < fullScreenBreakpoint;\n\tcoeffects.properties.showHorizontalDockOptions =\n\t\twindowConfig.dockConfig.dockLeft && windowConfig.dockConfig.dockRight;\n\n\treturn (\n\t\t<div className=\"window-button-panel\">\n\t\t\t{/* custom header buttons */}\n\t\t\t{windowConfig.headerButtons &&\n\t\t\t\twindowConfig.headerButtons.map((button) => (\n\t\t\t\t\t<CustomHeaderButtonIconic\n\t\t\t\t\t\tbutton={button}\n\t\t\t\t\t\tdispatch={dispatch}\n\t\t\t\t\t\tcoeffects={coeffects}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\n\t\t\t{/* minimize button */}\n\t\t\t{windowConfig.canMinimize && !isDocked ? (\n\t\t\t\t<MinimizeWindowButton coeffects={coeffects} />\n\t\t\t) : null}\n\n\t\t\t{/* toggle modal button */}\n\t\t\t{(windowConfig.canToggleModal || windowConfig.canMaximize) &&\n\t\t\t!isMinimized &&\n\t\t\t!useTouchEnhancedButtons ? (\n\t\t\t\t<ToggleModalButton coeffects={coeffects} />\n\t\t\t) : null}\n\n\t\t\t{/* pin button */}\n\t\t\t{windowConfig.canDock &&\n\t\t\t((windowConfig.dockConfig.dockLeft &&\n\t\t\t\t!isMinimized &&\n\t\t\t\t!isDocked &&\n\t\t\t\t!useTouchEnhancedButtons) ||\n\t\t\t\t(isLeftDocked && !useTouchEnhancedButtons)) ? (\n\t\t\t\tisLeftDocked && document.dir === 'rtl' ? (\n\t\t\t\t\t<RightDockButton coeffects={coeffects} />\n\t\t\t\t) : (\n\t\t\t\t\t<LeftDockButton coeffects={coeffects} />\n\t\t\t\t)\n\t\t\t) : null}\n\n\t\t\t{/* {windowConfig.canDock &&\n\t\t\t\t((windowConfig.dockConfig.dockBottom &&\n\t\t\t\t!isMinimized &&\n\t\t\t\t!isDocked &&\n\t\t\t\t!useTouchEnhancedButtons) ||\n\t\t\t(isBottomDocked && !useTouchEnhancedButtons)) ? (\n\t\t\t\t<BottomDockButton coeffects={coeffects} />\n\t\t\t) : null} */}\n\n\t\t\t{windowConfig.canDock &&\n\t\t\t((windowConfig.dockConfig.dockRight &&\n\t\t\t\t!isMinimized &&\n\t\t\t\t!isDocked &&\n\t\t\t\t!useTouchEnhancedButtons) ||\n\t\t\t\t(isRightDocked && !useTouchEnhancedButtons)) ? (\n\t\t\t\tisRightDocked && document.dir === 'rtl' ? (\n\t\t\t\t\t<LeftDockButton coeffects={coeffects} />\n\t\t\t\t) : (\n\t\t\t\t\t<RightDockButton coeffects={coeffects} />\n\t\t\t\t)\n\t\t\t) : null}\n\n\t\t\t{/* close window button */}\n\t\t\t{windowConfig.canClose && isOpen && !isMinimized ? (\n\t\t\t\t<CloseButton coeffects={coeffects} />\n\t\t\t) : null}\n\n\t\t\t{/* open window button */}\n\t\t\t{!isOpen && windowConfig.isPersistent ? (\n\t\t\t\t<OpenButton\n\t\t\t\t\twindowConfig={windowConfig}\n\t\t\t\t\tdispatch={dispatch}\n\t\t\t\t\tuseTouchEnhancedButtons={useTouchEnhancedButtons}\n\t\t\t\t/>\n\t\t\t) : null}\n\n\t\t\t{windowConfig.canDrag && !isDocked && !isModal && isOpen ? (\n\t\t\t\t<DragButton coeffects={coeffects} />\n\t\t\t) : null}\n\t\t</div>\n\t);\n};\n","import '@servicenow/now-button';\nimport {t} from 'sn-translate';\nimport {ButtonsPanel} from './buttonPanel';\n\nexport const DockedWindow = (coeffects) => {\n\tconst {state, dispatch, updateState} = coeffects;\n\tconst {properties} = state;\n\tconst {\n\t\twindowConfig,\n\t\tcontentElement,\n\t\tslottedHeading,\n\t\tslottedActions,\n\t\tslottedContent,\n\t\tslottedFooter,\n\t} = properties;\n\n\treturn (\n\t\t<div\n\t\t\thook-insert={(element) => {\n\t\t\t\tif (contentElement) {\n\t\t\t\t\tconst targetHeaderSlot = element.elm.querySelector(\n\t\t\t\t\t\t'div[slot=\"heading\"]',\n\t\t\t\t\t);\n\t\t\t\t\tconst targetActionsSlot = element.elm.querySelector(\n\t\t\t\t\t\t'div[slot=\"actions\"]',\n\t\t\t\t\t);\n\t\t\t\t\tconst targetContentSlot = element.elm.querySelector(\n\t\t\t\t\t\t'div[slot=\"content\"]',\n\t\t\t\t\t);\n\t\t\t\t\tconst targetFooterSlot =\n\t\t\t\t\t\telement.elm.querySelector('div[slot=\"footer\"]');\n\n\t\t\t\t\tif (slottedContent) {\n\t\t\t\t\t\ttargetContentSlot.appendChild(slottedContent);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttargetContentSlot?.appendChild(contentElement);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (slottedHeading) {\n\t\t\t\t\t\ttargetHeaderSlot.prepend(slottedHeading);\n\t\t\t\t\t}\n\t\t\t\t\tif (slottedActions) {\n\t\t\t\t\t\ttargetActionsSlot.prepend(slottedActions);\n\t\t\t\t\t}\n\t\t\t\t\tif (slottedFooter) {\n\t\t\t\t\t\ttargetFooterSlot.prepend(slottedFooter);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}}\n\t\t\tclassName=\"docked-window\"\n\t\t>\n\t\t\t<div\n\t\t\t\tslot=\"heading\"\n\t\t\t\tclass={{\n\t\t\t\t\theader: true,\n\t\t\t\t\t'hide-divider': windowConfig.hideHeadingDivider,\n\t\t\t\t\t[windowConfig.variant]: true,\n\t\t\t\t}}\n\t\t\t\tstyle={{'--sn-window-header-height': windowConfig.pinnedHeaderHeight}}\n\t\t\t>\n\t\t\t\t<div className=\"heading-container\">\n\t\t\t\t\t{properties.isDirty ? (\n\t\t\t\t\t\t<now-icon\n\t\t\t\t\t\t\tid=\"dirty-icon\"\n\t\t\t\t\t\t\ticon=\"dirty-indicator-fill\"\n\t\t\t\t\t\t\tsize={windowConfig.headerIcon.size}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{properties.isMessageUnread ? (\n\t\t\t\t\t\t<now-icon\n\t\t\t\t\t\t\ticon=\"circle-fill\"\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\tclassName=\"unread-indicator\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null}\n\t\t\t\t\t{windowConfig.headerIcon?.icon !== null ? (\n\t\t\t\t\t\t<now-icon\n\t\t\t\t\t\t\ticon={windowConfig.headerIcon.icon}\n\t\t\t\t\t\t\tsize={windowConfig.headerIcon.size}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null}\n\t\t\t\t\t<h2\n\t\t\t\t\t\tid={`sn-window-heading-${windowConfig.id}`}\n\t\t\t\t\t\tclassName={`heading-label -${windowConfig.size}`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{windowConfig.headingLabel || ''}\n\t\t\t\t\t</h2>\n\t\t\t\t\t{properties.isChatPrivate ? (\n\t\t\t\t\t\t<now-highlighted-value\n\t\t\t\t\t\t\tcolor=\"gray\"\n\t\t\t\t\t\t\tvariant=\"secondary\"\n\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\tlabel={t('Private')}\n\t\t\t\t\t\t\tclassName=\"privacy-indicator\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : null}\n\t\t\t\t</div>\n\t\t\t\t<div slot=\"actions\"></div>\n\t\t\t\t<div>\n\t\t\t\t\t<ButtonsPanel\n\t\t\t\t\t\tproperties={properties}\n\t\t\t\t\t\tstate={state}\n\t\t\t\t\t\twindowsState={properties.windowsState}\n\t\t\t\t\t\twindowConfig={properties.windowConfig}\n\t\t\t\t\t\tdispatch={dispatch}\n\t\t\t\t\t\tupdateState={updateState}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div slot=\"content\"></div>\n\t\t\t<div slot=\"footer\"></div>\n\t\t</div>\n\t);\n};\n","import {createRef} from '@servicenow/ui-renderer-snabbdom';\nimport {DockedWindow} from './fragments/dockedWindow';\n\nimport {debounce} from '@devsnc/snowdash';\nimport {SN_WINDOW_CHECK_LOCATION} from './actions';\nimport {keepInBoundary} from './behaviors/utils/helpers';\n\nconst handleModalMutations = debounce(\n\t(properties, mutationsList, dialogContainer, dispatch) => {\n\t\t// Skip updates for auto-resize modals - CSS centering handles it\n\t\tif (\n\t\t\tproperties.windowConfig.autoResizableConfig?.enableAutoResizableHeight &&\n\t\t\tproperties.isModal\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tfor (const mutation of mutationsList) {\n\t\t\tif (mutation.attributeName === 'style' && !properties.isMinimized) {\n\t\t\t\tconst style = dialogContainer.getBoundingClientRect();\n\t\t\t\tconst top = style.y;\n\t\t\t\tconst left = style.x;\n\t\t\t\tconst width = style.width;\n\t\t\t\tconst height = style.height;\n\n\t\t\t\t// When the modal has been mutated (user resized or moved it),\n\t\t\t\t// update the dialogSize and dialogLocation via UPDATE_FLOATING_MENU_LOCATION\n\t\t\t\t// to ensure state is consistent with the visual representation\n\t\t\t\tdispatch('UPDATE_FLOATING_MENU_LOCATION', {\n\t\t\t\t\ttop,\n\t\t\t\t\tleft,\n\t\t\t\t\twidth,\n\t\t\t\t\theight,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\t10,\n);\n\nconst handleModalResize = debounce(\n\t(properties, dialogContainer, dispatch, updateProperties) => {\n\t\t// For auto-resize modals, don't update position - CSS centering handles it\n\t\tif (\n\t\t\tproperties.isModal &&\n\t\t\tproperties.windowConfig.autoResizableConfig?.enableAutoResizableHeight\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tif (\n\t\t\tproperties.windowConfig.autoResizableConfig?.enableAutoResizableHeight\n\t\t) {\n\t\t\tlet dialogTop = dialogContainer.offsetTop;\n\t\t\tconst dialogHeight = dialogContainer.offsetHeight;\n\t\t\tconst windowHeight = window.innerHeight;\n\n\t\t\tif (dialogTop + dialogHeight > windowHeight) {\n\t\t\t\t// Dialog is out of bounds, adjust position\n\t\t\t\tdialogTop = Math.max(0, windowHeight - dialogHeight);\n\t\t\t}\n\n\t\t\tdispatch('UPDATE_FLOATING_MENU_LOCATION', {\n\t\t\t\twidth: dialogContainer.offsetWidth,\n\t\t\t\theight: dialogContainer.offsetHeight,\n\t\t\t\ttop: dialogTop,\n\t\t\t\tforceUpdate: true,\n\t\t\t});\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (dialogContainer.offsetTop !== dialogTop) {\n\t\t\t\t\tdialogContainer.style.top = `${dialogTop}px`;\n\t\t\t\t}\n\t\t\t}, 150);\n\t\t} else {\n\t\t\tif (dialogContainer) {\n\t\t\t\tif (properties.windowConfig.fitContent) {\n\t\t\t\t\tconst toolbar =\n\t\t\t\t\t\tproperties.bottomToolbarComponent?.shadowRoot?.querySelector(\n\t\t\t\t\t\t\t'.sn-window-manager-toolbar',\n\t\t\t\t\t\t);\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tconst finalRect = dialogContainer.getBoundingClientRect();\n\t\t\t\t\t\tconst finalToolbarRect = toolbar?.getBoundingClientRect();\n\t\t\t\t\t\tif (finalToolbarRect && finalRect.bottom > finalToolbarRect.top) {\n\t\t\t\t\t\t\tkeepInBoundary(\n\t\t\t\t\t\t\t\tdialogContainer,\n\t\t\t\t\t\t\t\tdocument.body,\n\t\t\t\t\t\t\t\ttoolbar,\n\t\t\t\t\t\t\t\tproperties.dialogLocation,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tupdateProperties({\n\t\t\t\t\t\t\tisHidden: false,\n\t\t\t\t\t\t});\n\t\t\t\t\t}, 50);\n\t\t\t\t}\n\n\t\t\t\tdispatch(SN_WINDOW_CHECK_LOCATION, {\n\t\t\t\t\tforceUpdate: true,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\t50,\n);\n\nconst createMutationObserver = (\n\telement,\n\tdispatch,\n\tmutationObserver,\n\tresizeObserver,\n\tproperties,\n\tupdateProperties,\n) => {\n\t// const dialogRoot = element.elm?.shadowRoot;\n\tconst dialogContainer = element.elm; //dialogRoot?.children[0];\n\tif (!dialogContainer) {\n\t\treturn;\n\t}\n\n\t// Disconnect the previous observer if it exists\n\tif (mutationObserver) {\n\t\tmutationObserver.disconnect();\n\t}\n\n\tif (resizeObserver) {\n\t\tresizeObserver.disconnect();\n\t}\n\n\tconst mutationObs = new MutationObserver((mutationsList) => {\n\t\thandleModalMutations(properties, mutationsList, dialogContainer, dispatch);\n\t});\n\n\tconst resizeObs = new ResizeObserver(() => {\n\t\tif (!properties.isAnimating) {\n\t\t\thandleModalResize(\n\t\t\t\tproperties,\n\t\t\t\tdialogContainer,\n\t\t\t\tdispatch,\n\t\t\t\tupdateProperties,\n\t\t\t);\n\t\t}\n\t});\n\n\tupdateProperties({mutationObserver: mutationObs, resizeObserver: resizeObs});\n\n\t// Only start observing after first placement of the window\n\tsetTimeout(() => {\n\t\tmutationObs.observe(dialogContainer, {\n\t\t\tattributes: true,\n\t\t});\n\t\tresizeObs.observe(dialogContainer);\n\t}, 100);\n};\n\nexport default (state, {dispatch, updateProperties, updateState}) => {\n\tconst {properties} = state;\n\tconst {\n\t\twindowConfig,\n\t\twindowsState,\n\t\tconfigAria,\n\t\tmutationObserver,\n\t\tresizeObserver,\n\t} = properties;\n\n\tconst leftDockOpen = windowsState.leftDockId !== null;\n\tconst rightDockOpen = windowsState.rightDockId !== null;\n\n\tconst transitionClass = `transition-${properties.lastState}-to-${properties.currentState}`;\n\tconst navRef = createRef();\n\tconst isFloating =\n\t\tproperties.isOpen &&\n\t\t!properties.isDocked &&\n\t\t!properties.isModal &&\n\t\t!properties.isAnimating &&\n\t\t!properties.isMinimized;\n\n\tlet onCurrentScreen = properties.windowConfig.isGlobalWindow;\n\n\tif (properties.windowConfig.isUXFWindow) {\n\t\tconst currentScreenKey =\n\t\t\tnowWindowManager.screenInfo.screenKey ??\n\t\t\twindow.ux_globals?.snCanvasScreen?.screenId;\n\t\tconst currentExperienceId =\n\t\t\tnowWindowManager.screenInfo.experienceId ??\n\t\t\twindow.ux_globals?.snCanvasScreen?.experienceId;\n\t\tonCurrentScreen =\n\t\t\tproperties.windowConfig.screenKey === currentScreenKey &&\n\t\t\tproperties.windowConfig.experienceId === currentExperienceId;\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tref={navRef}\n\t\t\tstyle={properties.styleObj}\n\t\t\tclass={{\n\t\t\t\t'is-fullscreen':\n\t\t\t\t\tproperties.isDocked ||\n\t\t\t\t\tproperties.isModal ||\n\t\t\t\t\t!properties.windowConfig.canResize,\n\t\t\t\t'now-modeless-dialog': true, // this is just for tricking resizableBehavior into letting us turn on/off resizing\n\t\t\t\t'sn-window-wrapper': true,\n\t\t\t\thidden: properties.isHidden || !onCurrentScreen,\n\t\t\t\tdocked: properties.isDocked,\n\t\t\t\tmodal: properties.isModal,\n\t\t\t\tfloating: isFloating,\n\t\t\t\tminimized: properties.isMinimized,\n\t\t\t\tactive: properties.isOpen && properties.isActive,\n\t\t\t\tclosed: !properties.isOpen && !windowConfig.closeToTop,\n\t\t\t\t'is-animating': properties.isAnimating,\n\t\t\t\t'close-to-top': !properties.isOpen && windowConfig.closeToTop,\n\t\t\t\t[transitionClass]: properties.isAnimating,\n\t\t\t\t'docked-left': windowsState.leftDockId === windowConfig.id,\n\t\t\t\t'docked-right': windowsState.rightDockId === windowConfig.id,\n\t\t\t\t'docked-bottom': windowsState.bottomDockId === windowConfig.id,\n\t\t\t\t'left-dock-open': leftDockOpen,\n\t\t\t\t'right-dock-open': rightDockOpen,\n\t\t\t\t'can-drag': windowConfig.canDrag && isFloating,\n\t\t\t\t'fullscreen-view': properties.isFullscreenView,\n\t\t\t\t[properties.windowConfig.variant || 'secondary']: true,\n\t\t\t\t'fit-content': properties.windowConfig.fitContent,\n\t\t\t\t'use-flex': properties.windowConfig.useFlexContentLayout,\n\t\t\t\t'auto-resize':\n\t\t\t\t\tproperties.windowConfig.autoResizableConfig\n\t\t\t\t\t\t?.enableAutoResizableHeight,\n\t\t\t}}\n\t\t\t{...(configAria.dialog || {})}\n\t\t\thook-insert={(element) => {\n\t\t\t\tif (!properties.isMinimized) {\n\t\t\t\t\twindow.requestAnimationFrame(() => {\n\t\t\t\t\t\tcreateMutationObserver(\n\t\t\t\t\t\t\telement,\n\t\t\t\t\t\t\tdispatch,\n\t\t\t\t\t\t\tmutationObserver,\n\t\t\t\t\t\t\tresizeObserver,\n\t\t\t\t\t\t\tproperties,\n\t\t\t\t\t\t\tupdateProperties,\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}}\n\t\t\thook-remove={(element) => {\n\t\t\t\tproperties.mutationObserver?.disconnect();\n\t\t\t\tproperties.resizeObserver?.disconnect();\n\n\t\t\t\tupdateProperties({\n\t\t\t\t\tmutationObserver: null,\n\t\t\t\t\tresizeObserver: null,\n\t\t\t\t});\n\n\t\t\t\telement.elm.remove();\n\t\t\t}}\n\t\t>\n\t\t\t{/* {DockedWindow({state, dispatch, updateProperties})} */}\n\t\t\t<DockedWindow\n\t\t\t\tstate={state}\n\t\t\t\tdispatch={dispatch}\n\t\t\t\tupdateState={updateState}\n\t\t\t\tnavRef={navRef}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__.__esModule\n\t\t\t\t\tif (cjsModule && 'default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__[\"default\"][\"default\"];\n\t\t\t\t\t} else if ('default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__[\"default\"] || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__[\"default\"][\"default\"];\n\t\t\t\t} });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__.__esModule\n\t\t\t\t\tif (cjsModule && 'default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__[\"default\"][\"default\"];\n\t\t\t\t\t} else if ('default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__[\"default\"] || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__[\"default\"][\"default\"];\n\t\t\t\t} });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__.__esModule\n\t\t\t\t\tif (cjsModule && 'default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__[\"default\"][\"default\"];\n\t\t\t\t\t} else if ('default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__[\"default\"] || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__[\"default\"][\"default\"];\n\t\t\t\t} });","import {SN_WINDOW_END_DRAG} from '../../actions';\n/* eslint-disable no-use-before-define */\nimport {shiftTo, resetWindowSize} from './helpers';\n\nexport const startDrag = (coeffects, e) => {\n\tconst {updateState, state, dispatch, host} = coeffects;\n\n\tif (e.buttons === 0) {\n\t\tendDrag(coeffects, e);\n\t\treturn;\n\t}\n\n\t// Hide tooltips when drag starts\n\tconst buttons = host.shadowRoot.querySelectorAll('now-button');\n\tbuttons.forEach((button) => {\n\t\tconst tooltip = button.shadowRoot?.querySelector('now-tooltip');\n\t\tif (tooltip) {\n\t\t\ttooltip.content = null;\n\t\t}\n\t});\n\n\tif (state.properties.windowConfig.fitContent) {\n\t\t// Recalculate the size before we remove fit-content class\n\t\tresetWindowSize(state.dragContainerElement);\n\t\tstate.dragContainerElement.classList.remove('fit-content');\n\t}\n\n\tconst containerBounds = state.dragContainerElement.getBoundingClientRect();\n\tconst offsetX = e.clientX - containerBounds.left;\n\tconst offsetY = e.clientY - containerBounds.top;\n\n\tconst bottomToolbarComponent = state.properties.bottomToolbarComponent;\n\tconst toolbar = bottomToolbarComponent.shadowRoot.querySelector(\n\t\t'.sn-window-manager-toolbar',\n\t);\n\n\tconst dragHandler = (event) => {\n\t\tif (event.buttons === 0) {\n\t\t\twindow.removeEventListener('mousemove', dragHandler);\n\t\t\tdispatch(SN_WINDOW_END_DRAG, {\n\t\t\t\tmouseEvent: event,\n\t\t\t\twindowConfig: state.windowConfig,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// Hide tooltips during drag movement\n\t\tconst buttons = host.shadowRoot.querySelectorAll('now-button');\n\t\tbuttons.forEach((button) => {\n\t\t\tconst tooltip = button.shadowRoot?.querySelector('now-tooltip');\n\t\t\tif (tooltip) {\n\t\t\t\ttooltip.content = null;\n\t\t\t}\n\t\t});\n\n\t\tshiftTo(\n\t\t\tstate.dragContainerElement,\n\t\t\tevent.pageX - offsetX,\n\t\t\tevent.pageY - offsetY,\n\t\t\tstate.properties.dialogSize,\n\t\t\tstate.properties.dialogLocation,\n\t\t\ttoolbar,\n\t\t);\n\t};\n\n\twindow.addEventListener('mousemove', dragHandler);\n\n\tconst onMouseUp = (e) => {\n\t\tdispatch(SN_WINDOW_END_DRAG, {\n\t\t\tmouseEvent: e,\n\t\t\twindowConfig: state.windowConfig,\n\t\t});\n\t\tdocument.removeEventListener('mouseup', onMouseUp);\n\t};\n\tdocument.addEventListener('mouseup', onMouseUp);\n\n\tshiftTo(\n\t\tstate.dragContainerElement,\n\t\te.pageX - offsetX,\n\t\te.pageY - offsetY,\n\t\tstate.properties.dialogSize,\n\t\tstate.properties.dialogLocation,\n\t\ttoolbar,\n\t);\n\n\tupdateState({\n\t\tisDragging: true,\n\t\tdragHandler,\n\t\tmouseOffsetX: offsetX,\n\t\tmouseOffsetY: offsetY,\n\t});\n};\n\nexport const endDrag = (coeffects) => {\n\tconst {updateState, state} = coeffects;\n\n\twindow.removeEventListener('mousemove', state.dragHandler);\n\n\tupdateState({\n\t\tisDragModeEnabled: false,\n\t\tisDragging: false,\n\t\tdragHandler: null,\n\t\tmouseOffsetX: 0,\n\t\tmouseOffsetY: 0,\n\t});\n};\n","import {actionTypes} from '@servicenow/ui-core';\nimport {\n\tSN_WINDOW_START_DRAG,\n\tSN_WINDOW_END_DRAG,\n\tSN_WINDOW_KEY_PRESSED,\n} from '../actions';\nimport {startDrag, endDrag} from './utils/mouse-events';\nimport {keyPressed} from './utils/keyboard-events';\nimport {\n\tFOCUS_WINDOW,\n\tUXF_FOCUS_WINDOW,\n} from '../../sn-window-manager/utilities/actions';\nimport {\n\thandleModelessMousedown,\n\thandleModelessMouseup,\n} from '../../sn-window-manager/utilities';\n\nconst {COMPONENT_DOM_TREE_READY} = actionTypes;\n\nexport default {\n\tname: 'drag-behavior',\n\tinitialState: {\n\t\tisDragModeEnabled: false,\n\t\tisDragging: false,\n\t\tdragHandleElement: null,\n\t\tdragContainerElement: null,\n\t\tmouseOffsetX: 0,\n\t\tmouseOffsetY: 0,\n\t\t__mousedownListener__: null,\n\t\t__keydownListener__: null,\n\t},\n\tactionHandlers: {\n\t\t[COMPONENT_DOM_TREE_READY]: (coeffects) => {\n\t\t\tconst {updateState, host, state, dispatch} = coeffects;\n\t\t\tconst {properties} = state;\n\n\t\t\tif (properties.windowConfig.canDrag) {\n\t\t\t\tconst dragHandle = host.shadowRoot.querySelector('.header');\n\t\t\t\tconst dragContainer = host.shadowRoot.querySelector(\n\t\t\t\t\t'.now-modeless-dialog',\n\t\t\t\t);\n\n\t\t\t\t// Remove old listeners to prevent accumulation\n\t\t\t\tif (state.__mousedownListener__ && state.dragHandleElement) {\n\t\t\t\t\tstate.dragHandleElement.removeEventListener(\n\t\t\t\t\t\t'mousedown',\n\t\t\t\t\t\tstate.__mousedownListener__,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (state.__keydownListener__ && state.dragContainerElement) {\n\t\t\t\t\tstate.dragContainerElement.removeEventListener(\n\t\t\t\t\t\t'keydown',\n\t\t\t\t\t\tstate.__keydownListener__,\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tconst nonDragElements = ['button', 'toggle', 'link'];\n\t\t\t\tconst isDraggable = (element) =>\n\t\t\t\t\telement.id === 'drag-button' ||\n\t\t\t\t\t!(\n\t\t\t\t\t\telement.tagName?.startsWith('NOW-') ||\n\t\t\t\t\t\tnonDragElements.some((nonDragTag) =>\n\t\t\t\t\t\t\telement.tagName?.toLowerCase().includes(nonDragTag),\n\t\t\t\t\t\t) ||\n\t\t\t\t\t\tnonDragElements.some((nonDragRole) =>\n\t\t\t\t\t\t\telement.role?.toLowerCase().includes(nonDragRole),\n\t\t\t\t\t\t)\n\t\t\t\t\t);\n\n\t\t\t\tconst keydownListener = (e) => {\n\t\t\t\t\tif (properties.windowConfig.canDrag && isDraggable(e.target)) {\n\t\t\t\t\t\tdispatch(SN_WINDOW_KEY_PRESSED, {\n\t\t\t\t\t\t\tkeyEvent: e,\n\t\t\t\t\t\t\twindowConfig: properties.windowConfig,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tconst mousedownListener = (e) => {\n\t\t\t\t\tif (e.button === 0 && isDraggable(e.target)) {\n\t\t\t\t\t\tdispatch(SN_WINDOW_START_DRAG, {\n\t\t\t\t\t\t\tmouseEvent: e,\n\t\t\t\t\t\t\twindowConfig: properties.windowConfig,\n\t\t\t\t\t\t});\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tdragContainer.addEventListener('keydown', keydownListener);\n\t\t\t\tdragHandle.addEventListener('mousedown', mousedownListener);\n\n\t\t\t\tupdateState({\n\t\t\t\t\tdragHandleElement: dragHandle,\n\t\t\t\t\tdragContainerElement: dragContainer,\n\t\t\t\t\tisDragModeEnabled: false,\n\t\t\t\t\tisDragging: false,\n\t\t\t\t\t__mousedownListener__: mousedownListener,\n\t\t\t\t\t__keydownListener__: keydownListener,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t[SN_WINDOW_START_DRAG]: (coeffects) => {\n\t\t\tconst {action, dispatch, state} = coeffects;\n\t\t\tconst {payload} = action;\n\t\t\tconst {properties} = state;\n\t\t\tif (properties.windowConfig.isUXFWindow) {\n\t\t\t\tdispatch(UXF_FOCUS_WINDOW, {windowConfig: properties.windowConfig});\n\t\t\t} else {\n\t\t\t\tdispatch(FOCUS_WINDOW, {windowConfig: properties.windowConfig});\n\t\t\t}\n\t\t\tif (\n\t\t\t\t!state.isDragModeEnabled &&\n\t\t\t\t!state.isDragging &&\n\t\t\t\tproperties.isFloating\n\t\t\t) {\n\t\t\t\tstartDrag(coeffects, payload.mouseEvent);\n\t\t\t\thandleModelessMousedown(coeffects);\n\t\t\t}\n\t\t},\n\t\t[SN_WINDOW_END_DRAG]: (coeffects) => {\n\t\t\tconst {state} = coeffects;\n\t\t\tconst {properties} = state;\n\n\t\t\tif (properties.windowConfig.canDrag && state.isDragging) {\n\t\t\t\thandleModelessMouseup(coeffects);\n\t\t\t\tendDrag(coeffects);\n\t\t\t}\n\t\t},\n\t\t[SN_WINDOW_KEY_PRESSED]: (coeffects) => {\n\t\t\tconst {action, dispatch, state} = coeffects;\n\t\t\tconst {payload} = action;\n\t\t\tconst {properties} = state;\n\t\t\tif (properties.windowConfig.canDrag && state.isDragModeEnabled) {\n\t\t\t\tconst bottomToolbarComponent = properties.bottomToolbarComponent;\n\t\t\t\tconst toolbar = bottomToolbarComponent.shadowRoot.querySelector(\n\t\t\t\t\t'.sn-window-manager-toolbar',\n\t\t\t\t);\n\t\t\t\tkeyPressed(payload.keyEvent, state, dispatch, toolbar);\n\t\t\t}\n\t\t},\n\t\t['TOGGLE_DRAG_MODE']({\n\t\t\taction: {\n\t\t\t\tpayload: {enabled},\n\t\t\t},\n\t\t\tstate: {isDragModeEnabled = false},\n\t\t\tupdateState,\n\t\t}) {\n\t\t\tconst dragModeEnabled = enabled ?? !isDragModeEnabled;\n\t\t\tupdateState({isDragModeEnabled: dragModeEnabled});\n\t\t},\n\t},\n};\n","import {createCustomElement} from '@servicenow/ui-core';\nimport styles from './styles.scss';\nimport view from './sn-window.view';\nimport {actionHandlers, eventHandlers} from './sn-window.effects';\nimport rtlBehavior from '@servicenow/behavior-rtl';\nimport focusBehavior from '@servicenow/behavior-focus';\nimport modalBehavior from '@servicenow/behavior-modal';\nimport resizableBehavior from '@servicenow/behavior-resizable';\nimport dragBehavior from './behaviors/drag-behavior';\n\ncreateCustomElement('sn-window', {\n\tview,\n\tstyles,\n\tproperties: {\n\t\twindowConfig: {\n\t\t\tdefault: {},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\twindowsState: {\n\t\t\tdefault: {},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\twindowsList: {\n\t\t\tdefault: [],\n\t\t\tschema: {type: 'array'},\n\t\t},\n\t\t// Dimensions of the *entire* window, i.e. browser\n\t\tbrowserDimensions: {\n\t\t\tdefault: {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 0,\n\t\t\t},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\tdialogSize: {\n\t\t\tdefault: {\n\t\t\t\twidth: 320,\n\t\t\t\theight: 480,\n\t\t\t},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\tdialogLocation: {\n\t\t\tdefault: {\n\t\t\t\ttop: -1,\n\t\t\t\tleft: -1,\n\t\t\t},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\tdockedWindowSize: {\n\t\t\tdefault: 320,\n\t\t\tschema: {type: 'number'},\n\t\t},\n\t\tmodalSize: {\n\t\t\tdefault: {\n\t\t\t\twidth: '95%',\n\t\t\t\theight: '85%',\n\t\t\t},\n\t\t\tschema: {type: 'object'},\n\t\t\tshouldRenderWhenSet: false,\n\t\t},\n\t\tstyleObj: {\n\t\t\tdefault: {\n\t\t\t\ttop: '0px',\n\t\t\t\tleft: '0px',\n\t\t\t\twidth: '0px',\n\t\t\t\theight: '0px',\n\t\t\t\ttransform: 'scale(0)',\n\t\t\t},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\tmutationObserver: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['object', 'null']},\n\t\t},\n\t\tresizeObserver: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['object', 'null']},\n\t\t},\n\t\tportalType: {\n\t\t\tdefault: '',\n\t\t\tschema: {type: 'string'},\n\t\t},\n\t\tisDocked: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tisMinimized: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tisActive: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tisModal: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tisOpen: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tisHidden: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tisFloating: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tisDirty: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\t// For smaller screens, we need to use a touch-enhanced UI\n\t\tisSmallScreen: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tcontentElement: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['object', 'null']},\n\t\t},\n\t\tslottedHeading: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['object', 'null']},\n\t\t},\n\t\tslottedActions: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['object', 'null']},\n\t\t},\n\t\tslottedContent: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['object', 'null']},\n\t\t},\n\t\tslottedFooter: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['object', 'null']},\n\t\t},\n\t\tstateWhenClosed: {\n\t\t\tdefault: '',\n\t\t\tschema: {type: 'string'},\n\t\t},\n\t\tisAnimating: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tisFullscreenView: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tcurrentState: {\n\t\t\tdefault: 'closed',\n\t\t\tschema: {type: 'string'},\n\t\t},\n\t\tlastState: {\n\t\t\tdefault: '',\n\t\t\tschema: {type: 'string'},\n\t\t},\n\t\tcanResize: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\t// Number of available panels for the window to display\n\t\t// 1: only chat or canvas\n\t\t// 2: chat/history + canvas\n\t\t// 3: chat + history + canvas\n\t\tavailablePanels: {\n\t\t\tdefault: 1,\n\t\t\tschema: {type: 'number'},\n\t\t},\n\t\topened: {\n\t\t\tdefault: false,\n\t\t\tcomputed({properties: {isOpen}}) {\n\t\t\t\treturn isOpen;\n\t\t\t},\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tbottomToolbarComponent: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['object', 'null']},\n\t\t\tshouldRenderWhenSet: false,\n\t\t},\n\t\tresizableConfig: {\n\t\t\tschema: {\n\t\t\t\ttype: 'object',\n\t\t\t\tproperties: {\n\t\t\t\t\tenableResizable: {type: 'boolean'},\n\t\t\t\t\tresizableMinWidth: {type: 'number'},\n\t\t\t\t\tresizableMinHeight: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t},\n\t\t\t\t\tresizableMaxWidth: {\n\t\t\t\t\t\ttype: ['number', 'null'],\n\t\t\t\t\t},\n\t\t\t\t\tresizableMaxHeight: {\n\t\t\t\t\t\ttype: ['number', 'null'],\n\t\t\t\t\t},\n\t\t\t\t\tcontext: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tenum: ['normal', 'fixed', 'float'],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tmaxWindowSizePercentage: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['object', 'null']},\n\t\t},\n\n\t\tfullscreenViewConfig: {\n\t\t\tdefault: {\n\t\t\t\tmodalThresholds: {\n\t\t\t\t\twidth: 641,\n\t\t\t\t\theight: -1,\n\t\t\t\t},\n\t\t\t\tstandardThresholds: {\n\t\t\t\t\twidth: 421,\n\t\t\t\t\theight: 650,\n\t\t\t\t},\n\t\t\t},\n\t\t\tschema: {\n\t\t\t\ttype: 'object',\n\t\t\t\tproperties: {\n\t\t\t\t\tmodalThresholds: {\n\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\twidth: {type: 'number'},\n\t\t\t\t\t\t\theight: {type: 'number'},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tstandardThresholds: {\n\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\twidth: {type: 'number'},\n\t\t\t\t\t\t\theight: {type: 'number'},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tanimationsDisabled: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tconfigAria: {\n\t\t\tdefault: {},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\tisMessageUnread: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tisChatPrivate: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tscreenInfo: {\n\t\t\tdefault: {\n\t\t\t\tscreenKey: null,\n\t\t\t\tinstanceId: null,\n\t\t\t\texperienceId: null,\n\t\t\t},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t},\n\tsetInitialState({properties}) {\n\t\treturn {\n\t\t\tcontentElement: null,\n\t\t\tisDragModeEnabled: false,\n\t\t};\n\t},\n\tactionHandlers: actionHandlers,\n\teventHandlers: eventHandlers,\n\tbehaviors: [\n\t\t{behavior: rtlBehavior},\n\t\t{\n\t\t\tbehavior: focusBehavior,\n\t\t\toptions: {trap: true},\n\t\t},\n\t\t{\n\t\t\tbehavior: modalBehavior,\n\t\t\toptions: {\n\t\t\t\tlimit: 'sn-window',\n\t\t\t\twatchPropertyName: 'isModal',\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tbehavior: dragBehavior,\n\t\t\toptions: {\n\t\t\t\tdragHandle: '.header',\n\t\t\t\tdragContainer: '.now-modeless-dialog',\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tbehavior: resizableBehavior,\n\t\t\toptions: {\n\t\t\t\tresizeTarget: '.now-modeless-dialog',\n\t\t\t\tcontainer: '.now-modeless-dialog',\n\t\t\t\tgetResizableConfig: ({properties}) => ({\n\t\t\t\t\t...properties.windowConfig.resizableConfig,\n\t\t\t\t}),\n\t\t\t},\n\t\t},\n\t],\n});\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({  });","/* eslint-disable no-console */\nimport {createCustomElement, actionTypes} from '@servicenow/ui-core';\nimport snabbdom from '@servicenow/ui-renderer-snabbdom';\nimport {t} from 'sn-translate';\nimport '@servicenow/now-button';\nimport {\n\tTOGGLE_DOCK,\n\tCREATE_WINDOW,\n\tUXF_CREATE_MODELESS_WINDOW,\n\tOPEN_WINDOW,\n\tRELAY_MESSAGE,\n\tSET_HEADER_BUTTONS,\n} from '../utilities/actions';\nimport {ButtonsPanel} from '../../sn-window/fragments/buttonPanel';\nimport styles from './debug-styles.scss';\nimport {PORTAL_TYPES} from '../utilities/constants';\nimport {SN_WINDOW_CLOSED, SN_WINDOW_CREATED} from '../../sn-window/actions';\n\nexport const POLARIS_CONTEXT = {\n\texperienceName: 'Unified Navigation App',\n\tpath: 'now/nav/ui',\n};\nexport const CLASSIC_ROUTE = '/classic/params/target/';\nexport const CLASSIC = 'classic';\n\nconst defaultWindowOptions = {\n\tcanDock: true,\n\tcanMinimize: true,\n\tcanMaximize: true,\n\tcanToggleModal: true,\n\tcanDrag: true,\n\tcanResize: true,\n\tcanClose: true,\n};\n\nconst view = (coeffects, {dispatch, updateState}) => {\n\tconst {properties} = coeffects;\n\n\tconst isBottomDocked =\n\t\tproperties.windowsState.bottomDockId === 'debug-panel-window';\n\tconst isLeftDocked =\n\t\tproperties.windowsState.leftDockId === 'debug-panel-window';\n\tconst isRightDocked =\n\t\tproperties.windowsState.rightDockId === 'debug-panel-window';\n\tconst buttonSize =\n\t\tproperties.portalType === PORTAL_TYPES.SERVICE_PORTAL ? 'lg' : 'sm';\n\n\treturn (\n\t\t<div\n\t\t\tclass={{\n\t\t\t\t'debug-panel': true,\n\t\t\t\t'bottom-docked': isBottomDocked,\n\t\t\t\t'side-docked': isLeftDocked || isRightDocked,\n\t\t\t\t'hide-buttons': !properties.showTopButtons,\n\t\t\t}}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={`debug-controls ${properties.showTopButtons ? '' : 'hidden'}`}\n\t\t\t>\n\t\t\t\t<h3>animation state</h3>\n\t\t\t\t{properties.isAnimating\n\t\t\t\t\t? `Animating ${properties.lastState} to ${properties.currentState} transition`\n\t\t\t\t\t: `Not Animating ${properties.currentState}`}\n\t\t\t\t<h3>Dock areas</h3>\n\t\t\t\t<span className=\"button-panel\">\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\tproperties.windowsState.leftDockId !== null\n\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t: 'secondary'\n\t\t\t\t\t\t}\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(TOGGLE_DOCK, {\n\t\t\t\t\t\t\t\twindowConfig: {\n\t\t\t\t\t\t\t\t\tid: 'debug-panel-window',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdockLocation: 'left',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tLeft Dock\n\t\t\t\t\t</now-button>\n\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\tproperties.windowsState.bottomDockId !== null\n\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t: 'secondary'\n\t\t\t\t\t\t}\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(TOGGLE_DOCK, {\n\t\t\t\t\t\t\t\twindowConfig: {\n\t\t\t\t\t\t\t\t\tid: 'debug-panel-window',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdockLocation: 'bottom',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tBottom Dock\n\t\t\t\t\t</now-button>\n\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\tproperties.windowsState.rightDockId !== null\n\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t: 'secondary'\n\t\t\t\t\t\t}\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(TOGGLE_DOCK, {\n\t\t\t\t\t\t\t\twindowConfig: {\n\t\t\t\t\t\t\t\t\tid: 'debug-panel-window',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdockLocation: 'right',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tRight Dock\n\t\t\t\t\t</now-button>\n\t\t\t\t</span>\n\n\t\t\t\t<h3>Window Controls</h3>\n\t\t\t\t<span className=\"button-panel\">\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch('NAV_ITEM_SELECTED', {\n\t\t\t\t\t\t\t\tcontext: POLARIS_CONTEXT,\n\t\t\t\t\t\t\t\troute: CLASSIC,\n\t\t\t\t\t\t\t\tparams: {\n\t\t\t\t\t\t\t\t\ttarget: 'sys_user.do?sys_id=' + 12345 + '&sysparm_view=ess',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tNAV_ITEM_SELECTED\n\t\t\t\t\t</now-button>\n\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch('CONTEXTUAL_MENU#SELECTED', {\n\t\t\t\t\t\t\t\tmenuId: 'userMenu',\n\t\t\t\t\t\t\t\tbuttonConfig: {\n\t\t\t\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\t\t\t\tid: 'user-menu',\n\t\t\t\t\t\t\t\t\ttooltipContent: 'Show user menu',\n\t\t\t\t\t\t\t\t\tpayload: {\n\t\t\t\t\t\t\t\t\t\tcontextualMenuType: 'userMenu',\n\t\t\t\t\t\t\t\t\t\tcontextualMenuHeaderText: 'User',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tdispatchedAction: 'AVATAR_ICON#CLICKED',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdispatchedAction: 'AVATAR_ICON#CLICKED',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tOpen User Menu\n\t\t\t\t\t</now-button>\n\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(CREATE_WINDOW, {\n\t\t\t\t\t\t\t\tid: 'closed-window1',\n\t\t\t\t\t\t\t\ttitle: `Closed Window ${properties.windowsList.length + 1}`,\n\t\t\t\t\t\t\t\tisOpen: false,\n\t\t\t\t\t\t\t\tisPersistent: true,\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\tcomponent: 'test-content',\n\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\ttitle: `Closed Window ${properties.windowsList.length + 1}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tNew Closed Window\n\t\t\t\t\t</now-button>\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(CREATE_WINDOW, {\n\t\t\t\t\t\t\t\ttitle: `Window ${properties.windowsList.length + 1}`,\n\t\t\t\t\t\t\t\ticon: 'globe-outline',\n\t\t\t\t\t\t\t\tstartingState: 'docked-right',\n\t\t\t\t\t\t\t\tvariant: 'secondary',\n\t\t\t\t\t\t\t\t...defaultWindowOptions,\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\tcomponent: 'test-content',\n\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\ttitle: `Temp Window ${properties.windowsList.length + 1}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tNew Docked Window\n\t\t\t\t\t</now-button>\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(CREATE_WINDOW, {\n\t\t\t\t\t\t\t\ttitle: `Now Assist`,\n\t\t\t\t\t\t\t\ticon: 'globe-outline',\n\t\t\t\t\t\t\t\tvariant: 'aiex',\n\t\t\t\t\t\t\t\tcanResize: true,\n\t\t\t\t\t\t\t\theaderIcon: {\n\t\t\t\t\t\t\t\t\ticon: 'ai-sparkle-fill',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t...defaultWindowOptions,\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\tcomponent: 'test-content',\n\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\ttitle: `Temp Window ${properties.windowsList.length + 1}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tAIEX variant window\n\t\t\t\t\t</now-button>\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(CREATE_WINDOW, {\n\t\t\t\t\t\t\t\ttitle: `Global Window ${properties.windowsList.length + 1}`,\n\t\t\t\t\t\t\t\ticon: 'globe-outline',\n\t\t\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\t\t\t...defaultWindowOptions,\n\t\t\t\t\t\t\t\tdockConfig: {\n\t\t\t\t\t\t\t\t\tdockLeft: false,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\tcomponent: 'test-content',\n\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\ttitle: `Temp Window ${properties.windowsList.length + 1}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tNew Temp Global Window\n\t\t\t\t\t</now-button>\n\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(UXF_CREATE_MODELESS_WINDOW, {\n\t\t\t\t\t\t\t\ttitle: `Scoped Window ${properties.windowsList.length + 1}`,\n\t\t\t\t\t\t\t\ticon: 'globe-outline',\n\t\t\t\t\t\t\t\tscreenKey: nowWindowManager.screenInfo.screenKey,\n\t\t\t\t\t\t\t\texperienceId: nowWindowManager.screenInfo.experienceId,\n\t\t\t\t\t\t\t\tmodelessProps: {\n\t\t\t\t\t\t\t\t\t...defaultWindowOptions,\n\t\t\t\t\t\t\t\t\tcanClose: true,\n\t\t\t\t\t\t\t\t\toffset: '[24,24]',\n\t\t\t\t\t\t\t\t\tenableDrag: true,\n\t\t\t\t\t\t\t\t\tcanMinimize: true,\n\t\t\t\t\t\t\t\t\theadingLabel: `Window scoped to ${nowWindowManager.screenInfo.screenKey}`,\n\t\t\t\t\t\t\t\t\tmanageOpened: true,\n\t\t\t\t\t\t\t\t\topened: true,\n\t\t\t\t\t\t\t\t\tvariant: 'initial',\n\t\t\t\t\t\t\t\t\twidth: 600,\n\t\t\t\t\t\t\t\t\tposition: 'bottom-right',\n\t\t\t\t\t\t\t\t\theight: 498,\n\t\t\t\t\t\t\t\t\tcanMaximize: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\topts: {\n\t\t\t\t\t\t\t\t\tinstanceId: nowWindowManager.screenInfo.instanceId,\n\t\t\t\t\t\t\t\t\tisDirty: false,\n\t\t\t\t\t\t\t\t\topened: true,\n\t\t\t\t\t\t\t\t\tdialogTitle: `Window scoped to ${nowWindowManager.screenInfo.screenKey}`,\n\t\t\t\t\t\t\t\t\tminimizedTitle: `Minimized ${nowWindowManager.screenInfo.screenKey}`,\n\t\t\t\t\t\t\t\t\tcategory: 'Test Scope Window',\n\t\t\t\t\t\t\t\t\tposition: 'centered',\n\t\t\t\t\t\t\t\t\tmeta: {\n\t\t\t\t\t\t\t\t\t\teventInfo: {\n\t\t\t\t\t\t\t\t\t\t\tsourceElementId:\n\t\t\t\t\t\t\t\t\t\t\t\t'f18548cf50d64637b6354728f-modeless_dialog_controller',\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\telementId: 'modeless_dialog_controller',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\thideOthers: false,\n\t\t\t\t\t\t\t\t\tsingleInstance: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcontentRef: {\n\t\t\t\t\t\t\t\t\tcomponent: null,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tNew Temp Scoped Window\n\t\t\t\t\t</now-button>\n\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\tvariant=\"\"\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(CREATE_WINDOW, {\n\t\t\t\t\t\t\t\ttitle: `Window ${properties.windowsList.length + 1}`,\n\t\t\t\t\t\t\t\tisPersistent: true,\n\t\t\t\t\t\t\t\t...defaultWindowOptions,\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\tcomponent: 'test-content',\n\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\ttitle: `Persistent Window ${\n\t\t\t\t\t\t\t\t\t\t\tproperties.windowsList.length + 1\n\t\t\t\t\t\t\t\t\t\t}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tNew Persistant Window\n\t\t\t\t\t</now-button>\n\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\tvariant=\"\"\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(CREATE_WINDOW, {\n\t\t\t\t\t\t\t\ttitle: `Modal Window ${properties.windowsList.length + 1}`,\n\t\t\t\t\t\t\t\tisPersistent: false,\n\t\t\t\t\t\t\t\tstartingState: 'modal',\n\t\t\t\t\t\t\t\theaderIcon: {\n\t\t\t\t\t\t\t\t\ticon: 'globe-outline',\n\t\t\t\t\t\t\t\t\tvariant: 'initial',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tmodalSize: {\n\t\t\t\t\t\t\t\t\twidth: '50%',\n\t\t\t\t\t\t\t\t\theight: '50%',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdialogSize: {\n\t\t\t\t\t\t\t\t\twidth: 550,\n\t\t\t\t\t\t\t\t\theight: 420,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\tcomponent: 'test-content',\n\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\ttitle: `Persistent Window ${\n\t\t\t\t\t\t\t\t\t\t\tproperties.windowsList.length + 1\n\t\t\t\t\t\t\t\t\t\t}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tSmall Complex Modal Window\n\t\t\t\t\t</now-button>\n\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\tvariant=\"\"\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(CREATE_WINDOW, {\n\t\t\t\t\t\t\t\ttitle: `Basic Modal ${properties.windowsList.length + 1}`,\n\t\t\t\t\t\t\t\tisPersistent: true,\n\t\t\t\t\t\t\t\tstartingState: 'modal',\n\t\t\t\t\t\t\t\tcanDock: false,\n\t\t\t\t\t\t\t\tcanMinimize: false,\n\t\t\t\t\t\t\t\tcanMaximize: false,\n\t\t\t\t\t\t\t\tcanToggleModal: false,\n\t\t\t\t\t\t\t\tcanDrag: false,\n\t\t\t\t\t\t\t\tcanResize: false,\n\t\t\t\t\t\t\t\tcanClose: true,\n\t\t\t\t\t\t\t\t// fitContent: true,\n\t\t\t\t\t\t\t\theaderIcon: {\n\t\t\t\t\t\t\t\t\ticon: 'globe-outline',\n\t\t\t\t\t\t\t\t\tvariant: 'initial',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tmodalSize: {\n\t\t\t\t\t\t\t\t\twidth: '60%',\n\t\t\t\t\t\t\t\t\theight: '60%',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tautoResizableConfig: {\n\t\t\t\t\t\t\t\t\tautoResizableMaxHeight: 800,\n\t\t\t\t\t\t\t\t\tenableAutoResizableHeight: true,\n\t\t\t\t\t\t\t\t\tautoResizableMinHeight: 470,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\tcomponent: 'iframe',\n\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\ttitle: `Persistent basic modal window`,\n\t\t\t\t\t\t\t\t\t\tsrc: '/incident.do?sys_id=e329de99731423002728660c4cf6a73c',\n\t\t\t\t\t\t\t\t\t\twidth: '700px',\n\t\t\t\t\t\t\t\t\t\theight: '800px',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tNew Large Modal Window\n\t\t\t\t\t</now-button>\n\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\tvariant=\"\"\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(CREATE_WINDOW, {\n\t\t\t\t\t\t\t\ttitle: `INC0009004`,\n\t\t\t\t\t\t\t\tisPersistent: false,\n\t\t\t\t\t\t\t\tposition: 'centered',\n\t\t\t\t\t\t\t\tmodalSize: {\n\t\t\t\t\t\t\t\t\twidth: '95%',\n\t\t\t\t\t\t\t\t\theight: '95%',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tdialogSize: {\n\t\t\t\t\t\t\t\t\twidth: 550,\n\t\t\t\t\t\t\t\t\theight: 420,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\tcomponent: 'iframe',\n\t\t\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\t\t\tsrc: '/incident.do?sys_id=e329de99731423002728660c4cf6a73c',\n\t\t\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\t\t\theight: '100%',\n\t\t\t\t\t\t\t\t\t\tdialogSize: {\n\t\t\t\t\t\t\t\t\t\t\twidth: 500,\n\t\t\t\t\t\t\t\t\t\t\theight: 600,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tNew Iframed Form\n\t\t\t\t\t</now-button>\n\t\t\t\t\t<now-button\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch('HEADER_TOGGLE_SET');\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t>\n\t\t\t\t\t\tHide Buttons\n\t\t\t\t\t</now-button>\n\n\t\t\t\t\t<now-button\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch(CREATE_WINDOW, {\n\t\t\t\t\t\t\t\ttitle: `Header Buttons Example`,\n\t\t\t\t\t\t\t\ticon: 'globe-outline',\n\t\t\t\t\t\t\t\tcanDock: false,\n\t\t\t\t\t\t\t\tcanMinimize: false,\n\t\t\t\t\t\t\t\tcanMaximize: false,\n\t\t\t\t\t\t\t\tcanToggleModal: false,\n\t\t\t\t\t\t\t\tcanDrag: true,\n\t\t\t\t\t\t\t\tcanResize: true,\n\t\t\t\t\t\t\t\tcanClose: true,\n\t\t\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\t\t\tdialogSize: {\n\t\t\t\t\t\t\t\t\twidth: 640,\n\t\t\t\t\t\t\t\t\theight: 220,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\t\t\tcomponent: 'header-button-example',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\tHeader Buttons Example\n\t\t\t\t\t</now-button>\n\n\t\t\t\t\t<now-button\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch('SN_WINDOW#SET_WINDOW_SIZE', {width: 400});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t>\n\t\t\t\t\t\tMake Window 400px wide\n\t\t\t\t\t</now-button>\n\n\t\t\t\t\t<now-button\n\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\tdispatch('SN_WINDOW#SET_WINDOW_SIZE', {width: 800});\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tsize={buttonSize}\n\t\t\t\t\t>\n\t\t\t\t\t\tMake Window 800px wide\n\t\t\t\t\t</now-button>\n\t\t\t\t</span>\n\t\t\t</div>\n\n\t\t\t<div className=\"debug-windows-list\">\n\t\t\t\t<h3>Window List</h3>\n\t\t\t\t<span className=\"window-list\">\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t{properties.windowsList.map((currentWindow, index) => {\n\t\t\t\t\t\t\tconst resolvedProps = currentWindow.component;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<li key={index}>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\t\t\t\t\t\tconsole.info('Window Clicked', {\n\t\t\t\t\t\t\t\t\t\t\t\tdispatch,\n\t\t\t\t\t\t\t\t\t\t\t\twindowConfig: currentWindow,\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\tdispatch(OPEN_WINDOW, {windowConfig: currentWindow});\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{currentWindow.headingLabel}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t<ButtonsPanel\n\t\t\t\t\t\t\t\t\t\tproperties={resolvedProps}\n\t\t\t\t\t\t\t\t\t\twindowsState={properties.windowsState}\n\t\t\t\t\t\t\t\t\t\twindowConfig={currentWindow}\n\t\t\t\t\t\t\t\t\t\tdispatch={dispatch}\n\t\t\t\t\t\t\t\t\t\tupdateState={updateState}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ul>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\ncreateCustomElement('debug-panel', {\n\trenderer: {\n\t\ttype: snabbdom,\n\t\tview,\n\t},\n\tstyles,\n\tproperties: {\n\t\ttitle: {\n\t\t\tdefault: '',\n\t\t\tschema: {type: 'string'},\n\t\t},\n\t\tdialogSize: {\n\t\t\tdefault: {\n\t\t\t\twidth: 640,\n\t\t\t\theight: 480,\n\t\t\t},\n\t\t\tschema: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t},\n\t\twindowsList: {\n\t\t\tdefault: [],\n\t\t\tschema: {type: 'array'},\n\t\t},\n\t\twindowsState: {\n\t\t\tdefault: {},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\tportalType: {\n\t\t\tdefault: '',\n\t\t\tschema: {type: 'string'},\n\t\t},\n\t\theaderButtons: {\n\t\t\tdefault: [],\n\t\t\tschema: {type: 'array'},\n\t\t},\n\t\tshowTopButtons: {\n\t\t\tdefault: true,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tisAnimating: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tcurrentState: {\n\t\t\tdefault: 'closed',\n\t\t\tschema: {type: 'string'},\n\t\t},\n\t\tlastState: {\n\t\t\tdefault: '',\n\t\t\tschema: {type: 'string'},\n\t\t},\n\t},\n\tactionHandlers: {\n\t\t[actionTypes.COMPONENT_CONNECTED]: ({dispatch, updateProperties}) => {\n\t\t\t// define what buttons we want to show in the header on the sn-window\n\t\t\tupdateProperties({\n\t\t\t\theaderButtons: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'icon',\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tlabel: t('Broadcast Message'),\n\t\t\t\t\t\t\ttooltipContent: t('Broadcast Message'),\n\t\t\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\t\t\ticon: 'broadcast-tower-outline',\n\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\tconsole.info('Test button clicked');\n\t\t\t\t\t\t\t\tdispatch(RELAY_MESSAGE, {\n\t\t\t\t\t\t\t\t\ttype: 'command',\n\t\t\t\t\t\t\t\t\tcommand: 'bumpCounter',\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: 'toggle',\n\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\tlabel: t('Hide Buttons'),\n\t\t\t\t\t\t\tvariant: 'tertiary',\n\t\t\t\t\t\t\t'manage-checked': true,\n\t\t\t\t\t\t\tchecked: true,\n\t\t\t\t\t\t\tsize: 'sm',\n\t\t\t\t\t\t\ttooltip: t('Hide Window Control Buttons'),\n\t\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\t\tconsole.info('Test button clicked');\n\t\t\t\t\t\t\t\tdispatch('HEADER_TOGGLE_SET');\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\n\t\t[actionTypes.COMPONENT_PROPERTY_CHANGED]: (coeffects) => {\n\t\t\tconst {\n\t\t\t\taction: {payload},\n\t\t\t\tdispatch,\n\t\t\t} = coeffects;\n\n\t\t\tswitch (payload.name) {\n\t\t\t\tcase 'headerButtons': {\n\t\t\t\t\t// relay header buttons to parent sn-window component\n\t\t\t\t\tdispatch(SET_HEADER_BUTTONS, {headerButtons: payload.value});\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t['HANDLE_BUTTON_CLICK']: ({state, updateProperties}) => {\n\t\t\tupdateProperties({\n\t\t\t\tviewCount: state.properties.viewCount + 1,\n\t\t\t});\n\t\t},\n\t\t['PROPERTY_CHANGED']: () => {\n\t\t\t// console.info('DEBUG_PANEL - Property changed', action.payload);\n\t\t},\n\t\t['HANDLE_MESSAGE']: ({state, action, updateProperties}) => {\n\t\t\tconst {payload} = action;\n\n\t\t\tswitch (payload.type) {\n\t\t\t\tcase 'command': {\n\t\t\t\t\tswitch (payload.command) {\n\t\t\t\t\t\tcase 'bumpCounter': {\n\t\t\t\t\t\t\tupdateProperties({\n\t\t\t\t\t\t\t\tviewCount: state.properties.viewCount + 1,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault: {\n\t\t\t\t\t\t\tconsole.warn('DEBUG_PANEL - Unknown command', payload.command);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'propertyChanged': {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t['HEADER_TOGGLE_SET']: (coeffects) => {\n\t\t\tconsole.info('debug-window - NOW_TOGGLE#CHECKED_SET');\n\t\t\tconst {state, updateProperties} = coeffects;\n\t\t\tconst {properties} = state;\n\t\t\tconst newButtons = [...properties.headerButtons];\n\n\t\t\tnewButtons[1].properties.checked = !properties.showTopButtons;\n\n\t\t\tupdateProperties({\n\t\t\t\tshowTopButtons: !properties.showTopButtons,\n\t\t\t\theaderButtons: newButtons,\n\t\t\t});\n\t\t},\n\t\t[SN_WINDOW_CLOSED]: (coeffects) => {\n\t\t\tconsole.info('debug-window - SN_WINDOW_CLOSED', coeffects);\n\t\t},\n\t\t[SN_WINDOW_CREATED]: (coeffects) => {\n\t\t\tconsole.info('debug-window - SN_WINDOW_CREATED', coeffects);\n\t\t},\n\t},\n});\n","const VIEWPORT_PADDING = 16;\nconst MIN_BUTTON_WIDTH = 130;\nconst MAX_BUTTON_WIDTH = 180;\nconst OVERFLOW_BUTTON_WIDTH = 60;\n\n/**\n * Distributes available button slots between two zones (global and scoped windows).\n * Attempts to balance the zones evenly, with priority given to the zone that's further from its target.\n *\n * Algorithm:\n * 1. If zones have equal counts, split slots 50/50 (with remainder going to zone 1 if needed)\n * 2. Otherwise, fill each zone toward half of available slots, alternating based on which has the larger gap\n * 3. Distribute any remaining slots proportionally based on zone counts\n * 4. Assign any final leftover slots alternating between zones\n */\nconst allocateSlots = (\n\tzone1ButtonCount,\n\tzone2ButtonCount,\n\tmaxVisibleButtons,\n) => {\n\tif (maxVisibleButtons <= 0) {\n\t\treturn {zone1VisibleCount: 0, zone2VisibleCount: 0};\n\t}\n\n\t// If one zone is empty, all slots go to the other zone\n\tif (zone1ButtonCount === 0) {\n\t\treturn {\n\t\t\tzone1VisibleCount: 0,\n\t\t\tzone2VisibleCount: Math.min(zone2ButtonCount, maxVisibleButtons),\n\t\t};\n\t}\n\tif (zone2ButtonCount === 0) {\n\t\treturn {\n\t\t\tzone1VisibleCount: Math.min(zone1ButtonCount, maxVisibleButtons),\n\t\t\tzone2VisibleCount: 0,\n\t\t};\n\t}\n\n\t// If zones have equal counts, split evenly\n\tif (zone1ButtonCount === zone2ButtonCount) {\n\t\tconst halfOfSlots = Math.floor(maxVisibleButtons / 2);\n\t\tconst zone1VisibleCount = Math.min(zone1ButtonCount, halfOfSlots);\n\t\tconst zone2VisibleCount = Math.min(zone2ButtonCount, halfOfSlots);\n\n\t\t// If odd number of slots and both zones can use more, give remainder to zone 1\n\t\tif (\n\t\t\tmaxVisibleButtons % 2 === 1 &&\n\t\t\tzone1VisibleCount < zone1ButtonCount &&\n\t\t\tzone2VisibleCount < zone2ButtonCount &&\n\t\t\tzone1VisibleCount + zone2VisibleCount < maxVisibleButtons\n\t\t) {\n\t\t\treturn {zone1VisibleCount: zone1VisibleCount + 1, zone2VisibleCount};\n\t\t}\n\t\treturn {zone1VisibleCount, zone2VisibleCount};\n\t}\n\n\t// Balance zones toward half of available slots\n\tlet zone1VisibleCount = 0;\n\tlet zone2VisibleCount = 0;\n\tconst targetSlotsPerZone = Math.floor(maxVisibleButtons / 2);\n\n\t// Fill each zone toward its target, alternating based on which needs more\n\twhile (\n\t\t(zone1VisibleCount < targetSlotsPerZone ||\n\t\t\tzone2VisibleCount < targetSlotsPerZone) &&\n\t\tzone1VisibleCount + zone2VisibleCount < maxVisibleButtons\n\t) {\n\t\tconst zone1Gap = targetSlotsPerZone - zone1VisibleCount;\n\t\tconst zone2Gap = targetSlotsPerZone - zone2VisibleCount;\n\n\t\t// Give slot to the zone that's further from its target and has buttons remaining\n\t\tif (zone1Gap > zone2Gap && zone1VisibleCount < zone1ButtonCount) {\n\t\t\tzone1VisibleCount++;\n\t\t} else if (zone2Gap > zone1Gap && zone2VisibleCount < zone2ButtonCount) {\n\t\t\tzone2VisibleCount++;\n\t\t} else if (\n\t\t\tzone1VisibleCount < targetSlotsPerZone &&\n\t\t\tzone1VisibleCount < zone1ButtonCount\n\t\t) {\n\t\t\tzone1VisibleCount++;\n\t\t} else if (\n\t\t\tzone2VisibleCount < targetSlotsPerZone &&\n\t\t\tzone2VisibleCount < zone2ButtonCount\n\t\t) {\n\t\t\tzone2VisibleCount++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Distribute remaining slots proportionally based on zone counts\n\tconst remainingSlots =\n\t\tmaxVisibleButtons - zone1VisibleCount - zone2VisibleCount;\n\tif (remainingSlots > 0) {\n\t\tconst totalButtonCount = zone1ButtonCount + zone2ButtonCount;\n\t\tzone1VisibleCount = Math.min(\n\t\t\tzone1ButtonCount,\n\t\t\tMath.min(\n\t\t\t\tzone1VisibleCount +\n\t\t\t\t\tMath.floor((remainingSlots * zone1ButtonCount) / totalButtonCount),\n\t\t\t\tmaxVisibleButtons - zone2VisibleCount,\n\t\t\t),\n\t\t);\n\t\tzone2VisibleCount = Math.min(\n\t\t\tzone2ButtonCount,\n\t\t\tMath.min(\n\t\t\t\tzone2VisibleCount +\n\t\t\t\t\tMath.floor((remainingSlots * zone2ButtonCount) / totalButtonCount),\n\t\t\t\tmaxVisibleButtons - zone1VisibleCount,\n\t\t\t),\n\t\t);\n\n\t\t// Assign any final leftover slots alternating between zones\n\t\tconst leftoverSlots =\n\t\t\tmaxVisibleButtons - zone1VisibleCount - zone2VisibleCount;\n\t\tif (leftoverSlots > 0) {\n\t\t\tfor (\n\t\t\t\tlet i = 0;\n\t\t\t\ti < leftoverSlots &&\n\t\t\t\t(zone1VisibleCount < zone1ButtonCount ||\n\t\t\t\t\tzone2VisibleCount < zone2ButtonCount);\n\t\t\t\ti++\n\t\t\t) {\n\t\t\t\tif (i % 2 === 0 && zone1VisibleCount < zone1ButtonCount) {\n\t\t\t\t\tzone1VisibleCount++;\n\t\t\t\t} else if (zone2VisibleCount < zone2ButtonCount) {\n\t\t\t\t\tzone2VisibleCount++;\n\t\t\t\t} else if (zone1VisibleCount < zone1ButtonCount) {\n\t\t\t\t\tzone1VisibleCount++;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn {zone1VisibleCount, zone2VisibleCount};\n};\n\n/**\n * Creates the result object containing visible buttons, overflow counts, and layout configuration.\n */\nconst createResult = (\n\tzone1Windows,\n\tzone2Windows,\n\tzone1VisibleCount,\n\tzone2VisibleCount,\n\tzone1OverflowCount,\n\tzone2OverflowCount,\n\tcalculatedButtonWidth,\n) => {\n\tconst bothZonesHaveOverflow =\n\t\tzone1OverflowCount > 0 && zone2OverflowCount > 0;\n\tconst halfOfVisibleButtons = Math.floor(\n\t\t(zone1VisibleCount + zone2VisibleCount) / 2,\n\t);\n\n\treturn {\n\t\tvisible1: zone1Windows.slice(0, zone1VisibleCount),\n\t\tvisible2: zone2Windows.slice(0, zone2VisibleCount),\n\t\toverflowCount1: zone1OverflowCount,\n\t\toverflowCount2: zone2OverflowCount,\n\t\toverflowWindows1: zone1Windows.slice(zone1VisibleCount),\n\t\toverflowWindows2: zone2Windows.slice(zone2VisibleCount),\n\t\tshowDivider:\n\t\t\t(zone1VisibleCount > 0 || zone1OverflowCount > 0) &&\n\t\t\t(zone2VisibleCount > 0 || zone2OverflowCount > 0),\n\t\tbuttonWidth: calculatedButtonWidth,\n\t\tuseBalancedSizing:\n\t\t\tbothZonesHaveOverflow &&\n\t\t\tzone1VisibleCount >= halfOfVisibleButtons &&\n\t\t\tzone2VisibleCount >= halfOfVisibleButtons,\n\t};\n};\n\n/**\n * Computes which buttons should be visible vs. overflowed for the bottom toolbar.\n *\n * This function determines the optimal layout based on available space:\n * 1. If all buttons fit at optimal size (MIN_WIDTH to MAX_WIDTH), show all\n * 2. Otherwise, calculate how many buttons can fit and distribute them between zones\n *\n * The available space accounts for:\n * - Viewport padding\n * - Zone 3 width (if hoisted content exists)\n * - Overflow button space (if needed)\n */\nexport const computeZones = (\n\tzone1Windows,\n\tzone2Windows,\n\tviewportWidth,\n\tzone3Width = 0,\n) => {\n\tconst zone1ButtonCount = zone1Windows.length;\n\tconst zone2ButtonCount = zone2Windows.length;\n\n\t// No buttons to display\n\tif (zone1ButtonCount === 0 && zone2ButtonCount === 0) {\n\t\treturn createResult(\n\t\t\tzone1Windows,\n\t\t\tzone2Windows,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\t0,\n\t\t\tMIN_BUTTON_WIDTH,\n\t\t);\n\t}\n\n\t// Calculate available space: viewport width minus padding and zone 3 space\n\tconst zone3TotalSpace = zone3Width > 0 ? zone3Width + 32 : 0;\n\tconst availableWidth = Math.max(\n\t\tviewportWidth - VIEWPORT_PADDING - zone3TotalSpace,\n\t\t0,\n\t);\n\tconst totalButtonCount = zone1ButtonCount + zone2ButtonCount;\n\n\t// Check if all buttons fit at optimal size (between MIN_WIDTH and MAX_WIDTH)\n\tif (totalButtonCount * MIN_BUTTON_WIDTH <= availableWidth) {\n\t\tconst optimalButtonWidth = Math.max(\n\t\t\tMIN_BUTTON_WIDTH,\n\t\t\tMath.min(MAX_BUTTON_WIDTH, availableWidth / totalButtonCount),\n\t\t);\n\n\t\t// If all buttons fit at optimal size, show all with no overflow\n\t\tif (totalButtonCount * optimalButtonWidth <= availableWidth) {\n\t\t\treturn createResult(\n\t\t\t\tzone1Windows,\n\t\t\t\tzone2Windows,\n\t\t\t\tzone1ButtonCount,\n\t\t\t\tzone2ButtonCount,\n\t\t\t\t0,\n\t\t\t\t0,\n\t\t\t\toptimalButtonWidth,\n\t\t\t);\n\t\t}\n\t}\n\n\t// Calculate how many buttons can fit (accounting for overflow buttons)\n\tconst spaceForOverflowButtons =\n\t\t(zone1ButtonCount > 0 ? OVERFLOW_BUTTON_WIDTH : 0) +\n\t\t(zone2ButtonCount > 0 ? OVERFLOW_BUTTON_WIDTH : 0);\n\tconst spaceForButtons = availableWidth - spaceForOverflowButtons;\n\tconst maxVisibleButtons = Math.floor(spaceForButtons / MIN_BUTTON_WIDTH);\n\n\t// Distribute available slots between zones\n\tconst {zone1VisibleCount, zone2VisibleCount} = allocateSlots(\n\t\tzone1ButtonCount,\n\t\tzone2ButtonCount,\n\t\tMath.max(maxVisibleButtons, 0),\n\t);\n\n\t// Calculate overflow counts and button width\n\tconst zone1OverflowCount = zone1ButtonCount - zone1VisibleCount;\n\tconst zone2OverflowCount = zone2ButtonCount - zone2VisibleCount;\n\tconst totalVisibleButtons = zone1VisibleCount + zone2VisibleCount;\n\tconst calculatedButtonWidth =\n\t\ttotalVisibleButtons > 0\n\t\t\t? Math.floor(spaceForButtons / totalVisibleButtons)\n\t\t\t: MIN_BUTTON_WIDTH;\n\n\treturn createResult(\n\t\tzone1Windows,\n\t\tzone2Windows,\n\t\tzone1VisibleCount,\n\t\tzone2VisibleCount,\n\t\tzone1OverflowCount,\n\t\tzone2OverflowCount,\n\t\tcalculatedButtonWidth,\n\t);\n};\n\nexport {allocateSlots};\n\nexport const isTruncated = (element, selector = '.label-text') => {\n\tconst labelSpan = element.querySelector(selector);\n\treturn labelSpan && labelSpan.scrollWidth > labelSpan.clientWidth;\n};\n\nexport const handleTooltipCheck = (e, tooltipContent) => {\n\tconst button = e.target.closest('button') || e.target;\n\tconst tooltip = button.parentElement.querySelector('now-tooltip');\n\tif (tooltip) {\n\t\tconst truncated = isTruncated(button);\n\t\tif (truncated && !tooltip.content) {\n\t\t\ttooltip.content = tooltipContent;\n\t\t} else if (!truncated && tooltip.content) {\n\t\t\ttooltip.content = null;\n\t\t}\n\t}\n};\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({  });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({  });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({  });","import {createCustomElement} from '@servicenow/ui-core';\nimport styles from './sn-overflow-popover.scss';\nimport {t} from 'sn-translate';\nimport {CLOSE_WINDOW, TOGGLE_MINIMIZE_STATE} from '../../utilities/actions';\n\nconst handleArrowKeyNavigation = (e, currentElement) => {\n\tconst list = e.currentTarget.closest('.sn-overflow-popover-list');\n\tconst items = Array.from(\n\t\tlist?.querySelectorAll('.sn-overflow-popover-item') || [],\n\t);\n\tconst currentIndex = items.indexOf(currentElement);\n\n\tif (list && items.length > 0 && currentIndex !== -1) {\n\t\te.preventDefault();\n\t\tconst isArrowDown = e.key === 'ArrowDown';\n\t\tconst totalItems = items.length;\n\t\tconst nextIndex = isArrowDown\n\t\t\t? (currentIndex + 1) % totalItems\n\t\t\t: (currentIndex - 1 + totalItems) % totalItems;\n\n\t\titems[nextIndex]?.focus();\n\t}\n};\n\nconst closePopoverOnTabOut = (dispatch, zoneId, actionSource = 'tab-press') => {\n\tdispatch(\n\t\t'NOW_POPOVER#OPENED_SET',\n\t\t{value: false, actionSource},\n\t\t{appended: {id: `overflow-popover-${zoneId}`}},\n\t);\n};\n\nconst createItemKeydownHandler =\n\t(dispatch, itemIndex, totalItemCount, zoneId, windowConfig) => (e) => {\n\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\te.preventDefault();\n\t\t\tdispatch(TOGGLE_MINIMIZE_STATE, {windowConfig});\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n\t\t\thandleArrowKeyNavigation(e, e.currentTarget);\n\t\t\treturn;\n\t\t}\n\n\t\tif (e.key === 'Tab') {\n\t\t\tconst isShiftTab = e.shiftKey;\n\t\t\tconst isFirstItem = itemIndex === 0;\n\t\t\tconst isLastItem = itemIndex === totalItemCount - 1;\n\t\t\tconst isOnCloseButton = !!e.target.closest(\n\t\t\t\t'.sn-overflow-popover-item-close',\n\t\t\t);\n\n\t\t\tif (!isShiftTab && isLastItem && isOnCloseButton) {\n\t\t\t\te.preventDefault();\n\t\t\t\tclosePopoverOnTabOut(dispatch, zoneId);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (isShiftTab && isFirstItem && !isOnCloseButton) {\n\t\t\t\te.preventDefault();\n\t\t\t\tclosePopoverOnTabOut(dispatch, zoneId);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t};\n\nconst renderWindowItem = (\n\twindowConfig,\n\tdispatch,\n\titemIndex,\n\ttotalItemCount,\n\tzoneId,\n) => {\n\tconst title =\n\t\twindowConfig.minimizedTitle || windowConfig.headingLabel || t('No Title');\n\tconst subtitle =\n\t\twindowConfig?.category && windowConfig.category !== ''\n\t\t\t? windowConfig.category\n\t\t\t: '';\n\tconst hasIcon = windowConfig.headerIcon?.icon;\n\n\treturn (\n\t\t<div\n\t\t\tkey={windowConfig.id}\n\t\t\tclassName=\"sn-overflow-popover-item\"\n\t\t\ttabIndex={0}\n\t\t\trole=\"menuitem\"\n\t\t\ton-click={() => {\n\t\t\t\tdispatch(TOGGLE_MINIMIZE_STATE, {windowConfig});\n\t\t\t}}\n\t\t\ton-keydown={createItemKeydownHandler(\n\t\t\t\tdispatch,\n\t\t\t\titemIndex,\n\t\t\t\ttotalItemCount,\n\t\t\t\tzoneId,\n\t\t\t\twindowConfig,\n\t\t\t)}\n\t\t>\n\t\t\t{hasIcon ? (\n\t\t\t\t<now-icon\n\t\t\t\t\tclassName=\"sn-overflow-popover-item-icon\"\n\t\t\t\t\ticon={windowConfig.headerIcon.icon}\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t/>\n\t\t\t) : null}\n\t\t\t<div className=\"sn-overflow-popover-item-content\">\n\t\t\t\t<div className=\"sn-overflow-popover-item-title\">{title}</div>\n\t\t\t\t<div className=\"sn-overflow-popover-item-subtitle\">{subtitle}</div>\n\t\t\t</div>\n\t\t\t<div className=\"sn-overflow-popover-item-close\">\n\t\t\t\t<now-button-iconic\n\t\t\t\t\tbare\n\t\t\t\t\tsize=\"md\"\n\t\t\t\t\thidePadding\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\ticon=\"close-fill\"\n\t\t\t\t\tconfigAria={{\n\t\t\t\t\t\tbutton: {\n\t\t\t\t\t\t\t'aria-label': t('Close {0}', title),\n\t\t\t\t\t\t},\n\t\t\t\t\t}}\n\t\t\t\t\ttooltip-content={t('Close {0}', title)}\n\t\t\t\t\ton-click={(e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tdispatch(CLOSE_WINDOW, {windowConfig});\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nconst view = ({properties: {windows, isGlobal, zoneId}}, {dispatch}) => {\n\tif (!windows || windows.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst windowType = isGlobal ? t('Global') : t('Scoped');\n\tconst windowCount = windows.length;\n\tconst ariaLabel = t('{0} windows ({1})', [windowType, windowCount]);\n\n\treturn (\n\t\t<div className=\"sn-overflow-popover\" role=\"menu\" aria-label={ariaLabel}>\n\t\t\t<div className=\"sn-overflow-popover-header\">{ariaLabel}</div>\n\t\t\t<div className=\"sn-overflow-popover-list\" role=\"none\">\n\t\t\t\t{windows.map((windowConfig, index) =>\n\t\t\t\t\trenderWindowItem(\n\t\t\t\t\t\twindowConfig,\n\t\t\t\t\t\tdispatch,\n\t\t\t\t\t\tindex,\n\t\t\t\t\t\twindows.length,\n\t\t\t\t\t\tzoneId,\n\t\t\t\t\t),\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\ncreateCustomElement('sn-overflow-popover', {\n\tproperties: {\n\t\twindows: {\n\t\t\tdefault: [],\n\t\t\tschema: {\n\t\t\t\ttype: 'array',\n\t\t\t\titems: {\n\t\t\t\t\ttype: 'object',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tminimizedTitle: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t},\n\t\t\t\t\t\theadingLabel: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t},\n\t\t\t\t\t\theaderIcon: {\n\t\t\t\t\t\t\ttype: 'object',\n\t\t\t\t\t\t\tproperties: {\n\t\t\t\t\t\t\t\ticon: {\n\t\t\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcategory: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tisGlobal: {\n\t\t\tdefault: false,\n\t\t\tschema: {\n\t\t\t\ttype: 'boolean',\n\t\t\t},\n\t\t},\n\t\tzoneId: {\n\t\t\tdefault: '',\n\t\t\tschema: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t},\n\t},\n\tstyles,\n\tview,\n});\n","import {t} from 'sn-translate';\nimport {\n\tCLOSE_WINDOW,\n\tTOGGLE_MINIMIZE_STATE,\n\tTOGGLE_OVERFLOW_POPOVER,\n\tSET_OVERFLOW_BUTTON_REF,\n\tUPDATE_MINIMIZED_TARGET_POSITION,\n} from '../utilities/actions';\nimport {\n\tcomputeZones,\n\tisTruncated,\n\thandleTooltipCheck,\n} from './bottomToolbar.utils.js';\nimport '@servicenow/now-popover';\nimport '@servicenow/now-tooltip';\nimport '@servicenow/now-loader';\nimport './sn-overflow-popover';\n\nconst updateButtonPosition = (\n\tel,\n\twindowIdOrWindows,\n\tdispatch,\n\toverflow = false,\n) => {\n\trequestAnimationFrame(() => {\n\t\tconst selector = overflow ? 'button' : 'now-button';\n\t\tconst targetButton = el.querySelector(selector) || el;\n\t\tif (!targetButton) {\n\t\t\treturn;\n\t\t}\n\t\tconst rect = targetButton.getBoundingClientRect();\n\t\tconst rectData = {\n\t\t\ttop: rect.top,\n\t\t\tleft: rect.left,\n\t\t\twidth: rect.width,\n\t\t\theight: rect.height,\n\t\t};\n\n\t\tif (overflow) {\n\t\t\twindowIdOrWindows.forEach((windowConfig) => {\n\t\t\t\tdispatch(UPDATE_MINIMIZED_TARGET_POSITION, {\n\t\t\t\t\twindowId: windowConfig.id,\n\t\t\t\t\trect: rectData,\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\tdispatch(UPDATE_MINIMIZED_TARGET_POSITION, {\n\t\t\t\twindowId: windowIdOrWindows,\n\t\t\t\trect: rectData,\n\t\t\t});\n\t\t}\n\t});\n};\n\n// Per-zone overflow chip with popover\nconst ZoneOverflowButton = ({\n\tcount,\n\twindows,\n\tisGlobal,\n\tzoneId,\n\tstate,\n\tdispatch,\n}) => {\n\tif (!count || count <= 0 || !windows || windows.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst isOpen = state.openedOverflowZone === zoneId;\n\n\treturn (\n\t\t<now-popover\n\t\t\topened={isOpen}\n\t\t\tpositioning-to-trigger=\"auto\"\n\t\t\toffset={8}\n\t\t\tmanage-opened\n\t\t\thide-tail\n\t\t\tappend-to-meta={{id: `overflow-popover-${zoneId}`}}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName=\"window-button overflow\"\n\t\t\t\tslot=\"trigger\"\n\t\t\t\thook-insert={(vnode) => {\n\t\t\t\t\tconst el = vnode.elm;\n\t\t\t\t\tconst button = el.querySelector('button');\n\t\t\t\t\tconst tooltip = el.querySelector('now-tooltip');\n\t\t\t\t\tif (button && tooltip) {\n\t\t\t\t\t\ttooltip.targetRef = button;\n\t\t\t\t\t\tdispatch(SET_OVERFLOW_BUTTON_REF, {zoneId, buttonRef: button});\n\t\t\t\t\t}\n\t\t\t\t\tupdateButtonPosition(el, windows, dispatch, true);\n\t\t\t\t}}\n\t\t\t\thook-update={(oldVnode, vnode) => {\n\t\t\t\t\tupdateButtonPosition(vnode.elm, windows, dispatch, true);\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName=\"-secondary -md\"\n\t\t\t\t\tid={`overflow-button-${zoneId}`}\n\t\t\t\t\ton-click={() => {\n\t\t\t\t\t\tdispatch(TOGGLE_OVERFLOW_POPOVER, {zoneId});\n\t\t\t\t\t}}\n\t\t\t\t\ton-keydown={(e) => {\n\t\t\t\t\t\tif (e.key === 'Enter' || e.key === ' ') {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tdispatch(TOGGLE_OVERFLOW_POPOVER, {zoneId});\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\taria-expanded={isOpen}\n\t\t\t\t>\n\t\t\t\t\t<div className=\"button-content\">\n\t\t\t\t\t\t<div className=\"button-label\">\n\t\t\t\t\t\t\t<div class={{'label-text': true}}>{`+${count}`}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</button>\n\t\t\t\t<now-tooltip content={t('{0} more', String(count))} />\n\t\t\t</div>\n\t\t\t<sn-overflow-popover\n\t\t\t\tslot=\"content\"\n\t\t\t\twindows={windows}\n\t\t\t\tis-global={isGlobal}\n\t\t\t\tzone-id={zoneId}\n\t\t\t/>\n\t\t</now-popover>\n\t);\n};\n\nconst MinimizedButtonView = ({windowConfig, dispatch}) => {\n\tconst headingLabelText =\n\t\twindowConfig.minimizedTitle || windowConfig.headingLabel || t('No Title');\n\tconst hasHeaderIcon =\n\t\twindowConfig.headerIcon?.icon &&\n\t\twindowConfig.headerIcon?.icon !== null &&\n\t\twindowConfig.headerIcon?.icon !== '';\n\tconst isDirty = windowConfig.component?.isDirty;\n\tconst buttonId = `window-button-${windowConfig.id.replace(/~/g, '')}`;\n\tconst tooltipContent = t('Open {0}', windowConfig.headingLabel);\n\treturn (\n\t\t<div\n\t\t\tclassName=\"window-button\"\n\t\t\thook-insert={(vnode) => {\n\t\t\t\tconst el = vnode.elm;\n\t\t\t\tconst button = el.querySelector('button');\n\t\t\t\tconst tooltip = el.querySelector('now-tooltip');\n\t\t\t\tif (button && tooltip) {\n\t\t\t\t\ttooltip.targetRef = button;\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\tconst truncated = isTruncated(button);\n\t\t\t\t\t\tif (!truncated && tooltip.content) {\n\t\t\t\t\t\t\ttooltip.content = null;\n\t\t\t\t\t\t} else if (truncated && !tooltip.content) {\n\t\t\t\t\t\t\ttooltip.content = tooltipContent;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tupdateButtonPosition(el, windowConfig.id, dispatch);\n\t\t\t}}\n\t\t\thook-update={(oldVnode, vnode) => {\n\t\t\t\tupdateButtonPosition(vnode.elm, windowConfig.id, dispatch);\n\t\t\t}}\n\t\t>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName={`-${windowConfig.isGlobalWindow ? 'primary' : 'secondary'} -md`}\n\t\t\t\tid={buttonId}\n\t\t\t\ton-mouseenter={(e) => handleTooltipCheck(e, tooltipContent)}\n\t\t\t\ton-focusin={(e) => handleTooltipCheck(e, tooltipContent)}\n\t\t\t\ton-click={() => {\n\t\t\t\t\tconsole.info('Window Clicked', {dispatch, windowConfig});\n\t\t\t\t\tdispatch(TOGGLE_MINIMIZE_STATE, {windowConfig});\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div className=\"button-content\">\n\t\t\t\t\t<div className=\"button-icons\">\n\t\t\t\t\t\t{isDirty ? (\n\t\t\t\t\t\t\t<now-icon icon=\"dirty-indicator-fill\" size=\"sm\" id=\"dirty-icon\" />\n\t\t\t\t\t\t) : null}\n\n\t\t\t\t\t\t{hasHeaderIcon ? (\n\t\t\t\t\t\t\t<now-icon icon={windowConfig.headerIcon?.icon} size=\"md\" />\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"button-label\">\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t'label-text': true,\n\t\t\t\t\t\t\t\t'has-icon': hasHeaderIcon,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{headingLabelText}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{windowConfig.category && windowConfig.category !== '' ? (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t\tsubtext: true,\n\t\t\t\t\t\t\t\t\t'has-icon': hasHeaderIcon,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{windowConfig.category}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{windowConfig.canClose ? (\n\t\t\t\t\t\t<div className=\"window-close-button\">\n\t\t\t\t\t\t\t<now-button-iconic\n\t\t\t\t\t\t\t\tbare\n\t\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\t\thidePadding\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\ticon=\"close-fill\"\n\t\t\t\t\t\t\t\tconfigAria={{\n\t\t\t\t\t\t\t\t\tbutton: {\n\t\t\t\t\t\t\t\t\t\t'aria-label': t('Close'),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\ttooltip-content={t('Close')}\n\t\t\t\t\t\t\t\ton-click={(e) => {\n\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\tdispatch(CLOSE_WINDOW, {windowConfig});\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : null}\n\t\t\t\t</div>\n\t\t\t</button>\n\t\t\t<now-tooltip content={tooltipContent} />\n\t\t</div>\n\t);\n};\n\n// Track previous toolbar state\nlet prevToolbarOpen = false;\nconst TOOLBAR_HEIGHT = '56px';\n\nexport default (state, dispatch, host) => {\n\tconst {properties} = state;\n\tconst {\n\t\twindowsState,\n\t\thasSlottedContent,\n\t\tglobalMinimizedWindows,\n\t\tscopedMinimizedWindows,\n\t} = properties;\n\n\tconst leftDockOpen = windowsState.leftDockId !== null;\n\tconst rightDockOpen = windowsState.rightDockId !== null;\n\tconst bottomDockOpen = windowsState.bottomDockId !== null;\n\n\tconst result = computeZones(\n\t\tglobalMinimizedWindows,\n\t\tscopedMinimizedWindows,\n\t\tproperties.browserDimensions?.width ??\n\t\t\t(typeof window !== 'undefined' ? window.innerWidth : 0),\n\t\tproperties.zone3Width ?? 0,\n\t);\n\n\tconst {\n\t\tvisible1,\n\t\tvisible2,\n\t\toverflowCount1,\n\t\toverflowCount2,\n\t\toverflowWindows1,\n\t\toverflowWindows2,\n\t\tshowDivider,\n\t\tuseBalancedSizing,\n\t} = result;\n\n\tconst isToolbarOpen =\n\t\tscopedMinimizedWindows.length > 0 ||\n\t\tglobalMinimizedWindows.length > 0 ||\n\t\tproperties.hasSlottedContent ||\n\t\thasSlottedContent;\n\n\t// Dispatch event if toolbar visibility changed\n\tif (prevToolbarOpen !== isToolbarOpen) {\n\t\tdispatch('WM_BOTTOM_TOOLBAR_VISIBILITY_CHANGED', {\n\t\t\tisOpen: isToolbarOpen,\n\t\t\theight: isToolbarOpen ? TOOLBAR_HEIGHT : '0px',\n\t\t});\n\t\tprevToolbarOpen = isToolbarOpen;\n\t}\n\n\tconst handleKeyboardNavigation = (event) => {\n\t\tconst {key} = event;\n\n\t\tconst path = event.composedPath();\n\t\tconst currentItem = path.find(\n\t\t\t(el) => el.tagName === 'BUTTON' || el.hasAttribute('tabindex'),\n\t\t);\n\n\t\tconst toolbar = currentItem.closest('.sn-window-manager-toolbar');\n\t\tif (!toolbar) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Filter out icon buttons\n\t\tconst tabbableElements = Array.from(\n\t\t\ttoolbar.querySelectorAll('.window-button > button'),\n\t\t);\n\n\t\tconst currentIndex = tabbableElements.indexOf(currentItem);\n\t\tif (currentIndex === -1) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet nextIndex = currentIndex;\n\n\t\tif (key === 'ArrowLeft' || key === 'ArrowUp') {\n\t\t\tnextIndex =\n\t\t\t\tcurrentIndex > 0 ? currentIndex - 1 : tabbableElements.length - 1;\n\t\t} else if (key === 'ArrowRight' || key === 'ArrowDown') {\n\t\t\tnextIndex =\n\t\t\t\tcurrentIndex < tabbableElements.length - 1 ? currentIndex + 1 : 0;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\ttabbableElements[nextIndex]?.focus();\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclass={{\n\t\t\t\t'is-rtl': document.dir === 'rtl',\n\t\t\t\topened: isToolbarOpen,\n\t\t\t\t'sn-window-manager-toolbar': true,\n\t\t\t\t'left-dock-open': leftDockOpen,\n\t\t\t\t'right-dock-open': rightDockOpen,\n\t\t\t\t'bottom-dock-open': bottomDockOpen,\n\t\t\t}}\n\t\t\tstyle={{\n\t\t\t\t'--zone3-width': `${properties.zone3Width || 0}px`,\n\t\t\t}}\n\t\t\trole=\"toolbar\"\n\t\t\ton-keydown={handleKeyboardNavigation}\n\t\t>\n\t\t\t<div\n\t\t\t\tclass={{\n\t\t\t\t\t'toolbar-zone': true,\n\t\t\t\t\t'minimization-zone': true,\n\t\t\t\t\t'fluid-sizing': true,\n\t\t\t\t\tbalanced: useBalancedSizing,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t'toolbar-zone': true,\n\t\t\t\t\t\tzone1: true,\n\t\t\t\t\t\tempty: visible1.length === 0 && overflowCount1 === 0,\n\t\t\t\t\t\tbalanced: useBalancedSizing,\n\t\t\t\t\t\t'fluid-sizing': true,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{visible1.map((windowConfig) => (\n\t\t\t\t\t\t<MinimizedButtonView\n\t\t\t\t\t\t\tkey={windowConfig.id}\n\t\t\t\t\t\t\twindowConfig={windowConfig}\n\t\t\t\t\t\t\tdispatch={dispatch}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t\t<ZoneOverflowButton\n\t\t\t\t\t\tcount={overflowCount1}\n\t\t\t\t\t\twindows={overflowWindows1}\n\t\t\t\t\t\tisGlobal={true}\n\t\t\t\t\t\tzoneId=\"zone1\"\n\t\t\t\t\t\tstate={state}\n\t\t\t\t\t\tdispatch={dispatch}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{showDivider ? <div className=\"zone-divider\" /> : null}\n\n\t\t\t\t<div\n\t\t\t\t\tclass={{\n\t\t\t\t\t\t'toolbar-zone': true,\n\t\t\t\t\t\tzone2: true,\n\t\t\t\t\t\tempty: visible2.length === 0 && overflowCount2 === 0,\n\t\t\t\t\t\tbalanced: useBalancedSizing,\n\t\t\t\t\t\t'fluid-sizing': true,\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t{visible2.map((windowConfig) => (\n\t\t\t\t\t\t<MinimizedButtonView\n\t\t\t\t\t\t\tkey={windowConfig.id}\n\t\t\t\t\t\t\twindowConfig={windowConfig}\n\t\t\t\t\t\t\tdispatch={dispatch}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t\t<ZoneOverflowButton\n\t\t\t\t\t\tcount={overflowCount2}\n\t\t\t\t\t\twindows={overflowWindows2}\n\t\t\t\t\t\tisGlobal={false}\n\t\t\t\t\t\tzoneId=\"zone2\"\n\t\t\t\t\t\tstate={state}\n\t\t\t\t\t\tdispatch={dispatch}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<div className=\"toolbar-zone zone3\">\n\t\t\t\t<now-loader id=\"reflow-loader\"></now-loader>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import {actionTypes} from '@servicenow/ui-core';\nimport {debounce} from '@devsnc/snowdash';\nimport '@servicenow/now-loader';\nimport {\n\tSCREEN_CHANGED,\n\tUPDATE_BOTTOM_TOOLBAR_ELEMENTS,\n\tTOGGLE_OVERFLOW_POPOVER,\n\tSET_OVERFLOW_BUTTON_REF,\n} from '../utilities/actions';\n\nconst {\n\tCOMPONENT_DOM_TREE_READY,\n\tCOMPONENT_PROPERTY_CHANGED,\n\tCOMPONENT_DISCONNECTED,\n} = actionTypes;\n\nconst measureZone3Width = (hoistTargetElem) => {\n\tif (!hoistTargetElem) {\n\t\treturn 0;\n\t}\n\treturn hoistTargetElem.offsetWidth || 0;\n};\n\nconst resizeUpdateZone3Width = debounce((hoistTargetElem, updateProperties) => {\n\t// Make zone 3 take up the full width to trigger reflow of internal elements\n\thoistTargetElem.style.width = '100%';\n\n\t// Hide all the child nodes of zone 3\n\thoistTargetElem.childNodes.forEach((child) => {\n\t\t// Start showing the loader telling the user we are reflowing zone 3\n\t\tif (child.id !== 'reflow-loader') {\n\t\t\tchild.style.visibility = 'hidden';\n\t\t} else {\n\t\t\tchild.style.display = 'flex';\n\t\t\tchild.style.position = 'fixed';\n\t\t\tchild.style.right = '20px';\n\t\t}\n\t});\n\n\t// Need to wait for the reflow to complete\n\tsetTimeout(() => {\n\t\t// Reset zone 3 back to the normal width\n\t\thoistTargetElem.style.width = '';\n\n\t\t// Loop through all the child nodes of the hoist target element and set their visibility to visible\n\t\thoistTargetElem.childNodes.forEach((child) => {\n\t\t\t// Go back to hiding the reflow loader\n\t\t\tif (child.id !== 'reflow-loader') {\n\t\t\t\tchild.style.visibility = 'visible';\n\t\t\t} else {\n\t\t\t\tchild.style.display = 'none';\n\t\t\t}\n\t\t});\n\n\t\t// Recalculate the zone 3 width\n\t\tupdateProperties({zone3Width: measureZone3Width(hoistTargetElem)});\n\t}, 200);\n}, 300);\n\nconst filterMinimizedWindows = (\n\tminimizedWindowList,\n\twindowsList,\n\tscreenInfo,\n) => {\n\tconst globalMinimizedWindows = [];\n\tconst scopedMinimizedWindows = [];\n\n\tminimizedWindowList.forEach((windowId) => {\n\t\tconst windowConfig = windowsList.find((window) => window.id === windowId);\n\t\tif (windowConfig) {\n\t\t\tif (windowConfig.isGlobalWindow) {\n\t\t\t\tglobalMinimizedWindows.push(windowConfig);\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\twindowConfig.screenKey === screenInfo.screenKey &&\n\t\t\t\t\twindowConfig.experienceId === screenInfo.experienceId\n\t\t\t\t) {\n\t\t\t\t\tscopedMinimizedWindows.push(windowConfig);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn {globalMinimizedWindows, scopedMinimizedWindows};\n};\n\nexport const actionHandlers = {\n\t[COMPONENT_DOM_TREE_READY]: (coeffects) => {\n\t\tconst {host, updateProperties} = coeffects;\n\t\tconst mainToolbarElement = host.shadowRoot.querySelector(\n\t\t\t'.sn-window-manager-toolbar',\n\t\t);\n\t\tconst hoistTargetElem = mainToolbarElement.querySelector(\n\t\t\t'.toolbar-zone.zone3',\n\t\t);\n\t\tconst callback = (mutationsList) => {\n\t\t\tconst isCurrentSelectedScreen = (child) => {\n\t\t\t\tconst {screenKey: currentScreenKey, experienceId: currentExperienceId} =\n\t\t\t\t\twindow.nowWindowManager?.screenInfo;\n\n\t\t\t\treturn (\n\t\t\t\t\tchild?.sourceElement?.experienceId === currentExperienceId &&\n\t\t\t\t\tchild?.sourceElement?.activeHoistedContent === currentScreenKey\n\t\t\t\t);\n\t\t\t};\n\n\t\t\tfor (const mutation of mutationsList) {\n\t\t\t\tif (mutation.type === 'childList') {\n\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\tlet isSlottedElemVisible = false;\n\n\t\t\t\t\t\t// Check if any child elements are visible\n\t\t\t\t\t\thoistTargetElem.childNodes.forEach((child) => {\n\t\t\t\t\t\t\t// Check if the slotted element is visible\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tchild.nodeType === Node.ELEMENT_NODE &&\n\t\t\t\t\t\t\t\tisCurrentSelectedScreen(child)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tconst computedStyle = window.getComputedStyle(child);\n\t\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t\tcomputedStyle.display !== 'none' &&\n\t\t\t\t\t\t\t\t\tcomputedStyle.visibility !== 'hidden'\n\t\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\t\tisSlottedElemVisible = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Ensure that child components are taking up the full width of zone 3\n\t\t\t\t\t\t\tif (child.id !== 'reflow-loader') {\n\t\t\t\t\t\t\t\tchild.style.width = '100%';\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Wait for the child component to be fully loaded before measuring the zone 3 width\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tupdateProperties({\n\t\t\t\t\t\t\t\t\tzone3Width: measureZone3Width(hoistTargetElem),\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}, 750);\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst zone3Width = isSlottedElemVisible\n\t\t\t\t\t\t\t? measureZone3Width(hoistTargetElem)\n\t\t\t\t\t\t\t: 0;\n\n\t\t\t\t\t\tupdateProperties({\n\t\t\t\t\t\t\thasSlottedContent: isSlottedElemVisible,\n\t\t\t\t\t\t\tzone3Width,\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst observer = new MutationObserver(callback);\n\n\t\tconst config = {childList: true}; // Only watch for direct children being added or removed\n\n\t\t// Start observing the target node for configured mutations\n\t\tobserver.observe(hoistTargetElem, config);\n\n\t\t// Store observer for cleanup\n\t\thost._zone3MutationObserver = observer;\n\n\t\tif (window.ux_globals) {\n\t\t\tif (!window.ux_globals.__windowManagerConfig) {\n\t\t\t\twindow.ux_globals.__windowManagerConfig = {};\n\t\t\t}\n\t\t\twindow.ux_globals.__windowManagerConfig.zoneThreeHoistTarget =\n\t\t\t\thoistTargetElem;\n\t\t}\n\n\t\t// Store ref and set initial width measurement\n\t\tupdateProperties({\n\t\t\tmainToolbarElement,\n\t\t\tzone3Width: hoistTargetElem ? hoistTargetElem.offsetWidth || 0 : 0,\n\t\t});\n\t},\n\t[UPDATE_BOTTOM_TOOLBAR_ELEMENTS]: (coeffects) => {\n\t\tconst {host, updateProperties, action} = coeffects;\n\t\tconst {payload} = action;\n\n\t\tconst mainToolbarElement = host.shadowRoot.querySelector(\n\t\t\t'.sn-window-manager-toolbar',\n\t\t);\n\t\tconst hoistTargetElem = mainToolbarElement.querySelector(\n\t\t\t'.toolbar-zone.zone3',\n\t\t);\n\n\t\tconst hoistedElements = hoistTargetElem.querySelectorAll('seismic-hoist');\n\t\tlet hasHoistedElement = false;\n\n\t\thoistedElements.forEach((elem) => {\n\t\t\tconst elemHoistInfo = elem.sourceElement.activeHoistedContent;\n\t\t\tif (elemHoistInfo && elemHoistInfo === payload.screenKey) {\n\t\t\t\t// This element belongs to the selected screen, ensure it's visible\n\t\t\t\telem.style.width = '';\n\t\t\t\telem.style.display = 'initial';\n\t\t\t\thasHoistedElement = true;\n\t\t\t} else {\n\t\t\t\t// This element does not belong to the selected screen, hide it\n\t\t\t\tif (elem.offsetWidth !== 0) {\n\t\t\t\t\telem.style.width = elem.offsetWidth + 'px'; // Maintain width to avoid layout shift\n\t\t\t\t\telem.style.display = 'none';\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tconst zone3Width = hasHoistedElement\n\t\t\t? measureZone3Width(hoistTargetElem)\n\t\t\t: 0;\n\t\tupdateProperties({\n\t\t\thasSlottedContent: hasHoistedElement,\n\t\t\tzone3Width,\n\t\t});\n\t},\n\t[TOGGLE_OVERFLOW_POPOVER]: ({action, state, updateState}) => {\n\t\tconst {zoneId} = action.payload;\n\t\tconst {openedOverflowZone} = state;\n\n\t\tupdateState({\n\t\t\topenedOverflowZone: openedOverflowZone === zoneId ? '' : zoneId,\n\t\t});\n\t},\n\t// Store overflow button ref for focus management\n\t[SET_OVERFLOW_BUTTON_REF]: ({action, state, updateState}) => {\n\t\tconst {zoneId, buttonRef} = action.payload;\n\t\tconst {overflowButtonRefs = {}} = state;\n\n\t\tupdateState({\n\t\t\toverflowButtonRefs: {\n\t\t\t\t...overflowButtonRefs,\n\t\t\t\t[zoneId]: buttonRef,\n\t\t\t},\n\t\t});\n\t},\n\t// Listen to popover close from now-popover (click-away)\n\t['NOW_POPOVER#OPENED_SET']: ({action, updateState, state}) => {\n\t\tconst {id} = action.meta.appended;\n\t\tconst {value, actionSource} = action.payload;\n\t\tconst {openedOverflowZone, overflowButtonRefs = {}} = state;\n\n\t\t// Extract zone from id (e.g., 'overflow-popover-zone1' -> 'zone1')\n\t\tconst zoneFromPopover = id?.replace('overflow-popover-', '');\n\n\t\t// Only clear state if THIS popover is closing AND it matches our current zone\n\t\t// This prevents zone1 closing from clearing zone2 that just opened\n\t\tif (!value && zoneFromPopover === openedOverflowZone) {\n\t\t\tupdateState({openedOverflowZone: ''});\n\n\t\t\t// Restore focus to trigger button if closed via keyboard (Tab or Escape)\n\t\t\tif (actionSource === 'tab-press' || actionSource === 'escape-press') {\n\t\t\t\tconst buttonRef = overflowButtonRefs[zoneFromPopover];\n\n\t\t\t\tif (buttonRef && buttonRef.isConnected) {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (buttonRef.isConnected) {\n\t\t\t\t\t\t\tbuttonRef.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t// Close popover when properties that affect overflow calculation change (reflow detection)\n\t[COMPONENT_PROPERTY_CHANGED]: (coeffects) => {\n\t\tconst {action, updateProperties, updateState, state, host} = coeffects;\n\t\tconst {name, value, previousValue} = action.payload;\n\t\tconst {properties} = state;\n\n\t\tif (name === 'browserDimensions') {\n\t\t\tconst widthChanged = value?.width !== previousValue?.width;\n\n\t\t\tif (widthChanged) {\n\t\t\t\tconst {openedOverflowZone, properties} = state;\n\t\t\t\tconst {mainToolbarElement} = properties || {};\n\n\t\t\t\tif (openedOverflowZone) {\n\t\t\t\t\tupdateState({openedOverflowZone: ''});\n\t\t\t\t}\n\n\t\t\t\tconst hoistTargetElem = mainToolbarElement?.querySelector(\n\t\t\t\t\t'.toolbar-zone.zone3',\n\t\t\t\t);\n\n\t\t\t\tif (value?.width > previousValue?.width) {\n\t\t\t\t\tresizeUpdateZone3Width(\n\t\t\t\t\t\thoistTargetElem,\n\t\t\t\t\t\tupdateProperties,\n\t\t\t\t\t\tproperties.zone3Width,\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\t\t\tconst width = hoistTargetElem\n\t\t\t\t\t\t\t\t? hoistTargetElem.offsetWidth || 0\n\t\t\t\t\t\t\t\t: 0;\n\t\t\t\t\t\t\tupdateProperties({zone3Width: width});\n\t\t\t\t\t\t});\n\t\t\t\t\t}, 50);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (name === 'windowsState') {\n\t\t\tconst {windowsList, windowsState, screenInfo} = properties;\n\t\t\tconst minimizedWindowList = windowsState.minimizedWindows;\n\n\t\t\tconst {globalMinimizedWindows, scopedMinimizedWindows} =\n\t\t\t\tfilterMinimizedWindows(minimizedWindowList, windowsList, screenInfo);\n\n\t\t\tif (\n\t\t\t\tglobalMinimizedWindows.length !==\n\t\t\t\t\tproperties.globalMinimizedWindows.length ||\n\t\t\t\tscopedMinimizedWindows.length !==\n\t\t\t\t\tproperties.scopedMinimizedWindows.length\n\t\t\t) {\n\t\t\t\t// Only update if there's a change in length to avoid infinite loops\n\t\t\t\tupdateProperties({\n\t\t\t\t\tglobalMinimizedWindows,\n\t\t\t\t\tscopedMinimizedWindows,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tname === 'globalMinimizedWindows' ||\n\t\t\tname === 'scopedMinimizedWindows'\n\t\t) {\n\t\t\tconst newWindowId = value.filter((item) => !previousValue.includes(item));\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (newWindowId && newWindowId.length > 0) {\n\t\t\t\t\tconst newButton = host.shadowRoot.querySelector(\n\t\t\t\t\t\t`#window-button-${newWindowId[0].id.replace(/~/g, '')}`,\n\t\t\t\t\t);\n\t\t\t\t\tif (newButton) {\n\t\t\t\t\t\tnewButton.focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, 360);\n\t\t}\n\n\t\tif (name === 'screenInfo') {\n\t\t\tconst {windowsList, windowsState} = properties;\n\t\t\tconst minimizedWindowList = windowsState.minimizedWindows;\n\n\t\t\tconst {globalMinimizedWindows, scopedMinimizedWindows} =\n\t\t\t\tfilterMinimizedWindows(minimizedWindowList, windowsList, value);\n\n\t\t\tupdateProperties({\n\t\t\t\tglobalMinimizedWindows,\n\t\t\t\tscopedMinimizedWindows,\n\t\t\t});\n\t\t}\n\t},\n\t[COMPONENT_DISCONNECTED]: ({host}) => {\n\t\tif (host._zone3MutationObserver) {\n\t\t\thost._zone3MutationObserver.disconnect();\n\t\t\thost._zone3MutationObserver = null;\n\t\t}\n\t},\n};\n","import {createCustomElement} from '@servicenow/ui-core';\nimport styles from './styles.scss';\nimport view from './bottomToolbar.view';\nimport {actionHandlers} from './bottomToolbar.effects';\n\ncreateCustomElement('sn-window-manager-bottom-toolbar', {\n\tview,\n\tstyles,\n\tproperties: {\n\t\twindowsList: {\n\t\t\tdefault: [],\n\t\t\tschema: {type: 'array'},\n\t\t},\n\t\twindowsState: {\n\t\t\tdefault: {\n\t\t\t\tleftDockId: null,\n\t\t\t\trightDockId: null,\n\t\t\t\tbottomDockId: null,\n\t\t\t\tactiveWindowId: null,\n\t\t\t\tminimizedWindows: [],\n\t\t\t\tmodalWindows: [],\n\t\t\t},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\tbrowserDimensions: {\n\t\t\tdefault: {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 0,\n\t\t\t},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\tglobalMinimizedWindows: {\n\t\t\tdefault: [],\n\t\t\tschema: {type: 'array'},\n\t\t},\n\t\tscopedMinimizedWindows: {\n\t\t\tdefault: [],\n\t\t\tschema: {type: 'array'},\n\t\t},\n\t\tportalType: {\n\t\t\tdefault: 'unified-navigation',\n\t\t\tschema: {type: 'string'},\n\t\t},\n\t\tmainToolbarElement: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: 'object'},\n\t\t\tshouldRenderWhenSet: false,\n\t\t},\n\t\thasSlottedContent: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tscreenInfo: {\n\t\t\tdefault: {\n\t\t\t\tscreenKey: null,\n\t\t\t\tinstanceId: null,\n\t\t\t\texperienceId: null,\n\t\t\t},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\topenedOverflowZone: {\n\t\t\tdefault: '',\n\t\t\tschema: {type: 'string'},\n\t\t},\n\t\tzone3Width: {\n\t\t\tdefault: 0,\n\t\t\tschema: {type: 'number'},\n\t\t},\n\t\toverflowButtonRefs: {\n\t\t\tdefault: {},\n\t\t\tschema: {type: 'object'},\n\t\t\tshouldRenderWhenSet: false,\n\t\t},\n\t},\n\tactionHandlers: actionHandlers,\n});\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({  });","import {createCustomElement} from '@servicenow/ui-core';\nimport snabbdom, {Fragment} from '@servicenow/ui-renderer-snabbdom';\nimport '@servicenow/now-button';\nimport '@servicenow/now-dropdown';\nimport {actionTypes} from '@servicenow/ui-core';\nimport {SET_HEADER_BUTTONS} from '../src/sn-window-manager/utilities/actions';\nimport {t} from 'sn-translate';\n\nexport const view = (state, dispatch) => {\n\tconst {properties} = state;\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<div className=\"test-content\">\n\t\t\t\t<h1 align=\"center\">Header Button Example View</h1>\n\n\t\t\t\t<div>\n\t\t\t\t\t<p align=\"center\">\n\t\t\t\t\t\tThis is an example of how to setup and use buttons in the window\n\t\t\t\t\t\theader.\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</Fragment>\n\t);\n};\n\nconst tooltipLabel = t('Pin Menu');\n\nconst pinDropDownView = () => (\n\t<now-dropdown\n\t\tid=\"pin-dropdown\"\n\t\titems={[\n\t\t\t{id: 'top-left', label: t('Top Left')},\n\t\t\t{id: 'top-right', label: t('Top Right')},\n\t\t\t{id: 'bottom-left', label: t('Bottom Left')},\n\t\t\t{id: 'bottom-right', label: t('Bottom Right')},\n\t\t]}\n\t\tshowPadding={false}\n\t\t// variant=\"primary\"\n\t\thideCaret={true}\n\t\thideLabel={true}\n\t\ttooltip-content={tooltipLabel}\n\t\ticon=\"ellipsis-vertical-outline\"\n\t\tconfig-aria={{'aria-label': tooltipLabel}}\n\t/>\n);\n\ncreateCustomElement('header-button-example', {\n\trenderer: {\n\t\ttype: snabbdom,\n\t\tview,\n\t},\n\tproperties: {\n\t\t// dialogSize and dialogLocation will get passed down from sn-window\n\t\tdialogSize: {\n\t\t\tdefault: {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 0,\n\t\t\t},\n\t\t\tschema: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t},\n\t\tdialogLocation: {\n\t\t\tdefault: {\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0,\n\t\t\t},\n\t\t\tschema: {\n\t\t\t\ttype: 'object',\n\t\t\t},\n\t\t},\n\t},\n\tactionHandlers: {\n\t\t[actionTypes.COMPONENT_BOOTSTRAPPED]: ({dispatch, state}) => {\n\t\t\t// This is where you would set up your header buttons\n\n\t\t\t// the drop down element which will be put in the window header\n\t\t\tconst pinningDropDown = pinDropDownView();\n\t\t\tconst tooltipLabel = t('Open in new tab');\n\t\t\t// this defines the buttons that will be added to the header\n\t\t\tconst customHeaderButtons = [\n\t\t\t\t// button defined just by JSON\n\t\t\t\t{\n\t\t\t\t\ttype: 'button',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tid: 'open-link',\n\t\t\t\t\t\t// label: tooltipLabel,\n\t\t\t\t\t\ttooltipContent: tooltipLabel,\n\t\t\t\t\t\tconfigAria: {'aria-label': tooltipLabel},\n\t\t\t\t\t\ticon: 'open-link-right-outline',\n\t\t\t\t\t\t// variant: 'primary',\n\t\t\t\t\t\tonClick: () => {\n\t\t\t\t\t\t\tdispatch('OPEN_IN_NEW_TAB', {\n\t\t\t\t\t\t\t\turl: '/incident.do?sys_id=1234567890abcdef',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t// button that is a dropdown element managed by this view\n\t\t\t\t{\n\t\t\t\t\ttype: 'element',\n\t\t\t\t\telement: pinningDropDown,\n\t\t\t\t},\n\t\t\t];\n\n\t\t\t// tell sn-window to add the buttons to the header\n\t\t\tdispatch(SET_HEADER_BUTTONS, {\n\t\t\t\theaderButtons: customHeaderButtons,\n\t\t\t});\n\n\t\t\t// for now dropdown to work, we need to add an event listener to the dropdown\n\t\t\t// this is a hack to make sure the dropdown is in the DOM before we add the event listener\n\t\t\tsetTimeout(() => {\n\t\t\t\tpinningDropDown.elm.addEventListener(\n\t\t\t\t\t'NOW_DROPDOWN#ITEM_CLICKED',\n\t\t\t\t\t(event) => {\n\t\t\t\t\t\tconst {payload} = event.detail;\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\titem: {id},\n\t\t\t\t\t\t} = payload;\n\t\t\t\t\t\tdispatch('PIN_TO_CORNER', id);\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t}, 100);\n\t\t},\n\t\t['PIN_TO_CORNER']: (coeffects) => {\n\t\t\tconst {state, action, dispatch} = coeffects;\n\t\t\tconst {payload} = action;\n\n\t\t\t// handle pinning to corners\n\t\t\tswitch (payload) {\n\t\t\t\tcase 'top-left':\n\t\t\t\t\tdispatch('UPDATE_FLOATING_MENU_LOCATION', {\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'top-right':\n\t\t\t\t\tdispatch('UPDATE_FLOATING_MENU_LOCATION', {\n\t\t\t\t\t\ttop: 0,\n\t\t\t\t\t\tleft: window.innerWidth - state.properties.dialogSize.width,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'bottom-left':\n\t\t\t\t\tdispatch('UPDATE_FLOATING_MENU_LOCATION', {\n\t\t\t\t\t\ttop: window.innerHeight - state.properties.dialogSize.height,\n\t\t\t\t\t\tleft: 0,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'bottom-right':\n\t\t\t\t\tdispatch('UPDATE_FLOATING_MENU_LOCATION', {\n\t\t\t\t\t\ttop: window.innerHeight - state.properties.dialogSize.height,\n\t\t\t\t\t\tleft: window.innerWidth - state.properties.dialogSize.width,\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\t\t['OPEN_IN_NEW_TAB']: (coeffects) => {\n\t\t\tconst {\n\t\t\t\taction: {payload},\n\t\t\t} = coeffects;\n\n\t\t\twindow.open(payload.url, '_blank');\n\t\t},\n\t\t['NOW_DROPDOWN#ITEM_CLICKED']: (coeffects) => {\n\t\t\t// const {action: {payload}, dispatch} = coeffects;\n\t\t\t// const {id} = payload;\n\n\t\t\tconsole.info('NOW_DROPDOWN#ITEM_CLICKED');\n\t\t},\n\t},\n});\n","import '../sn-window';\nimport '@servicenow/now-modal';\nimport './fragments/debug-panel';\nimport {Fragment} from '@servicenow/ui-renderer-snabbdom';\nimport './bottomToolbar';\nimport '../sn-window/';\nimport './fragments/debug-panel';\nimport '../../example/header-button-example';\nimport {\n\tSN_WINDOW_DIALOG_CLOSE_CANCELED,\n\tSN_WINDOW_DIALOG_CLOSE_CONFIRMED,\n} from './utilities/actions';\nimport {t} from 'sn-translate';\n\nexport default (state, dispatch) => {\n\tconst {properties} = state;\n\n\treturn (\n\t\t<Fragment>\n\t\t\t{properties.showCloseConfirmDialog ? (\n\t\t\t\t<now-modal\n\t\t\t\t\topened={true}\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tmanageOpened={true}\n\t\t\t\t\theaderLabel={t('Close Dialog')}\n\t\t\t\t\tcontent={\n\t\t\t\t\t\tproperties.confirmCloseMessage\n\t\t\t\t\t\t\t? properties.confirmCloseMessage\n\t\t\t\t\t\t\t: t(\n\t\t\t\t\t\t\t\t\t'Closing this dialog will cause your changes to be lost. Do you want to continue?',\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\tfooterActions={[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tclickActionType: SN_WINDOW_DIALOG_CLOSE_CONFIRMED,\n\t\t\t\t\t\t\tlabel: t('Continue'),\n\t\t\t\t\t\t\tvariant: 'primary',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tclickActionType: SN_WINDOW_DIALOG_CLOSE_CANCELED,\n\t\t\t\t\t\t\tlabel: t('Cancel'),\n\t\t\t\t\t\t\tvariant: 'secondary',\n\t\t\t\t\t\t},\n\t\t\t\t\t]}\n\t\t\t\t></now-modal>\n\t\t\t) : null}\n\n\t\t\t<sn-window-manager-bottom-toolbar\n\t\t\t\tminimizedWindowList={properties.windowsState.minimizedWindows}\n\t\t\t\twindowsList={properties.windowsList}\n\t\t\t\twindowsState={properties.windowsState}\n\t\t\t\tportalType={properties.portalType}\n\t\t\t\tscreenInfo={properties.screenInfo}\n\t\t\t\tbrowserDimensions={properties.browserDimensions}\n\t\t\t></sn-window-manager-bottom-toolbar>\n\t\t</Fragment>\n\t);\n};\n","import {actionTypes} from '@servicenow/ui-core';\nimport {\n\tCREATE_WINDOW,\n\tCLOSE_WINDOW,\n\tOPEN_WINDOW,\n\tOPEN_DEBUG_WINDOW,\n\tRELAY_MESSAGE,\n\tTOGGLE_MODAL_STATE,\n\tTOGGLE_MINIMIZE_STATE,\n\tCLOSE_DOCK,\n\tUPDATE_BODY_CLASS_NAMES,\n\tCHECK_WINDOW_LOCATIONS,\n\tTOGGLE_DOCK,\n\tSCREEN_CHANGED,\n\tSET_DIRTY_STATE,\n\tFOCUS_WINDOW,\n\tSN_WINDOW_DIALOG_CLOSE_CANCELED,\n\tSN_WINDOW_DIALOG_CLOSE_CONFIRMED,\n\tSET_WINDOW_PROPERTIES,\n\tUPDATE_MINIMIZED_TARGET_POSITION,\n\tSIDEBAR_UNREAD_MESSAGE,\n\tSET_SIDEBAR_CHAT_PRIVATE,\n\tFOCUS_BOTTOM_TOOLBAR_REQUESTED,\n} from './utilities/actions';\n\nimport {\n\tcomponentBootstrap,\n\thandlePropertyChange,\n\thandleDomTreeReady,\n\thandleComponentConnected,\n\thandleCreateWindow,\n\thandleCloseWindow,\n\thandleOpenWindow,\n\thandleModalToggle,\n\thandleSetWindowActive,\n\trelayMessage,\n\topenDebugWindow,\n\thandleToggleMinimize,\n\thandleCloseDock,\n\tupdateBodyClassName,\n\thandleCheckWindowLocations,\n\thandleToggleDock,\n\thandleScreenChanged,\n\thandleSetDirtyState,\n\thandleDialogCloseCancelled,\n\thandleDialogCloseConfirmed,\n\thandleSetWindowProperties,\n\thandleMinimizedTargetPosition,\n\thandleSidebarUnreadMessage,\n\thandleSetSidebarChatPrivate,\n\thandleFocusBottomToolbar,\n\thandlePolarisMenuPinned,\n} from './utilities';\n\nconst {\n\tCOMPONENT_PROPERTY_CHANGED,\n\tCOMPONENT_BOOTSTRAPPED,\n\tCOMPONENT_DOM_TREE_READY,\n\tCOMPONENT_CONNECTED,\n} = actionTypes;\n\nexport const actionHandlers = {\n\t[COMPONENT_BOOTSTRAPPED]: componentBootstrap,\n\t[COMPONENT_PROPERTY_CHANGED]: handlePropertyChange,\n\t[COMPONENT_DOM_TREE_READY]: handleDomTreeReady,\n\t[COMPONENT_CONNECTED]: handleComponentConnected,\n\t[TOGGLE_DOCK]: handleToggleDock,\n\t[TOGGLE_MODAL_STATE]: handleModalToggle,\n\t[TOGGLE_MINIMIZE_STATE]: handleToggleMinimize,\n\t[CREATE_WINDOW]: handleCreateWindow,\n\t[CLOSE_WINDOW]: handleCloseWindow,\n\t[OPEN_WINDOW]: handleOpenWindow,\n\t[OPEN_DEBUG_WINDOW]: openDebugWindow,\n\t[FOCUS_WINDOW]: handleSetWindowActive,\n\t[RELAY_MESSAGE]: relayMessage,\n\t[CLOSE_DOCK]: handleCloseDock,\n\t[UPDATE_BODY_CLASS_NAMES]: updateBodyClassName,\n\t[CHECK_WINDOW_LOCATIONS]: handleCheckWindowLocations,\n\t[SCREEN_CHANGED]: handleScreenChanged,\n\t[SET_DIRTY_STATE]: handleSetDirtyState,\n\t[SET_WINDOW_PROPERTIES]: handleSetWindowProperties,\n\t[SN_WINDOW_DIALOG_CLOSE_CONFIRMED]: handleDialogCloseConfirmed,\n\t[SN_WINDOW_DIALOG_CLOSE_CANCELED]: handleDialogCloseCancelled,\n\t['NOW_MODAL#OPENED_SET']: (coeffects) => {\n\t\tconst {properties, updateProperties} = coeffects;\n\t\tif (properties.showCloseConfirmDialog) {\n\t\t\thandleDialogCloseCancelled(coeffects);\n\t\t}\n\t},\n\t[UPDATE_MINIMIZED_TARGET_POSITION]: handleMinimizedTargetPosition,\n\t[SIDEBAR_UNREAD_MESSAGE]: handleSidebarUnreadMessage,\n\t[SET_SIDEBAR_CHAT_PRIVATE]: handleSetSidebarChatPrivate,\n\t[FOCUS_BOTTOM_TOOLBAR_REQUESTED]: handleFocusBottomToolbar,\n\t['POLARIS_MENU_PINNED']: handlePolarisMenuPinned,\n};\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"deregisterComponent\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__.__esModule\n\t\t\t\t\tif (cjsModule && 'deregisterComponent' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"].deregisterComponent;\n\t\t\t\t\t} else if ('deregisterComponent' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__.deregisterComponent || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"].deregisterComponent;\n\t\t\t\t}, [\"registerComponent\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__.__esModule\n\t\t\t\t\tif (cjsModule && 'registerComponent' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"].registerComponent;\n\t\t\t\t\t} else if ('registerComponent' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__.registerComponent || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"].registerComponent;\n\t\t\t\t}, [\"setActionState\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__.__esModule\n\t\t\t\t\tif (cjsModule && 'setActionState' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"].setActionState;\n\t\t\t\t\t} else if ('setActionState' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__.setActionState || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__[\"default\"].setActionState;\n\t\t\t\t} });","import {actionTypes} from '@servicenow/ui-core';\nimport {\n\tregisterComponent,\n\tderegisterComponent,\n\tsetActionState,\n} from '@servicenow/now-trigger-library';\nimport {getBooleanPreferenceValue, PREFERENCES} from '@devsnc/unav-utils';\nimport {FOCUS_BOTTOM_TOOLBAR_REQUESTED} from '../utilities/actions';\n\nconst {COMPONENT_BOOTSTRAPPED, COMPONENT_DISCONNECTED} = actionTypes;\n\n/**\n * Keyboard shortcuts behavior for Window Manager\n * Registers keyboard shortcuts using registerComponent (matches polaris-app-shell pattern)\n *\n * NOTE: This requires the UXF shortcuts infrastructure (now-trigger-library) to be available.\n * It will not work in the example app environment - testing must be done in Unified Navigation.\n */\nexport default {\n\tname: 'keyboard-shortcuts-behavior',\n\tsetInitialState: () => ({\n\t\tnowTriggerLibRegistrationId: null,\n\t}),\n\tactionHandlers: {\n\t\t/**\n\t\t * Register keyboard shortcuts when component is bootstrapped\n\t\t * Reads configuration from userPreferences (matches polaris-app-shell pattern)\n\t\t */\n\t\t[COMPONENT_BOOTSTRAPPED]: (coeffects) => {\n\t\t\tconst {\n\t\t\t\tproperties: {userPreferences},\n\t\t\t\thost,\n\t\t\t\tupdateState,\n\t\t\t\tdispatch,\n\t\t\t} = coeffects;\n\n\t\t\t// Check if keyboard shortcuts are enabled via user preferences\n\t\t\tconst keyboardShortcutsEnabled = getBooleanPreferenceValue(\n\t\t\t\tuserPreferences,\n\t\t\t\tPREFERENCES.KEYBOARD_SHORTCUTS,\n\t\t\t\ttrue,\n\t\t\t);\n\n\t\t\tif (!keyboardShortcutsEnabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\t// Register component with action map (polaris-app-shell pattern)\n\t\t\t\tconst nowTriggerLibRegistrationId = registerComponent(host, {\n\t\t\t\t\tupdateState,\n\t\t\t\t\tactionMap: {\n\t\t\t\t\t\t[FOCUS_BOTTOM_TOOLBAR_REQUESTED]: () => {\n\t\t\t\t\t\t\t// Dispatch action to focus bottom toolbar\n\t\t\t\t\t\t\tdispatch(FOCUS_BOTTOM_TOOLBAR_REQUESTED, {\n\t\t\t\t\t\t\t\tsource: 'keyboard-shortcut',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\n\t\t\t\t// Enable the shortcut by default\n\t\t\t\tsetActionState(host?.componentId, FOCUS_BOTTOM_TOOLBAR_REQUESTED, true);\n\n\t\t\t\tupdateState({\n\t\t\t\t\tnowTriggerLibRegistrationId,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error(\n\t\t\t\t\t'[WM Shortcuts] Failed to register keyboard shortcuts:',\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Unregister keyboard shortcuts when component is disconnected\n\t\t * Prevents memory leaks\n\t\t */\n\t\t[COMPONENT_DISCONNECTED]: (coeffects) => {\n\t\t\tconst {updateState, state} = coeffects;\n\n\t\t\tif (!state.nowTriggerLibRegistrationId) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tderegisterComponent(state.nowTriggerLibRegistrationId);\n\t\t\t\tupdateState({\n\t\t\t\t\tnowTriggerLibRegistrationId: null,\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\tconsole.error(\n\t\t\t\t\t'[WM Shortcuts] Failed to unregister keyboard shortcuts:',\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t},\n\t},\n};\n","import {createCustomElement} from '@servicenow/ui-core';\nimport styles from './styles.scss';\nimport view from './sn-window-manager.view';\nimport {actionHandlers} from './sn-window-manager.effects';\nimport keyboardShortcutsBehavior from './behaviors/keyboard-shortcuts-behavior';\n\ncreateCustomElement('sn-window-manager', {\n\tview,\n\tstyles,\n\tproperties: {\n\t\tdynamicStyleSheet: {\n\t\t\tshouldRenderWhenSet: false,\n\t\t\tdeepCompare: true,\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['object', 'null']},\n\t\t},\n\t\t// Dimensions of the *entire* window, i.e. browser\n\t\tbrowserDimensions: {\n\t\t\tdefault: {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 0,\n\t\t\t},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\twindowsList: {\n\t\t\tdefault: [],\n\t\t\tschema: {type: 'array'},\n\t\t},\n\t\twindowsState: {\n\t\t\tdefault: {\n\t\t\t\tleftDockId: null,\n\t\t\t\trightDockId: null,\n\t\t\t\tbottomDockId: null,\n\t\t\t\tactiveWindowId: null,\n\t\t\t\tminimizedWindows: [],\n\t\t\t\tminimizedTargetPositions: {},\n\t\t\t\tmodalWindows: [],\n\t\t\t\tcalculatedStyle: {},\n\t\t\t},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\tportalType: {\n\t\t\tdefault: 'unified-navigation',\n\t\t\tschema: {type: 'string'},\n\t\t},\n\t\tunifiedNavComponent: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['object', 'null']},\n\t\t\tshouldRenderWhenSet: false,\n\t\t},\n\t\tuserPreferences: {\n\t\t\tdeepCompare: true,\n\t\t\tdefault: [],\n\t\t\tschema: {\n\t\t\t\ttype: 'array',\n\t\t\t\titems: {\n\t\t\t\t\ttype: 'object',\n\t\t\t\t\tproperties: {\n\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tvalue: {\n\t\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tanimationsDisabled: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tbottomToolbarComponent: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: 'object'},\n\t\t\tshouldRenderWhenSet: false,\n\t\t},\n\t\tscreenInfo: {\n\t\t\tdefault: {\n\t\t\t\tscreenKey: null,\n\t\t\t\tinstanceId: null,\n\t\t\t\texperienceId: null,\n\t\t\t},\n\t\t\tschema: {type: 'object'},\n\t\t},\n\t\tshowCloseConfirmDialog: {\n\t\t\tdefault: false,\n\t\t\tschema: {type: 'boolean'},\n\t\t},\n\t\tclosingWindowId: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['string', 'null']},\n\t\t},\n\t\tconfirmCloseMessage: {\n\t\t\tdefault: null,\n\t\t\tschema: {type: ['string', 'null']},\n\t\t},\n\t},\n\tactionHandlers: actionHandlers,\n\tbehaviors: [keyboardShortcutsBehavior],\n});\n","import * as exports from '../index.js';\nwindow.__TECTONIC__$servicenow_sn_window_manager=exports;\nexport * from '../index.js';\n\n"],"names":["module","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","id","_k","push","___CSS_LOADER_EXPORT___","result","__esModule","default","_extends","Object","assign","bind","n","e","arguments","t","r","hasOwnProperty","call","apply","includes","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","d","a","definition","key","o","defineProperty","enumerable","get","obj","prop","prototype","Symbol","toStringTag","value","y","x","cjsModule","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_core_index_jsdbx_65e0859f__","actionTypes","createCustomElement","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_ui_renderer_snabbdom_index_jsdbx_9af105b3__","Fragment","createElement","createRef","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_sn_translate_index_jsdbx_813c3733__","CREATE_WINDOW","CLOSE_WINDOW","OPEN_WINDOW","OPEN_DEBUG_WINDOW","BROADCAST_MESSAGE","RELAY_MESSAGE","FOCUS_WINDOW","SET_HEADER_BUTTONS","CHECK_WINDOW_LOCATIONS","TOGGLE_DOCK","TOGGLE_MODAL_STATE","TOGGLE_MINIMIZE_STATE","CLOSE_DOCK","UPDATE_BODY_CLASS_NAMES","SCREEN_CHANGED","SET_DIRTY_STATE","SET_WINDOW_PROPERTIES","SN_WINDOW_DIALOG_CLOSE_CONFIRMED","UPDATE_BOTTOM_TOOLBAR_ELEMENTS","TOGGLE_OVERFLOW_POPOVER","SET_OVERFLOW_BUTTON_REF","SN_WINDOW_DIALOG_CLOSE_CANCELED","UPDATE_MINIMIZED_TARGET_POSITION","FOCUS_BOTTOM_TOOLBAR_REQUESTED","WM_CREATE_WINDOW","WM_CLOSE_WINDOW","WM_OPEN_WINDOW","WM_CLOSE_DOCK","WM_TOGGLE_DOCK","WM_TOGGLE_MODAL","WM_TOGGLE_MINIMIZED","WM_RELAY_MESSAGE","WM_FOCUS_WINDOW","WM_SET_HEADER_BUTTONS","WM_SET_DIRTY_STATE","WM_SET_WINDOW_PROPERTIES","UXF_CREATE_MODELESS_WINDOW","UXF_SHOW_MODELESS_WINDOW","UXF_CLOSE_MODELESS_WINDOW","UXF_MINIMIZE_MODELESS_WINDOW","UXF_DIRTY_MODELESS_WINDOW","UXF_UPDATE_MODELESS_WINDOW","UXF_SELECT_MODELESS_WINDOW","UXF_WM_SCREEN_SELECTED","UXF_CLOSE_MODELESS_WINDOW_ON_STAGE","UXF_FOCUS_WINDOW","UXF_CLOSE_DOCK","UXF_TOGGLE_DOCK","UXF_TOGGLE_MODAL","UXF_TOGGLE_MINIMIZED","UXF_CLOSE_WINDOW","UXF_OPEN_WINDOW","UXF_WINDOW_FOCUSED","AIEL_NAVIGATION_REQUESTED","GLOBAL_NAVIGATION_REQUESTED","NAV_ITEM_SELECTED","SIDEBAR_UNREAD_MESSAGE","SET_SIDEBAR_CHAT_PRIVATE","clampDialogPosition","_ref","dialogLocation","dialogSize","left","top","normalizeDialogLocation","width","height","viewportWidth","window","innerWidth","viewportHeight","innerHeight","clampedWidth","Math","min","clampedHeight","maxLeft","maxTop","newLeft","max","newTop","right","bottom","isWindowInBounds","normalizedDialogLocation","windowLocationValid","windowLocationInBounds","coordinateSystem","isDeepEqual","object1","object2","objKeys1","keys","objKeys2","value1","value2","isObjects","isObject","isFunctions","isFunction","object","deepSearchElement","selector","queue","document","body","shift","ele","querySelector","topShadow","shadowRoot","allSearched","querySelectorAll","keepInBoundary","container","boundaryElement","toolBar","draggableRect","getBoundingClientRect","boundaryRec","style","classList","contains","toolBarRect","shiftTo","newX","newY","createHDSBoundsPayload","bounds","mouseEvent","fullscreen","payload","positions","mouse","X","floor","clientX","Y","clientY","offset","dimensions","dispatchModelessDialogAction","contentElement","windowConfig","actionName","isFullscreen","dispatch","_dialogLocation$left","_dialogLocation$top","constructedBounds","defaultButtonVariant","touchEnhancedButtonSize","determineUseTouchEnhancedButtons","coeffects","_coeffects$properties","_coeffects$properties2","properties","browserDimensions","CustomHeaderButtonIconic","_button$properties","_button$properties2","_button$properties3","_button$properties4","_button$properties5","_button$properties8","button","ButtonComponent","type","element","size","bare","icon","variant","tooltipContent","label","configAria","on-click","_button$properties6","_button$properties7","onClick","action","appendToPayload","CloseButton","_ref2","useTouchEnhancedButtons","dispatchedEvent","isUXFWindow","tooltipLabel","closeButtonTooltip","headingLabel","closeIcon","buttonAction","stopPropagation","closeToElement","forceUpdate","matchCoordinateSystemToClosingLocation","closedFromButton","OpenButton","LeftDockButton","_ref4","windowsState","showHorizontalDockOptions","isRTL","dir","isDocked","buttonId","buttonIcon","dockTooltip","dockConfig","dockRightIcon","class","dockLocation","preventDefault","RightDockButton","_ref5","ToggleModalButton","_ref6","isModal","MinimizeWindowButton","_ref7","minimizedWindows","DragButton","_ref8","state","updateState","isDragModeEnabled","KEY_MOVEMENT_STEP_AMOUNT","setTargetRef","ref","setTimeout","targetRef","_ref9","elm","hook-destroy","className","on-blur","enabled","SN_WINDOW_OPENED","SN_WINDOW_CLOSED","SN_WINDOW_CREATED","SN_WINDOW_MINIMIZED","SN_WINDOW_CHECK_LOCATION","SN_WINDOW_START_DRAG","SN_WINDOW_END_DRAG","SN_WINDOW_KEY_PRESSED","SN_WINDOW_SET_DIRTY_STATE","SN_WINDOW_SET_WINDOW_SIZE","SN_WINDOW_SET_DOCKED_WINDOW_SIZE","SN_WINDOW_SET_WINDOW_PROPERTIES","NOW_MODELESS_DIALOG_CONTENT_VISIBLE","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__","getComponentsByTagNames","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__","PREFERENCES","getBooleanPreferenceValue","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__","debounce","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_dompurify_3_2_6_index_jsdbx_9acc4154__","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__","getFocusableNodes","PORTAL_TYPES","normalizeDialogSize","_convertValue","_convertValue2","convertValue","dimension","endsWith","percentage","parseFloat","browserSize","round","sanitizeHtmlString","str","replace","match","token","charAt","charCode","parseInt","substr","toLowerCase","isNaN","String","fromCharCode","amp","lt","gt","quot","apos","nbsp","decodeEntities","DOMPurify","ALLOWED_TAGS","trim","createBrowserWindowMutationObserver","updateProperties","modalWindow","mutationObs","ResizeObserver","mutationsList","handleBrowserWindowMutations","mutation","_mutation$contentRect","_mutation$contentRect2","contentRect","observe","browserWindowMutationObserver","completeDockToggle","newLeftDockId","newRightDockId","newBottomDockId","dockSide","windowsList","currentWindow","find","isWindowDocked","modalWindows","filter","windowId","leftDockId","rightDockId","bottomDockId","secondaryMenuId","handleStateChangeCallback","stateChangeCallback","handleOpenWindow","newProperties","contentElementProperties","forEach","component","isOpen","activeWindowId","dispatchEventToContentElement","isAnimating","newWindowList","isMinimized","windowStartingState","stateWhenClosed","indexOf","handleToggleMinimize","forceMinimize","overrideConfig","currWindow","canMinimize","currMinimizedWidows","newActiveWindowId","splice","existingPositions","minimizedTargetPositions","newWindowsState","isRestoring","dispatchEventToWindow","name","existingPositionValues","values","finalWindowsState","fromEntries","wId","index","sort","b","position","clampedPosition","_currWindow$component","windowBounds","_currWindow$component2","isFullscreenView","handleDialogCloseCancelled","closingWindowId","showCloseConfirmDialog","event","_currentWindow$compon6","extraPayload","console","info","screenKey","instanceId","experienceId","componentId","uxrComponentId","eventPayload","COMPONENT_DOM_TREE_READY","COMPONENT_PROPERTY_CHANGED","COMPONENT_RENDERED","setAnimationClass","host","disabled","_host$classList","_host$classList2","add","remove","animationTimeouts","WeakMap","isFullScreen","fullscreenViewConfig","widthThreshold","modalThresholds","standardThresholds","heightThreshold","computeStyleObj","_windowConfig$autoRes","_properties$windowCon","_properties$windowCon2","autoResizeEnabled","autoResizableConfig","enableAutoResizableHeight","styleObj","autoResizableMinHeight","autoResizableMaxHeight","borderRadius","isLeft","isRight","isBottom","dockedWindowSize","closeToTop","targetX","targetY","found","closeToSelector","targetElement","targetRect","closingLocation","_properties$windowsSt","_properties$windowsSt2","_properties$windowsSt3","target","positionsCleared","targetTopRightX","targetTopRightY","verticalOffset","modalLeft","modalTop","_windowConfig$autoRes2","_windowConfig$autoRes3","_windowConfig$autoRes4","_windowConfig$autoRes5","transform","modalWidth","transformOrigin","mWidth","modalSize","mHeight","dim","total","px","css","widthPx","widthCss","heightPx","heightCss","updateShadowRootStyling","_icon","_icon$shadowRoot","header","_button$shadowRoot","removeChild","nowIconShadowRoot","existingStyle","styling","innerHTML","appendChild","handleSetHeaderButtons","headerButtons","handleSetWindowSize","_windowConfig$autoRes6","newDialogSize","requestAnimationFrame","updateButtonFocus","focusButtonId","_getFocusableNodes","isActive","headerElement","buttons","tabbableNodes","blur","_host$shadowRoot","_buttonToFocus$shadow","buttonToFocus","focus","_buttons$","actionHandlers","hasModalEventListenerSet","modalElement","parentNode","modalOverlayClickEnabled","canMaximize","addEventListener","operation","path","shouldRender","animationsDisabled","contentTagName","slottedHeading","slottedContent","slottedFooter","slottedActions","headingElements","createDocumentFragment","elem","contentElements","footerElements","actionsElements","tagName","portalType","isFloating","_properties$windowCon3","parentElement","contentSlot","_slottedContent","prepend","error","warn","footerSlot","hasAttribute","removeAttribute","headerSlot","actionsSlot","resizeEnabled","canDrag","startingState","fitContent","footer","headerHeight","offsetHeight","footerHeight","bottomToolbarHeight","bottomToolbarComponent","_properties$bottomToo","toolbar","availableHeight","dialogHeight","dialogWidth","margin","iframeElement","pointerEvents","resizableConfig","enableResizable","remMulitplier","getComputedStyle","getPropertyValue","setProperty","previousValue","nextWindowsState","_previousValue$minimi","_value$minimizedTarge","_prevTargetPos$top","_newTargetPos$top","_prevTargetPos$left","_newTargetPos$left","_prevTargetPos$width","_newTargetPos$width","_prevTargetPos$height","_newTargetPos$height","_nextWindowsState$min","_properties$windowsLi","prevTargetPos","newTargetPos","targetPositionInitiallySet","targetPositionChanged","getDockKey","_Object$keys$find","prevDockKey","newDockKey","dockTargetChange","isOpeningOrClosing","isOpening","modalTransition","animationTimeoutDuration","hasMinimizeTarget","isMinimizing","willAnimate","newState","currentState","dispatchEventToContent","hasFocus","newStyleObj","finalStyleObj","currentStyle","elLeft","elRight","elWidth","elTop","elBottom","elHeight","originX","originY","restStyle","_objectWithoutPropertiesLoose","_excluded","skipImmediateResizeUpdate","resizableConfigUpdate","lastState","opened","pinnedHeaderHeight","w","existingTimeout","clearTimeout","delete","set","modelessDialog","wrapper","wrapperBounds","screenInfo","matchesCurrentLocationFormat","locationIsDifferent","newLocation","newSize","isLeftDocked","isRightDocked","isBottomDocked","effect","_ref3","maxWidth","isDirty","newHeadingLabel","title","dialogTitle","modelessDialogControllerId","sourceElementId","compositionId","meta","_properties$contentEl","_properties$contentEl2","eventHandlers","events","maxWindowSizePercentage","_properties$dialogSiz","_properties$dialogSiz2","widthPercent","heightPercent","dialogElement","newMaxWidth","newMaxHeight","_properties$dialogSiz3","_properties$dialogSiz4","lastChild","resizableMaxWidth","resizableMaxHeight","ButtonsPanel","_fullscreenViewConfig","_fullscreenViewConfig2","fullScreenBreakpoint","dockLeft","dockRight","canToggleModal","canDock","canClose","isPersistent","DockedWindow","_windowConfig$headerI","targetHeaderSlot","targetActionsSlot","targetContentSlot","targetFooterSlot","slot","hideHeadingDivider","headerIcon","isMessageUnread","isChatPrivate","color","handleModalMutations","dialogContainer","attributeName","handleModalResize","dialogTop","offsetTop","windowHeight","offsetWidth","finalRect","finalToolbarRect","isHidden","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_rtl_27_3_4_index_jsdbx_e03584c6__","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_modal_27_0_2_index_jsdbx_c4a549cb__","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_resizable_27_0_2_index_jsdbx_18658927__","endDrag","removeEventListener","dragHandler","isDragging","mouseOffsetX","mouseOffsetY","initialState","dragHandleElement","dragContainerElement","__mousedownListener__","__keydownListener__","dragHandle","dragContainer","nonDragElements","isDraggable","_element$tagName","startsWith","some","nonDragTag","_element$tagName2","nonDragRole","_element$role","role","keydownListener","keyEvent","mousedownListener","startDrag","tooltip","containerBounds","resetWindowSize","offsetX","offsetY","_button$shadowRoot2","pageX","pageY","onMouseUp","handleModelessMousedown","_action$payload","handleModelessMouseup","keyPressed","bottomToolBar","origLeft","offsetLeft","origTop","isShift","shiftKey","view","_properties$windowCon4","mutationObserver","resizeObserver","leftDockOpen","rightDockOpen","transitionClass","navRef","onCurrentScreen","isGlobalWindow","_nowWindowManager$scr","_window$ux_globals","_nowWindowManager$scr2","_window$ux_globals2","currentScreenKey","nowWindowManager","ux_globals","snCanvasScreen","screenId","currentExperienceId","canResize","hidden","docked","modal","floating","minimized","active","closed","useFlexContentLayout","dialog","createMutationObserver","disconnect","MutationObserver","resizeObs","attributes","_properties$mutationO","_properties$resizeObs","styles","schema","shouldRenderWhenSet","isSmallScreen","availablePanels","computed","resizableMinWidth","resizableMinHeight","context","enum","setInitialState","behaviors","behavior","rtlBehavior","focusBehavior","options","trap","modalBehavior","limit","watchPropertyName","dragBehavior","resizableBehavior","resizeTarget","getResizableConfig","POLARIS_CONTEXT","experienceName","defaultWindowOptions","renderer","snabbdom","buttonSize","showTopButtons","route","params","menuId","buttonConfig","contextualMenuType","contextualMenuHeaderText","dispatchedAction","modelessProps","enableDrag","manageOpened","opts","minimizedTitle","category","eventInfo","elementId","hideOthers","singleInstance","contentRef","src","resolvedProps","COMPONENT_CONNECTED","command","checked","viewCount","PROPERTY_CHANGED","newButtons","MIN_BUTTON_WIDTH","createResult","zone1Windows","zone2Windows","zone1VisibleCount","zone2VisibleCount","zone1OverflowCount","zone2OverflowCount","calculatedButtonWidth","bothZonesHaveOverflow","halfOfVisibleButtons","visible1","slice","visible2","overflowCount1","overflowCount2","overflowWindows1","overflowWindows2","showDivider","buttonWidth","useBalancedSizing","computeZones","zone3Width","zone1ButtonCount","zone2ButtonCount","zone3TotalSpace","availableWidth","totalButtonCount","optimalButtonWidth","spaceForButtons","maxVisibleButtons","allocateSlots","halfOfSlots","targetSlotsPerZone","zone1Gap","zone2Gap","remainingSlots","leftoverSlots","totalVisibleButtons","isTruncated","labelSpan","scrollWidth","clientWidth","handleTooltipCheck","closest","truncated","closePopoverOnTabOut","zoneId","actionSource","appended","createItemKeydownHandler","itemIndex","totalItemCount","isShiftTab","isFirstItem","isLastItem","isOnCloseButton","handleArrowKeyNavigation","currentElement","currentTarget","items","Array","from","currentIndex","_items$nextIndex","isArrowDown","totalItems","windows","isGlobal","windowType","windowCount","ariaLabel","renderWindowItem","subtitle","hasIcon","tabIndex","hidePadding","updateButtonPosition","el","windowIdOrWindows","overflow","targetButton","rect","rectData","ZoneOverflowButton","count","openedOverflowZone","vnode","buttonRef","hook-update","oldVnode","MinimizedButtonView","_windowConfig$headerI2","_windowConfig$headerI3","_windowConfig$compone","_windowConfig$headerI4","headingLabelText","hasHeaderIcon","subtext","prevToolbarOpen","COMPONENT_DISCONNECTED","measureZone3Width","hoistTargetElem","resizeUpdateZone3Width","childNodes","child","visibility","display","filterMinimizedWindows","minimizedWindowList","globalMinimizedWindows","scopedMinimizedWindows","mainToolbarElement","observer","isCurrentSelectedScreen","_window$nowWindowMana","_child$sourceElement","_child$sourceElement2","sourceElement","activeHoistedContent","isSlottedElemVisible","nodeType","Node","ELEMENT_NODE","computedStyle","hasSlottedContent","childList","_zone3MutationObserver","__windowManagerConfig","zoneThreeHoistTarget","hoistedElements","hasHoistedElement","elemHoistInfo","overflowButtonRefs","zoneFromPopover","isConnected","newWindowId","newButton","_properties$browserDi","_properties$browserDi2","_properties$zone3Widt","bottomDockOpen","isToolbarOpen","_tabbableElements$nex","currentItem","composedPath","tabbableElements","nextIndex","balanced","zone1","empty","zone2","pinDropDownView","showPadding","hideCaret","hideLabel","align","COMPONENT_BOOTSTRAPPED","pinningDropDown","customHeaderButtons","url","detail","open","newStyleSheet","dynamicStyleSheet","styleEl","head","sheet","createStyleSheet","insertRule","cssRules","windowManager","createWindow","openWindow","closeWindow","forceDestroy","closeDock","dock","toggleDock","toggleModal","forceEnableModal","toggleMinimized","relayMessage","message","debugWindow","focusWindow","getContentElement","setHeaderButtons","buttonsData","doesWindowExist","isWindowOpen","setContentProperties","props","setWindowProperties","setWindowSize","dockedMode","newDockedWindowSize","handleScreenChanged","setDirtyState","dirtyState","updateUserPreferences","userPreferences","DISABLE_ANIMATION","closeAllWindows","getDockedWindowId","userPrefs","coerceBoolean","val","_err","isArray","pref","p","isLoaded","handleComponentConnected","handleToggleLeftDock","handleToggleRightDock","handleToggleBottomDock","_currentWindow$compon3","_currentWindow$compon4","_currentWindow$compon5","_payload$content4","_payload$content5","_newWindowConfig$star","_newWindowConfig$star2","_newWindowConfig$star3","_payload$content$comp","existingWindowConfig","newWindowConfig","newWindowDataConfig","_payload$closeIcon","_payload$dockConfig$d","_payload$dockConfig","_payload$dockConfig$d2","_payload$dockConfig2","_payload$dockConfig$d3","_payload$dockConfig3","_payload$dockConfig$d4","_payload$dockConfig4","_payload$dockConfig$d5","_payload$dockConfig5","_payload$fullscreenVi","_payload$fullscreenVi2","_payload$fullscreenVi3","_payload$fullscreenVi4","_payload$headerIcon","_payload$headerIcon2","_payload$dialogLocati","_payload$dialogLocati2","_payload$dialogLocati3","_payload$dialogLocati4","_payload$dialogLocati5","_payload$dialogLocati6","_payload$dialogLocati7","_payload$dialogLocati8","_payload$modalSize","_payload$modalSize2","_payload$content","_payload$content2","_payload$resizableCon","_payload$resizableCon2","_payload$content3","_payload$autoResizabl","c","random","JSON","parse","dockBottom","dockLeftIcon","reopenAsFloatingWindow","confirmClose","confirmCloseMessage","bottomDockHeight","updateDialogLocationBottomDock","normalizedLocation","areWindowsOverlapping","window1","window2","normalizedWindow1","normalizedWindow2","windowsAreOpen","windowsAreInSameLocation","initialPosition","newWindowsList","startLeft","startTop","isOccupied","clampedLeft","clampedTop","findAvailableDialogPosition","nowWindow","_currentWindow$compon","_currentWindow$compon2","newMinimizedWindows","newModalWindows","windowComponent","_windowComponent$shad","wasConfirmed","undockedWindowId","undockedWindow","doPinning","isPrimary","primaryMenuId","isPinnedWindow","bottomToolbar","sanitizedProperties","propertyValue","_state$properties$win","prevPositions","updatedPositions","isUnread","isPrivate","_windowsState$minimiz","_windowsState$minimiz2","_bottomToolbarCompone","_focusableNodes$tabba","_focusableNodes$tabba2","minimizedCount","replaceContent","focusableNodes","firstButton","maxRetries","Promise","resolve","attempts","attemptFocus","_error","focusElementWithRetry","then","focusSuccess","pinned","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_now_trigger_library_index_jsdbx_ab42f527__","deregisterComponent","registerComponent","setActionState","nowTriggerLibRegistrationId","KEYBOARD_SHORTCUTS","actionMap","source","headerLabel","footerActions","clickActionType","deepCompare","calculatedStyle","unifiedNavComponent","keyboardShortcutsBehavior","__TECTONIC__$servicenow_sn_window_manager"]}