{"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:///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.-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,sn-engagement-experience,sn-ai-engagement-experience){display:block}.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.close-to-top,.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.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}.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;","// 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}, [\"getPreferenceValue\"]: () => {\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 && 'getPreferenceValue' === '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\"].getPreferenceValue;\n\t\t\t\t\t} else if ('getPreferenceValue' === '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__.getPreferenceValue || __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\"].getPreferenceValue;\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 {\n\tgetBooleanPreferenceValue,\n\tgetPreferenceValue,\n\tPREFERENCES,\n} 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.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\n// userPreferences is stored as an object (mirrors window.ux_globals.userPrefs),\n// but getPreferenceValue expects an array of {name, value} pairs.\nconst toPreferencesArray = (preferences) =>\n\tObject.entries(preferences || {}).map(([name, value]) => ({name, value}));\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, windowsList, userPreferences} = properties;\n\tconst {leftDockId, rightDockId, bottomDockId} = windowsState;\n\tconst isWmWindow = (dockId) =>\n\t\twindowsList?.some((window) => window.id === dockId) ?? false;\n\n\t// closing left dock\n\tif (document.body.classList.contains('dockLeft') && leftDockId === null) {\n\t\tconst wasWmWindow = isWmWindow(document.body.dataset.wmLeftDockOccupant);\n\t\tdocument.body.classList.remove('dockLeft');\n\t\tdelete document.body.dataset.wmLeftDockOccupant;\n\t\tif (!payload.secondaryMenuId && wasWmWindow) {\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\tconst wasWmWindow = isWmWindow(document.body.dataset.wmRightDockOccupant);\n\t\tdocument.body.classList.remove('dockRight');\n\t\tdelete document.body.dataset.wmRightDockOccupant;\n\t\tif (!payload.secondaryMenuId && wasWmWindow) {\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 (or changing the occupant of) left dock\n\tconst leftOccupantChanged =\n\t\tleftDockId !== (document.body.dataset.wmLeftDockOccupant || null);\n\tif (\n\t\tleftDockId !== null &&\n\t\t(!document.body.classList.contains('dockLeft') ||\n\t\t\tleftOccupantChanged ||\n\t\t\tpayload.windowCreated)\n\t) {\n\t\tdocument.body.classList.add('dockLeft');\n\t\tdocument.body.dataset.wmLeftDockOccupant = leftDockId;\n\n\t\tif (isWmWindow(leftDockId)) {\n\t\t\tlet mainMenuPinnedId = getPreferenceValue(\n\t\t\t\ttoPreferencesArray(userPreferences),\n\t\t\t\tPREFERENCES.MAIN_MENU_PINNED_ID,\n\t\t\t);\n\t\t\tif (mainMenuPinnedId === 'null' || mainMenuPinnedId === '') {\n\t\t\t\tmainMenuPinnedId = null;\n\t\t\t}\n\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: true,\n\t\t\t\t\tisPrimary: true,\n\t\t\t\t\tprimaryMenuId: mainMenuPinnedId,\n\t\t\t\t\tisPinnedWindow: true,\n\t\t\t\t\tsecondaryMenuId: null,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n\t// opening (or changing the occupant of) right dock\n\tconst rightOccupantChanged =\n\t\trightDockId !== (document.body.dataset.wmRightDockOccupant || null);\n\tif (\n\t\trightDockId !== null &&\n\t\t(!document.body.classList.contains('dockRight') ||\n\t\t\trightOccupantChanged ||\n\t\t\tpayload.windowCreated)\n\t) {\n\t\tdocument.body.classList.add('dockRight');\n\t\tdocument.body.dataset.wmRightDockOccupant = rightDockId;\n\n\t\tif (isWmWindow(rightDockId)) {\n\t\t\tdispatch('CONTEXTUAL_MENU#PINNED', {\n\t\t\t\tdoPinning: true,\n\t\t\t\tisPrimary: true,\n\t\t\t\tprimaryMenuId: rightDockId,\n\t\t\t\tisPinnedWindow: true,\n\t\t\t});\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\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\t// Dispatched last so windowsList already includes this window. Always\n\t// announce to Polaris here (windowCreated: true) even if this dock id was\n\t// already the tracked occupant: Polaris can pre-reserve a dock slot under\n\t// the same id before this window exists (e.g. Otto's pinned-on-load\n\t// restore), and the occupant-changed check below would otherwise treat\n\t// that as \"no change\" once the real window arrives, silently skipping\n\t// the correction.\n\tdispatch(UPDATE_BODY_CLASS_NAMES, {windowCreated: true});\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\tdispatch,\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\t[document.dir === 'rtl' ? 'rightDockId' : 'leftDockId']: payload.pinned\n\t\t\t\t\t? payload.menuId\n\t\t\t\t\t: 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\t[document.dir === 'rtl' ? 'leftDockId' : 'rightDockId']: payload.pinned\n\t\t\t\t\t? payload.menuId\n\t\t\t\t\t: null,\n\t\t\t},\n\t\t});\n\t}\n\n\tif (payload.type === 'mainMenu' || payload.type === 'contextualMenu') {\n\t\tdispatch(UPDATE_BODY_CLASS_NAMES);\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\tisDocked = false,\n) => {\n\t// A docked window has its own left/right/bottom dock layout that must always\n\t// take priority over the auto-triggered fullscreen view, regardless of viewport\n\t// size. Deciding this here - at the single source of the fullscreen predicate -\n\t// keeps every caller (styleObj computation, the isFullscreenView property, etc.)\n\t// consistent instead of each one having to remember to special-case docking.\n\tif (isDocked) {\n\t\treturn false;\n\t}\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\tproperties.isDocked,\n\t\t) &&\n\t\tproperties.isOpen\n\t) {\n\t\t// Reuse whichever coordinate system dialogLocation already has (top/left\n\t\t// vs bottom/right) instead of forcing top-left. This window's docked\n\t\t// style uses the same system (e.g. a right-docked window's dialogLocation\n\t\t// is bottom/right-based, matching its docked-right style's `right: 0px`),\n\t\t// so keeping that anchor here means docking/undocking only animates\n\t\t// `width`/`height` on a single, constant anchor edge - a continuous,\n\t\t// mirror-image transition in both directions - instead of switching which\n\t\t// CSS property is set (left appearing/disappearing vs right), which\n\t\t// cannot animate smoothly since transitions to/from an absent property\n\t\t// are not interpolated (DEF0883127 undock-animation investigation).\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\t\tconst topCoordinate =\n\t\t\twindowConfig.closeToElement?.top ??\n\t\t\twindowConfig.closeToElement?.getBoundingClientRect?.()?.top ??\n\t\t\t12;\n\t\tconst bottomCoordinate =\n\t\t\twindowConfig.closeToElement?.bottom ??\n\t\t\twindow.innerHeight - properties.dialogSize.height - 12;\n\t\tconst leftCoordinate =\n\t\t\twindowConfig.closeToElement?.left ??\n\t\t\twindowConfig.closeToElement?.getBoundingClientRect?.()?.left ??\n\t\t\twindow.innerWidth - 210;\n\t\tconst rightCoordinate = windowConfig.closeToElement?.right ?? 210;\n\n\t\tlet closingLocation;\n\n\t\t// Calculate where the transform origin should be based on whether we're using top/left or bottom/right\n\t\tif (top !== undefined) {\n\t\t\tclosingLocation = {\n\t\t\t\ttransformOrigin: 'top left',\n\t\t\t\ttop: `${topCoordinate}px`,\n\t\t\t\tleft: `${!isRTL ? leftCoordinate : window.innerWidth - leftCoordinate}px`,\n\t\t\t};\n\t\t} else {\n\t\t\tclosingLocation = {\n\t\t\t\ttransformOrigin: 'bottom right',\n\t\t\t\tbottom: `${bottomCoordinate}px`,\n\t\t\t\tright: `${!isRTL ? rightCoordinate : window.innerWidth - rightCoordinate}px`,\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\tconst nativeButton = buttonToFocus?.shadowRoot.querySelector('button');\n\t\tnativeButton?.focus({focusVisible: true});\n\t\tnativeButton\n\t\t\t?.animate([], {duration: 1000})\n\t\t\t?.finished?.then(() => nativeButton.blur());\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\t// Blur all header buttons on initial window creation to prevent browser default focus\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tconst headerElement = host.shadowRoot.querySelector('.docked-window');\n\t\t\t\tif (!headerElement) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst buttons = getFocusableNodes(headerElement)?.tabbableNodes || [];\n\t\t\t\tbuttons.forEach((button) => button.blur());\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\t\tconst isDocked =\n\t\t\tnextWindowsState.leftDockId === windowConfig.id ||\n\t\t\tnextWindowsState.rightDockId === windowConfig.id ||\n\t\t\tnextWindowsState.bottomDockId === windowConfig.id;\n\t\tconst isModal =\n\t\t\tisOpen && nextWindowsState.modalWindows.includes(windowConfig.id);\n\t\tconst isFloating = !isDocked && !isModal && isOpen;\n\t\t// Docking/undocking can flip the effective fullscreen state (e.g. pinning a\n\t\t// window that auto-triggered fullscreen on a short viewport, or undocking it\n\t\t// back into one). Recompute isFullscreenView here too, instead of only on\n\t\t// browserDimensions/isModal/fullscreenViewConfig changes, so the property -\n\t\t// and everything derived from it (the fullscreen-view CSS class, the\n\t\t// currentState/transition-* labeling below, and the legacy isFullscreenView\n\t\t// reads in sn-window-manager) - stays correct immediately after pin/unpin\n\t\t// rather than going stale until the next viewport or modal change.\n\t\tconst isFullscreenView = isFullScreen(\n\t\t\tproperties.browserDimensions,\n\t\t\tisModal,\n\t\t\tproperties.fullscreenViewConfig,\n\t\t\tisDocked,\n\t\t);\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 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\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 (isFullscreenView) {\n\t\t\t\tnewState = 'fullscreen';\n\t\t\t} else if (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\tconst hasModalTransition = isModal !== properties.isModal;\n\t\t\tif (hasModalTransition) {\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\t// Only update dock button focus if there's no modal transition happening\n\t\t\t\t// to avoid focus conflict between modal and dock buttons\n\t\t\t\tif (!hasModalTransition) {\n\t\t\t\t\tif (isDocked) {\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tupdateButtonFocus(host, 'undock', true);\n\t\t\t\t\t\t}, animationTimeoutDuration);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (prevDockKey === 'leftDockId') {\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tupdateButtonFocus(host, 'left-dock', true);\n\t\t\t\t\t\t\t}, animationTimeoutDuration);\n\t\t\t\t\t\t} else if (prevDockKey === 'rightDockId') {\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tupdateButtonFocus(host, 'right-dock', true);\n\t\t\t\t\t\t\t}, animationTimeoutDuration);\n\t\t\t\t\t\t} else if (prevDockKey === 'bottomDockId') {\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tupdateButtonFocus(host, 'bottom-dock', true);\n\t\t\t\t\t\t\t}, animationTimeoutDuration);\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\t// TODO: Remove once the new thumbtack icons are provided\n\t\t\t// Temporary solution while the other direction thumbtack icons are not available\n\t\t\tsetTimeout(() => {\n\t\t\t\tupdateShadowRootStyling(host);\n\t\t\t}, 50);\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\tconst finalStyleObj =\n\t\t\t\tisMinimized && !hasMinimizeTarget ? properties.styleObj : newStyleObj;\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 && properties.canResize,\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\tisFullscreenView,\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 && properties.canResize,\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\tproperties.isDocked,\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\n\t\tif (name === 'canResize' && previousValue !== value) {\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: isFloating && value,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}, 100);\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 ('headingLabel' in payload) {\n\t\t\t\tnewHeadingLabel = payload.headingLabel;\n\t\t\t} else if ('title' in payload) {\n\t\t\t\tnewHeadingLabel = payload.title;\n\t\t\t} else if ('dialogTitle' in payload) {\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 className={`heading-label -${windowConfig.size}`}>\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<div className=\"window-close-button\">\n\t\t\t\t\t\t<now-button-iconic\n\t\t\t\t\t\t\tbare\n\t\t\t\t\t\t\tsize=\"md\"\n\t\t\t\t\t\t\thidePadding\n\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\ticon=\"close-fill\"\n\t\t\t\t\t\t\tconfigAria={{\n\t\t\t\t\t\t\t\tbutton: {\n\t\t\t\t\t\t\t\t\t'aria-label': t('Close'),\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\ttooltip-content={t('Close')}\n\t\t\t\t\t\t\ton-click={(e) => {\n\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\tdispatch(CLOSE_WINDOW, {windowConfig});\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\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.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","__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","includes","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","getPreferenceValue","__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","_ref3","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","_windowConfig$closeTo","_windowConfig$closeTo2","_windowConfig$closeTo3","_windowConfig$closeTo4","_windowConfig$closeTo5","_windowConfig$closeTo6","_windowConfig$closeTo7","_windowConfig$closeTo8","_windowConfig$closeTo9","_windowConfig$closeTo0","_windowConfig$closeTo1","_windowConfig$closeTo10","topCoordinate","bottomCoordinate","leftCoordinate","rightCoordinate","closingLocation","transformOrigin","_properties$windowsSt","_properties$windowsSt2","_properties$windowsSt3","target","positionsCleared","targetTopRightX","targetTopRightY","verticalOffset","modalLeft","modalTop","_windowConfig$autoRes2","_windowConfig$autoRes3","_windowConfig$autoRes4","_windowConfig$autoRes5","transform","modalWidth","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","_nativeButton$animate","buttonToFocus","nativeButton","focus","focusVisible","animate","duration","finished","then","_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","_getFocusableNodes2","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","hasModalTransition","newStyleObj","finalStyleObj","skipImmediateResizeUpdate","resizableConfigUpdate","canResize","lastState","opened","pinnedHeaderHeight","w","existingTimeout","clearTimeout","delete","set","modelessDialog","wrapper","wrapperBounds","screenInfo","matchesCurrentLocationFormat","locationIsDifferent","newLocation","newSize","isLeftDocked","isRightDocked","isBottomDocked","effect","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","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","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","windowCreated","_currentWindow$compon","_currentWindow$compon2","newMinimizedWindows","newModalWindows","windowComponent","_windowComponent$shad","wasConfirmed","undockedWindowId","undockedWindow","isWmWindow","dockId","_windowsList$some","wasWmWindow","dataset","wmLeftDockOccupant","doPinning","isPrimary","primaryMenuId","isPinnedWindow","wmRightDockOccupant","leftOccupantChanged","mainMenuPinnedId","preferences","entries","MAIN_MENU_PINNED_ID","rightOccupantChanged","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","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"]}