@itwin/appui-react 5.20.0 → 5.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/lib/appui-react/framework/FrameworkFrontstages.d.ts +3 -2
- package/lib/appui-react/framework/FrameworkFrontstages.d.ts.map +1 -1
- package/lib/appui-react/framework/FrameworkFrontstages.js.map +1 -1
- package/lib/appui-react/layout/widget/MenuTab.d.ts +3 -4
- package/lib/appui-react/layout/widget/MenuTab.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/MenuTab.js +5 -7
- package/lib/appui-react/layout/widget/MenuTab.js.map +1 -1
- package/lib/appui-react/layout/widget/MenuTab.scss +4 -51
- package/lib/appui-react/layout/widget/Overflow.d.ts +2 -3
- package/lib/appui-react/layout/widget/Overflow.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/Overflow.js +2 -2
- package/lib/appui-react/layout/widget/Overflow.js.map +1 -1
- package/lib/appui-react/layout/widget/Overflow.scss +0 -4
- package/lib/appui-react/layout/widget/Tab.d.ts +3 -6
- package/lib/appui-react/layout/widget/Tab.d.ts.map +1 -1
- package/lib/appui-react/layout/widget/Tab.js +2 -2
- package/lib/appui-react/layout/widget/Tab.js.map +1 -1
- package/lib/appui-react/layout/widget/Tab.scss +1 -0
- package/lib/appui-react/layout/widget/Tabs.js +4 -3
- package/lib/appui-react/layout/widget/Tabs.js.map +1 -1
- package/lib/appui-react/widget-panels/Tab.d.ts.map +1 -1
- package/lib/appui-react/widget-panels/Tab.js +2 -1
- package/lib/appui-react/widget-panels/Tab.js.map +1 -1
- package/lib/cjs/appui-react/layout/widget/MenuTab.scss +4 -51
- package/lib/cjs/appui-react/layout/widget/Overflow.scss +0 -4
- package/lib/cjs/appui-react/layout/widget/Tab.scss +1 -0
- package/lib/esm/appui-react/layout/widget/MenuTab.scss +4 -51
- package/lib/esm/appui-react/layout/widget/Overflow.scss +0 -4
- package/lib/esm/appui-react/layout/widget/Tab.scss +1 -0
- package/package.json +11 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# Change Log - @itwin/appui-react
|
|
2
2
|
|
|
3
|
+
## 5.21.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- a1178aa: Fixed widget tab icon size when using StrataKit icons.
|
|
8
|
+
- @itwin/components-react@5.21.1
|
|
9
|
+
- @itwin/core-react@5.21.1
|
|
10
|
+
- @itwin/imodel-components-react@5.21.1
|
|
11
|
+
|
|
12
|
+
## 5.21.0
|
|
13
|
+
|
|
14
|
+
### Minor Changes
|
|
15
|
+
|
|
16
|
+
- 7ce8cb0: Changed widget tab overflow menu to use `DropdownMenu` instead of custom implementation based on `Popover`.
|
|
17
|
+
- 696ad64: Changed the release tag of `notifyCloseRequest` property in the `ModalFrontstageInfo` interface from `@alpha` to `@public`.
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies [43acfb9]
|
|
22
|
+
- Updated dependencies [43acfb9]
|
|
23
|
+
- @itwin/components-react@5.21.0
|
|
24
|
+
- @itwin/imodel-components-react@5.21.0
|
|
25
|
+
- @itwin/core-react@5.21.0
|
|
26
|
+
|
|
3
27
|
## 5.20.0
|
|
4
28
|
|
|
5
29
|
### Minor Changes
|
|
@@ -154,9 +154,10 @@ export interface ModalFrontstageInfo {
|
|
|
154
154
|
content: React.ReactNode;
|
|
155
155
|
/** Content displayed in the upper right of the modal frontstage. */
|
|
156
156
|
appBarRight?: React.ReactNode;
|
|
157
|
-
/**
|
|
157
|
+
/**
|
|
158
|
+
* Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so
|
|
158
159
|
* that the stage can save unsaved data before closing. Used by the ModalSettingsStage.
|
|
159
|
-
|
|
160
|
+
*/
|
|
160
161
|
notifyCloseRequest?: boolean;
|
|
161
162
|
/** If specified overrides the default back button. See {@link ModalFrontstageButton}. */
|
|
162
163
|
backButton?: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameworkFrontstages.d.ts","sourceRoot":"","sources":["../../../src/appui-react/framework/FrameworkFrontstages.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"FrameworkFrontstages.d.ts","sourceRoot":"","sources":["../../../src/appui-react/framework/FrameworkFrontstages.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAC7F,OAAO,KAAK,EACV,2BAA2B,EAC3B,sBAAsB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EACV,SAAS,EACT,uBAAuB,EACxB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAK9D;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,wBAAwB,CAAC,EAAE,aAAa,CAAC;IACzC,sBAAsB,EAAE,aAAa,CAAC;CACvC;AAED;;;GAGG;AAEH,qBAAa,wBAAyB,SAAQ,OAAO,CAAC,4BAA4B,CAAC;CAAG;AAEtF;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C,mCAAmC;IACnC,wBAAwB,EAAE,aAAa,CAAC;IACxC,iCAAiC;IACjC,sBAAsB,CAAC,EAAE,aAAa,CAAC;IAEvC,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AAEH,qBAAa,0BAA2B,SAAQ,OAAO,CAAC,8BAA8B,CAAC;CAAG;AAE1F;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED;;;GAGG;AAEH,qBAAa,oBAAqB,SAAQ,OAAO,CAAC,wBAAwB,CAAC;CAAG;AAE9E;;;GAGG;AACH,MAAM,WAAW,+BAA+B;IAC9C,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;;GAGG;AAEH,qBAAa,2BAA4B,SAAQ,OAAO,CAAC,+BAA+B,CAAC;CAAG;AAE5F;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC7C,oCAAoC;IACpC,eAAe,EAAE,mBAAmB,CAAC;IAErC,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,cAAc,EAAE,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AAEH,qBAAa,kCAAmC,SAAQ,OAAO,CAAC,sCAAsC,CAAC;CAAG;AAE1G;;;GAGG;AACH,MAAM,WAAW,sCAAsC;IACrD,4CAA4C;IAC5C,eAAe,EAAE,mBAAmB,CAAC;IACrC,0CAA0C;IAC1C,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED;;;GAGG;AAEH,qBAAa,0BAA2B,SAAQ,OAAO,CAAC,8BAA8B,CAAC;CAAG;AAE1F;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AAEH,qBAAa,kBAAmB,SAAQ,OAAO,CAAC,sBAAsB,CAAC;CAAG;AAE1E;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AAEH,qBAAa,oBAAqB,SAAQ,OAAO,CAAC,wBAAwB,CAAC;CAAG;AAE9E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,oEAAoE;IACpE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yFAAyF;IACzF,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,mBAAmB,CAAC;IACrC,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0HAA0H;IAC1H,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAE5B,wCAAwC;IAExC,QAAQ,CAAC,4BAA4B,EAAE,0BAA0B,CAAC;IAElE,sCAAsC;IAEtC,QAAQ,CAAC,0BAA0B,EAAE,wBAAwB,CAAC;IAE9D,sCAAsC;IAEtC,QAAQ,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;IAEtD,0CAA0C;IAE1C,QAAQ,CAAC,6BAA6B,EAAE,2BAA2B,CAAC;IAEpE,yCAAyC;IAEzC,QAAQ,CAAC,4BAA4B,EAAE,0BAA0B,CAAC;IAElE;;OAEG;IAEH,QAAQ,CAAC,oCAAoC,EAAE,kCAAkC,CAAC;IAElF,gCAAgC;IAEhC,QAAQ,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;IAElD,oCAAoC;IAEpC,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAElD,mCAAmC;IAEnC,QAAQ,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;IAEtD,0CAA0C;IAE1C,QAAQ,CAAC,6BAA6B,EAAE,2BAA2B,CAAC;IAEpE;;OAEG;IAEH,QAAQ,CAAC,8BAA8B,EAAE,4BAA4B,CAAC;IAEtE,0CAA0C;IAE1C,QAAQ,CAAC,6BAA6B,EAAE,2BAA2B,CAAC;IAEpE,sCAAsC;IAEtC,QAAQ,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;IAE5D;;OAEG;IAEH,QAAQ,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;IAE1D;;OAEG;IAEH,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAEzE;OACG;IACH,mBAAmB,IAAI,IAAI,CAAC;IAE5B;;OAEG;IACH,wBAAwB,IAAI,IAAI,CAAC;IAEjC,8BAA8B;IAC9B,gBAAgB,IAAI,IAAI,CAAC;IAEzB;;;OAGG;IAEH,qBAAqB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAEpE,yBAAyB;IACzB,aAAa,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAE5C;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAElE;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,aAAa,GAAG,SAAS,CAAC;IAExD;;OAEG;IACH,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IAEpC,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IAE7C;;;OAGG;IACH,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD;;;OAGG;IACH,sBAAsB,CACpB,aAAa,EAAE,aAAa,GAAG,SAAS,GACvC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB;OACG;IACH,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,8BAA8B;IAC9B,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC,2BAA2B;IAC3B,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAEhC;;OAEG;IAEH,QAAQ,CAAC,qBAAqB,EAAE,eAAe,GAAG,SAAS,CAAC;IAE5D;;OAEG;IACH,mBAAmB,CAAC,eAAe,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEhE;OACG;IACH,oBAAoB,IAAI,IAAI,CAAC;IAE7B;OACG;IACH,qBAAqB,IAAI,IAAI,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAEhE;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IAEtC;;;OAGG;IACH,sBAAsB,CACpB,eAAe,EAAE,MAAM,EACvB,gBAAgB,EAAE,gBAAgB,GACjC,IAAI,CAAC;IAER;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC;IAE9D;;;OAGG;IACH,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAEpD;;OAEG;IACH,oBAAoB,CAAC,gBAAgB,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE;OACG;IACH,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,sBAAsB,EAAE,aAAa,GAAG,SAAS,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED,aAAa;AACb,qBAAa,2BAA4B,YAAW,oBAAoB;IACtE,IAAW,SAAS,YAEnB;IACD,IAAW,4BAA4B,4EAEtC;IACD,IAAW,0BAA0B,0EAEpC;IACD,IAAW,sBAAsB,sEAEhC;IACD,IAAW,6BAA6B,6EAEvC;IACD,IAAW,4BAA4B,4EAEtC;IACD,IAAW,oCAAoC,oFAE9C;IACD,IAAW,oBAAoB,oEAE9B;IACD,IAAW,yBAAyB,kDAEnC;IACD,IAAW,sBAAsB,sEAEhC;IACD,IAAW,6BAA6B,mHAEvC;IACD,IAAW,8BAA8B,qHAExC;IACD,IAAW,6BAA6B,iIAEvC;IACD,IAAW,yBAAyB,2GAEnC;IACD,IAAW,wBAAwB,kHAElC;IACD,IAAW,yBAAyB,yEAEnC;IACD,IAAW,mBAAmB,8BAE7B;IACD,IAAW,kBAAkB,WAE5B;IACD,IAAW,YAAY,WAEtB;IACD,IAAW,qBAAqB,gCAE/B;IACD,IAAW,qBAAqB,oCAE/B;IACD,IAAW,oBAAoB,WAE9B;IACD,IAAW,sBAAsB,8BAEhC;IACD,IAAW,qBAAqB,WAE/B;IACM,mBAAmB,CACxB,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IAI3D,wBAAwB,CAC7B,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,0BAA0B,CAAC,CAAC;IAIhE,gBAAgB,CACrB,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAIxD,qBAAqB,CAC1B,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;IAI7D,aAAa,CAClB,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAI/C,gBAAgB,CAC3B,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;IAIxD,aAAa,CAClB,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAI/C,mBAAmB,CAC9B,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IAIrD,sBAAsB,CACjC,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IAIxD,uBAAuB,CAClC,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;IAI/D,eAAe,CACpB,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IAIvD,aAAa,CAClB,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;IAIrD,mBAAmB,CACxB,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,qBAAqB,CAAC,CAAC;IAI3D,oBAAoB,CACzB,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;IAI5D,qBAAqB,CAC1B,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;IAI7D,sBAAsB,CAC3B,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IAI9D,cAAc,CACnB,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;IAItD,UAAU,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAG5D,oBAAoB,CAC/B,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,CAAC;IAItD,qBAAqB,CAChC,GAAG,IAAI,EAAE,UAAU,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,CAAC;CAIrE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameworkFrontstages.js","sourceRoot":"","sources":["../../../src/appui-react/framework/FrameworkFrontstages.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { IModelConnection, Tool } from \"@itwin/core-frontend\";\nimport type { ToolInformation } from \"../toolsettings/ToolInformation.js\";\nimport type { TimeTracker } from \"../configurableui/TimeTracker.js\";\nimport { type ContentControlActivatedEvent } from \"../content/ContentControl.js\";\nimport type { ContentLayoutActivatedEvent } from \"../content/ContentLayout.js\";\nimport type { FrontstageDef } from \"../frontstage/FrontstageDef.js\";\nimport type { FrontstageProvider } from \"../frontstage/FrontstageProvider.js\";\nimport type { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl.js\";\nimport type {\n PanelPinnedChangedEventArgs,\n PanelStateChangedEvent,\n} from \"../stagepanels/StagePanelDef.js\";\nimport type {\n WidgetDef,\n WidgetStateChangedEvent,\n} from \"../widgets/WidgetDef.js\";\nimport type { WidgetState } from \"../widgets/WidgetState.js\";\nimport type { Frontstage } from \"../frontstage/Frontstage.js\";\nimport { FrameworkContent } from \"./FrameworkContent.js\";\nimport type { ModalFrontstageButton } from \"../frontstage/ModalFrontstageButton.js\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager.js\";\n\n/** Frontstage Activated Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface FrontstageActivatedEventArgs {\n deactivatedFrontstageDef?: FrontstageDef;\n activatedFrontstageDef: FrontstageDef;\n}\n\n/** Frontstage Activated Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> {}\n\n/** Frontstage Deactivated Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface FrontstageDeactivatedEventArgs {\n /** Frontstage being deactivated */\n deactivatedFrontstageDef: FrontstageDef;\n /** Frontstage being activated */\n activatedFrontstageDef?: FrontstageDef;\n\n /** Total time spent in frontstage */\n totalTime: number;\n /** Engagement time spent in frontstage */\n engagementTime: number;\n /** Idle time spent in frontstage */\n idleTime: number;\n}\n\n/** Frontstage Deactivated Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> {}\n\n/** Frontstage Ready Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface FrontstageReadyEventArgs {\n frontstageDef: FrontstageDef;\n}\n\n/** Frontstage Ready Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> {}\n\n/** Modal Frontstage Changed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ModalFrontstageChangedEventArgs {\n modalFrontstageCount: number;\n}\n\n/** Modal Frontstage Stack Changed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> {}\n\n/** Modal Frontstage Closed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ModalFrontstageClosedEventArgs {\n /** Modal Frontstage being closed */\n modalFrontstage: ModalFrontstageInfo;\n\n /** Total time spent in frontstage */\n totalTime: number;\n /** Engagement time spent in frontstage */\n engagementTime: number;\n /** Idle time spent in frontstage */\n idleTime: number;\n}\n\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\n * any unsaved data.\n * @alpha\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> {}\n\n/** Modal Frontstage RequestedClose Event Args interface.\n * @alpha\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ModalFrontstageRequestedCloseEventArgs {\n /** Modal Frontstage that is to be closed */\n modalFrontstage: ModalFrontstageInfo;\n /** Function to call to close the stage */\n stageCloseFunc: () => void;\n}\n\n/** Modal Frontstage Closed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> {}\n\n/** Tool Activated Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ToolActivatedEventArgs {\n toolId: string;\n}\n\n/** Tool Activated Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> {}\n\n/** Tool Icon Changed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ToolIconChangedEventArgs {\n iconSpec: string;\n}\n\n/** Tool Icon Changed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> {}\n\n/** Modal Frontstage information interface.\n * @public\n */\nexport interface ModalFrontstageInfo {\n /** Id used for frontstage identification. */\n id?: string;\n /** Title displayed at the top of the modal frontstage. */\n title: string;\n /** Content of the modal frontstage. */\n content: React.ReactNode;\n /** Content displayed in the upper right of the modal frontstage. */\n appBarRight?: React.ReactNode;\n /** Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\n * @alpha */\n notifyCloseRequest?: boolean;\n /** If specified overrides the default back button. See {@link ModalFrontstageButton}. */\n backButton?: React.ReactNode;\n}\n\n/** Modal Frontstage array item interface.\n * @internal\n */\nexport interface ModalFrontstageItem {\n modalFrontstage: ModalFrontstageInfo;\n timeTracker: TimeTracker;\n}\n\n/** [[UiFramework.frontstages]] interface\n * @public\n */\nexport interface FrameworkFrontstages {\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\n readonly isLoading: boolean;\n\n /** Get Frontstage Deactivated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onFrontstageDeactivatedEvent: FrontstageDeactivatedEvent;\n\n /** Get Frontstage Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onFrontstageActivatedEvent: FrontstageActivatedEvent;\n\n /** Get Frontstage Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onFrontstageReadyEvent: FrontstageReadyEvent;\n\n /** Get Modal Frontstage Changed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onModalFrontstageChangedEvent: ModalFrontstageChangedEvent;\n\n /** Get Modal Frontstage Closed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onModalFrontstageClosedEvent: ModalFrontstageClosedEvent;\n\n /** Get Modal Frontstage Requested Closed event.\n * @alpha\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onCloseModalFrontstageRequestedEvent: ModalFrontstageRequestedCloseEvent;\n\n /** Get Tool Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onToolActivatedEvent: ToolActivatedEvent;\n\n /** Get ToolSetting Reload event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onToolSettingsReloadEvent: UiEvent<void>;\n\n /** Get Tool Icon Changed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onToolIconChangedEvent: ToolIconChangedEvent;\n\n /** Get Content Layout Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onContentLayoutActivatedEvent: ContentLayoutActivatedEvent;\n\n /** Get Content Control Activated event.\n * @deprecated in 4.16.0. Use {@link FrameworkContent.onActiveContentChangedEvent} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onContentControlActivatedEvent: ContentControlActivatedEvent;\n\n /** Get Navigation Aid Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onNavigationAidActivatedEvent: NavigationAidActivatedEvent;\n\n /** Get Widget State Changed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onWidgetStateChangedEvent: WidgetStateChangedEvent;\n\n /** Get panel state changed event.\n * @alpha\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onPanelStateChangedEvent: PanelStateChangedEvent;\n\n /** Get panel pinned changed event.\n * @alpha\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onPanelPinnedChangedEvent: UiEvent<PanelPinnedChangedEventArgs>;\n\n /** Clears the Frontstage map.\n */\n clearFrontstageDefs(): void;\n\n /** Clears the Frontstage Providers and the defs that may have been created from them.\n * @deprecated in 4.17.0. Use {@link FrameworkFrontstages.clearFrontstages} instead.\n */\n clearFrontstageProviders(): void;\n\n /** Clears the Frontstages. */\n clearFrontstages(): void;\n\n /** Adds a frontstage provider.\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\n * @deprecated in 4.15.0. Use {@link FrameworkFrontstages.addFrontstage} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n addFrontstageProvider(frontstageProvider: FrontstageProvider): void;\n\n /** Adds a frontstage. */\n addFrontstage(frontstage: Frontstage): void;\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\n * returned.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n getFrontstageDef(id?: string): Promise<FrontstageDef | undefined>;\n\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\n * @return Active FrontstageDef, or undefined if one is not active.\n */\n readonly activeFrontstageDef: FrontstageDef | undefined;\n\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\n * @return Id of the active FrontstageDef, or blank if one is not active.\n */\n readonly activeFrontstageId: string;\n\n hasFrontstage(frontstageId: string): boolean;\n\n /** Sets the active FrontstageDef give the stageId.\n * @param frontstageId Id of the Frontstage to set active.\n * @returns A Promise that is fulfilled when the Frontstage is ready.\n */\n setActiveFrontstage(frontstageId: string): Promise<void>;\n\n /** Sets the active FrontstageDef.\n * @param frontstageDef FrontstageDef to set active.\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\n */\n setActiveFrontstageDef(\n frontstageDef: FrontstageDef | undefined\n ): Promise<void>;\n\n /** Deactivates the active FrontstageDef.\n */\n deactivateFrontstageDef(): Promise<void>;\n\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\n * @return Id of the active tool, or blank if one is not active.\n */\n readonly activeToolId: string;\n\n /** Sets the active tool id */\n setActiveToolId(toolId: string): void;\n\n /** Sets the active tool */\n setActiveTool(tool: Tool): void;\n\n /** Gets the active tool's [[ToolInformation]].\n * @deprecated in 4.16.0. Uses a deprecated class {@link ToolInformation}.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly activeToolInformation: ToolInformation | undefined;\n\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\n * @param modalFrontstage Information about the modal Frontstage\n */\n openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void;\n\n /** Closes the top-most modal Frontstage.\n */\n closeModalFrontstage(): void;\n\n /** Updates the top-most modal Frontstage.\n */\n updateModalFrontstage(): void;\n\n /** Gets the top-most modal Frontstage.\n * @returns Top-most modal Frontstage, or undefined if there is none.\n */\n readonly activeModalFrontstage: ModalFrontstageInfo | undefined;\n\n /** Gets the number of modal Frontstages.\n * @returns Modal Frontstage count\n */\n readonly modalFrontstageCount: number;\n\n /** Sets the active Navigation Aid via its Id.\n * @param navigationAidId Id of the Navigation Aid to set as active\n * @param iModelConnection IModelConnection to query for view data\n */\n setActiveNavigationAid(\n navigationAidId: string,\n iModelConnection: IModelConnection\n ): void;\n\n /** Sets the state of the widget with the given id\n * @param widgetId Id of the Widget for which to set the state\n * @param state New state of the widget\n * @returns true if the widget state was set successfully, or false if not.\n */\n setWidgetState(widgetId: string, state: WidgetState): boolean;\n\n /** Finds a widget with the given id in the active frontstage\n * @param widgetId Id of the Widget to find\n * @returns The WidgetDef with the given id, or undefined if not found.\n */\n findWidget(widgetId: string): WidgetDef | undefined;\n\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\n * @param nestedFrontstage Information about the nested Frontstage\n */\n openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void>;\n\n /** Closes the top-most nested Frontstage.\n */\n closeNestedFrontstage(): Promise<void>;\n\n /** Gets the top-most nested Frontstage.\n * @returns Top-most nested Frontstage, or undefined if there is none.\n */\n readonly activeNestedFrontstage: FrontstageDef | undefined;\n\n /** Gets the number of nested Frontstages.\n * @returns Nested Frontstage count\n */\n readonly nestedFrontstageCount: number;\n}\n\n/** @alpha */\nexport class DefaultFrameworkFrontstages implements FrameworkFrontstages {\n public get isLoading() {\n return InternalFrontstageManager.isLoading;\n }\n public get onFrontstageDeactivatedEvent() {\n return InternalFrontstageManager.onFrontstageDeactivatedEvent;\n }\n public get onFrontstageActivatedEvent() {\n return InternalFrontstageManager.onFrontstageActivatedEvent;\n }\n public get onFrontstageReadyEvent() {\n return InternalFrontstageManager.onFrontstageReadyEvent;\n }\n public get onModalFrontstageChangedEvent() {\n return InternalFrontstageManager.onModalFrontstageChangedEvent;\n }\n public get onModalFrontstageClosedEvent() {\n return InternalFrontstageManager.onModalFrontstageClosedEvent;\n }\n public get onCloseModalFrontstageRequestedEvent() {\n return InternalFrontstageManager.onCloseModalFrontstageRequestedEvent;\n }\n public get onToolActivatedEvent() {\n return InternalFrontstageManager.onToolActivatedEvent;\n }\n public get onToolSettingsReloadEvent() {\n return InternalFrontstageManager.onToolSettingsReloadEvent;\n }\n public get onToolIconChangedEvent() {\n return InternalFrontstageManager.onToolIconChangedEvent;\n }\n public get onContentLayoutActivatedEvent() {\n return InternalFrontstageManager.onContentLayoutActivatedEvent;\n }\n public get onContentControlActivatedEvent() {\n return InternalFrontstageManager.onContentControlActivatedEvent;\n }\n public get onNavigationAidActivatedEvent() {\n return InternalFrontstageManager.onNavigationAidActivatedEvent;\n }\n public get onWidgetStateChangedEvent() {\n return InternalFrontstageManager.onWidgetStateChangedEvent;\n }\n public get onPanelStateChangedEvent() {\n return InternalFrontstageManager.onPanelStateChangedEvent;\n }\n public get onPanelPinnedChangedEvent() {\n return InternalFrontstageManager.onPanelPinnedChangedEvent;\n }\n public get activeFrontstageDef() {\n return InternalFrontstageManager.activeFrontstageDef;\n }\n public get activeFrontstageId() {\n return InternalFrontstageManager.activeFrontstageId;\n }\n public get activeToolId() {\n return InternalFrontstageManager.activeToolId;\n }\n public get activeToolInformation() {\n return InternalFrontstageManager.activeToolInformation;\n }\n public get activeModalFrontstage() {\n return InternalFrontstageManager.activeModalFrontstage;\n }\n public get modalFrontstageCount() {\n return InternalFrontstageManager.modalFrontstageCount;\n }\n public get activeNestedFrontstage() {\n return InternalFrontstageManager.activeNestedFrontstage;\n }\n public get nestedFrontstageCount() {\n return InternalFrontstageManager.nestedFrontstageCount;\n }\n public clearFrontstageDefs(\n ...args: Parameters<FrameworkFrontstages[\"clearFrontstageDefs\"]>\n ) {\n return InternalFrontstageManager.clearFrontstageDefs(...args);\n }\n public clearFrontstageProviders(\n ...args: Parameters<FrameworkFrontstages[\"clearFrontstageProviders\"]>\n ) {\n return InternalFrontstageManager.clearFrontstageProviders(...args);\n }\n public clearFrontstages(\n ...args: Parameters<FrameworkFrontstages[\"clearFrontstages\"]>\n ) {\n return InternalFrontstageManager.clearFrontstages(...args);\n }\n public addFrontstageProvider(\n ...args: Parameters<FrameworkFrontstages[\"addFrontstageProvider\"]>\n ) {\n return InternalFrontstageManager.addFrontstageProvider(...args);\n }\n public addFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"addFrontstage\"]>\n ) {\n return InternalFrontstageManager.addFrontstage(...args);\n }\n public async getFrontstageDef(\n ...args: Parameters<FrameworkFrontstages[\"getFrontstageDef\"]>\n ) {\n return InternalFrontstageManager.getFrontstageDef(...args);\n }\n public hasFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"hasFrontstage\"]>\n ) {\n return InternalFrontstageManager.hasFrontstage(...args);\n }\n public async setActiveFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"setActiveFrontstage\"]>\n ) {\n return InternalFrontstageManager.setActiveFrontstage(...args);\n }\n public async setActiveFrontstageDef(\n ...args: Parameters<FrameworkFrontstages[\"setActiveFrontstageDef\"]>\n ) {\n return InternalFrontstageManager.setActiveFrontstageDef(...args);\n }\n public async deactivateFrontstageDef(\n ...args: Parameters<FrameworkFrontstages[\"deactivateFrontstageDef\"]>\n ) {\n return InternalFrontstageManager.deactivateFrontstageDef(...args);\n }\n public setActiveToolId(\n ...args: Parameters<FrameworkFrontstages[\"setActiveToolId\"]>\n ) {\n return InternalFrontstageManager.setActiveToolId(...args);\n }\n public setActiveTool(\n ...args: Parameters<FrameworkFrontstages[\"setActiveTool\"]>\n ) {\n return InternalFrontstageManager.setActiveTool(...args);\n }\n public openModalFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"openModalFrontstage\"]>\n ) {\n return InternalFrontstageManager.openModalFrontstage(...args);\n }\n public closeModalFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"closeModalFrontstage\"]>\n ) {\n return InternalFrontstageManager.closeModalFrontstage(...args);\n }\n public updateModalFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"updateModalFrontstage\"]>\n ) {\n return InternalFrontstageManager.updateModalFrontstage(...args);\n }\n public setActiveNavigationAid(\n ...args: Parameters<FrameworkFrontstages[\"setActiveNavigationAid\"]>\n ) {\n return InternalFrontstageManager.setActiveNavigationAid(...args);\n }\n public setWidgetState(\n ...args: Parameters<FrameworkFrontstages[\"setWidgetState\"]>\n ) {\n return InternalFrontstageManager.setWidgetState(...args);\n }\n public findWidget(...args: Parameters<FrameworkFrontstages[\"findWidget\"]>) {\n return InternalFrontstageManager.findWidget(...args);\n }\n public async openNestedFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"openNestedFrontstage\"]>\n ) {\n return InternalFrontstageManager.openNestedFrontstage(...args);\n }\n public async closeNestedFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"closeNestedFrontstage\"]>\n ) {\n return InternalFrontstageManager.closeNestedFrontstage(...args);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"FrameworkFrontstages.js","sourceRoot":"","sources":["../../../src/appui-react/framework/FrameworkFrontstages.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Frontstage\n */\nimport { UiEvent } from \"@itwin/appui-abstract\";\nimport type { IModelConnection, Tool } from \"@itwin/core-frontend\";\nimport type { ToolInformation } from \"../toolsettings/ToolInformation.js\";\nimport type { TimeTracker } from \"../configurableui/TimeTracker.js\";\nimport { type ContentControlActivatedEvent } from \"../content/ContentControl.js\";\nimport type { ContentLayoutActivatedEvent } from \"../content/ContentLayout.js\";\nimport type { FrontstageDef } from \"../frontstage/FrontstageDef.js\";\nimport type { FrontstageProvider } from \"../frontstage/FrontstageProvider.js\";\nimport type { NavigationAidActivatedEvent } from \"../navigationaids/NavigationAidControl.js\";\nimport type {\n PanelPinnedChangedEventArgs,\n PanelStateChangedEvent,\n} from \"../stagepanels/StagePanelDef.js\";\nimport type {\n WidgetDef,\n WidgetStateChangedEvent,\n} from \"../widgets/WidgetDef.js\";\nimport type { WidgetState } from \"../widgets/WidgetState.js\";\nimport type { Frontstage } from \"../frontstage/Frontstage.js\";\nimport { FrameworkContent } from \"./FrameworkContent.js\";\nimport type { ModalFrontstageButton } from \"../frontstage/ModalFrontstageButton.js\";\nimport { InternalFrontstageManager } from \"../frontstage/InternalFrontstageManager.js\";\n\n/** Frontstage Activated Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface FrontstageActivatedEventArgs {\n deactivatedFrontstageDef?: FrontstageDef;\n activatedFrontstageDef: FrontstageDef;\n}\n\n/** Frontstage Activated Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class FrontstageActivatedEvent extends UiEvent<FrontstageActivatedEventArgs> {}\n\n/** Frontstage Deactivated Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface FrontstageDeactivatedEventArgs {\n /** Frontstage being deactivated */\n deactivatedFrontstageDef: FrontstageDef;\n /** Frontstage being activated */\n activatedFrontstageDef?: FrontstageDef;\n\n /** Total time spent in frontstage */\n totalTime: number;\n /** Engagement time spent in frontstage */\n engagementTime: number;\n /** Idle time spent in frontstage */\n idleTime: number;\n}\n\n/** Frontstage Deactivated Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class FrontstageDeactivatedEvent extends UiEvent<FrontstageDeactivatedEventArgs> {}\n\n/** Frontstage Ready Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface FrontstageReadyEventArgs {\n frontstageDef: FrontstageDef;\n}\n\n/** Frontstage Ready Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class FrontstageReadyEvent extends UiEvent<FrontstageReadyEventArgs> {}\n\n/** Modal Frontstage Changed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ModalFrontstageChangedEventArgs {\n modalFrontstageCount: number;\n}\n\n/** Modal Frontstage Stack Changed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ModalFrontstageChangedEvent extends UiEvent<ModalFrontstageChangedEventArgs> {}\n\n/** Modal Frontstage Closed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ModalFrontstageClosedEventArgs {\n /** Modal Frontstage being closed */\n modalFrontstage: ModalFrontstageInfo;\n\n /** Total time spent in frontstage */\n totalTime: number;\n /** Engagement time spent in frontstage */\n engagementTime: number;\n /** Idle time spent in frontstage */\n idleTime: number;\n}\n\n/** Modal Frontstage Requested Close Event class. Notifies the modal stage that the close button was\n * pressed and passes the function to actually close the modal stage. This allows stage to do any\n * saving of unsaved data prior to closing the stage. If the ModalFrontstageInfo sets notifyCloseRequest\n * to true it is up to the stage to register for this event and call the stageCloseFunc once it has saved\n * any unsaved data.\n * @alpha\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ModalFrontstageRequestedCloseEvent extends UiEvent<ModalFrontstageRequestedCloseEventArgs> {}\n\n/** Modal Frontstage RequestedClose Event Args interface.\n * @alpha\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ModalFrontstageRequestedCloseEventArgs {\n /** Modal Frontstage that is to be closed */\n modalFrontstage: ModalFrontstageInfo;\n /** Function to call to close the stage */\n stageCloseFunc: () => void;\n}\n\n/** Modal Frontstage Closed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ModalFrontstageClosedEvent extends UiEvent<ModalFrontstageClosedEventArgs> {}\n\n/** Tool Activated Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ToolActivatedEventArgs {\n toolId: string;\n}\n\n/** Tool Activated Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ToolActivatedEvent extends UiEvent<ToolActivatedEventArgs> {}\n\n/** Tool Icon Changed Event Args interface.\n * @public\n * @deprecated in 4.13.0. Event args are inferred from a listener. If explicit type is needed use a type helper.\n */\nexport interface ToolIconChangedEventArgs {\n iconSpec: string;\n}\n\n/** Tool Icon Changed Event class.\n * @public\n * @deprecated in 4.13.0. This class should not be used by applications to instantiate objects.\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport class ToolIconChangedEvent extends UiEvent<ToolIconChangedEventArgs> {}\n\n/** Modal Frontstage information interface.\n * @public\n */\nexport interface ModalFrontstageInfo {\n /** Id used for frontstage identification. */\n id?: string;\n /** Title displayed at the top of the modal frontstage. */\n title: string;\n /** Content of the modal frontstage. */\n content: React.ReactNode;\n /** Content displayed in the upper right of the modal frontstage. */\n appBarRight?: React.ReactNode;\n /**\n * Set notifyCloseRequest to true on stages that register to listen for `onCloseModalFrontstageRequestedEvent` so\n * that the stage can save unsaved data before closing. Used by the ModalSettingsStage.\n */\n notifyCloseRequest?: boolean;\n /** If specified overrides the default back button. See {@link ModalFrontstageButton}. */\n backButton?: React.ReactNode;\n}\n\n/** Modal Frontstage array item interface.\n * @internal\n */\nexport interface ModalFrontstageItem {\n modalFrontstage: ModalFrontstageInfo;\n timeTracker: TimeTracker;\n}\n\n/** [[UiFramework.frontstages]] interface\n * @public\n */\nexport interface FrameworkFrontstages {\n /** Returns true if Frontstage is loading its controls. If false the Frontstage content and controls have been created. */\n readonly isLoading: boolean;\n\n /** Get Frontstage Deactivated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onFrontstageDeactivatedEvent: FrontstageDeactivatedEvent;\n\n /** Get Frontstage Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onFrontstageActivatedEvent: FrontstageActivatedEvent;\n\n /** Get Frontstage Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onFrontstageReadyEvent: FrontstageReadyEvent;\n\n /** Get Modal Frontstage Changed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onModalFrontstageChangedEvent: ModalFrontstageChangedEvent;\n\n /** Get Modal Frontstage Closed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onModalFrontstageClosedEvent: ModalFrontstageClosedEvent;\n\n /** Get Modal Frontstage Requested Closed event.\n * @alpha\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onCloseModalFrontstageRequestedEvent: ModalFrontstageRequestedCloseEvent;\n\n /** Get Tool Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onToolActivatedEvent: ToolActivatedEvent;\n\n /** Get ToolSetting Reload event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onToolSettingsReloadEvent: UiEvent<void>;\n\n /** Get Tool Icon Changed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onToolIconChangedEvent: ToolIconChangedEvent;\n\n /** Get Content Layout Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onContentLayoutActivatedEvent: ContentLayoutActivatedEvent;\n\n /** Get Content Control Activated event.\n * @deprecated in 4.16.0. Use {@link FrameworkContent.onActiveContentChangedEvent} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onContentControlActivatedEvent: ContentControlActivatedEvent;\n\n /** Get Navigation Aid Activated event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onNavigationAidActivatedEvent: NavigationAidActivatedEvent;\n\n /** Get Widget State Changed event. */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onWidgetStateChangedEvent: WidgetStateChangedEvent;\n\n /** Get panel state changed event.\n * @alpha\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onPanelStateChangedEvent: PanelStateChangedEvent;\n\n /** Get panel pinned changed event.\n * @alpha\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly onPanelPinnedChangedEvent: UiEvent<PanelPinnedChangedEventArgs>;\n\n /** Clears the Frontstage map.\n */\n clearFrontstageDefs(): void;\n\n /** Clears the Frontstage Providers and the defs that may have been created from them.\n * @deprecated in 4.17.0. Use {@link FrameworkFrontstages.clearFrontstages} instead.\n */\n clearFrontstageProviders(): void;\n\n /** Clears the Frontstages. */\n clearFrontstages(): void;\n\n /** Adds a frontstage provider.\n * @param frontstageProvider FrontstageProvider representing the Frontstage to add\n * @deprecated in 4.15.0. Use {@link FrameworkFrontstages.addFrontstage} instead.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n addFrontstageProvider(frontstageProvider: FrontstageProvider): void;\n\n /** Adds a frontstage. */\n addFrontstage(frontstage: Frontstage): void;\n\n /** Find a loaded Frontstage with a given id. If the id is not provided, the active Frontstage is returned. If\n * no cached FrontstageDef is found but a FrontstageProvider is registered a FrontstageDef will be created, cached, and\n * returned.\n * @param id Id of the Frontstage to find\n * @returns FrontstageDef with a given id if found, or undefined if not found.\n */\n getFrontstageDef(id?: string): Promise<FrontstageDef | undefined>;\n\n /** Gets the active FrontstageDef. If a Frontstage is not active, undefined is returned.\n * @return Active FrontstageDef, or undefined if one is not active.\n */\n readonly activeFrontstageDef: FrontstageDef | undefined;\n\n /** Gets the Id of the active FrontstageDef. If a Frontstage is not active, blank is returned.\n * @return Id of the active FrontstageDef, or blank if one is not active.\n */\n readonly activeFrontstageId: string;\n\n hasFrontstage(frontstageId: string): boolean;\n\n /** Sets the active FrontstageDef give the stageId.\n * @param frontstageId Id of the Frontstage to set active.\n * @returns A Promise that is fulfilled when the Frontstage is ready.\n */\n setActiveFrontstage(frontstageId: string): Promise<void>;\n\n /** Sets the active FrontstageDef.\n * @param frontstageDef FrontstageDef to set active.\n * @returns A Promise that is fulfilled when the [[FrontstageDef]] is ready.\n */\n setActiveFrontstageDef(\n frontstageDef: FrontstageDef | undefined\n ): Promise<void>;\n\n /** Deactivates the active FrontstageDef.\n */\n deactivateFrontstageDef(): Promise<void>;\n\n /** Gets the Id of the active tool. If a tool is not active, blank is returned.\n * @return Id of the active tool, or blank if one is not active.\n */\n readonly activeToolId: string;\n\n /** Sets the active tool id */\n setActiveToolId(toolId: string): void;\n\n /** Sets the active tool */\n setActiveTool(tool: Tool): void;\n\n /** Gets the active tool's [[ToolInformation]].\n * @deprecated in 4.16.0. Uses a deprecated class {@link ToolInformation}.\n */\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n readonly activeToolInformation: ToolInformation | undefined;\n\n /** Opens a modal Frontstage. Modal Frontstages can be stacked.\n * @param modalFrontstage Information about the modal Frontstage\n */\n openModalFrontstage(modalFrontstage: ModalFrontstageInfo): void;\n\n /** Closes the top-most modal Frontstage.\n */\n closeModalFrontstage(): void;\n\n /** Updates the top-most modal Frontstage.\n */\n updateModalFrontstage(): void;\n\n /** Gets the top-most modal Frontstage.\n * @returns Top-most modal Frontstage, or undefined if there is none.\n */\n readonly activeModalFrontstage: ModalFrontstageInfo | undefined;\n\n /** Gets the number of modal Frontstages.\n * @returns Modal Frontstage count\n */\n readonly modalFrontstageCount: number;\n\n /** Sets the active Navigation Aid via its Id.\n * @param navigationAidId Id of the Navigation Aid to set as active\n * @param iModelConnection IModelConnection to query for view data\n */\n setActiveNavigationAid(\n navigationAidId: string,\n iModelConnection: IModelConnection\n ): void;\n\n /** Sets the state of the widget with the given id\n * @param widgetId Id of the Widget for which to set the state\n * @param state New state of the widget\n * @returns true if the widget state was set successfully, or false if not.\n */\n setWidgetState(widgetId: string, state: WidgetState): boolean;\n\n /** Finds a widget with the given id in the active frontstage\n * @param widgetId Id of the Widget to find\n * @returns The WidgetDef with the given id, or undefined if not found.\n */\n findWidget(widgetId: string): WidgetDef | undefined;\n\n /** Opens a nested Frontstage. Nested Frontstages can be stacked.\n * @param nestedFrontstage Information about the nested Frontstage\n */\n openNestedFrontstage(nestedFrontstage: FrontstageDef): Promise<void>;\n\n /** Closes the top-most nested Frontstage.\n */\n closeNestedFrontstage(): Promise<void>;\n\n /** Gets the top-most nested Frontstage.\n * @returns Top-most nested Frontstage, or undefined if there is none.\n */\n readonly activeNestedFrontstage: FrontstageDef | undefined;\n\n /** Gets the number of nested Frontstages.\n * @returns Nested Frontstage count\n */\n readonly nestedFrontstageCount: number;\n}\n\n/** @alpha */\nexport class DefaultFrameworkFrontstages implements FrameworkFrontstages {\n public get isLoading() {\n return InternalFrontstageManager.isLoading;\n }\n public get onFrontstageDeactivatedEvent() {\n return InternalFrontstageManager.onFrontstageDeactivatedEvent;\n }\n public get onFrontstageActivatedEvent() {\n return InternalFrontstageManager.onFrontstageActivatedEvent;\n }\n public get onFrontstageReadyEvent() {\n return InternalFrontstageManager.onFrontstageReadyEvent;\n }\n public get onModalFrontstageChangedEvent() {\n return InternalFrontstageManager.onModalFrontstageChangedEvent;\n }\n public get onModalFrontstageClosedEvent() {\n return InternalFrontstageManager.onModalFrontstageClosedEvent;\n }\n public get onCloseModalFrontstageRequestedEvent() {\n return InternalFrontstageManager.onCloseModalFrontstageRequestedEvent;\n }\n public get onToolActivatedEvent() {\n return InternalFrontstageManager.onToolActivatedEvent;\n }\n public get onToolSettingsReloadEvent() {\n return InternalFrontstageManager.onToolSettingsReloadEvent;\n }\n public get onToolIconChangedEvent() {\n return InternalFrontstageManager.onToolIconChangedEvent;\n }\n public get onContentLayoutActivatedEvent() {\n return InternalFrontstageManager.onContentLayoutActivatedEvent;\n }\n public get onContentControlActivatedEvent() {\n return InternalFrontstageManager.onContentControlActivatedEvent;\n }\n public get onNavigationAidActivatedEvent() {\n return InternalFrontstageManager.onNavigationAidActivatedEvent;\n }\n public get onWidgetStateChangedEvent() {\n return InternalFrontstageManager.onWidgetStateChangedEvent;\n }\n public get onPanelStateChangedEvent() {\n return InternalFrontstageManager.onPanelStateChangedEvent;\n }\n public get onPanelPinnedChangedEvent() {\n return InternalFrontstageManager.onPanelPinnedChangedEvent;\n }\n public get activeFrontstageDef() {\n return InternalFrontstageManager.activeFrontstageDef;\n }\n public get activeFrontstageId() {\n return InternalFrontstageManager.activeFrontstageId;\n }\n public get activeToolId() {\n return InternalFrontstageManager.activeToolId;\n }\n public get activeToolInformation() {\n return InternalFrontstageManager.activeToolInformation;\n }\n public get activeModalFrontstage() {\n return InternalFrontstageManager.activeModalFrontstage;\n }\n public get modalFrontstageCount() {\n return InternalFrontstageManager.modalFrontstageCount;\n }\n public get activeNestedFrontstage() {\n return InternalFrontstageManager.activeNestedFrontstage;\n }\n public get nestedFrontstageCount() {\n return InternalFrontstageManager.nestedFrontstageCount;\n }\n public clearFrontstageDefs(\n ...args: Parameters<FrameworkFrontstages[\"clearFrontstageDefs\"]>\n ) {\n return InternalFrontstageManager.clearFrontstageDefs(...args);\n }\n public clearFrontstageProviders(\n ...args: Parameters<FrameworkFrontstages[\"clearFrontstageProviders\"]>\n ) {\n return InternalFrontstageManager.clearFrontstageProviders(...args);\n }\n public clearFrontstages(\n ...args: Parameters<FrameworkFrontstages[\"clearFrontstages\"]>\n ) {\n return InternalFrontstageManager.clearFrontstages(...args);\n }\n public addFrontstageProvider(\n ...args: Parameters<FrameworkFrontstages[\"addFrontstageProvider\"]>\n ) {\n return InternalFrontstageManager.addFrontstageProvider(...args);\n }\n public addFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"addFrontstage\"]>\n ) {\n return InternalFrontstageManager.addFrontstage(...args);\n }\n public async getFrontstageDef(\n ...args: Parameters<FrameworkFrontstages[\"getFrontstageDef\"]>\n ) {\n return InternalFrontstageManager.getFrontstageDef(...args);\n }\n public hasFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"hasFrontstage\"]>\n ) {\n return InternalFrontstageManager.hasFrontstage(...args);\n }\n public async setActiveFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"setActiveFrontstage\"]>\n ) {\n return InternalFrontstageManager.setActiveFrontstage(...args);\n }\n public async setActiveFrontstageDef(\n ...args: Parameters<FrameworkFrontstages[\"setActiveFrontstageDef\"]>\n ) {\n return InternalFrontstageManager.setActiveFrontstageDef(...args);\n }\n public async deactivateFrontstageDef(\n ...args: Parameters<FrameworkFrontstages[\"deactivateFrontstageDef\"]>\n ) {\n return InternalFrontstageManager.deactivateFrontstageDef(...args);\n }\n public setActiveToolId(\n ...args: Parameters<FrameworkFrontstages[\"setActiveToolId\"]>\n ) {\n return InternalFrontstageManager.setActiveToolId(...args);\n }\n public setActiveTool(\n ...args: Parameters<FrameworkFrontstages[\"setActiveTool\"]>\n ) {\n return InternalFrontstageManager.setActiveTool(...args);\n }\n public openModalFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"openModalFrontstage\"]>\n ) {\n return InternalFrontstageManager.openModalFrontstage(...args);\n }\n public closeModalFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"closeModalFrontstage\"]>\n ) {\n return InternalFrontstageManager.closeModalFrontstage(...args);\n }\n public updateModalFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"updateModalFrontstage\"]>\n ) {\n return InternalFrontstageManager.updateModalFrontstage(...args);\n }\n public setActiveNavigationAid(\n ...args: Parameters<FrameworkFrontstages[\"setActiveNavigationAid\"]>\n ) {\n return InternalFrontstageManager.setActiveNavigationAid(...args);\n }\n public setWidgetState(\n ...args: Parameters<FrameworkFrontstages[\"setWidgetState\"]>\n ) {\n return InternalFrontstageManager.setWidgetState(...args);\n }\n public findWidget(...args: Parameters<FrameworkFrontstages[\"findWidget\"]>) {\n return InternalFrontstageManager.findWidget(...args);\n }\n public async openNestedFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"openNestedFrontstage\"]>\n ) {\n return InternalFrontstageManager.openNestedFrontstage(...args);\n }\n public async closeNestedFrontstage(\n ...args: Parameters<FrameworkFrontstages[\"closeNestedFrontstage\"]>\n ) {\n return InternalFrontstageManager.closeNestedFrontstage(...args);\n }\n}\n"]}
|
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import "./MenuTab.scss";
|
|
5
5
|
import * as React from "react";
|
|
6
|
-
|
|
7
|
-
/** @internal */
|
|
8
|
-
export interface WidgetMenuTabProps extends CommonProps {
|
|
6
|
+
interface WidgetMenuTabProps {
|
|
9
7
|
badge?: React.ReactNode;
|
|
10
|
-
icon?: React.
|
|
8
|
+
icon?: React.ReactElement;
|
|
11
9
|
}
|
|
12
10
|
/** @internal */
|
|
13
11
|
export declare function WidgetMenuTab(props: WidgetMenuTabProps): React.JSX.Element;
|
|
12
|
+
export {};
|
|
14
13
|
//# sourceMappingURL=MenuTab.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuTab.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/MenuTab.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuTab.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/MenuTab.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,gBAAgB,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAW/B,UAAU,kBAAkB;IAC1B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;CAC3B;AAED,gBAAgB;AAChB,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,qBAsCtD"}
|
|
@@ -6,9 +6,10 @@
|
|
|
6
6
|
* @module Widget
|
|
7
7
|
*/
|
|
8
8
|
import "./MenuTab.scss";
|
|
9
|
-
import classnames from "classnames";
|
|
10
9
|
import * as React from "react";
|
|
11
10
|
import { assert } from "@itwin/core-bentley";
|
|
11
|
+
import { SvgCheckmark } from "@itwin/itwinui-icons-react";
|
|
12
|
+
import { MenuItem } from "@itwin/itwinui-react";
|
|
12
13
|
import { useTabInteractions } from "./Tab.js";
|
|
13
14
|
import { useActiveTabId } from "./Widget.js";
|
|
14
15
|
import { WidgetOverflowContext } from "./Overflow.js";
|
|
@@ -36,11 +37,8 @@ export function WidgetMenuTab(props) {
|
|
|
36
37
|
});
|
|
37
38
|
const activeTabId = useActiveTabId();
|
|
38
39
|
const active = activeTabId === id;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
showWidgetIcon && React.createElement("div", { className: "nz-icon" }, props.icon),
|
|
43
|
-
React.createElement("span", null, label),
|
|
44
|
-
React.createElement("div", { className: classnames("nz-checkmark", !active && "nz-hidden") })));
|
|
40
|
+
return (React.createElement(MenuItem, { role: "menuitemcheckbox", ref: ref, title: label, startIcon: showWidgetIcon ? props.icon : undefined, endIcon: active ? React.createElement(SvgCheckmark, null) : React.createElement(React.Fragment, null), "aria-checked": active, isSelected: active, "aria-selected": undefined },
|
|
41
|
+
props.badge && (React.createElement("div", { className: "nz-widget-menuTab_badge" }, props.badge)),
|
|
42
|
+
label));
|
|
45
43
|
}
|
|
46
44
|
//# sourceMappingURL=MenuTab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuTab.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/MenuTab.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,gBAAgB,CAAC;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"MenuTab.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/MenuTab.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,gBAAgB,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOpD,gBAAgB;AAChB,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAC/D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEb,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAChC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,OAAO,GAAG,CAAC,KAAK,CAAC;IACnB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IAC1B,MAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC3C,eAAe,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,MAAM,GAAG,GAAG,kBAAkB,CAAC;QAC7B,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,aAAa;QACtB,aAAa,EAAE,aAAa;KAC7B,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,WAAW,KAAK,EAAE,CAAC;IAClC,OAAO,CACL,oBAAC,QAAQ,IACP,IAAI,EAAC,kBAAkB,EACvB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAClD,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,oBAAC,YAAY,OAAG,CAAC,CAAC,CAAC,yCAAK,kBAC5B,MAAM,EACpB,UAAU,EAAE,MAAM,mBACH,SAAS;QAEvB,KAAK,CAAC,KAAK,IAAI,CACd,6BAAK,SAAS,EAAC,yBAAyB,IAAE,KAAK,CAAC,KAAK,CAAO,CAC7D;QACA,KAAK,CACG,CACZ,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./MenuTab.scss\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { SvgCheckmark } from \"@itwin/itwinui-icons-react\";\nimport { MenuItem } from \"@itwin/itwinui-react\";\nimport { useTabInteractions } from \"./Tab.js\";\nimport { useActiveTabId } from \"./Widget.js\";\nimport { WidgetOverflowContext } from \"./Overflow.js\";\nimport { ShowWidgetIconContext } from \"../base/NineZone.js\";\nimport { useLayout } from \"../base/LayoutStore.js\";\nimport { TabIdContext } from \"./ContentRenderer.js\";\n\ninterface WidgetMenuTabProps {\n badge?: React.ReactNode;\n icon?: React.ReactElement;\n}\n\n/** @internal */\nexport function WidgetMenuTab(props: WidgetMenuTabProps) {\n const id = React.useContext(TabIdContext);\n const overflowContext = React.useContext(WidgetOverflowContext);\n const showWidgetIcon = React.useContext(ShowWidgetIconContext);\n assert(!!id);\n\n const label = useLayout((state) => {\n const tab = state.tabs[id];\n return tab.label;\n });\n assert(!!overflowContext);\n const closeOverflow = React.useCallback(() => {\n overflowContext.close();\n }, [overflowContext]);\n const ref = useTabInteractions({\n onDragStart: closeOverflow,\n onClick: closeOverflow,\n onDoubleClick: closeOverflow,\n });\n const activeTabId = useActiveTabId();\n const active = activeTabId === id;\n return (\n <MenuItem\n role=\"menuitemcheckbox\"\n ref={ref}\n title={label}\n startIcon={showWidgetIcon ? props.icon : undefined}\n endIcon={active ? <SvgCheckmark /> : <></>}\n aria-checked={active}\n isSelected={active}\n aria-selected={undefined} // Keep styling provided by isSelected, but handle checked state via aria-checked\n >\n {props.badge && (\n <div className=\"nz-widget-menuTab_badge\">{props.badge}</div>\n )}\n {label}\n </MenuItem>\n );\n}\n"]}
|
|
@@ -3,57 +3,10 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
|
|
6
|
-
.
|
|
7
|
-
|
|
8
|
-
line-height: 2em;
|
|
9
|
-
height: 2em;
|
|
10
|
-
cursor: pointer;
|
|
11
|
-
user-select: none;
|
|
12
|
-
-webkit-user-select: none;
|
|
13
|
-
padding-right: 3em;
|
|
14
|
-
padding-left: 0.5em;
|
|
15
|
-
|
|
16
|
-
&.nz-no-icon {
|
|
17
|
-
padding-left: 1.25em;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
> .nz-icon {
|
|
21
|
-
width: 2em;
|
|
22
|
-
display: flex;
|
|
23
|
-
align-items: center;
|
|
24
|
-
justify-content: center;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
> .nz-badge {
|
|
6
|
+
@layer appui.component {
|
|
7
|
+
.nz-widget-menuTab_badge {
|
|
28
8
|
position: absolute;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
> span {
|
|
33
|
-
max-width: 15em;
|
|
34
|
-
overflow: hidden;
|
|
35
|
-
text-overflow: ellipsis;
|
|
36
|
-
white-space: nowrap;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
> .nz-checkmark {
|
|
40
|
-
position: absolute;
|
|
41
|
-
right: 0.75em;
|
|
42
|
-
border-style: solid;
|
|
43
|
-
border-color: var(--iui-color-border-accent);
|
|
44
|
-
border-width: 0 0.15em 0.15em 0;
|
|
45
|
-
width: 0.5em;
|
|
46
|
-
height: 1em;
|
|
47
|
-
transform: rotate(45deg);
|
|
48
|
-
|
|
49
|
-
&.nz-hidden {
|
|
50
|
-
display: none;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@media (hover: hover) {
|
|
55
|
-
&:hover {
|
|
56
|
-
color: var(--iui-color-text-accent);
|
|
57
|
-
}
|
|
9
|
+
top: 0;
|
|
10
|
+
left: 0;
|
|
58
11
|
}
|
|
59
12
|
}
|
|
@@ -3,9 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import "./Overflow.scss";
|
|
5
5
|
import * as React from "react";
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
children?: React.ReactNode;
|
|
6
|
+
interface WidgetOverflowProps {
|
|
7
|
+
items: React.ReactElement[];
|
|
9
8
|
hidden?: boolean;
|
|
10
9
|
onResize?: (w: number) => void;
|
|
11
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overflow.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/Overflow.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,iBAAiB,CAAC;AAEzB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,
|
|
1
|
+
{"version":3,"file":"Overflow.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/Overflow.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,iBAAiB,CAAC;AAEzB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,UAAU,mBAAmB;IAC3B,KAAK,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,qBAoCxD;AAED,UAAU,yBAAyB;IACjC,KAAK,IAAI,IAAI,CAAC;CACf;AAED,gBAAgB;AAChB,eAAO,MAAM,qBAAqB,sDAEtB,CAAC"}
|
|
@@ -11,7 +11,7 @@ import * as React from "react";
|
|
|
11
11
|
import { useResizeObserver } from "@itwin/core-react/internal";
|
|
12
12
|
import { PanelSideContext } from "../widget-panels/Panel.js";
|
|
13
13
|
import { useLayout } from "../base/LayoutStore.js";
|
|
14
|
-
import {
|
|
14
|
+
import { DropdownMenu } from "@itwin/itwinui-react";
|
|
15
15
|
import { SvgChevronRightSmall } from "@itwin/itwinui-icons-react";
|
|
16
16
|
import { TabBarButton } from "./Button.js";
|
|
17
17
|
import { useTranslation } from "../../hooks/useTranslation.js";
|
|
@@ -31,7 +31,7 @@ export function WidgetOverflow(props) {
|
|
|
31
31
|
const { translate } = useTranslation();
|
|
32
32
|
const moreWidgetsTitle = translate("widget.tooltips.moreWidgets");
|
|
33
33
|
return (React.createElement(WidgetOverflowContext.Provider, { value: overflowContext },
|
|
34
|
-
React.createElement(
|
|
34
|
+
React.createElement(DropdownMenu, { className: "nz-widget-overflow_menu", menuItems: props.items, visible: open, onVisibleChange: setOpen },
|
|
35
35
|
React.createElement(TabBarButton, { label: moreWidgetsTitle, className: classnames("nz-widget-overflow", props.hidden && "nz-hidden"), ref: resizeObserverRef },
|
|
36
36
|
React.createElement(SvgChevronRightSmall, null)))));
|
|
37
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overflow.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/Overflow.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,iBAAiB,CAAC;AACzB,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Overflow.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/Overflow.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,iBAAiB,CAAC;AACzB,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAQ/D,gBAAgB;AAChB,MAAM,UAAU,cAAc,CAAC,KAA0B;IACvD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,iBAAiB,CAAiB,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,aAAa,CAAC,WAAW,CAAC,CAAC;IAC3B,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAA4B,GAAG,EAAE;QACpE,OAAO;YACL,KAAK,EAAE,WAAW;SACnB,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAElB,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;IACvC,MAAM,gBAAgB,GAAG,SAAS,CAAC,6BAA6B,CAAC,CAAC;IAClE,OAAO,CACL,oBAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,eAAe;QACpD,oBAAC,YAAY,IACX,SAAS,EAAC,yBAAyB,EACnC,SAAS,EAAE,KAAK,CAAC,KAAK,EACtB,OAAO,EAAE,IAAI,EACb,eAAe,EAAE,OAAO;YAExB,oBAAC,YAAY,IACX,KAAK,EAAE,gBAAgB,EACvB,SAAS,EAAE,UAAU,CACnB,oBAAoB,EACpB,KAAK,CAAC,MAAM,IAAI,WAAW,CAC5B,EACD,GAAG,EAAE,iBAAiB;gBAEtB,oBAAC,oBAAoB,OAAG,CACX,CACF,CACgB,CAClC,CAAC;AACJ,CAAC;AAMD,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAEtD,SAAS,CAAC,CAAC;AACb,qBAAqB,CAAC,WAAW,GAAG,0BAA0B,CAAC;AAE/D,SAAS,aAAa,CAAC,OAAmB;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CACpC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAC5C,CAAC;IACF,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAC3B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./Overflow.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { useResizeObserver } from \"@itwin/core-react/internal\";\nimport { PanelSideContext } from \"../widget-panels/Panel.js\";\nimport { useLayout } from \"../base/LayoutStore.js\";\nimport { DropdownMenu } from \"@itwin/itwinui-react\";\nimport { SvgChevronRightSmall } from \"@itwin/itwinui-icons-react\";\nimport { TabBarButton } from \"./Button.js\";\nimport { useTranslation } from \"../../hooks/useTranslation.js\";\n\ninterface WidgetOverflowProps {\n items: React.ReactElement[];\n hidden?: boolean;\n onResize?: (w: number) => void;\n}\n\n/** @internal */\nexport function WidgetOverflow(props: WidgetOverflowProps) {\n const [open, setOpen] = React.useState(false);\n const resizeObserverRef = useResizeObserver<HTMLDivElement>(props.onResize);\n const handleClose = React.useCallback(() => {\n setOpen(false);\n }, []);\n usePanelPopup(handleClose);\n const overflowContext = React.useMemo<WidgetOverflowContextArgs>(() => {\n return {\n close: handleClose,\n };\n }, [handleClose]);\n\n const { translate } = useTranslation();\n const moreWidgetsTitle = translate(\"widget.tooltips.moreWidgets\");\n return (\n <WidgetOverflowContext.Provider value={overflowContext}>\n <DropdownMenu\n className=\"nz-widget-overflow_menu\"\n menuItems={props.items}\n visible={open}\n onVisibleChange={setOpen}\n >\n <TabBarButton\n label={moreWidgetsTitle}\n className={classnames(\n \"nz-widget-overflow\",\n props.hidden && \"nz-hidden\"\n )}\n ref={resizeObserverRef}\n >\n <SvgChevronRightSmall />\n </TabBarButton>\n </DropdownMenu>\n </WidgetOverflowContext.Provider>\n );\n}\n\ninterface WidgetOverflowContextArgs {\n close(): void;\n}\n\n/** @internal */\nexport const WidgetOverflowContext = React.createContext<\n WidgetOverflowContextArgs | undefined\n>(undefined);\nWidgetOverflowContext.displayName = \"nz:WidgetOverflowContext\";\n\nfunction usePanelPopup(onClose: () => void) {\n const side = React.useContext(PanelSideContext);\n const collapsed = useLayout((state) =>\n side ? state.panels[side].collapsed : false\n );\n React.useEffect(() => {\n if (collapsed) {\n onClose();\n }\n }, [collapsed, onClose]);\n}\n"]}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import "./Tab.scss";
|
|
5
5
|
import * as React from "react";
|
|
6
|
-
import type { CommonProps } from "@itwin/core-react";
|
|
7
6
|
import type { TabState } from "../state/TabState.js";
|
|
8
7
|
/** @internal */
|
|
9
8
|
export interface WidgetTabProviderProps extends TabPositionContextArgs {
|
|
@@ -12,12 +11,9 @@ export interface WidgetTabProviderProps extends TabPositionContextArgs {
|
|
|
12
11
|
}
|
|
13
12
|
/** @internal */
|
|
14
13
|
export declare function WidgetTabProvider({ id, first, firstInactive, last, showOnlyTabIcon, }: WidgetTabProviderProps): React.JSX.Element;
|
|
15
|
-
|
|
16
|
-
* @internal
|
|
17
|
-
*/
|
|
18
|
-
export interface WidgetTabProps extends CommonProps {
|
|
14
|
+
interface WidgetTabProps {
|
|
19
15
|
badge?: React.ReactNode;
|
|
20
|
-
icon?: React.
|
|
16
|
+
icon?: React.ReactElement;
|
|
21
17
|
}
|
|
22
18
|
/** Component that displays a tab in a side panel widget.
|
|
23
19
|
* @internal
|
|
@@ -44,4 +40,5 @@ export declare const TabPositionContext: React.Context<TabPositionContextArgs>;
|
|
|
44
40
|
export declare const IconOnlyOnWidgetTabContext: React.Context<boolean>;
|
|
45
41
|
/** @internal */
|
|
46
42
|
export declare const ShowActiveWidgetLabelContext: React.Context<boolean>;
|
|
43
|
+
export {};
|
|
47
44
|
//# sourceMappingURL=Tab.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/Tab.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,YAAY,CAAC;AAEpB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Tab.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/Tab.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,YAAY,CAAC;AAEpB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkB/B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAuBrD,gBAAgB;AAChB,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,EAChC,EAAE,EACF,KAAK,EACL,aAAa,EACb,IAAI,EACJ,eAAe,GAChB,EAAE,sBAAsB,qBAmBxB;AAGD,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,qBAS9C;AAkED,gBAAgB;AAChB,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,WAAW,EAAE,EACxD,OAAO,EACP,aAAa,EACb,WAAW,EACX,SAAS,GACV,EAAE,sBAAsB,4CAqLxB;AAED,gBAAgB;AAChB,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,gBAAgB;AAChB,eAAO,MAAM,kBAAkB,uCAE9B,CAAC;AAGF,gBAAgB;AAChB,eAAO,MAAM,0BAA0B,wBAAsC,CAAC;AAG9E,gBAAgB;AAChB,eAAO,MAAM,4BAA4B,wBAAsC,CAAC"}
|
|
@@ -73,13 +73,13 @@ function WidgetTabComponent(props) {
|
|
|
73
73
|
const pointerCaptorRef = useTabInteractions({ clickOnly: maximizedWidget });
|
|
74
74
|
const refs = useRefs(resizeObserverRef, pointerCaptorRef);
|
|
75
75
|
const active = activeTabId === id;
|
|
76
|
-
const className = classnames("nz-widget-tab", active && "nz-active", undefined === side && minimized && "nz-minimized", first && "nz-first", last && "nz-last", firstInactive && "nz-first-inactive"
|
|
76
|
+
const className = classnames("nz-widget-tab", active && "nz-active", undefined === side && minimized && "nz-minimized", first && "nz-first", last && "nz-last", firstInactive && "nz-first-inactive");
|
|
77
77
|
const showLabel = (showActiveWidgetLabel && active) ||
|
|
78
78
|
(showIconOnly && !props.icon) ||
|
|
79
79
|
(showWidgetIcon && !showIconOnly) ||
|
|
80
80
|
!showWidgetIcon;
|
|
81
81
|
return (React.createElement(Tooltip, { content: label, ariaStrategy: showLabel ? "none" : "label" },
|
|
82
|
-
React.createElement("div", { "data-item-id": id, "data-item-type": "widget-tab", className: className, ref: refs, role: "tab",
|
|
82
|
+
React.createElement("div", { "data-item-id": id, "data-item-type": "widget-tab", className: className, ref: refs, role: "tab", tabIndex: 0 },
|
|
83
83
|
(showWidgetIcon || showIconOnly) && (React.createElement("span", { className: "nz-icon" }, props.icon)),
|
|
84
84
|
showLabel && React.createElement("span", { className: "nz-label" }, label),
|
|
85
85
|
props.badge && React.createElement("div", { className: "nz-badge" }, props.badge),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/Tab.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,YAAY,CAAC;AACpB,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EACL,KAAK,EACL,SAAS,EACT,OAAO,EACP,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6DAA6D,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQ/C,gBAAgB;AAChB,MAAM,UAAU,iBAAiB,CAAC,EAChC,EAAE,EACF,KAAK,EACL,aAAa,EACb,IAAI,EACJ,eAAe,GACQ;IACvB,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC5B,GAAG,EAAE,CAAC,CAAC;QACL,KAAK;QACL,aAAa;QACb,IAAI;KACL,CAAC,EACF,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,CAC7B,CAAC;IACF,OAAO,CACL,oBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE;QAC9B,oBAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ;YAC1C,oBAAC,0BAA0B,CAAC,QAAQ,IAAC,KAAK,EAAE,CAAC,CAAC,eAAe,IAC1D,OAAO,CAC4B,CACV,CACR,CACzB,CAAC;AACJ,CAAC;AAWD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAqB;IAC7C,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC;IACnC,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAEpE,IAAI,KAAK,KAAK,aAAa;QAAE,OAAO,oBAAC,WAAW,OAAK,KAAK,GAAI,CAAC;IAC/D,IAAI,SAAS;QAAE,OAAO,oBAAC,aAAa,OAAK,KAAK,GAAI,CAAC;IACnD,OAAO,oBAAC,kBAAkB,OAAK,KAAK,GAAI,CAAC;AAC3C,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAqB;IAC/C,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;IAC5E,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC;IAClE,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAC/D,MAAM,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;IAC7E,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACb,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEnB,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,SAAS,CAC3B,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,WAAW,CACvD,CAAC;IACF,MAAM,SAAS,GAAG,SAAS,CACzB,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,SAAS,CACrD,CAAC;IAEF,MAAM,eAAe,GAAG,oBAAoB,EAAE,CAAC;IAE/C,MAAM,iBAAiB,GAAG,iBAAiB,CACzC,sBAAsB,EAAE,QAAQ,CACjC,CAAC;IACF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAiB,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;IAE1E,MAAM,MAAM,GAAG,WAAW,KAAK,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,UAAU,CAC1B,eAAe,EACf,MAAM,IAAI,WAAW,EACrB,SAAS,KAAK,IAAI,IAAI,SAAS,IAAI,cAAc,EACjD,KAAK,IAAI,UAAU,EACnB,IAAI,IAAI,SAAS,EACjB,aAAa,IAAI,mBAAmB,EACpC,KAAK,CAAC,SAAS,CAChB,CAAC;IAEF,MAAM,SAAS,GACb,CAAC,qBAAqB,IAAI,MAAM,CAAC;QACjC,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,CAAC,cAAc,IAAI,CAAC,YAAY,CAAC;QACjC,CAAC,cAAc,CAAC;IAClB,OAAO,CACL,oBAAC,OAAO,IAAC,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;QACjE,6CACgB,EAAE,oBACD,YAAY,EAC3B,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,IAAI,EACT,IAAI,EAAC,KAAK,EACV,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,CAAC;YAEV,CAAC,cAAc,IAAI,YAAY,CAAC,IAAI,CACnC,8BAAM,SAAS,EAAC,SAAS,IAAE,KAAK,CAAC,IAAI,CAAQ,CAC9C;YACA,SAAS,IAAI,8BAAM,SAAS,EAAC,UAAU,IAAE,KAAK,CAAQ;YACtD,KAAK,CAAC,KAAK,IAAI,6BAAK,SAAS,EAAC,UAAU,IAAE,KAAK,CAAC,KAAK,CAAO;YAC7D,oBAAC,SAAS,OAAG,CACT,CACE,CACX,CAAC;AACJ,CAAC;AAUD,gBAAgB;AAChB,MAAM,UAAU,kBAAkB,CAAwB,EACxD,OAAO,EACP,aAAa,EACb,WAAW,EACX,SAAS,GACc;IACvB,MAAM,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,sBAAsB,GAAG,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;IACxE,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACb,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEnB,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnC,4DAA4D;IAC5D,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IACtD,MAAM,sBAAsB,GAAG,KAAK,CAAC,MAAM,CAAoB,SAAS,CAAC,CAAC;IAE1E,MAAM,SAAS,GAAG,CAAC,sBAAsB,CAAC;IAE1C,KAAK,CAAC,SAAS,CACb,GAAG,EAAE,CACH,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,EACJ,CAAC,WAAW,EAAE,EAAE,CAAC,CAClB,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACzC,QAAQ,CAAC;YACP,IAAI,EAAE,kBAAkB;YACxB,IAAI;YACJ,QAAQ;YACR,EAAE;SACH,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,CAAC;IACd,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5C,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC/C,IAAI,SAAS;YAAE,OAAO;QACtB,QAAQ,CAAC;YACP,IAAI,EAAE,yBAAyB;YAC/B,IAAI;YACJ,QAAQ;YACR,gBAAgB;YAChB,EAAE;SACH,CAAC,CAAC;QACH,aAAa,EAAE,EAAE,CAAC;IACpB,CAAC,EAAE;QACD,SAAS;QACT,QAAQ;QACR,gBAAgB;QAChB,QAAQ;QACR,EAAE;QACF,IAAI;QACJ,aAAa;KACd,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,UAAU,CAAC;QACpC,KAAK,EAAE,EAAE;KACV,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CACvC,CAAC,eAAsB,EAAE,EAAE;QACzB,IAAI,SAAS;YAAE,OAAO;QACtB,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACtB,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC1D,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACnE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEjC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QAC3B,MAAM,SAAS,GACb,GAAG,CAAC,SAAS;YACb,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACvE,IAAI,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,yBAAyB,CAC1C,YAAY,CAAC,OAAO,EAAE,EACtB,QAAQ,CAAC,OAAO,EAAE,CACnB,CAAC;QACF,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,GAAG,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3D,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,UAAU,GACd,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAC9D,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEvC,kBAAkB,CAAC;YACjB,sBAAsB,EAAE,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC;YACpE,eAAe;YACf,UAAU;SACX,CAAC,CAAC;QACH,QAAQ,CAAC;YACP,IAAI,EAAE,uBAAuB;YAC7B,gBAAgB;YAChB,IAAI;YACJ,QAAQ;YACR,EAAE;YACF,QAAQ;YACR,SAAS;SACV,CAAC,CAAC;QACH,WAAW,EAAE,EAAE,CAAC;QAEhB,sBAAsB,CAAC,OAAO,GAAG,SAAS,CAAC;IAC7C,CAAC,EACD;QACE,SAAS;QACT,OAAO;QACP,aAAa;QACb,kBAAkB;QAClB,QAAQ;QACR,gBAAgB;QAChB,IAAI;QACJ,QAAQ;QACR,EAAE;QACF,WAAW;QACX,SAAS;KACV,CACF,CAAC;IACF,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CACzC,CAAC,IAAuB,EAAE,CAAqB,EAAE,EAAE;QACjD,CAAC,CAAC,IAAI,KAAK,YAAY;YACrB,gBAAgB;YAChB,QAAQ,CAAC;gBACP,IAAI,EAAE,gCAAgC;gBACtC,EAAE,EAAE,gBAAgB;aACrB,CAAC,CAAC;QAEL,sBAAsB,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC,EACD,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAC7B,CAAC;IACF,MAAM,iBAAiB,GAAG,KAAK,CAAC,WAAW,CACzC,CAAC,IAAuB,EAAE,EAAE;QAC1B,IAAI,CAAC,sBAAsB,CAAC,OAAO;YAAE,OAAO;QAE5C,MAAM,eAAe,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,QAAQ,GACZ,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;QAChE,IAAI,QAAQ,GAAG,EAAE;YAAE,OAAO;QAC1B,eAAe,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IACF,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC7C,UAAU,CAAC,OAAO,EAAE,CAAC;QACrB,sBAAsB,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3C,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,gBAAgB,GAAG,gBAAgB,CACvC,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,CAChB,CAAC;IACF,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAgB,SAAS,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAE5C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC;QACvC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE;YACtB,IAAI,UAAU,CAAC,OAAO,KAAK,CAAC;gBAAE,WAAW,EAAE,CAAC;;gBACvC,iBAAiB,EAAE,CAAC;YACzB,UAAU,CAAC,OAAO,GAAG,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,CAAgB,EAAE,EAAE;YACnC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnD,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;QAC7B,QAAQ,IAAI,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1D,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9B,QAAQ,IAAI,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AASD,gBAAgB;AAChB,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,CACnD,SAAU,CACX,CAAC;AACF,kBAAkB,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAEzD,gBAAgB;AAChB,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC,aAAa,CAAU,KAAK,CAAC,CAAC;AAC9E,0BAA0B,CAAC,WAAW,GAAG,+BAA+B,CAAC;AAEzE,gBAAgB;AAChB,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC,aAAa,CAAU,KAAK,CAAC,CAAC;AAChF,4BAA4B,CAAC,WAAW,GAAG,iCAAiC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./Tab.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport { assert } from \"@itwin/core-bentley\";\nimport type { CommonProps } from \"@itwin/core-react\";\nimport { Timer } from \"@itwin/core-react\";\nimport {\n Point,\n Rectangle,\n useRefs,\n useResizeObserver,\n} from \"@itwin/core-react/internal\";\nimport { Tooltip } from \"@itwin/itwinui-react\";\nimport { useDragTab } from \"../base/DragManager.js\";\nimport {\n MeasureContext,\n NineZoneDispatchContext,\n ShowWidgetIconContext,\n TabNodeContext,\n} from \"../base/NineZone.js\";\nimport type { TabState } from \"../state/TabState.js\";\nimport type {\n PointerCaptorArgs,\n PointerCaptorEvent,\n} from \"../base/usePointerCaptor.js\";\nimport { usePointerCaptor } from \"../base/usePointerCaptor.js\";\nimport { PanelSideContext } from \"../widget-panels/Panel.js\";\nimport { WidgetTabsEntryContext } from \"./Tabs.js\";\nimport {\n restrainInitialWidgetSize,\n WidgetContext,\n WidgetIdContext,\n} from \"./Widget.js\";\nimport { TabIdContext } from \"./ContentRenderer.js\";\nimport { TabTarget } from \"../target/TabTarget.js\";\nimport { WidgetMenuTab } from \"./MenuTab.js\";\nimport { WidgetOverflowContext } from \"./Overflow.js\";\nimport { useLayout, useLayoutStore } from \"../base/LayoutStore.js\";\nimport { useFloatingWidgetId } from \"./FloatingWidget.js\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers.js\";\nimport { useIsMaximizedWidget } from \"../../preview/enable-maximized-widget/useMaximizedWidget.js\";\nimport { FloatingTab } from \"./FloatingTab.js\";\n\n/** @internal */\nexport interface WidgetTabProviderProps extends TabPositionContextArgs {\n id: TabState[\"id\"];\n showOnlyTabIcon?: boolean;\n}\n\n/** @internal */\nexport function WidgetTabProvider({\n id,\n first,\n firstInactive,\n last,\n showOnlyTabIcon,\n}: WidgetTabProviderProps) {\n const tabNode = React.useContext(TabNodeContext);\n const position = React.useMemo<TabPositionContextArgs>(\n () => ({\n first,\n firstInactive,\n last,\n }),\n [first, firstInactive, last]\n );\n return (\n <TabIdContext.Provider value={id}>\n <TabPositionContext.Provider value={position}>\n <IconOnlyOnWidgetTabContext.Provider value={!!showOnlyTabIcon}>\n {tabNode}\n </IconOnlyOnWidgetTabContext.Provider>\n </TabPositionContext.Provider>\n </TabIdContext.Provider>\n );\n}\n\n/** Properties of [[WidgetTab]] component.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface WidgetTabProps extends CommonProps {\n badge?: React.ReactNode;\n icon?: React.ReactNode;\n}\n\n/** Component that displays a tab in a side panel widget.\n * @internal\n */\nexport function WidgetTab(props: WidgetTabProps) {\n const widgetOverflow = React.useContext(WidgetOverflowContext);\n const tabId = React.useContext(TabIdContext);\n const overflown = !!widgetOverflow;\n const floatingTabId = useLayout((state) => state.draggedTab?.tabId);\n\n if (tabId === floatingTabId) return <FloatingTab {...props} />;\n if (overflown) return <WidgetMenuTab {...props} />;\n return <WidgetTabComponent {...props} />;\n}\n\nfunction WidgetTabComponent(props: WidgetTabProps) {\n const id = React.useContext(TabIdContext);\n const { first, firstInactive, last } = React.useContext(TabPositionContext);\n const widgetTabsEntryContext = React.useContext(WidgetTabsEntryContext);\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const showIconOnly = React.useContext(IconOnlyOnWidgetTabContext);\n const showWidgetIcon = React.useContext(ShowWidgetIconContext);\n const showActiveWidgetLabel = React.useContext(ShowActiveWidgetLabelContext);\n assert(!!id);\n assert(!!widgetId);\n\n const label = useLayout((state) => state.tabs[id].label);\n const activeTabId = useLayout(\n (state) => getWidgetState(state, widgetId).activeTabId\n );\n const minimized = useLayout(\n (state) => getWidgetState(state, widgetId).minimized\n );\n\n const maximizedWidget = useIsMaximizedWidget();\n\n const resizeObserverRef = useResizeObserver<HTMLDivElement>(\n widgetTabsEntryContext?.onResize\n );\n const pointerCaptorRef = useTabInteractions({ clickOnly: maximizedWidget });\n const refs = useRefs<HTMLDivElement>(resizeObserverRef, pointerCaptorRef);\n\n const active = activeTabId === id;\n const className = classnames(\n \"nz-widget-tab\",\n active && \"nz-active\",\n undefined === side && minimized && \"nz-minimized\",\n first && \"nz-first\",\n last && \"nz-last\",\n firstInactive && \"nz-first-inactive\",\n props.className\n );\n\n const showLabel =\n (showActiveWidgetLabel && active) ||\n (showIconOnly && !props.icon) ||\n (showWidgetIcon && !showIconOnly) ||\n !showWidgetIcon;\n return (\n <Tooltip content={label} ariaStrategy={showLabel ? \"none\" : \"label\"}>\n <div\n data-item-id={id}\n data-item-type=\"widget-tab\"\n className={className}\n ref={refs}\n role=\"tab\"\n style={props.style}\n tabIndex={0}\n >\n {(showWidgetIcon || showIconOnly) && (\n <span className=\"nz-icon\">{props.icon}</span>\n )}\n {showLabel && <span className=\"nz-label\">{label}</span>}\n {props.badge && <div className=\"nz-badge\">{props.badge}</div>}\n <TabTarget />\n </div>\n </Tooltip>\n );\n}\n\n/** @internal */\nexport interface UseTabInteractionsArgs {\n onClick?: () => void;\n onDoubleClick?: () => void;\n onDragStart?: () => void;\n clickOnly?: boolean;\n}\n\n/** @internal */\nexport function useTabInteractions<T extends HTMLElement>({\n onClick,\n onDoubleClick,\n onDragStart,\n clickOnly,\n}: UseTabInteractionsArgs) {\n const id = React.useContext(TabIdContext);\n const widgetContext = React.useContext(WidgetContext);\n const measure = React.useContext(MeasureContext);\n const dispatch = React.useContext(NineZoneDispatchContext);\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const widgetTabsEntryContext = React.useContext(WidgetTabsEntryContext);\n const floatingWidgetId = useFloatingWidgetId();\n assert(!!id);\n assert(!!widgetId);\n\n const layoutStore = useLayoutStore();\n const tabRef = React.useRef(layoutStore.getState().tabs[id]);\n const clickCount = React.useRef(0);\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const doubleClickTimer = React.useRef(new Timer(300));\n const initialPointerPosition = React.useRef<Point | undefined>(undefined);\n\n const overflown = !widgetTabsEntryContext;\n\n React.useEffect(\n () =>\n layoutStore.subscribe((state) => {\n tabRef.current = state.tabs[id];\n }),\n [layoutStore, id]\n );\n\n const handleClick = React.useCallback(() => {\n dispatch({\n type: \"WIDGET_TAB_CLICK\",\n side,\n widgetId,\n id,\n });\n onClick?.();\n }, [dispatch, widgetId, id, side, onClick]);\n const handleDoubleClick = React.useCallback(() => {\n if (clickOnly) return;\n dispatch({\n type: \"WIDGET_TAB_DOUBLE_CLICK\",\n side,\n widgetId,\n floatingWidgetId,\n id,\n });\n onDoubleClick?.();\n }, [\n clickOnly,\n dispatch,\n floatingWidgetId,\n widgetId,\n id,\n side,\n onDoubleClick,\n ]);\n\n const handleDragTabStart = useDragTab({\n tabId: id,\n });\n const handleDragStart = React.useCallback(\n (pointerPosition: Point) => {\n if (clickOnly) return;\n assert(!!ref.current);\n assert(!!initialPointerPosition.current);\n const nzBounds = measure();\n const nzOffset = new Point(-nzBounds.left, -nzBounds.top);\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n bounds = bounds.offset(nzOffset);\n\n const tab = tabRef.current;\n const userSized =\n tab.userSized ||\n (tab.isFloatingWidgetResizable && !!tab.preferredFloatingWidgetSize);\n let position = bounds.topLeft();\n const widgetBounds = widgetContext.measure();\n const widgetSize = restrainInitialWidgetSize(\n widgetBounds.getSize(),\n nzBounds.getSize()\n );\n if (overflown) {\n position = initialPointerPosition.current.offset(nzOffset);\n position = position.offset({ x: -7, y: -7 });\n }\n\n const dragOffset =\n initialPointerPosition.current.getOffsetTo(pointerPosition);\n position = position.offset(dragOffset);\n\n handleDragTabStart({\n initialPointerPosition: Point.create(initialPointerPosition.current),\n pointerPosition,\n widgetSize,\n });\n dispatch({\n type: \"WIDGET_TAB_DRAG_START\",\n floatingWidgetId,\n side,\n widgetId,\n id,\n position,\n userSized,\n });\n onDragStart?.();\n\n initialPointerPosition.current = undefined;\n },\n [\n clickOnly,\n measure,\n widgetContext,\n handleDragTabStart,\n dispatch,\n floatingWidgetId,\n side,\n widgetId,\n id,\n onDragStart,\n overflown,\n ]\n );\n const handlePointerDown = React.useCallback(\n (args: PointerCaptorArgs, e: PointerCaptorEvent) => {\n e.type === \"touchstart\" &&\n floatingWidgetId &&\n dispatch({\n type: \"FLOATING_WIDGET_BRING_TO_FRONT\",\n id: floatingWidgetId,\n });\n\n initialPointerPosition.current = new Point(args.clientX, args.clientY);\n },\n [dispatch, floatingWidgetId]\n );\n const handlePointerMove = React.useCallback(\n (args: PointerCaptorArgs) => {\n if (!initialPointerPosition.current) return;\n\n const pointerPosition = new Point(args.clientX, args.clientY);\n const distance =\n initialPointerPosition.current.getDistanceTo(pointerPosition);\n if (distance < 10) return;\n handleDragStart(pointerPosition);\n },\n [handleDragStart]\n );\n const handlePointerUp = React.useCallback(() => {\n clickCount.current++;\n initialPointerPosition.current = undefined;\n doubleClickTimer.current.start();\n }, []);\n\n const pointerCaptorRef = usePointerCaptor<T>(\n handlePointerDown,\n handlePointerMove,\n handlePointerUp\n );\n const ref = React.useRef<T | undefined>(undefined);\n const refs = useRefs(pointerCaptorRef, ref);\n\n React.useEffect(() => {\n const timer = doubleClickTimer.current;\n timer.setOnExecute(() => {\n if (clickCount.current === 1) handleClick();\n else handleDoubleClick();\n clickCount.current = 0;\n });\n const keydown = (e: KeyboardEvent) => {\n if (e.key === \" \" || e.key === Key.Enter.valueOf()) {\n handleClick();\n }\n };\n const instance = ref.current;\n instance && instance.addEventListener(\"keydown\", keydown);\n return () => {\n timer.setOnExecute(undefined);\n instance && instance.removeEventListener(\"keydown\", keydown);\n };\n }, [handleClick, handleDoubleClick]);\n return refs;\n}\n\n/** @internal */\nexport interface TabPositionContextArgs {\n first?: boolean;\n last?: boolean;\n firstInactive?: boolean;\n}\n\n/** @internal */\nexport const TabPositionContext = React.createContext<TabPositionContextArgs>(\n undefined!\n);\nTabPositionContext.displayName = \"nz:TabPositionContext\";\n\n/** @internal */\nexport const IconOnlyOnWidgetTabContext = React.createContext<boolean>(false);\nIconOnlyOnWidgetTabContext.displayName = \"nz:IconOnlyOnWidgetTabContext\";\n\n/** @internal */\nexport const ShowActiveWidgetLabelContext = React.createContext<boolean>(false);\nShowActiveWidgetLabelContext.displayName = \"nz:ShowActiveWidgetLabelContext\";\n"]}
|
|
1
|
+
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/Tab.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./Tab.scss\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { Timer } from \"@itwin/core-react\";\nimport {\n Point,\n Rectangle,\n useRefs,\n useResizeObserver,\n} from \"@itwin/core-react/internal\";\nimport { Tooltip } from \"@itwin/itwinui-react\";\nimport { useDragTab } from \"../base/DragManager.js\";\nimport {\n MeasureContext,\n NineZoneDispatchContext,\n ShowWidgetIconContext,\n TabNodeContext,\n} from \"../base/NineZone.js\";\nimport type { TabState } from \"../state/TabState.js\";\nimport type {\n PointerCaptorArgs,\n PointerCaptorEvent,\n} from \"../base/usePointerCaptor.js\";\nimport { usePointerCaptor } from \"../base/usePointerCaptor.js\";\nimport { PanelSideContext } from \"../widget-panels/Panel.js\";\nimport { WidgetTabsEntryContext } from \"./Tabs.js\";\nimport {\n restrainInitialWidgetSize,\n WidgetContext,\n WidgetIdContext,\n} from \"./Widget.js\";\nimport { TabIdContext } from \"./ContentRenderer.js\";\nimport { TabTarget } from \"../target/TabTarget.js\";\nimport { WidgetMenuTab } from \"./MenuTab.js\";\nimport { WidgetOverflowContext } from \"./Overflow.js\";\nimport { useLayout, useLayoutStore } from \"../base/LayoutStore.js\";\nimport { useFloatingWidgetId } from \"./FloatingWidget.js\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers.js\";\nimport { useIsMaximizedWidget } from \"../../preview/enable-maximized-widget/useMaximizedWidget.js\";\nimport { FloatingTab } from \"./FloatingTab.js\";\n\n/** @internal */\nexport interface WidgetTabProviderProps extends TabPositionContextArgs {\n id: TabState[\"id\"];\n showOnlyTabIcon?: boolean;\n}\n\n/** @internal */\nexport function WidgetTabProvider({\n id,\n first,\n firstInactive,\n last,\n showOnlyTabIcon,\n}: WidgetTabProviderProps) {\n const tabNode = React.useContext(TabNodeContext);\n const position = React.useMemo<TabPositionContextArgs>(\n () => ({\n first,\n firstInactive,\n last,\n }),\n [first, firstInactive, last]\n );\n return (\n <TabIdContext.Provider value={id}>\n <TabPositionContext.Provider value={position}>\n <IconOnlyOnWidgetTabContext.Provider value={!!showOnlyTabIcon}>\n {tabNode}\n </IconOnlyOnWidgetTabContext.Provider>\n </TabPositionContext.Provider>\n </TabIdContext.Provider>\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-deprecated\ninterface WidgetTabProps {\n badge?: React.ReactNode;\n icon?: React.ReactElement;\n}\n\n/** Component that displays a tab in a side panel widget.\n * @internal\n */\nexport function WidgetTab(props: WidgetTabProps) {\n const widgetOverflow = React.useContext(WidgetOverflowContext);\n const tabId = React.useContext(TabIdContext);\n const overflown = !!widgetOverflow;\n const floatingTabId = useLayout((state) => state.draggedTab?.tabId);\n\n if (tabId === floatingTabId) return <FloatingTab {...props} />;\n if (overflown) return <WidgetMenuTab {...props} />;\n return <WidgetTabComponent {...props} />;\n}\n\nfunction WidgetTabComponent(props: WidgetTabProps) {\n const id = React.useContext(TabIdContext);\n const { first, firstInactive, last } = React.useContext(TabPositionContext);\n const widgetTabsEntryContext = React.useContext(WidgetTabsEntryContext);\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const showIconOnly = React.useContext(IconOnlyOnWidgetTabContext);\n const showWidgetIcon = React.useContext(ShowWidgetIconContext);\n const showActiveWidgetLabel = React.useContext(ShowActiveWidgetLabelContext);\n assert(!!id);\n assert(!!widgetId);\n\n const label = useLayout((state) => state.tabs[id].label);\n const activeTabId = useLayout(\n (state) => getWidgetState(state, widgetId).activeTabId\n );\n const minimized = useLayout(\n (state) => getWidgetState(state, widgetId).minimized\n );\n\n const maximizedWidget = useIsMaximizedWidget();\n\n const resizeObserverRef = useResizeObserver<HTMLDivElement>(\n widgetTabsEntryContext?.onResize\n );\n const pointerCaptorRef = useTabInteractions({ clickOnly: maximizedWidget });\n const refs = useRefs<HTMLDivElement>(resizeObserverRef, pointerCaptorRef);\n\n const active = activeTabId === id;\n const className = classnames(\n \"nz-widget-tab\",\n active && \"nz-active\",\n undefined === side && minimized && \"nz-minimized\",\n first && \"nz-first\",\n last && \"nz-last\",\n firstInactive && \"nz-first-inactive\"\n );\n\n const showLabel =\n (showActiveWidgetLabel && active) ||\n (showIconOnly && !props.icon) ||\n (showWidgetIcon && !showIconOnly) ||\n !showWidgetIcon;\n return (\n <Tooltip content={label} ariaStrategy={showLabel ? \"none\" : \"label\"}>\n <div\n data-item-id={id}\n data-item-type=\"widget-tab\"\n className={className}\n ref={refs}\n role=\"tab\"\n tabIndex={0}\n >\n {(showWidgetIcon || showIconOnly) && (\n <span className=\"nz-icon\">{props.icon}</span>\n )}\n {showLabel && <span className=\"nz-label\">{label}</span>}\n {props.badge && <div className=\"nz-badge\">{props.badge}</div>}\n <TabTarget />\n </div>\n </Tooltip>\n );\n}\n\n/** @internal */\nexport interface UseTabInteractionsArgs {\n onClick?: () => void;\n onDoubleClick?: () => void;\n onDragStart?: () => void;\n clickOnly?: boolean;\n}\n\n/** @internal */\nexport function useTabInteractions<T extends HTMLElement>({\n onClick,\n onDoubleClick,\n onDragStart,\n clickOnly,\n}: UseTabInteractionsArgs) {\n const id = React.useContext(TabIdContext);\n const widgetContext = React.useContext(WidgetContext);\n const measure = React.useContext(MeasureContext);\n const dispatch = React.useContext(NineZoneDispatchContext);\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const widgetTabsEntryContext = React.useContext(WidgetTabsEntryContext);\n const floatingWidgetId = useFloatingWidgetId();\n assert(!!id);\n assert(!!widgetId);\n\n const layoutStore = useLayoutStore();\n const tabRef = React.useRef(layoutStore.getState().tabs[id]);\n const clickCount = React.useRef(0);\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const doubleClickTimer = React.useRef(new Timer(300));\n const initialPointerPosition = React.useRef<Point | undefined>(undefined);\n\n const overflown = !widgetTabsEntryContext;\n\n React.useEffect(\n () =>\n layoutStore.subscribe((state) => {\n tabRef.current = state.tabs[id];\n }),\n [layoutStore, id]\n );\n\n const handleClick = React.useCallback(() => {\n dispatch({\n type: \"WIDGET_TAB_CLICK\",\n side,\n widgetId,\n id,\n });\n onClick?.();\n }, [dispatch, widgetId, id, side, onClick]);\n const handleDoubleClick = React.useCallback(() => {\n if (clickOnly) return;\n dispatch({\n type: \"WIDGET_TAB_DOUBLE_CLICK\",\n side,\n widgetId,\n floatingWidgetId,\n id,\n });\n onDoubleClick?.();\n }, [\n clickOnly,\n dispatch,\n floatingWidgetId,\n widgetId,\n id,\n side,\n onDoubleClick,\n ]);\n\n const handleDragTabStart = useDragTab({\n tabId: id,\n });\n const handleDragStart = React.useCallback(\n (pointerPosition: Point) => {\n if (clickOnly) return;\n assert(!!ref.current);\n assert(!!initialPointerPosition.current);\n const nzBounds = measure();\n const nzOffset = new Point(-nzBounds.left, -nzBounds.top);\n let bounds = Rectangle.create(ref.current.getBoundingClientRect());\n bounds = bounds.offset(nzOffset);\n\n const tab = tabRef.current;\n const userSized =\n tab.userSized ||\n (tab.isFloatingWidgetResizable && !!tab.preferredFloatingWidgetSize);\n let position = bounds.topLeft();\n const widgetBounds = widgetContext.measure();\n const widgetSize = restrainInitialWidgetSize(\n widgetBounds.getSize(),\n nzBounds.getSize()\n );\n if (overflown) {\n position = initialPointerPosition.current.offset(nzOffset);\n position = position.offset({ x: -7, y: -7 });\n }\n\n const dragOffset =\n initialPointerPosition.current.getOffsetTo(pointerPosition);\n position = position.offset(dragOffset);\n\n handleDragTabStart({\n initialPointerPosition: Point.create(initialPointerPosition.current),\n pointerPosition,\n widgetSize,\n });\n dispatch({\n type: \"WIDGET_TAB_DRAG_START\",\n floatingWidgetId,\n side,\n widgetId,\n id,\n position,\n userSized,\n });\n onDragStart?.();\n\n initialPointerPosition.current = undefined;\n },\n [\n clickOnly,\n measure,\n widgetContext,\n handleDragTabStart,\n dispatch,\n floatingWidgetId,\n side,\n widgetId,\n id,\n onDragStart,\n overflown,\n ]\n );\n const handlePointerDown = React.useCallback(\n (args: PointerCaptorArgs, e: PointerCaptorEvent) => {\n e.type === \"touchstart\" &&\n floatingWidgetId &&\n dispatch({\n type: \"FLOATING_WIDGET_BRING_TO_FRONT\",\n id: floatingWidgetId,\n });\n\n initialPointerPosition.current = new Point(args.clientX, args.clientY);\n },\n [dispatch, floatingWidgetId]\n );\n const handlePointerMove = React.useCallback(\n (args: PointerCaptorArgs) => {\n if (!initialPointerPosition.current) return;\n\n const pointerPosition = new Point(args.clientX, args.clientY);\n const distance =\n initialPointerPosition.current.getDistanceTo(pointerPosition);\n if (distance < 10) return;\n handleDragStart(pointerPosition);\n },\n [handleDragStart]\n );\n const handlePointerUp = React.useCallback(() => {\n clickCount.current++;\n initialPointerPosition.current = undefined;\n doubleClickTimer.current.start();\n }, []);\n\n const pointerCaptorRef = usePointerCaptor<T>(\n handlePointerDown,\n handlePointerMove,\n handlePointerUp\n );\n const ref = React.useRef<T | undefined>(undefined);\n const refs = useRefs(pointerCaptorRef, ref);\n\n React.useEffect(() => {\n const timer = doubleClickTimer.current;\n timer.setOnExecute(() => {\n if (clickCount.current === 1) handleClick();\n else handleDoubleClick();\n clickCount.current = 0;\n });\n const keydown = (e: KeyboardEvent) => {\n if (e.key === \" \" || e.key === Key.Enter.valueOf()) {\n handleClick();\n }\n };\n const instance = ref.current;\n instance && instance.addEventListener(\"keydown\", keydown);\n return () => {\n timer.setOnExecute(undefined);\n instance && instance.removeEventListener(\"keydown\", keydown);\n };\n }, [handleClick, handleDoubleClick]);\n return refs;\n}\n\n/** @internal */\nexport interface TabPositionContextArgs {\n first?: boolean;\n last?: boolean;\n firstInactive?: boolean;\n}\n\n/** @internal */\nexport const TabPositionContext = React.createContext<TabPositionContextArgs>(\n undefined!\n);\nTabPositionContext.displayName = \"nz:TabPositionContext\";\n\n/** @internal */\nexport const IconOnlyOnWidgetTabContext = React.createContext<boolean>(false);\nIconOnlyOnWidgetTabContext.displayName = \"nz:IconOnlyOnWidgetTabContext\";\n\n/** @internal */\nexport const ShowActiveWidgetLabelContext = React.createContext<boolean>(false);\nShowActiveWidgetLabelContext.displayName = \"nz:ShowActiveWidgetLabelContext\";\n"]}
|
|
@@ -62,14 +62,15 @@ export function WidgetTabs() {
|
|
|
62
62
|
return [key, child];
|
|
63
63
|
})
|
|
64
64
|
: [];
|
|
65
|
+
const overflowItems = panelChildren.map(([key, child]) => {
|
|
66
|
+
return React.createElement(React.Fragment, { key: key }, child);
|
|
67
|
+
});
|
|
65
68
|
return (React.createElement("div", { className: "nz-widget-tabs", ref: ref, role: "tablist" },
|
|
66
69
|
tabChildren.map(([key, child], index, array) => {
|
|
67
70
|
return (React.createElement(WidgetTabsEntryProvider, { children: child, key: key, id: key, lastNotOverflown: index === array.length - 1 && panelChildren.length > 0, getOnResize: handleEntryResize }));
|
|
68
71
|
}),
|
|
69
72
|
React.createElement(TitleBarTarget, null),
|
|
70
|
-
React.createElement(WidgetOverflow, { hidden: overflown && panelChildren.length === 0, onResize: handleOverflowResize
|
|
71
|
-
return React.createElement(React.Fragment, { key: key }, child);
|
|
72
|
-
}))));
|
|
73
|
+
React.createElement(WidgetOverflow, { hidden: overflown && panelChildren.length === 0, onResize: handleOverflowResize, items: overflowItems })));
|
|
73
74
|
}
|
|
74
75
|
/** @internal */
|
|
75
76
|
export const WidgetTabsEntryContext = React.createContext(undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/Tabs.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,aAAa,CAAC;AACrB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EACL,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAEzE,gBAAgB;AAChB,MAAM,UAAU,UAAU;IACxB,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAC/D,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnB,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,SAAS,CAC3B,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,WAAW,CACvD,CAAC;IACF,MAAM,SAAS,GAAG,SAAS,CACzB,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,SAAS,CACrD,CAAC;IACF,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpE,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;IACpE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAkB,GAAG,EAAE;QACnD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACrC,MAAM,aAAa,GAAG,cAAc,GAAG,CAAC,KAAK,KAAK,CAAC;YACnD,OAAO,CACL,oBAAC,iBAAiB,IAChB,GAAG,EAAE,EAAE,EACP,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,KAAK,KAAK,CAAC,EAClB,aAAa,EAAE,aAAa,EAC5B,IAAI,EAAE,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,EAChC,eAAe,EAAE,eAAe,IAAI,cAAc,GAClD,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CACzE,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAC1B,CAAC;IACF,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,GACtE,WAAW,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,qBAAqB,GAAG,KAAK,CAAC,WAAW,CAC7C,CAAC,CAAS,EAAE,EAAE;QACZ,IAAI,cAAc;YAAE,kBAAkB,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB;QACtF,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,EACD,CAAC,YAAY,EAAE,cAAc,EAAE,MAAM,CAAC,CACvC,CAAC;IAEF,MAAM,GAAG,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;IACrD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CACjC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EACtC,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CACtC,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACpB,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YACvB,OAAO,GAAG,CAAC;QACb,CAAC;QACD,IAAI,UAAU,IAAI,SAAS;YAAE,OAAO,GAAG,CAAC;QACxC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACrD,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;IACF,MAAM,aAAa,GACjB,WAAW,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM;QACzC,CAAC,CAAC,aAAa,CAAC,GAAG,CAA4B,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5D,MAAM,GAAG,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACtC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IACT,OAAO,CACL,6BAAK,SAAS,EAAC,gBAAgB,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAC,SAAS;QACrD,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC9C,OAAO,CACL,oBAAC,uBAAuB,IACtB,QAAQ,EAAE,KAAK,EACf,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,GAAG,EACP,gBAAgB,EACd,KAAK,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAExD,WAAW,EAAE,iBAAiB,GAC9B,CACH,CAAC;QACJ,CAAC,CAAC;QACF,oBAAC,cAAc,OAAG;QAClB,oBAAC,cAAc,IACb,MAAM,EAAE,SAAS,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAC/C,QAAQ,EAAE,oBAAoB,IAE7B,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAClC,OAAO,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,GAAG,IAAG,KAAK,CAAkB,CAAC;QAC5D,CAAC,CAAC,CACa,CACb,CACP,CAAC;AACJ,CAAC;AAOD,gBAAgB;AAChB,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC,aAAa,CAEvD,SAAS,CAAC,CAAC;AACb,sBAAsB,CAAC,WAAW,GAAG,2BAA2B,CAAC;AAUjE,gBAAgB;AAChB,MAAM,UAAU,uBAAuB,CACrC,KAA0C;IAE1C,OAAO,CACL,oBAAC,sBAAsB,CAAC,QAAQ,IAC9B,KAAK,EAAE;YACL,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;SACtC,IAEA,KAAK,CAAC,QAAQ,CACiB,CACnC,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./Tabs.scss\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { useResizeObserver } from \"@itwin/core-react/internal\";\nimport { ShowWidgetIconContext } from \"../base/NineZone.js\";\nimport { getChildKey, useOverflow } from \"../tool-settings/Docked.js\";\nimport {\n isHorizontalPanelSide,\n PanelSideContext,\n} from \"../widget-panels/Panel.js\";\nimport { WidgetOverflow } from \"./Overflow.js\";\nimport { WidgetTabProvider } from \"./Tab.js\";\nimport { TitleBarTarget } from \"../target/TitleBarTarget.js\";\nimport { useLayout } from \"../base/LayoutStore.js\";\nimport { WidgetIdContext } from \"./Widget.js\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers.js\";\n\n/** @internal */\nexport function WidgetTabs() {\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const showWidgetIcon = React.useContext(ShowWidgetIconContext);\n assert(!!widgetId);\n const tabIds = useLayout((state) => getWidgetState(state, widgetId).tabs);\n const activeTabId = useLayout(\n (state) => getWidgetState(state, widgetId).activeTabId\n );\n const minimized = useLayout(\n (state) => getWidgetState(state, widgetId).minimized\n );\n const [showOnlyTabIcon, setShowOnlyTabIcon] = React.useState(false);\n\n const activeTabIndex = tabIds.findIndex((id) => id === activeTabId);\n const children = React.useMemo<React.ReactNode>(() => {\n return tabIds.map((id, index, array) => {\n const firstInactive = activeTabIndex + 1 === index;\n return (\n <WidgetTabProvider\n key={id}\n id={id}\n first={index === 0}\n firstInactive={firstInactive}\n last={index === array.length - 1}\n showOnlyTabIcon={showOnlyTabIcon && showWidgetIcon}\n />\n );\n });\n }, [tabIds, activeTabIndex, showOnlyTabIcon, showWidgetIcon]);\n const childrenKeys = React.Children.toArray(children).map((child, index) =>\n getChildKey(child, index)\n );\n const [overflown, handleResize, handleOverflowResize, handleEntryResize] =\n useOverflow(childrenKeys, activeTabIndex);\n const horizontal = side && isHorizontalPanelSide(side);\n const handleContainerResize = React.useCallback(\n (w: number) => {\n if (showWidgetIcon) setShowOnlyTabIcon(tabIds.length * 158 > w); // 158px per text tab\n handleResize && handleResize(w);\n },\n [handleResize, showWidgetIcon, tabIds]\n );\n\n const ref = useResizeObserver(handleContainerResize);\n const childrenArray = React.useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n const tabChildren = childrenArray.reduce<Array<[string, React.ReactNode]>>(\n (acc, child, index) => {\n const key = getChildKey(child, index);\n if (!overflown) {\n acc.push([key, child]);\n return acc;\n }\n if (horizontal && minimized) return acc;\n overflown.indexOf(key) < 0 && acc.push([key, child]);\n return acc;\n },\n []\n );\n const panelChildren =\n tabChildren.length !== childrenArray.length\n ? childrenArray.map<[string, React.ReactNode]>((child, index) => {\n const key = getChildKey(child, index);\n return [key, child];\n })\n : [];\n return (\n <div className=\"nz-widget-tabs\" ref={ref} role=\"tablist\">\n {tabChildren.map(([key, child], index, array) => {\n return (\n <WidgetTabsEntryProvider\n children={child} // eslint-disable-line react/no-children-prop\n key={key}\n id={key}\n lastNotOverflown={\n index === array.length - 1 && panelChildren.length > 0\n }\n getOnResize={handleEntryResize}\n />\n );\n })}\n <TitleBarTarget />\n <WidgetOverflow\n hidden={overflown && panelChildren.length === 0}\n onResize={handleOverflowResize}\n >\n {panelChildren.map(([key, child]) => {\n return <React.Fragment key={key}>{child}</React.Fragment>;\n })}\n </WidgetOverflow>\n </div>\n );\n}\n\ninterface WidgetTabsEntryContextArgs {\n readonly lastNotOverflown: boolean;\n readonly onResize?: (w: number) => void;\n}\n\n/** @internal */\nexport const WidgetTabsEntryContext = React.createContext<\n WidgetTabsEntryContextArgs | undefined\n>(undefined);\nWidgetTabsEntryContext.displayName = \"nz:WidgetTabsEntryContext\";\n\n/** @internal */\nexport interface WidgetTabsEntryContextProviderProps {\n children?: React.ReactNode;\n id: string;\n getOnResize: (id: string) => (w: number) => void;\n lastNotOverflown: boolean;\n}\n\n/** @internal */\nexport function WidgetTabsEntryProvider(\n props: WidgetTabsEntryContextProviderProps\n) {\n return (\n <WidgetTabsEntryContext.Provider\n value={{\n lastNotOverflown: props.lastNotOverflown,\n onResize: props.getOnResize(props.id),\n }}\n >\n {props.children}\n </WidgetTabsEntryContext.Provider>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Tabs.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/widget/Tabs.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport \"./Tabs.scss\";\nimport * as React from \"react\";\nimport { assert } from \"@itwin/core-bentley\";\nimport { useResizeObserver } from \"@itwin/core-react/internal\";\nimport { ShowWidgetIconContext } from \"../base/NineZone.js\";\nimport { getChildKey, useOverflow } from \"../tool-settings/Docked.js\";\nimport {\n isHorizontalPanelSide,\n PanelSideContext,\n} from \"../widget-panels/Panel.js\";\nimport { WidgetOverflow } from \"./Overflow.js\";\nimport { WidgetTabProvider } from \"./Tab.js\";\nimport { TitleBarTarget } from \"../target/TitleBarTarget.js\";\nimport { useLayout } from \"../base/LayoutStore.js\";\nimport { WidgetIdContext } from \"./Widget.js\";\nimport { getWidgetState } from \"../state/internal/WidgetStateHelpers.js\";\n\n/** @internal */\nexport function WidgetTabs() {\n const side = React.useContext(PanelSideContext);\n const widgetId = React.useContext(WidgetIdContext);\n const showWidgetIcon = React.useContext(ShowWidgetIconContext);\n assert(!!widgetId);\n const tabIds = useLayout((state) => getWidgetState(state, widgetId).tabs);\n const activeTabId = useLayout(\n (state) => getWidgetState(state, widgetId).activeTabId\n );\n const minimized = useLayout(\n (state) => getWidgetState(state, widgetId).minimized\n );\n const [showOnlyTabIcon, setShowOnlyTabIcon] = React.useState(false);\n\n const activeTabIndex = tabIds.findIndex((id) => id === activeTabId);\n const children = React.useMemo<React.ReactNode>(() => {\n return tabIds.map((id, index, array) => {\n const firstInactive = activeTabIndex + 1 === index;\n return (\n <WidgetTabProvider\n key={id}\n id={id}\n first={index === 0}\n firstInactive={firstInactive}\n last={index === array.length - 1}\n showOnlyTabIcon={showOnlyTabIcon && showWidgetIcon}\n />\n );\n });\n }, [tabIds, activeTabIndex, showOnlyTabIcon, showWidgetIcon]);\n const childrenKeys = React.Children.toArray(children).map((child, index) =>\n getChildKey(child, index)\n );\n const [overflown, handleResize, handleOverflowResize, handleEntryResize] =\n useOverflow(childrenKeys, activeTabIndex);\n const horizontal = side && isHorizontalPanelSide(side);\n const handleContainerResize = React.useCallback(\n (w: number) => {\n if (showWidgetIcon) setShowOnlyTabIcon(tabIds.length * 158 > w); // 158px per text tab\n handleResize && handleResize(w);\n },\n [handleResize, showWidgetIcon, tabIds]\n );\n\n const ref = useResizeObserver(handleContainerResize);\n const childrenArray = React.useMemo(\n () => React.Children.toArray(children),\n [children]\n );\n const tabChildren = childrenArray.reduce<Array<[string, React.ReactNode]>>(\n (acc, child, index) => {\n const key = getChildKey(child, index);\n if (!overflown) {\n acc.push([key, child]);\n return acc;\n }\n if (horizontal && minimized) return acc;\n overflown.indexOf(key) < 0 && acc.push([key, child]);\n return acc;\n },\n []\n );\n const panelChildren =\n tabChildren.length !== childrenArray.length\n ? childrenArray.map<[string, React.ReactNode]>((child, index) => {\n const key = getChildKey(child, index);\n return [key, child];\n })\n : [];\n const overflowItems = panelChildren.map(([key, child]) => {\n return <React.Fragment key={key}>{child}</React.Fragment>;\n });\n return (\n <div className=\"nz-widget-tabs\" ref={ref} role=\"tablist\">\n {tabChildren.map(([key, child], index, array) => {\n return (\n <WidgetTabsEntryProvider\n children={child} // eslint-disable-line react/no-children-prop\n key={key}\n id={key}\n lastNotOverflown={\n index === array.length - 1 && panelChildren.length > 0\n }\n getOnResize={handleEntryResize}\n />\n );\n })}\n <TitleBarTarget />\n <WidgetOverflow\n hidden={overflown && panelChildren.length === 0}\n onResize={handleOverflowResize}\n items={overflowItems}\n />\n </div>\n );\n}\n\ninterface WidgetTabsEntryContextArgs {\n readonly lastNotOverflown: boolean;\n readonly onResize?: (w: number) => void;\n}\n\n/** @internal */\nexport const WidgetTabsEntryContext = React.createContext<\n WidgetTabsEntryContextArgs | undefined\n>(undefined);\nWidgetTabsEntryContext.displayName = \"nz:WidgetTabsEntryContext\";\n\n/** @internal */\nexport interface WidgetTabsEntryContextProviderProps {\n children?: React.ReactNode;\n id: string;\n getOnResize: (id: string) => (w: number) => void;\n lastNotOverflown: boolean;\n}\n\n/** @internal */\nexport function WidgetTabsEntryProvider(\n props: WidgetTabsEntryContextProviderProps\n) {\n return (\n <WidgetTabsEntryContext.Provider\n value={{\n lastNotOverflown: props.lastNotOverflown,\n onResize: props.getOnResize(props.id),\n }}\n >\n {props.children}\n </WidgetTabsEntryContext.Provider>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.d.ts","sourceRoot":"","sources":["../../../src/appui-react/widget-panels/Tab.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,gBAAgB;AAChB,wBAAgB,eAAe,
|
|
1
|
+
{"version":3,"file":"Tab.d.ts","sourceRoot":"","sources":["../../../src/appui-react/widget-panels/Tab.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,gBAAgB;AAChB,wBAAgB,eAAe,sBAwB9B"}
|
|
@@ -19,10 +19,11 @@ export function WidgetPanelsTab() {
|
|
|
19
19
|
(iconSpec ? (
|
|
20
20
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
21
21
|
React.createElement(Icon, { iconSpec: iconSpec })) : undefined);
|
|
22
|
+
const iconElement = icon ? (React.isValidElement(icon) ? (icon) : (React.createElement(React.Fragment, null, icon))) : undefined;
|
|
22
23
|
return (React.createElement(WidgetTab
|
|
23
24
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
24
25
|
, {
|
|
25
26
|
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
26
|
-
badge: React.createElement(Badge, { type: widgetDef?.badgeKind || widgetDef?.badgeType }), icon:
|
|
27
|
+
badge: React.createElement(Badge, { type: widgetDef?.badgeKind || widgetDef?.badgeType }), icon: iconElement }));
|
|
27
28
|
}
|
|
28
29
|
//# sourceMappingURL=Tab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../src/appui-react/widget-panels/Tab.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,gBAAgB;AAChB,MAAM,UAAU,eAAe;IAC7B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC;IAChD,MAAM,IAAI,GACR,SAAS,EAAE,aAAa,EAAE,QAAQ;QAClC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACV,4DAA4D;QAC5D,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAC7B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjB,OAAO,CACL,oBAAC,SAAS;IACR,4DAA4D;;QAA5D,4DAA4D;QAC5D,KAAK,EAAE,oBAAC,KAAK,IAAC,IAAI,EAAE,SAAS,EAAE,SAAS,IAAI,SAAS,EAAE,SAAS,GAAI,EACpE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../src/appui-react/widget-panels/Tab.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,gBAAgB;AAChB,MAAM,UAAU,eAAe;IAC7B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,4DAA4D;IAC5D,MAAM,QAAQ,GAAG,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC;IAChD,MAAM,IAAI,GACR,SAAS,EAAE,aAAa,EAAE,QAAQ;QAClC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACV,4DAA4D;QAC5D,oBAAC,IAAI,IAAC,QAAQ,EAAE,QAAQ,GAAI,CAC7B,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACjB,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAC,CACzB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAC3B,IAAI,CACL,CAAC,CAAC,CAAC,CACF,0CAAG,IAAI,CAAI,CACZ,CACF,CAAC,CAAC,CAAC,SAAS,CAAC;IACd,OAAO,CACL,oBAAC,SAAS;IACR,4DAA4D;;QAA5D,4DAA4D;QAC5D,KAAK,EAAE,oBAAC,KAAK,IAAC,IAAI,EAAE,SAAS,EAAE,SAAS,IAAI,SAAS,EAAE,SAAS,GAAI,EACpE,IAAI,EAAE,WAAW,GACjB,CACH,CAAC;AACJ,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Widget\n */\n\nimport { Icon } from \"@itwin/core-react\";\nimport { Badge } from \"@itwin/core-react/internal\";\nimport * as React from \"react\";\nimport { WidgetTab } from \"../layout/widget/Tab.js\";\nimport { useWidgetDef } from \"./Content.js\";\n\n/** @internal */\nexport function WidgetPanelsTab() {\n const widgetDef = useWidgetDef();\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n const iconSpec = widgetDef?.initialConfig?.icon;\n const icon =\n widgetDef?.initialConfig?.iconNode ??\n (iconSpec ? (\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n <Icon iconSpec={iconSpec} />\n ) : undefined);\n const iconElement = icon ? (\n React.isValidElement(icon) ? (\n icon\n ) : (\n <>{icon}</>\n )\n ) : undefined;\n return (\n <WidgetTab\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n badge={<Badge type={widgetDef?.badgeKind || widgetDef?.badgeType} />}\n icon={iconElement}\n />\n );\n}\n"]}
|
|
@@ -3,57 +3,10 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
|
|
6
|
-
.
|
|
7
|
-
|
|
8
|
-
line-height: 2em;
|
|
9
|
-
height: 2em;
|
|
10
|
-
cursor: pointer;
|
|
11
|
-
user-select: none;
|
|
12
|
-
-webkit-user-select: none;
|
|
13
|
-
padding-right: 3em;
|
|
14
|
-
padding-left: 0.5em;
|
|
15
|
-
|
|
16
|
-
&.nz-no-icon {
|
|
17
|
-
padding-left: 1.25em;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
> .nz-icon {
|
|
21
|
-
width: 2em;
|
|
22
|
-
display: flex;
|
|
23
|
-
align-items: center;
|
|
24
|
-
justify-content: center;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
> .nz-badge {
|
|
6
|
+
@layer appui.component {
|
|
7
|
+
.nz-widget-menuTab_badge {
|
|
28
8
|
position: absolute;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
> span {
|
|
33
|
-
max-width: 15em;
|
|
34
|
-
overflow: hidden;
|
|
35
|
-
text-overflow: ellipsis;
|
|
36
|
-
white-space: nowrap;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
> .nz-checkmark {
|
|
40
|
-
position: absolute;
|
|
41
|
-
right: 0.75em;
|
|
42
|
-
border-style: solid;
|
|
43
|
-
border-color: var(--iui-color-border-accent);
|
|
44
|
-
border-width: 0 0.15em 0.15em 0;
|
|
45
|
-
width: 0.5em;
|
|
46
|
-
height: 1em;
|
|
47
|
-
transform: rotate(45deg);
|
|
48
|
-
|
|
49
|
-
&.nz-hidden {
|
|
50
|
-
display: none;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@media (hover: hover) {
|
|
55
|
-
&:hover {
|
|
56
|
-
color: var(--iui-color-text-accent);
|
|
57
|
-
}
|
|
9
|
+
top: 0;
|
|
10
|
+
left: 0;
|
|
58
11
|
}
|
|
59
12
|
}
|
|
@@ -3,57 +3,10 @@
|
|
|
3
3
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
4
|
*--------------------------------------------------------------------------------------------*/
|
|
5
5
|
|
|
6
|
-
.
|
|
7
|
-
|
|
8
|
-
line-height: 2em;
|
|
9
|
-
height: 2em;
|
|
10
|
-
cursor: pointer;
|
|
11
|
-
user-select: none;
|
|
12
|
-
-webkit-user-select: none;
|
|
13
|
-
padding-right: 3em;
|
|
14
|
-
padding-left: 0.5em;
|
|
15
|
-
|
|
16
|
-
&.nz-no-icon {
|
|
17
|
-
padding-left: 1.25em;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
> .nz-icon {
|
|
21
|
-
width: 2em;
|
|
22
|
-
display: flex;
|
|
23
|
-
align-items: center;
|
|
24
|
-
justify-content: center;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
> .nz-badge {
|
|
6
|
+
@layer appui.component {
|
|
7
|
+
.nz-widget-menuTab_badge {
|
|
28
8
|
position: absolute;
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
> span {
|
|
33
|
-
max-width: 15em;
|
|
34
|
-
overflow: hidden;
|
|
35
|
-
text-overflow: ellipsis;
|
|
36
|
-
white-space: nowrap;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
> .nz-checkmark {
|
|
40
|
-
position: absolute;
|
|
41
|
-
right: 0.75em;
|
|
42
|
-
border-style: solid;
|
|
43
|
-
border-color: var(--iui-color-border-accent);
|
|
44
|
-
border-width: 0 0.15em 0.15em 0;
|
|
45
|
-
width: 0.5em;
|
|
46
|
-
height: 1em;
|
|
47
|
-
transform: rotate(45deg);
|
|
48
|
-
|
|
49
|
-
&.nz-hidden {
|
|
50
|
-
display: none;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
@media (hover: hover) {
|
|
55
|
-
&:hover {
|
|
56
|
-
color: var(--iui-color-text-accent);
|
|
57
|
-
}
|
|
9
|
+
top: 0;
|
|
10
|
+
left: 0;
|
|
58
11
|
}
|
|
59
12
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/appui-react",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.21.1",
|
|
4
4
|
"description": "A react component library for AppUI framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./lib/appui-react.d.ts",
|
|
@@ -45,9 +45,9 @@
|
|
|
45
45
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
46
46
|
"react-redux": "^7.2.2 || ^8.0.0 || ^9.0.0",
|
|
47
47
|
"redux": "^4.1.0 || ^5.0.0",
|
|
48
|
-
"@itwin/components-react": "5.
|
|
49
|
-
"@itwin/core-react": "5.
|
|
50
|
-
"@itwin/imodel-components-react": "5.
|
|
48
|
+
"@itwin/components-react": "5.21.1",
|
|
49
|
+
"@itwin/core-react": "5.21.1",
|
|
50
|
+
"@itwin/imodel-components-react": "5.21.1"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@itwin/appui-abstract": "^5.1.0",
|
|
@@ -66,8 +66,8 @@
|
|
|
66
66
|
"@testing-library/react": "^16.3.0",
|
|
67
67
|
"@testing-library/user-event": "^14.6.1",
|
|
68
68
|
"@types/lodash": "^4.14.0",
|
|
69
|
-
"@types/react": "^19.2.
|
|
70
|
-
"@types/react-dom": "^19.2.
|
|
69
|
+
"@types/react": "^19.2.7",
|
|
70
|
+
"@types/react-dom": "^19.2.3",
|
|
71
71
|
"@types/react-transition-group": "^4.4.4",
|
|
72
72
|
"@vitest/coverage-v8": "^3.0.6",
|
|
73
73
|
"cpx2": "^3.0.0",
|
|
@@ -79,8 +79,8 @@
|
|
|
79
79
|
"jsdom": "^24.0.0",
|
|
80
80
|
"npm-run-all": "^4.1.5",
|
|
81
81
|
"raf": "^3.4.0",
|
|
82
|
-
"react": "^19.2.
|
|
83
|
-
"react-dom": "^19.2.
|
|
82
|
+
"react": "^19.2.1",
|
|
83
|
+
"react-dom": "^19.2.1",
|
|
84
84
|
"react-redux": "^9.1.2",
|
|
85
85
|
"redux": "^5.0.1",
|
|
86
86
|
"reflect-metadata": "^0.1.13",
|
|
@@ -90,9 +90,9 @@
|
|
|
90
90
|
"typescript": "~5.6.2",
|
|
91
91
|
"upath": "^2.0.1",
|
|
92
92
|
"vitest": "^3.2.4",
|
|
93
|
-
"@itwin/components-react": "5.
|
|
94
|
-
"@itwin/core-react": "5.
|
|
95
|
-
"@itwin/imodel-components-react": "5.
|
|
93
|
+
"@itwin/components-react": "5.21.1",
|
|
94
|
+
"@itwin/core-react": "5.21.1",
|
|
95
|
+
"@itwin/imodel-components-react": "5.21.1"
|
|
96
96
|
},
|
|
97
97
|
"dependencies": {
|
|
98
98
|
"@itwin/itwinui-icons-react": "^2.8.0",
|