@tellaro/tql 0.1.18 → 0.2.1
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/dist/index.d.ts +1 -0
- package/dist/src/completionProvider.d.ts +0 -1
- package/dist/src/completionProvider.js +195 -534
- package/dist/src/complexityAnalyzer.d.ts +0 -1
- package/dist/src/complexityAnalyzer.js +33 -36
- package/dist/src/parser.d.ts +0 -1
- package/dist/src/parser.js +78 -115
- package/dist/src/schemaCache.d.ts +0 -1
- package/dist/src/schemaCache.js +34 -42
- package/dist/src/semanticPreview.d.ts +0 -1
- package/dist/src/semanticPreview.js +36 -38
- package/dist/src/tokenizer.d.ts +0 -15
- package/dist/src/tokenizer.js +47 -156
- package/dist/src/types.d.ts +7 -6
- package/dist/src/validator.d.ts +0 -1
- package/dist/src/validator.js +31 -148
- package/dist/tql.css +1 -0
- package/dist/vue/TqlAutocomplete.vue2.js +56 -59
- package/dist/vue/TqlInput.vue.js +1 -1
- package/dist/vue/TqlInput.vue2.js +333 -359
- package/dist/vue/components/TqlPreview.vue2.js +58 -62
- package/dist/vue/composables/useQueryHistory.d.ts +0 -1
- package/dist/vue/composables/useQueryHistory.js +1 -4
- package/dist/vue/useTqlInput.js +107 -117
- package/package.json +14 -7
- package/dist/style.css +0 -1
package/dist/src/validator.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var r = (s, e, t) => u(s, typeof e != "symbol" ? e + "" : e, t);
|
|
4
|
-
import { parseTql as c } from "./parser.js";
|
|
5
|
-
import { COMPARISON_OPERATORS, MUTATORS } from "./tokenizer.js";
|
|
6
|
-
const f = {
|
|
1
|
+
import { parseTql as g } from "./parser.js";
|
|
2
|
+
const b = {
|
|
7
3
|
// Equality (all types)
|
|
8
4
|
eq: ["text", "keyword", "long", "integer", "double", "float", "date", "boolean", "ip", "nested", "object", "geo_point"],
|
|
9
5
|
ne: ["text", "keyword", "long", "integer", "double", "float", "date", "boolean", "ip", "nested", "object", "geo_point"],
|
|
@@ -65,11 +61,11 @@ const f = {
|
|
|
65
61
|
"!any": ["nested", "object", "keyword", "text"],
|
|
66
62
|
"!all": ["nested", "object", "keyword", "text"],
|
|
67
63
|
"!none": ["nested", "object", "keyword", "text"]
|
|
68
|
-
},
|
|
64
|
+
}, l = {
|
|
69
65
|
cidr: ["ip"],
|
|
70
66
|
not_cidr: ["ip"],
|
|
71
67
|
"!cidr": ["ip"]
|
|
72
|
-
},
|
|
68
|
+
}, u = {
|
|
73
69
|
eq: ["string", "number", "boolean"],
|
|
74
70
|
ne: ["string", "number", "boolean"],
|
|
75
71
|
"=": ["string", "number", "boolean"],
|
|
@@ -124,11 +120,11 @@ const f = {
|
|
|
124
120
|
"!all": ["string", "number", "boolean"],
|
|
125
121
|
"!none": ["string", "number", "boolean"]
|
|
126
122
|
};
|
|
127
|
-
class
|
|
123
|
+
class c {
|
|
124
|
+
options;
|
|
125
|
+
errors;
|
|
126
|
+
warnings;
|
|
128
127
|
constructor(e = {}) {
|
|
129
|
-
r(this, "options");
|
|
130
|
-
r(this, "errors");
|
|
131
|
-
r(this, "warnings");
|
|
132
128
|
this.options = e, this.errors = [], this.warnings = [];
|
|
133
129
|
}
|
|
134
130
|
/**
|
|
@@ -136,7 +132,7 @@ class y {
|
|
|
136
132
|
*/
|
|
137
133
|
validate(e) {
|
|
138
134
|
this.errors = [], this.warnings = [];
|
|
139
|
-
const t =
|
|
135
|
+
const t = g(e);
|
|
140
136
|
return this.errors.push(...t.errors), this.warnings.push(...t.warnings), t.ast && this.validateExpression(t.ast), {
|
|
141
137
|
valid: this.errors.length === 0,
|
|
142
138
|
errors: this.errors,
|
|
@@ -178,7 +174,7 @@ class y {
|
|
|
178
174
|
), this.options.fieldTypes && e.field.type === "field") {
|
|
179
175
|
const o = this.options.fieldTypes[t];
|
|
180
176
|
if (o) {
|
|
181
|
-
const n =
|
|
177
|
+
const n = l[e.operator];
|
|
182
178
|
n && !n.includes(o) && this.addError(
|
|
183
179
|
`Operator '${e.operator}' requires field type ${n.join(" or ")}, but '${t}' is type '${o}'`,
|
|
184
180
|
e.start,
|
|
@@ -193,8 +189,8 @@ class y {
|
|
|
193
189
|
if (this.options.fieldTypes && e.field.type === "field") {
|
|
194
190
|
const o = this.options.fieldTypes[t];
|
|
195
191
|
if (o) {
|
|
196
|
-
const n =
|
|
197
|
-
!
|
|
192
|
+
const n = b[e.operator];
|
|
193
|
+
!l[e.operator] && n && !n.includes(o) && this.addWarning(
|
|
198
194
|
`Operator '${e.operator}' may not work well with field type '${o}'`,
|
|
199
195
|
e.start,
|
|
200
196
|
e.end,
|
|
@@ -206,7 +202,7 @@ class y {
|
|
|
206
202
|
}
|
|
207
203
|
}
|
|
208
204
|
if (!Array.isArray(e.value) && e.value.type === "literal") {
|
|
209
|
-
const o =
|
|
205
|
+
const o = u[e.operator];
|
|
210
206
|
o && !o.includes(e.value.valueType) && this.addWarning(
|
|
211
207
|
`Operator '${e.operator}' expects ${o.join(" or ")} value`,
|
|
212
208
|
e.value.start,
|
|
@@ -230,65 +226,6 @@ class y {
|
|
|
230
226
|
"Check the regex syntax"
|
|
231
227
|
);
|
|
232
228
|
}
|
|
233
|
-
// CIDR notation validation
|
|
234
|
-
if ((e.operator === "cidr" || e.operator === "not_cidr" || e.operator === "!cidr") && !Array.isArray(e.value) && e.value.valueType === "string" && typeof e.value.value == "string") {
|
|
235
|
-
const cidrValue = e.value.value;
|
|
236
|
-
const ipv4CidrRegex = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\/(\d{1,2})$/;
|
|
237
|
-
const ipv6CidrRegex = /^([0-9a-fA-F:]+)\/(\d{1,3})$/;
|
|
238
|
-
const ipv4Match = cidrValue.match(ipv4CidrRegex);
|
|
239
|
-
const ipv6Match = cidrValue.match(ipv6CidrRegex);
|
|
240
|
-
if (ipv4Match) {
|
|
241
|
-
// Validate IPv4 octets (0-255) and prefix (0-32)
|
|
242
|
-
const octets = [parseInt(ipv4Match[1]), parseInt(ipv4Match[2]), parseInt(ipv4Match[3]), parseInt(ipv4Match[4])];
|
|
243
|
-
const prefix = parseInt(ipv4Match[5]);
|
|
244
|
-
const invalidOctet = octets.find(o => o > 255);
|
|
245
|
-
if (invalidOctet !== undefined) {
|
|
246
|
-
this.addError(
|
|
247
|
-
`Invalid CIDR notation: octet value ${invalidOctet} exceeds 255`,
|
|
248
|
-
e.value.start,
|
|
249
|
-
e.value.end,
|
|
250
|
-
1,
|
|
251
|
-
1,
|
|
252
|
-
"INVALID_CIDR",
|
|
253
|
-
"IPv4 octets must be 0-255 (e.g., 192.168.0.0/24)"
|
|
254
|
-
);
|
|
255
|
-
} else if (prefix > 32) {
|
|
256
|
-
this.addError(
|
|
257
|
-
`Invalid CIDR notation: prefix /${prefix} exceeds maximum /32 for IPv4`,
|
|
258
|
-
e.value.start,
|
|
259
|
-
e.value.end,
|
|
260
|
-
1,
|
|
261
|
-
1,
|
|
262
|
-
"INVALID_CIDR",
|
|
263
|
-
"IPv4 CIDR prefix must be 0-32"
|
|
264
|
-
);
|
|
265
|
-
}
|
|
266
|
-
} else if (ipv6Match) {
|
|
267
|
-
// Validate IPv6 prefix (0-128)
|
|
268
|
-
const prefix = parseInt(ipv6Match[2]);
|
|
269
|
-
if (prefix > 128) {
|
|
270
|
-
this.addError(
|
|
271
|
-
`Invalid CIDR notation: prefix /${prefix} exceeds maximum /128 for IPv6`,
|
|
272
|
-
e.value.start,
|
|
273
|
-
e.value.end,
|
|
274
|
-
1,
|
|
275
|
-
1,
|
|
276
|
-
"INVALID_CIDR",
|
|
277
|
-
"IPv6 CIDR prefix must be 0-128"
|
|
278
|
-
);
|
|
279
|
-
}
|
|
280
|
-
} else {
|
|
281
|
-
this.addError(
|
|
282
|
-
`Invalid CIDR notation: ${cidrValue}`,
|
|
283
|
-
e.value.start,
|
|
284
|
-
e.value.end,
|
|
285
|
-
1,
|
|
286
|
-
1,
|
|
287
|
-
"INVALID_CIDR",
|
|
288
|
-
"Use format like 192.168.0.0/24 (IPv4) or 2001:db8::/32 (IPv6)"
|
|
289
|
-
);
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
229
|
}
|
|
293
230
|
/**
|
|
294
231
|
* Suggest a similar field name using Levenshtein distance
|
|
@@ -303,36 +240,6 @@ class y {
|
|
|
303
240
|
}
|
|
304
241
|
return t;
|
|
305
242
|
}
|
|
306
|
-
/**
|
|
307
|
-
* Suggest a similar operator using Levenshtein distance
|
|
308
|
-
* @param {string} input - The mistyped operator
|
|
309
|
-
* @param {number} maxDistance - Maximum edit distance to consider (default: 2)
|
|
310
|
-
* @returns {string|null} - Suggested operator(s) or null
|
|
311
|
-
*/
|
|
312
|
-
suggestOperator(input, maxDistance = 2) {
|
|
313
|
-
const suggestions = COMPARISON_OPERATORS
|
|
314
|
-
.map(op => ({ op, distance: this.levenshteinDistance(input.toLowerCase(), op.toLowerCase()) }))
|
|
315
|
-
.filter(s => s.distance <= maxDistance && s.distance > 0)
|
|
316
|
-
.sort((a, b) => a.distance - b.distance)
|
|
317
|
-
.slice(0, 3)
|
|
318
|
-
.map(s => s.op);
|
|
319
|
-
return suggestions.length > 0 ? suggestions.join(", ") : null;
|
|
320
|
-
}
|
|
321
|
-
/**
|
|
322
|
-
* Suggest a similar mutator using Levenshtein distance
|
|
323
|
-
* @param {string} input - The mistyped mutator
|
|
324
|
-
* @param {number} maxDistance - Maximum edit distance to consider (default: 2)
|
|
325
|
-
* @returns {string|null} - Suggested mutator(s) or null
|
|
326
|
-
*/
|
|
327
|
-
suggestMutator(input, maxDistance = 2) {
|
|
328
|
-
const suggestions = MUTATORS
|
|
329
|
-
.map(m => ({ m, distance: this.levenshteinDistance(input.toLowerCase(), m.toLowerCase()) }))
|
|
330
|
-
.filter(s => s.distance <= maxDistance && s.distance > 0)
|
|
331
|
-
.sort((a, b) => a.distance - b.distance)
|
|
332
|
-
.slice(0, 3)
|
|
333
|
-
.map(s => s.m);
|
|
334
|
-
return suggestions.length > 0 ? suggestions.join(", ") : null;
|
|
335
|
-
}
|
|
336
243
|
/**
|
|
337
244
|
* Calculate Levenshtein distance between two strings
|
|
338
245
|
*/
|
|
@@ -351,7 +258,7 @@ class y {
|
|
|
351
258
|
);
|
|
352
259
|
return o[t.length][e.length];
|
|
353
260
|
}
|
|
354
|
-
addError(e, t, o, n, i,
|
|
261
|
+
addError(e, t, o, n, i, r, a) {
|
|
355
262
|
this.errors.push({
|
|
356
263
|
message: e,
|
|
357
264
|
start: t,
|
|
@@ -359,11 +266,11 @@ class y {
|
|
|
359
266
|
line: n,
|
|
360
267
|
column: i,
|
|
361
268
|
severity: "error",
|
|
362
|
-
code:
|
|
363
|
-
suggestion:
|
|
269
|
+
code: r,
|
|
270
|
+
suggestion: a
|
|
364
271
|
});
|
|
365
272
|
}
|
|
366
|
-
addWarning(e, t, o, n, i,
|
|
273
|
+
addWarning(e, t, o, n, i, r, a) {
|
|
367
274
|
this.warnings.push({
|
|
368
275
|
message: e,
|
|
369
276
|
start: t,
|
|
@@ -371,22 +278,22 @@ class y {
|
|
|
371
278
|
line: n,
|
|
372
279
|
column: i,
|
|
373
280
|
severity: "warning",
|
|
374
|
-
code:
|
|
375
|
-
suggestion:
|
|
281
|
+
code: r,
|
|
282
|
+
suggestion: a
|
|
376
283
|
});
|
|
377
284
|
}
|
|
378
285
|
}
|
|
379
|
-
function
|
|
380
|
-
return new
|
|
286
|
+
function d(s, e) {
|
|
287
|
+
return new c(e).validate(s);
|
|
381
288
|
}
|
|
382
|
-
function
|
|
383
|
-
return
|
|
289
|
+
function h(s) {
|
|
290
|
+
return d(s).valid;
|
|
384
291
|
}
|
|
385
|
-
function
|
|
386
|
-
const t =
|
|
292
|
+
function y(s, e) {
|
|
293
|
+
const t = d(s, e);
|
|
387
294
|
return [...t.errors, ...t.warnings];
|
|
388
295
|
}
|
|
389
|
-
function
|
|
296
|
+
function p(s) {
|
|
390
297
|
const e = [];
|
|
391
298
|
s.valid ? e.push("Query is valid") : e.push("Query has errors:");
|
|
392
299
|
for (const t of s.errors)
|
|
@@ -396,34 +303,10 @@ function v(s) {
|
|
|
396
303
|
return e.join(`
|
|
397
304
|
`);
|
|
398
305
|
}
|
|
399
|
-
/**
|
|
400
|
-
* Standalone function to suggest similar operators
|
|
401
|
-
* @param {string} input - The mistyped operator
|
|
402
|
-
* @param {number} maxDistance - Maximum edit distance to consider (default: 2)
|
|
403
|
-
* @returns {string|null} - Suggested operator(s) or null
|
|
404
|
-
*/
|
|
405
|
-
function suggestOperator(input, maxDistance = 2) {
|
|
406
|
-
const validator = new y();
|
|
407
|
-
return validator.suggestOperator(input, maxDistance);
|
|
408
|
-
}
|
|
409
|
-
|
|
410
|
-
/**
|
|
411
|
-
* Standalone function to suggest similar mutators
|
|
412
|
-
* @param {string} input - The mistyped mutator
|
|
413
|
-
* @param {number} maxDistance - Maximum edit distance to consider (default: 2)
|
|
414
|
-
* @returns {string|null} - Suggested mutator(s) or null
|
|
415
|
-
*/
|
|
416
|
-
function suggestMutator(input, maxDistance = 2) {
|
|
417
|
-
const validator = new y();
|
|
418
|
-
return validator.suggestMutator(input, maxDistance);
|
|
419
|
-
}
|
|
420
|
-
|
|
421
306
|
export {
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
suggestOperator,
|
|
428
|
-
suggestMutator
|
|
307
|
+
c as TqlValidator,
|
|
308
|
+
p as formatValidationResult,
|
|
309
|
+
y as getTqlIssues,
|
|
310
|
+
h as isValidTqlSyntax,
|
|
311
|
+
d as validateTql
|
|
429
312
|
};
|
package/dist/tql.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.tql-autocomplete-dropdown[data-v-e29dd6a7]{position:fixed;top:var(--dropdown-top);left:var(--dropdown-left);z-index:9999;min-width:280px;max-width:450px;max-height:var(--dropdown-max-height);background:var(--surface-overlay, #fff);border:1px solid var(--surface-border, #ddd);border-radius:var(--border-radius, 6px);box-shadow:0 4px 16px #00000026;overflow:hidden;display:flex;flex-direction:column}.tql-completion-list[data-v-e29dd6a7]{overflow-y:auto;max-height:calc(var(--dropdown-max-height) - 60px)}.tql-completion-item[data-v-e29dd6a7]{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;cursor:pointer;transition:background-color .15s}.tql-completion-item[data-v-e29dd6a7]:hover,.tql-completion-item.selected[data-v-e29dd6a7]{background:var(--highlight-bg, #f0f0f0)}.tql-completion-icon[data-v-e29dd6a7]{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:4px;font-size:.75rem}.tql-completion-icon.tql-completion-kind-field[data-v-e29dd6a7]{background:var(--blue-100, #e3f2fd);color:var(--blue-600, #1e88e5)}.tql-completion-icon.tql-completion-kind-operator[data-v-e29dd6a7]{background:var(--pink-100, #fce4ec);color:var(--pink-600, #d81b60)}.tql-completion-icon.tql-completion-kind-value[data-v-e29dd6a7]{background:var(--green-100, #e8f5e9);color:var(--green-600, #43a047)}.tql-completion-icon.tql-completion-kind-keyword[data-v-e29dd6a7]{background:var(--purple-100, #f3e5f5);color:var(--purple-600, #8e24aa)}.tql-completion-icon.tql-completion-kind-snippet[data-v-e29dd6a7]{background:var(--orange-100, #fff3e0);color:var(--orange-600, #fb8c00)}.tql-completion-icon.tql-completion-kind-mutator[data-v-e29dd6a7]{background:var(--cyan-100, #e0f7fa);color:var(--cyan-600, #00acc1)}.tql-completion-icon.tql-completion-kind-aggregation[data-v-e29dd6a7]{background:var(--indigo-100, #e8eaf6);color:var(--indigo-600, #3949ab)}.tql-completion-icon.tql-completion-kind-logicalOp[data-v-e29dd6a7]{background:var(--yellow-100, #fffde7);color:var(--yellow-700, #fbc02d)}.tql-completion-icon.tql-completion-kind-typeHint[data-v-e29dd6a7]{background:var(--teal-100, #e0f2f1);color:var(--teal-600, #00897b)}.tql-completion-icon.tql-completion-kind-visualization[data-v-e29dd6a7]{background:var(--red-100, #ffebee);color:var(--red-600, #e53935)}.tql-completion-content[data-v-e29dd6a7]{flex:1;display:flex;flex-direction:column;min-width:0}.tql-completion-label[data-v-e29dd6a7]{font-family:Courier New,monospace;font-size:.875rem;font-weight:500;color:var(--text-color, #333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tql-completion-detail[data-v-e29dd6a7]{font-size:.75rem;color:var(--text-color-secondary, #666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tql-completion-kind-badge[data-v-e29dd6a7]{font-size:.625rem;padding:.125rem .375rem;background:var(--surface-100, #f5f5f5);border-radius:3px;color:var(--text-color-secondary, #666);text-transform:uppercase;letter-spacing:.025em}.tql-completion-docs[data-v-e29dd6a7]{padding:.5rem .75rem;border-top:1px solid var(--surface-border, #ddd);background:var(--surface-50, #fafafa);font-size:.75rem;color:var(--text-color-secondary, #666);max-height:60px;overflow-y:auto}.tql-preview[data-v-bae811e6]{font-family:ui-monospace,monospace;font-size:13px;line-height:1.5;padding:12px;border:1px solid var(--tql-preview-border, #e0e0e0);border-radius:6px;background:var(--tql-preview-bg, #fafafa)}.tql-preview--compact[data-v-bae811e6]{padding:8px;font-size:12px}.tql-preview--empty[data-v-bae811e6]{color:var(--tql-preview-muted, #888)}.tql-preview__empty[data-v-bae811e6]{text-align:center;padding:20px}.tql-preview__complexity[data-v-bae811e6]{display:flex;align-items:center;gap:12px;margin-bottom:12px}.tql-preview__complexity-badge[data-v-bae811e6]{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase}.tql-preview--low .tql-preview__complexity-badge[data-v-bae811e6]{background:var(--tql-preview-low-bg, #e8f5e9);color:var(--tql-preview-low-text, #2e7d32)}.tql-preview--medium .tql-preview__complexity-badge[data-v-bae811e6]{background:var(--tql-preview-medium-bg, #fff3e0);color:var(--tql-preview-medium-text, #e65100)}.tql-preview--high .tql-preview__complexity-badge[data-v-bae811e6]{background:var(--tql-preview-high-bg, #ffebee);color:var(--tql-preview-high-text, #c62828)}.tql-preview__field-count[data-v-bae811e6]{color:var(--tql-preview-muted, #666);font-size:12px}.tql-preview__warnings[data-v-bae811e6]{margin-bottom:12px}.tql-preview__warning[data-v-bae811e6]{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:4px;margin-bottom:4px}.tql-preview__warning--info[data-v-bae811e6]{background:var(--tql-preview-info-bg, #e3f2fd);color:var(--tql-preview-info-text, #1565c0)}.tql-preview__warning--warning[data-v-bae811e6]{background:var(--tql-preview-warning-bg, #fff3e0);color:var(--tql-preview-warning-text, #e65100)}.tql-preview__warning--error[data-v-bae811e6]{background:var(--tql-preview-error-bg, #ffebee);color:var(--tql-preview-error-text, #c62828)}.tql-preview__warning-icon[data-v-bae811e6]{font-weight:700;width:16px;text-align:center}.tql-preview__warning-text[data-v-bae811e6]{flex:1}.tql-preview__suggestions[data-v-bae811e6]{margin-bottom:12px;padding:8px;background:var(--tql-preview-suggestion-bg, #f5f5f5);border-radius:4px}.tql-preview__suggestions-header[data-v-bae811e6]{font-weight:600;margin-bottom:4px;color:var(--tql-preview-header, #333)}.tql-preview__suggestions-list[data-v-bae811e6]{margin:0;padding-left:20px}.tql-preview__suggestion[data-v-bae811e6]{color:var(--tql-preview-muted, #666);margin:2px 0}.tql-preview__tree[data-v-bae811e6]{margin-bottom:12px}.tql-preview__tree-header[data-v-bae811e6],.tql-preview__fields-header[data-v-bae811e6],.tql-preview__operators-header[data-v-bae811e6]{font-weight:600;margin-bottom:8px;color:var(--tql-preview-header, #333);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.tql-preview__tree-content[data-v-bae811e6]{border:1px solid var(--tql-preview-tree-border, #e0e0e0);border-radius:4px;background:var(--tql-preview-tree-bg, #fff);padding:8px}.tql-preview__node[data-v-bae811e6]{margin:2px 0}.tql-preview__node-content[data-v-bae811e6]{display:flex;align-items:center;gap:4px;padding:2px 4px;border-radius:3px;cursor:pointer}.tql-preview__node-content[data-v-bae811e6]:hover{background:var(--tql-preview-node-hover, #f0f0f0)}.tql-preview__node-toggle[data-v-bae811e6]{width:16px;height:16px;border:none;background:var(--tql-preview-toggle-bg, #e0e0e0);border-radius:3px;cursor:pointer;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center}.tql-preview__node-toggle[data-v-bae811e6]:hover{background:var(--tql-preview-toggle-hover, #d0d0d0)}.tql-preview__node-toggle--leaf[data-v-bae811e6]{visibility:hidden}.tql-preview__node-type[data-v-bae811e6]{font-weight:600;color:var(--tql-preview-node-type, #666)}.tql-preview__node--and .tql-preview__node-type[data-v-bae811e6]{color:var(--tql-preview-and, #1976d2)}.tql-preview__node--or .tql-preview__node-type[data-v-bae811e6]{color:var(--tql-preview-or, #7b1fa2)}.tql-preview__node--not .tql-preview__node-type[data-v-bae811e6]{color:var(--tql-preview-not, #c62828)}.tql-preview__node--group .tql-preview__node-type[data-v-bae811e6]{color:var(--tql-preview-group, #666)}.tql-preview__node-label[data-v-bae811e6]{flex:1}.tql-preview__fields-list[data-v-bae811e6]{display:flex;flex-direction:column;gap:4px}.tql-preview__field[data-v-bae811e6]{display:flex;align-items:center;gap:6px;padding:4px 8px;background:var(--tql-preview-field-bg, #fff);border:1px solid var(--tql-preview-field-border, #e0e0e0);border-radius:4px;cursor:pointer}.tql-preview__field[data-v-bae811e6]:hover{background:var(--tql-preview-field-hover, #f5f5f5)}.tql-preview__field-name[data-v-bae811e6]{font-weight:600;color:var(--tql-preview-field-name, #1976d2)}.tql-preview__field-mutators[data-v-bae811e6]{color:var(--tql-preview-mutator, #7b1fa2)}.tql-preview__field-operator[data-v-bae811e6]{color:var(--tql-preview-operator, #666)}.tql-preview__field-value[data-v-bae811e6]{color:var(--tql-preview-value, #2e7d32)}.tql-preview__match-type[data-v-bae811e6]{margin-left:auto;padding:1px 4px;border-radius:3px;font-size:10px;font-weight:600;background:var(--tql-preview-match-bg, #f0f0f0)}.tql-preview__match-type--exact[data-v-bae811e6]{background:var(--tql-preview-match-exact-bg, #e8f5e9);color:var(--tql-preview-match-exact, #2e7d32)}.tql-preview__match-type--wildcard[data-v-bae811e6]{background:var(--tql-preview-match-wildcard-bg, #fff3e0);color:var(--tql-preview-match-wildcard, #e65100)}.tql-preview__match-type--regex[data-v-bae811e6]{background:var(--tql-preview-match-regex-bg, #fce4ec);color:var(--tql-preview-match-regex, #c2185b)}.tql-preview__match-type--range[data-v-bae811e6]{background:var(--tql-preview-match-range-bg, #e3f2fd);color:var(--tql-preview-match-range, #1565c0)}.tql-preview__match-type--cidr[data-v-bae811e6]{background:var(--tql-preview-match-cidr-bg, #f3e5f5);color:var(--tql-preview-match-cidr, #7b1fa2)}.tql-preview__operators-list[data-v-bae811e6]{display:flex;flex-wrap:wrap;gap:8px}.tql-preview__operator[data-v-bae811e6]{padding:2px 6px;background:var(--tql-preview-op-bg, #f0f0f0);border-radius:3px;font-size:11px}.tql-input-wrapper[data-v-b501ae88]{position:relative;display:flex;align-items:flex-start;border:1px solid var(--surface-border, #ddd);border-radius:var(--border-radius, 6px);background:var(--surface-ground, #fff);transition:border-color .2s,box-shadow .2s}.tql-input-wrapper.tql-input-has-min-height[data-v-b501ae88],.tql-input-wrapper.tql-input-has-min-height .tql-input[data-v-b501ae88]{min-height:var(--tql-min-height)}.tql-input-wrapper.tql-input-focused[data-v-b501ae88]{border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 2px var(--primary-100, rgba(59, 130, 246, .2))}.tql-input-wrapper.tql-input-invalid[data-v-b501ae88]{border-color:var(--red-500, #ef4444)}.tql-input-wrapper.tql-input-invalid.tql-input-focused[data-v-b501ae88]{box-shadow:0 0 0 2px var(--red-100, rgba(239, 68, 68, .2))}.tql-input-wrapper.tql-input-disabled[data-v-b501ae88]{opacity:.6;cursor:not-allowed}.tql-highlight-layer[data-v-b501ae88]{position:absolute;inset:0;padding:.5rem .75rem;pointer-events:none;white-space:pre-wrap;word-wrap:break-word;font-family:Courier New,monospace;font-size:.875rem;line-height:1.5;overflow:hidden}.tql-input-multiline .tql-highlight-layer[data-v-b501ae88]{overflow-y:auto}.tql-input[data-v-b501ae88]{flex:1;width:100%;padding:.5rem 8rem .5rem .75rem;border:none;background:transparent;font-family:Courier New,monospace;font-size:.875rem;line-height:1.5;color:var(--text-color, #333);outline:none;resize:none}.tql-input.tql-input-highlighted[data-v-b501ae88]{color:transparent;caret-color:var(--text-color, #333)}.tql-input[data-v-b501ae88]::placeholder{color:var(--text-color-secondary, #666);opacity:.7}.tql-input[data-v-b501ae88]:disabled{cursor:not-allowed}.tql-token-field[data-v-b501ae88]{color:var(--tql-field-color, var(--blue-600, #2563eb))}.tql-token-operator[data-v-b501ae88]{color:var(--tql-operator-color, var(--pink-600, #db2777));font-weight:500}.tql-token-logicalOp[data-v-b501ae88]{color:var(--tql-logical-color, var(--purple-600, #9333ea));font-weight:600}.tql-token-collectionOp[data-v-b501ae88]{color:var(--tql-collection-color, var(--indigo-600, #4f46e5));font-weight:600}.tql-token-string[data-v-b501ae88]{color:var(--tql-string-color, var(--green-600, #16a34a))}.tql-token-number[data-v-b501ae88]{color:var(--tql-number-color, var(--orange-600, #ea580c))}.tql-token-boolean[data-v-b501ae88]{color:var(--tql-boolean-color, var(--cyan-600, #0891b2))}.tql-token-null[data-v-b501ae88]{color:var(--tql-null-color, var(--gray-500, #6b7280));font-style:italic}.tql-token-mutator[data-v-b501ae88]{color:var(--tql-mutator-color, var(--teal-600, #0d9488));font-style:italic}.tql-token-aggregation[data-v-b501ae88]{color:var(--tql-aggregation-color, var(--indigo-600, #4f46e5))}.tql-token-keyword[data-v-b501ae88]{color:var(--tql-keyword-color, var(--purple-500, #a855f7))}.tql-token-typeHint[data-v-b501ae88]{color:var(--tql-typehint-color, var(--teal-500, #14b8a6))}.tql-token-visualization[data-v-b501ae88]{color:var(--tql-viz-color, var(--red-500, #ef4444))}.tql-token-arrow[data-v-b501ae88]{color:var(--tql-arrow-color, var(--gray-600, #4b5563));font-weight:600}.tql-token-doubleColon[data-v-b501ae88]{color:var(--tql-colon-color, var(--gray-500, #6b7280))}.tql-token-paren[data-v-b501ae88],.tql-token-bracket[data-v-b501ae88]{color:var(--tql-bracket-color, var(--gray-600, #4b5563))}.tql-token-error[data-v-b501ae88]{color:var(--tql-error-color, var(--red-600, #dc2626));text-decoration:wavy underline;text-decoration-color:var(--red-400, #f87171)}.tql-token-error-range[data-v-b501ae88]{background-color:var(--red-50, #fef2f2)}.tql-token-unknown[data-v-b501ae88]{color:var(--text-color-secondary, #666)}.tql-validation-icon[data-v-b501ae88]{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center}.tql-input-multiline .tql-validation-icon[data-v-b501ae88]{top:.75rem;transform:none}.tql-icon-valid[data-v-b501ae88]{color:var(--green-500, #22c55e)}.tql-icon-invalid[data-v-b501ae88]{color:var(--red-500, #ef4444)}.tql-icon-clickable[data-v-b501ae88]{cursor:pointer;transition:transform .2s}.tql-icon-clickable[data-v-b501ae88]:hover{transform:scale(1.2)}.tql-icon-clickable[data-v-b501ae88]:focus{outline:2px solid var(--primary-color, #3b82f6);outline-offset:2px;border-radius:50%}.tql-snippet-button[data-v-b501ae88]{position:absolute;right:2rem;top:50%;transform:translateY(-50%);padding:.25rem;border:none;background:transparent;color:var(--text-color-secondary, #666);cursor:pointer;border-radius:var(--border-radius, 6px);transition:color .2s,background-color .2s}.tql-snippet-button[data-v-b501ae88]:hover{color:var(--primary-color, #3b82f6);background:var(--surface-100, #f5f5f5)}.tql-input-multiline .tql-snippet-button[data-v-b501ae88]{top:.75rem;transform:none}.tql-input-resizable-textarea[data-v-b501ae88]{resize:vertical;min-height:80px}.tql-input-wrapper.tql-input-resizable[data-v-b501ae88]{height:auto}.tql-input-wrapper.tql-input-resizable .tql-highlight-layer[data-v-b501ae88]{height:100%}.tql-validation-messages[data-v-b501ae88]{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background:var(--surface-overlay, #fff);border:1px solid var(--red-200, #fecaca);border-radius:var(--border-radius, 6px);padding:.5rem;z-index:10;box-shadow:0 2px 8px #0000001a}.tql-input-autocomplete-active .tql-validation-messages[data-v-b501ae88],.tql-input-autocomplete-active .tql-complexity-warnings[data-v-b501ae88],.tql-input-autocomplete-active .tql-history-dropdown[data-v-b501ae88],.tql-input-autocomplete-active .tql-preview-panel[data-v-b501ae88]{display:none!important}.tql-error-message[data-v-b501ae88]{display:flex;align-items:flex-start;gap:.5rem;padding:.25rem 0;font-size:.75rem;color:var(--red-600, #dc2626)}.tql-error-message i[data-v-b501ae88]{margin-top:.125rem;font-size:.75rem}.tql-error-suggestion[data-v-b501ae88]{display:block;color:var(--text-color-secondary, #666);font-style:italic;margin-left:1.25rem}.sr-only[data-v-b501ae88]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tql-toolbar[data-v-b501ae88]{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:.25rem}.tql-input-multiline .tql-toolbar[data-v-b501ae88]{top:.5rem;transform:none}.tql-toolbar-button[data-v-b501ae88]{padding:.25rem;border:none;background:transparent;color:var(--text-color-secondary, #666);cursor:pointer;border-radius:var(--border-radius, 4px);transition:color .2s,background-color .2s;display:flex;align-items:center;justify-content:center}.tql-toolbar-button[data-v-b501ae88]:hover{color:var(--primary-color, #3b82f6);background:var(--surface-100, #f5f5f5)}.tql-toolbar-button--active[data-v-b501ae88]{color:var(--primary-color, #3b82f6);background:var(--primary-100, rgba(59, 130, 246, .1))}.tql-validation-status[data-v-b501ae88]{display:flex;align-items:center}.tql-complexity-badge[data-v-b501ae88]{display:flex;align-items:center;gap:.25rem;padding:.125rem .5rem;border-radius:9999px;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.tql-complexity-low[data-v-b501ae88]{background:var(--green-100, #dcfce7);color:var(--green-700, #15803d)}.tql-complexity-medium[data-v-b501ae88]{background:var(--yellow-100, #fef9c3);color:var(--yellow-700, #a16207)}.tql-complexity-high[data-v-b501ae88]{background:var(--red-100, #fee2e2);color:var(--red-700, #b91c1c)}.tql-complexity-count[data-v-b501ae88]{display:inline-flex;align-items:center;justify-content:center;min-width:1rem;height:1rem;padding:0 .25rem;border-radius:9999px;background:currentColor;color:#fff;font-size:.5rem}.tql-complexity-low .tql-complexity-count[data-v-b501ae88]{background:var(--green-600, #16a34a)}.tql-complexity-medium .tql-complexity-count[data-v-b501ae88]{background:var(--yellow-600, #ca8a04)}.tql-complexity-high .tql-complexity-count[data-v-b501ae88]{background:var(--red-600, #dc2626)}.tql-complexity-warnings[data-v-b501ae88]{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background:var(--surface-overlay, #fff);border:1px solid var(--surface-border, #e0e0e0);border-radius:var(--border-radius, 6px);padding:.5rem;z-index:9;box-shadow:0 2px 8px #0000001a}.tql-complexity-warning[data-v-b501ae88]{display:flex;align-items:flex-start;gap:.5rem;padding:.25rem 0;font-size:.75rem}.tql-complexity-warning i[data-v-b501ae88]{margin-top:.125rem;font-size:.75rem}.tql-complexity-warning--info[data-v-b501ae88]{color:var(--blue-600, #2563eb)}.tql-complexity-warning--warning[data-v-b501ae88]{color:var(--yellow-600, #ca8a04)}.tql-complexity-warning--error[data-v-b501ae88]{color:var(--red-600, #dc2626)}.tql-complexity-suggestions[data-v-b501ae88]{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--surface-border, #e0e0e0)}.tql-complexity-suggestion[data-v-b501ae88]{display:flex;align-items:flex-start;gap:.5rem;padding:.25rem 0;font-size:.75rem;color:var(--text-color-secondary, #666)}.tql-complexity-suggestion i[data-v-b501ae88]{color:var(--yellow-500, #eab308)}.tql-history-dropdown[data-v-b501ae88]{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background:var(--surface-overlay, #fff);border:1px solid var(--surface-border, #e0e0e0);border-radius:var(--border-radius, 6px);z-index:20;box-shadow:0 4px 12px #00000026;max-height:300px;overflow:hidden;display:flex;flex-direction:column}.tql-history-header[data-v-b501ae88]{padding:.5rem;border-bottom:1px solid var(--surface-border, #e0e0e0)}.tql-history-search[data-v-b501ae88]{width:100%;padding:.375rem .5rem;border:1px solid var(--surface-border, #e0e0e0);border-radius:var(--border-radius, 4px);font-size:.75rem;outline:none}.tql-history-search[data-v-b501ae88]:focus{border-color:var(--primary-color, #3b82f6)}.tql-history-list[data-v-b501ae88]{overflow-y:auto;flex:1}.tql-history-item[data-v-b501ae88]{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem;cursor:pointer;border-bottom:1px solid var(--surface-50, #f9fafb);transition:background-color .15s}.tql-history-item[data-v-b501ae88]:hover{background:var(--surface-100, #f5f5f5)}.tql-history-item--favorite[data-v-b501ae88]{background:var(--yellow-50, #fefce8)}.tql-history-item--favorite[data-v-b501ae88]:hover{background:var(--yellow-100, #fef9c3)}.tql-history-favorite[data-v-b501ae88]{padding:.125rem;border:none;background:transparent;color:var(--text-color-secondary, #999);cursor:pointer;flex-shrink:0}.tql-history-favorite[data-v-b501ae88]:hover,.tql-history-item--favorite .tql-history-favorite[data-v-b501ae88]{color:var(--yellow-500, #eab308)}.tql-history-content[data-v-b501ae88]{flex:1;min-width:0}.tql-history-label[data-v-b501ae88]{font-size:.6875rem;font-weight:600;color:var(--text-color, #333);margin-bottom:.125rem}.tql-history-query[data-v-b501ae88]{font-family:Courier New,monospace;font-size:.6875rem;color:var(--text-color-secondary, #666);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tql-history-time[data-v-b501ae88]{font-size:.625rem;color:var(--text-color-secondary, #999);flex-shrink:0}.tql-history-empty[data-v-b501ae88]{padding:1rem;text-align:center;color:var(--text-color-secondary, #666);font-size:.75rem}.tql-preview-panel[data-v-b501ae88]{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background:var(--surface-overlay, #fff);border:1px solid var(--surface-border, #e0e0e0);border-radius:var(--border-radius, 6px);z-index:15;box-shadow:0 4px 12px #00000026;max-height:400px;overflow:hidden;display:flex;flex-direction:column}.tql-preview-header[data-v-b501ae88]{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid var(--surface-border, #e0e0e0);font-size:.75rem;font-weight:600;color:var(--text-color, #333)}.tql-preview-close[data-v-b501ae88]{padding:.125rem;border:none;background:transparent;color:var(--text-color-secondary, #666);cursor:pointer;border-radius:var(--border-radius, 4px)}.tql-preview-close[data-v-b501ae88]:hover{background:var(--surface-100, #f5f5f5);color:var(--text-color, #333)}.tql-preview-panel[data-v-b501ae88] .tql-preview{border:none;border-radius:0;max-height:350px;overflow-y:auto}.tql-validation-messages-portal{position:fixed;top:var(--tql-msg-top, 0);left:var(--tql-msg-left, 0);width:var(--tql-msg-width, auto);z-index:9998;background:var(--surface-overlay, #fff);border:2px solid var(--red-500, #ef4444);border-radius:var(--border-radius, 6px);padding:.5rem;box-shadow:0 4px 12px #00000026}.tql-validation-messages-portal .tql-error-message{display:flex;align-items:flex-start;gap:.5rem;padding:.25rem 0;font-size:.75rem;color:var(--red-600, #dc2626)}.tql-validation-messages-portal .tql-error-message i{margin-top:.125rem;font-size:.75rem}.tql-validation-messages-portal .tql-error-suggestion{display:block;color:var(--text-color-secondary, #6b7280);font-style:italic;margin-left:1.25rem}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
const
|
|
1
|
+
import { defineComponent as E, ref as g, watch as C, nextTick as D, computed as L, onMounted as T, onUnmounted as S, openBlock as l, createBlock as B, Teleport as M, createElementBlock as s, withModifiers as z, normalizeStyle as A, createElementVNode as u, Fragment as H, renderList as I, normalizeClass as f, toDisplayString as m, createCommentVNode as v } from "vue";
|
|
2
|
+
const K = ["id", "aria-activedescendant"], U = { class: "tql-completion-list" }, V = ["id", "aria-selected", "onClick", "onMouseenter"], _ = { class: "tql-completion-content" }, N = { class: "tql-completion-label" }, O = {
|
|
3
3
|
key: 0,
|
|
4
4
|
class: "tql-completion-detail"
|
|
5
|
-
},
|
|
5
|
+
}, P = {
|
|
6
6
|
key: 0,
|
|
7
7
|
class: "tql-completion-kind-badge"
|
|
8
|
-
},
|
|
8
|
+
}, R = {
|
|
9
9
|
key: 0,
|
|
10
10
|
class: "tql-completion-docs"
|
|
11
|
-
},
|
|
11
|
+
}, Q = /* @__PURE__ */ E({
|
|
12
12
|
__name: "TqlAutocomplete",
|
|
13
13
|
props: {
|
|
14
14
|
id: {},
|
|
@@ -18,16 +18,16 @@ const U = ["id", "aria-activedescendant"], V = { class: "tql-completion-list" },
|
|
|
18
18
|
maxHeight: {}
|
|
19
19
|
},
|
|
20
20
|
emits: ["select", "close"],
|
|
21
|
-
setup(o, { expose:
|
|
22
|
-
const t = o, a =
|
|
23
|
-
|
|
21
|
+
setup(o, { expose: w, emit: y }) {
|
|
22
|
+
const t = o, a = y, e = g(0), c = g(null);
|
|
23
|
+
C(
|
|
24
24
|
() => t.items,
|
|
25
25
|
() => {
|
|
26
26
|
e.value = 0, d();
|
|
27
27
|
}
|
|
28
28
|
);
|
|
29
29
|
function d() {
|
|
30
|
-
|
|
30
|
+
D(() => {
|
|
31
31
|
if (!c.value) return;
|
|
32
32
|
const i = c.value.querySelector(".tql-completion-item.selected");
|
|
33
33
|
i && i.scrollIntoView({ block: "nearest" });
|
|
@@ -51,7 +51,7 @@ const U = ["id", "aria-activedescendant"], V = { class: "tql-completion-list" },
|
|
|
51
51
|
break;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
function
|
|
54
|
+
function b(i) {
|
|
55
55
|
return {
|
|
56
56
|
field: "pi pi-tag",
|
|
57
57
|
operator: "pi pi-code",
|
|
@@ -65,10 +65,10 @@ const U = ["id", "aria-activedescendant"], V = { class: "tql-completion-list" },
|
|
|
65
65
|
visualization: "pi pi-chart-line"
|
|
66
66
|
}[i] || "pi pi-circle";
|
|
67
67
|
}
|
|
68
|
-
function
|
|
68
|
+
function q(i) {
|
|
69
69
|
return `tql-completion-kind-${i}`;
|
|
70
70
|
}
|
|
71
|
-
const
|
|
71
|
+
const $ = L(() => ({
|
|
72
72
|
"--dropdown-top": `${t.position.top}px`,
|
|
73
73
|
"--dropdown-left": `${t.position.left}px`,
|
|
74
74
|
"--dropdown-max-height": `${t.maxHeight || 300}px`
|
|
@@ -77,11 +77,11 @@ const U = ["id", "aria-activedescendant"], V = { class: "tql-completion-list" },
|
|
|
77
77
|
const r = i.target;
|
|
78
78
|
c.value && !c.value.contains(r) && a("close");
|
|
79
79
|
}
|
|
80
|
-
return
|
|
80
|
+
return T(() => {
|
|
81
81
|
document.addEventListener("keydown", k), document.addEventListener("mousedown", h);
|
|
82
|
-
}),
|
|
82
|
+
}), S(() => {
|
|
83
83
|
document.removeEventListener("keydown", k), document.removeEventListener("mousedown", h);
|
|
84
|
-
}),
|
|
84
|
+
}), w({
|
|
85
85
|
selectCurrent: () => {
|
|
86
86
|
t.items[e.value] && a("select", t.items[e.value]);
|
|
87
87
|
},
|
|
@@ -91,52 +91,49 @@ const U = ["id", "aria-activedescendant"], V = { class: "tql-completion-list" },
|
|
|
91
91
|
moveDown: () => {
|
|
92
92
|
e.value = (e.value + 1) % t.items.length, d();
|
|
93
93
|
}
|
|
94
|
-
}), (i, r) => {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
94
|
+
}), (i, r) => (l(), B(M, { to: "body" }, [
|
|
95
|
+
o.visible && o.items.length > 0 ? (l(), s("div", {
|
|
96
|
+
key: 0,
|
|
97
|
+
id: o.id,
|
|
98
|
+
ref_key: "listRef",
|
|
99
|
+
ref: c,
|
|
100
|
+
class: "tql-autocomplete-dropdown",
|
|
101
|
+
style: A($.value),
|
|
102
|
+
role: "listbox",
|
|
103
|
+
"aria-label": "TQL completions",
|
|
104
|
+
"aria-activedescendant": o.items[e.value] ? `${o.id}-option-${e.value}` : void 0,
|
|
105
|
+
onPointerdown: r[0] || (r[0] = z(() => {
|
|
106
|
+
}, ["stop"]))
|
|
107
|
+
}, [
|
|
108
|
+
u("div", U, [
|
|
109
|
+
(l(!0), s(H, null, I(o.items, (n, p) => (l(), s("div", {
|
|
110
|
+
id: `${o.id}-option-${p}`,
|
|
111
|
+
key: `${n.kind}-${n.label}`,
|
|
112
|
+
class: f(["tql-completion-item", { selected: p === e.value }]),
|
|
113
|
+
role: "option",
|
|
114
|
+
"aria-selected": p === e.value,
|
|
115
|
+
onClick: (x) => a("select", n),
|
|
116
|
+
onMouseenter: (x) => e.value = p
|
|
117
|
+
}, [
|
|
118
|
+
u("span", {
|
|
119
|
+
class: f(["tql-completion-icon", q(n.kind)])
|
|
119
120
|
}, [
|
|
120
|
-
u("
|
|
121
|
-
class: f(
|
|
122
|
-
},
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
(g = o.items[e.value]) != null && g.documentation ? (l(), s("div", F, m(o.items[e.value].documentation), 1)) : v("", !0)
|
|
135
|
-
], 44, U)) : v("", !0)
|
|
136
|
-
]);
|
|
137
|
-
};
|
|
121
|
+
u("i", {
|
|
122
|
+
class: f(b(n.kind))
|
|
123
|
+
}, null, 2)
|
|
124
|
+
], 2),
|
|
125
|
+
u("span", _, [
|
|
126
|
+
u("span", N, m(n.label), 1),
|
|
127
|
+
n.detail ? (l(), s("span", O, m(n.detail), 1)) : v("", !0)
|
|
128
|
+
]),
|
|
129
|
+
n.kind ? (l(), s("span", P, m(n.kind), 1)) : v("", !0)
|
|
130
|
+
], 42, V))), 128))
|
|
131
|
+
]),
|
|
132
|
+
o.items[e.value]?.documentation ? (l(), s("div", R, m(o.items[e.value].documentation), 1)) : v("", !0)
|
|
133
|
+
], 44, K)) : v("", !0)
|
|
134
|
+
]));
|
|
138
135
|
}
|
|
139
136
|
});
|
|
140
137
|
export {
|
|
141
|
-
|
|
138
|
+
Q as default
|
|
142
139
|
};
|
package/dist/vue/TqlInput.vue.js
CHANGED
|
@@ -2,7 +2,7 @@ import o from "./TqlInput.vue2.js";
|
|
|
2
2
|
/* empty css */
|
|
3
3
|
/* empty css */
|
|
4
4
|
import t from "../_virtual/_plugin-vue_export-helper.js";
|
|
5
|
-
const _ = /* @__PURE__ */ t(o, [["__scopeId", "data-v-
|
|
5
|
+
const _ = /* @__PURE__ */ t(o, [["__scopeId", "data-v-b501ae88"]]);
|
|
6
6
|
export {
|
|
7
7
|
_ as default
|
|
8
8
|
};
|