@itwin/appui-react 3.2.0-dev.13 → 3.2.0-dev.16
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.
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js +4 -4
- package/lib/cjs/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js +6 -6
- package/lib/cjs/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
- package/lib/cjs/appui-react/accudraw/Calculator.d.ts.map +1 -1
- package/lib/cjs/appui-react/accudraw/Calculator.js +3 -2
- package/lib/cjs/appui-react/accudraw/Calculator.js.map +1 -1
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.js +1 -1
- package/lib/cjs/appui-react/childwindow/ChildWindowManager.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js +1 -2
- package/lib/cjs/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js +2 -2
- package/lib/cjs/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js +2 -2
- package/lib/cjs/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
- package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +35 -33
- package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.js +1 -1
- package/lib/cjs/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/cjs/appui-react/toolbar/Toolbar.js +1 -1
- package/lib/cjs/appui-react/toolbar/Toolbar.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BackstageAppButton.js +3 -3
- package/lib/cjs/appui-react/widgets/BackstageAppButton.js.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts +1 -1
- package/lib/cjs/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
- package/lib/cjs/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/cjs/appui-react/widgets/WidgetManager.js +1 -1
- package/lib/cjs/appui-react/widgets/WidgetManager.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js +4 -4
- package/lib/esm/appui-react/accudraw/AccuDrawFieldContainer.js.map +1 -1
- package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js +6 -6
- package/lib/esm/appui-react/accudraw/AccuDrawPopupManager.js.map +1 -1
- package/lib/esm/appui-react/accudraw/Calculator.d.ts.map +1 -1
- package/lib/esm/appui-react/accudraw/Calculator.js +5 -4
- package/lib/esm/appui-react/accudraw/Calculator.js.map +1 -1
- package/lib/esm/appui-react/childwindow/ChildWindowManager.js +1 -1
- package/lib/esm/appui-react/childwindow/ChildWindowManager.js.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.d.ts.map +1 -1
- package/lib/esm/appui-react/frontstage/FrontstageDef.js +1 -2
- package/lib/esm/appui-react/frontstage/FrontstageDef.js.map +1 -1
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js +2 -2
- package/lib/esm/appui-react/frontstage/ModalSettingsStage.js.map +1 -1
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js +2 -2
- package/lib/esm/appui-react/settings/ui/UiSettingsPage.js.map +1 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +1 -1
- package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +20 -18
- package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.js +1 -1
- package/lib/esm/appui-react/theme/ThemeManager.js.map +1 -1
- package/lib/esm/appui-react/toolbar/Toolbar.js +1 -1
- package/lib/esm/appui-react/toolbar/Toolbar.js.map +1 -1
- package/lib/esm/appui-react/widgets/BackstageAppButton.js +3 -3
- package/lib/esm/appui-react/widgets/BackstageAppButton.js.map +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.d.ts.map +1 -1
- package/lib/esm/appui-react/widgets/BasicToolWidget.js.map +1 -1
- package/lib/esm/appui-react/widgets/WidgetManager.js +1 -1
- package/lib/esm/appui-react/widgets/WidgetManager.js.map +1 -1
- package/package.json +32 -32
|
@@ -18,8 +18,8 @@ const imodel_components_react_1 = require("@itwin/imodel-components-react");
|
|
|
18
18
|
const AccuDrawInputField_1 = require("./AccuDrawInputField");
|
|
19
19
|
const KeyboardShortcut_1 = require("../keyboardshortcut/KeyboardShortcut");
|
|
20
20
|
const FrameworkAccuDraw_1 = require("./FrameworkAccuDraw");
|
|
21
|
-
const
|
|
22
|
-
const
|
|
21
|
+
const angle_svg_1 = require("./angle.svg");
|
|
22
|
+
const distance_svg_1 = require("./distance.svg");
|
|
23
23
|
let AccuDrawContainerIndex = 0;
|
|
24
24
|
function determineShowZ(vp) {
|
|
25
25
|
const showZ = (vp !== undefined) ? /* istanbul ignore next */ vp.view.is3d() : false;
|
|
@@ -28,8 +28,8 @@ function determineShowZ(vp) {
|
|
|
28
28
|
const defaultXLabel = "X";
|
|
29
29
|
const defaultYLabel = "Y";
|
|
30
30
|
const defaultZLabel = "Z";
|
|
31
|
-
const defaultAngleIcon = appui_abstract_1.IconSpecUtilities.
|
|
32
|
-
const defaultDistanceIcon = appui_abstract_1.IconSpecUtilities.
|
|
31
|
+
const defaultAngleIcon = appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(angle_svg_1.default);
|
|
32
|
+
const defaultDistanceIcon = appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(distance_svg_1.default);
|
|
33
33
|
/** AccuDraw Ui Field Container displays [[AccuDrawInputField]] for each field
|
|
34
34
|
* @beta */
|
|
35
35
|
function AccuDrawFieldContainer(props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawFieldContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawFieldContainer.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,yCAAuC;AACvC,2CAAoC;AACpC,+BAA+B;AAE/B,wDAAsH;AACtH,0DAA0D;AAC1D,kDAAuF;AACvF,4EAAoE;AAEpE,6DAA0D;AAC1D,2EAA+E;AAC/E,2DAAwJ;AAGxJ,yDAA8C;AAC9C,+DAAoD;AAapD,IAAI,sBAAsB,GAAG,CAAC,CAAC;AAE/B,SAAS,cAAc,CAAC,EAAmB;IACzC,MAAM,KAAK,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IACrF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,gBAAgB,GAAG,kCAAiB,CAAC,iBAAiB,CAAC,0BAAY,CAAC,CAAC;AAC3E,MAAM,mBAAmB,GAAG,kCAAiB,CAAC,iBAAiB,CAAC,6BAAe,CAAC,CAAC;AAEjF;WACW;AACX,SAAgB,sBAAsB,CAAC,KAAkC;IACvE,6DAA6D;IAC7D,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC;IAEjG,MAAM,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,EAAE,sBAAsB,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IACvD,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC3D,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAmB,IAAI,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAwB,SAAS,CAAC,CAAC;IAClE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,2BAAW,CAAC,WAAW,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,aAAa,CAAC,CAAC;IAC9E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,aAAa,CAAC,CAAC;IAC9E,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,aAAa,CAAC,CAAC;IAC9E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,SAAS,CAAC,CAAC;IAClF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,SAAS,CAAC,CAAC;IACxF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAuB,SAAS,CAAC,CAAC;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAuB,SAAS,CAAC,CAAC;IAC1E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAuB,SAAS,CAAC,CAAC;IAC1E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAuB,gBAAgB,CAAC,CAAC;IACzF,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAuB,mBAAmB,CAAC,CAAC;IAClG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAkC,SAAS,CAAC,CAAC;IACvF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAkC,SAAS,CAAC,CAAC;IACvF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAkC,SAAS,CAAC,CAAC;IACvF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAkC,SAAS,CAAC,CAAC;IAC/F,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAkC,SAAS,CAAC,CAAC;IAErG,MAAM,WAAW,GAAG,CAAC,KAAgB,EAAqC,EAAE;QAC1E,IAAI,QAA2C,CAAC;QAChD,QAAQ,KAAK,EAAE;YACb,KAAK,yBAAS,CAAC,MAAM;gBACnB,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM;YACR,KAAK,yBAAS,CAAC,MAAM;gBACnB,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM;YACR,KAAK,yBAAS,CAAC,MAAM;gBACnB,QAAQ,GAAG,SAAS,CAAC;gBACrB,MAAM;YACR,KAAK,yBAAS,CAAC,UAAU;gBACvB,QAAQ,GAAG,aAAa,CAAC;gBACzB,MAAM;YACR,KAAK,yBAAS,CAAC,SAAS;gBACtB,QAAQ,GAAG,gBAAgB,CAAC;gBAC5B,MAAM;SACT;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CAAC,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,QAAQ,CAAC,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,QAAQ,CAAC,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5D,YAAY,CAAC,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACpE,eAAe,CAAC,yBAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,yBAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAEtE,MAAM,kBAAkB,GAAG,CAAC,IAAmC,EAAE,EAAE;YACjE,QAAQ,IAAI,CAAC,KAAK,EAAE;gBAClB,KAAK,yBAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,yBAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,yBAAS,CAAC,MAAM;oBACnB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpB,MAAM;gBACR,KAAK,yBAAS,CAAC,UAAU;oBACvB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACxB,MAAM;gBACR,KAAK,yBAAS,CAAC,SAAS;oBACtB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3B,MAAM;aACT;QACH,CAAC,CAAC;QACF,OAAO,qCAAiB,CAAC,2BAA2B,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACvF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAgB,EAAE,EAAE;QAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QAEpC,uBAAuB;QACvB,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,OAAO,EAAE;YACnE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACzB,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;SAC3B;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,mBAAmB,GAAG,CAAC,IAAoC,EAAE,EAAE;YACnE,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;YAChC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC,CAAC;QACF,OAAO,qCAAiB,CAAC,4BAA4B,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IACzF,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,oBAAoB,GAAG,GAAG,EAAE;YAChC,uBAAuB;YACvB,IAAI,UAAU,CAAC,OAAO;gBACpB,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC;QACF,OAAO,qCAAiB,CAAC,6BAA6B,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC3F,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,CAAC,yBAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAExC,MAAM,aAAa,GAAG,CAAC,IAAqC,EAAE,EAAE;YAC9D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC;QAEF,OAAO,qCAAiB,CAAC,6BAA6B,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACpF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,KAAgB,EAAE,WAAmB,EAAE,EAAE;QACrF,qCAAiB,CAAC,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC9C,0CAAuB,CAAC,cAAc,EAAE,CAAC;IAC3C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,QAAQ,CAAC,aAAa,IAAI,cAAc,CAAC,yBAAS,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;QAE9E,uBAAuB;QACvB,MAAM,6BAA6B,GAAG,CAAC,IAAiC,EAAE,EAAE;YAC1E,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC;QAEF,OAAO,yBAAS,CAAC,WAAW,CAAC,yBAAyB,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;IACpG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QAEnB,MAAM,gBAAgB,GAAG,CAAC,OAAwC,EAChE,eAA8C,EAC9C,eAA8C,EAAmC,EAAE;YACnF,IAAI,UAA2C,CAAC;YAChD,IAAI,UAAU,GAAG,EAAE,CAAC;YACpB,IAAI,OAAO,IAAI,eAAe,IAAI,eAAe,EAAE;gBACjD,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpC,IAAI,eAAe,EAAE;oBACnB,UAAU,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAA,4CAAkB,EAAC,eAAe,CAAC,CAAC;oBACzG,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;iBAC7D;gBACD,IAAI,eAAe,EAAE;oBACnB,UAAU,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAA,4CAAkB,EAAC,eAAe,CAAC,CAAC;oBACzG,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;iBACnD;aACF;YACD,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;QAEF,MAAM,yBAAyB,GAAG,CAAC,QAA6B,EAAE,EAAE;YAClE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1H,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1H,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1H,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC1I,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,uBAAuB,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAEtJ,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACvF,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACvF,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YACvF,aAAa,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/F,gBAAgB,CAAC,QAAQ,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAExG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChF,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChF,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAChF,YAAY,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACnG,eAAe,CAAC,QAAQ,IAAI,QAAQ,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;QACjH,CAAC,CAAC;QAEF,IAAI,qCAAiB,CAAC,cAAc;YAClC,yBAAyB,CAAC,qCAAiB,CAAC,cAAc,CAAC,CAAC;QAE9D,uBAAuB;QACvB,MAAM,+BAA+B,GAAG,GAAG,EAAE;YAC3C,yBAAyB,CAAC,qCAAiB,CAAC,cAAc,CAAC,CAAC;QAC9D,CAAC,CAAC;QAEF,OAAO,qCAAiB,CAAC,gCAAgC,CAAC,WAAW,CAAC,+BAA+B,CAAC,CAAC;IACzG,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,+BAA+B,EAC/B,CAAC,WAAW,KAAK,wBAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,0CAA0C,EAC9H,SAAS,CACV,CAAC;IAEF,MAAM,KAAK,GAAG,GAAG,CAAC;IAClB,MAAM,aAAa,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAElK,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,KAAM,UAAU;QACrD,IAAI,KAAK,2BAAW,CAAC,WAAW;YAC/B;gBACE,oBAAC,uCAAkB,IAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAC,uBAAuB,EAAC,KAAK,EAAE,MAAM,EAClG,KAAK,EAAE,yBAAS,CAAC,MAAM,EAAE,EAAE,EAAE,mBAAmB,cAAc,EAAE,iBAAc,iBAAiB,EAC/F,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAC5D,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,yBAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAC5G,YAAY,EAAE,gBAAgB,GAAI;gBACpC,oBAAC,uCAAkB,IAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAC,uBAAuB,EAAC,KAAK,EAAE,MAAM,EAClG,KAAK,EAAE,yBAAS,CAAC,MAAM,EAAE,EAAE,EAAE,mBAAmB,cAAc,EAAE,iBAAc,iBAAiB,EAC/F,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAC5D,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,yBAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAC5G,YAAY,EAAE,gBAAgB,GAAI;gBACnC,KAAK;oBACJ,oBAAC,uCAAkB,IAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAC,uBAAuB,EAAC,KAAK,EAAE,MAAM,EAClG,KAAK,EAAE,yBAAS,CAAC,MAAM,EAAE,EAAE,EAAE,mBAAmB,cAAc,EAAE,iBAAc,iBAAiB,EAC/F,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAC5D,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,yBAAS,CAAC,MAAM,EAAE,WAAW,CAAC,EAC5G,YAAY,EAAE,gBAAgB,GAAI,CAErC;QAEJ,IAAI,KAAK,2BAAW,CAAC,KAAK;YACzB;gBACE,oBAAC,uCAAkB,IAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAC,2BAA2B,EAAC,KAAK,EAAE,UAAU,EAClH,KAAK,EAAE,yBAAS,CAAC,UAAU,EAAE,EAAE,EAAE,uBAAuB,cAAc,EAAE,iBAAc,qBAAqB,EAC3G,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EACtC,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,yBAAS,CAAC,UAAU,EAAE,WAAW,CAAC,EAChH,YAAY,EAAE,gBAAgB,GAAI;gBACpC,oBAAC,uCAAkB,IAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAC,8BAA8B,EAAC,KAAK,EAAE,aAAa,EAC9H,KAAK,EAAE,yBAAS,CAAC,SAAS,EAAE,EAAE,EAAE,0BAA0B,cAAc,EAAE,iBAAc,wBAAwB,EAChH,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAC5C,iBAAiB,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,yBAAS,CAAC,SAAS,EAAE,WAAW,CAAC,EAC/G,YAAY,EAAE,gBAAgB,GAAI,CACnC,CAED,CACP,CAAC;AACJ,CAAC;AAjPD,wDAiPC","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 AccuDraw\r\n */\r\n\r\nimport \"./AccuDrawFieldContainer.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport { CompassMode, IModelApp, ItemField, ScreenViewport, SelectedViewportChangedArgs } from \"@itwin/core-frontend\";\r\nimport { IconSpecUtilities } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, IconSpec, Orientation, UiStateStorage } from \"@itwin/core-react\";\r\nimport { getCSSColorFromDef } from \"@itwin/imodel-components-react\";\r\n\r\nimport { AccuDrawInputField } from \"./AccuDrawInputField\";\r\nimport { KeyboardShortcutManager } from \"../keyboardshortcut/KeyboardShortcut\";\r\nimport { AccuDrawSetCompassModeEventArgs, AccuDrawSetFieldFocusEventArgs, AccuDrawSetFieldLockEventArgs, FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\r\nimport { AccuDrawUiSettings } from \"./AccuDrawUiSettings\";\r\n\r\nimport angleIconSvg from \"./angle.svg?sprite\";\r\nimport distanceIconSvg from \"./distance.svg?sprite\";\r\n\r\n/** Properties for [[AccuDrawFieldContainer]] component\r\n * @beta */\r\nexport interface AccuDrawFieldContainerProps extends CommonProps {\r\n /** Orientation of the fields */\r\n orientation: Orientation;\r\n /** Optional parameter for persistent UI settings. Defaults to LocalStateStorage. */\r\n uiSettingsStorage?: UiStateStorage;\r\n /** @internal */\r\n showZOverride?: boolean;\r\n}\r\n\r\nlet AccuDrawContainerIndex = 0;\r\n\r\nfunction determineShowZ(vp?: ScreenViewport): boolean {\r\n const showZ = (vp !== undefined) ? /* istanbul ignore next */ vp.view.is3d() : false;\r\n return showZ;\r\n}\r\n\r\nconst defaultXLabel = \"X\";\r\nconst defaultYLabel = \"Y\";\r\nconst defaultZLabel = \"Z\";\r\nconst defaultAngleIcon = IconSpecUtilities.createSvgIconSpec(angleIconSvg);\r\nconst defaultDistanceIcon = IconSpecUtilities.createSvgIconSpec(distanceIconSvg);\r\n\r\n/** AccuDraw Ui Field Container displays [[AccuDrawInputField]] for each field\r\n * @beta */\r\nexport function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const { className, style, orientation, uiSettingsStorage, showZOverride, ...otherProps } = props;\r\n\r\n const [containerIndex] = React.useState(() => ++AccuDrawContainerIndex);\r\n const xInputRef = React.useRef<HTMLInputElement>(null);\r\n const yInputRef = React.useRef<HTMLInputElement>(null);\r\n const zInputRef = React.useRef<HTMLInputElement>(null);\r\n const angleInputRef = React.useRef<HTMLInputElement>(null);\r\n const distanceInputRef = React.useRef<HTMLInputElement>(null);\r\n const focusField = React.useRef<ItemField | undefined>(undefined);\r\n const [mode, setMode] = React.useState(CompassMode.Rectangular);\r\n const [xLock, setXLock] = React.useState(false);\r\n const [yLock, setYLock] = React.useState(false);\r\n const [zLock, setZLock] = React.useState(false);\r\n const [angleLock, setAngleLock] = React.useState(false);\r\n const [distanceLock, setDistanceLock] = React.useState(false);\r\n const [showZ, setShowZ] = React.useState(true);\r\n const [xLabel, setXLabel] = React.useState<string | undefined>(defaultXLabel);\r\n const [yLabel, setYLabel] = React.useState<string | undefined>(defaultYLabel);\r\n const [zLabel, setZLabel] = React.useState<string | undefined>(defaultZLabel);\r\n const [angleLabel, setAngleLabel] = React.useState<string | undefined>(undefined);\r\n const [distanceLabel, setDistanceLabel] = React.useState<string | undefined>(undefined);\r\n const [xIcon, setXIcon] = React.useState<IconSpec | undefined>(undefined);\r\n const [yIcon, setYIcon] = React.useState<IconSpec | undefined>(undefined);\r\n const [zIcon, setZIcon] = React.useState<IconSpec | undefined>(undefined);\r\n const [angleIcon, setAngleIcon] = React.useState<IconSpec | undefined>(defaultAngleIcon);\r\n const [distanceIcon, setDistanceIcon] = React.useState<IconSpec | undefined>(defaultDistanceIcon);\r\n const [xStyle, setXStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [yStyle, setYStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [zStyle, setZStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [angleStyle, setAngleStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [distanceStyle, setDistanceStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n\r\n const getInputRef = (field: ItemField): React.RefObject<HTMLInputElement> => {\r\n let inputRef: React.RefObject<HTMLInputElement>;\r\n switch (field) {\r\n case ItemField.X_Item:\r\n inputRef = xInputRef;\r\n break;\r\n case ItemField.Y_Item:\r\n inputRef = yInputRef;\r\n break;\r\n case ItemField.Z_Item:\r\n inputRef = zInputRef;\r\n break;\r\n case ItemField.ANGLE_Item:\r\n inputRef = angleInputRef;\r\n break;\r\n case ItemField.DIST_Item:\r\n inputRef = distanceInputRef;\r\n break;\r\n }\r\n return inputRef;\r\n };\r\n\r\n React.useEffect(() => {\r\n setXLock(IModelApp.accuDraw.getFieldLock(ItemField.X_Item));\r\n setYLock(IModelApp.accuDraw.getFieldLock(ItemField.Y_Item));\r\n setZLock(IModelApp.accuDraw.getFieldLock(ItemField.Z_Item));\r\n setAngleLock(IModelApp.accuDraw.getFieldLock(ItemField.ANGLE_Item));\r\n setDistanceLock(IModelApp.accuDraw.getFieldLock(ItemField.DIST_Item));\r\n\r\n const handleSetFieldLock = (args: AccuDrawSetFieldLockEventArgs) => {\r\n switch (args.field) {\r\n case ItemField.X_Item:\r\n setXLock(args.lock);\r\n break;\r\n case ItemField.Y_Item:\r\n setYLock(args.lock);\r\n break;\r\n case ItemField.Z_Item:\r\n setZLock(args.lock);\r\n break;\r\n case ItemField.ANGLE_Item:\r\n setAngleLock(args.lock);\r\n break;\r\n case ItemField.DIST_Item:\r\n setDistanceLock(args.lock);\r\n break;\r\n }\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.addListener(handleSetFieldLock);\r\n }, []);\r\n\r\n const setFocusToField = React.useCallback((field: ItemField) => {\r\n const inputRef = getInputRef(field);\r\n\r\n // istanbul ignore else\r\n if (inputRef.current && document.activeElement !== inputRef.current) {\r\n inputRef.current.focus();\r\n inputRef.current.select();\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const handleSetFieldFocus = (args: AccuDrawSetFieldFocusEventArgs) => {\r\n focusField.current = args.field;\r\n setFocusToField(focusField.current);\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(handleSetFieldFocus);\r\n }, [setFocusToField]);\r\n\r\n React.useEffect(() => {\r\n const handleGrabInputFocus = () => {\r\n // istanbul ignore else\r\n if (focusField.current)\r\n setFocusToField(focusField.current);\r\n };\r\n return FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.addListener(handleGrabInputFocus);\r\n }, [setFocusToField]);\r\n\r\n React.useEffect(() => {\r\n setMode(IModelApp.accuDraw.compassMode);\r\n\r\n const handleSetMode = (args: AccuDrawSetCompassModeEventArgs) => {\r\n setMode(args.mode);\r\n };\r\n\r\n return FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.addListener(handleSetMode);\r\n }, []);\r\n\r\n const handleValueChanged = React.useCallback((field: ItemField, stringValue: string) => {\r\n FrameworkAccuDraw.setFieldValueFromUi(field, stringValue);\r\n }, []);\r\n\r\n const handleEscPressed = React.useCallback(() => {\r\n KeyboardShortcutManager.setFocusToHome();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setShowZ(showZOverride || determineShowZ(IModelApp.viewManager.selectedView));\r\n\r\n // istanbul ignore next\r\n const handleSelectedViewportChanged = (args: SelectedViewportChangedArgs) => {\r\n setShowZ(determineShowZ(args.current));\r\n };\r\n\r\n return IModelApp.viewManager.onSelectedViewportChanged.addListener(handleSelectedViewportChanged);\r\n }, [showZOverride]);\r\n\r\n React.useEffect(() => {\r\n\r\n const createFieldStyle = (inStyle: React.CSSProperties | undefined,\r\n backgroundColor: ColorDef | string | undefined,\r\n foregroundColor: ColorDef | string | undefined): React.CSSProperties | undefined => {\r\n let fieldStyle: React.CSSProperties | undefined;\r\n let rgbaString = \"\";\r\n if (inStyle || backgroundColor || foregroundColor) {\r\n fieldStyle = inStyle ? inStyle : {};\r\n if (backgroundColor) {\r\n rgbaString = typeof backgroundColor === \"string\" ? backgroundColor : getCSSColorFromDef(backgroundColor);\r\n fieldStyle = { ...fieldStyle, backgroundColor: rgbaString };\r\n }\r\n if (foregroundColor) {\r\n rgbaString = typeof foregroundColor === \"string\" ? foregroundColor : getCSSColorFromDef(foregroundColor);\r\n fieldStyle = { ...fieldStyle, color: rgbaString };\r\n }\r\n }\r\n return fieldStyle;\r\n };\r\n\r\n const processAccuDrawUiSettings = (settings?: AccuDrawUiSettings) => {\r\n setXStyle(settings ? createFieldStyle(settings.xStyle, settings.xBackgroundColor, settings.xForegroundColor) : undefined);\r\n setYStyle(settings ? createFieldStyle(settings.yStyle, settings.yBackgroundColor, settings.yForegroundColor) : undefined);\r\n setZStyle(settings ? createFieldStyle(settings.zStyle, settings.zBackgroundColor, settings.zForegroundColor) : undefined);\r\n setAngleStyle(settings ? createFieldStyle(settings.angleStyle, settings.angleBackgroundColor, settings.angleForegroundColor) : undefined);\r\n setDistanceStyle(settings ? createFieldStyle(settings.distanceStyle, settings.distanceBackgroundColor, settings.distanceForegroundColor) : undefined);\r\n\r\n setXLabel(settings && settings.xLabel !== undefined ? settings.xLabel : defaultXLabel);\r\n setYLabel(settings && settings.yLabel !== undefined ? settings.yLabel : defaultYLabel);\r\n setZLabel(settings && settings.zLabel !== undefined ? settings.zLabel : defaultZLabel);\r\n setAngleLabel(settings && settings.angleLabel !== undefined ? settings.angleLabel : undefined);\r\n setDistanceLabel(settings && settings.distanceLabel !== undefined ? settings.distanceLabel : undefined);\r\n\r\n setXIcon(settings && settings.xIcon !== undefined ? settings.xIcon : undefined);\r\n setYIcon(settings && settings.yIcon !== undefined ? settings.yIcon : undefined);\r\n setZIcon(settings && settings.zIcon !== undefined ? settings.zIcon : undefined);\r\n setAngleIcon(settings && settings.angleIcon !== undefined ? settings.angleIcon : defaultAngleIcon);\r\n setDistanceIcon(settings && settings.distanceIcon !== undefined ? settings.distanceIcon : defaultDistanceIcon);\r\n };\r\n\r\n if (FrameworkAccuDraw.uiStateStorage)\r\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\r\n\r\n // istanbul ignore next\r\n const handleAccuDrawUiSettingsChanged = () => {\r\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\r\n };\r\n\r\n return FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(handleAccuDrawUiSettingsChanged);\r\n }, []);\r\n\r\n const classNames = classnames(\r\n \"uifw-accudraw-field-container\",\r\n (orientation === Orientation.Vertical) ? \"uifw-accudraw-field-container-vertical\" : \"uifw-accudraw-field-container-horizontal\",\r\n className,\r\n );\r\n\r\n const delay = 250;\r\n const labelCentered = (xLabel !== undefined && xLabel.length === 1 && yLabel !== undefined && yLabel.length === 1 && zLabel !== undefined && zLabel.length === 1);\r\n\r\n return (\r\n <div className={classNames} style={style} {...otherProps}>\r\n {mode === CompassMode.Rectangular &&\r\n <>\r\n <AccuDrawInputField ref={xInputRef} isLocked={xLock} className=\"uifw-accudraw-x-value\" style={xStyle}\r\n field={ItemField.X_Item} id={`uifw-accudraw-x-${containerIndex}`} data-testid=\"uifw-accudraw-x\"\r\n label={xLabel} iconSpec={xIcon} labelCentered={labelCentered}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.X_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n <AccuDrawInputField ref={yInputRef} isLocked={yLock} className=\"uifw-accudraw-y-value\" style={yStyle}\r\n field={ItemField.Y_Item} id={`uifw-accudraw-y-${containerIndex}`} data-testid=\"uifw-accudraw-y\"\r\n label={yLabel} iconSpec={yIcon} labelCentered={labelCentered}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.Y_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n {showZ &&\r\n <AccuDrawInputField ref={zInputRef} isLocked={zLock} className=\"uifw-accudraw-z-value\" style={zStyle}\r\n field={ItemField.Z_Item} id={`uifw-accudraw-z-${containerIndex}`} data-testid=\"uifw-accudraw-z\"\r\n label={zLabel} iconSpec={zIcon} labelCentered={labelCentered}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.Z_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n }\r\n </>\r\n }\r\n {mode === CompassMode.Polar &&\r\n <>\r\n <AccuDrawInputField ref={angleInputRef} isLocked={angleLock} className=\"uifw-accudraw-angle-value\" style={angleStyle}\r\n field={ItemField.ANGLE_Item} id={`uifw-accudraw-angle-${containerIndex}`} data-testid=\"uifw-accudraw-angle\"\r\n label={angleLabel} iconSpec={angleIcon}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.ANGLE_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n <AccuDrawInputField ref={distanceInputRef} isLocked={distanceLock} className=\"uifw-accudraw-distance-value\" style={distanceStyle}\r\n field={ItemField.DIST_Item} id={`uifw-accudraw-distance-${containerIndex}`} data-testid=\"uifw-accudraw-distance\"\r\n label={distanceLabel} iconSpec={distanceIcon}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.DIST_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n </>\r\n }\r\n </div>\r\n );\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"AccuDrawFieldContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawFieldContainer.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/** @packageDocumentation\r\n * @module AccuDraw\r\n */\r\n\r\nimport \"./AccuDrawFieldContainer.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport { CompassMode, IModelApp, ItemField, ScreenViewport, SelectedViewportChangedArgs } from \"@itwin/core-frontend\";\r\nimport { IconSpecUtilities } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, IconSpec, Orientation, UiStateStorage } from \"@itwin/core-react\";\r\nimport { getCSSColorFromDef } from \"@itwin/imodel-components-react\";\r\n\r\nimport { AccuDrawInputField } from \"./AccuDrawInputField\";\r\nimport { KeyboardShortcutManager } from \"../keyboardshortcut/KeyboardShortcut\";\r\nimport { AccuDrawSetCompassModeEventArgs, AccuDrawSetFieldFocusEventArgs, AccuDrawSetFieldLockEventArgs, FrameworkAccuDraw } from \"./FrameworkAccuDraw\";\r\nimport { AccuDrawUiSettings } from \"./AccuDrawUiSettings\";\r\n\r\nimport angleIconSvg from \"./angle.svg\";\r\nimport distanceIconSvg from \"./distance.svg\";\r\n\r\n/** Properties for [[AccuDrawFieldContainer]] component\r\n * @beta */\r\nexport interface AccuDrawFieldContainerProps extends CommonProps {\r\n /** Orientation of the fields */\r\n orientation: Orientation;\r\n /** Optional parameter for persistent UI settings. Defaults to LocalStateStorage. */\r\n uiSettingsStorage?: UiStateStorage;\r\n /** @internal */\r\n showZOverride?: boolean;\r\n}\r\n\r\nlet AccuDrawContainerIndex = 0;\r\n\r\nfunction determineShowZ(vp?: ScreenViewport): boolean {\r\n const showZ = (vp !== undefined) ? /* istanbul ignore next */ vp.view.is3d() : false;\r\n return showZ;\r\n}\r\n\r\nconst defaultXLabel = \"X\";\r\nconst defaultYLabel = \"Y\";\r\nconst defaultZLabel = \"Z\";\r\nconst defaultAngleIcon = IconSpecUtilities.createWebComponentIconSpec(angleIconSvg);\r\nconst defaultDistanceIcon = IconSpecUtilities.createWebComponentIconSpec(distanceIconSvg);\r\n\r\n/** AccuDraw Ui Field Container displays [[AccuDrawInputField]] for each field\r\n * @beta */\r\nexport function AccuDrawFieldContainer(props: AccuDrawFieldContainerProps) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const { className, style, orientation, uiSettingsStorage, showZOverride, ...otherProps } = props;\r\n\r\n const [containerIndex] = React.useState(() => ++AccuDrawContainerIndex);\r\n const xInputRef = React.useRef<HTMLInputElement>(null);\r\n const yInputRef = React.useRef<HTMLInputElement>(null);\r\n const zInputRef = React.useRef<HTMLInputElement>(null);\r\n const angleInputRef = React.useRef<HTMLInputElement>(null);\r\n const distanceInputRef = React.useRef<HTMLInputElement>(null);\r\n const focusField = React.useRef<ItemField | undefined>(undefined);\r\n const [mode, setMode] = React.useState(CompassMode.Rectangular);\r\n const [xLock, setXLock] = React.useState(false);\r\n const [yLock, setYLock] = React.useState(false);\r\n const [zLock, setZLock] = React.useState(false);\r\n const [angleLock, setAngleLock] = React.useState(false);\r\n const [distanceLock, setDistanceLock] = React.useState(false);\r\n const [showZ, setShowZ] = React.useState(true);\r\n const [xLabel, setXLabel] = React.useState<string | undefined>(defaultXLabel);\r\n const [yLabel, setYLabel] = React.useState<string | undefined>(defaultYLabel);\r\n const [zLabel, setZLabel] = React.useState<string | undefined>(defaultZLabel);\r\n const [angleLabel, setAngleLabel] = React.useState<string | undefined>(undefined);\r\n const [distanceLabel, setDistanceLabel] = React.useState<string | undefined>(undefined);\r\n const [xIcon, setXIcon] = React.useState<IconSpec | undefined>(undefined);\r\n const [yIcon, setYIcon] = React.useState<IconSpec | undefined>(undefined);\r\n const [zIcon, setZIcon] = React.useState<IconSpec | undefined>(undefined);\r\n const [angleIcon, setAngleIcon] = React.useState<IconSpec | undefined>(defaultAngleIcon);\r\n const [distanceIcon, setDistanceIcon] = React.useState<IconSpec | undefined>(defaultDistanceIcon);\r\n const [xStyle, setXStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [yStyle, setYStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [zStyle, setZStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [angleStyle, setAngleStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n const [distanceStyle, setDistanceStyle] = React.useState<React.CSSProperties | undefined>(undefined);\r\n\r\n const getInputRef = (field: ItemField): React.RefObject<HTMLInputElement> => {\r\n let inputRef: React.RefObject<HTMLInputElement>;\r\n switch (field) {\r\n case ItemField.X_Item:\r\n inputRef = xInputRef;\r\n break;\r\n case ItemField.Y_Item:\r\n inputRef = yInputRef;\r\n break;\r\n case ItemField.Z_Item:\r\n inputRef = zInputRef;\r\n break;\r\n case ItemField.ANGLE_Item:\r\n inputRef = angleInputRef;\r\n break;\r\n case ItemField.DIST_Item:\r\n inputRef = distanceInputRef;\r\n break;\r\n }\r\n return inputRef;\r\n };\r\n\r\n React.useEffect(() => {\r\n setXLock(IModelApp.accuDraw.getFieldLock(ItemField.X_Item));\r\n setYLock(IModelApp.accuDraw.getFieldLock(ItemField.Y_Item));\r\n setZLock(IModelApp.accuDraw.getFieldLock(ItemField.Z_Item));\r\n setAngleLock(IModelApp.accuDraw.getFieldLock(ItemField.ANGLE_Item));\r\n setDistanceLock(IModelApp.accuDraw.getFieldLock(ItemField.DIST_Item));\r\n\r\n const handleSetFieldLock = (args: AccuDrawSetFieldLockEventArgs) => {\r\n switch (args.field) {\r\n case ItemField.X_Item:\r\n setXLock(args.lock);\r\n break;\r\n case ItemField.Y_Item:\r\n setYLock(args.lock);\r\n break;\r\n case ItemField.Z_Item:\r\n setZLock(args.lock);\r\n break;\r\n case ItemField.ANGLE_Item:\r\n setAngleLock(args.lock);\r\n break;\r\n case ItemField.DIST_Item:\r\n setDistanceLock(args.lock);\r\n break;\r\n }\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldLockEvent.addListener(handleSetFieldLock);\r\n }, []);\r\n\r\n const setFocusToField = React.useCallback((field: ItemField) => {\r\n const inputRef = getInputRef(field);\r\n\r\n // istanbul ignore else\r\n if (inputRef.current && document.activeElement !== inputRef.current) {\r\n inputRef.current.focus();\r\n inputRef.current.select();\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const handleSetFieldFocus = (args: AccuDrawSetFieldFocusEventArgs) => {\r\n focusField.current = args.field;\r\n setFocusToField(focusField.current);\r\n };\r\n return FrameworkAccuDraw.onAccuDrawSetFieldFocusEvent.addListener(handleSetFieldFocus);\r\n }, [setFocusToField]);\r\n\r\n React.useEffect(() => {\r\n const handleGrabInputFocus = () => {\r\n // istanbul ignore else\r\n if (focusField.current)\r\n setFocusToField(focusField.current);\r\n };\r\n return FrameworkAccuDraw.onAccuDrawGrabInputFocusEvent.addListener(handleGrabInputFocus);\r\n }, [setFocusToField]);\r\n\r\n React.useEffect(() => {\r\n setMode(IModelApp.accuDraw.compassMode);\r\n\r\n const handleSetMode = (args: AccuDrawSetCompassModeEventArgs) => {\r\n setMode(args.mode);\r\n };\r\n\r\n return FrameworkAccuDraw.onAccuDrawSetCompassModeEvent.addListener(handleSetMode);\r\n }, []);\r\n\r\n const handleValueChanged = React.useCallback((field: ItemField, stringValue: string) => {\r\n FrameworkAccuDraw.setFieldValueFromUi(field, stringValue);\r\n }, []);\r\n\r\n const handleEscPressed = React.useCallback(() => {\r\n KeyboardShortcutManager.setFocusToHome();\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n setShowZ(showZOverride || determineShowZ(IModelApp.viewManager.selectedView));\r\n\r\n // istanbul ignore next\r\n const handleSelectedViewportChanged = (args: SelectedViewportChangedArgs) => {\r\n setShowZ(determineShowZ(args.current));\r\n };\r\n\r\n return IModelApp.viewManager.onSelectedViewportChanged.addListener(handleSelectedViewportChanged);\r\n }, [showZOverride]);\r\n\r\n React.useEffect(() => {\r\n\r\n const createFieldStyle = (inStyle: React.CSSProperties | undefined,\r\n backgroundColor: ColorDef | string | undefined,\r\n foregroundColor: ColorDef | string | undefined): React.CSSProperties | undefined => {\r\n let fieldStyle: React.CSSProperties | undefined;\r\n let rgbaString = \"\";\r\n if (inStyle || backgroundColor || foregroundColor) {\r\n fieldStyle = inStyle ? inStyle : {};\r\n if (backgroundColor) {\r\n rgbaString = typeof backgroundColor === \"string\" ? backgroundColor : getCSSColorFromDef(backgroundColor);\r\n fieldStyle = { ...fieldStyle, backgroundColor: rgbaString };\r\n }\r\n if (foregroundColor) {\r\n rgbaString = typeof foregroundColor === \"string\" ? foregroundColor : getCSSColorFromDef(foregroundColor);\r\n fieldStyle = { ...fieldStyle, color: rgbaString };\r\n }\r\n }\r\n return fieldStyle;\r\n };\r\n\r\n const processAccuDrawUiSettings = (settings?: AccuDrawUiSettings) => {\r\n setXStyle(settings ? createFieldStyle(settings.xStyle, settings.xBackgroundColor, settings.xForegroundColor) : undefined);\r\n setYStyle(settings ? createFieldStyle(settings.yStyle, settings.yBackgroundColor, settings.yForegroundColor) : undefined);\r\n setZStyle(settings ? createFieldStyle(settings.zStyle, settings.zBackgroundColor, settings.zForegroundColor) : undefined);\r\n setAngleStyle(settings ? createFieldStyle(settings.angleStyle, settings.angleBackgroundColor, settings.angleForegroundColor) : undefined);\r\n setDistanceStyle(settings ? createFieldStyle(settings.distanceStyle, settings.distanceBackgroundColor, settings.distanceForegroundColor) : undefined);\r\n\r\n setXLabel(settings && settings.xLabel !== undefined ? settings.xLabel : defaultXLabel);\r\n setYLabel(settings && settings.yLabel !== undefined ? settings.yLabel : defaultYLabel);\r\n setZLabel(settings && settings.zLabel !== undefined ? settings.zLabel : defaultZLabel);\r\n setAngleLabel(settings && settings.angleLabel !== undefined ? settings.angleLabel : undefined);\r\n setDistanceLabel(settings && settings.distanceLabel !== undefined ? settings.distanceLabel : undefined);\r\n\r\n setXIcon(settings && settings.xIcon !== undefined ? settings.xIcon : undefined);\r\n setYIcon(settings && settings.yIcon !== undefined ? settings.yIcon : undefined);\r\n setZIcon(settings && settings.zIcon !== undefined ? settings.zIcon : undefined);\r\n setAngleIcon(settings && settings.angleIcon !== undefined ? settings.angleIcon : defaultAngleIcon);\r\n setDistanceIcon(settings && settings.distanceIcon !== undefined ? settings.distanceIcon : defaultDistanceIcon);\r\n };\r\n\r\n if (FrameworkAccuDraw.uiStateStorage)\r\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\r\n\r\n // istanbul ignore next\r\n const handleAccuDrawUiSettingsChanged = () => {\r\n processAccuDrawUiSettings(FrameworkAccuDraw.uiStateStorage);\r\n };\r\n\r\n return FrameworkAccuDraw.onAccuDrawUiSettingsChangedEvent.addListener(handleAccuDrawUiSettingsChanged);\r\n }, []);\r\n\r\n const classNames = classnames(\r\n \"uifw-accudraw-field-container\",\r\n (orientation === Orientation.Vertical) ? \"uifw-accudraw-field-container-vertical\" : \"uifw-accudraw-field-container-horizontal\",\r\n className,\r\n );\r\n\r\n const delay = 250;\r\n const labelCentered = (xLabel !== undefined && xLabel.length === 1 && yLabel !== undefined && yLabel.length === 1 && zLabel !== undefined && zLabel.length === 1);\r\n\r\n return (\r\n <div className={classNames} style={style} {...otherProps}>\r\n {mode === CompassMode.Rectangular &&\r\n <>\r\n <AccuDrawInputField ref={xInputRef} isLocked={xLock} className=\"uifw-accudraw-x-value\" style={xStyle}\r\n field={ItemField.X_Item} id={`uifw-accudraw-x-${containerIndex}`} data-testid=\"uifw-accudraw-x\"\r\n label={xLabel} iconSpec={xIcon} labelCentered={labelCentered}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.X_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n <AccuDrawInputField ref={yInputRef} isLocked={yLock} className=\"uifw-accudraw-y-value\" style={yStyle}\r\n field={ItemField.Y_Item} id={`uifw-accudraw-y-${containerIndex}`} data-testid=\"uifw-accudraw-y\"\r\n label={yLabel} iconSpec={yIcon} labelCentered={labelCentered}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.Y_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n {showZ &&\r\n <AccuDrawInputField ref={zInputRef} isLocked={zLock} className=\"uifw-accudraw-z-value\" style={zStyle}\r\n field={ItemField.Z_Item} id={`uifw-accudraw-z-${containerIndex}`} data-testid=\"uifw-accudraw-z\"\r\n label={zLabel} iconSpec={zIcon} labelCentered={labelCentered}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.Z_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n }\r\n </>\r\n }\r\n {mode === CompassMode.Polar &&\r\n <>\r\n <AccuDrawInputField ref={angleInputRef} isLocked={angleLock} className=\"uifw-accudraw-angle-value\" style={angleStyle}\r\n field={ItemField.ANGLE_Item} id={`uifw-accudraw-angle-${containerIndex}`} data-testid=\"uifw-accudraw-angle\"\r\n label={angleLabel} iconSpec={angleIcon}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.ANGLE_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n <AccuDrawInputField ref={distanceInputRef} isLocked={distanceLock} className=\"uifw-accudraw-distance-value\" style={distanceStyle}\r\n field={ItemField.DIST_Item} id={`uifw-accudraw-distance-${containerIndex}`} data-testid=\"uifw-accudraw-distance\"\r\n label={distanceLabel} iconSpec={distanceIcon}\r\n valueChangedDelay={delay} onValueChanged={(stringValue) => handleValueChanged(ItemField.DIST_Item, stringValue)}\r\n onEscPressed={handleEscPressed} />\r\n </>\r\n }\r\n </div>\r\n );\r\n}\r\n"]}
|
|
@@ -15,9 +15,9 @@ const PopupManager_1 = require("../popup/PopupManager");
|
|
|
15
15
|
const MenuItem_1 = require("../shared/MenuItem");
|
|
16
16
|
const CalculatorPopup_1 = require("./CalculatorPopup");
|
|
17
17
|
const MenuButtonPopup_1 = require("./MenuButtonPopup");
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
18
|
+
const angle_svg_1 = require("./angle.svg");
|
|
19
|
+
const distance_svg_1 = require("./distance.svg");
|
|
20
|
+
const height_2_svg_1 = require("./height-2.svg");
|
|
21
21
|
/** AccuDraw Popup Manager class
|
|
22
22
|
* @alpha
|
|
23
23
|
*/
|
|
@@ -48,15 +48,15 @@ class AccuDrawPopupManager {
|
|
|
48
48
|
return PopupManager_1.PopupManager.removePopup(AccuDrawPopupManager._calculatorId);
|
|
49
49
|
}
|
|
50
50
|
static showAngleEditor(el, pt, value, onCommit, onCancel) {
|
|
51
|
-
const propertyDescription = new core_frontend_1.AngleDescription(undefined, undefined, appui_abstract_1.IconSpecUtilities.
|
|
51
|
+
const propertyDescription = new core_frontend_1.AngleDescription(undefined, undefined, appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(angle_svg_1.default));
|
|
52
52
|
return PopupManager_1.PopupManager.showInputEditor(el, pt, value, propertyDescription, onCommit, onCancel);
|
|
53
53
|
}
|
|
54
54
|
static showLengthEditor(el, pt, value, onCommit, onCancel) {
|
|
55
|
-
const propertyDescription = new core_frontend_1.LengthDescription(undefined, undefined, appui_abstract_1.IconSpecUtilities.
|
|
55
|
+
const propertyDescription = new core_frontend_1.LengthDescription(undefined, undefined, appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(distance_svg_1.default));
|
|
56
56
|
return PopupManager_1.PopupManager.showInputEditor(el, pt, value, propertyDescription, onCommit, onCancel);
|
|
57
57
|
}
|
|
58
58
|
static showHeightEditor(el, pt, value, onCommit, onCancel) {
|
|
59
|
-
const propertyDescription = new core_frontend_1.LengthDescription(undefined, undefined, appui_abstract_1.IconSpecUtilities.
|
|
59
|
+
const propertyDescription = new core_frontend_1.LengthDescription(undefined, undefined, appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(height_2_svg_1.default));
|
|
60
60
|
return PopupManager_1.PopupManager.showInputEditor(el, pt, value, propertyDescription, onCommit, onCancel);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccuDrawPopupManager.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawPopupManager.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B,wDAA2E;AAC3E,0DAAsI;AAEtI,wDAAgE;AAChE,iDAAqD;AACrD,uDAAoD;AACpD,uDAAoD;AAEpD,
|
|
1
|
+
{"version":3,"file":"AccuDrawPopupManager.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/AccuDrawPopupManager.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/** @packageDocumentation\r\n * @module AccuDraw\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { XAndY } from \"@itwin/core-geometry\";\r\nimport { AngleDescription, LengthDescription } from \"@itwin/core-frontend\";\r\nimport { AbstractMenuItemProps, IconSpecUtilities, OnCancelFunc, OnNumberCommitFunc, OnValueCommitFunc } from \"@itwin/appui-abstract\";\r\n\r\nimport { PopupInfo, PopupManager } from \"../popup/PopupManager\";\r\nimport { MenuItemHelpers } from \"../shared/MenuItem\";\r\nimport { CalculatorPopup } from \"./CalculatorPopup\";\r\nimport { MenuButtonPopup } from \"./MenuButtonPopup\";\r\n\r\nimport angleIcon from \"./angle.svg\";\r\nimport lengthIcon from \"./distance.svg\";\r\nimport heightIcon from \"./height-2.svg\";\r\n\r\n/** AccuDraw Popup Manager class\r\n * @alpha\r\n */\r\nexport class AccuDrawPopupManager {\r\n private static _calculatorId = \"Calculator\";\r\n\r\n public static showMenuButton(id: string, el: HTMLElement, pt: XAndY, menuItemsProps: AbstractMenuItemProps[]): boolean {\r\n const menuItems = MenuItemHelpers.createMenuItems(menuItemsProps);\r\n const menuContent = MenuItemHelpers.createMenuItemNodes(menuItems);\r\n\r\n const component = (\r\n <MenuButtonPopup id={id} el={el} pt={pt} offset={PopupManager.defaultOffset}\r\n content={menuContent} />\r\n );\r\n\r\n const popupInfo: PopupInfo = {\r\n id, pt, component, parentDocument: el.ownerDocument,\r\n };\r\n PopupManager.addOrUpdatePopup(popupInfo);\r\n\r\n return true;\r\n }\r\n\r\n public static hideMenuButton(id: string): boolean {\r\n return PopupManager.removePopup(id);\r\n }\r\n\r\n public static showCalculator(el: HTMLElement, pt: XAndY, initialValue: number, resultIcon: string, onOk: OnNumberCommitFunc, onCancel: OnCancelFunc): boolean {\r\n const id = AccuDrawPopupManager._calculatorId;\r\n const component = (\r\n <CalculatorPopup id={id} el={el} pt={pt} offset={PopupManager.defaultOffset}\r\n initialValue={initialValue} resultIcon={resultIcon} onOk={onOk} onCancel={onCancel} />\r\n );\r\n\r\n const popupInfo: PopupInfo = {\r\n id, pt, component, parentDocument: el.ownerDocument,\r\n };\r\n PopupManager.addOrUpdatePopup(popupInfo);\r\n\r\n return true;\r\n }\r\n\r\n public static hideCalculator(): boolean {\r\n return PopupManager.removePopup(AccuDrawPopupManager._calculatorId);\r\n }\r\n\r\n public static showAngleEditor(el: HTMLElement, pt: XAndY, value: number, onCommit: OnNumberCommitFunc, onCancel: OnCancelFunc): boolean {\r\n const propertyDescription = new AngleDescription(undefined, undefined, IconSpecUtilities.createWebComponentIconSpec(angleIcon));\r\n return PopupManager.showInputEditor(el, pt, value, propertyDescription, onCommit as OnValueCommitFunc, onCancel);\r\n }\r\n\r\n public static showLengthEditor(el: HTMLElement, pt: XAndY, value: number, onCommit: OnNumberCommitFunc, onCancel: OnCancelFunc): boolean {\r\n const propertyDescription = new LengthDescription(undefined, undefined, IconSpecUtilities.createWebComponentIconSpec(lengthIcon));\r\n return PopupManager.showInputEditor(el, pt, value, propertyDescription, onCommit as OnValueCommitFunc, onCancel);\r\n }\r\n\r\n public static showHeightEditor(el: HTMLElement, pt: XAndY, value: number, onCommit: OnNumberCommitFunc, onCancel: OnCancelFunc): boolean {\r\n const propertyDescription = new LengthDescription(undefined, undefined, IconSpecUtilities.createWebComponentIconSpec(heightIcon));\r\n return PopupManager.showInputEditor(el, pt, value, propertyDescription, onCommit as OnValueCommitFunc, onCancel);\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calculator.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAE3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"Calculator.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,mBAAmB,CAAC;AAE3B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAqB,YAAY,EAAE,kBAAkB,EAAc,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAsB,MAAM,oBAAoB,CAAC;AAO1E,aAAa;AACb,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC7B,yDAAyD;IACzD,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,YAAY,CAAC;IAExB,2CAA2C;IAC3C,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAED,UAAU,eAAe;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,gBAAgB;AAChB,oBAAY,oBAAoB,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AAEnE,aAAa;AACb,qBAAa,UAAW,SAAQ,KAAK,CAAC,aAAa,CAAC,eAAe,EAAE,eAAe,CAAC;IACnF,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,cAAc,CAAS;IAE/B,gBAAgB;IAChB,gBAAuB,YAAY,EAAE,oBAAoB,CAEvD;gBAEU,KAAK,EAAE,eAAe;IAYlC,OAAO,CAAC,mBAAmB,CAIzB;IAEF,OAAO,CAAC,sBAAsB,CAY5B;IAEF,OAAO,CAAC,SAAS,CAEf;IAEF,OAAO,CAAC,GAAG;IAQX,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,SAAS;IAKD,iBAAiB;IAIjC,OAAO,CAAC,aAAa;IAKL,MAAM;IAwCtB,OAAO,CAAC,cAAc,CA0DpB;CAEH"}
|
|
@@ -16,7 +16,7 @@ const core_react_1 = require("@itwin/core-react");
|
|
|
16
16
|
const itwinui_react_1 = require("@itwin/itwinui-react");
|
|
17
17
|
const CalculatorEngine_1 = require("./CalculatorEngine");
|
|
18
18
|
const SquareButton_1 = require("./SquareButton");
|
|
19
|
-
const
|
|
19
|
+
const backspace_svg_1 = require("./backspace.svg");
|
|
20
20
|
/** @alpha */
|
|
21
21
|
class Calculator extends React.PureComponent {
|
|
22
22
|
constructor(props) {
|
|
@@ -162,12 +162,13 @@ Calculator.defaultProps = {
|
|
|
162
162
|
};
|
|
163
163
|
class CalculatorKeyPad extends React.PureComponent {
|
|
164
164
|
render() {
|
|
165
|
+
const iconSpec = appui_abstract_1.IconSpecUtilities.createWebComponentIconSpec(backspace_svg_1.default);
|
|
165
166
|
return (React.createElement("div", { className: (0, classnames_1.default)("uifw-calculator-button-grid") },
|
|
166
167
|
React.createElement(OperatorButton, { operator: CalculatorEngine_1.CalculatorOperator.ClearAll, onClick: this.props.onOperatorClick }, "AC"),
|
|
167
168
|
React.createElement(OperatorButton, { operator: CalculatorEngine_1.CalculatorOperator.Clear, onClick: this.props.onOperatorClick }, "C"),
|
|
168
169
|
React.createElement(OperatorButton, { operator: CalculatorEngine_1.CalculatorOperator.Backspace, onClick: this.props.onOperatorClick },
|
|
169
170
|
React.createElement("div", { className: "uifw-calculator-button-svg" },
|
|
170
|
-
React.createElement(core_react_1.
|
|
171
|
+
React.createElement(core_react_1.Icon, { iconSpec: iconSpec }))),
|
|
171
172
|
React.createElement(OperatorButton, { operator: CalculatorEngine_1.CalculatorOperator.Divide, onClick: this.props.onOperatorClick, className: "uifw-calculator-large-font" }, "\u00F7"),
|
|
172
173
|
React.createElement(ValueButton, { keyChar: "7", onClick: this.props.onValueClick }),
|
|
173
174
|
React.createElement(ValueButton, { keyChar: "8", onClick: this.props.onValueClick }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calculator.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.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/** @packageDocumentation\r\n * @module AccuDraw\r\n */\r\n\r\nimport \"./Calculator.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { OnCancelFunc, OnNumberCommitFunc, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Icon, IconInput, Omit, SvgSprite } from \"@itwin/core-react\";\r\nimport { Button, Input } from \"@itwin/itwinui-react\";\r\nimport { CalculatorEngine, CalculatorOperator } from \"./CalculatorEngine\";\r\nimport { SquareButton, SquareButtonProps } from \"./SquareButton\";\r\n\r\nimport backspaceIcon from \"./backspace.svg?sprite\";\r\n\r\n// cSpell:ignore plusmn\r\n\r\n/** @alpha */\r\nexport interface CalculatorProps extends CommonProps {\r\n /** Initial value */\r\n initialValue?: number;\r\n /** Icon to display beside the calculated result */\r\n resultIcon?: React.ReactNode;\r\n /** A function to be run when the OK button is clicked */\r\n onOk?: OnNumberCommitFunc;\r\n /** A function to be run when the Cancel button is clicked */\r\n onCancel?: OnCancelFunc;\r\n\r\n /** @internal Calculator state machine. */\r\n engine: CalculatorEngine;\r\n}\r\n\r\ninterface CalculatorState {\r\n displayValue: string;\r\n}\r\n\r\n/** @internal */\r\nexport type CalculatorPropsProps = Pick<CalculatorProps, \"engine\">;\r\n\r\n/** @alpha */\r\nexport class Calculator extends React.PureComponent<CalculatorProps, CalculatorState> {\r\n private _mainDiv = React.createRef<HTMLDivElement>();\r\n private _equalsClicked = false;\r\n\r\n /** @internal */\r\n public static readonly defaultProps: CalculatorPropsProps = {\r\n engine: new CalculatorEngine(),\r\n };\r\n\r\n constructor(props: CalculatorProps) {\r\n super(props);\r\n\r\n let displayValue = \"0\";\r\n if (this.props.initialValue)\r\n displayValue = this.props.engine.processValue(this.props.initialValue.toString());\r\n\r\n this.state = {\r\n displayValue,\r\n };\r\n }\r\n\r\n private _onValueButtonClick = (keyChar: string) => {\r\n const displayValue = this.props.engine.processValue(keyChar);\r\n this._mainDivFocus();\r\n this.setState({ displayValue });\r\n };\r\n\r\n private _onOperatorButtonClick = (operator: CalculatorOperator) => {\r\n if (operator === CalculatorOperator.Clear && this._equalsClicked)\r\n operator = CalculatorOperator.ClearAll;\r\n\r\n const displayValue = this.props.engine.processOperator(operator);\r\n this._mainDivFocus();\r\n this.setState({ displayValue });\r\n\r\n if (operator === CalculatorOperator.Equals)\r\n this._equalsClicked = true;\r\n else if (operator === CalculatorOperator.ClearAll)\r\n this._equalsClicked = false;\r\n };\r\n\r\n private _handleOk = (_event: React.MouseEvent): void => {\r\n this._ok();\r\n };\r\n\r\n private _ok() {\r\n // istanbul ignore else\r\n if (this.props.onOk) {\r\n this.props.onOk(this.props.engine.result);\r\n }\r\n this._clearAll();\r\n }\r\n\r\n private _handleCancel = (_event: React.MouseEvent): void => {\r\n this._cancel();\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n this._clearAll();\r\n }\r\n\r\n private _clearAll() {\r\n this.props.engine.clearAll();\r\n this._equalsClicked = false;\r\n }\r\n\r\n public override componentDidMount() {\r\n this._mainDivFocus();\r\n }\r\n\r\n private _mainDivFocus() {\r\n if (this._mainDiv.current)\r\n this._mainDiv.current.focus();\r\n }\r\n\r\n public override render() {\r\n const { className, resultIcon, onOk, onCancel, initialValue, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const classNames = classnames(\r\n \"uifw-calculator\",\r\n className,\r\n );\r\n\r\n const topSection = this.props.resultIcon ?\r\n <IconInput containerClassName=\"uifw-calculator-top-input\"\r\n value={this.state.displayValue} readOnly={true} icon={this.props.resultIcon} /> :\r\n <Input value={this.state.displayValue} readOnly={true} size=\"small\" />;\r\n\r\n return (\r\n // The event handler is only being used to capture bubbled events\r\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\r\n <div {...props} ref={this._mainDiv} tabIndex={-1} className={classNames} onKeyDown={this._handleKeyDown}>\r\n <div className=\"uifw-calculator-top\">\r\n {topSection}\r\n </div>\r\n <CalculatorKeyPad onValueClick={this._onValueButtonClick} onOperatorClick={this._onOperatorButtonClick} />\r\n <div className=\"uifw-calculator-bottom-buttons\">\r\n <Button\r\n className={classnames(\"uifw-calculator-large-button\", \"uifw-calculator-ok-button\")}\r\n styleType=\"cta\"\r\n onClick={this._handleOk}\r\n >\r\n <Icon iconSpec=\"icon-checkmark\" />\r\n </Button>\r\n <Button\r\n className={classnames(\"uifw-calculator-large-button\", \"uifw-calculator-cancel-button\")}\r\n onClick={this._handleCancel}\r\n >\r\n <Icon iconSpec=\"icon-remove\" />\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\r\n switch (event.key) {\r\n case \"0\":\r\n case \"1\":\r\n case \"2\":\r\n case \"3\":\r\n case \"4\":\r\n case \"5\":\r\n case \"6\":\r\n case \"7\":\r\n case \"8\":\r\n case \"9\":\r\n this._onValueButtonClick(event.key);\r\n break;\r\n case \"a\":\r\n case \"A\":\r\n this._onOperatorButtonClick(CalculatorOperator.ClearAll);\r\n break;\r\n case \"c\":\r\n case \"C\":\r\n case SpecialKey.Clear:\r\n this._onOperatorButtonClick(CalculatorOperator.Clear);\r\n break;\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n case SpecialKey.Backspace:\r\n this._onOperatorButtonClick(CalculatorOperator.Backspace);\r\n break;\r\n case \"/\":\r\n case SpecialKey.Divide:\r\n this._onOperatorButtonClick(CalculatorOperator.Divide);\r\n break;\r\n case \"*\":\r\n case SpecialKey.Multiply:\r\n this._onOperatorButtonClick(CalculatorOperator.Multiply);\r\n break;\r\n case \"-\":\r\n case SpecialKey.Subtract:\r\n this._onOperatorButtonClick(CalculatorOperator.Subtract);\r\n break;\r\n case \"+\":\r\n case SpecialKey.Add:\r\n this._onOperatorButtonClick(CalculatorOperator.Add);\r\n break;\r\n case \".\":\r\n case SpecialKey.Decimal:\r\n this._onOperatorButtonClick(CalculatorOperator.Decimal);\r\n break;\r\n case \"=\":\r\n this._onOperatorButtonClick(CalculatorOperator.Equals);\r\n break;\r\n case SpecialKey.Enter:\r\n if (!this._equalsClicked)\r\n this._onOperatorButtonClick(CalculatorOperator.Equals);\r\n this._ok();\r\n break;\r\n }\r\n };\r\n\r\n}\r\n\r\ninterface CalculatorKeyPadProps extends CommonProps {\r\n /** A function to be run when a value is clicked */\r\n onValueClick: (key: string) => void;\r\n /** A function to be run when a value is clicked */\r\n onOperatorClick: (operator: CalculatorOperator) => void;\r\n}\r\n\r\nclass CalculatorKeyPad extends React.PureComponent<CalculatorKeyPadProps> {\r\n public override render() {\r\n\r\n return (\r\n <div className={classnames(\"uifw-calculator-button-grid\")}>\r\n <OperatorButton operator={CalculatorOperator.ClearAll} onClick={this.props.onOperatorClick}>AC</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Clear} onClick={this.props.onOperatorClick}>C</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Backspace} onClick={this.props.onOperatorClick}>\r\n <div className=\"uifw-calculator-button-svg\">\r\n <SvgSprite src={backspaceIcon} />\r\n </div>\r\n </OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Divide} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">÷</OperatorButton>\r\n\r\n <ValueButton keyChar=\"7\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"8\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"9\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Multiply} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">×</OperatorButton>\r\n\r\n <ValueButton keyChar=\"4\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"5\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"6\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Subtract} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">−</OperatorButton>\r\n\r\n <ValueButton keyChar=\"1\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"2\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"3\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Add} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">+</OperatorButton>\r\n\r\n <ValueButton keyChar=\"0\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.NegPos} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">±</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Decimal} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">.</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Equals} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">=</OperatorButton>\r\n <span />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface ValueButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\r\n /** Key to display */\r\n keyChar: string;\r\n /** A function to be run when the element is clicked */\r\n onClick: (key: string) => void;\r\n}\r\n\r\nclass ValueButton extends React.PureComponent<ValueButtonProps> {\r\n\r\n private _handleOnClick = (_event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\r\n this.props.onClick(this.props.keyChar);\r\n };\r\n\r\n public override render() {\r\n const { className, keyChar, onClick, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const itemClassNames = classnames(\r\n \"uifw-calculator-item\",\r\n className,\r\n );\r\n\r\n return (\r\n <SquareButton {...props} className={itemClassNames} onClick={this._handleOnClick} >\r\n {keyChar}\r\n </SquareButton >\r\n );\r\n }\r\n}\r\n\r\ninterface OperatorButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\r\n /** Key to display */\r\n operator: CalculatorOperator;\r\n /** A function to be run when the element is clicked */\r\n onClick: (operator: CalculatorOperator) => void;\r\n}\r\n\r\nclass OperatorButton extends React.PureComponent<OperatorButtonProps> {\r\n\r\n private _handleOnClick = (_event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\r\n this.props.onClick(this.props.operator);\r\n };\r\n\r\n public override render() {\r\n const { className, children, operator, onClick, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const itemClassNames = classnames(\r\n \"uifw-calculator-item\",\r\n className,\r\n );\r\n\r\n return (\r\n <SquareButton {...props} className={itemClassNames} onClick={this._handleOnClick}>\r\n {children}\r\n </SquareButton>\r\n );\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"Calculator.js","sourceRoot":"","sources":["../../../../src/appui-react/accudraw/Calculator.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/** @packageDocumentation\r\n * @module AccuDraw\r\n */\r\n\r\nimport \"./Calculator.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { IconSpecUtilities, OnCancelFunc, OnNumberCommitFunc, SpecialKey } from \"@itwin/appui-abstract\";\r\nimport { CommonProps, Icon, IconInput, Omit } from \"@itwin/core-react\";\r\nimport { Button, Input } from \"@itwin/itwinui-react\";\r\nimport { CalculatorEngine, CalculatorOperator } from \"./CalculatorEngine\";\r\nimport { SquareButton, SquareButtonProps } from \"./SquareButton\";\r\n\r\nimport backspaceIcon from \"./backspace.svg\";\r\n\r\n// cSpell:ignore plusmn\r\n\r\n/** @alpha */\r\nexport interface CalculatorProps extends CommonProps {\r\n /** Initial value */\r\n initialValue?: number;\r\n /** Icon to display beside the calculated result */\r\n resultIcon?: React.ReactNode;\r\n /** A function to be run when the OK button is clicked */\r\n onOk?: OnNumberCommitFunc;\r\n /** A function to be run when the Cancel button is clicked */\r\n onCancel?: OnCancelFunc;\r\n\r\n /** @internal Calculator state machine. */\r\n engine: CalculatorEngine;\r\n}\r\n\r\ninterface CalculatorState {\r\n displayValue: string;\r\n}\r\n\r\n/** @internal */\r\nexport type CalculatorPropsProps = Pick<CalculatorProps, \"engine\">;\r\n\r\n/** @alpha */\r\nexport class Calculator extends React.PureComponent<CalculatorProps, CalculatorState> {\r\n private _mainDiv = React.createRef<HTMLDivElement>();\r\n private _equalsClicked = false;\r\n\r\n /** @internal */\r\n public static readonly defaultProps: CalculatorPropsProps = {\r\n engine: new CalculatorEngine(),\r\n };\r\n\r\n constructor(props: CalculatorProps) {\r\n super(props);\r\n\r\n let displayValue = \"0\";\r\n if (this.props.initialValue)\r\n displayValue = this.props.engine.processValue(this.props.initialValue.toString());\r\n\r\n this.state = {\r\n displayValue,\r\n };\r\n }\r\n\r\n private _onValueButtonClick = (keyChar: string) => {\r\n const displayValue = this.props.engine.processValue(keyChar);\r\n this._mainDivFocus();\r\n this.setState({ displayValue });\r\n };\r\n\r\n private _onOperatorButtonClick = (operator: CalculatorOperator) => {\r\n if (operator === CalculatorOperator.Clear && this._equalsClicked)\r\n operator = CalculatorOperator.ClearAll;\r\n\r\n const displayValue = this.props.engine.processOperator(operator);\r\n this._mainDivFocus();\r\n this.setState({ displayValue });\r\n\r\n if (operator === CalculatorOperator.Equals)\r\n this._equalsClicked = true;\r\n else if (operator === CalculatorOperator.ClearAll)\r\n this._equalsClicked = false;\r\n };\r\n\r\n private _handleOk = (_event: React.MouseEvent): void => {\r\n this._ok();\r\n };\r\n\r\n private _ok() {\r\n // istanbul ignore else\r\n if (this.props.onOk) {\r\n this.props.onOk(this.props.engine.result);\r\n }\r\n this._clearAll();\r\n }\r\n\r\n private _handleCancel = (_event: React.MouseEvent): void => {\r\n this._cancel();\r\n };\r\n\r\n private _cancel() {\r\n // istanbul ignore else\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n }\r\n this._clearAll();\r\n }\r\n\r\n private _clearAll() {\r\n this.props.engine.clearAll();\r\n this._equalsClicked = false;\r\n }\r\n\r\n public override componentDidMount() {\r\n this._mainDivFocus();\r\n }\r\n\r\n private _mainDivFocus() {\r\n if (this._mainDiv.current)\r\n this._mainDiv.current.focus();\r\n }\r\n\r\n public override render() {\r\n const { className, resultIcon, onOk, onCancel, initialValue, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const classNames = classnames(\r\n \"uifw-calculator\",\r\n className,\r\n );\r\n\r\n const topSection = this.props.resultIcon ?\r\n <IconInput containerClassName=\"uifw-calculator-top-input\"\r\n value={this.state.displayValue} readOnly={true} icon={this.props.resultIcon} /> :\r\n <Input value={this.state.displayValue} readOnly={true} size=\"small\" />;\r\n\r\n return (\r\n // The event handler is only being used to capture bubbled events\r\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\r\n <div {...props} ref={this._mainDiv} tabIndex={-1} className={classNames} onKeyDown={this._handleKeyDown}>\r\n <div className=\"uifw-calculator-top\">\r\n {topSection}\r\n </div>\r\n <CalculatorKeyPad onValueClick={this._onValueButtonClick} onOperatorClick={this._onOperatorButtonClick} />\r\n <div className=\"uifw-calculator-bottom-buttons\">\r\n <Button\r\n className={classnames(\"uifw-calculator-large-button\", \"uifw-calculator-ok-button\")}\r\n styleType=\"cta\"\r\n onClick={this._handleOk}\r\n >\r\n <Icon iconSpec=\"icon-checkmark\" />\r\n </Button>\r\n <Button\r\n className={classnames(\"uifw-calculator-large-button\", \"uifw-calculator-cancel-button\")}\r\n onClick={this._handleCancel}\r\n >\r\n <Icon iconSpec=\"icon-remove\" />\r\n </Button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n private _handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>): void => {\r\n switch (event.key) {\r\n case \"0\":\r\n case \"1\":\r\n case \"2\":\r\n case \"3\":\r\n case \"4\":\r\n case \"5\":\r\n case \"6\":\r\n case \"7\":\r\n case \"8\":\r\n case \"9\":\r\n this._onValueButtonClick(event.key);\r\n break;\r\n case \"a\":\r\n case \"A\":\r\n this._onOperatorButtonClick(CalculatorOperator.ClearAll);\r\n break;\r\n case \"c\":\r\n case \"C\":\r\n case SpecialKey.Clear:\r\n this._onOperatorButtonClick(CalculatorOperator.Clear);\r\n break;\r\n case SpecialKey.Escape:\r\n this._cancel();\r\n break;\r\n case SpecialKey.Backspace:\r\n this._onOperatorButtonClick(CalculatorOperator.Backspace);\r\n break;\r\n case \"/\":\r\n case SpecialKey.Divide:\r\n this._onOperatorButtonClick(CalculatorOperator.Divide);\r\n break;\r\n case \"*\":\r\n case SpecialKey.Multiply:\r\n this._onOperatorButtonClick(CalculatorOperator.Multiply);\r\n break;\r\n case \"-\":\r\n case SpecialKey.Subtract:\r\n this._onOperatorButtonClick(CalculatorOperator.Subtract);\r\n break;\r\n case \"+\":\r\n case SpecialKey.Add:\r\n this._onOperatorButtonClick(CalculatorOperator.Add);\r\n break;\r\n case \".\":\r\n case SpecialKey.Decimal:\r\n this._onOperatorButtonClick(CalculatorOperator.Decimal);\r\n break;\r\n case \"=\":\r\n this._onOperatorButtonClick(CalculatorOperator.Equals);\r\n break;\r\n case SpecialKey.Enter:\r\n if (!this._equalsClicked)\r\n this._onOperatorButtonClick(CalculatorOperator.Equals);\r\n this._ok();\r\n break;\r\n }\r\n };\r\n\r\n}\r\n\r\ninterface CalculatorKeyPadProps extends CommonProps {\r\n /** A function to be run when a value is clicked */\r\n onValueClick: (key: string) => void;\r\n /** A function to be run when a value is clicked */\r\n onOperatorClick: (operator: CalculatorOperator) => void;\r\n}\r\n\r\nclass CalculatorKeyPad extends React.PureComponent<CalculatorKeyPadProps> {\r\n public override render() {\r\n const iconSpec = IconSpecUtilities.createWebComponentIconSpec(backspaceIcon);\r\n\r\n return (\r\n <div className={classnames(\"uifw-calculator-button-grid\")}>\r\n <OperatorButton operator={CalculatorOperator.ClearAll} onClick={this.props.onOperatorClick}>AC</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Clear} onClick={this.props.onOperatorClick}>C</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Backspace} onClick={this.props.onOperatorClick}>\r\n <div className=\"uifw-calculator-button-svg\">\r\n <Icon iconSpec={iconSpec} />\r\n </div>\r\n </OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Divide} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">÷</OperatorButton>\r\n\r\n <ValueButton keyChar=\"7\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"8\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"9\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Multiply} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">×</OperatorButton>\r\n\r\n <ValueButton keyChar=\"4\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"5\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"6\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Subtract} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">−</OperatorButton>\r\n\r\n <ValueButton keyChar=\"1\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"2\" onClick={this.props.onValueClick} />\r\n <ValueButton keyChar=\"3\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.Add} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">+</OperatorButton>\r\n\r\n <ValueButton keyChar=\"0\" onClick={this.props.onValueClick} />\r\n <OperatorButton operator={CalculatorOperator.NegPos} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">±</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Decimal} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">.</OperatorButton>\r\n <OperatorButton operator={CalculatorOperator.Equals} onClick={this.props.onOperatorClick}\r\n className=\"uifw-calculator-large-font\">=</OperatorButton>\r\n <span />\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface ValueButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\r\n /** Key to display */\r\n keyChar: string;\r\n /** A function to be run when the element is clicked */\r\n onClick: (key: string) => void;\r\n}\r\n\r\nclass ValueButton extends React.PureComponent<ValueButtonProps> {\r\n\r\n private _handleOnClick = (_event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\r\n this.props.onClick(this.props.keyChar);\r\n };\r\n\r\n public override render() {\r\n const { className, keyChar, onClick, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const itemClassNames = classnames(\r\n \"uifw-calculator-item\",\r\n className,\r\n );\r\n\r\n return (\r\n <SquareButton {...props} className={itemClassNames} onClick={this._handleOnClick} >\r\n {keyChar}\r\n </SquareButton >\r\n );\r\n }\r\n}\r\n\r\ninterface OperatorButtonProps extends Omit<SquareButtonProps, \"onClick\"> {\r\n /** Key to display */\r\n operator: CalculatorOperator;\r\n /** A function to be run when the element is clicked */\r\n onClick: (operator: CalculatorOperator) => void;\r\n}\r\n\r\nclass OperatorButton extends React.PureComponent<OperatorButtonProps> {\r\n\r\n private _handleOnClick = (_event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\r\n this.props.onClick(this.props.operator);\r\n };\r\n\r\n public override render() {\r\n const { className, children, operator, onClick, ...props } = this.props; // eslint-disable-line @typescript-eslint/no-unused-vars\r\n\r\n const itemClassNames = classnames(\r\n \"uifw-calculator-item\",\r\n className,\r\n );\r\n\r\n return (\r\n <SquareButton {...props} className={itemClassNames} onClick={this._handleOnClick}>\r\n {children}\r\n </SquareButton>\r\n );\r\n }\r\n}\r\n"]}
|
|
@@ -94,7 +94,7 @@ class ChildWindowManager {
|
|
|
94
94
|
});
|
|
95
95
|
setTimeout(() => {
|
|
96
96
|
(0, CopyStyles_1.copyStyles)(childWindow.document);
|
|
97
|
-
|
|
97
|
+
setTimeout(() => {
|
|
98
98
|
ReactDOM.render(React.createElement(react_redux_1.Provider, { store: StateManager_1.StateManager.store },
|
|
99
99
|
React.createElement(useUiStateStorage_1.UiStateStorageHandler, null,
|
|
100
100
|
React.createElement(ThemeManager_1.ThemeManager, null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChildWindowManager.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/ChildWindowManager.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\r\n/** @packageDocumentation\r\n * @module ChildWindowManager\r\n */\r\n\r\nimport \"./ChildWindowManager.scss\";\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { copyStyles } from \"./CopyStyles\";\r\nimport { Provider } from \"react-redux\";\r\nimport { StateManager } from \"../redux/StateManager\";\r\nimport { UiStateStorageHandler } from \"../uistate/useUiStateStorage\";\r\nimport { PopupRenderer } from \"../popup/PopupManager\";\r\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\r\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\r\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\r\nimport { FrameworkVersion } from \"../hooks/useFrameworkVersion\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { ThemeManager } from \"../theme/ThemeManager\";\r\n\r\nconst childHtml = `<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta charset=\"utf-8\" />\r\n <style>\r\n html,\r\n body {\r\n height: 100%;\r\n width: 100%;\r\n margin: 0;\r\n overflow: hidden;\r\n }\r\n #root {\r\n height: 100%;\r\n }\r\n </style>\r\n</head>\r\n<body>\r\n <noscript>You need to enable JavaScript to run this app.</noscript>\r\n <div id=\"root\"></div>\r\n</body>\r\n</html>`;\r\n\r\n/** @public */\r\nexport interface OpenChildWindowInfo {\r\n childWindowId: string;\r\n window: Window;\r\n parentWindow: Window;\r\n}\r\n\r\n/** @public */\r\nexport interface ChildWindowLocationProps {\r\n width: number;\r\n height: number;\r\n left: number;\r\n top: number;\r\n}\r\n\r\n/** Supports opening a child browser window from the main application window. The child window is managed by the main application\r\n * and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.\r\n * See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)\r\n * @public */\r\nexport class ChildWindowManager {\r\n private _openChildWindows: OpenChildWindowInfo[] = [];\r\n\r\n public get openChildWindows() {\r\n return this._openChildWindows;\r\n }\r\n\r\n public findChildWindow(childWindowId: string | undefined): OpenChildWindowInfo | undefined {\r\n if (undefined === childWindowId)\r\n return undefined;\r\n\r\n return this.openChildWindows.find((openWindow) => openWindow.childWindowId === childWindowId);\r\n }\r\n\r\n public findChildWindowId(contentWindow: Window | undefined | null): string | undefined {\r\n if (!contentWindow)\r\n return undefined;\r\n\r\n const childWindow = this.openChildWindows.find((openWindow) => openWindow.window === contentWindow);\r\n return childWindow?.childWindowId;\r\n }\r\n\r\n // istanbul ignore next\r\n private renderChildWindowContents(childWindow: Window, childWindowId: string, content: React.ReactNode) {\r\n const reactConnectionDiv = childWindow.document.getElementById(\"root\");\r\n if (reactConnectionDiv) {\r\n // set openChildWindows now so components can use it when they mount\r\n this._openChildWindows.push({\r\n childWindowId,\r\n window: childWindow,\r\n parentWindow: window,\r\n });\r\n\r\n setTimeout(() => {\r\n copyStyles(childWindow.document);\r\n setImmediate(() => {\r\n ReactDOM.render(\r\n <Provider store={StateManager.store} >\r\n <UiStateStorageHandler>\r\n <ThemeManager>\r\n <FrameworkVersion>\r\n <div className=\"uifw-child-window-container-host\">\r\n <PopupRenderer />\r\n <ModalDialogRenderer />\r\n <ModelessDialogRenderer />\r\n <CursorPopupMenu />\r\n <div className=\"uifw-child-window-container nz-widget-widget\">\r\n {content}\r\n </div>\r\n </div>\r\n </FrameworkVersion>\r\n </ThemeManager>\r\n </UiStateStorageHandler>\r\n </Provider>,\r\n reactConnectionDiv\r\n );\r\n });\r\n });\r\n\r\n childWindow.onbeforeunload = () => {\r\n const frontStageDef = FrontstageManager.activeFrontstageDef;\r\n if (frontStageDef) {\r\n void frontStageDef.saveChildWindowSizeAndPosition(childWindowId, childWindow).then(() => {\r\n this.closeChildWindow(childWindowId, false);\r\n });\r\n }\r\n };\r\n }\r\n }\r\n\r\n /** Close all child/pop-out windows. This typically is called when the frontstage is changed. */\r\n public closeAllChildWindows() {\r\n // istanbul ignore next\r\n this.openChildWindows.forEach((openChildWindow) => openChildWindow.window.close());\r\n this._openChildWindows = [];\r\n }\r\n\r\n public closeChildWindow = (childWindowId: string, processWindowClose = true) => {\r\n const windowIndex = this.openChildWindows.findIndex((openWindow) => openWindow.childWindowId === childWindowId);\r\n if (-1 === windowIndex)\r\n return false;\r\n const childWindow = this.openChildWindows[windowIndex];\r\n this.openChildWindows.splice(windowIndex, 1);\r\n if (processWindowClose) {\r\n childWindow.window.close();\r\n } else {\r\n // call the following to convert popout to docked widget\r\n const frontStageDef = FrontstageManager.activeFrontstageDef;\r\n frontStageDef && frontStageDef.dockPopoutWidgetContainer(childWindowId);\r\n }\r\n return true;\r\n };\r\n\r\n // istanbul ignore next\r\n private adjustWidowLocation(location: ChildWindowLocationProps, center?: boolean): ChildWindowLocationProps {\r\n const outLocation = { ...location };\r\n if (0 === location.top && 0 === location.left) {\r\n center = center ?? true;\r\n const windowTop = window.top ?? window;\r\n\r\n // Prepare position of the new window to be centered against the 'parent' window.\r\n if (center) {\r\n outLocation.left =\r\n windowTop.outerWidth / 2 + windowTop.screenX - location.width / 2;\r\n outLocation.top =\r\n windowTop.outerHeight / 2 + windowTop.screenY - location.height / 2;\r\n } else {\r\n if (undefined !== window.screenLeft && undefined !== window.screenTop) {\r\n outLocation.top = window.screenTop + location.top;\r\n outLocation.left = window.screenLeft + location.left;\r\n }\r\n }\r\n }\r\n return outLocation;\r\n }\r\n\r\n // istanbul ignore next\r\n public openChildWindow(childWindowId: string, title: string, content: React.ReactNode, location: ChildWindowLocationProps, useDefaultPopoutUrl?: boolean) {\r\n // first check to see if content is already open in child window\r\n if (this.openChildWindows.findIndex((openWindow) => openWindow.childWindowId === childWindowId) >= 0) {\r\n return false;\r\n }\r\n\r\n location = this.adjustWidowLocation(location);\r\n const url = useDefaultPopoutUrl ? \"/iTwinPopup.html\" : \"\";\r\n const childWindow = window.open(url, \"\", `width=${location.width},height=${location.height},left=${location.left},top=${location.top},menubar=no,resizable=yes,scrollbars=no,status=no,location=no`);\r\n if (!childWindow)\r\n return false;\r\n if (0 === url.length) {\r\n childWindow.document.write(childHtml);\r\n this.renderChildWindowContents(childWindow, childWindowId, content);\r\n } else {\r\n childWindow.addEventListener(\"load\", () => {\r\n childWindow.document.title = title;\r\n this.renderChildWindowContents(childWindow, childWindowId, content);\r\n }, false);\r\n }\r\n\r\n window.addEventListener(\"beforeunload\", () => {\r\n const frontStageDef = FrontstageManager.activeFrontstageDef;\r\n if (frontStageDef) {\r\n this.closeChildWindow(childWindowId, true);\r\n }\r\n }, false);\r\n\r\n return true;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ChildWindowManager.js","sourceRoot":"","sources":["../../../../src/appui-react/childwindow/ChildWindowManager.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\r\n/** @packageDocumentation\r\n * @module ChildWindowManager\r\n */\r\n\r\nimport \"./ChildWindowManager.scss\";\r\nimport * as React from \"react\";\r\nimport * as ReactDOM from \"react-dom\";\r\nimport { copyStyles } from \"./CopyStyles\";\r\nimport { Provider } from \"react-redux\";\r\nimport { StateManager } from \"../redux/StateManager\";\r\nimport { UiStateStorageHandler } from \"../uistate/useUiStateStorage\";\r\nimport { PopupRenderer } from \"../popup/PopupManager\";\r\nimport { ModelessDialogRenderer } from \"../dialog/ModelessDialogManager\";\r\nimport { ModalDialogRenderer } from \"../dialog/ModalDialogManager\";\r\nimport { CursorPopupMenu } from \"../cursor/cursormenu/CursorMenu\";\r\nimport { FrameworkVersion } from \"../hooks/useFrameworkVersion\";\r\nimport { FrontstageManager } from \"../frontstage/FrontstageManager\";\r\nimport { ThemeManager } from \"../theme/ThemeManager\";\r\n\r\nconst childHtml = `<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta charset=\"utf-8\" />\r\n <style>\r\n html,\r\n body {\r\n height: 100%;\r\n width: 100%;\r\n margin: 0;\r\n overflow: hidden;\r\n }\r\n #root {\r\n height: 100%;\r\n }\r\n </style>\r\n</head>\r\n<body>\r\n <noscript>You need to enable JavaScript to run this app.</noscript>\r\n <div id=\"root\"></div>\r\n</body>\r\n</html>`;\r\n\r\n/** @public */\r\nexport interface OpenChildWindowInfo {\r\n childWindowId: string;\r\n window: Window;\r\n parentWindow: Window;\r\n}\r\n\r\n/** @public */\r\nexport interface ChildWindowLocationProps {\r\n width: number;\r\n height: number;\r\n left: number;\r\n top: number;\r\n}\r\n\r\n/** Supports opening a child browser window from the main application window. The child window is managed by the main application\r\n * and is running in the same security context. The application must deliver the html file iTwinPopup.html along side its index.html.\r\n * See also: [Child Window Manager]($docs/learning/ui/appui-react/ChildWindows.md)\r\n * @public */\r\nexport class ChildWindowManager {\r\n private _openChildWindows: OpenChildWindowInfo[] = [];\r\n\r\n public get openChildWindows() {\r\n return this._openChildWindows;\r\n }\r\n\r\n public findChildWindow(childWindowId: string | undefined): OpenChildWindowInfo | undefined {\r\n if (undefined === childWindowId)\r\n return undefined;\r\n\r\n return this.openChildWindows.find((openWindow) => openWindow.childWindowId === childWindowId);\r\n }\r\n\r\n public findChildWindowId(contentWindow: Window | undefined | null): string | undefined {\r\n if (!contentWindow)\r\n return undefined;\r\n\r\n const childWindow = this.openChildWindows.find((openWindow) => openWindow.window === contentWindow);\r\n return childWindow?.childWindowId;\r\n }\r\n\r\n // istanbul ignore next\r\n private renderChildWindowContents(childWindow: Window, childWindowId: string, content: React.ReactNode) {\r\n const reactConnectionDiv = childWindow.document.getElementById(\"root\");\r\n if (reactConnectionDiv) {\r\n // set openChildWindows now so components can use it when they mount\r\n this._openChildWindows.push({\r\n childWindowId,\r\n window: childWindow,\r\n parentWindow: window,\r\n });\r\n\r\n setTimeout(() => {\r\n copyStyles(childWindow.document);\r\n setTimeout(() => {\r\n ReactDOM.render(\r\n <Provider store={StateManager.store} >\r\n <UiStateStorageHandler>\r\n <ThemeManager>\r\n <FrameworkVersion>\r\n <div className=\"uifw-child-window-container-host\">\r\n <PopupRenderer />\r\n <ModalDialogRenderer />\r\n <ModelessDialogRenderer />\r\n <CursorPopupMenu />\r\n <div className=\"uifw-child-window-container nz-widget-widget\">\r\n {content}\r\n </div>\r\n </div>\r\n </FrameworkVersion>\r\n </ThemeManager>\r\n </UiStateStorageHandler>\r\n </Provider>,\r\n reactConnectionDiv\r\n );\r\n });\r\n });\r\n\r\n childWindow.onbeforeunload = () => {\r\n const frontStageDef = FrontstageManager.activeFrontstageDef;\r\n if (frontStageDef) {\r\n void frontStageDef.saveChildWindowSizeAndPosition(childWindowId, childWindow).then(() => {\r\n this.closeChildWindow(childWindowId, false);\r\n });\r\n }\r\n };\r\n }\r\n }\r\n\r\n /** Close all child/pop-out windows. This typically is called when the frontstage is changed. */\r\n public closeAllChildWindows() {\r\n // istanbul ignore next\r\n this.openChildWindows.forEach((openChildWindow) => openChildWindow.window.close());\r\n this._openChildWindows = [];\r\n }\r\n\r\n public closeChildWindow = (childWindowId: string, processWindowClose = true) => {\r\n const windowIndex = this.openChildWindows.findIndex((openWindow) => openWindow.childWindowId === childWindowId);\r\n if (-1 === windowIndex)\r\n return false;\r\n const childWindow = this.openChildWindows[windowIndex];\r\n this.openChildWindows.splice(windowIndex, 1);\r\n if (processWindowClose) {\r\n childWindow.window.close();\r\n } else {\r\n // call the following to convert popout to docked widget\r\n const frontStageDef = FrontstageManager.activeFrontstageDef;\r\n frontStageDef && frontStageDef.dockPopoutWidgetContainer(childWindowId);\r\n }\r\n return true;\r\n };\r\n\r\n // istanbul ignore next\r\n private adjustWidowLocation(location: ChildWindowLocationProps, center?: boolean): ChildWindowLocationProps {\r\n const outLocation = { ...location };\r\n if (0 === location.top && 0 === location.left) {\r\n center = center ?? true;\r\n const windowTop = window.top ?? window;\r\n\r\n // Prepare position of the new window to be centered against the 'parent' window.\r\n if (center) {\r\n outLocation.left =\r\n windowTop.outerWidth / 2 + windowTop.screenX - location.width / 2;\r\n outLocation.top =\r\n windowTop.outerHeight / 2 + windowTop.screenY - location.height / 2;\r\n } else {\r\n if (undefined !== window.screenLeft && undefined !== window.screenTop) {\r\n outLocation.top = window.screenTop + location.top;\r\n outLocation.left = window.screenLeft + location.left;\r\n }\r\n }\r\n }\r\n return outLocation;\r\n }\r\n\r\n // istanbul ignore next\r\n public openChildWindow(childWindowId: string, title: string, content: React.ReactNode, location: ChildWindowLocationProps, useDefaultPopoutUrl?: boolean) {\r\n // first check to see if content is already open in child window\r\n if (this.openChildWindows.findIndex((openWindow) => openWindow.childWindowId === childWindowId) >= 0) {\r\n return false;\r\n }\r\n\r\n location = this.adjustWidowLocation(location);\r\n const url = useDefaultPopoutUrl ? \"/iTwinPopup.html\" : \"\";\r\n const childWindow = window.open(url, \"\", `width=${location.width},height=${location.height},left=${location.left},top=${location.top},menubar=no,resizable=yes,scrollbars=no,status=no,location=no`);\r\n if (!childWindow)\r\n return false;\r\n if (0 === url.length) {\r\n childWindow.document.write(childHtml);\r\n this.renderChildWindowContents(childWindow, childWindowId, content);\r\n } else {\r\n childWindow.addEventListener(\"load\", () => {\r\n childWindow.document.title = title;\r\n this.renderChildWindowContents(childWindow, childWindowId, content);\r\n }, false);\r\n }\r\n\r\n window.addEventListener(\"beforeunload\", () => {\r\n const frontStageDef = FrontstageManager.activeFrontstageDef;\r\n if (frontStageDef) {\r\n this.closeChildWindow(childWindowId, true);\r\n }\r\n }, false);\r\n\r\n return true;\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":"AAKA;;GAEG;AAKH,OAAO,EAAa,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAuB,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAEL,oBAAoB,EAAE,aAAa,EACpC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAe,MAAM,8BAA8B,CAAC;AAG3F,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAc,eAAe,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"FrontstageDef.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/frontstage/FrontstageDef.tsx"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,6 @@ const Frontstage_1 = require("./Frontstage");
|
|
|
24
24
|
const FrontstageManager_1 = require("./FrontstageManager");
|
|
25
25
|
const TimeTracker_1 = require("../configurableui/TimeTracker");
|
|
26
26
|
const PopoutWidget_1 = require("../childwindow/PopoutWidget");
|
|
27
|
-
const timers_1 = require("timers");
|
|
28
27
|
const Frontstage_2 = require("../widget-panels/Frontstage");
|
|
29
28
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
30
29
|
const ContentDialogManager_1 = require("../dialog/ContentDialogManager");
|
|
@@ -729,7 +728,7 @@ class FrontstageDef {
|
|
|
729
728
|
const widgetContainerId = location.widgetId;
|
|
730
729
|
const tab = state.tabs[widgetId];
|
|
731
730
|
this.nineZoneState = state;
|
|
732
|
-
(
|
|
731
|
+
setTimeout(() => {
|
|
733
732
|
const popoutContent = (React.createElement(PopoutWidget_1.PopoutWidget, { widgetContainerId: widgetContainerId, widgetDef: widgetDef }));
|
|
734
733
|
const position = {
|
|
735
734
|
width: tab.preferredPopoutWidgetSize.width,
|