@es-joy/jsoe 0.30.0 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGES.md +5 -0
- package/README.md +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/search/queryTree.d.ts +3 -0
- package/dist/search/queryTree.d.ts.map +1 -1
- package/dist/search/queryTreeBuilders.d.ts +2 -1
- package/dist/search/queryTreeBuilders.d.ts.map +1 -1
- package/dist/search/searchUtils.d.ts +17 -10
- package/dist/search/searchUtils.d.ts.map +1 -1
- package/dist/search/subTypes/blobHTMLSearchType.d.ts +11 -4
- package/dist/search/subTypes/blobHTMLSearchType.d.ts.map +1 -1
- package/package.json +3 -3
- package/pnpm-workspace.yaml +26 -26
- package/src/search/queryTree.js +4 -1
- package/src/search/queryTreeBuilders.js +3 -2
- package/src/search/searchUtils.js +72 -12
- package/src/search/subTypes/blobHTMLSearchType.js +143 -7
- package/vendor/zod/classic/schemas.d.ts +3 -1
- package/vendor/zod/core/versions.js +1 -1
|
@@ -127,12 +127,15 @@ export type QueryTypeOfLeaf = {
|
|
|
127
127
|
};
|
|
128
128
|
/**
|
|
129
129
|
* XPath/CSS-selector/full-text/raw-HTML-regex; no Mongo equivalent.
|
|
130
|
+
* `$options`, mirroring `QueryRegexLeaf`'s field of the same name, is only
|
|
131
|
+
* ever populated for `mode: 'rawHTMLRegex'`.
|
|
130
132
|
*/
|
|
131
133
|
export type QueryBlobHTMLLeaf = {
|
|
132
134
|
kind: "blobHTML";
|
|
133
135
|
path: string;
|
|
134
136
|
mode: "xpath" | "cssSelector" | "fullText" | "rawHTMLRegex";
|
|
135
137
|
value: string;
|
|
138
|
+
$options?: string;
|
|
136
139
|
};
|
|
137
140
|
/**
|
|
138
141
|
* Per-dimension ranges for DOMRect/Point/Matrix, each dimension itself a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryTree.d.ts","sourceRoot":"","sources":["../../src/search/queryTree.js"],"names":[],"mappings":"uBA2Ca;IAAC,IAAI,EAAE,SAAS,EAAE,CAAA;CAAC;sBAInB;IAAC,GAAG,EAAE,SAAS,EAAE,CAAA;CAAC;;;;mCAKlB;IAAC,IAAI,EAAE,aAAa,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC;;;;;;kCAOrD;IACR,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,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;;;;;;;;6BASS;IACR,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,GAAC,cAAc,GAAC,QAAQ,GAAC,MAAM,GAAC,cAAc,CAAC;IAClE,GAAG,CAAC,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,GAAC,MAAM,GAAC,MAAM,CAAA;CAC5B;2BAIS;IAAC,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAC;;;;oCAK/B;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAC;;;;;;;sCAQxD;IAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC;;;;;kCAMxD;IACR,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;CACjB;;;;;6BAMS;IACR,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;;;;;mCAMS;IACR,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAA;CACd;;;;;mCAMS;IACR,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAA;CACjB;;;;oCAKS;IACR,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,EAAE,CAAA;CAClB;;;;;;8BAOS;IACR,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B
|
|
1
|
+
{"version":3,"file":"queryTree.d.ts","sourceRoot":"","sources":["../../src/search/queryTree.js"],"names":[],"mappings":"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"}
|
|
@@ -130,9 +130,10 @@ export function makeTypeOfLeaf(path: string, searchType: string, discriminatorVa
|
|
|
130
130
|
* @param {string} path
|
|
131
131
|
* @param {import('./queryTree.js').QueryBlobHTMLLeaf['mode']} mode
|
|
132
132
|
* @param {string} value
|
|
133
|
+
* @param {string} [$options]
|
|
133
134
|
* @returns {import('./queryTree.js').QueryBlobHTMLLeaf}
|
|
134
135
|
*/
|
|
135
|
-
export function makeBlobHTMLLeaf(path: string, mode: import("./queryTree.js").QueryBlobHTMLLeaf["mode"], value: string): import("./queryTree.js").QueryBlobHTMLLeaf;
|
|
136
|
+
export function makeBlobHTMLLeaf(path: string, mode: import("./queryTree.js").QueryBlobHTMLLeaf["mode"], value: string, $options?: string): import("./queryTree.js").QueryBlobHTMLLeaf;
|
|
136
137
|
/**
|
|
137
138
|
* @param {string} path
|
|
138
139
|
* @param {{[dimension: string]: import('./queryTree.js').QueryRangeLeaf}} dimensions
|
|
@@ -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;;;;;;;;;;GAUG;AACH,kCAHW,CAAC,OAAO,gBAAgB,EAAE,SAAS,GAAC,SAAS,CAAC,EAAE,GAC9C,OAAO,gBAAgB,EAAE,SAAS,GAAC,SAAS,CAaxD;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,6CAJW,MAAM,WACN,OAAO,GACL,OAAO,gBAAgB,EAAE,uBAAuB,CAI5D;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
|
|
1
|
+
{"version":3,"file":"queryTreeBuilders.d.ts","sourceRoot":"","sources":["../../src/search/queryTreeBuilders.js"],"names":[],"mappings":"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"}
|
|
@@ -323,16 +323,23 @@ export function readCheckbox(el: HTMLElement): boolean;
|
|
|
323
323
|
* "Matches regex" is the chosen mode.
|
|
324
324
|
*
|
|
325
325
|
* `flagOptions`, when given, adds a Flags multi-select (options passed in
|
|
326
|
-
* by the caller -
|
|
327
|
-
*
|
|
328
|
-
*
|
|
329
|
-
*
|
|
330
|
-
*
|
|
331
|
-
*
|
|
332
|
-
*
|
|
333
|
-
* (
|
|
334
|
-
*
|
|
335
|
-
*
|
|
326
|
+
* by the caller - most callers pass `regexpType.js`'s own `allowedFlags`,
|
|
327
|
+
* the same list `regexpSearchType.js` uses for the actual regexp's own
|
|
328
|
+
* flags - kept out of this generic module to avoid it depending on a
|
|
329
|
+
* specific fundamental type), shown only while "Matches regex" is the
|
|
330
|
+
* chosen mode, the same `$options` a Mongo-flavored `$regex` accepts
|
|
331
|
+
* alongside it - a plain literal/substring match has no regex to apply
|
|
332
|
+
* flags to, so it stays hidden otherwise. `regexpSearchType.js`'s own call
|
|
333
|
+
* (matching against the regexp's `.source` text, not to be confused with
|
|
334
|
+
* its separate, bespoke Flags control for the regexp's *actual* flags)
|
|
335
|
+
* leaves this unset, since a flag there would have no real regex of its own
|
|
336
|
+
* to apply to.
|
|
337
|
+
*
|
|
338
|
+
* While "Matches regex" is chosen, the Value input is also live syntax-
|
|
339
|
+
* checked (`syncLiteralRegexValidity`, below) against
|
|
340
|
+
* `new RegExp(value, flags)` - an unparsable pattern (or one only invalid
|
|
341
|
+
* for the currently-selected flags, e.g. `u`/`v`'s stricter escape rules)
|
|
342
|
+
* sets a custom validity message rather than silently accepting it.
|
|
336
343
|
* @param {{
|
|
337
344
|
* name: string, key?: string, onModeChange?: (this: HTMLElement) => void,
|
|
338
345
|
* flagOptions?: string[]
|
|
@@ -1 +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,OAAO,YACP,MAAM,GACJ,WAAW,GAAC,SAAS,CAMjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,oDAHW,OAAO,GACL,OAAO,CAcnB;AAED;;;;;;;;;;;GAWG;AACH,4CAHW,OAAO,GACL,IAAI,CAOhB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wCAJW,OAAO,QACP,MAAM,GACJ,IAAI,CAyBhB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;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,CAmC1B;AAED;;;;;;GAMG;AACH,wCAJW,WAAW,QACX,MAAM,GACJ;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAC,CAUtC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,8DAPW;IACN,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,MAAM,GAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,GACS,YAAY,CASxB;AAED;;;;GAIG;AACH,oCAHW,OAAO,GACL,MAAM,EAAE,CAOpB;AAED;;;;;;;;;;;;;GAaG;AACH,+DAHW;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,GAClC,YAAY,CAWxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,8FANW;IACN,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAClE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAC3D,GACS,YAAY,CAaxB;AAED;;;;;;GAMG;AACH,uCAJW,OAAO,QACP,MAAM,GACJ,OAAO,GAAC,SAAS,CAU7B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,kEAHW;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAC,GAClE,YAAY,CAOxB;AAED;;;;GAIG;AACH,iCAHW,WAAW,GACT,OAAO,CAMnB;AAED
|
|
1
|
+
{"version":3,"file":"searchUtils.d.ts","sourceRoot":"","sources":["../../src/search/searchUtils.js"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
export default blobHTMLSearchType;
|
|
2
2
|
export type SearchTypeObject = import("../searchDispatch.js").SearchTypeObject;
|
|
3
|
-
/**
|
|
4
|
-
* @typedef {import('../searchDispatch.js').SearchTypeObject} SearchTypeObject
|
|
5
|
-
*/
|
|
6
3
|
/**
|
|
7
4
|
* Blob HTML: XPath, CSS selectors, full text search, regex search of raw
|
|
8
5
|
* HTML (README) - a mode `<select>` plus one value control, the same
|
|
@@ -18,7 +15,8 @@ export type SearchTypeObject = import("../searchDispatch.js").SearchTypeObject;
|
|
|
18
15
|
* of the pair is ever `required` (toggled alongside `hidden` by the mode
|
|
19
16
|
* `change` handler): a `required` field that's merely hidden, rather than
|
|
20
17
|
* also un-required, still blocks the form's validity even though the user
|
|
21
|
-
* has no way to see or fill it.
|
|
18
|
+
* has no way to see or fill it. "CSS selector" is listed ahead of "XPath"
|
|
19
|
+
* (and is the default mode) as the option most jsoe users will recognize.
|
|
22
20
|
*
|
|
23
21
|
* The `change` handler also checks `isExemptedByAncestorHasProperty` before
|
|
24
22
|
* (re-)asserting `required` on the now-visible control: nested as an
|
|
@@ -30,6 +28,15 @@ export type SearchTypeObject = import("../searchDispatch.js").SearchTypeObject;
|
|
|
30
28
|
* check, that synthetic event would immediately reassert `required` on
|
|
31
29
|
* whichever control the current mode makes visible, undoing the exemption
|
|
32
30
|
* `setDescendantsRequired` had just granted.
|
|
31
|
+
*
|
|
32
|
+
* "Regex search of raw HTML" gets its own Flags multi-select (the same
|
|
33
|
+
* `regexpType.js` `allowedFlags` list `stringSearchType.js`'s literal/regex
|
|
34
|
+
* control passes as `buildLiteralRegexControls`'s `flagOptions`), shown only
|
|
35
|
+
* while that mode is chosen, folded into the `blobHTML` leaf's own
|
|
36
|
+
* `$options` (mirroring `QueryRegexLeaf`'s field of the same name) - and,
|
|
37
|
+
* via `syncBlobHTMLValueValidity`, included when syntax-checking the Value
|
|
38
|
+
* itself, since the chosen flags can affect whether a given pattern is
|
|
39
|
+
* actually valid.
|
|
33
40
|
* @type {SearchTypeObject}
|
|
34
41
|
*/
|
|
35
42
|
declare const blobHTMLSearchType: SearchTypeObject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobHTMLSearchType.d.ts","sourceRoot":"","sources":["../../../src/search/subTypes/blobHTMLSearchType.js"],"names":[],"mappings":";+
|
|
1
|
+
{"version":3,"file":"blobHTMLSearchType.d.ts","sourceRoot":"","sources":["../../../src/search/subTypes/blobHTMLSearchType.js"],"names":[],"mappings":";+BAQa,OAAO,sBAAsB,EAAE,gBAAgB;AA8F5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,kCAFU,gBAAgB,CAoHxB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@es-joy/jsoe",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.31.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"style-mod": "^4.1.3",
|
|
54
54
|
"typeson-registry": "14.6.1",
|
|
55
55
|
"w3c-keyname": "^2.2.8",
|
|
56
|
-
"zod": "^4.6.
|
|
56
|
+
"zod": "^4.6.5",
|
|
57
57
|
"zodexy": "^0.32.0"
|
|
58
58
|
},
|
|
59
59
|
"devDependencies": {
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"nyc": "^18.0.0",
|
|
86
86
|
"open-cli": "^9.0.0",
|
|
87
87
|
"rimraf": "^6.1.3",
|
|
88
|
-
"rollup": "4.63.
|
|
88
|
+
"rollup": "4.63.3",
|
|
89
89
|
"rollup-plugin-istanbul": "^5.0.0",
|
|
90
90
|
"rollup-plugin-node-builtins": "^2.1.2",
|
|
91
91
|
"typescript": "^6.0.3",
|
package/pnpm-workspace.yaml
CHANGED
|
@@ -16,33 +16,33 @@ minimumReleaseAgeExclude:
|
|
|
16
16
|
- zodexy@0.21.1 || 0.21.2 || 0.22.0 || 0.23.0 || 0.24.0 || 0.24.1 || 0.25.0 || 0.26.0 || 0.26.1 || 0.27.0 || 0.30.0 || 0.30.1 || 0.31.0 || 0.31.1 || 0.32.0
|
|
17
17
|
- typeson-registry@13.0.1 || 13.1.0 || 14.4.0 || 14.5.0
|
|
18
18
|
- typeson@10.1.1 || 10.2.0 || 10.3.0
|
|
19
|
-
- '@rollup/rollup-android-arm-eabi@4.63.1 || 4.63.2'
|
|
20
|
-
- '@rollup/rollup-android-arm64@4.63.1 || 4.63.2'
|
|
21
|
-
- '@rollup/rollup-darwin-arm64@4.63.1 || 4.63.2'
|
|
22
|
-
- '@rollup/rollup-darwin-x64@4.63.1 || 4.63.2'
|
|
23
|
-
- '@rollup/rollup-freebsd-arm64@4.63.1 || 4.63.2'
|
|
24
|
-
- '@rollup/rollup-freebsd-x64@4.63.1 || 4.63.2'
|
|
25
|
-
- '@rollup/rollup-linux-arm-gnueabihf@4.63.1 || 4.63.2'
|
|
26
|
-
- '@rollup/rollup-linux-arm-musleabihf@4.63.1 || 4.63.2'
|
|
27
|
-
- '@rollup/rollup-linux-arm64-gnu@4.63.1 || 4.63.2'
|
|
28
|
-
- '@rollup/rollup-linux-arm64-musl@4.63.1 || 4.63.2'
|
|
29
|
-
- '@rollup/rollup-linux-loong64-gnu@4.63.1 || 4.63.2'
|
|
30
|
-
- '@rollup/rollup-linux-loong64-musl@4.63.1 || 4.63.2'
|
|
31
|
-
- '@rollup/rollup-linux-ppc64-gnu@4.63.1 || 4.63.2'
|
|
32
|
-
- '@rollup/rollup-linux-ppc64-musl@4.63.1 || 4.63.2'
|
|
33
|
-
- '@rollup/rollup-linux-riscv64-gnu@4.63.1 || 4.63.2'
|
|
34
|
-
- '@rollup/rollup-linux-riscv64-musl@4.63.1 || 4.63.2'
|
|
35
|
-
- '@rollup/rollup-linux-s390x-gnu@4.63.1 || 4.63.2'
|
|
36
|
-
- '@rollup/rollup-linux-x64-gnu@4.63.1 || 4.63.2'
|
|
37
|
-
- '@rollup/rollup-linux-x64-musl@4.63.1 || 4.63.2'
|
|
38
|
-
- '@rollup/rollup-openbsd-x64@4.63.1 || 4.63.2'
|
|
39
|
-
- '@rollup/rollup-openharmony-arm64@4.63.1 || 4.63.2'
|
|
40
|
-
- '@rollup/rollup-win32-arm64-msvc@4.63.1 || 4.63.2'
|
|
41
|
-
- '@rollup/rollup-win32-ia32-msvc@4.63.1 || 4.63.2'
|
|
42
|
-
- '@rollup/rollup-win32-x64-gnu@4.63.1 || 4.63.2'
|
|
43
|
-
- '@rollup/rollup-win32-x64-msvc@4.63.1 || 4.63.2'
|
|
19
|
+
- '@rollup/rollup-android-arm-eabi@4.63.1 || 4.63.2 || 4.63.3'
|
|
20
|
+
- '@rollup/rollup-android-arm64@4.63.1 || 4.63.2 || 4.63.3'
|
|
21
|
+
- '@rollup/rollup-darwin-arm64@4.63.1 || 4.63.2 || 4.63.3'
|
|
22
|
+
- '@rollup/rollup-darwin-x64@4.63.1 || 4.63.2 || 4.63.3'
|
|
23
|
+
- '@rollup/rollup-freebsd-arm64@4.63.1 || 4.63.2 || 4.63.3'
|
|
24
|
+
- '@rollup/rollup-freebsd-x64@4.63.1 || 4.63.2 || 4.63.3'
|
|
25
|
+
- '@rollup/rollup-linux-arm-gnueabihf@4.63.1 || 4.63.2 || 4.63.3'
|
|
26
|
+
- '@rollup/rollup-linux-arm-musleabihf@4.63.1 || 4.63.2 || 4.63.3'
|
|
27
|
+
- '@rollup/rollup-linux-arm64-gnu@4.63.1 || 4.63.2 || 4.63.3'
|
|
28
|
+
- '@rollup/rollup-linux-arm64-musl@4.63.1 || 4.63.2 || 4.63.3'
|
|
29
|
+
- '@rollup/rollup-linux-loong64-gnu@4.63.1 || 4.63.2 || 4.63.3'
|
|
30
|
+
- '@rollup/rollup-linux-loong64-musl@4.63.1 || 4.63.2 || 4.63.3'
|
|
31
|
+
- '@rollup/rollup-linux-ppc64-gnu@4.63.1 || 4.63.2 || 4.63.3'
|
|
32
|
+
- '@rollup/rollup-linux-ppc64-musl@4.63.1 || 4.63.2 || 4.63.3'
|
|
33
|
+
- '@rollup/rollup-linux-riscv64-gnu@4.63.1 || 4.63.2 || 4.63.3'
|
|
34
|
+
- '@rollup/rollup-linux-riscv64-musl@4.63.1 || 4.63.2 || 4.63.3'
|
|
35
|
+
- '@rollup/rollup-linux-s390x-gnu@4.63.1 || 4.63.2 || 4.63.3'
|
|
36
|
+
- '@rollup/rollup-linux-x64-gnu@4.63.1 || 4.63.2 || 4.63.3'
|
|
37
|
+
- '@rollup/rollup-linux-x64-musl@4.63.1 || 4.63.2 || 4.63.3'
|
|
38
|
+
- '@rollup/rollup-openbsd-x64@4.63.1 || 4.63.2 || 4.63.3'
|
|
39
|
+
- '@rollup/rollup-openharmony-arm64@4.63.1 || 4.63.2 || 4.63.3'
|
|
40
|
+
- '@rollup/rollup-win32-arm64-msvc@4.63.1 || 4.63.2 || 4.63.3'
|
|
41
|
+
- '@rollup/rollup-win32-ia32-msvc@4.63.1 || 4.63.2 || 4.63.3'
|
|
42
|
+
- '@rollup/rollup-win32-x64-gnu@4.63.1 || 4.63.2 || 4.63.3'
|
|
43
|
+
- '@rollup/rollup-win32-x64-msvc@4.63.1 || 4.63.2 || 4.63.3'
|
|
44
44
|
- eslint-plugin-escompat@3.11.6 || 3.12.0
|
|
45
|
-
- rollup@4.63.1 || 4.63.2
|
|
45
|
+
- rollup@4.63.1 || 4.63.2 || 4.63.3
|
|
46
46
|
- zod@4.5.2 || 4.5.4 || 4.6.1 || 4.6.3 || 4.6.4
|
|
47
47
|
- '@typescript-eslint/eslint-plugin@8.69.0'
|
|
48
48
|
- '@typescript-eslint/parser@8.69.0'
|
package/src/search/queryTree.js
CHANGED
|
@@ -167,11 +167,14 @@
|
|
|
167
167
|
|
|
168
168
|
/**
|
|
169
169
|
* XPath/CSS-selector/full-text/raw-HTML-regex; no Mongo equivalent.
|
|
170
|
+
* `$options`, mirroring `QueryRegexLeaf`'s field of the same name, is only
|
|
171
|
+
* ever populated for `mode: 'rawHTMLRegex'`.
|
|
170
172
|
* @typedef {{
|
|
171
173
|
* kind: 'blobHTML',
|
|
172
174
|
* path: string,
|
|
173
175
|
* mode: 'xpath'|'cssSelector'|'fullText'|'rawHTMLRegex',
|
|
174
|
-
* value: string
|
|
176
|
+
* value: string,
|
|
177
|
+
* $options?: string
|
|
175
178
|
* }} QueryBlobHTMLLeaf
|
|
176
179
|
*/
|
|
177
180
|
|
|
@@ -172,10 +172,11 @@ export function makeTypeOfLeaf (path, searchType, discriminatorValue) {
|
|
|
172
172
|
* @param {string} path
|
|
173
173
|
* @param {import('./queryTree.js').QueryBlobHTMLLeaf['mode']} mode
|
|
174
174
|
* @param {string} value
|
|
175
|
+
* @param {string} [$options]
|
|
175
176
|
* @returns {import('./queryTree.js').QueryBlobHTMLLeaf}
|
|
176
177
|
*/
|
|
177
|
-
export function makeBlobHTMLLeaf (path, mode, value) {
|
|
178
|
-
return {kind: 'blobHTML', path, mode, value};
|
|
178
|
+
export function makeBlobHTMLLeaf (path, mode, value, $options) {
|
|
179
|
+
return {kind: 'blobHTML', path, mode, value, ...($options ? {$options} : {})};
|
|
179
180
|
}
|
|
180
181
|
|
|
181
182
|
/**
|
|
@@ -453,16 +453,23 @@ export function readCheckbox (el) {
|
|
|
453
453
|
* "Matches regex" is the chosen mode.
|
|
454
454
|
*
|
|
455
455
|
* `flagOptions`, when given, adds a Flags multi-select (options passed in
|
|
456
|
-
* by the caller -
|
|
457
|
-
*
|
|
458
|
-
*
|
|
459
|
-
*
|
|
460
|
-
*
|
|
461
|
-
*
|
|
462
|
-
*
|
|
463
|
-
* (
|
|
464
|
-
*
|
|
465
|
-
*
|
|
456
|
+
* by the caller - most callers pass `regexpType.js`'s own `allowedFlags`,
|
|
457
|
+
* the same list `regexpSearchType.js` uses for the actual regexp's own
|
|
458
|
+
* flags - kept out of this generic module to avoid it depending on a
|
|
459
|
+
* specific fundamental type), shown only while "Matches regex" is the
|
|
460
|
+
* chosen mode, the same `$options` a Mongo-flavored `$regex` accepts
|
|
461
|
+
* alongside it - a plain literal/substring match has no regex to apply
|
|
462
|
+
* flags to, so it stays hidden otherwise. `regexpSearchType.js`'s own call
|
|
463
|
+
* (matching against the regexp's `.source` text, not to be confused with
|
|
464
|
+
* its separate, bespoke Flags control for the regexp's *actual* flags)
|
|
465
|
+
* leaves this unset, since a flag there would have no real regex of its own
|
|
466
|
+
* to apply to.
|
|
467
|
+
*
|
|
468
|
+
* While "Matches regex" is chosen, the Value input is also live syntax-
|
|
469
|
+
* checked (`syncLiteralRegexValidity`, below) against
|
|
470
|
+
* `new RegExp(value, flags)` - an unparsable pattern (or one only invalid
|
|
471
|
+
* for the currently-selected flags, e.g. `u`/`v`'s stricter escape rules)
|
|
472
|
+
* sets a custom validity message rather than silently accepting it.
|
|
466
473
|
* @param {{
|
|
467
474
|
* name: string, key?: string, onModeChange?: (this: HTMLElement) => void,
|
|
468
475
|
* flagOptions?: string[]
|
|
@@ -470,6 +477,46 @@ export function readCheckbox (el) {
|
|
|
470
477
|
* @returns {JamilihArray}
|
|
471
478
|
*/
|
|
472
479
|
export function buildLiteralRegexControls ({name, key = '', onModeChange, flagOptions}) {
|
|
480
|
+
/**
|
|
481
|
+
* Live syntax-checks the Value input against `new RegExp(value, flags)`
|
|
482
|
+
* whenever the current Mode is "Matches regex" - a literal/does-not-
|
|
483
|
+
* contain Value is a plain string with no format to violate, so this only
|
|
484
|
+
* has anything to say once "regex" is chosen, and clears back to valid
|
|
485
|
+
* the moment it isn't. Flags are folded in (read fresh off the Flags
|
|
486
|
+
* multi-select, when this call has one) because they can themselves flip
|
|
487
|
+
* a pattern between valid and invalid - the `u`/`v` flags' stricter escape
|
|
488
|
+
* rules being the main example - so a Flags `change` needs to re-run this
|
|
489
|
+
* exactly like a Value `input` or a Mode `change` does.
|
|
490
|
+
* @param {HTMLElement} el - any one of the Mode/Value/Flags controls
|
|
491
|
+
* @returns {void}
|
|
492
|
+
*/
|
|
493
|
+
function syncLiteralRegexValidity (el) {
|
|
494
|
+
const root = el.closest('[data-search-path]');
|
|
495
|
+
const modeEl = /** @type {HTMLSelectElement|undefined} */ (
|
|
496
|
+
root ? findOwnControl(root, `select.jsoeSearchMode--${key}`) : undefined
|
|
497
|
+
);
|
|
498
|
+
const valueEl = /** @type {HTMLInputElement|undefined} */ (
|
|
499
|
+
root ? findOwnControl(root, `input.jsoeSearchValue--${key}`) : undefined
|
|
500
|
+
);
|
|
501
|
+
if (!modeEl || !valueEl) {
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
if (modeEl.value !== 'regex' || !valueEl.value) {
|
|
505
|
+
valueEl.setCustomValidity('');
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
const flagsEl = /** @type {HTMLSelectElement|undefined} */ (
|
|
509
|
+
root ? findOwnControl(root, `select.jsoeSearchRegexFlags--${key}`) : undefined
|
|
510
|
+
);
|
|
511
|
+
const flags = [...(flagsEl?.selectedOptions ?? [])].map((opt) => opt.value).join('');
|
|
512
|
+
try {
|
|
513
|
+
// eslint-disable-next-line no-new -- Testing
|
|
514
|
+
new RegExp(valueEl.value, flags);
|
|
515
|
+
valueEl.setCustomValidity('');
|
|
516
|
+
} catch {
|
|
517
|
+
valueEl.setCustomValidity('Enter a valid regular expression.');
|
|
518
|
+
}
|
|
519
|
+
}
|
|
473
520
|
/**
|
|
474
521
|
* @this {HTMLElement}
|
|
475
522
|
* @returns {void}
|
|
@@ -482,6 +529,7 @@ export function buildLiteralRegexControls ({name, key = '', onModeChange, flagOp
|
|
|
482
529
|
/** @type {HTMLElement} */ (flagsLabel).hidden =
|
|
483
530
|
/** @type {HTMLSelectElement} */ (this).value !== 'regex';
|
|
484
531
|
}
|
|
532
|
+
syncLiteralRegexValidity(this);
|
|
485
533
|
onModeChange?.call(this);
|
|
486
534
|
}
|
|
487
535
|
/** @type {JamilihArray[]} */
|
|
@@ -490,7 +538,13 @@ export function buildLiteralRegexControls ({name, key = '', onModeChange, flagOp
|
|
|
490
538
|
flagsChildren.push(['label', {class: `jsoeSearchRegexFlagsLabel--${key}`, hidden: true}, [
|
|
491
539
|
'Flags: ',
|
|
492
540
|
['select', {
|
|
493
|
-
name: `${name}-flags`, multiple: true, class: `jsoeSearchRegexFlags--${key}
|
|
541
|
+
name: `${name}-flags`, multiple: true, class: `jsoeSearchRegexFlags--${key}`,
|
|
542
|
+
$on: {
|
|
543
|
+
/** @this {HTMLElement} */
|
|
544
|
+
change () {
|
|
545
|
+
syncLiteralRegexValidity(this);
|
|
546
|
+
}
|
|
547
|
+
}
|
|
494
548
|
}, flagOptions.map((flag) => ['option', {value: flag}, [flag]])]
|
|
495
549
|
]]);
|
|
496
550
|
}
|
|
@@ -510,7 +564,13 @@ export function buildLiteralRegexControls ({name, key = '', onModeChange, flagOp
|
|
|
510
564
|
'Value: ',
|
|
511
565
|
['input', {
|
|
512
566
|
type: 'text', name: `${name}-value`, class: `jsoeSearchValue--${key}`,
|
|
513
|
-
required: true
|
|
567
|
+
required: true,
|
|
568
|
+
$on: {
|
|
569
|
+
/** @this {HTMLElement} */
|
|
570
|
+
input () {
|
|
571
|
+
syncLiteralRegexValidity(this);
|
|
572
|
+
}
|
|
573
|
+
}
|
|
514
574
|
}]
|
|
515
575
|
]],
|
|
516
576
|
...flagsChildren
|
|
@@ -3,11 +3,103 @@ import {
|
|
|
3
3
|
} from '../searchUtils.js';
|
|
4
4
|
import {makeBlobHTMLLeaf} from '../queryTreeBuilders.js';
|
|
5
5
|
import {getQueryViaElement} from '../searchElementUtils.js';
|
|
6
|
+
import regexpType from '../../fundamentalTypes/regexpType.js';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* @typedef {import('../searchDispatch.js').SearchTypeObject} SearchTypeObject
|
|
9
10
|
*/
|
|
10
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Live syntax-checks a blobHTML Value against its currently-chosen Mode -
|
|
14
|
+
* a CSS selector and an XPath expression are each tried against a detached,
|
|
15
|
+
* inert target (a fragment for the selector, the live `document` itself,
|
|
16
|
+
* required by `Element.prototype.evaluate`'s own contract, for the XPath -
|
|
17
|
+
* neither actually has to *match* anything, only parse without throwing),
|
|
18
|
+
* and a regex is tried via the same `new RegExp(value, flags)` constructor
|
|
19
|
+
* `readLiteralRegexQuery` relies on elsewhere - a "Full text search" value
|
|
20
|
+
* is a plain phrase with no format to violate, so it always passes.
|
|
21
|
+
* @param {string} mode
|
|
22
|
+
* @param {string} value
|
|
23
|
+
* @param {string} flags
|
|
24
|
+
* @returns {string}
|
|
25
|
+
*/
|
|
26
|
+
function computeBlobHTMLValueMessage (mode, value, flags) {
|
|
27
|
+
if (!value) {
|
|
28
|
+
return '';
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
switch (mode) {
|
|
32
|
+
case 'cssSelector':
|
|
33
|
+
document.createDocumentFragment().querySelector(value);
|
|
34
|
+
break;
|
|
35
|
+
case 'xpath':
|
|
36
|
+
document.evaluate(value, document, null, XPathResult.ANY_TYPE, null);
|
|
37
|
+
break;
|
|
38
|
+
case 'rawHTMLRegex':
|
|
39
|
+
// eslint-disable-next-line no-new -- Testing
|
|
40
|
+
new RegExp(value, flags);
|
|
41
|
+
break;
|
|
42
|
+
default:
|
|
43
|
+
break;
|
|
44
|
+
}
|
|
45
|
+
return '';
|
|
46
|
+
} catch {
|
|
47
|
+
switch (mode) {
|
|
48
|
+
case 'cssSelector':
|
|
49
|
+
return 'Enter a valid CSS selector.';
|
|
50
|
+
case 'xpath':
|
|
51
|
+
return 'Enter a valid XPath expression.';
|
|
52
|
+
case 'rawHTMLRegex':
|
|
53
|
+
return 'Enter a valid regular expression.';
|
|
54
|
+
default:
|
|
55
|
+
return '';
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Re-runs `computeBlobHTMLValueMessage` against whichever of the input/
|
|
62
|
+
* textarea pair the current Mode makes active, clearing the other one's
|
|
63
|
+
* custom validity (a hidden-but-still-`required` control would otherwise
|
|
64
|
+
* keep blocking the form, the same reasoning `buildUI`'s own doc gives for
|
|
65
|
+
* toggling `required` alongside `hidden`) - call on every `input` on either
|
|
66
|
+
* value control, `change` on the Mode `<select>`, and `change` on the Flags
|
|
67
|
+
* multi-select (changing flags can itself flip a regex between valid and
|
|
68
|
+
* invalid, e.g. the `u`/`v` flags' stricter escape rules).
|
|
69
|
+
* @param {Element|null} container
|
|
70
|
+
* @returns {void}
|
|
71
|
+
*/
|
|
72
|
+
function syncBlobHTMLValueValidity (container) {
|
|
73
|
+
if (!container) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const mode = /** @type {HTMLSelectElement|undefined} */ (
|
|
77
|
+
findOwnControl(container, 'select.jsoeSearchBlobHTMLMode')
|
|
78
|
+
)?.value ?? '';
|
|
79
|
+
const input = /** @type {HTMLInputElement|undefined} */ (
|
|
80
|
+
findOwnControl(container, 'input.jsoeSearchBlobHTMLValue')
|
|
81
|
+
);
|
|
82
|
+
const textarea = /** @type {HTMLTextAreaElement|undefined} */ (
|
|
83
|
+
findOwnControl(container, 'textarea.jsoeSearchBlobHTMLValue')
|
|
84
|
+
);
|
|
85
|
+
const flagsSelect = /** @type {HTMLSelectElement|undefined} */ (
|
|
86
|
+
findOwnControl(container, 'select.jsoeSearchBlobHTMLFlags')
|
|
87
|
+
);
|
|
88
|
+
const flags = mode === 'rawHTMLRegex'
|
|
89
|
+
? [...(flagsSelect?.selectedOptions ?? [])].map((opt) => opt.value).join('')
|
|
90
|
+
: '';
|
|
91
|
+
const active = mode === 'fullText' ? textarea : input;
|
|
92
|
+
if (input && input !== active) {
|
|
93
|
+
input.setCustomValidity('');
|
|
94
|
+
}
|
|
95
|
+
if (textarea && textarea !== active) {
|
|
96
|
+
textarea.setCustomValidity('');
|
|
97
|
+
}
|
|
98
|
+
if (active) {
|
|
99
|
+
active.setCustomValidity(computeBlobHTMLValueMessage(mode, active.value, flags));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
11
103
|
/**
|
|
12
104
|
* Blob HTML: XPath, CSS selectors, full text search, regex search of raw
|
|
13
105
|
* HTML (README) - a mode `<select>` plus one value control, the same
|
|
@@ -23,7 +115,8 @@ import {getQueryViaElement} from '../searchElementUtils.js';
|
|
|
23
115
|
* of the pair is ever `required` (toggled alongside `hidden` by the mode
|
|
24
116
|
* `change` handler): a `required` field that's merely hidden, rather than
|
|
25
117
|
* also un-required, still blocks the form's validity even though the user
|
|
26
|
-
* has no way to see or fill it.
|
|
118
|
+
* has no way to see or fill it. "CSS selector" is listed ahead of "XPath"
|
|
119
|
+
* (and is the default mode) as the option most jsoe users will recognize.
|
|
27
120
|
*
|
|
28
121
|
* The `change` handler also checks `isExemptedByAncestorHasProperty` before
|
|
29
122
|
* (re-)asserting `required` on the now-visible control: nested as an
|
|
@@ -35,6 +128,15 @@ import {getQueryViaElement} from '../searchElementUtils.js';
|
|
|
35
128
|
* check, that synthetic event would immediately reassert `required` on
|
|
36
129
|
* whichever control the current mode makes visible, undoing the exemption
|
|
37
130
|
* `setDescendantsRequired` had just granted.
|
|
131
|
+
*
|
|
132
|
+
* "Regex search of raw HTML" gets its own Flags multi-select (the same
|
|
133
|
+
* `regexpType.js` `allowedFlags` list `stringSearchType.js`'s literal/regex
|
|
134
|
+
* control passes as `buildLiteralRegexControls`'s `flagOptions`), shown only
|
|
135
|
+
* while that mode is chosen, folded into the `blobHTML` leaf's own
|
|
136
|
+
* `$options` (mirroring `QueryRegexLeaf`'s field of the same name) - and,
|
|
137
|
+
* via `syncBlobHTMLValueValidity`, included when syntax-checking the Value
|
|
138
|
+
* itself, since the chosen flags can affect whether a given pattern is
|
|
139
|
+
* actually valid.
|
|
38
140
|
* @type {SearchTypeObject}
|
|
39
141
|
*/
|
|
40
142
|
const blobHTMLSearchType = {
|
|
@@ -60,10 +162,16 @@ const blobHTMLSearchType = {
|
|
|
60
162
|
if (!value || !mode) {
|
|
61
163
|
return undefined;
|
|
62
164
|
}
|
|
165
|
+
const flags = mode === 'rawHTMLRegex'
|
|
166
|
+
? [...(/** @type {HTMLSelectElement|undefined} */ (
|
|
167
|
+
findOwnControl(this, 'select.jsoeSearchBlobHTMLFlags')
|
|
168
|
+
)?.selectedOptions ?? [])].map((opt) => opt.value).join('')
|
|
169
|
+
: '';
|
|
63
170
|
return makeBlobHTMLLeaf(
|
|
64
171
|
searchPath,
|
|
65
172
|
/** @type {import('../queryTree.js').QueryBlobHTMLLeaf['mode']} */ (mode),
|
|
66
|
-
value
|
|
173
|
+
value,
|
|
174
|
+
flags || undefined
|
|
67
175
|
);
|
|
68
176
|
}
|
|
69
177
|
}
|
|
@@ -83,8 +191,11 @@ const blobHTMLSearchType = {
|
|
|
83
191
|
const textarea = /** @type {HTMLTextAreaElement|null|undefined} */ (
|
|
84
192
|
container?.querySelector('textarea.jsoeSearchBlobHTMLValue')
|
|
85
193
|
);
|
|
86
|
-
const
|
|
87
|
-
'
|
|
194
|
+
const flagsLabel = /** @type {HTMLElement|null|undefined} */ (
|
|
195
|
+
container?.querySelector('.jsoeSearchBlobHTMLFlagsLabel')
|
|
196
|
+
);
|
|
197
|
+
const mode = /** @type {HTMLSelectElement} */ (this).value;
|
|
198
|
+
const isFullText = mode === 'fullText';
|
|
88
199
|
const exempted = container !== null &&
|
|
89
200
|
isExemptedByAncestorHasProperty(container);
|
|
90
201
|
if (input) {
|
|
@@ -95,11 +206,15 @@ const blobHTMLSearchType = {
|
|
|
95
206
|
textarea.hidden = !isFullText;
|
|
96
207
|
textarea.required = isFullText && !exempted;
|
|
97
208
|
}
|
|
209
|
+
if (flagsLabel) {
|
|
210
|
+
flagsLabel.hidden = mode !== 'rawHTMLRegex';
|
|
211
|
+
}
|
|
212
|
+
syncBlobHTMLValueValidity(container);
|
|
98
213
|
}
|
|
99
214
|
}
|
|
100
215
|
}, [
|
|
101
|
-
['option', {value: 'xpath'}, ['XPath']],
|
|
102
216
|
['option', {value: 'cssSelector'}, ['CSS selector']],
|
|
217
|
+
['option', {value: 'xpath'}, ['XPath']],
|
|
103
218
|
['option', {value: 'fullText'}, ['Full text search']],
|
|
104
219
|
['option', {value: 'rawHTMLRegex'}, ['Regex search of raw HTML']]
|
|
105
220
|
]]
|
|
@@ -108,11 +223,32 @@ const blobHTMLSearchType = {
|
|
|
108
223
|
'Value: ',
|
|
109
224
|
['input', {
|
|
110
225
|
type: 'text', name: `${name}-value`, class: 'jsoeSearchBlobHTMLValue',
|
|
111
|
-
required: true
|
|
226
|
+
required: true,
|
|
227
|
+
$on: {
|
|
228
|
+
input () {
|
|
229
|
+
syncBlobHTMLValueValidity(this.closest('jsoe-search-blob-html'));
|
|
230
|
+
}
|
|
231
|
+
}
|
|
112
232
|
}],
|
|
113
233
|
['textarea', {
|
|
114
|
-
name: `${name}-value`, class: 'jsoeSearchBlobHTMLValue', hidden: true
|
|
234
|
+
name: `${name}-value`, class: 'jsoeSearchBlobHTMLValue', hidden: true,
|
|
235
|
+
$on: {
|
|
236
|
+
input () {
|
|
237
|
+
syncBlobHTMLValueValidity(this.closest('jsoe-search-blob-html'));
|
|
238
|
+
}
|
|
239
|
+
}
|
|
115
240
|
}]
|
|
241
|
+
]],
|
|
242
|
+
['label', {class: 'jsoeSearchBlobHTMLFlagsLabel', hidden: true}, [
|
|
243
|
+
'Flags: ',
|
|
244
|
+
['select', {
|
|
245
|
+
name: `${name}-flags`, multiple: true, class: 'jsoeSearchBlobHTMLFlags',
|
|
246
|
+
$on: {
|
|
247
|
+
change () {
|
|
248
|
+
syncBlobHTMLValueValidity(this.closest('jsoe-search-blob-html'));
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}, regexpType.allowedFlags.map((flag) => ['option', {value: flag}, [flag]])]
|
|
116
252
|
]]
|
|
117
253
|
]];
|
|
118
254
|
},
|
|
@@ -788,7 +788,9 @@ export declare const describe: typeof core.describe;
|
|
|
788
788
|
export declare const meta: typeof core.meta;
|
|
789
789
|
type ZodInstanceOfParams = core.Params<ZodCustom, core.$ZodIssueCustom, "type" | "check" | "checks" | "fn" | "abort" | "error" | "params" | "path">;
|
|
790
790
|
export interface ZodInstanceOf<T = unknown> extends ZodCustom<T, T> {
|
|
791
|
-
properties<Shape extends
|
|
791
|
+
properties<Shape extends {
|
|
792
|
+
[k in keyof T as T[k] extends Function ? never : k]?: core.$ZodType<unknown, T[k]>;
|
|
793
|
+
}>(shape: Shape, params?: string | core.$ZodCheckPropertiesParams): ZodInstanceOf<T & core.$InferObjectInput<Shape, {}>>;
|
|
792
794
|
}
|
|
793
795
|
export declare const ZodInstanceOf: core.$constructor<ZodInstanceOf>;
|
|
794
796
|
declare function _instanceof<T extends typeof util.Class>(cls: T, params?: ZodInstanceOfParams): ZodInstanceOf<InstanceType<T>>;
|