@genesislcap/design-system-configurator 14.373.2-MX-499.3 → 14.373.2-MX-499.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/110.110.ddf26ae506131bab2ddd.js +131 -0
  2. package/dist/110.7e20a2b648d2484216f576ee3373601f.js.map +1 -0
  3. package/dist/359.3251e92dacbbae50c0067b447f49a688.js.map +1 -0
  4. package/dist/359.359.f5900b37a97ff746d4bd.js +2 -0
  5. package/dist/374.374.68d0546328c19292b57c.js +5146 -0
  6. package/dist/374.685ab5ac9960c62b024f7ede813aad67.js.map +1 -0
  7. package/dist/382.382.70135d77dc896dededa8.js +13 -0
  8. package/dist/382.7d8d80f08d8a7e2b06467366ed231a1c.js.map +1 -0
  9. package/dist/{588.588.b954832e0228557f5751.js → 445.445.97400d0ba7e0ccc6e672.js} +3 -3
  10. package/dist/{588.7048bd4bd0c3f3085dddf60a28cf09e4.js.map → 445.f33bfdd3c7659b76b08f8106d436c540.js.map} +1 -1
  11. package/dist/535.3ce19bad0d5e4b228991b85c6e7f0b75.js.map +1 -0
  12. package/dist/535.535.efe402e29cac1d3bacc6.js +775 -0
  13. package/dist/{417.417.b9aa1af5e028e65b7fdc.js → 601.601.9cccf3a26bdb9622aa21.js} +59 -59
  14. package/dist/601.feefbfc2292c53dfcb6055ca19fe6883.js.map +1 -0
  15. package/dist/{714.65811bc86f4924fc0def931673ca1576.js.map → 705.6967cc91e1cb96bab531a53a432aa26a.js.map} +1 -1
  16. package/dist/705.705.db7257000f97995fb284.js +2 -0
  17. package/dist/759.0c1fcd0684d1c65e1315b922ca4c2159.js.map +1 -0
  18. package/dist/{445.445.75bcad5095c175e4a251.js → 759.759.43ca2d2aa2ae607d2aa4.js} +252 -241
  19. package/dist/{826.826.117e2d8d8da71c18415f.js → 826.826.9f5e19d2e8bc3c3cdc0d.js} +2 -2
  20. package/dist/835.09a2c98d7d68ff7f030a208135bbf812.js.map +1 -0
  21. package/dist/835.835.c45b1173559d79231a6b.js +2 -0
  22. package/dist/876.4b1a1261b019a55b536b90f1701ffb4e.js.map +1 -0
  23. package/dist/{816.816.3e7440fbd6718a8414c2.js → 876.876.f9ed60559e9b619baa5d.js} +377 -377
  24. package/dist/887.012016c575e29126a68b2a4fe70a8cb7.js.map +1 -0
  25. package/dist/887.887.b672b67e697a8aa461e1.js +3 -0
  26. package/dist/designSystemConfigurator.d463ad86672fb0fdcc6c89219a1e0549.js.map +1 -0
  27. package/dist/index.html +1 -1
  28. package/dist/main.52f9d7e8a5147ea36882308d288f2ba8.js.map +1 -0
  29. package/dist/main.a1565d24805b6094992a.js +2 -0
  30. package/dist/npm.numeral.08cacf3f8d341ee2ecc5043544e76673.js.map +1 -0
  31. package/dist/npm.numeral.74.6985f31d5772375ef0c8.js +3 -0
  32. package/dist/npm.numeral.74.6985f31d5772375ef0c8.js.LICENSE.txt +14 -0
  33. package/dist/remoteEntry.js +2 -2
  34. package/package.json +13 -13
  35. package/dist/151.151.0a43fc3e6414436d844f.js +0 -2
  36. package/dist/151.df7f6c518aba4dc761325e73decb24ee.js.map +0 -1
  37. package/dist/227.091b797b296b199e6c46dc176a8c7401.js.map +0 -1
  38. package/dist/227.227.7bbe4753e644f6b4337e.js +0 -3
  39. package/dist/242.242.43bdc8eeffbc0b42c358.js +0 -786
  40. package/dist/242.3f2d1c0429112a375ce6af7d9b77101d.js.map +0 -1
  41. package/dist/29.0a1ece57d1b5ca67cd47edb954da1bcc.js.map +0 -1
  42. package/dist/29.29.7e95d12d2aaf21c03e0d.js +0 -4794
  43. package/dist/347.347.07dc76528ef935608a82.js +0 -2
  44. package/dist/347.dc20c3579c9073997e093bb6d65c2cde.js.map +0 -1
  45. package/dist/417.145fa1c3801452bd5746b628ab30a25f.js.map +0 -1
  46. package/dist/445.c6daee010fbecacac70859b2a968ea96.js.map +0 -1
  47. package/dist/714.714.4bfc6425e1dbfb7c70c2.js +0 -2
  48. package/dist/816.6dbf1a0a1072650412d6fe5f8bb168c1.js.map +0 -1
  49. package/dist/designSystemConfigurator.52124d26821144aeeb1023c072b2baff.js.map +0 -1
  50. package/dist/main.65d1736ce088b29a0d7b.js +0 -2
  51. package/dist/main.7ce2ee5391e617c26d8c4105bd621f74.js.map +0 -1
  52. /package/dist/{588.588.b954832e0228557f5751.js.LICENSE.txt → 445.445.97400d0ba7e0ccc6e672.js.LICENSE.txt} +0 -0
  53. /package/dist/{826.826.117e2d8d8da71c18415f.js.LICENSE.txt → 826.826.9f5e19d2e8bc3c3cdc0d.js.LICENSE.txt} +0 -0
  54. /package/dist/{227.227.7bbe4753e644f6b4337e.js.LICENSE.txt → 887.887.b672b67e697a8aa461e1.js.LICENSE.txt} +0 -0
