{"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/@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)}.docked-window div[slot=footer]{background-color:RGBA(var(--now-window--background-color,var(--now-color_background--primary,var(--now-color--neutral-0,255,255,255))),1)}.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;bottom:0;left:0;position:fixed;right:0;top:0}.sn-window-wrapper.aiex{border-left:1px solid rgb(var(--sn-window--aiex--border-color,var(--now-color_border--tertiary,var(--now-color--neutral-3,209,214,214))));container-type:inline-size}.sn-window-wrapper.aiex div[slot=content]{background:transparent}.sn-window-wrapper.aiex .docked-window{background:linear-gradient(180deg,rgba(var(--sn-window--aiex--background-color,var(--now-color_surface--brand-1,236,244,241)),.8) 0,rgba(var(--sn-window--aiex--background-color,var(--now-color_surface--brand-1,236,244,241)),.25) 50%,rgba(var(--sn-window--aiex--background-color,var(--now-color_surface--brand-1,236,244,241)),.1) 100%),rgb(var(--now-color_background--primary,var(--now-color--neutral-0,255,255,255)))}@container (min-width: 820px){.sn-window-wrapper.aiex .docked-window{background:linear-gradient(110deg,rgba(var(--sn-window--aiex--background-color,var(--now-color_surface--brand-1,236,244,241)),.65) .36%,rgba(var(--sn-window--aiex--background-color,var(--now-color_surface--brand-1,236,244,241)),.5) 50.18%,rgba(var(--sn-window--aiex--background-color,var(--now-color_surface--brand-1,236,244,241)),.25) 100%),rgb(var(--now-color_background--primary,var(--now-color--neutral-0,255,255,255)))!important}}.sn-window-wrapper.aiex.floating,.sn-window-wrapper.aiex.modal{border:1px solid rgb(var(--sn-window--aiex--border-color,var(--now-color_border--tertiary,var(--now-color--neutral-3,209,214,214))));border-radius:var(--sn-window--aiex--border-radius,calc(.75rem*var(--na-ss-rem-multiplier)));box-shadow:0 12px 24px 0 rgba(var(--sn-window--aiex--shadow-color,56,56,56),.25)}.accessibility-drag-button{block-size:1px;inline-size:1px;opacity:0;overflow:hidden}.accessibility-drag-button:focus{block-size:auto;inline-size:auto;opacity:1;overflow:initial}.sn-window-manager-modal-overlay{background-color:RGB(var(--now-color--neutral-21,0,0,0),.5);height:100vh;left:0;pointer-events:all;position:fixed;top:0;width:100vw;z-index:3999}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n        var result = require(\"!!../../../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../../../node_modules/.pnpm/postcss-loader@7.0.1_postcss@8.4.31_webpack@5.95.0/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../../../node_modules/.pnpm/resolve-url-loader@5.0.0/node_modules/resolve-url-loader/index.js??ruleSet[1].rules[2].use[3]!../../../../../../node_modules/.pnpm/sass-loader@13.0.2_sass@1.53.0_webpack@5.95.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[4]!./sn-overflow-popover.scss\");\n\n        if (result && result.__esModule) {\n            result = result.default;\n        }\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    ","\n        var result = require(\"!!../../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../../node_modules/.pnpm/postcss-loader@7.0.1_postcss@8.4.31_webpack@5.95.0/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../../node_modules/.pnpm/resolve-url-loader@5.0.0/node_modules/resolve-url-loader/index.js??ruleSet[1].rules[2].use[3]!../../../../../node_modules/.pnpm/sass-loader@13.0.2_sass@1.53.0_webpack@5.95.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[4]!./styles.scss\");\n\n        if (result && result.__esModule) {\n            result = result.default;\n        }\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    ","\n        var result = require(\"!!../../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../../node_modules/.pnpm/postcss-loader@7.0.1_postcss@8.4.31_webpack@5.95.0/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../../node_modules/.pnpm/resolve-url-loader@5.0.0/node_modules/resolve-url-loader/index.js??ruleSet[1].rules[2].use[3]!../../../../../node_modules/.pnpm/sass-loader@13.0.2_sass@1.53.0_webpack@5.95.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[4]!./debug-styles.scss\");\n\n        if (result && result.__esModule) {\n            result = result.default;\n        }\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    ","\n        var result = require(\"!!../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../node_modules/.pnpm/postcss-loader@7.0.1_postcss@8.4.31_webpack@5.95.0/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/.pnpm/resolve-url-loader@5.0.0/node_modules/resolve-url-loader/index.js??ruleSet[1].rules[2].use[3]!../../../../node_modules/.pnpm/sass-loader@13.0.2_sass@1.53.0_webpack@5.95.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[4]!./styles.scss\");\n\n        if (result && result.__esModule) {\n            result = result.default;\n        }\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    ","\n        var result = require(\"!!../../../../node_modules/.pnpm/css-loader@6.7.1_webpack@5.95.0/node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../node_modules/.pnpm/postcss-loader@7.0.1_postcss@8.4.31_webpack@5.95.0/node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!../../../../node_modules/.pnpm/resolve-url-loader@5.0.0/node_modules/resolve-url-loader/index.js??ruleSet[1].rules[2].use[3]!../../../../node_modules/.pnpm/sass-loader@13.0.2_sass@1.53.0_webpack@5.95.0/node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[2].use[4]!./styles.scss\");\n\n        if (result && result.__esModule) {\n            result = result.default;\n        }\n\n        if (typeof result === \"string\") {\n            module.exports = result;\n        } else {\n            module.exports = result.toString();\n        }\n    ","function _extends() {\n  return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// 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 {\n\tKEY_MOVEMENT_STEP_AMOUNT,\n\tKEY_MOVEMENT_STEP_MULTIPLIER,\n} from '../behaviors/utils/keyboard-events';\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(\n\t\t\t\t'Use arrow keys to move by {0} pixels. Hold SHIFT to move by {1} pixels.',\n\t\t\t\tKEY_MOVEMENT_STEP_AMOUNT,\n\t\t\t\tKEY_MOVEMENT_STEP_AMOUNT * KEY_MOVEMENT_STEP_MULTIPLIER,\n\t\t\t)\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\n\t\t\t\t? KEY_MOVEMENT_STEP_AMOUNT * KEY_MOVEMENT_STEP_MULTIPLIER\n\t\t\t\t: KEY_MOVEMENT_STEP_AMOUNT);\n\t} else if (e.key === 'ArrowDown') {\n\t\tnewTop =\n\t\t\tnewTop +\n\t\t\t(isShift\n\t\t\t\t? KEY_MOVEMENT_STEP_AMOUNT * KEY_MOVEMENT_STEP_MULTIPLIER\n\t\t\t\t: KEY_MOVEMENT_STEP_AMOUNT);\n\t}\n\n\tif (e.key === 'ArrowLeft') {\n\t\tnewLeft =\n\t\t\tnewLeft -\n\t\t\t(isShift\n\t\t\t\t? KEY_MOVEMENT_STEP_AMOUNT * KEY_MOVEMENT_STEP_MULTIPLIER\n\t\t\t\t: KEY_MOVEMENT_STEP_AMOUNT);\n\t} else if (e.key === 'ArrowRight') {\n\t\tnewLeft =\n\t\t\tnewLeft +\n\t\t\t(isShift\n\t\t\t\t? KEY_MOVEMENT_STEP_AMOUNT * KEY_MOVEMENT_STEP_MULTIPLIER\n\t\t\t\t: KEY_MOVEMENT_STEP_AMOUNT);\n\t} else if (e.key === 'Escape') {\n\t\tdispatch('TOGGLE_DRAG_MODE', {enabled: false});\n\t\treturn;\n\t}\n\n\tif (origLeft !== newLeft || origTop !== newTop) {\n\t\tshiftTo(\n\t\t\tdragContainerElement,\n\t\t\tnewLeft,\n\t\t\tnewTop,\n\t\t\tstate.properties.dialogSize,\n\t\t\tstate.properties.dialogLocation,\n\t\t\tbottomToolBar,\n\t\t);\n\t}\n};\n","// standard actions for the SN_WINDOW\nexport const SN_WINDOW_OPENED = 'SN_WINDOW#WINDOW_OPENED';\nexport const SN_WINDOW_CLOSED = 'SN_WINDOW#WINDOW_CLOSED';\nexport const SN_WINDOW_CREATED = 'SN_WINDOW#WINDOW_CREATED';\nexport const SN_WINDOW_FOCUSED = 'SN_WINDOW#WINDOW_FOCUSED';\nexport const SN_WINDOW_MODALIZED = 'SN_WINDOW#WINDOW_MODALIZED';\nexport const SN_WINDOW_DOCKED = 'SN_WINDOW#WINDOW_DOCKED';\nexport const SN_WINDOW_MINIMIZED = 'SN_WINDOW#WINDOW_MINIMIZED';\nexport const SN_WINDOW_CHECK_LOCATION = 'SN_WINDOW#CHECK_LOCATION';\nexport const SN_WINDOW_START_DRAG = 'SN_WINDOW#START_DRAG';\nexport const SN_WINDOW_END_DRAG = 'SN_WINDOW#END_DRAG';\nexport const SN_WINDOW_KEY_PRESSED = 'SN_WINDOW#KEY_PRESSED';\nexport const SN_WINDOW_SET_DIRTY_STATE = 'SN_WINDOW#SET_DIRTY_STATE';\nexport const SN_WINDOW_DIRTY_STATE_SET = 'SN_WINDOW#DIRTY_STATE_SET';\nexport const SN_WINDOW_SET_WINDOW_SIZE = 'SN_WINDOW#SET_WINDOW_SIZE';\nexport const SN_WINDOW_SET_DOCKED_WINDOW_SIZE =\n\t'SN_WINDOW#SET_DOCKED_WINDOW_SIZE';\nexport const SN_WINDOW_SET_WINDOW_PROPERTIES =\n\t'SN_WINDOW#SET_WINDOW_PROPERTIES';\n\n// HDS: Modeless Dialog Action Constants for backwards compatability\nexport const NOW_MODELESS_DIALOG_MOUSEDOWN = 'NOW_MODELESS_DIALOG#MOUSEDOWN';\nexport const NOW_MODELESS_DIALOG_MOUSEUP = 'NOW_MODELESS_DIALOG#MOUSEUP';\nexport const NOW_MODELESS_DIALOG_OPENED_SET = 'NOW_MODELESS_DIALOG#OPENED_SET';\nexport const NOW_MODELESS_DIALOG_CLOSE = 'NOW_MODELESS_DIALOG#CLOSE';\nexport const NOW_MODELESS_DIALOG_MAXIMIZE = 'NOW_MODELESS_DIALOG#MAXIMIZE';\nexport const NOW_MODELESS_DIALOG_MINIMIZE = 'NOW_MODELESS_DIALOG#MINIMIZE';\nexport const NOW_MODELESS_DIALOG_RESIZABLE_END =\n\t'NOW_MODELESS_DIALOG#RESIZABLE_END';\nexport const NOW_MODELESS_DIALOG_CONTENT_VISIBLE =\n\t'NOW_MODELESS_DIALOG#CONTENT_VISIBLE';\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"getComponentsByTagNames\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__.__esModule\n\t\t\t\t\tif (cjsModule && 'getComponentsByTagNames' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"].getComponentsByTagNames;\n\t\t\t\t\t} else if ('getComponentsByTagNames' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__.getComponentsByTagNames || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_library_uxf_index_jsdbx_d40e2bbc__[\"default\"].getComponentsByTagNames;\n\t\t\t\t} });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"PREFERENCES\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__.__esModule\n\t\t\t\t\tif (cjsModule && 'PREFERENCES' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"].PREFERENCES;\n\t\t\t\t\t} else if ('PREFERENCES' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__.PREFERENCES || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"].PREFERENCES;\n\t\t\t\t}, [\"getBooleanPreferenceValue\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__.__esModule\n\t\t\t\t\tif (cjsModule && 'getBooleanPreferenceValue' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"].getBooleanPreferenceValue;\n\t\t\t\t\t} else if ('getBooleanPreferenceValue' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__.getBooleanPreferenceValue || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_unav_utils_29_0_1_polaris_19_index_jsdbx_68df7250__[\"default\"].getBooleanPreferenceValue;\n\t\t\t\t} });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"debounce\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__.__esModule\n\t\t\t\t\tif (cjsModule && 'debounce' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"].debounce;\n\t\t\t\t\t} else if ('debounce' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__.debounce || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__[\"default\"].debounce;\n\t\t\t\t} });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__.__esModule\n\t\t\t\t\tif (cjsModule && 'default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"];\n\t\t\t\t\t} else if ('default' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"];\n\t\t\t\t}, [\"getFocusableNodes\"]: () => {\n\t\t\t\t\tconst cjsModule = __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__.default && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__.__esModule\n\t\t\t\t\tif (cjsModule && 'getFocusableNodes' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"];\n\t\t\t\t\t} else if (cjsModule)  {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"].getFocusableNodes;\n\t\t\t\t\t} else if ('getFocusableNodes' === 'default') {\n\t\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] ? (__WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] ? __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"][\"default\"] : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"]) : __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__;\n\t\t\t\t\t}\n\t\t\t\t\treturn __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__.getFocusableNodes || __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"] && __WEBPACK_EXTERNAL_MODULE__uxasset_externals_servicenow_behavior_focus_27_0_2_index_jsdbx_a69e6d00__[\"default\"].getFocusableNodes;\n\t\t\t\t} });","export const PORTAL_TYPES = {\n\tUNIFIED_NAVIGATION: 'unified-navigation',\n\tSERVICE_PORTAL: 'service-portal',\n\tEXAMPLE_APP: 'example-app',\n};\n","/* eslint-disable no-console */\nimport {getComponentsByTagNames} from '@devsnc/library-uxf';\nimport {getBooleanPreferenceValue, PREFERENCES} from '@devsnc/unav-utils';\nimport {debounce} from '@devsnc/snowdash';\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\nconst newWindowDataConfig = (payload, portalType) => ({\n\tid: payload.id || createGuid(),\n\theadingLabel: 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\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\tif (properties.unifiedNavComponent) {\n\t\t\t\tproperties.unifiedNavComponent.dispatch(\n\t\t\t\t\t'POLARIS#REGISTER_WINDOW_MANAGER',\n\t\t\t\t\t{\n\t\t\t\t\t\twindowManager: host,\n\t\t\t\t\t},\n\t\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\nexport const updateBodyClassName = (coeffects) => {\n\tconst {\n\t\tstate,\n\t\taction: {payload},\n\t\tdispatch,\n\t} = coeffects;\n\tconst {properties} = state;\n\tconst {windowsState} = properties;\n\tconst {leftDockId, rightDockId, bottomDockId} = windowsState;\n\n\t// closing left dock\n\tif (document.body.classList.contains('dockLeft') && leftDockId === null) {\n\t\tdocument.body.classList.remove('dockLeft');\n\t\tif (!payload.secondaryMenuId) {\n\t\t\tdispatch(\n\t\t\t\tdocument.dir === 'rtl' ? 'CONTEXTUAL_MENU#PINNED' : 'MAIN_MENU#PINNED',\n\t\t\t\t{\n\t\t\t\t\tdoPinning: false,\n\t\t\t\t\tisPrimary: true,\n\t\t\t\t\tprimaryMenuId: null,\n\t\t\t\t\tisPinnedWindow: true,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t}\n\t// closing right dock\n\tif (document.body.classList.contains('dockRight') && rightDockId === null) {\n\t\tdocument.body.classList.remove('dockRight');\n\t\tif (!payload.secondaryMenuId) {\n\t\t\tdispatch('CONTEXTUAL_MENU#PINNED', {\n\t\t\t\tdoPinning: false,\n\t\t\t\tisPrimary: true,\n\t\t\t\tprimaryMenuId: null,\n\t\t\t\tisPinnedWindow: true,\n\t\t\t});\n\t\t}\n\t}\n\t// closing bottom dock\n\tif (document.body.classList.contains('dockBottom') && bottomDockId === null) {\n\t\tdocument.body.classList.remove('dockBottom');\n\t}\n\n\t// opening left dock\n\tif (!document.body.classList.contains('dockLeft') && leftDockId !== null) {\n\t\tdocument.body.classList.add('dockLeft');\n\t\tdispatch(\n\t\t\tdocument.dir === 'rtl' ? 'CONTEXTUAL_MENU#PINNED' : 'MAIN_MENU#PINNED',\n\t\t\t{\n\t\t\t\tdoPinning: true,\n\t\t\t\tisPrimary: true,\n\t\t\t\tprimaryMenuId: leftDockId,\n\t\t\t\tisPinnedWindow: true,\n\t\t\t},\n\t\t);\n\t}\n\t// opening right dock\n\tif (!document.body.classList.contains('dockRight') && rightDockId !== null) {\n\t\tdocument.body.classList.add('dockRight');\n\t\tdispatch('CONTEXTUAL_MENU#PINNED', {\n\t\t\tdoPinning: true,\n\t\t\tisPrimary: true,\n\t\t\tprimaryMenuId: rightDockId,\n\t\t\tisPinnedWindow: true,\n\t\t});\n\t}\n\t// opening bottom dock\n\tif (\n\t\t!document.body.classList.contains('dockBottom') &&\n\t\tbottomDockId !== null\n\t) {\n\t\tdocument.body.classList.add('dockBottom');\n\t}\n};\n\nexport const handleStateChangeCallback = (windowConfig, state) => {\n\tif (windowConfig.stateChangeCallback) {\n\t\twindowConfig.stateChangeCallback({state});\n\t}\n};\n\nexport const handleCreateWindow = (coeffects) => {\n\tconst {updateProperties, state, action, host, dispatch} = coeffects;\n\tconst {\n\t\twindowsList,\n\t\twindowsState,\n\t\tportalType,\n\t\tbrowserDimensions,\n\t\tbottomToolbarComponent,\n\t} = state.properties;\n\tconst {payload} = action;\n\n\tconst existingWindowConfig = windowsList.find(\n\t\t(currentWindow) => currentWindow.id === payload.id,\n\t);\n\n\tif (existingWindowConfig) {\n\t\tcoeffects.action.payload.windowConfig = existingWindowConfig;\n\n\t\t// DEF0722407: if a window has been created with isOpen set to false\n\t\t// and createWindow gets called again for that same window, do not open it.\n\t\t// we need to check the incoming payload and not existingWindowConfig because isOpen\n\t\t// could change in existingWindowConfig after it has been created\n\t\tif (coeffects.action.payload.windowConfig.isOpen !== false) {\n\t\t\t// eslint-disable-next-line no-use-before-define\n\t\t\thandleOpenWindow(coeffects);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (\n\t\tpayload.content?.component &&\n\t\ttypeof payload.content?.component === 'string'\n\t) {\n\t\tgetComponentsByTagNames([payload.content.component]);\n\t}\n\n\tconst newWindowConfig = newWindowDataConfig(payload, portalType);\n\n\tconsole.info('New Window Config', {newWindowConfig, payload});\n\n\t// determine window position if the user has opted to define position and offset instead of dialogLocation\n\n\t// Case where the y value is not specified\n\tif (\n\t\tnewWindowConfig.dialogLocation.top === -1 &&\n\t\tnewWindowConfig.dialogLocation.bottom === -1\n\t) {\n\t\tif (newWindowConfig.position === 'centered') {\n\t\t\tnewWindowConfig.dialogLocation.top =\n\t\t\t\t(window.innerHeight - newWindowConfig.dialogSize.height) / 2;\n\t\t} else if (\n\t\t\tnewWindowConfig.position === 'top-right' ||\n\t\t\tnewWindowConfig.position === 'top-left'\n\t\t) {\n\t\t\tnewWindowConfig.dialogLocation.top = newWindowConfig.offset[1];\n\t\t} else if (\n\t\t\tnewWindowConfig.position === 'bottom-right' ||\n\t\t\tnewWindowConfig.position === 'bottom-left'\n\t\t) {\n\t\t\tnewWindowConfig.dialogLocation.bottom = newWindowConfig.offset[1];\n\t\t}\n\t}\n\n\t// Case where the x value is not specified\n\tif (\n\t\tnewWindowConfig.dialogLocation.left === -1 &&\n\t\tnewWindowConfig.dialogLocation.right === -1\n\t) {\n\t\tif (newWindowConfig.position === 'centered') {\n\t\t\tnewWindowConfig.dialogLocation.left =\n\t\t\t\t(window.innerWidth - newWindowConfig.dialogSize.width) / 2;\n\t\t} else if (\n\t\t\tnewWindowConfig.position === 'top-left' ||\n\t\t\tnewWindowConfig.position === 'bottom-left'\n\t\t) {\n\t\t\tnewWindowConfig.dialogLocation.left = newWindowConfig.offset[0];\n\t\t} else if (\n\t\t\tnewWindowConfig.position === 'top-right' ||\n\t\t\tnewWindowConfig.position === 'bottom-right'\n\t\t) {\n\t\t\tnewWindowConfig.dialogLocation.right = newWindowConfig.offset[0];\n\t\t}\n\t}\n\n\t// Only keep the coordinate system that is being used\n\tnewWindowConfig.dialogLocation = {\n\t\t...(newWindowConfig.dialogLocation.top !== -1\n\t\t\t? {top: newWindowConfig.dialogLocation.top}\n\t\t\t: {bottom: newWindowConfig.dialogLocation.bottom}),\n\t\t...(newWindowConfig.dialogLocation.left !== -1\n\t\t\t? {left: newWindowConfig.dialogLocation.left}\n\t\t\t: {right: newWindowConfig.dialogLocation.right}),\n\t};\n\n\t//get the current sn-window-manager-toolbar height\n\tconst {offsetHeight: bottomDockHeight} =\n\t\tbottomToolbarComponent.shadowRoot.querySelector(\n\t\t\t'.sn-window-manager-toolbar',\n\t\t);\n\t//adjust window location and normalize the coordinates for offset\n\tnewWindowConfig.dialogLocation = updateDialogLocationBottomDock(\n\t\tnewWindowConfig,\n\t\tbottomDockHeight,\n\t);\n\n\t// Offset window if it's overlapping with another window\n\tconst isAnyWindowOverlapping = windowsList.find((window) =>\n\t\tareWindowsOverlapping(window, newWindowConfig),\n\t);\n\tif (isAnyWindowOverlapping) {\n\t\tnewWindowConfig.dialogLocation = findAvailableDialogPosition(\n\t\t\tnewWindowConfig.dialogLocation,\n\t\t\twindowsList,\n\t\t\tnewWindowConfig.dialogSize,\n\t\t\tbottomDockHeight,\n\t\t\tnewWindowConfig,\n\t\t);\n\t}\n\n\t// Position it top left to allow for proper fit-content calculation\n\tif (newWindowConfig.fitContent) {\n\t\tnewWindowConfig.dialogLocation = {top: 0, left: 0};\n\t}\n\n\t// create new sn-window element\n\tconst nowWindow = document.createElement('sn-window');\n\tnowWindow.animationsDisabled = state.properties.animationsDisabled;\n\tnowWindow.id = `window-${newWindowConfig.id}`;\n\tnowWindow.windowConfig = newWindowConfig;\n\tnowWindow.windowsList = windowsList;\n\tnowWindow.windowsState = windowsState;\n\tnowWindow.dialogSize = newWindowConfig.dialogSize;\n\tnowWindow.dialogLocation = newWindowConfig.dialogLocation;\n\tnowWindow.dockedWindowSize = newWindowConfig.dockedWindowSize;\n\tnowWindow.modalSize = newWindowConfig.modalSize;\n\tnowWindow.portalType = portalType || PORTAL_TYPES.UNIFIED_NAVIGATION;\n\tnowWindow.isModal = newWindowConfig.isModal;\n\tnowWindow.isDocked = newWindowConfig.startingState?.indexOf('docked') >= 0;\n\tnowWindow.isFloating =\n\t\tnewWindowConfig.startingState?.indexOf('floating') >= 0;\n\tnowWindow.canResize = newWindowConfig.canResize;\n\tnowWindow.resizableConfig = newWindowConfig.resizableConfig;\n\tnowWindow.maxWindowSizePercentage = newWindowConfig.maxWindowSizePercentage;\n\tnowWindow.fullscreenViewConfig = newWindowConfig.fullscreenViewConfig;\n\tnowWindow.browserDimensions = browserDimensions;\n\tnowWindow.bottomToolbarComponent = bottomToolbarComponent;\n\tnowWindow.configAria = newWindowConfig.configAria;\n\tnowWindow.isHidden = newWindowConfig.fitContent;\n\tnowWindow.isDirty = false;\n\tnowWindow.isOpen = newWindowConfig.isOpen;\n\n\tnewWindowConfig.component = nowWindow;\n\n\tconst modalWindows = windowsState.modalWindows || [];\n\n\tif (newWindowConfig.startingState === 'modal') {\n\t\t// nowWindow.resizableConfig.enableResizable = false;\n\t\tmodalWindows.push(newWindowConfig.id);\n\t}\n\n\tif (newWindowConfig.startingState?.indexOf('docked') >= 0) {\n\t\t// nowWindow.resizableConfig.enableResizable = false;\n\t\tif (newWindowConfig.startingState === 'docked-left') {\n\t\t\twindowsState.leftDockId = newWindowConfig.id;\n\t\t}\n\t\tif (newWindowConfig.startingState === 'docked-right') {\n\t\t\twindowsState.rightDockId = newWindowConfig.id;\n\t\t}\n\t\tif (newWindowConfig.startingState === 'docked-bottom') {\n\t\t\twindowsState.bottomDockId = newWindowConfig.id;\n\t\t}\n\n\t\tdispatch(UPDATE_BODY_CLASS_NAMES);\n\t}\n\n\t// call state change callback\n\thandleStateChangeCallback(\n\t\tnewWindowConfig,\n\t\t!newWindowConfig.isOpen ? 'closed' : newWindowConfig.startingState,\n\t);\n\n\t// append the new window to host element\n\tif (\n\t\tpayload.content.component.elm?.tagName === 'NOW-UXF-PAGE-SIMPLE-CONTAINER'\n\t) {\n\t\tpayload.content.component.elm.appendChild(nowWindow);\n\t} else {\n\t\thost.shadowRoot.appendChild(nowWindow);\n\t}\n\n\t//if uxf window and hideOthers is enabled, minimize other windows\n\tif (newWindowConfig.isUXFWindow && payload.hideOthers) {\n\t\tfor (const window of windowsList) {\n\t\t\tif (window.id !== newWindowConfig.id) {\n\t\t\t\thandleToggleMinimize({\n\t\t\t\t\t...coeffects,\n\t\t\t\t\taction: {\n\t\t\t\t\t\t...coeffects.action,\n\t\t\t\t\t\tpayload: {\n\t\t\t\t\t\t\twindowConfig: {id: window.id},\n\t\t\t\t\t\t\tforceMinimize: true,\n\t\t\t\t\t\t\toverrideConfig: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tupdateProperties({\n\t\twindowsList: [...windowsList, newWindowConfig],\n\t\twindowsState: {\n\t\t\t...windowsState,\n\t\t\tactiveWindowId: newWindowConfig.id,\n\t\t\tmodalWindows: modalWindows,\n\t\t},\n\t});\n};\n\nexport const handleCloseWindow = (coeffects) => {\n\tconst {updateProperties, state, action, dispatch} = coeffects;\n\tconst {windowsList, windowsState, showCloseConfirmDialog} = state.properties;\n\tconst {\n\t\tpayload: {\n\t\t\twindowConfig,\n\t\t\tforceDestroy = false,\n\t\t\toverrideConfig = false,\n\t\t\tclosedFromButton = false,\n\t\t},\n\t} = action;\n\tconst currentWindow = windowsList.find(\n\t\t(window) => window.id === windowConfig.id,\n\t);\n\n\tconst reopenAsFloatingWindow = currentWindow?.reopenAsFloatingWindow || false;\n\n\t// Ensure the config doesn't prevent closing (unless overrideConfig is true)\n\tif (\n\t\t!currentWindow ||\n\t\t(!currentWindow.canClose && !overrideConfig && !forceDestroy)\n\t) {\n\t\treturn;\n\t}\n\n\tconsole.info('Closing Window', {\n\t\tshowCloseConfirmDialog,\n\t\tcurrentWindow,\n\t\tpayload: action.payload,\n\t});\n\n\tif (\n\t\t(!forceDestroy && currentWindow.component.isDirty) ||\n\t\twindowConfig.confirmClose\n\t) {\n\t\tupdateProperties({\n\t\t\tshowCloseConfirmDialog: true,\n\t\t\tclosingWindowId: currentWindow.id,\n\t\t\tconfirmCloseMessage: windowConfig.confirmCloseMessage || null,\n\t\t});\n\t\tif (currentWindow.component.isDirty) {\n\t\t\tdispatchEventToWindow(\n\t\t\t\twindowsList,\n\t\t\t\tcurrentWindow.id,\n\t\t\t\t'SN_WINDOW#CLOSE_REQUESTED',\n\t\t\t\t{\n\t\t\t\t\tmeta: action.payload.meta,\n\t\t\t\t\twindowId: currentWindow.id,\n\t\t\t\t\tscreenKey: currentWindow.screenKey,\n\t\t\t\t\tinstanceId: currentWindow.instanceId,\n\t\t\t\t\texperienceId: currentWindow.experienceId,\n\t\t\t\t\tcomponentId: currentWindow.uxrComponentId,\n\t\t\t\t},\n\t\t\t);\n\t\t}\n\t\treturn;\n\t}\n\n\tconst nowWindow = currentWindow.component;\n\tconst isPersistent = currentWindow.isPersistent || false;\n\n\tlet newWindowsList = null;\n\tlet newMinimizedWindows = windowsState.minimizedWindows || [];\n\tlet newModalWindows = windowsState.modalWindows || [];\n\tconst activeWindowId = windowsState.activeWindowId || null;\n\n\t// let the window's content element know that the window is being closed before we close it\n\tif (showCloseConfirmDialog) {\n\t\tdispatchEventToWindow(\n\t\t\twindowsList,\n\t\t\tcurrentWindow.id,\n\t\t\t'SN_WINDOW#CLOSE_CONFIRMED',\n\t\t\t{\n\t\t\t\twindowId: currentWindow.id,\n\t\t\t\tscreenKey: currentWindow.screenKey,\n\t\t\t\tinstanceId: currentWindow.instanceId,\n\t\t\t\texperienceId: currentWindow.experienceId,\n\t\t\t\tcomponentId: currentWindow.uxrComponentId,\n\t\t\t},\n\t\t);\n\t}\n\n\t// HDS legacy: Dispatch NOW_MODELESS_DIALOG events\n\tconst windowComponent = currentWindow.component;\n\tconst contentElement = currentWindow.component?.contentElement;\n\tconst isFullscreen = currentWindow.component.isFullscreenView ?? false;\n\n\tdispatchModelessDialogAction({\n\t\tcontentElement,\n\t\twindowConfig: currentWindow.windowConfig,\n\t\tactionName: NOW_MODELESS_DIALOG_OPENED_SET,\n\t\tpayload: {value: false},\n\t});\n\n\t// DEF0802061: dont disaptch this event if the window is already closed as it will trigger ai-notebook-explorer to close a dialog which should not get closed\n\tif (currentWindow.isOpen) {\n\t\twindow.requestAnimationFrame(() => {\n\t\t\tconst windowBounds = windowComponent?.shadowRoot\n\t\t\t\t?.querySelector('.sn-window-wrapper')\n\t\t\t\t?.getBoundingClientRect();\n\t\t\tif (windowBounds) {\n\t\t\t\tdispatchModelessDialogAction({\n\t\t\t\t\tcontentElement,\n\t\t\t\t\twindowConfig: currentWindow.windowConfig,\n\t\t\t\t\tactionName: NOW_MODELESS_DIALOG_CLOSE,\n\t\t\t\t\tbounds: windowBounds,\n\t\t\t\t\tisFullscreen,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\twindow.requestAnimationFrame(() => {\n\t\tdispatchEventToContentElement(currentWindow, SN_WINDOW_CLOSED, {\n\t\t\twasConfirmed: showCloseConfirmDialog,\n\t\t\tclosedFromButton,\n\t\t});\n\t});\n\n\t// If the window is persistent AND we aren't forcing a destroy, then just close the window\n\tif (isPersistent && !forceDestroy) {\n\t\tcurrentWindow.isOpen = false;\n\t\tcurrentWindow.component.isOpen = false;\n\n\t\t// remove old entry from windowsList and add the updated entry\n\t\tnewWindowsList = windowsList.filter(\n\t\t\t(window) => window.id !== currentWindow.id,\n\t\t);\n\t\tnewWindowsList.push(currentWindow);\n\t\tnewMinimizedWindows = windowsState.minimizedWindows.filter(\n\t\t\t(window) => window !== currentWindow.id,\n\t\t);\n\t} else {\n\t\tcurrentWindow.isOpen = false;\n\t\tcurrentWindow.component.isOpen = false;\n\n\t\tnewWindowsList = windowsList.filter(\n\t\t\t(window) => window.id !== currentWindow.id,\n\t\t);\n\t\tnewMinimizedWindows = windowsState.minimizedWindows.filter(\n\t\t\t(window) => window !== currentWindow.id,\n\t\t);\n\t\tnewModalWindows = windowsState.modalWindows.filter(\n\t\t\t(window) => window !== currentWindow.id,\n\t\t);\n\n\t\tsetTimeout(() => {\n\t\t\tnowWindow.remove();\n\t\t}, 30);\n\t}\n\n\tif (windowsState.leftDockId === currentWindow.id) {\n\t\twindowsState.leftDockId = null;\n\t\tcurrentWindow.component.stateWhenClosed = 'docked-left';\n\t}\n\tif (windowsState.rightDockId === currentWindow.id) {\n\t\twindowsState.rightDockId = null;\n\t\tcurrentWindow.component.stateWhenClosed = 'docked-right';\n\t}\n\tif (windowsState.bottomDockId === currentWindow.id) {\n\t\twindowsState.bottomDockId = null;\n\t\tcurrentWindow.component.stateWhenClosed = 'docked-bottom';\n\t}\n\tif (currentWindow.component.isModal) {\n\t\tcurrentWindow.component.stateWhenClosed = 'modal';\n\t}\n\tif (reopenAsFloatingWindow || currentWindow.component.isFloating) {\n\t\tcurrentWindow.component.stateWhenClosed = 'floating';\n\t}\n\n\tupdateProperties({\n\t\tshowCloseConfirmDialog: false,\n\t\tclosingWindowId: null,\n\t\twindowsList: newWindowsList,\n\t\twindowsState: {\n\t\t\t...windowsState,\n\t\t\tminimizedWindows: newMinimizedWindows,\n\t\t\tmodalWindows: newModalWindows,\n\t\t\t...(reopenAsFloatingWindow && {\n\t\t\t\tmodalWindows: newModalWindows.filter(\n\t\t\t\t\t(window) => window !== currentWindow.id,\n\t\t\t\t),\n\t\t\t}),\n\t\t\tactiveWindowId:\n\t\t\t\tactiveWindowId === currentWindow.id ? null : activeWindowId,\n\t\t},\n\t});\n\n\twindow.requestAnimationFrame(() => {\n\t\tdispatch(UPDATE_BODY_CLASS_NAMES);\n\t});\n\n\thandleStateChangeCallback(currentWindow, 'closed');\n};\n\nexport const handleOpenWindow = (coeffects) => {\n\tconst {updateProperties, state, action, dispatch} = coeffects;\n\tconst {windowsList, windowsState} = state.properties;\n\tconst {payload} = action;\n\tconst currentWindow = windowsList.find(\n\t\t(window) => window.id === payload.windowConfig.id,\n\t);\n\n\tif (!currentWindow) {\n\t\treturn;\n\t}\n\n\tif (payload.newProperties) {\n\t\t// interate over the contentElementData and set the properties on the contentElement component\n\t\tconst contentElementProperties = payload.newProperties || null;\n\t\tif (contentElementProperties) {\n\t\t\tObject.keys(contentElementProperties).forEach((key) => {\n\t\t\t\tcurrentWindow.component.contentElement[key] =\n\t\t\t\t\tcontentElementProperties[key];\n\t\t\t});\n\t\t}\n\t}\n\n\tif (currentWindow.isOpen) {\n\t\t// Window is already open, just bring it to front\n\t\tupdateProperties({\n\t\t\twindowsState: {\n\t\t\t\t...windowsState,\n\t\t\t\tactiveWindowId: currentWindow.id,\n\t\t\t},\n\t\t});\n\n\t\tdispatchEventToContentElement(currentWindow, SN_WINDOW_OPENED);\n\t\treturn;\n\t}\n\n\tcurrentWindow.isOpen = true;\n\t// Animate it early to beat any race condition\n\tcurrentWindow.component.isAnimating = true;\n\tcurrentWindow.component.isOpen = true;\n\n\tconst newWindowList = windowsList.filter(\n\t\t(window) => window.id !== currentWindow.id,\n\t);\n\tnewWindowList.push(currentWindow);\n\n\tconst isMinimized = windowsState.minimizedWindows.includes(currentWindow.id);\n\tlet minimizedWindows = windowsState.minimizedWindows || [];\n\tif (isMinimized) {\n\t\tminimizedWindows = windowsState.minimizedWindows.filter(\n\t\t\t(windowId) => windowId !== currentWindow.id,\n\t\t);\n\t}\n\n\tconst windowStartingState = currentWindow.component.stateWhenClosed;\n\tif (windowStartingState !== '') {\n\t\tif (windowStartingState.indexOf('docked') >= 0) {\n\t\t\tif (windowStartingState === 'docked-left') {\n\t\t\t\twindowsState.leftDockId = currentWindow.id;\n\t\t\t}\n\t\t\tif (windowStartingState === 'docked-right') {\n\t\t\t\twindowsState.rightDockId = currentWindow.id;\n\t\t\t}\n\t\t\tif (windowStartingState === 'docked-bottom') {\n\t\t\t\twindowsState.bottomDockId = currentWindow.id;\n\t\t\t}\n\t\t\tcurrentWindow.component.isDocked = true;\n\t\t}\n\n\t\tcurrentWindow.component.stateWhenClosed = '';\n\t\tdispatch(UPDATE_BODY_CLASS_NAMES);\n\t\thandleStateChangeCallback(currentWindow, windowStartingState);\n\t}\n\n\tupdateProperties({\n\t\twindowsList: newWindowList,\n\t\twindowsState: {\n\t\t\t...state.properties.windowsState,\n\t\t\tactiveWindowId: currentWindow.id,\n\t\t\tminimizedWindows: minimizedWindows,\n\t\t},\n\t});\n\n\tdispatchEventToContentElement(currentWindow, SN_WINDOW_OPENED);\n};\n\nexport const handleModalToggle = (coeffects) => {\n\tconst {updateProperties, state, action, dispatch} = coeffects;\n\tconst {\n\t\tproperties: {windowsState, windowsList},\n\t} = state;\n\tconst {\n\t\tpayload: {windowConfig, forceEnableModal = false, overrideConfig = false},\n\t} = action;\n\tconst currentWindow = windowsList.find(\n\t\t(window) => window.id === windowConfig.id,\n\t);\n\n\t// Check if config doesn't prevent modal toggling (unless overrideConfig is true)\n\tif (\n\t\t!currentWindow ||\n\t\t(!(currentWindow.canToggleModal || currentWindow.canMaximize) &&\n\t\t\t!overrideConfig)\n\t) {\n\t\treturn;\n\t}\n\n\tlet modalWindows = windowsState.modalWindows || [];\n\n\tlet isModal;\n\n\tif (windowsState.modalWindows.includes(currentWindow.id)) {\n\t\t// When the window is already modal, we only want to remove it if the user isn't forcing modal mode\n\t\tif (!forceEnableModal) {\n\t\t\tmodalWindows = windowsState.modalWindows.filter(\n\t\t\t\t(windowId) => windowId !== currentWindow.id,\n\t\t\t);\n\t\t\tisModal = false;\n\t\t}\n\t} else {\n\t\tmodalWindows.push(currentWindow.id);\n\t\tisModal = true;\n\t}\n\n\tupdateProperties({\n\t\twindowsState: {\n\t\t\t...windowsState,\n\t\t\tmodalWindows: modalWindows,\n\t\t\tactiveWindowId: currentWindow.id,\n\t\t\tleftDockId:\n\t\t\t\twindowsState.leftDockId === currentWindow.id\n\t\t\t\t\t? null\n\t\t\t\t\t: windowsState.leftDockId,\n\t\t\trightDockId:\n\t\t\t\twindowsState.rightDockId === currentWindow.id\n\t\t\t\t\t? null\n\t\t\t\t\t: windowsState.rightDockId,\n\t\t\tbottomDockId:\n\t\t\t\twindowsState.bottomDockId === currentWindow.id\n\t\t\t\t\t? null\n\t\t\t\t\t: windowsState.bottomDockId,\n\t\t},\n\t});\n\tdispatch(UPDATE_BODY_CLASS_NAMES);\n\thandleStateChangeCallback(currentWindow, isModal ? 'modal' : 'floating');\n\t// HDS legacy: Toggle between full-screen view (floating) and modal view\n\tconst isFullscreen = isModal;\n\tdispatchModelessDialogAction({\n\t\tcontentElement: currentWindow?.component?.contentElement,\n\t\twindowConfig: currentWindow.windowConfig,\n\t\tactionName: NOW_MODELESS_DIALOG_MAXIMIZE,\n\t\tdialogSize: currentWindow?.component?.dialogSize,\n\t\tdialogLocation: currentWindow?.component?.dialogLocation,\n\t\tisFullscreen,\n\t});\n};\n\nexport const handleModelessMousedown = (coeffects) => {\n\tconst {action, state} = coeffects;\n\tconst {payload} = action;\n\tconst {properties} = state;\n\n\tif (properties.windowConfig.canDrag) {\n\t\tdispatchModelessDialogAction({\n\t\t\tcontentElement: properties.contentElement,\n\t\t\twindowConfig: properties.windowConfig,\n\t\t\tactionName: NOW_MODELESS_DIALOG_MOUSEDOWN,\n\t\t\tdialogSize: properties.dialogSize,\n\t\t\tdialogLocation: properties.dialogLocation,\n\t\t\tmouseEvent: payload.mouseEvent,\n\t\t});\n\t}\n};\n\nexport const handleModelessMouseup = (coeffects) => {\n\tconst {action, state} = coeffects;\n\tconst {properties} = state;\n\n\tdispatchModelessDialogAction({\n\t\tcontentElement: properties.contentElement,\n\t\twindowConfig: properties.windowConfig,\n\t\tactionName: NOW_MODELESS_DIALOG_MOUSEUP,\n\t\tdialogSize: properties.dialogSize,\n\t\tdialogLocation: properties.dialogLocation,\n\t\tmouseEvent: action.payload?.mouseEvent,\n\t});\n};\n\nexport const handleSetWindowActive = (coeffects) => {\n\tconst {updateProperties, state, action} = coeffects;\n\tconst {windowsState} = state.properties;\n\tconst {payload} = action;\n\n\tconst currentWindow = state.properties.windowsList.find(\n\t\t(window) => window.id === payload.windowConfig.id,\n\t);\n\n\t// Focus the window\n\tcurrentWindow.component.focus();\n\n\tif (\n\t\twindowsState.activeWindowId === payload.windowConfig.id ||\n\t\t!currentWindow\n\t) {\n\t\treturn;\n\t}\n\n\tupdateProperties({\n\t\twindowsState: {\n\t\t\t...windowsState,\n\t\t\tactiveWindowId: payload.windowConfig.id,\n\t\t},\n\t});\n\t// dispatchEventToContentElement(currentWindow, SN_WINDOW_FOCUSED);\n};\n\nexport const handleToggleMinimize = (coeffects) => {\n\tconst {\n\t\tupdateProperties,\n\t\tstate: {\n\t\t\tproperties: {windowsList, windowsState},\n\t\t},\n\t\taction: {\n\t\t\tpayload: {\n\t\t\t\twindowConfig: {id: windowId},\n\t\t\t\tforceMinimize = false,\n\t\t\t\toverrideConfig = false,\n\t\t\t},\n\t\t},\n\t} = coeffects;\n\tconst currWindow = windowsList.find(\n\t\t(currentWindow) => currentWindow.id === windowId,\n\t);\n\n\t// Ensure the config doesn't prevent minimizing (unless overrideConfig is true)\n\tif (!currWindow || (!currWindow.canMinimize && !overrideConfig)) {\n\t\treturn;\n\t}\n\n\tconst currMinimizedWidows = windowsState.minimizedWindows || [];\n\tconst isMinimized = currMinimizedWidows.includes(windowId);\n\tlet newActiveWindowId;\n\n\tif (isMinimized) {\n\t\t// When the window is already minimized and we're forcing minimization, we maintain the current state\n\t\tif (forceMinimize) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove it from our list of minimized windows\n\t\tcurrMinimizedWidows.splice(currMinimizedWidows.indexOf(windowId), 1);\n\n\t\t// Update new active window id\n\t\tnewActiveWindowId = windowId;\n\n\t\t// Keep existing positions for other minimized windows, remove only this window's position\n\t\tconst existingPositions = {\n\t\t\t...windowsState.minimizedTargetPositions,\n\t\t};\n\t\tdelete existingPositions[windowId];\n\n\t\tconst newWindowsState = {\n\t\t\t...windowsState,\n\t\t\tminimizedWindows: currMinimizedWidows,\n\t\t\tactiveWindowId: newActiveWindowId,\n\t\t\tminimizedTargetPositions: existingPositions,\n\t\t\tisRestoring: true,\n\t\t};\n\n\t\tupdateProperties({\n\t\t\twindowsState: newWindowsState,\n\t\t});\n\t\t// Propagate to windows so their COMPONENT_PROPERTY_CHANGED runs and they recompute/animate\n\t\twindowsList.forEach((window) => {\n\t\t\tif (window.component) {\n\t\t\t\twindow.component.windowsState = newWindowsState;\n\t\t\t\tdispatchEventToWindow(windowsList, window.id, 'PROPERTY_CHANGED', {\n\t\t\t\t\tname: 'windowsState',\n\t\t\t\t\tvalue: newWindowsState,\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tsetTimeout(() => {\n\t\t\tconst existingPositionValues = Object.values(existingPositions);\n\t\t\tconst finalWindowsState =\n\t\t\t\texistingPositionValues.length > 0\n\t\t\t\t\t? {\n\t\t\t\t\t\t\t...windowsState,\n\t\t\t\t\t\t\tminimizedTargetPositions: Object.fromEntries(\n\t\t\t\t\t\t\t\tcurrMinimizedWidows\n\t\t\t\t\t\t\t\t\t.map((wId, index) => [\n\t\t\t\t\t\t\t\t\t\twId,\n\t\t\t\t\t\t\t\t\t\texistingPositionValues.sort((a, b) => a.left - b.left)[\n\t\t\t\t\t\t\t\t\t\t\tindex\n\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t])\n\t\t\t\t\t\t\t\t\t.filter(([, position]) => position),\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tisRestoring: false,\n\t\t\t\t\t\t}\n\t\t\t\t\t: {\n\t\t\t\t\t\t\t...windowsState,\n\t\t\t\t\t\t\tisRestoring: false,\n\t\t\t\t\t\t};\n\n\t\t\tupdateProperties({windowsState: finalWindowsState});\n\t\t\t// Propagate to windows so their COMPONENT_PROPERTY_CHANGED runs and they recompute/animate\n\n\t\t\twindowsList.forEach((window) => {\n\t\t\t\tif (window.component) {\n\t\t\t\t\twindow.component.windowsState = finalWindowsState;\n\t\t\t\t\tdispatchEventToWindow(windowsList, window.id, 'PROPERTY_CHANGED', {\n\t\t\t\t\t\tname: 'windowsState',\n\t\t\t\t\t\tvalue: finalWindowsState,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}, 100);\n\n\t\tconst viewportWidth = window.innerWidth;\n\t\tconst viewportHeight = window.innerHeight;\n\t\tconst dialogSize = currWindow.component.dialogSize;\n\t\tconst dialogLocation = currWindow.component.dialogLocation;\n\n\t\t// Only clamp the window if it's overflowing the viewport\n\t\tif (\n\t\t\t!isWindowInBounds(\n\t\t\t\tdialogSize,\n\t\t\t\tdialogLocation,\n\t\t\t\tviewportWidth,\n\t\t\t\tviewportHeight,\n\t\t\t)\n\t\t) {\n\t\t\tconst clampedPosition = clampDialogPosition({dialogLocation, dialogSize});\n\n\t\t\tcurrWindow.dialogLocation = {\n\t\t\t\t...(dialogLocation.top !== undefined\n\t\t\t\t\t? {top: clampedPosition.top}\n\t\t\t\t\t: {bottom: clampedPosition.bottom}),\n\t\t\t\t...(dialogLocation.left !== undefined\n\t\t\t\t\t? {left: clampedPosition.left}\n\t\t\t\t\t: {right: clampedPosition.right}),\n\t\t\t};\n\t\t\tcurrWindow.dialogSize = {\n\t\t\t\twidth: clampedPosition.width,\n\t\t\t\theight: clampedPosition.height,\n\t\t\t};\n\n\t\t\tcurrWindow.component.dialogLocation = currWindow.dialogLocation;\n\t\t\tcurrWindow.component.dialogSize = currWindow.dialogSize;\n\t\t}\n\n\t\tconst windowContainer =\n\t\t\tcurrWindow.component.shadowRoot.querySelector('.sn-window-wrapper');\n\n\t\tif (!windowContainer) {\n\t\t\treturn;\n\t\t}\n\t} else {\n\t\t// HDS legacy: Dispatch NOW_MODELESS_DIALOG#MINIMIZE before hiding\n\t\tconst windowBounds = currWindow.component?.shadowRoot\n\t\t\t?.querySelector('.sn-window-wrapper')\n\t\t\t?.getBoundingClientRect();\n\t\tif (windowBounds) {\n\t\t\tconst isFullscreen = currWindow.component.isFullscreenView || false;\n\t\t\tdispatchModelessDialogAction({\n\t\t\t\tcontentElement: currWindow?.component?.contentElement,\n\t\t\t\twindowConfig: currWindow.windowConfig,\n\t\t\t\tactionName: NOW_MODELESS_DIALOG_MINIMIZE,\n\t\t\t\tbounds: windowBounds,\n\t\t\t\tisFullscreen,\n\t\t\t});\n\t\t}\n\n\t\t// Update new active window id\n\t\tnewActiveWindowId = windowsState.activeWindowId;\n\n\t\t// Add it to our list of minimized windows\n\t\tcurrMinimizedWidows.push(windowId);\n\t}\n\n\t// toggle the properties\n\tcurrWindow.isMinimized = !isMinimized;\n\tcurrWindow.component.isMinimized = !isMinimized;\n\tcurrWindow.isOpen = isMinimized;\n\tcurrWindow.component.isOpen = isMinimized;\n\n\tdispatchEventToContentElement(currWindow, SN_WINDOW_MINIMIZED, {\n\t\tisMinimized: !isMinimized,\n\t});\n\n\tupdateProperties({\n\t\twindowsState: {\n\t\t\t...windowsState,\n\t\t\tminimizedWindows: currMinimizedWidows,\n\t\t\tactiveWindowId: newActiveWindowId,\n\t\t},\n\t});\n};\n\nexport const handleCheckWindowLocations = (coeffects) => {\n\tconst {\n\t\tstate: {\n\t\t\tproperties: {windowsList},\n\t\t},\n\t} = coeffects;\n\n\twindowsList.map((currentWindow) => {\n\t\tdispatchEventToWindow(\n\t\t\twindowsList,\n\t\t\tcurrentWindow.id,\n\t\t\tSN_WINDOW_CHECK_LOCATION,\n\t\t\t{\n\t\t\t\twidth: document.body.offsetWidth,\n\t\t\t\theight: document.body.offsetHeight,\n\t\t\t},\n\t\t);\n\t});\n};\n\nexport const relayMessage = ({state, action}) => {\n\tconst {properties} = state;\n\tconst {windowsList} = properties;\n\n\twindowsList.map((currentWindow) => {\n\t\tconst childWindow = currentWindow.component;\n\t\tchildWindow.dispatch(BROADCAST_MESSAGE, action.payload);\n\t});\n};\n\nexport const handleScreenChanged = (coeffects) => {\n\tconst {updateProperties, state, action} = coeffects;\n\tconst {payload} = action;\n\n\tupdateProperties({\n\t\tscreenInfo: {\n\t\t\tscreenKey: payload.screenKey,\n\t\t\tinstanceId: payload.instanceId,\n\t\t\texperienceId: payload.experienceId,\n\t\t},\n\t});\n\n\tconst bottomToolbar = state.properties.bottomToolbarComponent;\n\n\trequestAnimationFrame(() => {\n\t\tbottomToolbar.dispatch(UPDATE_BOTTOM_TOOLBAR_ELEMENTS, payload);\n\t});\n};\n\nexport const handleSetDirtyState = (coeffects) => {\n\tconst {dispatch, action} = coeffects;\n\tconst {id, dirtyState} = action.payload;\n\tdispatch(SET_WINDOW_PROPERTIES, {\n\t\twindowId: id,\n\t\tnewProperties: {isDirty: dirtyState},\n\t});\n};\n\nexport const handleDialogCloseConfirmed = (coeffects) => {\n\tconst {state, dispatch, updateProperties} = coeffects;\n\tconst {properties} = state;\n\tconst {windowsList, closingWindowId} = properties;\n\tconst currentWindow = windowsList.find(\n\t\t(window) => window.id === closingWindowId,\n\t);\n\tdispatch(CLOSE_WINDOW, {\n\t\twindowConfig: {id: closingWindowId},\n\t\tforceDestroy: true,\n\t});\n};\n\nexport const handleDialogCloseCancelled = (coeffects) => {\n\tconst {\n\t\tupdateProperties,\n\t\tproperties: {windowsList, closingWindowId},\n\t} = coeffects;\n\tupdateProperties({\n\t\tshowCloseConfirmDialog: false,\n\t\tclosingWindowId: null,\n\t});\n\tdispatchEventToWindow(\n\t\twindowsList,\n\t\tclosingWindowId,\n\t\t'SN_WINDOW#CLOSE_CANCELED',\n\t);\n};\n\nexport const handleSetWindowProperties = (coeffects) => {\n\tconst {state, action, updateProperties} = coeffects;\n\tconst {payload} = action;\n\tconst {windowsList} = state.properties;\n\tconst currentWindow = windowsList.find(\n\t\t(window) => window.id === payload.windowId,\n\t);\n\n\tconsole.info('Setting window properties', {payload, currentWindow});\n\n\tif (!currentWindow) {\n\t\treturn;\n\t}\n\n\t// update the window properties\n\tObject.keys(payload.newProperties).forEach((key) => {\n\t\tif (key in currentWindow) {\n\t\t\tcurrentWindow[key] = payload.newProperties[key];\n\t\t}\n\t\tif (key in currentWindow.component) {\n\t\t\tcurrentWindow.component[key] = payload.newProperties[key];\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\tpayload.newProperties,\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","import {actionTypes} from '@servicenow/ui-core';\n\nimport {\n\tBROADCAST_MESSAGE,\n\tSET_HEADER_BUTTONS,\n\tTOGGLE_MODAL_STATE,\n} from '../sn-window-manager/utilities/actions';\nimport {\n\tclampDialogPosition,\n\tfindAvailableDialogPosition,\n\tisWindowInBounds,\n} from '../sn-window-manager/utilities/helpers';\nimport {\n\tSN_WINDOW_CHECK_LOCATION,\n\tSN_WINDOW_CREATED,\n\tSN_WINDOW_FOCUSED,\n\tSN_WINDOW_SET_DIRTY_STATE,\n\tSN_WINDOW_MODALIZED,\n\tSN_WINDOW_DOCKED,\n\tSN_WINDOW_MINIMIZED,\n\tSN_WINDOW_SET_WINDOW_SIZE,\n\tSN_WINDOW_SET_DOCKED_WINDOW_SIZE,\n\tSN_WINDOW_SET_WINDOW_PROPERTIES,\n\tNOW_MODELESS_DIALOG_CONTENT_VISIBLE,\n\tNOW_MODELESS_DIALOG_RESIZABLE_END,\n} from './actions';\nimport {\n\tdeepSearchElement,\n\tdispatchModelessDialogAction,\n} from './behaviors/utils/helpers';\nimport {handleStateChangeCallback} from '../sn-window-manager/utilities';\nimport {getFocusableNodes} from '@servicenow/behavior-focus';\n\nconst {\n\tCOMPONENT_DOM_TREE_READY,\n\tCOMPONENT_PROPERTY_CHANGED,\n\tCOMPONENT_RENDERED,\n} = actionTypes;\n\nconst setAnimationClass = (host, disabled) => {\n\tif (disabled) {\n\t\thost.classList?.add('disable-animation');\n\t} else {\n\t\thost.classList?.remove('disable-animation');\n\t}\n};\nconst animationTimeouts = new WeakMap();\n\nexport const isFullScreen = (\n\tbrowserDimensions,\n\tisModal,\n\tfullscreenViewConfig,\n) => {\n\t// Get width and height thresholds based on whether the window is a modal\n\tconst widthThreshold = isModal\n\t\t? fullscreenViewConfig.modalThresholds.width\n\t\t: fullscreenViewConfig.standardThresholds.width;\n\tconst heightThreshold = isModal\n\t\t? fullscreenViewConfig.modalThresholds.height\n\t\t: fullscreenViewConfig.standardThresholds.height;\n\n\t// If browserDimensions are not yet initialized (0,0), don't treat as fullscreen\n\tif (browserDimensions?.width === 0 || browserDimensions?.height === 0) {\n\t\treturn false;\n\t}\n\n\t// Check if the browser dimensions are less than the thresholds\n\treturn (\n\t\tbrowserDimensions.width < widthThreshold ||\n\t\tbrowserDimensions.height < heightThreshold\n\t);\n};\n\nexport const computeStyleObj = (properties) => {\n\tconst {windowsState, windowConfig} = properties;\n\n\tconst {top, left, bottom, right} = properties.dialogLocation;\n\tconst autoResizeEnabled =\n\t\twindowConfig.autoResizableConfig?.enableAutoResizableHeight;\n\n\t// default and floating\n\tlet styleObj = {\n\t\t...(top !== undefined\n\t\t\t? {top: `${top}px`, bottom: 'auto'}\n\t\t\t: {bottom: `${bottom}px`, top: 'auto'}),\n\t\t...(left !== undefined\n\t\t\t? {left: `${left}px`, right: 'auto'}\n\t\t\t: {right: `${right}px`, left: 'auto'}),\n\t\twidth: `${properties.dialogSize.width}px`,\n\t\theight: autoResizeEnabled ? 'initial' : `${properties.dialogSize.height}px`,\n\t\t'min-height': autoResizeEnabled\n\t\t\t? `${properties.windowConfig.autoResizableConfig?.autoResizableMinHeight}px`\n\t\t\t: 'auto',\n\t\t'max-height': autoResizeEnabled\n\t\t\t? `${properties.windowConfig.autoResizableConfig?.autoResizableMaxHeight}px`\n\t\t\t: 'auto',\n\t};\n\n\tif (\n\t\tisFullScreen(\n\t\t\tproperties.browserDimensions,\n\t\t\tproperties.isModal,\n\t\t\tproperties.fullscreenViewConfig,\n\t\t) &&\n\t\tproperties.isOpen\n\t) {\n\t\tstyleObj = {\n\t\t\t...(top !== undefined ? {top: '0px'} : {bottom: '0px'}),\n\t\t\t...(left !== undefined ? {left: '0px'} : {right: '0px'}),\n\t\t\twidth: '100%',\n\t\t\theight: '100%',\n\t\t\tborderRadius: 0,\n\t\t};\n\t} else if (properties.isDocked) {\n\t\tconst isLeft = windowsState.leftDockId === windowConfig.id;\n\t\tconst isRight = windowsState.rightDockId === windowConfig.id;\n\t\tconst isBottom = windowsState.bottomDockId === windowConfig.id;\n\n\t\tif (isLeft) {\n\t\t\tstyleObj = {\n\t\t\t\t...(top !== undefined ? {top: '0px'} : {bottom: '0px'}),\n\t\t\t\t...(left !== undefined\n\t\t\t\t\t? {left: '0px'}\n\t\t\t\t\t: {right: `calc(100vw - ${properties.dockedWindowSize}px)`}),\n\t\t\t\twidth: `${properties.dockedWindowSize}px`,\n\t\t\t\theight: '100vh',\n\t\t\t};\n\t\t} else if (isRight) {\n\t\t\tstyleObj = {\n\t\t\t\t...(top !== undefined ? {top: '0px'} : {bottom: '0px'}),\n\t\t\t\t...(left !== undefined\n\t\t\t\t\t? {left: `calc(100vw - ${properties.dockedWindowSize}px)`}\n\t\t\t\t\t: {right: '0px'}),\n\t\t\t\twidth: `${properties.dockedWindowSize}px`,\n\t\t\t\theight: '100vh',\n\t\t\t};\n\t\t} else if (isBottom) {\n\t\t\tstyleObj = {\n\t\t\t\t...(top !== undefined\n\t\t\t\t\t? {top: `calc(100vh - ${properties.dockedWindowSize}px)`}\n\t\t\t\t\t: {bottom: '0px'}),\n\t\t\t\t...(left !== undefined ? {left: '0px'} : {right: '0px'}),\n\t\t\t\twidth: `${window.innerWidth}px`,\n\t\t\t\theight: `${properties.dockedWindowSize}px`,\n\t\t\t};\n\t\t}\n\t} else if (windowConfig.closeToTop && !properties.isOpen) {\n\t\tconst isRTL = document.dir === 'rtl';\n\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\tif (contentElement.querySelectorAll('[slot=\"content\"]').length > 0) {\n\t\t\t// slottedContent = contentElement.querySelector('[slot=\"content\"]');\n\t\t\tconst contentElements =\n\t\t\t\tcontentElement.querySelectorAll('[slot=\"content\"]');\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\tif (contentElement.querySelectorAll('[slot=\"footer\"]').length > 0) {\n\t\t\tconst footerElements = contentElement.querySelectorAll('[slot=\"footer\"]');\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\t// slottedFooter = contentElement.querySelector('[slot=\"footer\"]');\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// const modelessDialog = host.shadowRoot.querySelector(parentElement);\n\t\t\tconst contentSlot = parentElement.querySelector('div[slot=\"content\"]');\n\t\t\tcontentSlot.prepend(slottedContent ?? contentElement);\n\n\t\t\tif (slottedFooter) {\n\t\t\t\tconst footerSlot = parentElement.querySelector('div[slot=\"footer\"]');\n\t\t\t\tif (slottedFooter.hasAttribute && slottedFooter.hasAttribute('slot')) {\n\t\t\t\t\tslottedFooter.removeAttribute('slot');\n\t\t\t\t}\n\t\t\t\tfooterSlot.prepend(slottedFooter);\n\t\t\t}\n\n\t\t\tif (slottedHeading) {\n\t\t\t\tconst headerSlot = parentElement.querySelector('div[slot=\"heading\"]');\n\t\t\t\tif (\n\t\t\t\t\tslottedHeading.hasAttribute &&\n\t\t\t\t\tslottedHeading.hasAttribute('slot')\n\t\t\t\t) {\n\t\t\t\t\tslottedHeading.removeAttribute('slot');\n\t\t\t\t}\n\t\t\t\theaderSlot.prepend(slottedHeading);\n\t\t\t}\n\n\t\t\tif (slottedActions) {\n\t\t\t\tconst actionsSlot = parentElement.querySelector('div[slot=\"actions\"]');\n\t\t\t\tif (\n\t\t\t\t\tslottedActions.hasAttribute &&\n\t\t\t\t\tslottedActions.hasAttribute('slot')\n\t\t\t\t) {\n\t\t\t\t\tslottedActions.removeAttribute('slot');\n\t\t\t\t}\n\t\t\t\tactionsSlot.prepend(slottedActions);\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\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(viewportHeight - dialogHeight) / 2,\n\t\t\t\t\t\t\tviewportHeight - 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\n\t\t\t\t\tupdateProperties({\n\t\t\t\t\t\tisHidden: false,\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\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 (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\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);\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';\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((properties, dialogContainer, dispatch) => {\n\t// For auto-resize modals, don't update position - CSS centering handles it\n\tif (\n\t\tproperties.isModal &&\n\t\tproperties.windowConfig.autoResizableConfig?.enableAutoResizableHeight\n\t) {\n\t\treturn;\n\t}\n\tif (properties.windowConfig.autoResizableConfig?.enableAutoResizableHeight) {\n\t\tlet dialogTop = dialogContainer.offsetTop;\n\t\tconst dialogHeight = dialogContainer.offsetHeight;\n\t\tconst windowHeight = window.innerHeight;\n\n\t\tif (dialogTop + dialogHeight > windowHeight) {\n\t\t\t// Dialog is out of bounds, adjust position\n\t\t\tdialogTop = Math.max(0, windowHeight - dialogHeight);\n\t\t}\n\n\t\tdispatch('UPDATE_FLOATING_MENU_LOCATION', {\n\t\t\twidth: dialogContainer.offsetWidth,\n\t\t\theight: dialogContainer.offsetHeight,\n\t\t\ttop: dialogTop,\n\t\t\tforceUpdate: true,\n\t\t});\n\n\t\tsetTimeout(() => {\n\t\t\tif (dialogContainer.offsetTop !== dialogTop) {\n\t\t\t\tdialogContainer.style.top = `${dialogTop}px`;\n\t\t\t}\n\t\t}, 150);\n\t} else {\n\t\tif (dialogContainer) {\n\t\t\t// Immediately check and update the position to maintain visibility\n\t\t\tdispatch('SN_WINDOW_CHECK_LOCATION', {\n\t\t\t\tforceUpdate: true,\n\t\t\t});\n\t\t}\n\t}\n}, 50);\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(properties, dialogContainer, dispatch);\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\tonCurrentScreen =\n\t\t\tproperties.windowConfig.screenKey ===\n\t\t\t\tnowWindowManager.screenInfo.screenKey &&\n\t\t\tproperties.windowConfig.experienceId ===\n\t\t\t\tnowWindowManager.screenInfo.experienceId;\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} 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};\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","shiftTo","container","newX","newY","toolBar","style","boundaryElement","draggableRect","getBoundingClientRect","boundaryRec","classList","contains","toolBarRect","keepInBoundary","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","__WEBPACK_EXTERNAL_MODULE__uxasset_externals_devsnc_snowdash_28_0_1_index_jsdbx_3791c335__","debounce","__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","createBrowserWindowMutationObserver","updateProperties","modalWindow","mutationObs","ResizeObserver","mutationsList","handleBrowserWindowMutations","mutation","_mutation$contentRect","_mutation$contentRect2","contentRect","parseInt","observe","browserWindowMutationObserver","completeDockToggle","newLeftDockId","newRightDockId","newBottomDockId","dockSide","windowsList","currentWindow","find","isWindowDocked","modalWindows","filter","windowId","leftDockId","rightDockId","bottomDockId","secondaryMenuId","handleStateChangeCallback","stateChangeCallback","handleOpenWindow","newProperties","contentElementProperties","forEach","component","isOpen","activeWindowId","dispatchEventToContentElement","isAnimating","newWindowList","isMinimized","windowStartingState","stateWhenClosed","indexOf","handleToggleMinimize","forceMinimize","overrideConfig","currWindow","canMinimize","currMinimizedWidows","newActiveWindowId","splice","existingPositions","minimizedTargetPositions","newWindowsState","isRestoring","dispatchEventToWindow","name","existingPositionValues","values","finalWindowsState","fromEntries","wId","index","sort","b","position","clampedPosition","_currWindow$component","windowBounds","_currWindow$component2","isFullscreenView","handleDialogCloseCancelled","closingWindowId","showCloseConfirmDialog","event","_currentWindow$compon6","extraPayload","console","info","screenKey","instanceId","experienceId","componentId","uxrComponentId","eventPayload","COMPONENT_DOM_TREE_READY","COMPONENT_PROPERTY_CHANGED","COMPONENT_RENDERED","setAnimationClass","host","disabled","_host$classList","_host$classList2","add","remove","animationTimeouts","WeakMap","isFullScreen","fullscreenViewConfig","widthThreshold","modalThresholds","standardThresholds","heightThreshold","computeStyleObj","_windowConfig$autoRes","_properties$windowCon","_properties$windowCon2","autoResizeEnabled","autoResizableConfig","enableAutoResizableHeight","styleObj","autoResizableMinHeight","autoResizableMaxHeight","borderRadius","isLeft","isRight","isBottom","dockedWindowSize","closeToTop","_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","_slottedContent","_properties$windowCon3","parentElement","prepend","footerSlot","hasAttribute","removeAttribute","headerSlot","actionsSlot","resizeEnabled","canDrag","startingState","fitContent","footer","headerHeight","offsetHeight","footerHeight","dialogHeight","dialogWidth","margin","isHidden","iframeElement","pointerEvents","resizableConfig","enableResizable","remMulitplier","getComputedStyle","getPropertyValue","setProperty","_getFocusableNodes2","error","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","_ref3","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","__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","toLowerCase","nonDragRole","_element$role","role","keydownListener","keyEvent","mousedownListener","startDrag","tooltip","containerBounds","resetWindowSize","offsetX","offsetY","toolbar","bottomToolbarComponent","_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","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","warn","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","String","MinimizedButtonView","_windowConfig$headerI2","_windowConfig$headerI3","_windowConfig$compone","_windowConfig$headerI4","headingLabelText","hasHeaderIcon","replace","subtext","prevToolbarOpen","COMPONENT_DISCONNECTED","measureZone3Width","hoistTargetElem","resizeUpdateZone3Width","childNodes","child","visibility","display","filterMinimizedWindows","minimizedWindowList","globalMinimizedWindows","scopedMinimizedWindows","mainToolbarElement","observer","isCurrentSelectedScreen","_window$nowWindowMana","_child$sourceElement","_child$sourceElement2","currentScreenKey","currentExperienceId","sourceElement","activeHoistedContent","isSlottedElemVisible","nodeType","Node","ELEMENT_NODE","computedStyle","hasSlottedContent","childList","_zone3MutationObserver","ux_globals","__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","_window$ux_globals","_window$ux_globals2","newStyleSheet","dynamicStyleSheet","styleEl","head","sheet","createStyleSheet","insertRule","cssRules","unifiedNavComponent","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","_currentWindow$compon","_currentWindow$compon2","newMinimizedWindows","newModalWindows","windowComponent","_windowComponent$shad","wasConfirmed","undockedWindowId","undockedWindow","doPinning","isPrimary","primaryMenuId","isPinnedWindow","bottomToolbar","_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","__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","keyboardShortcutsBehavior","__TECTONIC__$servicenow_sn_window_manager"]}