@crystaldesign/diva-navigator 26.3.0-beta.4 → 26.3.0-beta.41

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.
Files changed (24) hide show
  1. package/build/esm/index.js +3753 -2562
  2. package/build/types/navigator/src/Header/QrCodeScanner/Scanner.d.ts +6 -1
  3. package/build/types/navigator/src/Header/QrCodeScanner/Scanner.d.ts.map +1 -1
  4. package/build/types/navigator/src/Header/QrCodeScanner/index.d.ts.map +1 -1
  5. package/build/types/navigator/src/Header/QrCodeScanner/utils.d.ts +59 -4
  6. package/build/types/navigator/src/Header/QrCodeScanner/utils.d.ts.map +1 -1
  7. package/build/types/navigator/src/OrgTreeSelect/OrgNode.d.ts +14 -0
  8. package/build/types/navigator/src/OrgTreeSelect/OrgNode.d.ts.map +1 -0
  9. package/build/types/navigator/src/OrgTreeSelect/index.d.ts +8 -0
  10. package/build/types/navigator/src/OrgTreeSelect/index.d.ts.map +1 -0
  11. package/build/types/navigator/src/OrgTreeSelect/types.d.ts +42 -0
  12. package/build/types/navigator/src/OrgTreeSelect/types.d.ts.map +1 -0
  13. package/build/types/navigator/src/OrgTreeSelect/useKeyboardNavigation.d.ts +18 -0
  14. package/build/types/navigator/src/OrgTreeSelect/useKeyboardNavigation.d.ts.map +1 -0
  15. package/build/types/navigator/src/OrgTreeSelect/useOrgTree.d.ts +13 -0
  16. package/build/types/navigator/src/OrgTreeSelect/useOrgTree.d.ts.map +1 -0
  17. package/build/types/navigator/src/OrgTreeSelect/useTreeSearch.d.ts +12 -0
  18. package/build/types/navigator/src/OrgTreeSelect/useTreeSearch.d.ts.map +1 -0
  19. package/build/types/navigator/src/OrgTreeSelect/utils.d.ts +16 -0
  20. package/build/types/navigator/src/OrgTreeSelect/utils.d.ts.map +1 -0
  21. package/build/types/navigator/src/OrganizationSelection/TextElement.d.ts +1 -2
  22. package/build/types/navigator/src/OrganizationSelection/TextElement.d.ts.map +1 -1
  23. package/build/types/navigator/src/Profil/index.d.ts.map +1 -1
  24. package/package.json +3 -2
@@ -1,3 +1,8 @@
1
1
  import React from 'react';
2
- export declare function Scanner(): React.JSX.Element;
2
+ import { FetchedResult } from './utils';
3
+ interface ScannerProps {
4
+ onResult: (result: FetchedResult) => void;
5
+ }
6
+ export declare function Scanner({ onResult }: ScannerProps): React.JSX.Element;
7
+ export {};
3
8
  //# sourceMappingURL=Scanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Scanner.d.ts","sourceRoot":"","sources":["../../../../../../src/Header/QrCodeScanner/Scanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAU7D,wBAAgB,OAAO,sBA2FtB"}
