@es-joy/jsoe 0.28.2 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (163) hide show
  1. package/CHANGES.md +19 -0
  2. package/README.md +2 -0
  3. package/dist/formatAndTypeChoices.d.ts +6 -6
  4. package/dist/formatAndTypeChoices.d.ts.map +1 -1
  5. package/dist/formats/schema.d.ts +5 -0
  6. package/dist/formats/schema.d.ts.map +1 -1
  7. package/dist/formats.d.ts +2 -2
  8. package/dist/formats.d.ts.map +1 -1
  9. package/dist/fundamentalTypes/dateType.d.ts +21 -2
  10. package/dist/fundamentalTypes/dateType.d.ts.map +1 -1
  11. package/dist/fundamentalTypes/domexceptionType.d.ts +7 -0
  12. package/dist/fundamentalTypes/domexceptionType.d.ts.map +1 -1
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -2
  16. package/dist/index.js.map +1 -1
  17. package/dist/jtltExtensions.d.ts +112 -0
  18. package/dist/jtltExtensions.d.ts.map +1 -0
  19. package/dist/search/fundamentalTypes/arraySearchType.d.ts +15 -0
  20. package/dist/search/fundamentalTypes/arraySearchType.d.ts.map +1 -0
  21. package/dist/search/fundamentalTypes/bigintSearchType.d.ts +10 -0
  22. package/dist/search/fundamentalTypes/bigintSearchType.d.ts.map +1 -0
  23. package/dist/search/fundamentalTypes/blobSearchType.d.ts +19 -0
  24. package/dist/search/fundamentalTypes/blobSearchType.d.ts.map +1 -0
  25. package/dist/search/fundamentalTypes/booleanSearchType.d.ts +11 -0
  26. package/dist/search/fundamentalTypes/booleanSearchType.d.ts.map +1 -0
  27. package/dist/search/fundamentalTypes/catchSearchType.d.ts +18 -0
  28. package/dist/search/fundamentalTypes/catchSearchType.d.ts.map +1 -0
  29. package/dist/search/fundamentalTypes/dateSearchType.d.ts +10 -0
  30. package/dist/search/fundamentalTypes/dateSearchType.d.ts.map +1 -0
  31. package/dist/search/fundamentalTypes/domexceptionSearchType.d.ts +16 -0
  32. package/dist/search/fundamentalTypes/domexceptionSearchType.d.ts.map +1 -0
  33. package/dist/search/fundamentalTypes/enumSearchType.d.ts +22 -0
  34. package/dist/search/fundamentalTypes/enumSearchType.d.ts.map +1 -0
  35. package/dist/search/fundamentalTypes/errorSearchType.d.ts +9 -0
  36. package/dist/search/fundamentalTypes/errorSearchType.d.ts.map +1 -0
  37. package/dist/search/fundamentalTypes/fileSearchType.d.ts +19 -0
  38. package/dist/search/fundamentalTypes/fileSearchType.d.ts.map +1 -0
  39. package/dist/search/fundamentalTypes/filelistSearchType.d.ts +32 -0
  40. package/dist/search/fundamentalTypes/filelistSearchType.d.ts.map +1 -0
  41. package/dist/search/fundamentalTypes/functionSearchType.d.ts +18 -0
  42. package/dist/search/fundamentalTypes/functionSearchType.d.ts.map +1 -0
  43. package/dist/search/fundamentalTypes/mapSearchType.d.ts +18 -0
  44. package/dist/search/fundamentalTypes/mapSearchType.d.ts.map +1 -0
  45. package/dist/search/fundamentalTypes/nanSearchType.d.ts +7 -0
  46. package/dist/search/fundamentalTypes/nanSearchType.d.ts.map +1 -0
  47. package/dist/search/fundamentalTypes/nullSearchType.d.ts +7 -0
  48. package/dist/search/fundamentalTypes/nullSearchType.d.ts.map +1 -0
  49. package/dist/search/fundamentalTypes/numberSearchType.d.ts +11 -0
  50. package/dist/search/fundamentalTypes/numberSearchType.d.ts.map +1 -0
  51. package/dist/search/fundamentalTypes/objectSearchType.d.ts +15 -0
  52. package/dist/search/fundamentalTypes/objectSearchType.d.ts.map +1 -0
  53. package/dist/search/fundamentalTypes/promiseSearchType.d.ts +20 -0
  54. package/dist/search/fundamentalTypes/promiseSearchType.d.ts.map +1 -0
  55. package/dist/search/fundamentalTypes/regexpSearchType.d.ts +14 -0
  56. package/dist/search/fundamentalTypes/regexpSearchType.d.ts.map +1 -0
  57. package/dist/search/fundamentalTypes/setSearchType.d.ts +14 -0
  58. package/dist/search/fundamentalTypes/setSearchType.d.ts.map +1 -0
  59. package/dist/search/fundamentalTypes/stringSearchType.d.ts +13 -0
  60. package/dist/search/fundamentalTypes/stringSearchType.d.ts.map +1 -0
  61. package/dist/search/fundamentalTypes/symbolSearchType.d.ts +16 -0
  62. package/dist/search/fundamentalTypes/symbolSearchType.d.ts.map +1 -0
  63. package/dist/search/fundamentalTypes/undefinedSearchType.d.ts +7 -0
  64. package/dist/search/fundamentalTypes/undefinedSearchType.d.ts.map +1 -0
  65. package/dist/search/index.d.ts +60 -0
  66. package/dist/search/index.d.ts.map +1 -0
  67. package/dist/search/queryTree.d.ts.map +1 -1
  68. package/dist/search/queryTreeBuilders.d.ts +12 -0
  69. package/dist/search/queryTreeBuilders.d.ts.map +1 -1
  70. package/dist/search/searchDispatch.d.ts +44 -0
  71. package/dist/search/searchDispatch.d.ts.map +1 -1
  72. package/dist/search/searchElementUtils.d.ts +97 -0
  73. package/dist/search/searchElementUtils.d.ts.map +1 -0
  74. package/dist/search/searchUtils.d.ts +225 -0
  75. package/dist/search/searchUtils.d.ts.map +1 -0
  76. package/dist/search/subTypes/blobHTMLSearchType.d.ts +16 -0
  77. package/dist/search/subTypes/blobHTMLSearchType.d.ts.map +1 -0
  78. package/dist/search/subTypes/recordSearchType.d.ts +18 -0
  79. package/dist/search/subTypes/recordSearchType.d.ts.map +1 -0
  80. package/dist/search/subTypes/tupleSearchType.d.ts +21 -0
  81. package/dist/search/subTypes/tupleSearchType.d.ts.map +1 -0
  82. package/dist/search/superTypes/SpecialRealNumberSearchType.d.ts +14 -0
  83. package/dist/search/superTypes/SpecialRealNumberSearchType.d.ts.map +1 -0
  84. package/dist/search/superTypes/buffersourceSearchType.d.ts +17 -0
  85. package/dist/search/superTypes/buffersourceSearchType.d.ts.map +1 -0
  86. package/dist/search/superTypes/dommatrixSearchType.d.ts +11 -0
  87. package/dist/search/superTypes/dommatrixSearchType.d.ts.map +1 -0
  88. package/dist/search/superTypes/dompointSearchType.d.ts +9 -0
  89. package/dist/search/superTypes/dompointSearchType.d.ts.map +1 -0
  90. package/dist/search/superTypes/domrectSearchType.d.ts +9 -0
  91. package/dist/search/superTypes/domrectSearchType.d.ts.map +1 -0
  92. package/dist/search/superTypes/errorsSpecialSearchType.d.ts +11 -0
  93. package/dist/search/superTypes/errorsSpecialSearchType.d.ts.map +1 -0
  94. package/dist/search/unions/discriminatedUnionSearchType.d.ts +12 -0
  95. package/dist/search/unions/discriminatedUnionSearchType.d.ts.map +1 -0
  96. package/dist/search/unions/unionFamilySearchType.d.ts +36 -0
  97. package/dist/search/unions/unionFamilySearchType.d.ts.map +1 -0
  98. package/dist/search/unions/unionSearchType.d.ts +8 -0
  99. package/dist/search/unions/unionSearchType.d.ts.map +1 -0
  100. package/dist/search/unions/xorSearchType.d.ts +12 -0
  101. package/dist/search/unions/xorSearchType.d.ts.map +1 -0
  102. package/dist/superTypes/buffersourceType.d.ts.map +1 -1
  103. package/dist/typeChoices.d.ts +3 -3
  104. package/dist/typeChoices.d.ts.map +1 -1
  105. package/dist/types.d.ts +3 -3
  106. package/dist/types.d.ts.map +1 -1
  107. package/package.json +5 -4
  108. package/pnpm-workspace.yaml +1 -1
  109. package/rollup.config.js +12 -0
  110. package/src/formatAndTypeChoices.js +4 -4
  111. package/src/formats/schema.js +1 -1
  112. package/src/formats.js +1 -1
  113. package/src/fundamentalTypes/dateType.js +35 -14
  114. package/src/fundamentalTypes/domexceptionType.js +41 -33
  115. package/src/index.js +6 -0
  116. package/src/jtltExtensions.js +103 -0
  117. package/src/search/fundamentalTypes/arraySearchType.js +66 -0
  118. package/src/search/fundamentalTypes/bigintSearchType.js +62 -0
  119. package/src/search/fundamentalTypes/blobSearchType.js +41 -0
  120. package/src/search/fundamentalTypes/booleanSearchType.js +40 -0
  121. package/src/search/fundamentalTypes/catchSearchType.js +59 -0
  122. package/src/search/fundamentalTypes/dateSearchType.js +73 -0
  123. package/src/search/fundamentalTypes/domexceptionSearchType.js +55 -0
  124. package/src/search/fundamentalTypes/enumSearchType.js +58 -0
  125. package/src/search/fundamentalTypes/errorSearchType.js +11 -0
  126. package/src/search/fundamentalTypes/fileSearchType.js +41 -0
  127. package/src/search/fundamentalTypes/filelistSearchType.js +78 -0
  128. package/src/search/fundamentalTypes/functionSearchType.js +78 -0
  129. package/src/search/fundamentalTypes/mapSearchType.js +87 -0
  130. package/src/search/fundamentalTypes/nanSearchType.js +11 -0
  131. package/src/search/fundamentalTypes/nullSearchType.js +11 -0
  132. package/src/search/fundamentalTypes/numberSearchType.js +52 -0
  133. package/src/search/fundamentalTypes/objectSearchType.js +148 -0
  134. package/src/search/fundamentalTypes/promiseSearchType.js +61 -0
  135. package/src/search/fundamentalTypes/regexpSearchType.js +48 -0
  136. package/src/search/fundamentalTypes/setSearchType.js +65 -0
  137. package/src/search/fundamentalTypes/stringSearchType.js +35 -0
  138. package/src/search/fundamentalTypes/symbolSearchType.js +38 -0
  139. package/src/search/fundamentalTypes/undefinedSearchType.js +11 -0
  140. package/src/search/index.js +79 -0
  141. package/src/search/queryTree.js +235 -0
  142. package/src/search/queryTreeBuilders.js +224 -0
  143. package/src/search/searchDispatch.js +291 -0
  144. package/src/search/searchElementUtils.js +289 -0
  145. package/src/search/searchUtils.js +355 -0
  146. package/src/search/subTypes/blobHTMLSearchType.js +65 -0
  147. package/src/search/subTypes/recordSearchType.js +84 -0
  148. package/src/search/subTypes/tupleSearchType.js +111 -0
  149. package/src/search/superTypes/SpecialRealNumberSearchType.js +42 -0
  150. package/src/search/superTypes/buffersourceSearchType.js +47 -0
  151. package/src/search/superTypes/dommatrixSearchType.js +24 -0
  152. package/src/search/superTypes/dompointSearchType.js +15 -0
  153. package/src/search/superTypes/domrectSearchType.js +15 -0
  154. package/src/search/superTypes/errorsSpecialSearchType.js +15 -0
  155. package/src/search/unions/discriminatedUnionSearchType.js +16 -0
  156. package/src/search/unions/unionFamilySearchType.js +160 -0
  157. package/src/search/unions/unionSearchType.js +12 -0
  158. package/src/search/unions/xorSearchType.js +16 -0
  159. package/src/superTypes/buffersourceType.js +13 -15
  160. package/src/typeChoices.js +2 -2
  161. package/src/types.js +2 -2
  162. package/tsconfig-prod.json +12 -0
  163. package/tsconfig.json +5 -10
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @typedef {{
3
+ * container: HTMLDivElement,
4
+ * $getQuery: () => import('./queryTree.js').QueryAnd,
5
+ * whenReady: Promise<void>
6
+ * }} SearchChoicesControl
7
+ */
8
+ /**
9
+ * The top-level entry point (search plan §5): builds the whole recursive
10
+ * search widget tree for `schemaContent` via `buildSearchWidget`
11
+ * (`searchDispatch.js`), starting at `path = '#/'`. Does not route through
12
+ * `getTypesForSchema` for the general case - that function flattens union
13
+ * members into one flat `Set` of leaf types for a type-choice pull-down,
14
+ * whereas search needs union branches to stay distinguishable nested
15
+ * sub-widgets for the "has type" affordance (`unionSearchType.js` et al.) -
16
+ * `getTypesForSchema` is only reused narrowly, for intersection resolution,
17
+ * inside `buildSearchWidget`/`resolveIntersection` - which run at *every*
18
+ * recursive call site (every composite module's own child recursion uses
19
+ * `buildSearchWidget` too), not just here at the root, so an intersection
20
+ * schema nested anywhere in the tree resolves the same way a top-level one
21
+ * does rather than falling through to the `noneditableSearchType` escape
22
+ * hatch.
23
+ *
24
+ * `resolveIntersection` is called here too (redundantly, but cheaply, since
25
+ * it's a no-op for anything that isn't itself an `intersection`) purely so
26
+ * `$getQuery()` below dispatches through the *same* resolved schema
27
+ * `buildSearchWidget` actually built the UI for, rather than the original
28
+ * (possibly-`intersection`) one.
29
+ *
30
+ * Mirrors `buildTypeChoices`'s (`src/typeChoices.js`) `whenReady`/
31
+ * pull-based convention rather than inventing a push/callback API:
32
+ * `$getQuery()` reads the live DOM into a `QueryAnd` on demand (`{$and:
33
+ * []}` when nothing has been entered anywhere, matching the empty-`$and`
34
+ * convention of "no constraint"), and a host that wants live updates wraps
35
+ * it in its own `container.addEventListener('input', ...)` since
36
+ * `container` is a plain `HTMLDivElement`. Every widget built so far is
37
+ * synchronous, so `whenReady` (unlike `buildTypeChoices`'s) has no deferred
38
+ * work to wait on and settles immediately - it's still returned, so a
39
+ * caller can `await` either function uniformly without checking which one
40
+ * it has.
41
+ * @param {{
42
+ * schemaContent: import('../formats/schema.js').ZodexSchema,
43
+ * typeNamespace?: string,
44
+ * topRoot?: import('../types.js').RootElement,
45
+ * types?: import('../types.js').default
46
+ * }} cfg
47
+ * @returns {SearchChoicesControl}
48
+ */
49
+ export function buildSearchChoices({ schemaContent, typeNamespace, topRoot, types }: {
50
+ schemaContent: import("../formats/schema.js").ZodexSchema;
51
+ typeNamespace?: string;
52
+ topRoot?: import("../types.js").RootElement;
53
+ types?: import("../types.js").default;
54
+ }): SearchChoicesControl;
55
+ export type SearchChoicesControl = {
56
+ container: HTMLDivElement;
57
+ $getQuery: () => import("./queryTree.js").QueryAnd;
58
+ whenReady: Promise<void>;
59
+ };
60
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,qFARW;IACN,aAAa,EAAE,OAAO,sBAAsB,EAAE,WAAW,CAAC;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,aAAa,EAAE,WAAW,CAAC;IAC5C,KAAK,CAAC,EAAE,OAAO,aAAa,EAAE,OAAO,CAAA;CACtC,GACS,oBAAoB,CA4BhC;mCA1EY;IACR,SAAS,EAAE,cAAc,CAAC;IAC1B,SAAS,EAAE,MAAM,OAAO,gBAAgB,EAAE,QAAQ,CAAC;IACnD,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CACzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"queryTree.d.ts","sourceRoot":"","sources":["../../src/search/queryTree.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queryTree.d.ts","sourceRoot":"","sources":["../../src/search/queryTree.js"],"names":[],"mappings":"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"}
@@ -9,6 +9,18 @@
9
9
  * @returns {import('./queryTree.js').QueryAnd}
