@typedef {SearchClauseToken|SearchOpToken|SearchNotToken} SearchBoolToken
()
| 152 | license: "License", |
| 153 | tag: "Tag name", |
| 154 | filament: "Filament", |
| 155 | }; |
| 156 | |
| 157 | /** @typedef {{ t: 'clause', field: string, value: string }} SearchClauseToken */ |
| 158 | /** @typedef {{ t: 'op', op: 'AND'|'OR' }} SearchOpToken */ |
| 159 | /** @typedef {{ t: 'not' }} SearchNotToken */ |
| 160 | /** @typedef {SearchClauseToken|SearchOpToken|SearchNotToken} SearchBoolToken */ |
| 161 | |
| 162 | function initSearchClauseState() { |
| 163 | if (!Array.isArray(window.searchBoolTokens)) window.searchBoolTokens = []; |
| 164 | if (window.searchClauseList && window.searchClauseList.length && window.searchBoolTokens.length === 0) { |
| 165 | const op = window.searchClauseOp === "OR" ? "OR" : "AND"; |
| 166 | window.searchClauseList.forEach((c, i) => { |
| 167 | if (i > 0) window.searchBoolTokens.push({ t: "op", op }); |
| 168 | window.searchBoolTokens.push({ |
| 169 | t: "clause", |
| 170 | field: (c && c.field) || "all", |
| 171 | value: String((c && c.value) || "").trim(), |
| 172 | }); |
no outgoing calls
no test coverage detected