1
+ {"version":3,"file":"Scanner.d.ts","sourceRoot":"","sources":["../../../../../../src/Header/QrCodeScanner/Scanner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwC,MAAM,OAAO,CAAC;AAM7D,OAAO,EAAE,aAAa,EAAiH,MAAM,SAAS,CAAC;AAIvJ,UAAU,YAAY;IACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,YAAY,qBAqGjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/Header/QrCodeScanner/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAwG1B,MAAM,CAAC,OAAO,gCAyBb"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/Header/QrCodeScanner/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAyK1B,MAAM,CAAC,OAAO,gCAyBb"}
@@ -1,3 +1,16 @@
1
+ import { Action } from '@crystaldesign/diva-core';
2
+ export type FetchedResult = {
3
+ type: 'basket';
4
+ organizationId?: string;
5
+ organizationIdDisplayText?: string;
6
+ orderStatus?: string;
7
+ divaNr: string;
8
+ } | {
9
+ type: 'product';
10
+ productId: string;
11
+ organizationId?: string;
12
+ organizationIdDisplayText?: string;
13
+ };
1
14
  /**
2
15
  * Parses the given url and returns the diva number if it is a valid diva url.
3
16
  *
@@ -13,7 +26,7 @@
13
26
  */
14
27
  export declare function matchDivaNr(url: string): string | undefined;
15
28
  /**
16
- * Parses the given url and returns the product ID if it is a valid diva url.
29
+ * Parses the given url and returns the product if it is a valid diva url.
17
30
  *
18
31
  * The following are examples for valid urls:
19
32
  * - {shopBaseUrl} -> It is an url that matches the configured shopBaseUrl of the organization
@@ -30,7 +43,11 @@ export declare function matchProduct(url: string, shopBaseUrl: string, apiGetPro
30
43
  value: string | number | boolean;
31
44
  }[], limit: number, useFilter?: boolean, hierarchy?: boolean) => Promise<{
32
45
  data: any[];
33
- }>): Promise<any>;
46
+ }>): Promise<{
47
+ id: string;
48
+ organizationId?: string;
49
+ organizationIdDisplayText?: string;
50
+ } | undefined>;
34
51
  /**
35
52
  * Gets the product by the given divaNr.
36
53
  *
@@ -43,6 +60,44 @@ export declare function getProductByDivaNr(divaNr: string, apiGetProductByFilter
43
60
  value: string | number | boolean;
44
61
  }[], limit: number, useFilter?: boolean, hierarchy?: boolean) => Promise<{
45
62
  data: any[];
46
- }>): Promise<string | undefined>;
47
- export declare function checkConfigurationByDivaNr(divaNr: string, jwt: string, basketService: string): Promise<boolean>;
63
+ }>): Promise<{
64
+ id: string;
65
+ organizationId?: string;
66
+ organizationIdDisplayText?: string;
67
+ } | undefined>;
68
+ export declare function checkConfigurationByDivaNr(divaNr: string, jwt: string, basketService: string): Promise<{
69
+ isValid: boolean;
70
+ organizationId: any;
71
+ organizationIdDisplayText: any;
72
+ orderStatus: any;
73
+ }>;
74
+ type ApiGetProductByFilter = (filter: {
75
+ id: string;
76
+ op: string;
77
+ value: string | number | boolean;
78
+ }[], limit: number, useFilter?: boolean, hierarchy?: boolean) => Promise<{
79
+ data: any[];
80
+ }>;
81
+ export interface ResolveDivaNrOptions {
82
+ qrCodeScanner?: boolean | {
83
+ basket?: boolean;
84
+ product?: boolean;
85
+ };
86
+ jwt: string;
87
+ basketService: string;
88
+ }
89
+ /**
90
+ * Resolves a divaNr to a FetchedResult by trying basket first, then product.
91
+ * Returns null if neither is found or enabled.
92
+ */
93
+ export declare function resolveDivaNr(divaNr: string, options: ResolveDivaNrOptions, apiGetProductByFilter: ApiGetProductByFilter): Promise<FetchedResult | null>;
94
+ /**
95
+ * Opens the given result in the current organization.
96
+ */
97
+ export declare function openResultInCurrentOrg(result: FetchedResult, openComponent: (data: Action) => void, closeModal: () => void): void;
98
+ /**
99
+ * Opens the given result in the target organization (new tab).
100
+ */
101
+ export declare function openResultInTargetOrg(result: FetchedResult, openComponent: (data: Action) => void, closeModal: () => void): void;
102
+ export {};
48
103
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/Header/QrCodeScanner/utils.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,sBA0BtC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,qBAAqB,EAAE,CACrB,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,EAAE,EACtE,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,OAAO,EACnB,SAAS,CAAC,EAAE,OAAO,KAChB,OAAO,CAAC;IAAE,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC,gBAwD9B;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,EACd,qBAAqB,EAAE,CACrB,MAAM,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,EAAE,EACtE,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,OAAO,EACnB,SAAS,CAAC,EAAE,OAAO,KAChB,OAAO,CAAC;IAAE,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CAAC,GAC5B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAO7B;AAED,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,oBAmBlG"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/Header/QrCodeScanner/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { FilteredOrgTreeNode, OrgTreeNode } from './types';
3
+ interface OrgNodeProps {
4
+ node: FilteredOrgTreeNode | OrgTreeNode;
5
+ level: number;
6
+ expandedIds: Set<string>;
7
+ selectedId: string | null;
8
+ focusedNodeId: string | null;
9
+ onToggle: (nodeId: string) => void;
10
+ onSelect: (node: OrgTreeNode) => void;
11
+ }
12
+ export default function OrgNode({ node, level, expandedIds, selectedId, focusedNodeId, onToggle, onSelect }: OrgNodeProps): React.JSX.Element;
13
+ export {};
14
+ //# sourceMappingURL=OrgNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OrgNode.d.ts","sourceRoot":"","sources":["../../../../../src/OrgTreeSelect/OrgNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAiB,MAAM,SAAS,CAAC;AA6C1E,UAAU,YAAY;IACpB,IAAI,EAAE,mBAAmB,GAAG,WAAW,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,YAAY,qBAwDxH"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ interface OrgTreeSelectProps {
3
+ onSelect?: (orgId: string, displayName: string) => void;
4
+ maxHeight?: string;
5
+ }
6
+ export default function OrgTreeSelect({ onSelect, maxHeight }: OrgTreeSelectProps): React.JSX.Element | null;
7
+ export {};
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/OrgTreeSelect/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAsBjF,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,kBAAkB,4BA4IhF"}
@@ -0,0 +1,42 @@
1
+ export type OrgType = 'retailer' | 'retailerChannel' | 'supplier' | 'dealer' | 'association' | 'wrapper';
2
+ export interface OrgTreeNode {
3
+ _id: string;
4
+ displayName: string;
5
+ orgType: OrgType;
6
+ children?: OrgTreeNode[];
7
+ }
8
+ export interface OrgTreeResponse {
9
+ tree: OrgTreeNode[];
10
+ totalAccessible: number;
11
+ }
12
+ export interface FilteredOrgTreeNode extends OrgTreeNode {
13
+ matched?: boolean;
14
+ matchIndices?: ReadonlyArray<readonly [number, number]>;
15
+ children?: FilteredOrgTreeNode[];
16
+ }
17
+ export declare const orgTypeConfig: Record<OrgType, {
18
+ color: string;
19
+ label: string;
20
+ }>;
21
+ export interface TreeState {
22
+ tree: OrgTreeNode[];
23
+ totalAccessible: number;
24
+ expandedIds: Set<string>;
25
+ selectedId: string | null;
26
+ loading: boolean;
27
+ availableTypes: OrgType[];
28
+ }
29
+ export type TreeAction = {
30
+ type: 'SET_TREE';
31
+ tree: OrgTreeNode[];
32
+ totalAccessible: number;
33
+ selectedId: string | null;
34
+ } | {
35
+ type: 'SET_EXPANDED';
36
+ nodeIds: string[];
37
+ force?: 'expand' | 'collapse';
38
+ } | {
39
+ type: 'SELECT';
40
+ nodeId: string;
41
+ };
42
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/OrgTreeSelect/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG,UAAU,GAAG,iBAAiB,GAAG,UAAU,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAC;AAEzG,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACxD,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAO3E,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,EAAE,CAAC;CAC3B;AAED,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;CAAE,GAC1E;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { OrgTreeNode } from './types';
3
+ interface UseKeyboardNavigationOptions {
4
+ isSearchActive: boolean;
5
+ flatOrder: string[];
6
+ displayTree: OrgTreeNode[];
7
+ selectOrg: (node: OrgTreeNode) => void;
8
+ searchQuery: string;
9
+ onSearchChange: (value: string) => void;
10
+ }
11
+ export default function useKeyboardNavigation({ isSearchActive, flatOrder, displayTree, selectOrg, searchQuery, onSearchChange, }: UseKeyboardNavigationOptions): {
12
+ focusedNodeId: string | null;
13
+ handleKeyDown: (e: React.KeyboardEvent) => void;
14
+ searchInputRef: React.RefObject<HTMLInputElement>;
15
+ treeListRef: React.RefObject<HTMLDivElement>;
16
+ };
17
+ export {};
18
+ //# sourceMappingURL=useKeyboardNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeyboardNavigation.d.ts","sourceRoot":"","sources":["../../../../../src/OrgTreeSelect/useKeyboardNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,UAAU,4BAA4B;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,SAAS,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAAC,EAC5C,cAAc,EACd,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,cAAc,GACf,EAAE,4BAA4B;;uBAgBvB,KAAK,CAAC,aAAa;;;EAwC1B"}
@@ -0,0 +1,13 @@
1
+ import { OrgTreeNode } from './types';
2
+ export default function useOrgTree(onSelect?: (orgId: string, displayName: string) => void): {
3
+ tree: OrgTreeNode[];
4
+ totalAccessible: number;
5
+ expandedIds: Set<string>;
6
+ selectedId: string | null;
7
+ loading: boolean;
8
+ availableTypes: import("./types").OrgType[];
9
+ toggleExpand: (nodeId: string) => void;
10
+ selectOrg: (node: OrgTreeNode) => void;
11
+ expandToNode: (nodeId: string) => void;
12
+ };
13
+ //# sourceMappingURL=useOrgTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOrgTree.d.ts","sourceRoot":"","sources":["../../../../../src/OrgTreeSelect/useOrgTree.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAA0C,MAAM,SAAS,CAAC;AAiD9E,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI;;;;;;;2BA+B9C,MAAM;sBAKvC,WAAW;2BAQT,MAAM;EAoBlB"}
@@ -0,0 +1,12 @@
1
+ import { OrgTreeNode, OrgType } from './types';
2
+ export default function useTreeSearch(tree: OrgTreeNode[]): {
3
+ searchQuery: string;
4
+ onSearchChange: (value: string) => void;
5
+ typeFilters: Set<OrgType>;
6
+ toggleTypeFilter: (type: OrgType) => void;
7
+ filteredTree: OrgTreeNode[] | null;
8
+ searchExpandedIds: Set<string> | null;
9
+ scoreMap: Map<string, number>;
10
+ isSearchActive: boolean;
11
+ };
12
+ //# sourceMappingURL=useTreeSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTreeSearch.d.ts","sourceRoot":"","sources":["../../../../../src/OrgTreeSelect/useTreeSearch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAuB,OAAO,EAAE,MAAM,SAAS,CAAC;AAwMpE,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE;;4BAKZ,MAAM;;6BAIL,OAAO;;;;;EAsDpD"}
@@ -0,0 +1,16 @@
1
+ import { OrgTreeNode, OrgType } from './types';
2
+ /**
3
+ * Returns path of node ids from root to target (inclusive), or null if not found.
4
+ * Use `new Set(result)` for membership checks, or `result.slice(0, -1)` for ancestors only.
5
+ */
6
+ export declare function findPathToNode(nodes: OrgTreeNode[], targetId: string, path?: string[]): string[] | null;
7
+ export declare function findNodeInTree(nodes: OrgTreeNode[], targetId: string): OrgTreeNode | null;
8
+ export declare function flattenDisplayOrder(nodes: OrgTreeNode[], expandedIds: Set<string>): string[];
9
+ /**
10
+ * Bottom-up pass: each node gets the best (lowest) score among itself and all
11
+ * descendants, so branches with good matches sort before branches without.
12
+ */
13
+ export declare function computeEffectiveScores(nodes: OrgTreeNode[], scoreMap: Map<string, number>, result?: Map<string, number>): Map<string, number>;
14
+ export declare function sortTree<T extends OrgTreeNode>(nodes: T[], selectedPath: Set<string>, effectiveScores?: Map<string, number>): T[];
15
+ export declare function collectTypes(nodes: OrgTreeNode[]): OrgType[];
16
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/OrgTreeSelect/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAS3G;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CASzF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CAY5F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,WAAW,EAAE,EACpB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,MAAM,GAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAa,GACtC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAYrB;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAcjI;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,EAAE,CAU5D"}
@@ -1,8 +1,7 @@
1
1
  import React from 'react';
2
2
  import { OrgData } from '.';
3
- export default function TextElement({ data, onSelect, multi, onOpen, }: {
3
+ export default function TextElement({ data, onSelect, multi, }: {
4
4
  data: OrgData;
5
- onOpen: (id: string) => void;
6
5
  multi?: boolean;
7
6
  onSelect: (data: OrgData, select?: boolean) => void;
8
7
  }): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"TextElement.d.ts","sourceRoot":"","sources":["../../../../../src/OrganizationSelection/TextElement.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAI5B,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,MAAM,GACP,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD,qBA8EA"}
1
+ {"version":3,"file":"TextElement.d.ts","sourceRoot":"","sources":["../../../../../src/OrganizationSelection/TextElement.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC;AAI5B,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,IAAI,EACJ,QAAQ,EACR,KAAK,GACN,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACrD,qBAwEA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/Profil/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAaxC,UAAU,KAAK;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,qBA2DhD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/Profil/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAa1B,UAAU,KAAK;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED,MAAM,CAAC,OAAO,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,qBA0DhD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crystaldesign/diva-navigator",
3
- "version": "26.3.0-beta.4",
3
+ "version": "26.3.0-beta.41",
4
4
  "license": "MIT",
5
5
  "devDependencies": {
6
6
  "@testing-library/jest-dom": "^6.5.0",
@@ -11,6 +11,7 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "classnames": "^2.5.1",
14
+ "fuse.js": "^7.0.0",
14
15
  "html5-qrcode": "^2.3.8",
15
16
  "react-dropdown": "^1.11.0",
16
17
  "react-snowfall": "2.2.0",
@@ -24,5 +25,5 @@
24
25
  },
25
26
  "module": "build/esm/index.js",
26
27
  "types": "./build/types/navigator/src/index.d.ts",
27
- "gitHead": "8facbe068372e84d74a1d1de844fa2fb4ce603fa"
28
+ "gitHead": "1c530887d199f9c2bd8f4de19ddb4bc9ca0c9fe2"
28
29
  }