10
10
  */
11
11
  export function makeAndNode(nodes: import("./queryTree.js").QueryNode[]): import("./queryTree.js").QueryAnd;
12
+ /**
13
+ * Combines the leaves a single widget contributes (e.g. a number leaf's
14
+ * range plus its separate "Is/Is Not Integer" check) into one `QueryNode`:
15
+ * drops any `undefined` (no constraint entered there), returns `undefined`
16
+ * if nothing is left, the bare node if only one is left, else an `$and` of
17
+ * the rest - so a widget with several independent controls still honors
18
+ * `getQuery`'s "`undefined` means no constraint" convention without every
19
+ * such widget re-implementing this collapsing logic itself.
20
+ * @param {(import('./queryTree.js').QueryNode|undefined)[]} nodes
21
+ * @returns {import('./queryTree.js').QueryNode|undefined}
22
+ */
23
+ export function combineAnd(nodes: (import("./queryTree.js").QueryNode | undefined)[]): import("./queryTree.js").QueryNode | undefined;
12
24
  /**
13
25
  * @param {import('./queryTree.js').QueryNode[]} nodes
14
26
  * @returns {import('./queryTree.js').QueryOr}
@@ -1 +1 @@
1
- {"version":3,"file":"queryTreeBuilders.d.ts","sourceRoot":"","sources":["../../src/search/queryTreeBuilders.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,mCAHW,OAAO,gBAAgB,EAAE,SAAS,EAAE,GAClC,OAAO,gBAAgB,EAAE,QAAQ,CAI7C;AAED;;;GAGG;AACH,kCAHW,OAAO,gBAAgB,EAAE,SAAS,EAAE,GAClC,OAAO,gBAAgB,EAAE,OAAO,CAI5C;AAED;;;;GAIG;AACH,0CAJW,MAAM,WACN,OAAO,GACL,OAAO,gBAAgB,EAAE,oBAAoB,CAIzD;AAED;;;;;;;;GAQG;AACH,yCARW,MAAM,QACN;IACN,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACzD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,GACS,OAAO,gBAAgB,EAAE,mBAAmB,CAIxD;AAED;;;;;;;;GAQG;AACH,oCARW,MAAM,aACN,OAAO,gBAAgB,EAAE,cAAc,CAAC,WAAW,CAAC,QACpD;IACN,GAAG,CAAC,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,CAAC;IACxD,GAAG,CAAC,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,CAAA;CACxD,GACS,OAAO,gBAAgB,EAAE,cAAc,CAInD;AAED;;;GAGG;AACH,mCAHW,OAAO,gBAAgB,EAAE,SAAS,GAChC,OAAO,gBAAgB,EAAE,YAAY,CAIjD;AAED;;;;GAIG;AACH,2CAJW,MAAM,aACN,OAAO,GACL,OAAO,gBAAgB,EAAE,qBAAqB,CAI1D;AAED;;;;GAIG;AACH,yCAJW,MAAM,QACN;IAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;CAAC,GACjC,OAAO,gBAAgB,EAAE,mBAAmB,CAIxD;AAED;;;;;GAKG;AACH,oCALW,MAAM,UACN,MAAM,aACN,MAAM,GACJ,OAAO,gBAAgB,EAAE,cAAc,CAInD;AAED;;;;GAIG;AACH,0CAJW,MAAM,SACN,MAAM,GACJ,OAAO,gBAAgB,EAAE,oBAAoB,CAIzD;AAED;;;;GAIG;AACH,0CAJW,MAAM,QACN;IAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;CAAC,GACjC,OAAO,gBAAgB,EAAE,oBAAoB,CAIzD;AAED;;;;;GAKG;AACH,2CALW,MAAM,aACN,OAAO,UACP,OAAO,EAAE,GACP,OAAO,gBAAgB,EAAE,qBAAqB,CAI1D;AAED;;;;;GAKG;AACH,qCALW,MAAM,cACN,MAAM,uBACN,OAAO,GACL,OAAO,gBAAgB,EAAE,eAAe,CASpD;AAED;;;;;GAKG;AACH,uCALW,MAAM,QACN,OAAO,gBAAgB,EAAE,iBAAiB,CAAC,MAAM,CAAC,SAClD,MAAM,GACJ,OAAO,gBAAgB,EAAE,iBAAiB,CAItD;AAED;;;;;GAKG;AACH,uCALW,MAAM,cACN;IAAC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,gBAAgB,EAAE,cAAc,CAAA;CAAC,QAC9D;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,CAAC,GAAC,CAAC,CAAA;CAAC,GAC7C,OAAO,gBAAgB,EAAE,iBAAiB,CAItD;AAED;;;;;;GAMG;AACH,6CANW,MAAM,SACN,OAAO,aACP,OAAO,gBAAgB,EAAE,SAAS,eAClC,OAAO,gBAAgB,EAAE,SAAS,GAChC,OAAO,gBAAgB,EAAE,uBAAuB,CAU5D;AAED;;;;GAIG;AACH,0CAJW,MAAM,UACN,OAAO,gBAAgB,EAAE,SAAS,GAChC,OAAO,gBAAgB,EAAE,oBAAoB,CAIzD;AAED;;;;GAIG;AACH,uCAJW,MAAM,WACN,OAAO,GACL,OAAO,gBAAgB,EAAE,iBAAiB,CAItD;AAED;;;;GAIG;AACH,4CAJW,MAAM,SACN,OAAO,GACL,OAAO,gBAAgB,EAAE,sBAAsB,CAI3D"}
1
+ {"version":3,"file":"queryTreeBuilders.d.ts","sourceRoot":"","sources":["../../src/search/queryTreeBuilders.js"],"names":[],"mappings":"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"}
@@ -28,6 +28,35 @@ export function getSearchSchemaType(schemaObject: import("../formats/schema.js")
28
28
  * @returns {SearchTypeObject}
29
29
  */
