@itwin/appui-react 3.3.0-dev.76 → 3.3.0-dev.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/lib/cjs/appui-react/content/ContentLayout.d.ts +4 -1
  2. package/lib/cjs/appui-react/content/ContentLayout.d.ts.map +1 -1
  3. package/lib/cjs/appui-react/content/ContentLayout.js.map +1 -1
  4. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts +3 -1
  5. package/lib/cjs/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  6. package/lib/cjs/appui-react/frontstage/Frontstage.js +1 -1
  7. package/lib/cjs/appui-react/frontstage/Frontstage.js.map +1 -1
  8. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.d.ts.map +1 -1
  9. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js +4 -1
  10. package/lib/cjs/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
  11. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +4 -1
  12. package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  13. package/lib/cjs/appui-react/statusbar/StatusBar.js +12 -4
  14. package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
  15. package/lib/cjs/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  16. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js +1 -0
  17. package/lib/cjs/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  18. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.d.ts +3 -1
  19. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.d.ts.map +1 -1
  20. package/lib/cjs/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  21. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.d.ts +1 -1
  22. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js +1 -1
  23. package/lib/cjs/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
  24. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.d.ts +1 -0
  25. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.d.ts.map +1 -1
  26. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js +1 -0
  27. package/lib/cjs/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
  28. package/lib/cjs/appui-react/statusfields/ConditionalField.d.ts +4 -1
  29. package/lib/cjs/appui-react/statusfields/ConditionalField.d.ts.map +1 -1
  30. package/lib/cjs/appui-react/statusfields/ConditionalField.js +4 -1
  31. package/lib/cjs/appui-react/statusfields/ConditionalField.js.map +1 -1
  32. package/lib/cjs/appui-react/statusfields/FooterModeField.d.ts +2 -3
  33. package/lib/cjs/appui-react/statusfields/FooterModeField.d.ts.map +1 -1
  34. package/lib/cjs/appui-react/statusfields/FooterModeField.js +9 -8
  35. package/lib/cjs/appui-react/statusfields/FooterModeField.js.map +1 -1
  36. package/lib/cjs/appui-react/statusfields/Indicator.d.ts +3 -1
  37. package/lib/cjs/appui-react/statusfields/Indicator.d.ts.map +1 -1
  38. package/lib/cjs/appui-react/statusfields/Indicator.js +1 -0
  39. package/lib/cjs/appui-react/statusfields/Indicator.js.map +1 -1
  40. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts +3 -1
  41. package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  42. package/lib/cjs/appui-react/statusfields/MessageCenter.js +13 -7
  43. package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
  44. package/lib/cjs/appui-react/statusfields/PromptField.d.ts.map +1 -1
  45. package/lib/cjs/appui-react/statusfields/PromptField.js +4 -1
  46. package/lib/cjs/appui-react/statusfields/PromptField.js.map +1 -1
  47. package/lib/cjs/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  48. package/lib/cjs/appui-react/statusfields/SectionsField.js +4 -1
  49. package/lib/cjs/appui-react/statusfields/SectionsField.js.map +1 -1
  50. package/lib/cjs/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
  51. package/lib/cjs/appui-react/statusfields/SelectionInfo.js +4 -1
  52. package/lib/cjs/appui-react/statusfields/SelectionInfo.js.map +1 -1
  53. package/lib/cjs/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  54. package/lib/cjs/appui-react/statusfields/SelectionScope.js +5 -2
  55. package/lib/cjs/appui-react/statusfields/SelectionScope.js.map +1 -1
  56. package/lib/cjs/appui-react/statusfields/StatusFieldProps.d.ts +4 -2
  57. package/lib/cjs/appui-react/statusfields/StatusFieldProps.d.ts.map +1 -1
  58. package/lib/cjs/appui-react/statusfields/StatusFieldProps.js.map +1 -1
  59. package/lib/cjs/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  60. package/lib/cjs/appui-react/statusfields/ViewAttributes.js +4 -1
  61. package/lib/cjs/appui-react/statusfields/ViewAttributes.js.map +1 -1
  62. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  63. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js +4 -1
  64. package/lib/cjs/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  65. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -3
  66. package/lib/cjs/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  67. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  68. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js +1 -0
  69. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  70. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  71. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +1 -0
  72. package/lib/cjs/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  73. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  74. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +7 -2
  75. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  76. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  77. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +7 -2
  78. package/lib/cjs/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  79. package/lib/cjs/appui-react/widget-panels/Frontstage.js +20 -20
  80. package/lib/cjs/appui-react/widget-panels/Frontstage.js.map +1 -1
  81. package/lib/esm/appui-react/content/ContentLayout.d.ts +4 -1
  82. package/lib/esm/appui-react/content/ContentLayout.d.ts.map +1 -1
  83. package/lib/esm/appui-react/content/ContentLayout.js.map +1 -1
  84. package/lib/esm/appui-react/frontstage/Frontstage.d.ts +3 -1
  85. package/lib/esm/appui-react/frontstage/Frontstage.d.ts.map +1 -1
  86. package/lib/esm/appui-react/frontstage/Frontstage.js +1 -1
  87. package/lib/esm/appui-react/frontstage/Frontstage.js.map +1 -1
  88. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.d.ts.map +1 -1
  89. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js +4 -1
  90. package/lib/esm/appui-react/selection/ClearEmphasisStatusField.js.map +1 -1
  91. package/lib/esm/appui-react/statusbar/StatusBar.d.ts +4 -1
  92. package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
  93. package/lib/esm/appui-react/statusbar/StatusBar.js +12 -4
  94. package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
  95. package/lib/esm/appui-react/statusbar/StatusBarComposer.d.ts.map +1 -1
  96. package/lib/esm/appui-react/statusbar/StatusBarComposer.js +1 -0
  97. package/lib/esm/appui-react/statusbar/StatusBarComposer.js.map +1 -1
  98. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.d.ts +3 -1
  99. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.d.ts.map +1 -1
  100. package/lib/esm/appui-react/statusbar/StatusBarWidgetControl.js.map +1 -1
  101. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.d.ts +1 -1
  102. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js +1 -1
  103. package/lib/esm/appui-react/statusbar/withMessageCenterFieldProps.js.map +1 -1
  104. package/lib/esm/appui-react/statusbar/withStatusFieldProps.d.ts +1 -0
  105. package/lib/esm/appui-react/statusbar/withStatusFieldProps.d.ts.map +1 -1
  106. package/lib/esm/appui-react/statusbar/withStatusFieldProps.js +1 -0
  107. package/lib/esm/appui-react/statusbar/withStatusFieldProps.js.map +1 -1
  108. package/lib/esm/appui-react/statusfields/ConditionalField.d.ts +4 -1
  109. package/lib/esm/appui-react/statusfields/ConditionalField.d.ts.map +1 -1
  110. package/lib/esm/appui-react/statusfields/ConditionalField.js +4 -1
  111. package/lib/esm/appui-react/statusfields/ConditionalField.js.map +1 -1
  112. package/lib/esm/appui-react/statusfields/FooterModeField.d.ts +2 -3
  113. package/lib/esm/appui-react/statusfields/FooterModeField.d.ts.map +1 -1
  114. package/lib/esm/appui-react/statusfields/FooterModeField.js +9 -8
  115. package/lib/esm/appui-react/statusfields/FooterModeField.js.map +1 -1
  116. package/lib/esm/appui-react/statusfields/Indicator.d.ts +3 -1
  117. package/lib/esm/appui-react/statusfields/Indicator.d.ts.map +1 -1
  118. package/lib/esm/appui-react/statusfields/Indicator.js +1 -0
  119. package/lib/esm/appui-react/statusfields/Indicator.js.map +1 -1
  120. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts +3 -1
  121. package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
  122. package/lib/esm/appui-react/statusfields/MessageCenter.js +13 -7
  123. package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
  124. package/lib/esm/appui-react/statusfields/PromptField.d.ts.map +1 -1
  125. package/lib/esm/appui-react/statusfields/PromptField.js +4 -1
  126. package/lib/esm/appui-react/statusfields/PromptField.js.map +1 -1
  127. package/lib/esm/appui-react/statusfields/SectionsField.d.ts.map +1 -1
  128. package/lib/esm/appui-react/statusfields/SectionsField.js +4 -1
  129. package/lib/esm/appui-react/statusfields/SectionsField.js.map +1 -1
  130. package/lib/esm/appui-react/statusfields/SelectionInfo.d.ts.map +1 -1
  131. package/lib/esm/appui-react/statusfields/SelectionInfo.js +4 -1
  132. package/lib/esm/appui-react/statusfields/SelectionInfo.js.map +1 -1
  133. package/lib/esm/appui-react/statusfields/SelectionScope.d.ts.map +1 -1
  134. package/lib/esm/appui-react/statusfields/SelectionScope.js +5 -2
  135. package/lib/esm/appui-react/statusfields/SelectionScope.js.map +1 -1
  136. package/lib/esm/appui-react/statusfields/StatusFieldProps.d.ts +4 -2
  137. package/lib/esm/appui-react/statusfields/StatusFieldProps.d.ts.map +1 -1
  138. package/lib/esm/appui-react/statusfields/StatusFieldProps.js.map +1 -1
  139. package/lib/esm/appui-react/statusfields/ViewAttributes.d.ts.map +1 -1
  140. package/lib/esm/appui-react/statusfields/ViewAttributes.js +4 -1
  141. package/lib/esm/appui-react/statusfields/ViewAttributes.js.map +1 -1
  142. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.d.ts.map +1 -1
  143. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js +4 -1
  144. package/lib/esm/appui-react/statusfields/tileloading/TileLoadingIndicator.js.map +1 -1
  145. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js +3 -3
  146. package/lib/esm/appui-react/statusfields/toolassistance/ToolAssistanceField.js.map +1 -1
  147. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.d.ts.map +1 -1
  148. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js +1 -0
  149. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsProvider.js.map +1 -1
  150. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.d.ts.map +1 -1
  151. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js +1 -0
  152. package/lib/esm/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.js.map +1 -1
  153. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.d.ts.map +1 -1
  154. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js +7 -2
  155. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarItemsProvider.js.map +1 -1
  156. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.d.ts.map +1 -1
  157. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js +7 -2
  158. package/lib/esm/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.js.map +1 -1
  159. package/lib/esm/appui-react/widget-panels/Frontstage.js +20 -20
  160. package/lib/esm/appui-react/widget-panels/Frontstage.js.map +1 -1
  161. package/package.json +32 -32