@@ -0,0 +1,131 @@
1
+ "use strict";(self.webpackChunk_genesislcap_design_system_configurator=self.webpackChunk_genesislcap_design_system_configurator||[]).push([[110],{47110:(t,e,n)=>{n.d(e,{H6:()=>W,PF:()=>N,zz:()=>Ct,IT:()=>Lt,vN:()=>T,b_:()=>dt,Be:()=>G,aW:()=>D,SO:()=>it,dR:()=>Q,OB:()=>x,Du:()=>xt,kk:()=>Tt,jz:()=>wt,rc:()=>o,Cs:()=>E,$N:()=>s,cb:()=>r,bD:()=>S,zT:()=>Y,CL:()=>q,Ey:()=>J,fI:()=>u,DW:()=>l,JH:()=>h,f4:()=>_t,O5:()=>c,Cu:()=>C,m4:()=>L,at:()=>st,WP:()=>St,vF:()=>a,P0:()=>rt,jE:()=>i,OH:()=>v,qM:()=>b});const o=()=>{let t=[];return{subscribe:e=>(t.push(e),()=>t=t.filter(t=>t!==e)),publish(e){t.forEach(t=>t(e))}}},i=(t,e)=>{const n={root:document.documentElement};new IntersectionObserver(t=>{t.forEach(t=>{e(t.intersectionRatio>0)})},n).observe(t)},s=(t,e)=>{const n=structuredClone(t);return!e||"object"!=typeof e||Array.isArray(e)?void 0!==e?e:n:(Object.keys(e).forEach(t=>{const o=e[t],i=n[t];if(null==o)return;const r=t=>t instanceof Date;!o||"object"!=typeof o||Array.isArray(o)||r(o)||!i||"object"!=typeof i||Array.isArray(i)||r(i)?n[t]=o:n[t]=s(i,o)}),n)},r=t=>new Promise(e=>{setTimeout(e,t)});const a=(0,n(30314).createLogger)("foundation-utils"),c=(t,e)=>{var n;let o=document.getElementById(e);if(o)return void a.debug(`\n An element with the id of '${e}' already exists and likely has the css rules applied.\n `);const i=null!==(n=document.head)&&void 0!==n?n:document.getElementsByTagName("head")[0];o=document.createElement("style"),o.id=e,i.appendChild(o);if((t.match(/}/g)||[]).length>1)return o.textContent=t,()=>{o&&i.removeChild(o)};{const e=o.sheet.insertRule(t);return()=>{o&&(o.sheet.deleteRule(e),i.removeChild(o))}}};function u(t){const e=[],n=new Set;return function t(o){const i=Array.from(o.querySelectorAll("*"));e.push(...i),i.forEach(e=>{e.shadowRoot&&!n.has(e.shadowRoot)&&(n.add(e.shadowRoot),t(e.shadowRoot))})}(t),e}function l(t,e){let n=t;for(;n;){const t=n.tagName.toLowerCase();if(t.endsWith("-design-system-provider")){const e=t.split("-design-system-provider")[0];if(e)return a.debug(`Found provider by ancestor search: ${t}, prefix: ${e}`),{element:n,prefix:e}}n=n.parentElement?n.parentElement:n.getRootNode&&n.getRootNode()instanceof ShadowRoot?n.getRootNode().host:null}const o=document.querySelectorAll('[class*="-design-system-provider"],[id*="-design-system-provider"]'),i=Array.from(o),s=u(document).filter(t=>{var e;const n=null===(e=t.tagName)||void 0===e?void 0:e.toLowerCase();return(null==n?void 0:n.endsWith("-design-system-provider"))||!1});if(i.push(...s),i.length>0){const t=i[0],e=t.tagName.toLowerCase(),n=e.split("-design-system-provider")[0];if(n)return a.debug(`Found provider by document search: ${e}, prefix: ${n}`),{element:t,prefix:n}}return a.debug(`No provider found. Falling back to ${e}.`),{element:null,prefix:e}}function h(t,e){return l(t,e).prefix}var d=n(33681);const g=new Map([["FAST-TEXT-AREA","input"],["FAST-TEXT-FIELD","input"],["FOUNDATION-TEXT-AREA","input"],["FOUNDATION-TEXT-FIELD","input"],["INPUT","input"],["ZERO-TEXT-FIELD","input"]]);function f(t){this.keyAttr||(this.target[this.targetName]=t)}function p(t,e){this.keyAttr&&(this.updateTarget=f),this.originalBind.call(this,t,e),this.target.addEventListener(this.changeEvent,this.changeHandler)}function m(){this.originalUnbind.call(this),this.target.removeEventListener(this.changeEvent,this.changeHandler)}class y extends d.HTMLBindingDirective{constructor(t,e,n,o){super(t),this.keyAttr=o,this.conversionType=e,this.eventName=n}createBehavior(t){const e=super.createBehavior(t);return e.originalBind=e.bind,e.originalUnbind=e.unbind,e.keyAttr=this.keyAttr,e.bind=p,e.unbind=m,e.changeEvent=function(t,e){var n;const o=t.tagName;return"default"===e?null!==(n=g.get(o))&&void 0!==n?n:"change":e}(t,this.eventName),e.changeHandler=()=>{const t="boolean"===this.conversionType?e.target.checked:e.target.value;if(this.keyAttr){const n=e.bindingObserver.last,o=e.target[this.keyAttr];n.propertySource[n.propertyName][o]=this.convert(t)}else{const n=e.bindingObserver.last;n.propertySource[n.propertyName]=this.convert(t)}},e}convert(t){if(null==t)return t;switch(this.conversionType){case"time":const e=new Date(t).getTime();return isNaN(e)?void 0:e;case"number":return t.length?Number(t):void 0;case"string":return String(t);case"boolean":return Boolean(t);default:return t}}}function v(t,e="string",n="default",o){return new y(t,e,n,o)}function b(t,e,n){const o=t=>"function"==typeof t?t:()=>t,i=o(e),s=o(n);return(e,n)=>t(e,n)?i(e,n):s(e,n)}const w=/^(?:[A-Za-z0-9+/]{4})*?(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,E=t=>{const e=t.split(":");let n,o;2===e.length?[n,o]=e:o=t;const i=(t=>{if(w.test(t)){const e=atob(t),n=new Uint8Array(e.length);return[...e].forEach((t,o)=>{n[o]=e.charCodeAt(o)}),n.buffer}return t})(o);if("str"===n){return new TextDecoder("utf-8").decode(i)}return i},S=t=>{const e=(t=>{if("string"==typeof t)return btoa(t);if(t instanceof ArrayBuffer){const e=new Uint8Array(t).reduce((t,e)=>t+String.fromCharCode(e),"");return btoa(e)}return""})(t);return"string"==typeof t?`str:${e}`:t instanceof ArrayBuffer?`bin:${e}`:""},C=()=>!1,L=t=>{const e=window.location.href,n=new URL(e).search,o=new URLSearchParams(n),i=`feature.${t}`.toLowerCase();for(const[t]of o.entries())if(t.toLowerCase()===i)return!0;return!1};let _="webpack";try{_="webpack"}catch(t){}let x="/";try{x="auto".replace(/\/$/,"")}catch(t){}let N,k="gwf";try{"undefined"!=typeof SOCKET_EXT&&(k=SOCKET_EXT)}catch(t){}try{N=FORCE_HTTP}catch(t){}const T=`${location.protocol.replace("http","ws")}//${location.host}${x}/${k}/`;"true"===N||L("forceHttp")?location.protocol:location.protocol.replace("http","ws");let A,R,O,I,$=null;try{"undefined"!=typeof API_HOST&&($=API_HOST)}catch(t){}try{A=""}catch(t){}try{R=DEFAULT_ORGANISATION}catch(t){}try{O=DEFAULT_PASSWORD}catch(t){}try{I=DEFAULT_USER}catch(t){}let D="gwf/event-login-auth";"undefined"!=typeof GENX_LOGIN_URL&&(D=GENX_LOGIN_URL);let M="gwf/event-login-auth";"undefined"!=typeof GENX_LOGIN_REFRESH_URL&&(M=GENX_LOGIN_REFRESH_URL);let G="gwf/event-login-details";"undefined"!=typeof GENX_LOGIN_DETAILS_URL&&(G=GENX_LOGIN_DETAILS_URL);let F="gwf/event-logout";"undefined"!=typeof GENX_LOGOUT_URL&&(F=GENX_LOGOUT_URL);let U="gwf/event-change-user-password";"undefined"!=typeof GENX_CHANGE_PASSWORD_URL&&(U=GENX_CHANGE_PASSWORD_URL);let K="gwf/event-self-service-password-reset";"undefined"!=typeof GENX_FORGOT_PASSWORD_URL&&(K=GENX_FORGOT_PASSWORD_URL);let P="gwf/event-password-reset-action";"undefined"!=typeof GENX_RESET_PASSWORD_URL&&(P=GENX_RESET_PASSWORD_URL);let X="gwf/sso/list";"undefined"!=typeof GENX_SSO_LIST_URL&&(X=GENX_SSO_LIST_URL);let B="gwf/{type}/login?idp={id}";"undefined"!=typeof GENX_SSO_LOGIN_URL&&(B=GENX_SSO_LOGIN_URL);let W="default";"undefined"!=typeof GENX_ENVIRONMENT_LEVEL&&(W=GENX_ENVIRONMENT_LEVEL);let z="gwf/auth/accept-terms";"undefined"!=typeof GENX_ACCEPT_TERMS_URL&&(z=GENX_ACCEPT_TERMS_URL);var j=n(55823);class H{constructor(t){this.logger=t,this.map=new Map}set(t,e){this.logger(t,e),this.lastError=e,this.map=new Map(this.map.set(t,e))}get(t){return this.map.get(t)}has(t){return this.map.has(t)}delete(t){const e=this.map.get(t)===this.lastError,n=this.map.delete(t);return n&&(this.map=new Map(this.map),e&&(this.lastError=void 0)),n}clear(){this.lastError=void 0,this.map=new Map}get size(){return this.map.size}values(){return this.map.values()}get messages(){const t=this.size;if(!t)return"";const e=[];for(const{message:t}of this.map.values())e.push(t);return`${t} Error${t>1?"s":""} Occurred:\n${e.join("\n")}`}}(0,j.Cg)([d.observable],H.prototype,"map",void 0),(0,j.Cg)([d.observable],H.prototype,"lastError",void 0);const V=10;function q(t){return!t||isNaN(t)?null:new Date(t).toISOString().slice(0,V)}const Z=19;function Y(t){return!t||isNaN(t)?null:new Date(t).toISOString().slice(0,Z).replace("T"," ")}function J(t,e){return e?Y(t):q(t)}class Q{constructor(t){const e=new Intl.NumberFormat(t).formatToParts(12345.6),n=[...new Intl.NumberFormat(t,{useGrouping:!1}).format(9876543210)].reverse(),o=new Map(n.map((t,e)=>[t,e]));this._group=new RegExp(`[${e.find(t=>"group"===t.type).value}]`,"g"),this._decimal=new RegExp(`[${e.find(t=>"decimal"===t.type).value}]`),this._separator=new RegExp(`[$${e.find(t=>"decimal"===t.type).value}](?:0*$|[^0]0+$)`),this._numeral=new RegExp(`[${n.join("")}]`,"g"),this._index=t=>o.get(t)}parse(t){return(t=t.trim().replace(this._group,"").replace(this._decimal,".").replace(this._numeral,this._index))?+t:NaN}hasSeparator(t){return this._separator.test(t)}}n(67449),n(94092);var tt=n(84674);class et{constructor(){this.fromDTO=t=>{var e,n,o;return{serverRowMetadata:{operation:null===(n=null===(e=null==t?void 0:t.DETAILS)||void 0===e?void 0:e.OPERATION)||void 0===n?void 0:n.toLowerCase(),rowRef:null===(o=null==t?void 0:t.DETAILS)||void 0===o?void 0:o.ROW_REF}}},this.toDTO=t=>{var e,n,o;return{DETAILS:{OPERATION:null===(n=null===(e=null==t?void 0:t.serverRowMetadata)||void 0===e?void 0:e.operation)||void 0===n?void 0:n.toUpperCase(),ROW_REF:null===(o=null==t?void 0:t.serverRowMetadata)||void 0===o?void 0:o.rowRef}}}}}tt.DI.createInterface(t=>t.singleton(et));var nt,ot;!function(t){t.genesisFieldTypes=["STRING","ENUM","INT","SHORT","DOUBLE","LONG","BOOLEAN","BIGDECIMAL","DATE","DATETIME","RAW","NANO_TIMESTAMP"]}(nt||(nt={})),function(t){t.state="pending-state",t.error="pending-state-error"}(ot||(ot={}));const it=t=>{var e,n,o,i,s,r,a,c,u;return u=class extends t{constructor(...t){super(t),e.add(this),n.set(this,{_key:"dom"}),o.set(this,""),i.set(this,!1),s.set(this,void 0),r.set(this,!1)}cloneNode(t){const e=this.deepClone();return t&&Array.from(this.childNodes).forEach(t=>{e.appendChild(t.cloneNode(!0))}),e}deepClone(){const t=document.createElement(this.tagName.toLowerCase());return this.getAttributeNames().forEach(e=>t.setAttribute(e,this.getAttribute(e))),t}get shouldRunDisconnect(){return!!(0,j.gn)(this,r,"f")||("dom"===(0,j.gn)(this,n,"f")._key||"foundation-layout-cache"!==(0,j.gn)(this,n,"f")._key&&!((0,j.gn)(this,n,"f").dragging||!(0,j.gn)(this,n,"f").hasFirstLoaded||(0,j.gn)(this,e,"m",a).call(this,"disconnect")))}get shouldRunConnect(){if((0,j.gn)(this,r,"f"))return!0;if("dom"===(0,j.gn)(this,n,"f")._key)return!0;if("foundation-layout-cache"===(0,j.gn)(this,n,"f")._key)return!1;let t="reconnect";return!1===(0,j.gn)(this,i,"f")&&((0,j.GG)(this,i,!0,"f"),t="connect"),!((0,j.gn)(this,n,"f").dragging||!(0,j.gn)(this,n,"f").hasFirstLoaded||(0,j.gn)(this,e,"m",a).call(this,t))}connectedCallback(){super.connectedCallback(),"foundation-layout"!==(0,j.gn)(this,n,"f")._key&&(0,j.GG)(this,n,(0,j.gn)(this,e,"m",c).call(this,this),"f")}},n=new WeakMap,o=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakMap,e=new WeakSet,a=function(t){var e,i;if("foundation-layout"!==(0,j.gn)(this,n,"f")._key)throw new Error("LifecycleMixin: should not be checking a token change if container not in the layout");const a=(0,j.gn)(this,o,"f")!==(0,j.gn)(this,n,"f").lifecycleUpdateToken;let c=!1;return"connect"===t?(0,j.GG)(this,o,null!==(e=(0,j.gn)(this,n,"f").lifecycleUpdateToken)&&void 0!==e?e:"","f"):"disconnect"===t?(c=a,(0,j.GG)(this,s,setTimeout(()=>{(0,j.GG)(this,r,c,"f"),(0,j.gn)(this,r,"f")&&this.disconnectedCallback()},1e4),"f")):"reconnect"===t&&(c=a,(0,j.GG)(this,o,null!==(i=(0,j.gn)(this,n,"f").lifecycleUpdateToken)&&void 0!==i?i:"","f"),clearTimeout((0,j.gn)(this,s,"f"))),c},c=function t(n){var o;if(!0===n.getRootNode()[st])return{_key:"foundation-layout-cache"};if(n.getRootNode()instanceof Document||!(null===(o=n.getRootNode())||void 0===o?void 0:o.host))return{_key:"dom"};const i=n.getRootNode().host;if("FoundationLayoutMain"===i.class){const t=i;return t._key="foundation-layout",t}return(0,j.gn)(this,e,"m",t).call(this,i)},u},st=Symbol("layout-cache-document"),rt=(t,e)=>new Promise(n=>{setTimeout(()=>{n(e())},t)});var at=n(61455);const ct=tt.DI.createInterface();function ut(t){return Number.isSafeInteger(+t)?Number(t):(0,at.Fq)(t)?BigInt.asIntN(64,t):parseFloat(t)}const lt={parse:t=>(0,at.qg)(t,null,ut),stringify:t=>(0,at.As)(t)};let ht=class{constructor(t=lt){this.config=t,this.serialize=t=>this.config.stringify(t)}deserialize(t){return t?"string"==typeof t?this.config.parse(t):t&&t.ok?t.text().then(t=>this.config.parse(t)):(t&&t.data&&(t=t.data),this.config.parse(t)):Promise.resolve({})}};ht=(0,j.Cg)([(0,j.Qj)(0,(0,tt.optional)(ct))],ht);const dt=tt.DI.createInterface(t=>t.singleton(ht));new Map;var gt=n(97156);class ft{static get isMacOS(){return navigator.platform.toLowerCase().includes("mac")||navigator.userAgent.toLowerCase().includes("mac os")}static get isWindows(){return navigator.platform.toLowerCase().includes("win")||navigator.userAgent.toLowerCase().includes("windows")}static get isLinux(){return navigator.platform.toLowerCase().includes("linux")||navigator.userAgent.toLowerCase().includes("linux")}static getModifierSymbols(){return this.isMacOS?{ctrl:"⌃",alt:"⌥",shift:"⇧",meta:"⌘"}:{ctrl:"Ctrl",alt:"Alt",shift:"Shift",meta:"Win"}}static formatKeyCombination(t,e=!1,n=!1,o=!1,i=!1){const s=this.getModifierSymbols(),r=[];e&&r.push(s.ctrl),n&&r.push(s.alt),o&&r.push(s.shift),i&&r.push(s.meta);const a=this.isMacOS?"":"+",c=this.isMacOS?t.toUpperCase():t;return r.length>0?`${r.join(a)}${a}${c}`:c}}class pt{constructor(){this.shortcuts=new Map,this.shortcutLookup=new Map,this.keyCombinationMap=new Map,this._isPausedSubject=new gt.t(!1)}get isPaused(){return this._isPausedSubject.value}get isPaused$(){return this._isPausedSubject.asObservable()}get isPausedSubject(){return this._isPausedSubject}registerShortcuts(t){t.forEach(t=>{this.registerShortcut(t)})}registerShortcut(t){const e=`${t.context}:${t.id}`,n=this.normalizeShortcutDefinition(t),o=this.createKeyCombinationKey(n.key,n.ctrlKey,n.altKey,n.shiftKey,n.metaKey),i=ft.formatKeyCombination(n.key,n.ctrlKey,n.altKey,n.shiftKey,n.metaKey),s=this.keyCombinationMap.get(o);if(s){const t=[];for(const e of s){const i=this.shortcutLookup.get(e);i&&i.context===n.context&&(a.warn(`Shortcut with key combination '${o}' already exists in context '${n.context}' (id: '${i.id}'). It will be replaced by new shortcut '${n.id}'.`),t.push(e))}t.forEach(t=>{const e=this.shortcutLookup.get(t);if(e){const n=this.shortcuts.get(e.context);n&&(n.delete(e.id),0===n.size&&this.shortcuts.delete(e.context)),this.shortcutLookup.delete(t)}s.delete(t)}),0===s.size&&this.keyCombinationMap.delete(o)}return this.shortcuts.has(n.context)||this.shortcuts.set(n.context,new Map),this.shortcuts.get(n.context).set(n.id,n),this.shortcutLookup.set(e,n),this.keyCombinationMap.has(o)||this.keyCombinationMap.set(o,new Set),this.keyCombinationMap.get(o).add(e),{shortcut:n,id:n.id,keyCombination:o,keyCombinationDisplay:i,disabled:()=>{if(this.isPaused)return!0;if(n.canExecute){return n.canExecute().disabled||!1}return!1},tooltip:()=>{if(this.isPaused)return"Shortcuts are paused";if(n.canExecute){return n.canExecute().tooltip}}}}unregisterShortcut(t,e){const n=`${t}:${e}`,o=this.shortcuts.get(t);if(o){const i=o.get(e);if(i){const s=this.normalizeShortcutDefinition(i),r=this.createKeyCombinationKey(s.key,s.ctrlKey,s.altKey,s.shiftKey,s.metaKey);o.delete(e),0===o.size&&this.shortcuts.delete(t),this.shortcutLookup.delete(n);const a=this.keyCombinationMap.get(r);a&&(a.delete(n),0===a.size&&this.keyCombinationMap.delete(r))}}}unregisterShortcutsByContext(t){const e=this.shortcuts.get(t);if(e){Array.from(e.keys()).forEach(e=>this.unregisterShortcut(t,e))}}executeShortcut(t){this.executeShortcutByContext(this.getActiveContext(),t)}executeShortcutByContext(t,e){if(this.isPaused)return;const n=this.shortcuts.get(t);if(n){const o=n.get(e);if(o){if(o.elementRef&&!this.isElementFocused(o.elementRef))return;if(o.canExecute){if(o.canExecute().disabled)return}try{o.action()}catch(n){a.error(`Error executing shortcut ${t}:${e}:`,n)}}}}getShortcuts(){const t=[];for(const e of this.shortcuts.values())t.push(...e.values());return t}getShortcutsByContext(t){const e=this.shortcuts.get(t);return e?Array.from(e.values()):[]}findShortcutByKeyCombination(t,e=!1,n=!1,o=!1,i=!1){const s=this.createKeyCombinationKey(t,e,n,o,i),r=this.keyCombinationMap.get(s);if(r){if(this._activeContext){const t=this.shortcuts.get(this._activeContext);if(t)for(const e of r){const[n,o]=e.split(":");if(n!==this._activeContext)continue;const i=t.get(o);if(i)return i}else;}for(const t of r){const e=this.shortcutLookup.get(t);if(e)return e}}}getContexts(){return Array.from(this.shortcuts.keys())}getShortcutsByContextMap(){return new Map(this.shortcuts)}registerContext(t){this.shortcuts.has(t)||this.shortcuts.set(t,new Map)}setActiveContext(t){this.registerContext(t),this._activeContext=t}getActiveContext(){return this._activeContext}clearActiveContext(){this._activeContext=void 0}pause(){this._isPausedSubject.next(!0)}resume(){this._isPausedSubject.next(!1)}normalizeShortcutDefinition(t){const e=Object.assign({},t);return(e.optionKey||e.altKey)&&(e.altKey=!0,e.optionKey=!0),e}createKeyCombinationKey(t,e=!1,n=!1,o=!1,i=!1){const s=[];e&&s.push("ctrl"),n&&s.push("alt"),o&&s.push("shift"),i&&s.push("meta");return(s.length>0?`${s.join("+")}+${t}`:t).toLowerCase()}isElementFocused(t){return t instanceof HTMLElement&&document.activeElement===t}}const mt=tt.DI.createInterface(t=>t.singleton(pt));let yt=class extends d.FASTElement{constructor(){super(...arguments),this.keyListener=null,this.isListening=!1}connectedCallback(){super.connectedCallback(),this.setupStateSubscription()}disconnectedCallback(){super.disconnectedCallback(),this.removeKeyListener()}setupStateSubscription(){this.shortcutManager.isPaused$.subscribe(t=>{t?this.removeKeyListener():this.addKeyListener()}),this.shortcutManager.isPaused||this.addKeyListener()}addKeyListener(){this.isListening||(this.keyListener=this.handleKeyDown.bind(this),document.addEventListener("keydown",this.keyListener),this.isListening=!0)}removeKeyListener(){this.isListening&&this.keyListener&&(document.removeEventListener("keydown",this.keyListener),this.keyListener=null,this.isListening=!1)}handleKeyDown(t){if(this.shortcutManager.isPaused)return;if(this.isInputElement(t.target))return;const e=this.extractKeyFromCode(t.code),n=this.shortcutManager.findShortcutByKeyCombination(e,t.ctrlKey,t.altKey,t.shiftKey,t.metaKey);n&&(t.preventDefault(),t.stopPropagation(),this.shortcutManager.executeShortcut(n.id))}extractKeyFromCode(t){if(t.startsWith("Key"))return t.replace("Key","").toLowerCase();if(t.startsWith("Digit"))return t.replace("Digit","");return{Space:"space",Enter:"enter",Escape:"escape",Tab:"tab",Backspace:"backspace",Delete:"delete",Insert:"insert",Home:"home",End:"end",PageUp:"pageup",PageDown:"pagedown",ArrowUp:"arrowup",ArrowDown:"arrowdown",ArrowLeft:"arrowleft",ArrowRight:"arrowright",F1:"f1",F2:"f2",F3:"f3",F4:"f4",F5:"f5",F6:"f6",F7:"f7",F8:"f8",F9:"f9",F10:"f10",F11:"f11",F12:"f12"}[t]||t.toLowerCase()}isInputElement(t){if(!t)return!1;const e=t.tagName.toLowerCase();if(["input","textarea","select"].includes(e))return!0;if("true"===t.contentEditable)return!0;const n=t.getAttribute("role");return!(!n||!["textbox","searchbox","combobox"].includes(n))}};(0,j.Cg)([(0,tt.inject)(mt)],yt.prototype,"shortcutManager",void 0),yt=(0,j.Cg)([(0,d.customElement)({name:"foundation-shortcut-listener"})],yt);new WeakSet;var vt=n(54634);const{create:bt}=tt.DesignToken,wt=bt("active-color-scheme").withDefault(t=>vt.baseLayerLuminance.getValueFor(t)===vt.StandardLuminance.LightMode?"light":"dark");let Et=class extends d.FASTElement{stylesChanged(t,e){t&&this.parentElement.$fastController.removeStyles(t),this.parentElement.$fastController.addStyles(e)}};(0,j.Cg)([d.observable],Et.prototype,"styles",void 0),Et=(0,j.Cg)([(0,d.customElement)({name:"slotted-styles"})],Et);const St=(t,e)=>{c(t,e)};var Ct,Lt;!function(t){t.Italic="italic",t.Normal="normal"}(Ct||(Ct={})),function(t){t[t.Thin=100]="Thin",t[t.Light=300]="Light",t[t.Regular=400]="Regular",t[t.Medium=500]="Medium",t[t.Bold=700]="Bold",t[t.Black=900]="Black"}(Lt||(Lt={}));const _t=(t,e=Ct.Normal,n=Lt.Regular)=>`\n font-family: ${t};\n font-style: ${e};\n font-weight: ${n};\n`,xt={minusOne:-1,minusTwo:-2,plusOne:1,plusTwo:2,plusThree:3,plusFour:4,plusFive:5,plusSix:6};var Nt=n(31261);class kt{constructor(){}createId(t=!1){const e=(0,Nt.A)();return t&&a.debug(`UUID.createID ${e}`),e}createRemoteId(){return(0,j.sH)(this,arguments,void 0,function*(t=!1){const e=(0,Nt.A)();return t&&a.debug(`UUID.createRemoteID ${e}`),e})}}const Tt=tt.DI.createInterface(t=>t.singleton(kt));let At=class extends d.FASTElement{constructor(){super(...arguments),this.isVisible=!1,this.remainingSeconds=0,this.startTime=0,this.totalSeconds=0}configure(t){this.totalSeconds=t.remainingSeconds,this.remainingSeconds=t.remainingSeconds,this.onContinue=t.onContinue,this.onLogout=t.onLogout}show(){return this.startCountdown(),this.isVisible=!0,this.isVisible}hide(){return this.isVisible=!1,this.stopCountdown(),this.isVisible}startCountdown(){this.startTime=Date.now(),this.countdownInterval=window.setInterval(()=>{try{const t=Date.now()-this.startTime,e=Math.floor(t/1e3);this.remainingSeconds=Math.max(0,this.totalSeconds-e),this.remainingSeconds<=0&&(this.stopCountdown(),this.handleLogout())}catch(t){this.stopCountdown(),console.warn("Error during inactivity countdown:",t)}},1e3)}stopCountdown(){this.countdownInterval&&(clearInterval(this.countdownInterval),this.countdownInterval=void 0)}handleContinue(){this.hide(),this.onContinue&&this.onContinue()}handleLogout(){this.hide(),this.onLogout&&this.onLogout()}disconnectedCallback(){super.disconnectedCallback(),this.stopCountdown()}};(0,j.Cg)([d.observable],At.prototype,"isVisible",void 0),(0,j.Cg)([d.observable],At.prototype,"remainingSeconds",void 0),At=(0,j.Cg)([(0,d.customElement)({name:"inactivity-dialog",template:d.html`
2
+ ${t=>{return e=h(t,"rapid"),d.html`
3
+ <div class="inactivity-overlay" style="display: ${t=>t.isVisible?"display":"none"}">
4
+ <${e}-card class="dialog-card">
5
+ <div class="card-body">
6
+ <div class="dialog-header">
7
+ <${e}-icon name="warning" class="warning-icon"></${e}-icon>
8
+ <h2>Session Timeout Warning</h2>
9
+ </div>
10
+ <div class="dialog-content">
11
+ <p>
12
+ You have been inactive for too long. You will be automatically logged out in
13
+ <strong>${t=>t.remainingSeconds}</strong>
14
+ seconds.
15
+ </p>
16
+ <p>
17
+ Click "Continue Session" to stay logged in, or "Logout Now" to end your session
18
+ immediately.
19
+ </p>
20
+ </div>
21
+ <div class="dialog-actions">
22
+ <${e}-button
23
+ appearance="accent"
24
+ @click=${t=>t.handleContinue()}
25
+ class="continue-button"
26
+ >
27
+ Continue Session
28
+ </${e}-button>
29
+ <${e}-button
30
+ appearance="outline"
31
+ @click=${t=>t.handleLogout()}
32
+ class="logout-button"
33
+ >
34
+ Logout Now
35
+ </${e}-button>
36
+ </div>
37
+ </div>
38
+ </${e}-card>
39
+ </div>
40
+ `;var e}}
41
+ `,styles:d.css`
42
+ .inactivity-overlay {
43
+ position: fixed;
44
+ inset: 0;
45
+ width: 100vw;
46
+ height: 100vh;
47
+ background-color: rgba(0, 0, 0, 0.6);
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: center;
51
+ z-index: 9999;
52
+ backdrop-filter: blur(2px);
53
+ }
54
+
55
+ .dialog-card {
56
+ height: 260px;
57
+ max-height: 260px;
58
+ max-width: 520px;
59
+ width: 92%;
60
+ }
61
+
62
+ .card-body {
63
+ padding: 24px;
64
+ box-sizing: border-box;
65
+ }
66
+
67
+ .dialog-header {
68
+ display: flex;
69
+ align-items: center;
70
+ gap: 12px;
71
+ margin-bottom: 16px;
72
+ }
73
+
74
+ .warning-icon {
75
+ color: var(--accent-fill-rest);
76
+ font-size: 24px;
77
+ }
78
+
79
+ .dialog-header h2 {
80
+ margin: 0;
81
+ color: var(--neutral-foreground-rest);
82
+ font-size: 20px;
83
+ font-weight: 600;
84
+ }
85
+
86
+ .dialog-content {
87
+ margin-bottom: 24px;
88
+ }
89
+
90
+ .dialog-content p {
91
+ margin: 0 0 12px 0;
92
+ color: var(--neutral-foreground-rest);
93
+ line-height: 1.5;
94
+ }
95
+
96
+ .dialog-content p:last-child {
97
+ margin-bottom: 0;
98
+ }
99
+
100
+ .dialog-content strong {
101
+ color: var(--accent-foreground-rest);
102
+ font-weight: 600;
103
+ }
104
+
105
+ .dialog-actions {
106
+ display: flex;
107
+ gap: 12px;
108
+ justify-content: flex-end;
109
+ }
110
+
111
+ .continue-button {
112
+ min-width: 140px;
113
+ }
114
+ .logout-button {
115
+ min-width: 120px;
116
+ }
117
+
118
+ @media (max-width: 480px) {
119
+ .card-body {
120
+ padding: 20px;
121
+ }
122
+ .dialog-actions {
123
+ flex-direction: column;
124
+ }
125
+ .continue-button,
126
+ .logout-button {
127
+ width: 100%;
128
+ }
129
+ }
130
+ `})],At)}}]);
131
+ //# sourceMappingURL=110.7e20a2b648d2484216f576ee3373601f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"110.110.xxxxxxxxxxxxxxxxxxxx.js","mappings":"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","sources":["webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/observer/observer.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/utils/deepMerge.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/utils/delay.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/utils/logger.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/utils/dom.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/design-system/design-system.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/directives/sync/sync.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/directives/when-else/when-else.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/encoding/base64/decode.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/encoding/base64/encode.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/env/is-dev.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/feature-flags/featureFlags.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/env/variables.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/error/errorMap.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/formatters/datetime.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/formatters/localeNumberParser.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/mappers/dto/serverRow.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/mappers/genesis-json-schema/types.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/mixins/pendingState/pendingState.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/mixins/lifecycle/lifecycle.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/promise/resolveAfter.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/serializers/json/json.types.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/serializers/json/json.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/serializers/json/types.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/utils/os-platform.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/shortcut-manager/shortcut-manager.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/shortcut-manager/shortcut-listener.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/state/reactive.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/styles/color.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/styles/slotted-styles.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/styles/typography.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/uuid/uuid.js","webpack://@genesislcap/design-system-configurator/../../foundation/foundation-utils/dist/esm/inactivity/inactivity-dialog.js"],"sourcesContent":["/**\n * Creates a new event observer instance.\n * @public\n */\nexport const createObserver = () => {\n let listeners = [];\n return {\n subscribe(listener) {\n listeners.push(listener);\n return () => (listeners = listeners.filter((l) => l !== listener));\n },\n publish(event) {\n listeners.forEach((l) => l(event));\n },\n };\n};\n/**\n * Setup an `IntersectionObserver` which will activate a callback function when an element becomes visible on screen\n * @param element - HTMLElement to observe\n * @param callback - any function called when the visibility changes\n * @public\n */\nexport const respondToVisibility = (element, callback) => {\n const options = {\n root: document.documentElement,\n };\n const observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n callback(entry.intersectionRatio > 0);\n });\n }, options);\n observer.observe(element);\n};\n","/**\n * Deep merges two objects, with source values taking precedence over target values.\n * Arrays are replaced (not merged), and null/undefined values in source are preserved.\n *\n * @param target - The target object to merge into (defaults/base values)\n * @param source - The source object to merge from (overrides)\n * @returns A new merged object with source values taking precedence\n * @public\n * @example\n * ```ts\n * const defaults = { a: 1, b: { c: 2, d: 3 } };\n * const overrides = { b: { c: 4 } };\n * const merged = deepMerge(defaults, overrides);\n * // Result: { a: 1, b: { c: 4, d: 3 } }\n * ```\n */\nexport const deepMerge = (target, source) => {\n const output = structuredClone(target);\n if (!source || typeof source !== 'object' || Array.isArray(source)) {\n return source !== undefined ? source : output;\n }\n Object.keys(source).forEach((key) => {\n const sourceValue = source[key];\n const targetValue = output[key];\n // If source value is null or undefined, skip it (preserve target value)\n if (sourceValue === null || sourceValue === undefined) {\n return;\n }\n // Type guard for Date check\n const isDate = (value) => value instanceof Date;\n // If both are plain objects (not arrays, dates, etc.), recursively merge\n if (sourceValue &&\n typeof sourceValue === 'object' &&\n !Array.isArray(sourceValue) &&\n !isDate(sourceValue) &&\n targetValue &&\n typeof targetValue === 'object' &&\n !Array.isArray(targetValue) &&\n !isDate(targetValue)) {\n output[key] = deepMerge(targetValue, sourceValue);\n }\n else {\n // Otherwise, source value overrides target value\n output[key] = sourceValue;\n }\n });\n return output;\n};\n","/**\n * Delay for a given number of milliseconds\n * @param ms - The number of milliseconds to delay\n * @returns A promise that resolves after the given number of milliseconds\n * @public\n * @example\n * ```ts\n * await delay(1000);\n * console.log('1 second later');\n * ```\n */\nexport const delay = (ms) => new Promise((resolve) => {\n setTimeout(resolve, ms);\n});\n","import { createLogger } from '@genesislcap/foundation-logger';\n/**\n * Logger for the foundation-utils package\n * @public\n */\nexport const logger = createLogger('foundation-utils');\n","import { logger } from './logger';\n/**\n * Inserts a CSS rule into the document by creating a new style element or using an existing one with the specified ID.\n * Returns a function that can be called to remove the rule from the document.\n * @public\n * @param cssRule - The CSS rule to insert.\n * @param styleElementId - The ID of the style element to use or create.\n * @returns A function that removes the rule from the document.\n */\nexport const insertDocumentCSSRule = (cssRule, styleElementId) => {\n var _a;\n let styleElement = document.getElementById(styleElementId);\n if (styleElement) {\n logger.debug(`\n An element with the id of '${styleElementId}' already exists and likely has the css rules applied.\n `);\n return;\n }\n const headElement = (_a = document.head) !== null && _a !== void 0 ? _a : document.getElementsByTagName('head')[0];\n styleElement = document.createElement('style');\n styleElement.id = styleElementId;\n headElement.appendChild(styleElement);\n // Check if the CSS rule contains multiple rules (contains multiple closing braces)\n const ruleCount = (cssRule.match(/}/g) || []).length;\n if (ruleCount > 1) {\n // Multiple rules: use textContent to avoid insertRule limitations\n styleElement.textContent = cssRule;\n return () => {\n if (!styleElement) {\n return;\n }\n headElement.removeChild(styleElement);\n };\n }\n else {\n // Single rule: use insertRule for consistency with existing behavior\n const styleIndex = styleElement.sheet.insertRule(cssRule);\n return () => {\n if (!styleElement) {\n return;\n }\n styleElement.sheet.deleteRule(styleIndex);\n headElement.removeChild(styleElement);\n };\n }\n};\n/**\n * Inserts a CSS link into the document if it doesn't already exist.\n * @public\n * @param href - The URL of the CSS file to insert.\n */\nexport const insertDocumentLink = (href) => {\n const links = document.head.querySelectorAll('link');\n // Already been injected\n for (const index in links)\n if (links[index].href === href)\n return;\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = href;\n document.head.appendChild(link);\n};\n/**\n * Recursively gather all elements including those in shadow DOM\n * @public\n */\nexport function getAllElements(root) {\n const elements = [];\n const processedShadowRoots = new Set();\n function collectElements(node) {\n // Get all elements in the current node\n const nodeElements = Array.from(node.querySelectorAll('*'));\n elements.push(...nodeElements);\n // Process shadow roots\n nodeElements.forEach((el) => {\n if (el.shadowRoot && !processedShadowRoots.has(el.shadowRoot)) {\n processedShadowRoots.add(el.shadowRoot);\n collectElements(el.shadowRoot);\n }\n });\n }\n collectElements(root);\n return elements;\n}\n","import { getAllElements, logger } from '../utils';\n/**\n * assureDesignSystem.\n *\n * @remarks\n * Webpack caching strategies can backfill missing modules with placeholders in an attempt to prevent errors. In the case\n * of offline remotes, we rely on the error to fall back to local versions. This utility assures we have a design system.\n *\n * @example\n * ```ts\n * async function zeroDesignSystemImport(): Promise<DesignSystemModule> {\n * let module: DesignSystemModule;\n * let type: ResourceType = ResourceType.remote;\n * try {\n * module = await import('foundationZero/ZeroDesignSystem');\n * return assureDesignSystem(module);\n * } catch (e) {\n * logger.info(\n * `Please note remoteEntry.js load errors are expected if module federated dependencies are offline. Falling back to locally bundled versions.`,\n * );\n * type = ResourceType.local;\n * module = await import('@genesislcap/foundation-zero');\n * return assureDesignSystem(module);\n * } finally {\n * logger.debug(`Using '${type}' version of foundation-zero`);\n * }\n * }\n * ```\n *\n * @example You should also instruct webpack to use strict module handling.\n * ```ts\n * output: {\n * strictModuleErrorHandling: true,\n * strictModuleExceptionHandling: true,\n * }\n * ```\n *\n * @public\n */\nexport function assureDesignSystem(module) {\n if (!module) {\n throw new Error('Undefined design system module');\n }\n if (typeof module.provideDesignSystem !== 'function') {\n throw new Error('Required `provideDesignSystem` function missing from design system module');\n }\n return module;\n}\n/**\n * Get the current design system provider element and prefix by checking available providers.\n * If no provider is found, falls back to the provided prefix.\n * @param element - The starting HTML element\n * @param fallbackPrefix - The prefix to fallback to if the provider is not available\n * @returns An object containing the current design system provider element and prefix\n *\n * @example\n * ```ts\n * const { element: providerElement, prefix } = getCurrentDesignSystem(myElement, 'default-prefix');\n * logger.debug(prefix); // e.g., 'rapid' or 'default-prefix'\n * logger.debug(providerElement); // The provider element or null\n * ```\n * @public\n */\nexport function getCurrentDesignSystem(element, fallbackPrefix) {\n // First try: Check element and its ancestors\n let current = element;\n while (current) {\n const tagName = current.tagName.toLowerCase();\n if (tagName.endsWith('-design-system-provider')) {\n const prefix = tagName.split('-design-system-provider')[0];\n if (prefix) {\n logger.debug(`Found provider by ancestor search: ${tagName}, prefix: ${prefix}`);\n return { element: current, prefix };\n }\n }\n // Move up the DOM tree, handling shadow DOM boundaries\n if (current.parentElement) {\n current = current.parentElement;\n }\n else if (current.getRootNode && current.getRootNode() instanceof ShadowRoot) {\n current = current.getRootNode().host;\n }\n else {\n current = null;\n }\n }\n // Second try: Document-wide search\n const allProviders = document.querySelectorAll('[class*=\"-design-system-provider\"],[id*=\"-design-system-provider\"]');\n const providerElements = Array.from(allProviders);\n // Add shadow DOM providers\n const shadowProviders = getAllElements(document).filter((el) => {\n var _a;\n const tagName = (_a = el.tagName) === null || _a === void 0 ? void 0 : _a.toLowerCase();\n return (tagName === null || tagName === void 0 ? void 0 : tagName.endsWith('-design-system-provider')) || false;\n });\n providerElements.push(...shadowProviders);\n if (providerElements.length > 0) {\n const provider = providerElements[0];\n const providerTag = provider.tagName.toLowerCase();\n const prefix = providerTag.split('-design-system-provider')[0];\n if (prefix) {\n logger.debug(`Found provider by document search: ${providerTag}, prefix: ${prefix}`);\n return { element: provider, prefix };\n }\n }\n logger.debug(`No provider found. Falling back to ${fallbackPrefix}.`);\n return { element: null, prefix: fallbackPrefix };\n}\n/**\n * Get the current design system prefix by checking available providers.\n * If no provider is found, falls back to the provided prefix.\n * @param element - The starting HTML element\n * @param fallbackPrefix - The prefix to fallback to if the provider is not available\n * @returns The current design system prefix\n *\n * @example\n * ```ts\n * const prefix = getCurrentDesignSystemPrefix(myElement, 'default-prefix');\n * logger.debug(prefix); // e.g., 'rapid' or 'default-prefix'\n * ```\n * @public\n */\nexport function getCurrentDesignSystemPrefix(element, fallbackPrefix) {\n return getCurrentDesignSystem(element, fallbackPrefix).prefix;\n}\n","import { HTMLBindingDirective, } from '@microsoft/fast-element';\n/**\n * A map that associates specific HTML element tags with their corresponding default event names.\n * @public\n */\nexport const defaultEventMap = new Map([\n ['FAST-TEXT-AREA', 'input'],\n ['FAST-TEXT-FIELD', 'input'],\n ['FOUNDATION-TEXT-AREA', 'input'],\n ['FOUNDATION-TEXT-FIELD', 'input'],\n ['INPUT', 'input'],\n ['ZERO-TEXT-FIELD', 'input'],\n]);\nfunction customUpdateTarget(value) {\n if (this['keyAttr']) {\n // FUI-389: set initial state based on keyAttr\n }\n else {\n this.target[this.targetName] = value;\n }\n}\nfunction bind(source, context) {\n if (this['keyAttr']) {\n // overwrite internal update method called by originalBind\n this.updateTarget = customUpdateTarget;\n }\n this.originalBind.call(this, source, context);\n this.target.addEventListener(this.changeEvent, this.changeHandler);\n}\nfunction unbind() {\n this.originalUnbind.call(this);\n this.target.removeEventListener(this.changeEvent, this.changeHandler);\n}\nfunction determineChangeEvent(target, eventName) {\n var _a;\n const tag = target.tagName;\n if (eventName === 'default') {\n return (_a = defaultEventMap.get(tag)) !== null && _a !== void 0 ? _a : 'change';\n }\n return eventName;\n}\nclass SyncDirective extends HTMLBindingDirective {\n constructor(binding, convert, eventName, keyAttr) {\n super(binding);\n this.keyAttr = keyAttr;\n this.conversionType = convert;\n this.eventName = eventName;\n }\n createBehavior(target) {\n const behavior = super.createBehavior(target);\n behavior.originalBind = behavior.bind;\n behavior.originalUnbind = behavior.unbind;\n behavior.keyAttr = this.keyAttr;\n behavior.bind = bind;\n behavior.unbind = unbind;\n behavior.changeEvent = determineChangeEvent(target, this.eventName);\n behavior.changeHandler = () => {\n // for checkbox, which is currently the only component converting to boolean, will have to change if boolean conversion is used anywhere else\n const value = this.conversionType === 'boolean' ? behavior.target.checked : behavior.target.value;\n if (this.keyAttr) {\n const last = behavior.bindingObserver.last;\n const key = behavior.target[this.keyAttr];\n last.propertySource[last.propertyName][key] = this.convert(value);\n }\n else {\n // Wait for an official setValue API\n const last = behavior.bindingObserver.last;\n last.propertySource[last.propertyName] = this.convert(value);\n }\n };\n return behavior;\n }\n convert(value) {\n if (value === undefined || value === null)\n return value;\n switch (this.conversionType) {\n case 'time':\n const msSinceEpoch = new Date(value).getTime();\n return isNaN(msSinceEpoch) ? undefined : msSinceEpoch;\n case 'number':\n return value.length ? Number(value) : undefined; // Number('') returns 0\n case 'string':\n return String(value);\n case 'boolean':\n return Boolean(value);\n default:\n return value;\n }\n }\n}\n/**\n * Creates a synchronization directive that binds a data source to an HTML element,\n * @public\n */\nexport function sync(binding, conversionType = 'string', eventName = 'default', keyAttr) {\n return new SyncDirective(binding, conversionType, eventName, keyAttr);\n}\n","/**\n * Directive that allows supplying an \"else\" template to the traditional {@link https://www.fast.design/docs/api/fast-element.when/#when-function} directive\n *\n * @param binding - The condition to test for rendering.\n * @param trueTemplateOrTemplateBinding - The template or a binding that gets the template to render when the condition is true.\n * @param falseTemplateOrTemplateBinding - The template or a binding that gets the template to render when the condition is false.\n * @public\n */\nexport function whenElse(binding, trueTemplateOrTemplateBinding, falseTemplateOrTemplateBinding) {\n const getTemplate = (template) => typeof template === 'function' ? template : () => template;\n const trueTemplate = getTemplate(trueTemplateOrTemplateBinding);\n const falseTemplate = getTemplate(falseTemplateOrTemplateBinding);\n return (source, context) => binding(source, context) ? trueTemplate(source, context) : falseTemplate(source, context);\n}\n","const base64Pattern = /^(?:[A-Za-z0-9+/]{4})*?(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/;\n/**\n * Decodes a value from base64.\n * @public\n * @param value - The value to decode from base64.\n * @returns The decoded value.\n */\nexport const decodeFromBase64 = (base64Value) => {\n if (base64Pattern.test(base64Value)) {\n const decodedString = atob(base64Value);\n const buffer = new Uint8Array(decodedString.length);\n [...decodedString].forEach((_, i) => {\n buffer[i] = decodedString.charCodeAt(i);\n });\n return buffer.buffer;\n }\n return base64Value;\n};\n/**\n * Decodes a value from base64 with a prefix.\n * @remarks Prefixes are: 'str:' for string and 'bin:' for ArrayBuffer.\n * @public\n * @param value - The value to decode from base64.\n * @returns The decoded value.\n */\nexport const decodeFromBase64WithPrefix = (value) => {\n const parts = value.split(':');\n let prefix;\n let base64Value;\n if (parts.length === 2) {\n [prefix, base64Value] = parts;\n }\n else {\n base64Value = value;\n }\n const decodedValue = decodeFromBase64(base64Value);\n if (prefix === 'str') {\n const textDecoder = new TextDecoder('utf-8');\n return textDecoder.decode(decodedValue);\n }\n else if (prefix === 'bin') {\n return decodedValue;\n }\n return decodedValue;\n};\n","/**\n * Encodes the given value to base64.\n * @public\n * @param value - The value to encode to base64.\n * @returns The base64 encoded value.\n */\nexport const encodeToBase64 = (value) => {\n if (typeof value === 'string') {\n return btoa(value);\n }\n else if (value instanceof ArrayBuffer) {\n const buffer = new Uint8Array(value);\n const binaryString = buffer.reduce((data, byte) => data + String.fromCharCode(byte), '');\n return btoa(binaryString);\n }\n return '';\n};\n/**\n * Encodes the given value with a prefix to base64.\n * @remarks Prefixes are: 'str:' for string and 'bin:' for ArrayBuffer.\n * @public\n * @param value - The value to encode to base64.\n * @returns The base64 encoded value with a prefix.\n */\nexport const encodeToBase64WithPrefix = (value) => {\n const base64Value = encodeToBase64(value);\n if (typeof value === 'string') {\n return `str:${base64Value}`;\n }\n else if (value instanceof ArrayBuffer) {\n return `bin:${base64Value}`;\n }\n return '';\n};\n","/**\n * Determines if the current environment is a development environment.\n * @public\n */\nexport const isDev = () => !process.env.NODE_ENV || process.env.NODE_ENV === 'development';\n","export const isFeatureActivated = (feature) => {\n const currentUrl = window.location.href;\n const queryString = new URL(currentUrl).search;\n const params = new URLSearchParams(queryString);\n const featureKey = `feature.${feature}`.toLowerCase();\n for (const [key] of params.entries()) {\n if (key.toLowerCase() === featureKey) {\n return true;\n }\n }\n return false;\n};\n","/* eslint-disable import/no-mutable-exports */\nimport { isFeatureActivated } from '../feature-flags';\n/**\n * The builder aka file bundler.\n * @privateRemarks\n * Provided by default as part of the `resolveDefineConfig` in the build kit.\n * @example 'webpack', 'vite'.\n * @defaultValue `'webpack'`\n * @public\n */\nlet _BUILDER = 'webpack';\ntry {\n if (typeof BUILDER !== 'undefined') {\n _BUILDER = BUILDER;\n }\n}\ncatch (_a) { }\nexport { _BUILDER as BUILDER };\n/**\n * The public path.\n * @privateRemarks\n * Provided by default as part of the `resolveDefineConfig` in the build kit.\n * @example '/', '/app/'.\n * @public\n * @defaultValue `'/'`\n */\nlet _PUBLIC_PATH = '/';\ntry {\n if (typeof PUBLIC_PATH !== 'undefined') {\n // Remove trailing slash from PUBLIC_PATH\n _PUBLIC_PATH = PUBLIC_PATH.replace(/\\/$/, '');\n }\n}\ncatch (_b) { }\nexport { _PUBLIC_PATH as PUBLIC_PATH };\n/**\n * The sub-path used for WebSocket connections when API_HOST is not set\n * @public\n * @defaultValue `'gwf'`\n * @remarks Optional.\n * @example\n * If `API_HOST` is not set, `SOCKET_EXT` is set to `/custom` and UI is served on `https://localhost:1234`\n * API host URL will be `wss://localhost:1234/custom`\n */\nlet _SOCKET_EXT = 'gwf';\ntry {\n if (typeof SOCKET_EXT !== 'undefined') {\n _SOCKET_EXT = SOCKET_EXT;\n }\n}\ncatch (_c) { }\nexport { _SOCKET_EXT as SOCKET_EXT };\n/**\n * The path to a JSON config file for the HTTP mode.\n * @remarks Optional.\n * @public\n */\nlet _FORCE_HTTP;\ntry {\n _FORCE_HTTP = FORCE_HTTP;\n}\ncatch (_d) { }\nexport { _FORCE_HTTP as FORCE_HTTP };\n/**\n * Genesis Socket URL\n * @remarks\n * Built from the current {@link https://developer.mozilla.org/en-US/docs/Web/API/Location} object and {@link SOCKET_EXT | socket extension}.\n * @example\n * ```ts\n * await this.connect.connect(GENESIS_SOCKET_URL); // < wss://localhost:6060/gwf/\n * ```\n * @public\n */\nexport const GENESIS_SOCKET_URL = `${location.protocol.replace('http', 'ws')}//${location.host}${_PUBLIC_PATH}/${_SOCKET_EXT}/`;\nconst PROTOCOL = _FORCE_HTTP === 'true' || isFeatureActivated('forceHttp')\n ? location.protocol\n : location.protocol.replace('http', 'ws');\n/**\n * The Genesis Server URL (WebSocket or HTTP).\n * @remarks Optional.\n * @defaultValue `${PROTOCOL}//${location.host}/${_SOCKET_EXT}/`\n * @example ws://localhost/gwf/, ws://localhost:9064\n * @public\n */\nlet _API_HOST = `${PROTOCOL}//${location.host}/${_SOCKET_EXT}/`;\ntry {\n if (typeof API_HOST !== 'undefined') {\n _API_HOST = API_HOST;\n }\n}\ncatch (_e) { }\nexport { _API_HOST as API_HOST };\n/**\n * Configuration settings for HTTP, used in http connect flow [`genesislcap-foundation-comms.HttpConnectConfig`](https://link-to-docs).\n * @remarks Optional.\n * @public\n */\nlet _HTTP_CONFIG;\ntry {\n _HTTP_CONFIG = HTTP_CONFIG;\n}\ncatch (_f) { }\nexport { _HTTP_CONFIG as HTTP_CONFIG };\n/**\n * The default Organisation value, used in auth/login flow [`genesislcap-foundation-login`](https://link-to-docs).\n * @remarks Optional.\n * @public\n */\nlet _DEFAULT_ORGANISATION;\ntry {\n _DEFAULT_ORGANISATION = DEFAULT_ORGANISATION;\n}\ncatch (_g) { }\nexport { _DEFAULT_ORGANISATION as DEFAULT_ORGANISATION };\n/**\n * The default Password value, used in auth/login flow [`genesislcap-foundation-login`](https://link-to-docs).\n * @remarks Optional.\n * @public\n */\nlet _DEFAULT_PASSWORD;\ntry {\n _DEFAULT_PASSWORD = DEFAULT_PASSWORD;\n}\ncatch (_h) { }\nexport { _DEFAULT_PASSWORD as DEFAULT_PASSWORD };\n/**\n * The default Username value, used in auth/login flow [`genesislcap-foundation-login`](https://link-to-docs).\n * @remarks Optional.\n * @public\n */\nlet _DEFAULT_USER;\ntry {\n _DEFAULT_USER = DEFAULT_USER;\n}\ncatch (_j) { }\nexport { _DEFAULT_USER as DEFAULT_USER };\n/**\n * @public\n */\nlet LOGIN_URL = 'gwf/event-login-auth';\nif (typeof GENX_LOGIN_URL !== 'undefined') {\n LOGIN_URL = GENX_LOGIN_URL;\n}\nexport { LOGIN_URL };\n/**\n * @public\n */\nlet LOGIN_REFRESH_URL = 'gwf/event-login-auth';\nif (typeof GENX_LOGIN_REFRESH_URL !== 'undefined') {\n LOGIN_REFRESH_URL = GENX_LOGIN_REFRESH_URL;\n}\nexport { LOGIN_REFRESH_URL };\n/**\n * @public\n */\nlet LOGIN_DETAILS_URL = 'gwf/event-login-details';\nif (typeof GENX_LOGIN_DETAILS_URL !== 'undefined') {\n LOGIN_DETAILS_URL = GENX_LOGIN_DETAILS_URL;\n}\nexport { LOGIN_DETAILS_URL };\n/**\n * @public\n */\nlet LOGOUT_URL = 'gwf/event-logout';\nif (typeof GENX_LOGOUT_URL !== 'undefined') {\n LOGOUT_URL = GENX_LOGOUT_URL;\n}\nexport { LOGOUT_URL };\n/**\n * @public\n */\nlet CHANGE_PASSWORD_URL = 'gwf/event-change-user-password';\nif (typeof GENX_CHANGE_PASSWORD_URL !== 'undefined') {\n CHANGE_PASSWORD_URL = GENX_CHANGE_PASSWORD_URL;\n}\nexport { CHANGE_PASSWORD_URL };\n/**\n * @public\n */\nlet FORGOT_PASSWORD_URL = 'gwf/event-self-service-password-reset';\nif (typeof GENX_FORGOT_PASSWORD_URL !== 'undefined') {\n FORGOT_PASSWORD_URL = GENX_FORGOT_PASSWORD_URL;\n}\nexport { FORGOT_PASSWORD_URL };\n/**\n * @public\n */\nlet RESET_PASSWORD_URL = 'gwf/event-password-reset-action';\nif (typeof GENX_RESET_PASSWORD_URL !== 'undefined') {\n RESET_PASSWORD_URL = GENX_RESET_PASSWORD_URL;\n}\nexport { RESET_PASSWORD_URL };\n/**\n * @public\n */\nlet SSO_LIST_URL = 'gwf/sso/list';\nif (typeof GENX_SSO_LIST_URL !== 'undefined') {\n SSO_LIST_URL = GENX_SSO_LIST_URL;\n}\nexport { SSO_LIST_URL };\n/**\n * @public\n */\nlet SSO_LOGIN_URL = 'gwf/{type}/login?idp={id}';\nif (typeof GENX_SSO_LOGIN_URL !== 'undefined') {\n SSO_LOGIN_URL = GENX_SSO_LOGIN_URL;\n}\nexport { SSO_LOGIN_URL };\n/**\n * @public\n */\nlet ENVIRONMENT_LEVEL = 'default';\nif (typeof GENX_ENVIRONMENT_LEVEL !== 'undefined') {\n ENVIRONMENT_LEVEL = GENX_ENVIRONMENT_LEVEL;\n}\nexport { ENVIRONMENT_LEVEL };\n/**\n * @public\n */\nlet ACCEPT_TERMS_URL = 'gwf/auth/accept-terms';\nif (typeof GENX_ACCEPT_TERMS_URL !== 'undefined') {\n ACCEPT_TERMS_URL = GENX_ACCEPT_TERMS_URL;\n}\nexport { ACCEPT_TERMS_URL };\n","import { __decorate } from \"tslib\";\nimport { observable } from '@microsoft/fast-element';\n/**\n * @public\n */\nexport class DefaultErrorMap {\n /**\n * @param logger - A logger error method reference.\n */\n constructor(logger) {\n this.logger = logger;\n this.map = new Map();\n }\n /** {@inheritDoc ErrorMap.set} */\n set(key, error) {\n this.logger(key, error);\n this.lastError = error;\n this.map = new Map(this.map.set(key, error));\n }\n /**\n * Get an error by key.\n * @param key - The key.\n * @returns The error if it exists, otherwise undefined.\n *\n * @public\n */\n get(key) {\n return this.map.get(key);\n }\n /**\n * Has an error for key.\n * @param key - The key.\n * @returns True if it exists, otherwise false.\n *\n * @public\n */\n has(key) {\n return this.map.has(key);\n }\n /**\n * Delete an error.\n * @param key - The key.\n * @returns True if successful, otherwise false.\n *\n * @public\n */\n delete(key) {\n const isDeletingLast = this.map.get(key) === this.lastError;\n const result = this.map.delete(key);\n if (result) {\n this.map = new Map(this.map);\n if (isDeletingLast) {\n this.lastError = undefined;\n }\n }\n return result;\n }\n /**\n * Clear errors.\n * @public\n */\n clear() {\n this.lastError = undefined;\n this.map = new Map();\n }\n /**\n * The size of the error map.\n * @returns number\n *\n * @public\n */\n get size() {\n return this.map.size;\n }\n /**\n * @public\n */\n values() {\n return this.map.values();\n }\n /** {@inheritDoc ErrorMap.messages} */\n get messages() {\n const count = this.size;\n if (!count) {\n return '';\n }\n const errorMessages = [];\n for (const { message } of this.map.values()) {\n errorMessages.push(message);\n }\n return `${count} Error${count > 1 ? 's' : ''} Occurred:\\n${errorMessages.join('\\n')}`;\n }\n}\n__decorate([\n observable\n], DefaultErrorMap.prototype, \"map\", void 0);\n__decorate([\n observable\n], DefaultErrorMap.prototype, \"lastError\", void 0);\n/**\n * A factory to create the error map.\n * @param logger - A logger error method reference.\n * @returns A ErrorMap instance.\n *\n * @public\n */\nexport const createErrorMap = (logger) => new DefaultErrorMap(logger);\n","const isoDateSliceEnd = 10;\n/**\n * Formats [DATE] UNIX Timestamps (without time) to readable strings\n * @public\n */\nexport function formatDateTimestamp(timestamp) {\n if (!timestamp || isNaN(timestamp))\n return null;\n return new Date(timestamp).toISOString().slice(0, isoDateSliceEnd);\n}\nconst isoDateTimeSliceEnd = 19;\n/**\n * Formats [DATETIME] UNIX Timestamps (with time) to readable strings\n * @public\n */\nexport function formatDateTimeTimestamp(timestamp) {\n if (!timestamp || isNaN(timestamp))\n return null;\n return new Date(timestamp).toISOString().slice(0, isoDateTimeSliceEnd).replace('T', ' ');\n}\nconst isoDateTimeWithMsSliceEnd = 23;\n/**\n * Formats [DATETIME] UNIX Timestamps (with time and milliseconds) to readable strings\n * @public\n */\nexport function formatDateTimeTimestampWithMilliseconds(timestamp) {\n if (!timestamp || isNaN(timestamp))\n return null;\n return new Date(timestamp).toISOString().slice(0, isoDateTimeWithMsSliceEnd).replace('T', ' ');\n}\n/**\n * Formats [DATE|DATETIME] Unix Timestamps to readable strings\n * @public\n * @param timestamp - The UNIX Timestamp.\n * @param withTime - The flag to determine if formatted value should contain 'time' info.\n */\nexport function formatTimestamp(timestamp, withTime) {\n if (withTime) {\n return formatDateTimeTimestamp(timestamp);\n }\n return formatDateTimestamp(timestamp);\n}\nconst defaultDateOptions = {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n timeZone: 'UTC',\n};\n/**\n * @public\n */\nexport function getDateFormatter(locale = 'en-GB', options = defaultDateOptions) {\n return (params) => {\n if (!(params && typeof params.value === 'number'))\n return '';\n return new Intl.DateTimeFormat(locale, options).format(params.value);\n };\n}\n","const FORMAT_PARTS = 12345.6;\nconst FORMAT_NUMERALS = 9876543210;\n/**\n * @public\n */\nexport class NumberParser {\n constructor(locale) {\n const parts = new Intl.NumberFormat(locale).formatToParts(FORMAT_PARTS);\n const numerals = [\n ...new Intl.NumberFormat(locale, { useGrouping: false }).format(FORMAT_NUMERALS),\n ].reverse();\n const index = new Map(numerals.map((d, i) => [d, i]));\n this._group = new RegExp(`[${parts.find((d) => d.type === 'group').value}]`, 'g');\n this._decimal = new RegExp(`[${parts.find((d) => d.type === 'decimal').value}]`);\n this._separator = new RegExp(`[$${parts.find((d) => d.type === 'decimal').value}](?:0*$|[^0]0+$)`);\n this._numeral = new RegExp(`[${numerals.join('')}]`, 'g');\n this._index = (d) => index.get(d);\n }\n parse(localeNumber) {\n return (localeNumber = localeNumber\n .trim()\n .replace(this._group, '')\n .replace(this._decimal, '.')\n .replace(this._numeral, this._index))\n ? +localeNumber\n : NaN;\n }\n hasSeparator(localeNumber) {\n return this._separator.test(localeNumber);\n }\n}\n","import { DI } from '@microsoft/fast-foundation';\n/**\n * The default `ServerRowDTOMapper`.\n * @public\n */\nexport class DefaultServerRowDTOMapper {\n constructor() {\n /**\n * Converts a server row DTO to an entity.\n * @param dto - The DTO to convert.\n * @returns The resulting entity.\n * @public\n */\n this.fromDTO = (dto) => {\n var _a, _b, _c;\n return ({\n serverRowMetadata: {\n operation: (_b = (_a = dto === null || dto === void 0 ? void 0 : dto.DETAILS) === null || _a === void 0 ? void 0 : _a.OPERATION) === null || _b === void 0 ? void 0 : _b.toLowerCase(),\n rowRef: (_c = dto === null || dto === void 0 ? void 0 : dto.DETAILS) === null || _c === void 0 ? void 0 : _c.ROW_REF,\n },\n });\n };\n /**\n * Converts a server row entity to a DTO.\n * @param entity - The entity to convert.\n * @returns The resulting DTO.\n * @public\n */\n this.toDTO = (entity) => {\n var _a, _b, _c;\n return ({\n DETAILS: {\n OPERATION: (_b = (_a = entity === null || entity === void 0 ? void 0 : entity.serverRowMetadata) === null || _a === void 0 ? void 0 : _a.operation) === null || _b === void 0 ? void 0 : _b.toUpperCase(),\n ROW_REF: (_c = entity === null || entity === void 0 ? void 0 : entity.serverRowMetadata) === null || _c === void 0 ? void 0 : _c.rowRef,\n },\n });\n };\n }\n}\n/**\n * A DI token used to obtain a `ServerRowDTOMapper` instance.\n * @public\n */\nexport const ServerRowDTOMapper = DI.createInterface((x) => x.singleton(DefaultServerRowDTOMapper));\n","/** @public */\nexport var Genesis;\n(function (Genesis) {\n Genesis.genesisFieldTypes = [\n 'STRING',\n 'ENUM',\n 'INT',\n 'SHORT',\n 'DOUBLE',\n 'LONG',\n 'BOOLEAN',\n 'BIGDECIMAL',\n 'DATE',\n 'DATETIME',\n 'RAW',\n 'NANO_TIMESTAMP',\n ];\n})(Genesis || (Genesis = {}));\n","import { __awaiter, __decorate } from \"tslib\";\nimport { observable } from '@microsoft/fast-element';\nimport { logger } from '../../utils';\n/**\n * An enum that defines the names of the events that can be raised by the `PendingState` mixin.\n * @public\n */\nexport var PendingStateEvents;\n(function (PendingStateEvents) {\n PendingStateEvents[\"state\"] = \"pending-state\";\n PendingStateEvents[\"error\"] = \"pending-state-error\";\n})(PendingStateEvents || (PendingStateEvents = {}));\n/**\n * The `PendingState` mixin.\n * @public\n */\nexport const PendingState = (Base) => {\n class Pending extends Base {\n constructor() {\n super(...arguments);\n /**\n * The number of promises that are currently pending.\n * @public\n */\n this.pendingCount = 0;\n /**\n * The number of promises that have been resolved.\n * @public\n */\n this.resolvedCount = 0;\n /**\n * A boolean indicating whether there are any pending children.\n * @public\n */\n this.hasPendingChildren = false;\n }\n /**\n * Gets the progress of the pending promises as a percentage between 0 and 1.\n * @public\n */\n get progress() {\n return this.resolvedCount / this.pendingCount;\n }\n /**\n * Called when the element is connected to the DOM.\n * @internal\n */\n connectedCallback() {\n super.connectedCallback();\n logger.debug(`PendingState mixin is now connected to the DOM`);\n /**\n * We're likely not adding this mixin to the app shell, so may need to listen on a route hub...\n */\n this.addEventListener(PendingStateEvents.state, this.onPendingState);\n }\n /**\n * Called when the element is disconnected from the DOM.\n * @internal\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n logger.debug(`PendingState mixin is now disconnected from the DOM`);\n this.removeEventListener(PendingStateEvents.state, this.onPendingState);\n }\n /**\n * Handles the `pending-state` event.\n * @param event - The `pending-state` event.\n * @internal\n */\n onPendingState(_a) {\n return __awaiter(this, arguments, void 0, function* ({ detail }) {\n const { promise } = detail;\n if (promise) {\n this.hasPendingChildren = true;\n this.pendingCount += 1;\n try {\n yield promise;\n }\n catch (error) {\n this.$emit(PendingStateEvents.error, {\n message: `Error in pending-state promise: ${error}`,\n error,\n });\n }\n finally {\n this.resolvedCount += 1;\n if (this.pendingCount === this.resolvedCount) {\n this.hasPendingChildren = false;\n }\n }\n }\n });\n }\n }\n __decorate([\n observable\n ], Pending.prototype, \"hasPendingChildren\", void 0);\n return Pending;\n};\n","import { __classPrivateFieldGet, __classPrivateFieldSet } from \"tslib\";\n/** @internal **/\nconst CLEANUP_TIMEOUT_MS = 10000;\n/**\n * @beta\n * Mixin class to expose `shouldRunConnect` and `shouldRunDisconnect`\n *\n * @remarks These can be used to control what lifecycle functionality is ran when the elements\n * are part of a custom layout. The class itself handles all events\n * @privateRemarks\n * #_ syntax is used for a javascript private method/variable\n * we can't use private/protected from typescript in an anonymous class like this\n */\nexport const LifecycleMixin = (Base) => { var _instances, __container, __latestTokenCode, __hasFirstLoaded, __cleanupTimeout, __shouldForceLifecycle, __blockLifecycleDueToTokenChange, __tryFindContainingLayout, _a; return _a = class extends Base {\n constructor(...args) {\n super(args);\n _instances.add(this);\n /** @internal **/\n __container.set(this, { _key: 'dom' });\n /**\n * If the token changes we suggest blocking the lifecycle methods\n * @internal\n **/\n __latestTokenCode.set(this, '');\n /**\n * Track first loaded to allow us to always run the connect lifecycle on the first load\n * @internal\n **/\n __hasFirstLoaded.set(this, false);\n /**\n * When you request to delete an item from the layout it will be removed from the DOM,\n * but the lifecycle might be blocked due to the same mechanism that we block the other\n * items.\n * This would block cleanup of the item, so we need to force a disconnection after a timeout\n * if this item hasn't reconnected within `CLEANUP_TIMEOUT_MS`.\n * @internal\n **/\n __cleanupTimeout.set(this, void 0);\n /**\n * Used to force lifecycle to run even if the token has changed, such as in instances where\n * we are forcing a disconnection due to this item being remove from the layout.\n * @internal\n **/\n __shouldForceLifecycle.set(this, false);\n }\n /**\n * @privateRemarks\n * Rather than using the basic implementation of cloning we run a copy constructor (deepClone)\n * and then manually clone the children too so they can intercept with an overriden cloneNode\n * if they want to\n */\n cloneNode(deep) {\n const thisClone = this.deepClone();\n if (deep) {\n Array.from(this.childNodes).forEach((child) => {\n thisClone.appendChild(child.cloneNode(true));\n });\n }\n return thisClone;\n }\n /**\n * @privateRemarks\n * Basic implementation of a copy constructor which creates a new element of the same class\n * and copies all attributes over.\n * None-trivial elements will likely want to override this function, call it using super.deepClone(),\n * and then perform extra setup such as copying properties, setting up event listeners\n */\n deepClone() {\n const copy = document.createElement(this.tagName.toLowerCase());\n this.getAttributeNames().forEach((at) => copy.setAttribute(at, this.getAttribute(at)));\n return copy;\n }\n /**\n * @beta\n * @returns - boolean controlling whether to run all disconnectedCallback lifecycle functionality\n */\n get shouldRunDisconnect() {\n if (__classPrivateFieldGet(this, __shouldForceLifecycle, \"f\")) {\n return true;\n }\n if (__classPrivateFieldGet(this, __container, \"f\")._key === 'dom') {\n return true;\n }\n if (__classPrivateFieldGet(this, __container, \"f\")._key === 'foundation-layout-cache') {\n return false;\n }\n // _key === 'foundation-layout'\n return !(__classPrivateFieldGet(this, __container, \"f\").dragging ||\n !__classPrivateFieldGet(this, __container, \"f\").hasFirstLoaded ||\n __classPrivateFieldGet(this, _instances, \"m\", __blockLifecycleDueToTokenChange).call(this, 'disconnect'));\n }\n /**\n * @beta\n * @returns - boolean controlling whether to run all connectedCallback lifecycle functionality\n * @privateRemarks\n * For now its just the same logic as shouldRunDisconnect\n */\n get shouldRunConnect() {\n if (__classPrivateFieldGet(this, __shouldForceLifecycle, \"f\")) {\n return true;\n }\n if (__classPrivateFieldGet(this, __container, \"f\")._key === 'dom') {\n return true;\n }\n if (__classPrivateFieldGet(this, __container, \"f\")._key === 'foundation-layout-cache') {\n return false;\n }\n // _key === 'foundation-layout'\n let connectionType = 'reconnect';\n if (__classPrivateFieldGet(this, __hasFirstLoaded, \"f\") === false) {\n __classPrivateFieldSet(this, __hasFirstLoaded, true, \"f\");\n connectionType = 'connect';\n }\n return !(__classPrivateFieldGet(this, __container, \"f\").dragging ||\n !__classPrivateFieldGet(this, __container, \"f\").hasFirstLoaded ||\n __classPrivateFieldGet(this, _instances, \"m\", __blockLifecycleDueToTokenChange).call(this, connectionType));\n }\n connectedCallback() {\n super.connectedCallback();\n if (__classPrivateFieldGet(this, __container, \"f\")._key !== 'foundation-layout') {\n __classPrivateFieldSet(this, __container, __classPrivateFieldGet(this, _instances, \"m\", __tryFindContainingLayout).call(this, this), \"f\");\n }\n }\n },\n __container = new WeakMap(),\n __latestTokenCode = new WeakMap(),\n __hasFirstLoaded = new WeakMap(),\n __cleanupTimeout = new WeakMap(),\n __shouldForceLifecycle = new WeakMap(),\n _instances = new WeakSet(),\n __blockLifecycleDueToTokenChange = function __blockLifecycleDueToTokenChange(lifecycleType) {\n var _b, _c;\n if (__classPrivateFieldGet(this, __container, \"f\")._key !== 'foundation-layout') {\n throw new Error('LifecycleMixin: should not be checking a token change if container not in the layout');\n }\n const tokensDifferent = __classPrivateFieldGet(this, __latestTokenCode, \"f\") !== __classPrivateFieldGet(this, __container, \"f\").lifecycleUpdateToken;\n let result = false;\n if (lifecycleType === 'connect') {\n // We always want to allow a first connection in the layout\n __classPrivateFieldSet(this, __latestTokenCode, (_b = __classPrivateFieldGet(this, __container, \"f\").lifecycleUpdateToken) !== null && _b !== void 0 ? _b : '', \"f\");\n }\n else if (lifecycleType === 'disconnect') {\n result = tokensDifferent;\n __classPrivateFieldSet(this, __cleanupTimeout, setTimeout(() => {\n __classPrivateFieldSet(this, __shouldForceLifecycle, result, \"f\");\n if (__classPrivateFieldGet(this, __shouldForceLifecycle, \"f\")) {\n this.disconnectedCallback();\n }\n }, CLEANUP_TIMEOUT_MS), \"f\");\n }\n else if (lifecycleType === 'reconnect') {\n result = tokensDifferent;\n __classPrivateFieldSet(this, __latestTokenCode, (_c = __classPrivateFieldGet(this, __container, \"f\").lifecycleUpdateToken) !== null && _c !== void 0 ? _c : '', \"f\");\n clearTimeout(__classPrivateFieldGet(this, __cleanupTimeout, \"f\"));\n }\n return result;\n },\n __tryFindContainingLayout = function __tryFindContainingLayout(e) {\n var _b;\n /**\n * This is a special case where the element is part of the layout cache\n * signified by a symbol put on the document cache root\n */\n if (e.getRootNode()[layoutCacheDocument] === true) {\n return { _key: 'foundation-layout-cache' };\n }\n /**\n * If this happens we have found the root of the document\n * without finding a containing FoundationLayout\n * hence, this item is not in a custom layout\n */\n if (e.getRootNode() instanceof Document || !((_b = e.getRootNode()) === null || _b === void 0 ? void 0 : _b.host)) {\n return { _key: 'dom' };\n }\n const shadowHost = e.getRootNode().host;\n if (shadowHost.class === 'FoundationLayoutMain') {\n const layoutHost = shadowHost;\n layoutHost._key = 'foundation-layout';\n return layoutHost;\n }\n return __classPrivateFieldGet(this, _instances, \"m\", __tryFindContainingLayout).call(this, shadowHost);\n },\n _a; };\n/**\n * Stored on the layout's internal cache to signify that the document is not part of the DOM\n * @public\n */\nexport const layoutCacheDocument = Symbol('layout-cache-document');\n","/**\n * Resolve a promise after a timeout.\n *\n * @example\n * ```ts\n * const result = await Promise.race([\n * resourceChecks(sourceRef, resource),\n * resolveAfter<MonitoredResourceChecksResult>(this.config.checkTimeout, () => ({\n * isConnected: false,\n * lastUpdated: Date.now(),\n * })),\n * ]);\n * ```\n *\n * @public\n */\nexport const resolveAfter = (ms, valueCreator) => {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(valueCreator());\n }, ms);\n });\n};\n","import { DI } from '@microsoft/fast-foundation';\n/**\n * @internal\n */\nexport const BIG_INT_64_BITS = 64;\n/**\n * Configuration options for the JSONSerializer Config instance.\n * @internal\n */\nexport const JSONSerializerConfig = DI.createInterface();\n","import { __decorate, __param } from \"tslib\";\nimport { DI, optional } from '@microsoft/fast-foundation';\nimport { parse, stringify, isInteger } from 'lossless-json';\nimport { BIG_INT_64_BITS, JSONSerializerConfig } from './json.types';\n/**\n * A Default Number Parser for deserializing objects.\n * @public\n */\nexport function customNumberParser(value) {\n if (Number.isSafeInteger(+value)) {\n return Number(value);\n }\n if (!isInteger(value)) {\n return parseFloat(value);\n }\n return BigInt.asIntN(BIG_INT_64_BITS, value);\n}\n/**\n * A Default JSONSerializer Config for serializing and deserializing functions.\n * @public\n */\nexport const defaultJSONSerializerConfig = {\n parse: (input) => parse(input, null, customNumberParser),\n stringify: (object) => stringify(object),\n};\nlet DefaultJSONSerializer = class DefaultJSONSerializer {\n constructor(config = defaultJSONSerializerConfig) {\n this.config = config;\n /**\n * @inheritDoc JSONSerializer.serialize\n */\n this.serialize = (object) => this.config.stringify(object);\n }\n /**\n * @inheritDoc JSONSerializer.deserialize\n */\n deserialize(input) {\n if (!input) {\n return Promise.resolve({});\n }\n if (typeof input === 'string') {\n return this.config.parse(input);\n }\n if (input && input.ok) {\n return input.text().then((text) => this.config.parse(text));\n }\n if (input && input.data) {\n input = input.data;\n }\n return this.config.parse(input);\n }\n};\nDefaultJSONSerializer = __decorate([\n __param(0, optional(JSONSerializerConfig))\n], DefaultJSONSerializer);\nexport default DefaultJSONSerializer;\n/**\n * A DI token for the JSON serializer.\n * @public\n */\nexport const JSONSerializer = DI.createInterface((x) => x.singleton(DefaultJSONSerializer));\n","/**\n * @internal\n */\nexport const ISO8601 = /^\\d{4}-(0[1-9]|1[0-2])-([12]\\d|0[1-9]|3[01])([T\\s](([01]\\d|2[0-3])\\:[0-5]\\d|24\\:00)(\\:[0-5]\\d([\\.,]\\d+)?)?([zZ]|([\\+-])([01]\\d|2[0-3])\\:?([0-5]\\d)?)?)?$/;\n/**\n * @internal\n */\nexport const NaNSymbol = '$NaN';\n/**\n * @internal\n */\nconst keyToConstructor = new Map();\n/**\n * @internal\n */\nexport const getType = (typeId) => keyToConstructor.get(typeId);\n/**\n * @internal\n */\nexport const getTypeId = (object) => {\n if (object) {\n if (object.type) {\n return object.type;\n }\n const proto = Object.getPrototypeOf(object);\n if (!proto) {\n return void 0;\n }\n const ctor = proto.constructor;\n if (!ctor) {\n return void 0;\n }\n for (const [key, value] of keyToConstructor) {\n if (ctor === value) {\n return key;\n }\n }\n return void 0;\n }\n};\n","/**\n * Platform detection utilities for cross-platform compatibility\n */\nexport class OperatingSystemUtils {\n /**\n * Detects if the current platform is macOS\n */\n static get isMacOS() {\n return (navigator.platform.toLowerCase().includes('mac') ||\n navigator.userAgent.toLowerCase().includes('mac os'));\n }\n /**\n * Detects if the current platform is Windows\n */\n static get isWindows() {\n return (navigator.platform.toLowerCase().includes('win') ||\n navigator.userAgent.toLowerCase().includes('windows'));\n }\n /**\n * Detects if the current platform is Linux\n */\n static get isLinux() {\n return (navigator.platform.toLowerCase().includes('linux') ||\n navigator.userAgent.toLowerCase().includes('linux'));\n }\n /**\n * Gets the appropriate modifier key symbols for the current platform\n */\n static getModifierSymbols() {\n if (this.isMacOS) {\n return {\n ctrl: '⌃',\n alt: '⌥',\n shift: '⇧',\n meta: '⌘',\n };\n }\n return {\n ctrl: 'Ctrl',\n alt: 'Alt',\n shift: 'Shift',\n meta: 'Win',\n };\n }\n /**\n * Formats a key combination with platform-appropriate symbols\n */\n static formatKeyCombination(key, ctrlKey = false, altKey = false, shiftKey = false, metaKey = false) {\n const symbols = this.getModifierSymbols();\n const modifiers = [];\n if (ctrlKey)\n modifiers.push(symbols.ctrl);\n if (altKey)\n modifiers.push(symbols.alt);\n if (shiftKey)\n modifiers.push(symbols.shift);\n if (metaKey)\n modifiers.push(symbols.meta);\n const separator = this.isMacOS ? '' : '+';\n const keyPart = this.isMacOS ? key.toUpperCase() : key;\n return modifiers.length > 0 ? `${modifiers.join(separator)}${separator}${keyPart}` : keyPart;\n }\n}\n","import { DI } from '@microsoft/fast-foundation';\nimport { BehaviorSubject } from 'rxjs';\nimport { logger } from '../utils';\nimport { OperatingSystemUtils } from '../utils/os-platform';\n/**\n * Default implementation of the ShortcutManager interface\n * @public\n */\nexport class DefaultShortcutManager {\n constructor() {\n this.shortcuts = new Map(); // context -> id -> ShortcutDefinition\n this.shortcutLookup = new Map(); // context:id -> ShortcutDefinition for quick lookups\n this.keyCombinationMap = new Map(); // key combination -> set of \"context:id\" strings\n this._isPausedSubject = new BehaviorSubject(false);\n }\n get isPaused() {\n return this._isPausedSubject.value;\n }\n get isPaused$() {\n return this._isPausedSubject.asObservable();\n }\n get isPausedSubject() {\n return this._isPausedSubject;\n }\n registerShortcuts(shortcuts) {\n shortcuts.forEach((shortcut) => {\n this.registerShortcut(shortcut);\n });\n }\n registerShortcut(shortcut) {\n const compositeKey = `${shortcut.context}:${shortcut.id}`;\n // Normalize shortcut definition: handle option/alt equivalence\n const normalizedShortcut = this.normalizeShortcutDefinition(shortcut);\n // Check if there's already a shortcut with the same key combination\n const keyCombo = this.createKeyCombinationKey(normalizedShortcut.key, normalizedShortcut.ctrlKey, normalizedShortcut.altKey, normalizedShortcut.shiftKey, normalizedShortcut.metaKey);\n // Create platform-friendly display format\n const keyCombinationDisplay = OperatingSystemUtils.formatKeyCombination(normalizedShortcut.key, normalizedShortcut.ctrlKey, normalizedShortcut.altKey, normalizedShortcut.shiftKey, normalizedShortcut.metaKey);\n const existingShortcutIds = this.keyCombinationMap.get(keyCombo);\n if (existingShortcutIds) {\n // Check if we should replace any existing shortcuts\n const shortcutsToRemove = [];\n for (const existingCompositeId of existingShortcutIds) {\n const existingShortcut = this.shortcutLookup.get(existingCompositeId);\n if (existingShortcut) {\n // Replace if same context (prevents conflicts within same component/page)\n if (existingShortcut.context === normalizedShortcut.context) {\n // Log warning about shortcut replacement\n logger.warn(`Shortcut with key combination '${keyCombo}' already exists in context '${normalizedShortcut.context}' (id: '${existingShortcut.id}'). It will be replaced by new shortcut '${normalizedShortcut.id}'.`);\n shortcutsToRemove.push(existingCompositeId);\n }\n }\n }\n // Remove shortcuts that should be replaced\n shortcutsToRemove.forEach((compositeId) => {\n const shortcutToRemove = this.shortcutLookup.get(compositeId);\n if (shortcutToRemove) {\n const contextMap = this.shortcuts.get(shortcutToRemove.context);\n if (contextMap) {\n contextMap.delete(shortcutToRemove.id);\n if (contextMap.size === 0) {\n this.shortcuts.delete(shortcutToRemove.context);\n }\n }\n this.shortcutLookup.delete(compositeId);\n }\n existingShortcutIds.delete(compositeId);\n });\n // If no shortcuts remain for this key combination, remove the entry\n if (existingShortcutIds.size === 0) {\n this.keyCombinationMap.delete(keyCombo);\n }\n }\n // Register the new shortcut\n if (!this.shortcuts.has(normalizedShortcut.context)) {\n this.shortcuts.set(normalizedShortcut.context, new Map());\n }\n this.shortcuts.get(normalizedShortcut.context).set(normalizedShortcut.id, normalizedShortcut);\n this.shortcutLookup.set(compositeKey, normalizedShortcut);\n // Add to key combination map\n if (!this.keyCombinationMap.has(keyCombo)) {\n this.keyCombinationMap.set(keyCombo, new Set());\n }\n this.keyCombinationMap.get(keyCombo).add(compositeKey);\n return {\n shortcut: normalizedShortcut,\n id: normalizedShortcut.id,\n keyCombination: keyCombo,\n keyCombinationDisplay,\n // Functions that can be directly used in AG Grid menu items\n disabled: () => {\n if (this.isPaused)\n return true;\n if (normalizedShortcut.canExecute) {\n const status = normalizedShortcut.canExecute();\n return status.disabled || false;\n }\n return false;\n },\n tooltip: () => {\n if (this.isPaused)\n return 'Shortcuts are paused';\n if (normalizedShortcut.canExecute) {\n const status = normalizedShortcut.canExecute();\n return status.tooltip;\n }\n return undefined;\n },\n };\n }\n unregisterShortcut(context, id) {\n const compositeKey = `${context}:${id}`;\n const contextMap = this.shortcuts.get(context);\n if (contextMap) {\n const shortcut = contextMap.get(id);\n if (shortcut) {\n // Normalize the shortcut to ensure consistent key combination\n const normalizedShortcut = this.normalizeShortcutDefinition(shortcut);\n const keyCombo = this.createKeyCombinationKey(normalizedShortcut.key, normalizedShortcut.ctrlKey, normalizedShortcut.altKey, normalizedShortcut.shiftKey, normalizedShortcut.metaKey);\n // Remove from shortcuts map\n contextMap.delete(id);\n if (contextMap.size === 0) {\n this.shortcuts.delete(context);\n }\n // Remove from lookup map\n this.shortcutLookup.delete(compositeKey);\n // Remove from key combination map\n const shortcutIds = this.keyCombinationMap.get(keyCombo);\n if (shortcutIds) {\n shortcutIds.delete(compositeKey);\n if (shortcutIds.size === 0) {\n this.keyCombinationMap.delete(keyCombo);\n }\n }\n }\n }\n }\n unregisterShortcutsByContext(context) {\n const contextMap = this.shortcuts.get(context);\n if (contextMap) {\n const shortcutIds = Array.from(contextMap.keys());\n shortcutIds.forEach((id) => this.unregisterShortcut(context, id));\n }\n }\n executeShortcut(id) {\n this.executeShortcutByContext(this.getActiveContext(), id);\n }\n executeShortcutByContext(context, id) {\n if (this.isPaused) {\n return; // Don't execute shortcuts when paused\n }\n const contextMap = this.shortcuts.get(context);\n if (contextMap) {\n const shortcut = contextMap.get(id);\n if (shortcut) {\n // Check if shortcut requires a specific element to be focused\n if (shortcut.elementRef && !this.isElementFocused(shortcut.elementRef)) {\n return; // Don't execute if the required element is not focused\n }\n // Check if shortcut can be executed\n if (shortcut.canExecute) {\n const executionStatus = shortcut.canExecute();\n if (executionStatus.disabled) {\n return; // Don't execute if disabled\n }\n }\n try {\n shortcut.action();\n }\n catch (error) {\n logger.error(`Error executing shortcut ${context}:${id}:`, error);\n }\n }\n }\n }\n getShortcuts() {\n const allShortcuts = [];\n // Iterate through all contexts and collect all shortcuts\n for (const contextMap of this.shortcuts.values()) {\n allShortcuts.push(...contextMap.values());\n }\n return allShortcuts;\n }\n getShortcutsByContext(context) {\n const contextMap = this.shortcuts.get(context);\n return contextMap ? Array.from(contextMap.values()) : [];\n }\n findShortcutByKeyCombination(key, ctrlKey = false, altKey = false, shiftKey = false, metaKey = false) {\n const keyCombo = this.createKeyCombinationKey(key, ctrlKey, altKey, shiftKey, metaKey);\n const shortcutIds = this.keyCombinationMap.get(keyCombo);\n if (!shortcutIds) {\n return undefined;\n }\n // First, try to find a shortcut in the active context if one is set\n if (this._activeContext) {\n const activeContextMap = this.shortcuts.get(this._activeContext);\n if (!activeContextMap) {\n // Continue to search all shortcuts\n }\n else {\n for (const compositeId of shortcutIds) {\n const [context, id] = compositeId.split(':');\n if (context !== this._activeContext)\n continue;\n const shortcut = activeContextMap.get(id);\n if (shortcut) {\n return shortcut;\n }\n }\n }\n }\n // If no active context or no shortcut found in active context,\n // return the first shortcut found for this key combination\n for (const compositeId of shortcutIds) {\n const shortcut = this.shortcutLookup.get(compositeId);\n if (shortcut) {\n return shortcut;\n }\n }\n return undefined;\n }\n getContexts() {\n return Array.from(this.shortcuts.keys());\n }\n getShortcutsByContextMap() {\n return new Map(this.shortcuts);\n }\n registerContext(context) {\n if (!this.shortcuts.has(context)) {\n this.shortcuts.set(context, new Map());\n }\n }\n setActiveContext(context) {\n this.registerContext(context);\n this._activeContext = context;\n }\n getActiveContext() {\n return this._activeContext;\n }\n clearActiveContext() {\n this._activeContext = undefined;\n }\n pause() {\n this._isPausedSubject.next(true);\n }\n resume() {\n this._isPausedSubject.next(false);\n }\n /**\n * Normalizes a shortcut definition to handle option/alt equivalence\n * If optionKey is set, altKey will also be set to true (and vice versa)\n */\n normalizeShortcutDefinition(shortcut) {\n const normalized = Object.assign({}, shortcut);\n // Handle option/alt equivalence\n if (normalized.optionKey || normalized.altKey) {\n normalized.altKey = true;\n normalized.optionKey = true;\n }\n return normalized;\n }\n createKeyCombinationKey(key, ctrlKey = false, altKey = false, shiftKey = false, metaKey = false) {\n const modifiers = [];\n if (ctrlKey)\n modifiers.push('ctrl');\n if (altKey)\n modifiers.push('alt');\n if (shiftKey)\n modifiers.push('shift');\n if (metaKey)\n modifiers.push('meta');\n // Create a consistent format like \"ctrl+alt+s\" instead of \"ctrl+alt:s\"\n const keyCombo = modifiers.length > 0 ? `${modifiers.join('+')}+${key}` : key;\n return keyCombo.toLowerCase();\n }\n isElementFocused(element) {\n if (element instanceof HTMLElement) {\n return document.activeElement === element;\n }\n return false;\n }\n}\n/**\n * A dependency injection token for the ShortcutManager interface.\n * @public\n */\nexport const ShortcutManager = DI.createInterface((x) => x.singleton(DefaultShortcutManager));\n","import { __decorate } from \"tslib\";\nimport { customElement, FASTElement } from '@microsoft/fast-element';\nimport { inject } from '@microsoft/fast-foundation';\nimport { ShortcutManager } from './shortcut-manager';\n/**\n * A custom element that listens for keyboard shortcuts.\n * @public\n * @remarks Part of the ShortcutManager Service.\n */\nlet FoundationShortcutListener = class FoundationShortcutListener extends FASTElement {\n constructor() {\n super(...arguments);\n this.keyListener = null;\n this.isListening = false;\n }\n connectedCallback() {\n super.connectedCallback();\n this.setupStateSubscription();\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeKeyListener();\n }\n setupStateSubscription() {\n // Subscribe to the pause state changes\n this.shortcutManager.isPaused$.subscribe((isPaused) => {\n if (isPaused) {\n this.removeKeyListener();\n }\n else {\n this.addKeyListener();\n }\n });\n // Set initial state\n if (!this.shortcutManager.isPaused) {\n this.addKeyListener();\n }\n }\n addKeyListener() {\n if (this.isListening)\n return;\n this.keyListener = this.handleKeyDown.bind(this);\n document.addEventListener('keydown', this.keyListener);\n this.isListening = true;\n }\n removeKeyListener() {\n if (!this.isListening || !this.keyListener)\n return;\n document.removeEventListener('keydown', this.keyListener);\n this.keyListener = null;\n this.isListening = false;\n }\n handleKeyDown(event) {\n // Don't handle shortcuts if the service is paused\n if (this.shortcutManager.isPaused) {\n return;\n }\n // Don't handle shortcuts if user is typing in an input field\n if (this.isInputElement(event.target)) {\n return;\n }\n // Extract key from event.code with proper mapping for all key types\n const key = this.extractKeyFromCode(event.code);\n const shortcut = this.shortcutManager.findShortcutByKeyCombination(key, event.ctrlKey, event.altKey, event.shiftKey, event.metaKey);\n if (shortcut) {\n event.preventDefault();\n event.stopPropagation();\n this.shortcutManager.executeShortcut(shortcut.id);\n }\n }\n extractKeyFromCode(code) {\n // Handle regular letter keys (KeyA, KeyB, etc.)\n if (code.startsWith('Key')) {\n return code.replace('Key', '').toLowerCase();\n }\n // Handle digit keys (Digit0, Digit1, etc.)\n if (code.startsWith('Digit')) {\n return code.replace('Digit', '');\n }\n // Handle special keys with direct mapping\n const specialKeyMap = {\n Space: 'space',\n Enter: 'enter',\n Escape: 'escape',\n Tab: 'tab',\n Backspace: 'backspace',\n Delete: 'delete',\n Insert: 'insert',\n Home: 'home',\n End: 'end',\n PageUp: 'pageup',\n PageDown: 'pagedown',\n ArrowUp: 'arrowup',\n ArrowDown: 'arrowdown',\n ArrowLeft: 'arrowleft',\n ArrowRight: 'arrowright',\n F1: 'f1',\n F2: 'f2',\n F3: 'f3',\n F4: 'f4',\n F5: 'f5',\n F6: 'f6',\n F7: 'f7',\n F8: 'f8',\n F9: 'f9',\n F10: 'f10',\n F11: 'f11',\n F12: 'f12',\n };\n return specialKeyMap[code] || code.toLowerCase();\n }\n isInputElement(element) {\n if (!element)\n return false;\n const inputTypes = ['input', 'textarea', 'select'];\n const tagName = element.tagName.toLowerCase();\n if (inputTypes.includes(tagName)) {\n return true;\n }\n // Check for contenteditable\n if (element.contentEditable === 'true') {\n return true;\n }\n // Check for role=\"textbox\" or similar\n const role = element.getAttribute('role');\n if (role && ['textbox', 'searchbox', 'combobox'].includes(role)) {\n return true;\n }\n return false;\n }\n};\n__decorate([\n inject(ShortcutManager)\n], FoundationShortcutListener.prototype, \"shortcutManager\", void 0);\nFoundationShortcutListener = __decorate([\n customElement({\n name: 'foundation-shortcut-listener',\n })\n], FoundationShortcutListener);\nexport { FoundationShortcutListener };\n","import { Observable } from '@microsoft/fast-element';\nimport { visitObject } from './visitor.js';\n/**\n * Code borrowed from fast-element v2. We can remove post upgrade.\n */\nconst noop = () => void 0;\nconst observed = new WeakSet();\nconst makeObserverVisitor = {\n visitObject: noop,\n visitArray: noop,\n visitProperty(object, propertyName, value) {\n Reflect.defineProperty(object, propertyName, {\n enumerable: true,\n get() {\n Observable.track(object, propertyName);\n return value;\n },\n set(newValue) {\n if (value !== newValue) {\n value = newValue;\n Observable.notify(object, propertyName);\n }\n },\n });\n },\n};\n/**\n * Converts a plain object to a reactive, observable object.\n *\n * @privateRemarks\n * Code borrowed from fast-element v2. We can remove post upgrade.\n *\n * @example\n * An array or reactive items.\n * ```ts\n * this.todos = todosResponse.map((t) => reactive(t));\n * ```\n *\n * @example\n * Add item.\n * ```ts\n * add(description: string) {\n * this.splice(this.todos.length, 0, reactive({ description, done: false }));\n * }\n * ```\n *\n * @example\n * Remove item.\n * ```ts\n * remove(todo: Todo) {\n * const index = this.todos.indexOf(todo);\n * index !== -1 && this.splice(index, 1);\n * }\n *```\n *\n * @param object - The object to make reactive.\n * @param deep - Indicates whether to deeply convert the object.\n * @returns The converted object.\n *\n * @beta\n */\nexport function reactive(object, deep = false) {\n visitObject(object, deep, makeObserverVisitor, void 0, observed);\n return object;\n}\n","import { baseLayerLuminance, StandardLuminance } from '@microsoft/fast-components';\nimport { DesignToken } from '@microsoft/fast-foundation';\nconst { create } = DesignToken;\n/**\n * A design token that represents the active color scheme (light or dark).\n * @public\n */\nexport const activeColorScheme = create('active-color-scheme').withDefault(\n/**\n * A callback function that returns the active color scheme based on the base layer luminance of the provided element.\n * @param {HTMLElement} elem The element to get the active color scheme for.\n * @returns {string} The active color scheme ('light' or 'dark').\n */\n(elem) => baseLayerLuminance.getValueFor(elem) === StandardLuminance.LightMode ? 'light' : 'dark');\n","import { __decorate } from \"tslib\";\nimport { customElement, FASTElement, observable } from '@microsoft/fast-element';\n/**\n * A custom element that encapsulates a set of styles that can be applied to slotted elements.\n * @public\n */\nlet SlottedStyles = class SlottedStyles extends FASTElement {\n /**\n * Called when the `styles` property changes.\n * Removes the previous styles from the parent element's FAST controller and adds the new styles.\n * @param prev - The previous value of the `styles` property.\n * @param next - The new value of the `styles` property.\n */\n stylesChanged(prev, next) {\n if (prev) {\n this.parentElement.$fastController.removeStyles(prev);\n }\n this.parentElement.$fastController.addStyles(next);\n }\n};\n__decorate([\n observable\n], SlottedStyles.prototype, \"styles\", void 0);\nSlottedStyles = __decorate([\n customElement({\n name: 'slotted-styles',\n })\n /**\n * A custom element that encapsulates a set of styles that can be applied to slotted elements.\n */\n], SlottedStyles);\nexport { SlottedStyles };\n","import { insertDocumentCSSRule } from '../utils/dom';\n/**\n * Loads font faces by inserting a style element with the specified font face rules into the document.\n * @param fontFaceRules - The CSS rules for the font faces.\n * @param styleElementId - The ID of the style element to insert into the document.\n * @public\n */\nexport const loadFontFaces = (fontFaceRules, styleElementId) => {\n insertDocumentCSSRule(fontFaceRules, styleElementId);\n};\n/**\n * An enum of possible font styles.\n * @public\n */\nexport var FontStyle;\n(function (FontStyle) {\n FontStyle[\"Italic\"] = \"italic\";\n FontStyle[\"Normal\"] = \"normal\";\n})(FontStyle || (FontStyle = {}));\n/**\n * An enum of possible font weights.\n * @public\n */\nexport var FontWeight;\n(function (FontWeight) {\n FontWeight[FontWeight[\"Thin\"] = 100] = \"Thin\";\n FontWeight[FontWeight[\"Light\"] = 300] = \"Light\";\n FontWeight[FontWeight[\"Regular\"] = 400] = \"Regular\";\n FontWeight[FontWeight[\"Medium\"] = 500] = \"Medium\";\n FontWeight[FontWeight[\"Bold\"] = 700] = \"Bold\";\n FontWeight[FontWeight[\"Black\"] = 900] = \"Black\";\n})(FontWeight || (FontWeight = {}));\n/**\n * Generates a CSS mixin for the specified font family, style, and weight.\n * @param family - The font family.\n * @param style - Optional. The font style. Defaults to FontStyle.Normal.\n * @param weight - Optional. The font weight. Defaults to FontWeight.Regular.\n * @returns The generated CSS mixin.\n * @public\n */\nexport const getFontMixin = (family, style = FontStyle.Normal, weight = FontWeight.Regular) => `\n font-family: ${family};\n font-style: ${style};\n font-weight: ${weight};\n`;\n/**\n * An object containing type ramp values.\n * @public\n */\nexport const TypeRampValues = {\n minusOne: -1,\n minusTwo: -2,\n plusOne: 1,\n plusTwo: 2,\n plusThree: 3,\n plusFour: 4,\n plusFive: 5,\n plusSix: 6,\n};\n","import { __awaiter } from \"tslib\";\nimport { DI } from '@microsoft/fast-foundation';\nimport { v4 as uuidv4 } from 'uuid';\nimport { logger } from '../utils';\n/**\n * A service that implements the UUID interface and provides default UUID generation using the uuidv4 library.\n */\nclass UUIDService {\n /**\n * Constructs a new instance of the UUIDService.\n */\n constructor() { }\n /**\n * Generates a new UUID.\n * @param withLogging - Optional. Whether to log the generated UUID to the console. Defaults to false.\n * @returns The generated UUID.\n */\n createId(withLogging = false) {\n /**\n * Use this.config to customize uuidv4.\n */\n const id = uuidv4();\n withLogging && logger.debug(`UUID.createID ${id}`);\n return id;\n }\n /**\n * Generates a new UUID for a remote object.\n * @param withLogging - Optional. Whether to log the generated UUID to the console. Defaults to false.\n * @returns A promise that resolves to the generated UUID.\n */\n createRemoteId() {\n return __awaiter(this, arguments, void 0, function* (withLogging = false) {\n /**\n * TODO: Revisit async nature of id generation with potential server involvement\n * Use this.config to customize uuidv4.\n */\n const id = uuidv4();\n withLogging && logger.debug(`UUID.createRemoteID ${id}`);\n return id;\n });\n }\n}\n/**\n * A dependency injection token for the UUID interface.\n * @public\n */\nexport const UUID = DI.createInterface((x) => x.singleton(UUIDService));\n","import { __decorate } from \"tslib\";\nimport { customElement, FASTElement, observable, html, css } from '@microsoft/fast-element';\nimport { getCurrentDesignSystemPrefix } from '../design-system/design-system';\n// Constants for time conversions\nconst MILLISECONDS_PER_SECOND = 1000;\nconst getPrefixedInactivityDialog = (prefix) => html `\n <div class=\"inactivity-overlay\" style=\"display: ${(x) => (x.isVisible ? 'display' : 'none')}\">\n <${prefix}-card class=\"dialog-card\">\n <div class=\"card-body\">\n <div class=\"dialog-header\">\n <${prefix}-icon name=\"warning\" class=\"warning-icon\"></${prefix}-icon>\n <h2>Session Timeout Warning</h2>\n </div>\n <div class=\"dialog-content\">\n <p>\n You have been inactive for too long. You will be automatically logged out in\n <strong>${(x) => x.remainingSeconds}</strong>\n seconds.\n </p>\n <p>\n Click \"Continue Session\" to stay logged in, or \"Logout Now\" to end your session\n immediately.\n </p>\n </div>\n <div class=\"dialog-actions\">\n <${prefix}-button\n appearance=\"accent\"\n @click=${(x) => x.handleContinue()}\n class=\"continue-button\"\n >\n Continue Session\n </${prefix}-button>\n <${prefix}-button\n appearance=\"outline\"\n @click=${(x) => x.handleLogout()}\n class=\"logout-button\"\n >\n Logout Now\n </${prefix}-button>\n </div>\n </div>\n </${prefix}-card>\n </div>\n`;\nlet InactivityDialog = class InactivityDialog extends FASTElement {\n constructor() {\n super(...arguments);\n this.isVisible = false;\n this.remainingSeconds = 0;\n this.startTime = 0;\n this.totalSeconds = 0;\n }\n configure(options) {\n this.totalSeconds = options.remainingSeconds;\n this.remainingSeconds = options.remainingSeconds;\n this.onContinue = options.onContinue;\n this.onLogout = options.onLogout;\n }\n show() {\n this.startCountdown();\n this.isVisible = true;\n return this.isVisible;\n }\n hide() {\n this.isVisible = false;\n this.stopCountdown();\n return this.isVisible;\n }\n startCountdown() {\n this.startTime = Date.now();\n this.countdownInterval = window.setInterval(() => {\n try {\n // Calculate actual elapsed time since dialog started\n const elapsedMs = Date.now() - this.startTime;\n const elapsedSeconds = Math.floor(elapsedMs / MILLISECONDS_PER_SECOND);\n // Calculate remaining time based on actual elapsed time\n this.remainingSeconds = Math.max(0, this.totalSeconds - elapsedSeconds);\n if (this.remainingSeconds <= 0) {\n this.stopCountdown();\n this.handleLogout();\n }\n }\n catch (error) {\n // If there's an error during countdown, stop the timer\n this.stopCountdown();\n console.warn('Error during inactivity countdown:', error);\n }\n }, MILLISECONDS_PER_SECOND);\n }\n stopCountdown() {\n if (this.countdownInterval) {\n clearInterval(this.countdownInterval);\n this.countdownInterval = undefined;\n }\n }\n handleContinue() {\n this.hide();\n if (this.onContinue) {\n this.onContinue();\n }\n }\n handleLogout() {\n this.hide();\n if (this.onLogout) {\n this.onLogout();\n }\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.stopCountdown();\n }\n};\n__decorate([\n observable\n], InactivityDialog.prototype, \"isVisible\", void 0);\n__decorate([\n observable\n], InactivityDialog.prototype, \"remainingSeconds\", void 0);\nInactivityDialog = __decorate([\n customElement({\n name: 'inactivity-dialog',\n template: html `\n ${(x) => getPrefixedInactivityDialog(getCurrentDesignSystemPrefix(x, 'rapid'))}\n `,\n styles: css `\n .inactivity-overlay {\n position: fixed;\n inset: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.6);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 9999;\n backdrop-filter: blur(2px);\n }\n\n .dialog-card {\n height: 260px;\n max-height: 260px;\n max-width: 520px;\n width: 92%;\n }\n\n .card-body {\n padding: 24px;\n box-sizing: border-box;\n }\n\n .dialog-header {\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 16px;\n }\n\n .warning-icon {\n color: var(--accent-fill-rest);\n font-size: 24px;\n }\n\n .dialog-header h2 {\n margin: 0;\n color: var(--neutral-foreground-rest);\n font-size: 20px;\n font-weight: 600;\n }\n\n .dialog-content {\n margin-bottom: 24px;\n }\n\n .dialog-content p {\n margin: 0 0 12px 0;\n color: var(--neutral-foreground-rest);\n line-height: 1.5;\n }\n\n .dialog-content p:last-child {\n margin-bottom: 0;\n }\n\n .dialog-content strong {\n color: var(--accent-foreground-rest);\n font-weight: 600;\n }\n\n .dialog-actions {\n display: flex;\n gap: 12px;\n justify-content: flex-end;\n }\n\n .continue-button {\n min-width: 140px;\n }\n .logout-button {\n min-width: 120px;\n }\n\n @media (max-width: 480px) {\n .card-body {\n padding: 20px;\n }\n .dialog-actions {\n flex-direction: column;\n }\n .continue-button,\n .logout-button {\n width: 100%;\n }\n }\n `,\n })\n], InactivityDialog);\nexport { InactivityDialog };\n"],"names":["listeners","subscribe","listener","push","filter","l","publish","event","forEach","respondToVisibility","element","callback","options","root","document","documentElement","IntersectionObserver","entries","entry","intersectionRatio","observe","deepMerge","target","source","output","structuredClone","Array","isArray","undefined","Object","keys","key","sourceValue","targetValue","isDate","value","Date","delay","ms","Promise","resolve","setTimeout","createLogger","insertDocumentCSSRule","cssRule","styleElementId","_a","styleElement","getElementById","debug","headElement","head","getElementsByTagName","createElement","id","appendChild","match","length","textContent","removeChild","styleIndex","sheet","insertRule","deleteRule","getAllElements","elements","processedShadowRoots","Set","collectElements","node","nodeElements","from","querySelectorAll","el","shadowRoot","has","add","fallbackPrefix","current","tagName","toLowerCase","endsWith","prefix","split","parentElement","getRootNode","ShadowRoot","host","allProviders","providerElements","shadowProviders","provider","providerTag","getCurrentDesignSystemPrefix","defaultEventMap","Map","customUpdateTarget","this","targetName","bind","context","updateTarget","originalBind","call","addEventListener","changeEvent","changeHandler","unbind","originalUnbind","removeEventListener","SyncDirective","HTMLBindingDirective","constructor","binding","convert","eventName","keyAttr","super","conversionType","createBehavior","behavior","tag","get","determineChangeEvent","checked","last","bindingObserver","propertySource","propertyName","msSinceEpoch","getTime","isNaN","Number","String","Boolean","sync","whenElse","trueTemplateOrTemplateBinding","falseTemplateOrTemplateBinding","getTemplate","template","trueTemplate","falseTemplate","base64Pattern","decodeFromBase64WithPrefix","parts","base64Value","decodedValue","test","decodedString","atob","buffer","Uint8Array","_","i","charCodeAt","decodeFromBase64","TextDecoder","decode","encodeToBase64WithPrefix","btoa","ArrayBuffer","binaryString","reduce","data","byte","fromCharCode","encodeToBase64","isDev","isFeatureActivated","feature","currentUrl","window","location","href","queryString","URL","search","params","URLSearchParams","featureKey","_BUILDER","_PUBLIC_PATH","replace","_b","_FORCE_HTTP","_SOCKET_EXT","SOCKET_EXT","_c","FORCE_HTTP","_d","GENESIS_SOCKET_URL","protocol","_HTTP_CONFIG","_DEFAULT_ORGANISATION","_DEFAULT_PASSWORD","_DEFAULT_USER","_API_HOST","API_HOST","_e","_f","DEFAULT_ORGANISATION","_g","DEFAULT_PASSWORD","_h","DEFAULT_USER","_j","LOGIN_URL","GENX_LOGIN_URL","LOGIN_REFRESH_URL","GENX_LOGIN_REFRESH_URL","LOGIN_DETAILS_URL","GENX_LOGIN_DETAILS_URL","LOGOUT_URL","GENX_LOGOUT_URL","CHANGE_PASSWORD_URL","GENX_CHANGE_PASSWORD_URL","FORGOT_PASSWORD_URL","GENX_FORGOT_PASSWORD_URL","RESET_PASSWORD_URL","GENX_RESET_PASSWORD_URL","SSO_LIST_URL","GENX_SSO_LIST_URL","SSO_LOGIN_URL","GENX_SSO_LOGIN_URL","ENVIRONMENT_LEVEL","GENX_ENVIRONMENT_LEVEL","ACCEPT_TERMS_URL","GENX_ACCEPT_TERMS_URL","DefaultErrorMap","logger","map","set","error","lastError","isDeletingLast","result","delete","clear","size","values","messages","count","errorMessages","message","join","observable","prototype","isoDateSliceEnd","formatDateTimestamp","timestamp","toISOString","slice","isoDateTimeSliceEnd","formatDateTimeTimestamp","formatTimestamp","withTime","NumberParser","locale","Intl","NumberFormat","formatToParts","numerals","useGrouping","format","reverse","index","d","_group","RegExp","find","type","_decimal","_separator","_numeral","_index","parse","localeNumber","trim","NaN","hasSeparator","DefaultServerRowDTOMapper","fromDTO","dto","serverRowMetadata","operation","DETAILS","OPERATION","rowRef","ROW_REF","toDTO","entity","toUpperCase","DI","createInterface","x","singleton","Genesis","PendingStateEvents","genesisFieldTypes","LifecycleMixin","Base","_instances","__container","__latestTokenCode","__hasFirstLoaded","__cleanupTimeout","__shouldForceLifecycle","__blockLifecycleDueToTokenChange","__tryFindContainingLayout","args","_key","cloneNode","deep","thisClone","deepClone","childNodes","child","copy","getAttributeNames","at","setAttribute","getAttribute","shouldRunDisconnect","dragging","hasFirstLoaded","shouldRunConnect","connectionType","connectedCallback","WeakMap","WeakSet","lifecycleType","Error","tokensDifferent","lifecycleUpdateToken","disconnectedCallback","clearTimeout","e","layoutCacheDocument","Document","shadowHost","class","layoutHost","Symbol","resolveAfter","valueCreator","JSONSerializerConfig","customNumberParser","isSafeInteger","BigInt","asIntN","parseFloat","defaultJSONSerializerConfig","input","stringify","object","DefaultJSONSerializer","config","serialize","deserialize","ok","text","then","optional","JSONSerializer","OperatingSystemUtils","isMacOS","navigator","platform","includes","userAgent","isWindows","isLinux","getModifierSymbols","ctrl","alt","shift","meta","formatKeyCombination","ctrlKey","altKey","shiftKey","metaKey","symbols","modifiers","separator","keyPart","DefaultShortcutManager","shortcuts","shortcutLookup","keyCombinationMap","_isPausedSubject","BehaviorSubject","isPaused","isPaused$","asObservable","isPausedSubject","registerShortcuts","shortcut","registerShortcut","compositeKey","normalizedShortcut","normalizeShortcutDefinition","keyCombo","createKeyCombinationKey","keyCombinationDisplay","existingShortcutIds","shortcutsToRemove","existingCompositeId","existingShortcut","warn","compositeId","shortcutToRemove","contextMap","keyCombination","disabled","canExecute","tooltip","unregisterShortcut","shortcutIds","unregisterShortcutsByContext","executeShortcut","executeShortcutByContext","getActiveContext","elementRef","isElementFocused","action","getShortcuts","allShortcuts","getShortcutsByContext","findShortcutByKeyCombination","_activeContext","activeContextMap","getContexts","getShortcutsByContextMap","registerContext","setActiveContext","clearActiveContext","pause","next","resume","normalized","assign","optionKey","HTMLElement","activeElement","ShortcutManager","FoundationShortcutListener","FASTElement","arguments","keyListener","isListening","setupStateSubscription","removeKeyListener","shortcutManager","addKeyListener","handleKeyDown","isInputElement","extractKeyFromCode","code","preventDefault","stopPropagation","startsWith","Space","Enter","Escape","Tab","Backspace","Delete","Insert","Home","End","PageUp","PageDown","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","contentEditable","role","inject","customElement","name","create","DesignToken","activeColorScheme","withDefault","elem","baseLayerLuminance","getValueFor","StandardLuminance","LightMode","SlottedStyles","stylesChanged","prev","$fastController","removeStyles","addStyles","loadFontFaces","fontFaceRules","FontStyle","FontWeight","getFontMixin","family","style","Normal","weight","Regular","TypeRampValues","minusOne","minusTwo","plusOne","plusTwo","plusThree","plusFour","plusFive","plusSix","UUIDService","createId","withLogging","createRemoteId","UUID","isVisible","remainingSeconds","startTime","totalSeconds","configure","onContinue","onLogout","show","startCountdown","hide","stopCountdown","now","countdownInterval","setInterval","elapsedMs","elapsedSeconds","Math","floor","max","handleLogout","console","clearInterval","handleContinue","html","getPrefixedInactivityDialog","styles","css"],"sourceRoot":""}