30
30
  export function getSearchTypeObject(schemaObject: import("../formats/schema.js").ZodexSchema): SearchTypeObject;
31
+ /**
32
+ * The call site every *recursive* search widget uses in place of calling
33
+ * `getSearchTypeObject(...).buildUI(...)` directly - it's the same thing,
34
+ * plus `resolveIntersection` run first, so an intersection schema at any
35
+ * depth (not just the one `buildSearchChoices` is called with) still
36
+ * resolves instead of falling through to the `noneditableSearchType`
37
+ * escape hatch. `originalJSON` (needed for the `getTypesForSchema` call's
38
+ * own `$ref` resolution) defaults to `schemaObject` itself only as a last
39
+ * resort for a call site that has none to pass down - every recursive
40
+ * caller should be threading the true document root through via its own
41
+ * `originalJSON` parameter instead.
42
+ * @param {{
43
+ * schemaObject: import('../formats/schema.js').ZodexSchema,
44
+ * path: string,
45
+ * typeNamespace?: string,
46
+ * topRoot?: import('../types.js').RootElement,
47
+ * types?: import('../types.js').default,
48
+ * originalJSON?: import('../formats/schema.js').ZodexSchema
49
+ * }} cfg
50
+ * @returns {import('../types.js').JamilihArray}
51
+ */
52
+ export function buildSearchWidget({ schemaObject, path, typeNamespace, topRoot, types, originalJSON }: {
53
+ schemaObject: import("../formats/schema.js").ZodexSchema;
54
+ path: string;
55
+ typeNamespace?: string;
56
+ topRoot?: import("../types.js").RootElement;
57
+ types?: import("../types.js").default;
58
+ originalJSON?: import("../formats/schema.js").ZodexSchema;
59
+ }): import("../types.js").JamilihArray;
31
60
  export type QueryNode = import("./queryTree.js").QueryNode;
