@plumile/router 0.1.12 → 0.1.13

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 (68) hide show
  1. package/README.md +426 -13
  2. package/lib/esm/index.d.ts +4 -0
  3. package/lib/esm/index.d.ts.map +1 -1
  4. package/lib/esm/index.js +5 -1
  5. package/lib/esm/routing/createRouter.d.ts +1 -0
  6. package/lib/esm/routing/createRouter.d.ts.map +1 -1
  7. package/lib/esm/routing/createRouter.js +399 -359
  8. package/lib/esm/routing/devtools.d.ts +20 -0
  9. package/lib/esm/routing/devtools.d.ts.map +1 -0
  10. package/lib/esm/routing/devtools.js +678 -0
  11. package/lib/esm/routing/filters.d.ts +97 -0
  12. package/lib/esm/routing/filters.d.ts.map +1 -0
  13. package/lib/esm/routing/filters.js +557 -0
  14. package/lib/esm/routing/index.d.ts +6 -0
  15. package/lib/esm/routing/index.d.ts.map +1 -1
  16. package/lib/esm/routing/index.js +7 -1
  17. package/lib/esm/routing/useActiveFilters.d.ts +9 -0
  18. package/lib/esm/routing/useActiveFilters.d.ts.map +1 -0
  19. package/lib/esm/routing/useActiveFilters.js +38 -0
  20. package/lib/esm/routing/useFilterState.d.ts +10 -0
  21. package/lib/esm/routing/useFilterState.d.ts.map +1 -0
  22. package/lib/esm/routing/useFilterState.js +14 -0
  23. package/lib/esm/routing/useNavigate.d.ts +7 -0
  24. package/lib/esm/routing/useNavigate.d.ts.map +1 -1
  25. package/lib/esm/routing/useNavigate.js +1 -1
  26. package/lib/esm/routing/useNavigateWithQuery.d.ts +15 -0
  27. package/lib/esm/routing/useNavigateWithQuery.d.ts.map +1 -0
  28. package/lib/esm/routing/useNavigateWithQuery.js +95 -0
  29. package/lib/esm/routing/useQueryObject.d.ts +18 -0
  30. package/lib/esm/routing/useQueryObject.d.ts.map +1 -0
  31. package/lib/esm/routing/useQueryObject.js +107 -0
  32. package/lib/esm/routing/useStableRefEquality.d.ts +5 -0
  33. package/lib/esm/routing/useStableRefEquality.d.ts.map +1 -0
  34. package/lib/esm/routing/useStableRefEquality.js +47 -0
  35. package/lib/esm/tools/buildSearch.d.ts +8 -2
  36. package/lib/esm/tools/buildSearch.d.ts.map +1 -1
  37. package/lib/esm/tools/buildSearch.js +216 -12
  38. package/lib/esm/types.d.ts +19 -0
  39. package/lib/esm/types.d.ts.map +1 -1
  40. package/lib/esm/types.js +1 -1
  41. package/lib/tsconfig.esm.tsbuildinfo +1 -1
  42. package/lib/types/index.d.ts +4 -0
  43. package/lib/types/index.d.ts.map +1 -1
  44. package/lib/types/routing/createRouter.d.ts +1 -0
  45. package/lib/types/routing/createRouter.d.ts.map +1 -1
  46. package/lib/types/routing/devtools.d.ts +20 -0
  47. package/lib/types/routing/devtools.d.ts.map +1 -0
  48. package/lib/types/routing/filters.d.ts +97 -0
  49. package/lib/types/routing/filters.d.ts.map +1 -0
  50. package/lib/types/routing/index.d.ts +6 -0
  51. package/lib/types/routing/index.d.ts.map +1 -1
  52. package/lib/types/routing/useActiveFilters.d.ts +9 -0
  53. package/lib/types/routing/useActiveFilters.d.ts.map +1 -0
  54. package/lib/types/routing/useFilterState.d.ts +10 -0
  55. package/lib/types/routing/useFilterState.d.ts.map +1 -0
  56. package/lib/types/routing/useNavigate.d.ts +7 -0
  57. package/lib/types/routing/useNavigate.d.ts.map +1 -1
  58. package/lib/types/routing/useNavigateWithQuery.d.ts +15 -0
  59. package/lib/types/routing/useNavigateWithQuery.d.ts.map +1 -0
  60. package/lib/types/routing/useQueryObject.d.ts +18 -0
  61. package/lib/types/routing/useQueryObject.d.ts.map +1 -0
  62. package/lib/types/routing/useStableRefEquality.d.ts +5 -0
  63. package/lib/types/routing/useStableRefEquality.d.ts.map +1 -0
  64. package/lib/types/tools/buildSearch.d.ts +8 -2
  65. package/lib/types/tools/buildSearch.d.ts.map +1 -1
  66. package/lib/types/types.d.ts +19 -0
  67. package/lib/types/types.d.ts.map +1 -1
  68. package/package.json +3 -3
