@dxos/plugin-search 0.6.14-staging.54a8bab → 0.6.14-staging.7b35391
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.
|
@@ -142,7 +142,7 @@ var SearchResults = ({ items, selected, onSelect }) => {
|
|
|
142
142
|
};
|
|
143
143
|
|
|
144
144
|
// packages/plugins/experimental/plugin-search/src/context.tsx
|
|
145
|
-
import React3, { createContext, useContext, useState as useState2 } from "react";
|
|
145
|
+
import React3, { createContext, useContext, useMemo, useState as useState2 } from "react";
|
|
146
146
|
import { raise } from "@dxos/debug";
|
|
147
147
|
|
|
148
148
|
// packages/plugins/experimental/plugin-search/src/search-sync.ts
|
|
@@ -259,8 +259,10 @@ var useGlobalFilteredObjects = (objects) => {
|
|
|
259
259
|
if (!match || !objects) {
|
|
260
260
|
return objects ?? [];
|
|
261
261
|
}
|
|
262
|
-
|
|
263
|
-
|
|
262
|
+
return useMemo(() => filterObjectsSync(objects, match).map((result) => result.object), [
|
|
263
|
+
objects,
|
|
264
|
+
match
|
|
265
|
+
]);
|
|
264
266
|
};
|
|
265
267
|
|
|
266
268
|
// packages/plugins/experimental/plugin-search/src/components/SearchMain.tsx
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/SearchPlugin.tsx", "../../../src/components/Searchbar/Searchbar.tsx", "../../../src/components/SearchMain.tsx", "../../../src/components/SearchResults/SearchResults.tsx", "../../../src/context.tsx", "../../../src/search-sync.ts", "../../../src/components/SearchDialog.tsx", "../../../src/search.ts", "../../../src/translations.ts", "../../../src/types.tsx", "../../../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport {\n type PluginDefinition,\n type LocationProvides,\n type GraphProvides,\n type Plugin,\n resolvePlugin,\n parseIntentPlugin,\n parseGraphPlugin,\n parseNavigationPlugin,\n LayoutAction,\n firstIdInPart,\n} from '@dxos/app-framework';\nimport { createExtension, type Node } from '@dxos/plugin-graph';\nimport { getActiveSpace } from '@dxos/plugin-space';\n\nimport { SearchDialog, SearchMain } from './components';\nimport { SearchContextProvider } from './context';\nimport meta, { SEARCH_PLUGIN, SEARCH_RESULT } from './meta';\nimport type { SearchResult } from './search-sync';\nimport translations from './translations';\nimport { SearchAction, type SearchPluginProvides } from './types';\n\nexport const SearchPlugin = (): PluginDefinition<SearchPluginProvides> => {\n let navigationPlugin: Plugin<LocationProvides> | undefined;\n let graphPlugin: Plugin<GraphProvides> | undefined;\n\n return {\n meta,\n ready: async (plugins) => {\n navigationPlugin = resolvePlugin(plugins, parseNavigationPlugin);\n graphPlugin = resolvePlugin(plugins, parseGraphPlugin);\n },\n provides: {\n translations,\n metadata: {\n records: {\n [SEARCH_RESULT]: {\n parse: (item: SearchResult, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.label, data: item.object };\n case 'object':\n return item.object;\n case 'view-object':\n return item;\n }\n },\n },\n },\n },\n graph: {\n builder: (plugins) => {\n const intentPlugin = resolvePlugin(plugins, parseIntentPlugin);\n return createExtension({\n id: SEARCH_PLUGIN,\n filter: (node): node is Node<null> => node.id === 'root',\n actions: () => [\n {\n id: SearchAction.SEARCH,\n data: async () => {\n await intentPlugin?.provides.intent.dispatch({\n plugin: SEARCH_PLUGIN,\n action: SearchAction.SEARCH,\n });\n },\n properties: {\n label: ['search action label', { ns: SEARCH_PLUGIN }],\n icon: 'ph--magnifying-glass--regular',\n keyBinding: {\n macos: 'shift+meta+f',\n windows: 'shift+alt+f',\n },\n testId: 'searchPlugin.search',\n },\n },\n ],\n });\n },\n },\n context: ({ children }) => <SearchContextProvider>{children}</SearchContextProvider>,\n surface: {\n component: ({ data, role }) => {\n const location = navigationPlugin?.provides.location;\n const graph = graphPlugin?.provides.graph;\n const space = graph && location ? getActiveSpace(graph, firstIdInPart(location.active, 'main')) : undefined;\n\n switch (role) {\n case 'dialog':\n return data.component === `${SEARCH_PLUGIN}/Dialog` ? (\n <SearchDialog subject={data.subject as any} />\n ) : null;\n case 'search-input':\n return space ? <SearchMain space={space} /> : null;\n }\n\n return null;\n },\n },\n intent: {\n resolver: (intent, plugins) => {\n switch (intent.action) {\n case SearchAction.SEARCH: {\n const intentPlugin = resolvePlugin(plugins, parseIntentPlugin);\n return intentPlugin?.provides.intent.dispatch({\n action: LayoutAction.SET_LAYOUT,\n data: { element: 'complementary', state: true },\n });\n }\n }\n },\n },\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { MagnifyingGlass } from '@phosphor-icons/react';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Input, type TextInputProps } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nexport type SearchbarProps = Pick<TextInputProps, 'variant' | 'placeholder'> & {\n classes?: {\n root?: string;\n input?: string;\n };\n value?: string;\n onChange?: (text?: string) => void;\n delay?: number;\n};\n\nexport const Searchbar = ({ classes, variant, placeholder, value, onChange }: SearchbarProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const [text, setText] = useState(value);\n useEffect(() => {\n setText(value);\n }, [value]);\n const handleChange = (text?: string) => {\n setText(text);\n onChange?.(text);\n };\n\n const handleReset = () => {\n handleChange(undefined);\n inputRef.current?.focus();\n };\n\n return (\n <div className='flex w-full items-center pli-1 pbs-1'>\n <Input.Root>\n <Input.TextInput\n ref={inputRef}\n placeholder={placeholder}\n variant={variant}\n value={text ?? ''}\n classNames={mx('pl-3 pr-10', classes?.input)}\n onChange={({ target }) => handleChange(target.value)}\n onKeyDown={({ key }) => key === 'Escape' && handleReset()}\n />\n\n {/* TODO(burdon): Margin should be density specific. */}\n <div role='button' className='-ml-7 p-0 cursor-pointer' onClick={handleReset}>\n <MagnifyingGlass className={getSize(5)} />\n </div>\n </Input.Root>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type FC, useState } from 'react';\n\nimport { useClient } from '@dxos/react-client';\nimport { useQuery, type Space } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { groupSurface, mx } from '@dxos/react-ui-theme';\n\nimport { SearchResults } from './SearchResults';\nimport { Searchbar } from './Searchbar';\nimport { useGlobalSearch, useGlobalSearchResults } from '../context';\nimport { SEARCH_PLUGIN } from '../meta';\n\nexport const SearchMain: FC<{ space: Space }> = ({ space }) => {\n const { t } = useTranslation(SEARCH_PLUGIN);\n const client = useClient();\n const { setMatch } = useGlobalSearch();\n // TODO(burdon): UX to select all spaces.\n const allSpaces = false;\n\n // TODO(burdon): Returns ALL objects (e.g., incl. Text objects that are fields of parent objects).\n const objects = useQuery(allSpaces ? client.spaces : space);\n const results = useGlobalSearchResults(objects);\n\n const [selected, setSelected] = useState<string>();\n\n // TODO(burdon): Activate and/or filter current main (set context).\n const handleSelect = (id: string) => {\n setSelected((selected) => (selected === id ? undefined : id));\n };\n\n return (\n <div className='flex flex-col grow h-full'>\n <Searchbar placeholder={t('search placeholder')} onChange={setMatch} />\n {results.length > 0 && (\n <div className='absolute top-[--topbar-size] bottom-0 z-[1]'>\n {/* TODO(burdon): Change to Portal? */}\n <div className={mx('flex flex-col h-full overflow-hidden', groupSurface)}>\n <SearchResults items={results} selected={selected} onSelect={handleSelect} />\n </div>\n </div>\n )}\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Icon, Buildings, Folders, User } from '@phosphor-icons/react';\nimport React, { type FC, forwardRef } from 'react';\n\nimport { ScrollArea } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui-card';\nimport { type MosaicTileComponent, Mosaic } from '@dxos/react-ui-mosaic';\nimport { ghostHover, mx } from '@dxos/react-ui-theme';\n\nimport { SEARCH_RESULT } from '../../meta';\nimport type { SearchResult } from '../../search-sync';\n\n// TODO(burdon): Factor out.\nconst styles = {\n selected: '!bg-primary-100 !dark:bg-primary-900',\n};\n\n// TODO(burdon): Registry defined by plugins?\nconst getIcon = (type: string): Icon | undefined => {\n const iconMap: Record<string, Icon> = {\n user: User,\n organization: Buildings,\n project: Folders,\n };\n\n return iconMap[type];\n};\n\nexport const Snippet: FC<{ text: string; match?: RegExp }> = ({ text, match }) => {\n let content = <>{text}</>;\n if (match) {\n const result = text.match(match);\n if (result?.index !== undefined) {\n // Break near to match.\n const maxOffset = 16;\n let before = text.slice(0, result.index);\n if (before.length > maxOffset) {\n const idx = before.indexOf(' ', result.index - maxOffset);\n before = '… ' + before.slice(idx);\n }\n\n const after = text.slice(result.index + result[0].length);\n content = (\n <>\n {before}\n <span className='text-blue-500'>{result[0]}</span>\n {after}\n </>\n );\n }\n }\n\n return <span className='text-xs mb-1 line-clamp-3 text-neutral-300'>{content}</span>;\n};\n\nexport type SearchItemProps = SearchResult & { selected: boolean } & Pick<SearchResultsProps, 'onSelect'>;\n\nexport const SearchItem: MosaicTileComponent<SearchItemProps> = forwardRef(\n ({ draggableStyle, draggableProps, item, debug = false }, forwardRef) => {\n const { id, type, label, snippet, match, selected, onSelect } = item;\n const Icon = type ? getIcon(type) : undefined;\n\n return (\n <Card.Root\n ref={forwardRef}\n style={draggableStyle}\n classNames={mx('mx-2 mt-2 cursor-pointer', ghostHover, selected && styles.selected)}\n onClick={() => onSelect?.(id)}\n >\n <Card.Header>\n <Card.DragHandle {...draggableProps} />\n <Card.Title title={label ?? 'Untitled'} />\n {Icon && <Card.Endcap Icon={Icon} />}\n </Card.Header>\n {snippet && (\n <Card.Body gutter>\n <Snippet text={snippet} match={match} />\n </Card.Body>\n )}\n {debug && (\n <Card.Body gutter>\n <pre className='text-xs whitespace-pre-line'>{JSON.stringify(item)}</pre>\n </Card.Body>\n )}\n </Card.Root>\n );\n },\n);\n\nexport type SearchResultsProps = {\n match?: RegExp;\n items: SearchResult[];\n selected?: string;\n onSelect?: (id: string) => void;\n};\n\n// TODO(burdon): Key cursor up/down.\nexport const SearchResults = ({ items, selected, onSelect }: SearchResultsProps) => {\n const path = 'search';\n return (\n <ScrollArea.Root classNames='grow'>\n <ScrollArea.Viewport>\n <Mosaic.Container id={path} Component={SearchItem}>\n {items.map((item) => (\n <Mosaic.DraggableTile\n key={item.id}\n path={path}\n type={SEARCH_RESULT}\n item={{ ...item, selected: selected === item.id, onSelect }}\n Component={SearchItem}\n />\n ))}\n </Mosaic.Container>\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n <ScrollArea.Corner />\n </ScrollArea.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { createContext, type PropsWithChildren, useContext, useState } from 'react';\n\nimport { raise } from '@dxos/debug';\n\nimport { filterObjectsSync, queryStringToMatch, type SearchResult } from './search-sync';\n\ntype SearchContextType = {\n match?: RegExp;\n setMatch?: (text?: string) => void;\n};\n\nconst SearchContext = createContext<SearchContextType>({});\n\nexport const SearchContextProvider = ({ children }: PropsWithChildren) => {\n const [match, setMatch] = useState<RegExp>();\n const handleMatch = (text?: string) => setMatch(queryStringToMatch(text));\n return <SearchContext.Provider value={{ match, setMatch: handleMatch }}>{children}</SearchContext.Provider>;\n};\n\nexport const useGlobalSearch = () => {\n return useContext(SearchContext) ?? raise(new Error('Missing SearchContext.'));\n};\n\nexport const useGlobalSearchResults = <T extends Record<string, any>>(objects?: T[]): SearchResult[] => {\n const { match } = useGlobalSearch();\n return objects && match ? filterObjectsSync(objects, match) : [];\n};\n\nexport const useGlobalFilteredObjects = <T extends Record<string, any>>(objects?: T[]): T[] => {\n const { match } = useGlobalSearch();\n if (!match || !objects) {\n return objects ?? [];\n }\n\n const matching = filterObjectsSync(objects, match);\n return matching.map((result) => result.object);\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { AST, getSchema, type S } from '@dxos/echo-schema';\nimport { TextType } from '@dxos/plugin-markdown/types';\n\nexport const queryStringToMatch = (queryString?: string): RegExp | undefined => {\n const trimmed = queryString?.trim();\n return trimmed ? new RegExp(trimmed, 'i') : undefined;\n};\n\n// TODO(burdon): Type name registry linked to schema?\nconst getIcon = (schema: S.Schema<any> | undefined): string | undefined => {\n if (!(schema && AST.isTypeLiteral(schema.ast))) {\n return undefined;\n }\n const keys = schema.ast.propertySignatures.map((p) => p.name);\n if (keys.indexOf('email') !== -1) {\n return 'user';\n }\n if (keys.indexOf('website') !== -1) {\n return 'organization';\n }\n if (keys.indexOf('repo') !== -1) {\n return 'project';\n }\n\n return undefined;\n};\n\n// Plain text fields.\n// TODO(burdon): Reconcile with agent index.\nexport type TextFields = Record<string, string>;\n\nexport type SearchResult = {\n id: string;\n type?: string;\n label?: string;\n match?: RegExp;\n snippet?: string;\n object?: any;\n};\n\n// TODO(thure): This returns `SearchResult[]` which is not just a narrower set of objects as the name implies.\nexport const filterObjectsSync = <T extends Record<string, any>>(objects: T[], match?: RegExp): SearchResult[] => {\n if (!match) {\n return [];\n }\n\n return objects.reduce<SearchResult[]>((results, object) => {\n // TODO(burdon): Hack to ignore Text objects.\n if (object instanceof TextType) {\n return results;\n }\n\n const fields = mapObjectToTextFields(object);\n Object.entries(fields).some(([, value]) => {\n const result = value.match(match);\n if (result) {\n // TODO(burdon): Use schema.\n const label = getStringProperty(object, ['label', 'name', 'title']);\n\n results.push({\n id: object.id,\n type: getIcon(getSchema(object)),\n label,\n match,\n // TODO(burdon): Truncate.\n // TODO(burdon): Issue with sketch documents.\n snippet: value !== label ? value : fields.content ?? fields.description ?? undefined,\n object,\n });\n\n return true;\n }\n\n return false;\n });\n\n return results;\n }, []);\n};\n\n// TODO(burdon): Use schema?\nconst getStringProperty = (object: Record<string, unknown>, keys: string[]): string | undefined => {\n let label;\n keys.some((key) => {\n const value = object[key];\n if (typeof value === 'string') {\n label = value;\n return true;\n }\n\n return false;\n });\n\n return label;\n};\n\n// TODO(burdon): Filter system fields.\nconst getKeys = (object: Record<string, unknown>): string[] => {\n try {\n const obj = JSON.parse(JSON.stringify(object));\n return Object.keys(obj).filter(\n (key) => key !== 'id' && key !== 'identityKey' && key[0] !== '_' && key[0] !== '@',\n ) as string[];\n } catch (err) {\n // TODO(burdon): Error with TLDraw sketch.\n // Uncaught Error: Type with the name content has already been defined with a different constructor\n return [];\n }\n};\n\n// TODO(burdon): Use ECHO schema.\nexport const mapObjectToTextFields = <T extends Record<string, unknown>>(object: T): TextFields => {\n return getKeys(object).reduce<TextFields>((fields, key) => {\n const value = object[key] as any;\n if (typeof value === 'string' || value instanceof TextType) {\n try {\n fields[key] = String(value);\n } catch (err) {\n // TODO(burdon): Exception when parsing sketch document.\n }\n }\n\n return fields;\n }, {});\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef, useCallback, useState } from 'react';\n\nimport {\n useResolvePlugin,\n parseNavigationPlugin,\n parseGraphPlugin,\n NavigationAction,\n LayoutAction,\n type LayoutCoordinate,\n isLayoutParts,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport { type Node } from '@dxos/plugin-graph';\nimport { useClient } from '@dxos/react-client';\nimport { fullyQualifiedId, useQuery } from '@dxos/react-client/echo';\nimport { Button, Dialog, Icon, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { SearchList, type SearchListItemProps } from '@dxos/react-ui-searchlist';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\n\nimport { SEARCH_PLUGIN } from '../meta';\nimport { useSearchResults } from '../search';\n\ntype SearchListResultProps = {\n node: Node;\n} & Pick<SearchListItemProps, 'onSelect'>;\n\nconst SearchListResult = forwardRef<HTMLDivElement, SearchListResultProps>(({ node, onSelect }, forwardedRef) => {\n const { t } = useTranslation(SEARCH_PLUGIN);\n const label = toLocalizedString(node?.properties.label ?? 'never', t);\n return (\n <SearchList.Item\n value={label}\n key={node!.id}\n classNames='flex gap-2 items-center pli-2'\n onSelect={() => onSelect?.(node!.id)}\n ref={forwardedRef}\n >\n <Icon size={5} icon={node?.properties.icon} />\n <span className='is-0 grow truncate'>{label}</span>\n </SearchList.Item>\n );\n});\n\nexport const SearchDialog = ({\n subject,\n}: {\n subject: { action: NavigationAction; layoutCoordinate: LayoutCoordinate; position: 'add-after' | 'add-before' };\n}) => {\n const { t } = useTranslation(SEARCH_PLUGIN);\n const graphPlugin = useResolvePlugin(parseGraphPlugin);\n const graph = graphPlugin?.provides.graph;\n const navigationPlugin = useResolvePlugin(parseNavigationPlugin);\n const providedClosed = navigationPlugin?.provides.location.closed ?? [];\n const closed = (Array.isArray(providedClosed) ? providedClosed : [providedClosed])\n .map((id) => graph?.findNode(id))\n .filter(Boolean);\n const active = navigationPlugin?.provides.location.active;\n const [queryString, setQueryString] = useState('');\n const client = useClient();\n const dangerouslyLoadAllObjects = useQuery(client.spaces);\n const [pending, results] = useSearchResults(queryString, dangerouslyLoadAllObjects);\n const resultObjects = Array.from(results.keys());\n const dispatch = useIntentDispatcher();\n\n const handleSelect = useCallback(\n (nodeId: string) => {\n if (active && isLayoutParts(active)) {\n // If node is already present in the active parts, scroll to it and close the dialog.\n const index = active?.main?.findIndex((entry) => entry.id === nodeId);\n if (index !== -1) {\n return dispatch([\n { action: LayoutAction.SET_LAYOUT, data: { element: 'dialog', state: false } },\n { action: LayoutAction.SCROLL_INTO_VIEW, data: { id: nodeId } },\n ]);\n }\n\n return dispatch([\n {\n action: NavigationAction.ADD_TO_ACTIVE,\n data: {\n part: subject.layoutCoordinate.part,\n id: nodeId,\n pivotId: subject.layoutCoordinate.entryId,\n positioning: 'end',\n },\n },\n { action: LayoutAction.SET_LAYOUT, data: { element: 'dialog', state: false } },\n { action: LayoutAction.SCROLL_INTO_VIEW, data: { id: nodeId } },\n ]);\n }\n },\n [subject, dispatch, active],\n );\n\n return (\n <Dialog.Content classNames={['md:max-is-[24rem] overflow-hidden mbs-12']}>\n <Dialog.Title>{t('search dialog title')}</Dialog.Title>\n <SearchList.Root label={t('search placeholder')} classNames='flex flex-col grow overflow-hidden my-2'>\n <SearchList.Input\n value={queryString}\n onValueChange={(nextValue) => {\n setQueryString(nextValue);\n }}\n placeholder={t('search placeholder')}\n classNames='px-1 my-2'\n />\n <SearchList.Content classNames='max-bs-[24rem] overflow-auto'>\n {queryString.length > 0 ? (\n resultObjects.length > 0 ? (\n resultObjects\n .map((object) => graph?.findNode(fullyQualifiedId(object)))\n .filter(Boolean)\n .map((node) => <SearchListResult key={node!.id} node={node!} onSelect={handleSelect} />)\n ) : (\n <p className='pli-1'>{t(pending ? 'pending results message' : 'empty results message')}</p>\n )\n ) : (\n <>\n {closed.length > 0 && <h2 className={mx('mlb-1', descriptionText)}>{t('recently closed heading')}</h2>}\n {closed.map((node) => (\n <SearchListResult key={node!.id} node={node!} onSelect={handleSelect} />\n ))}\n </>\n )}\n </SearchList.Content>\n </SearchList.Root>\n\n <Dialog.Close asChild>\n <Button variant='primary' classNames='mbs-2'>\n {t('close label', { ns: 'os' })}\n </Button>\n </Dialog.Close>\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { yieldOrContinue } from 'main-thread-scheduling';\nimport { useEffect, useState } from 'react';\n\nimport { TextType } from '@dxos/plugin-markdown/types';\n\n// TODO(thure): Deprecate search-sync, move still-relevant utilities elsewhere (here, probably).\nimport { mapObjectToTextFields, queryStringToMatch } from './search-sync';\n\nexport const filterObjects = async <T extends Record<string, any>>(\n objects: T[],\n match?: RegExp,\n): Promise<Map<T, string[][]>> => {\n const result = new Map<T, string[][]>();\n if (!match) {\n return result;\n }\n await Promise.all(\n objects\n .filter((object) => !(object instanceof TextType))\n .map(async (object) => {\n await yieldOrContinue('interactive');\n const fields = mapObjectToTextFields<T>(object);\n Object.entries(fields)\n .filter(([_, value]) => value.match(match))\n .forEach(([key, value]) => {\n if (!result.has(object)) {\n result.set(object, []);\n }\n result.set(object, [...result.get(object)!, [key, value]]);\n });\n }),\n );\n return result;\n};\n\nexport const useSearchResults = <T extends Record<string, any>>(\n queryString?: string,\n objects?: T[],\n delay: number = 400,\n): [boolean, Map<T, string[][]>] => {\n const [results, setResults] = useState<Map<T, string[][]>>(new Map());\n const [pending, setPending] = useState(false);\n\n useEffect(() => {\n setPending(!!(objects && queryString));\n const timeoutId = setTimeout(async () => {\n const nextResults =\n objects && queryString ? await filterObjects(objects, queryStringToMatch(queryString)) : new Map();\n setResults(nextResults);\n setPending(false);\n }, delay);\n\n return () => clearTimeout(timeoutId);\n }, [queryString, objects]);\n\n return [pending, results];\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SEARCH_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [SEARCH_PLUGIN]: {\n 'plugin name': 'Search',\n 'search action label': 'Search spaces',\n 'search placeholder': 'Search…',\n 'search dialog title': 'Open',\n 'recently closed heading': 'Recently closed',\n 'pending results message': 'Searching…',\n 'empty results message': 'No matching items in your spaces',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type {\n GraphBuilderProvides,\n IntentResolverProvides,\n MetadataRecordsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\n\nimport { SEARCH_PLUGIN } from './meta';\n\nconst SEARCH_ACTION = `${SEARCH_PLUGIN}/action`;\n\nexport enum SearchAction {\n SEARCH = `${SEARCH_ACTION}/search`,\n}\n\nexport type SearchPluginProvides = SurfaceProvides &\n IntentResolverProvides &\n GraphBuilderProvides &\n MetadataRecordsProvides &\n TranslationsProvides;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SearchPlugin } from './SearchPlugin';\n\nexport default SearchPlugin;\n\nexport * from './context';\nexport * from './search-sync';\n\nexport * from './SearchPlugin';\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "resolvePlugin", "parseIntentPlugin", "parseGraphPlugin", "parseNavigationPlugin", "LayoutAction", "firstIdInPart", "createExtension", "getActiveSpace", "MagnifyingGlass", "React", "useEffect", "useRef", "useState", "Input", "getSize", "mx", "Searchbar", "classes", "variant", "placeholder", "value", "onChange", "inputRef", "useRef", "text", "setText", "useState", "useEffect", "handleChange", "handleReset", "undefined", "current", "focus", "div", "className", "Input", "Root", "TextInput", "ref", "classNames", "mx", "input", "target", "onKeyDown", "key", "role", "onClick", "MagnifyingGlass", "getSize", "React", "useState", "useClient", "useQuery", "useTranslation", "groupSurface", "mx", "Buildings", "Folders", "User", "React", "forwardRef", "ScrollArea", "Card", "Mosaic", "ghostHover", "mx", "styles", "selected", "getIcon", "type", "iconMap", "user", "User", "organization", "Buildings", "project", "Folders", "Snippet", "text", "match", "content", "React", "result", "index", "undefined", "maxOffset", "before", "slice", "length", "idx", "indexOf", "after", "span", "className", "SearchItem", "forwardRef", "draggableStyle", "draggableProps", "item", "debug", "id", "label", "snippet", "onSelect", "Icon", "Card", "Root", "ref", "style", "classNames", "mx", "ghostHover", "onClick", "Header", "DragHandle", "Title", "title", "Endcap", "Body", "gutter", "pre", "JSON", "stringify", "SearchResults", "items", "path", "ScrollArea", "Viewport", "Mosaic", "Container", "Component", "map", "DraggableTile", "key", "SEARCH_RESULT", "Scrollbar", "orientation", "Thumb", "Corner", "React", "createContext", "useContext", "useState", "raise", "AST", "getSchema", "TextType", "queryStringToMatch", "queryString", "trimmed", "trim", "RegExp", "undefined", "getIcon", "schema", "AST", "isTypeLiteral", "ast", "keys", "propertySignatures", "map", "p", "name", "indexOf", "filterObjectsSync", "objects", "match", "reduce", "results", "object", "TextType", "fields", "mapObjectToTextFields", "Object", "entries", "some", "value", "result", "label", "getStringProperty", "push", "id", "type", "getSchema", "snippet", "content", "description", "key", "getKeys", "obj", "JSON", "parse", "stringify", "filter", "err", "String", "SearchContext", "createContext", "SearchContextProvider", "children", "match", "setMatch", "useState", "handleMatch", "text", "queryStringToMatch", "React", "Provider", "value", "useGlobalSearch", "useContext", "raise", "Error", "useGlobalSearchResults", "objects", "filterObjectsSync", "useGlobalFilteredObjects", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport {\n type PluginDefinition,\n type LocationProvides,\n type GraphProvides,\n type Plugin,\n resolvePlugin,\n parseIntentPlugin,\n parseGraphPlugin,\n parseNavigationPlugin,\n LayoutAction,\n firstIdInPart,\n} from '@dxos/app-framework';\nimport { createExtension, type Node } from '@dxos/plugin-graph';\nimport { getActiveSpace } from '@dxos/plugin-space';\n\nimport { SearchDialog, SearchMain } from './components';\nimport { SearchContextProvider } from './context';\nimport meta, { SEARCH_PLUGIN, SEARCH_RESULT } from './meta';\nimport type { SearchResult } from './search-sync';\nimport translations from './translations';\nimport { SearchAction, type SearchPluginProvides } from './types';\n\nexport const SearchPlugin = (): PluginDefinition<SearchPluginProvides> => {\n let navigationPlugin: Plugin<LocationProvides> | undefined;\n let graphPlugin: Plugin<GraphProvides> | undefined;\n\n return {\n meta,\n ready: async (plugins) => {\n navigationPlugin = resolvePlugin(plugins, parseNavigationPlugin);\n graphPlugin = resolvePlugin(plugins, parseGraphPlugin);\n },\n provides: {\n translations,\n metadata: {\n records: {\n [SEARCH_RESULT]: {\n parse: (item: SearchResult, type: string) => {\n switch (type) {\n case 'node':\n return { id: item.id, label: item.label, data: item.object };\n case 'object':\n return item.object;\n case 'view-object':\n return item;\n }\n },\n },\n },\n },\n graph: {\n builder: (plugins) => {\n const intentPlugin = resolvePlugin(plugins, parseIntentPlugin);\n return createExtension({\n id: SEARCH_PLUGIN,\n filter: (node): node is Node<null> => node.id === 'root',\n actions: () => [\n {\n id: SearchAction.SEARCH,\n data: async () => {\n await intentPlugin?.provides.intent.dispatch({\n plugin: SEARCH_PLUGIN,\n action: SearchAction.SEARCH,\n });\n },\n properties: {\n label: ['search action label', { ns: SEARCH_PLUGIN }],\n icon: 'ph--magnifying-glass--regular',\n keyBinding: {\n macos: 'shift+meta+f',\n windows: 'shift+alt+f',\n },\n testId: 'searchPlugin.search',\n },\n },\n ],\n });\n },\n },\n context: ({ children }) => <SearchContextProvider>{children}</SearchContextProvider>,\n surface: {\n component: ({ data, role }) => {\n const location = navigationPlugin?.provides.location;\n const graph = graphPlugin?.provides.graph;\n const space = graph && location ? getActiveSpace(graph, firstIdInPart(location.active, 'main')) : undefined;\n\n switch (role) {\n case 'dialog':\n return data.component === `${SEARCH_PLUGIN}/Dialog` ? (\n <SearchDialog subject={data.subject as any} />\n ) : null;\n case 'search-input':\n return space ? <SearchMain space={space} /> : null;\n }\n\n return null;\n },\n },\n intent: {\n resolver: (intent, plugins) => {\n switch (intent.action) {\n case SearchAction.SEARCH: {\n const intentPlugin = resolvePlugin(plugins, parseIntentPlugin);\n return intentPlugin?.provides.intent.dispatch({\n action: LayoutAction.SET_LAYOUT,\n data: { element: 'complementary', state: true },\n });\n }\n }\n },\n },\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { MagnifyingGlass } from '@phosphor-icons/react';\nimport React, { useEffect, useRef, useState } from 'react';\n\nimport { Input, type TextInputProps } from '@dxos/react-ui';\nimport { getSize, mx } from '@dxos/react-ui-theme';\n\nexport type SearchbarProps = Pick<TextInputProps, 'variant' | 'placeholder'> & {\n classes?: {\n root?: string;\n input?: string;\n };\n value?: string;\n onChange?: (text?: string) => void;\n delay?: number;\n};\n\nexport const Searchbar = ({ classes, variant, placeholder, value, onChange }: SearchbarProps) => {\n const inputRef = useRef<HTMLInputElement>(null);\n const [text, setText] = useState(value);\n useEffect(() => {\n setText(value);\n }, [value]);\n const handleChange = (text?: string) => {\n setText(text);\n onChange?.(text);\n };\n\n const handleReset = () => {\n handleChange(undefined);\n inputRef.current?.focus();\n };\n\n return (\n <div className='flex w-full items-center pli-1 pbs-1'>\n <Input.Root>\n <Input.TextInput\n ref={inputRef}\n placeholder={placeholder}\n variant={variant}\n value={text ?? ''}\n classNames={mx('pl-3 pr-10', classes?.input)}\n onChange={({ target }) => handleChange(target.value)}\n onKeyDown={({ key }) => key === 'Escape' && handleReset()}\n />\n\n {/* TODO(burdon): Margin should be density specific. */}\n <div role='button' className='-ml-7 p-0 cursor-pointer' onClick={handleReset}>\n <MagnifyingGlass className={getSize(5)} />\n </div>\n </Input.Root>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { type FC, useState } from 'react';\n\nimport { useClient } from '@dxos/react-client';\nimport { useQuery, type Space } from '@dxos/react-client/echo';\nimport { useTranslation } from '@dxos/react-ui';\nimport { groupSurface, mx } from '@dxos/react-ui-theme';\n\nimport { SearchResults } from './SearchResults';\nimport { Searchbar } from './Searchbar';\nimport { useGlobalSearch, useGlobalSearchResults } from '../context';\nimport { SEARCH_PLUGIN } from '../meta';\n\nexport const SearchMain: FC<{ space: Space }> = ({ space }) => {\n const { t } = useTranslation(SEARCH_PLUGIN);\n const client = useClient();\n const { setMatch } = useGlobalSearch();\n // TODO(burdon): UX to select all spaces.\n const allSpaces = false;\n\n // TODO(burdon): Returns ALL objects (e.g., incl. Text objects that are fields of parent objects).\n const objects = useQuery(allSpaces ? client.spaces : space);\n const results = useGlobalSearchResults(objects);\n\n const [selected, setSelected] = useState<string>();\n\n // TODO(burdon): Activate and/or filter current main (set context).\n const handleSelect = (id: string) => {\n setSelected((selected) => (selected === id ? undefined : id));\n };\n\n return (\n <div className='flex flex-col grow h-full'>\n <Searchbar placeholder={t('search placeholder')} onChange={setMatch} />\n {results.length > 0 && (\n <div className='absolute top-[--topbar-size] bottom-0 z-[1]'>\n {/* TODO(burdon): Change to Portal? */}\n <div className={mx('flex flex-col h-full overflow-hidden', groupSurface)}>\n <SearchResults items={results} selected={selected} onSelect={handleSelect} />\n </div>\n </div>\n )}\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Icon, Buildings, Folders, User } from '@phosphor-icons/react';\nimport React, { type FC, forwardRef } from 'react';\n\nimport { ScrollArea } from '@dxos/react-ui';\nimport { Card } from '@dxos/react-ui-card';\nimport { type MosaicTileComponent, Mosaic } from '@dxos/react-ui-mosaic';\nimport { ghostHover, mx } from '@dxos/react-ui-theme';\n\nimport { SEARCH_RESULT } from '../../meta';\nimport type { SearchResult } from '../../search-sync';\n\n// TODO(burdon): Factor out.\nconst styles = {\n selected: '!bg-primary-100 !dark:bg-primary-900',\n};\n\n// TODO(burdon): Registry defined by plugins?\nconst getIcon = (type: string): Icon | undefined => {\n const iconMap: Record<string, Icon> = {\n user: User,\n organization: Buildings,\n project: Folders,\n };\n\n return iconMap[type];\n};\n\nexport const Snippet: FC<{ text: string; match?: RegExp }> = ({ text, match }) => {\n let content = <>{text}</>;\n if (match) {\n const result = text.match(match);\n if (result?.index !== undefined) {\n // Break near to match.\n const maxOffset = 16;\n let before = text.slice(0, result.index);\n if (before.length > maxOffset) {\n const idx = before.indexOf(' ', result.index - maxOffset);\n before = '… ' + before.slice(idx);\n }\n\n const after = text.slice(result.index + result[0].length);\n content = (\n <>\n {before}\n <span className='text-blue-500'>{result[0]}</span>\n {after}\n </>\n );\n }\n }\n\n return <span className='text-xs mb-1 line-clamp-3 text-neutral-300'>{content}</span>;\n};\n\nexport type SearchItemProps = SearchResult & { selected: boolean } & Pick<SearchResultsProps, 'onSelect'>;\n\nexport const SearchItem: MosaicTileComponent<SearchItemProps> = forwardRef(\n ({ draggableStyle, draggableProps, item, debug = false }, forwardRef) => {\n const { id, type, label, snippet, match, selected, onSelect } = item;\n const Icon = type ? getIcon(type) : undefined;\n\n return (\n <Card.Root\n ref={forwardRef}\n style={draggableStyle}\n classNames={mx('mx-2 mt-2 cursor-pointer', ghostHover, selected && styles.selected)}\n onClick={() => onSelect?.(id)}\n >\n <Card.Header>\n <Card.DragHandle {...draggableProps} />\n <Card.Title title={label ?? 'Untitled'} />\n {Icon && <Card.Endcap Icon={Icon} />}\n </Card.Header>\n {snippet && (\n <Card.Body gutter>\n <Snippet text={snippet} match={match} />\n </Card.Body>\n )}\n {debug && (\n <Card.Body gutter>\n <pre className='text-xs whitespace-pre-line'>{JSON.stringify(item)}</pre>\n </Card.Body>\n )}\n </Card.Root>\n );\n },\n);\n\nexport type SearchResultsProps = {\n match?: RegExp;\n items: SearchResult[];\n selected?: string;\n onSelect?: (id: string) => void;\n};\n\n// TODO(burdon): Key cursor up/down.\nexport const SearchResults = ({ items, selected, onSelect }: SearchResultsProps) => {\n const path = 'search';\n return (\n <ScrollArea.Root classNames='grow'>\n <ScrollArea.Viewport>\n <Mosaic.Container id={path} Component={SearchItem}>\n {items.map((item) => (\n <Mosaic.DraggableTile\n key={item.id}\n path={path}\n type={SEARCH_RESULT}\n item={{ ...item, selected: selected === item.id, onSelect }}\n Component={SearchItem}\n />\n ))}\n </Mosaic.Container>\n </ScrollArea.Viewport>\n <ScrollArea.Scrollbar orientation='vertical'>\n <ScrollArea.Thumb />\n </ScrollArea.Scrollbar>\n <ScrollArea.Corner />\n </ScrollArea.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { createContext, type PropsWithChildren, useContext, useMemo, useState } from 'react';\n\nimport { raise } from '@dxos/debug';\n\nimport { filterObjectsSync, queryStringToMatch, type SearchResult } from './search-sync';\n\ntype SearchContextType = {\n match?: RegExp;\n setMatch?: (text?: string) => void;\n};\n\nconst SearchContext = createContext<SearchContextType>({});\n\nexport const SearchContextProvider = ({ children }: PropsWithChildren) => {\n const [match, setMatch] = useState<RegExp>();\n const handleMatch = (text?: string) => setMatch(queryStringToMatch(text));\n return <SearchContext.Provider value={{ match, setMatch: handleMatch }}>{children}</SearchContext.Provider>;\n};\n\nexport const useGlobalSearch = () => {\n return useContext(SearchContext) ?? raise(new Error('Missing SearchContext.'));\n};\n\nexport const useGlobalSearchResults = <T extends Record<string, any>>(objects?: T[]): SearchResult[] => {\n const { match } = useGlobalSearch();\n return objects && match ? filterObjectsSync(objects, match) : [];\n};\n\nexport const useGlobalFilteredObjects = <T extends Record<string, any>>(objects?: T[]): T[] => {\n const { match } = useGlobalSearch();\n if (!match || !objects) {\n return objects ?? [];\n }\n\n return useMemo(() => filterObjectsSync(objects, match).map((result) => result.object), [objects, match]);\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { AST, getSchema, type S } from '@dxos/echo-schema';\nimport { TextType } from '@dxos/plugin-markdown/types';\n\nexport const queryStringToMatch = (queryString?: string): RegExp | undefined => {\n const trimmed = queryString?.trim();\n return trimmed ? new RegExp(trimmed, 'i') : undefined;\n};\n\n// TODO(burdon): Type name registry linked to schema?\nconst getIcon = (schema: S.Schema<any> | undefined): string | undefined => {\n if (!(schema && AST.isTypeLiteral(schema.ast))) {\n return undefined;\n }\n const keys = schema.ast.propertySignatures.map((p) => p.name);\n if (keys.indexOf('email') !== -1) {\n return 'user';\n }\n if (keys.indexOf('website') !== -1) {\n return 'organization';\n }\n if (keys.indexOf('repo') !== -1) {\n return 'project';\n }\n\n return undefined;\n};\n\n// Plain text fields.\n// TODO(burdon): Reconcile with agent index.\nexport type TextFields = Record<string, string>;\n\nexport type SearchResult = {\n id: string;\n type?: string;\n label?: string;\n match?: RegExp;\n snippet?: string;\n object?: any;\n};\n\n// TODO(thure): This returns `SearchResult[]` which is not just a narrower set of objects as the name implies.\nexport const filterObjectsSync = <T extends Record<string, any>>(objects: T[], match?: RegExp): SearchResult[] => {\n if (!match) {\n return [];\n }\n\n return objects.reduce<SearchResult[]>((results, object) => {\n // TODO(burdon): Hack to ignore Text objects.\n if (object instanceof TextType) {\n return results;\n }\n\n const fields = mapObjectToTextFields(object);\n Object.entries(fields).some(([, value]) => {\n const result = value.match(match);\n if (result) {\n // TODO(burdon): Use schema.\n const label = getStringProperty(object, ['label', 'name', 'title']);\n\n results.push({\n id: object.id,\n type: getIcon(getSchema(object)),\n label,\n match,\n // TODO(burdon): Truncate.\n // TODO(burdon): Issue with sketch documents.\n snippet: value !== label ? value : fields.content ?? fields.description ?? undefined,\n object,\n });\n\n return true;\n }\n\n return false;\n });\n\n return results;\n }, []);\n};\n\n// TODO(burdon): Use schema?\nconst getStringProperty = (object: Record<string, unknown>, keys: string[]): string | undefined => {\n let label;\n keys.some((key) => {\n const value = object[key];\n if (typeof value === 'string') {\n label = value;\n return true;\n }\n\n return false;\n });\n\n return label;\n};\n\n// TODO(burdon): Filter system fields.\nconst getKeys = (object: Record<string, unknown>): string[] => {\n try {\n const obj = JSON.parse(JSON.stringify(object));\n return Object.keys(obj).filter(\n (key) => key !== 'id' && key !== 'identityKey' && key[0] !== '_' && key[0] !== '@',\n ) as string[];\n } catch (err) {\n // TODO(burdon): Error with TLDraw sketch.\n // Uncaught Error: Type with the name content has already been defined with a different constructor\n return [];\n }\n};\n\n// TODO(burdon): Use ECHO schema.\nexport const mapObjectToTextFields = <T extends Record<string, unknown>>(object: T): TextFields => {\n return getKeys(object).reduce<TextFields>((fields, key) => {\n const value = object[key] as any;\n if (typeof value === 'string' || value instanceof TextType) {\n try {\n fields[key] = String(value);\n } catch (err) {\n // TODO(burdon): Exception when parsing sketch document.\n }\n }\n\n return fields;\n }, {});\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { forwardRef, useCallback, useState } from 'react';\n\nimport {\n useResolvePlugin,\n parseNavigationPlugin,\n parseGraphPlugin,\n NavigationAction,\n LayoutAction,\n type LayoutCoordinate,\n isLayoutParts,\n useIntentDispatcher,\n} from '@dxos/app-framework';\nimport { type Node } from '@dxos/plugin-graph';\nimport { useClient } from '@dxos/react-client';\nimport { fullyQualifiedId, useQuery } from '@dxos/react-client/echo';\nimport { Button, Dialog, Icon, toLocalizedString, useTranslation } from '@dxos/react-ui';\nimport { SearchList, type SearchListItemProps } from '@dxos/react-ui-searchlist';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\n\nimport { SEARCH_PLUGIN } from '../meta';\nimport { useSearchResults } from '../search';\n\ntype SearchListResultProps = {\n node: Node;\n} & Pick<SearchListItemProps, 'onSelect'>;\n\nconst SearchListResult = forwardRef<HTMLDivElement, SearchListResultProps>(({ node, onSelect }, forwardedRef) => {\n const { t } = useTranslation(SEARCH_PLUGIN);\n const label = toLocalizedString(node?.properties.label ?? 'never', t);\n return (\n <SearchList.Item\n value={label}\n key={node!.id}\n classNames='flex gap-2 items-center pli-2'\n onSelect={() => onSelect?.(node!.id)}\n ref={forwardedRef}\n >\n <Icon size={5} icon={node?.properties.icon} />\n <span className='is-0 grow truncate'>{label}</span>\n </SearchList.Item>\n );\n});\n\nexport const SearchDialog = ({\n subject,\n}: {\n subject: { action: NavigationAction; layoutCoordinate: LayoutCoordinate; position: 'add-after' | 'add-before' };\n}) => {\n const { t } = useTranslation(SEARCH_PLUGIN);\n const graphPlugin = useResolvePlugin(parseGraphPlugin);\n const graph = graphPlugin?.provides.graph;\n const navigationPlugin = useResolvePlugin(parseNavigationPlugin);\n const providedClosed = navigationPlugin?.provides.location.closed ?? [];\n const closed = (Array.isArray(providedClosed) ? providedClosed : [providedClosed])\n .map((id) => graph?.findNode(id))\n .filter(Boolean);\n const active = navigationPlugin?.provides.location.active;\n const [queryString, setQueryString] = useState('');\n const client = useClient();\n const dangerouslyLoadAllObjects = useQuery(client.spaces);\n const [pending, results] = useSearchResults(queryString, dangerouslyLoadAllObjects);\n const resultObjects = Array.from(results.keys());\n const dispatch = useIntentDispatcher();\n\n const handleSelect = useCallback(\n (nodeId: string) => {\n if (active && isLayoutParts(active)) {\n // If node is already present in the active parts, scroll to it and close the dialog.\n const index = active?.main?.findIndex((entry) => entry.id === nodeId);\n if (index !== -1) {\n return dispatch([\n { action: LayoutAction.SET_LAYOUT, data: { element: 'dialog', state: false } },\n { action: LayoutAction.SCROLL_INTO_VIEW, data: { id: nodeId } },\n ]);\n }\n\n return dispatch([\n {\n action: NavigationAction.ADD_TO_ACTIVE,\n data: {\n part: subject.layoutCoordinate.part,\n id: nodeId,\n pivotId: subject.layoutCoordinate.entryId,\n positioning: 'end',\n },\n },\n { action: LayoutAction.SET_LAYOUT, data: { element: 'dialog', state: false } },\n { action: LayoutAction.SCROLL_INTO_VIEW, data: { id: nodeId } },\n ]);\n }\n },\n [subject, dispatch, active],\n );\n\n return (\n <Dialog.Content classNames={['md:max-is-[24rem] overflow-hidden mbs-12']}>\n <Dialog.Title>{t('search dialog title')}</Dialog.Title>\n <SearchList.Root label={t('search placeholder')} classNames='flex flex-col grow overflow-hidden my-2'>\n <SearchList.Input\n value={queryString}\n onValueChange={(nextValue) => {\n setQueryString(nextValue);\n }}\n placeholder={t('search placeholder')}\n classNames='px-1 my-2'\n />\n <SearchList.Content classNames='max-bs-[24rem] overflow-auto'>\n {queryString.length > 0 ? (\n resultObjects.length > 0 ? (\n resultObjects\n .map((object) => graph?.findNode(fullyQualifiedId(object)))\n .filter(Boolean)\n .map((node) => <SearchListResult key={node!.id} node={node!} onSelect={handleSelect} />)\n ) : (\n <p className='pli-1'>{t(pending ? 'pending results message' : 'empty results message')}</p>\n )\n ) : (\n <>\n {closed.length > 0 && <h2 className={mx('mlb-1', descriptionText)}>{t('recently closed heading')}</h2>}\n {closed.map((node) => (\n <SearchListResult key={node!.id} node={node!} onSelect={handleSelect} />\n ))}\n </>\n )}\n </SearchList.Content>\n </SearchList.Root>\n\n <Dialog.Close asChild>\n <Button variant='primary' classNames='mbs-2'>\n {t('close label', { ns: 'os' })}\n </Button>\n </Dialog.Close>\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { yieldOrContinue } from 'main-thread-scheduling';\nimport { useEffect, useState } from 'react';\n\nimport { TextType } from '@dxos/plugin-markdown/types';\n\n// TODO(thure): Deprecate search-sync, move still-relevant utilities elsewhere (here, probably).\nimport { mapObjectToTextFields, queryStringToMatch } from './search-sync';\n\nexport const filterObjects = async <T extends Record<string, any>>(\n objects: T[],\n match?: RegExp,\n): Promise<Map<T, string[][]>> => {\n const result = new Map<T, string[][]>();\n if (!match) {\n return result;\n }\n await Promise.all(\n objects\n .filter((object) => !(object instanceof TextType))\n .map(async (object) => {\n await yieldOrContinue('interactive');\n const fields = mapObjectToTextFields<T>(object);\n Object.entries(fields)\n .filter(([_, value]) => value.match(match))\n .forEach(([key, value]) => {\n if (!result.has(object)) {\n result.set(object, []);\n }\n result.set(object, [...result.get(object)!, [key, value]]);\n });\n }),\n );\n return result;\n};\n\nexport const useSearchResults = <T extends Record<string, any>>(\n queryString?: string,\n objects?: T[],\n delay: number = 400,\n): [boolean, Map<T, string[][]>] => {\n const [results, setResults] = useState<Map<T, string[][]>>(new Map());\n const [pending, setPending] = useState(false);\n\n useEffect(() => {\n setPending(!!(objects && queryString));\n const timeoutId = setTimeout(async () => {\n const nextResults =\n objects && queryString ? await filterObjects(objects, queryStringToMatch(queryString)) : new Map();\n setResults(nextResults);\n setPending(false);\n }, delay);\n\n return () => clearTimeout(timeoutId);\n }, [queryString, objects]);\n\n return [pending, results];\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SEARCH_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [SEARCH_PLUGIN]: {\n 'plugin name': 'Search',\n 'search action label': 'Search spaces',\n 'search placeholder': 'Search…',\n 'search dialog title': 'Open',\n 'recently closed heading': 'Recently closed',\n 'pending results message': 'Searching…',\n 'empty results message': 'No matching items in your spaces',\n },\n },\n },\n];\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type {\n GraphBuilderProvides,\n IntentResolverProvides,\n MetadataRecordsProvides,\n SurfaceProvides,\n TranslationsProvides,\n} from '@dxos/app-framework';\n\nimport { SEARCH_PLUGIN } from './meta';\n\nconst SEARCH_ACTION = `${SEARCH_PLUGIN}/action`;\n\nexport enum SearchAction {\n SEARCH = `${SEARCH_ACTION}/search`,\n}\n\nexport type SearchPluginProvides = SurfaceProvides &\n IntentResolverProvides &\n GraphBuilderProvides &\n MetadataRecordsProvides &\n TranslationsProvides;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SearchPlugin } from './SearchPlugin';\n\nexport default SearchPlugin;\n\nexport * from './context';\nexport * from './search-sync';\n\nexport * from './SearchPlugin';\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "resolvePlugin", "parseIntentPlugin", "parseGraphPlugin", "parseNavigationPlugin", "LayoutAction", "firstIdInPart", "createExtension", "getActiveSpace", "MagnifyingGlass", "React", "useEffect", "useRef", "useState", "Input", "getSize", "mx", "Searchbar", "classes", "variant", "placeholder", "value", "onChange", "inputRef", "useRef", "text", "setText", "useState", "useEffect", "handleChange", "handleReset", "undefined", "current", "focus", "div", "className", "Input", "Root", "TextInput", "ref", "classNames", "mx", "input", "target", "onKeyDown", "key", "role", "onClick", "MagnifyingGlass", "getSize", "React", "useState", "useClient", "useQuery", "useTranslation", "groupSurface", "mx", "Buildings", "Folders", "User", "React", "forwardRef", "ScrollArea", "Card", "Mosaic", "ghostHover", "mx", "styles", "selected", "getIcon", "type", "iconMap", "user", "User", "organization", "Buildings", "project", "Folders", "Snippet", "text", "match", "content", "React", "result", "index", "undefined", "maxOffset", "before", "slice", "length", "idx", "indexOf", "after", "span", "className", "SearchItem", "forwardRef", "draggableStyle", "draggableProps", "item", "debug", "id", "label", "snippet", "onSelect", "Icon", "Card", "Root", "ref", "style", "classNames", "mx", "ghostHover", "onClick", "Header", "DragHandle", "Title", "title", "Endcap", "Body", "gutter", "pre", "JSON", "stringify", "SearchResults", "items", "path", "ScrollArea", "Viewport", "Mosaic", "Container", "Component", "map", "DraggableTile", "key", "SEARCH_RESULT", "Scrollbar", "orientation", "Thumb", "Corner", "React", "createContext", "useContext", "useMemo", "useState", "raise", "AST", "getSchema", "TextType", "queryStringToMatch", "queryString", "trimmed", "trim", "RegExp", "undefined", "getIcon", "schema", "AST", "isTypeLiteral", "ast", "keys", "propertySignatures", "map", "p", "name", "indexOf", "filterObjectsSync", "objects", "match", "reduce", "results", "object", "TextType", "fields", "mapObjectToTextFields", "Object", "entries", "some", "value", "result", "label", "getStringProperty", "push", "id", "type", "getSchema", "snippet", "content", "description", "key", "getKeys", "obj", "JSON", "parse", "stringify", "filter", "err", "String", "SearchContext", "createContext", "SearchContextProvider", "children", "match", "setMatch", "useState", "handleMatch", "text", "queryStringToMatch", "React", "Provider", "value", "useGlobalSearch", "useContext", "raise", "Error", "useGlobalSearchResults", "objects", "filterObjectsSync", "useGlobalFilteredObjects", "useMemo", "map", "result", "object", "SearchMain", "space", "t", "useTranslation", "SEARCH_PLUGIN", "client", "useClient", "setMatch", "useGlobalSearch", "allSpaces", "objects", "useQuery", "spaces", "results", "useGlobalSearchResults", "selected", "setSelected", "useState", "handleSelect", "id", "undefined", "React", "div", "className", "Searchbar", "placeholder", "onChange", "length", "mx", "groupSurface", "SearchResults", "items", "onSelect", "React", "forwardRef", "useCallback", "useState", "useResolvePlugin", "parseNavigationPlugin", "parseGraphPlugin", "NavigationAction", "LayoutAction", "isLayoutParts", "useIntentDispatcher", "useClient", "fullyQualifiedId", "useQuery", "Button", "Dialog", "Icon", "toLocalizedString", "useTranslation", "SearchList", "descriptionText", "mx", "yieldOrContinue", "useEffect", "useState", "TextType", "filterObjects", "objects", "match", "result", "Map", "Promise", "all", "filter", "object", "TextType", "map", "yieldOrContinue", "fields", "mapObjectToTextFields", "Object", "entries", "_", "value", "forEach", "key", "has", "set", "get", "useSearchResults", "queryString", "delay", "results", "setResults", "useState", "pending", "setPending", "useEffect", "timeoutId", "setTimeout", "nextResults", "queryStringToMatch", "clearTimeout", "SearchListResult", "forwardRef", "node", "onSelect", "forwardedRef", "t", "useTranslation", "SEARCH_PLUGIN", "label", "toLocalizedString", "properties", "React", "SearchList", "Item", "value", "key", "id", "classNames", "ref", "Icon", "size", "icon", "span", "className", "SearchDialog", "subject", "graphPlugin", "useResolvePlugin", "parseGraphPlugin", "graph", "provides", "navigationPlugin", "parseNavigationPlugin", "providedClosed", "location", "closed", "Array", "isArray", "map", "findNode", "filter", "Boolean", "active", "queryString", "setQueryString", "useState", "client", "useClient", "dangerouslyLoadAllObjects", "useQuery", "spaces", "pending", "results", "useSearchResults", "resultObjects", "from", "keys", "dispatch", "useIntentDispatcher", "handleSelect", "useCallback", "nodeId", "isLayoutParts", "index", "main", "findIndex", "entry", "action", "LayoutAction", "SET_LAYOUT", "data", "element", "state", "SCROLL_INTO_VIEW", "NavigationAction", "ADD_TO_ACTIVE", "part", "layoutCoordinate", "pivotId", "entryId", "positioning", "Dialog", "Content", "Title", "Root", "Input", "onValueChange", "nextValue", "placeholder", "length", "object", "fullyQualifiedId", "p", "h2", "mx", "descriptionText", "Close", "asChild", "Button", "variant", "ns", "SEARCH_PLUGIN", "SEARCH_ACTION", "SEARCH_PLUGIN", "SearchAction", "SearchPlugin", "navigationPlugin", "graphPlugin", "meta", "ready", "plugins", "resolvePlugin", "parseNavigationPlugin", "parseGraphPlugin", "provides", "translations", "metadata", "records", "SEARCH_RESULT", "parse", "item", "type", "id", "label", "data", "object", "graph", "builder", "intentPlugin", "parseIntentPlugin", "createExtension", "SEARCH_PLUGIN", "filter", "node", "actions", "SearchAction", "SEARCH", "intent", "dispatch", "plugin", "action", "properties", "ns", "icon", "keyBinding", "macos", "windows", "testId", "context", "children", "React", "SearchContextProvider", "surface", "component", "role", "location", "space", "getActiveSpace", "firstIdInPart", "active", "undefined", "SearchDialog", "subject", "SearchMain", "resolver", "LayoutAction", "SET_LAYOUT", "element", "state", "SearchPlugin"]
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/experimental/plugin-search/src/components/Searchbar/Searchbar.tsx":{"bytes":5649,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/components/Searchbar/index.ts":{"bytes":537,"imports":[{"path":"packages/plugins/experimental/plugin-search/src/components/Searchbar/Searchbar.tsx","kind":"import-statement","original":"./Searchbar"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/meta.ts":{"bytes":1834,"imports":[],"format":"esm"},"packages/plugins/experimental/plugin-search/src/components/SearchResults/SearchResults.tsx":{"bytes":13354,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-card","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-search/src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/components/SearchResults/index.ts":{"bytes":553,"imports":[{"path":"packages/plugins/experimental/plugin-search/src/components/SearchResults/SearchResults.tsx","kind":"import-statement","original":"./SearchResults"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/search-sync.ts":{"bytes":12086,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/context.tsx":{"bytes":4900,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-search/src/search-sync.ts","kind":"import-statement","original":"./search-sync"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/components/SearchMain.tsx":{"bytes":6296,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-search/src/components/SearchResults/index.ts","kind":"import-statement","original":"./SearchResults"},{"path":"packages/plugins/experimental/plugin-search/src/components/Searchbar/index.ts","kind":"import-statement","original":"./Searchbar"},{"path":"packages/plugins/experimental/plugin-search/src/context.tsx","kind":"import-statement","original":"../context"},{"path":"packages/plugins/experimental/plugin-search/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/search.ts":{"bytes":6795,"imports":[{"path":"main-thread-scheduling","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-search/src/search-sync.ts","kind":"import-statement","original":"./search-sync"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/components/SearchDialog.tsx":{"bytes":18886,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-searchlist","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-search/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/experimental/plugin-search/src/search.ts","kind":"import-statement","original":"../search"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/components/index.ts":{"bytes":725,"imports":[{"path":"packages/plugins/experimental/plugin-search/src/components/Searchbar/index.ts","kind":"import-statement","original":"./Searchbar"},{"path":"packages/plugins/experimental/plugin-search/src/components/SearchMain.tsx","kind":"import-statement","original":"./SearchMain"},{"path":"packages/plugins/experimental/plugin-search/src/components/SearchDialog.tsx","kind":"import-statement","original":"./SearchDialog"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/translations.ts":{"bytes":1920,"imports":[{"path":"packages/plugins/experimental/plugin-search/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/types.tsx":{"bytes":1598,"imports":[{"path":"packages/plugins/experimental/plugin-search/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/SearchPlugin.tsx":{"bytes":14689,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-search/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/experimental/plugin-search/src/context.tsx","kind":"import-statement","original":"./context"},{"path":"packages/plugins/experimental/plugin-search/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/experimental/plugin-search/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/experimental/plugin-search/src/types.tsx","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/index.ts":{"bytes":985,"imports":[{"path":"packages/plugins/experimental/plugin-search/src/SearchPlugin.tsx","kind":"import-statement","original":"./SearchPlugin"},{"path":"packages/plugins/experimental/plugin-search/src/context.tsx","kind":"import-statement","original":"./context"},{"path":"packages/plugins/experimental/plugin-search/src/search-sync.ts","kind":"import-statement","original":"./search-sync"},{"path":"packages/plugins/experimental/plugin-search/src/SearchPlugin.tsx","kind":"import-statement","original":"./SearchPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/experimental/plugin-search/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":44032},"packages/plugins/experimental/plugin-search/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-search/dist/lib/browser/chunk-4L4PWJYC.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-card","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-searchlist","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"main-thread-scheduling","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true}],"exports":["SearchContextProvider","SearchPlugin","default","filterObjectsSync","mapObjectToTextFields","queryStringToMatch","useGlobalFilteredObjects","useGlobalSearch","useGlobalSearchResults"],"entryPoint":"packages/plugins/experimental/plugin-search/src/index.ts","inputs":{"packages/plugins/experimental/plugin-search/src/SearchPlugin.tsx":{"bytesInOutput":3648},"packages/plugins/experimental/plugin-search/src/components/Searchbar/Searchbar.tsx":{"bytesInOutput":1299},"packages/plugins/experimental/plugin-search/src/components/Searchbar/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-search/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-search/src/components/SearchMain.tsx":{"bytesInOutput":1320},"packages/plugins/experimental/plugin-search/src/components/SearchResults/SearchResults.tsx":{"bytesInOutput":3342},"packages/plugins/experimental/plugin-search/src/components/SearchResults/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-search/src/context.tsx":{"bytesInOutput":1001},"packages/plugins/experimental/plugin-search/src/search-sync.ts":{"bytesInOutput":2327},"packages/plugins/experimental/plugin-search/src/components/SearchDialog.tsx":{"bytesInOutput":5001},"packages/plugins/experimental/plugin-search/src/search.ts":{"bytesInOutput":1487},"packages/plugins/experimental/plugin-search/src/translations.ts":{"bytesInOutput":436},"packages/plugins/experimental/plugin-search/src/types.tsx":{"bytesInOutput":214},"packages/plugins/experimental/plugin-search/src/index.ts":{"bytesInOutput":32}},"bytes":21534},"packages/plugins/experimental/plugin-search/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/experimental/plugin-search/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-search/dist/lib/browser/chunk-4L4PWJYC.mjs","kind":"import-statement"}],"exports":["SEARCH_PLUGIN","SEARCH_RESULT","default"],"entryPoint":"packages/plugins/experimental/plugin-search/src/meta.ts","inputs":{},"bytes":195},"packages/plugins/experimental/plugin-search/dist/lib/browser/chunk-4L4PWJYC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":860},"packages/plugins/experimental/plugin-search/dist/lib/browser/chunk-4L4PWJYC.mjs":{"imports":[],"exports":["SEARCH_PLUGIN","SEARCH_RESULT","meta_default"],"inputs":{"packages/plugins/experimental/plugin-search/src/meta.ts":{"bytesInOutput":376}},"bytes":541}}}
|
|
1
|
+
{"inputs":{"packages/plugins/experimental/plugin-search/src/components/Searchbar/Searchbar.tsx":{"bytes":5649,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/components/Searchbar/index.ts":{"bytes":537,"imports":[{"path":"packages/plugins/experimental/plugin-search/src/components/Searchbar/Searchbar.tsx","kind":"import-statement","original":"./Searchbar"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/meta.ts":{"bytes":1834,"imports":[],"format":"esm"},"packages/plugins/experimental/plugin-search/src/components/SearchResults/SearchResults.tsx":{"bytes":13354,"imports":[{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-card","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-search/src/meta.ts","kind":"import-statement","original":"../../meta"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/components/SearchResults/index.ts":{"bytes":553,"imports":[{"path":"packages/plugins/experimental/plugin-search/src/components/SearchResults/SearchResults.tsx","kind":"import-statement","original":"./SearchResults"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/search-sync.ts":{"bytes":12086,"imports":[{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/context.tsx":{"bytes":4983,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-search/src/search-sync.ts","kind":"import-statement","original":"./search-sync"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/components/SearchMain.tsx":{"bytes":6296,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-search/src/components/SearchResults/index.ts","kind":"import-statement","original":"./SearchResults"},{"path":"packages/plugins/experimental/plugin-search/src/components/Searchbar/index.ts","kind":"import-statement","original":"./Searchbar"},{"path":"packages/plugins/experimental/plugin-search/src/context.tsx","kind":"import-statement","original":"../context"},{"path":"packages/plugins/experimental/plugin-search/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/search.ts":{"bytes":6795,"imports":[{"path":"main-thread-scheduling","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-search/src/search-sync.ts","kind":"import-statement","original":"./search-sync"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/components/SearchDialog.tsx":{"bytes":18886,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-searchlist","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-search/src/meta.ts","kind":"import-statement","original":"../meta"},{"path":"packages/plugins/experimental/plugin-search/src/search.ts","kind":"import-statement","original":"../search"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/components/index.ts":{"bytes":725,"imports":[{"path":"packages/plugins/experimental/plugin-search/src/components/Searchbar/index.ts","kind":"import-statement","original":"./Searchbar"},{"path":"packages/plugins/experimental/plugin-search/src/components/SearchMain.tsx","kind":"import-statement","original":"./SearchMain"},{"path":"packages/plugins/experimental/plugin-search/src/components/SearchDialog.tsx","kind":"import-statement","original":"./SearchDialog"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/translations.ts":{"bytes":1920,"imports":[{"path":"packages/plugins/experimental/plugin-search/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/types.tsx":{"bytes":1598,"imports":[{"path":"packages/plugins/experimental/plugin-search/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/SearchPlugin.tsx":{"bytes":14689,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"packages/plugins/experimental/plugin-search/src/components/index.ts","kind":"import-statement","original":"./components"},{"path":"packages/plugins/experimental/plugin-search/src/context.tsx","kind":"import-statement","original":"./context"},{"path":"packages/plugins/experimental/plugin-search/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/experimental/plugin-search/src/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/plugins/experimental/plugin-search/src/types.tsx","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/plugins/experimental/plugin-search/src/index.ts":{"bytes":985,"imports":[{"path":"packages/plugins/experimental/plugin-search/src/SearchPlugin.tsx","kind":"import-statement","original":"./SearchPlugin"},{"path":"packages/plugins/experimental/plugin-search/src/context.tsx","kind":"import-statement","original":"./context"},{"path":"packages/plugins/experimental/plugin-search/src/search-sync.ts","kind":"import-statement","original":"./search-sync"},{"path":"packages/plugins/experimental/plugin-search/src/SearchPlugin.tsx","kind":"import-statement","original":"./SearchPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/experimental/plugin-search/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":44076},"packages/plugins/experimental/plugin-search/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-search/dist/lib/browser/chunk-4L4PWJYC.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"@dxos/plugin-space","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"@phosphor-icons/react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-card","kind":"import-statement","external":true},{"path":"@dxos/react-ui-mosaic","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-client","kind":"import-statement","external":true},{"path":"@dxos/react-client/echo","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-searchlist","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"main-thread-scheduling","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/plugin-markdown/types","kind":"import-statement","external":true}],"exports":["SearchContextProvider","SearchPlugin","default","filterObjectsSync","mapObjectToTextFields","queryStringToMatch","useGlobalFilteredObjects","useGlobalSearch","useGlobalSearchResults"],"entryPoint":"packages/plugins/experimental/plugin-search/src/index.ts","inputs":{"packages/plugins/experimental/plugin-search/src/SearchPlugin.tsx":{"bytesInOutput":3648},"packages/plugins/experimental/plugin-search/src/components/Searchbar/Searchbar.tsx":{"bytesInOutput":1299},"packages/plugins/experimental/plugin-search/src/components/Searchbar/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-search/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-search/src/components/SearchMain.tsx":{"bytesInOutput":1320},"packages/plugins/experimental/plugin-search/src/components/SearchResults/SearchResults.tsx":{"bytesInOutput":3342},"packages/plugins/experimental/plugin-search/src/components/SearchResults/index.ts":{"bytesInOutput":0},"packages/plugins/experimental/plugin-search/src/context.tsx":{"bytesInOutput":1026},"packages/plugins/experimental/plugin-search/src/search-sync.ts":{"bytesInOutput":2327},"packages/plugins/experimental/plugin-search/src/components/SearchDialog.tsx":{"bytesInOutput":5001},"packages/plugins/experimental/plugin-search/src/search.ts":{"bytesInOutput":1487},"packages/plugins/experimental/plugin-search/src/translations.ts":{"bytesInOutput":436},"packages/plugins/experimental/plugin-search/src/types.tsx":{"bytesInOutput":214},"packages/plugins/experimental/plugin-search/src/index.ts":{"bytesInOutput":32}},"bytes":21559},"packages/plugins/experimental/plugin-search/dist/lib/browser/meta.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/plugins/experimental/plugin-search/dist/lib/browser/meta.mjs":{"imports":[{"path":"packages/plugins/experimental/plugin-search/dist/lib/browser/chunk-4L4PWJYC.mjs","kind":"import-statement"}],"exports":["SEARCH_PLUGIN","SEARCH_RESULT","default"],"entryPoint":"packages/plugins/experimental/plugin-search/src/meta.ts","inputs":{},"bytes":195},"packages/plugins/experimental/plugin-search/dist/lib/browser/chunk-4L4PWJYC.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":860},"packages/plugins/experimental/plugin-search/dist/lib/browser/chunk-4L4PWJYC.mjs":{"imports":[],"exports":["SEARCH_PLUGIN","SEARCH_RESULT","meta_default"],"inputs":{"packages/plugins/experimental/plugin-search/src/meta.ts":{"bytesInOutput":376}},"bytes":541}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAiB,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/context.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAiB,KAAK,iBAAiB,EAAiC,MAAM,OAAO,CAAC;AAIpG,OAAO,EAAyC,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAEzF,KAAK,iBAAiB,GAAG;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,CAAC;AAIF,eAAO,MAAM,qBAAqB,iBAAkB,iBAAiB,sBAIpE,CAAC;AAEF,eAAO,MAAM,eAAe,yBAE3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,KAAG,YAAY,EAGjG,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,KAAG,CAAC,EAOxF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-search",
|
|
3
|
-
"version": "0.6.14-staging.
|
|
3
|
+
"version": "0.6.14-staging.7b35391",
|
|
4
4
|
"description": "Braneframe sketch plugin",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -32,16 +32,16 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@effect/schema": "^0.75.1",
|
|
34
34
|
"main-thread-scheduling": "^14.1.1",
|
|
35
|
-
"@dxos/app-framework": "0.6.14-staging.
|
|
36
|
-
"@dxos/
|
|
37
|
-
"@dxos/debug": "0.6.14-staging.
|
|
38
|
-
"@dxos/plugin-markdown": "0.6.14-staging.
|
|
39
|
-
"@dxos/
|
|
40
|
-
"@dxos/
|
|
41
|
-
"@dxos/react-client": "0.6.14-staging.
|
|
42
|
-
"@dxos/react-ui-card": "0.6.14-staging.
|
|
43
|
-
"@dxos/
|
|
44
|
-
"@dxos/react-ui-searchlist": "0.6.14-staging.
|
|
35
|
+
"@dxos/app-framework": "0.6.14-staging.7b35391",
|
|
36
|
+
"@dxos/plugin-graph": "0.6.14-staging.7b35391",
|
|
37
|
+
"@dxos/debug": "0.6.14-staging.7b35391",
|
|
38
|
+
"@dxos/plugin-markdown": "0.6.14-staging.7b35391",
|
|
39
|
+
"@dxos/echo-schema": "0.6.14-staging.7b35391",
|
|
40
|
+
"@dxos/plugin-space": "0.6.14-staging.7b35391",
|
|
41
|
+
"@dxos/react-client": "0.6.14-staging.7b35391",
|
|
42
|
+
"@dxos/react-ui-card": "0.6.14-staging.7b35391",
|
|
43
|
+
"@dxos/react-ui-mosaic": "0.6.14-staging.7b35391",
|
|
44
|
+
"@dxos/react-ui-searchlist": "0.6.14-staging.7b35391"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"@phosphor-icons/react": "^2.1.5",
|
|
@@ -50,17 +50,17 @@
|
|
|
50
50
|
"react": "~18.2.0",
|
|
51
51
|
"react-dom": "~18.2.0",
|
|
52
52
|
"vite": "5.4.7",
|
|
53
|
-
"@dxos/
|
|
54
|
-
"@dxos/react-ui": "0.6.14-staging.
|
|
55
|
-
"@dxos/storybook-utils": "0.6.14-staging.
|
|
56
|
-
"@dxos/
|
|
53
|
+
"@dxos/react-ui": "0.6.14-staging.7b35391",
|
|
54
|
+
"@dxos/react-ui-theme": "0.6.14-staging.7b35391",
|
|
55
|
+
"@dxos/storybook-utils": "0.6.14-staging.7b35391",
|
|
56
|
+
"@dxos/random": "0.6.14-staging.7b35391"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
59
|
"@phosphor-icons/react": "^2.1.5",
|
|
60
60
|
"react": "~18.2.0",
|
|
61
61
|
"react-dom": "~18.2.0",
|
|
62
|
-
"@dxos/react-ui": "0.6.14-staging.
|
|
63
|
-
"@dxos/react-ui-theme": "0.6.14-staging.
|
|
62
|
+
"@dxos/react-ui": "0.6.14-staging.7b35391",
|
|
63
|
+
"@dxos/react-ui-theme": "0.6.14-staging.7b35391"
|
|
64
64
|
},
|
|
65
65
|
"publishConfig": {
|
|
66
66
|
"access": "public"
|
package/src/context.tsx
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import React, { createContext, type PropsWithChildren, useContext, useState } from 'react';
|
|
5
|
+
import React, { createContext, type PropsWithChildren, useContext, useMemo, useState } from 'react';
|
|
6
6
|
|
|
7
7
|
import { raise } from '@dxos/debug';
|
|
8
8
|
|
|
@@ -36,6 +36,5 @@ export const useGlobalFilteredObjects = <T extends Record<string, any>>(objects?
|
|
|
36
36
|
return objects ?? [];
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
|
|
40
|
-
return matching.map((result) => result.object);
|
|
39
|
+
return useMemo(() => filterObjectsSync(objects, match).map((result) => result.object), [objects, match]);
|
|
41
40
|
};
|