@gravity-ui/querieskit 1.6.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 +88 -3
- 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/components/QueryGraph/internal/QueryGraphCanvasBlock.js +3 -1
- package/build/cjs/components/QueryGraph/internal/QueryGraphCanvasBlock.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/modules/TutorialRow/TutorialRow.d.ts +3 -1
- package/build/cjs/modules/TutorialRow/TutorialRow.js +3 -1
- package/build/cjs/modules/TutorialRow/TutorialRow.js.map +1 -1
- package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.d.ts +3 -1
- package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.js +3 -1
- package/build/cjs/modules/TutorialSearchRow/TutorialSearchRow.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/cjs/widgets/TutorialsHistory/TutorialRowContent.d.ts +1 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.js +6 -3
- package/build/cjs/widgets/TutorialsHistory/TutorialRowContent.js.map +1 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.d.ts +7 -2
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js +13 -3
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.stories.d.ts +5 -0
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.stories.js +244 -1
- package/build/cjs/widgets/TutorialsHistory/TutorialsHistory.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/components/QueryGraph/internal/QueryGraphCanvasBlock.js +3 -1
- package/build/esm/components/QueryGraph/internal/QueryGraphCanvasBlock.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/modules/TutorialRow/TutorialRow.d.ts +3 -1
- package/build/esm/modules/TutorialRow/TutorialRow.js +3 -1
- package/build/esm/modules/TutorialRow/TutorialRow.js.map +1 -1
- package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.d.ts +3 -1
- package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.js +3 -1
- package/build/esm/modules/TutorialSearchRow/TutorialSearchRow.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/build/esm/widgets/TutorialsHistory/TutorialRowContent.d.ts +1 -1
- package/build/esm/widgets/TutorialsHistory/TutorialRowContent.js +6 -3
- package/build/esm/widgets/TutorialsHistory/TutorialRowContent.js.map +1 -1
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.d.ts +7 -2
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js +13 -3
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.js.map +1 -1
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.stories.d.ts +5 -0
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.stories.js +244 -1
- package/build/esm/widgets/TutorialsHistory/TutorialsHistory.stories.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","QueriesNavigation","createNavigationDetailResolver","createTableDetailConfig","action","mockLoadPathSuggestions","FileArrowRightOutIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","ArrowUpRightFromSquareIcon","CodeIcon","GearIcon","Flex","Icon","Label","Text","ClusterRow","NavigationItemRow","SCHEMA_COLUMNS","PREVIEW_COLUMNS","PREVIEW_ROWS","META_GROUPS","VIEW_COLUMNS","makeViewRows","jsx","jsxs","_jsxs","meta","title","component","tags","parameters","layout","onBreadcrumbsUpdate","logAction","defaultActions","id","content","data","size","onClick","location","CLUSTERS","color","backgroundColor","description","ITEM_NAMES","kind","hasChildren","disabled","getPathDepth","path","split","filter","Boolean","length","getItemsForPath","sort","arguments","undefined","concat","_ref","_ref2","leftTitle","rightTitle","localeCompare","map","_ref3","TABLE_VIEW_SECTIONS_WITH_ACTIONS","columns","rows","loaded","defaultExpanded","actions","section","useLocationState","initial","_useState","_useState2","_slicedToArray","setLocation","onUpdate","next","useNavigationStoryState","_useLocationState","_useState3","_useState4","setSort","items","ClustersToItemsStory","_useNavigationStorySt","cluster","_useState5","_useState6","openedItem","setOpenedItem","resolveDetail","table","resolveSchema","resolvePreview","resolveMeta","groups","resolveView","sections","style","header","onLoadSuggestions","clusters","value","detail","onItemOpen","item","onClose","resolve","onClusterClick","onItemClick","LoadingStory","_useLocationState2","listState","loading","EmptyStory","_useLocationState3","EmptySearchStory","_useLocationState4","_useState7","_useState8","search","setSearch","ErrorStory","_useLocationState5","error","CUSTOM_CLUSTERS","_cluster$description","env","getCustomItemsForPath","index","owner","CustomRowsStory","_useLocationState6","_useState9","_useState0","renderClusterItem","_ref4","alignItems","gap","padding","theme","renderNavigationItem","_ref5","isParentRow","variant","CustomDetailResolverStory","_useLocationState7","_useState1","_useState10","file","tabs","hasSearch","ClustersToItems","render","Loading","Empty","EmptySearch","Error","CustomRows","CustomDetailResolver"],"sources":["QueriesNavigation.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {QueriesNavigation} from './QueriesNavigation';\nimport {createNavigationDetailResolver} from './helpers/createNavigationDetailResolver';\nimport {createTableDetailConfig} from './helpers/createTableDetailConfig';\nimport {action} from 'storybook/actions';\nimport {\n NavigationCluster,\n NavigationHeaderAction,\n NavigationItem,\n NavigationLocation,\n NavigationSortOrder,\n NavigationViewSection,\n} from '../../types/navigation';\nimport {mockLoadPathSuggestions} from '../../components/PathEditor/PathEditor.stories.helpers';\nimport FileArrowRightOutIcon from '@gravity-ui/icons/svgs/file-arrow-right-out.svg';\nimport ArrowUpRightFromSquareIcon from '@gravity-ui/icons/svgs/arrow-up-right-from-square.svg';\nimport CodeIcon from '@gravity-ui/icons/svgs/code.svg';\nimport GearIcon from '@gravity-ui/icons/svgs/gear.svg';\nimport {Flex, Icon, Label, Text} from '@gravity-ui/uikit';\nimport {ClusterRow, NavigationItemRow} from '../../components';\nimport {SCHEMA_COLUMNS} from '../../modules/NavigationSchema/story/mockData';\nimport {PREVIEW_COLUMNS, PREVIEW_ROWS} from '../../modules/NavigationPreview/story/mockData';\nimport {META_GROUPS} from '../../modules/NavigationMeta/story/mockData';\nimport {VIEW_COLUMNS, makeViewRows} from '../../modules/NavigationView/story/mockData';\n\nconst meta: Meta<typeof QueriesNavigation> = {\n title: 'Widgets/QueriesNavigation',\n component: QueriesNavigation,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n};\n\nconst onBreadcrumbsUpdate = action('onUpdate');\nconst logAction = action('actionClick');\n\nconst defaultActions: NavigationHeaderAction[] = [\n {\n id: 'paste',\n title: 'Paste path',\n content: <Icon data={FileArrowRightOutIcon} size={16} />,\n onClick: (location) => logAction('Paste', location),\n },\n {\n id: 'open',\n title: 'Open in new tab',\n content: <Icon data={ArrowUpRightFromSquareIcon} size={16} />,\n onClick: (location) => logAction('Open', location),\n },\n];\n\nconst CLUSTERS: NavigationCluster[] = [\n {\n id: 'northstar',\n title: 'Northstar',\n color: 'white',\n backgroundColor: 'rgba(218, 68, 83, 1)',\n description: 'Production',\n },\n {\n id: 'cedar',\n title: 'Cedar',\n color: 'white',\n backgroundColor: 'rgba(127, 130, 133, 1)',\n description: 'Production',\n },\n {\n id: 'sequoia',\n title: 'Sequoia',\n color: 'white',\n backgroundColor: 'rgba(215, 112, 173, 1)',\n description: 'Production',\n },\n {\n id: 'pioneer-test',\n title: 'Pioneer-Test',\n color: 'white',\n backgroundColor: 'rgba(150, 122, 220, 1)',\n description: 'Testing',\n },\n {\n id: 'orbit',\n title: 'Orbit',\n color: 'white',\n backgroundColor: 'rgba(233, 87, 63, 1)',\n description: 'Production',\n },\n {\n id: 'lighthouse',\n title: 'Lighthouse',\n color: 'white',\n backgroundColor: 'rgba(67, 68, 69, 1)',\n description: 'Production',\n },\n {\n id: 'northstar-gnd',\n title: 'Northstar-GND',\n color: 'white',\n backgroundColor: 'rgba(140, 193, 82, 1)',\n description: 'tesdting',\n },\n {\n id: 'harbor',\n title: 'Harbor',\n color: 'white',\n backgroundColor: 'rgba(55, 188, 155, 1)',\n description: 'Production',\n },\n {\n id: 'cedar-gnd',\n title: 'Cedar-GND',\n color: 'white',\n backgroundColor: 'rgba(140, 193, 82, 1)',\n description: 'Prestable',\n },\n];\n\nconst ITEM_NAMES: Array<Pick<NavigationItem, 'title' | 'kind' | 'hasChildren' | 'disabled'>> = [\n {title: 'abcdapter', kind: 'folder', hasChildren: true},\n {title: 'access_control_object', kind: 'file'},\n {title: 'account_tree', kind: 'folder', hasChildren: true, disabled: true},\n {title: 'cell_balancers', kind: 'folder', hasChildren: true},\n {title: 'clusters', kind: 'folder', hasChildren: true},\n {title: 'doctors_table', kind: 'table'},\n];\n\nconst getPathDepth = (path: string | undefined): number =>\n (path ?? '').split('/').filter(Boolean).length;\n\nconst getItemsForPath = (\n path: string | undefined,\n sort: NavigationSortOrder = 'asc',\n): NavigationItem[] => {\n if (getPathDepth(path) > 1) {\n return [];\n }\n\n return [...ITEM_NAMES]\n .sort(({title: leftTitle}, {title: rightTitle}) =>\n sort === 'asc'\n ? leftTitle.localeCompare(rightTitle)\n : rightTitle.localeCompare(leftTitle),\n )\n .map(({title, kind, hasChildren, disabled}) => ({\n path: `${path ?? ''}/${title}`,\n title,\n kind,\n hasChildren,\n disabled,\n }));\n};\n\nexport default meta;\ntype Story = StoryObj<typeof QueriesNavigation>;\n\nconst TABLE_VIEW_SECTIONS_WITH_ACTIONS: NavigationViewSection[] = [\n {\n id: 'general',\n title: 'General',\n columns: VIEW_COLUMNS,\n rows: makeViewRows(2),\n loaded: true,\n defaultExpanded: true,\n actions: [\n {\n id: 'code',\n title: 'Show code',\n content: <Icon data={CodeIcon} size={14} />,\n onClick: (section) => logAction('ViewShowCode', section.id),\n },\n {\n id: 'settings',\n title: 'Settings',\n content: <Icon data={GearIcon} size={14} />,\n onClick: (section) => logAction('ViewSettings', section.id),\n },\n ],\n },\n {\n id: 'attributes',\n title: 'Attributes',\n columns: VIEW_COLUMNS,\n rows: makeViewRows(2),\n loaded: true,\n },\n];\n\nconst useLocationState = (initial: NavigationLocation) => {\n const [location, setLocation] = useState<NavigationLocation>(initial);\n const onUpdate = (next: NavigationLocation) => {\n onBreadcrumbsUpdate(next);\n setLocation(next);\n };\n return {location, onUpdate};\n};\n\nconst useNavigationStoryState = (initial: NavigationLocation) => {\n const {location, onUpdate} = useLocationState(initial);\n const [sort, setSort] = useState<NavigationSortOrder>('asc');\n const items = getItemsForPath(location.path, sort);\n\n return {location, onUpdate, sort, setSort, items};\n};\n\nconst ClustersToItemsStory = () => {\n const {location, onUpdate, sort, setSort, items} = useNavigationStoryState({\n cluster: undefined,\n path: undefined,\n });\n const [openedItem, setOpenedItem] = useState<NavigationItem | undefined>(undefined);\n\n const resolveDetail = createNavigationDetailResolver({\n table: createTableDetailConfig({\n resolveSchema: () => ({columns: SCHEMA_COLUMNS, loaded: true}),\n resolvePreview: () => ({\n columns: PREVIEW_COLUMNS,\n rows: PREVIEW_ROWS,\n loaded: true,\n }),\n resolveMeta: () => ({groups: META_GROUPS, loaded: true}),\n resolveView: () => ({sections: TABLE_VIEW_SECTIONS_WITH_ACTIONS, loaded: true}),\n }),\n });\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={CLUSTERS}\n items={items}\n sort={{value: sort, onUpdate: setSort}}\n detail={{\n openedItem,\n onItemOpen: (item) => {\n action('onItemOpen')(item);\n setOpenedItem(item);\n },\n onClose: () => setOpenedItem(undefined),\n resolve: resolveDetail,\n }}\n onClusterClick={action('onClusterClick')}\n onItemClick={action('onItemClick')}\n />\n </div>\n );\n};\n\nconst LoadingStory = () => {\n const {location, onUpdate} = useLocationState({cluster: undefined, path: undefined});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={[]}\n listState={{loading: true}}\n />\n </div>\n );\n};\n\nconst EmptyStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home/empty'});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n items={[]}\n />\n </div>\n );\n};\n\nconst EmptySearchStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home'});\n const [search, setSearch] = useState('no-such-item');\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n items={[]}\n search={{value: search, onUpdate: setSearch}}\n />\n </div>\n );\n};\n\nconst ErrorStory = () => {\n const {location, onUpdate} = useLocationState({cluster: undefined, path: undefined});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={[]}\n listState={{error: 'Custom load error message'}}\n />\n </div>\n );\n};\n\ntype CustomCluster = NavigationCluster & {env: string};\ntype CustomItem = NavigationItem & {owner?: string};\n\nconst CUSTOM_CLUSTERS: CustomCluster[] = CLUSTERS.map((cluster) => ({\n ...cluster,\n env: cluster.description ?? 'Unknown',\n}));\n\nconst getCustomItemsForPath = (path: string | undefined, sort: NavigationSortOrder): CustomItem[] =>\n getItemsForPath(path, sort).map((item, index) => ({\n ...item,\n owner: index % 2 === 0 ? 'robot' : 'user',\n }));\n\nconst CustomRowsStory = () => {\n const {location, onUpdate} = useLocationState({cluster: undefined, path: undefined});\n const [sort, setSort] = useState<NavigationSortOrder>('asc');\n\n return (\n <div style={{width: 340, height: 500}}>\n <QueriesNavigation<CustomItem, CustomCluster>\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={CUSTOM_CLUSTERS}\n items={getCustomItemsForPath(location.path, sort)}\n sort={{value: sort, onUpdate: setSort}}\n renderClusterItem={({cluster}) => (\n <Flex alignItems=\"center\" gap={2} style={{width: '100%', padding: '0 8px'}}>\n <ClusterRow cluster={cluster} />\n <Label theme=\"info\">{cluster.env}</Label>\n </Flex>\n )}\n renderNavigationItem={({item, isParentRow}) =>\n isParentRow ? (\n <NavigationItemRow item={item} />\n ) : (\n <Flex alignItems=\"center\" gap={2} style={{width: '100%', padding: '0 8px'}}>\n <NavigationItemRow item={item} />\n {item.owner && (\n <Text color=\"secondary\" variant=\"caption-2\">\n {item.owner}\n </Text>\n )}\n </Flex>\n )\n }\n onClusterClick={action('onClusterClick')}\n onItemClick={action('onItemClick')}\n />\n </div>\n );\n};\n\nconst CustomDetailResolverStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home'});\n const [openedItem, setOpenedItem] = useState<NavigationItem | undefined>(undefined);\n\n const resolveDetail = createNavigationDetailResolver({\n file: (item) => ({\n tabs: [\n {id: 'content', title: 'Content', content: `Content of ${item.title}`},\n {id: 'meta', title: 'Meta', content: 'Meta placeholder'},\n ],\n hasSearch: false,\n }),\n });\n\n return (\n <div style={{width: 340, height: 600}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n items={getItemsForPath(location.path)}\n detail={{\n openedItem,\n onItemOpen: setOpenedItem,\n onClose: () => setOpenedItem(undefined),\n resolve: resolveDetail,\n }}\n onItemClick={action('onItemClick')}\n />\n </div>\n );\n};\n\nexport const ClustersToItems: Story = {render: () => <ClustersToItemsStory />};\nexport const Loading: Story = {render: () => <LoadingStory />};\nexport const Empty: Story = {render: () => <EmptyStory />};\nexport const EmptySearch: Story = {render: () => <EmptySearchStory />};\nexport const Error: Story = {render: () => <ErrorStory />};\nexport const CustomRows: Story = {render: () => <CustomRowsStory />};\nexport const CustomDetailResolver: Story = {render: () => <CustomDetailResolverStory />};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","QueriesNavigation","createNavigationDetailResolver","createTableDetailConfig","action","mockLoadPathSuggestions","FileArrowRightOutIcon","props","_jsx","_objectSpread","children","fill","fillRule","d","clipRule","defaultProps","xmlns","width","height","viewBox","ArrowUpRightFromSquareIcon","CodeIcon","GearIcon","Button","DropdownMenu","Flex","Icon","Label","Text","ClusterRow","NavigationItemRow","SCHEMA_COLUMNS","PREVIEW_COLUMNS","PREVIEW_ROWS","META_GROUPS","VIEW_COLUMNS","makeViewRows","jsx","jsxs","_jsxs","meta","title","component","tags","parameters","layout","onBreadcrumbsUpdate","logAction","defaultActions","id","content","data","size","onClick","location","CLUSTERS","color","backgroundColor","description","ITEM_NAMES","kind","hasChildren","disabled","getPathDepth","path","split","filter","Boolean","length","getItemsForPath","sort","arguments","undefined","concat","_ref","_ref2","leftTitle","rightTitle","localeCompare","map","_ref3","TABLE_VIEW_SECTIONS_WITH_ACTIONS","columns","rows","loaded","defaultExpanded","actions","section","useLocationState","initial","_useState","_useState2","_slicedToArray","setLocation","onUpdate","next","useNavigationStoryState","_useLocationState","_useState3","_useState4","setSort","items","ClustersToItemsStory","_useNavigationStorySt","cluster","_useState5","_useState6","openedItem","setOpenedItem","resolveDetail","table","resolveSchema","resolvePreview","resolveMeta","groups","resolveView","sections","style","header","onLoadSuggestions","clusters","value","detail","onItemOpen","item","onClose","resolve","onClusterClick","onItemClick","LoadingStory","_useLocationState2","listState","loading","EmptyStory","_useLocationState3","EmptySearchStory","_useLocationState4","_useState7","_useState8","search","setSearch","ErrorStory","_useLocationState5","error","CUSTOM_CLUSTERS","_cluster$description","env","getCustomItemsForPath","index","owner","CustomRowsStory","_useLocationState6","_useState9","_useState0","renderClusterItem","_ref4","alignItems","gap","padding","theme","renderNavigationItem","_ref5","isParentRow","variant","CustomDetailResolverStory","_useLocationState7","_useState1","_useState10","file","tabs","hasSearch","CustomHeaderActionsStory","_useNavigationStorySt2","renderActions","_ref6","_actionLocation$path","actionLocation","menuItems","_ref7","hidden","_ref8","text","href","shrink","renderSwitcher","view","target","LinkedBreadcrumbsStory","_useNavigationStorySt3","_useState11","_useState12","getBreadcrumbHref","_ref9","ParentRowDuringSearchStory","_useLocationState8","_useState13","_useState14","_ref0","includes","parentRow","showDuringSearch","_ref1","ClustersToItems","render","Loading","Empty","EmptySearch","Error","CustomRows","CustomDetailResolver","CustomHeaderActions","LinkedBreadcrumbs","ParentRowDuringSearch"],"sources":["QueriesNavigation.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {QueriesNavigation} from './QueriesNavigation';\nimport {createNavigationDetailResolver} from './helpers/createNavigationDetailResolver';\nimport {createTableDetailConfig} from './helpers/createTableDetailConfig';\nimport {action} from 'storybook/actions';\nimport {\n NavigationCluster,\n NavigationHeaderAction,\n NavigationItem,\n NavigationLocation,\n NavigationSortOrder,\n NavigationViewSection,\n} from '../../types/navigation';\nimport {mockLoadPathSuggestions} from '../../components/PathEditor/PathEditor.stories.helpers';\nimport FileArrowRightOutIcon from '@gravity-ui/icons/svgs/file-arrow-right-out.svg';\nimport ArrowUpRightFromSquareIcon from '@gravity-ui/icons/svgs/arrow-up-right-from-square.svg';\nimport CodeIcon from '@gravity-ui/icons/svgs/code.svg';\nimport GearIcon from '@gravity-ui/icons/svgs/gear.svg';\nimport {\n Button,\n DropdownMenu,\n type DropdownMenuItem,\n Flex,\n Icon,\n Label,\n Text,\n} from '@gravity-ui/uikit';\nimport {ClusterRow, NavigationItemRow} from '../../components';\nimport {SCHEMA_COLUMNS} from '../../modules/NavigationSchema/story/mockData';\nimport {PREVIEW_COLUMNS, PREVIEW_ROWS} from '../../modules/NavigationPreview/story/mockData';\nimport {META_GROUPS} from '../../modules/NavigationMeta/story/mockData';\nimport {VIEW_COLUMNS, makeViewRows} from '../../modules/NavigationView/story/mockData';\n\nconst meta: Meta<typeof QueriesNavigation> = {\n title: 'Widgets/QueriesNavigation',\n component: QueriesNavigation,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n};\n\nconst onBreadcrumbsUpdate = action('onUpdate');\nconst logAction = action('actionClick');\n\nconst defaultActions: NavigationHeaderAction[] = [\n {\n id: 'paste',\n title: 'Paste path',\n content: <Icon data={FileArrowRightOutIcon} size={16} />,\n onClick: (location) => logAction('Paste', location),\n },\n {\n id: 'open',\n title: 'Open in new tab',\n content: <Icon data={ArrowUpRightFromSquareIcon} size={16} />,\n onClick: (location) => logAction('Open', location),\n },\n];\n\nconst CLUSTERS: NavigationCluster[] = [\n {\n id: 'northstar',\n title: 'Northstar',\n color: 'white',\n backgroundColor: 'rgba(218, 68, 83, 1)',\n description: 'Production',\n },\n {\n id: 'cedar',\n title: 'Cedar',\n color: 'white',\n backgroundColor: 'rgba(127, 130, 133, 1)',\n description: 'Production',\n },\n {\n id: 'sequoia',\n title: 'Sequoia',\n color: 'white',\n backgroundColor: 'rgba(215, 112, 173, 1)',\n description: 'Production',\n },\n {\n id: 'pioneer-test',\n title: 'Pioneer-Test',\n color: 'white',\n backgroundColor: 'rgba(150, 122, 220, 1)',\n description: 'Testing',\n },\n {\n id: 'orbit',\n title: 'Orbit',\n color: 'white',\n backgroundColor: 'rgba(233, 87, 63, 1)',\n description: 'Production',\n },\n {\n id: 'lighthouse',\n title: 'Lighthouse',\n color: 'white',\n backgroundColor: 'rgba(67, 68, 69, 1)',\n description: 'Production',\n },\n {\n id: 'northstar-gnd',\n title: 'Northstar-GND',\n color: 'white',\n backgroundColor: 'rgba(140, 193, 82, 1)',\n description: 'tesdting',\n },\n {\n id: 'harbor',\n title: 'Harbor',\n color: 'white',\n backgroundColor: 'rgba(55, 188, 155, 1)',\n description: 'Production',\n },\n {\n id: 'cedar-gnd',\n title: 'Cedar-GND',\n color: 'white',\n backgroundColor: 'rgba(140, 193, 82, 1)',\n description: 'Prestable',\n },\n];\n\nconst ITEM_NAMES: Array<Pick<NavigationItem, 'title' | 'kind' | 'hasChildren' | 'disabled'>> = [\n {title: 'abcdapter', kind: 'folder', hasChildren: true},\n {title: 'access_control_object', kind: 'file'},\n {title: 'account_tree', kind: 'folder', hasChildren: true, disabled: true},\n {title: 'cell_balancers', kind: 'folder', hasChildren: true},\n {title: 'clusters', kind: 'folder', hasChildren: true},\n {title: 'doctors_table', kind: 'table'},\n];\n\nconst getPathDepth = (path: string | undefined): number =>\n (path ?? '').split('/').filter(Boolean).length;\n\nconst getItemsForPath = (\n path: string | undefined,\n sort: NavigationSortOrder = 'asc',\n): NavigationItem[] => {\n if (getPathDepth(path) > 1) {\n return [];\n }\n\n return [...ITEM_NAMES]\n .sort(({title: leftTitle}, {title: rightTitle}) =>\n sort === 'asc'\n ? leftTitle.localeCompare(rightTitle)\n : rightTitle.localeCompare(leftTitle),\n )\n .map(({title, kind, hasChildren, disabled}) => ({\n path: `${path ?? ''}/${title}`,\n title,\n kind,\n hasChildren,\n disabled,\n }));\n};\n\nexport default meta;\ntype Story = StoryObj<typeof QueriesNavigation>;\n\nconst TABLE_VIEW_SECTIONS_WITH_ACTIONS: NavigationViewSection[] = [\n {\n id: 'general',\n title: 'General',\n columns: VIEW_COLUMNS,\n rows: makeViewRows(2),\n loaded: true,\n defaultExpanded: true,\n actions: [\n {\n id: 'code',\n title: 'Show code',\n content: <Icon data={CodeIcon} size={14} />,\n onClick: (section) => logAction('ViewShowCode', section.id),\n },\n {\n id: 'settings',\n title: 'Settings',\n content: <Icon data={GearIcon} size={14} />,\n onClick: (section) => logAction('ViewSettings', section.id),\n },\n ],\n },\n {\n id: 'attributes',\n title: 'Attributes',\n columns: VIEW_COLUMNS,\n rows: makeViewRows(2),\n loaded: true,\n },\n];\n\nconst useLocationState = (initial: NavigationLocation) => {\n const [location, setLocation] = useState<NavigationLocation>(initial);\n const onUpdate = (next: NavigationLocation) => {\n onBreadcrumbsUpdate(next);\n setLocation(next);\n };\n return {location, onUpdate};\n};\n\nconst useNavigationStoryState = (initial: NavigationLocation) => {\n const {location, onUpdate} = useLocationState(initial);\n const [sort, setSort] = useState<NavigationSortOrder>('asc');\n const items = getItemsForPath(location.path, sort);\n\n return {location, onUpdate, sort, setSort, items};\n};\n\nconst ClustersToItemsStory = () => {\n const {location, onUpdate, sort, setSort, items} = useNavigationStoryState({\n cluster: undefined,\n path: undefined,\n });\n const [openedItem, setOpenedItem] = useState<NavigationItem | undefined>(undefined);\n\n const resolveDetail = createNavigationDetailResolver({\n table: createTableDetailConfig({\n resolveSchema: () => ({columns: SCHEMA_COLUMNS, loaded: true}),\n resolvePreview: () => ({\n columns: PREVIEW_COLUMNS,\n rows: PREVIEW_ROWS,\n loaded: true,\n }),\n resolveMeta: () => ({groups: META_GROUPS, loaded: true}),\n resolveView: () => ({sections: TABLE_VIEW_SECTIONS_WITH_ACTIONS, loaded: true}),\n }),\n });\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={CLUSTERS}\n items={items}\n sort={{value: sort, onUpdate: setSort}}\n detail={{\n openedItem,\n onItemOpen: (item) => {\n action('onItemOpen')(item);\n setOpenedItem(item);\n },\n onClose: () => setOpenedItem(undefined),\n resolve: resolveDetail,\n }}\n onClusterClick={action('onClusterClick')}\n onItemClick={action('onItemClick')}\n />\n </div>\n );\n};\n\nconst LoadingStory = () => {\n const {location, onUpdate} = useLocationState({cluster: undefined, path: undefined});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={[]}\n listState={{loading: true}}\n />\n </div>\n );\n};\n\nconst EmptyStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home/empty'});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n items={[]}\n />\n </div>\n );\n};\n\nconst EmptySearchStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home'});\n const [search, setSearch] = useState('no-such-item');\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n items={[]}\n search={{value: search, onUpdate: setSearch}}\n />\n </div>\n );\n};\n\nconst ErrorStory = () => {\n const {location, onUpdate} = useLocationState({cluster: undefined, path: undefined});\n\n return (\n <div style={{width: 300, height: 500}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={[]}\n listState={{error: 'Custom load error message'}}\n />\n </div>\n );\n};\n\ntype CustomCluster = NavigationCluster & {env: string};\ntype CustomItem = NavigationItem & {owner?: string};\n\nconst CUSTOM_CLUSTERS: CustomCluster[] = CLUSTERS.map((cluster) => ({\n ...cluster,\n env: cluster.description ?? 'Unknown',\n}));\n\nconst getCustomItemsForPath = (path: string | undefined, sort: NavigationSortOrder): CustomItem[] =>\n getItemsForPath(path, sort).map((item, index) => ({\n ...item,\n owner: index % 2 === 0 ? 'robot' : 'user',\n }));\n\nconst CustomRowsStory = () => {\n const {location, onUpdate} = useLocationState({cluster: undefined, path: undefined});\n const [sort, setSort] = useState<NavigationSortOrder>('asc');\n\n return (\n <div style={{width: 340, height: 500}}>\n <QueriesNavigation<CustomItem, CustomCluster>\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n clusters={CUSTOM_CLUSTERS}\n items={getCustomItemsForPath(location.path, sort)}\n sort={{value: sort, onUpdate: setSort}}\n renderClusterItem={({cluster}) => (\n <Flex alignItems=\"center\" gap={2} style={{width: '100%', padding: '0 8px'}}>\n <ClusterRow cluster={cluster} />\n <Label theme=\"info\">{cluster.env}</Label>\n </Flex>\n )}\n renderNavigationItem={({item, isParentRow}) =>\n isParentRow ? (\n <NavigationItemRow item={item} />\n ) : (\n <Flex alignItems=\"center\" gap={2} style={{width: '100%', padding: '0 8px'}}>\n <NavigationItemRow item={item} />\n {item.owner && (\n <Text color=\"secondary\" variant=\"caption-2\">\n {item.owner}\n </Text>\n )}\n </Flex>\n )\n }\n onClusterClick={action('onClusterClick')}\n onItemClick={action('onItemClick')}\n />\n </div>\n );\n};\n\nconst CustomDetailResolverStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home'});\n const [openedItem, setOpenedItem] = useState<NavigationItem | undefined>(undefined);\n\n const resolveDetail = createNavigationDetailResolver({\n file: (item) => ({\n tabs: [\n {id: 'content', title: 'Content', content: `Content of ${item.title}`},\n {id: 'meta', title: 'Meta', content: 'Meta placeholder'},\n ],\n hasSearch: false,\n }),\n });\n\n return (\n <div style={{width: 340, height: 600}}>\n <QueriesNavigation\n location={location}\n header={{actions: defaultActions, onLoadSuggestions: mockLoadPathSuggestions}}\n onUpdate={onUpdate}\n items={getItemsForPath(location.path)}\n detail={{\n openedItem,\n onItemOpen: setOpenedItem,\n onClose: () => setOpenedItem(undefined),\n resolve: resolveDetail,\n }}\n onItemClick={action('onItemClick')}\n />\n </div>\n );\n};\n\nconst CustomHeaderActionsStory = () => {\n const {location, onUpdate, items} = useNavigationStoryState({\n cluster: 'northstar',\n path: '/home',\n });\n\n return (\n <div style={{width: 420, height: 500}}>\n <QueriesNavigation\n location={location}\n onUpdate={onUpdate}\n items={items}\n header={{\n actions: defaultActions,\n renderActions: ({location: actionLocation, actions}) => {\n const menuItems = actions\n .filter(({hidden}) => !hidden)\n .map<DropdownMenuItem>(({title, disabled, onClick}) => ({\n text: title,\n disabled,\n action: () => onClick(actionLocation),\n }));\n const href = `/navigation/${actionLocation.cluster}${actionLocation.path ?? ''}`;\n\n return (\n <Flex gap={1} shrink={0}>\n <DropdownMenu\n size=\"s\"\n items={menuItems}\n renderSwitcher={(props) => (\n <Button {...props} view=\"flat\" size=\"s\">\n Favorites\n </Button>\n )}\n />\n <Button view=\"flat\" size=\"s\" href={href} target=\"_blank\">\n Open\n </Button>\n </Flex>\n );\n },\n }}\n />\n </div>\n );\n};\n\nconst LinkedBreadcrumbsStory = () => {\n const {location, onUpdate, items} = useNavigationStoryState({\n cluster: 'northstar',\n path: '/home',\n });\n const [openedItem, setOpenedItem] = useState<NavigationItem | undefined>(undefined);\n\n return (\n <div style={{width: 420, height: 500}}>\n <QueriesNavigation\n location={location}\n onUpdate={onUpdate}\n items={items}\n header={{\n actions: defaultActions,\n getBreadcrumbHref: ({cluster, path}) =>\n cluster ? `/navigation/${cluster}${path ?? ''}` : '/navigation',\n }}\n detail={{\n openedItem,\n onItemOpen: setOpenedItem,\n onClose: () => setOpenedItem(undefined),\n }}\n />\n </div>\n );\n};\n\nconst ParentRowDuringSearchStory = () => {\n const {location, onUpdate} = useLocationState({cluster: 'northstar', path: '/home'});\n const [search, setSearch] = useState('cluster');\n const items = getItemsForPath(location.path).filter(({title}) => title.includes(search));\n\n return (\n <div style={{width: 340, height: 500}}>\n <QueriesNavigation\n location={location}\n onUpdate={onUpdate}\n items={items}\n search={{value: search, onUpdate: setSearch}}\n parentRow={{showDuringSearch: true}}\n renderNavigationItem={({item, isParentRow}) => (\n <div data-qa={isParentRow ? 'parent-row' : undefined}>\n <NavigationItemRow item={item} />\n </div>\n )}\n />\n </div>\n );\n};\n\nexport const ClustersToItems: Story = {render: () => <ClustersToItemsStory />};\nexport const Loading: Story = {render: () => <LoadingStory />};\nexport const Empty: Story = {render: () => <EmptyStory />};\nexport const EmptySearch: Story = {render: () => <EmptySearchStory />};\nexport const Error: Story = {render: () => <ErrorStory />};\nexport const CustomRows: Story = {render: () => <CustomRowsStory />};\nexport const CustomDetailResolver: Story = {render: () => <CustomDetailResolverStory />};\nexport const CustomHeaderActions: Story = {render: () => <CustomHeaderActionsStory />};\nexport const LinkedBreadcrumbs: Story = {render: () => <LinkedBreadcrumbsStory />};\nexport const ParentRowDuringSearch: Story = {render: () => <ParentRowDuringSearchStory />};\n"],"mappings":";;;;;;;;;;;;;;AAAA,OAAOA,KAAK,IAAGC,QAAQ,QAAO,OAAO;AAErC,SAAQC,iBAAiB;AACzB,SAAQC,8BAA8B;AACtC,SAAQC,uBAAuB;AAC/B,SAAQC,MAAM,QAAO,mBAAmB;AASxC,SAAQC,uBAAuB;AAAgE,IACxFC,qBAAqB,YAArBA,qBAAqBA,CAAAC,KAAA;EAAA,oBAAAC,IAAA,QAAAC,aAAA,CAAAA,aAAA,KAAAF,KAAA;IAAAG,QAAA,eAAAF,IAAA;MAAAG,IAAA;MAAAC,QAAA;MAAAC,CAAA;MAAAC,QAAA;IAAA;EAAA;AAAA;AAArBR,qBAAqB,CAAAS,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAP,IAAA;EAAAQ,OAAA;AAAA;AAAA,IACrBC,0BAA0B,YAA1BA,0BAA0BA,CAAAb,KAAA;EAAA,oBAAAC,IAAA,QAAAC,aAAA,CAAAA,aAAA,KAAAF,KAAA;IAAAG,QAAA,eAAAF,IAAA;MAAAG,IAAA;MAAAC,QAAA;MAAAC,CAAA;MAAAC,QAAA;IAAA;EAAA;AAAA;AAA1BM,0BAA0B,CAAAL,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAP,IAAA;EAAAQ,OAAA;AAAA;AAAA,IAC1BE,QAAQ,YAARA,QAAQA,CAAAd,KAAA;EAAA,oBAAAC,IAAA,QAAAC,aAAA,CAAAA,aAAA,KAAAF,KAAA;IAAAG,QAAA,eAAAF,IAAA;MAAAG,IAAA;MAAAC,QAAA;MAAAC,CAAA;MAAAC,QAAA;IAAA;EAAA;AAAA;AAARO,QAAQ,CAAAN,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAP,IAAA;EAAAQ,OAAA;AAAA;AAAA,IACRG,QAAQ,YAARA,QAAQA,CAAAf,KAAA;EAAA,oBAAAC,IAAA,QAAAC,aAAA,CAAAA,aAAA,KAAAF,KAAA;IAAAG,QAAA,eAAAF,IAAA;MAAAG,IAAA;MAAAC,QAAA;MAAAC,CAAA;MAAAC,QAAA;IAAA;EAAA;AAAA;AAARQ,QAAQ,CAAAP,YAAA;EAAAC,KAAA;EAAAC,KAAA;EAAAC,MAAA;EAAAP,IAAA;EAAAQ,OAAA;AAAA;AACf,SACII,MAAM,EACNC,YAAY,EAEZC,IAAI,EACJC,IAAI,EACJC,KAAK,EACLC,IAAI,QACD,mBAAmB;AAC1B,SAAQC,UAAU,EAAEC,iBAAiB;AACrC,SAAQC,cAAc;AACtB,SAAQC,eAAe,EAAEC,YAAY;AACrC,SAAQC,WAAW;AACnB,SAAQC,YAAY,EAAEC,YAAY;AAAqD,SAAAC,GAAA,IAAA7B,IAAA,EAAA8B,IAAA,IAAAC,KAAA;AAEvF,IAAMC,IAAoC,GAAG;EACzCC,KAAK,EAAE,2BAA2B;EAClCC,SAAS,EAAEzC,iBAAiB;EAC5B0C,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,UAAU,EAAE;IACRC,MAAM,EAAE;EACZ;AACJ,CAAC;AAED,IAAMC,mBAAmB,GAAG1C,MAAM,CAAC,UAAU,CAAC;AAC9C,IAAM2C,SAAS,GAAG3C,MAAM,CAAC,aAAa,CAAC;AAEvC,IAAM4C,cAAwC,GAAG,CAC7C;EACIC,EAAE,EAAE,OAAO;EACXR,KAAK,EAAE,YAAY;EACnBS,OAAO,eAAE1C,IAAA,CAACkB,IAAI;IAACyB,IAAI,EAAE7C,qBAAsB;IAAC8C,IAAI,EAAE;EAAG,CAAE,CAAC;EACxDC,OAAO,EAAE,SAATA,OAAOA,CAAGC,QAAQ;IAAA,OAAKP,SAAS,CAAC,OAAO,EAAEO,QAAQ,CAAC;EAAA;AACvD,CAAC,EACD;EACIL,EAAE,EAAE,MAAM;EACVR,KAAK,EAAE,iBAAiB;EACxBS,OAAO,eAAE1C,IAAA,CAACkB,IAAI;IAACyB,IAAI,EAAE/B,0BAA2B;IAACgC,IAAI,EAAE;EAAG,CAAE,CAAC;EAC7DC,OAAO,EAAE,SAATA,OAAOA,CAAGC,QAAQ;IAAA,OAAKP,SAAS,CAAC,MAAM,EAAEO,QAAQ,CAAC;EAAA;AACtD,CAAC,CACJ;AAED,IAAMC,QAA6B,GAAG,CAClC;EACIN,EAAE,EAAE,WAAW;EACfR,KAAK,EAAE,WAAW;EAClBe,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,sBAAsB;EACvCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIT,EAAE,EAAE,OAAO;EACXR,KAAK,EAAE,OAAO;EACde,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,wBAAwB;EACzCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIT,EAAE,EAAE,SAAS;EACbR,KAAK,EAAE,SAAS;EAChBe,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,wBAAwB;EACzCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIT,EAAE,EAAE,cAAc;EAClBR,KAAK,EAAE,cAAc;EACrBe,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,wBAAwB;EACzCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIT,EAAE,EAAE,OAAO;EACXR,KAAK,EAAE,OAAO;EACde,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,sBAAsB;EACvCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIT,EAAE,EAAE,YAAY;EAChBR,KAAK,EAAE,YAAY;EACnBe,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,qBAAqB;EACtCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIT,EAAE,EAAE,eAAe;EACnBR,KAAK,EAAE,eAAe;EACtBe,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,uBAAuB;EACxCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIT,EAAE,EAAE,QAAQ;EACZR,KAAK,EAAE,QAAQ;EACfe,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,uBAAuB;EACxCC,WAAW,EAAE;AACjB,CAAC,EACD;EACIT,EAAE,EAAE,WAAW;EACfR,KAAK,EAAE,WAAW;EAClBe,KAAK,EAAE,OAAO;EACdC,eAAe,EAAE,uBAAuB;EACxCC,WAAW,EAAE;AACjB,CAAC,CACJ;AAED,IAAMC,UAAsF,GAAG,CAC3F;EAAClB,KAAK,EAAE,WAAW;EAAEmB,IAAI,EAAE,QAAQ;EAAEC,WAAW,EAAE;AAAI,CAAC,EACvD;EAACpB,KAAK,EAAE,uBAAuB;EAAEmB,IAAI,EAAE;AAAM,CAAC,EAC9C;EAACnB,KAAK,EAAE,cAAc;EAAEmB,IAAI,EAAE,QAAQ;EAAEC,WAAW,EAAE,IAAI;EAAEC,QAAQ,EAAE;AAAI,CAAC,EAC1E;EAACrB,KAAK,EAAE,gBAAgB;EAAEmB,IAAI,EAAE,QAAQ;EAAEC,WAAW,EAAE;AAAI,CAAC,EAC5D;EAACpB,KAAK,EAAE,UAAU;EAAEmB,IAAI,EAAE,QAAQ;EAAEC,WAAW,EAAE;AAAI,CAAC,EACtD;EAACpB,KAAK,EAAE,eAAe;EAAEmB,IAAI,EAAE;AAAO,CAAC,CAC1C;AAED,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAwB;EAAA,OAC1C,CAACA,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,EAAE,EAAEC,KAAK,CAAC,GAAG,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC,CAACC,MAAM;AAAA;AAElD,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CACjBL,IAAwB,EAEL;EAAA,IADnBM,IAAyB,GAAAC,SAAA,CAAAH,MAAA,QAAAG,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,KAAK;EAEjC,IAAIR,YAAY,CAACC,IAAI,CAAC,GAAG,CAAC,EAAE;IACxB,OAAO,EAAE;EACb;EAEA,OAAO,GAAAS,MAAA,CAAId,UAAU,EAChBW,IAAI,CAAC,UAAAI,IAAA,EAAAC,KAAA;IAAA,IAASC,SAAS,GAAAF,IAAA,CAAhBjC,KAAK;IAAA,IAAsBoC,UAAU,GAAAF,KAAA,CAAjBlC,KAAK;IAAA,OAC7B6B,IAAI,KAAK,KAAK,GACRM,SAAS,CAACE,aAAa,CAACD,UAAU,CAAC,GACnCA,UAAU,CAACC,aAAa,CAACF,SAAS,CAAC;EAAA,CAC7C,CAAC,CACAG,GAAG,CAAC,UAAAC,KAAA;IAAA,IAAEvC,KAAK,GAAAuC,KAAA,CAALvC,KAAK;MAAEmB,IAAI,GAAAoB,KAAA,CAAJpB,IAAI;MAAEC,WAAW,GAAAmB,KAAA,CAAXnB,WAAW;MAAEC,QAAQ,GAAAkB,KAAA,CAARlB,QAAQ;IAAA,OAAO;MAC5CE,IAAI,KAAAS,MAAA,CAAKT,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,EAAE,OAAAS,MAAA,CAAIhC,KAAK,CAAE;MAC9BA,KAAK,EAALA,KAAK;MACLmB,IAAI,EAAJA,IAAI;MACJC,WAAW,EAAXA,WAAW;MACXC,QAAQ,EAARA;IACJ,CAAC;EAAA,CAAC,CAAC;AACX,CAAC;AAED,eAAetB,IAAI;AAGnB,IAAMyC,gCAAyD,GAAG,CAC9D;EACIhC,EAAE,EAAE,SAAS;EACbR,KAAK,EAAE,SAAS;EAChByC,OAAO,EAAE/C,YAAY;EACrBgD,IAAI,EAAE/C,YAAY,CAAC,CAAC,CAAC;EACrBgD,MAAM,EAAE,IAAI;EACZC,eAAe,EAAE,IAAI;EACrBC,OAAO,EAAE,CACL;IACIrC,EAAE,EAAE,MAAM;IACVR,KAAK,EAAE,WAAW;IAClBS,OAAO,eAAE1C,IAAA,CAACkB,IAAI;MAACyB,IAAI,EAAE9B,QAAS;MAAC+B,IAAI,EAAE;IAAG,CAAE,CAAC;IAC3CC,OAAO,EAAE,SAATA,OAAOA,CAAGkC,OAAO;MAAA,OAAKxC,SAAS,CAAC,cAAc,EAAEwC,OAAO,CAACtC,EAAE,CAAC;IAAA;EAC/D,CAAC,EACD;IACIA,EAAE,EAAE,UAAU;IACdR,KAAK,EAAE,UAAU;IACjBS,OAAO,eAAE1C,IAAA,CAACkB,IAAI;MAACyB,IAAI,EAAE7B,QAAS;MAAC8B,IAAI,EAAE;IAAG,CAAE,CAAC;IAC3CC,OAAO,EAAE,SAATA,OAAOA,CAAGkC,OAAO;MAAA,OAAKxC,SAAS,CAAC,cAAc,EAAEwC,OAAO,CAACtC,EAAE,CAAC;IAAA;EAC/D,CAAC;AAET,CAAC,EACD;EACIA,EAAE,EAAE,YAAY;EAChBR,KAAK,EAAE,YAAY;EACnByC,OAAO,EAAE/C,YAAY;EACrBgD,IAAI,EAAE/C,YAAY,CAAC,CAAC,CAAC;EACrBgD,MAAM,EAAE;AACZ,CAAC,CACJ;AAED,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,OAA2B,EAAK;EACtD,IAAAC,SAAA,GAAgC1F,QAAQ,CAAqByF,OAAO,CAAC;IAAAE,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAA9DpC,QAAQ,GAAAqC,UAAA;IAAEE,WAAW,GAAAF,UAAA;EAC5B,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAIC,IAAwB,EAAK;IAC3CjD,mBAAmB,CAACiD,IAAI,CAAC;IACzBF,WAAW,CAACE,IAAI,CAAC;EACrB,CAAC;EACD,OAAO;IAACzC,QAAQ,EAARA,QAAQ;IAAEwC,QAAQ,EAARA;EAAQ,CAAC;AAC/B,CAAC;AAED,IAAME,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAIP,OAA2B,EAAK;EAC7D,IAAAQ,iBAAA,GAA6BT,gBAAgB,CAACC,OAAO,CAAC;IAA/CnC,QAAQ,GAAA2C,iBAAA,CAAR3C,QAAQ;IAAEwC,QAAQ,GAAAG,iBAAA,CAARH,QAAQ;EACzB,IAAAI,UAAA,GAAwBlG,QAAQ,CAAsB,KAAK,CAAC;IAAAmG,UAAA,GAAAP,cAAA,CAAAM,UAAA;IAArD5B,IAAI,GAAA6B,UAAA;IAAEC,OAAO,GAAAD,UAAA;EACpB,IAAME,KAAK,GAAGhC,eAAe,CAACf,QAAQ,CAACU,IAAI,EAAEM,IAAI,CAAC;EAElD,OAAO;IAAChB,QAAQ,EAARA,QAAQ;IAAEwC,QAAQ,EAARA,QAAQ;IAAExB,IAAI,EAAJA,IAAI;IAAE8B,OAAO,EAAPA,OAAO;IAAEC,KAAK,EAALA;EAAK,CAAC;AACrD,CAAC;AAED,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA,EAAS;EAC/B,IAAAC,qBAAA,GAAmDP,uBAAuB,CAAC;MACvEQ,OAAO,EAAEhC,SAAS;MAClBR,IAAI,EAAEQ;IACV,CAAC,CAAC;IAHKlB,QAAQ,GAAAiD,qBAAA,CAARjD,QAAQ;IAAEwC,QAAQ,GAAAS,qBAAA,CAART,QAAQ;IAAExB,IAAI,GAAAiC,qBAAA,CAAJjC,IAAI;IAAE8B,OAAO,GAAAG,qBAAA,CAAPH,OAAO;IAAEC,KAAK,GAAAE,qBAAA,CAALF,KAAK;EAI/C,IAAAI,UAAA,GAAoCzG,QAAQ,CAA6BwE,SAAS,CAAC;IAAAkC,UAAA,GAAAd,cAAA,CAAAa,UAAA;IAA5EE,UAAU,GAAAD,UAAA;IAAEE,aAAa,GAAAF,UAAA;EAEhC,IAAMG,aAAa,GAAG3G,8BAA8B,CAAC;IACjD4G,KAAK,EAAE3G,uBAAuB,CAAC;MAC3B4G,aAAa,EAAE,SAAfA,aAAaA,CAAA;QAAA,OAAS;UAAC7B,OAAO,EAAEnD,cAAc;UAAEqD,MAAM,EAAE;QAAI,CAAC;MAAA,CAAC;MAC9D4B,cAAc,EAAE,SAAhBA,cAAcA,CAAA;QAAA,OAAS;UACnB9B,OAAO,EAAElD,eAAe;UACxBmD,IAAI,EAAElD,YAAY;UAClBmD,MAAM,EAAE;QACZ,CAAC;MAAA,CAAC;MACF6B,WAAW,EAAE,SAAbA,WAAWA,CAAA;QAAA,OAAS;UAACC,MAAM,EAAEhF,WAAW;UAAEkD,MAAM,EAAE;QAAI,CAAC;MAAA,CAAC;MACxD+B,WAAW,EAAE,SAAbA,WAAWA,CAAA;QAAA,OAAS;UAACC,QAAQ,EAAEnC,gCAAgC;UAAEG,MAAM,EAAE;QAAI,CAAC;MAAA;IAClF,CAAC;EACL,CAAC,CAAC;EAEF,oBACI5E,IAAA;IAAK6G,KAAK,EAAE;MAACpG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClCF,IAAA,CAACP,iBAAiB;MACdqD,QAAQ,EAAEA,QAAS;MACnBgE,MAAM,EAAE;QAAChC,OAAO,EAAEtC,cAAc;QAAEuE,iBAAiB,EAAElH;MAAuB,CAAE;MAC9EyF,QAAQ,EAAEA,QAAS;MACnB0B,QAAQ,EAAEjE,QAAS;MACnB8C,KAAK,EAAEA,KAAM;MACb/B,IAAI,EAAE;QAACmD,KAAK,EAAEnD,IAAI;QAAEwB,QAAQ,EAAEM;MAAO,CAAE;MACvCsB,MAAM,EAAE;QACJf,UAAU,EAAVA,UAAU;QACVgB,UAAU,EAAE,SAAZA,UAAUA,CAAGC,IAAI,EAAK;UAClBxH,MAAM,CAAC,YAAY,CAAC,CAACwH,IAAI,CAAC;UAC1BhB,aAAa,CAACgB,IAAI,CAAC;QACvB,CAAC;QACDC,OAAO,EAAE,SAATA,OAAOA,CAAA;UAAA,OAAQjB,aAAa,CAACpC,SAAS,CAAC;QAAA;QACvCsD,OAAO,EAAEjB;MACb,CAAE;MACFkB,cAAc,EAAE3H,MAAM,CAAC,gBAAgB,CAAE;MACzC4H,WAAW,EAAE5H,MAAM,CAAC,aAAa;IAAE,CACtC;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAM6H,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;EACvB,IAAAC,kBAAA,GAA6B1C,gBAAgB,CAAC;MAACgB,OAAO,EAAEhC,SAAS;MAAER,IAAI,EAAEQ;IAAS,CAAC,CAAC;IAA7ElB,QAAQ,GAAA4E,kBAAA,CAAR5E,QAAQ;IAAEwC,QAAQ,GAAAoC,kBAAA,CAARpC,QAAQ;EAEzB,oBACItF,IAAA;IAAK6G,KAAK,EAAE;MAACpG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClCF,IAAA,CAACP,iBAAiB;MACdqD,QAAQ,EAAEA,QAAS;MACnBgE,MAAM,EAAE;QAAChC,OAAO,EAAEtC,cAAc;QAAEuE,iBAAiB,EAAElH;MAAuB,CAAE;MAC9EyF,QAAQ,EAAEA,QAAS;MACnB0B,QAAQ,EAAE,EAAG;MACbW,SAAS,EAAE;QAACC,OAAO,EAAE;MAAI;IAAE,CAC9B;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;EACrB,IAAAC,kBAAA,GAA6B9C,gBAAgB,CAAC;MAACgB,OAAO,EAAE,WAAW;MAAExC,IAAI,EAAE;IAAa,CAAC,CAAC;IAAnFV,QAAQ,GAAAgF,kBAAA,CAARhF,QAAQ;IAAEwC,QAAQ,GAAAwC,kBAAA,CAARxC,QAAQ;EAEzB,oBACItF,IAAA;IAAK6G,KAAK,EAAE;MAACpG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClCF,IAAA,CAACP,iBAAiB;MACdqD,QAAQ,EAAEA,QAAS;MACnBgE,MAAM,EAAE;QAAChC,OAAO,EAAEtC,cAAc;QAAEuE,iBAAiB,EAAElH;MAAuB,CAAE;MAC9EyF,QAAQ,EAAEA,QAAS;MACnBO,KAAK,EAAE;IAAG,CACb;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAMkC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAA,EAAS;EAC3B,IAAAC,kBAAA,GAA6BhD,gBAAgB,CAAC;MAACgB,OAAO,EAAE,WAAW;MAAExC,IAAI,EAAE;IAAO,CAAC,CAAC;IAA7EV,QAAQ,GAAAkF,kBAAA,CAARlF,QAAQ;IAAEwC,QAAQ,GAAA0C,kBAAA,CAAR1C,QAAQ;EACzB,IAAA2C,UAAA,GAA4BzI,QAAQ,CAAC,cAAc,CAAC;IAAA0I,UAAA,GAAA9C,cAAA,CAAA6C,UAAA;IAA7CE,MAAM,GAAAD,UAAA;IAAEE,SAAS,GAAAF,UAAA;EAExB,oBACIlI,IAAA;IAAK6G,KAAK,EAAE;MAACpG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClCF,IAAA,CAACP,iBAAiB;MACdqD,QAAQ,EAAEA,QAAS;MACnBgE,MAAM,EAAE;QAAChC,OAAO,EAAEtC,cAAc;QAAEuE,iBAAiB,EAAElH;MAAuB,CAAE;MAC9EyF,QAAQ,EAAEA,QAAS;MACnBO,KAAK,EAAE,EAAG;MACVsC,MAAM,EAAE;QAAClB,KAAK,EAAEkB,MAAM;QAAE7C,QAAQ,EAAE8C;MAAS;IAAE,CAChD;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAA,EAAS;EACrB,IAAAC,kBAAA,GAA6BtD,gBAAgB,CAAC;MAACgB,OAAO,EAAEhC,SAAS;MAAER,IAAI,EAAEQ;IAAS,CAAC,CAAC;IAA7ElB,QAAQ,GAAAwF,kBAAA,CAARxF,QAAQ;IAAEwC,QAAQ,GAAAgD,kBAAA,CAARhD,QAAQ;EAEzB,oBACItF,IAAA;IAAK6G,KAAK,EAAE;MAACpG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClCF,IAAA,CAACP,iBAAiB;MACdqD,QAAQ,EAAEA,QAAS;MACnBgE,MAAM,EAAE;QAAChC,OAAO,EAAEtC,cAAc;QAAEuE,iBAAiB,EAAElH;MAAuB,CAAE;MAC9EyF,QAAQ,EAAEA,QAAS;MACnB0B,QAAQ,EAAE,EAAG;MACbW,SAAS,EAAE;QAACY,KAAK,EAAE;MAA2B;IAAE,CACnD;EAAC,CACD,CAAC;AAEd,CAAC;AAKD,IAAMC,eAAgC,GAAGzF,QAAQ,CAACwB,GAAG,CAAC,UAACyB,OAAO;EAAA,IAAAyC,oBAAA;EAAA,OAAAxI,aAAA,CAAAA,aAAA,KACvD+F,OAAO;IACV0C,GAAG,GAAAD,oBAAA,GAAEzC,OAAO,CAAC9C,WAAW,cAAAuF,oBAAA,cAAAA,oBAAA,GAAI;EAAS;AAAA,CACvC,CAAC;AAEH,IAAME,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAInF,IAAwB,EAAEM,IAAyB;EAAA,OAC9ED,eAAe,CAACL,IAAI,EAAEM,IAAI,CAAC,CAACS,GAAG,CAAC,UAAC6C,IAAI,EAAEwB,KAAK;IAAA,OAAA3I,aAAA,CAAAA,aAAA,KACrCmH,IAAI;MACPyB,KAAK,EAAED,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG;IAAM;EAAA,CAC3C,CAAC;AAAA;AAEP,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;EAC1B,IAAAC,kBAAA,GAA6B/D,gBAAgB,CAAC;MAACgB,OAAO,EAAEhC,SAAS;MAAER,IAAI,EAAEQ;IAAS,CAAC,CAAC;IAA7ElB,QAAQ,GAAAiG,kBAAA,CAARjG,QAAQ;IAAEwC,QAAQ,GAAAyD,kBAAA,CAARzD,QAAQ;EACzB,IAAA0D,UAAA,GAAwBxJ,QAAQ,CAAsB,KAAK,CAAC;IAAAyJ,UAAA,GAAA7D,cAAA,CAAA4D,UAAA;IAArDlF,IAAI,GAAAmF,UAAA;IAAErD,OAAO,GAAAqD,UAAA;EAEpB,oBACIjJ,IAAA;IAAK6G,KAAK,EAAE;MAACpG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClCF,IAAA,CAACP,iBAAiB;MACdqD,QAAQ,EAAEA,QAAS;MACnBgE,MAAM,EAAE;QAAChC,OAAO,EAAEtC,cAAc;QAAEuE,iBAAiB,EAAElH;MAAuB,CAAE;MAC9EyF,QAAQ,EAAEA,QAAS;MACnB0B,QAAQ,EAAEwB,eAAgB;MAC1B3C,KAAK,EAAE8C,qBAAqB,CAAC7F,QAAQ,CAACU,IAAI,EAAEM,IAAI,CAAE;MAClDA,IAAI,EAAE;QAACmD,KAAK,EAAEnD,IAAI;QAAEwB,QAAQ,EAAEM;MAAO,CAAE;MACvCsD,iBAAiB,EAAE,SAAnBA,iBAAiBA,CAAAC,KAAA;QAAA,IAAInD,OAAO,GAAAmD,KAAA,CAAPnD,OAAO;QAAA,oBACxBjE,KAAA,CAACd,IAAI;UAACmI,UAAU,EAAC,QAAQ;UAACC,GAAG,EAAE,CAAE;UAACxC,KAAK,EAAE;YAACpG,KAAK,EAAE,MAAM;YAAE6I,OAAO,EAAE;UAAO,CAAE;UAAApJ,QAAA,gBACvEF,IAAA,CAACqB,UAAU;YAAC2E,OAAO,EAAEA;UAAQ,CAAE,CAAC,eAChChG,IAAA,CAACmB,KAAK;YAACoI,KAAK,EAAC,MAAM;YAAArJ,QAAA,EAAE8F,OAAO,CAAC0C;UAAG,CAAQ,CAAC;QAAA,CACvC,CAAC;MAAA,CACT;MACFc,oBAAoB,EAAE,SAAtBA,oBAAoBA,CAAAC,KAAA;QAAA,IAAIrC,IAAI,GAAAqC,KAAA,CAAJrC,IAAI;UAAEsC,WAAW,GAAAD,KAAA,CAAXC,WAAW;QAAA,OACrCA,WAAW,gBACP1J,IAAA,CAACsB,iBAAiB;UAAC8F,IAAI,EAAEA;QAAK,CAAE,CAAC,gBAEjCrF,KAAA,CAACd,IAAI;UAACmI,UAAU,EAAC,QAAQ;UAACC,GAAG,EAAE,CAAE;UAACxC,KAAK,EAAE;YAACpG,KAAK,EAAE,MAAM;YAAE6I,OAAO,EAAE;UAAO,CAAE;UAAApJ,QAAA,gBACvEF,IAAA,CAACsB,iBAAiB;YAAC8F,IAAI,EAAEA;UAAK,CAAE,CAAC,EAChCA,IAAI,CAACyB,KAAK,iBACP7I,IAAA,CAACoB,IAAI;YAAC4B,KAAK,EAAC,WAAW;YAAC2G,OAAO,EAAC,WAAW;YAAAzJ,QAAA,EACtCkH,IAAI,CAACyB;UAAK,CACT,CACT;QAAA,CACC,CACT;MAAA,CACJ;MACDtB,cAAc,EAAE3H,MAAM,CAAC,gBAAgB,CAAE;MACzC4H,WAAW,EAAE5H,MAAM,CAAC,aAAa;IAAE,CACtC;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAMgK,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAA,EAAS;EACpC,IAAAC,kBAAA,GAA6B7E,gBAAgB,CAAC;MAACgB,OAAO,EAAE,WAAW;MAAExC,IAAI,EAAE;IAAO,CAAC,CAAC;IAA7EV,QAAQ,GAAA+G,kBAAA,CAAR/G,QAAQ;IAAEwC,QAAQ,GAAAuE,kBAAA,CAARvE,QAAQ;EACzB,IAAAwE,UAAA,GAAoCtK,QAAQ,CAA6BwE,SAAS,CAAC;IAAA+F,WAAA,GAAA3E,cAAA,CAAA0E,UAAA;IAA5E3D,UAAU,GAAA4D,WAAA;IAAE3D,aAAa,GAAA2D,WAAA;EAEhC,IAAM1D,aAAa,GAAG3G,8BAA8B,CAAC;IACjDsK,IAAI,EAAE,SAANA,IAAIA,CAAG5C,IAAI;MAAA,OAAM;QACb6C,IAAI,EAAE,CACF;UAACxH,EAAE,EAAE,SAAS;UAAER,KAAK,EAAE,SAAS;UAAES,OAAO,gBAAAuB,MAAA,CAAgBmD,IAAI,CAACnF,KAAK;QAAE,CAAC,EACtE;UAACQ,EAAE,EAAE,MAAM;UAAER,KAAK,EAAE,MAAM;UAAES,OAAO,EAAE;QAAkB,CAAC,CAC3D;QACDwH,SAAS,EAAE;MACf,CAAC;IAAA;EACL,CAAC,CAAC;EAEF,oBACIlK,IAAA;IAAK6G,KAAK,EAAE;MAACpG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClCF,IAAA,CAACP,iBAAiB;MACdqD,QAAQ,EAAEA,QAAS;MACnBgE,MAAM,EAAE;QAAChC,OAAO,EAAEtC,cAAc;QAAEuE,iBAAiB,EAAElH;MAAuB,CAAE;MAC9EyF,QAAQ,EAAEA,QAAS;MACnBO,KAAK,EAAEhC,eAAe,CAACf,QAAQ,CAACU,IAAI,CAAE;MACtC0D,MAAM,EAAE;QACJf,UAAU,EAAVA,UAAU;QACVgB,UAAU,EAAEf,aAAa;QACzBiB,OAAO,EAAE,SAATA,OAAOA,CAAA;UAAA,OAAQjB,aAAa,CAACpC,SAAS,CAAC;QAAA;QACvCsD,OAAO,EAAEjB;MACb,CAAE;MACFmB,WAAW,EAAE5H,MAAM,CAAC,aAAa;IAAE,CACtC;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAMuK,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAA,EAAS;EACnC,IAAAC,sBAAA,GAAoC5E,uBAAuB,CAAC;MACxDQ,OAAO,EAAE,WAAW;MACpBxC,IAAI,EAAE;IACV,CAAC,CAAC;IAHKV,QAAQ,GAAAsH,sBAAA,CAARtH,QAAQ;IAAEwC,QAAQ,GAAA8E,sBAAA,CAAR9E,QAAQ;IAAEO,KAAK,GAAAuE,sBAAA,CAALvE,KAAK;EAKhC,oBACI7F,IAAA;IAAK6G,KAAK,EAAE;MAACpG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClCF,IAAA,CAACP,iBAAiB;MACdqD,QAAQ,EAAEA,QAAS;MACnBwC,QAAQ,EAAEA,QAAS;MACnBO,KAAK,EAAEA,KAAM;MACbiB,MAAM,EAAE;QACJhC,OAAO,EAAEtC,cAAc;QACvB6H,aAAa,EAAE,SAAfA,aAAaA,CAAAC,KAAA,EAA2C;UAAA,IAAAC,oBAAA;UAAA,IAA7BC,cAAc,GAAAF,KAAA,CAAxBxH,QAAQ;YAAkBgC,OAAO,GAAAwF,KAAA,CAAPxF,OAAO;UAC9C,IAAM2F,SAAS,GAAG3F,OAAO,CACpBpB,MAAM,CAAC,UAAAgH,KAAA;YAAA,IAAEC,MAAM,GAAAD,KAAA,CAANC,MAAM;YAAA,OAAM,CAACA,MAAM;UAAA,EAAC,CAC7BpG,GAAG,CAAmB,UAAAqG,KAAA;YAAA,IAAE3I,KAAK,GAAA2I,KAAA,CAAL3I,KAAK;cAAEqB,QAAQ,GAAAsH,KAAA,CAARtH,QAAQ;cAAET,OAAO,GAAA+H,KAAA,CAAP/H,OAAO;YAAA,OAAO;cACpDgI,IAAI,EAAE5I,KAAK;cACXqB,QAAQ,EAARA,QAAQ;cACR1D,MAAM,EAAE,SAARA,MAAMA,CAAA;gBAAA,OAAQiD,OAAO,CAAC2H,cAAc,CAAC;cAAA;YACzC,CAAC;UAAA,CAAC,CAAC;UACP,IAAMM,IAAI,kBAAA7G,MAAA,CAAkBuG,cAAc,CAACxE,OAAO,EAAA/B,MAAA,EAAAsG,oBAAA,GAAGC,cAAc,CAAChH,IAAI,cAAA+G,oBAAA,cAAAA,oBAAA,GAAI,EAAE,CAAE;UAEhF,oBACIxI,KAAA,CAACd,IAAI;YAACoI,GAAG,EAAE,CAAE;YAAC0B,MAAM,EAAE,CAAE;YAAA7K,QAAA,gBACpBF,IAAA,CAACgB,YAAY;cACT4B,IAAI,EAAC,GAAG;cACRiD,KAAK,EAAE4E,SAAU;cACjBO,cAAc,EAAE,SAAhBA,cAAcA,CAAGjL,KAAK;gBAAA,oBAClBC,IAAA,CAACe,MAAM,EAAAd,aAAA,CAAAA,aAAA,KAAKF,KAAK;kBAAEkL,IAAI,EAAC,MAAM;kBAACrI,IAAI,EAAC,GAAG;kBAAA1C,QAAA,EAAC;gBAExC,EAAQ,CAAC;cAAA;YACX,CACL,CAAC,eACFF,IAAA,CAACe,MAAM;cAACkK,IAAI,EAAC,MAAM;cAACrI,IAAI,EAAC,GAAG;cAACkI,IAAI,EAAEA,IAAK;cAACI,MAAM,EAAC,QAAQ;cAAAhL,QAAA,EAAC;YAEzD,CAAQ,CAAC;UAAA,CACP,CAAC;QAEf;MACJ;IAAE,CACL;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAMiL,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAA,EAAS;EACjC,IAAAC,sBAAA,GAAoC5F,uBAAuB,CAAC;MACxDQ,OAAO,EAAE,WAAW;MACpBxC,IAAI,EAAE;IACV,CAAC,CAAC;IAHKV,QAAQ,GAAAsI,sBAAA,CAARtI,QAAQ;IAAEwC,QAAQ,GAAA8F,sBAAA,CAAR9F,QAAQ;IAAEO,KAAK,GAAAuF,sBAAA,CAALvF,KAAK;EAIhC,IAAAwF,WAAA,GAAoC7L,QAAQ,CAA6BwE,SAAS,CAAC;IAAAsH,WAAA,GAAAlG,cAAA,CAAAiG,WAAA;IAA5ElF,UAAU,GAAAmF,WAAA;IAAElF,aAAa,GAAAkF,WAAA;EAEhC,oBACItL,IAAA;IAAK6G,KAAK,EAAE;MAACpG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClCF,IAAA,CAACP,iBAAiB;MACdqD,QAAQ,EAAEA,QAAS;MACnBwC,QAAQ,EAAEA,QAAS;MACnBO,KAAK,EAAEA,KAAM;MACbiB,MAAM,EAAE;QACJhC,OAAO,EAAEtC,cAAc;QACvB+I,iBAAiB,EAAE,SAAnBA,iBAAiBA,CAAAC,KAAA;UAAA,IAAIxF,OAAO,GAAAwF,KAAA,CAAPxF,OAAO;YAAExC,IAAI,GAAAgI,KAAA,CAAJhI,IAAI;UAAA,OAC9BwC,OAAO,kBAAA/B,MAAA,CAAkB+B,OAAO,EAAA/B,MAAA,CAAGT,IAAI,aAAJA,IAAI,cAAJA,IAAI,GAAI,EAAE,IAAK,aAAa;QAAA;MACvE,CAAE;MACF0D,MAAM,EAAE;QACJf,UAAU,EAAVA,UAAU;QACVgB,UAAU,EAAEf,aAAa;QACzBiB,OAAO,EAAE,SAATA,OAAOA,CAAA;UAAA,OAAQjB,aAAa,CAACpC,SAAS,CAAC;QAAA;MAC3C;IAAE,CACL;EAAC,CACD,CAAC;AAEd,CAAC;AAED,IAAMyH,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAA,EAAS;EACrC,IAAAC,kBAAA,GAA6B1G,gBAAgB,CAAC;MAACgB,OAAO,EAAE,WAAW;MAAExC,IAAI,EAAE;IAAO,CAAC,CAAC;IAA7EV,QAAQ,GAAA4I,kBAAA,CAAR5I,QAAQ;IAAEwC,QAAQ,GAAAoG,kBAAA,CAARpG,QAAQ;EACzB,IAAAqG,WAAA,GAA4BnM,QAAQ,CAAC,SAAS,CAAC;IAAAoM,WAAA,GAAAxG,cAAA,CAAAuG,WAAA;IAAxCxD,MAAM,GAAAyD,WAAA;IAAExD,SAAS,GAAAwD,WAAA;EACxB,IAAM/F,KAAK,GAAGhC,eAAe,CAACf,QAAQ,CAACU,IAAI,CAAC,CAACE,MAAM,CAAC,UAAAmI,KAAA;IAAA,IAAE5J,KAAK,GAAA4J,KAAA,CAAL5J,KAAK;IAAA,OAAMA,KAAK,CAAC6J,QAAQ,CAAC3D,MAAM,CAAC;EAAA,EAAC;EAExF,oBACInI,IAAA;IAAK6G,KAAK,EAAE;MAACpG,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE;IAAG,CAAE;IAAAR,QAAA,eAClCF,IAAA,CAACP,iBAAiB;MACdqD,QAAQ,EAAEA,QAAS;MACnBwC,QAAQ,EAAEA,QAAS;MACnBO,KAAK,EAAEA,KAAM;MACbsC,MAAM,EAAE;QAAClB,KAAK,EAAEkB,MAAM;QAAE7C,QAAQ,EAAE8C;MAAS,CAAE;MAC7C2D,SAAS,EAAE;QAACC,gBAAgB,EAAE;MAAI,CAAE;MACpCxC,oBAAoB,EAAE,SAAtBA,oBAAoBA,CAAAyC,KAAA;QAAA,IAAI7E,IAAI,GAAA6E,KAAA,CAAJ7E,IAAI;UAAEsC,WAAW,GAAAuC,KAAA,CAAXvC,WAAW;QAAA,oBACrC1J,IAAA;UAAK,WAAS0J,WAAW,GAAG,YAAY,GAAG1F,SAAU;UAAA9D,QAAA,eACjDF,IAAA,CAACsB,iBAAiB;YAAC8F,IAAI,EAAEA;UAAK,CAAE;QAAC,CAChC,CAAC;MAAA;IACR,CACL;EAAC,CACD,CAAC;AAEd,CAAC;AAED,OAAO,IAAM8E,eAAsB,GAAG;EAACC,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQnM,IAAA,CAAC8F,oBAAoB,IAAE,CAAC;EAAA;AAAA,CAAC;AAC9E,OAAO,IAAMsG,OAAc,GAAG;EAACD,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQnM,IAAA,CAACyH,YAAY,IAAE,CAAC;EAAA;AAAA,CAAC;AAC9D,OAAO,IAAM4E,KAAY,GAAG;EAACF,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQnM,IAAA,CAAC6H,UAAU,IAAE,CAAC;EAAA;AAAA,CAAC;AAC1D,OAAO,IAAMyE,WAAkB,GAAG;EAACH,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQnM,IAAA,CAAC+H,gBAAgB,IAAE,CAAC;EAAA;AAAA,CAAC;AACtE,OAAO,IAAMwE,KAAY,GAAG;EAACJ,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQnM,IAAA,CAACqI,UAAU,IAAE,CAAC;EAAA;AAAA,CAAC;AAC1D,OAAO,IAAMmE,UAAiB,GAAG;EAACL,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQnM,IAAA,CAAC8I,eAAe,IAAE,CAAC;EAAA;AAAA,CAAC;AACpE,OAAO,IAAM2D,oBAA2B,GAAG;EAACN,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQnM,IAAA,CAAC4J,yBAAyB,IAAE,CAAC;EAAA;AAAA,CAAC;AACxF,OAAO,IAAM8C,mBAA0B,GAAG;EAACP,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQnM,IAAA,CAACmK,wBAAwB,IAAE,CAAC;EAAA;AAAA,CAAC;AACtF,OAAO,IAAMwC,iBAAwB,GAAG;EAACR,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQnM,IAAA,CAACmL,sBAAsB,IAAE,CAAC;EAAA;AAAA,CAAC;AAClF,OAAO,IAAMyB,qBAA4B,GAAG;EAACT,MAAM,EAAE,SAARA,MAAMA,CAAA;IAAA,oBAAQnM,IAAA,CAACyL,0BAA0B,IAAE,CAAC;EAAA;AAAA,CAAC","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { QueryListRowRenderData } from '../../types/queryList';
|
|
3
3
|
import type { TutorialHistoryRow } from '../../types/tutorial';
|
|
4
|
-
export declare const TutorialRowContent: <T extends TutorialHistoryRow>({ item, variant, }: QueryListRowRenderData<T>) => React.JSX.Element;
|
|
4
|
+
export declare const TutorialRowContent: <T extends TutorialHistoryRow>({ item, variant, renderLink, }: QueryListRowRenderData<T>) => React.JSX.Element;
|
|
@@ -5,16 +5,19 @@ import { TutorialSearchRow } from "../../modules/TutorialSearchRow";
|
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
export var TutorialRowContent = function TutorialRowContent(_ref) {
|
|
7
7
|
var item = _ref.item,
|
|
8
|
-
variant = _ref.variant
|
|
8
|
+
variant = _ref.variant,
|
|
9
|
+
renderLink = _ref.renderLink;
|
|
9
10
|
if ('header' in item) {
|
|
10
11
|
return /*#__PURE__*/_jsx(HistoryGroupHeader, {
|
|
11
12
|
title: item.header
|
|
12
13
|
});
|
|
13
14
|
}
|
|
14
15
|
return variant === 'search' ? /*#__PURE__*/_jsx(TutorialSearchRow, {
|
|
15
|
-
item: item
|
|
16
|
+
item: item,
|
|
17
|
+
renderLink: renderLink
|
|
16
18
|
}) : /*#__PURE__*/_jsx(TutorialRow, {
|
|
17
|
-
item: item
|
|
19
|
+
item: item,
|
|
20
|
+
renderLink: renderLink
|
|
18
21
|
});
|
|
19
22
|
};
|
|
20
23
|
// #sourceMappingURL=TutorialRowContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","HistoryGroupHeader","TutorialRow","TutorialSearchRow","jsx","_jsx","TutorialRowContent","_ref","item","variant","title","header"],"sources":["TutorialRowContent.tsx"],"sourcesContent":["import React from 'react';\nimport type {QueryListRowRenderData} from '../../types/queryList';\nimport type {TutorialHistoryRow} from '../../types/tutorial';\nimport {HistoryGroupHeader} from '../../components/HistoryGroupHeader';\nimport {TutorialRow} from '../../modules/TutorialRow';\nimport {TutorialSearchRow} from '../../modules/TutorialSearchRow';\n\nexport const TutorialRowContent = <T extends TutorialHistoryRow>({\n item,\n variant,\n}: QueryListRowRenderData<T>) => {\n if ('header' in item) {\n return <HistoryGroupHeader title={item.header} />;\n }\n\n return variant === 'search' ? <TutorialSearchRow item={item}
|
|
1
|
+
{"version":3,"names":["React","HistoryGroupHeader","TutorialRow","TutorialSearchRow","jsx","_jsx","TutorialRowContent","_ref","item","variant","renderLink","title","header"],"sources":["TutorialRowContent.tsx"],"sourcesContent":["import React from 'react';\nimport type {QueryListRowRenderData} from '../../types/queryList';\nimport type {TutorialHistoryRow} from '../../types/tutorial';\nimport {HistoryGroupHeader} from '../../components/HistoryGroupHeader';\nimport {TutorialRow} from '../../modules/TutorialRow';\nimport {TutorialSearchRow} from '../../modules/TutorialSearchRow';\n\nexport const TutorialRowContent = <T extends TutorialHistoryRow>({\n item,\n variant,\n renderLink,\n}: QueryListRowRenderData<T>) => {\n if ('header' in item) {\n return <HistoryGroupHeader title={item.header} />;\n }\n\n return variant === 'search' ? (\n <TutorialSearchRow item={item} renderLink={renderLink} />\n ) : (\n <TutorialRow item={item} renderLink={renderLink} />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAAQC,kBAAkB;AAC1B,SAAQC,WAAW;AACnB,SAAQC,iBAAiB;AAAyC,SAAAC,GAAA,IAAAC,IAAA;AAElE,OAAO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,IAAA,EAIE;EAAA,IAH7BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,UAAU,GAAAH,IAAA,CAAVG,UAAU;EAEV,IAAI,QAAQ,IAAIF,IAAI,EAAE;IAClB,oBAAOH,IAAA,CAACJ,kBAAkB;MAACU,KAAK,EAAEH,IAAI,CAACI;IAAO,CAAE,CAAC;EACrD;EAEA,OAAOH,OAAO,KAAK,QAAQ,gBACvBJ,IAAA,CAACF,iBAAiB;IAACK,IAAI,EAAEA,IAAK;IAACE,UAAU,EAAEA;EAAW,CAAE,CAAC,gBAEzDL,IAAA,CAACH,WAAW;IAACM,IAAI,EAAEA,IAAK;IAACE,UAAU,EAAEA;EAAW,CAAE,CACrD;AACL,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { QueryListFilterConfig, QueryListItem, QueryListSearchConfig } from '../../types/queryList';
|
|
2
|
+
import type { QueryListFilterConfig, QueryListItem, QueryListLinkRenderer, QueryListRowRenderData, QueryListSearchConfig } from '../../types/queryList';
|
|
3
3
|
import type { TutorialHistoryRow } from '../../types/tutorial';
|
|
4
4
|
import './TutorialsHistory.scss';
|
|
5
5
|
export type TutorialsHistoryProps<T extends TutorialHistoryRow = TutorialHistoryRow> = {
|
|
@@ -10,6 +10,11 @@ export type TutorialsHistoryProps<T extends TutorialHistoryRow = TutorialHistory
|
|
|
10
10
|
filter?: QueryListFilterConfig;
|
|
11
11
|
items: QueryListItem<T>[];
|
|
12
12
|
selectedRowId?: T['id'];
|
|
13
|
+
renderRowItem?: (data: QueryListRowRenderData<T>) => React.ReactNode;
|
|
13
14
|
onListItemClick?: (item: QueryListItem<T>) => void;
|
|
15
|
+
hasMore?: boolean;
|
|
16
|
+
loading?: boolean;
|
|
17
|
+
onLoadMore?: () => void;
|
|
18
|
+
renderLink?: QueryListLinkRenderer;
|
|
14
19
|
};
|
|
15
|
-
export declare const TutorialsHistory: <T extends TutorialHistoryRow>({ title, logo, search, filter, items, selectedRowId, onListItemClick, className, }: TutorialsHistoryProps<T>) => React.JSX.Element;
|
|
20
|
+
export declare const TutorialsHistory: <T extends TutorialHistoryRow>({ title, logo, search, filter, items, selectedRowId, renderRowItem, onListItemClick, hasMore, loading, onLoadMore, renderLink, className, }: TutorialsHistoryProps<T>) => React.JSX.Element;
|
|
@@ -11,7 +11,7 @@ import { HistoryHeader } from "../../modules/HistoryHeader";
|
|
|
11
11
|
import { HistoryLayout } from "../../modules/HistoryLayout";
|
|
12
12
|
import { RowsList } from "../../modules/RowsList";
|
|
13
13
|
import i18n from "./i18n";
|
|
14
|
-
import {
|
|
14
|
+
import { useListKey } from "../../helpers/useListKey";
|
|
15
15
|
import { TutorialRowContent } from "./TutorialRowContent";
|
|
16
16
|
import cn from 'bem-cn-lite';
|
|
17
17
|
import "./TutorialsHistory.css";
|
|
@@ -25,11 +25,17 @@ export var TutorialsHistory = function TutorialsHistory(_ref) {
|
|
|
25
25
|
filter = _ref.filter,
|
|
26
26
|
items = _ref.items,
|
|
27
27
|
selectedRowId = _ref.selectedRowId,
|
|
28
|
+
renderRowItem = _ref.renderRowItem,
|
|
28
29
|
onListItemClick = _ref.onListItemClick,
|
|
30
|
+
hasMore = _ref.hasMore,
|
|
31
|
+
loading = _ref.loading,
|
|
32
|
+
onLoadMore = _ref.onLoadMore,
|
|
33
|
+
renderLink = _ref.renderLink,
|
|
29
34
|
className = _ref.className;
|
|
30
35
|
var fullSearchAvailable = search.fullSearchAvailable !== false;
|
|
31
36
|
var showSearchResults = Boolean(fullSearchAvailable && search.fullSearch && ((_search$value = search.value) === null || _search$value === void 0 ? void 0 : _search$value.trim()));
|
|
32
37
|
var rowVariant = showSearchResults ? 'search' : 'default';
|
|
38
|
+
var listKey = useListKey(items, rowVariant, Boolean(onLoadMore));
|
|
33
39
|
return /*#__PURE__*/_jsx(HistoryLayout, {
|
|
34
40
|
className: block(null, className),
|
|
35
41
|
title: title || i18n('title_tutorials'),
|
|
@@ -47,11 +53,15 @@ export var TutorialsHistory = function TutorialsHistory(_ref) {
|
|
|
47
53
|
rowVariant: rowVariant,
|
|
48
54
|
selectedRowId: selectedRowId,
|
|
49
55
|
renderRow: function renderRow(data) {
|
|
50
|
-
return /*#__PURE__*/_jsx(TutorialRowContent, _objectSpread({}, data));
|
|
56
|
+
return renderRowItem ? renderRowItem(data) : /*#__PURE__*/_jsx(TutorialRowContent, _objectSpread({}, data));
|
|
51
57
|
},
|
|
52
58
|
showFiltersHint: Boolean(filter),
|
|
59
|
+
hasMore: hasMore,
|
|
60
|
+
loading: loading,
|
|
61
|
+
onLoadMore: onLoadMore,
|
|
62
|
+
renderLink: renderLink,
|
|
53
63
|
onItemClick: onListItemClick
|
|
54
|
-
},
|
|
64
|
+
}, listKey)
|
|
55
65
|
});
|
|
56
66
|
};
|
|
57
67
|
// #sourceMappingURL=TutorialsHistory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","HistoryHeader","HistoryLayout","RowsList","i18n","
|
|
1
|
+
{"version":3,"names":["React","HistoryHeader","HistoryLayout","RowsList","i18n","useListKey","TutorialRowContent","cn","jsx","_jsx","block","TutorialsHistory","_ref","_search$value","title","logo","search","filter","items","selectedRowId","renderRowItem","onListItemClick","hasMore","loading","onLoadMore","renderLink","className","fullSearchAvailable","showSearchResults","Boolean","fullSearch","value","trim","rowVariant","listKey","header","hasClear","onUpdate","children","renderRow","data","_objectSpread","showFiltersHint","onItemClick"],"sources":["TutorialsHistory.tsx"],"sourcesContent":["import React from 'react';\nimport {HistoryHeader} from '../../modules/HistoryHeader';\nimport {HistoryLayout} from '../../modules/HistoryLayout';\nimport {RowsList} from '../../modules/RowsList';\nimport i18n from './i18n';\nimport type {\n QueryListFilterConfig,\n QueryListItem,\n QueryListLinkRenderer,\n QueryListRowRenderData,\n QueryListSearchConfig,\n} from '../../types/queryList';\nimport type {TutorialHistoryRow} from '../../types/tutorial';\nimport {useListKey} from '../../helpers/useListKey';\nimport {TutorialRowContent} from './TutorialRowContent';\nimport cn from 'bem-cn-lite';\nimport './TutorialsHistory.scss';\n\nexport type TutorialsHistoryProps<T extends TutorialHistoryRow = TutorialHistoryRow> = {\n className?: string;\n title?: string;\n logo?: React.ReactNode;\n search: QueryListSearchConfig;\n filter?: QueryListFilterConfig;\n items: QueryListItem<T>[];\n selectedRowId?: T['id'];\n renderRowItem?: (data: QueryListRowRenderData<T>) => React.ReactNode;\n onListItemClick?: (item: QueryListItem<T>) => void;\n hasMore?: boolean;\n loading?: boolean;\n onLoadMore?: () => void;\n renderLink?: QueryListLinkRenderer;\n};\n\nconst block = cn('qp-tutorials-history');\n\nexport const TutorialsHistory = <T extends TutorialHistoryRow>({\n title,\n logo,\n search,\n filter,\n items,\n selectedRowId,\n renderRowItem,\n onListItemClick,\n hasMore,\n loading,\n onLoadMore,\n renderLink,\n className,\n}: TutorialsHistoryProps<T>) => {\n const fullSearchAvailable = search.fullSearchAvailable !== false;\n const showSearchResults = Boolean(\n fullSearchAvailable && search.fullSearch && search.value?.trim(),\n );\n const rowVariant = showSearchResults ? 'search' : 'default';\n const listKey = useListKey(items, rowVariant, Boolean(onLoadMore));\n\n return (\n <HistoryLayout\n className={block(null, className)}\n title={title || i18n('title_tutorials')}\n logo={logo}\n header={\n <HistoryHeader\n search={search.value}\n fullSearch={search.fullSearch}\n fullSearchAvailable={fullSearchAvailable}\n hasClear={search.hasClear}\n filter={filter}\n onUpdate={search.onUpdate}\n />\n }\n >\n <RowsList\n key={listKey}\n items={items}\n rowVariant={rowVariant}\n selectedRowId={selectedRowId}\n renderRow={(data) =>\n renderRowItem ? renderRowItem(data) : <TutorialRowContent {...data} />\n }\n showFiltersHint={Boolean(filter)}\n hasMore={hasMore}\n loading={loading}\n onLoadMore={onLoadMore}\n renderLink={renderLink}\n onItemClick={onListItemClick}\n />\n </HistoryLayout>\n );\n};\n"],"mappings":";;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAAQC,aAAa;AACrB,SAAQC,aAAa;AACrB,SAAQC,QAAQ;AAChB,OAAOC,IAAI;AASX,SAAQC,UAAU;AAClB,SAAQC,kBAAkB;AAC1B,OAAOC,EAAE,MAAM,aAAa;AAC5B;AAAiC,SAAAC,GAAA,IAAAC,IAAA;AAkBjC,IAAMC,KAAK,GAAGH,EAAE,CAAC,sBAAsB,CAAC;AAExC,OAAO,IAAMI,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAcG;EAAA,IAAAC,aAAA;EAAA,IAb5BC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IACJC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,MAAM,GAAAL,IAAA,CAANK,MAAM;IACNC,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,aAAa,GAAAP,IAAA,CAAbO,aAAa;IACbC,aAAa,GAAAR,IAAA,CAAbQ,aAAa;IACbC,eAAe,GAAAT,IAAA,CAAfS,eAAe;IACfC,OAAO,GAAAV,IAAA,CAAPU,OAAO;IACPC,OAAO,GAAAX,IAAA,CAAPW,OAAO;IACPC,UAAU,GAAAZ,IAAA,CAAVY,UAAU;IACVC,UAAU,GAAAb,IAAA,CAAVa,UAAU;IACVC,SAAS,GAAAd,IAAA,CAATc,SAAS;EAET,IAAMC,mBAAmB,GAAGX,MAAM,CAACW,mBAAmB,KAAK,KAAK;EAChE,IAAMC,iBAAiB,GAAGC,OAAO,CAC7BF,mBAAmB,IAAIX,MAAM,CAACc,UAAU,MAAAjB,aAAA,GAAIG,MAAM,CAACe,KAAK,cAAAlB,aAAA,uBAAZA,aAAA,CAAcmB,IAAI,CAAC,CAAC,CACpE,CAAC;EACD,IAAMC,UAAU,GAAGL,iBAAiB,GAAG,QAAQ,GAAG,SAAS;EAC3D,IAAMM,OAAO,GAAG7B,UAAU,CAACa,KAAK,EAAEe,UAAU,EAAEJ,OAAO,CAACL,UAAU,CAAC,CAAC;EAElE,oBACIf,IAAA,CAACP,aAAa;IACVwB,SAAS,EAAEhB,KAAK,CAAC,IAAI,EAAEgB,SAAS,CAAE;IAClCZ,KAAK,EAAEA,KAAK,IAAIV,IAAI,CAAC,iBAAiB,CAAE;IACxCW,IAAI,EAAEA,IAAK;IACXoB,MAAM,eACF1B,IAAA,CAACR,aAAa;MACVe,MAAM,EAAEA,MAAM,CAACe,KAAM;MACrBD,UAAU,EAAEd,MAAM,CAACc,UAAW;MAC9BH,mBAAmB,EAAEA,mBAAoB;MACzCS,QAAQ,EAAEpB,MAAM,CAACoB,QAAS;MAC1BnB,MAAM,EAAEA,MAAO;MACfoB,QAAQ,EAAErB,MAAM,CAACqB;IAAS,CAC7B,CACJ;IAAAC,QAAA,eAED7B,IAAA,CAACN,QAAQ;MAELe,KAAK,EAAEA,KAAM;MACbe,UAAU,EAAEA,UAAW;MACvBd,aAAa,EAAEA,aAAc;MAC7BoB,SAAS,EAAE,SAAXA,SAASA,CAAGC,IAAI;QAAA,OACZpB,aAAa,GAAGA,aAAa,CAACoB,IAAI,CAAC,gBAAG/B,IAAA,CAACH,kBAAkB,EAAAmC,aAAA,KAAKD,IAAI,CAAG,CAAC;MAAA,CACzE;MACDE,eAAe,EAAEb,OAAO,CAACZ,MAAM,CAAE;MACjCK,OAAO,EAAEA,OAAQ;MACjBC,OAAO,EAAEA,OAAQ;MACjBC,UAAU,EAAEA,UAAW;MACvBC,UAAU,EAAEA,UAAW;MACvBkB,WAAW,EAAEtB;IAAgB,GAZxBa,OAaR;EAAC,CACS,CAAC;AAExB,CAAC","ignoreList":[]}
|
|
@@ -5,3 +5,8 @@ export default meta;
|
|
|
5
5
|
type Story = StoryObj<typeof TutorialsHistory>;
|
|
6
6
|
export declare const Default: Story;
|
|
7
7
|
export declare const Empty: Story;
|
|
8
|
+
export declare const InitialLoading: Story;
|
|
9
|
+
export declare const Paginated: Story;
|
|
10
|
+
export declare const LoadingMore: Story;
|
|
11
|
+
export declare const RouterLinks: Story;
|
|
12
|
+
export declare const CustomRowRenderer: Story;
|
|
@@ -1,13 +1,40 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
1
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
5
|
+
var _excluded = ["onClick"];
|
|
2
6
|
import "core-js/modules/es.array.concat.js";
|
|
3
7
|
import "core-js/modules/es.array.filter.js";
|
|
8
|
+
import "core-js/modules/es.array.from.js";
|
|
4
9
|
import "core-js/modules/es.array.includes.js";
|
|
10
|
+
import "core-js/modules/es.array.map.js";
|
|
5
11
|
import "core-js/modules/es.object.to-string.js";
|
|
6
12
|
import "core-js/modules/es.string.includes.js";
|
|
13
|
+
import "core-js/modules/es.string.iterator.js";
|
|
14
|
+
import "core-js/modules/web.timers.js";
|
|
7
15
|
import React, { useState } from 'react';
|
|
16
|
+
import { Flex, Icon, Text } from '@gravity-ui/uikit';
|
|
17
|
+
var BookOpenIcon = function BookOpenIcon(props) {
|
|
18
|
+
return /*#__PURE__*/_jsx("svg", _objectSpread(_objectSpread({}, props), {}, {
|
|
19
|
+
children: /*#__PURE__*/_jsx("path", {
|
|
20
|
+
fill: "currentColor",
|
|
21
|
+
fillRule: "evenodd",
|
|
22
|
+
d: "M7.345 2.634q.136.069.268.145L8 3l.387-.221q.133-.076.268-.145a6.7 6.7 0 0 1 6.052-.03c.486.242.793.74.793 1.283v8.938c0 .65-.526 1.175-1.175 1.175h-.04c-.187 0-.37-.05-.529-.146a4.8 4.8 0 0 0-4.61-.177l-.199.1A2.1 2.1 0 0 1 8 14h-.117a1.6 1.6 0 0 1-.726-.171l-.233-.117a4.94 4.94 0 0 0-4.748.183.74.74 0 0 1-.381.105h-.12A1.175 1.175 0 0 1 .5 12.825V3.887c0-.543.307-1.04.793-1.284a6.7 6.7 0 0 1 6.052.03m1.405 9.572V4.3l.382-.218A5.2 5.2 0 0 1 14 3.927v8.357a6.3 6.3 0 0 0-5.25-.078m-1.5.005V4.299l-.382-.218A5.2 5.2 0 0 0 2 3.927v8.365a6.44 6.44 0 0 1 5.25-.082",
|
|
23
|
+
clipRule: "evenodd"
|
|
24
|
+
})
|
|
25
|
+
}));
|
|
26
|
+
};
|
|
27
|
+
BookOpenIcon.defaultProps = {
|
|
28
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
29
|
+
width: "16",
|
|
30
|
+
height: "16",
|
|
31
|
+
fill: "none",
|
|
32
|
+
viewBox: "0 0 16 16"
|
|
33
|
+
};
|
|
34
|
+
import { HistoryGroupHeader, RowLink } from "../../components";
|
|
8
35
|
import { TutorialsHistory } from "./TutorialsHistory";
|
|
9
36
|
import { action } from 'storybook/actions';
|
|
10
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
37
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
38
|
var QUERY = "use test;\n\nSELECT\n \"test_session\" AS session_id,\n \"test_task\" AS task_id,\n SUBSTRING(\"test\", 1, 1) AS truncated_char";
|
|
12
39
|
var filterFields = [{
|
|
13
40
|
id: 'onlyMine',
|
|
@@ -49,6 +76,56 @@ var BASE_ITEMS = [{
|
|
|
49
76
|
query: QUERY,
|
|
50
77
|
height: 28
|
|
51
78
|
}];
|
|
79
|
+
var LINK_ITEMS = BASE_ITEMS.map(function (item) {
|
|
80
|
+
return 'id' in item ? _objectSpread(_objectSpread({}, item), {}, {
|
|
81
|
+
href: "/tutorials/".concat(item.id)
|
|
82
|
+
}) : item;
|
|
83
|
+
});
|
|
84
|
+
var PAGINATION_PAGES = [Array.from({
|
|
85
|
+
length: 8
|
|
86
|
+
}, function (_, index) {
|
|
87
|
+
return {
|
|
88
|
+
id: "basics-".concat(index + 1),
|
|
89
|
+
title: "YQL basics: lesson ".concat(index + 1),
|
|
90
|
+
query: QUERY,
|
|
91
|
+
href: "/tutorials/basics-".concat(index + 1),
|
|
92
|
+
height: 28
|
|
93
|
+
};
|
|
94
|
+
}), Array.from({
|
|
95
|
+
length: 8
|
|
96
|
+
}, function (_, index) {
|
|
97
|
+
return {
|
|
98
|
+
id: "advanced-".concat(index + 1),
|
|
99
|
+
title: "Advanced YQL: lesson ".concat(index + 1),
|
|
100
|
+
query: QUERY,
|
|
101
|
+
href: "/tutorials/advanced-".concat(index + 1),
|
|
102
|
+
height: 28
|
|
103
|
+
};
|
|
104
|
+
})];
|
|
105
|
+
var CUSTOM_ROW_ITEMS = [{
|
|
106
|
+
header: 'Getting started',
|
|
107
|
+
height: 28
|
|
108
|
+
}, {
|
|
109
|
+
id: '01HZXB4K8P7Y2Q9T6M3N5R1C0A',
|
|
110
|
+
title: 'Getting started with YQL',
|
|
111
|
+
href: '/tutorials/getting-started',
|
|
112
|
+
height: 32
|
|
113
|
+
}];
|
|
114
|
+
var renderRouterLink = function renderRouterLink(_ref) {
|
|
115
|
+
var _onClick = _ref.onClick,
|
|
116
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
117
|
+
return /*#__PURE__*/_jsx("a", _objectSpread(_objectSpread({}, props), {}, {
|
|
118
|
+
"data-router-link": true,
|
|
119
|
+
onClick: function onClick(event) {
|
|
120
|
+
_onClick === null || _onClick === void 0 || _onClick(event);
|
|
121
|
+
if (event.defaultPrevented || event.button !== 0 || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
event.preventDefault();
|
|
125
|
+
action('routerNavigate')(props.href);
|
|
126
|
+
}
|
|
127
|
+
}));
|
|
128
|
+
};
|
|
52
129
|
var meta = {
|
|
53
130
|
title: 'Widgets/TutorialsHistory',
|
|
54
131
|
component: TutorialsHistory,
|
|
@@ -136,6 +213,117 @@ var EmptyStory = function EmptyStory() {
|
|
|
136
213
|
})
|
|
137
214
|
});
|
|
138
215
|
};
|
|
216
|
+
var PaginatedStory = function PaginatedStory() {
|
|
217
|
+
var _useState7 = useState(PAGINATION_PAGES[0]),
|
|
218
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
219
|
+
items = _useState8[0],
|
|
220
|
+
setItems = _useState8[1];
|
|
221
|
+
var _useState9 = useState(1),
|
|
222
|
+
_useState0 = _slicedToArray(_useState9, 2),
|
|
223
|
+
page = _useState0[0],
|
|
224
|
+
setPage = _useState0[1];
|
|
225
|
+
var _useState1 = useState(false),
|
|
226
|
+
_useState10 = _slicedToArray(_useState1, 2),
|
|
227
|
+
loading = _useState10[0],
|
|
228
|
+
setLoading = _useState10[1];
|
|
229
|
+
var handleLoadMore = function handleLoadMore() {
|
|
230
|
+
var nextPage = PAGINATION_PAGES[page];
|
|
231
|
+
if (loading || !nextPage) {
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
action('onLoadMore')(page);
|
|
235
|
+
setLoading(true);
|
|
236
|
+
window.setTimeout(function () {
|
|
237
|
+
setItems(function (currentItems) {
|
|
238
|
+
return [].concat(_toConsumableArray(currentItems), _toConsumableArray(nextPage));
|
|
239
|
+
});
|
|
240
|
+
setPage(function (currentPage) {
|
|
241
|
+
return currentPage + 1;
|
|
242
|
+
});
|
|
243
|
+
setLoading(false);
|
|
244
|
+
}, 1500);
|
|
245
|
+
};
|
|
246
|
+
return /*#__PURE__*/_jsx("div", {
|
|
247
|
+
style: {
|
|
248
|
+
width: 300,
|
|
249
|
+
height: 300
|
|
250
|
+
},
|
|
251
|
+
children: /*#__PURE__*/_jsx(TutorialsHistory, {
|
|
252
|
+
title: "Paginated tutorials",
|
|
253
|
+
items: items,
|
|
254
|
+
selectedRowId: "basics-2",
|
|
255
|
+
loading: loading,
|
|
256
|
+
hasMore: page < PAGINATION_PAGES.length,
|
|
257
|
+
onLoadMore: handleLoadMore,
|
|
258
|
+
renderLink: renderRouterLink,
|
|
259
|
+
search: {
|
|
260
|
+
onUpdate: action('onSearchUpdate')
|
|
261
|
+
}
|
|
262
|
+
})
|
|
263
|
+
});
|
|
264
|
+
};
|
|
265
|
+
var RouterLinksStory = function RouterLinksStory() {
|
|
266
|
+
var _useState11 = useState({
|
|
267
|
+
value: '',
|
|
268
|
+
fullSearch: false
|
|
269
|
+
}),
|
|
270
|
+
_useState12 = _slicedToArray(_useState11, 2),
|
|
271
|
+
search = _useState12[0],
|
|
272
|
+
setSearch = _useState12[1];
|
|
273
|
+
return /*#__PURE__*/_jsx("div", {
|
|
274
|
+
style: {
|
|
275
|
+
width: 500,
|
|
276
|
+
height: 500
|
|
277
|
+
},
|
|
278
|
+
children: /*#__PURE__*/_jsx(TutorialsHistory, {
|
|
279
|
+
title: "Router links",
|
|
280
|
+
items: LINK_ITEMS,
|
|
281
|
+
renderLink: renderRouterLink,
|
|
282
|
+
search: _objectSpread(_objectSpread({}, search), {}, {
|
|
283
|
+
hasClear: true,
|
|
284
|
+
onUpdate: setSearch
|
|
285
|
+
})
|
|
286
|
+
})
|
|
287
|
+
});
|
|
288
|
+
};
|
|
289
|
+
var CustomRowRendererStory = function CustomRowRendererStory() {
|
|
290
|
+
return /*#__PURE__*/_jsx("div", {
|
|
291
|
+
style: {
|
|
292
|
+
width: 400,
|
|
293
|
+
height: 300
|
|
294
|
+
},
|
|
295
|
+
children: /*#__PURE__*/_jsx(TutorialsHistory, {
|
|
296
|
+
title: "Custom tutorial rows",
|
|
297
|
+
items: CUSTOM_ROW_ITEMS,
|
|
298
|
+
selectedRowId: "01HZXB4K8P7Y2Q9T6M3N5R1C0A",
|
|
299
|
+
renderLink: renderRouterLink,
|
|
300
|
+
renderRowItem: function renderRowItem(_ref2) {
|
|
301
|
+
var item = _ref2.item,
|
|
302
|
+
renderLink = _ref2.renderLink;
|
|
303
|
+
return 'header' in item ? /*#__PURE__*/_jsx(HistoryGroupHeader, {
|
|
304
|
+
title: item.header
|
|
305
|
+
}) : /*#__PURE__*/_jsx(RowLink, {
|
|
306
|
+
href: item.href,
|
|
307
|
+
renderLink: renderLink,
|
|
308
|
+
children: /*#__PURE__*/_jsxs(Flex, {
|
|
309
|
+
alignItems: "center",
|
|
310
|
+
gap: 2,
|
|
311
|
+
children: [/*#__PURE__*/_jsx(Icon, {
|
|
312
|
+
data: BookOpenIcon,
|
|
313
|
+
size: 16
|
|
314
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
315
|
+
ellipsis: true,
|
|
316
|
+
children: item.title
|
|
317
|
+
})]
|
|
318
|
+
})
|
|
319
|
+
});
|
|
320
|
+
},
|
|
321
|
+
search: {
|
|
322
|
+
onUpdate: action('onSearchUpdate')
|
|
323
|
+
}
|
|
324
|
+
})
|
|
325
|
+
});
|
|
326
|
+
};
|
|
139
327
|
export var Default = {
|
|
140
328
|
render: function render() {
|
|
141
329
|
return /*#__PURE__*/_jsx(DefaultStory, {});
|
|
@@ -146,4 +334,59 @@ export var Empty = {
|
|
|
146
334
|
return /*#__PURE__*/_jsx(EmptyStory, {});
|
|
147
335
|
}
|
|
148
336
|
};
|
|
337
|
+
export var InitialLoading = {
|
|
338
|
+
args: {
|
|
339
|
+
title: 'Loading tutorials',
|
|
340
|
+
items: [],
|
|
341
|
+
loading: true,
|
|
342
|
+
search: {
|
|
343
|
+
onUpdate: action('onSearchUpdate')
|
|
344
|
+
}
|
|
345
|
+
},
|
|
346
|
+
decorators: [function (StoryComponent) {
|
|
347
|
+
return /*#__PURE__*/_jsx("div", {
|
|
348
|
+
style: {
|
|
349
|
+
width: 300,
|
|
350
|
+
height: 500
|
|
351
|
+
},
|
|
352
|
+
children: /*#__PURE__*/_jsx(StoryComponent, {})
|
|
353
|
+
});
|
|
354
|
+
}]
|
|
355
|
+
};
|
|
356
|
+
export var Paginated = {
|
|
357
|
+
render: function render() {
|
|
358
|
+
return /*#__PURE__*/_jsx(PaginatedStory, {});
|
|
359
|
+
}
|
|
360
|
+
};
|
|
361
|
+
export var LoadingMore = {
|
|
362
|
+
args: {
|
|
363
|
+
title: 'Loading next page',
|
|
364
|
+
items: PAGINATION_PAGES[0],
|
|
365
|
+
loading: true,
|
|
366
|
+
hasMore: true,
|
|
367
|
+
onLoadMore: action('onLoadMore'),
|
|
368
|
+
search: {
|
|
369
|
+
onUpdate: action('onSearchUpdate')
|
|
370
|
+
}
|
|
371
|
+
},
|
|
372
|
+
decorators: [function (StoryComponent) {
|
|
373
|
+
return /*#__PURE__*/_jsx("div", {
|
|
374
|
+
style: {
|
|
375
|
+
width: 300,
|
|
376
|
+
height: 300
|
|
377
|
+
},
|
|
378
|
+
children: /*#__PURE__*/_jsx(StoryComponent, {})
|
|
379
|
+
});
|
|
380
|
+
}]
|
|
381
|
+
};
|
|
382
|
+
export var RouterLinks = {
|
|
383
|
+
render: function render() {
|
|
384
|
+
return /*#__PURE__*/_jsx(RouterLinksStory, {});
|
|
385
|
+
}
|
|
386
|
+
};
|
|
387
|
+
export var CustomRowRenderer = {
|
|
388
|
+
render: function render() {
|
|
389
|
+
return /*#__PURE__*/_jsx(CustomRowRendererStory, {});
|
|
390
|
+
}
|
|
391
|
+
};
|
|
149
392
|
// #sourceMappingURL=TutorialsHistory.stories.js.map
|