@gravity-ui/querieskit 1.7.0 → 1.8.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/README.md +54 -0
- package/build/cjs/components/Breadcrumbs/Breadcrumbs.d.ts +2 -1
- package/build/cjs/components/Breadcrumbs/Breadcrumbs.js +19 -6
- package/build/cjs/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/build/cjs/modules/NavigationDetail/NavigationDetail.d.ts +3 -1
- package/build/cjs/modules/NavigationDetail/NavigationDetail.js +4 -0
- package/build/cjs/modules/NavigationDetail/NavigationDetail.js.map +1 -1
- package/build/cjs/modules/NavigationHeader/NavigationHeader.d.ts +3 -1
- package/build/cjs/modules/NavigationHeader/NavigationHeader.js +7 -1
- package/build/cjs/modules/NavigationHeader/NavigationHeader.js.map +1 -1
- package/build/cjs/modules/NavigationItemsList/NavigationItemsList.d.ts +3 -2
- package/build/cjs/modules/NavigationItemsList/NavigationItemsList.js +2 -1
- package/build/cjs/modules/NavigationItemsList/NavigationItemsList.js.map +1 -1
- package/build/cjs/modules/NavigationItemsList/internal/useParentRow.d.ts +1 -1
- package/build/cjs/modules/NavigationItemsList/internal/useParentRow.js +2 -1
- package/build/cjs/modules/NavigationItemsList/internal/useParentRow.js.map +1 -1
- package/build/cjs/types/navigation.d.ts +11 -0
- package/build/cjs/types/navigation.js.map +1 -1
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.d.ts +3 -2
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.js +8 -0
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.js.map +1 -1
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.stories.d.ts +3 -0
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.stories.js +166 -1
- package/build/cjs/widgets/QueriesNavigation/QueriesNavigation.stories.js.map +1 -1
- package/build/esm/components/Breadcrumbs/Breadcrumbs.d.ts +2 -1
- package/build/esm/components/Breadcrumbs/Breadcrumbs.js +19 -6
- package/build/esm/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
- package/build/esm/modules/NavigationDetail/NavigationDetail.d.ts +3 -1
- package/build/esm/modules/NavigationDetail/NavigationDetail.js +4 -0
- package/build/esm/modules/NavigationDetail/NavigationDetail.js.map +1 -1
- package/build/esm/modules/NavigationHeader/NavigationHeader.d.ts +3 -1
- package/build/esm/modules/NavigationHeader/NavigationHeader.js +7 -1
- package/build/esm/modules/NavigationHeader/NavigationHeader.js.map +1 -1
- package/build/esm/modules/NavigationItemsList/NavigationItemsList.d.ts +3 -2
- package/build/esm/modules/NavigationItemsList/NavigationItemsList.js +2 -1
- package/build/esm/modules/NavigationItemsList/NavigationItemsList.js.map +1 -1
- package/build/esm/modules/NavigationItemsList/internal/useParentRow.d.ts +1 -1
- package/build/esm/modules/NavigationItemsList/internal/useParentRow.js +2 -1
- package/build/esm/modules/NavigationItemsList/internal/useParentRow.js.map +1 -1
- package/build/esm/types/navigation.d.ts +11 -0
- package/build/esm/types/navigation.js.map +1 -1
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.d.ts +3 -2
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.js +8 -0
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.js.map +1 -1
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.stories.d.ts +3 -0
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.stories.js +166 -1
- package/build/esm/widgets/QueriesNavigation/QueriesNavigation.stories.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -172,6 +172,60 @@ and routing.
|
|
|
172
172
|
|
|
173
173
|
Browse interactive examples in [Storybook](https://preview.gravity-ui.com/querieskit/).
|
|
174
174
|
|
|
175
|
+
### QueriesNavigation
|
|
176
|
+
|
|
177
|
+
`QueriesNavigation` renders cluster and path navigation, an optional detail panel, and
|
|
178
|
+
application-provided header actions. Applications remain responsible for loading data, routing,
|
|
179
|
+
favorites, and item-specific operations.
|
|
180
|
+
|
|
181
|
+
```tsx
|
|
182
|
+
import {Button, DropdownMenu, Flex} from '@gravity-ui/uikit';
|
|
183
|
+
import {QueriesNavigation} from '@gravity-ui/querieskit';
|
|
184
|
+
|
|
185
|
+
<QueriesNavigation
|
|
186
|
+
location={location}
|
|
187
|
+
onUpdate={setLocation}
|
|
188
|
+
items={items}
|
|
189
|
+
search={{value: search, onUpdate: setSearch}}
|
|
190
|
+
parentRow={{showDuringSearch: true}}
|
|
191
|
+
header={{
|
|
192
|
+
actions,
|
|
193
|
+
getBreadcrumbHref: ({cluster, path}) =>
|
|
194
|
+
cluster ? `/navigation/${cluster}${path ?? ''}` : '/navigation',
|
|
195
|
+
renderActions: ({location, actions: headerActions}) => (
|
|
196
|
+
<Flex gap={1}>
|
|
197
|
+
<DropdownMenu
|
|
198
|
+
items={headerActions.map((action) => ({
|
|
199
|
+
text: action.title,
|
|
200
|
+
disabled: action.disabled,
|
|
201
|
+
hidden: action.hidden,
|
|
202
|
+
action: () => action.onClick(location),
|
|
203
|
+
}))}
|
|
204
|
+
/>
|
|
205
|
+
<Button href={`/navigation/${location.cluster}${location.path ?? ''}`} target="_blank">
|
|
206
|
+
Open
|
|
207
|
+
</Button>
|
|
208
|
+
</Flex>
|
|
209
|
+
),
|
|
210
|
+
}}
|
|
211
|
+
/>;
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Without `renderActions`, actions keep the standard button rendering. A custom renderer receives
|
|
215
|
+
the unfiltered action array and owns handling of `hidden`, `disabled`, and clicks; returning
|
|
216
|
+
`null` intentionally leaves the action area empty. In a detail panel the array contains the
|
|
217
|
+
panel actions (or header actions when panel actions are absent), followed by actions supplied by
|
|
218
|
+
the resolved detail config.
|
|
219
|
+
|
|
220
|
+
`getBreadcrumbHref` turns every breadcrumb, including the cluster root and current item, into a
|
|
221
|
+
real link. Plain clicks continue through `onUpdate`, while modified and middle clicks keep native
|
|
222
|
+
browser behavior. URL construction and router integration belong to the application. Breadcrumb
|
|
223
|
+
segments are derived from normalized single-slash paths; the parser does not preserve a Cypress
|
|
224
|
+
`//` prefix.
|
|
225
|
+
|
|
226
|
+
`parentRow.showDuringSearch` defaults to `false`. Set it to `true` to keep the parent navigation
|
|
227
|
+
row available while search results are filtered, including when the result list is empty.
|
|
228
|
+
|
|
175
229
|
## Widgets
|
|
176
230
|
|
|
177
231
|
| Widget | Description |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import { NavigationLocation } from '../../types/navigation';
|
|
2
|
+
import type { GetNavigationBreadcrumbHref, NavigationLocation } from '../../types/navigation';
|
|
3
3
|
import type { LoadPathSuggestions } from '../../types/pathEditor';
|
|
4
4
|
import './Breadcrumbs.scss';
|
|
5
5
|
export type BreadcrumbsProps = {
|
|
@@ -7,6 +7,7 @@ export type BreadcrumbsProps = {
|
|
|
7
7
|
hideResetButton?: boolean;
|
|
8
8
|
className?: string;
|
|
9
9
|
onUpdate: (location: NavigationLocation) => void;
|
|
10
|
+
getBreadcrumbHref?: GetNavigationBreadcrumbHref;
|
|
10
11
|
onLoadSuggestions?: LoadPathSuggestions;
|
|
11
12
|
};
|
|
12
13
|
export declare const Breadcrumbs: FC<BreadcrumbsProps>;
|
|
@@ -63,6 +63,7 @@ var Breadcrumbs = exports.Breadcrumbs = function Breadcrumbs(_ref) {
|
|
|
63
63
|
var location = _ref.location,
|
|
64
64
|
hideResetButton = _ref.hideResetButton,
|
|
65
65
|
onUpdate = _ref.onUpdate,
|
|
66
|
+
getBreadcrumbHref = _ref.getBreadcrumbHref,
|
|
66
67
|
onLoadSuggestions = _ref.onLoadSuggestions,
|
|
67
68
|
className = _ref.className;
|
|
68
69
|
var _useState = (0, _react.useState)(false),
|
|
@@ -142,13 +143,25 @@ var Breadcrumbs = exports.Breadcrumbs = function Breadcrumbs(_ref) {
|
|
|
142
143
|
children: items.map(function (item, index) {
|
|
143
144
|
var _item$path;
|
|
144
145
|
var isLast = index === items.length - 1;
|
|
146
|
+
var itemLocation = {
|
|
147
|
+
cluster: cluster,
|
|
148
|
+
path: item.path
|
|
149
|
+
};
|
|
150
|
+
var href = getBreadcrumbHref === null || getBreadcrumbHref === void 0 ? void 0 : getBreadcrumbHref(itemLocation);
|
|
145
151
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_uikit.Breadcrumbs.Item, {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
+
href: href,
|
|
153
|
+
disabled: isLast && !href,
|
|
154
|
+
onClick: function onClick(event) {
|
|
155
|
+
var isPlainLeftClick = event.button === 0 && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey;
|
|
156
|
+
if (href && !isPlainLeftClick) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
if (href) {
|
|
160
|
+
event.preventDefault();
|
|
161
|
+
}
|
|
162
|
+
if (!isLast) {
|
|
163
|
+
onUpdate(itemLocation);
|
|
164
|
+
}
|
|
152
165
|
},
|
|
153
166
|
children: item.title
|
|
154
167
|
}, (_item$path = item.path) !== null && _item$path !== void 0 ? _item$path : 'root');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_bemCnLite","_interopRequireDefault","_parsePathSegments","_PathEditor","_i18n","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FolderTreeIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","PencilIcon","block","cn","Breadcrumbs","exports","_ref","location","hideResetButton","onUpdate","onLoadSuggestions","className","_useState","useState","_useState2","_slicedToArray","edit","setEdit","cluster","path","ROOT_PATH","undefined","items","title","concat","_toConsumableArray","parsePathSegments","handleReset","handleCancelEdit","handleOnSubmit","nextPath","normalizedPath","endsWith","slice","Flex","grow","minWidth","PathEditor","defaultPath","autoFocus","onApply","onCancel","onBlur","onFocus","event","currentTarget","select","_jsxs","gap","alignItems","Button","view","onClick","i18n","Icon","data","size","length","overflow","Text","color","GravityBreadcrumbs","showRoot","maxItems","map","item","index","_item$path","isLast","Item","disabled"],"sources":["Breadcrumbs.tsx"],"sourcesContent":["import React, {FC, useState} from 'react';\nimport {Button, Flex, Breadcrumbs as GravityBreadcrumbs, Icon, Text} from '@gravity-ui/uikit';\nimport FolderTreeIcon from '@gravity-ui/icons/svgs/folder-tree.svg';\nimport PencilIcon from '@gravity-ui/icons/svgs/pencil.svg';\nimport cn from 'bem-cn-lite';\nimport {parsePathSegments} from './helpers/parsePathSegments';\nimport {NavigationLocation} from '../../types/navigation';\nimport type {LoadPathSuggestions} from '../../types/pathEditor';\nimport {PathEditor} from '../PathEditor';\nimport i18n from './i18n';\nimport './Breadcrumbs.scss';\n\nexport type BreadcrumbsProps = {\n location: NavigationLocation;\n hideResetButton?: boolean;\n className?: string;\n onUpdate: (location: NavigationLocation) => void;\n onLoadSuggestions?: LoadPathSuggestions;\n};\n\nconst block = cn('qp-breadcrumbs');\n\nexport const Breadcrumbs: FC<BreadcrumbsProps> = ({\n location,\n hideResetButton,\n onUpdate,\n onLoadSuggestions,\n className,\n}) => {\n const [edit, setEdit] = useState(false);\n\n const {cluster, path} = location;\n const ROOT_PATH = undefined;\n const items = cluster ? [{path: ROOT_PATH, title: cluster}, ...parsePathSegments(path)] : [];\n\n const handleReset = () => {\n onUpdate({cluster: undefined, path: undefined});\n };\n\n const handleCancelEdit = () => {\n setEdit(false);\n };\n\n const handleOnSubmit = (nextPath: string) => {\n const normalizedPath = nextPath.endsWith('/') ? nextPath.slice(0, -1) : nextPath;\n onUpdate({cluster, path: normalizedPath || undefined});\n setEdit(false);\n };\n\n if (edit) {\n return (\n <Flex grow minWidth={0} className={block(null, className)}>\n <PathEditor\n className={block('path-editor')}\n defaultPath={path ?? ''}\n autoFocus\n cluster={cluster}\n onLoadSuggestions={onLoadSuggestions}\n onApply={handleOnSubmit}\n onCancel={handleCancelEdit}\n onBlur={handleCancelEdit}\n onFocus={(event) => event.currentTarget.select()}\n />\n </Flex>\n );\n }\n\n return (\n <Flex gap={1} alignItems=\"center\" grow minWidth={0} className={block(null, className)}>\n {!hideResetButton && (\n <Button view=\"flat\" onClick={handleReset} aria-label={i18n('action_reset')}>\n <Icon data={FolderTreeIcon} size={16} />\n </Button>\n )}\n {items.length > 0 ? (\n <Flex\n alignItems=\"center\"\n minWidth={0}\n overflow=\"hidden\"\n gap={items.length > 1 ? undefined : 1}\n >\n <Text color=\"secondary\">/</Text>\n <GravityBreadcrumbs showRoot className={block('list')} maxItems={3}>\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n\n return (\n <GravityBreadcrumbs.Item\n key={item.path ?? 'root'}\n disabled={isLast}\n onClick={\n isLast\n ? undefined\n : () => onUpdate({cluster, path: item.path})\n }\n >\n {item.title}\n </GravityBreadcrumbs.Item>\n );\n })}\n </GravityBreadcrumbs>\n <Button\n view=\"flat\"\n className={block('edit-button')}\n onClick={() => setEdit(true)}\n aria-label={i18n('action_edit-path')}\n >\n <Icon data={PencilIcon} size={16} />\n </Button>\n </Flex>\n ) : null}\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_bemCnLite","_interopRequireDefault","_parsePathSegments","_PathEditor","_i18n","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FolderTreeIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","PencilIcon","block","cn","Breadcrumbs","exports","_ref","location","hideResetButton","onUpdate","getBreadcrumbHref","onLoadSuggestions","className","_useState","useState","_useState2","_slicedToArray","edit","setEdit","cluster","path","ROOT_PATH","undefined","items","title","concat","_toConsumableArray","parsePathSegments","handleReset","handleCancelEdit","handleOnSubmit","nextPath","normalizedPath","endsWith","slice","Flex","grow","minWidth","PathEditor","defaultPath","autoFocus","onApply","onCancel","onBlur","onFocus","event","currentTarget","select","_jsxs","gap","alignItems","Button","view","onClick","i18n","Icon","data","size","length","overflow","Text","color","GravityBreadcrumbs","showRoot","maxItems","map","item","index","_item$path","isLast","itemLocation","href","Item","disabled","isPlainLeftClick","button","altKey","ctrlKey","metaKey","shiftKey","preventDefault"],"sources":["Breadcrumbs.tsx"],"sourcesContent":["import React, {FC, useState} from 'react';\nimport {Button, Flex, Breadcrumbs as GravityBreadcrumbs, Icon, Text} from '@gravity-ui/uikit';\nimport FolderTreeIcon from '@gravity-ui/icons/svgs/folder-tree.svg';\nimport PencilIcon from '@gravity-ui/icons/svgs/pencil.svg';\nimport cn from 'bem-cn-lite';\nimport {parsePathSegments} from './helpers/parsePathSegments';\nimport type {GetNavigationBreadcrumbHref, NavigationLocation} from '../../types/navigation';\nimport type {LoadPathSuggestions} from '../../types/pathEditor';\nimport {PathEditor} from '../PathEditor';\nimport i18n from './i18n';\nimport './Breadcrumbs.scss';\n\nexport type BreadcrumbsProps = {\n location: NavigationLocation;\n hideResetButton?: boolean;\n className?: string;\n onUpdate: (location: NavigationLocation) => void;\n getBreadcrumbHref?: GetNavigationBreadcrumbHref;\n onLoadSuggestions?: LoadPathSuggestions;\n};\n\nconst block = cn('qp-breadcrumbs');\n\nexport const Breadcrumbs: FC<BreadcrumbsProps> = ({\n location,\n hideResetButton,\n onUpdate,\n getBreadcrumbHref,\n onLoadSuggestions,\n className,\n}) => {\n const [edit, setEdit] = useState(false);\n\n const {cluster, path} = location;\n const ROOT_PATH = undefined;\n const items = cluster ? [{path: ROOT_PATH, title: cluster}, ...parsePathSegments(path)] : [];\n\n const handleReset = () => {\n onUpdate({cluster: undefined, path: undefined});\n };\n\n const handleCancelEdit = () => {\n setEdit(false);\n };\n\n const handleOnSubmit = (nextPath: string) => {\n const normalizedPath = nextPath.endsWith('/') ? nextPath.slice(0, -1) : nextPath;\n onUpdate({cluster, path: normalizedPath || undefined});\n setEdit(false);\n };\n\n if (edit) {\n return (\n <Flex grow minWidth={0} className={block(null, className)}>\n <PathEditor\n className={block('path-editor')}\n defaultPath={path ?? ''}\n autoFocus\n cluster={cluster}\n onLoadSuggestions={onLoadSuggestions}\n onApply={handleOnSubmit}\n onCancel={handleCancelEdit}\n onBlur={handleCancelEdit}\n onFocus={(event) => event.currentTarget.select()}\n />\n </Flex>\n );\n }\n\n return (\n <Flex gap={1} alignItems=\"center\" grow minWidth={0} className={block(null, className)}>\n {!hideResetButton && (\n <Button view=\"flat\" onClick={handleReset} aria-label={i18n('action_reset')}>\n <Icon data={FolderTreeIcon} size={16} />\n </Button>\n )}\n {items.length > 0 ? (\n <Flex\n alignItems=\"center\"\n minWidth={0}\n overflow=\"hidden\"\n gap={items.length > 1 ? undefined : 1}\n >\n <Text color=\"secondary\">/</Text>\n <GravityBreadcrumbs showRoot className={block('list')} maxItems={3}>\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n const itemLocation = {cluster, path: item.path};\n const href = getBreadcrumbHref?.(itemLocation);\n\n return (\n <GravityBreadcrumbs.Item\n key={item.path ?? 'root'}\n href={href}\n disabled={isLast && !href}\n onClick={(event) => {\n const isPlainLeftClick =\n event.button === 0 &&\n !event.altKey &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.shiftKey;\n\n if (href && !isPlainLeftClick) {\n return;\n }\n\n if (href) {\n event.preventDefault();\n }\n\n if (!isLast) {\n onUpdate(itemLocation);\n }\n }}\n >\n {item.title}\n </GravityBreadcrumbs.Item>\n );\n })}\n </GravityBreadcrumbs>\n <Button\n view=\"flat\"\n className={block('edit-button')}\n onClick={() => setEdit(true)}\n aria-label={i18n('action_edit-path')}\n >\n <Icon data={PencilIcon} size={16} />\n </Button>\n </Flex>\n ) : null}\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { NavigationDetailConfig, NavigationHeaderAction, NavigationLocation } from '../../types/navigation';
|
|
2
|
+
import type { GetNavigationBreadcrumbHref, NavigationDetailConfig, NavigationHeaderAction, NavigationLocation, RenderNavigationHeaderActions } from '../../types/navigation';
|
|
3
3
|
import type { LoadPathSuggestions } from '../../types/pathEditor';
|
|
4
4
|
import './NavigationDetail.scss';
|
|
5
5
|
export type NavigationDetailProps = {
|
|
@@ -8,6 +8,8 @@ export type NavigationDetailProps = {
|
|
|
8
8
|
onUpdate: (location: NavigationLocation) => void;
|
|
9
9
|
onLoadSuggestions?: LoadPathSuggestions;
|
|
10
10
|
actions?: NavigationHeaderAction[];
|
|
11
|
+
renderActions?: RenderNavigationHeaderActions;
|
|
12
|
+
getBreadcrumbHref?: GetNavigationBreadcrumbHref;
|
|
11
13
|
activeTab?: string;
|
|
12
14
|
onTabUpdate?: (tab: string) => void;
|
|
13
15
|
search?: string;
|
|
@@ -33,6 +33,8 @@ var NavigationDetail = exports.NavigationDetail = function NavigationDetail(_ref
|
|
|
33
33
|
onUpdate = _ref.onUpdate,
|
|
34
34
|
onLoadSuggestions = _ref.onLoadSuggestions,
|
|
35
35
|
actions = _ref.actions,
|
|
36
|
+
renderActions = _ref.renderActions,
|
|
37
|
+
getBreadcrumbHref = _ref.getBreadcrumbHref,
|
|
36
38
|
activeTabProp = _ref.activeTab,
|
|
37
39
|
onTabUpdate = _ref.onTabUpdate,
|
|
38
40
|
searchProp = _ref.search,
|
|
@@ -90,6 +92,8 @@ var NavigationDetail = exports.NavigationDetail = function NavigationDetail(_ref
|
|
|
90
92
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_NavigationHeader.NavigationHeader, {
|
|
91
93
|
location: location,
|
|
92
94
|
actions: mergedActions,
|
|
95
|
+
renderActions: renderActions,
|
|
96
|
+
getBreadcrumbHref: getBreadcrumbHref,
|
|
93
97
|
onUpdate: onUpdate,
|
|
94
98
|
onLoadSuggestions: onLoadSuggestions
|
|
95
99
|
}), hasTabs ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_bemCnLite","_interopRequireDefault","_uikit","_NavigationHeader","_SearchWithButtons","_NavigationDetailTabs","_getInitialTab","_getVisibleTabs","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","block","cn","NavigationDetail","exports","_ref","_ref2","_activeTabConfig$rend","_activeTabConfig$rend2","config","location","onUpdate","onLoadSuggestions","actions","activeTabProp","activeTab","onTabUpdate","searchProp","search","onSearchUpdate","className","isTabControlled","undefined","isSearchControlled","visibleTabs","useMemo","getVisibleTabs","tabs","_useState","useState","getInitialTab","defaultTab","_useState2","_slicedToArray","activeTabState","setActiveTabState","_useState3","_useState4","searchState","setSearchState","handleTabUpdate","tab","handleSearchUpdate","value","mergedActions","_config$actions","concat","_toConsumableArray","activeTabConfig","find","id","activeContent","renderContent","searchPlaceholder","content","hasTabs","length","_jsxs","Flex","direction","gap","children","_jsx","NavigationHeader","_Fragment","NavigationDetailTabs","hasSearch","SearchWithButtons","placeholder","emptyContent"],"sources":["NavigationDetail.tsx"],"sourcesContent":["import React, {useMemo, useState} from 'react';\nimport cn from 'bem-cn-lite';\nimport {Flex} from '@gravity-ui/uikit';\nimport {NavigationHeader} from '../NavigationHeader';\nimport {SearchWithButtons} from '../../components/SearchWithButtons';\nimport type {\n NavigationDetailConfig,\n NavigationHeaderAction,\n NavigationLocation,\n} from '../../types/navigation';\nimport type {LoadPathSuggestions} from '../../types/pathEditor';\nimport {NavigationDetailTabs} from './internal/NavigationDetailTabs';\nimport {getInitialTab} from './helpers/getInitialTab';\nimport {getVisibleTabs} from './helpers/getVisibleTabs';\nimport './NavigationDetail.scss';\n\nconst block = cn('qp-navigation-detail');\n\nexport type NavigationDetailProps = {\n config: NavigationDetailConfig;\n location: NavigationLocation;\n onUpdate: (location: NavigationLocation) => void;\n onLoadSuggestions?: LoadPathSuggestions;\n actions?: NavigationHeaderAction[];\n activeTab?: string;\n onTabUpdate?: (tab: string) => void;\n search?: string;\n onSearchUpdate?: (value: string) => void;\n className?: string;\n};\n\nexport const NavigationDetail: React.FC<NavigationDetailProps> = ({\n config,\n location,\n onUpdate,\n onLoadSuggestions,\n actions,\n activeTab: activeTabProp,\n onTabUpdate,\n search: searchProp,\n onSearchUpdate,\n className,\n}) => {\n const isTabControlled = activeTabProp !== undefined;\n const isSearchControlled = searchProp !== undefined;\n\n const visibleTabs = useMemo(() => getVisibleTabs(config.tabs), [config.tabs]);\n\n const [activeTabState, setActiveTabState] = useState(() =>\n getInitialTab(visibleTabs, config.defaultTab),\n );\n const [searchState, setSearchState] = useState('');\n\n const activeTab = isTabControlled ? activeTabProp : activeTabState;\n const search = isSearchControlled ? searchProp : searchState;\n\n const handleTabUpdate = (tab: string) => {\n if (!isTabControlled) {\n setActiveTabState(tab);\n }\n onTabUpdate?.(tab);\n };\n\n const handleSearchUpdate = (value: string) => {\n if (!isSearchControlled) {\n setSearchState(value);\n }\n onSearchUpdate?.(value);\n };\n\n const mergedActions = useMemo(() => {\n if (!actions && !config.actions) {\n return undefined;\n }\n return [...(actions ?? []), ...(config.actions ?? [])];\n }, [actions, config.actions]);\n\n const activeTabConfig = visibleTabs.find((tab) => tab.id === activeTab);\n const activeContent = activeTabConfig\n ? (activeTabConfig.renderContent?.({\n search,\n onSearchUpdate: handleSearchUpdate,\n searchPlaceholder: config.searchPlaceholder,\n }) ??\n activeTabConfig.content ??\n null)\n : null;\n\n const hasTabs = visibleTabs.length > 0;\n\n return (\n <Flex direction=\"column\" gap={2} className={block(null, className)}>\n <NavigationHeader\n location={location}\n actions={mergedActions}\n onUpdate={onUpdate}\n onLoadSuggestions={onLoadSuggestions}\n />\n {hasTabs ? (\n <>\n <NavigationDetailTabs\n tabs={visibleTabs}\n activeTab={activeTab}\n onUpdate={handleTabUpdate}\n className={block('tabs')}\n />\n {config.hasSearch && (\n <SearchWithButtons\n placeholder={config.searchPlaceholder}\n value={search}\n onUpdate={handleSearchUpdate}\n />\n )}\n <div className={block('content')}>{activeContent}</div>\n </>\n ) : (\n config.emptyContent\n )}\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_bemCnLite","_interopRequireDefault","_uikit","_NavigationHeader","_SearchWithButtons","_NavigationDetailTabs","_getInitialTab","_getVisibleTabs","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","block","cn","NavigationDetail","exports","_ref","_ref2","_activeTabConfig$rend","_activeTabConfig$rend2","config","location","onUpdate","onLoadSuggestions","actions","renderActions","getBreadcrumbHref","activeTabProp","activeTab","onTabUpdate","searchProp","search","onSearchUpdate","className","isTabControlled","undefined","isSearchControlled","visibleTabs","useMemo","getVisibleTabs","tabs","_useState","useState","getInitialTab","defaultTab","_useState2","_slicedToArray","activeTabState","setActiveTabState","_useState3","_useState4","searchState","setSearchState","handleTabUpdate","tab","handleSearchUpdate","value","mergedActions","_config$actions","concat","_toConsumableArray","activeTabConfig","find","id","activeContent","renderContent","searchPlaceholder","content","hasTabs","length","_jsxs","Flex","direction","gap","children","_jsx","NavigationHeader","_Fragment","NavigationDetailTabs","hasSearch","SearchWithButtons","placeholder","emptyContent"],"sources":["NavigationDetail.tsx"],"sourcesContent":["import React, {useMemo, useState} from 'react';\nimport cn from 'bem-cn-lite';\nimport {Flex} from '@gravity-ui/uikit';\nimport {NavigationHeader} from '../NavigationHeader';\nimport {SearchWithButtons} from '../../components/SearchWithButtons';\nimport type {\n GetNavigationBreadcrumbHref,\n NavigationDetailConfig,\n NavigationHeaderAction,\n NavigationLocation,\n RenderNavigationHeaderActions,\n} from '../../types/navigation';\nimport type {LoadPathSuggestions} from '../../types/pathEditor';\nimport {NavigationDetailTabs} from './internal/NavigationDetailTabs';\nimport {getInitialTab} from './helpers/getInitialTab';\nimport {getVisibleTabs} from './helpers/getVisibleTabs';\nimport './NavigationDetail.scss';\n\nconst block = cn('qp-navigation-detail');\n\nexport type NavigationDetailProps = {\n config: NavigationDetailConfig;\n location: NavigationLocation;\n onUpdate: (location: NavigationLocation) => void;\n onLoadSuggestions?: LoadPathSuggestions;\n actions?: NavigationHeaderAction[];\n renderActions?: RenderNavigationHeaderActions;\n getBreadcrumbHref?: GetNavigationBreadcrumbHref;\n activeTab?: string;\n onTabUpdate?: (tab: string) => void;\n search?: string;\n onSearchUpdate?: (value: string) => void;\n className?: string;\n};\n\nexport const NavigationDetail: React.FC<NavigationDetailProps> = ({\n config,\n location,\n onUpdate,\n onLoadSuggestions,\n actions,\n renderActions,\n getBreadcrumbHref,\n activeTab: activeTabProp,\n onTabUpdate,\n search: searchProp,\n onSearchUpdate,\n className,\n}) => {\n const isTabControlled = activeTabProp !== undefined;\n const isSearchControlled = searchProp !== undefined;\n\n const visibleTabs = useMemo(() => getVisibleTabs(config.tabs), [config.tabs]);\n\n const [activeTabState, setActiveTabState] = useState(() =>\n getInitialTab(visibleTabs, config.defaultTab),\n );\n const [searchState, setSearchState] = useState('');\n\n const activeTab = isTabControlled ? activeTabProp : activeTabState;\n const search = isSearchControlled ? searchProp : searchState;\n\n const handleTabUpdate = (tab: string) => {\n if (!isTabControlled) {\n setActiveTabState(tab);\n }\n onTabUpdate?.(tab);\n };\n\n const handleSearchUpdate = (value: string) => {\n if (!isSearchControlled) {\n setSearchState(value);\n }\n onSearchUpdate?.(value);\n };\n\n const mergedActions = useMemo(() => {\n if (!actions && !config.actions) {\n return undefined;\n }\n return [...(actions ?? []), ...(config.actions ?? [])];\n }, [actions, config.actions]);\n\n const activeTabConfig = visibleTabs.find((tab) => tab.id === activeTab);\n const activeContent = activeTabConfig\n ? (activeTabConfig.renderContent?.({\n search,\n onSearchUpdate: handleSearchUpdate,\n searchPlaceholder: config.searchPlaceholder,\n }) ??\n activeTabConfig.content ??\n null)\n : null;\n\n const hasTabs = visibleTabs.length > 0;\n\n return (\n <Flex direction=\"column\" gap={2} className={block(null, className)}>\n <NavigationHeader\n location={location}\n actions={mergedActions}\n renderActions={renderActions}\n getBreadcrumbHref={getBreadcrumbHref}\n onUpdate={onUpdate}\n onLoadSuggestions={onLoadSuggestions}\n />\n {hasTabs ? (\n <>\n <NavigationDetailTabs\n tabs={visibleTabs}\n activeTab={activeTab}\n onUpdate={handleTabUpdate}\n className={block('tabs')}\n />\n {config.hasSearch && (\n <SearchWithButtons\n placeholder={config.searchPlaceholder}\n value={search}\n onUpdate={handleSearchUpdate}\n />\n )}\n <div className={block('content')}>{activeContent}</div>\n </>\n ) : (\n config.emptyContent\n )}\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { FC } from 'react';
|
|
2
|
-
import type { NavigationHeaderAction, NavigationLocation } from '../../types/navigation';
|
|
2
|
+
import type { GetNavigationBreadcrumbHref, NavigationHeaderAction, NavigationLocation, RenderNavigationHeaderActions } from '../../types/navigation';
|
|
3
3
|
import type { LoadPathSuggestions } from '../../types/pathEditor';
|
|
4
4
|
export type NavigationHeaderProps = {
|
|
5
5
|
location: NavigationLocation;
|
|
6
6
|
actions?: NavigationHeaderAction[];
|
|
7
|
+
renderActions?: RenderNavigationHeaderActions;
|
|
8
|
+
getBreadcrumbHref?: GetNavigationBreadcrumbHref;
|
|
7
9
|
onUpdate: (location: NavigationLocation) => void;
|
|
8
10
|
onLoadSuggestions?: LoadPathSuggestions;
|
|
9
11
|
className?: string;
|
|
@@ -13,6 +13,8 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
13
13
|
var NavigationHeader = exports.NavigationHeader = function NavigationHeader(_ref) {
|
|
14
14
|
var location = _ref.location,
|
|
15
15
|
actions = _ref.actions,
|
|
16
|
+
renderActions = _ref.renderActions,
|
|
17
|
+
getBreadcrumbHref = _ref.getBreadcrumbHref,
|
|
16
18
|
onUpdate = _ref.onUpdate,
|
|
17
19
|
onLoadSuggestions = _ref.onLoadSuggestions,
|
|
18
20
|
className = _ref.className;
|
|
@@ -24,8 +26,12 @@ var NavigationHeader = exports.NavigationHeader = function NavigationHeader(_ref
|
|
|
24
26
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Breadcrumbs.Breadcrumbs, {
|
|
25
27
|
location: location,
|
|
26
28
|
onUpdate: onUpdate,
|
|
29
|
+
getBreadcrumbHref: getBreadcrumbHref,
|
|
27
30
|
onLoadSuggestions: onLoadSuggestions
|
|
28
|
-
}),
|
|
31
|
+
}), renderActions ? renderActions({
|
|
32
|
+
location: location,
|
|
33
|
+
actions: actions !== null && actions !== void 0 ? actions : []
|
|
34
|
+
}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_NavigationActionButtons.NavigationActionButtons, {
|
|
29
35
|
actions: actions,
|
|
30
36
|
arg: location
|
|
31
37
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_Breadcrumbs","_NavigationActionButtons","_jsxRuntime","e","__esModule","default","NavigationHeader","exports","_ref","location","actions","onUpdate","onLoadSuggestions","className","_jsxs","Flex","gap","justifyContent","alignItems","children","_jsx","Breadcrumbs","NavigationActionButtons","arg"],"sources":["NavigationHeader.tsx"],"sourcesContent":["import React, {FC} from 'react';\nimport {Flex} from '@gravity-ui/uikit';\nimport {Breadcrumbs} from '../../components/Breadcrumbs';\nimport {NavigationActionButtons} from '../../components/NavigationActionButtons';\nimport type {NavigationHeaderAction
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikit","_Breadcrumbs","_NavigationActionButtons","_jsxRuntime","e","__esModule","default","NavigationHeader","exports","_ref","location","actions","renderActions","getBreadcrumbHref","onUpdate","onLoadSuggestions","className","_jsxs","Flex","gap","justifyContent","alignItems","children","_jsx","Breadcrumbs","NavigationActionButtons","arg"],"sources":["NavigationHeader.tsx"],"sourcesContent":["import React, {FC} from 'react';\nimport {Flex} from '@gravity-ui/uikit';\nimport {Breadcrumbs} from '../../components/Breadcrumbs';\nimport {NavigationActionButtons} from '../../components/NavigationActionButtons';\nimport type {\n GetNavigationBreadcrumbHref,\n NavigationHeaderAction,\n NavigationLocation,\n RenderNavigationHeaderActions,\n} from '../../types/navigation';\nimport type {LoadPathSuggestions} from '../../types/pathEditor';\n\nexport type NavigationHeaderProps = {\n location: NavigationLocation;\n actions?: NavigationHeaderAction[];\n renderActions?: RenderNavigationHeaderActions;\n getBreadcrumbHref?: GetNavigationBreadcrumbHref;\n onUpdate: (location: NavigationLocation) => void;\n onLoadSuggestions?: LoadPathSuggestions;\n className?: string;\n};\n\nexport const NavigationHeader: FC<NavigationHeaderProps> = ({\n location,\n actions,\n renderActions,\n getBreadcrumbHref,\n onUpdate,\n onLoadSuggestions,\n className,\n}) => {\n return (\n <Flex gap={2} justifyContent=\"space-between\" alignItems=\"center\" className={className}>\n <Breadcrumbs\n location={location}\n onUpdate={onUpdate}\n getBreadcrumbHref={getBreadcrumbHref}\n onLoadSuggestions={onLoadSuggestions}\n />\n {renderActions ? (\n renderActions({location, actions: actions ?? []})\n ) : (\n <NavigationActionButtons actions={actions} arg={location} />\n )}\n </Flex>\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,wBAAA,GAAAH,OAAA;AAAiF,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAmB1E,IAAMG,gBAA2C,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAA9CA,gBAA2CA,CAAAE,IAAA,EAQlD;EAAA,IAPFC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,aAAa,GAAAH,IAAA,CAAbG,aAAa;IACbC,iBAAiB,GAAAJ,IAAA,CAAjBI,iBAAiB;IACjBC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,iBAAiB,GAAAN,IAAA,CAAjBM,iBAAiB;IACjBC,SAAS,GAAAP,IAAA,CAATO,SAAS;EAET,oBACI,IAAAC,gBAAA,EAACC,WAAI;IAACC,GAAG,EAAE,CAAE;IAACC,cAAc,EAAC,eAAe;IAACC,UAAU,EAAC,QAAQ;IAACL,SAAS,EAAEA,SAAU;IAAAM,QAAA,gBAClF,IAAAC,eAAA,EAACC,wBAAW;MACRd,QAAQ,EAAEA,QAAS;MACnBI,QAAQ,EAAEA,QAAS;MACnBD,iBAAiB,EAAEA,iBAAkB;MACrCE,iBAAiB,EAAEA;IAAkB,CACxC,CAAC,EACDH,aAAa,GACVA,aAAa,CAAC;MAACF,QAAQ,EAARA,QAAQ;MAAEC,OAAO,EAAEA,OAAO,aAAPA,OAAO,cAAPA,OAAO,GAAI;IAAE,CAAC,CAAC,gBAEjD,IAAAY,eAAA,EAACE,gDAAuB;MAACd,OAAO,EAAEA,OAAQ;MAACe,GAAG,EAAEhB;IAAS,CAAE,CAC9D;EAAA,CACC,CAAC;AAEf,CAAC","ignoreList":[]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { NavigationItem, NavigationSortOrder, RenderNavigationItem } from '../../types/navigation';
|
|
2
|
+
import type { NavigationItem, NavigationParentRowConfig, NavigationSortOrder, RenderNavigationItem } from '../../types/navigation';
|
|
3
3
|
import './NavigationItemsList.scss';
|
|
4
4
|
export type NavigationItemsListProps<T extends NavigationItem = NavigationItem> = {
|
|
5
5
|
items: T[];
|
|
6
6
|
path?: string;
|
|
7
7
|
search?: string;
|
|
8
|
+
parentRow?: NavigationParentRowConfig;
|
|
8
9
|
sort?: NavigationSortOrder;
|
|
9
10
|
onSortUpdate?: (sort: NavigationSortOrder) => void;
|
|
10
11
|
titleLabel: string;
|
|
@@ -17,4 +18,4 @@ export type NavigationItemsListProps<T extends NavigationItem = NavigationItem>
|
|
|
17
18
|
onItemClick?: (item: T) => void;
|
|
18
19
|
className?: string;
|
|
19
20
|
};
|
|
20
|
-
export declare const NavigationItemsList: <T extends NavigationItem = NavigationItem>({ items, path, search, sort, onSortUpdate, titleLabel, loading, error, hasMore, onLoadMore, emptyContent, renderRowItem, onItemClick, className, }: NavigationItemsListProps<T>) => React.JSX.Element;
|
|
21
|
+
export declare const NavigationItemsList: <T extends NavigationItem = NavigationItem>({ items, path, search, parentRow: parentRowConfig, sort, onSortUpdate, titleLabel, loading, error, hasMore, onLoadMore, emptyContent, renderRowItem, onItemClick, className, }: NavigationItemsListProps<T>) => React.JSX.Element;
|
|
@@ -25,6 +25,7 @@ var NavigationItemsList = exports.NavigationItemsList = function NavigationItems
|
|
|
25
25
|
var items = _ref.items,
|
|
26
26
|
path = _ref.path,
|
|
27
27
|
search = _ref.search,
|
|
28
|
+
parentRowConfig = _ref.parentRow,
|
|
28
29
|
sort = _ref.sort,
|
|
29
30
|
onSortUpdate = _ref.onSortUpdate,
|
|
30
31
|
titleLabel = _ref.titleLabel,
|
|
@@ -36,7 +37,7 @@ var NavigationItemsList = exports.NavigationItemsList = function NavigationItems
|
|
|
36
37
|
renderRowItem = _ref.renderRowItem,
|
|
37
38
|
_onItemClick = _ref.onItemClick,
|
|
38
39
|
className = _ref.className;
|
|
39
|
-
var parentRow = (0, _useParentRow.useParentRow)(path, search);
|
|
40
|
+
var parentRow = (0, _useParentRow.useParentRow)(path, search, parentRowConfig === null || parentRowConfig === void 0 ? void 0 : parentRowConfig.showDuringSearch);
|
|
40
41
|
var rows = parentRow ? [parentRow].concat((0, _toConsumableArray2.default)(items)) : items;
|
|
41
42
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
42
43
|
className: block(null, className),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_LazyList","_NavigationItemRow","_NavigationItemsListHeader","_NavigationItemsListEmptyState","_useParentRow","_row","_jsxRuntime","e","__esModule","default","block","cn","NavigationItemsList","exports","_ref","items","path","search","sort","onSortUpdate","titleLabel","loading","error","hasMore","onLoadMore","emptyContent","renderRowItem","onItemClick","className","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_bemCnLite","_LazyList","_NavigationItemRow","_NavigationItemsListHeader","_NavigationItemsListEmptyState","_useParentRow","_row","_jsxRuntime","e","__esModule","default","block","cn","NavigationItemsList","exports","_ref","items","path","search","parentRowConfig","parentRow","sort","onSortUpdate","titleLabel","loading","error","hasMore","onLoadMore","emptyContent","renderRowItem","onItemClick","className","useParentRow","showDuringSearch","rows","concat","_toConsumableArray","_jsxs","children","_jsx","NavigationItemsListHeader","LazyList","isEmpty","length","itemHeight","NAVIGATION_ROW_HEIGHT","renderItem","item","isActive","index","_renderRowItem","isParentRow","Boolean","NavigationItemRow","NavigationItemsListEmptyState","_onItemClick","disabled"],"sources":["NavigationItemsList.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport type {\n NavigationItem,\n NavigationParentRowConfig,\n NavigationSortOrder,\n RenderNavigationItem,\n} from '../../types/navigation';\nimport {LazyList} from '../../components/LazyList';\nimport {NavigationItemRow} from '../../components/NavigationItemRow';\nimport {NavigationItemsListHeader} from './internal/NavigationItemsListHeader';\nimport {NavigationItemsListEmptyState} from './internal/NavigationItemsListEmptyState';\nimport {useParentRow} from './internal/useParentRow';\nimport {NAVIGATION_ROW_HEIGHT} from '../../constants/row';\nimport './NavigationItemsList.scss';\n\nconst block = cn('qp-navigation-items-list');\n\nexport type NavigationItemsListProps<T extends NavigationItem = NavigationItem> = {\n items: T[];\n path?: string;\n search?: string;\n parentRow?: NavigationParentRowConfig;\n sort?: NavigationSortOrder;\n onSortUpdate?: (sort: NavigationSortOrder) => void;\n titleLabel: string;\n loading?: boolean;\n error?: React.ReactNode;\n hasMore?: boolean;\n onLoadMore?: () => void;\n emptyContent?: React.ReactNode;\n renderRowItem?: RenderNavigationItem<T>;\n onItemClick?: (item: T) => void;\n className?: string;\n};\n\nexport const NavigationItemsList = <T extends NavigationItem = NavigationItem>({\n items,\n path,\n search,\n parentRow: parentRowConfig,\n sort,\n onSortUpdate,\n titleLabel,\n loading,\n error,\n hasMore,\n onLoadMore,\n emptyContent,\n renderRowItem,\n onItemClick,\n className,\n}: NavigationItemsListProps<T>) => {\n const parentRow = useParentRow(path, search, parentRowConfig?.showDuringSearch);\n\n const rows = (parentRow ? [parentRow as T, ...items] : items) as T[];\n\n return (\n <div className={block(null, className)}>\n <NavigationItemsListHeader\n titleLabel={titleLabel}\n sort={sort}\n onSortUpdate={onSortUpdate}\n className={block('header')}\n />\n <LazyList<T>\n className={block('list')}\n items={rows}\n isEmpty={!items.length}\n itemHeight={() => NAVIGATION_ROW_HEIGHT}\n renderItem={(item, isActive, index) => {\n const isParentRow = Boolean(parentRow) && item === (parentRow as T);\n\n return (\n renderRowItem?.({item, index, isActive, isParentRow}) ?? (\n <NavigationItemRow item={item} />\n )\n );\n }}\n hasMore={hasMore}\n onLoadMore={onLoadMore}\n loading={loading}\n error={error}\n emptyContent={\n <NavigationItemsListEmptyState\n parentRow={parentRow as T | undefined}\n emptyContent={emptyContent}\n renderRowItem={renderRowItem}\n onItemClick={onItemClick}\n />\n }\n onItemClick={(item) => {\n if (!item.disabled) {\n onItemClick?.(item);\n }\n }}\n />\n </div>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { NavigationItem } from '../../../types/navigation';
|
|
2
|
-
export declare function useParentRow(path: string | undefined, search: string | undefined): NavigationItem | undefined;
|
|
2
|
+
export declare function useParentRow(path: string | undefined, search: string | undefined, showDuringSearch?: boolean): NavigationItem | undefined;
|
|
@@ -7,7 +7,8 @@ exports.useParentRow = useParentRow;
|
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _getParentPath = require("../../../helpers/getParentPath");
|
|
9
9
|
function useParentRow(path, search) {
|
|
10
|
-
var
|
|
10
|
+
var showDuringSearch = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
11
|
+
var parentPath = path && path !== '/' && (!search || showDuringSearch) ? (0, _getParentPath.getParentPath)(path) : undefined;
|
|
11
12
|
return (0, _react.useMemo)(function () {
|
|
12
13
|
if (!parentPath) {
|
|
13
14
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_getParentPath","useParentRow","path","search","
|
|
1
|
+
{"version":3,"names":["_react","require","_getParentPath","useParentRow","path","search","showDuringSearch","arguments","length","undefined","parentPath","getParentPath","useMemo","title","kind","hasChildren"],"sources":["useParentRow.ts"],"sourcesContent":["import {useMemo} from 'react';\nimport {NavigationItem} from '../../../types/navigation';\nimport {getParentPath} from '../../../helpers/getParentPath';\n\nexport function useParentRow(\n path: string | undefined,\n search: string | undefined,\n showDuringSearch = false,\n): NavigationItem | undefined {\n const parentPath =\n path && path !== '/' && (!search || showDuringSearch) ? getParentPath(path) : undefined;\n\n return useMemo<NavigationItem | undefined>(() => {\n if (!parentPath) {\n return undefined;\n }\n\n return {\n path: parentPath,\n title: '\\u2026',\n kind: 'folder',\n hasChildren: true,\n };\n }, [parentPath]);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAD,OAAA;AAEO,SAASE,YAAYA,CACxBC,IAAwB,EACxBC,MAA0B,EAEA;EAAA,IAD1BC,gBAAgB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAExB,IAAMG,UAAU,GACZN,IAAI,IAAIA,IAAI,KAAK,GAAG,KAAK,CAACC,MAAM,IAAIC,gBAAgB,CAAC,GAAG,IAAAK,4BAAa,EAACP,IAAI,CAAC,GAAGK,SAAS;EAE3F,OAAO,IAAAG,cAAO,EAA6B,YAAM;IAC7C,IAAI,CAACF,UAAU,EAAE;MACb,OAAOD,SAAS;IACpB;IAEA,OAAO;MACHL,IAAI,EAAEM,UAAU;MAChBG,KAAK,EAAE,QAAQ;MACfC,IAAI,EAAE,QAAQ;MACdC,WAAW,EAAE;IACjB,CAAC;EACL,CAAC,EAAE,CAACL,UAAU,CAAC,CAAC;AACpB","ignoreList":[]}
|
|
@@ -15,6 +15,12 @@ export type NavigationAction<TArg> = {
|
|
|
15
15
|
onClick: (arg: TArg) => void;
|
|
16
16
|
};
|
|
17
17
|
export type NavigationHeaderAction = NavigationAction<NavigationLocation>;
|
|
18
|
+
export type NavigationHeaderActionsRenderContext = {
|
|
19
|
+
location: NavigationLocation;
|
|
20
|
+
actions: NavigationHeaderAction[];
|
|
21
|
+
};
|
|
22
|
+
export type RenderNavigationHeaderActions = (context: NavigationHeaderActionsRenderContext) => ReactNode;
|
|
23
|
+
export type GetNavigationBreadcrumbHref = (location: NavigationLocation) => string | undefined;
|
|
18
24
|
export type NavigationCluster = {
|
|
19
25
|
id: string;
|
|
20
26
|
title: string;
|
|
@@ -141,8 +147,13 @@ export type NavigationListStateConfig = {
|
|
|
141
147
|
};
|
|
142
148
|
export type NavigationHeaderConfig = {
|
|
143
149
|
actions?: NavigationHeaderAction[];
|
|
150
|
+
renderActions?: RenderNavigationHeaderActions;
|
|
151
|
+
getBreadcrumbHref?: GetNavigationBreadcrumbHref;
|
|
144
152
|
onLoadSuggestions?: LoadPathSuggestions;
|
|
145
153
|
};
|
|
154
|
+
export type NavigationParentRowConfig = {
|
|
155
|
+
showDuringSearch?: boolean;
|
|
156
|
+
};
|
|
146
157
|
export type NavigationDetailPanelConfig<TItem extends NavigationItem = NavigationItem> = {
|
|
147
158
|
openedItem?: TItem;
|
|
148
159
|
onItemOpen?: (item: TItem) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["navigation.ts"],"sourcesContent":["import {ReactNode} from 'react';\nimport type {QueryResultColumn, QueryResultFormatterSettings} from './queryResults';\nimport type {LoadPathSuggestions} from './pathEditor';\n\nexport type NavigationLocation = {\n cluster: string | undefined;\n path: string | undefined;\n};\n\nexport type NavigationAction<TArg> = {\n id: string;\n title: string;\n content: ReactNode;\n hidden?: boolean;\n disabled?: boolean;\n qa?: string;\n onClick: (arg: TArg) => void;\n};\n\nexport type NavigationHeaderAction = NavigationAction<NavigationLocation>;\n\nexport type NavigationCluster = {\n id: string;\n title: string;\n icon?: ReactNode;\n color?: string;\n backgroundColor?: string;\n description?: string;\n};\n\nexport type NavigationItemKind = 'folder' | 'file' | 'table' | 'link' | 'unknown';\n\nexport type NavigationItem = {\n path: string;\n title: string;\n icon?: ReactNode;\n kind?: NavigationItemKind;\n targetPathBroken?: boolean;\n hasChildren?: boolean;\n disabled?: boolean;\n};\n\nexport type NavigationSortOrder = 'asc' | 'desc';\n\nexport type NavigationItemRowRenderData<T extends NavigationItem = NavigationItem> = {\n item: T;\n index: number;\n isActive: boolean;\n isParentRow: boolean;\n};\n\nexport type NavigationClusterRowRenderData<T extends NavigationCluster = NavigationCluster> = {\n cluster: T;\n index: number;\n isActive: boolean;\n};\n\nexport type RenderNavigationItem<T extends NavigationItem = NavigationItem> = (\n data: NavigationItemRowRenderData<T>,\n) => ReactNode;\n\nexport type RenderNavigationCluster<T extends NavigationCluster = NavigationCluster> = (\n data: NavigationClusterRowRenderData<T>,\n) => ReactNode;\n\nexport type NavigationDetailTabRenderContext = {\n search: string;\n onSearchUpdate?: (value: string) => void;\n searchPlaceholder?: string;\n};\n\nexport type NavigationDetailTab = {\n id: string;\n title: string;\n content?: ReactNode;\n renderContent?: (ctx: NavigationDetailTabRenderContext) => ReactNode;\n hidden?: boolean;\n disabled?: boolean;\n};\n\nexport type NavigationAsyncConfig = {\n loading?: boolean;\n loaded?: boolean;\n errorContent?: ReactNode;\n};\n\nexport type NavigationSchemaSortOrder = 'ascending' | 'descending';\n\nexport type NavigationSchemaColumn = {\n name: string;\n type?: string;\n sortOrder?: NavigationSchemaSortOrder;\n required?: boolean;\n [key: string]: unknown;\n};\n\nexport type NavigationSchemaConfig<\n TColumn extends NavigationSchemaColumn = NavigationSchemaColumn,\n> = NavigationAsyncConfig & {\n columns: TColumn[];\n};\n\nexport type NavigationCellValue = ReactNode;\n\nexport type NavigationPreviewRow = Record<string, NavigationCellValue>;\n\nexport type NavigationPreviewColumn<TRow extends NavigationPreviewRow = NavigationPreviewRow> =\n string | QueryResultColumn<TRow>;\n\nexport type NavigationPreviewConfig<TRow extends NavigationPreviewRow = NavigationPreviewRow> =\n NavigationAsyncConfig & {\n columns: Array<NavigationPreviewColumn<TRow>>;\n rows: TRow[];\n };\n\nexport type NavigationPreviewFormatterConfig = {\n /** Applied when every displayed preview column declares a YQL type. */\n formatterSettings?: QueryResultFormatterSettings;\n maxVisibleLines?: number;\n};\n\nexport type NavigationViewRow = NavigationPreviewRow;\n\nexport type NavigationViewSectionAction<TRow extends NavigationViewRow = NavigationViewRow> =\n NavigationAction<NavigationViewSection<TRow>>;\n\nexport type NavigationViewSection<TRow extends NavigationViewRow = NavigationViewRow> =\n NavigationAsyncConfig & {\n id: string;\n title: ReactNode;\n columns: string[];\n rows: TRow[];\n expanded?: boolean;\n defaultExpanded?: boolean;\n onExpandedChange?: (expanded: boolean) => void;\n actions?: Array<NavigationViewSectionAction<TRow>>;\n };\n\nexport type NavigationViewConfig<TRow extends NavigationViewRow = NavigationViewRow> =\n NavigationAsyncConfig & {\n sections: Array<NavigationViewSection<TRow>>;\n };\n\nexport type NavigationMetaItem = {\n name: string;\n value: NavigationCellValue;\n [key: string]: unknown;\n};\n\nexport type NavigationMetaGroup<TItem extends NavigationMetaItem = NavigationMetaItem> = {\n title?: string;\n items: TItem[];\n};\n\nexport type NavigationMetaConfig<TItem extends NavigationMetaItem = NavigationMetaItem> =\n NavigationAsyncConfig & {\n groups: Array<NavigationMetaGroup<TItem>>;\n };\n\nexport type NavigationDetailConfig = {\n tabs: NavigationDetailTab[];\n defaultTab?: string;\n hasSearch?: boolean;\n searchPlaceholder?: string;\n actions?: NavigationHeaderAction[];\n emptyContent?: ReactNode;\n};\n\nexport type ResolveNavigationDetail<T extends NavigationItem = NavigationItem> = (\n item: T,\n) => NavigationDetailConfig | undefined;\n\nexport type NavigationDetailConfigFactory<T extends NavigationItem = NavigationItem> = (\n item: T,\n) => NavigationDetailConfig;\n\nexport type NavigationSearchConfig = {\n value?: string;\n onUpdate?: (value: string) => void;\n};\n\nexport type NavigationSortConfig = {\n value?: NavigationSortOrder;\n onUpdate?: (sort: NavigationSortOrder) => void;\n};\n\nexport type NavigationListStateConfig = {\n loading?: boolean;\n error?: boolean | ReactNode;\n hasMore?: boolean;\n onLoadMore?: () => void;\n};\n\nexport type NavigationHeaderConfig = {\n actions?: NavigationHeaderAction[];\n onLoadSuggestions?: LoadPathSuggestions;\n};\n\nexport type NavigationDetailPanelConfig<TItem extends NavigationItem = NavigationItem> = {\n openedItem?: TItem;\n onItemOpen?: (item: TItem) => void;\n onClose?: () => void;\n resolve?: ResolveNavigationDetail<TItem>;\n search?: string;\n onSearchUpdate?: (value: string) => void;\n activeTab?: string;\n onTabUpdate?: (tab: string) => void;\n actions?: NavigationHeaderAction[];\n};\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":[],"sources":["navigation.ts"],"sourcesContent":["import {ReactNode} from 'react';\nimport type {QueryResultColumn, QueryResultFormatterSettings} from './queryResults';\nimport type {LoadPathSuggestions} from './pathEditor';\n\nexport type NavigationLocation = {\n cluster: string | undefined;\n path: string | undefined;\n};\n\nexport type NavigationAction<TArg> = {\n id: string;\n title: string;\n content: ReactNode;\n hidden?: boolean;\n disabled?: boolean;\n qa?: string;\n onClick: (arg: TArg) => void;\n};\n\nexport type NavigationHeaderAction = NavigationAction<NavigationLocation>;\n\nexport type NavigationHeaderActionsRenderContext = {\n location: NavigationLocation;\n actions: NavigationHeaderAction[];\n};\n\nexport type RenderNavigationHeaderActions = (\n context: NavigationHeaderActionsRenderContext,\n) => ReactNode;\n\nexport type GetNavigationBreadcrumbHref = (location: NavigationLocation) => string | undefined;\n\nexport type NavigationCluster = {\n id: string;\n title: string;\n icon?: ReactNode;\n color?: string;\n backgroundColor?: string;\n description?: string;\n};\n\nexport type NavigationItemKind = 'folder' | 'file' | 'table' | 'link' | 'unknown';\n\nexport type NavigationItem = {\n path: string;\n title: string;\n icon?: ReactNode;\n kind?: NavigationItemKind;\n targetPathBroken?: boolean;\n hasChildren?: boolean;\n disabled?: boolean;\n};\n\nexport type NavigationSortOrder = 'asc' | 'desc';\n\nexport type NavigationItemRowRenderData<T extends NavigationItem = NavigationItem> = {\n item: T;\n index: number;\n isActive: boolean;\n isParentRow: boolean;\n};\n\nexport type NavigationClusterRowRenderData<T extends NavigationCluster = NavigationCluster> = {\n cluster: T;\n index: number;\n isActive: boolean;\n};\n\nexport type RenderNavigationItem<T extends NavigationItem = NavigationItem> = (\n data: NavigationItemRowRenderData<T>,\n) => ReactNode;\n\nexport type RenderNavigationCluster<T extends NavigationCluster = NavigationCluster> = (\n data: NavigationClusterRowRenderData<T>,\n) => ReactNode;\n\nexport type NavigationDetailTabRenderContext = {\n search: string;\n onSearchUpdate?: (value: string) => void;\n searchPlaceholder?: string;\n};\n\nexport type NavigationDetailTab = {\n id: string;\n title: string;\n content?: ReactNode;\n renderContent?: (ctx: NavigationDetailTabRenderContext) => ReactNode;\n hidden?: boolean;\n disabled?: boolean;\n};\n\nexport type NavigationAsyncConfig = {\n loading?: boolean;\n loaded?: boolean;\n errorContent?: ReactNode;\n};\n\nexport type NavigationSchemaSortOrder = 'ascending' | 'descending';\n\nexport type NavigationSchemaColumn = {\n name: string;\n type?: string;\n sortOrder?: NavigationSchemaSortOrder;\n required?: boolean;\n [key: string]: unknown;\n};\n\nexport type NavigationSchemaConfig<\n TColumn extends NavigationSchemaColumn = NavigationSchemaColumn,\n> = NavigationAsyncConfig & {\n columns: TColumn[];\n};\n\nexport type NavigationCellValue = ReactNode;\n\nexport type NavigationPreviewRow = Record<string, NavigationCellValue>;\n\nexport type NavigationPreviewColumn<TRow extends NavigationPreviewRow = NavigationPreviewRow> =\n string | QueryResultColumn<TRow>;\n\nexport type NavigationPreviewConfig<TRow extends NavigationPreviewRow = NavigationPreviewRow> =\n NavigationAsyncConfig & {\n columns: Array<NavigationPreviewColumn<TRow>>;\n rows: TRow[];\n };\n\nexport type NavigationPreviewFormatterConfig = {\n /** Applied when every displayed preview column declares a YQL type. */\n formatterSettings?: QueryResultFormatterSettings;\n maxVisibleLines?: number;\n};\n\nexport type NavigationViewRow = NavigationPreviewRow;\n\nexport type NavigationViewSectionAction<TRow extends NavigationViewRow = NavigationViewRow> =\n NavigationAction<NavigationViewSection<TRow>>;\n\nexport type NavigationViewSection<TRow extends NavigationViewRow = NavigationViewRow> =\n NavigationAsyncConfig & {\n id: string;\n title: ReactNode;\n columns: string[];\n rows: TRow[];\n expanded?: boolean;\n defaultExpanded?: boolean;\n onExpandedChange?: (expanded: boolean) => void;\n actions?: Array<NavigationViewSectionAction<TRow>>;\n };\n\nexport type NavigationViewConfig<TRow extends NavigationViewRow = NavigationViewRow> =\n NavigationAsyncConfig & {\n sections: Array<NavigationViewSection<TRow>>;\n };\n\nexport type NavigationMetaItem = {\n name: string;\n value: NavigationCellValue;\n [key: string]: unknown;\n};\n\nexport type NavigationMetaGroup<TItem extends NavigationMetaItem = NavigationMetaItem> = {\n title?: string;\n items: TItem[];\n};\n\nexport type NavigationMetaConfig<TItem extends NavigationMetaItem = NavigationMetaItem> =\n NavigationAsyncConfig & {\n groups: Array<NavigationMetaGroup<TItem>>;\n };\n\nexport type NavigationDetailConfig = {\n tabs: NavigationDetailTab[];\n defaultTab?: string;\n hasSearch?: boolean;\n searchPlaceholder?: string;\n actions?: NavigationHeaderAction[];\n emptyContent?: ReactNode;\n};\n\nexport type ResolveNavigationDetail<T extends NavigationItem = NavigationItem> = (\n item: T,\n) => NavigationDetailConfig | undefined;\n\nexport type NavigationDetailConfigFactory<T extends NavigationItem = NavigationItem> = (\n item: T,\n) => NavigationDetailConfig;\n\nexport type NavigationSearchConfig = {\n value?: string;\n onUpdate?: (value: string) => void;\n};\n\nexport type NavigationSortConfig = {\n value?: NavigationSortOrder;\n onUpdate?: (sort: NavigationSortOrder) => void;\n};\n\nexport type NavigationListStateConfig = {\n loading?: boolean;\n error?: boolean | ReactNode;\n hasMore?: boolean;\n onLoadMore?: () => void;\n};\n\nexport type NavigationHeaderConfig = {\n actions?: NavigationHeaderAction[];\n renderActions?: RenderNavigationHeaderActions;\n getBreadcrumbHref?: GetNavigationBreadcrumbHref;\n onLoadSuggestions?: LoadPathSuggestions;\n};\n\nexport type NavigationParentRowConfig = {\n showDuringSearch?: boolean;\n};\n\nexport type NavigationDetailPanelConfig<TItem extends NavigationItem = NavigationItem> = {\n openedItem?: TItem;\n onItemOpen?: (item: TItem) => void;\n onClose?: () => void;\n resolve?: ResolveNavigationDetail<TItem>;\n search?: string;\n onSearchUpdate?: (value: string) => void;\n activeTab?: string;\n onTabUpdate?: (tab: string) => void;\n actions?: NavigationHeaderAction[];\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { NavigationCluster, NavigationDetailPanelConfig, NavigationHeaderConfig, NavigationItem, NavigationListStateConfig, NavigationLocation, NavigationSearchConfig, NavigationSortConfig, RenderNavigationCluster, RenderNavigationItem } from '../../types/navigation';
|
|
2
|
+
import type { NavigationCluster, NavigationDetailPanelConfig, NavigationHeaderConfig, NavigationItem, NavigationListStateConfig, NavigationLocation, NavigationParentRowConfig, NavigationSearchConfig, NavigationSortConfig, RenderNavigationCluster, RenderNavigationItem } from '../../types/navigation';
|
|
3
3
|
import './QueriesNavigation.scss';
|
|
4
4
|
export type QueriesNavigationProps<TItem extends NavigationItem = NavigationItem, TCluster extends NavigationCluster = NavigationCluster> = {
|
|
5
5
|
location: NavigationLocation;
|
|
@@ -11,10 +11,11 @@ export type QueriesNavigationProps<TItem extends NavigationItem = NavigationItem
|
|
|
11
11
|
sort?: NavigationSortConfig;
|
|
12
12
|
listState?: NavigationListStateConfig;
|
|
13
13
|
detail?: NavigationDetailPanelConfig<TItem>;
|
|
14
|
+
parentRow?: NavigationParentRowConfig;
|
|
14
15
|
renderClusterItem?: RenderNavigationCluster<TCluster>;
|
|
15
16
|
renderNavigationItem?: RenderNavigationItem<TItem>;
|
|
16
17
|
onClusterClick?: (cluster: TCluster) => void;
|
|
17
18
|
onItemClick?: (item: TItem) => void;
|
|
18
19
|
className?: string;
|
|
19
20
|
};
|
|
20
|
-
export declare const QueriesNavigation: <TItem extends NavigationItem = NavigationItem, TCluster extends NavigationCluster = NavigationCluster>({ location, onUpdate, clusters, items, header, search, sort, listState, detail, renderClusterItem, renderNavigationItem, onClusterClick, onItemClick, className, }: QueriesNavigationProps<TItem, TCluster>) => React.JSX.Element;
|
|
21
|
+
export declare const QueriesNavigation: <TItem extends NavigationItem = NavigationItem, TCluster extends NavigationCluster = NavigationCluster>({ location, onUpdate, clusters, items, header, search, sort, listState, detail, parentRow, renderClusterItem, renderNavigationItem, onClusterClick, onItemClick, className, }: QueriesNavigationProps<TItem, TCluster>) => React.JSX.Element;
|
|
@@ -35,6 +35,7 @@ var QueriesNavigation = exports.QueriesNavigation = function QueriesNavigation(_
|
|
|
35
35
|
sort = _ref.sort,
|
|
36
36
|
listState = _ref.listState,
|
|
37
37
|
detail = _ref.detail,
|
|
38
|
+
parentRow = _ref.parentRow,
|
|
38
39
|
renderClusterItem = _ref.renderClusterItem,
|
|
39
40
|
renderNavigationItem = _ref.renderNavigationItem,
|
|
40
41
|
onClusterClick = _ref.onClusterClick,
|
|
@@ -47,6 +48,8 @@ var QueriesNavigation = exports.QueriesNavigation = function QueriesNavigation(_
|
|
|
47
48
|
onLoadMore = _ref2.onLoadMore;
|
|
48
49
|
var _ref3 = header !== null && header !== void 0 ? header : {},
|
|
49
50
|
actions = _ref3.actions,
|
|
51
|
+
renderActions = _ref3.renderActions,
|
|
52
|
+
getBreadcrumbHref = _ref3.getBreadcrumbHref,
|
|
50
53
|
onLoadSuggestions = _ref3.onLoadSuggestions;
|
|
51
54
|
var _ref4 = search !== null && search !== void 0 ? search : {},
|
|
52
55
|
searchValue = _ref4.value,
|
|
@@ -123,6 +126,8 @@ var QueriesNavigation = exports.QueriesNavigation = function QueriesNavigation(_
|
|
|
123
126
|
path: body.item.path
|
|
124
127
|
},
|
|
125
128
|
actions: resolvedDetailActions,
|
|
129
|
+
renderActions: renderActions,
|
|
130
|
+
getBreadcrumbHref: getBreadcrumbHref,
|
|
126
131
|
onUpdate: handleNavigate,
|
|
127
132
|
onLoadSuggestions: onLoadSuggestions,
|
|
128
133
|
search: detailSearch,
|
|
@@ -139,6 +144,8 @@ var QueriesNavigation = exports.QueriesNavigation = function QueriesNavigation(_
|
|
|
139
144
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_NavigationHeader.NavigationHeader, {
|
|
140
145
|
location: location,
|
|
141
146
|
actions: actions,
|
|
147
|
+
renderActions: renderActions,
|
|
148
|
+
getBreadcrumbHref: getBreadcrumbHref,
|
|
142
149
|
onUpdate: handleNavigate,
|
|
143
150
|
onLoadSuggestions: onLoadSuggestions
|
|
144
151
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_SearchWithButtons.SearchWithButtons, {
|
|
@@ -160,6 +167,7 @@ var QueriesNavigation = exports.QueriesNavigation = function QueriesNavigation(_
|
|
|
160
167
|
items: items,
|
|
161
168
|
path: location.path,
|
|
162
169
|
search: searchValue,
|
|
170
|
+
parentRow: parentRow,
|
|
163
171
|
sort: sortValue,
|
|
164
172
|
onSortUpdate: onSortUpdate,
|
|
165
173
|
titleLabel: (0, _i18n.default)('title_name'),
|