@itwin/appui-react 3.1.0-dev.41 → 3.1.0-dev.45

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.
@@ -1 +1 @@
1
- {"version":3,"file":"UiFramework.js","sourceRoot":"","sources":["../../../src/appui-react/UiFramework.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAKH,OAAO,EAAc,MAAM,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE1E,OAAO,EAAE,SAAS,EAAoB,QAAQ,EAAa,MAAM,sBAAsB,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAkB,MAAM,mBAAmB,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAA8C,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAqC,2BAA2B,EAAE,MAAM,yCAAyC,CAAC;AACzH,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,4BAA4B,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC5F,OAAO,KAAK,iBAAiB,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,gBAAgB,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,gBAAgB,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AA0BnE;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,OAA8B;CAAI;AAUhF;;GAEG;AACH,MAAM,OAAO,4BAA6B,SAAQ,OAAyC;CAAI;AAU/F;;;GAGG;AACH,MAAM,OAAO,WAAW;IAgBtB,cAAc;IACP,MAAM,KAAK,kBAAkB;QAClC,OAAO,WAAW,CAAC,mBAAmB,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,4BAA4B,CAAC,KAA2B;QACpE,IAAI,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC;YACxD,OAAO,KAAK,CAAC;QAEf,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAOD;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAA6B,EAAE,iBAA0B;QACtF,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,KAA6B,EAAE,iBAA0B;;QACxF,IAAI,WAAW,CAAC,YAAY,EAAE;YAC5B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,uCAAuC,CAAC,CAAC;YACjG,OAAO;SACR;QAED;kKAC0J;QAC1J,IAAI,SAAS,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC;YAC1D,IAAI,YAAY,EAAE,CAAC;QAErB,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC;QAC3B,8DAA8D;QAC9D,IAAI,iBAAiB,IAAI,KAAK;YAC5B,WAAW,CAAC,yBAAyB,GAAG,iBAAiB,CAAC;QAE5D,uDAAuD;QACvD,MAAM,kBAAkB,GAAG,MAAA,SAAS,CAAC,YAAY,0CAAE,iBAAiB,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;QACxG;YACE,kBAAkB;YAClB,iBAAiB;YACjB,gBAAgB;YAChB,gBAAgB;SACjB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAEtF,WAAW,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACvD,WAAW,CAAC,kCAAkC,GAAG,IAAI,2BAA2B,EAAE,CAAC,CAAE,uFAAuF;QAC5K,WAAW,CAAC,cAAc,GAAG,IAAI,aAAa,EAAE,CAAC;QAEjD,wEAAwE;QACxE,MAAM,kBAAkB,CAAC,UAAU,EAAE,CAAC;QAEtC,WAAW,CAAC,eAAe,CAAC,0BAA0B,CAAC,WAAW,CAAC,GAAG,EAAE;YACtE,qBAAqB,CAAC,mBAAmB,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QAEH,gFAAgF;QAChF,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,aAAa,CAAC;QAEnD,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC;QAEhC,iGAAiG;QACjG,0BAA0B,CAAC,UAAU,EAAE,CAAC;QAExC,qBAAqB,CAAC,UAAU,EAAE,CAAC;QAEnC,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,0EAA0E;IACnE,MAAM,CAAC,SAAS;;QACrB,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC;QAC/B,WAAW,CAAC,yBAAyB,GAAG,gBAAgB,CAAC;QACzD,IAAI,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC;YAClC,YAAY,CAAC,UAAU,EAAE,CAAC;QAC5B,uBAAuB;QACvB,MAAA,SAAS,CAAC,YAAY,0CAAE,mBAAmB,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;QAC/E,WAAW,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAC1C,WAAW,CAAC,cAAc,GAAG,SAAS,CAAC;QACvC,WAAW,CAAC,kCAAkC,GAAG,SAAS,CAAC;QAC3D,WAAW,CAAC,gBAAgB,GAAG,SAAS,CAAC;QAEzC,kBAAkB,CAAC,SAAS,EAAE,CAAC;QAC/B,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAC9B,WAAW,CAAC,YAAY,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,qDAAqD;IAC9C,MAAM,KAAK,WAAW,KAAc,OAAO,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;IAE7E;;OAEG;IACI,MAAM,KAAK,eAAe;QAC/B,IAAI,SAAS,KAAK,WAAW,CAAC,gBAAgB;YAC5C,WAAW,CAAC,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;QACvD,OAAO,WAAW,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAED,cAAc;IACP,MAAM,KAAK,iBAAiB;QACjC,OAAO,WAAW,CAAC,yBAAyB,CAAC;IAC/C,CAAC;IAED;;OAEG;IACI,MAAM,KAAK,cAAc;QAC9B,IAAI;YACF,wCAAwC;YACxC,OAAO,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SACpE;QAAC,OAAO,EAAE,EAAE;YACX,OAAO,SAAS,CAAC;SAClB;IACH,CAAC;IAED,sBAAsB;IACf,MAAM,KAAK,KAAK;QACrB,IAAI,WAAW,CAAC,MAAM;YACpB,OAAO,WAAW,CAAC,MAAM,CAAC;QAE5B,uBAAuB;QACvB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC;YACnC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,8FAA8F,CAAC,CAAC;QAEtJ,uBAAuB;QACvB,OAAO,YAAY,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED;;MAEE;IACK,MAAM,KAAK,YAAY;QAC5B,uBAAuB;QACvB,IAAI,CAAC,SAAS,CAAC,YAAY;YACzB,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,8CAA8C,CAAC,CAAC;QACtG,OAAO,SAAS,CAAC,YAAY,CAAC;IAChC,CAAC;IAED,kDAAkD;IAC3C,MAAM,KAAK,qBAAqB;QACrC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,cAAc;IACP,MAAM,KAAK,gBAAgB;QAChC,uBAAuB;QACvB,IAAI,CAAC,WAAW,CAAC,iBAAiB;YAChC,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAC9E,OAAO,WAAW,CAAC,iBAAiB,CAAC;IACvC,CAAC;IAED,aAAa;IACN,MAAM,KAAK,iCAAiC;QACjD,uBAAuB;QACvB,IAAI,CAAC,WAAW,CAAC,kCAAkC;YACjD,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAC9E,OAAO,WAAW,CAAC,kCAAkC,CAAC;IACxD,CAAC;IAED,aAAa;IACN,MAAM,CAAC,oCAAoC,CAAC,OAAsD;QACvG,uBAAuB;QACvB,IAAI,OAAO;YACT,WAAW,CAAC,kCAAkC,GAAG,OAAO,CAAC;;YAEzD,WAAW,CAAC,kCAAkC,GAAG,IAAI,2BAA2B,EAAE,CAAC;IACvF,CAAC;IAED,aAAa;IACN,MAAM,KAAK,aAAa;QAC7B,uBAAuB;QACvB,IAAI,CAAC,WAAW,CAAC,cAAc;YAC7B,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;QAC9E,OAAO,WAAW,CAAC,cAAc,CAAC;IACpC,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,SAAS,CAAC,GAAsB;QAC5C,OAAO,SAAS,CAAC,YAAY,CAAC,+BAA+B,CAAC,WAAW,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;IACxG,CAAC;IAED,gBAAgB;IACT,MAAM,KAAK,WAAW;QAC3B,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,cAAc,CAAC,GAAQ;QACnC,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,IAAY,EAAE,OAAY,EAAE,aAAa,GAAG,KAAK;QACnF,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,IAAI,aAAa;YACf,qBAAqB,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAC;;YAEzD,qBAAqB,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,QAAkB;QAClD,WAAW,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxF,CAAC;IAEM,MAAM,CAAC,mBAAmB;QAC/B,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAC,QAAQ,CAAC,eAAe,CAAC;IACpJ,CAAC;IAEM,MAAM,CAAC,uBAAuB;QACnC,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC;IAC1I,CAAC;IAEM,MAAM,CAAC,uBAAuB,CAAC,gBAAwB;QAC5D,uBAAuB;QACvB,IAAI,WAAW,CAAC,cAAc,EAAE;YAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,cAA0C,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC;YACtL,IAAI,CAAC,CAAC,KAAK,UAAU,EAAE;gBACrB,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC;gBAC3F,WAAW,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpF,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;aACtD;SACF;IACH,CAAC;IAED,cAAc;IACP,MAAM,CAAC,cAAc,CAAC,QAAoC;QAC/D,WAAW,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACrF,CAAC;IAED,cAAc;IACP,MAAM,CAAC,eAAe;QAC3B,WAAW,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IACtF,CAAC;IAED,cAAc;IACP,MAAM,CAAC,iBAAiB;QAC7B,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC;IACpI,CAAC;IAEM,MAAM,CAAC,iBAAiB;QAC7B,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,0BAA0B,CAAE,EAAE,CAAC;IACxH,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,QAAgB;QAC9C,WAAW,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IACtF,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,gBAA8C,EAAE,aAAa,GAAG,KAAK;;QACrG,MAAM,aAAa,GAAG,WAAW,CAAC,mBAAmB,EAAE,CAAC;QACxD,IAAI,aAAa,KAAK,gBAAgB,EAAE;YACtC,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ;gBACzB,iBAAiB,CAAC,8BAA8B,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC3E,aAAa,IAAI,SAAS,KAAK,gBAAgB,IAAI,qBAAqB,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;YAC9G,gBAAgB,IAAI,qBAAqB,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;YACvF,WAAW,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;SAC9G;QACD,WAAW,CAAC,iBAAiB,CAAC,MAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,QAAQ,mCAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAEM,MAAM,CAAC,mBAAmB;QAC/B,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,0BAA0B,CAAE,SAAS,CAAC;IACvI,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,aAAa,GAAG,KAAK;QAChF,4EAA4E;QAC5E,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,MAAM,GAAG,IAAI,YAAY,EAAE;YACpC,MAAM,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,gBAAgB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;SAChG;QAED,uBAAuB;QACvB,IAAI,aAAa;YACf,qBAAqB,CAAC,4BAA4B,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;;YAExF,qBAAqB,CAAC,mBAAmB,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IACnF,CAAC;IAED,cAAc;IACP,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAuB,EAAE,aAAa,GAAG,KAAK;QAClF,IAAI,WAAW,CAAC,eAAe,KAAK,OAAO;YACzC,OAAO;QAET,WAAW,CAAC,eAAe,GAAG,OAAO,CAAC;QACtC,MAAM,IAAI,CAAC,wCAAwC,CAAC,aAAa,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,iBAAiB;QAC7B,OAAO,WAAW,CAAC,eAAe,CAAC;IACrC,CAAC;IAEM,MAAM,CAAC,iCAAiC,CAAC,uBAA+B,EAAE,aAAa,GAAG,KAAK;QACpG,WAAW,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,iCAAiC,EAAE,uBAAuB,EAAE,aAAa,CAAC,CAAC;IACpI,CAAC;IAEM,MAAM,CAAC,iCAAiC;QAC7C,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,8BAA8B,CAAC,CAAC,CAAC,0BAA0B,CAAE,SAAS,CAAC;IACrJ,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,MAAc,EAAE,aAAa,GAAG,KAAK;QAClE,WAAW,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAClG,CAAC;IAEM,MAAM,CAAC,gBAAgB;QAC5B,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,0BAA0B,CAAE,SAAS,CAAC;IACpI,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,SAAoB,EAAE,aAAa,GAAG,KAAK;QAC3E,WAAW,CAAC,qBAAqB,CAAC,oBAAoB,CAAC,mBAAmB,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IACxG,CAAC;IACM,MAAM,CAAC,mBAAmB;QAC/B,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,0BAA0B,CAAE,SAAS,CAAC;IACvI,CAAC;IAED,cAAc;IACP,MAAM,CAAC,2BAA2B;QACvC,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC;YACjC,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;YAClE,0BAA0B;YAC1B,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAgC,CAAC,CAAC;IACxE,CAAC;IAEM,MAAM,CAAC,cAAc;QAC1B,OAAO,iBAAiB,CAAC,WAAW,CAAC;IACvC,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,OAAgB;QAC3C,IAAI,iBAAiB,CAAC,WAAW,KAAK,OAAO,EAAE;YAC7C,iBAAiB,CAAC,WAAW,GAAG,OAAO,CAAC;YACxC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;SACrD;IACH,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,KAAa;QACvC,IAAI,WAAW,CAAC,aAAa,EAAE,KAAK,KAAK;YACvC,OAAO;QAET,WAAW,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAClF,CAAC;IAEM,MAAM,CAAC,aAAa;QACzB,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,0BAA0B,CAAC,4BAA4B,CAAC;IACrJ,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,OAAe;QAC5C,IAAI,WAAW,CAAC,gBAAgB,EAAE,KAAK,OAAO;YAC5C,OAAO;QAET,WAAW,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC5F,CAAC;IAEM,MAAM,CAAC,gBAAgB;QAC5B,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,0BAA0B,CAAC,sBAAsB,CAAC;IACvJ,CAAC;IAEM,MAAM,CAAC,QAAQ;QACpB,OAAO,eAAe,CAAC,eAAe,CAAC;IACzC,CAAC;IAED;;OAEG;IACI,MAAM,KAAK,SAAS;QACzB,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IACxH,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,OAA2B;QACpD,IAAI,WAAW,CAAC,SAAS,KAAK,OAAO;YACnC,OAAO;QAET,WAAW,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACnH,CAAC;IAEM,MAAM,KAAK,cAAc;QAC9B,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,0BAA0B,CAAC,KAAK,CAAC;IACvI,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,KAAc;QAC5C,IAAI,WAAW,CAAC,cAAc,KAAK,KAAK;YACtC,OAAO;QAET,WAAW,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3F,CAAC;IAEM,MAAM,KAAK,kBAAkB;QAClC,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC;IAChH,CAAC;IAEM,MAAM,CAAC,qBAAqB,CAAC,kBAA2B;QAC7D,WAAW,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;IACzG,CAAC;IAED;;OAEG;IACI,MAAM,KAAK,kBAAkB;QAClC,OAAO,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,CAAC,CAAC,0BAA0B,CAAC,IAAI,CAAC;IAC1I,CAAC;IACD;;KAEC;IACM,MAAM,CAAC,qBAAqB,CAAC,OAAgB;QAClD,IAAI,WAAW,CAAC,kBAAkB,KAAK,OAAO;YAC5C,OAAO;QACT,WAAW,CAAC,qBAAqB,CAAC,sBAAsB,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;IACD;;OAEG;IACH,uBAAuB;IAChB,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,OAAoB,EAAE,OAAoB,EAAE,OAAoB,EAAE,WAAoB,EAAE,IAAmB,EAAE,oBAA6C;;QAC7M,IAAI,CAAC,SAAS,CAAC,mBAAmB;YAChC,OAAO;QAET,IAAI;YACF,MAAM,QAAQ,GAAgB;gBAC5B,SAAS,EAAE,SAAS,CAAC,SAAS;gBAC9B,UAAU,EAAE,EAAE;gBACd,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;gBAChD,WAAW,EAAE,MAAA,CAAC,MAAM,SAAS,CAAC,mBAAmB,CAAC,cAAc,EAAE,CAAC,mCAAI,EAAE;aAC1E,CAAC;YACF,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC;YACzH,MAAM,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;SACnE;QAAC,MAAM,GAAG;IACb,CAAC;IACD;;SAEK;IACE,MAAM,KAAK,iBAAiB;QACjC,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC;QAC3E,OAAO,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,CAAC;IAC3D,CAAC;;AA7dc,wBAAY,GAAG,KAAK,CAAC;AAErB,sBAAU,GAAG,6BAA6B,CAAC;AAC3C,qCAAyB,GAAW,gBAAgB,CAAC,CAAE,eAAe;AAGtE,sBAAU,GAAuB,GAAG,CAAC;AAEpD,oDAAoD;AACrC,2BAAe,GAAmB,IAAI,iBAAiB,EAAE,CAAC;AAE1D,uCAA2B,GAAsC,IAAI,GAAG,EAAgC,CAAC;AACzG,+BAAmB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAChD,+BAAmB,GAAG,KAAK,CAAC;AAoB1C;;GAEG;AACoB,iCAAqB,GAAG,IAAI,wBAAwB,EAAE,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\n// cSpell:ignore configurableui clientservices\r\n\r\nimport { Store } from \"redux\";\r\nimport { GuidString, Logger, ProcessDetector } from \"@itwin/core-bentley\";\r\nimport { Localization, RpcActivity } from \"@itwin/core-common\";\r\nimport { IModelApp, IModelConnection, SnapMode, ViewState } from \"@itwin/core-frontend\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { TelemetryEvent } from \"@itwin/core-telemetry\";\r\nimport { getClassName, UiAdmin, UiError, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { LocalStateStorage, SettingsManager, UiStateStorage } from \"@itwin/core-react\";\r\nimport { UiIModelComponents } from \"@itwin/imodel-components-react\";\r\nimport { BackstageManager } from \"./backstage/BackstageManager\";\r\nimport { ChildWindowManager } from \"./childwindow/ChildWindowManager\";\r\nimport { ConfigurableUiManager } from \"./configurableui/ConfigurableUiManager\";\r\nimport { ConfigurableUiActionId } from \"./configurableui/state\";\r\nimport { FrameworkState } from \"./redux/FrameworkState\";\r\nimport { CursorMenuData, PresentationSelectionScope, SessionStateActionId } from \"./redux/SessionState\";\r\nimport { StateManager } from \"./redux/StateManager\";\r\nimport { HideIsolateEmphasizeActionHandler, HideIsolateEmphasizeManager } from \"./selection/HideIsolateEmphasizeManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"./syncui/SyncUiEventDispatcher\";\r\nimport { SYSTEM_PREFERRED_COLOR_THEME, WIDGET_OPACITY_DEFAULT } from \"./theme/ThemeManager\";\r\nimport * as keyinPaletteTools from \"./tools/KeyinPaletteTools\";\r\nimport * as openSettingTools from \"./tools/OpenSettingsTool\";\r\nimport * as restoreLayoutTools from \"./tools/RestoreLayoutTool\";\r\nimport * as toolSettingTools from \"./tools/ToolSettingsTools\";\r\nimport { UiShowHideManager, UiShowHideSettingsProvider } from \"./utils/UiShowHideManager\";\r\nimport { WidgetManager } from \"./widgets/WidgetManager\";\r\nimport { FrontstageManager } from \"./frontstage/FrontstageManager\";\r\n\r\n// cSpell:ignore Mobi\r\n\r\n/** Defined that available UI Versions. It is recommended to always use the latest version available.\r\n * @public\r\n */\r\nexport type FrameworkVersionId = \"1\" | \"2\";\r\n\r\n/** Interface to be implemented but any classes that wants to load their user settings when the UiStateEntry storage class is set.\r\n * @public\r\n */\r\nexport interface UserSettingsProvider {\r\n /** Unique provider Id */\r\n providerId: string;\r\n /** Function to load settings from settings storage */\r\n loadUserSettings(storage: UiStateStorage): Promise<void>;\r\n}\r\n\r\n/** UiVisibility Event Args interface.\r\n * @public\r\n */\r\nexport interface UiVisibilityEventArgs {\r\n visible: boolean;\r\n}\r\n\r\n/** UiVisibility Event class.\r\n * @public\r\n */\r\nexport class UiVisibilityChangedEvent extends UiEvent<UiVisibilityEventArgs> { }\r\n\r\n/** FrameworkVersion Changed Event Args interface.\r\n * @internal\r\n */\r\nexport interface FrameworkVersionChangedEventArgs {\r\n oldVersion: FrameworkVersionId;\r\n version: FrameworkVersionId;\r\n}\r\n\r\n/** FrameworkVersion Changed Event class.\r\n * @internal\r\n */\r\nexport class FrameworkVersionChangedEvent extends UiEvent<FrameworkVersionChangedEventArgs> { }\r\n\r\n/** TrackingTime time argument used by our feature tracking manager as an option argument to the TelemetryClient\r\n * @internal\r\n */\r\nexport interface TrackingTime {\r\n startTime: Date;\r\n endTime: Date;\r\n}\r\n\r\n/**\r\n * Manages the Redux store, localization service and iModel, Project and Login services for the ui-framework package.\r\n * @public\r\n */\r\nexport class UiFramework {\r\n private static _initialized = false;\r\n private static _store?: Store<any>;\r\n private static _complaint = \"UiFramework not initialized\";\r\n private static _frameworkStateKeyInStore: string = \"frameworkState\"; // default name\r\n private static _backstageManager?: BackstageManager;\r\n private static _widgetManager?: WidgetManager;\r\n private static _uiVersion: FrameworkVersionId = \"2\";\r\n private static _hideIsolateEmphasizeActionHandler?: HideIsolateEmphasizeActionHandler;\r\n /** this provides a default state storage handler */\r\n private static _uiStateStorage: UiStateStorage = new LocalStateStorage();\r\n private static _settingsManager?: SettingsManager;\r\n private static _uiSettingsProviderRegistry: Map<string, UserSettingsProvider> = new Map<string, UserSettingsProvider>();\r\n private static _PopupWindowManager = new ChildWindowManager();\r\n public static useDefaultPopoutUrl = false;\r\n\r\n /** @public */\r\n public static get childWindowManager(): ChildWindowManager {\r\n return UiFramework._PopupWindowManager;\r\n }\r\n\r\n /** Registers class that will be informed when the UserSettingsStorage location has been set or changed. This allows\r\n * classes to load any previously saved settings from the new storage location. Common storage locations are the browser's\r\n * local storage, or the iTwin Product Settings cloud storage available via the SettingsAdmin see `IModelApp.settingsAdmin`.\r\n * @beta\r\n */\r\n public static registerUserSettingsProvider(entry: UserSettingsProvider) {\r\n if (this._uiSettingsProviderRegistry.has(entry.providerId))\r\n return false;\r\n\r\n this._uiSettingsProviderRegistry.set(entry.providerId, entry);\r\n return true;\r\n }\r\n\r\n /** Get Show Ui event.\r\n * @public\r\n */\r\n public static readonly onUiVisibilityChanged = new UiVisibilityChangedEvent();\r\n\r\n /**\r\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\r\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\r\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\r\n */\r\n public static async initialize(store: Store<any> | undefined, frameworkStateKey?: string): Promise<void> {\r\n return this.initializeEx(store, frameworkStateKey);\r\n }\r\n\r\n /**\r\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\r\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\r\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\r\n *\r\n * @internal\r\n */\r\n public static async initializeEx(store: Store<any> | undefined, frameworkStateKey?: string): Promise<void> {\r\n if (UiFramework._initialized) {\r\n Logger.logInfo(UiFramework.loggerCategory(UiFramework), `UiFramework.initialize already called`);\r\n return;\r\n }\r\n\r\n /* if store is undefined then the StateManager class should have been initialized by parent app and the apps default set of reducers registered with it.\r\n If the app has no reducers to add and does not initialize a StateManager then just initialize the StateManager with the default framework reducer now */\r\n if (undefined === store && !StateManager.isInitialized(true))\r\n new StateManager();\r\n\r\n UiFramework._store = store;\r\n // ignore setting _frameworkStateKeyInStore if not using store\r\n if (frameworkStateKey && store)\r\n UiFramework._frameworkStateKeyInStore = frameworkStateKey;\r\n\r\n // set up namespace and register all tools from package\r\n const frameworkNamespace = IModelApp.localization?.registerNamespace(UiFramework.localizationNamespace);\r\n [\r\n restoreLayoutTools,\r\n keyinPaletteTools,\r\n openSettingTools,\r\n toolSettingTools,\r\n ].forEach((tool) => IModelApp.tools.registerModule(tool, this.localizationNamespace));\r\n\r\n UiFramework._backstageManager = new BackstageManager();\r\n UiFramework._hideIsolateEmphasizeActionHandler = new HideIsolateEmphasizeManager(); // this allows user to override the default HideIsolateEmphasizeManager implementation.\r\n UiFramework._widgetManager = new WidgetManager();\r\n\r\n // Initialize ui-imodel-components, ui-components, ui-core & ui-abstract\r\n await UiIModelComponents.initialize();\r\n\r\n UiFramework.settingsManager.onSettingsProvidersChanged.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SettingsProvidersChanged);\r\n });\r\n\r\n // Initialize the MessagePresenter interface in UiAdmin for Editor notifications\r\n UiAdmin.messagePresenter = IModelApp.notifications;\r\n\r\n UiFramework._initialized = true;\r\n\r\n // initialize any standalone settings providers that don't need to have defaults set by iModelApp\r\n UiShowHideSettingsProvider.initialize();\r\n\r\n ConfigurableUiManager.initialize();\r\n\r\n return frameworkNamespace;\r\n }\r\n\r\n /** Un-registers the UiFramework internationalization service namespace */\r\n public static terminate() {\r\n UiFramework._store = undefined;\r\n UiFramework._frameworkStateKeyInStore = \"frameworkState\";\r\n if (StateManager.isInitialized(true))\r\n StateManager.clearStore();\r\n // istanbul ignore next\r\n IModelApp.localization?.unregisterNamespace(UiFramework.localizationNamespace);\r\n UiFramework._backstageManager = undefined;\r\n UiFramework._widgetManager = undefined;\r\n UiFramework._hideIsolateEmphasizeActionHandler = undefined;\r\n UiFramework._settingsManager = undefined;\r\n\r\n UiIModelComponents.terminate();\r\n UiShowHideManager.terminate();\r\n UiFramework._initialized = false;\r\n }\r\n\r\n /** Determines if UiFramework has been initialized */\r\n public static get initialized(): boolean { return UiFramework._initialized; }\r\n\r\n /** Property that returns the SettingManager used by AppUI-based applications.\r\n * @public\r\n */\r\n public static get settingsManager() {\r\n if (undefined === UiFramework._settingsManager)\r\n UiFramework._settingsManager = new SettingsManager();\r\n return UiFramework._settingsManager;\r\n }\r\n\r\n /** @public */\r\n public static get frameworkStateKey(): string {\r\n return UiFramework._frameworkStateKeyInStore;\r\n }\r\n\r\n /** The UiFramework state maintained by Redux\r\n * @public\r\n */\r\n public static get frameworkState(): FrameworkState | undefined {\r\n try {\r\n // eslint-disable-next-line dot-notation\r\n return UiFramework.store.getState()[UiFramework.frameworkStateKey];\r\n } catch (_e) {\r\n return undefined;\r\n }\r\n }\r\n\r\n /** The Redux store */\r\n public static get store(): Store<any> {\r\n if (UiFramework._store)\r\n return UiFramework._store;\r\n\r\n // istanbul ignore else\r\n if (!StateManager.isInitialized(true))\r\n throw new UiError(UiFramework.loggerCategory(this), `Error trying to access redux store before either store or StateManager has been initialized.`);\r\n\r\n // istanbul ignore next\r\n return StateManager.store;\r\n }\r\n\r\n /** The internationalization service created by the app.\r\n * @internal\r\n */\r\n public static get localization(): Localization {\r\n // istanbul ignore next\r\n if (!IModelApp.localization)\r\n throw new UiError(UiFramework.loggerCategory(this), `IModelApp.localization has not been defined.`);\r\n return IModelApp.localization;\r\n }\r\n\r\n /** The internationalization service namespace. */\r\n public static get localizationNamespace(): string {\r\n return \"UiFramework\";\r\n }\r\n\r\n /** @public */\r\n public static get backstageManager(): BackstageManager {\r\n // istanbul ignore next\r\n if (!UiFramework._backstageManager)\r\n throw new UiError(UiFramework.loggerCategory(this), UiFramework._complaint);\r\n return UiFramework._backstageManager;\r\n }\r\n\r\n /** @alpha */\r\n public static get hideIsolateEmphasizeActionHandler(): HideIsolateEmphasizeActionHandler {\r\n // istanbul ignore next\r\n if (!UiFramework._hideIsolateEmphasizeActionHandler)\r\n throw new UiError(UiFramework.loggerCategory(this), UiFramework._complaint);\r\n return UiFramework._hideIsolateEmphasizeActionHandler;\r\n }\r\n\r\n /** @alpha */\r\n public static setHideIsolateEmphasizeActionHandler(handler: HideIsolateEmphasizeActionHandler | undefined) {\r\n // istanbul ignore else\r\n if (handler)\r\n UiFramework._hideIsolateEmphasizeActionHandler = handler;\r\n else\r\n UiFramework._hideIsolateEmphasizeActionHandler = new HideIsolateEmphasizeManager();\r\n }\r\n\r\n /** @alpha */\r\n public static get widgetManager(): WidgetManager {\r\n // istanbul ignore next\r\n if (!UiFramework._widgetManager)\r\n throw new UiError(UiFramework.loggerCategory(this), UiFramework._complaint);\r\n return UiFramework._widgetManager;\r\n }\r\n\r\n /** Calls localization.getLocalizedStringWithNamespace with the \"UiFramework\" namespace. Do NOT include the namespace in the key.\r\n * @internal\r\n */\r\n public static translate(key: string | string[]): string {\r\n return IModelApp.localization.getLocalizedStringWithNamespace(UiFramework.localizationNamespace, key);\r\n }\r\n\r\n /** @internal */\r\n public static get packageName(): string {\r\n return \"appui-react\";\r\n }\r\n\r\n /** @internal */\r\n public static loggerCategory(obj: any): string {\r\n const className = getClassName(obj);\r\n const category = UiFramework.packageName + (className ? `.${className}` : \"\");\r\n return category;\r\n }\r\n\r\n public static dispatchActionToStore(type: string, payload: any, immediateSync = false) {\r\n UiFramework.store.dispatch({ type, payload });\r\n if (immediateSync)\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(type);\r\n else\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(type);\r\n }\r\n\r\n public static setAccudrawSnapMode(snapMode: SnapMode) {\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetSnapMode, snapMode, true);\r\n }\r\n\r\n public static getAccudrawSnapMode(): SnapMode {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.snapMode : /* istanbul ignore next */ SnapMode.NearestKeypoint;\r\n }\r\n\r\n public static getActiveSelectionScope(): string {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.activeSelectionScope : /* istanbul ignore next */ \"element\";\r\n }\r\n\r\n public static setActiveSelectionScope(selectionScopeId: string): void {\r\n // istanbul ignore else\r\n if (UiFramework.frameworkState) {\r\n const foundIndex = UiFramework.frameworkState.sessionState.availableSelectionScopes.findIndex((selectionScope: PresentationSelectionScope) => selectionScope.id === selectionScopeId);\r\n if (-1 !== foundIndex) {\r\n const scope = UiFramework.frameworkState.sessionState.availableSelectionScopes[foundIndex];\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetSelectionScope, scope.id);\r\n Presentation.selection.scopes.activeScope = scope.id;\r\n }\r\n }\r\n }\r\n\r\n /** @public */\r\n public static openCursorMenu(menuData: CursorMenuData | undefined): void {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.UpdateCursorMenu, menuData);\r\n }\r\n\r\n /** @public */\r\n public static closeCursorMenu(): void {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.UpdateCursorMenu, undefined);\r\n }\r\n\r\n /** @public */\r\n public static getCursorMenuData(): CursorMenuData | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.cursorMenuData : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static getActiveIModelId(): string {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.iModelId : /* istanbul ignore next */ \"\";\r\n }\r\n\r\n public static setActiveIModelId(iModelId: string): void {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetActiveIModelId, iModelId);\r\n }\r\n\r\n public static setIModelConnection(iModelConnection: IModelConnection | undefined, immediateSync = false) {\r\n const oldConnection = UiFramework.getIModelConnection();\r\n if (oldConnection !== iModelConnection) {\r\n if (oldConnection?.iModelId)\r\n FrontstageManager.clearFrontstageDefsForIModelId(oldConnection.iModelId);\r\n oldConnection && undefined === iModelConnection && SyncUiEventDispatcher.clearConnectionEvents(oldConnection);\r\n iModelConnection && SyncUiEventDispatcher.initializeConnectionEvents(iModelConnection);\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetIModelConnection, iModelConnection, immediateSync);\r\n }\r\n UiFramework.setActiveIModelId(iModelConnection?.iModelId ?? \"\");\r\n }\r\n\r\n public static getIModelConnection(): IModelConnection | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.iModelConnection : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** Called by iModelApp to initialize saved UI state from registered UseSettingsProviders\r\n * @public\r\n */\r\n public static async initializeStateFromUserSettingsProviders(immediateSync = false) {\r\n // let any registered providers to load values from the new storage location\r\n const providerKeys = [...this._uiSettingsProviderRegistry.keys()];\r\n for await (const key of providerKeys) {\r\n await this._uiSettingsProviderRegistry.get(key)!.loadUserSettings(UiFramework._uiStateStorage);\r\n }\r\n\r\n // istanbul ignore next\r\n if (immediateSync)\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(SyncUiEventId.UiStateStorageChanged);\r\n else\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.UiStateStorageChanged);\r\n }\r\n\r\n /** @public */\r\n public static async setUiStateStorage(storage: UiStateStorage, immediateSync = false) {\r\n if (UiFramework._uiStateStorage === storage)\r\n return;\r\n\r\n UiFramework._uiStateStorage = storage;\r\n await this.initializeStateFromUserSettingsProviders(immediateSync);\r\n }\r\n\r\n /** The UI Settings Storage is a convenient wrapper around Local Storage to assist in caching state information across user sessions.\r\n * It was previously used to conflate both the state information across session and the information driven directly from user explicit action,\r\n * which are now handled with user preferences.\r\n * @public\r\n */\r\n public static getUiStateStorage(): UiStateStorage {\r\n return UiFramework._uiStateStorage;\r\n }\r\n\r\n public static setDefaultIModelViewportControlId(iModelViewportControlId: string, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetDefaultIModelViewportControlId, iModelViewportControlId, immediateSync);\r\n }\r\n\r\n public static getDefaultIModelViewportControlId(): string | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.defaultIModelViewportControlId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static setDefaultViewId(viewId: string, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetDefaultViewId, viewId, immediateSync);\r\n }\r\n\r\n public static getDefaultViewId(): string | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.defaultViewId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static setDefaultViewState(viewState: ViewState, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetDefaultViewState, viewState, immediateSync);\r\n }\r\n public static getDefaultViewState(): ViewState | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.defaultViewState : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** @public */\r\n public static getAvailableSelectionScopes(): PresentationSelectionScope[] {\r\n return UiFramework.frameworkState ?\r\n UiFramework.frameworkState.sessionState.availableSelectionScopes :\r\n /* istanbul ignore next */\r\n [{ id: \"element\", label: \"Element\" } as PresentationSelectionScope];\r\n }\r\n\r\n public static getIsUiVisible() {\r\n return UiShowHideManager.isUiVisible;\r\n }\r\n\r\n public static setIsUiVisible(visible: boolean) {\r\n if (UiShowHideManager.isUiVisible !== visible) {\r\n UiShowHideManager.isUiVisible = visible;\r\n UiFramework.onUiVisibilityChanged.emit({ visible });\r\n }\r\n }\r\n\r\n public static setColorTheme(theme: string) {\r\n if (UiFramework.getColorTheme() === theme)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetTheme, theme, true);\r\n }\r\n\r\n public static getColorTheme(): string {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.theme : /* istanbul ignore next */ SYSTEM_PREFERRED_COLOR_THEME;\r\n }\r\n\r\n public static setWidgetOpacity(opacity: number) {\r\n if (UiFramework.getWidgetOpacity() === opacity)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetWidgetOpacity, opacity, true);\r\n }\r\n\r\n public static getWidgetOpacity(): number {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.widgetOpacity : /* istanbul ignore next */ WIDGET_OPACITY_DEFAULT;\r\n }\r\n\r\n public static isMobile() { // eslint-disable-line @itwin/prefer-get\r\n return ProcessDetector.isMobileBrowser;\r\n }\r\n\r\n /** Returns the Ui Version.\r\n * @public\r\n */\r\n public static get uiVersion(): FrameworkVersionId {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.frameworkVersion : this._uiVersion;\r\n }\r\n\r\n public static setUiVersion(version: FrameworkVersionId) {\r\n if (UiFramework.uiVersion === version)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetFrameworkVersion, version === \"1\" ? \"1\" : \"2\", true);\r\n }\r\n\r\n public static get showWidgetIcon(): boolean {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.showWidgetIcon : /* istanbul ignore next */ false;\r\n }\r\n\r\n public static setShowWidgetIcon(value: boolean) {\r\n if (UiFramework.showWidgetIcon === value)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetShowWidgetIcon, value, true);\r\n }\r\n\r\n public static get useDragInteraction(): boolean {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.useDragInteraction : false;\r\n }\r\n\r\n public static setUseDragInteraction(useDragInteraction: boolean) {\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetDragInteraction, useDragInteraction, true);\r\n }\r\n\r\n /** Returns the variable controlling whether the overlay is displayed in a Viewport\r\n * @public\r\n */\r\n public static get viewOverlayDisplay() {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.viewOverlayDisplay : /* istanbul ignore next */ true;\r\n }\r\n /** Set the variable that controls display of the view overlay. Applies to all viewports in the app\r\n * @public\r\n */\r\n public static setViewOverlayDisplay(display: boolean) {\r\n if (UiFramework.viewOverlayDisplay === display)\r\n return;\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetViewOverlayDisplay, display);\r\n }\r\n /** Send logging message to the telemetry system\r\n * @internal\r\n */\r\n // istanbul ignore next\r\n public static async postTelemetry(eventName: string, eventId?: GuidString, iTwinId?: GuidString, iModeId?: GuidString, changeSetId?: string, time?: TrackingTime, additionalProperties?: { [key: string]: any }): Promise<void> {\r\n if (!IModelApp.authorizationClient)\r\n return;\r\n\r\n try {\r\n const activity: RpcActivity = {\r\n sessionId: IModelApp.sessionId,\r\n activityId: \"\",\r\n applicationId: IModelApp.applicationId,\r\n applicationVersion: IModelApp.applicationVersion,\r\n accessToken: (await IModelApp.authorizationClient.getAccessToken()) ?? \"\",\r\n };\r\n const telemetryEvent = new TelemetryEvent(eventName, eventId, iTwinId, iModeId, changeSetId, time, additionalProperties);\r\n await IModelApp.telemetry.postTelemetry(activity, telemetryEvent);\r\n } catch { }\r\n }\r\n /** Determines whether a ContextMenu is open\r\n * @alpha\r\n * */\r\n public static get isContextMenuOpen(): boolean {\r\n const contextMenu = document.querySelector(\"div.core-context-menu-opened\");\r\n return contextMenu !== null && contextMenu !== undefined;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"UiFramework.js","sourceRoot":"","sources":["../../../src/appui-react/UiFramework.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Utilities\r\n */\r\n\r\n// cSpell:ignore configurableui clientservices\r\n\r\nimport { Store } from \"redux\";\r\nimport { GuidString, Logger, ProcessDetector } from \"@itwin/core-bentley\";\r\nimport { Localization, RpcActivity } from \"@itwin/core-common\";\r\nimport { IModelApp, IModelConnection, SnapMode, ViewState } from \"@itwin/core-frontend\";\r\nimport { Presentation } from \"@itwin/presentation-frontend\";\r\nimport { TelemetryEvent } from \"@itwin/core-telemetry\";\r\nimport { getClassName, UiAdmin, UiError, UiEvent } from \"@itwin/appui-abstract\";\r\nimport { LocalStateStorage, SettingsManager, UiStateStorage } from \"@itwin/core-react\";\r\nimport { UiIModelComponents } from \"@itwin/imodel-components-react\";\r\nimport { BackstageManager } from \"./backstage/BackstageManager\";\r\nimport { ChildWindowManager } from \"./childwindow/ChildWindowManager\";\r\nimport { ConfigurableUiManager } from \"./configurableui/ConfigurableUiManager\";\r\nimport { ConfigurableUiActionId } from \"./configurableui/state\";\r\nimport { FrameworkState } from \"./redux/FrameworkState\";\r\nimport { CursorMenuData, PresentationSelectionScope, SessionStateActionId } from \"./redux/SessionState\";\r\nimport { StateManager } from \"./redux/StateManager\";\r\nimport { HideIsolateEmphasizeActionHandler, HideIsolateEmphasizeManager } from \"./selection/HideIsolateEmphasizeManager\";\r\nimport { SyncUiEventDispatcher, SyncUiEventId } from \"./syncui/SyncUiEventDispatcher\";\r\nimport { SYSTEM_PREFERRED_COLOR_THEME, WIDGET_OPACITY_DEFAULT } from \"./theme/ThemeManager\";\r\nimport * as keyinPaletteTools from \"./tools/KeyinPaletteTools\";\r\nimport * as openSettingTools from \"./tools/OpenSettingsTool\";\r\nimport * as restoreLayoutTools from \"./tools/RestoreLayoutTool\";\r\nimport * as toolSettingTools from \"./tools/ToolSettingsTools\";\r\nimport { UiShowHideManager, UiShowHideSettingsProvider } from \"./utils/UiShowHideManager\";\r\nimport { WidgetManager } from \"./widgets/WidgetManager\";\r\nimport { FrontstageManager } from \"./frontstage/FrontstageManager\";\r\n\r\n// cSpell:ignore Mobi\r\n\r\n/** Defined that available UI Versions. It is recommended to always use the latest version available.\r\n * @public\r\n */\r\nexport type FrameworkVersionId = \"1\" | \"2\";\r\n\r\n/** Interface to be implemented but any classes that wants to load their user settings when the UiStateEntry storage class is set.\r\n * @public\r\n */\r\nexport interface UserSettingsProvider {\r\n /** Unique provider Id */\r\n providerId: string;\r\n /** Function to load settings from settings storage */\r\n loadUserSettings(storage: UiStateStorage): Promise<void>;\r\n}\r\n\r\n/** UiVisibility Event Args interface.\r\n * @public\r\n */\r\nexport interface UiVisibilityEventArgs {\r\n visible: boolean;\r\n}\r\n\r\n/** UiVisibility Event class.\r\n * @public\r\n */\r\nexport class UiVisibilityChangedEvent extends UiEvent<UiVisibilityEventArgs> { }\r\n\r\n/** FrameworkVersion Changed Event Args interface.\r\n * @internal\r\n */\r\nexport interface FrameworkVersionChangedEventArgs {\r\n oldVersion: FrameworkVersionId;\r\n version: FrameworkVersionId;\r\n}\r\n\r\n/** FrameworkVersion Changed Event class.\r\n * @internal\r\n */\r\nexport class FrameworkVersionChangedEvent extends UiEvent<FrameworkVersionChangedEventArgs> { }\r\n\r\n/** TrackingTime time argument used by our feature tracking manager as an option argument to the TelemetryClient\r\n * @internal\r\n */\r\nexport interface TrackingTime {\r\n startTime: Date;\r\n endTime: Date;\r\n}\r\n\r\n/**\r\n * Manages the Redux store, localization service and iModel, Project and Login services for the ui-framework package.\r\n * @public\r\n */\r\nexport class UiFramework {\r\n private static _initialized = false;\r\n private static _store?: Store<any>;\r\n private static _complaint = \"UiFramework not initialized\";\r\n private static _frameworkStateKeyInStore: string = \"frameworkState\"; // default name\r\n private static _backstageManager?: BackstageManager;\r\n private static _widgetManager?: WidgetManager;\r\n private static _uiVersion: FrameworkVersionId = \"2\";\r\n private static _hideIsolateEmphasizeActionHandler?: HideIsolateEmphasizeActionHandler;\r\n /** this provides a default state storage handler */\r\n private static _uiStateStorage: UiStateStorage = new LocalStateStorage();\r\n private static _settingsManager?: SettingsManager;\r\n private static _uiSettingsProviderRegistry: Map<string, UserSettingsProvider> = new Map<string, UserSettingsProvider>();\r\n private static _PopupWindowManager = new ChildWindowManager();\r\n public static useDefaultPopoutUrl = false;\r\n\r\n /** @public */\r\n public static get childWindowManager(): ChildWindowManager {\r\n return UiFramework._PopupWindowManager;\r\n }\r\n\r\n /** Registers class that will be informed when the UserSettingsStorage location has been set or changed. This allows\r\n * classes to load any previously saved settings from the new storage location. Common storage locations are the browser's\r\n * local storage, or the iTwin Product Settings cloud storage available via the SettingsAdmin see `IModelApp.settingsAdmin`.\r\n * @beta\r\n */\r\n public static registerUserSettingsProvider(entry: UserSettingsProvider) {\r\n if (this._uiSettingsProviderRegistry.has(entry.providerId))\r\n return false;\r\n\r\n this._uiSettingsProviderRegistry.set(entry.providerId, entry);\r\n return true;\r\n }\r\n\r\n /** Get Show Ui event.\r\n * @public\r\n */\r\n public static readonly onUiVisibilityChanged = new UiVisibilityChangedEvent();\r\n\r\n /**\r\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\r\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\r\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\r\n * @param startInUi1Mode Used for legacy applications to start up in the deprecated UI 1 mode. This should not set by newer applications.\r\n */\r\n public static async initialize(store: Store<any> | undefined, frameworkStateKey?: string, startInUi1Mode?: boolean): Promise<void> {\r\n return this.initializeEx(store, frameworkStateKey, startInUi1Mode);\r\n }\r\n\r\n /**\r\n * Called by the application to initialize the UiFramework. Also initializes UIIModelComponents, UiComponents, UiCore.\r\n * @param store The single Redux store created by the host application. If this is `undefined` then it is assumed that the [[StateManager]] is being used to provide the Redux store.\r\n * @param frameworkStateKey The name of the key used by the app when adding the UiFramework state into the Redux store. If not defined \"frameworkState\" is assumed. This value is ignored if [[StateManager]] is being used. The StateManager use \"frameworkState\".\r\n * @param startInUi1Mode Used for legacy applications to start up in the deprecated UI 1 mode. This should not set by newer applications.\r\n *\r\n * @internal\r\n */\r\n public static async initializeEx(store: Store<any> | undefined, frameworkStateKey?: string, startInUi1Mode?: boolean): Promise<void> {\r\n if (UiFramework._initialized) {\r\n Logger.logInfo(UiFramework.loggerCategory(UiFramework), `UiFramework.initialize already called`);\r\n return;\r\n }\r\n\r\n /* if store is undefined then the StateManager class should have been initialized by parent app and the apps default set of reducers registered with it.\r\n If the app has no reducers to add and does not initialize a StateManager then just initialize the StateManager with the default framework reducer now */\r\n if (undefined === store && !StateManager.isInitialized(true))\r\n new StateManager();\r\n\r\n UiFramework._store = store;\r\n // ignore setting _frameworkStateKeyInStore if not using store\r\n if (frameworkStateKey && store)\r\n UiFramework._frameworkStateKeyInStore = frameworkStateKey;\r\n\r\n if (startInUi1Mode)\r\n UiFramework.store.dispatch({ type: ConfigurableUiActionId.SetFrameworkVersion, payload: \"1\" });\r\n\r\n // set up namespace and register all tools from package\r\n const frameworkNamespace = IModelApp.localization?.registerNamespace(UiFramework.localizationNamespace);\r\n [\r\n restoreLayoutTools,\r\n keyinPaletteTools,\r\n openSettingTools,\r\n toolSettingTools,\r\n ].forEach((tool) => IModelApp.tools.registerModule(tool, this.localizationNamespace));\r\n\r\n UiFramework._backstageManager = new BackstageManager();\r\n UiFramework._hideIsolateEmphasizeActionHandler = new HideIsolateEmphasizeManager(); // this allows user to override the default HideIsolateEmphasizeManager implementation.\r\n UiFramework._widgetManager = new WidgetManager();\r\n\r\n // Initialize ui-imodel-components, ui-components, ui-core & ui-abstract\r\n await UiIModelComponents.initialize();\r\n\r\n UiFramework.settingsManager.onSettingsProvidersChanged.addListener(() => {\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.SettingsProvidersChanged);\r\n });\r\n\r\n // Initialize the MessagePresenter interface in UiAdmin for Editor notifications\r\n UiAdmin.messagePresenter = IModelApp.notifications;\r\n\r\n UiFramework._initialized = true;\r\n\r\n // initialize any standalone settings providers that don't need to have defaults set by iModelApp\r\n UiShowHideSettingsProvider.initialize();\r\n\r\n ConfigurableUiManager.initialize();\r\n\r\n return frameworkNamespace;\r\n }\r\n\r\n /** Un-registers the UiFramework internationalization service namespace */\r\n public static terminate() {\r\n UiFramework._store = undefined;\r\n UiFramework._frameworkStateKeyInStore = \"frameworkState\";\r\n if (StateManager.isInitialized(true))\r\n StateManager.clearStore();\r\n // istanbul ignore next\r\n IModelApp.localization?.unregisterNamespace(UiFramework.localizationNamespace);\r\n UiFramework._backstageManager = undefined;\r\n UiFramework._widgetManager = undefined;\r\n UiFramework._hideIsolateEmphasizeActionHandler = undefined;\r\n UiFramework._settingsManager = undefined;\r\n\r\n UiIModelComponents.terminate();\r\n UiShowHideManager.terminate();\r\n UiFramework._initialized = false;\r\n }\r\n\r\n /** Determines if UiFramework has been initialized */\r\n public static get initialized(): boolean { return UiFramework._initialized; }\r\n\r\n /** Property that returns the SettingManager used by AppUI-based applications.\r\n * @public\r\n */\r\n public static get settingsManager() {\r\n if (undefined === UiFramework._settingsManager)\r\n UiFramework._settingsManager = new SettingsManager();\r\n return UiFramework._settingsManager;\r\n }\r\n\r\n /** @public */\r\n public static get frameworkStateKey(): string {\r\n return UiFramework._frameworkStateKeyInStore;\r\n }\r\n\r\n /** The UiFramework state maintained by Redux\r\n * @public\r\n */\r\n public static get frameworkState(): FrameworkState | undefined {\r\n try {\r\n // eslint-disable-next-line dot-notation\r\n return UiFramework.store.getState()[UiFramework.frameworkStateKey];\r\n } catch (_e) {\r\n return undefined;\r\n }\r\n }\r\n\r\n /** The Redux store */\r\n public static get store(): Store<any> {\r\n if (UiFramework._store)\r\n return UiFramework._store;\r\n\r\n // istanbul ignore else\r\n if (!StateManager.isInitialized(true))\r\n throw new UiError(UiFramework.loggerCategory(this), `Error trying to access redux store before either store or StateManager has been initialized.`);\r\n\r\n // istanbul ignore next\r\n return StateManager.store;\r\n }\r\n\r\n /** The internationalization service created by the app.\r\n * @internal\r\n */\r\n public static get localization(): Localization {\r\n // istanbul ignore next\r\n if (!IModelApp.localization)\r\n throw new UiError(UiFramework.loggerCategory(this), `IModelApp.localization has not been defined.`);\r\n return IModelApp.localization;\r\n }\r\n\r\n /** The internationalization service namespace. */\r\n public static get localizationNamespace(): string {\r\n return \"UiFramework\";\r\n }\r\n\r\n /** @public */\r\n public static get backstageManager(): BackstageManager {\r\n // istanbul ignore next\r\n if (!UiFramework._backstageManager)\r\n throw new UiError(UiFramework.loggerCategory(this), UiFramework._complaint);\r\n return UiFramework._backstageManager;\r\n }\r\n\r\n /** @alpha */\r\n public static get hideIsolateEmphasizeActionHandler(): HideIsolateEmphasizeActionHandler {\r\n // istanbul ignore next\r\n if (!UiFramework._hideIsolateEmphasizeActionHandler)\r\n throw new UiError(UiFramework.loggerCategory(this), UiFramework._complaint);\r\n return UiFramework._hideIsolateEmphasizeActionHandler;\r\n }\r\n\r\n /** @alpha */\r\n public static setHideIsolateEmphasizeActionHandler(handler: HideIsolateEmphasizeActionHandler | undefined) {\r\n // istanbul ignore else\r\n if (handler)\r\n UiFramework._hideIsolateEmphasizeActionHandler = handler;\r\n else\r\n UiFramework._hideIsolateEmphasizeActionHandler = new HideIsolateEmphasizeManager();\r\n }\r\n\r\n /** @alpha */\r\n public static get widgetManager(): WidgetManager {\r\n // istanbul ignore next\r\n if (!UiFramework._widgetManager)\r\n throw new UiError(UiFramework.loggerCategory(this), UiFramework._complaint);\r\n return UiFramework._widgetManager;\r\n }\r\n\r\n /** Calls localization.getLocalizedStringWithNamespace with the \"UiFramework\" namespace. Do NOT include the namespace in the key.\r\n * @internal\r\n */\r\n public static translate(key: string | string[]): string {\r\n return IModelApp.localization.getLocalizedStringWithNamespace(UiFramework.localizationNamespace, key);\r\n }\r\n\r\n /** @internal */\r\n public static get packageName(): string {\r\n return \"appui-react\";\r\n }\r\n\r\n /** @internal */\r\n public static loggerCategory(obj: any): string {\r\n const className = getClassName(obj);\r\n const category = UiFramework.packageName + (className ? `.${className}` : \"\");\r\n return category;\r\n }\r\n\r\n public static dispatchActionToStore(type: string, payload: any, immediateSync = false) {\r\n UiFramework.store.dispatch({ type, payload });\r\n if (immediateSync)\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(type);\r\n else\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(type);\r\n }\r\n\r\n public static setAccudrawSnapMode(snapMode: SnapMode) {\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetSnapMode, snapMode, true);\r\n }\r\n\r\n public static getAccudrawSnapMode(): SnapMode {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.snapMode : /* istanbul ignore next */ SnapMode.NearestKeypoint;\r\n }\r\n\r\n public static getActiveSelectionScope(): string {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.activeSelectionScope : /* istanbul ignore next */ \"element\";\r\n }\r\n\r\n public static setActiveSelectionScope(selectionScopeId: string): void {\r\n // istanbul ignore else\r\n if (UiFramework.frameworkState) {\r\n const foundIndex = UiFramework.frameworkState.sessionState.availableSelectionScopes.findIndex((selectionScope: PresentationSelectionScope) => selectionScope.id === selectionScopeId);\r\n if (-1 !== foundIndex) {\r\n const scope = UiFramework.frameworkState.sessionState.availableSelectionScopes[foundIndex];\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetSelectionScope, scope.id);\r\n Presentation.selection.scopes.activeScope = scope.id;\r\n }\r\n }\r\n }\r\n\r\n /** @public */\r\n public static openCursorMenu(menuData: CursorMenuData | undefined): void {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.UpdateCursorMenu, menuData);\r\n }\r\n\r\n /** @public */\r\n public static closeCursorMenu(): void {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.UpdateCursorMenu, undefined);\r\n }\r\n\r\n /** @public */\r\n public static getCursorMenuData(): CursorMenuData | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.cursorMenuData : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static getActiveIModelId(): string {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.iModelId : /* istanbul ignore next */ \"\";\r\n }\r\n\r\n public static setActiveIModelId(iModelId: string): void {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetActiveIModelId, iModelId);\r\n }\r\n\r\n public static setIModelConnection(iModelConnection: IModelConnection | undefined, immediateSync = false) {\r\n const oldConnection = UiFramework.getIModelConnection();\r\n if (oldConnection !== iModelConnection) {\r\n if (oldConnection?.iModelId)\r\n FrontstageManager.clearFrontstageDefsForIModelId(oldConnection.iModelId);\r\n oldConnection && undefined === iModelConnection && SyncUiEventDispatcher.clearConnectionEvents(oldConnection);\r\n iModelConnection && SyncUiEventDispatcher.initializeConnectionEvents(iModelConnection);\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetIModelConnection, iModelConnection, immediateSync);\r\n }\r\n UiFramework.setActiveIModelId(iModelConnection?.iModelId ?? \"\");\r\n }\r\n\r\n public static getIModelConnection(): IModelConnection | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.iModelConnection : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** Called by iModelApp to initialize saved UI state from registered UseSettingsProviders\r\n * @public\r\n */\r\n public static async initializeStateFromUserSettingsProviders(immediateSync = false) {\r\n // let any registered providers to load values from the new storage location\r\n const providerKeys = [...this._uiSettingsProviderRegistry.keys()];\r\n for await (const key of providerKeys) {\r\n await this._uiSettingsProviderRegistry.get(key)!.loadUserSettings(UiFramework._uiStateStorage);\r\n }\r\n\r\n // istanbul ignore next\r\n if (immediateSync)\r\n SyncUiEventDispatcher.dispatchImmediateSyncUiEvent(SyncUiEventId.UiStateStorageChanged);\r\n else\r\n SyncUiEventDispatcher.dispatchSyncUiEvent(SyncUiEventId.UiStateStorageChanged);\r\n }\r\n\r\n /** @public */\r\n public static async setUiStateStorage(storage: UiStateStorage, immediateSync = false) {\r\n if (UiFramework._uiStateStorage === storage)\r\n return;\r\n\r\n UiFramework._uiStateStorage = storage;\r\n await this.initializeStateFromUserSettingsProviders(immediateSync);\r\n }\r\n\r\n /** The UI Settings Storage is a convenient wrapper around Local Storage to assist in caching state information across user sessions.\r\n * It was previously used to conflate both the state information across session and the information driven directly from user explicit action,\r\n * which are now handled with user preferences.\r\n * @public\r\n */\r\n public static getUiStateStorage(): UiStateStorage {\r\n return UiFramework._uiStateStorage;\r\n }\r\n\r\n public static setDefaultIModelViewportControlId(iModelViewportControlId: string, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetDefaultIModelViewportControlId, iModelViewportControlId, immediateSync);\r\n }\r\n\r\n public static getDefaultIModelViewportControlId(): string | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.defaultIModelViewportControlId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static setDefaultViewId(viewId: string, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetDefaultViewId, viewId, immediateSync);\r\n }\r\n\r\n public static getDefaultViewId(): string | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.defaultViewId : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n public static setDefaultViewState(viewState: ViewState, immediateSync = false) {\r\n UiFramework.dispatchActionToStore(SessionStateActionId.SetDefaultViewState, viewState, immediateSync);\r\n }\r\n public static getDefaultViewState(): ViewState | undefined {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.sessionState.defaultViewState : /* istanbul ignore next */ undefined;\r\n }\r\n\r\n /** @public */\r\n public static getAvailableSelectionScopes(): PresentationSelectionScope[] {\r\n return UiFramework.frameworkState ?\r\n UiFramework.frameworkState.sessionState.availableSelectionScopes :\r\n /* istanbul ignore next */\r\n [{ id: \"element\", label: \"Element\" } as PresentationSelectionScope];\r\n }\r\n\r\n public static getIsUiVisible() {\r\n return UiShowHideManager.isUiVisible;\r\n }\r\n\r\n public static setIsUiVisible(visible: boolean) {\r\n if (UiShowHideManager.isUiVisible !== visible) {\r\n UiShowHideManager.isUiVisible = visible;\r\n UiFramework.onUiVisibilityChanged.emit({ visible });\r\n }\r\n }\r\n\r\n public static setColorTheme(theme: string) {\r\n if (UiFramework.getColorTheme() === theme)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetTheme, theme, true);\r\n }\r\n\r\n public static getColorTheme(): string {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.theme : /* istanbul ignore next */ SYSTEM_PREFERRED_COLOR_THEME;\r\n }\r\n\r\n public static setWidgetOpacity(opacity: number) {\r\n if (UiFramework.getWidgetOpacity() === opacity)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetWidgetOpacity, opacity, true);\r\n }\r\n\r\n public static getWidgetOpacity(): number {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.widgetOpacity : /* istanbul ignore next */ WIDGET_OPACITY_DEFAULT;\r\n }\r\n\r\n public static isMobile() { // eslint-disable-line @itwin/prefer-get\r\n return ProcessDetector.isMobileBrowser;\r\n }\r\n\r\n /** Returns the Ui Version.\r\n * @public\r\n */\r\n public static get uiVersion(): FrameworkVersionId {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.frameworkVersion : this._uiVersion;\r\n }\r\n\r\n public static setUiVersion(version: FrameworkVersionId) {\r\n if (UiFramework.uiVersion === version)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetFrameworkVersion, version === \"1\" ? \"1\" : \"2\", true);\r\n }\r\n\r\n public static get showWidgetIcon(): boolean {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.showWidgetIcon : /* istanbul ignore next */ false;\r\n }\r\n\r\n public static setShowWidgetIcon(value: boolean) {\r\n if (UiFramework.showWidgetIcon === value)\r\n return;\r\n\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetShowWidgetIcon, value, true);\r\n }\r\n\r\n public static get useDragInteraction(): boolean {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.useDragInteraction : false;\r\n }\r\n\r\n public static setUseDragInteraction(useDragInteraction: boolean) {\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetDragInteraction, useDragInteraction, true);\r\n }\r\n\r\n /** Returns the variable controlling whether the overlay is displayed in a Viewport\r\n * @public\r\n */\r\n public static get viewOverlayDisplay() {\r\n return UiFramework.frameworkState ? UiFramework.frameworkState.configurableUiState.viewOverlayDisplay : /* istanbul ignore next */ true;\r\n }\r\n /** Set the variable that controls display of the view overlay. Applies to all viewports in the app\r\n * @public\r\n */\r\n public static setViewOverlayDisplay(display: boolean) {\r\n if (UiFramework.viewOverlayDisplay === display)\r\n return;\r\n UiFramework.dispatchActionToStore(ConfigurableUiActionId.SetViewOverlayDisplay, display);\r\n }\r\n /** Send logging message to the telemetry system\r\n * @internal\r\n */\r\n // istanbul ignore next\r\n public static async postTelemetry(eventName: string, eventId?: GuidString, iTwinId?: GuidString, iModeId?: GuidString, changeSetId?: string, time?: TrackingTime, additionalProperties?: { [key: string]: any }): Promise<void> {\r\n if (!IModelApp.authorizationClient)\r\n return;\r\n\r\n try {\r\n const activity: RpcActivity = {\r\n sessionId: IModelApp.sessionId,\r\n activityId: \"\",\r\n applicationId: IModelApp.applicationId,\r\n applicationVersion: IModelApp.applicationVersion,\r\n accessToken: (await IModelApp.authorizationClient.getAccessToken()) ?? \"\",\r\n };\r\n const telemetryEvent = new TelemetryEvent(eventName, eventId, iTwinId, iModeId, changeSetId, time, additionalProperties);\r\n await IModelApp.telemetry.postTelemetry(activity, telemetryEvent);\r\n } catch { }\r\n }\r\n /** Determines whether a ContextMenu is open\r\n * @alpha\r\n * */\r\n public static get isContextMenuOpen(): boolean {\r\n const contextMenu = document.querySelector(\"div.core-context-menu-opened\");\r\n return contextMenu !== null && contextMenu !== undefined;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FrontstageDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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"}
@@ -573,8 +573,13 @@ export class FrontstageDef {
573
573
  return WidgetState.Hidden;
574
574
  if (isFloatingLocation(location))
575
575
  return WidgetState.Floating;
576
+ let collapsedPanel = false;
577
+ if ("side" in location) {
578
+ const panel = this.nineZoneState.panels[location.side];
579
+ collapsedPanel = panel.collapsed || undefined === panel.size || 0 === panel.size;
580
+ }
576
581
  const widgetContainer = this.nineZoneState.widgets[location.widgetId];
577
- if (widgetDef.id === widgetContainer.activeTabId)
582
+ if (widgetDef.id === widgetContainer.activeTabId && !collapsedPanel)
578
583
  return WidgetState.Open;
579
584
  else
580
585
  return WidgetState.Closed;
@@ -1 +1 @@
1
- {"version":3,"file":"FrontstageDef.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\n// cSpell:ignore popout\r\n\r\nimport * as React from \"react\";\r\nimport { IModelApp, ScreenViewport } from \"@itwin/core-frontend\";\r\nimport { PointProps, StagePanelLocation, StageUsage, UiError, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { RectangleProps, SizeProps } from \"@itwin/core-react\";\r\nimport {\r\n dockWidgetContainer, findTab, findWidget, floatWidget, isFloatingLocation, isPanelLocation, isPopoutLocation, isPopoutWidgetLocation,\r\n NineZoneManagerProps, NineZoneState, PanelSide, panelSides, popoutWidgetToChildWindow, setFloatingWidgetContainerBounds,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ContentControl } from \"../content/ContentControl\";\r\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { ContentLayoutDef } from \"../content/ContentLayout\";\r\nimport { ContentLayoutManager } from \"../content/ContentLayoutManager\";\r\nimport { ContentViewManager } from \"../content/ContentViewManager\";\r\nimport { ToolItemDef } from \"../shared/ToolItemDef\";\r\nimport { StagePanelDef, StagePanelState, toPanelSide } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { WidgetControl } from \"../widgets/WidgetControl\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { ZoneLocation } from \"../zones/Zone\";\r\nimport { ZoneDef } from \"../zones/ZoneDef\";\r\nimport { Frontstage, FrontstageProps } from \"./Frontstage\";\r\nimport { FrontstageManager } from \"./FrontstageManager\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ChildWindowLocationProps } from \"../childwindow/ChildWindowManager\";\r\nimport { PopoutWidget } from \"../childwindow/PopoutWidget\";\r\nimport { setImmediate } from \"timers\";\r\nimport { saveFrontstagePopoutWidgetSizeAndPosition } from \"../widget-panels/Frontstage\";\r\nimport { BentleyStatus } from \"@itwin/core-bentley\";\r\nimport { ContentDialogManager } from \"../dialog/ContentDialogManager\";\r\n\r\n/** @internal */\r\nexport interface FrontstageEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** @internal */\r\nexport interface FrontstageNineZoneStateChangedEventArgs extends FrontstageEventArgs {\r\n state: NineZoneState | undefined;\r\n}\r\n\r\n/** FrontstageDef class provides an API for a Frontstage.\r\n * @public\r\n */\r\nexport class FrontstageDef {\r\n private _id: string = \"\";\r\n private _initialProps?: FrontstageProps;\r\n private _defaultTool?: ToolItemDef;\r\n private _defaultContentId: string = \"\";\r\n private _isInFooterMode: boolean = true;\r\n private _isStageClosing = false;\r\n private _isReady = false;\r\n private _isApplicationClosing = false;\r\n private _applicationData?: any;\r\n private _usage?: string;\r\n private _version: number = 0;\r\n private _topLeft?: ZoneDef;\r\n private _topCenter?: ZoneDef;\r\n private _topRight?: ZoneDef;\r\n private _centerLeft?: ZoneDef;\r\n private _centerRight?: ZoneDef;\r\n private _bottomLeft?: ZoneDef;\r\n private _bottomCenter?: ZoneDef;\r\n private _bottomRight?: ZoneDef;\r\n private _topPanel?: StagePanelDef;\r\n private _topMostPanel?: StagePanelDef;\r\n private _leftPanel?: StagePanelDef;\r\n private _rightPanel?: StagePanelDef;\r\n private _bottomPanel?: StagePanelDef;\r\n private _bottomMostPanel?: StagePanelDef;\r\n private _contentLayoutDef?: ContentLayoutDef;\r\n private _contentGroup?: ContentGroup;\r\n private _frontstageProvider?: FrontstageProvider;\r\n private _nineZone?: NineZoneManagerProps;\r\n private _timeTracker: TimeTracker = new TimeTracker();\r\n private _nineZoneState?: NineZoneState;\r\n private _contentGroupProvider?: ContentGroupProvider;\r\n private _floatingContentControls?: ContentControl[];\r\n\r\n public get id(): string { return this._id; }\r\n public get defaultTool(): ToolItemDef | undefined { return this._defaultTool; }\r\n public get defaultContentId(): string { return this._defaultContentId; }\r\n public get isInFooterMode(): boolean { return this._isInFooterMode; }\r\n public get applicationData(): any | undefined { return this._applicationData; }\r\n public get usage(): string { return this._usage !== undefined ? this._usage : StageUsage.General; }\r\n public get version(): number { return this._version; }\r\n public get contentGroupProvider(): ContentGroupProvider | undefined { return this._contentGroupProvider; }\r\n public get floatingContentControls() { return this._floatingContentControls; }\r\n\r\n public get topLeft(): ZoneDef | undefined { return this._topLeft; }\r\n public get topCenter(): ZoneDef | undefined { return this._topCenter; }\r\n public get topRight(): ZoneDef | undefined { return this._topRight; }\r\n public get centerLeft(): ZoneDef | undefined { return this._centerLeft; }\r\n public get centerRight(): ZoneDef | undefined { return this._centerRight; }\r\n public get bottomLeft(): ZoneDef | undefined { return this._bottomLeft; }\r\n public get bottomCenter(): ZoneDef | undefined { return this._bottomCenter; }\r\n public get bottomRight(): ZoneDef | undefined { return this._bottomRight; }\r\n\r\n /** @beta */\r\n public get topPanel(): StagePanelDef | undefined { return this._topPanel; }\r\n /** @beta\r\n * @deprecated Only topPanel is supported in UI 2.0 */\r\n public get topMostPanel(): StagePanelDef | undefined { return this._topMostPanel; }\r\n /** @beta */\r\n public get leftPanel(): StagePanelDef | undefined { return this._leftPanel; }\r\n /** @beta */\r\n public get rightPanel(): StagePanelDef | undefined { return this._rightPanel; }\r\n /** @beta */\r\n public get bottomPanel(): StagePanelDef | undefined { return this._bottomPanel; }\r\n /** @beta\r\n * @deprecated Only bottomPanel is supported in UI 2.0 */\r\n public get bottomMostPanel(): StagePanelDef | undefined { return this._bottomMostPanel; }\r\n\r\n public get contentLayoutDef(): ContentLayoutDef | undefined { return this._contentLayoutDef; }\r\n public get contentGroup(): ContentGroup | undefined { return this._contentGroup; }\r\n public get frontstageProvider(): FrontstageProvider | undefined { return this._frontstageProvider; }\r\n\r\n /** @internal */\r\n public get nineZone(): NineZoneManagerProps | undefined { return this._nineZone; } // istanbul ignore next\r\n public set nineZone(props: NineZoneManagerProps | undefined) { this._nineZone = props; }\r\n\r\n private toStagePanelLocation(side: PanelSide): StagePanelLocation {\r\n switch (side) {\r\n case \"bottom\":\r\n return StagePanelLocation.Bottom;\r\n case \"left\":\r\n return StagePanelLocation.Left;\r\n case \"right\":\r\n return StagePanelLocation.Right;\r\n case \"top\":\r\n return StagePanelLocation.Top;\r\n }\r\n }\r\n\r\n private populateStateMaps(nineZone: NineZoneState, panelMap: Map<StagePanelDef, StagePanelState>, widgetMap: Map<WidgetDef, WidgetState>) {\r\n for (const panelSide of panelSides) {\r\n const panel = nineZone.panels[panelSide];\r\n const location = this.toStagePanelLocation(panelSide);\r\n const panelDef = this.getStagePanelDef(location);\r\n if (panelDef) {\r\n const panelState = panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open;\r\n panelMap.set(panelDef, panelState);\r\n }\r\n for (const widgetId of panel.widgets) {\r\n const widget = nineZone.widgets[widgetId];\r\n // istanbul ignore else\r\n if (widget) {\r\n for (const tabId of widget.tabs) {\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (widgetDef) {\r\n let widgetState = WidgetState.Open;\r\n if (widget.minimized || tabId !== widget.activeTabId)\r\n widgetState = WidgetState.Closed;\r\n widgetMap.set(widgetDef, widgetState);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // istanbul ignore next\r\n for (const widgetId of nineZone.floatingWidgets.allIds) {\r\n const widget = nineZone.widgets[widgetId];\r\n if (widget) {\r\n for (const tabId of widget.tabs) {\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (widgetDef) {\r\n let widgetState = WidgetState.Open;\r\n if (widget.minimized || tabId !== widget.activeTabId)\r\n widgetState = WidgetState.Closed;\r\n widgetMap.set(widgetDef, widgetState);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private triggerStateChangeEventForWidgetsAndPanels(state: NineZoneState | undefined) {\r\n // istanbul ignore else\r\n if (!(this._isStageClosing || this._isApplicationClosing)) {\r\n if (state) {\r\n const originalPanelStateMap = new Map<StagePanelDef, StagePanelState>();\r\n const originalWidgetStateMap = new Map<WidgetDef, WidgetState>();\r\n const newPanelStateMap = new Map<StagePanelDef, StagePanelState>();\r\n const newWidgetStateMap = new Map<WidgetDef, WidgetState>();\r\n this._nineZoneState && this.populateStateMaps(this._nineZoneState, originalPanelStateMap, originalWidgetStateMap);\r\n this.populateStateMaps(state, newPanelStateMap, newWidgetStateMap);\r\n\r\n // set internal state value before triggering events\r\n this._nineZoneState = state;\r\n\r\n // now walk and trigger set state events\r\n newWidgetStateMap.forEach((stateValue, widgetDef) => {\r\n const originalState = originalWidgetStateMap.get(widgetDef);\r\n if (originalState !== stateValue) {\r\n FrontstageManager.onWidgetStateChangedEvent.emit({ widgetDef, widgetState: stateValue });\r\n widgetDef.onWidgetStateChanged();\r\n }\r\n });\r\n newPanelStateMap.forEach((stateValue, panelDef) => {\r\n const originalState = originalPanelStateMap.get(panelDef);\r\n if (originalState !== stateValue) {\r\n FrontstageManager.onPanelStateChangedEvent.emit({\r\n panelDef,\r\n panelState: stateValue,\r\n });\r\n }\r\n });\r\n } else {\r\n this._nineZoneState = state;\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get nineZoneState(): NineZoneState | undefined { return this._nineZoneState; }\r\n public set nineZoneState(state: NineZoneState | undefined) {\r\n if (this._nineZoneState === state)\r\n return;\r\n\r\n if (\"1\" === UiFramework.uiVersion || !this._nineZoneState) {\r\n this._nineZoneState = state;\r\n } else {\r\n this.triggerStateChangeEventForWidgetsAndPanels(state);\r\n }\r\n\r\n // istanbul ignore next - don't trigger any side effects until stage \"isReady\"\r\n if (!(this._isStageClosing || this._isApplicationClosing) || this.isReady) {\r\n FrontstageManager.onFrontstageNineZoneStateChangedEvent.emit({\r\n frontstageDef: this,\r\n state,\r\n });\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get timeTracker(): TimeTracker { return this._timeTracker; }\r\n\r\n /** Created a [[FrontstageDef]] and initialize it */\r\n public static async create(provider: FrontstageProvider) {\r\n const def = new FrontstageDef();\r\n def._frontstageProvider = provider;\r\n\r\n // istanbul ignore else\r\n if (provider.frontstage.props)\r\n await def.initializeFromProps(provider.frontstage.props);\r\n\r\n return def;\r\n }\r\n\r\n /** Handles when the Frontstage becomes activated */\r\n protected async _onActivated() { }\r\n\r\n /** Handles when the Frontstage becomes activated */\r\n public async onActivated() {\r\n this.updateWidgetDefs();\r\n\r\n if (this._contentGroupProvider && this._initialProps) {\r\n this._contentGroup = await this._contentGroupProvider.provideContentGroup(this._initialProps);\r\n }\r\n\r\n // istanbul ignore next\r\n if (!this._contentGroup)\r\n throw new UiError(UiFramework.loggerCategory(this), `onActivated: Content Group not defined`);\r\n\r\n this._contentLayoutDef = ContentLayoutManager.getLayoutForGroup(this._contentGroup);\r\n FrontstageManager.onContentLayoutActivatedEvent.emit({ contentLayout: this._contentLayoutDef, contentGroup: this._contentGroup });\r\n\r\n this._timeTracker.startTiming();\r\n await this._onActivated();\r\n }\r\n\r\n /** Handles when the Frontstage becomes inactive */\r\n protected async _onDeactivated() { }\r\n\r\n /** Handles when the Frontstage becomes inactive */\r\n public async onDeactivated() {\r\n for (const control of this._widgetControls) {\r\n control.onFrontstageDeactivated();\r\n }\r\n\r\n for (const control of this.contentControls) {\r\n control.onFrontstageDeactivated();\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.contentGroup)\r\n this.contentGroup.onFrontstageDeactivated();\r\n if (this.contentGroupProvider)\r\n await this.contentGroupProvider.onFrontstageDeactivated();\r\n\r\n this._timeTracker.stopTiming();\r\n\r\n this._isStageClosing = true; // this keeps widgets in child windows from automatically re-docking\r\n UiFramework.childWindowManager.closeAllChildWindows();\r\n\r\n if (this._floatingContentControls) {\r\n ContentDialogManager.closeAll();\r\n this._floatingContentControls = undefined;\r\n }\r\n\r\n await this._onDeactivated();\r\n this._isStageClosing = false;\r\n }\r\n\r\n /** @internal */\r\n public setIsApplicationClosing(value: boolean) {\r\n this._isApplicationClosing = value;\r\n }\r\n\r\n /** Returns once the contained widgets and content controls are ready to use */\r\n public async waitUntilReady(): Promise<void> {\r\n this._isReady = false;\r\n // create an array of control-ready promises\r\n const controlReadyPromises = new Array<Promise<void>>();\r\n this._widgetControls.forEach((control: WidgetControl) => {\r\n controlReadyPromises.push(control.isReady);\r\n });\r\n\r\n // istanbul ignore else\r\n if (this.contentLayoutDef) {\r\n const usedContentIndexes = this.contentLayoutDef.getUsedContentIndexes();\r\n this.contentControls.forEach((control: ContentControl, index: number) => {\r\n // istanbul ignore else\r\n if (usedContentIndexes.includes(index))\r\n controlReadyPromises.push(control.isReady);\r\n });\r\n }\r\n\r\n await Promise.all(controlReadyPromises);\r\n // Frontstage ready\r\n this._isReady = true;\r\n }\r\n\r\n /** Handles when the Frontstage becomes active */\r\n protected _onFrontstageReady(): void { }\r\n\r\n /** Handles when the Frontstage becomes active */\r\n public onFrontstageReady(): void {\r\n for (const control of this._widgetControls) {\r\n control.onFrontstageReady();\r\n }\r\n\r\n for (const control of this.contentControls) {\r\n control.onFrontstageReady();\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.contentGroup)\r\n this.contentGroup.onFrontstageReady();\r\n\r\n this._onFrontstageReady();\r\n }\r\n\r\n /** Starts the default tool for the Frontstage */\r\n public startDefaultTool(): void {\r\n // Start the default tool\r\n // istanbul ignore next\r\n if (this.defaultTool && IModelApp.toolAdmin && IModelApp.viewManager) {\r\n IModelApp.toolAdmin.defaultToolId = this.defaultTool.toolId;\r\n this.defaultTool.execute();\r\n }\r\n }\r\n\r\n /** Sets the Content Layout and Content Group */\r\n public setContentLayoutAndGroup(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): void {\r\n this._contentLayoutDef = contentLayoutDef;\r\n this._contentGroup = contentGroup;\r\n }\r\n\r\n /** Sets the active view content control to the default or first */\r\n public async setActiveContent(): Promise<boolean> {\r\n let contentControl: ContentControl | undefined;\r\n let activated = false;\r\n\r\n if (this.contentGroup && this.defaultContentId) {\r\n contentControl = this.contentGroup.getContentControlById(this.defaultContentId);\r\n }\r\n\r\n // istanbul ignore else\r\n if (!contentControl && this.contentControls.length >= 0) {\r\n contentControl = this.contentControls[0];\r\n }\r\n\r\n if (contentControl) {\r\n ContentViewManager.setActiveContent(contentControl.reactNode, true);\r\n if (contentControl.viewport) {\r\n const status = await IModelApp.viewManager.setSelectedView(contentControl.viewport);\r\n activated = status === BentleyStatus.SUCCESS;\r\n }\r\n }\r\n\r\n return activated;\r\n }\r\n\r\n /** Sets the active view content control */\r\n public setActiveView(newContent: ContentControl, oldContent?: ContentControl): void {\r\n if (oldContent)\r\n oldContent.onDeactivated();\r\n newContent.onActivated();\r\n FrontstageManager.onContentControlActivatedEvent.emit({ activeContentControl: newContent, oldContentControl: oldContent });\r\n }\r\n\r\n /** Sets the active view content control based on the selected viewport. */\r\n public setActiveViewFromViewport(viewport: ScreenViewport): boolean {\r\n const contentControl = this.contentControls.find((control: ContentControl) => control.viewport === viewport);\r\n // istanbul ignore else\r\n if (contentControl) {\r\n ContentViewManager.setActiveContent(contentControl.reactNode, true);\r\n return true;\r\n }\r\n\r\n // istanbul ignore next\r\n return false;\r\n }\r\n\r\n /** Gets a [[ZoneDef]] based on a given zone id */\r\n public getZoneDef(zoneId: number): ZoneDef | undefined {\r\n let zoneDef;\r\n\r\n switch (zoneId) {\r\n case 1:\r\n zoneDef = this.topLeft;\r\n break;\r\n case 2:\r\n zoneDef = this.topCenter;\r\n break;\r\n case 3:\r\n zoneDef = this.topRight;\r\n break;\r\n case 4:\r\n zoneDef = this.centerLeft;\r\n break;\r\n case 6:\r\n zoneDef = this.centerRight;\r\n break;\r\n case 7:\r\n zoneDef = this.bottomLeft;\r\n break;\r\n case 8:\r\n zoneDef = this.bottomCenter;\r\n break;\r\n case 9:\r\n zoneDef = this.bottomRight;\r\n break;\r\n // istanbul ignore next\r\n default:\r\n throw new RangeError();\r\n }\r\n\r\n // Zones can be undefined in a Frontstage\r\n\r\n return zoneDef;\r\n }\r\n\r\n /** Gets a list of [[ZoneDef]]s */\r\n public get zoneDefs(): ZoneDef[] {\r\n const zones = [1, 2, 3, 4, 6, 7, 8, 9];\r\n const zoneDefs: ZoneDef[] = [];\r\n\r\n zones.forEach((zoneId) => {\r\n const zoneDef = this.getZoneDef(zoneId);\r\n if (zoneDef)\r\n zoneDefs.push(zoneDef);\r\n });\r\n\r\n return zoneDefs;\r\n }\r\n\r\n /** Gets a [[StagePanelDef]] based on a given panel location\r\n * @beta\r\n */\r\n public getStagePanelDef(location: StagePanelLocation): StagePanelDef | undefined {\r\n let panelDef: StagePanelDef | undefined;\r\n\r\n switch (location) {\r\n case StagePanelLocation.Top:\r\n panelDef = this.topPanel;\r\n break;\r\n case StagePanelLocation.TopMost:\r\n panelDef = this.topMostPanel; // eslint-disable-line deprecation/deprecation\r\n break;\r\n case StagePanelLocation.Left:\r\n panelDef = this.leftPanel;\r\n break;\r\n case StagePanelLocation.Right:\r\n panelDef = this.rightPanel;\r\n break;\r\n case StagePanelLocation.Bottom:\r\n panelDef = this.bottomPanel;\r\n break;\r\n case StagePanelLocation.BottomMost:\r\n panelDef = this.bottomMostPanel; // eslint-disable-line deprecation/deprecation\r\n break;\r\n // istanbul ignore next\r\n default:\r\n throw new RangeError();\r\n }\r\n\r\n // Panels can be undefined in a Frontstage\r\n\r\n return panelDef;\r\n }\r\n\r\n /** Gets a list of [[StagePanelDef]]s\r\n * @beta\r\n */\r\n public get panelDefs(): StagePanelDef[] {\r\n const panels = [\r\n StagePanelLocation.Left, StagePanelLocation.Right,\r\n StagePanelLocation.Top, StagePanelLocation.TopMost,\r\n StagePanelLocation.Bottom, StagePanelLocation.BottomMost,\r\n ];\r\n const panelDefs: StagePanelDef[] = [];\r\n\r\n panels.forEach((location: StagePanelLocation) => {\r\n const panelDef = this.getStagePanelDef(location);\r\n if (panelDef)\r\n panelDefs.push(panelDef);\r\n });\r\n\r\n return panelDefs;\r\n }\r\n\r\n /** Finds a [[WidgetDef]] based on a given id */\r\n public findWidgetDef(id: string): WidgetDef | undefined {\r\n for (const zoneDef of this.zoneDefs) {\r\n const widgetDef = zoneDef.findWidgetDef(id);\r\n if (widgetDef)\r\n return widgetDef;\r\n }\r\n\r\n for (const panelDef of this.panelDefs) {\r\n const widgetDef = panelDef.findWidgetDef(id);\r\n if (widgetDef)\r\n return widgetDef;\r\n }\r\n\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n /** Gets the list of [[WidgetControl]]s */\r\n private get _widgetControls(): WidgetControl[] {\r\n const widgetControls = new Array<WidgetControl>();\r\n\r\n this.zoneDefs.forEach((zoneDef: ZoneDef) => {\r\n zoneDef.widgetDefs.forEach((widgetDef: WidgetDef) => {\r\n const widgetControl = widgetDef.widgetControl;\r\n if (widgetControl)\r\n widgetControls.push(widgetControl);\r\n });\r\n });\r\n\r\n this.panelDefs.forEach((panelDef: StagePanelDef) => {\r\n panelDef.widgetDefs.forEach((widgetDef: WidgetDef) => {\r\n const widgetControl = widgetDef.widgetControl;\r\n // istanbul ignore if\r\n if (widgetControl)\r\n widgetControls.push(widgetControl);\r\n });\r\n });\r\n\r\n return widgetControls;\r\n }\r\n\r\n public addFloatingContentControl(contentControl?: ContentControl) {\r\n // istanbul ignore next\r\n if (!contentControl)\r\n return;\r\n if (!this._floatingContentControls)\r\n this._floatingContentControls = new Array<ContentControl>();\r\n\r\n this._floatingContentControls.push(contentControl);\r\n ContentViewManager.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });\r\n }\r\n\r\n public dropFloatingContentControl(contentControl?: ContentControl) {\r\n // istanbul ignore next\r\n if (!contentControl || !this._floatingContentControls)\r\n return;\r\n\r\n const index = this._floatingContentControls.indexOf(contentControl);\r\n // istanbul ignore else\r\n if (index > -1) {\r\n this._floatingContentControls.splice(index, 1);\r\n ContentViewManager.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });\r\n }\r\n }\r\n\r\n /** Gets the list of [[ContentControl]]s */\r\n public get contentControls(): ContentControl[] {\r\n const contentControls = new Array<ContentControl>();\r\n // istanbul ignore else\r\n if (this.contentGroup) {\r\n contentControls.push(...this.contentGroup.getContentControls());\r\n }\r\n if (this._floatingContentControls) {\r\n contentControls.push(...this._floatingContentControls);\r\n }\r\n return contentControls;\r\n }\r\n\r\n /** Initializes a FrontstageDef from FrontstageProps\r\n * @internal\r\n */\r\n public async initializeFromProps(props: FrontstageProps): Promise<void> {\r\n this._id = props.id;\r\n this._initialProps = props;\r\n this._defaultTool = props.defaultTool;\r\n\r\n if (props.defaultContentId !== undefined)\r\n this._defaultContentId = props.defaultContentId;\r\n\r\n if (props.contentGroup instanceof ContentGroupProvider) {\r\n this._contentGroupProvider = props.contentGroup;\r\n } else {\r\n this._contentGroup = props.contentGroup;\r\n }\r\n\r\n if (props.isInFooterMode !== undefined)\r\n this._isInFooterMode = props.isInFooterMode;\r\n if (props.applicationData !== undefined)\r\n this._applicationData = props.applicationData;\r\n\r\n this._usage = props.usage;\r\n this._version = props.version || 0;\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._topLeft = Frontstage.createZoneDef(props.contentManipulationTools ? props.contentManipulationTools : props.topLeft, ZoneLocation.TopLeft, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._topCenter = Frontstage.createZoneDef(props.toolSettings ? props.toolSettings : props.topCenter, ZoneLocation.TopCenter, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._topRight = Frontstage.createZoneDef(props.viewNavigationTools ? /* istanbul ignore next */ props.viewNavigationTools : props.topRight, ZoneLocation.TopRight, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._centerLeft = Frontstage.createZoneDef(props.centerLeft, ZoneLocation.CenterLeft, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._centerRight = Frontstage.createZoneDef(props.centerRight, ZoneLocation.CenterRight, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._bottomLeft = Frontstage.createZoneDef(props.bottomLeft, ZoneLocation.BottomLeft, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._bottomCenter = Frontstage.createZoneDef(props.statusBar ? props.statusBar : props.bottomCenter, ZoneLocation.BottomCenter, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._bottomRight = Frontstage.createZoneDef(props.bottomRight, ZoneLocation.BottomRight, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n\r\n this._topPanel = Frontstage.createStagePanelDef(StagePanelLocation.Top, props);\r\n this._topMostPanel = Frontstage.createStagePanelDef(StagePanelLocation.TopMost, props);\r\n this._leftPanel = Frontstage.createStagePanelDef(StagePanelLocation.Left, props);\r\n this._rightPanel = Frontstage.createStagePanelDef(StagePanelLocation.Right, props);\r\n this._bottomPanel = Frontstage.createStagePanelDef(StagePanelLocation.Bottom, props);\r\n this._bottomMostPanel = Frontstage.createStagePanelDef(StagePanelLocation.BottomMost, props);\r\n }\r\n\r\n /** @internal */\r\n public updateWidgetDefs(): void {\r\n // Tracks provided widgets to prevent duplicates.\r\n const widgetDefs: WidgetDef[] = [];\r\n\r\n // Process panels before zones so in uiVersion=\"2\" extension can explicitly target a widget for a StagePanelSection\r\n this.panelDefs.forEach((panelDef: StagePanelDef) => {\r\n panelDef.updateDynamicWidgetDefs(this.id, this.usage, panelDef.location, undefined, widgetDefs, this.applicationData);\r\n });\r\n\r\n this.zoneDefs.forEach((zoneDef: ZoneDef) => {\r\n zoneDef.updateDynamicWidgetDefs(this.id, this.usage, zoneDef.zoneLocation, undefined, widgetDefs, this.applicationData);\r\n });\r\n }\r\n\r\n /** @beta */\r\n public restoreLayout() {\r\n for (const zoneDef of this.zoneDefs) {\r\n for (const widgetDef of zoneDef.widgetDefs) {\r\n widgetDef.setWidgetState(widgetDef.defaultState);\r\n }\r\n }\r\n for (const panelDef of this.panelDefs) {\r\n panelDef.size = panelDef.defaultSize;\r\n panelDef.panelState = panelDef.defaultState;\r\n for (const widgetDef of panelDef.widgetDefs) {\r\n widgetDef.setWidgetState(widgetDef.defaultState);\r\n }\r\n }\r\n FrontstageManager.onFrontstageRestoreLayoutEvent.emit({ frontstageDef: this });\r\n }\r\n\r\n /** Used only in UI 2.0 to determine WidgetState from NinezoneState\r\n * @internal\r\n */\r\n public getWidgetCurrentState(widgetDef: WidgetDef): WidgetState | undefined {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = findTab(this.nineZoneState, widgetDef.id);\r\n // istanbul ignore next\r\n if (!location)\r\n return WidgetState.Hidden;\r\n\r\n if (isFloatingLocation(location))\r\n return WidgetState.Floating;\r\n\r\n const widgetContainer = this.nineZoneState.widgets[location.widgetId];\r\n if (widgetDef.id === widgetContainer.activeTabId)\r\n return WidgetState.Open;\r\n else\r\n return WidgetState.Closed;\r\n }\r\n return widgetDef.defaultState;\r\n }\r\n\r\n /** Used only in UI 2.0 to determine StagePanelState and size from NinezoneState\r\n * @internal\r\n */\r\n public getPanelCurrentState(panelDef: StagePanelDef): [StagePanelState, number] {\r\n // istanbul ignore next\r\n if (this.nineZoneState) {\r\n const side = toPanelSide(panelDef.location);\r\n const panel = this.nineZoneState.panels[side];\r\n if (panel)\r\n return [panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open, panel.size ?? 0];\r\n return [StagePanelState.Off, 0];\r\n }\r\n return [panelDef.defaultState, panelDef.defaultSize ?? 0];\r\n }\r\n\r\n public isPopoutWidget(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = findTab(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location)\r\n return isPopoutLocation(location);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isFloatingWidget(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = findTab(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location)\r\n return isFloatingLocation(location);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Create a new floating panel that contains the widget specified by its Id. Supported only when in\r\n * UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id\r\n * @param point Position of top left corner of floating panel in pixels. If undefined {x:50, y:100} is used.\r\n * @param size defines the width and height of the floating panel. If undefined and widget has been floated before\r\n * the previous size is used, else {height:400, width:400} is used.\r\n * @beta\r\n */\r\n public floatWidget(widgetId: string, point?: PointProps, size?: SizeProps) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = findTab(this.nineZoneState, widgetId);\r\n if (location) {\r\n let popoutWidgetContainerId: string | undefined;\r\n if (isPopoutLocation(location)) {\r\n popoutWidgetContainerId = location.popoutWidgetId;\r\n }\r\n const state = floatWidget(this.nineZoneState, widgetId, point, size);\r\n // istanbul ignore else\r\n if (state) {\r\n this.nineZoneState = state;\r\n setTimeout(() => {\r\n popoutWidgetContainerId && UiFramework.childWindowManager.closeChildWindow(popoutWidgetContainerId, true);\r\n }, 600);\r\n }\r\n }\r\n }\r\n }\r\n /** Check widget and panel state to determine whether the widget is currently displayed\r\n * @param widgetId case-sensitive Widget Id\r\n * @public\r\n */\r\n public isWidgetDisplayed(widgetId: string) {\r\n let widgetIsVisible = false;\r\n\r\n if (this.nineZoneState) {\r\n const tabLocation = findTab (this.nineZoneState, widgetId);\r\n if (tabLocation) {\r\n if (isFloatingLocation(tabLocation) || isPopoutLocation(tabLocation)) {\r\n widgetIsVisible = true;\r\n } else {\r\n if (isPanelLocation(tabLocation)) {\r\n const panel = this.nineZoneState.panels[tabLocation.side];\r\n const widgetDef = this.findWidgetDef(widgetId);\r\n if (widgetDef && widgetDef.state === WidgetState.Open && !panel.collapsed)\r\n widgetIsVisible = true;\r\n }\r\n }\r\n }\r\n }\r\n return widgetIsVisible;\r\n }\r\n\r\n /** Opens window for specified PopoutWidget container. Used to reopen popout when running in Electron.\r\n * @internal */\r\n public openPopoutWidgetContainer(state: NineZoneState, widgetContainerId: string) {\r\n const location = findWidget(state, widgetContainerId);\r\n // istanbul ignore else\r\n if (location && isPopoutWidgetLocation(location) && 1 === state.widgets[widgetContainerId].tabs.length) {\r\n // NOTE: Popout Widget Container will only contain a single WidgetTab\r\n const widgetDef = this.findWidgetDef(state.widgets[widgetContainerId].tabs[0]);\r\n // istanbul ignore else\r\n if (widgetDef) {\r\n const tab = state.tabs[widgetDef.id];\r\n const popoutContent = (<PopoutWidget widgetContainerId={widgetContainerId} widgetDef={widgetDef} />);\r\n const position: ChildWindowLocationProps = {\r\n width: tab.preferredPopoutWidgetSize?.width ?? 600,\r\n height: tab.preferredPopoutWidgetSize?.height ?? 800,\r\n left: tab.preferredPopoutWidgetSize?.x ?? 0,\r\n top: tab.preferredPopoutWidgetSize?.y ?? 0,\r\n };\r\n UiFramework.childWindowManager.openChildWindow(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework.useDefaultPopoutUrl);\r\n }\r\n }\r\n }\r\n\r\n /** Create a new popout/child window that contains the widget specified by its Id. Supported only when in\r\n * UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id\r\n * @param point Position of top left corner of floating panel in pixels. If undefined {x:0, y:0} is used.\r\n * @param size defines the width and height of the floating panel. If undefined and widget has been floated before\r\n * the previous size is used, else {height:800, width:600} is used.\r\n * @beta\r\n */\r\n public popoutWidget(widgetId: string, point?: PointProps, size?: SizeProps) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n let location = findTab(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location) {\r\n if (isPopoutLocation(location))\r\n return;\r\n\r\n // get the state to apply that will pop-out the specified WidgetTab to child window.\r\n const state = popoutWidgetToChildWindow(this.nineZoneState, widgetId, point, size);\r\n // istanbul ignore else\r\n if (state) {\r\n // now that the state is updated get the id of the container that houses the widgetTab/widgetId\r\n location = findTab(state, widgetId);\r\n // istanbul ignore else\r\n if (location && isPopoutLocation(location)) {\r\n const widgetDef = this.findWidgetDef(widgetId);\r\n // istanbul ignore else\r\n if (widgetDef) {\r\n const widgetContainerId = location.widgetId;\r\n const tab = state.tabs[widgetId];\r\n this.nineZoneState = state;\r\n setImmediate(() => {\r\n const popoutContent = (<PopoutWidget widgetContainerId={widgetContainerId} widgetDef={widgetDef} />);\r\n const position: ChildWindowLocationProps = {\r\n width: tab.preferredPopoutWidgetSize!.width, // preferredPopoutWidgetSize set in popoutWidgetToChildWindow method above\r\n height: tab.preferredPopoutWidgetSize!.height,\r\n left: tab.preferredPopoutWidgetSize!.x,\r\n top: tab.preferredPopoutWidgetSize!.y,\r\n };\r\n UiFramework.childWindowManager.openChildWindow(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework.useDefaultPopoutUrl);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public get isStageClosing() {\r\n return this._isStageClosing;\r\n }\r\n\r\n public get isApplicationClosing() {\r\n return this._isApplicationClosing;\r\n }\r\n\r\n public get isReady() {\r\n return this._isReady;\r\n }\r\n\r\n /** @internal */\r\n public async saveChildWindowSizeAndPosition(childWindowId: string, childWindow: Window) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const newState = await saveFrontstagePopoutWidgetSizeAndPosition(this.nineZoneState, this.id, this.version, childWindowId, childWindow);\r\n this._nineZoneState = newState; // set without triggering new render as only preferred floating position set\r\n }\r\n }\r\n\r\n /** @internal */\r\n public setFloatingWidgetBoundsInternal(floatingWidgetId: string, bounds: RectangleProps, inhibitNineZoneStateChangedEvent = false) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const newState = setFloatingWidgetContainerBounds(this.nineZoneState, floatingWidgetId, bounds);\r\n if (inhibitNineZoneStateChangedEvent)\r\n this._nineZoneState = newState; // set without triggering new render\r\n else\r\n this.nineZoneState = newState;\r\n }\r\n }\r\n\r\n /** Method used to possibly change a Popout Widget back to a docked widget if the user was the one closing the popout's child\r\n * window (i.e. UiFramework.childWindowManager.isClosingChildWindow === false).\r\n * @internal\r\n */\r\n public dockPopoutWidgetContainer(widgetContainerId: string) {\r\n if (this.nineZoneState) {\r\n const location = findWidget(this.nineZoneState, widgetContainerId);\r\n // Make sure the widgetContainerId is still in popout state. We don't want to set it to docked if the window is being closed because\r\n // an API call has moved the widget from a popout state to a floating state.\r\n // istanbul ignore else\r\n if (location && isPopoutWidgetLocation(location)) {\r\n const state = dockWidgetContainer(this.nineZoneState, widgetContainerId, true);\r\n state && (this.nineZoneState = state);\r\n }\r\n }\r\n }\r\n\r\n /** Finds the container with the specified widget and re-docks all widgets\r\n * back to the panel zone location that was used when the floating container\r\n * was generated. Supported only when in UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id.\r\n * @beta\r\n */\r\n public dockWidgetContainer(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = findTab(this.nineZoneState, widgetId);\r\n if (location) {\r\n const widgetContainerId = location.widgetId;\r\n const state = dockWidgetContainer(this.nineZoneState, widgetContainerId, true);\r\n state && (this.nineZoneState = state);\r\n if (isPopoutLocation(location)) {\r\n UiFramework.childWindowManager.closeChildWindow(location.widgetId, true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public setFloatingWidgetContainerBounds(floatingWidgetId: string, bounds: RectangleProps) {\r\n if (!this.nineZoneState || !(floatingWidgetId in this.nineZoneState.floatingWidgets.byId))\r\n return false;\r\n\r\n this.setFloatingWidgetBoundsInternal(floatingWidgetId, bounds);\r\n return true;\r\n }\r\n\r\n public getFloatingWidgetContainerIds(): string[] {\r\n if (!this.nineZoneState)\r\n return [];\r\n\r\n return [...this.nineZoneState.floatingWidgets.allIds];\r\n }\r\n\r\n public getFloatingWidgetContainerIdByWidgetId(widgetId: string): string | undefined {\r\n if (!this.nineZoneState)\r\n return undefined;\r\n\r\n const location = findTab(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location && isFloatingLocation(location)) {\r\n return location.floatingWidgetId;\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n public getFloatingWidgetContainerBounds(floatingWidgetId: string | undefined) {\r\n if (!floatingWidgetId)\r\n return undefined;\r\n\r\n // istanbul ignore else\r\n if (this.nineZoneState && (floatingWidgetId in this.nineZoneState.floatingWidgets.byId)) {\r\n const foundWidget = document.querySelector(`div.nz-widget-floatingWidget[data-widget-id='${floatingWidgetId}']`);\r\n // istanbul ignore next\r\n if (foundWidget) {\r\n const domRect = foundWidget.getBoundingClientRect();\r\n return { left: domRect.left, right: domRect.right, top: domRect.top, bottom: domRect.bottom };\r\n }\r\n return this.nineZoneState.floatingWidgets.byId[floatingWidgetId].bounds;\r\n }\r\n return undefined;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"FrontstageDef.js","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Frontstage\r\n */\r\n\r\n// cSpell:ignore popout\r\n\r\nimport * as React from \"react\";\r\nimport { IModelApp, ScreenViewport } from \"@itwin/core-frontend\";\r\nimport { PointProps, StagePanelLocation, StageUsage, UiError, WidgetState } from \"@itwin/appui-abstract\";\r\nimport { RectangleProps, SizeProps } from \"@itwin/core-react\";\r\nimport {\r\n dockWidgetContainer, findTab, findWidget, floatWidget, isFloatingLocation, isPanelLocation, isPopoutLocation, isPopoutWidgetLocation,\r\n NineZoneManagerProps, NineZoneState, PanelSide, panelSides, popoutWidgetToChildWindow, setFloatingWidgetContainerBounds,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { ContentControl } from \"../content/ContentControl\";\r\nimport { ContentGroup, ContentGroupProvider } from \"../content/ContentGroup\";\r\nimport { ContentLayoutDef } from \"../content/ContentLayout\";\r\nimport { ContentLayoutManager } from \"../content/ContentLayoutManager\";\r\nimport { ContentViewManager } from \"../content/ContentViewManager\";\r\nimport { ToolItemDef } from \"../shared/ToolItemDef\";\r\nimport { StagePanelDef, StagePanelState, toPanelSide } from \"../stagepanels/StagePanelDef\";\r\nimport { UiFramework } from \"../UiFramework\";\r\nimport { WidgetControl } from \"../widgets/WidgetControl\";\r\nimport { WidgetDef } from \"../widgets/WidgetDef\";\r\nimport { ZoneLocation } from \"../zones/Zone\";\r\nimport { ZoneDef } from \"../zones/ZoneDef\";\r\nimport { Frontstage, FrontstageProps } from \"./Frontstage\";\r\nimport { FrontstageManager } from \"./FrontstageManager\";\r\nimport { FrontstageProvider } from \"./FrontstageProvider\";\r\nimport { TimeTracker } from \"../configurableui/TimeTracker\";\r\nimport { ChildWindowLocationProps } from \"../childwindow/ChildWindowManager\";\r\nimport { PopoutWidget } from \"../childwindow/PopoutWidget\";\r\nimport { setImmediate } from \"timers\";\r\nimport { saveFrontstagePopoutWidgetSizeAndPosition } from \"../widget-panels/Frontstage\";\r\nimport { BentleyStatus } from \"@itwin/core-bentley\";\r\nimport { ContentDialogManager } from \"../dialog/ContentDialogManager\";\r\n\r\n/** @internal */\r\nexport interface FrontstageEventArgs {\r\n frontstageDef: FrontstageDef;\r\n}\r\n\r\n/** @internal */\r\nexport interface FrontstageNineZoneStateChangedEventArgs extends FrontstageEventArgs {\r\n state: NineZoneState | undefined;\r\n}\r\n\r\n/** FrontstageDef class provides an API for a Frontstage.\r\n * @public\r\n */\r\nexport class FrontstageDef {\r\n private _id: string = \"\";\r\n private _initialProps?: FrontstageProps;\r\n private _defaultTool?: ToolItemDef;\r\n private _defaultContentId: string = \"\";\r\n private _isInFooterMode: boolean = true;\r\n private _isStageClosing = false;\r\n private _isReady = false;\r\n private _isApplicationClosing = false;\r\n private _applicationData?: any;\r\n private _usage?: string;\r\n private _version: number = 0;\r\n private _topLeft?: ZoneDef;\r\n private _topCenter?: ZoneDef;\r\n private _topRight?: ZoneDef;\r\n private _centerLeft?: ZoneDef;\r\n private _centerRight?: ZoneDef;\r\n private _bottomLeft?: ZoneDef;\r\n private _bottomCenter?: ZoneDef;\r\n private _bottomRight?: ZoneDef;\r\n private _topPanel?: StagePanelDef;\r\n private _topMostPanel?: StagePanelDef;\r\n private _leftPanel?: StagePanelDef;\r\n private _rightPanel?: StagePanelDef;\r\n private _bottomPanel?: StagePanelDef;\r\n private _bottomMostPanel?: StagePanelDef;\r\n private _contentLayoutDef?: ContentLayoutDef;\r\n private _contentGroup?: ContentGroup;\r\n private _frontstageProvider?: FrontstageProvider;\r\n private _nineZone?: NineZoneManagerProps;\r\n private _timeTracker: TimeTracker = new TimeTracker();\r\n private _nineZoneState?: NineZoneState;\r\n private _contentGroupProvider?: ContentGroupProvider;\r\n private _floatingContentControls?: ContentControl[];\r\n\r\n public get id(): string { return this._id; }\r\n public get defaultTool(): ToolItemDef | undefined { return this._defaultTool; }\r\n public get defaultContentId(): string { return this._defaultContentId; }\r\n public get isInFooterMode(): boolean { return this._isInFooterMode; }\r\n public get applicationData(): any | undefined { return this._applicationData; }\r\n public get usage(): string { return this._usage !== undefined ? this._usage : StageUsage.General; }\r\n public get version(): number { return this._version; }\r\n public get contentGroupProvider(): ContentGroupProvider | undefined { return this._contentGroupProvider; }\r\n public get floatingContentControls() { return this._floatingContentControls; }\r\n\r\n public get topLeft(): ZoneDef | undefined { return this._topLeft; }\r\n public get topCenter(): ZoneDef | undefined { return this._topCenter; }\r\n public get topRight(): ZoneDef | undefined { return this._topRight; }\r\n public get centerLeft(): ZoneDef | undefined { return this._centerLeft; }\r\n public get centerRight(): ZoneDef | undefined { return this._centerRight; }\r\n public get bottomLeft(): ZoneDef | undefined { return this._bottomLeft; }\r\n public get bottomCenter(): ZoneDef | undefined { return this._bottomCenter; }\r\n public get bottomRight(): ZoneDef | undefined { return this._bottomRight; }\r\n\r\n /** @beta */\r\n public get topPanel(): StagePanelDef | undefined { return this._topPanel; }\r\n /** @beta\r\n * @deprecated Only topPanel is supported in UI 2.0 */\r\n public get topMostPanel(): StagePanelDef | undefined { return this._topMostPanel; }\r\n /** @beta */\r\n public get leftPanel(): StagePanelDef | undefined { return this._leftPanel; }\r\n /** @beta */\r\n public get rightPanel(): StagePanelDef | undefined { return this._rightPanel; }\r\n /** @beta */\r\n public get bottomPanel(): StagePanelDef | undefined { return this._bottomPanel; }\r\n /** @beta\r\n * @deprecated Only bottomPanel is supported in UI 2.0 */\r\n public get bottomMostPanel(): StagePanelDef | undefined { return this._bottomMostPanel; }\r\n\r\n public get contentLayoutDef(): ContentLayoutDef | undefined { return this._contentLayoutDef; }\r\n public get contentGroup(): ContentGroup | undefined { return this._contentGroup; }\r\n public get frontstageProvider(): FrontstageProvider | undefined { return this._frontstageProvider; }\r\n\r\n /** @internal */\r\n public get nineZone(): NineZoneManagerProps | undefined { return this._nineZone; } // istanbul ignore next\r\n public set nineZone(props: NineZoneManagerProps | undefined) { this._nineZone = props; }\r\n\r\n private toStagePanelLocation(side: PanelSide): StagePanelLocation {\r\n switch (side) {\r\n case \"bottom\":\r\n return StagePanelLocation.Bottom;\r\n case \"left\":\r\n return StagePanelLocation.Left;\r\n case \"right\":\r\n return StagePanelLocation.Right;\r\n case \"top\":\r\n return StagePanelLocation.Top;\r\n }\r\n }\r\n\r\n private populateStateMaps(nineZone: NineZoneState, panelMap: Map<StagePanelDef, StagePanelState>, widgetMap: Map<WidgetDef, WidgetState>) {\r\n for (const panelSide of panelSides) {\r\n const panel = nineZone.panels[panelSide];\r\n const location = this.toStagePanelLocation(panelSide);\r\n const panelDef = this.getStagePanelDef(location);\r\n if (panelDef) {\r\n const panelState = panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open;\r\n panelMap.set(panelDef, panelState);\r\n }\r\n for (const widgetId of panel.widgets) {\r\n const widget = nineZone.widgets[widgetId];\r\n // istanbul ignore else\r\n if (widget) {\r\n for (const tabId of widget.tabs) {\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (widgetDef) {\r\n let widgetState = WidgetState.Open;\r\n if (widget.minimized || tabId !== widget.activeTabId)\r\n widgetState = WidgetState.Closed;\r\n widgetMap.set(widgetDef, widgetState);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // istanbul ignore next\r\n for (const widgetId of nineZone.floatingWidgets.allIds) {\r\n const widget = nineZone.widgets[widgetId];\r\n if (widget) {\r\n for (const tabId of widget.tabs) {\r\n const widgetDef = this.findWidgetDef(tabId);\r\n if (widgetDef) {\r\n let widgetState = WidgetState.Open;\r\n if (widget.minimized || tabId !== widget.activeTabId)\r\n widgetState = WidgetState.Closed;\r\n widgetMap.set(widgetDef, widgetState);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private triggerStateChangeEventForWidgetsAndPanels(state: NineZoneState | undefined) {\r\n // istanbul ignore else\r\n if (!(this._isStageClosing || this._isApplicationClosing)) {\r\n if (state) {\r\n const originalPanelStateMap = new Map<StagePanelDef, StagePanelState>();\r\n const originalWidgetStateMap = new Map<WidgetDef, WidgetState>();\r\n const newPanelStateMap = new Map<StagePanelDef, StagePanelState>();\r\n const newWidgetStateMap = new Map<WidgetDef, WidgetState>();\r\n this._nineZoneState && this.populateStateMaps(this._nineZoneState, originalPanelStateMap, originalWidgetStateMap);\r\n this.populateStateMaps(state, newPanelStateMap, newWidgetStateMap);\r\n\r\n // set internal state value before triggering events\r\n this._nineZoneState = state;\r\n\r\n // now walk and trigger set state events\r\n newWidgetStateMap.forEach((stateValue, widgetDef) => {\r\n const originalState = originalWidgetStateMap.get(widgetDef);\r\n if (originalState !== stateValue) {\r\n FrontstageManager.onWidgetStateChangedEvent.emit({ widgetDef, widgetState: stateValue });\r\n widgetDef.onWidgetStateChanged();\r\n }\r\n });\r\n newPanelStateMap.forEach((stateValue, panelDef) => {\r\n const originalState = originalPanelStateMap.get(panelDef);\r\n if (originalState !== stateValue) {\r\n FrontstageManager.onPanelStateChangedEvent.emit({\r\n panelDef,\r\n panelState: stateValue,\r\n });\r\n }\r\n });\r\n } else {\r\n this._nineZoneState = state;\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get nineZoneState(): NineZoneState | undefined { return this._nineZoneState; }\r\n public set nineZoneState(state: NineZoneState | undefined) {\r\n if (this._nineZoneState === state)\r\n return;\r\n\r\n if (\"1\" === UiFramework.uiVersion || !this._nineZoneState) {\r\n this._nineZoneState = state;\r\n } else {\r\n this.triggerStateChangeEventForWidgetsAndPanels(state);\r\n }\r\n\r\n // istanbul ignore next - don't trigger any side effects until stage \"isReady\"\r\n if (!(this._isStageClosing || this._isApplicationClosing) || this.isReady) {\r\n FrontstageManager.onFrontstageNineZoneStateChangedEvent.emit({\r\n frontstageDef: this,\r\n state,\r\n });\r\n }\r\n }\r\n\r\n /** @internal */\r\n public get timeTracker(): TimeTracker { return this._timeTracker; }\r\n\r\n /** Created a [[FrontstageDef]] and initialize it */\r\n public static async create(provider: FrontstageProvider) {\r\n const def = new FrontstageDef();\r\n def._frontstageProvider = provider;\r\n\r\n // istanbul ignore else\r\n if (provider.frontstage.props)\r\n await def.initializeFromProps(provider.frontstage.props);\r\n\r\n return def;\r\n }\r\n\r\n /** Handles when the Frontstage becomes activated */\r\n protected async _onActivated() { }\r\n\r\n /** Handles when the Frontstage becomes activated */\r\n public async onActivated() {\r\n this.updateWidgetDefs();\r\n\r\n if (this._contentGroupProvider && this._initialProps) {\r\n this._contentGroup = await this._contentGroupProvider.provideContentGroup(this._initialProps);\r\n }\r\n\r\n // istanbul ignore next\r\n if (!this._contentGroup)\r\n throw new UiError(UiFramework.loggerCategory(this), `onActivated: Content Group not defined`);\r\n\r\n this._contentLayoutDef = ContentLayoutManager.getLayoutForGroup(this._contentGroup);\r\n FrontstageManager.onContentLayoutActivatedEvent.emit({ contentLayout: this._contentLayoutDef, contentGroup: this._contentGroup });\r\n\r\n this._timeTracker.startTiming();\r\n await this._onActivated();\r\n }\r\n\r\n /** Handles when the Frontstage becomes inactive */\r\n protected async _onDeactivated() { }\r\n\r\n /** Handles when the Frontstage becomes inactive */\r\n public async onDeactivated() {\r\n for (const control of this._widgetControls) {\r\n control.onFrontstageDeactivated();\r\n }\r\n\r\n for (const control of this.contentControls) {\r\n control.onFrontstageDeactivated();\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.contentGroup)\r\n this.contentGroup.onFrontstageDeactivated();\r\n if (this.contentGroupProvider)\r\n await this.contentGroupProvider.onFrontstageDeactivated();\r\n\r\n this._timeTracker.stopTiming();\r\n\r\n this._isStageClosing = true; // this keeps widgets in child windows from automatically re-docking\r\n UiFramework.childWindowManager.closeAllChildWindows();\r\n\r\n if (this._floatingContentControls) {\r\n ContentDialogManager.closeAll();\r\n this._floatingContentControls = undefined;\r\n }\r\n\r\n await this._onDeactivated();\r\n this._isStageClosing = false;\r\n }\r\n\r\n /** @internal */\r\n public setIsApplicationClosing(value: boolean) {\r\n this._isApplicationClosing = value;\r\n }\r\n\r\n /** Returns once the contained widgets and content controls are ready to use */\r\n public async waitUntilReady(): Promise<void> {\r\n this._isReady = false;\r\n // create an array of control-ready promises\r\n const controlReadyPromises = new Array<Promise<void>>();\r\n this._widgetControls.forEach((control: WidgetControl) => {\r\n controlReadyPromises.push(control.isReady);\r\n });\r\n\r\n // istanbul ignore else\r\n if (this.contentLayoutDef) {\r\n const usedContentIndexes = this.contentLayoutDef.getUsedContentIndexes();\r\n this.contentControls.forEach((control: ContentControl, index: number) => {\r\n // istanbul ignore else\r\n if (usedContentIndexes.includes(index))\r\n controlReadyPromises.push(control.isReady);\r\n });\r\n }\r\n\r\n await Promise.all(controlReadyPromises);\r\n // Frontstage ready\r\n this._isReady = true;\r\n }\r\n\r\n /** Handles when the Frontstage becomes active */\r\n protected _onFrontstageReady(): void { }\r\n\r\n /** Handles when the Frontstage becomes active */\r\n public onFrontstageReady(): void {\r\n for (const control of this._widgetControls) {\r\n control.onFrontstageReady();\r\n }\r\n\r\n for (const control of this.contentControls) {\r\n control.onFrontstageReady();\r\n }\r\n\r\n // istanbul ignore else\r\n if (this.contentGroup)\r\n this.contentGroup.onFrontstageReady();\r\n\r\n this._onFrontstageReady();\r\n }\r\n\r\n /** Starts the default tool for the Frontstage */\r\n public startDefaultTool(): void {\r\n // Start the default tool\r\n // istanbul ignore next\r\n if (this.defaultTool && IModelApp.toolAdmin && IModelApp.viewManager) {\r\n IModelApp.toolAdmin.defaultToolId = this.defaultTool.toolId;\r\n this.defaultTool.execute();\r\n }\r\n }\r\n\r\n /** Sets the Content Layout and Content Group */\r\n public setContentLayoutAndGroup(contentLayoutDef: ContentLayoutDef, contentGroup: ContentGroup): void {\r\n this._contentLayoutDef = contentLayoutDef;\r\n this._contentGroup = contentGroup;\r\n }\r\n\r\n /** Sets the active view content control to the default or first */\r\n public async setActiveContent(): Promise<boolean> {\r\n let contentControl: ContentControl | undefined;\r\n let activated = false;\r\n\r\n if (this.contentGroup && this.defaultContentId) {\r\n contentControl = this.contentGroup.getContentControlById(this.defaultContentId);\r\n }\r\n\r\n // istanbul ignore else\r\n if (!contentControl && this.contentControls.length >= 0) {\r\n contentControl = this.contentControls[0];\r\n }\r\n\r\n if (contentControl) {\r\n ContentViewManager.setActiveContent(contentControl.reactNode, true);\r\n if (contentControl.viewport) {\r\n const status = await IModelApp.viewManager.setSelectedView(contentControl.viewport);\r\n activated = status === BentleyStatus.SUCCESS;\r\n }\r\n }\r\n\r\n return activated;\r\n }\r\n\r\n /** Sets the active view content control */\r\n public setActiveView(newContent: ContentControl, oldContent?: ContentControl): void {\r\n if (oldContent)\r\n oldContent.onDeactivated();\r\n newContent.onActivated();\r\n FrontstageManager.onContentControlActivatedEvent.emit({ activeContentControl: newContent, oldContentControl: oldContent });\r\n }\r\n\r\n /** Sets the active view content control based on the selected viewport. */\r\n public setActiveViewFromViewport(viewport: ScreenViewport): boolean {\r\n const contentControl = this.contentControls.find((control: ContentControl) => control.viewport === viewport);\r\n // istanbul ignore else\r\n if (contentControl) {\r\n ContentViewManager.setActiveContent(contentControl.reactNode, true);\r\n return true;\r\n }\r\n\r\n // istanbul ignore next\r\n return false;\r\n }\r\n\r\n /** Gets a [[ZoneDef]] based on a given zone id */\r\n public getZoneDef(zoneId: number): ZoneDef | undefined {\r\n let zoneDef;\r\n\r\n switch (zoneId) {\r\n case 1:\r\n zoneDef = this.topLeft;\r\n break;\r\n case 2:\r\n zoneDef = this.topCenter;\r\n break;\r\n case 3:\r\n zoneDef = this.topRight;\r\n break;\r\n case 4:\r\n zoneDef = this.centerLeft;\r\n break;\r\n case 6:\r\n zoneDef = this.centerRight;\r\n break;\r\n case 7:\r\n zoneDef = this.bottomLeft;\r\n break;\r\n case 8:\r\n zoneDef = this.bottomCenter;\r\n break;\r\n case 9:\r\n zoneDef = this.bottomRight;\r\n break;\r\n // istanbul ignore next\r\n default:\r\n throw new RangeError();\r\n }\r\n\r\n // Zones can be undefined in a Frontstage\r\n\r\n return zoneDef;\r\n }\r\n\r\n /** Gets a list of [[ZoneDef]]s */\r\n public get zoneDefs(): ZoneDef[] {\r\n const zones = [1, 2, 3, 4, 6, 7, 8, 9];\r\n const zoneDefs: ZoneDef[] = [];\r\n\r\n zones.forEach((zoneId) => {\r\n const zoneDef = this.getZoneDef(zoneId);\r\n if (zoneDef)\r\n zoneDefs.push(zoneDef);\r\n });\r\n\r\n return zoneDefs;\r\n }\r\n\r\n /** Gets a [[StagePanelDef]] based on a given panel location\r\n * @beta\r\n */\r\n public getStagePanelDef(location: StagePanelLocation): StagePanelDef | undefined {\r\n let panelDef: StagePanelDef | undefined;\r\n\r\n switch (location) {\r\n case StagePanelLocation.Top:\r\n panelDef = this.topPanel;\r\n break;\r\n case StagePanelLocation.TopMost:\r\n panelDef = this.topMostPanel; // eslint-disable-line deprecation/deprecation\r\n break;\r\n case StagePanelLocation.Left:\r\n panelDef = this.leftPanel;\r\n break;\r\n case StagePanelLocation.Right:\r\n panelDef = this.rightPanel;\r\n break;\r\n case StagePanelLocation.Bottom:\r\n panelDef = this.bottomPanel;\r\n break;\r\n case StagePanelLocation.BottomMost:\r\n panelDef = this.bottomMostPanel; // eslint-disable-line deprecation/deprecation\r\n break;\r\n // istanbul ignore next\r\n default:\r\n throw new RangeError();\r\n }\r\n\r\n // Panels can be undefined in a Frontstage\r\n\r\n return panelDef;\r\n }\r\n\r\n /** Gets a list of [[StagePanelDef]]s\r\n * @beta\r\n */\r\n public get panelDefs(): StagePanelDef[] {\r\n const panels = [\r\n StagePanelLocation.Left, StagePanelLocation.Right,\r\n StagePanelLocation.Top, StagePanelLocation.TopMost,\r\n StagePanelLocation.Bottom, StagePanelLocation.BottomMost,\r\n ];\r\n const panelDefs: StagePanelDef[] = [];\r\n\r\n panels.forEach((location: StagePanelLocation) => {\r\n const panelDef = this.getStagePanelDef(location);\r\n if (panelDef)\r\n panelDefs.push(panelDef);\r\n });\r\n\r\n return panelDefs;\r\n }\r\n\r\n /** Finds a [[WidgetDef]] based on a given id */\r\n public findWidgetDef(id: string): WidgetDef | undefined {\r\n for (const zoneDef of this.zoneDefs) {\r\n const widgetDef = zoneDef.findWidgetDef(id);\r\n if (widgetDef)\r\n return widgetDef;\r\n }\r\n\r\n for (const panelDef of this.panelDefs) {\r\n const widgetDef = panelDef.findWidgetDef(id);\r\n if (widgetDef)\r\n return widgetDef;\r\n }\r\n\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n /** Gets the list of [[WidgetControl]]s */\r\n private get _widgetControls(): WidgetControl[] {\r\n const widgetControls = new Array<WidgetControl>();\r\n\r\n this.zoneDefs.forEach((zoneDef: ZoneDef) => {\r\n zoneDef.widgetDefs.forEach((widgetDef: WidgetDef) => {\r\n const widgetControl = widgetDef.widgetControl;\r\n if (widgetControl)\r\n widgetControls.push(widgetControl);\r\n });\r\n });\r\n\r\n this.panelDefs.forEach((panelDef: StagePanelDef) => {\r\n panelDef.widgetDefs.forEach((widgetDef: WidgetDef) => {\r\n const widgetControl = widgetDef.widgetControl;\r\n // istanbul ignore if\r\n if (widgetControl)\r\n widgetControls.push(widgetControl);\r\n });\r\n });\r\n\r\n return widgetControls;\r\n }\r\n\r\n public addFloatingContentControl(contentControl?: ContentControl) {\r\n // istanbul ignore next\r\n if (!contentControl)\r\n return;\r\n if (!this._floatingContentControls)\r\n this._floatingContentControls = new Array<ContentControl>();\r\n\r\n this._floatingContentControls.push(contentControl);\r\n ContentViewManager.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });\r\n }\r\n\r\n public dropFloatingContentControl(contentControl?: ContentControl) {\r\n // istanbul ignore next\r\n if (!contentControl || !this._floatingContentControls)\r\n return;\r\n\r\n const index = this._floatingContentControls.indexOf(contentControl);\r\n // istanbul ignore else\r\n if (index > -1) {\r\n this._floatingContentControls.splice(index, 1);\r\n ContentViewManager.onAvailableContentChangedEvent.emit({ contentId: contentControl.uniqueId });\r\n }\r\n }\r\n\r\n /** Gets the list of [[ContentControl]]s */\r\n public get contentControls(): ContentControl[] {\r\n const contentControls = new Array<ContentControl>();\r\n // istanbul ignore else\r\n if (this.contentGroup) {\r\n contentControls.push(...this.contentGroup.getContentControls());\r\n }\r\n if (this._floatingContentControls) {\r\n contentControls.push(...this._floatingContentControls);\r\n }\r\n return contentControls;\r\n }\r\n\r\n /** Initializes a FrontstageDef from FrontstageProps\r\n * @internal\r\n */\r\n public async initializeFromProps(props: FrontstageProps): Promise<void> {\r\n this._id = props.id;\r\n this._initialProps = props;\r\n this._defaultTool = props.defaultTool;\r\n\r\n if (props.defaultContentId !== undefined)\r\n this._defaultContentId = props.defaultContentId;\r\n\r\n if (props.contentGroup instanceof ContentGroupProvider) {\r\n this._contentGroupProvider = props.contentGroup;\r\n } else {\r\n this._contentGroup = props.contentGroup;\r\n }\r\n\r\n if (props.isInFooterMode !== undefined)\r\n this._isInFooterMode = props.isInFooterMode;\r\n if (props.applicationData !== undefined)\r\n this._applicationData = props.applicationData;\r\n\r\n this._usage = props.usage;\r\n this._version = props.version || 0;\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._topLeft = Frontstage.createZoneDef(props.contentManipulationTools ? props.contentManipulationTools : props.topLeft, ZoneLocation.TopLeft, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._topCenter = Frontstage.createZoneDef(props.toolSettings ? props.toolSettings : props.topCenter, ZoneLocation.TopCenter, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._topRight = Frontstage.createZoneDef(props.viewNavigationTools ? /* istanbul ignore next */ props.viewNavigationTools : props.topRight, ZoneLocation.TopRight, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._centerLeft = Frontstage.createZoneDef(props.centerLeft, ZoneLocation.CenterLeft, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._centerRight = Frontstage.createZoneDef(props.centerRight, ZoneLocation.CenterRight, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._bottomLeft = Frontstage.createZoneDef(props.bottomLeft, ZoneLocation.BottomLeft, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._bottomCenter = Frontstage.createZoneDef(props.statusBar ? props.statusBar : props.bottomCenter, ZoneLocation.BottomCenter, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n this._bottomRight = Frontstage.createZoneDef(props.bottomRight, ZoneLocation.BottomRight, props);\r\n // eslint-disable-next-line deprecation/deprecation\r\n\r\n this._topPanel = Frontstage.createStagePanelDef(StagePanelLocation.Top, props);\r\n this._topMostPanel = Frontstage.createStagePanelDef(StagePanelLocation.TopMost, props);\r\n this._leftPanel = Frontstage.createStagePanelDef(StagePanelLocation.Left, props);\r\n this._rightPanel = Frontstage.createStagePanelDef(StagePanelLocation.Right, props);\r\n this._bottomPanel = Frontstage.createStagePanelDef(StagePanelLocation.Bottom, props);\r\n this._bottomMostPanel = Frontstage.createStagePanelDef(StagePanelLocation.BottomMost, props);\r\n }\r\n\r\n /** @internal */\r\n public updateWidgetDefs(): void {\r\n // Tracks provided widgets to prevent duplicates.\r\n const widgetDefs: WidgetDef[] = [];\r\n\r\n // Process panels before zones so in uiVersion=\"2\" extension can explicitly target a widget for a StagePanelSection\r\n this.panelDefs.forEach((panelDef: StagePanelDef) => {\r\n panelDef.updateDynamicWidgetDefs(this.id, this.usage, panelDef.location, undefined, widgetDefs, this.applicationData);\r\n });\r\n\r\n this.zoneDefs.forEach((zoneDef: ZoneDef) => {\r\n zoneDef.updateDynamicWidgetDefs(this.id, this.usage, zoneDef.zoneLocation, undefined, widgetDefs, this.applicationData);\r\n });\r\n }\r\n\r\n /** @beta */\r\n public restoreLayout() {\r\n for (const zoneDef of this.zoneDefs) {\r\n for (const widgetDef of zoneDef.widgetDefs) {\r\n widgetDef.setWidgetState(widgetDef.defaultState);\r\n }\r\n }\r\n for (const panelDef of this.panelDefs) {\r\n panelDef.size = panelDef.defaultSize;\r\n panelDef.panelState = panelDef.defaultState;\r\n for (const widgetDef of panelDef.widgetDefs) {\r\n widgetDef.setWidgetState(widgetDef.defaultState);\r\n }\r\n }\r\n FrontstageManager.onFrontstageRestoreLayoutEvent.emit({ frontstageDef: this });\r\n }\r\n\r\n /** Used only in UI 2.0 to determine WidgetState from NinezoneState\r\n * @internal\r\n */\r\n public getWidgetCurrentState(widgetDef: WidgetDef): WidgetState | undefined {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = findTab(this.nineZoneState, widgetDef.id);\r\n // istanbul ignore next\r\n if (!location)\r\n return WidgetState.Hidden;\r\n\r\n if (isFloatingLocation(location))\r\n return WidgetState.Floating;\r\n\r\n let collapsedPanel = false;\r\n if (\"side\" in location) {\r\n const panel = this.nineZoneState.panels[location.side];\r\n collapsedPanel = panel.collapsed || undefined === panel.size || 0 === panel.size;\r\n }\r\n const widgetContainer = this.nineZoneState.widgets[location.widgetId];\r\n if (widgetDef.id === widgetContainer.activeTabId && !collapsedPanel)\r\n return WidgetState.Open;\r\n else\r\n return WidgetState.Closed;\r\n }\r\n return widgetDef.defaultState;\r\n }\r\n\r\n /** Used only in UI 2.0 to determine StagePanelState and size from NinezoneState\r\n * @internal\r\n */\r\n public getPanelCurrentState(panelDef: StagePanelDef): [StagePanelState, number] {\r\n // istanbul ignore next\r\n if (this.nineZoneState) {\r\n const side = toPanelSide(panelDef.location);\r\n const panel = this.nineZoneState.panels[side];\r\n if (panel)\r\n return [panel.collapsed ? StagePanelState.Minimized : StagePanelState.Open, panel.size ?? 0];\r\n return [StagePanelState.Off, 0];\r\n }\r\n return [panelDef.defaultState, panelDef.defaultSize ?? 0];\r\n }\r\n\r\n public isPopoutWidget(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = findTab(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location)\r\n return isPopoutLocation(location);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public isFloatingWidget(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = findTab(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location)\r\n return isFloatingLocation(location);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** Create a new floating panel that contains the widget specified by its Id. Supported only when in\r\n * UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id\r\n * @param point Position of top left corner of floating panel in pixels. If undefined {x:50, y:100} is used.\r\n * @param size defines the width and height of the floating panel. If undefined and widget has been floated before\r\n * the previous size is used, else {height:400, width:400} is used.\r\n * @beta\r\n */\r\n public floatWidget(widgetId: string, point?: PointProps, size?: SizeProps) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = findTab(this.nineZoneState, widgetId);\r\n if (location) {\r\n let popoutWidgetContainerId: string | undefined;\r\n if (isPopoutLocation(location)) {\r\n popoutWidgetContainerId = location.popoutWidgetId;\r\n }\r\n const state = floatWidget(this.nineZoneState, widgetId, point, size);\r\n // istanbul ignore else\r\n if (state) {\r\n this.nineZoneState = state;\r\n setTimeout(() => {\r\n popoutWidgetContainerId && UiFramework.childWindowManager.closeChildWindow(popoutWidgetContainerId, true);\r\n }, 600);\r\n }\r\n }\r\n }\r\n }\r\n /** Check widget and panel state to determine whether the widget is currently displayed\r\n * @param widgetId case-sensitive Widget Id\r\n * @public\r\n */\r\n public isWidgetDisplayed(widgetId: string) {\r\n let widgetIsVisible = false;\r\n\r\n if (this.nineZoneState) {\r\n const tabLocation = findTab (this.nineZoneState, widgetId);\r\n if (tabLocation) {\r\n if (isFloatingLocation(tabLocation) || isPopoutLocation(tabLocation)) {\r\n widgetIsVisible = true;\r\n } else {\r\n if (isPanelLocation(tabLocation)) {\r\n const panel = this.nineZoneState.panels[tabLocation.side];\r\n const widgetDef = this.findWidgetDef(widgetId);\r\n if (widgetDef && widgetDef.state === WidgetState.Open && !panel.collapsed)\r\n widgetIsVisible = true;\r\n }\r\n }\r\n }\r\n }\r\n return widgetIsVisible;\r\n }\r\n\r\n /** Opens window for specified PopoutWidget container. Used to reopen popout when running in Electron.\r\n * @internal */\r\n public openPopoutWidgetContainer(state: NineZoneState, widgetContainerId: string) {\r\n const location = findWidget(state, widgetContainerId);\r\n // istanbul ignore else\r\n if (location && isPopoutWidgetLocation(location) && 1 === state.widgets[widgetContainerId].tabs.length) {\r\n // NOTE: Popout Widget Container will only contain a single WidgetTab\r\n const widgetDef = this.findWidgetDef(state.widgets[widgetContainerId].tabs[0]);\r\n // istanbul ignore else\r\n if (widgetDef) {\r\n const tab = state.tabs[widgetDef.id];\r\n const popoutContent = (<PopoutWidget widgetContainerId={widgetContainerId} widgetDef={widgetDef} />);\r\n const position: ChildWindowLocationProps = {\r\n width: tab.preferredPopoutWidgetSize?.width ?? 600,\r\n height: tab.preferredPopoutWidgetSize?.height ?? 800,\r\n left: tab.preferredPopoutWidgetSize?.x ?? 0,\r\n top: tab.preferredPopoutWidgetSize?.y ?? 0,\r\n };\r\n UiFramework.childWindowManager.openChildWindow(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework.useDefaultPopoutUrl);\r\n }\r\n }\r\n }\r\n\r\n /** Create a new popout/child window that contains the widget specified by its Id. Supported only when in\r\n * UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id\r\n * @param point Position of top left corner of floating panel in pixels. If undefined {x:0, y:0} is used.\r\n * @param size defines the width and height of the floating panel. If undefined and widget has been floated before\r\n * the previous size is used, else {height:800, width:600} is used.\r\n * @beta\r\n */\r\n public popoutWidget(widgetId: string, point?: PointProps, size?: SizeProps) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n let location = findTab(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location) {\r\n if (isPopoutLocation(location))\r\n return;\r\n\r\n // get the state to apply that will pop-out the specified WidgetTab to child window.\r\n const state = popoutWidgetToChildWindow(this.nineZoneState, widgetId, point, size);\r\n // istanbul ignore else\r\n if (state) {\r\n // now that the state is updated get the id of the container that houses the widgetTab/widgetId\r\n location = findTab(state, widgetId);\r\n // istanbul ignore else\r\n if (location && isPopoutLocation(location)) {\r\n const widgetDef = this.findWidgetDef(widgetId);\r\n // istanbul ignore else\r\n if (widgetDef) {\r\n const widgetContainerId = location.widgetId;\r\n const tab = state.tabs[widgetId];\r\n this.nineZoneState = state;\r\n setImmediate(() => {\r\n const popoutContent = (<PopoutWidget widgetContainerId={widgetContainerId} widgetDef={widgetDef} />);\r\n const position: ChildWindowLocationProps = {\r\n width: tab.preferredPopoutWidgetSize!.width, // preferredPopoutWidgetSize set in popoutWidgetToChildWindow method above\r\n height: tab.preferredPopoutWidgetSize!.height,\r\n left: tab.preferredPopoutWidgetSize!.x,\r\n top: tab.preferredPopoutWidgetSize!.y,\r\n };\r\n UiFramework.childWindowManager.openChildWindow(widgetContainerId, widgetDef.label, popoutContent, position, UiFramework.useDefaultPopoutUrl);\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n public get isStageClosing() {\r\n return this._isStageClosing;\r\n }\r\n\r\n public get isApplicationClosing() {\r\n return this._isApplicationClosing;\r\n }\r\n\r\n public get isReady() {\r\n return this._isReady;\r\n }\r\n\r\n /** @internal */\r\n public async saveChildWindowSizeAndPosition(childWindowId: string, childWindow: Window) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const newState = await saveFrontstagePopoutWidgetSizeAndPosition(this.nineZoneState, this.id, this.version, childWindowId, childWindow);\r\n this._nineZoneState = newState; // set without triggering new render as only preferred floating position set\r\n }\r\n }\r\n\r\n /** @internal */\r\n public setFloatingWidgetBoundsInternal(floatingWidgetId: string, bounds: RectangleProps, inhibitNineZoneStateChangedEvent = false) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const newState = setFloatingWidgetContainerBounds(this.nineZoneState, floatingWidgetId, bounds);\r\n if (inhibitNineZoneStateChangedEvent)\r\n this._nineZoneState = newState; // set without triggering new render\r\n else\r\n this.nineZoneState = newState;\r\n }\r\n }\r\n\r\n /** Method used to possibly change a Popout Widget back to a docked widget if the user was the one closing the popout's child\r\n * window (i.e. UiFramework.childWindowManager.isClosingChildWindow === false).\r\n * @internal\r\n */\r\n public dockPopoutWidgetContainer(widgetContainerId: string) {\r\n if (this.nineZoneState) {\r\n const location = findWidget(this.nineZoneState, widgetContainerId);\r\n // Make sure the widgetContainerId is still in popout state. We don't want to set it to docked if the window is being closed because\r\n // an API call has moved the widget from a popout state to a floating state.\r\n // istanbul ignore else\r\n if (location && isPopoutWidgetLocation(location)) {\r\n const state = dockWidgetContainer(this.nineZoneState, widgetContainerId, true);\r\n state && (this.nineZoneState = state);\r\n }\r\n }\r\n }\r\n\r\n /** Finds the container with the specified widget and re-docks all widgets\r\n * back to the panel zone location that was used when the floating container\r\n * was generated. Supported only when in UI 2.0 or higher.\r\n * @param widgetId case sensitive Widget Id.\r\n * @beta\r\n */\r\n public dockWidgetContainer(widgetId: string) {\r\n // istanbul ignore else\r\n if (this.nineZoneState) {\r\n const location = findTab(this.nineZoneState, widgetId);\r\n if (location) {\r\n const widgetContainerId = location.widgetId;\r\n const state = dockWidgetContainer(this.nineZoneState, widgetContainerId, true);\r\n state && (this.nineZoneState = state);\r\n if (isPopoutLocation(location)) {\r\n UiFramework.childWindowManager.closeChildWindow(location.widgetId, true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n public setFloatingWidgetContainerBounds(floatingWidgetId: string, bounds: RectangleProps) {\r\n if (!this.nineZoneState || !(floatingWidgetId in this.nineZoneState.floatingWidgets.byId))\r\n return false;\r\n\r\n this.setFloatingWidgetBoundsInternal(floatingWidgetId, bounds);\r\n return true;\r\n }\r\n\r\n public getFloatingWidgetContainerIds(): string[] {\r\n if (!this.nineZoneState)\r\n return [];\r\n\r\n return [...this.nineZoneState.floatingWidgets.allIds];\r\n }\r\n\r\n public getFloatingWidgetContainerIdByWidgetId(widgetId: string): string | undefined {\r\n if (!this.nineZoneState)\r\n return undefined;\r\n\r\n const location = findTab(this.nineZoneState, widgetId);\r\n // istanbul ignore else\r\n if (location && isFloatingLocation(location)) {\r\n return location.floatingWidgetId;\r\n }\r\n // istanbul ignore next\r\n return undefined;\r\n }\r\n\r\n public getFloatingWidgetContainerBounds(floatingWidgetId: string | undefined) {\r\n if (!floatingWidgetId)\r\n return undefined;\r\n\r\n // istanbul ignore else\r\n if (this.nineZoneState && (floatingWidgetId in this.nineZoneState.floatingWidgets.byId)) {\r\n const foundWidget = document.querySelector(`div.nz-widget-floatingWidget[data-widget-id='${floatingWidgetId}']`);\r\n // istanbul ignore next\r\n if (foundWidget) {\r\n const domRect = foundWidget.getBoundingClientRect();\r\n return { left: domRect.left, right: domRect.right, top: domRect.top, bottom: domRect.bottom };\r\n }\r\n return this.nineZoneState.floatingWidgets.byId[floatingWidgetId].bounds;\r\n }\r\n return undefined;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Frontstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/widget-panels/Frontstage.tsx"],"names":[],"mappings":"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"}