32
61
  /**
33
62
  * The search-side analogue of `TypeObject` (`src/types.js:308-408`): two
@@ -41,6 +70,7 @@ export type SearchTypeObject = {
41
70
  typeNamespace?: string;
42
71
  topRoot?: import("../types.js").RootElement;
43
72
  types?: import("../types.js").default;
73
+ originalJSON?: import("../formats/schema.js").ZodexSchema;
44
74
  }) => import("../types.js").JamilihArray;
45
75
  getQuery: (cfg: {
46
76
  root: HTMLElement;
@@ -74,4 +104,18 @@ export const availableSearchTypes: {
74
104
  * @type {SearchTypeObject}
75
105
  */
76
106
  export const noneditableSearchType: SearchTypeObject;
107
+ /**
108
+ * Intersection schemas are never registered in `availableSearchTypes` -
109
+ * resolved here instead of in `getSearchSchemaType`, reusing jsoe's
110
+ * existing intersection-merging machinery (`getTypesForSchema`,
111
+ * `src/formats/schema.js`) rather than reinventing it (search plan §3/§5).
112
+ * A single merged result replaces the intersection outright; more than one
113
+ * (e.g. one side of the intersection is itself a union) is handed to
114
+ * `unionSearchType.js` unchanged via a synthesized `union` wrapper, the
115
+ * same way `unionSearchType.js` already treats distinguishable branches.
116
+ * @param {import('../formats/schema.js').ZodexSchema} schemaObject
117
+ * @param {import('../formats/schema.js').ZodexSchema} originalJSON
118
+ * @returns {import('../formats/schema.js').ZodexSchema}
119
+ */
120
+ export function resolveIntersection(schemaObject: import("../formats/schema.js").ZodexSchema, originalJSON: import("../formats/schema.js").ZodexSchema): import("../formats/schema.js").ZodexSchema;
77
121
  //# sourceMappingURL=searchDispatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"searchDispatch.d.ts","sourceRoot":"","sources":["../../src/search/searchDispatch.js"],"names":[],"mappings":"AA2HA;;;;;;;;;;;;;;;;;GAiBG;AACH,kDAHW,OAAO,sBAAsB,EAAE,WAAW,GACxC,MAAM,CAuBlB;AAED;;;;;;;;;GASG;AACH,kDAHW,OAAO,sBAAsB,EAAE,WAAW,GACxC,gBAAgB,CAK5B;wBA9KY,OAAO,gBAAgB,EAAE,SAAS;;;;;;+BAOlC;IACR,OAAO,EAAE,CAAC,GAAG,EAAE;QACb,YAAY,EAAE,OAAO,sBAAsB,EAAE,WAAW,CAAC;QACzD,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,OAAO,aAAa,EAAE,WAAW,CAAC;QAC5C,KAAK,CAAC,EAAE,OAAO,aAAa,EAAE,OAAO,CAAA;KACtC,KAAK,OAAO,aAAa,EAAE,YAAY,CAAC;IACzC,QAAQ,EAAE,CAAC,GAAG,EAAE;QACd,IAAI,EAAE,WAAW,CAAC;QAClB,IAAI,EAAE,MAAM,CAAA;KACb,KAAK,SAAS,GAAC,SAAS,CAAA;CAC1B;AAyBJ;;;;;;;;;;;;;;;;;GAiBG;AACH,mCAFU;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAC,CA0DzC;AAjFF;;;;GAIG;AACH,oCAFU,gBAAgB,CAEkC"}
