@itwin/tree-widget-react 0.1.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/LICENSE.md +9 -0
- package/README.md +32 -0
- package/lib/cjs/TreeWidget.d.ts +27 -0
- package/lib/cjs/TreeWidget.js +57 -0
- package/lib/cjs/TreeWidget.js.map +1 -0
- package/lib/cjs/components/IconButton.d.ts +14 -0
- package/lib/cjs/components/IconButton.js +42 -0
- package/lib/cjs/components/IconButton.js.map +1 -0
- package/lib/cjs/components/IconButton.scss +73 -0
- package/lib/cjs/components/TreeFilteringState.d.ts +16 -0
- package/lib/cjs/components/TreeFilteringState.js +67 -0
- package/lib/cjs/components/TreeFilteringState.js.map +1 -0
- package/lib/cjs/components/TreeWidgetComponent.d.ts +8 -0
- package/lib/cjs/components/TreeWidgetComponent.js +41 -0
- package/lib/cjs/components/TreeWidgetComponent.js.map +1 -0
- package/lib/cjs/components/TreeWidgetComponent.scss +64 -0
- package/lib/cjs/components/TreeWidgetControl.d.ts +25 -0
- package/lib/cjs/components/TreeWidgetControl.js +64 -0
- package/lib/cjs/components/TreeWidgetControl.js.map +1 -0
- package/lib/cjs/components/TreeWidgetUiItemsProvider.d.ts +19 -0
- package/lib/cjs/components/TreeWidgetUiItemsProvider.js +81 -0
- package/lib/cjs/components/TreeWidgetUiItemsProvider.js.map +1 -0
- package/lib/cjs/components/header/TreeHeader.d.ts +14 -0
- package/lib/cjs/components/header/TreeHeader.js +43 -0
- package/lib/cjs/components/header/TreeHeader.js.map +1 -0
- package/lib/cjs/components/header/TreeHeader.scss +19 -0
- package/lib/cjs/components/rulesets/ClassificationSystems.json +122 -0
- package/lib/cjs/components/search-bar/Popup.d.ts +50 -0
- package/lib/cjs/components/search-bar/Popup.js +246 -0
- package/lib/cjs/components/search-bar/Popup.js.map +1 -0
- package/lib/cjs/components/search-bar/Popup.scss +316 -0
- package/lib/cjs/components/search-bar/SearchBar.d.ts +53 -0
- package/lib/cjs/components/search-bar/SearchBar.js +97 -0
- package/lib/cjs/components/search-bar/SearchBar.js.map +1 -0
- package/lib/cjs/components/search-bar/SearchBar.scss +110 -0
- package/lib/cjs/components/search-bar/SearchBox.d.ts +76 -0
- package/lib/cjs/components/search-bar/SearchBox.js +184 -0
- package/lib/cjs/components/search-bar/SearchBox.js.map +1 -0
- package/lib/cjs/components/search-bar/SearchBox.scss +91 -0
- package/lib/cjs/components/trees/CategoriesTree.d.ts +9 -0
- package/lib/cjs/components/trees/CategoriesTree.js +76 -0
- package/lib/cjs/components/trees/CategoriesTree.js.map +1 -0
- package/lib/cjs/components/trees/CategoriesTree.scss +13 -0
- package/lib/cjs/components/trees/ClassificationsTree.d.ts +6 -0
- package/lib/cjs/components/trees/ClassificationsTree.js +43 -0
- package/lib/cjs/components/trees/ClassificationsTree.js.map +1 -0
- package/lib/cjs/components/trees/ModelsTree.d.ts +10 -0
- package/lib/cjs/components/trees/ModelsTree.js +135 -0
- package/lib/cjs/components/trees/ModelsTree.js.map +1 -0
- package/lib/cjs/components/trees/ModelsTree.scss +14 -0
- package/lib/cjs/components/trees/SpatialTree.d.ts +3 -0
- package/lib/cjs/components/trees/SpatialTree.js +41 -0
- package/lib/cjs/components/trees/SpatialTree.js.map +1 -0
- package/lib/cjs/components/trees/TreeWithRuleset.d.ts +35 -0
- package/lib/cjs/components/trees/TreeWithRuleset.js +108 -0
- package/lib/cjs/components/trees/TreeWithRuleset.js.map +1 -0
- package/lib/cjs/components/trees/TreeWithRulesetTree.scss +17 -0
- package/lib/cjs/components/trees/index.d.ts +6 -0
- package/lib/cjs/components/trees/index.js +22 -0
- package/lib/cjs/components/trees/index.js.map +1 -0
- package/lib/cjs/tree-widget-react.d.ts +7 -0
- package/lib/cjs/tree-widget-react.js +23 -0
- package/lib/cjs/tree-widget-react.js.map +1 -0
- package/lib/esm/TreeWidget.d.ts +27 -0
- package/lib/esm/TreeWidget.js +53 -0
- package/lib/esm/TreeWidget.js.map +1 -0
- package/lib/esm/components/IconButton.d.ts +14 -0
- package/lib/esm/components/IconButton.js +16 -0
- package/lib/esm/components/IconButton.js.map +1 -0
- package/lib/esm/components/IconButton.scss +73 -0
- package/lib/esm/components/TreeFilteringState.d.ts +16 -0
- package/lib/esm/components/TreeFilteringState.js +44 -0
- package/lib/esm/components/TreeFilteringState.js.map +1 -0
- package/lib/esm/components/TreeWidgetComponent.d.ts +8 -0
- package/lib/esm/components/TreeWidgetComponent.js +18 -0
- package/lib/esm/components/TreeWidgetComponent.js.map +1 -0
- package/lib/esm/components/TreeWidgetComponent.scss +64 -0
- package/lib/esm/components/TreeWidgetControl.d.ts +25 -0
- package/lib/esm/components/TreeWidgetControl.js +57 -0
- package/lib/esm/components/TreeWidgetControl.js.map +1 -0
- package/lib/esm/components/TreeWidgetUiItemsProvider.d.ts +19 -0
- package/lib/esm/components/TreeWidgetUiItemsProvider.js +74 -0
- package/lib/esm/components/TreeWidgetUiItemsProvider.js.map +1 -0
- package/lib/esm/components/header/TreeHeader.d.ts +14 -0
- package/lib/esm/components/header/TreeHeader.js +20 -0
- package/lib/esm/components/header/TreeHeader.js.map +1 -0
- package/lib/esm/components/header/TreeHeader.scss +19 -0
- package/lib/esm/components/rulesets/ClassificationSystems.json +122 -0
- package/lib/esm/components/search-bar/Popup.d.ts +50 -0
- package/lib/esm/components/search-bar/Popup.js +220 -0
- package/lib/esm/components/search-bar/Popup.js.map +1 -0
- package/lib/esm/components/search-bar/Popup.scss +316 -0
- package/lib/esm/components/search-bar/SearchBar.d.ts +53 -0
- package/lib/esm/components/search-bar/SearchBar.js +71 -0
- package/lib/esm/components/search-bar/SearchBar.js.map +1 -0
- package/lib/esm/components/search-bar/SearchBar.scss +110 -0
- package/lib/esm/components/search-bar/SearchBox.d.ts +76 -0
- package/lib/esm/components/search-bar/SearchBox.js +158 -0
- package/lib/esm/components/search-bar/SearchBox.js.map +1 -0
- package/lib/esm/components/search-bar/SearchBox.scss +91 -0
- package/lib/esm/components/trees/CategoriesTree.d.ts +9 -0
- package/lib/esm/components/trees/CategoriesTree.js +53 -0
- package/lib/esm/components/trees/CategoriesTree.js.map +1 -0
- package/lib/esm/components/trees/CategoriesTree.scss +13 -0
- package/lib/esm/components/trees/ClassificationsTree.d.ts +6 -0
- package/lib/esm/components/trees/ClassificationsTree.js +17 -0
- package/lib/esm/components/trees/ClassificationsTree.js.map +1 -0
- package/lib/esm/components/trees/ModelsTree.d.ts +10 -0
- package/lib/esm/components/trees/ModelsTree.js +112 -0
- package/lib/esm/components/trees/ModelsTree.js.map +1 -0
- package/lib/esm/components/trees/ModelsTree.scss +14 -0
- package/lib/esm/components/trees/SpatialTree.d.ts +3 -0
- package/lib/esm/components/trees/SpatialTree.js +18 -0
- package/lib/esm/components/trees/SpatialTree.js.map +1 -0
- package/lib/esm/components/trees/TreeWithRuleset.d.ts +35 -0
- package/lib/esm/components/trees/TreeWithRuleset.js +83 -0
- package/lib/esm/components/trees/TreeWithRuleset.js.map +1 -0
- package/lib/esm/components/trees/TreeWithRulesetTree.scss +17 -0
- package/lib/esm/components/trees/index.d.ts +6 -0
- package/lib/esm/components/trees/index.js +10 -0
- package/lib/esm/components/trees/index.js.map +1 -0
- package/lib/esm/tree-widget-react.d.ts +7 -0
- package/lib/esm/tree-widget-react.js +11 -0
- package/lib/esm/tree-widget-react.js.map +1 -0
- package/lib/public/locales/en/TreeWidget.json +16 -0
- package/package.json +97 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popup.js","sourceRoot":"","sources":["../../../../src/components/search-bar/Popup.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\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport { CommonProps } from \"@itwin/core-react\";\nimport { RelativePosition } from \"@itwin/appui-abstract\";\nimport \"./Popup.scss\";\n\n/** Properties for the [[Popup]] component */\nexport interface PopupProps extends CommonProps {\n /** show or hide the box shadow */\n showShadow: boolean;\n /** show or hide the arrow */\n showArrow: boolean;\n /** indicate if the popup is shown or not */\n isShown: boolean;\n /** Direction (relative to the target) to which the popup is expanded */\n position: RelativePosition;\n /** Fixed position in the viewport */\n fixedPosition?: { top: number; left: number };\n /** target element */\n context: HTMLElement | null;\n /** Function called when the popup is opened */\n onOpen?: () => void;\n /** Function called when the popup is closed */\n onClose?: () => void;\n}\n\ninterface PopupState {\n isShown: boolean;\n position: RelativePosition;\n}\n\ninterface Rect {\n left: number;\n top: number;\n right: number;\n bottom: number;\n}\n\n/** Popup React component */\nexport class Popup extends React.Component<PopupProps, PopupState> {\n private _popupRef = React.createRef<HTMLDivElement>();\n private _targetElement?: HTMLElement; // target element owning the popup\n\n constructor(props: PopupProps, context?: any) {\n super(props, context);\n\n this.state = { isShown: this.props.isShown, position: this.props.position };\n }\n\n public static defaultProps: Partial<PopupProps> = {\n position: RelativePosition.Bottom,\n showShadow: true,\n showArrow: false,\n };\n\n public componentDidMount() {\n const popupElement = this._popupRef.current;\n if (popupElement && popupElement.parentElement) {\n this._targetElement = popupElement.parentElement;\n }\n }\n\n public componentDidUpdate(previousProps: PopupProps) {\n if (this.props.isShown === previousProps.isShown) return;\n\n if (this.props.isShown) {\n this._onShow();\n } else {\n this._onClose();\n }\n }\n\n public componentWillUnmount() {\n document.body.removeEventListener(\"click\", this._onBodyClick, false);\n document.body.removeEventListener(\"keydown\", this._onEsc, false);\n }\n\n private _onBodyClick = (event: MouseEvent): void => {\n const context = this._getContext();\n\n // Ignore clicks on the popover or button\n if (context === event.target) {\n return;\n }\n\n if (context && context.contains(event.target as Node)) {\n return;\n }\n\n if (\n this._popupRef.current &&\n (this._popupRef.current === event.target ||\n this._popupRef.current.contains(event.target as Node))\n ) {\n return;\n }\n\n this._onClose();\n };\n\n private _onEsc = (event: KeyboardEvent): void => {\n // Esc key\n if (event.key === \"Escape\") {\n this._onClose();\n }\n };\n\n private _onShow() {\n if (this.state.isShown) {\n return;\n }\n\n document.addEventListener(\"click\", this._onBodyClick, true);\n document.addEventListener(\"keydown\", this._onEsc, true);\n\n const newPosition = this.getPositionWithinViewport();\n this.setState({ position: newPosition, isShown: true }, () => {\n if (this.props.onOpen) this.props.onOpen();\n });\n }\n\n private _onClose() {\n if (!this.state.isShown) {\n return;\n }\n\n document.removeEventListener(\"click\", this._onBodyClick, true);\n document.removeEventListener(\"keydown\", this._onEsc, true);\n\n // tslint:disable-next-line:tslint-react-set-state-usage\n this.setState({ isShown: false, position: this.props.position }, () => {\n if (this.props.onClose) this.props.onClose();\n });\n }\n\n private _getContext = () => this.props.context || this._targetElement;\n\n private getPositionClassName(position: RelativePosition): string {\n switch (position) {\n case RelativePosition.TopLeft:\n return classnames(\"tree-widget-search-popup-top-left\");\n case RelativePosition.TopRight:\n return classnames(\"tree-widget-search-popup-top-right\");\n case RelativePosition.BottomLeft:\n return classnames(\"tree-widget-search-popup-bottom-left\");\n case RelativePosition.BottomRight:\n return classnames(\"tree-widget-search-popup-bottom-right\");\n case RelativePosition.Top:\n return classnames(\"tree-widget-search-popup-top\");\n case RelativePosition.Left:\n return classnames(\"tree-widget-search-popup-left\");\n case RelativePosition.Right:\n return classnames(\"tree-widget-search-popup-right\");\n default:\n return classnames(\"tree-widget-search-popup-bottom\");\n }\n }\n\n private getPositionWithinViewport(): RelativePosition {\n const popupElement = this._popupRef.current;\n\n if (!popupElement || !this._targetElement) return this.props.position;\n // Note: Cannot use DOMRect yet since it's experimental and not available in all browsers (Nov. 2018)\n const viewportRect: Rect = {\n left: window.scrollX,\n top: window.scrollY,\n right: window.scrollX + window.innerWidth,\n bottom: window.scrollY + window.innerHeight,\n };\n const targetRect = this._targetElement.getBoundingClientRect();\n const popupRect = popupElement.getBoundingClientRect();\n const containerStyle = window.getComputedStyle(this._targetElement);\n const offset = this.props.showArrow ? 12 : 4;\n\n switch (this.props.position) {\n case RelativePosition.BottomRight: {\n const bottomMargin = containerStyle.marginBottom\n ? parseFloat(containerStyle.marginBottom)\n : 0;\n if (\n targetRect.bottom + popupRect.height + bottomMargin + offset >\n viewportRect.bottom\n ) {\n return RelativePosition.TopRight;\n }\n break;\n }\n\n case RelativePosition.TopRight: {\n const topMargin = containerStyle.marginTop\n ? parseFloat(containerStyle.marginTop)\n : 0;\n if (\n targetRect.top - popupRect.height - topMargin - offset <\n viewportRect.top\n ) {\n return RelativePosition.BottomRight;\n }\n break;\n }\n\n case RelativePosition.TopLeft: {\n const topMargin = containerStyle.marginTop\n ? parseFloat(containerStyle.marginTop)\n : 0;\n if (\n targetRect.top - popupRect.height - topMargin - offset <\n viewportRect.top\n ) {\n return RelativePosition.BottomLeft;\n }\n break;\n }\n\n case RelativePosition.BottomLeft: {\n const bottomMargin = containerStyle.marginBottom\n ? parseFloat(containerStyle.marginBottom)\n : 0;\n if (\n targetRect.bottom + popupRect.height + bottomMargin + offset >\n viewportRect.bottom\n ) {\n return RelativePosition.TopLeft;\n }\n break;\n }\n\n case RelativePosition.Bottom: {\n const bottomMargin = containerStyle.marginBottom\n ? parseFloat(containerStyle.marginBottom)\n : 0;\n if (\n targetRect.bottom + popupRect.height + bottomMargin + offset >\n viewportRect.bottom\n ) {\n return RelativePosition.Top;\n }\n break;\n }\n\n case RelativePosition.Top: {\n const topMargin = containerStyle.marginTop\n ? parseFloat(containerStyle.marginTop)\n : 0;\n if (\n targetRect.top - popupRect.height - topMargin - offset <\n viewportRect.top\n ) {\n return RelativePosition.Bottom;\n }\n break;\n }\n\n case RelativePosition.Left: {\n const leftMargin = containerStyle.marginLeft\n ? parseFloat(containerStyle.marginLeft)\n : 0;\n if (\n targetRect.left - popupRect.width - leftMargin - offset <\n viewportRect.left\n ) {\n return RelativePosition.Right;\n }\n break;\n }\n\n case RelativePosition.Right: {\n const rightMargin = containerStyle.marginRight\n ? parseFloat(containerStyle.marginRight)\n : 0;\n if (\n targetRect.right + popupRect.width + rightMargin + offset >\n viewportRect.right\n ) {\n return RelativePosition.Left;\n }\n break;\n }\n }\n\n return this.props.position;\n }\n\n public render(): JSX.Element {\n const className = classnames(\n \"tree-widget-search-popup\",\n this.getPositionClassName(this.state.position),\n this.props.showShadow && \"tree-widget-search-popup-shadow\",\n this.state.isShown && \"visible\",\n this.props.showArrow && \"arrow\",\n this.props.className\n );\n\n let style: React.CSSProperties | undefined;\n if (this.props.fixedPosition) {\n style = {\n top: this.props.fixedPosition.top,\n left: this.props.fixedPosition.left,\n position: \"fixed\",\n };\n }\n\n return (\n <div style={style} className={className} ref={this._popupRef}>\n {this.props.children}\n </div>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,316 @@
|
|
|
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
|
+
@import "~@itwin/core-react/lib/esm/core-react/index";
|
|
6
|
+
|
|
7
|
+
.tree-widget-search-popup {
|
|
8
|
+
display: block;
|
|
9
|
+
box-sizing: border-box;
|
|
10
|
+
position: absolute;
|
|
11
|
+
// border-radius: 4px;
|
|
12
|
+
background: $buic-background-1;
|
|
13
|
+
border: 1px solid $buic-background-panel-stroke;
|
|
14
|
+
visibility: hidden;
|
|
15
|
+
z-index: 100;
|
|
16
|
+
animation-duration: 250ms;
|
|
17
|
+
animation-timing-function: ease;
|
|
18
|
+
animation-fill-mode: forwards;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.tree-widget-search-popup.arrow::after,
|
|
22
|
+
.tree-widget-search-popup.arrow::before {
|
|
23
|
+
border: solid transparent;
|
|
24
|
+
content: " ";
|
|
25
|
+
height: 0;
|
|
26
|
+
width: 0;
|
|
27
|
+
position: absolute;
|
|
28
|
+
pointer-events: none;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom-left.arrow::after,
|
|
32
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom-left.arrow::before {
|
|
33
|
+
bottom: 100%;
|
|
34
|
+
left: 25%;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom-right.arrow::after,
|
|
38
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom-right.arrow::before {
|
|
39
|
+
bottom: 100%;
|
|
40
|
+
left: 75%;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom.arrow::after,
|
|
44
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom.arrow::before {
|
|
45
|
+
bottom: 100%;
|
|
46
|
+
left: 50%;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.tree-widget-search-popup.tree-widget-search-popup-top.arrow::after,
|
|
50
|
+
.tree-widget-search-popup.tree-widget-search-popup-top.arrow::before {
|
|
51
|
+
top: 100%;
|
|
52
|
+
left: 50%;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.tree-widget-search-popup.tree-widget-search-popup-top-left.arrow::after,
|
|
56
|
+
.tree-widget-search-popup.tree-widget-search-popup-top-left.arrow::before {
|
|
57
|
+
top: 100%;
|
|
58
|
+
left: 25%;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.tree-widget-search-popup.tree-widget-search-popup-top-right.arrow::after,
|
|
62
|
+
.tree-widget-search-popup.tree-widget-search-popup-top-right.arrow::before {
|
|
63
|
+
top: 100%;
|
|
64
|
+
left: 75%;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.tree-widget-search-popup.tree-widget-search-popup-left.arrow::after,
|
|
68
|
+
.tree-widget-search-popup.tree-widget-search-popup-left.arrow::before {
|
|
69
|
+
top: 50%;
|
|
70
|
+
left: 100%;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.tree-widget-search-popup.tree-widget-search-popup-right.arrow::after,
|
|
74
|
+
.tree-widget-search-popup.tree-widget-search-popup-right.arrow::before {
|
|
75
|
+
top: 50%;
|
|
76
|
+
right: 100%;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom.arrow::before,
|
|
80
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom-left.arrow::before,
|
|
81
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom-right.arrow::before {
|
|
82
|
+
border-bottom-color: inherit;
|
|
83
|
+
border-width: 9px;
|
|
84
|
+
margin-left: -9px;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.tree-widget-search-popup.tree-widget-search-popup-top.arrow::before,
|
|
88
|
+
.tree-widget-search-popup.tree-widget-search-popup-top-left.arrow::before,
|
|
89
|
+
.tree-widget-search-popup.tree-widget-search-popup-top-right.arrow::before {
|
|
90
|
+
border-top-color: inherit;
|
|
91
|
+
border-width: 9px;
|
|
92
|
+
margin-left: -9px;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.tree-widget-search-popup.tree-widget-search-popup-left.arrow::before {
|
|
96
|
+
border-left-color: inherit;
|
|
97
|
+
border-width: 9px;
|
|
98
|
+
margin-top: -9px;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.tree-widget-search-popup.tree-widget-search-popup-right.arrow::before {
|
|
102
|
+
border-right-color: inherit;
|
|
103
|
+
border-width: 9px;
|
|
104
|
+
margin-top: -9px;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom.arrow::after,
|
|
108
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom-left.arrow::after,
|
|
109
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom-right.arrow::after {
|
|
110
|
+
border-bottom-color: currentColor;
|
|
111
|
+
border-width: 8px;
|
|
112
|
+
margin-left: -8px;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.tree-widget-search-popup.tree-widget-search-popup-top.arrow::after,
|
|
116
|
+
.tree-widget-search-popup.tree-widget-search-popup-top-left.arrow::after,
|
|
117
|
+
.tree-widget-search-popup.tree-widget-search-popup-top-right.arrow::after {
|
|
118
|
+
border-top-color: currentColor;
|
|
119
|
+
border-width: 8px;
|
|
120
|
+
margin-left: -8px;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.tree-widget-search-popup.tree-widget-search-popup-left.arrow::after {
|
|
124
|
+
border-left-color: currentColor;
|
|
125
|
+
border-width: 8px;
|
|
126
|
+
margin-top: -8px;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.tree-widget-search-popup.tree-widget-search-popup-right.arrow::after {
|
|
130
|
+
border-right-color: currentColor;
|
|
131
|
+
border-width: 8px;
|
|
132
|
+
margin-top: -8px;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.tree-widget-search-popup-top-left {
|
|
136
|
+
top: -4px;
|
|
137
|
+
left: 0;
|
|
138
|
+
transform: translateY(-100%);
|
|
139
|
+
transform-origin: left bottom 0;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.tree-widget-search-popup.tree-widget-search-popup-top-left.visible {
|
|
143
|
+
animation-name: dr-animate-top-corner;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.tree-widget-search-popup-top {
|
|
147
|
+
top: -4px;
|
|
148
|
+
left: 50%;
|
|
149
|
+
transform: translate(-50%, -100%);
|
|
150
|
+
transform-origin: bottom;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.tree-widget-search-popup.tree-widget-search-popup-top.visible {
|
|
154
|
+
animation-name: dr-animate-top;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.tree-widget-search-popup-top-right {
|
|
158
|
+
top: -4px;
|
|
159
|
+
right: 0;
|
|
160
|
+
transform: translateY(-100%);
|
|
161
|
+
transform-origin: right bottom 0;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.tree-widget-search-popup.tree-widget-search-popup-top-right.visible {
|
|
165
|
+
animation-name: dr-animate-top-corner;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.tree-widget-search-popup-bottom-left {
|
|
169
|
+
top: calc(100% + 0px);
|
|
170
|
+
left: 0;
|
|
171
|
+
transform-origin: left top 0;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom-left.visible {
|
|
175
|
+
animation-name: dr-animate-bottom-corner;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.tree-widget-search-popup-bottom {
|
|
179
|
+
top: calc(100% + 4px);
|
|
180
|
+
left: 50%;
|
|
181
|
+
transform: translateX(-50%);
|
|
182
|
+
transform-origin: top;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom.visible {
|
|
186
|
+
animation-name: dr-animate-bottom;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.tree-widget-search-popup-bottom-right {
|
|
190
|
+
top: calc(100% + 4px);
|
|
191
|
+
right: 0;
|
|
192
|
+
transform-origin: right top 0;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.tree-widget-search-popup.tree-widget-search-popup-bottom-right.visible {
|
|
196
|
+
animation-name: dr-animate-bottom-corner;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.tree-widget-search-popup-left {
|
|
200
|
+
left: -4px;
|
|
201
|
+
top: 50%;
|
|
202
|
+
transform: translate(-100%, -50%);
|
|
203
|
+
transform-origin: right;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.tree-widget-search-popup.popup-left.visible {
|
|
207
|
+
animation-name: dr-animate-left;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.tree-widget-search-popup-right {
|
|
211
|
+
right: -4px;
|
|
212
|
+
top: 50%;
|
|
213
|
+
transform: translate(100%, -50%);
|
|
214
|
+
transform-origin: left;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.tree-widget-search-popup.popup-right.visible {
|
|
218
|
+
animation-name: dr-animate-right;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
.tree-widget-search-popup.popup-bottom-left.arrow,
|
|
222
|
+
.tree-widget-search-popup.popup-bottom.arrow,
|
|
223
|
+
.tree-widget-search-popup.popup-bottom-right.arrow {
|
|
224
|
+
top: calc(100% + 12px);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.tree-widget-search-popup.popup-top.arrow,
|
|
228
|
+
.tree-widget-search-popup.popup-top-left.arrow,
|
|
229
|
+
.tree-widget-search-popup.popup-top-right.arrow {
|
|
230
|
+
top: -12px;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.tree-widget-search-popup.popup-left.arrow {
|
|
234
|
+
left: -12px;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.tree-widget-search-popup.popup-right.arrow {
|
|
238
|
+
right: -12px;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.tree-widget-search-popup-shadow {
|
|
242
|
+
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.25);
|
|
243
|
+
background-clip: padding-box;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
@keyframes dr-animate-bottom {
|
|
247
|
+
from {
|
|
248
|
+
visibility: hidden;
|
|
249
|
+
transform: translateX(-50%) scale(1, 0);
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
to {
|
|
253
|
+
visibility: visible;
|
|
254
|
+
transform: translateX(-50%) scale(1);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
@keyframes dr-animate-top {
|
|
259
|
+
from {
|
|
260
|
+
visibility: hidden;
|
|
261
|
+
transform: translate(-50%, -100%) scale(1, 0);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
to {
|
|
265
|
+
visibility: visible;
|
|
266
|
+
transform: translate(-50%, -100%) scale(1);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
@keyframes dr-animate-top-corner {
|
|
271
|
+
from {
|
|
272
|
+
visibility: hidden;
|
|
273
|
+
transform: translateY(-100%) scale(0);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
to {
|
|
277
|
+
visibility: visible;
|
|
278
|
+
transform: translateY(-100%) scale(1);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
@keyframes dr-animate-bottom-corner {
|
|
283
|
+
from {
|
|
284
|
+
visibility: hidden;
|
|
285
|
+
transform: scale(0);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
to {
|
|
289
|
+
visibility: visible;
|
|
290
|
+
transform: scale(1);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
@keyframes dr-animate-left {
|
|
295
|
+
from {
|
|
296
|
+
visibility: hidden;
|
|
297
|
+
transform: translate(-100%, -50%) scale(0, 1);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
to {
|
|
301
|
+
visibility: visible;
|
|
302
|
+
transform: translate(-100%, -50%) scale(1);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
@keyframes dr-animate-right {
|
|
307
|
+
from {
|
|
308
|
+
visibility: hidden;
|
|
309
|
+
transform: translate(100%, -50%) scale(0, 1);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
to {
|
|
313
|
+
visibility: visible;
|
|
314
|
+
transform: translate(100%, -50%) scale(1);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { CommonProps } from "@itwin/core-react";
|
|
3
|
+
import "./SearchBar.scss";
|
|
4
|
+
export declare enum Alignment {
|
|
5
|
+
Left = 0,
|
|
6
|
+
Right = 1
|
|
7
|
+
}
|
|
8
|
+
export interface SearchBarProps extends CommonProps {
|
|
9
|
+
/** value to set SearchBox */
|
|
10
|
+
value?: string;
|
|
11
|
+
/** Enable or disable dropdown functionality. If disabled, searchbox simply expands without displaying the group button */
|
|
12
|
+
enableGrouping: boolean;
|
|
13
|
+
/** show the search box in the open (expanded) state */
|
|
14
|
+
showSearch?: boolean;
|
|
15
|
+
/** alignment content to the left or right of the search bar */
|
|
16
|
+
alignment?: Alignment;
|
|
17
|
+
/** searchbox frequency to poll for changes in value (milliseconds) */
|
|
18
|
+
valueChangedDelay?: number;
|
|
19
|
+
/** searchbox placeholder value to show in gray before anything is entered in */
|
|
20
|
+
placeholder?: string;
|
|
21
|
+
/** title (tooltip) */
|
|
22
|
+
title?: string;
|
|
23
|
+
/** Tells the component if parent component is still handling the filtering */
|
|
24
|
+
filteringInProgress?: boolean;
|
|
25
|
+
/** Filtering is cleared after everything's loaded */
|
|
26
|
+
onFilterStart: (newFilter: string) => void;
|
|
27
|
+
/** Filtering is cleared after everything's loaded */
|
|
28
|
+
onFilterCancel?: () => void;
|
|
29
|
+
/** Filtering is cleared after everything's loaded */
|
|
30
|
+
onFilterClear?: () => void;
|
|
31
|
+
/** Total number of results/entries */
|
|
32
|
+
resultCount: number;
|
|
33
|
+
/** Callback to currently selected result/entry change */
|
|
34
|
+
onSelectedChanged: (index: number) => void;
|
|
35
|
+
}
|
|
36
|
+
interface SearchBarState {
|
|
37
|
+
showSearch: boolean;
|
|
38
|
+
showDropdown: boolean;
|
|
39
|
+
}
|
|
40
|
+
/** SearchBox with expanding search box capability */
|
|
41
|
+
export declare class SearchBar extends React.PureComponent<SearchBarProps, SearchBarState> {
|
|
42
|
+
private _target;
|
|
43
|
+
private _searchBox;
|
|
44
|
+
static defaultProps: Partial<SearchBarProps>;
|
|
45
|
+
constructor(props: any);
|
|
46
|
+
componentDidUpdate(prevProps: SearchBarProps): Promise<void>;
|
|
47
|
+
private _onToggleSearch;
|
|
48
|
+
private _onCloseDropdown;
|
|
49
|
+
private _onToggleDropdown;
|
|
50
|
+
render(): JSX.Element;
|
|
51
|
+
}
|
|
52
|
+
export {};
|
|
53
|
+
//# sourceMappingURL=SearchBar.d.ts.map
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.SearchBar = exports.Alignment = void 0;
|
|
26
|
+
/*---------------------------------------------------------------------------------------------
|
|
27
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
28
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
29
|
+
*--------------------------------------------------------------------------------------------*/
|
|
30
|
+
const React = __importStar(require("react"));
|
|
31
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
32
|
+
const appui_abstract_1 = require("@itwin/appui-abstract");
|
|
33
|
+
const Popup_1 = require("./Popup");
|
|
34
|
+
const SearchBox_1 = require("./SearchBox");
|
|
35
|
+
const IconButton_1 = require("../IconButton");
|
|
36
|
+
require("./SearchBar.scss");
|
|
37
|
+
var Alignment;
|
|
38
|
+
(function (Alignment) {
|
|
39
|
+
Alignment[Alignment["Left"] = 0] = "Left";
|
|
40
|
+
Alignment[Alignment["Right"] = 1] = "Right";
|
|
41
|
+
})(Alignment = exports.Alignment || (exports.Alignment = {}));
|
|
42
|
+
/** SearchBox with expanding search box capability */
|
|
43
|
+
class SearchBar extends React.PureComponent {
|
|
44
|
+
constructor(props) {
|
|
45
|
+
super(props);
|
|
46
|
+
this._target = null;
|
|
47
|
+
this._searchBox = React.createRef();
|
|
48
|
+
this._onToggleSearch = (_event) => {
|
|
49
|
+
const showSearch = !this.state.showSearch;
|
|
50
|
+
this.setState({ showSearch }, () => {
|
|
51
|
+
if (showSearch && this._searchBox.current)
|
|
52
|
+
setTimeout(() => {
|
|
53
|
+
if (this._searchBox.current)
|
|
54
|
+
this._searchBox.current.focus();
|
|
55
|
+
}, 100); // timeout allows the search bar animation to complete!
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
this._onCloseDropdown = () => {
|
|
59
|
+
this.setState({ showDropdown: false });
|
|
60
|
+
};
|
|
61
|
+
this._onToggleDropdown = () => {
|
|
62
|
+
this.setState((prevState) => ({ showDropdown: !prevState.showDropdown }));
|
|
63
|
+
};
|
|
64
|
+
this.state = { showSearch: props.showSearch, showDropdown: false };
|
|
65
|
+
}
|
|
66
|
+
async componentDidUpdate(prevProps) {
|
|
67
|
+
if (prevProps.value !== this.props.value) {
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
render() {
|
|
71
|
+
const { value, alignment, valueChangedDelay, placeholder, enableGrouping, title, } = this.props;
|
|
72
|
+
const { showSearch, showDropdown } = this.state;
|
|
73
|
+
const classes = classnames_1.default("tree-widget-search-bar", this.props.className);
|
|
74
|
+
const searchBoxClassName = classnames_1.default("search-bar-search-box", showSearch && "show");
|
|
75
|
+
const searchIconClassName = classnames_1.default("search-bar-search-icon", showSearch ? "hide" : "show");
|
|
76
|
+
const groupButtonClassName = classnames_1.default("search-bar-group-button2", showSearch && enableGrouping && "show");
|
|
77
|
+
const contentClassName = classnames_1.default("search-bar-button-container", showSearch && "hide", alignment === Alignment.Right && "right");
|
|
78
|
+
const searchBarContainerClassName = classnames_1.default("search-bar-search-container", enableGrouping && "search-bar-grouping-enabled");
|
|
79
|
+
return (React.createElement("div", { className: classes },
|
|
80
|
+
React.createElement("div", { className: groupButtonClassName, ref: (element) => {
|
|
81
|
+
this._target = element;
|
|
82
|
+
} },
|
|
83
|
+
React.createElement(IconButton_1.IconButton, { icon: "icon-more-2", onClick: this._onToggleDropdown })),
|
|
84
|
+
React.createElement("div", { className: contentClassName }, this.props.children),
|
|
85
|
+
React.createElement("div", { className: searchBarContainerClassName },
|
|
86
|
+
React.createElement(SearchBox_1.SearchBox, { ref: this._searchBox, className: searchBoxClassName, searchText: value, valueChangedDelay: valueChangedDelay, placeholder: placeholder, onFilterCancel: this.props.onFilterCancel, onFilterClear: this.props.onFilterClear, onFilterStart: this.props.onFilterStart, resultCount: this.props.resultCount, onIconClick: this._onToggleSearch, onSelectedChanged: this.props.onSelectedChanged })),
|
|
87
|
+
React.createElement(IconButton_1.IconButton, { className: searchIconClassName, icon: "icon-search", onClick: this._onToggleSearch, title: title }),
|
|
88
|
+
showSearch && (React.createElement(Popup_1.Popup, { isShown: showDropdown, position: appui_abstract_1.RelativePosition.BottomLeft, onClose: this._onCloseDropdown, context: this._target },
|
|
89
|
+
React.createElement("div", { className: "search-bar-dropdown-container" }, this.props.children)))));
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
exports.SearchBar = SearchBar;
|
|
93
|
+
SearchBar.defaultProps = {
|
|
94
|
+
alignment: Alignment.Left,
|
|
95
|
+
enableGrouping: true,
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=SearchBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchBar.js","sourceRoot":"","sources":["../../../../src/components/search-bar/SearchBar.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*--------------------------------------------------------------------------------------------*/\nimport * as React from \"react\";\nimport classnames from \"classnames\";\nimport { CommonProps } from \"@itwin/core-react\";\nimport { RelativePosition } from \"@itwin/appui-abstract\";\nimport { Popup } from \"./Popup\";\nimport { SearchBox } from \"./SearchBox\";\nimport { IconButton } from \"../IconButton\";\nimport \"./SearchBar.scss\";\n\nexport enum Alignment {\n Left = 0,\n Right = 1,\n}\n\nexport interface SearchBarProps extends CommonProps {\n /** value to set SearchBox */\n value?: string;\n /** Enable or disable dropdown functionality. If disabled, searchbox simply expands without displaying the group button */\n enableGrouping: boolean;\n /** show the search box in the open (expanded) state */\n showSearch?: boolean;\n /** alignment content to the left or right of the search bar */\n alignment?: Alignment;\n /** searchbox frequency to poll for changes in value (milliseconds) */\n valueChangedDelay?: number;\n /** searchbox placeholder value to show in gray before anything is entered in */\n placeholder?: string;\n /** title (tooltip) */\n title?: string;\n /** Tells the component if parent component is still handling the filtering */\n filteringInProgress?: boolean;\n /** Filtering is cleared after everything's loaded */\n onFilterStart: (newFilter: string) => void;\n /** Filtering is cleared after everything's loaded */\n onFilterCancel?: () => void;\n /** Filtering is cleared after everything's loaded */\n onFilterClear?: () => void;\n /** Total number of results/entries */\n resultCount: number;\n /** Callback to currently selected result/entry change */\n onSelectedChanged: (index: number) => void;\n}\n\ninterface SearchBarState {\n showSearch: boolean;\n showDropdown: boolean;\n}\n\n/** SearchBox with expanding search box capability */\nexport class SearchBar extends React.PureComponent<\n SearchBarProps,\n SearchBarState\n > {\n private _target: HTMLElement | null = null;\n private _searchBox = React.createRef<SearchBox>();\n\n public static defaultProps: Partial<SearchBarProps> = {\n alignment: Alignment.Left,\n enableGrouping: true,\n };\n\n constructor(props: any) {\n super(props);\n\n this.state = { showSearch: props.showSearch, showDropdown: false };\n }\n\n public async componentDidUpdate(prevProps: SearchBarProps) {\n if (prevProps.value !== this.props.value) {\n }\n }\n\n private _onToggleSearch = (\n _event?: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\n const showSearch = !this.state.showSearch;\n this.setState({ showSearch }, () => {\n if (showSearch && this._searchBox.current)\n setTimeout(() => {\n if (this._searchBox.current) this._searchBox.current.focus();\n }, 100); // timeout allows the search bar animation to complete!\n });\n };\n\n private _onCloseDropdown = () => {\n this.setState({ showDropdown: false });\n };\n\n private _onToggleDropdown = () => {\n this.setState((prevState) => ({ showDropdown: !prevState.showDropdown }));\n };\n\n public render() {\n const {\n value,\n alignment,\n valueChangedDelay,\n placeholder,\n enableGrouping,\n title,\n } = this.props;\n const { showSearch, showDropdown } = this.state;\n\n const classes = classnames(\"tree-widget-search-bar\", this.props.className);\n const searchBoxClassName = classnames(\n \"search-bar-search-box\",\n showSearch && \"show\"\n );\n const searchIconClassName = classnames(\n \"search-bar-search-icon\",\n showSearch ? \"hide\" : \"show\"\n );\n const groupButtonClassName = classnames(\n \"search-bar-group-button2\",\n showSearch && enableGrouping && \"show\"\n );\n const contentClassName = classnames(\n \"search-bar-button-container\",\n showSearch && \"hide\",\n alignment === Alignment.Right && \"right\"\n );\n const searchBarContainerClassName = classnames(\n \"search-bar-search-container\",\n enableGrouping && \"search-bar-grouping-enabled\",\n );\n\n return (\n <div className={classes}>\n <div\n className={groupButtonClassName}\n ref={(element) => {\n this._target = element;\n }}\n >\n <IconButton icon=\"icon-more-2\" onClick={this._onToggleDropdown} />\n </div>\n <div className={contentClassName}>{this.props.children}</div>\n <div className={searchBarContainerClassName}>\n <SearchBox\n ref={this._searchBox}\n className={searchBoxClassName}\n searchText={value}\n valueChangedDelay={valueChangedDelay}\n placeholder={placeholder}\n onFilterCancel={this.props.onFilterCancel}\n onFilterClear={this.props.onFilterClear}\n onFilterStart={this.props.onFilterStart}\n resultCount={this.props.resultCount}\n onIconClick={this._onToggleSearch}\n onSelectedChanged={this.props.onSelectedChanged}\n />\n </div>\n <IconButton\n className={searchIconClassName}\n icon=\"icon-search\"\n onClick={this._onToggleSearch}\n title={title}\n />\n {showSearch && (\n <Popup\n isShown={showDropdown}\n position={RelativePosition.BottomLeft}\n onClose={this._onCloseDropdown}\n context={this._target}\n >\n <div className=\"search-bar-dropdown-container\">\n {this.props.children}\n </div>\n </Popup>\n )}\n </div>\n );\n }\n}\n"]}
|
|
@@ -0,0 +1,110 @@
|
|
|
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
|
+
@import "~@itwin/core-react/lib/esm/core-react/index";
|
|
6
|
+
|
|
7
|
+
.tree-widget-search-bar {
|
|
8
|
+
display: flex;
|
|
9
|
+
align-items: center;
|
|
10
|
+
position: relative;
|
|
11
|
+
|
|
12
|
+
// "..." group button
|
|
13
|
+
.search-bar-group-button2 {
|
|
14
|
+
opacity: 0;
|
|
15
|
+
display: none;
|
|
16
|
+
animation: hide ease-in 0.1s;
|
|
17
|
+
animation-fill-mode: forwards;
|
|
18
|
+
|
|
19
|
+
&.search-bar-group-button2.show {
|
|
20
|
+
animation: show ease-in 0.25s;
|
|
21
|
+
animation-delay: 0.1s;
|
|
22
|
+
animation-fill-mode: forwards;
|
|
23
|
+
display: block;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// button container
|
|
28
|
+
.search-bar-button-container {
|
|
29
|
+
display: flex;
|
|
30
|
+
align-items: center;
|
|
31
|
+
|
|
32
|
+
&.right {
|
|
33
|
+
justify-content: flex-end;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&.hide {
|
|
37
|
+
display: none;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// dropdown container
|
|
42
|
+
.search-bar-dropdown-container {
|
|
43
|
+
display: flex;
|
|
44
|
+
align-items: center;
|
|
45
|
+
padding: 0 $uicore-s;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// override of the search box styling
|
|
49
|
+
.search-bar-search-icon {
|
|
50
|
+
position: absolute;
|
|
51
|
+
right: 0;
|
|
52
|
+
opacity: 0;
|
|
53
|
+
transition: all 0.2s ease;
|
|
54
|
+
color: $buic-icon-color;
|
|
55
|
+
&.show {
|
|
56
|
+
opacity: 1;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// search box container
|
|
61
|
+
.search-bar-search-container {
|
|
62
|
+
flex: 1;
|
|
63
|
+
height: 100%;
|
|
64
|
+
position: absolute;
|
|
65
|
+
left: 0;
|
|
66
|
+
|
|
67
|
+
.search-bar-search-box {
|
|
68
|
+
height: 32px;
|
|
69
|
+
float: right;
|
|
70
|
+
margin-right: 0;
|
|
71
|
+
box-sizing: border-box;
|
|
72
|
+
width: 0px;
|
|
73
|
+
visibility: hidden;
|
|
74
|
+
opacity: 0;
|
|
75
|
+
overflow: hidden;
|
|
76
|
+
transition: all 0.25s ease;
|
|
77
|
+
|
|
78
|
+
&.show {
|
|
79
|
+
visibility: visible;
|
|
80
|
+
opacity: 1;
|
|
81
|
+
width: 100%;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
&.search-bar-grouping-enabled {
|
|
86
|
+
left: 32px;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@keyframes show {
|
|
92
|
+
0% {
|
|
93
|
+
opacity: 0;
|
|
94
|
+
}
|
|
95
|
+
100% {
|
|
96
|
+
opacity: 1;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@keyframes hide {
|
|
101
|
+
0% {
|
|
102
|
+
opacity: 1;
|
|
103
|
+
visibility: visible;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
100% {
|
|
107
|
+
opacity: 0;
|
|
108
|
+
visibility: hidden;
|
|
109
|
+
}
|
|
110
|
+
}
|