@@ -0,0 +1,97 @@
1
+ export type FilterOperator = 'eq' | 'neq' | 'gt' | 'gte' | 'lt' | 'lte' | 'in' | 'nin' | 'between' | 'exists' | 'contains' | 'starts' | 'ends' | 'regex';
2
+ export type FilterValueKind = 'string' | 'number';
3
+ export interface FilterFieldDefinition<Kind extends FilterValueKind = FilterValueKind> {
4
+ __filter: true;
5
+ kind: Kind;
6
+ operators?: FilterOperator[];
7
+ dedupe?: boolean;
8
+ label?: string;
9
+ normalize?: (raw: string) => string;
10
+ defaults?: Partial<Kind extends 'number' ? {
11
+ eq: number[];
12
+ neq: number[];
13
+ gt: number[];
14
+ gte: number[];
15
+ lt: number[];
16
+ lte: number[];
17
+ in: number[];
18
+ nin: number[];
19
+ between: [number, number][];
20
+ exists: boolean;
21
+ } : {
22
+ eq: string[];
23
+ neq: string[];
24
+ in: string[];
25
+ nin: string[];
26
+ between: [string, string][];
27
+ exists: boolean;
28
+ contains: string[];
29
+ starts: string[];
30
+ ends: string[];
31
+ regex: string[];
32
+ }>;
33
+ }
34
+ export type FilterSchema = Record<string, FilterFieldDefinition>;
35
+ export interface DefinedFilterSchema<F extends FilterSchema> {
36
+ __defined: true;
37
+ schema: F;
38
+ }
39
+ export declare function numberFilter(def?: Partial<Omit<FilterFieldDefinition<'number'>, '__filter' | 'kind'>>): FilterFieldDefinition<'number'>;
40
+ export declare function stringFilter(def?: Partial<Omit<FilterFieldDefinition<'string'>, '__filter' | 'kind'>>): FilterFieldDefinition<'string'>;
41
+ export declare function defineFilters<F extends FilterSchema>(schema: F): DefinedFilterSchema<F>;
42
+ export type OperatorValue<K extends FilterValueKind> = K extends 'number' ? {
43
+ eq?: number[];
44
+ neq?: number[];
45
+ gt?: number[];
46
+ gte?: number[];
47
+ lt?: number[];
48
+ lte?: number[];
49
+ in?: number[];
50
+ nin?: number[];
51
+ between?: [number, number][];
52
+ exists?: boolean;
53
+ } : {
54
+ eq?: string[];
55
+ neq?: string[];
56
+ in?: string[];
57
+ nin?: string[];
58
+ between?: [string, string][];
59
+ exists?: boolean;
60
+ contains?: string[];
61
+ starts?: string[];
62
+ ends?: string[];
63
+ regex?: string[];
64
+ };
65
+ export type InferFilters<F extends FilterSchema> = {
66
+ [K in keyof F]: OperatorValue<F[K]['kind']>;
67
+ };
68
+ export declare function parseFilters<F extends DefinedFilterSchema<FilterSchema>>(defined: F, rawQuery: Record<string, string | string[]>): InferFilters<F['schema']>;
69
+ export declare const OPERATOR_PRIORITY: FilterOperator[];
70
+ export type FiltersPatch<F> = {
71
+ [K in keyof F]?: Partial<F[K]>;
72
+ };
73
+ export declare function buildFiltersQuery<F extends DefinedFilterSchema<FilterSchema>>(defined: F, currentQuery: Record<string, unknown>, next: InferFilters<F['schema']>): Record<string, unknown>;
74
+ export interface UseFiltersHelpers<F> {
75
+ set: (next: F | ((p: F) => F), navOpts?: {
76
+ replace?: boolean;
77
+ batch?: boolean;
78
+ internalBatch?: boolean;
79
+ }) => void;
80
+ patch: (delta: FiltersPatch<F>, navOpts?: {
81
+ replace?: boolean;
82
+ batch?: boolean;
83
+ internalBatch?: boolean;
84
+ }) => void;
85
+ clear: (fields?: (keyof F)[], navOpts?: {
86
+ replace?: boolean;
87
+ batch?: boolean;
88
+ internalBatch?: boolean;
89
+ }) => void;
90
+ }
91
+ export declare function useFilters(defined?: DefinedFilterSchema<FilterSchema>): [
92
+ Record<string, Record<string, unknown>>,
93
+ UseFiltersHelpers<Record<string, Record<string, unknown>>>
94
+ ];
95
+ export declare const useQueryFilters: typeof useFilters;
96
+ export default useFilters;
97
+ //# sourceMappingURL=filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filters.d.ts","sourceRoot":"","sources":["../../../src/routing/filters.ts"],"names":[],"mappings":"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"}