1
+ {"version":3,"file":"searchDispatch.d.ts","sourceRoot":"","sources":["../../src/search/searchDispatch.js"],"names":[],"mappings":"AAqKA;;;;;;;;;;;;;;;;;GAiBG;AACH,kDAHW,OAAO,sBAAsB,EAAE,WAAW,GACxC,MAAM,CA+BlB;AAED;;;;;;;;;GASG;AACH,kDAHW,OAAO,sBAAsB,EAAE,WAAW,GACxC,gBAAgB,CAK5B;AA2BD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,uGAVW;IACN,YAAY,EAAE,OAAO,sBAAsB,EAAE,WAAW,CAAC;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,aAAa,EAAE,WAAW,CAAC;IAC5C,KAAK,CAAC,EAAE,OAAO,aAAa,EAAE,OAAO,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,sBAAsB,EAAE,WAAW,CAAA;CAC1D,GACS,OAAO,aAAa,EAAE,YAAY,CAe9C;wBAzPY,OAAO,gBAAgB,EAAE,SAAS;;;;;;+BAOlC;IACR,OAAO,EAAE,CAAC,GAAG,EAAE;QACb,YAAY,EAAE,OAAO,sBAAsB,EAAE,WAAW,CAAC;QACzD,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,OAAO,aAAa,EAAE,WAAW,CAAC;QAC5C,KAAK,CAAC,EAAE,OAAO,aAAa,EAAE,OAAO,CAAC;QACtC,YAAY,CAAC,EAAE,OAAO,sBAAsB,EAAE,WAAW,CAAA;KAC1D,KAAK,OAAO,aAAa,EAAE,YAAY,CAAC;IACzC,QAAQ,EAAE,CAAC,GAAG,EAAE;QACd,IAAI,EAAE,WAAW,CAAC;QAClB,IAAI,EAAE,MAAM,CAAA;KACb,KAAK,SAAS,GAAC,SAAS,CAAA;CAC1B;AAyBJ;;;;;;;;;;;;;;;;;GAiBG;AACH,mCAFU;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;CAAC,CA+DzC;AAtFF;;;;GAIG;AACH,oCAFU,gBAAgB,CAEkC;AAmJ5D;;;;;;;;;;;;GAYG;AACH,kDAJW,OAAO,sBAAsB,EAAE,WAAW,gBAC1C,OAAO,sBAAsB,EAAE,WAAW,GACxC,OAAO,sBAAsB,EAAE,WAAW,CAYtD"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Locates a built search element by the JSON-Pointer path it was built for.
3
+ * Compares `dataset.searchPath` in JS rather than interpolating `path` into
4
+ * a `querySelector` attribute-value string, since a schema path can embed
5
+ * arbitrary property-name characters (only `~`/`/` are escaped by
6
+ * `makeJSONPointer`) that would otherwise need CSS-selector escaping.
7
+ * @param {ParentNode} root
8
+ * @param {string} path
9
+ * @returns {HTMLElement|undefined}
10
+ */
11
+ export function findSearchElement(root: ParentNode, path: string): HTMLElement | undefined;
12
+ /**
13
+ * @typedef {HTMLElement & {
14
+ * getQuery: () => import('./queryTree.js').QueryNode|undefined
15
+ * }} SearchElement
16
+ */
17
+ /**
18
+ * The `SearchTypeObject.getQuery` every leaf module implements identically:
19
+ * locate the element it built under `root` and delegate to its own
20
+ * (per-element, `dataset`-driven) `getQuery()` method.
21
+ * @param {{root: HTMLElement, path: string}} cfg
22
+ * @returns {import('./queryTree.js').QueryNode|undefined}
23
+ */
24
+ export function getQueryViaElement({ root, path }: {
25
+ root: HTMLElement;
26
+ path: string;
27
+ }): import("./queryTree.js").QueryNode | undefined;
28
+ /**
29
+ * Type-predicate guard distinguishing a built search element (leaf or
30
+ * container, either answers to `.getQuery()`) from a plain DOM node - used
31
+ * by container elements (e.g. `objectSearchType.js`'s `<jsoe-search-object>`)
32
+ * that walk `this.children` polymorphically (search plan §8) without
33
+ * knowing which children are search elements and which are plain layout
34
+ * (a controls `<div>`, etc.).
35
+ * @param {Element} el
36
+ * @returns {el is SearchElement}
37
+ */
38
+ export function hasGetQuery(el: Element): el is SearchElement;
39
+ /**
40
+ * Factory for the README's "no variants to allow for distinct search"
41
+ * leaves (`undefined`/`void`, `null`, `NaN`): the only meaningful question
42
+ * is whether the path is present at all, which only matters once the path
43
+ * is optional or nested in a union - so all three share one tiny, single-
44
+ * checkbox implementation, differing only in tag name/label.
45
+ * @param {{tagName: string}} cfg
46
+ * @returns {import('./searchDispatch.js').SearchTypeObject}
47
+ */
48
+ export function makePresenceOnlySearchType({ tagName }: {
49
+ tagName: string;
50
+ }): import("./searchDispatch.js").SearchTypeObject;
51
+ /**
52
+ * Factory for `errorSearchType.js`/`errorsSpecialSearchType.js`, offering
53
+ * literal/regex search of child string properties, numeric of number
54
+ * children (README) - one `buildLiteralRegexControls`/`buildRangeInputsPair` pair
55
+ * per known property (`key`-distinguished so they coexist in one widget;
56
+ * see those helpers' docs), combined via `$and`. `.cause` (a recursive,
57
+ * arbitrarily-typed property) and `errorsSpecial`'s `AggregateError.errors`
58
+ * array are deliberately left out of this pass - the README's bullet asks
59
+ * only for the flat string/number children, and open-ended recursion into
60
+ * an arbitrary `cause` chain is a materially bigger feature than "the same
61
+ * shape, twice more".
62
+ * @param {{tagName: string}} cfg
63
+ * @returns {import('./searchDispatch.js').SearchTypeObject}
64
+ */
65
+ export function makeErrorFamilySearchType({ tagName }: {
66
+ tagName: string;
67
+ }): import("./searchDispatch.js").SearchTypeObject;
68
+ /**
69
+ * Factory for `domrectSearchType.js`/`dompointSearchType.js`/
70
+ * `dommatrixSearchType.js`: numeric search ranges for children; "Is/Is not
71
+ * Readonly"; DOMMatrix: "Is/Is not 3d" (README) - one `buildRangeInputsPair`
72
+ * per known dimension (`key`-distinguished so they coexist in one widget;
73
+ * `dimensionKeys` covers DOMMatrix's 2D (`a`-`f`) *and* 3D (`m11`-`m44`)
74
+ * shapes at once rather than switching the control set on an "Is/Is not 3d"
75
+ * answer that's itself just another optional search constraint, not a
76
+ * schema fact - `domrect`/`dompoint`/`dommatrix` are all "checked" types
77
+ * with no structural schema to derive dimension names from in the first
78
+ * place, same reasoning as `makeErrorFamilySearchType`), combined into one
79
+ * `domShape` leaf (`queryTree.js`) rather than separate leaves via `$and`.
80
+ * @param {{
81
+ * tagName: string,
82
+ * dimensionKeys: string[],
83
+ * includeReadonly?: boolean,
84
+ * includeDimensionCheck?: boolean
85
+ * }} cfg
86
+ * @returns {import('./searchDispatch.js').SearchTypeObject}
87
+ */
88
+ export function makeDomShapeSearchType({ tagName, dimensionKeys, includeReadonly, includeDimensionCheck }: {
89
+ tagName: string;
90
+ dimensionKeys: string[];
91
+ includeReadonly?: boolean;
92
+ includeDimensionCheck?: boolean;
93
+ }): import("./searchDispatch.js").SearchTypeObject;
94
+ export type SearchElement = HTMLElement & {
95
+ getQuery: () => import("./queryTree.js").QueryNode | undefined;
96
+ };
97
+ //# sourceMappingURL=searchElementUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchElementUtils.d.ts","sourceRoot":"","sources":["../../src/search/searchElementUtils.js"],"names":[],"mappings":"AAQA;;;;;;;;;GASG;AACH,wCAJW,UAAU,QACV,MAAM,GACJ,WAAW,GAAC,SAAS,CAMjC;AAED;;;;GAIG;AAEH;;;;;;GAMG;AACH,mDAHW;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,GAC/B,OAAO,gBAAgB,EAAE,SAAS,GAAC,SAAS,CAOxD;AAED;;;;;;;;;GASG;AACH,gCAHW,OAAO,GACL,EAAE,IAAI,aAAa,CAK/B;AAED;;;;;;;;GAQG;AACH,wDAHW;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GACf,OAAO,qBAAqB,EAAE,gBAAgB,CA0B1D;AAqCD;;;;;;;;;;;;;GAaG;AACH,uDAHW;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GACf,OAAO,qBAAqB,EAAE,gBAAgB,CAkC1D;AAyCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,2GARW;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,GACS,OAAO,qBAAqB,EAAE,gBAAgB,CAsD1D;4BAvQY,WAAW,GAAG;IACtB,QAAQ,EAAE,MAAM,OAAO,gBAAgB,EAAE,SAAS,GAAC,SAAS,CAAA;CAC7D"}
@@ -0,0 +1,225 @@
1
+ /**
2
+ * @typedef {import('../types.js').JamilihArray} JamilihArray
3
+ */
4
+ /**
5
+ * Label for a leaf/container's own control, preferring the schema's own
6
+ * `meta.title`/`meta.description`/`description` (via `schemaLabel`, same
7
+ * precedence the value-editing side uses) and falling back to the JSON
8
+ * Pointer path's final segment so every control still has a legible label
9
+ * even when the schema carries no metadata.
10
+ * @param {import('../formats/schema.js').ZodexSchema|undefined} schemaObject
11
+ * @param {string} path
12
+ * @returns {string}
13
+ */
14
+ export function buildPathLabel(schemaObject: import("../formats/schema.js").ZodexSchema | undefined, path: string): string;
15
+ /**
16
+ * Finds a control belonging directly to `root`'s own widget - as opposed to
17
+ * one belonging to a search widget recursively nested inside it (e.g.
18
+ * `arraySearchType.js`'s own "size" input vs. a nested array-of-arrays'
19
+ * element widget's own "size" input, both reachable from `root` via a plain
20
+ * `querySelectorAll`). A match only counts if the nearest ancestor of the
21
+ * match carrying `data-search-path` is `root` itself; every search element
22
+ * carries that attribute (`searchElementUtils.js`'s `findSearchElement`), so
23
+ * this reliably stops at the first nested search element's boundary.
24
+ *
25
+ * This is also why every `build*`/`read*` pair below reads its class-based
26
+ * selector back through this helper rather than a raw
27
+ * `root.querySelector(...)`: a fixed class name is safe to reuse across
28
+ * every instance of a given control on the page precisely because lookups
29
+ * are always scoped this way, and - unlike a `name` built from a
30
+ * `typeNamespace` closed over inside a `$define` mixin, which is installed
31
+ * once on the shared custom-element prototype the first time a tag is
32
+ * defined - nothing here depends on a per-instance closure at all.
33
+ * @param {HTMLElement} root
34
+ * @param {string} selector
35
+ * @returns {HTMLElement|undefined}
36
+ */
37
+ export function findOwnControl(root: HTMLElement, selector: string): HTMLElement | undefined;
38
+ /**
39
+ * A "from"/"to" pair of native inputs sharing one `type`, for the OR-range/
40
+ * Is-Not-Range README affordance (number/bigint/buffersource; `date` uses
41
+ * `dateType.js`'s own `buildDateInputControl` instead, since a
42
+ * `datetime-local` input needs its own ISO-slicing).
43
+ *
44
+ * `key` distinguishes multiple range pairs *within one widget* (e.g.
45
+ * `domrectSearchType.js`'s `x`/`y`/`width`/`height` dimensions, or
46
+ * `errorSearchType.js`'s `lineNumber`/`columnNumber`): `findOwnControl`
47
+ * already isolates one widget's controls from another's, but can't tell
48
+ * apart two same-class controls belonging to the *same* widget, so those
49
+ * need distinct classes. Leave it at the default `''` for the common case
50
+ * of a widget with only one range pair.
51
+ * @param {{
52
+ * name: string,
53
+ * key?: string,
54
+ * type?: string,
55
+ * min?: string|number,
56
+ * max?: string|number,
57
+ * step?: string|number
58
+ * }} cfg
59
+ * @returns {JamilihArray[]}
60
+ */
61
+ export function buildRangeInputsPair({ name, key, type, min, max, step }: {
62
+ name: string;
63
+ key?: string;
64
+ type?: string;
65
+ min?: string | number;
66
+ max?: string | number;
67
+ step?: string | number;
68
+ }): JamilihArray[];
69
+ /**
70
+ * Reads back a `buildRangeInputsPair` - pass the same `key` it was built
71
+ * with.
72
+ * @param {HTMLElement} el
73
+ * @param {string} [key]
74
+ * @returns {{gte: string, lte: string}}
75
+ */
76
+ export function readRangeInputsPair(el: HTMLElement, key?: string): {
77
+ gte: string;
78
+ lte: string;
79
+ };
80
+ /**
81
+ * A `<select multiple>` populated from a fixed candidate list - used by
82
+ * `enum`/`multiSelect`/`literalSet` leaf controls (README: "multiple
83
+ * select").
84
+ * @param {{
85
+ * name: string,
86
+ * options: (string|[value: string, title: string])[]
87
+ * }} cfg
88
+ * @returns {JamilihArray}
89
+ */
90
+ export function buildMultiSelect({ name, options }: {
91
+ name: string;
92
+ options: (string | [value: string, title: string])[];
93
+ }): JamilihArray;
94
+ /**
95
+ * Reads back a `buildMultiSelect` into the selected values, `[]` if none.
96
+ * @param {HTMLElement} el
97
+ * @returns {string[]}
98
+ */
99
+ export function readMultiSelect(el: HTMLElement): string[];
100
+ /**
101
+ * A tri-state "has property" control for one already-chosen property name
102
+ * (README: "Has property &lt;property pull-down&gt;", "avoid listing
103
+ * required"). `objectSearchType.js` supplies the additive pull-down that
104
+ * lets a user pick *which* property to add one of these for; this helper is
105
+ * only the fixed per-property toggle it adds each time, so the "any" state
106
+ * (no constraint entered) is distinguishable from an explicit "has"/
107
+ * "doesn't have" - matching `SearchTypeObject.getQuery`'s
108
+ * `undefined`-means-"no constraint" convention. Shares `readTriStateSelect`
109
+ * with `buildTriStateSelect` below - same three-value shape, just different
110
+ * option labels.
111
+ * @param {{name: string, propertyName: string}} cfg
112
+ * @returns {JamilihArray}
113
+ */
114
+ export function buildHasPropertyToggle({ name, propertyName }: {
115
+ name: string;
116
+ propertyName: string;
117
+ }): JamilihArray;
118
+ /**
119
+ * A generic "(any)"/true/false `<select>`, shared by every leaf whose only
120
+ * constraint is a plain boolean choice - `booleanSearchType.js`'s "true or
121
+ * false" (README) and `numberSearchType.js`'s "Is/Is Not Integer" both read
122
+ * back through this same three-way convention rather than each rolling
123
+ * their own.
124
+ *
125
+ * `key` distinguishes multiple tri-states *within one widget* (e.g.
126
+ * `dommatrixSearchType.js`'s "Is/Is not Readonly" and "Is/Is not 3d" side
127
+ * by side); see `buildRangeInputsPair`'s doc for why. Leave it at the
128
+ * default `''` for the common case of a widget with only one tri-state.
129
+ * @param {{name: string, key?: string, trueLabel: string, falseLabel: string}} cfg
130
+ * @returns {JamilihArray}
131
+ */
132
+ export function buildTriStateSelect({ name, key, trueLabel, falseLabel }: {
133
+ name: string;
134
+ key?: string;
135
+ trueLabel: string;
136
+ falseLabel: string;
137
+ }): JamilihArray;
138
+ /**
139
+ * Reads back a `buildTriStateSelect`/`buildHasPropertyToggle` - pass the
140
+ * same `key` it was built with. `''` (any) maps to `undefined`.
141
+ * @param {HTMLElement} el
142
+ * @param {string} [key]
143
+ * @returns {boolean|undefined}
144
+ */
145
+ export function readTriStateSelect(el: HTMLElement, key?: string): boolean | undefined;
146
+ /**
147
+ * A single checkbox - the only search affordance the README grants
148
+ * `undefined`/`void`/`null`/`NaN` ("Require present"; they have "no
149
+ * variants to allow for distinct search", since existence only becomes a
150
+ * meaningful question once the path is optional or nested in a union), and
151
+ * also used by `recordSearchType.js` for its "require same entry" toggle.
152
+ * @param {{name: string, label: string}} cfg
153
+ * @returns {JamilihArray}
154
+ */
155
+ export function buildCheckbox({ name, label }: {
156
+ name: string;
157
+ label: string;
158
+ }): JamilihArray;
159
+ /**
160
+ * Reads back a `buildCheckbox`.
161
+ * @param {HTMLElement} el
162
+ * @returns {boolean}
163
+ */
164
+ export function readCheckbox(el: HTMLElement): boolean;
165
+ /**
166
+ * The mode selector for the README's "string, StringObject, Blob, File,
167
+ * regexp (source), symbol (description): OR literal or regex search/Does
168
+ * Not contain search" - one shared control (and reader, below) that
169
+ * `stringSearchType.js`, `symbolSearchType.js`, and `regexpSearchType.js`
170
+ * (for its source) each build their own custom element around, since the
171
+ * query semantics are identical and only the label/target facet differs.
172
+ *
173
+ * `key` distinguishes multiple literal/regex controls *within one widget*
174
+ * (e.g. `errorSearchType.js`'s `message`/`name`/`fileName`/`stack`); see
175
+ * `buildRangeInputsPair`'s doc for why. Leave it at the default `''` for
176
+ * the common case of a widget with only one such control.
177
+ * @param {{name: string, key?: string}} cfg
178
+ * @returns {JamilihArray}
179
+ */
180
+ export function buildLiteralRegexControls({ name, key }: {
181
+ name: string;
182
+ key?: string;
183
+ }): JamilihArray;
184
+ /**
185
+ * Reads back `buildLiteralRegexControls` into the corresponding
186
+ * `literalSet`/`regex`/`notContains` leaf - pass the same `key` it was
187
+ * built with.
188
+ * @param {HTMLElement} el
189
+ * @param {string} path
190
+ * @param {string} [key]
191
+ * @returns {import('./queryTree.js').QueryLiteralSetLeaf|
192
+ * import('./queryTree.js').QueryRegexLeaf|
193
+ * import('./queryTree.js').QueryNotContainsLeaf|undefined}
194
+ */
195
+ export function readLiteralRegexQuery(el: HTMLElement, path: string, key?: string): import("./queryTree.js").QueryLiteralSetLeaf | import("./queryTree.js").QueryRegexLeaf | import("./queryTree.js").QueryNotContainsLeaf | undefined;
196
+ /**
197
+ * Has length/size of &lt;number&gt; (README; array/set/tuple-with-rest/
198
+ * filelist), + "Is/Is not sparse" for arrays only. Returns `[]` (no
199
+ * control) when the schema pins an exact length/size, since searching on a
200
+ * constant is uninteresting - the schema's `min`/`max` otherwise become the
201
+ * input's HTML `min`/`max` attributes.
202
+ * @param {{
203
+ * name: string,
204
+ * min?: number,
205
+ * max?: number,
206
+ * includeSparse?: boolean
207
+ * }} cfg
208
+ * @returns {JamilihArray[]}
209
+ */
210
+ export function buildLengthSizeControls({ name, min, max, includeSparse }: {
211
+ name: string;
212
+ min?: number;
213
+ max?: number;
214
+ includeSparse?: boolean;
215
+ }): JamilihArray[];
216
+ /**
217
+ * Reads back `buildLengthSizeControls` into one `lengthSize` leaf, or
218
+ * `undefined` if neither the size nor the sparse control was set.
219
+ * @param {HTMLElement} el
220
+ * @param {string} path
221
+ * @returns {import('./queryTree.js').QueryLengthSizeLeaf|undefined}
222
+ */
223
+ export function readLengthSizeQuery(el: HTMLElement, path: string): import("./queryTree.js").QueryLengthSizeLeaf | undefined;
224
+ export type JamilihArray = import("../types.js").JamilihArray;
225
+ //# sourceMappingURL=searchUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"searchUtils.d.ts","sourceRoot":"","sources":["../../src/search/searchUtils.js"],"names":[],"mappings":"AAGA;;GAEG;AAEH;;;;;;;;;GASG;AACH,6CAJW,OAAO,sBAAsB,EAAE,WAAW,GAAC,SAAS,QACpD,MAAM,GACJ,MAAM,CASlB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qCAJW,WAAW,YACX,MAAM,GACJ,WAAW,GAAC,SAAS,CAMjC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,0EAVW;IACN,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,GAAC,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAC,MAAM,CAAA;CACrB,GACS,YAAY,EAAE,CAe1B;AAED;;;;;;GAMG;AACH,wCAJW,WAAW,QACX,MAAM,GACJ;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,CAUtC;AAED;;;;;;;;;GASG;AACH,oDANW;IACN,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,MAAM,GAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAA;CACnD,GACS,YAAY,CAOxB;AAED;;;;GAIG;AACH,oCAHW,WAAW,GACT,MAAM,EAAE,CAOpB;AAED;;;;;;;;;;;;;GAaG;AACH,+DAHW;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,GAClC,YAAY,CAWxB;AAED;;;;;;;;;;;;;GAaG;AACH,0EAHW;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,GACjE,YAAY,CAQxB;AAED;;;;;;GAMG;AACH,uCAJW,WAAW,QACX,MAAM,GACJ,OAAO,GAAC,SAAS,CAU7B;AAED;;;;;;;;GAQG;AACH,+CAHW;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,GAC3B,YAAY,CAOxB;AAED;;;;GAIG;AACH,iCAHW,WAAW,GACT,OAAO,CAMnB;AAED;;;;;;;;;;;;;;GAcG;AACH,yDAHW;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAC,GAC1B,YAAY,CAiBxB;AAED;;;;;;;;;;GAUG;AACH,0CAPW,WAAW,QACX,MAAM,QACN,MAAM,GACJ,OAAO,gBAAgB,EAAE,mBAAmB,GACxD,OAAW,gBAAgB,EAAE,cAAc,GAC3C,OAAW,gBAAgB,EAAE,oBAAoB,GAAC,SAAS,CAuB3D;AAED;;;;;;;;;;;;;GAaG;AACH,2EARW;IACN,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,GACS,YAAY,EAAE,CAwB1B;AAED;;;;;;GAMG;AACH,wCAJW,WAAW,QACX,MAAM,GACJ,OAAO,gBAAgB,EAAE,mBAAmB,GAAC,SAAS,CAgBlE;2BA9VY,OAAO,aAAa,EAAE,YAAY"}
@@ -0,0 +1,16 @@
1
+ export default blobHTMLSearchType;
2
+ export type SearchTypeObject = import("../searchDispatch.js").SearchTypeObject;
3
+ /**
4
+ * @typedef {import('../searchDispatch.js').SearchTypeObject} SearchTypeObject
5
+ */
6
+ /**
7
+ * Blob HTML: XPath, CSS selectors, full text search, regex search of raw
8
+ * HTML (README) - a mode `<select>` plus one text `<input>`, the same
9
+ * "pick a mode, give it one value" shape as `buildLiteralRegexControls`
10
+ * (`searchUtils.js`), but not built through it: the four modes and the
11
+ * `blobHTML` leaf kind they produce are specific to this one type, with no
12
+ * second caller to share the helper with.
13
+ * @type {SearchTypeObject}
14
+ */
15
+ declare const blobHTMLSearchType: SearchTypeObject;
16
+ //# sourceMappingURL=blobHTMLSearchType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blobHTMLSearchType.d.ts","sourceRoot":"","sources":["../../../src/search/subTypes/blobHTMLSearchType.js"],"names":[],"mappings":";+BAKa,OAAO,sBAAsB,EAAE,gBAAgB;AAD5D;;GAEG;AAEH;;;;;;;;GAQG;AACH,kCAFU,gBAAgB,CA+CxB"}
@@ -0,0 +1,18 @@
1
+ export default recordSearchType;
2
+ export type SearchTypeObject = import("../searchDispatch.js").SearchTypeObject;
3
+ /**
4
+ * @typedef {import('../searchDispatch.js').SearchTypeObject} SearchTypeObject
5
+ */
6
+ /**
7
+ * Record search is "key-schema search AND/OR value-schema search,"
8
+ * structurally unlike object's additive "has property" (search plan §1) -
9
+ * recurses into both the `key` and `value` schemas' own search widgets
10
+ * (`*key`/`*value` path segments, `queryTree.js`), and lets the user say
11
+ * whether a match must come from the *same* entry ("has key 2-4 and value
12
+ * 7-9", README) via the "joint" toggle on the resulting `mapRecordJoint`
13
+ * leaf - also used for `looseRecord`, aliased to this same module in
14
+ * `searchDispatch.js` since the search semantics are identical.
15
+ * @type {SearchTypeObject}
16
+ */
17
+ declare const recordSearchType: SearchTypeObject;
18
+ //# sourceMappingURL=recordSearchType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordSearchType.d.ts","sourceRoot":"","sources":["../../../src/search/subTypes/recordSearchType.js"],"names":[],"mappings":";+BAMa,OAAO,sBAAsB,EAAE,gBAAgB;AAD5D;;GAEG;AAEH;;;;;;;;;;GAUG;AACH,gCAFU,gBAAgB,CA+DxB"}
@@ -0,0 +1,21 @@
1
+ export default tupleSearchType;
2
+ export type SearchTypeObject = import("../searchDispatch.js").SearchTypeObject;
3
+ /**
4
+ * @typedef {import('../searchDispatch.js').SearchTypeObject} SearchTypeObject
5
+ */
6
+ /**
7
+ * Each fixed position gets its own control from `.items[i]`, not one
8
+ * control repeated per element (search plan §1 - unlike the value-editing
9
+ * side, this gets a dedicated module rather than delegating to
10
+ * `arraySearchType.js`, since positions aren't interchangeable). A tuple
11
+ * with no `rest` has an inherently fixed length (`items.length`), so - as
12
+ * with a fixed-length array - no length control is shown for it; "with rest
13
+ * has size search as with arrays" (README) applies once `rest` is present:
14
+ * total length becomes a variable-length `lengthSize` control (`min:
15
+ * items.length`, no sparse toggle - not applicable to a tuple), and the
16
+ * `rest` element itself recurses into its own search widget under the same
17
+ * `*` path-segment convention `arraySearchType.js` uses for its element.
18
+ * @type {SearchTypeObject}
19
+ */
20
+ declare const tupleSearchType: SearchTypeObject;
21
+ //# sourceMappingURL=tupleSearchType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tupleSearchType.d.ts","sourceRoot":"","sources":["../../../src/search/subTypes/tupleSearchType.js"],"names":[],"mappings":";+BAMa,OAAO,sBAAsB,EAAE,gBAAgB;AAD5D;;GAEG;AAEH;;;;;;;;;;;;;GAaG;AACH,+BAFU,gBAAgB,CAuFxB"}
@@ -0,0 +1,14 @@
1
+ export default SpecialRealNumberSearchType;
2
+ export type SearchTypeObject = import("../searchDispatch.js").SearchTypeObject;
3
+ /**
4
+ * @typedef {import('../searchDispatch.js').SearchTypeObject} SearchTypeObject
5
+ */
6
+ /**
7
+ * Special number: multiple select of "Infinity", "-Infinity" (README;
8
+ * `NaN` is covered separately by `nanSearchType.js`'s presence-only
9
+ * control, since it's its own zodex schema type - `SpecialRealNumberType.js`
10
+ * itself covers exactly `Infinity`/`-Infinity`/`-0`, not `NaN`).
11
+ * @type {SearchTypeObject}
12
+ */
13
+ declare const SpecialRealNumberSearchType: SearchTypeObject;
14
+ //# sourceMappingURL=SpecialRealNumberSearchType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpecialRealNumberSearchType.d.ts","sourceRoot":"","sources":["../../../src/search/superTypes/SpecialRealNumberSearchType.js"],"names":[],"mappings":";+BAKa,OAAO,sBAAsB,EAAE,gBAAgB;AAD5D;;GAEG;AAEH;;;;;;GAMG;AACH,2CAFU,gBAAgB,CA0BxB"}
@@ -0,0 +1,17 @@
1
+ export default buffersourceSearchType;
2
+ export type SearchTypeObject = import("../searchDispatch.js").SearchTypeObject;
3
+ /**
4
+ * @typedef {import('../searchDispatch.js').SearchTypeObject} SearchTypeObject
5
+ */
6
+ /**
7
+ * BufferSource: OR Range/Is Not Range (README) - a byte-length range, per
8
+ * the build order's own note that `buffersource` (like `function`) is
9
+ * "fuzzy" enough in the README to ship as a minimal, honest stub rather
10
+ * than over-build past what the spec defines. `buffersource` is one of
11
+ * jsoe's "checked" types (`{type: 'any', checks: [{name: 'buffersource'}]}`)
12
+ * with no schema-level byte-length bounds to read `min`/`max` HTML
13
+ * attributes from, unlike `array`'s `minLength`/`maxLength`.
14
+ * @type {SearchTypeObject}
15
+ */
16
+ declare const buffersourceSearchType: SearchTypeObject;
17
+ //# sourceMappingURL=buffersourceSearchType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffersourceSearchType.d.ts","sourceRoot":"","sources":["../../../src/search/superTypes/buffersourceSearchType.js"],"names":[],"mappings":";+BAKa,OAAO,sBAAsB,EAAE,gBAAgB;AAD5D;;GAEG;AAEH;;;;;;;;;GASG;AACH,sCAFU,gBAAgB,CA4BxB"}
@@ -0,0 +1,11 @@
1
+ export default dommatrixSearchType;
2
+ /**
3
+ * DOMMatrix: numeric search ranges for children; "Is/Is not Readonly";
4
+ * "Is/Is not 3d" (README) - see `searchElementUtils.js`'s
5
+ * `makeDomShapeSearchType` for the shared implementation. `dimensionKeys`
6
+ * covers both the 2D (`a`-`f`) and 3D (`m11`-`m44`) property sets at once;
7
+ * see that factory's doc for why.
8
+ * @type {import('../searchDispatch.js').SearchTypeObject}
9
+ */
10
+ declare const dommatrixSearchType: import("../searchDispatch.js").SearchTypeObject;
11
+ //# sourceMappingURL=dommatrixSearchType.d.ts.map