@itwin/appui-react 5.30.1 → 5.32.0
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 +32 -0
- package/lib/appui-react/UiFramework.d.ts.map +1 -1
- package/lib/appui-react/UiFramework.js +2 -0
- package/lib/appui-react/UiFramework.js.map +1 -1
- package/lib/appui-react/UiFramework.json +4 -1
- package/lib/appui-react/backstage/Backstage.d.ts +33 -0
- package/lib/appui-react/backstage/Backstage.d.ts.map +1 -0
- package/lib/appui-react/backstage/Backstage.js +88 -0
- package/lib/appui-react/backstage/Backstage.js.map +1 -0
- package/lib/appui-react/backstage/Backstage.scss +42 -0
- package/lib/appui-react/backstage/BackstageComposer.d.ts +2 -2
- package/lib/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
- package/lib/appui-react/backstage/BackstageComposer.js +25 -19
- package/lib/appui-react/backstage/BackstageComposer.js.map +1 -1
- package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts +12 -0
- package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
- package/lib/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
- package/lib/appui-react/frontstage/ModalFrontstage.d.ts +27 -15
- package/lib/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
- package/lib/appui-react/frontstage/ModalFrontstage.js +16 -20
- package/lib/appui-react/frontstage/ModalFrontstage.js.map +1 -1
- package/lib/appui-react/frontstage/ModalFrontstage.scss +11 -17
- package/lib/appui-react/hooks/useActiveModalFrontstage.d.ts +8 -0
- package/lib/appui-react/hooks/useActiveModalFrontstage.d.ts.map +1 -0
- package/lib/appui-react/hooks/useActiveModalFrontstage.js +23 -0
- package/lib/appui-react/hooks/useActiveModalFrontstage.js.map +1 -0
- package/lib/appui-react/layout/StandardLayout.d.ts +1 -2
- package/lib/appui-react/layout/StandardLayout.d.ts.map +1 -1
- package/lib/appui-react/layout/StandardLayout.js +9 -9
- package/lib/appui-react/layout/StandardLayout.js.map +1 -1
- package/lib/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
- package/lib/appui-react/widget-panels/Frontstage.js +9 -4
- package/lib/appui-react/widget-panels/Frontstage.js.map +1 -1
- package/lib/appui-react/widget-panels/ModalFrontstageComposer.d.ts +1 -6
- package/lib/appui-react/widget-panels/ModalFrontstageComposer.d.ts.map +1 -1
- package/lib/appui-react/widget-panels/ModalFrontstageComposer.js +7 -16
- package/lib/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
- package/lib/cjs/appui-react/backstage/Backstage.scss +42 -0
- package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +11 -17
- package/lib/esm/appui-react/backstage/Backstage.scss +42 -0
- package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +11 -17
- package/lib/public/locales/en/UiFramework.json +4 -1
- package/package.json +7 -7
- package/lib/appui-react/backstage/BackstageComposerItem.d.ts +0 -29
- package/lib/appui-react/backstage/BackstageComposerItem.d.ts.map +0 -1
- package/lib/appui-react/backstage/BackstageComposerItem.js +0 -66
- package/lib/appui-react/backstage/BackstageComposerItem.js.map +0 -1
- package/lib/appui-react/layout/backstage/Backstage.d.ts +0 -42
- package/lib/appui-react/layout/backstage/Backstage.d.ts.map +0 -1
- package/lib/appui-react/layout/backstage/Backstage.js +0 -46
- package/lib/appui-react/layout/backstage/Backstage.js.map +0 -1
- package/lib/appui-react/layout/backstage/Backstage.scss +0 -90
- package/lib/appui-react/layout/backstage/Item.d.ts +0 -38
- package/lib/appui-react/layout/backstage/Item.d.ts.map +0 -1
- package/lib/appui-react/layout/backstage/Item.js +0 -29
- package/lib/appui-react/layout/backstage/Item.js.map +0 -1
- package/lib/appui-react/layout/backstage/Item.scss +0 -107
- package/lib/appui-react/layout/backstage/Separator.d.ts +0 -13
- package/lib/appui-react/layout/backstage/Separator.d.ts.map +0 -1
- package/lib/appui-react/layout/backstage/Separator.js +0 -21
- package/lib/appui-react/layout/backstage/Separator.js.map +0 -1
- package/lib/appui-react/layout/backstage/Separator.scss +0 -10
- package/lib/cjs/appui-react/layout/backstage/Backstage.scss +0 -90
- package/lib/cjs/appui-react/layout/backstage/Item.scss +0 -107
- package/lib/cjs/appui-react/layout/backstage/Separator.scss +0 -10
- package/lib/esm/appui-react/layout/backstage/Backstage.scss +0 -90
- package/lib/esm/appui-react/layout/backstage/Item.scss +0 -107
- package/lib/esm/appui-react/layout/backstage/Separator.scss +0 -10
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
@use "~@itwin/core-react/lib/core-react/z-index" as zIndex;
|
|
6
|
+
|
|
7
|
+
.uifw-backstage-backstage_wrapper {
|
|
8
|
+
@include zIndex.uicore-z-index(backstage);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.uifw-backstage-backstage {
|
|
12
|
+
inset-block-end: 0;
|
|
13
|
+
border-radius: 0;
|
|
14
|
+
margin-block-start: 0;
|
|
15
|
+
margin-inline-start: 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.uifw-backstage-backstage_backdrop {
|
|
19
|
+
&:where(.uifw-transparent) {
|
|
20
|
+
background-color: transparent;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.uifw-backstage-backstage_content {
|
|
25
|
+
padding-inline: var(--iui-size-xs);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.uifw-backstage-backstage_divider {
|
|
29
|
+
$margin-block: var(--iui-size-2xs);
|
|
30
|
+
$margin-inline: calc(-1 * var(--iui-size-xs));
|
|
31
|
+
|
|
32
|
+
margin-block-start: $margin-block;
|
|
33
|
+
margin-block-end: $margin-block;
|
|
34
|
+
margin-inline-start: $margin-inline;
|
|
35
|
+
margin-inline-end: $margin-inline;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.uifw-backstage-backstage_badge {
|
|
39
|
+
position: absolute;
|
|
40
|
+
inset-block-start: 0;
|
|
41
|
+
inset-inline-start: 0;
|
|
42
|
+
}
|
|
@@ -13,15 +13,21 @@
|
|
|
13
13
|
pointer-events: none;
|
|
14
14
|
visibility: hidden;
|
|
15
15
|
overflow: hidden;
|
|
16
|
-
background:
|
|
16
|
+
background: color-mix(
|
|
17
|
+
in srgb,
|
|
18
|
+
var(--iui-color-background-backdrop),
|
|
19
|
+
transparent 5%
|
|
20
|
+
);
|
|
17
21
|
transition: background 0.25s ease, visibility 0s ease 0.275s;
|
|
18
22
|
|
|
19
|
-
display: flex;
|
|
20
|
-
flex-direction: column;
|
|
21
|
-
align-items: stretch;
|
|
22
|
-
|
|
23
23
|
@include uicore-z-index(modal-frontstage);
|
|
24
24
|
|
|
25
|
+
&:not(.uifw-no-header) {
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
align-items: stretch;
|
|
29
|
+
}
|
|
30
|
+
|
|
25
31
|
.uifw-modal-app-bar {
|
|
26
32
|
transition: transform 0.125s;
|
|
27
33
|
padding: 10px;
|
|
@@ -62,15 +68,3 @@
|
|
|
62
68
|
}
|
|
63
69
|
}
|
|
64
70
|
}
|
|
65
|
-
|
|
66
|
-
.uifw-modal-frontstage-overlay {
|
|
67
|
-
position: absolute;
|
|
68
|
-
left: 0px;
|
|
69
|
-
width: 100%;
|
|
70
|
-
top: 0px;
|
|
71
|
-
height: 100%;
|
|
72
|
-
opacity: 0.95;
|
|
73
|
-
background: var(--iui-color-background-backdrop);
|
|
74
|
-
|
|
75
|
-
@include uicore-z-index(modal-frontstage-overlay);
|
|
76
|
-
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*---------------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
+
*--------------------------------------------------------------------------------------------*/
|
|
5
|
+
@use "~@itwin/core-react/lib/core-react/z-index" as zIndex;
|
|
6
|
+
|
|
7
|
+
.uifw-backstage-backstage_wrapper {
|
|
8
|
+
@include zIndex.uicore-z-index(backstage);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.uifw-backstage-backstage {
|
|
12
|
+
inset-block-end: 0;
|
|
13
|
+
border-radius: 0;
|
|
14
|
+
margin-block-start: 0;
|
|
15
|
+
margin-inline-start: 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.uifw-backstage-backstage_backdrop {
|
|
19
|
+
&:where(.uifw-transparent) {
|
|
20
|
+
background-color: transparent;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.uifw-backstage-backstage_content {
|
|
25
|
+
padding-inline: var(--iui-size-xs);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.uifw-backstage-backstage_divider {
|
|
29
|
+
$margin-block: var(--iui-size-2xs);
|
|
30
|
+
$margin-inline: calc(-1 * var(--iui-size-xs));
|
|
31
|
+
|
|
32
|
+
margin-block-start: $margin-block;
|
|
33
|
+
margin-block-end: $margin-block;
|
|
34
|
+
margin-inline-start: $margin-inline;
|
|
35
|
+
margin-inline-end: $margin-inline;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.uifw-backstage-backstage_badge {
|
|
39
|
+
position: absolute;
|
|
40
|
+
inset-block-start: 0;
|
|
41
|
+
inset-inline-start: 0;
|
|
42
|
+
}
|
|
@@ -13,15 +13,21 @@
|
|
|
13
13
|
pointer-events: none;
|
|
14
14
|
visibility: hidden;
|
|
15
15
|
overflow: hidden;
|
|
16
|
-
background:
|
|
16
|
+
background: color-mix(
|
|
17
|
+
in srgb,
|
|
18
|
+
var(--iui-color-background-backdrop),
|
|
19
|
+
transparent 5%
|
|
20
|
+
);
|
|
17
21
|
transition: background 0.25s ease, visibility 0s ease 0.275s;
|
|
18
22
|
|
|
19
|
-
display: flex;
|
|
20
|
-
flex-direction: column;
|
|
21
|
-
align-items: stretch;
|
|
22
|
-
|
|
23
23
|
@include uicore-z-index(modal-frontstage);
|
|
24
24
|
|
|
25
|
+
&:not(.uifw-no-header) {
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
align-items: stretch;
|
|
29
|
+
}
|
|
30
|
+
|
|
25
31
|
.uifw-modal-app-bar {
|
|
26
32
|
transition: transform 0.125s;
|
|
27
33
|
padding: 10px;
|
|
@@ -62,15 +68,3 @@
|
|
|
62
68
|
}
|
|
63
69
|
}
|
|
64
70
|
}
|
|
65
|
-
|
|
66
|
-
.uifw-modal-frontstage-overlay {
|
|
67
|
-
position: absolute;
|
|
68
|
-
left: 0px;
|
|
69
|
-
width: 100%;
|
|
70
|
-
top: 0px;
|
|
71
|
-
height: 100%;
|
|
72
|
-
opacity: 0.95;
|
|
73
|
-
background: var(--iui-color-background-backdrop);
|
|
74
|
-
|
|
75
|
-
@include uicore-z-index(modal-frontstage-overlay);
|
|
76
|
-
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
+
"backstage": {
|
|
3
|
+
"label": "Backstage"
|
|
4
|
+
},
|
|
2
5
|
"iModelPanelHeader": {
|
|
3
6
|
"projects": "Projects"
|
|
4
7
|
},
|
|
@@ -124,7 +127,7 @@
|
|
|
124
127
|
"yes": "Yes",
|
|
125
128
|
"no": "No",
|
|
126
129
|
"clearSelection": "Clear Selection",
|
|
127
|
-
"openBackstageMenu": "Open backstage
|
|
130
|
+
"openBackstageMenu": "Open backstage"
|
|
128
131
|
},
|
|
129
132
|
"navigationAid": {
|
|
130
133
|
"sheetsModalFrontstage": "Sheet Views"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/appui-react",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.32.0",
|
|
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.32.0",
|
|
49
|
+
"@itwin/core-react": "5.32.0",
|
|
50
|
+
"@itwin/imodel-components-react": "5.32.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"@itwin/appui-abstract": "^5.8.1",
|
|
@@ -89,9 +89,9 @@
|
|
|
89
89
|
"typescript": "~5.6.3",
|
|
90
90
|
"upath": "^2.0.1",
|
|
91
91
|
"vitest": "^3.2.4",
|
|
92
|
-
"@itwin/components-react": "5.
|
|
93
|
-
"@itwin/core-react": "5.
|
|
94
|
-
"@itwin/imodel-components-react": "5.
|
|
92
|
+
"@itwin/components-react": "5.32.0",
|
|
93
|
+
"@itwin/core-react": "5.32.0",
|
|
94
|
+
"@itwin/imodel-components-react": "5.32.0"
|
|
95
95
|
},
|
|
96
96
|
"dependencies": {
|
|
97
97
|
"@itwin/itwinui-icons-react": "^2.11.0",
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Backstage
|
|
3
|
-
*/
|
|
4
|
-
import * as React from "react";
|
|
5
|
-
import type { BackstageActionItem, BackstageItem, BackstageStageLauncher } from "./BackstageItem.js";
|
|
6
|
-
/** @internal */
|
|
7
|
-
export interface BackstageComposerActionItemProps {
|
|
8
|
-
readonly item: BackstageActionItem;
|
|
9
|
-
}
|
|
10
|
-
/** @internal */
|
|
11
|
-
export declare function BackstageComposerActionItem({ item, }: BackstageComposerActionItemProps): React.JSX.Element;
|
|
12
|
-
/** @internal */
|
|
13
|
-
export interface BackstageComposerStageLauncherProps {
|
|
14
|
-
readonly item: BackstageStageLauncher;
|
|
15
|
-
}
|
|
16
|
-
/** @internal */
|
|
17
|
-
export declare function BackstageComposerStageLauncher({ item, }: BackstageComposerStageLauncherProps): React.JSX.Element;
|
|
18
|
-
/** Props of [[BackstageComposerItem]] component.
|
|
19
|
-
* @internal
|
|
20
|
-
*/
|
|
21
|
-
export interface BackstageComposerItemProps {
|
|
22
|
-
/** Backstage item to render */
|
|
23
|
-
readonly item: BackstageItem;
|
|
24
|
-
}
|
|
25
|
-
/** Item of [[BackstageComposer]].
|
|
26
|
-
* @internal
|
|
27
|
-
*/
|
|
28
|
-
export declare function BackstageComposerItem({ item }: BackstageComposerItemProps): React.JSX.Element;
|
|
29
|
-
//# sourceMappingURL=BackstageComposerItem.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackstageComposerItem.d.ts","sourceRoot":"","sources":["../../../src/appui-react/backstage/BackstageComposerItem.tsx"],"names":[],"mappings":"AAIA;;GAEG;AASH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EAEvB,MAAM,oBAAoB,CAAC;AAK5B,gBAAgB;AAChB,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;CACpC;AAED,gBAAgB;AAChB,wBAAgB,2BAA2B,CAAC,EAC1C,IAAI,GACL,EAAE,gCAAgC,qBAwBlC;AAED,gBAAgB;AAChB,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;CACvC;AAED,gBAAgB;AAChB,wBAAgB,8BAA8B,CAAC,EAC7C,IAAI,GACL,EAAE,mCAAmC,qBAiCrC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,IAAI,EAAE,EAAE,0BAA0B,qBAKzE"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
/** @packageDocumentation
|
|
6
|
-
* @module Backstage
|
|
7
|
-
*/
|
|
8
|
-
import { ConditionalBooleanValue, ConditionalStringValue, } from "@itwin/appui-abstract";
|
|
9
|
-
import { Logger } from "@itwin/core-bentley";
|
|
10
|
-
import { Icon as CoreIcon } from "@itwin/core-react";
|
|
11
|
-
import { Badge } from "@itwin/core-react/internal";
|
|
12
|
-
import * as React from "react";
|
|
13
|
-
import { UiFramework } from "../UiFramework.js";
|
|
14
|
-
import { useActiveFrontstageId } from "../frontstage/FrontstageDef.js";
|
|
15
|
-
import { BackstageItem as NZ_BackstageItem } from "../layout/backstage/Item.js";
|
|
16
|
-
import { isProviderItem } from "../ui-items-provider/isProviderItem.js";
|
|
17
|
-
import { isBackstageStageLauncher } from "./BackstageItem.js";
|
|
18
|
-
import { useBackstageManager } from "./BackstageManager.js";
|
|
19
|
-
import { Icon } from "@itwin/itwinui-react";
|
|
20
|
-
/** @internal */
|
|
21
|
-
export function BackstageComposerActionItem({ item, }) {
|
|
22
|
-
const manager = useBackstageManager();
|
|
23
|
-
const handleClick = React.useCallback(() => {
|
|
24
|
-
manager.close();
|
|
25
|
-
item.execute();
|
|
26
|
-
}, [manager, item]);
|
|
27
|
-
return (React.createElement(NZ_BackstageItem, { itemId: item.id, providerId: isProviderItem(item) ? item.providerId : undefined, itemPriority: item.itemPriority, groupPriority: item.groupPriority,
|
|
28
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
29
|
-
icon: React.createElement(ItemIcon, { iconNode: item.iconNode, icon: item.icon }), isActive: ConditionalBooleanValue.getValue(item.isActive), isDisabled: ConditionalBooleanValue.getValue(item.isDisabled), onClick: handleClick, subtitle: ConditionalStringValue.getValue(item.subtitle),
|
|
30
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
31
|
-
badge: React.createElement(Badge, { type: item.badgeKind || item.badge }) }, ConditionalStringValue.getValue(item.label)));
|
|
32
|
-
}
|
|
33
|
-
/** @internal */
|
|
34
|
-
export function BackstageComposerStageLauncher({ item, }) {
|
|
35
|
-
const manager = useBackstageManager();
|
|
36
|
-
const handleClick = React.useCallback(() => {
|
|
37
|
-
manager.close();
|
|
38
|
-
if (!UiFramework.frontstages.hasFrontstage(item.stageId))
|
|
39
|
-
return Logger.logError("BackstageComposerStageLauncher", `Frontstage with id '${item.stageId}' not found`);
|
|
40
|
-
void UiFramework.frontstages.setActiveFrontstage(item.stageId);
|
|
41
|
-
}, [manager, item.stageId]);
|
|
42
|
-
const activeFrontstageId = useActiveFrontstageId();
|
|
43
|
-
const isActive = ConditionalBooleanValue.getValue(item.isActive ?? item.stageId === activeFrontstageId);
|
|
44
|
-
return (React.createElement(NZ_BackstageItem, { itemId: item.id, providerId: isProviderItem(item) ? item.providerId : undefined, itemPriority: item.itemPriority, groupPriority: item.groupPriority,
|
|
45
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
46
|
-
icon: React.createElement(ItemIcon, { iconNode: item.iconNode, icon: item.icon }), isActive: isActive, isDisabled: ConditionalBooleanValue.getValue(item.isDisabled), onClick: handleClick, subtitle: ConditionalStringValue.getValue(item.subtitle),
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
48
|
-
badge: React.createElement(Badge, { type: item.badgeKind || item.badge }) }, ConditionalStringValue.getValue(item.label)));
|
|
49
|
-
}
|
|
50
|
-
/** Item of [[BackstageComposer]].
|
|
51
|
-
* @internal
|
|
52
|
-
*/
|
|
53
|
-
export function BackstageComposerItem({ item }) {
|
|
54
|
-
if (isBackstageStageLauncher(item)) {
|
|
55
|
-
return React.createElement(BackstageComposerStageLauncher, { item: item });
|
|
56
|
-
}
|
|
57
|
-
return React.createElement(BackstageComposerActionItem, { item: item });
|
|
58
|
-
}
|
|
59
|
-
function ItemIcon({ icon, iconNode, }) {
|
|
60
|
-
if (iconNode) {
|
|
61
|
-
return React.createElement(Icon, null, iconNode);
|
|
62
|
-
}
|
|
63
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
64
|
-
return React.createElement(CoreIcon, { iconSpec: icon });
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=BackstageComposerItem.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BackstageComposerItem.js","sourceRoot":"","sources":["../../../src/appui-react/backstage/BackstageComposerItem.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 Backstage\n */\n\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { Icon as CoreIcon } from \"@itwin/core-react\";\nimport { Badge } from \"@itwin/core-react/internal\";\nimport * as React from \"react\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { useActiveFrontstageId } from \"../frontstage/FrontstageDef.js\";\nimport { BackstageItem as NZ_BackstageItem } from \"../layout/backstage/Item.js\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem.js\";\nimport type {\n BackstageActionItem,\n BackstageItem,\n BackstageStageLauncher,\n CommonBackstageItem,\n} from \"./BackstageItem.js\";\nimport { isBackstageStageLauncher } from \"./BackstageItem.js\";\nimport { useBackstageManager } from \"./BackstageManager.js\";\nimport { Icon } from \"@itwin/itwinui-react\";\n\n/** @internal */\nexport interface BackstageComposerActionItemProps {\n readonly item: BackstageActionItem;\n}\n\n/** @internal */\nexport function BackstageComposerActionItem({\n item,\n}: BackstageComposerActionItemProps) {\n const manager = useBackstageManager();\n const handleClick = React.useCallback(() => {\n manager.close();\n item.execute();\n }, [manager, item]);\n return (\n <NZ_BackstageItem\n itemId={item.id}\n providerId={isProviderItem(item) ? item.providerId : undefined}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n icon={<ItemIcon iconNode={item.iconNode} icon={item.icon} />}\n isActive={ConditionalBooleanValue.getValue(item.isActive)}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n onClick={handleClick}\n subtitle={ConditionalStringValue.getValue(item.subtitle)}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n badge={<Badge type={item.badgeKind || item.badge} />}\n >\n {ConditionalStringValue.getValue(item.label)}\n </NZ_BackstageItem>\n );\n}\n\n/** @internal */\nexport interface BackstageComposerStageLauncherProps {\n readonly item: BackstageStageLauncher;\n}\n\n/** @internal */\nexport function BackstageComposerStageLauncher({\n item,\n}: BackstageComposerStageLauncherProps) {\n const manager = useBackstageManager();\n const handleClick = React.useCallback(() => {\n manager.close();\n if (!UiFramework.frontstages.hasFrontstage(item.stageId))\n return Logger.logError(\n \"BackstageComposerStageLauncher\",\n `Frontstage with id '${item.stageId}' not found`\n );\n void UiFramework.frontstages.setActiveFrontstage(item.stageId);\n }, [manager, item.stageId]);\n const activeFrontstageId = useActiveFrontstageId();\n const isActive = ConditionalBooleanValue.getValue(\n item.isActive ?? item.stageId === activeFrontstageId\n );\n return (\n <NZ_BackstageItem\n itemId={item.id}\n providerId={isProviderItem(item) ? item.providerId : undefined}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n icon={<ItemIcon iconNode={item.iconNode} icon={item.icon} />}\n isActive={isActive}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n onClick={handleClick}\n subtitle={ConditionalStringValue.getValue(item.subtitle)}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n badge={<Badge type={item.badgeKind || item.badge} />}\n >\n {ConditionalStringValue.getValue(item.label)}\n </NZ_BackstageItem>\n );\n}\n\n/** Props of [[BackstageComposerItem]] component.\n * @internal\n */\nexport interface BackstageComposerItemProps {\n /** Backstage item to render */\n readonly item: BackstageItem;\n}\n\n/** Item of [[BackstageComposer]].\n * @internal\n */\nexport function BackstageComposerItem({ item }: BackstageComposerItemProps) {\n if (isBackstageStageLauncher(item)) {\n return <BackstageComposerStageLauncher item={item} />;\n }\n return <BackstageComposerActionItem item={item} />;\n}\n\nfunction ItemIcon({\n icon,\n iconNode,\n}: {\n icon: CommonBackstageItem[\"icon\"];\n iconNode: CommonBackstageItem[\"iconNode\"];\n}) {\n if (iconNode) {\n return <Icon>{iconNode}</Icon>;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return <CoreIcon iconSpec={icon} />;\n}\n"]}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Backstage
|
|
3
|
-
*/
|
|
4
|
-
import type { CommonProps } from "@itwin/core-react";
|
|
5
|
-
import * as React from "react";
|
|
6
|
-
import type { SafeAreaInsets } from "../../safearea/SafeAreaInsets.js";
|
|
7
|
-
import "./Backstage.scss";
|
|
8
|
-
/** Properties of [[Backstage]] component.
|
|
9
|
-
* @internal
|
|
10
|
-
*/
|
|
11
|
-
export interface BackstageProps extends CommonProps {
|
|
12
|
-
/** Backstage items and separators. I.e. [[BackstageItem]], [[BackstageSeparator]] */
|
|
13
|
-
children?: React.ReactNode;
|
|
14
|
-
/** Optional footer content. */
|
|
15
|
-
footer?: React.ReactNode;
|
|
16
|
-
/** Optional header content. I.e. [[UserProfile]] */
|
|
17
|
-
header?: React.ReactNode;
|
|
18
|
-
/** Describes if the backstage is open. */
|
|
19
|
-
isOpen?: boolean;
|
|
20
|
-
/** Function called when backstage is closed. */
|
|
21
|
-
onClose?: () => void;
|
|
22
|
-
/** Describes respected safe area insets. */
|
|
23
|
-
safeAreaInsets?: SafeAreaInsets;
|
|
24
|
-
/** Describes if a ghosting overlay is shown. */
|
|
25
|
-
showOverlay: boolean;
|
|
26
|
-
}
|
|
27
|
-
/** Default properties of [[Backstage]] component.
|
|
28
|
-
* @internal
|
|
29
|
-
*/
|
|
30
|
-
export type BackstageDefaultProps = Pick<BackstageProps, "showOverlay">;
|
|
31
|
-
/** Backstage component of 9-Zone UI app.
|
|
32
|
-
* @internal
|
|
33
|
-
*/
|
|
34
|
-
export declare class Backstage extends React.PureComponent<BackstageProps> {
|
|
35
|
-
static readonly defaultProps: BackstageDefaultProps;
|
|
36
|
-
componentDidMount(): void;
|
|
37
|
-
componentWillUnmount(): void;
|
|
38
|
-
render(): React.JSX.Element;
|
|
39
|
-
private _onClose;
|
|
40
|
-
private _onEsc;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=Backstage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Backstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/layout/backstage/Backstage.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,kBAAkB,CAAC;AAE1B;;GAEG;AAEH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,qFAAqF;IACrF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,+BAA+B;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,oDAAoD;IACpD,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gDAAgD;IAChD,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AAExE;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC;IAChE,gBAAuB,YAAY,EAAE,qBAAqB,CAExD;IAEc,iBAAiB,IAAI,IAAI;IAIzB,oBAAoB;IAIpB,MAAM;IAiCtB,OAAO,CAAC,QAAQ,CAEd;IAEF,OAAO,CAAC,MAAM,CAIZ;CACH"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
/** @packageDocumentation
|
|
6
|
-
* @module Backstage
|
|
7
|
-
*/
|
|
8
|
-
import classnames from "classnames";
|
|
9
|
-
import * as React from "react";
|
|
10
|
-
import { Key } from "ts-key-enum";
|
|
11
|
-
import { SafeAreaInsetsHelpers } from "../base/SafeAreaInsets.js";
|
|
12
|
-
import "./Backstage.scss";
|
|
13
|
-
/** Backstage component of 9-Zone UI app.
|
|
14
|
-
* @internal
|
|
15
|
-
*/
|
|
16
|
-
export class Backstage extends React.PureComponent {
|
|
17
|
-
static defaultProps = {
|
|
18
|
-
showOverlay: true,
|
|
19
|
-
};
|
|
20
|
-
componentDidMount() {
|
|
21
|
-
document.addEventListener("keydown", this._onEsc, false);
|
|
22
|
-
}
|
|
23
|
-
componentWillUnmount() {
|
|
24
|
-
document.removeEventListener("keydown", this._onEsc, false);
|
|
25
|
-
}
|
|
26
|
-
render() {
|
|
27
|
-
const overlayClassName = classnames("nz-backstage-backstage_overlay", this.props.isOpen && "nz-open", this.props.showOverlay && "nz-overlay");
|
|
28
|
-
const backstageClassName = classnames("nz-backstage-backstage", this.props.isOpen && "nz-open", this.props.safeAreaInsets &&
|
|
29
|
-
SafeAreaInsetsHelpers.getCssClassNames(this.props.safeAreaInsets), this.props.className);
|
|
30
|
-
return (React.createElement(React.Fragment, null,
|
|
31
|
-
React.createElement("div", { className: overlayClassName, onClick: this._onClose, role: "presentation" }),
|
|
32
|
-
React.createElement("div", { className: backstageClassName, style: this.props.style },
|
|
33
|
-
this.props.header && (React.createElement("div", { className: "nz-header" }, this.props.header)),
|
|
34
|
-
React.createElement("ul", { role: "menu" }, this.props.children),
|
|
35
|
-
this.props.footer && (React.createElement("div", { className: "nz-footer" }, this.props.footer)))));
|
|
36
|
-
}
|
|
37
|
-
_onClose = () => {
|
|
38
|
-
this.props.onClose && this.props.onClose();
|
|
39
|
-
};
|
|
40
|
-
_onEsc = (event) => {
|
|
41
|
-
if (this.props.isOpen && event.key === Key.Escape.valueOf()) {
|
|
42
|
-
this._onClose();
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=Backstage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Backstage.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/backstage/Backstage.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAGH,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,kBAAkB,CAAC;AA4B1B;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK,CAAC,aAA6B;IACzD,MAAM,CAAU,YAAY,GAA0B;QAC3D,WAAW,EAAE,IAAI;KAClB,CAAC;IAEc,iBAAiB;QAC/B,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAEe,oBAAoB;QAClC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAEe,MAAM;QACpB,MAAM,gBAAgB,GAAG,UAAU,CACjC,gCAAgC,EAChC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,EAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAY,CACvC,CAAC;QACF,MAAM,kBAAkB,GAAG,UAAU,CACnC,wBAAwB,EACxB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,EAC9B,IAAI,CAAC,KAAK,CAAC,cAAc;YACvB,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EACnE,IAAI,CAAC,KAAK,CAAC,SAAS,CACrB,CAAC;QACF,OAAO,CACL;YACE,6BACE,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,IAAI,EAAC,cAAc,GACnB;YACF,6BAAK,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;gBACxD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CACpB,6BAAK,SAAS,EAAC,WAAW,IAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,CACrD;gBACD,4BAAI,IAAI,EAAC,MAAM,IAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAM;gBACzC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CACpB,6BAAK,SAAS,EAAC,WAAW,IAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,CACrD,CACG,CACL,CACJ,CAAC;IACJ,CAAC;IAEO,QAAQ,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC,CAAC;IAEM,MAAM,GAAG,CAAC,KAAoB,EAAQ,EAAE;QAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,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 Backstage\n */\n\nimport type { CommonProps } from \"@itwin/core-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { SafeAreaInsets } from \"../../safearea/SafeAreaInsets.js\";\nimport { SafeAreaInsetsHelpers } from \"../base/SafeAreaInsets.js\";\nimport \"./Backstage.scss\";\n\n/** Properties of [[Backstage]] component.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface BackstageProps extends CommonProps {\n /** Backstage items and separators. I.e. [[BackstageItem]], [[BackstageSeparator]] */\n children?: React.ReactNode;\n /** Optional footer content. */\n footer?: React.ReactNode;\n /** Optional header content. I.e. [[UserProfile]] */\n header?: React.ReactNode;\n /** Describes if the backstage is open. */\n isOpen?: boolean;\n /** Function called when backstage is closed. */\n onClose?: () => void;\n /** Describes respected safe area insets. */\n safeAreaInsets?: SafeAreaInsets;\n /** Describes if a ghosting overlay is shown. */\n showOverlay: boolean;\n}\n\n/** Default properties of [[Backstage]] component.\n * @internal\n */\nexport type BackstageDefaultProps = Pick<BackstageProps, \"showOverlay\">;\n\n/** Backstage component of 9-Zone UI app.\n * @internal\n */\nexport class Backstage extends React.PureComponent<BackstageProps> {\n public static readonly defaultProps: BackstageDefaultProps = {\n showOverlay: true,\n };\n\n public override componentDidMount(): void {\n document.addEventListener(\"keydown\", this._onEsc, false);\n }\n\n public override componentWillUnmount() {\n document.removeEventListener(\"keydown\", this._onEsc, false);\n }\n\n public override render() {\n const overlayClassName = classnames(\n \"nz-backstage-backstage_overlay\",\n this.props.isOpen && \"nz-open\",\n this.props.showOverlay && \"nz-overlay\"\n );\n const backstageClassName = classnames(\n \"nz-backstage-backstage\",\n this.props.isOpen && \"nz-open\",\n this.props.safeAreaInsets &&\n SafeAreaInsetsHelpers.getCssClassNames(this.props.safeAreaInsets),\n this.props.className\n );\n return (\n <>\n <div\n className={overlayClassName}\n onClick={this._onClose}\n role=\"presentation\"\n />\n <div className={backstageClassName} style={this.props.style}>\n {this.props.header && (\n <div className=\"nz-header\">{this.props.header}</div>\n )}\n <ul role=\"menu\">{this.props.children}</ul>\n {this.props.footer && (\n <div className=\"nz-footer\">{this.props.footer}</div>\n )}\n </div>\n </>\n );\n }\n\n private _onClose = () => {\n this.props.onClose && this.props.onClose();\n };\n\n private _onEsc = (event: KeyboardEvent): void => {\n if (this.props.isOpen && event.key === Key.Escape.valueOf()) {\n this._onClose();\n }\n };\n}\n"]}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
@use "~@itwin/core-react/lib/core-react/z-index" as *;
|
|
6
|
-
@use "~@itwin/core-react/lib/core-react/style/breakpoints" as *;
|
|
7
|
-
@use "../prefix" as *;
|
|
8
|
-
@use "../safearea" as *;
|
|
9
|
-
@use "../scrollbar" as *;
|
|
10
|
-
@use "variables" as *;
|
|
11
|
-
|
|
12
|
-
.nz-backstage-backstage {
|
|
13
|
-
display: flex;
|
|
14
|
-
flex-direction: column;
|
|
15
|
-
position: absolute;
|
|
16
|
-
left: 0;
|
|
17
|
-
top: 0;
|
|
18
|
-
width: $nz-backstage-width;
|
|
19
|
-
height: 100%;
|
|
20
|
-
font-size: $nz-backstage-item-font-size;
|
|
21
|
-
color: var(--iui-color-text);
|
|
22
|
-
background-color: var(--iui-color-background);
|
|
23
|
-
border-right: 1px solid var(--iui-color-border);
|
|
24
|
-
transform: translateX(-100%);
|
|
25
|
-
box-sizing: border-box;
|
|
26
|
-
|
|
27
|
-
@include uicore-z-index(backstage);
|
|
28
|
-
@include nz-transition(transform 0.25s ease);
|
|
29
|
-
|
|
30
|
-
&.nz-open {
|
|
31
|
-
@include nz-transform(translateX(0%));
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
@include for-tablet-landscape-down {
|
|
35
|
-
font-size: var(--iui-font-size-1);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
@include for-phone-only {
|
|
39
|
-
font-size: var(--iui-font-size-0);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
> ul {
|
|
43
|
-
margin: 0;
|
|
44
|
-
padding: 0;
|
|
45
|
-
list-style: none;
|
|
46
|
-
overflow: auto;
|
|
47
|
-
|
|
48
|
-
@include nz-scrollbar;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
> .nz-header {
|
|
52
|
-
border-bottom: $nz-backstage-header-divider-width solid
|
|
53
|
-
var(--iui-color-border-subtle);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
> .nz-footer {
|
|
57
|
-
margin-top: auto;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
&.nz-safe-area-top {
|
|
61
|
-
@include nz-safe-area-top;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
&.nz-safe-area-bottom {
|
|
65
|
-
@include nz-safe-area-bottom;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.nz-backstage-backstage_overlay {
|
|
70
|
-
position: fixed;
|
|
71
|
-
width: 100%;
|
|
72
|
-
height: 100%;
|
|
73
|
-
top: 0;
|
|
74
|
-
left: 0;
|
|
75
|
-
overflow: hidden;
|
|
76
|
-
opacity: 0;
|
|
77
|
-
visibility: hidden;
|
|
78
|
-
background: transparent;
|
|
79
|
-
@include uicore-z-index(backstage);
|
|
80
|
-
@include nz-transition(0.25s ease);
|
|
81
|
-
|
|
82
|
-
&.nz-open {
|
|
83
|
-
visibility: visible;
|
|
84
|
-
opacity: 1;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
&.nz-overlay {
|
|
88
|
-
background-color: $nz-backstage-overlay-background;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module Backstage
|
|
3
|
-
*/
|
|
4
|
-
import type { CommonProps } from "@itwin/core-react";
|
|
5
|
-
import * as React from "react";
|
|
6
|
-
import type { SafeAreaInsets } from "../../safearea/SafeAreaInsets.js";
|
|
7
|
-
import "./Item.scss";
|
|
8
|
-
/** Properties of [[BackstageItem]] component.
|
|
9
|
-
* @internal
|
|
10
|
-
*/
|
|
11
|
-
export interface BackstageItemProps extends CommonProps {
|
|
12
|
-
/** Backstage item label. */
|
|
13
|
-
children?: string;
|
|
14
|
-
/** Backstage item icon. */
|
|
15
|
-
icon?: React.ReactNode;
|
|
16
|
-
/** Describes if the item is active. */
|
|
17
|
-
isActive?: boolean;
|
|
18
|
-
/** Describes if the item is disabled. */
|
|
19
|
-
isDisabled?: boolean;
|
|
20
|
-
/** Function called when item is clicked. */
|
|
21
|
-
onClick?: () => void;
|
|
22
|
-
/** Describes respected safe area insets. */
|
|
23
|
-
safeAreaInsets?: SafeAreaInsets;
|
|
24
|
-
/** Backstage item subtitle. */
|
|
25
|
-
subtitle?: string;
|
|
26
|
-
/** A badge to draw. */
|
|
27
|
-
badge?: React.ReactNode;
|
|
28
|
-
providerId?: string;
|
|
29
|
-
itemPriority?: number;
|
|
30
|
-
groupPriority?: number;
|
|
31
|
-
}
|
|
32
|
-
/** Item in the [[Backstage]].
|
|
33
|
-
* @internal
|
|
34
|
-
*/
|
|
35
|
-
export declare class BackstageItem extends React.PureComponent<BackstageItemProps> {
|
|
36
|
-
render(): React.JSX.Element;
|
|
37
|
-
}
|
|
38
|
-
//# sourceMappingURL=Item.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/layout/backstage/Item.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,aAAa,CAAC;AAErB;;GAEG;AAEH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC;IACxD,MAAM;CAgCvB"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/*---------------------------------------------------------------------------------------------
|
|
2
|
-
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
3
|
-
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
4
|
-
*--------------------------------------------------------------------------------------------*/
|
|
5
|
-
/** @packageDocumentation
|
|
6
|
-
* @module Backstage
|
|
7
|
-
*/
|
|
8
|
-
import classnames from "classnames";
|
|
9
|
-
import * as React from "react";
|
|
10
|
-
import { SafeAreaInsetsHelpers } from "../base/SafeAreaInsets.js";
|
|
11
|
-
import "./Item.scss";
|
|
12
|
-
/** Item in the [[Backstage]].
|
|
13
|
-
* @internal
|
|
14
|
-
*/
|
|
15
|
-
export class BackstageItem extends React.PureComponent {
|
|
16
|
-
render() {
|
|
17
|
-
const className = classnames("nz-backstage-item", this.props.isActive && "nz-active", this.props.isDisabled && "nz-disabled", this.props.safeAreaInsets &&
|
|
18
|
-
SafeAreaInsetsHelpers.getCssClassNames(this.props.safeAreaInsets), this.props.className);
|
|
19
|
-
return (
|
|
20
|
-
// eslint-disable-next-line jsx-a11y/click-events-have-key-events
|
|
21
|
-
React.createElement("li", { "data-item-id": this.props.itemId, "data-item-type": "backstage-item", "data-item-group-priority": this.props.groupPriority, "data-item-priority": this.props.itemPriority, "data-item-provider-id": this.props.providerId, className: className, onClick: this.props.onClick, style: this.props.style, role: "menuitem" },
|
|
22
|
-
React.createElement("div", { className: "nz-icon" }, this.props.icon),
|
|
23
|
-
this.props.badge && React.createElement("div", { className: "nz-badge" }, this.props.badge),
|
|
24
|
-
React.createElement("div", null,
|
|
25
|
-
React.createElement("span", null, this.props.children),
|
|
26
|
-
this.props.subtitle && React.createElement("span", null, this.props.subtitle))));
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=Item.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/backstage/Item.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAGH,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,aAAa,CAAC;AA6BrB;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK,CAAC,aAAiC;IACxD,MAAM;QACpB,MAAM,SAAS,GAAG,UAAU,CAC1B,mBAAmB,EACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,WAAW,EAClC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,aAAa,EACtC,IAAI,CAAC,KAAK,CAAC,cAAc;YACvB,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EACnE,IAAI,CAAC,KAAK,CAAC,SAAS,CACrB,CAAC;QAEF,OAAO;QACL,iEAAiE;QACjE,4CACgB,IAAI,CAAC,KAAK,CAAC,MAAM,oBAChB,gBAAgB,8BACL,IAAI,CAAC,KAAK,CAAC,aAAa,wBAC9B,IAAI,CAAC,KAAK,CAAC,YAAY,2BACpB,IAAI,CAAC,KAAK,CAAC,UAAU,EAC5C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,IAAI,EAAC,UAAU;YAEf,6BAAK,SAAS,EAAC,SAAS,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO;YAC/C,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,6BAAK,SAAS,EAAC,UAAU,IAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAO;YACvE;gBACE,kCAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAQ;gBACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,kCAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAQ,CACtD,CACH,CACN,CAAC;IACJ,CAAC;CACF","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 Backstage\n */\n\nimport type { CommonProps } from \"@itwin/core-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { SafeAreaInsets } from \"../../safearea/SafeAreaInsets.js\";\nimport { SafeAreaInsetsHelpers } from \"../base/SafeAreaInsets.js\";\nimport \"./Item.scss\";\n\n/** Properties of [[BackstageItem]] component.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface BackstageItemProps extends CommonProps {\n /** Backstage item label. */\n children?: string;\n /** Backstage item icon. */\n icon?: React.ReactNode;\n /** Describes if the item is active. */\n isActive?: boolean;\n /** Describes if the item is disabled. */\n isDisabled?: boolean;\n /** Function called when item is clicked. */\n onClick?: () => void;\n /** Describes respected safe area insets. */\n safeAreaInsets?: SafeAreaInsets;\n /** Backstage item subtitle. */\n subtitle?: string;\n /** A badge to draw. */\n badge?: React.ReactNode;\n\n providerId?: string;\n itemPriority?: number;\n groupPriority?: number;\n}\n\n/** Item in the [[Backstage]].\n * @internal\n */\nexport class BackstageItem extends React.PureComponent<BackstageItemProps> {\n public override render() {\n const className = classnames(\n \"nz-backstage-item\",\n this.props.isActive && \"nz-active\",\n this.props.isDisabled && \"nz-disabled\",\n this.props.safeAreaInsets &&\n SafeAreaInsetsHelpers.getCssClassNames(this.props.safeAreaInsets),\n this.props.className\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <li\n data-item-id={this.props.itemId}\n data-item-type=\"backstage-item\"\n data-item-group-priority={this.props.groupPriority}\n data-item-priority={this.props.itemPriority}\n data-item-provider-id={this.props.providerId}\n className={className}\n onClick={this.props.onClick}\n style={this.props.style}\n role=\"menuitem\"\n >\n <div className=\"nz-icon\">{this.props.icon}</div>\n {this.props.badge && <div className=\"nz-badge\">{this.props.badge}</div>}\n <div>\n <span>{this.props.children}</span>\n {this.props.subtitle && <span>{this.props.subtitle}</span>}\n </div>\n </li>\n );\n }\n}\n"]}
|