@jskit-ai/assistant-core 0.1.166 → 0.1.168
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/examples/conversation/package.json +3 -3
- package/fixtures/responsive-assistant/ConversationFixture.vue +45 -0
- package/fixtures/responsive-assistant/main.js +2 -1
- package/package.json +5 -5
- package/src/client/conversation/AssistantPromptInput.vue +20 -6
- package/src/server/conversation/codexClient.js +27 -11
- package/test/assistantScroll.browser.test.js +47 -0
- package/test/codexClient.test.js +82 -0
- package/examples/conversation/dist/assets/index-CSTXm6q3.css +0 -1
- package/examples/conversation/dist/assets/index-DGgOLzoo.js +0 -30
- package/examples/conversation/dist/index.html +0 -4
- package/examples/conversation/node_modules/.vite/deps/@mdi_js.js +0 -7450
- package/examples/conversation/node_modules/.vite/deps/@mdi_js.js.map +0 -1
- package/examples/conversation/node_modules/.vite/deps/VTooltip-jIxO6ULs.js +0 -2311
- package/examples/conversation/node_modules/.vite/deps/VTooltip-jIxO6ULs.js.map +0 -1
- package/examples/conversation/node_modules/.vite/deps/_metadata.json +0 -70
- package/examples/conversation/node_modules/.vite/deps/defineComponent-DK6LSjDW.js +0 -710
- package/examples/conversation/node_modules/.vite/deps/defineComponent-DK6LSjDW.js.map +0 -1
- package/examples/conversation/node_modules/.vite/deps/hotkey-parsing-DnoZxtbW.js +0 -1214
- package/examples/conversation/node_modules/.vite/deps/hotkey-parsing-DnoZxtbW.js.map +0 -1
- package/examples/conversation/node_modules/.vite/deps/icons-ze2hmg7j.js +0 -98
- package/examples/conversation/node_modules/.vite/deps/icons-ze2hmg7j.js.map +0 -1
- package/examples/conversation/node_modules/.vite/deps/package.json +0 -3
- package/examples/conversation/node_modules/.vite/deps/theme-D78LVcJg.js +0 -1301
- package/examples/conversation/node_modules/.vite/deps/theme-D78LVcJg.js.map +0 -1
- package/examples/conversation/node_modules/.vite/deps/vue.js +0 -2
- package/examples/conversation/node_modules/.vite/deps/vue.runtime.esm-bundler-YcakWsDn.js +0 -8538
- package/examples/conversation/node_modules/.vite/deps/vue.runtime.esm-bundler-YcakWsDn.js.map +0 -1
- package/examples/conversation/node_modules/.vite/deps/vuetify.js +0 -413
- package/examples/conversation/node_modules/.vite/deps/vuetify.js.map +0 -1
- package/examples/conversation/node_modules/.vite/deps/vuetify_components.js +0 -25370
- package/examples/conversation/node_modules/.vite/deps/vuetify_components.js.map +0 -1
- package/examples/conversation/node_modules/.vite/deps/vuetify_directives.js +0 -132
- package/examples/conversation/node_modules/.vite/deps/vuetify_directives.js.map +0 -1
- package/examples/conversation/node_modules/.vite/deps/vuetify_iconsets_mdi-svg.js +0 -70
- package/examples/conversation/node_modules/.vite/deps/vuetify_iconsets_mdi-svg.js.map +0 -1
|
@@ -1,413 +0,0 @@
|
|
|
1
|
-
import { Mn as effectScope, Ot as nextTick, U as computed, Vn as onScopeDispose, Wn as reactive, er as toValue, gn as watch, pt as h } from "./vue.runtime.esm-bundler-YcakWsDn.js";
|
|
2
|
-
import { G as isObject, Z as mergeDeep, a as createDefaults, i as DefaultsSymbol, s as useDefaults, t as defineComponent, u as propsFactory, ut as IN_BROWSER } from "./defineComponent-DK6LSjDW.js";
|
|
3
|
-
import { a as useTheme, c as createDisplay, d as LocaleSymbol, f as createLocale, h as useRtl, m as useLocale, n as createTheme, o as DisplaySymbol, t as ThemeSymbol, u as useDisplay } from "./theme-D78LVcJg.js";
|
|
4
|
-
import { o as VSvgIcon, r as VClassIcon, t as IconSymbol } from "./icons-ze2hmg7j.js";
|
|
5
|
-
import { _ as useDate, d as createGoTo, f as useGoTo, h as createDate, m as DateOptionsSymbol, n as splitKeySequence, p as DateAdapterSymbol, s as useLayout, t as splitKeyCombination, u as GoToSymbol } from "./hotkey-parsing-DnoZxtbW.js";
|
|
6
|
-
//#region ../../../../node_modules/vuetify/lib/iconsets/mdi.js
|
|
7
|
-
var aliases = {
|
|
8
|
-
collapse: "mdi-chevron-up",
|
|
9
|
-
complete: "mdi-check",
|
|
10
|
-
cancel: "mdi-close-circle",
|
|
11
|
-
close: "mdi-close",
|
|
12
|
-
delete: "mdi-close-circle",
|
|
13
|
-
clear: "mdi-close-circle",
|
|
14
|
-
success: "mdi-check-circle",
|
|
15
|
-
info: "mdi-information",
|
|
16
|
-
warning: "mdi-alert-circle",
|
|
17
|
-
error: "mdi-close-circle",
|
|
18
|
-
prev: "mdi-chevron-left",
|
|
19
|
-
next: "mdi-chevron-right",
|
|
20
|
-
checkboxOn: "mdi-checkbox-marked",
|
|
21
|
-
checkboxOff: "mdi-checkbox-blank-outline",
|
|
22
|
-
checkboxIndeterminate: "mdi-minus-box",
|
|
23
|
-
delimiter: "mdi-circle",
|
|
24
|
-
sortAsc: "mdi-arrow-up",
|
|
25
|
-
sortDesc: "mdi-arrow-down",
|
|
26
|
-
expand: "mdi-chevron-down",
|
|
27
|
-
menu: "mdi-menu",
|
|
28
|
-
subgroup: "mdi-menu-down",
|
|
29
|
-
dropdown: "mdi-menu-down",
|
|
30
|
-
radioOn: "mdi-radiobox-marked",
|
|
31
|
-
radioOff: "mdi-radiobox-blank",
|
|
32
|
-
edit: "mdi-pencil",
|
|
33
|
-
ratingEmpty: "mdi-star-outline",
|
|
34
|
-
ratingFull: "mdi-star",
|
|
35
|
-
ratingHalf: "mdi-star-half-full",
|
|
36
|
-
loading: "mdi-cached",
|
|
37
|
-
first: "mdi-page-first",
|
|
38
|
-
last: "mdi-page-last",
|
|
39
|
-
unfold: "mdi-unfold-more-horizontal",
|
|
40
|
-
file: "mdi-paperclip",
|
|
41
|
-
plus: "mdi-plus",
|
|
42
|
-
minus: "mdi-minus",
|
|
43
|
-
calendar: "mdi-calendar",
|
|
44
|
-
treeviewCollapse: "mdi-menu-down",
|
|
45
|
-
treeviewExpand: "mdi-menu-right",
|
|
46
|
-
tableGroupCollapse: "mdi-chevron-down",
|
|
47
|
-
tableGroupExpand: "mdi-chevron-right",
|
|
48
|
-
eyeDropper: "mdi-eyedropper",
|
|
49
|
-
upload: "mdi-cloud-upload",
|
|
50
|
-
color: "mdi-palette",
|
|
51
|
-
command: "mdi-apple-keyboard-command",
|
|
52
|
-
ctrl: "mdi-apple-keyboard-control",
|
|
53
|
-
space: "mdi-keyboard-space",
|
|
54
|
-
shift: "mdi-apple-keyboard-shift",
|
|
55
|
-
alt: "mdi-apple-keyboard-option",
|
|
56
|
-
enter: "mdi-keyboard-return",
|
|
57
|
-
arrowup: "mdi-arrow-up",
|
|
58
|
-
arrowdown: "mdi-arrow-down",
|
|
59
|
-
arrowleft: "mdi-arrow-left",
|
|
60
|
-
arrowright: "mdi-arrow-right",
|
|
61
|
-
backspace: "mdi-backspace",
|
|
62
|
-
play: "mdi-play",
|
|
63
|
-
pause: "mdi-pause",
|
|
64
|
-
fullscreen: "mdi-fullscreen",
|
|
65
|
-
fullscreenExit: "mdi-fullscreen-exit",
|
|
66
|
-
volumeHigh: "mdi-volume-high",
|
|
67
|
-
volumeMedium: "mdi-volume-medium",
|
|
68
|
-
volumeLow: "mdi-volume-low",
|
|
69
|
-
volumeOff: "mdi-volume-variant-off",
|
|
70
|
-
search: "mdi-magnify"
|
|
71
|
-
};
|
|
72
|
-
var mdi = { component: (props) => h(VClassIcon, {
|
|
73
|
-
...props,
|
|
74
|
-
class: "mdi"
|
|
75
|
-
}) };
|
|
76
|
-
//#endregion
|
|
77
|
-
//#region ../../../../node_modules/vuetify/lib/icons.js
|
|
78
|
-
function genDefaults() {
|
|
79
|
-
return {
|
|
80
|
-
svg: { component: VSvgIcon },
|
|
81
|
-
class: { component: VClassIcon }
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
function createIcons(options) {
|
|
85
|
-
const sets = genDefaults();
|
|
86
|
-
const defaultSet = options?.defaultSet ?? "mdi";
|
|
87
|
-
if (defaultSet === "mdi" && !sets.mdi) sets.mdi = mdi;
|
|
88
|
-
return mergeDeep({
|
|
89
|
-
defaultSet,
|
|
90
|
-
sets,
|
|
91
|
-
aliases: {
|
|
92
|
-
...aliases,
|
|
93
|
-
vuetify: ["M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z", ["M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z", .6]],
|
|
94
|
-
"vuetify-outline": "svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z",
|
|
95
|
-
"vuetify-play": ["m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z", ["M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z", .6]]
|
|
96
|
-
}
|
|
97
|
-
}, options);
|
|
98
|
-
}
|
|
99
|
-
//#endregion
|
|
100
|
-
//#region ../../../../node_modules/vuetify/lib/composables/hotkey/hotkey.js
|
|
101
|
-
function useHotkey(keys, callback, options = {}) {
|
|
102
|
-
if (!IN_BROWSER) return function() {};
|
|
103
|
-
const { event = "keydown", inputs = false, preventDefault = true, sequenceTimeout = 1e3 } = options;
|
|
104
|
-
const isMac = navigator?.userAgent?.includes("Macintosh") ?? false;
|
|
105
|
-
let timeout = 0;
|
|
106
|
-
let keyGroups;
|
|
107
|
-
let isSequence = false;
|
|
108
|
-
let groupIndex = 0;
|
|
109
|
-
function isInputFocused() {
|
|
110
|
-
if (toValue(inputs)) return false;
|
|
111
|
-
const activeElement = document.activeElement;
|
|
112
|
-
return activeElement && (activeElement.tagName === "INPUT" || activeElement.tagName === "TEXTAREA" || activeElement.isContentEditable || activeElement.contentEditable === "true");
|
|
113
|
-
}
|
|
114
|
-
function resetSequence() {
|
|
115
|
-
groupIndex = 0;
|
|
116
|
-
clearTimeout(timeout);
|
|
117
|
-
}
|
|
118
|
-
function handler(e) {
|
|
119
|
-
const group = keyGroups[groupIndex];
|
|
120
|
-
if (!group || isInputFocused()) return;
|
|
121
|
-
if (!matchesKeyGroup(e, group, isMac)) {
|
|
122
|
-
if (isSequence) resetSequence();
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
if (toValue(preventDefault)) e.preventDefault();
|
|
126
|
-
if (!isSequence) {
|
|
127
|
-
callback(e);
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
clearTimeout(timeout);
|
|
131
|
-
groupIndex++;
|
|
132
|
-
if (groupIndex === keyGroups.length) {
|
|
133
|
-
callback(e);
|
|
134
|
-
resetSequence();
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
timeout = window.setTimeout(resetSequence, toValue(sequenceTimeout));
|
|
138
|
-
}
|
|
139
|
-
function cleanup() {
|
|
140
|
-
window.removeEventListener(toValue(event), handler);
|
|
141
|
-
clearTimeout(timeout);
|
|
142
|
-
}
|
|
143
|
-
watch(() => toValue(keys), (newKeys) => {
|
|
144
|
-
cleanup();
|
|
145
|
-
if (newKeys) {
|
|
146
|
-
const groups = splitKeySequence(newKeys.toLowerCase());
|
|
147
|
-
isSequence = groups.length > 1;
|
|
148
|
-
keyGroups = groups;
|
|
149
|
-
resetSequence();
|
|
150
|
-
window.addEventListener(toValue(event), handler);
|
|
151
|
-
}
|
|
152
|
-
}, { immediate: true });
|
|
153
|
-
watch(() => toValue(event), (newEvent, oldEvent) => {
|
|
154
|
-
if (oldEvent && keyGroups && keyGroups.length > 0) {
|
|
155
|
-
window.removeEventListener(oldEvent, handler);
|
|
156
|
-
window.addEventListener(newEvent, handler);
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
onScopeDispose(cleanup, true);
|
|
160
|
-
return cleanup;
|
|
161
|
-
}
|
|
162
|
-
function matchesKeyGroup(e, group, isMac) {
|
|
163
|
-
const { modifiers, actualKey } = parseKeyGroup(group);
|
|
164
|
-
const expectCtrl = modifiers.ctrl || !isMac && (modifiers.cmd || modifiers.meta);
|
|
165
|
-
const expectMeta = isMac && (modifiers.cmd || modifiers.meta);
|
|
166
|
-
return e.ctrlKey === expectCtrl && e.metaKey === expectMeta && e.shiftKey === modifiers.shift && e.altKey === modifiers.alt && e.key.toLowerCase() === actualKey?.toLowerCase();
|
|
167
|
-
}
|
|
168
|
-
function parseKeyGroup(group) {
|
|
169
|
-
const MODIFIERS = [
|
|
170
|
-
"ctrl",
|
|
171
|
-
"shift",
|
|
172
|
-
"alt",
|
|
173
|
-
"meta",
|
|
174
|
-
"cmd"
|
|
175
|
-
];
|
|
176
|
-
const { keys: parts } = splitKeyCombination(group.toLowerCase());
|
|
177
|
-
if (parts.length === 0) return {
|
|
178
|
-
modifiers: Object.fromEntries(MODIFIERS.map((m) => [m, false])),
|
|
179
|
-
actualKey: void 0
|
|
180
|
-
};
|
|
181
|
-
const modifiers = Object.fromEntries(MODIFIERS.map((m) => [m, false]));
|
|
182
|
-
let actualKey;
|
|
183
|
-
for (const part of parts) if (MODIFIERS.includes(part)) modifiers[part] = true;
|
|
184
|
-
else actualKey = part;
|
|
185
|
-
return {
|
|
186
|
-
modifiers,
|
|
187
|
-
actualKey
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
propsFactory({ mask: [String, Object] }, "mask");
|
|
191
|
-
var defaultDelimiters = /[-!$%^&*()_+|~=`{}[\]:";'<>?,./\\ ]/;
|
|
192
|
-
var presets = {
|
|
193
|
-
"credit-card": "#### - #### - #### - ####",
|
|
194
|
-
date: "##/##/####",
|
|
195
|
-
"date-time": "##/##/#### ##:##",
|
|
196
|
-
"iso-date": "####-##-##",
|
|
197
|
-
"iso-date-time": "####-##-## ##:##",
|
|
198
|
-
phone: "(###) ### - ####",
|
|
199
|
-
social: "###-##-####",
|
|
200
|
-
time: "##:##",
|
|
201
|
-
"time-with-seconds": "##:##:##"
|
|
202
|
-
};
|
|
203
|
-
var defaultTokens = {
|
|
204
|
-
"#": { pattern: /[0-9]/ },
|
|
205
|
-
A: {
|
|
206
|
-
pattern: /[A-Z]/i,
|
|
207
|
-
convert: (v) => v.toUpperCase()
|
|
208
|
-
},
|
|
209
|
-
a: {
|
|
210
|
-
pattern: /[a-z]/i,
|
|
211
|
-
convert: (v) => v.toLowerCase()
|
|
212
|
-
},
|
|
213
|
-
N: {
|
|
214
|
-
pattern: /[0-9A-Z]/i,
|
|
215
|
-
convert: (v) => v.toUpperCase()
|
|
216
|
-
},
|
|
217
|
-
n: {
|
|
218
|
-
pattern: /[0-9a-z]/i,
|
|
219
|
-
convert: (v) => v.toLowerCase()
|
|
220
|
-
},
|
|
221
|
-
X: { pattern: defaultDelimiters }
|
|
222
|
-
};
|
|
223
|
-
function useMask(props) {
|
|
224
|
-
const mask = computed(() => {
|
|
225
|
-
if (typeof props.mask === "string") {
|
|
226
|
-
if (props.mask in presets) return presets[props.mask];
|
|
227
|
-
return props.mask;
|
|
228
|
-
}
|
|
229
|
-
return props.mask?.mask ?? "";
|
|
230
|
-
});
|
|
231
|
-
const tokens = computed(() => {
|
|
232
|
-
return {
|
|
233
|
-
...defaultTokens,
|
|
234
|
-
...isObject(props.mask) ? props.mask.tokens : null
|
|
235
|
-
};
|
|
236
|
-
});
|
|
237
|
-
function isMask(char) {
|
|
238
|
-
return char in tokens.value;
|
|
239
|
-
}
|
|
240
|
-
function maskValidates(mask, char) {
|
|
241
|
-
if (char == null || !isMask(mask)) return false;
|
|
242
|
-
const item = tokens.value[mask];
|
|
243
|
-
if (item.pattern) return item.pattern.test(char);
|
|
244
|
-
return item.test(char);
|
|
245
|
-
}
|
|
246
|
-
function convert(mask, char) {
|
|
247
|
-
const item = tokens.value[mask];
|
|
248
|
-
return item.convert ? item.convert(char) : char;
|
|
249
|
-
}
|
|
250
|
-
function maskText(text) {
|
|
251
|
-
const trimmedText = text?.trim().replace(/\s+/g, " ");
|
|
252
|
-
if (trimmedText == null) return "";
|
|
253
|
-
if (!mask.value.length || !trimmedText.length) return trimmedText;
|
|
254
|
-
let textIndex = 0;
|
|
255
|
-
let maskIndex = 0;
|
|
256
|
-
let newText = "";
|
|
257
|
-
while (maskIndex < mask.value.length) {
|
|
258
|
-
const mchar = mask.value[maskIndex];
|
|
259
|
-
const tchar = trimmedText[textIndex];
|
|
260
|
-
if (mchar === "\\") {
|
|
261
|
-
newText += mask.value[maskIndex + 1];
|
|
262
|
-
maskIndex += 2;
|
|
263
|
-
continue;
|
|
264
|
-
}
|
|
265
|
-
if (!isMask(mchar)) {
|
|
266
|
-
newText += mchar;
|
|
267
|
-
if (tchar === mchar) textIndex++;
|
|
268
|
-
} else if (maskValidates(mchar, tchar)) {
|
|
269
|
-
newText += convert(mchar, tchar);
|
|
270
|
-
textIndex++;
|
|
271
|
-
} else break;
|
|
272
|
-
maskIndex++;
|
|
273
|
-
}
|
|
274
|
-
return newText;
|
|
275
|
-
}
|
|
276
|
-
function unmaskText(text) {
|
|
277
|
-
if (text == null) return null;
|
|
278
|
-
if (!mask.value.length || !text.length) return text;
|
|
279
|
-
let textIndex = 0;
|
|
280
|
-
let maskIndex = 0;
|
|
281
|
-
let newText = "";
|
|
282
|
-
while (true) {
|
|
283
|
-
const mchar = mask.value[maskIndex];
|
|
284
|
-
const tchar = text[textIndex];
|
|
285
|
-
if (tchar == null) break;
|
|
286
|
-
if (mchar == null) {
|
|
287
|
-
newText += tchar;
|
|
288
|
-
textIndex++;
|
|
289
|
-
continue;
|
|
290
|
-
}
|
|
291
|
-
if (mchar === "\\") {
|
|
292
|
-
if (tchar === mask.value[maskIndex + 1]) textIndex++;
|
|
293
|
-
maskIndex += 2;
|
|
294
|
-
continue;
|
|
295
|
-
}
|
|
296
|
-
if (maskValidates(mchar, tchar)) {
|
|
297
|
-
newText += tchar;
|
|
298
|
-
textIndex++;
|
|
299
|
-
maskIndex++;
|
|
300
|
-
continue;
|
|
301
|
-
} else if (mchar !== tchar) {
|
|
302
|
-
while (true) {
|
|
303
|
-
const mchar = mask.value[maskIndex++];
|
|
304
|
-
if (mchar == null || maskValidates(mchar, tchar)) break;
|
|
305
|
-
}
|
|
306
|
-
continue;
|
|
307
|
-
}
|
|
308
|
-
textIndex++;
|
|
309
|
-
maskIndex++;
|
|
310
|
-
}
|
|
311
|
-
return newText;
|
|
312
|
-
}
|
|
313
|
-
function isValid(text) {
|
|
314
|
-
if (!text) return false;
|
|
315
|
-
return unmaskText(text) === unmaskText(maskText(text));
|
|
316
|
-
}
|
|
317
|
-
function isComplete(text) {
|
|
318
|
-
if (!text) return false;
|
|
319
|
-
return maskText(text).length === mask.value.length && isValid(text);
|
|
320
|
-
}
|
|
321
|
-
return {
|
|
322
|
-
isValid,
|
|
323
|
-
isComplete,
|
|
324
|
-
mask: maskText,
|
|
325
|
-
unmask: unmaskText
|
|
326
|
-
};
|
|
327
|
-
}
|
|
328
|
-
//#endregion
|
|
329
|
-
//#region ../../../../node_modules/vuetify/lib/framework.js
|
|
330
|
-
function createVuetify(vuetify = {}) {
|
|
331
|
-
const { blueprint, ...rest } = vuetify;
|
|
332
|
-
const options = mergeDeep(blueprint, rest);
|
|
333
|
-
const { aliases = {}, components = {}, directives = {} } = options;
|
|
334
|
-
const scope = effectScope();
|
|
335
|
-
return scope.run(() => {
|
|
336
|
-
const defaults = createDefaults(options.defaults);
|
|
337
|
-
const display = createDisplay(options.display, options.ssr);
|
|
338
|
-
const theme = createTheme(options.theme);
|
|
339
|
-
const icons = createIcons(options.icons);
|
|
340
|
-
const locale = createLocale(options.locale);
|
|
341
|
-
const date = createDate(options.date, locale);
|
|
342
|
-
const goTo = createGoTo(options.goTo, locale);
|
|
343
|
-
function install(app) {
|
|
344
|
-
for (const key in directives) app.directive(key, directives[key]);
|
|
345
|
-
for (const key in components) app.component(key, components[key]);
|
|
346
|
-
for (const key in aliases) app.component(key, defineComponent({
|
|
347
|
-
...aliases[key],
|
|
348
|
-
name: key,
|
|
349
|
-
aliasName: aliases[key].name
|
|
350
|
-
}));
|
|
351
|
-
const appScope = effectScope();
|
|
352
|
-
appScope.run(() => {
|
|
353
|
-
theme.install(app);
|
|
354
|
-
});
|
|
355
|
-
app.onUnmount(() => appScope.stop());
|
|
356
|
-
app.provide(DefaultsSymbol, defaults);
|
|
357
|
-
app.provide(DisplaySymbol, display);
|
|
358
|
-
app.provide(ThemeSymbol, theme);
|
|
359
|
-
app.provide(IconSymbol, icons);
|
|
360
|
-
app.provide(LocaleSymbol, locale);
|
|
361
|
-
app.provide(DateOptionsSymbol, date.options);
|
|
362
|
-
app.provide(DateAdapterSymbol, date.instance);
|
|
363
|
-
app.provide(GoToSymbol, goTo);
|
|
364
|
-
if (IN_BROWSER && options.ssr) {
|
|
365
|
-
if (app.$nuxt) app.$nuxt.hook("app:suspense:resolve", () => {
|
|
366
|
-
display.update();
|
|
367
|
-
});
|
|
368
|
-
else {
|
|
369
|
-
const { mount } = app;
|
|
370
|
-
app.mount = (...args) => {
|
|
371
|
-
const vm = mount(...args);
|
|
372
|
-
nextTick(() => display.update());
|
|
373
|
-
app.mount = mount;
|
|
374
|
-
return vm;
|
|
375
|
-
};
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
if (typeof __VUE_OPTIONS_API__ !== "boolean" || __VUE_OPTIONS_API__) app.mixin({ computed: { $vuetify() {
|
|
379
|
-
return reactive({
|
|
380
|
-
defaults: inject.call(this, DefaultsSymbol),
|
|
381
|
-
display: inject.call(this, DisplaySymbol),
|
|
382
|
-
theme: inject.call(this, ThemeSymbol),
|
|
383
|
-
icons: inject.call(this, IconSymbol),
|
|
384
|
-
locale: inject.call(this, LocaleSymbol),
|
|
385
|
-
date: inject.call(this, DateAdapterSymbol)
|
|
386
|
-
});
|
|
387
|
-
} } });
|
|
388
|
-
}
|
|
389
|
-
function unmount() {
|
|
390
|
-
scope.stop();
|
|
391
|
-
}
|
|
392
|
-
return {
|
|
393
|
-
install,
|
|
394
|
-
unmount,
|
|
395
|
-
defaults,
|
|
396
|
-
display,
|
|
397
|
-
theme,
|
|
398
|
-
icons,
|
|
399
|
-
locale,
|
|
400
|
-
date,
|
|
401
|
-
goTo
|
|
402
|
-
};
|
|
403
|
-
});
|
|
404
|
-
}
|
|
405
|
-
var version = "4.0.0";
|
|
406
|
-
createVuetify.version = version;
|
|
407
|
-
function inject(key) {
|
|
408
|
-
const vm = this.$;
|
|
409
|
-
const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides;
|
|
410
|
-
if (provides && key in provides) return provides[key];
|
|
411
|
-
}
|
|
412
|
-
//#endregion
|
|
413
|
-
export { createVuetify, useDate, useDefaults, useDisplay, useGoTo, useHotkey, useLayout, useLocale, useMask, useRtl, useTheme, version };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vuetify.js","names":[],"sources":["../../../../../../../node_modules/vuetify/lib/iconsets/mdi.js","../../../../../../../node_modules/vuetify/lib/icons.js","../../../../../../../node_modules/vuetify/lib/composables/hotkey/hotkey.js","../../../../../../../node_modules/vuetify/lib/composables/mask/mask.js","../../../../../../../node_modules/vuetify/lib/framework.js"],"sourcesContent":["// Composables\nimport { VClassIcon } from \"../composables/icons.js\"; // Utilities\nimport { h } from 'vue';\n\n// Types\n\nconst aliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle',\n // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle',\n // for carousel\n sortAsc: 'mdi-arrow-up',\n sortDesc: 'mdi-arrow-down',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n calendar: 'mdi-calendar',\n treeviewCollapse: 'mdi-menu-down',\n treeviewExpand: 'mdi-menu-right',\n tableGroupCollapse: 'mdi-chevron-down',\n tableGroupExpand: 'mdi-chevron-right',\n eyeDropper: 'mdi-eyedropper',\n upload: 'mdi-cloud-upload',\n color: 'mdi-palette',\n command: 'mdi-apple-keyboard-command',\n ctrl: 'mdi-apple-keyboard-control',\n space: 'mdi-keyboard-space',\n shift: 'mdi-apple-keyboard-shift',\n alt: 'mdi-apple-keyboard-option',\n enter: 'mdi-keyboard-return',\n arrowup: 'mdi-arrow-up',\n arrowdown: 'mdi-arrow-down',\n arrowleft: 'mdi-arrow-left',\n arrowright: 'mdi-arrow-right',\n backspace: 'mdi-backspace',\n play: 'mdi-play',\n pause: 'mdi-pause',\n fullscreen: 'mdi-fullscreen',\n fullscreenExit: 'mdi-fullscreen-exit',\n volumeHigh: 'mdi-volume-high',\n volumeMedium: 'mdi-volume-medium',\n volumeLow: 'mdi-volume-low',\n volumeOff: 'mdi-volume-variant-off',\n search: 'mdi-magnify'\n};\nconst mdi = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: props => h(VClassIcon, {\n ...props,\n class: 'mdi'\n })\n};\nexport { aliases, mdi };\n//# sourceMappingURL=mdi.js.map","// Composables\nimport { VClassIcon, VSvgIcon } from \"./composables/icons.js\";\nimport { aliases, mdi } from \"./iconsets/mdi.js\"; // Utilities\nimport { mergeDeep } from \"./util/index.js\"; // Types\nfunction genDefaults() {\n return {\n svg: {\n component: VSvgIcon\n },\n class: {\n component: VClassIcon\n }\n };\n}\nexport function createIcons(options) {\n const sets = genDefaults();\n const defaultSet = options?.defaultSet ?? 'mdi';\n if (defaultSet === 'mdi' && !sets.mdi) {\n sets.mdi = mdi;\n }\n return mergeDeep({\n defaultSet,\n sets,\n aliases: {\n ...aliases,\n /* eslint-disable max-len */\n vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],\n 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',\n 'vuetify-play': ['m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z', ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6]]\n /* eslint-enable max-len */\n }\n }, options);\n}\n//# sourceMappingURL=icons.js.map","// Composables\nimport { splitKeyCombination, splitKeySequence } from \"./hotkey-parsing.js\"; // Utilities\nimport { onScopeDispose, toValue, watch } from 'vue';\nimport { IN_BROWSER } from \"../../util/index.js\"; // Types\nexport function useHotkey(keys, callback, options = {}) {\n if (!IN_BROWSER) return function () {};\n const {\n event = 'keydown',\n inputs = false,\n preventDefault = true,\n sequenceTimeout = 1000\n } = options;\n const isMac = navigator?.userAgent?.includes('Macintosh') ?? false;\n let timeout = 0;\n let keyGroups;\n let isSequence = false;\n let groupIndex = 0;\n function isInputFocused() {\n if (toValue(inputs)) return false;\n const activeElement = document.activeElement;\n return activeElement && (activeElement.tagName === 'INPUT' || activeElement.tagName === 'TEXTAREA' || activeElement.isContentEditable || activeElement.contentEditable === 'true');\n }\n function resetSequence() {\n groupIndex = 0;\n clearTimeout(timeout);\n }\n function handler(e) {\n const group = keyGroups[groupIndex];\n if (!group || isInputFocused()) return;\n if (!matchesKeyGroup(e, group, isMac)) {\n if (isSequence) resetSequence();\n return;\n }\n if (toValue(preventDefault)) e.preventDefault();\n if (!isSequence) {\n callback(e);\n return;\n }\n clearTimeout(timeout);\n groupIndex++;\n if (groupIndex === keyGroups.length) {\n callback(e);\n resetSequence();\n return;\n }\n timeout = window.setTimeout(resetSequence, toValue(sequenceTimeout));\n }\n function cleanup() {\n window.removeEventListener(toValue(event), handler);\n clearTimeout(timeout);\n }\n watch(() => toValue(keys), newKeys => {\n cleanup();\n if (newKeys) {\n const groups = splitKeySequence(newKeys.toLowerCase());\n isSequence = groups.length > 1;\n keyGroups = groups;\n resetSequence();\n window.addEventListener(toValue(event), handler);\n }\n }, {\n immediate: true\n });\n\n // Watch for changes in the event type to re-register the listener\n watch(() => toValue(event), (newEvent, oldEvent) => {\n if (oldEvent && keyGroups && keyGroups.length > 0) {\n window.removeEventListener(oldEvent, handler);\n window.addEventListener(newEvent, handler);\n }\n });\n onScopeDispose(cleanup, true);\n return cleanup;\n}\nfunction matchesKeyGroup(e, group, isMac) {\n const {\n modifiers,\n actualKey\n } = parseKeyGroup(group);\n const expectCtrl = modifiers.ctrl || !isMac && (modifiers.cmd || modifiers.meta);\n const expectMeta = isMac && (modifiers.cmd || modifiers.meta);\n return e.ctrlKey === expectCtrl && e.metaKey === expectMeta && e.shiftKey === modifiers.shift && e.altKey === modifiers.alt && e.key.toLowerCase() === actualKey?.toLowerCase();\n}\nfunction parseKeyGroup(group) {\n const MODIFIERS = ['ctrl', 'shift', 'alt', 'meta', 'cmd'];\n\n // Use the shared combination splitting logic\n const {\n keys: parts\n } = splitKeyCombination(group.toLowerCase());\n\n // If the combination is invalid, return empty result\n if (parts.length === 0) {\n return {\n modifiers: Object.fromEntries(MODIFIERS.map(m => [m, false])),\n actualKey: undefined\n };\n }\n const modifiers = Object.fromEntries(MODIFIERS.map(m => [m, false]));\n let actualKey;\n for (const part of parts) {\n if (MODIFIERS.includes(part)) {\n modifiers[part] = true;\n } else {\n actualKey = part;\n }\n }\n return {\n modifiers,\n actualKey\n };\n}\n//# sourceMappingURL=hotkey.js.map","// Utilities\nimport { computed } from 'vue';\nimport { isObject, propsFactory } from \"../../util/index.js\"; // Types\nexport const makeMaskProps = propsFactory({\n mask: [String, Object]\n}, 'mask');\nexport const defaultDelimiters = /[-!$%^&*()_+|~=`{}[\\]:\";'<>?,./\\\\ ]/;\nconst presets = {\n 'credit-card': '#### - #### - #### - ####',\n date: '##/##/####',\n 'date-time': '##/##/#### ##:##',\n 'iso-date': '####-##-##',\n 'iso-date-time': '####-##-## ##:##',\n phone: '(###) ### - ####',\n social: '###-##-####',\n time: '##:##',\n 'time-with-seconds': '##:##:##'\n};\nexport function isMaskDelimiter(char) {\n return char ? defaultDelimiters.test(char) : false;\n}\nconst defaultTokens = {\n '#': {\n pattern: /[0-9]/\n },\n A: {\n pattern: /[A-Z]/i,\n convert: v => v.toUpperCase()\n },\n a: {\n pattern: /[a-z]/i,\n convert: v => v.toLowerCase()\n },\n N: {\n pattern: /[0-9A-Z]/i,\n convert: v => v.toUpperCase()\n },\n n: {\n pattern: /[0-9a-z]/i,\n convert: v => v.toLowerCase()\n },\n X: {\n pattern: defaultDelimiters\n }\n};\nexport function useMask(props) {\n const mask = computed(() => {\n if (typeof props.mask === 'string') {\n if (props.mask in presets) return presets[props.mask];\n return props.mask;\n }\n return props.mask?.mask ?? '';\n });\n const tokens = computed(() => {\n return {\n ...defaultTokens,\n ...(isObject(props.mask) ? props.mask.tokens : null)\n };\n });\n function isMask(char) {\n return char in tokens.value;\n }\n function maskValidates(mask, char) {\n if (char == null || !isMask(mask)) return false;\n const item = tokens.value[mask];\n if (item.pattern) return item.pattern.test(char);\n return item.test(char);\n }\n function convert(mask, char) {\n const item = tokens.value[mask];\n return item.convert ? item.convert(char) : char;\n }\n function maskText(text) {\n const trimmedText = text?.trim().replace(/\\s+/g, ' ');\n if (trimmedText == null) return '';\n if (!mask.value.length || !trimmedText.length) return trimmedText;\n let textIndex = 0;\n let maskIndex = 0;\n let newText = '';\n while (maskIndex < mask.value.length) {\n const mchar = mask.value[maskIndex];\n const tchar = trimmedText[textIndex];\n\n // Escaped character in mask, the next mask character is inserted\n if (mchar === '\\\\') {\n newText += mask.value[maskIndex + 1];\n maskIndex += 2;\n continue;\n }\n if (!isMask(mchar)) {\n newText += mchar;\n if (tchar === mchar) {\n textIndex++;\n }\n } else if (maskValidates(mchar, tchar)) {\n newText += convert(mchar, tchar);\n textIndex++;\n } else {\n break;\n }\n maskIndex++;\n }\n return newText;\n }\n function unmaskText(text) {\n if (text == null) return null;\n if (!mask.value.length || !text.length) return text;\n let textIndex = 0;\n let maskIndex = 0;\n let newText = '';\n while (true) {\n const mchar = mask.value[maskIndex];\n const tchar = text[textIndex];\n if (tchar == null) break;\n if (mchar == null) {\n newText += tchar;\n textIndex++;\n continue;\n }\n\n // Escaped character in mask, skip the next input character\n if (mchar === '\\\\') {\n if (tchar === mask.value[maskIndex + 1]) {\n textIndex++;\n }\n maskIndex += 2;\n continue;\n }\n if (maskValidates(mchar, tchar)) {\n // masked char\n newText += tchar;\n textIndex++;\n maskIndex++;\n continue;\n } else if (mchar !== tchar) {\n // input doesn't match mask, skip forward until it does\n while (true) {\n const mchar = mask.value[maskIndex++];\n if (mchar == null || maskValidates(mchar, tchar)) break;\n }\n continue;\n }\n textIndex++;\n maskIndex++;\n }\n return newText;\n }\n function isValid(text) {\n if (!text) return false;\n return unmaskText(text) === unmaskText(maskText(text));\n }\n function isComplete(text) {\n if (!text) return false;\n const maskedText = maskText(text);\n return maskedText.length === mask.value.length && isValid(text);\n }\n return {\n isValid,\n isComplete,\n mask: maskText,\n unmask: unmaskText\n };\n}\n//# sourceMappingURL=mask.js.map","// Composables\nimport { createIcons } from \"./icons.js\";\nimport { createDate, DateAdapterSymbol, DateOptionsSymbol } from \"./composables/date/date.js\";\nimport { createDefaults, DefaultsSymbol } from \"./composables/defaults.js\";\nimport { createDisplay, DisplaySymbol } from \"./composables/display.js\";\nimport { createGoTo, GoToSymbol } from \"./composables/goto.js\";\nimport { IconSymbol } from \"./composables/icons.js\";\nimport { createLocale, LocaleSymbol } from \"./composables/locale.js\";\nimport { createTheme, ThemeSymbol } from \"./composables/theme.js\"; // Utilities\nimport { effectScope, nextTick, reactive } from 'vue';\nimport { defineComponent, IN_BROWSER, mergeDeep } from \"./util/index.js\"; // Types\n// Exports\nexport * from \"./composables/index.js\";\nexport * from \"./types.js\";\nexport function createVuetify(vuetify = {}) {\n const {\n blueprint,\n ...rest\n } = vuetify;\n const options = mergeDeep(blueprint, rest);\n const {\n aliases = {},\n components = {},\n directives = {}\n } = options;\n const scope = effectScope();\n return scope.run(() => {\n const defaults = createDefaults(options.defaults);\n const display = createDisplay(options.display, options.ssr);\n const theme = createTheme(options.theme);\n const icons = createIcons(options.icons);\n const locale = createLocale(options.locale);\n const date = createDate(options.date, locale);\n const goTo = createGoTo(options.goTo, locale);\n function install(app) {\n for (const key in directives) {\n app.directive(key, directives[key]);\n }\n for (const key in components) {\n app.component(key, components[key]);\n }\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n aliasName: aliases[key].name\n }));\n }\n const appScope = effectScope();\n appScope.run(() => {\n theme.install(app);\n });\n app.onUnmount(() => appScope.stop());\n app.provide(DefaultsSymbol, defaults);\n app.provide(DisplaySymbol, display);\n app.provide(ThemeSymbol, theme);\n app.provide(IconSymbol, icons);\n app.provide(LocaleSymbol, locale);\n app.provide(DateOptionsSymbol, date.options);\n app.provide(DateAdapterSymbol, date.instance);\n app.provide(GoToSymbol, goTo);\n if (IN_BROWSER && options.ssr) {\n if (app.$nuxt) {\n app.$nuxt.hook('app:suspense:resolve', () => {\n display.update();\n });\n } else {\n const {\n mount\n } = app;\n app.mount = (...args) => {\n const vm = mount(...args);\n nextTick(() => display.update());\n app.mount = mount;\n return vm;\n };\n }\n }\n if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {\n app.mixin({\n computed: {\n $vuetify() {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleSymbol),\n date: inject.call(this, DateAdapterSymbol)\n });\n }\n }\n });\n }\n }\n function unmount() {\n scope.stop();\n }\n return {\n install,\n unmount,\n defaults,\n display,\n theme,\n icons,\n locale,\n date,\n goTo\n };\n });\n}\nexport const version = \"4.0.0\";\ncreateVuetify.version = version;\n\n// Vue's inject() can only be used in setup\nfunction inject(key) {\n const vm = this.$;\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides;\n if (provides && key in provides) {\n return provides[key];\n }\n}\n//# sourceMappingURL=framework.js.map"],"x_google_ignoreList":[0,1,2,3,4],"mappings":"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"}
|