@@ -1 +1 @@
1
- {"version":3,"file":"ToolAssistanceField.js","sourceRoot":"","sources":["../../../../../src/appui-react/statusfields/toolassistance/ToolAssistanceField.tsx"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,4CAA4C;AAC5C;;GAEG;AAEH,OAAO,4BAA4B,CAAC;AACpC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,SAAS,EAAE,mBAAmB,EAAE,yBAAyB,GAE1D,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAwC,oBAAoB,GACxH,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,WAAW,EAAE,yBAAyB,IAAI,4BAA4B,EAAE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAC5H,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAA4B,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAAE,cAAc,EAAkC,MAAM,+BAA+B,CAAC;AAE/F,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,qBAAqB,MAAM,qCAAqC,CAAC;AACxE,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,iBAAiB,MAAM,6BAA6B,CAAC;AAC5D,OAAO,aAAa,MAAM,wBAAwB,CAAC;AACnD,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,cAAc,MAAM,yBAAyB,CAAC;AACrD,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AACnE,OAAO,mBAAmB,MAAM,yBAAyB,CAAC;AAC1D,OAAO,mBAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AA0C1D;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,KAAK,CAAC,SAA6D;IA0B1G,gBAAgB;IAChB,YAAY,CAA2B;QACrC,KAAK,CAAC,CAAC,CAAC,CAAC;QAjBH,YAAO,GAAuB,IAAI,CAAC;QAEnC,eAAU,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;QAE/C,eAAU,GAAG,KAAK,CAAC;QA2FnB,sCAAiC,GAAG,CAAC,IAAoC,EAAQ,EAAE;YACzF,IAAI,kBAAkB,GAAG,KAAK,CAAC;YAC/B,IAAI,qBAAqB,GAAG,KAAK,CAAC;YAClC,IAAI,qBAAqB,GAAG,KAAK,CAAC;YAElC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;gBACnD,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAA8B,EAAE,EAAE;oBAC9F,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAsC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;gBACtH,CAAC,CAAC,CAAC;gBACH,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAA8B,EAAE,EAAE;oBAC9F,OAAO,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,WAAsC,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAC;gBACtH,CAAC,CAAC,CAAC;gBAEH,IAAI,IAAI,CAAC,KAAK,CAAC,wBAAwB,IAAI,IAAI,CAAC,KAAK,CAAC,wBAAwB,IAAI,oBAAoB,IAAI,oBAAoB,EAAE;oBAC9H,kBAAkB,GAAG,IAAI,CAAC;oBAC1B,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,KAAK,CAAC,CAAC;oBAC5D,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,KAAK,CAAC,CAAC;iBAC7D;qBAAM;oBACL,IAAI,IAAI,CAAC,KAAK,CAAC,wBAAwB,IAAI,oBAAoB;wBAC7D,qBAAqB,GAAG,IAAI,CAAC;yBAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,wBAAwB,IAAI,oBAAoB;wBAClE,qBAAqB,GAAG,IAAI,CAAC;iBAChC;aACF;YAED,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CACX;oBACE,YAAY,EAAE,IAAI,CAAC,YAAY;oBAC/B,kBAAkB;oBAClB,qBAAqB;oBACrB,qBAAqB;iBACtB,EACD,GAAG,EAAE;oBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,CAAC,CACF,CAAC;QACN,CAAC,CAAC;QAEM,uBAAkB,GAAG,CAAC,WAAsC,EAAE,EAAE;YACtE,OAAO,WAAW,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,WAAW,KAAK,yBAAyB,CAAC,IAAI,CAAC;QAC7G,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,WAAsC,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,KAAK,yBAAyB,CAAC,KAAK,CAAC;QAE9H,wBAAmB,GAAG,CAAC,WAAsC,EAAE,EAAE,CAAC,WAAW,CAAC,WAAW,KAAK,yBAAyB,CAAC,KAAK,CAAC;QAE9H,gCAA2B,GAAG,CAAC,IAA8B,EAAQ,EAAE;YAC7E,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CACX,EAAE,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,EAC/B,GAAG,EAAE;oBACH,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC3B,CAAC,CACF,CAAC;QAEN,CAAC,CAAC;QAuBM,yBAAoB,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;YACrD,MAAM,qBAAqB,GAAG,KAAK,KAAK,CAAC,CAAC;YAC1C,MAAM,qBAAqB,GAAG,KAAK,KAAK,CAAC,CAAC;YAE1C,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC;oBACZ,kBAAkB,EAAE,KAAK;oBACzB,qBAAqB;oBACrB,qBAAqB;iBACtB,EAAE,KAAK,IAAI,EAAE;oBACZ,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC7E,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAwIM,qBAAgB,GAAG,CAAC,MAA0B,EAAE,EAAE;YACxD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC,CAAC;QAEM,4BAAuB,GAAG,KAAK,EAAE,CAAsC,EAAE,EAAE;YACjF,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC;oBACZ,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO;iBACrC,EAAE,KAAK,IAAI,EAAE;oBACZ,MAAM,IAAI,CAAC,0BAA0B,CAAC,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;gBAC7E,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEM,iBAAY,GAAG,GAAG,EAAE;YAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEM,wBAAmB,GAAG,CAAC,CAAa,EAAE,EAAE;YAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ;gBACrB,OAAO;YAET,qBAAqB;YACrB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO;gBAC1B,CAAC,CAAC,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC1C,OAAO;YAET,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC;QAEM,wCAAmC,GAAG,GAAG,EAAE;;YACjD,MAAM,MAAM,GAAG,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,mCAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC;YACpF,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aAC1B;;gBACC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC,CAAC;QAEM,0BAAqB,GAAG,GAAG,EAAE;YACnC,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC;QAEM,4BAAuB,GAAG,GAAG,EAAE;YACrC,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC;QAjWA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC;QAClC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC;QAEhC,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QAEtC,IAAI,CAAC,KAAK,GAAG;YACX,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,EAAE;YAChB,kBAAkB,EAAE,CAAC,CAAC,qBAAqB;YAC3C,wBAAwB,EAAE,CAAC,MAAM;YACjC,wBAAwB,EAAE,IAAI;YAC9B,kBAAkB,EAAE,KAAK;YACzB,qBAAqB,EAAE,KAAK;YAC5B,qBAAqB,EAAE,KAAK;YAC5B,kBAAkB,EAAE,CAAC;YACrB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI;SACjB,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACtG,IAAI,CAAC,0BAA0B,GAAG,IAAI,YAAY,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,sBAAsB,EACnI,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACvC,IAAI,CAAC,0BAA0B,GAAG,IAAI,YAAY,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,sBAAsB,EACnI,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACzC,CAAC;IAED,gBAAgB;IACA,KAAK,CAAC,iBAAiB;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,cAAc,CAAC,4BAA4B,CAAC,WAAW,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAChG,iBAAiB,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAEvF,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc;YAC3B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;aACjD,IAAI,IAAI,CAAC,OAAO;YACnB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC;QAEzC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;IAC/B,CAAC;IAED,gBAAgB;IACA,oBAAoB;QAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,cAAc,CAAC,4BAA4B,CAAC,cAAc,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACnG,iBAAiB,CAAC,sBAAsB,CAAC,cAAc,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC5F,CAAC;IAEO,KAAK,CAAC,eAAe;QAC3B,IAAI,qBAAgE,CAAC,CAAC,8CAA8C;QACpH,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE;YACpC,qBAAqB,GAAG,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC7F;QACD,MAAM,qBAAqB,GAAG,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClG,MAAM,CAAC,wBAAwB,EAAE,wBAAwB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC7E,qBAAqB;YACrB,qBAAqB;SACtB,CAAC,CAAC;QAEH,uBAAuB;QACvB,IAAI,wBAAwB,KAAK,SAAS,IAAI,wBAAwB,CAAC,MAAM,KAAK,oBAAoB,CAAC,OAAO,EAAE;YAC9G,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,wBAAwB,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3E;QAED,uBAAuB;QACvB,IAAI,wBAAwB,CAAC,MAAM,KAAK,oBAAoB,CAAC,OAAO,EAAE;YACpE,uBAAuB;YACvB,IAAI,IAAI,CAAC,UAAU;gBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,kBAAkB,EAAE,wBAAwB,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3E;IACH,CAAC;IA8DO,iBAAiB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY;YAC1D,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IACjG,CAAC;IAEO,kCAAkC,CAAC,OAA8B;QACvE,MAAM,uBAAuB,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC1E,OAAO,uBAAuB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEO,2BAA2B,CAAC,OAA8B;QAChE,MAAM,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,WAAsC,EAAE,EAAE;YACrG,OAAO,CACL,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;mBACjC,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;mBAC3E,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB,IAAI,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAC/E,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAiBD,gBAAgB;IACA,MAAM;;QACpB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,MAAM,WAAW,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACzK,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACjE,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,QAAyB,CAAC;QAC9B,IAAI,aAA8B,CAAC;QAEnC,IAAI,YAAY,EAAE;YAChB,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC;YAC3C,QAAQ,GAAG,oBAAC,IAAI,IAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAI,CAAC;YAEvD,IAAI,mBAAwD,CAAC;YAC7D,IAAI,YAAY,CAAC,QAAQ,EAAE;gBACzB,mBAAmB,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAA8B,EAAE,EAAE,CAAC,IAAI,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC,CAAC;aAC1I;YAED,aAAa,GAAG,CACd;gBACG,IAAI,CAAC,KAAK,CAAC,kBAAkB;oBAC5B,oBAAC,cAAc,IACb,aAAa,EAAC,0BAA0B,EACxC,MAAM,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,EAChC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAC1C,aAAa,EAAE,IAAI,CAAC,oBAAoB,GAAI;gBAGhD,6BAAK,SAAS,EAAC,6BAA6B;oBAC1C,oBAAC,4BAA4B,IAC3B,GAAG,EAAC,MAAM,EACV,KAAK,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,YAAY,CAAC,eAAe,CAAC,EAC5E,IAAI,EAAE,YAAY,CAAC,eAAe,CAAC,IAAI,EACvC,KAAK,EAAE,YAAY,CAAC,eAAe,CAAC,KAAK,GAAI;oBAE9C,mBAAmB,IAAI,mBAAmB,CAAC,GAAG,CAAC,CAAC,OAA8B,EAAE,MAAc,EAAE,EAAE;wBACjG,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE;4BACpC,oBAAC,uBAAuB,IAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAG,OAAO,CAAC,KAAK,CAA2B;4BACzF,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,WAAsC,EAAE,MAAc,EAAE,EAAE;gCACxG,OAAO,CACL,oBAAC,4BAA4B,IAC3B,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,EAChD,KAAK,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,WAAW,CAAC,EAC3D,IAAI,EAAE,WAAW,CAAC,IAAI,EACtB,KAAK,EAAE,WAAW,CAAC,KAAK,GAAI,CAC/B,CAAC;4BACJ,CAAC,CAAC,CACa,CAClB,CAAC;oBACJ,CAAC,CAAC;oBAED,IAAI,CAAC,KAAK,CAAC,qBAAqB;wBAC/B;4BACE,oBAAC,uBAAuB,IAAC,GAAG,EAAC,YAAY,GAAG;4BAC5C,oBAAC,kBAAkB,IAAC,GAAG,EAAC,aAAa;gCACnC,oBAAC,YAAY,IACX,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC,EAC7D,aAAa,EAAC,OAAO,EACrB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,QAAQ,EAAE,IAAI,CAAC,uBAAuB,GAAI,CACjE,CACpB,CAED,CACF,CACP,CAAC;SACH;QAED,IAAI,MAAM;YACR,OAAO,GAAG,MAAM,CAAC;QAEnB,uBAAuB;QACvB,IAAI,SAAS,CAAC,SAAS,CAAC,UAAU;YAChC,OAAO,GAAG,GAAG,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,MAAM,OAAO,IAAI,CAAC;QAEvE,IAAI,OAAO,EAAE;YACX,MAAM,SAAS,GAAG,cAAc,CAAC;YACjC,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;SAC/B;QAED,OAAO,IAAI,WAAW,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QAE5D,OAAO,CACL;YACE,6BAAK,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB;gBACxD,oBAAC,cAAc,CAAC,8CAA8C;oBAC5D,KAAK,EACH,0CACG,QAAQ,CACR,EAEL,YAAY,EAAE,IAAI,CAAC,UAAU,EAC7B,SAAS,EAAE,UAAU,CAAC,kCAAkC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAC/E,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EACzC,OAAO,EAAE,IAAI,CAAC,mCAAmC,EACjD,KAAK,EAAE,OAAO,IAEb,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAChC,CACb;YACN,oBAAC,WAAW,IACV,MAAM,EAAE,CAAC,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,mCAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,UAAU,EAC5E,OAAO,EAAE,IAAI,CAAC,YAAY,EAC1B,cAAc,EAAE,IAAI,CAAC,mBAAmB,EACxC,MAAM,EAAE,IAAI,CAAC,OAAO,EACpB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAE7B,oBAAC,oBAAoB,IACnB,OAAO,EACL;wBACG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;4BACnB,oBAAC,cAAc,IAAC,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,oBAAoB,CAAC;gCACrG,2BAAG,SAAS,EAAE,eAAe,GAAI,CAClB;wBAElB,IAAI,CAAC,KAAK,CAAC,QAAQ;4BAClB,oBAAC,cAAc,IAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;gCAC5F,2BAAG,SAAS,EAAE,iBAAiB,GAAI,CACpB,CAElB,EAEL,KAAK,EAAE,WAAW,IAEjB,aAAa,CACO,CACX,CACb,CACJ,CAAC;IACJ,CAAC;IAmDO,aAAa,CAAC,UAA4B;;QAChD,MAAA,MAAA,IAAI,CAAC,KAAK,EAAC,YAAY,mDAAG,UAAU,CAAC,CAAC;QACtC,IAAI,QAAQ,GAAG;YACb,UAAU;SACX,CAAC;QACF,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;YACzD,QAAQ,GAAG,EAAC,GAAG,QAAQ,EAAE,GAAG,EAAC,QAAQ,EAAE,KAAK,EAAC,EAAC,CAAC;SAChD;QACD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,gBAAgB;IACT,MAAM,CAAC,mBAAmB,CAAC,WAAsC;QACtE,IAAI,KAAsB,CAAC;QAE3B,IAAI,CAAC,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,KAAK,KAAK,mBAAmB,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,YAAY,EAAE;YAC7H,IAAI,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,EAAE;gBACtF,MAAM,GAAG,GAAG,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC7C,MAAM,UAAU,GAAG,CAAC,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;oBAC1D,6BAAK,SAAS,EAAC,iCAAiC;wBAAC,oBAAC,IAAI,IAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,GAAI,CAAM,CAAC,CAAC;oBAC9F,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBAEjD,KAAK,GAAG,CACN,oBAAC,YAAY;oBACV,mBAAmB,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,EAAE,kCAAkC,CAAC;oBAC1E,UAAU,CACE,CAChB,CAAC;aACH;iBAAM;gBACL,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,+DAA+D,CAAC,CAAC;aACpH;SACF;aAAM,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,EAAE;YAChD,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACpE,MAAM,SAAS,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,gCAAgC,CAAC;gBAC3G,KAAK,GAAG,6BAAK,SAAS,EAAE,SAAS;oBAAE,oBAAC,IAAI,IAAC,QAAQ,EAAE,WAAW,CAAC,KAAK,GAAI,CAAM,CAAC;aAChF;SACF;aAAM,IAAI,WAAW,CAAC,KAAK,KAAK,mBAAmB,CAAC,QAAQ,EAAE;YAC7D,IAAI,WAAW,CAAC,YAAY,EAAE;gBAC5B,KAAK,GAAG,mBAAmB,CAAC,2BAA2B,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;aACnF;iBAAM;gBACL,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,0FAA0F,CAAC,CAAC;aAC/I;SACF;aAAM;YACL,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;SACzD;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,WAAsC,EAAE,UAAmB;QAC/F,IAAI,KAAsB,CAAC;QAC3B,IAAI,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,yBAAyB,CAAC;QAE1F,uBAAuB;QACvB,IAAI,OAAO,WAAW,CAAC,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,KAAK,KAAK,mBAAmB,CAAC,QAAQ,EAAE;YAC/F,MAAM,mBAAmB,GAAwB,WAAW,CAAC,KAAK,CAAC;YACnE,IAAI,QAAQ,GAAG,EAAE,CAAC;YAElB,QAAQ,mBAAmB,EAAE;gBAC3B,KAAK,mBAAmB,CAAC,WAAW;oBAClC,QAAQ,GAAG,eAAe,CAAC;oBAC3B,MAAM;gBACR,KAAK,mBAAmB,CAAC,WAAW;oBAClC,QAAQ,GAAG,eAAe,CAAC;oBAC3B,MAAM;gBACR,KAAK,mBAAmB,CAAC,SAAS;oBAChC,QAAQ,GAAG,aAAa,CAAC;oBACzB,MAAM;gBACR,KAAK,mBAAmB,CAAC,UAAU;oBACjC,QAAQ,GAAG,cAAc,CAAC;oBAC1B,MAAM;gBACR,KAAK,mBAAmB,CAAC,UAAU;oBACjC,QAAQ,GAAG,mBAAmB,CAAC;oBAC/B,MAAM;gBACR,KAAK,mBAAmB,CAAC,aAAa;oBACpC,QAAQ,GAAG,iBAAiB,CAAC;oBAC7B,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,8BAA8B,CAAC;oBAChG,MAAM;gBACR,KAAK,mBAAmB,CAAC,cAAc;oBACrC,QAAQ,GAAG,kBAAkB,CAAC;oBAC9B,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,8BAA8B,CAAC;oBAChG,MAAM;gBACR,KAAK,mBAAmB,CAAC,mBAAmB;oBAC1C,QAAQ,GAAG,uBAAuB,CAAC;oBACnC,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,8BAA8B,CAAC;oBAChG,MAAM;gBACR,KAAK,mBAAmB,CAAC,WAAW;oBAClC,QAAQ,GAAG,eAAe,CAAC;oBAC3B,MAAM;gBACR,KAAK,mBAAmB,CAAC,iBAAiB;oBACxC,QAAQ,GAAG,qBAAqB,CAAC;oBACjC,MAAM;gBACR,KAAK,mBAAmB,CAAC,YAAY;oBACnC,QAAQ,GAAG,gBAAgB,CAAC;oBAC5B,MAAM;gBACR,KAAK,mBAAmB,CAAC,WAAW;oBAClC,QAAQ,GAAG,eAAe,CAAC;oBAC3B,MAAM;gBACR,KAAK,mBAAmB,CAAC,YAAY;oBACnC,QAAQ,GAAG,gBAAgB,CAAC;oBAC5B,MAAM;gBACR,KAAK,mBAAmB,CAAC,aAAa;oBACpC,QAAQ,GAAG,iBAAiB,CAAC;oBAC7B,MAAM;gBACR,KAAK,mBAAmB,CAAC,cAAc;oBACrC,QAAQ,GAAG,kBAAkB,CAAC;oBAC9B,MAAM;gBACR,KAAK,mBAAmB,CAAC,eAAe;oBACtC,QAAQ,GAAG,mBAAmB,CAAC;oBAC/B,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,0BAA0B,CAAC,qCAAqC,CAAC,CAAC,CAAC,8BAA8B,CAAC;oBAC3H,MAAM;aACT;YACD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACxE,KAAK,GAAG,CACN,6BAAK,SAAS,EAAE,SAAS,IACtB,QAAQ;gBACP,uBAAuB;gBACvB,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAE1B,CACP,CAAC;SACH;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,2BAA2B,CAAC,YAAwC;QACjF,IAAI,KAAsB,CAAC;QAE3B,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,EAAE;YACzC,KAAK,GAAG,CACN,6BAAK,SAAS,EAAC,+BAA+B;gBAC5C,8BAAM,SAAS,EAAC,MAAM,IACnB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,MAAc,EAAE,EAAE;oBACrD,OAAO,mBAAmB,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,+BAA+B,CAAC,CAAC;gBACtF,CAAC,CAAC,CACG;gBACP,+BAAM;gBACN,8BAAM,SAAS,EAAC,MAAM,IACnB,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,MAAc,EAAE,EAAE;oBAC3D,OAAO,mBAAmB,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,+BAA+B,CAAC,CAAC;gBACtF,CAAC,CAAC,CACG,CACH,CACP,CAAC;SACH;aAAM,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACzC,KAAK,GAAG,CACN,oBAAC,YAAY,QACV,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAW,EAAE,MAAc,EAAE,EAAE;gBACrD,IAAI,SAAS,GAAG,gCAAgC,CAAC;gBACjD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;oBAChB,SAAS,GAAG,kCAAkC,CAAC;gBACjD,OAAO,mBAAmB,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAChE,CAAC,CAAC,CACW,CAChB,CAAC;SACH;aAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;YAC/B,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;gBACjC,KAAK,GAAG,mBAAmB,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,+BAA+B,CAAC,CAAC;;gBAEjG,KAAK,GAAG,mBAAmB,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACnE;aAAM;YACL,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,iFAAiF,CAAC,CAAC;SACtI;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,MAAM,CAAC,UAAU,CAAC,GAAW,EAAE,KAAa,EAAE,SAAkB;QACtE,OAAO,CACL,6BAAK,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,yBAAyB,EAAE,SAAS,CAAC;YACrF,oBAAC,YAAY,QAAE,GAAG,CAAgB,CAC9B,CACP,CAAC;IACJ,CAAC;;AA/iBD,gBAAgB;AACO,+BAAW,GAAG,qBAAqB,CAAC;AAI5C,sCAAkB,GAAG,gBAAgB,CAAC;AACtC,0CAAsB,GAAG,oBAAoB,CAAC;AAC9C,0CAAsB,GAAG,oBAAoB,CAAC;AAU7D,gBAAgB;AACO,gCAAY,GAAoC;IACrE,qBAAqB,EAAE,IAAI;IAC3B,mBAAmB,EAAE,IAAI;IACzB,mBAAmB,EAAE,IAAI;IACzB,qBAAqB,EAAE,KAAK;CAC7B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport \"./ToolAssistanceField.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport {\r\n IModelApp, ToolAssistanceImage, ToolAssistanceInputMethod, ToolAssistanceInstruction, ToolAssistanceInstructions, ToolAssistanceKeyboardInfo,\r\n ToolAssistanceSection,\r\n} from \"@itwin/core-frontend\";\r\nimport { IconSpecUtilities } from \"@itwin/appui-abstract\";\r\nimport {\r\n FillCentered, Icon, LocalStateStorage, UiCore, UiStateEntry, UiStateStorage, UiStateStorageResult, UiStateStorageStatus,\r\n} from \"@itwin/core-react\";\r\nimport {\r\n FooterPopup, ToolAssistanceInstruction as NZ_ToolAssistanceInstruction, TitleBarButton, ToolAssistance, ToolAssistanceDialog,\r\n ToolAssistanceItem,\r\n ToolAssistanceSeparator,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { HorizontalTabs, ToggleSwitch } from \"@itwin/itwinui-react\";\r\nimport { CursorPrompt } from \"../../cursor/cursorprompt/CursorPrompt\";\r\nimport { FrontstageManager, ToolIconChangedEventArgs } from \"../../frontstage/FrontstageManager\";\r\nimport { MessageManager, ToolAssistanceChangedEventArgs } from \"../../messages/MessageManager\";\r\nimport { StatusBarFieldId } from \"../../statusbar/StatusBarWidgetControl\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { StatusFieldProps } from \"../StatusFieldProps\";\r\nimport { UiStateStorageContext } from \"../../uistate/useUiStateStorage\";\r\n\r\nimport acceptPointIcon from \"./accept-point.svg\";\r\nimport cursorClickIcon from \"./cursor-click.svg\";\r\nimport oneTouchDragIcon from \"./gesture-one-finger-drag.svg\";\r\nimport oneTouchDoubleTapIcon from \"./gesture-one-finger-tap-double.svg\";\r\nimport oneTouchTapIcon from \"./gesture-one-finger-tap.svg\";\r\nimport twoTouchPinchIcon from \"./gesture-pinch.svg\";\r\nimport twoTouchDragIcon from \"./gesture-two-finger-drag.svg\";\r\nimport twoTouchTapIcon from \"./gesture-two-finger-tap.svg\";\r\nimport clickLeftDragIcon from \"./mouse-click-left-drag.svg\";\r\nimport clickLeftIcon from \"./mouse-click-left.svg\";\r\nimport clickRightDragIcon from \"./mouse-click-right-drag.svg\";\r\nimport clickRightIcon from \"./mouse-click-right.svg\";\r\nimport clickMouseWheelDragIcon from \"./mouse-click-wheel-drag.svg\";\r\nimport mouseWheelClickIcon from \"./mouse-click-wheel.svg\";\r\nimport touchCursorDragIcon from \"./touch-cursor-pan.svg\";\r\nimport touchCursorTapIcon from \"./touch-cursor-point.svg\";\r\n\r\n// cSpell:ignore cursorprompt\r\n\r\n/** Properties of [[ToolAssistanceField]] component.\r\n * @public\r\n */\r\nexport interface ToolAssistanceFieldProps extends StatusFieldProps {\r\n /** Indicates whether to include promptAtCursor Checkbox. Defaults to true. */\r\n includePromptAtCursor: boolean;\r\n /** Optional parameter for persistent UI settings. Defaults to UiStateStorageContext.\r\n */\r\n uiStateStorage?: UiStateStorage; // eslint-disable-line deprecation/deprecation\r\n /** Cursor Prompt Timeout period. Defaults to 5000. */\r\n cursorPromptTimeout: number;\r\n /** Fade Out the Cursor Prompt when closed. */\r\n fadeOutCursorPrompt: boolean;\r\n /** Indicates whether to show promptAtCursor by default. Defaults to false. */\r\n defaultPromptAtCursor: boolean;\r\n}\r\n\r\n/** Default properties of [[ToolAssistanceField]] component.\r\n * @internal\r\n */\r\nexport type ToolAssistanceFieldDefaultProps =\r\n Pick<ToolAssistanceFieldProps, \"includePromptAtCursor\" | \"uiStateStorage\" | \"cursorPromptTimeout\" | \"fadeOutCursorPrompt\" | \"defaultPromptAtCursor\">;\r\n\r\n/** @internal */\r\ninterface ToolAssistanceFieldState {\r\n instructions: ToolAssistanceInstructions | undefined;\r\n toolIconSpec: string;\r\n showPromptAtCursor: boolean;\r\n includeMouseInstructions: boolean;\r\n includeTouchInstructions: boolean;\r\n showMouseTouchTabs: boolean;\r\n showMouseInstructions: boolean;\r\n showTouchInstructions: boolean;\r\n mouseTouchTabIndex: number;\r\n isPinned: boolean;\r\n openWidget: string | null;\r\n}\r\n\r\n/** Tool Assistance Field React component.\r\n * @public\r\n */\r\nexport class ToolAssistanceField extends React.Component<ToolAssistanceFieldProps, ToolAssistanceFieldState> {\r\n /** @internal */\r\n public static override contextType = UiStateStorageContext;\r\n /** @internal */\r\n public declare context: React.ContextType<typeof UiStateStorageContext>;\r\n\r\n private static _toolAssistanceKey = \"ToolAssistance\";\r\n private static _showPromptAtCursorKey = \"showPromptAtCursor\";\r\n private static _mouseTouchTabIndexKey = \"mouseTouchTabIndex\";\r\n private _showPromptAtCursorSetting: UiStateEntry<boolean>;\r\n private _mouseTouchTabIndexSetting: UiStateEntry<number>;\r\n private _target: HTMLElement | null = null;\r\n private _className: string;\r\n private _indicator = React.createRef<HTMLDivElement>();\r\n private _cursorPrompt: CursorPrompt;\r\n private _isMounted = false;\r\n private _uiSettingsStorage: UiStateStorage; // eslint-disable-line deprecation/deprecation\r\n\r\n /** @internal */\r\n public static readonly defaultProps: ToolAssistanceFieldDefaultProps = {\r\n includePromptAtCursor: true,\r\n cursorPromptTimeout: 5000,\r\n fadeOutCursorPrompt: true,\r\n defaultPromptAtCursor: false,\r\n };\r\n\r\n /** @internal */\r\n constructor(p: ToolAssistanceFieldProps) {\r\n super(p);\r\n\r\n const instance = this.constructor;\r\n this._className = instance.name;\r\n\r\n const mobile = UiFramework.isMobile();\r\n\r\n this.state = {\r\n instructions: undefined,\r\n toolIconSpec: \"\",\r\n showPromptAtCursor: p.defaultPromptAtCursor,\r\n includeMouseInstructions: !mobile,\r\n includeTouchInstructions: true,\r\n showMouseTouchTabs: false,\r\n showMouseInstructions: false,\r\n showTouchInstructions: false,\r\n mouseTouchTabIndex: 0,\r\n isPinned: false,\r\n openWidget: null,\r\n };\r\n\r\n this._uiSettingsStorage = new LocalStateStorage();\r\n this._cursorPrompt = new CursorPrompt(this.props.cursorPromptTimeout, this.props.fadeOutCursorPrompt);\r\n this._showPromptAtCursorSetting = new UiStateEntry(ToolAssistanceField._toolAssistanceKey, ToolAssistanceField._showPromptAtCursorKey,\r\n () => this.state.showPromptAtCursor);\r\n this._mouseTouchTabIndexSetting = new UiStateEntry(ToolAssistanceField._toolAssistanceKey, ToolAssistanceField._mouseTouchTabIndexKey,\r\n () => this.state.mouseTouchTabIndex);\r\n }\r\n\r\n /** @internal */\r\n public override async componentDidMount() {\r\n this._isMounted = true;\r\n MessageManager.onToolAssistanceChangedEvent.addListener(this._handleToolAssistanceChangedEvent);\r\n FrontstageManager.onToolIconChangedEvent.addListener(this._handleToolIconChangedEvent);\r\n\r\n // istanbul ignore else\r\n if (this.props.uiStateStorage)\r\n this._uiSettingsStorage = this.props.uiStateStorage;\r\n else if (this.context)\r\n this._uiSettingsStorage = this.context;\r\n\r\n await this.restoreSettings();\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n MessageManager.onToolAssistanceChangedEvent.removeListener(this._handleToolAssistanceChangedEvent);\r\n FrontstageManager.onToolIconChangedEvent.removeListener(this._handleToolIconChangedEvent);\r\n }\r\n\r\n private async restoreSettings() {\r\n let getShowPromptAtCursor: Promise<UiStateStorageResult> | undefined; // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this.props.includePromptAtCursor) {\r\n getShowPromptAtCursor = this._showPromptAtCursorSetting.getSetting(this._uiSettingsStorage);\r\n }\r\n const getMouseTouchTabIndex = this._mouseTouchTabIndexSetting.getSetting(this._uiSettingsStorage);\r\n const [showPromptAtCursorResult, mouseTouchTabIndexResult] = await Promise.all([\r\n getShowPromptAtCursor,\r\n getMouseTouchTabIndex,\r\n ]);\r\n\r\n // istanbul ignore else\r\n if (showPromptAtCursorResult !== undefined && showPromptAtCursorResult.status === UiStateStorageStatus.Success) {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ showPromptAtCursor: showPromptAtCursorResult.setting });\r\n }\r\n\r\n // istanbul ignore else\r\n if (mouseTouchTabIndexResult.status === UiStateStorageStatus.Success) {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ mouseTouchTabIndex: mouseTouchTabIndexResult.setting });\r\n }\r\n }\r\n\r\n private _handleToolAssistanceChangedEvent = (args: ToolAssistanceChangedEventArgs): void => {\r\n let showMouseTouchTabs = false;\r\n let showMouseInstructions = false;\r\n let showTouchInstructions = false;\r\n\r\n if (args.instructions && args.instructions.sections) {\r\n const hasMouseInstructions = args.instructions.sections.some((section: ToolAssistanceSection) => {\r\n return section.instructions.some((instruction: ToolAssistanceInstruction) => this._isMouseInstruction(instruction));\r\n });\r\n const hasTouchInstructions = args.instructions.sections.some((section: ToolAssistanceSection) => {\r\n return section.instructions.some((instruction: ToolAssistanceInstruction) => this._isTouchInstruction(instruction));\r\n });\r\n\r\n if (this.state.includeMouseInstructions && this.state.includeTouchInstructions && hasMouseInstructions && hasTouchInstructions) {\r\n showMouseTouchTabs = true;\r\n showMouseInstructions = this.state.mouseTouchTabIndex === 0;\r\n showTouchInstructions = this.state.mouseTouchTabIndex === 1;\r\n } else {\r\n if (this.state.includeMouseInstructions && hasMouseInstructions)\r\n showMouseInstructions = true;\r\n else if (this.state.includeTouchInstructions && hasTouchInstructions)\r\n showTouchInstructions = true;\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState(\r\n {\r\n instructions: args.instructions,\r\n showMouseTouchTabs,\r\n showMouseInstructions,\r\n showTouchInstructions,\r\n },\r\n () => {\r\n this._showCursorPrompt();\r\n },\r\n );\r\n };\r\n\r\n private _isBothInstruction = (instruction: ToolAssistanceInstruction) => {\r\n return instruction.inputMethod === undefined || instruction.inputMethod === ToolAssistanceInputMethod.Both;\r\n };\r\n\r\n private _isMouseInstruction = (instruction: ToolAssistanceInstruction) => instruction.inputMethod === ToolAssistanceInputMethod.Mouse;\r\n\r\n private _isTouchInstruction = (instruction: ToolAssistanceInstruction) => instruction.inputMethod === ToolAssistanceInputMethod.Touch;\r\n\r\n private _handleToolIconChangedEvent = (args: ToolIconChangedEventArgs): void => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState(\r\n { toolIconSpec: args.iconSpec },\r\n () => {\r\n this._showCursorPrompt();\r\n },\r\n );\r\n\r\n };\r\n\r\n private _showCursorPrompt() {\r\n if (this.state.showPromptAtCursor && this.state.instructions)\r\n this._cursorPrompt.display(this.state.toolIconSpec, this.state.instructions.mainInstruction);\r\n }\r\n\r\n private _sectionHasDisplayableInstructions(section: ToolAssistanceSection): boolean {\r\n const displayableInstructions = this._getDisplayableInstructions(section);\r\n return displayableInstructions.length > 0;\r\n }\r\n\r\n private _getDisplayableInstructions(section: ToolAssistanceSection): ToolAssistanceInstruction[] {\r\n const displayableInstructions = section.instructions.filter((instruction: ToolAssistanceInstruction) => {\r\n return (\r\n this._isBothInstruction(instruction)\r\n || (this.state.showMouseInstructions && this._isMouseInstruction(instruction))\r\n || (this.state.showTouchInstructions && this._isTouchInstruction(instruction))\r\n );\r\n });\r\n return displayableInstructions;\r\n }\r\n\r\n private _handleMouseTouchTab = async (index: number) => {\r\n const showMouseInstructions = index === 0;\r\n const showTouchInstructions = index === 1;\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n mouseTouchTabIndex: index,\r\n showMouseInstructions,\r\n showTouchInstructions,\r\n }, async () => {\r\n await this._mouseTouchTabIndexSetting.saveSetting(this._uiSettingsStorage);\r\n });\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const { instructions } = this.state;\r\n const dialogTitle = (IModelApp.toolAdmin.activeTool) ? /* istanbul ignore next */ IModelApp.toolAdmin.activeTool.flyover : UiFramework.translate(\"toolAssistance.title\");\r\n const mouseLabel = UiFramework.translate(\"toolAssistance.mouse\");\r\n const touchLabel = UiFramework.translate(\"toolAssistance.touch\");\r\n let prompt = \"\";\r\n let tooltip = \"\";\r\n let toolIcon: React.ReactNode;\r\n let dialogContent: React.ReactNode;\r\n\r\n if (instructions) {\r\n prompt = instructions.mainInstruction.text;\r\n toolIcon = <Icon iconSpec={this.state.toolIconSpec} />;\r\n\r\n let displayableSections: ToolAssistanceSection[] | undefined;\r\n if (instructions.sections) {\r\n displayableSections = instructions.sections.filter((section: ToolAssistanceSection) => this._sectionHasDisplayableInstructions(section));\r\n }\r\n\r\n dialogContent = (\r\n <div>\r\n {this.state.showMouseTouchTabs &&\r\n <HorizontalTabs\r\n tabsClassName=\"uifw-toolAssistance-tabs\"\r\n labels={[mouseLabel, touchLabel]}\r\n activeIndex={this.state.mouseTouchTabIndex}\r\n onTabSelected={this._handleMouseTouchTab} />\r\n }\r\n\r\n <div className=\"uifw-toolAssistance-content\">\r\n <NZ_ToolAssistanceInstruction\r\n key=\"main\"\r\n image={ToolAssistanceField.getInstructionImage(instructions.mainInstruction)}\r\n text={instructions.mainInstruction.text}\r\n isNew={instructions.mainInstruction.isNew} />\r\n\r\n {displayableSections && displayableSections.map((section: ToolAssistanceSection, index1: number) => {\r\n return (\r\n <React.Fragment key={index1.toString()}>\r\n <ToolAssistanceSeparator key={index1.toString()}>{section.label}</ToolAssistanceSeparator>\r\n {this._getDisplayableInstructions(section).map((instruction: ToolAssistanceInstruction, index2: number) => {\r\n return (\r\n <NZ_ToolAssistanceInstruction\r\n key={`${index1.toString()}-${index2.toString()}`}\r\n image={ToolAssistanceField.getInstructionImage(instruction)}\r\n text={instruction.text}\r\n isNew={instruction.isNew} />\r\n );\r\n })}\r\n </React.Fragment>\r\n );\r\n })}\r\n\r\n {this.props.includePromptAtCursor &&\r\n <>\r\n <ToolAssistanceSeparator key=\"prompt-sep\" />\r\n <ToolAssistanceItem key=\"prompt-item\">\r\n <ToggleSwitch\r\n label={UiFramework.translate(\"toolAssistance.promptAtCursor\")}\r\n labelPosition=\"right\"\r\n checked={this.state.showPromptAtCursor} onChange={this._onPromptAtCursorChange} />\r\n </ToolAssistanceItem>\r\n </>\r\n }\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n if (prompt)\r\n tooltip = prompt;\r\n\r\n // istanbul ignore next\r\n if (IModelApp.toolAdmin.activeTool)\r\n tooltip = `${IModelApp.toolAdmin.activeTool.flyover} > ${tooltip} `;\r\n\r\n if (tooltip) {\r\n const lineBreak = \"\\u000d\\u000a\";\r\n tooltip = tooltip + lineBreak;\r\n }\r\n\r\n tooltip += UiFramework.translate(\"toolAssistance.moreInfo\");\r\n\r\n return (\r\n <>\r\n <div style={{ height: \"100%\" }} ref={this._handleTargetRef}>\r\n <ToolAssistance // eslint-disable-line deprecation/deprecation\r\n icons={\r\n <>\r\n {toolIcon}\r\n </>\r\n }\r\n indicatorRef={this._indicator}\r\n className={classnames(\"uifw-statusFields-toolassistance\", this.props.className)}\r\n style={this.props.style}\r\n isInFooterMode={this.props.isInFooterMode}\r\n onClick={this._handleToolAssistanceIndicatorClick}\r\n title={tooltip}\r\n >\r\n {this.props.isInFooterMode ? prompt : undefined}\r\n </ToolAssistance>\r\n </div>\r\n <FooterPopup\r\n isOpen={(this.props.openWidget ?? this.state.openWidget) === this._className}\r\n onClose={this._handleClose}\r\n onOutsideClick={this._handleOutsideClick}\r\n target={this._target}\r\n isPinned={this.state.isPinned}\r\n >\r\n <ToolAssistanceDialog\r\n buttons={\r\n <>\r\n {!this.state.isPinned &&\r\n <TitleBarButton onClick={this._handlePinButtonClick} title={UiFramework.translate(\"toolAssistance.pin\")}>\r\n <i className={\"icon icon-pin\"} />\r\n </TitleBarButton>\r\n }\r\n {this.state.isPinned &&\r\n <TitleBarButton onClick={this._handleCloseButtonClick} title={UiCore.translate(\"dialog.close\")}>\r\n <i className={\"icon icon-close\"} />\r\n </TitleBarButton>\r\n }\r\n </>\r\n }\r\n title={dialogTitle}\r\n >\r\n {dialogContent}\r\n </ToolAssistanceDialog>\r\n </FooterPopup>\r\n </>\r\n );\r\n }\r\n\r\n private _handleTargetRef = (target: HTMLElement | null) => {\r\n this._target = target;\r\n };\r\n\r\n private _onPromptAtCursorChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n showPromptAtCursor: e.target.checked,\r\n }, async () => {\r\n await this._showPromptAtCursorSetting.saveSetting(this._uiSettingsStorage);\r\n });\r\n };\r\n\r\n private _handleClose = () => {\r\n this.setOpenWidget(null);\r\n };\r\n\r\n private _handleOutsideClick = (e: MouseEvent) => {\r\n if (this.state.isPinned)\r\n return;\r\n\r\n // istanbul ignore if\r\n if (!this._indicator.current ||\r\n !(e.target instanceof Node) ||\r\n this._indicator.current.contains(e.target))\r\n return;\r\n\r\n this._handleClose();\r\n };\r\n\r\n private _handleToolAssistanceIndicatorClick = () => {\r\n const isOpen = (this.props.openWidget ?? this.state.openWidget) === this._className;\r\n if (isOpen) {\r\n this.setOpenWidget(null);\r\n } else\r\n this.setOpenWidget(this._className);\r\n };\r\n\r\n private _handlePinButtonClick = () => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ isPinned: true });\r\n };\r\n\r\n private _handleCloseButtonClick = () => {\r\n this._handleClose();\r\n };\r\n\r\n private setOpenWidget(openWidget: StatusBarFieldId) {\r\n this.props.onOpenWidget?.(openWidget);\r\n let newState = {\r\n openWidget,\r\n };\r\n if (!openWidget && this.state.isPinned && this._isMounted) {\r\n newState = {...newState, ...{isPinned: false}};\r\n }\r\n this.setState(newState);\r\n }\r\n\r\n /** @internal */\r\n public static getInstructionImage(instruction: ToolAssistanceInstruction): React.ReactNode {\r\n let image: React.ReactNode;\r\n\r\n if ((typeof instruction.image === \"string\" || instruction.image !== ToolAssistanceImage.Keyboard) && instruction.keyboardInfo) {\r\n if (instruction.keyboardInfo.keys.length === 1 && !instruction.keyboardInfo.bottomKeys) {\r\n const key = instruction.keyboardInfo.keys[0];\r\n const rightImage = (typeof instruction.image === \"string\") ?\r\n <div className=\"uifw-toolassistance-icon-medium\"><Icon iconSpec={instruction.image} /></div> :\r\n this.getInstructionSvgImage(instruction, true);\r\n\r\n image = (\r\n <FillCentered>\r\n {ToolAssistanceField.getKeyNode(key, 0, \"uifw-toolassistance-key-modifier\")}\r\n {rightImage}\r\n </FillCentered>\r\n );\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `getInstructionImage: Invalid keyboardInfo provided with image`);\r\n }\r\n } else if (typeof instruction.image === \"string\") {\r\n if (instruction.image.length > 0) {\r\n const svgSource = IconSpecUtilities.getSvgSource(instruction.image);\r\n const className = (svgSource !== undefined) ? \"uifw-toolassistance-svg\" : \"uifw-toolassistance-icon-large\";\r\n image = <div className={className}><Icon iconSpec={instruction.image} /></div>;\r\n }\r\n } else if (instruction.image === ToolAssistanceImage.Keyboard) {\r\n if (instruction.keyboardInfo) {\r\n image = ToolAssistanceField.getInstructionKeyboardImage(instruction.keyboardInfo);\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `getInstructionImage: ToolAssistanceImage.Keyboard specified but no keyboardInfo provided`);\r\n }\r\n } else {\r\n image = this.getInstructionSvgImage(instruction, false);\r\n }\r\n\r\n return image;\r\n }\r\n\r\n private static getInstructionSvgImage(instruction: ToolAssistanceInstruction, mediumSize: boolean): React.ReactNode {\r\n let image: React.ReactNode;\r\n let className = mediumSize ? \"uifw-toolassistance-svg-medium\" : \"uifw-toolassistance-svg\";\r\n\r\n // istanbul ignore else\r\n if (typeof instruction.image !== \"string\" && instruction.image !== ToolAssistanceImage.Keyboard) {\r\n const toolAssistanceImage: ToolAssistanceImage = instruction.image;\r\n let svgImage = \"\";\r\n\r\n switch (toolAssistanceImage) {\r\n case ToolAssistanceImage.AcceptPoint:\r\n svgImage = acceptPointIcon;\r\n break;\r\n case ToolAssistanceImage.CursorClick:\r\n svgImage = cursorClickIcon;\r\n break;\r\n case ToolAssistanceImage.LeftClick:\r\n svgImage = clickLeftIcon;\r\n break;\r\n case ToolAssistanceImage.RightClick:\r\n svgImage = clickRightIcon;\r\n break;\r\n case ToolAssistanceImage.MouseWheel:\r\n svgImage = mouseWheelClickIcon;\r\n break;\r\n case ToolAssistanceImage.LeftClickDrag:\r\n svgImage = clickLeftDragIcon;\r\n className = mediumSize ? \"uifw-toolassistance-svg-medium-wide\" : \"uifw-toolassistance-svg-wide\";\r\n break;\r\n case ToolAssistanceImage.RightClickDrag:\r\n svgImage = clickRightDragIcon;\r\n className = mediumSize ? \"uifw-toolassistance-svg-medium-wide\" : \"uifw-toolassistance-svg-wide\";\r\n break;\r\n case ToolAssistanceImage.MouseWheelClickDrag:\r\n svgImage = clickMouseWheelDragIcon;\r\n className = mediumSize ? \"uifw-toolassistance-svg-medium-wide\" : \"uifw-toolassistance-svg-wide\";\r\n break;\r\n case ToolAssistanceImage.OneTouchTap:\r\n svgImage = oneTouchTapIcon;\r\n break;\r\n case ToolAssistanceImage.OneTouchDoubleTap:\r\n svgImage = oneTouchDoubleTapIcon;\r\n break;\r\n case ToolAssistanceImage.OneTouchDrag:\r\n svgImage = oneTouchDragIcon;\r\n break;\r\n case ToolAssistanceImage.TwoTouchTap:\r\n svgImage = twoTouchTapIcon;\r\n break;\r\n case ToolAssistanceImage.TwoTouchDrag:\r\n svgImage = twoTouchDragIcon;\r\n break;\r\n case ToolAssistanceImage.TwoTouchPinch:\r\n svgImage = twoTouchPinchIcon;\r\n break;\r\n case ToolAssistanceImage.TouchCursorTap:\r\n svgImage = touchCursorTapIcon;\r\n break;\r\n case ToolAssistanceImage.TouchCursorDrag:\r\n svgImage = touchCursorDragIcon;\r\n className = mediumSize ? /* istanbul ignore next */ \"uifw-toolassistance-svg-medium-wide\" : \"uifw-toolassistance-svg-wide\";\r\n break;\r\n }\r\n const iconSpec = IconSpecUtilities.createWebComponentIconSpec(svgImage);\r\n image = (\r\n <div className={className}>\r\n {svgImage &&\r\n // istanbul ignore next\r\n <Icon iconSpec={iconSpec} />\r\n }\r\n </div>\r\n );\r\n }\r\n\r\n return image;\r\n }\r\n\r\n private static getInstructionKeyboardImage(keyboardInfo: ToolAssistanceKeyboardInfo): React.ReactNode {\r\n let image: React.ReactNode;\r\n\r\n if (keyboardInfo.bottomKeys !== undefined) {\r\n image = (\r\n <div className=\"uifw-toolassistance-key-group\">\r\n <span className=\"row1\">\r\n {keyboardInfo.keys.map((key: string, index1: number) => {\r\n return ToolAssistanceField.getKeyNode(key, index1, \"uifw-toolassistance-key-small\");\r\n })}\r\n </span>\r\n <br />\r\n <span className=\"row2\">\r\n {keyboardInfo.bottomKeys.map((key: string, index2: number) => {\r\n return ToolAssistanceField.getKeyNode(key, index2, \"uifw-toolassistance-key-small\");\r\n })}\r\n </span>\r\n </div>\r\n );\r\n } else if (keyboardInfo.keys.length === 2) {\r\n image = (\r\n <FillCentered>\r\n {keyboardInfo.keys.map((key: string, index3: number) => {\r\n let className = \"uifw-toolassistance-key-medium\";\r\n if (key.length > 1)\r\n className = \"uifw-toolassistance-key-modifier\";\r\n return ToolAssistanceField.getKeyNode(key, index3, className);\r\n })}\r\n </FillCentered>\r\n );\r\n } else if (keyboardInfo.keys[0]) {\r\n if (keyboardInfo.keys[0].length > 1)\r\n image = ToolAssistanceField.getKeyNode(keyboardInfo.keys[0], 0, \"uifw-toolassistance-key-large\");\r\n else\r\n image = ToolAssistanceField.getKeyNode(keyboardInfo.keys[0], 0);\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `ToolAssistanceImage.Keyboard specified but ToolAssistanceKeyboardInfo not valid`);\r\n }\r\n\r\n return image;\r\n }\r\n\r\n private static getKeyNode(key: string, index: number, className?: string): React.ReactNode {\r\n return (\r\n <div key={index.toString()} className={classnames(\"uifw-toolassistance-key\", className)}>\r\n <FillCentered>{key}</FillCentered>\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ToolAssistanceField.js","sourceRoot":"","sources":["../../../../../src/appui-react/statusfields/toolassistance/ToolAssistanceField.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable deprecation/deprecation */\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport \"./ToolAssistanceField.scss\";\r\nimport classnames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport { Logger } from \"@itwin/core-bentley\";\r\nimport {\r\n IModelApp, ToolAssistanceImage, ToolAssistanceInputMethod, ToolAssistanceInstruction, ToolAssistanceInstructions, ToolAssistanceKeyboardInfo,\r\n ToolAssistanceSection,\r\n} from \"@itwin/core-frontend\";\r\nimport { IconSpecUtilities } from \"@itwin/appui-abstract\";\r\nimport {\r\n FillCentered, Icon, LocalStateStorage, UiCore, UiStateEntry, UiStateStorage, UiStateStorageResult, UiStateStorageStatus,\r\n} from \"@itwin/core-react\";\r\nimport {\r\n FooterPopup, ToolAssistanceInstruction as NZ_ToolAssistanceInstruction, TitleBarButton, ToolAssistance, ToolAssistanceDialog,\r\n ToolAssistanceItem,\r\n ToolAssistanceSeparator,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { HorizontalTabs, ToggleSwitch } from \"@itwin/itwinui-react\";\r\nimport { CursorPrompt } from \"../../cursor/cursorprompt/CursorPrompt\";\r\nimport { FrontstageManager, ToolIconChangedEventArgs } from \"../../frontstage/FrontstageManager\";\r\nimport { MessageManager, ToolAssistanceChangedEventArgs } from \"../../messages/MessageManager\";\r\nimport { StatusBarFieldId } from \"../../statusbar/StatusBarWidgetControl\";\r\nimport { UiFramework } from \"../../UiFramework\";\r\nimport { StatusFieldProps } from \"../StatusFieldProps\";\r\nimport { UiStateStorageContext } from \"../../uistate/useUiStateStorage\";\r\n\r\nimport acceptPointIcon from \"./accept-point.svg\";\r\nimport cursorClickIcon from \"./cursor-click.svg\";\r\nimport oneTouchDragIcon from \"./gesture-one-finger-drag.svg\";\r\nimport oneTouchDoubleTapIcon from \"./gesture-one-finger-tap-double.svg\";\r\nimport oneTouchTapIcon from \"./gesture-one-finger-tap.svg\";\r\nimport twoTouchPinchIcon from \"./gesture-pinch.svg\";\r\nimport twoTouchDragIcon from \"./gesture-two-finger-drag.svg\";\r\nimport twoTouchTapIcon from \"./gesture-two-finger-tap.svg\";\r\nimport clickLeftDragIcon from \"./mouse-click-left-drag.svg\";\r\nimport clickLeftIcon from \"./mouse-click-left.svg\";\r\nimport clickRightDragIcon from \"./mouse-click-right-drag.svg\";\r\nimport clickRightIcon from \"./mouse-click-right.svg\";\r\nimport clickMouseWheelDragIcon from \"./mouse-click-wheel-drag.svg\";\r\nimport mouseWheelClickIcon from \"./mouse-click-wheel.svg\";\r\nimport touchCursorDragIcon from \"./touch-cursor-pan.svg\";\r\nimport touchCursorTapIcon from \"./touch-cursor-point.svg\";\r\n\r\n// cSpell:ignore cursorprompt\r\n\r\n/** Properties of [[ToolAssistanceField]] component.\r\n * @public\r\n */\r\nexport interface ToolAssistanceFieldProps extends StatusFieldProps {\r\n /** Indicates whether to include promptAtCursor Checkbox. Defaults to true. */\r\n includePromptAtCursor: boolean;\r\n /** Optional parameter for persistent UI settings. Defaults to UiStateStorageContext.\r\n */\r\n uiStateStorage?: UiStateStorage; // eslint-disable-line deprecation/deprecation\r\n /** Cursor Prompt Timeout period. Defaults to 5000. */\r\n cursorPromptTimeout: number;\r\n /** Fade Out the Cursor Prompt when closed. */\r\n fadeOutCursorPrompt: boolean;\r\n /** Indicates whether to show promptAtCursor by default. Defaults to false. */\r\n defaultPromptAtCursor: boolean;\r\n}\r\n\r\n/** Default properties of [[ToolAssistanceField]] component.\r\n * @internal\r\n */\r\nexport type ToolAssistanceFieldDefaultProps =\r\n Pick<ToolAssistanceFieldProps, \"includePromptAtCursor\" | \"uiStateStorage\" | \"cursorPromptTimeout\" | \"fadeOutCursorPrompt\" | \"defaultPromptAtCursor\">;\r\n\r\n/** @internal */\r\ninterface ToolAssistanceFieldState {\r\n instructions: ToolAssistanceInstructions | undefined;\r\n toolIconSpec: string;\r\n showPromptAtCursor: boolean;\r\n includeMouseInstructions: boolean;\r\n includeTouchInstructions: boolean;\r\n showMouseTouchTabs: boolean;\r\n showMouseInstructions: boolean;\r\n showTouchInstructions: boolean;\r\n mouseTouchTabIndex: number;\r\n isPinned: boolean;\r\n openWidget: string | null;\r\n}\r\n\r\n/** Tool Assistance Field React component.\r\n * @public\r\n */\r\nexport class ToolAssistanceField extends React.Component<ToolAssistanceFieldProps, ToolAssistanceFieldState> {\r\n /** @internal */\r\n public static override contextType = UiStateStorageContext;\r\n /** @internal */\r\n public declare context: React.ContextType<typeof UiStateStorageContext>;\r\n\r\n private static _toolAssistanceKey = \"ToolAssistance\";\r\n private static _showPromptAtCursorKey = \"showPromptAtCursor\";\r\n private static _mouseTouchTabIndexKey = \"mouseTouchTabIndex\";\r\n private _showPromptAtCursorSetting: UiStateEntry<boolean>;\r\n private _mouseTouchTabIndexSetting: UiStateEntry<number>;\r\n private _target: HTMLElement | null = null;\r\n private _className: string;\r\n private _indicator = React.createRef<HTMLDivElement>();\r\n private _cursorPrompt: CursorPrompt;\r\n private _isMounted = false;\r\n private _uiSettingsStorage: UiStateStorage; // eslint-disable-line deprecation/deprecation\r\n\r\n /** @internal */\r\n public static readonly defaultProps: ToolAssistanceFieldDefaultProps = {\r\n includePromptAtCursor: true,\r\n cursorPromptTimeout: 5000,\r\n fadeOutCursorPrompt: true,\r\n defaultPromptAtCursor: false,\r\n };\r\n\r\n /** @internal */\r\n constructor(p: ToolAssistanceFieldProps) {\r\n super(p);\r\n\r\n const instance = this.constructor;\r\n this._className = instance.name;\r\n\r\n const mobile = UiFramework.isMobile();\r\n\r\n this.state = {\r\n instructions: undefined,\r\n toolIconSpec: \"\",\r\n showPromptAtCursor: p.defaultPromptAtCursor,\r\n includeMouseInstructions: !mobile,\r\n includeTouchInstructions: true,\r\n showMouseTouchTabs: false,\r\n showMouseInstructions: false,\r\n showTouchInstructions: false,\r\n mouseTouchTabIndex: 0,\r\n isPinned: false,\r\n openWidget: null,\r\n };\r\n\r\n this._uiSettingsStorage = new LocalStateStorage();\r\n this._cursorPrompt = new CursorPrompt(this.props.cursorPromptTimeout, this.props.fadeOutCursorPrompt);\r\n this._showPromptAtCursorSetting = new UiStateEntry(ToolAssistanceField._toolAssistanceKey, ToolAssistanceField._showPromptAtCursorKey,\r\n () => this.state.showPromptAtCursor);\r\n this._mouseTouchTabIndexSetting = new UiStateEntry(ToolAssistanceField._toolAssistanceKey, ToolAssistanceField._mouseTouchTabIndexKey,\r\n () => this.state.mouseTouchTabIndex);\r\n }\r\n\r\n /** @internal */\r\n public override async componentDidMount() {\r\n this._isMounted = true;\r\n MessageManager.onToolAssistanceChangedEvent.addListener(this._handleToolAssistanceChangedEvent);\r\n FrontstageManager.onToolIconChangedEvent.addListener(this._handleToolIconChangedEvent);\r\n\r\n // istanbul ignore else\r\n if (this.props.uiStateStorage)\r\n this._uiSettingsStorage = this.props.uiStateStorage;\r\n else if (this.context)\r\n this._uiSettingsStorage = this.context;\r\n\r\n await this.restoreSettings();\r\n }\r\n\r\n /** @internal */\r\n public override componentWillUnmount() {\r\n this._isMounted = false;\r\n MessageManager.onToolAssistanceChangedEvent.removeListener(this._handleToolAssistanceChangedEvent);\r\n FrontstageManager.onToolIconChangedEvent.removeListener(this._handleToolIconChangedEvent);\r\n }\r\n\r\n private async restoreSettings() {\r\n let getShowPromptAtCursor: Promise<UiStateStorageResult> | undefined; // eslint-disable-line deprecation/deprecation\r\n // istanbul ignore else\r\n if (this.props.includePromptAtCursor) {\r\n getShowPromptAtCursor = this._showPromptAtCursorSetting.getSetting(this._uiSettingsStorage);\r\n }\r\n const getMouseTouchTabIndex = this._mouseTouchTabIndexSetting.getSetting(this._uiSettingsStorage);\r\n const [showPromptAtCursorResult, mouseTouchTabIndexResult] = await Promise.all([\r\n getShowPromptAtCursor,\r\n getMouseTouchTabIndex,\r\n ]);\r\n\r\n // istanbul ignore else\r\n if (showPromptAtCursorResult !== undefined && showPromptAtCursorResult.status === UiStateStorageStatus.Success) {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ showPromptAtCursor: showPromptAtCursorResult.setting });\r\n }\r\n\r\n // istanbul ignore else\r\n if (mouseTouchTabIndexResult.status === UiStateStorageStatus.Success) {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ mouseTouchTabIndex: mouseTouchTabIndexResult.setting });\r\n }\r\n }\r\n\r\n private _handleToolAssistanceChangedEvent = (args: ToolAssistanceChangedEventArgs): void => {\r\n let showMouseTouchTabs = false;\r\n let showMouseInstructions = false;\r\n let showTouchInstructions = false;\r\n\r\n if (args.instructions && args.instructions.sections) {\r\n const hasMouseInstructions = args.instructions.sections.some((section: ToolAssistanceSection) => {\r\n return section.instructions.some((instruction: ToolAssistanceInstruction) => this._isMouseInstruction(instruction));\r\n });\r\n const hasTouchInstructions = args.instructions.sections.some((section: ToolAssistanceSection) => {\r\n return section.instructions.some((instruction: ToolAssistanceInstruction) => this._isTouchInstruction(instruction));\r\n });\r\n\r\n if (this.state.includeMouseInstructions && this.state.includeTouchInstructions && hasMouseInstructions && hasTouchInstructions) {\r\n showMouseTouchTabs = true;\r\n showMouseInstructions = this.state.mouseTouchTabIndex === 0;\r\n showTouchInstructions = this.state.mouseTouchTabIndex === 1;\r\n } else {\r\n if (this.state.includeMouseInstructions && hasMouseInstructions)\r\n showMouseInstructions = true;\r\n else if (this.state.includeTouchInstructions && hasTouchInstructions)\r\n showTouchInstructions = true;\r\n }\r\n }\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState(\r\n {\r\n instructions: args.instructions,\r\n showMouseTouchTabs,\r\n showMouseInstructions,\r\n showTouchInstructions,\r\n },\r\n () => {\r\n this._showCursorPrompt();\r\n },\r\n );\r\n };\r\n\r\n private _isBothInstruction = (instruction: ToolAssistanceInstruction) => {\r\n return instruction.inputMethod === undefined || instruction.inputMethod === ToolAssistanceInputMethod.Both;\r\n };\r\n\r\n private _isMouseInstruction = (instruction: ToolAssistanceInstruction) => instruction.inputMethod === ToolAssistanceInputMethod.Mouse;\r\n\r\n private _isTouchInstruction = (instruction: ToolAssistanceInstruction) => instruction.inputMethod === ToolAssistanceInputMethod.Touch;\r\n\r\n private _handleToolIconChangedEvent = (args: ToolIconChangedEventArgs): void => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState(\r\n { toolIconSpec: args.iconSpec },\r\n () => {\r\n this._showCursorPrompt();\r\n },\r\n );\r\n\r\n };\r\n\r\n private _showCursorPrompt() {\r\n if (this.state.showPromptAtCursor && this.state.instructions)\r\n this._cursorPrompt.display(this.state.toolIconSpec, this.state.instructions.mainInstruction);\r\n }\r\n\r\n private _sectionHasDisplayableInstructions(section: ToolAssistanceSection): boolean {\r\n const displayableInstructions = this._getDisplayableInstructions(section);\r\n return displayableInstructions.length > 0;\r\n }\r\n\r\n private _getDisplayableInstructions(section: ToolAssistanceSection): ToolAssistanceInstruction[] {\r\n const displayableInstructions = section.instructions.filter((instruction: ToolAssistanceInstruction) => {\r\n return (\r\n this._isBothInstruction(instruction)\r\n || (this.state.showMouseInstructions && this._isMouseInstruction(instruction))\r\n || (this.state.showTouchInstructions && this._isTouchInstruction(instruction))\r\n );\r\n });\r\n return displayableInstructions;\r\n }\r\n\r\n private _handleMouseTouchTab = async (index: number) => {\r\n const showMouseInstructions = index === 0;\r\n const showTouchInstructions = index === 1;\r\n\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n mouseTouchTabIndex: index,\r\n showMouseInstructions,\r\n showTouchInstructions,\r\n }, async () => {\r\n await this._mouseTouchTabIndexSetting.saveSetting(this._uiSettingsStorage);\r\n });\r\n };\r\n\r\n /** @internal */\r\n public override render(): React.ReactNode {\r\n const { instructions } = this.state;\r\n const dialogTitle = (IModelApp.toolAdmin.activeTool) ? /* istanbul ignore next */ IModelApp.toolAdmin.activeTool.flyover : UiFramework.translate(\"toolAssistance.title\");\r\n const mouseLabel = UiFramework.translate(\"toolAssistance.mouse\");\r\n const touchLabel = UiFramework.translate(\"toolAssistance.touch\");\r\n let prompt = \"\";\r\n let tooltip = \"\";\r\n let toolIcon: React.ReactNode;\r\n let dialogContent: React.ReactNode;\r\n\r\n if (instructions) {\r\n prompt = instructions.mainInstruction.text;\r\n toolIcon = <Icon iconSpec={this.state.toolIconSpec} />;\r\n\r\n let displayableSections: ToolAssistanceSection[] | undefined;\r\n if (instructions.sections) {\r\n displayableSections = instructions.sections.filter((section: ToolAssistanceSection) => this._sectionHasDisplayableInstructions(section));\r\n }\r\n\r\n dialogContent = (\r\n <div>\r\n {this.state.showMouseTouchTabs &&\r\n <HorizontalTabs\r\n tabsClassName=\"uifw-toolAssistance-tabs\"\r\n labels={[mouseLabel, touchLabel]}\r\n activeIndex={this.state.mouseTouchTabIndex}\r\n onTabSelected={this._handleMouseTouchTab} />\r\n }\r\n\r\n <div className=\"uifw-toolAssistance-content\">\r\n <NZ_ToolAssistanceInstruction\r\n key=\"main\"\r\n image={ToolAssistanceField.getInstructionImage(instructions.mainInstruction)}\r\n text={instructions.mainInstruction.text}\r\n isNew={instructions.mainInstruction.isNew} />\r\n\r\n {displayableSections && displayableSections.map((section: ToolAssistanceSection, index1: number) => {\r\n return (\r\n <React.Fragment key={index1.toString()}>\r\n <ToolAssistanceSeparator key={index1.toString()}>{section.label}</ToolAssistanceSeparator>\r\n {this._getDisplayableInstructions(section).map((instruction: ToolAssistanceInstruction, index2: number) => {\r\n return (\r\n <NZ_ToolAssistanceInstruction\r\n key={`${index1.toString()}-${index2.toString()}`}\r\n image={ToolAssistanceField.getInstructionImage(instruction)}\r\n text={instruction.text}\r\n isNew={instruction.isNew} />\r\n );\r\n })}\r\n </React.Fragment>\r\n );\r\n })}\r\n\r\n {this.props.includePromptAtCursor &&\r\n <>\r\n <ToolAssistanceSeparator key=\"prompt-sep\" />\r\n <ToolAssistanceItem key=\"prompt-item\">\r\n <ToggleSwitch\r\n label={UiFramework.translate(\"toolAssistance.promptAtCursor\")}\r\n labelPosition=\"right\"\r\n checked={this.state.showPromptAtCursor} onChange={this._onPromptAtCursorChange} />\r\n </ToolAssistanceItem>\r\n </>\r\n }\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n if (prompt)\r\n tooltip = prompt;\r\n\r\n // istanbul ignore next\r\n if (IModelApp.toolAdmin.activeTool)\r\n tooltip = `${IModelApp.toolAdmin.activeTool.flyover} > ${tooltip} `;\r\n\r\n if (tooltip) {\r\n const lineBreak = \"\\u000d\\u000a\";\r\n tooltip = tooltip + lineBreak;\r\n }\r\n\r\n tooltip += UiFramework.translate(\"toolAssistance.moreInfo\");\r\n\r\n return (\r\n <>\r\n <div style={{ height: \"100%\" }} ref={this._handleTargetRef}>\r\n <ToolAssistance // eslint-disable-line deprecation/deprecation\r\n icons={\r\n <>\r\n {toolIcon}\r\n </>\r\n }\r\n indicatorRef={this._indicator}\r\n className={classnames(\"uifw-statusFields-toolassistance\", this.props.className)}\r\n style={this.props.style}\r\n isInFooterMode={this.props.isInFooterMode ?? true}\r\n onClick={this._handleToolAssistanceIndicatorClick}\r\n title={tooltip}\r\n >\r\n {(this.props.isInFooterMode ?? true) ? prompt : undefined}\r\n </ToolAssistance>\r\n </div>\r\n <FooterPopup\r\n isOpen={(this.props.openWidget ?? this.state.openWidget) === this._className}\r\n onClose={this._handleClose}\r\n onOutsideClick={this._handleOutsideClick}\r\n target={this._target}\r\n isPinned={this.state.isPinned}\r\n >\r\n <ToolAssistanceDialog\r\n buttons={\r\n <>\r\n {!this.state.isPinned &&\r\n <TitleBarButton onClick={this._handlePinButtonClick} title={UiFramework.translate(\"toolAssistance.pin\")}>\r\n <i className={\"icon icon-pin\"} />\r\n </TitleBarButton>\r\n }\r\n {this.state.isPinned &&\r\n <TitleBarButton onClick={this._handleCloseButtonClick} title={UiCore.translate(\"dialog.close\")}>\r\n <i className={\"icon icon-close\"} />\r\n </TitleBarButton>\r\n }\r\n </>\r\n }\r\n title={dialogTitle}\r\n >\r\n {dialogContent}\r\n </ToolAssistanceDialog>\r\n </FooterPopup>\r\n </>\r\n );\r\n }\r\n\r\n private _handleTargetRef = (target: HTMLElement | null) => {\r\n this._target = target;\r\n };\r\n\r\n private _onPromptAtCursorChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({\r\n showPromptAtCursor: e.target.checked,\r\n }, async () => {\r\n await this._showPromptAtCursorSetting.saveSetting(this._uiSettingsStorage);\r\n });\r\n };\r\n\r\n private _handleClose = () => {\r\n this.setOpenWidget(null);\r\n };\r\n\r\n private _handleOutsideClick = (e: MouseEvent) => {\r\n if (this.state.isPinned)\r\n return;\r\n\r\n // istanbul ignore if\r\n if (!this._indicator.current ||\r\n !(e.target instanceof Node) ||\r\n this._indicator.current.contains(e.target))\r\n return;\r\n\r\n this._handleClose();\r\n };\r\n\r\n private _handleToolAssistanceIndicatorClick = () => {\r\n const isOpen = (this.props.openWidget ?? this.state.openWidget) === this._className;\r\n if (isOpen) {\r\n this.setOpenWidget(null);\r\n } else\r\n this.setOpenWidget(this._className);\r\n };\r\n\r\n private _handlePinButtonClick = () => {\r\n // istanbul ignore else\r\n if (this._isMounted)\r\n this.setState({ isPinned: true });\r\n };\r\n\r\n private _handleCloseButtonClick = () => {\r\n this._handleClose();\r\n };\r\n\r\n private setOpenWidget(openWidget: StatusBarFieldId) {\r\n this.props.onOpenWidget?.(openWidget);\r\n let newState = {\r\n openWidget,\r\n };\r\n if (!openWidget && this.state.isPinned && this._isMounted) {\r\n newState = {...newState, ...{isPinned: false}};\r\n }\r\n this.setState(newState);\r\n }\r\n\r\n /** @internal */\r\n public static getInstructionImage(instruction: ToolAssistanceInstruction): React.ReactNode {\r\n let image: React.ReactNode;\r\n\r\n if ((typeof instruction.image === \"string\" || instruction.image !== ToolAssistanceImage.Keyboard) && instruction.keyboardInfo) {\r\n if (instruction.keyboardInfo.keys.length === 1 && !instruction.keyboardInfo.bottomKeys) {\r\n const key = instruction.keyboardInfo.keys[0];\r\n const rightImage = (typeof instruction.image === \"string\") ?\r\n <div className=\"uifw-toolassistance-icon-medium\"><Icon iconSpec={instruction.image} /></div> :\r\n this.getInstructionSvgImage(instruction, true);\r\n\r\n image = (\r\n <FillCentered>\r\n {ToolAssistanceField.getKeyNode(key, 0, \"uifw-toolassistance-key-modifier\")}\r\n {rightImage}\r\n </FillCentered>\r\n );\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `getInstructionImage: Invalid keyboardInfo provided with image`);\r\n }\r\n } else if (typeof instruction.image === \"string\") {\r\n if (instruction.image.length > 0) {\r\n const svgSource = IconSpecUtilities.getSvgSource(instruction.image);\r\n const className = (svgSource !== undefined) ? \"uifw-toolassistance-svg\" : \"uifw-toolassistance-icon-large\";\r\n image = <div className={className}><Icon iconSpec={instruction.image} /></div>;\r\n }\r\n } else if (instruction.image === ToolAssistanceImage.Keyboard) {\r\n if (instruction.keyboardInfo) {\r\n image = ToolAssistanceField.getInstructionKeyboardImage(instruction.keyboardInfo);\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `getInstructionImage: ToolAssistanceImage.Keyboard specified but no keyboardInfo provided`);\r\n }\r\n } else {\r\n image = this.getInstructionSvgImage(instruction, false);\r\n }\r\n\r\n return image;\r\n }\r\n\r\n private static getInstructionSvgImage(instruction: ToolAssistanceInstruction, mediumSize: boolean): React.ReactNode {\r\n let image: React.ReactNode;\r\n let className = mediumSize ? \"uifw-toolassistance-svg-medium\" : \"uifw-toolassistance-svg\";\r\n\r\n // istanbul ignore else\r\n if (typeof instruction.image !== \"string\" && instruction.image !== ToolAssistanceImage.Keyboard) {\r\n const toolAssistanceImage: ToolAssistanceImage = instruction.image;\r\n let svgImage = \"\";\r\n\r\n switch (toolAssistanceImage) {\r\n case ToolAssistanceImage.AcceptPoint:\r\n svgImage = acceptPointIcon;\r\n break;\r\n case ToolAssistanceImage.CursorClick:\r\n svgImage = cursorClickIcon;\r\n break;\r\n case ToolAssistanceImage.LeftClick:\r\n svgImage = clickLeftIcon;\r\n break;\r\n case ToolAssistanceImage.RightClick:\r\n svgImage = clickRightIcon;\r\n break;\r\n case ToolAssistanceImage.MouseWheel:\r\n svgImage = mouseWheelClickIcon;\r\n break;\r\n case ToolAssistanceImage.LeftClickDrag:\r\n svgImage = clickLeftDragIcon;\r\n className = mediumSize ? \"uifw-toolassistance-svg-medium-wide\" : \"uifw-toolassistance-svg-wide\";\r\n break;\r\n case ToolAssistanceImage.RightClickDrag:\r\n svgImage = clickRightDragIcon;\r\n className = mediumSize ? \"uifw-toolassistance-svg-medium-wide\" : \"uifw-toolassistance-svg-wide\";\r\n break;\r\n case ToolAssistanceImage.MouseWheelClickDrag:\r\n svgImage = clickMouseWheelDragIcon;\r\n className = mediumSize ? \"uifw-toolassistance-svg-medium-wide\" : \"uifw-toolassistance-svg-wide\";\r\n break;\r\n case ToolAssistanceImage.OneTouchTap:\r\n svgImage = oneTouchTapIcon;\r\n break;\r\n case ToolAssistanceImage.OneTouchDoubleTap:\r\n svgImage = oneTouchDoubleTapIcon;\r\n break;\r\n case ToolAssistanceImage.OneTouchDrag:\r\n svgImage = oneTouchDragIcon;\r\n break;\r\n case ToolAssistanceImage.TwoTouchTap:\r\n svgImage = twoTouchTapIcon;\r\n break;\r\n case ToolAssistanceImage.TwoTouchDrag:\r\n svgImage = twoTouchDragIcon;\r\n break;\r\n case ToolAssistanceImage.TwoTouchPinch:\r\n svgImage = twoTouchPinchIcon;\r\n break;\r\n case ToolAssistanceImage.TouchCursorTap:\r\n svgImage = touchCursorTapIcon;\r\n break;\r\n case ToolAssistanceImage.TouchCursorDrag:\r\n svgImage = touchCursorDragIcon;\r\n className = mediumSize ? /* istanbul ignore next */ \"uifw-toolassistance-svg-medium-wide\" : \"uifw-toolassistance-svg-wide\";\r\n break;\r\n }\r\n const iconSpec = IconSpecUtilities.createWebComponentIconSpec(svgImage);\r\n image = (\r\n <div className={className}>\r\n {svgImage &&\r\n // istanbul ignore next\r\n <Icon iconSpec={iconSpec} />\r\n }\r\n </div>\r\n );\r\n }\r\n\r\n return image;\r\n }\r\n\r\n private static getInstructionKeyboardImage(keyboardInfo: ToolAssistanceKeyboardInfo): React.ReactNode {\r\n let image: React.ReactNode;\r\n\r\n if (keyboardInfo.bottomKeys !== undefined) {\r\n image = (\r\n <div className=\"uifw-toolassistance-key-group\">\r\n <span className=\"row1\">\r\n {keyboardInfo.keys.map((key: string, index1: number) => {\r\n return ToolAssistanceField.getKeyNode(key, index1, \"uifw-toolassistance-key-small\");\r\n })}\r\n </span>\r\n <br />\r\n <span className=\"row2\">\r\n {keyboardInfo.bottomKeys.map((key: string, index2: number) => {\r\n return ToolAssistanceField.getKeyNode(key, index2, \"uifw-toolassistance-key-small\");\r\n })}\r\n </span>\r\n </div>\r\n );\r\n } else if (keyboardInfo.keys.length === 2) {\r\n image = (\r\n <FillCentered>\r\n {keyboardInfo.keys.map((key: string, index3: number) => {\r\n let className = \"uifw-toolassistance-key-medium\";\r\n if (key.length > 1)\r\n className = \"uifw-toolassistance-key-modifier\";\r\n return ToolAssistanceField.getKeyNode(key, index3, className);\r\n })}\r\n </FillCentered>\r\n );\r\n } else if (keyboardInfo.keys[0]) {\r\n if (keyboardInfo.keys[0].length > 1)\r\n image = ToolAssistanceField.getKeyNode(keyboardInfo.keys[0], 0, \"uifw-toolassistance-key-large\");\r\n else\r\n image = ToolAssistanceField.getKeyNode(keyboardInfo.keys[0], 0);\r\n } else {\r\n Logger.logError(UiFramework.loggerCategory(this), `ToolAssistanceImage.Keyboard specified but ToolAssistanceKeyboardInfo not valid`);\r\n }\r\n\r\n return image;\r\n }\r\n\r\n private static getKeyNode(key: string, index: number, className?: string): React.ReactNode {\r\n return (\r\n <div key={index.toString()} className={classnames(\"uifw-toolassistance-key\", className)}>\r\n <FillCentered>{key}</FillCentered>\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StandardContentToolsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardContentToolsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EACL,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EACzC,kBAAkB,EAAE,YAAY,EACnD,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,0BAA0B;IACzC,mBAAmB,CAAC,EAAE;QACpB,QAAQ,CAAC,EAAE;YACT,0BAA0B,CAAC,EAAE,MAAM,CAAC;YACpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,CAAC;QACF,UAAU,CAAC,EAAE;YACX,2BAA2B,CAAC,EAAE,MAAM,CAAC;YACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,CAAC;KACH,CAAC;CACH;AAeD;;;GAGG;AACH,qBAAa,4BAA6B,SAAQ,mBAAmB;IAmBnC,OAAO,CAAC,mBAAmB,CAAC;IAlB5D;;;;;;;;OAQG;WACW,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;gBASjK,UAAU,EAAE,MAAM,EAAU,mBAAmB,CAAC,iCAAqB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;IAI1J,iCAAiC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,iBAAiB,EAAE;IAgDrL,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CAWjI"}
1
+ {"version":3,"file":"StandardContentToolsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardContentToolsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EACL,mBAAmB,EAAE,mBAAmB,EAAE,iBAAiB,EACzC,kBAAkB,EAAE,YAAY,EACnD,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAE5E;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,0BAA0B;IACzC,mBAAmB,CAAC,EAAE;QACpB,QAAQ,CAAC,EAAE;YACT,0BAA0B,CAAC,EAAE,MAAM,CAAC;YACpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;YAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,CAAC;QACF,UAAU,CAAC,EAAE;YACX,2BAA2B,CAAC,EAAE,MAAM,CAAC;YACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;SACjC,CAAC;KACH,CAAC;CACH;AAeD;;;GAGG;AACH,qBAAa,4BAA6B,SAAQ,mBAAmB;IAmBnC,OAAO,CAAC,mBAAmB,CAAC;IAlB5D;;;;;;;;OAQG;WACW,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;gBASjK,UAAU,EAAE,MAAM,EAAU,mBAAmB,CAAC,iCAAqB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;IAI1J,iCAAiC,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,iBAAiB,EAAE;IAgDrL,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CAYjI"}
@@ -93,6 +93,7 @@ export class StandardContentToolsProvider extends BaseUiItemsProvider {
93
93
  const statusBarItems = [];
94
94
  // if the sectionGroup tools are to be shown then we want the status field added to allow clearing or manipulation the section
95
95
  if ((_b = (_a = this.defaultContentTools) === null || _a === void 0 ? void 0 : _a.vertical) === null || _b === void 0 ? void 0 : _b.sectionGroup) {
96
+ // eslint-disable-next-line deprecation/deprecation
96
97
  const Sections = withStatusFieldProps(SectionsStatusField);
97
98
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.Sections", StatusBarSection.Center, 20, React.createElement(Sections, { hideWhenUnused: true })));
98
99
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StandardContentToolsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardContentToolsProvider.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 StandardUiItemsProvider\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { ViewClipByPlaneTool } from \"@itwin/core-frontend\";\r\nimport {\r\n BaseUiItemsProvider, CommonStatusBarItem, CommonToolbarItem,\r\n StatusBarSection, ToolbarOrientation, ToolbarUsage, UiItemsManager,\r\n} from \"@itwin/appui-abstract\";\r\nimport { SelectionContextToolDefinitions } from \"../selection/SelectionContextItemDef\";\r\nimport { StatusBarItemUtilities } from \"../statusbar/StatusBarItemUtilities\";\r\nimport { withStatusFieldProps } from \"../statusbar/withStatusFieldProps\";\r\nimport { SectionsStatusField } from \"../statusfields/SectionsField\";\r\nimport { ToolbarHelper } from \"../toolbar/ToolbarHelper\";\r\nimport { CoreTools } from \"../tools/CoreToolDefinitions\";\r\nimport { DefaultContentTools } from \"./StandardContentToolsUiItemsProvider\";\r\n\r\n/**\r\n * Defines options that may be set in frontstage app data to control what group priorities\r\n * to use for each tool button that can be added by this extension. Defining groupIds is optional\r\n * and only required if use wants to override the default grouping. This application data is statically\r\n * set in the FrontstageProvider.\r\n * @example\r\n * ```\r\n * const applicationData = {\r\n * defaultContentTools: {\r\n * vertical: {\r\n * selectElementGroupPriority: 100,\r\n * measureGroupPriority: 200,\r\n * selectionGroupPriority: 300,\r\n * },\r\n * horizontal: {\r\n * clearSelectionGroupPriority: 100,\r\n * overridesGroupPriority: 200,\r\n * },\r\n * },\r\n * }\r\n *\r\n * ```\r\n * @public\r\n */\r\nexport interface DefaultContentToolsAppData {\r\n defaultContentTools?: {\r\n vertical?: {\r\n selectElementGroupPriority?: number;\r\n measureGroupPriority?: number;\r\n selectionGroupPriority?: number;\r\n };\r\n horizontal?: {\r\n clearSelectionGroupPriority?: number;\r\n overridesGroupPriority?: number;\r\n };\r\n };\r\n}\r\n\r\nfunction getGroupPriority(potentialId: any, defaultValue: number) {\r\n if (undefined === potentialId)\r\n return defaultValue;\r\n\r\n // istanbul ignore else\r\n if (typeof potentialId === \"number\") {\r\n return potentialId;\r\n }\r\n\r\n // istanbul ignore next\r\n return defaultValue;\r\n}\r\n\r\n/**\r\n * Provide standard tools for the ContentManipulationWidgetComposer.\r\n * @public\r\n */\r\nexport class StandardContentToolsProvider extends BaseUiItemsProvider {\r\n /**\r\n * static function to register the StandardContentToolsProvider\r\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\r\n * to set up custom stage with their own subset of standard tools.\r\n * @param defaultContentTools - if undefined all available tools are provided to stage. If defined only those\r\n * specific tool buttons are shown.\r\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\r\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\r\n */\r\n public static register(providerId: string, defaultContentTools?: DefaultContentTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n const provider = new StandardContentToolsProvider(providerId, defaultContentTools, isSupportedStage);\r\n UiItemsManager.register(provider);\r\n\r\n // register core commands not automatically registered\r\n ViewClipByPlaneTool.register();\r\n return provider;\r\n }\r\n\r\n constructor(providerId: string, private defaultContentTools?: DefaultContentTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n super(providerId, isSupportedStage);\r\n }\r\n\r\n public override provideToolbarButtonItemsInternal(_stageId: string, _stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any): CommonToolbarItem[] {\r\n const items: CommonToolbarItem[] = [];\r\n\r\n if (toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Horizontal) {\r\n const clearSelectionGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.horizontal?.clearSelectionGroupPriority, 10);\r\n const overridesGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.horizontal?.overridesGroupPriority, 20);\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.horizontal || this.defaultContentTools.horizontal.clearSelection)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.clearSelectionItemDef, { groupPriority: clearSelectionGroupPriority }));\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.horizontal || this.defaultContentTools.horizontal.clearDisplayOverrides)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, SelectionContextToolDefinitions.clearHideIsolateEmphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.horizontal || this.defaultContentTools.horizontal.hide) {\r\n if (this.defaultContentTools?.horizontal?.hide === \"group\")\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, SelectionContextToolDefinitions.hideSectionToolGroup, { groupPriority: overridesGroupPriority }));\r\n else\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, SelectionContextToolDefinitions.hideElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.horizontal || this.defaultContentTools.horizontal.isolate) {\r\n if (this.defaultContentTools?.horizontal?.isolate === \"group\")\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, SelectionContextToolDefinitions.isolateSelectionToolGroup, { groupPriority: overridesGroupPriority }));\r\n else\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, SelectionContextToolDefinitions.isolateElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.horizontal || this.defaultContentTools.horizontal.emphasize) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(50, SelectionContextToolDefinitions.emphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n } else /* istanbul ignore else */ if (toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Vertical) {\r\n const selectElementGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.selectElementGroupPriority, 10);\r\n const measureGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.measureGroupPriority, 10);\r\n const selectionGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.selectionGroupPriority, 10);\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.vertical || this.defaultContentTools.vertical.selectElement)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.selectElementCommand, { groupPriority: selectElementGroupPriority }));\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.vertical || this.defaultContentTools.vertical.measureGroup)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.measureToolGroup, { groupPriority: measureGroupPriority }));\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.vertical || this.defaultContentTools.vertical.sectionGroup)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, CoreTools.sectionToolGroup, { groupPriority: selectionGroupPriority }));\r\n }\r\n return items;\r\n }\r\n\r\n public override provideStatusBarItemsInternal(_stageId: string, _stageUsage: string, _stageAppData?: any): CommonStatusBarItem[] {\r\n const statusBarItems: CommonStatusBarItem[] = [];\r\n\r\n // if the sectionGroup tools are to be shown then we want the status field added to allow clearing or manipulation the section\r\n if (this.defaultContentTools?.vertical?.sectionGroup) {\r\n const Sections = withStatusFieldProps(SectionsStatusField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.Sections\", StatusBarSection.Center, 20, <Sections hideWhenUnused />));\r\n }\r\n\r\n return statusBarItems;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"StandardContentToolsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardContentToolsProvider.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 StandardUiItemsProvider\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { ViewClipByPlaneTool } from \"@itwin/core-frontend\";\r\nimport {\r\n BaseUiItemsProvider, CommonStatusBarItem, CommonToolbarItem,\r\n StatusBarSection, ToolbarOrientation, ToolbarUsage, UiItemsManager,\r\n} from \"@itwin/appui-abstract\";\r\nimport { SelectionContextToolDefinitions } from \"../selection/SelectionContextItemDef\";\r\nimport { StatusBarItemUtilities } from \"../statusbar/StatusBarItemUtilities\";\r\nimport { withStatusFieldProps } from \"../statusbar/withStatusFieldProps\";\r\nimport { SectionsStatusField } from \"../statusfields/SectionsField\";\r\nimport { ToolbarHelper } from \"../toolbar/ToolbarHelper\";\r\nimport { CoreTools } from \"../tools/CoreToolDefinitions\";\r\nimport { DefaultContentTools } from \"./StandardContentToolsUiItemsProvider\";\r\n\r\n/**\r\n * Defines options that may be set in frontstage app data to control what group priorities\r\n * to use for each tool button that can be added by this extension. Defining groupIds is optional\r\n * and only required if use wants to override the default grouping. This application data is statically\r\n * set in the FrontstageProvider.\r\n * @example\r\n * ```\r\n * const applicationData = {\r\n * defaultContentTools: {\r\n * vertical: {\r\n * selectElementGroupPriority: 100,\r\n * measureGroupPriority: 200,\r\n * selectionGroupPriority: 300,\r\n * },\r\n * horizontal: {\r\n * clearSelectionGroupPriority: 100,\r\n * overridesGroupPriority: 200,\r\n * },\r\n * },\r\n * }\r\n *\r\n * ```\r\n * @public\r\n */\r\nexport interface DefaultContentToolsAppData {\r\n defaultContentTools?: {\r\n vertical?: {\r\n selectElementGroupPriority?: number;\r\n measureGroupPriority?: number;\r\n selectionGroupPriority?: number;\r\n };\r\n horizontal?: {\r\n clearSelectionGroupPriority?: number;\r\n overridesGroupPriority?: number;\r\n };\r\n };\r\n}\r\n\r\nfunction getGroupPriority(potentialId: any, defaultValue: number) {\r\n if (undefined === potentialId)\r\n return defaultValue;\r\n\r\n // istanbul ignore else\r\n if (typeof potentialId === \"number\") {\r\n return potentialId;\r\n }\r\n\r\n // istanbul ignore next\r\n return defaultValue;\r\n}\r\n\r\n/**\r\n * Provide standard tools for the ContentManipulationWidgetComposer.\r\n * @public\r\n */\r\nexport class StandardContentToolsProvider extends BaseUiItemsProvider {\r\n /**\r\n * static function to register the StandardContentToolsProvider\r\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\r\n * to set up custom stage with their own subset of standard tools.\r\n * @param defaultContentTools - if undefined all available tools are provided to stage. If defined only those\r\n * specific tool buttons are shown.\r\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\r\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\r\n */\r\n public static register(providerId: string, defaultContentTools?: DefaultContentTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n const provider = new StandardContentToolsProvider(providerId, defaultContentTools, isSupportedStage);\r\n UiItemsManager.register(provider);\r\n\r\n // register core commands not automatically registered\r\n ViewClipByPlaneTool.register();\r\n return provider;\r\n }\r\n\r\n constructor(providerId: string, private defaultContentTools?: DefaultContentTools, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n super(providerId, isSupportedStage);\r\n }\r\n\r\n public override provideToolbarButtonItemsInternal(_stageId: string, _stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any): CommonToolbarItem[] {\r\n const items: CommonToolbarItem[] = [];\r\n\r\n if (toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Horizontal) {\r\n const clearSelectionGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.horizontal?.clearSelectionGroupPriority, 10);\r\n const overridesGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.horizontal?.overridesGroupPriority, 20);\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.horizontal || this.defaultContentTools.horizontal.clearSelection)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.clearSelectionItemDef, { groupPriority: clearSelectionGroupPriority }));\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.horizontal || this.defaultContentTools.horizontal.clearDisplayOverrides)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, SelectionContextToolDefinitions.clearHideIsolateEmphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.horizontal || this.defaultContentTools.horizontal.hide) {\r\n if (this.defaultContentTools?.horizontal?.hide === \"group\")\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, SelectionContextToolDefinitions.hideSectionToolGroup, { groupPriority: overridesGroupPriority }));\r\n else\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, SelectionContextToolDefinitions.hideElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.horizontal || this.defaultContentTools.horizontal.isolate) {\r\n if (this.defaultContentTools?.horizontal?.isolate === \"group\")\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, SelectionContextToolDefinitions.isolateSelectionToolGroup, { groupPriority: overridesGroupPriority }));\r\n else\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, SelectionContextToolDefinitions.isolateElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.horizontal || this.defaultContentTools.horizontal.emphasize) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(50, SelectionContextToolDefinitions.emphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n } else /* istanbul ignore else */ if (toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Vertical) {\r\n const selectElementGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.selectElementGroupPriority, 10);\r\n const measureGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.measureGroupPriority, 10);\r\n const selectionGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.selectionGroupPriority, 10);\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.vertical || this.defaultContentTools.vertical.selectElement)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.selectElementCommand, { groupPriority: selectElementGroupPriority }));\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.vertical || this.defaultContentTools.vertical.measureGroup)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.measureToolGroup, { groupPriority: measureGroupPriority }));\r\n\r\n if (!this.defaultContentTools || !this.defaultContentTools.vertical || this.defaultContentTools.vertical.sectionGroup)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, CoreTools.sectionToolGroup, { groupPriority: selectionGroupPriority }));\r\n }\r\n return items;\r\n }\r\n\r\n public override provideStatusBarItemsInternal(_stageId: string, _stageUsage: string, _stageAppData?: any): CommonStatusBarItem[] {\r\n const statusBarItems: CommonStatusBarItem[] = [];\r\n\r\n // if the sectionGroup tools are to be shown then we want the status field added to allow clearing or manipulation the section\r\n if (this.defaultContentTools?.vertical?.sectionGroup) {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const Sections = withStatusFieldProps(SectionsStatusField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.Sections\", StatusBarSection.Center, 20, <Sections hideWhenUnused />));\r\n }\r\n\r\n return statusBarItems;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StandardContentToolsUiItemsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EACL,mBAAmB,EAAE,iBAAiB,EACpB,kBAAkB,EAAE,YAAY,EAClD,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAQ/B;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,4FAA4F;QAC5F,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC3B,+FAA+F;QAC/F,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC9B,sDAAsD;QACtD,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAeD;;GAEG;AACH,qBAAa,mCAAoC,YAAW,eAAe;IAI7D,OAAO,CAAC,mBAAmB,CAAC;IAHxC,IAAW,EAAE,IAAI,MAAM,CAA8D;IACrF,OAAO,CAAC,qBAAqB,CAAS;gBAElB,mBAAmB,CAAC,iCAAqB;IAEtD,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,iBAAiB,EAAE;IAwD7K,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CAWhH"}
1
+ {"version":3,"file":"StandardContentToolsUiItemsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EACL,mBAAmB,EAAE,iBAAiB,EACpB,kBAAkB,EAAE,YAAY,EAClD,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAQ/B;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,4FAA4F;QAC5F,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC3B,+FAA+F;QAC/F,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC9B,sDAAsD;QACtD,SAAS,CAAC,EAAE,SAAS,CAAC;KACvB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAeD;;GAEG;AACH,qBAAa,mCAAoC,YAAW,eAAe;IAI7D,OAAO,CAAC,mBAAmB,CAAC;IAHxC,IAAW,EAAE,IAAI,MAAM,CAA8D;IACrF,OAAO,CAAC,qBAAqB,CAAS;gBAElB,mBAAmB,CAAC,iCAAqB;IAEtD,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,CAAC,EAAE,GAAG,GAAG,iBAAiB,EAAE;IAwD7K,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CAYhH"}
@@ -83,6 +83,7 @@ export class StandardContentToolsUiItemsProvider {
83
83
  const statusBarItems = [];
84
84
  // if the sectionGroup tools are to be shown then we want the status field added to allow clearing or manipulation the section
85
85
  if ((_b = (_a = this.defaultContextTools) === null || _a === void 0 ? void 0 : _a.vertical) === null || _b === void 0 ? void 0 : _b.sectionGroup) {
86
+ // eslint-disable-next-line deprecation/deprecation
86
87
  const Sections = withStatusFieldProps(SectionsStatusField);
87
88
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.Sections", StatusBarSection.Center, 20, React.createElement(Sections, { hideWhenUnused: true })));
88
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StandardContentToolsUiItemsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.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 StandardUiItemsProvider\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { ViewClipByPlaneTool } from \"@itwin/core-frontend\";\r\nimport {\r\n CommonStatusBarItem, CommonToolbarItem,\r\n StatusBarSection, ToolbarOrientation, ToolbarUsage,\r\n UiItemsProvider,\r\n} from \"@itwin/appui-abstract\";\r\nimport { SelectionContextToolDefinitions } from \"../selection/SelectionContextItemDef\";\r\nimport { StatusBarItemUtilities } from \"../statusbar/StatusBarItemUtilities\";\r\nimport { withStatusFieldProps } from \"../statusbar/withStatusFieldProps\";\r\nimport { SectionsStatusField } from \"../statusfields/SectionsField\";\r\nimport { ToolbarHelper } from \"../toolbar/ToolbarHelper\";\r\nimport { CoreTools } from \"../tools/CoreToolDefinitions\";\r\n\r\n/**\r\n * Defines what tools to include from the provider. If any tools in the horizontal or vertical group are\r\n * specified then only those tools will be provided to stage.\r\n * @public\r\n */\r\nexport interface DefaultContentTools {\r\n horizontal?: {\r\n clearSelection?: boolean;\r\n clearDisplayOverrides?: boolean;\r\n /** if group then group button is shown to allow user to hide by element, category, model */\r\n hide?: \"group\" | \"element\";\r\n /** if group then group button is shown to allow user to isolate by element, category, model */\r\n isolate?: \"group\" | \"element\";\r\n /** only element is currently support for emphasize */\r\n emphasize?: \"element\";\r\n };\r\n vertical?: {\r\n selectElement?: boolean;\r\n measureGroup?: boolean;\r\n sectionGroup?: boolean;\r\n };\r\n}\r\n\r\nfunction getGroupPriority(potentialId: any, defaultValue: number) {\r\n if (undefined === potentialId)\r\n return defaultValue;\r\n\r\n // istanbul ignore else\r\n if (typeof potentialId === \"number\") {\r\n return potentialId;\r\n }\r\n\r\n // istanbul ignore next\r\n return defaultValue;\r\n}\r\n\r\n/**\r\n * @beta\r\n */\r\nexport class StandardContentToolsUiItemsProvider implements UiItemsProvider {\r\n public get id(): string { return \"appui-react:StandardContentToolsUiItemsProvider\"; }\r\n private _isClipToolRegistered = false;\r\n\r\n constructor(private defaultContextTools?: DefaultContentTools) { }\r\n\r\n public provideToolbarButtonItems(_stageId: string, _stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any): CommonToolbarItem[] {\r\n const items: CommonToolbarItem[] = [];\r\n\r\n if (toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Horizontal) {\r\n const clearSelectionGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.horizontal?.clearSelectionGroupPriority, 10);\r\n const overridesGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.horizontal?.overridesGroupPriority, 20);\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.clearSelection)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.clearSelectionItemDef, { groupPriority: clearSelectionGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.clearDisplayOverrides)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, SelectionContextToolDefinitions.clearHideIsolateEmphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.hide) {\r\n if (this.defaultContextTools?.horizontal?.hide === \"group\")\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, SelectionContextToolDefinitions.hideSectionToolGroup, { groupPriority: overridesGroupPriority }));\r\n\r\n else\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, SelectionContextToolDefinitions.hideElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.isolate) {\r\n if (this.defaultContextTools?.horizontal?.isolate === \"group\")\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, SelectionContextToolDefinitions.isolateSelectionToolGroup, { groupPriority: overridesGroupPriority }));\r\n\r\n else\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, SelectionContextToolDefinitions.isolateElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.emphasize) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(50, SelectionContextToolDefinitions.emphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n } else /* istanbul ignore else */ if (toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Vertical) {\r\n const selectElementGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.selectElementGroupPriority, 10);\r\n const measureGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.measureGroupPriority, 10);\r\n const selectionGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.selectionGroupPriority, 10);\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.vertical || this.defaultContextTools.vertical.selectElement)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.selectElementCommand, { groupPriority: selectElementGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.vertical || this.defaultContextTools.vertical.measureGroup)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.measureToolGroup, { groupPriority: measureGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.vertical || this.defaultContextTools.vertical.sectionGroup) {\r\n if (!this._isClipToolRegistered) {\r\n // register core commands not automatically registered\r\n ViewClipByPlaneTool.register();\r\n this._isClipToolRegistered = true;\r\n }\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, CoreTools.sectionToolGroup, { groupPriority: selectionGroupPriority }));\r\n }\r\n }\r\n return items;\r\n }\r\n\r\n public provideStatusBarItems(_stageId: string, _stageUsage: string, _stageAppData?: any): CommonStatusBarItem[] {\r\n const statusBarItems: CommonStatusBarItem[] = [];\r\n\r\n // if the sectionGroup tools are to be shown then we want the status field added to allow clearing or manipulation the section\r\n if (this.defaultContextTools?.vertical?.sectionGroup) {\r\n const Sections = withStatusFieldProps(SectionsStatusField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.Sections\", StatusBarSection.Center, 20, <Sections hideWhenUnused />));\r\n }\r\n\r\n return statusBarItems;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"StandardContentToolsUiItemsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardContentToolsUiItemsProvider.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 StandardUiItemsProvider\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { ViewClipByPlaneTool } from \"@itwin/core-frontend\";\r\nimport {\r\n CommonStatusBarItem, CommonToolbarItem,\r\n StatusBarSection, ToolbarOrientation, ToolbarUsage,\r\n UiItemsProvider,\r\n} from \"@itwin/appui-abstract\";\r\nimport { SelectionContextToolDefinitions } from \"../selection/SelectionContextItemDef\";\r\nimport { StatusBarItemUtilities } from \"../statusbar/StatusBarItemUtilities\";\r\nimport { withStatusFieldProps } from \"../statusbar/withStatusFieldProps\";\r\nimport { SectionsStatusField } from \"../statusfields/SectionsField\";\r\nimport { ToolbarHelper } from \"../toolbar/ToolbarHelper\";\r\nimport { CoreTools } from \"../tools/CoreToolDefinitions\";\r\n\r\n/**\r\n * Defines what tools to include from the provider. If any tools in the horizontal or vertical group are\r\n * specified then only those tools will be provided to stage.\r\n * @public\r\n */\r\nexport interface DefaultContentTools {\r\n horizontal?: {\r\n clearSelection?: boolean;\r\n clearDisplayOverrides?: boolean;\r\n /** if group then group button is shown to allow user to hide by element, category, model */\r\n hide?: \"group\" | \"element\";\r\n /** if group then group button is shown to allow user to isolate by element, category, model */\r\n isolate?: \"group\" | \"element\";\r\n /** only element is currently support for emphasize */\r\n emphasize?: \"element\";\r\n };\r\n vertical?: {\r\n selectElement?: boolean;\r\n measureGroup?: boolean;\r\n sectionGroup?: boolean;\r\n };\r\n}\r\n\r\nfunction getGroupPriority(potentialId: any, defaultValue: number) {\r\n if (undefined === potentialId)\r\n return defaultValue;\r\n\r\n // istanbul ignore else\r\n if (typeof potentialId === \"number\") {\r\n return potentialId;\r\n }\r\n\r\n // istanbul ignore next\r\n return defaultValue;\r\n}\r\n\r\n/**\r\n * @beta\r\n */\r\nexport class StandardContentToolsUiItemsProvider implements UiItemsProvider {\r\n public get id(): string { return \"appui-react:StandardContentToolsUiItemsProvider\"; }\r\n private _isClipToolRegistered = false;\r\n\r\n constructor(private defaultContextTools?: DefaultContentTools) { }\r\n\r\n public provideToolbarButtonItems(_stageId: string, _stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation, stageAppData?: any): CommonToolbarItem[] {\r\n const items: CommonToolbarItem[] = [];\r\n\r\n if (toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Horizontal) {\r\n const clearSelectionGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.horizontal?.clearSelectionGroupPriority, 10);\r\n const overridesGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.horizontal?.overridesGroupPriority, 20);\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.clearSelection)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.clearSelectionItemDef, { groupPriority: clearSelectionGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.clearDisplayOverrides)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, SelectionContextToolDefinitions.clearHideIsolateEmphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.hide) {\r\n if (this.defaultContextTools?.horizontal?.hide === \"group\")\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, SelectionContextToolDefinitions.hideSectionToolGroup, { groupPriority: overridesGroupPriority }));\r\n\r\n else\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, SelectionContextToolDefinitions.hideElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.isolate) {\r\n if (this.defaultContextTools?.horizontal?.isolate === \"group\")\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, SelectionContextToolDefinitions.isolateSelectionToolGroup, { groupPriority: overridesGroupPriority }));\r\n\r\n else\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(40, SelectionContextToolDefinitions.isolateElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.horizontal || this.defaultContextTools.horizontal.emphasize) {\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(50, SelectionContextToolDefinitions.emphasizeElementsItemDef, { groupPriority: overridesGroupPriority }));\r\n }\r\n\r\n } else /* istanbul ignore else */ if (toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Vertical) {\r\n const selectElementGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.selectElementGroupPriority, 10);\r\n const measureGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.measureGroupPriority, 10);\r\n const selectionGroupPriority = getGroupPriority(stageAppData?.defaultContentTools?.vertical?.selectionGroupPriority, 10);\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.vertical || this.defaultContextTools.vertical.selectElement)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(10, CoreTools.selectElementCommand, { groupPriority: selectElementGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.vertical || this.defaultContextTools.vertical.measureGroup)\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(20, CoreTools.measureToolGroup, { groupPriority: measureGroupPriority }));\r\n\r\n if (!this.defaultContextTools || !this.defaultContextTools.vertical || this.defaultContextTools.vertical.sectionGroup) {\r\n if (!this._isClipToolRegistered) {\r\n // register core commands not automatically registered\r\n ViewClipByPlaneTool.register();\r\n this._isClipToolRegistered = true;\r\n }\r\n items.push(ToolbarHelper.createToolbarItemFromItemDef(30, CoreTools.sectionToolGroup, { groupPriority: selectionGroupPriority }));\r\n }\r\n }\r\n return items;\r\n }\r\n\r\n public provideStatusBarItems(_stageId: string, _stageUsage: string, _stageAppData?: any): CommonStatusBarItem[] {\r\n const statusBarItems: CommonStatusBarItem[] = [];\r\n\r\n // if the sectionGroup tools are to be shown then we want the status field added to allow clearing or manipulation the section\r\n if (this.defaultContextTools?.vertical?.sectionGroup) {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const Sections = withStatusFieldProps(SectionsStatusField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.Sections\", StatusBarSection.Center, 20, <Sections hideWhenUnused />));\r\n }\r\n\r\n return statusBarItems;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StandardStatusbarItemsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardStatusbarItemsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAoC,MAAM,uBAAuB,CAAC;AAYnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mBAAmB;IACrC,OAAO,CAAC,aAAa,CAAC;gBAA1C,UAAU,EAAE,MAAM,EAAU,aAAa,CAAC,mCAAuB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;IAItK;;;;;;;;MAQE;WACY,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;IAMxJ,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CA0CjI"}
1
+ {"version":3,"file":"StandardStatusbarItemsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardStatusbarItemsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAoC,MAAM,uBAAuB,CAAC;AAYnH,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E;;;GAGG;AACH,qBAAa,8BAA+B,SAAQ,mBAAmB;IACrC,OAAO,CAAC,aAAa,CAAC;gBAA1C,UAAU,EAAE,MAAM,EAAU,aAAa,CAAC,mCAAuB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;IAItK;;;;;;;;MAQE;WACY,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,qBAAqB,EAAE,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,GAAG,KAAK,OAAO;IAMxJ,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CA+CjI"}
@@ -45,34 +45,39 @@ export class StandardStatusbarItemsProvider extends BaseUiItemsProvider {
45
45
  var _a;
46
46
  const statusBarItems = [];
47
47
  if (!this._defaultItems || this._defaultItems.messageCenter) {
48
+ // eslint-disable-next-line deprecation/deprecation
48
49
  const MessageCenter = withMessageCenterFieldProps(MessageCenterField);
49
50
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.MessageCenter", StatusBarSection.Left, 10, React.createElement(MessageCenter, null)));
50
51
  }
51
52
  if (!this._defaultItems || this._defaultItems.toolAssistance) {
52
53
  if (!this._defaultItems || this._defaultItems.preToolAssistanceSeparator)
53
54
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PreToolAssistance", StatusBarSection.Left, 15, React.createElement(FooterSeparator, null)));
55
+ // eslint-disable-next-line deprecation/deprecation
54
56
  const ToolAssistance = withStatusFieldProps(ToolAssistanceField);
55
57
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.ToolAssistance", StatusBarSection.Left, 20, React.createElement(ToolAssistance, null)));
56
58
  if (!this._defaultItems || this._defaultItems.postToolAssistanceSeparator)
57
59
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PostToolAssistance", StatusBarSection.Left, 25, React.createElement(FooterSeparator, null)));
58
60
  }
59
61
  if ((_a = this._defaultItems) === null || _a === void 0 ? void 0 : _a.activityCenter) {
62
+ // eslint-disable-next-line deprecation/deprecation
60
63
  const ActivityCenter = withStatusFieldProps(ActivityCenterField);
61
64
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.ActivityCenter", StatusBarSection.Left, 30, React.createElement(ActivityCenter, null)));
62
65
  }
63
66
  if (!this._defaultItems || this._defaultItems.accuSnapModePicker) {
64
- const SnapMode = withMessageCenterFieldProps(SnapModeField);
65
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SnapMode", StatusBarSection.Center, 10, React.createElement(SnapMode, null)));
67
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SnapMode", StatusBarSection.Center, 10, React.createElement(SnapModeField, null)));
66
68
  }
67
69
  if (!this._defaultItems || this._defaultItems.tileLoadIndicator) {
70
+ // eslint-disable-next-line deprecation/deprecation
68
71
  const TileLoadIndicator = withStatusFieldProps(TileLoadingIndicator);
69
72
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.TileLoadIndicator", StatusBarSection.Right, 10, React.createElement(TileLoadIndicator, null)));
70
73
  }
71
74
  if (!this._defaultItems || this._defaultItems.selectionScope) {
75
+ // eslint-disable-next-line deprecation/deprecation
72
76
  const SelectionScope = withStatusFieldProps(SelectionScopeField);
73
77
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SelectionScope", StatusBarSection.Right, 20, React.createElement(SelectionScope, null)));
74
78
  }
75
79
  if (!this._defaultItems || this._defaultItems.selectionInfo) {
80
+ // eslint-disable-next-line deprecation/deprecation
76
81
  const SelectionInfo = withStatusFieldProps(SelectionInfoField);
77
82
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SelectionInfo", StatusBarSection.Right, 30, React.createElement(SelectionInfo, null)));
78
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StandardStatusbarItemsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardStatusbarItemsProvider.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 StandardUiItemsProvider\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { BaseUiItemsProvider, CommonStatusBarItem, StatusBarSection, UiItemsManager } from \"@itwin/appui-abstract\";\r\nimport { FooterSeparator } from \"@itwin/appui-layout-react\";\r\nimport { StatusBarItemUtilities } from \"../statusbar/StatusBarItemUtilities\";\r\nimport { ToolAssistanceField } from \"../statusfields/toolassistance/ToolAssistanceField\";\r\nimport { withStatusFieldProps } from \"../statusbar/withStatusFieldProps\";\r\nimport { MessageCenterField } from \"../statusfields/MessageCenter\";\r\nimport { withMessageCenterFieldProps } from \"../statusbar/withMessageCenterFieldProps\";\r\nimport { ActivityCenterField } from \"../statusfields/ActivityCenter\";\r\nimport { SnapModeField } from \"../statusfields/SnapMode\";\r\nimport { SelectionInfoField } from \"../statusfields/SelectionInfo\";\r\nimport { TileLoadingIndicator } from \"../statusfields/tileloading/TileLoadingIndicator\";\r\nimport { SelectionScopeField } from \"../statusfields/SelectionScope\";\r\nimport { DefaultStatusbarItems } from \"./StandardStatusbarUiItemsProvider\";\r\n\r\n/**\r\n * Provide standard statusbar fields for the SimpleStatusbarWidget\r\n * @public\r\n */\r\nexport class StandardStatusbarItemsProvider extends BaseUiItemsProvider {\r\n constructor(providerId: string, private _defaultItems?: DefaultStatusbarItems, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n super(providerId, isSupportedStage);\r\n }\r\n\r\n /**\r\n * static function to register the StandardStatusbarItemsProvider\r\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\r\n * to set up custom stage with their own subset of standard status bar items.\r\n * @param defaultItems - if undefined all available item are provided to stage except for activityCenter. If defined only those\r\n * specific tool buttons are shown.\r\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\r\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\r\n */\r\n public static register(providerId: string, defaultItems?: DefaultStatusbarItems, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n const provider = new StandardStatusbarItemsProvider(providerId, defaultItems, isSupportedStage);\r\n UiItemsManager.register(provider);\r\n return provider;\r\n }\r\n\r\n public override provideStatusBarItemsInternal(_stageId: string, _stageUsage: string, _stageAppData?: any): CommonStatusBarItem[] {\r\n const statusBarItems: CommonStatusBarItem[] = [];\r\n if (!this._defaultItems || this._defaultItems.messageCenter) {\r\n const MessageCenter = withMessageCenterFieldProps(MessageCenterField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.MessageCenter\", StatusBarSection.Left, 10, <MessageCenter />));\r\n }\r\n if (!this._defaultItems || this._defaultItems.toolAssistance) {\r\n if (!this._defaultItems || this._defaultItems.preToolAssistanceSeparator)\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.PreToolAssistance\", StatusBarSection.Left, 15, <FooterSeparator />));\r\n\r\n const ToolAssistance = withStatusFieldProps(ToolAssistanceField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.ToolAssistance\", StatusBarSection.Left, 20, <ToolAssistance />));\r\n\r\n if (!this._defaultItems || this._defaultItems.postToolAssistanceSeparator)\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.PostToolAssistance\", StatusBarSection.Left, 25, <FooterSeparator />));\r\n }\r\n if (this._defaultItems?.activityCenter) {\r\n const ActivityCenter = withStatusFieldProps(ActivityCenterField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.ActivityCenter\", StatusBarSection.Left, 30, <ActivityCenter />));\r\n }\r\n if (!this._defaultItems || this._defaultItems.accuSnapModePicker) {\r\n const SnapMode = withMessageCenterFieldProps(SnapModeField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.SnapMode\", StatusBarSection.Center, 10, <SnapMode />));\r\n }\r\n\r\n if (!this._defaultItems || this._defaultItems.tileLoadIndicator) {\r\n const TileLoadIndicator = withStatusFieldProps(TileLoadingIndicator);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.TileLoadIndicator\", StatusBarSection.Right, 10, <TileLoadIndicator />));\r\n }\r\n\r\n if (!this._defaultItems || this._defaultItems.selectionScope) {\r\n const SelectionScope = withStatusFieldProps(SelectionScopeField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.SelectionScope\", StatusBarSection.Right, 20, <SelectionScope />));\r\n }\r\n\r\n if (!this._defaultItems || this._defaultItems.selectionInfo) {\r\n const SelectionInfo = withStatusFieldProps(SelectionInfoField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.SelectionInfo\", StatusBarSection.Right, 30, <SelectionInfo />));\r\n }\r\n\r\n return statusBarItems;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"StandardStatusbarItemsProvider.js","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardStatusbarItemsProvider.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 StandardUiItemsProvider\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { BaseUiItemsProvider, CommonStatusBarItem, StatusBarSection, UiItemsManager } from \"@itwin/appui-abstract\";\r\nimport { FooterSeparator } from \"@itwin/appui-layout-react\";\r\nimport { StatusBarItemUtilities } from \"../statusbar/StatusBarItemUtilities\";\r\nimport { ToolAssistanceField } from \"../statusfields/toolassistance/ToolAssistanceField\";\r\nimport { withStatusFieldProps } from \"../statusbar/withStatusFieldProps\";\r\nimport { MessageCenterField } from \"../statusfields/MessageCenter\";\r\nimport { withMessageCenterFieldProps } from \"../statusbar/withMessageCenterFieldProps\";\r\nimport { ActivityCenterField } from \"../statusfields/ActivityCenter\";\r\nimport { SnapModeField } from \"../statusfields/SnapMode\";\r\nimport { SelectionInfoField } from \"../statusfields/SelectionInfo\";\r\nimport { TileLoadingIndicator } from \"../statusfields/tileloading/TileLoadingIndicator\";\r\nimport { SelectionScopeField } from \"../statusfields/SelectionScope\";\r\nimport { DefaultStatusbarItems } from \"./StandardStatusbarUiItemsProvider\";\r\n\r\n/**\r\n * Provide standard statusbar fields for the SimpleStatusbarWidget\r\n * @public\r\n */\r\nexport class StandardStatusbarItemsProvider extends BaseUiItemsProvider {\r\n constructor(providerId: string, private _defaultItems?: DefaultStatusbarItems, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n super(providerId, isSupportedStage);\r\n }\r\n\r\n /**\r\n * static function to register the StandardStatusbarItemsProvider\r\n * @param providerId - unique identifier for this instance of the provider. This is required in case separate packages want\r\n * to set up custom stage with their own subset of standard status bar items.\r\n * @param defaultItems - if undefined all available item are provided to stage except for activityCenter. If defined only those\r\n * specific tool buttons are shown.\r\n * @param isSupportedStage - optional function that will be called to determine if tools should be added to current stage. If not set and\r\n * the current stage's `usage` is set to `StageUsage.General` then the provider will add items to frontstage.\r\n */\r\n public static register(providerId: string, defaultItems?: DefaultStatusbarItems, isSupportedStage?: (stageId: string, stageUsage: string, stageAppData?: any) => boolean) {\r\n const provider = new StandardStatusbarItemsProvider(providerId, defaultItems, isSupportedStage);\r\n UiItemsManager.register(provider);\r\n return provider;\r\n }\r\n\r\n public override provideStatusBarItemsInternal(_stageId: string, _stageUsage: string, _stageAppData?: any): CommonStatusBarItem[] {\r\n const statusBarItems: CommonStatusBarItem[] = [];\r\n if (!this._defaultItems || this._defaultItems.messageCenter) {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const MessageCenter = withMessageCenterFieldProps(MessageCenterField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.MessageCenter\", StatusBarSection.Left, 10, <MessageCenter />));\r\n }\r\n if (!this._defaultItems || this._defaultItems.toolAssistance) {\r\n if (!this._defaultItems || this._defaultItems.preToolAssistanceSeparator)\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.PreToolAssistance\", StatusBarSection.Left, 15, <FooterSeparator />));\r\n\r\n // eslint-disable-next-line deprecation/deprecation\r\n const ToolAssistance = withStatusFieldProps(ToolAssistanceField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.ToolAssistance\", StatusBarSection.Left, 20, <ToolAssistance />));\r\n\r\n if (!this._defaultItems || this._defaultItems.postToolAssistanceSeparator)\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.PostToolAssistance\", StatusBarSection.Left, 25, <FooterSeparator />));\r\n }\r\n if (this._defaultItems?.activityCenter) {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const ActivityCenter = withStatusFieldProps(ActivityCenterField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.ActivityCenter\", StatusBarSection.Left, 30, <ActivityCenter />));\r\n }\r\n if (!this._defaultItems || this._defaultItems.accuSnapModePicker) {\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.SnapMode\", StatusBarSection.Center, 10, <SnapModeField />));\r\n }\r\n\r\n if (!this._defaultItems || this._defaultItems.tileLoadIndicator) {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const TileLoadIndicator = withStatusFieldProps(TileLoadingIndicator);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.TileLoadIndicator\", StatusBarSection.Right, 10, <TileLoadIndicator />));\r\n }\r\n\r\n if (!this._defaultItems || this._defaultItems.selectionScope) {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const SelectionScope = withStatusFieldProps(SelectionScopeField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.SelectionScope\", StatusBarSection.Right, 20, <SelectionScope />));\r\n }\r\n\r\n if (!this._defaultItems || this._defaultItems.selectionInfo) {\r\n // eslint-disable-next-line deprecation/deprecation\r\n const SelectionInfo = withStatusFieldProps(SelectionInfoField);\r\n statusBarItems.push(StatusBarItemUtilities.createStatusBarItem(\"uifw.SelectionInfo\", StatusBarSection.Right, 30, <SelectionInfo />));\r\n }\r\n\r\n return statusBarItems;\r\n }\r\n}\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"StandardStatusbarUiItemsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAoB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAa/F;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,gCAAiC,YAAW,eAAe;IAG1D,OAAO,CAAC,aAAa,CAAC;IAFlC,IAAW,EAAE,IAAI,MAAM,CAA2D;gBAE9D,aAAa,CAAC,mCAAuB;IAElD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CAiDhH"}
1
+ {"version":3,"file":"StandardStatusbarUiItemsProvider.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/ui-items-provider/StandardStatusbarUiItemsProvider.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,mBAAmB,EAAoB,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAa/F;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;GAGG;AACH,qBAAa,gCAAiC,YAAW,eAAe;IAG1D,OAAO,CAAC,aAAa,CAAC;IAFlC,IAAW,EAAE,IAAI,MAAM,CAA2D;gBAE9D,aAAa,CAAC,mCAAuB;IAElD,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,GAAG,GAAG,mBAAmB,EAAE;CAsDhH"}
@@ -32,6 +32,7 @@ export class StandardStatusbarUiItemsProvider {
32
32
  const statusBarItems = [];
33
33
  // istanbul ignore else
34
34
  if (!this._defaultItems || this._defaultItems.messageCenter) {
35
+ // eslint-disable-next-line deprecation/deprecation
35
36
  const MessageCenter = withMessageCenterFieldProps(MessageCenterField);
36
37
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.MessageCenter", StatusBarSection.Left, 10, React.createElement(MessageCenter, null)));
37
38
  }
@@ -39,6 +40,7 @@ export class StandardStatusbarUiItemsProvider {
39
40
  if (!this._defaultItems || this._defaultItems.toolAssistance) {
40
41
  if (!this._defaultItems || this._defaultItems.preToolAssistanceSeparator)
41
42
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.PreToolAssistance", StatusBarSection.Left, 15, React.createElement(FooterSeparator, null)));
43
+ // eslint-disable-next-line deprecation/deprecation
42
44
  const ToolAssistance = withStatusFieldProps(ToolAssistanceField);
43
45
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.ToolAssistance", StatusBarSection.Left, 20, React.createElement(ToolAssistance, null)));
44
46
  if (!this._defaultItems || this._defaultItems.postToolAssistanceSeparator)
@@ -46,26 +48,29 @@ export class StandardStatusbarUiItemsProvider {
46
48
  }
47
49
  // istanbul ignore else
48
50
  if ((_a = this._defaultItems) === null || _a === void 0 ? void 0 : _a.activityCenter) {
51
+ // eslint-disable-next-line deprecation/deprecation
49
52
  const ActivityCenter = withStatusFieldProps(ActivityCenterField);
50
53
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.ActivityCenter", StatusBarSection.Left, 30, React.createElement(ActivityCenter, null)));
51
54
  }
52
55
  // istanbul ignore else
53
56
  if (!this._defaultItems || this._defaultItems.accuSnapModePicker) {
54
- const SnapMode = withMessageCenterFieldProps(SnapModeField);
55
- statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SnapMode", StatusBarSection.Center, 10, React.createElement(SnapMode, null)));
57
+ statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SnapMode", StatusBarSection.Center, 10, React.createElement(SnapModeField, null)));
56
58
  }
57
59
  // istanbul ignore else
58
60
  if (!this._defaultItems || this._defaultItems.tileLoadIndicator) {
61
+ // eslint-disable-next-line deprecation/deprecation
59
62
  const TileLoadIndicator = withStatusFieldProps(TileLoadingIndicator);
60
63
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.TileLoadIndicator", StatusBarSection.Right, 10, React.createElement(TileLoadIndicator, null)));
61
64
  }
62
65
  // istanbul ignore else
63
66
  if (!this._defaultItems || this._defaultItems.selectionScope) {
67
+ // eslint-disable-next-line deprecation/deprecation
64
68
  const SelectionScope = withStatusFieldProps(SelectionScopeField);
65
69
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SelectionScope", StatusBarSection.Right, 20, React.createElement(SelectionScope, null)));
66
70
  }
67
71
  // istanbul ignore else
68
72
  if (!this._defaultItems || this._defaultItems.selectionInfo) {
73
+ // eslint-disable-next-line deprecation/deprecation
69
74
  const SelectionInfo = withStatusFieldProps(SelectionInfoField);
70
75
  statusBarItems.push(StatusBarItemUtilities.createStatusBarItem("uifw.SelectionInfo", StatusBarSection.Right, 30, React.createElement(SelectionInfo, null)));
71
76
  }