@fastkit/vui 0.8.18 → 0.10.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/LICENSE +21 -0
- package/README.md +4 -1
- package/dist/tool/index.js +16 -23
- package/dist/vui.cjs.js +418 -736
- package/dist/vui.cjs.prod.js +418 -736
- package/dist/vui.css +6 -0
- package/dist/vui.d.ts +108 -75
- package/dist/vui.min.css +1 -1
- package/dist/vui.min.css.map +1 -1
- package/dist/vui.mjs +417 -730
- package/package.json +37 -16
- package/src/components/VBreadcrumbs/VBreadcrumbs.tsx +1 -1
- package/src/components/VBusyImage/VBusyImage.tsx +3 -3
- package/src/components/VButton/VButton.scss +8 -0
- package/src/components/VButton/VButton.tsx +9 -0
- package/src/components/VDataTable/VDataTable.tsx +9 -5
- package/src/components/VListTile/VListTile.tsx +4 -2
- package/src/components/VNavigation/VNavigation.tsx +13 -4
- package/src/components/VNavigation/VNavigationItem.tsx +25 -7
- package/src/components/VSelect/VSelect.tsx +20 -9
- package/src/components/VWysiwygEditor/VWysiwygEditor.tsx +1 -1
- package/src/plugin.tsx +1 -1
- package/src/service.tsx +7 -2
- package/src/styles/core/functions.scss +1 -1
package/dist/vui.cjs.prod.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
3
|
var vueKit = require('@fastkit/vue-kit');
|
|
6
4
|
var vue = require('vue');
|
|
7
5
|
var vueRouter = require('vue-router');
|
|
@@ -14,7 +12,7 @@ var iconFont = require('@fastkit/icon-font');
|
|
|
14
12
|
var vueAppLayout = require('@fastkit/vue-app-layout');
|
|
15
13
|
var vueFormControl = require('@fastkit/vue-form-control');
|
|
16
14
|
var vue3 = require('@tiptap/vue-3');
|
|
17
|
-
var
|
|
15
|
+
var starterKit = require('@tiptap/starter-kit');
|
|
18
16
|
var core = require('@tiptap/core');
|
|
19
17
|
var prosemirrorView = require('prosemirror-view');
|
|
20
18
|
var prosemirrorState = require('prosemirror-state');
|
|
@@ -28,11 +26,6 @@ var rules = require('@fastkit/rules');
|
|
|
28
26
|
var extensionOrderedList = require('@tiptap/extension-ordered-list');
|
|
29
27
|
var TextStyle = require('@tiptap/extension-text-style');
|
|
30
28
|
|
|
31
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e["default"] : e; }
|
|
32
|
-
|
|
33
|
-
var StarterKit__default = /*#__PURE__*/_interopDefaultLegacy(StarterKit);
|
|
34
|
-
var TextStyle__default = /*#__PURE__*/_interopDefaultLegacy(TextStyle);
|
|
35
|
-
|
|
36
29
|
const CONTROL_SIZES = ['sm', 'md', 'lg'];
|
|
37
30
|
const CONTROL_FIELD_VARIANTS = ['outlined', 'filled', 'flat'];
|
|
38
31
|
const CONTROL_LOADING_SPINNER_SIZES = {
|
|
@@ -150,6 +143,7 @@ function useControlField(props, opts = {}) {
|
|
|
150
143
|
return provider;
|
|
151
144
|
}
|
|
152
145
|
|
|
146
|
+
// export function toRawIconProp<T = void>(
|
|
153
147
|
// prop: RawIconProp<T>,
|
|
154
148
|
// payload: () => T,
|
|
155
149
|
// ): RawIconProp {
|
|
@@ -163,7 +157,6 @@ function useControlField(props, opts = {}) {
|
|
|
163
157
|
// return fn;
|
|
164
158
|
// }
|
|
165
159
|
// export const rawRawIconProp = [String, Function] as PropType<RawIconProp>;
|
|
166
|
-
|
|
167
160
|
const _rawIconProp = [String, Function];
|
|
168
161
|
function rawIconProp() {
|
|
169
162
|
return _rawIconProp;
|
|
@@ -183,12 +176,12 @@ const iconProps = vueUtils.createPropsOptions({
|
|
|
183
176
|
type: Number
|
|
184
177
|
}
|
|
185
178
|
});
|
|
186
|
-
const VIcon = vue.defineComponent({
|
|
179
|
+
const VIcon = /* @__PURE__ */ vue.defineComponent({
|
|
187
180
|
name: 'VIcon',
|
|
188
|
-
props: {
|
|
181
|
+
props: {
|
|
182
|
+
...iconProps
|
|
189
183
|
},
|
|
190
184
|
emits: {},
|
|
191
|
-
|
|
192
185
|
setup(props, ctx) {
|
|
193
186
|
const iconName = vue.computed(() => props.name);
|
|
194
187
|
const clickable = vue.computed(() => typeof ctx.attrs.onClick !== 'undefined');
|
|
@@ -212,7 +205,6 @@ const VIcon = vue.defineComponent({
|
|
|
212
205
|
"style": bodyStyles.value
|
|
213
206
|
}, null)]);
|
|
214
207
|
}
|
|
215
|
-
|
|
216
208
|
});
|
|
217
209
|
|
|
218
210
|
const {
|
|
@@ -227,7 +219,6 @@ function createRequiredChipRenderer(required, props, vui = useVui()) {
|
|
|
227
219
|
requiredChip
|
|
228
220
|
} = props;
|
|
229
221
|
if (requiredChip === false) return;
|
|
230
|
-
|
|
231
222
|
if (requiredChip) {
|
|
232
223
|
if (typeof requiredChip === 'string') {
|
|
233
224
|
chip = requiredChip;
|
|
@@ -235,22 +226,20 @@ function createRequiredChipRenderer(required, props, vui = useVui()) {
|
|
|
235
226
|
chip = requiredChip();
|
|
236
227
|
}
|
|
237
228
|
}
|
|
238
|
-
|
|
239
229
|
if (chip === undefined) {
|
|
240
230
|
chip = vui.getRequiredChip();
|
|
241
231
|
}
|
|
242
|
-
|
|
243
232
|
return chip;
|
|
244
233
|
};
|
|
245
234
|
}
|
|
246
|
-
const VFormControl = vue.defineComponent({
|
|
235
|
+
const VFormControl = /* @__PURE__ */ vue.defineComponent({
|
|
247
236
|
name: 'VFormControl',
|
|
248
|
-
props: {
|
|
237
|
+
props: {
|
|
238
|
+
...props$8,
|
|
249
239
|
...vueKit.defineSlotsProps(),
|
|
250
240
|
error: Boolean
|
|
251
241
|
},
|
|
252
242
|
emits: emits$8,
|
|
253
|
-
|
|
254
243
|
setup(props, ctx) {
|
|
255
244
|
const vui = useVui();
|
|
256
245
|
const control = vueKit.useFormControl(props, ctx, {
|
|
@@ -263,15 +252,12 @@ const VFormControl = vue.defineComponent({
|
|
|
263
252
|
let {
|
|
264
253
|
hinttipDelay
|
|
265
254
|
} = control;
|
|
266
|
-
|
|
267
255
|
if (hinttipDelay == null) {
|
|
268
256
|
hinttipDelay = vui.setting('hinttipDelay');
|
|
269
257
|
}
|
|
270
|
-
|
|
271
258
|
if (hinttipDelay == null) {
|
|
272
259
|
hinttipDelay = 500;
|
|
273
260
|
}
|
|
274
|
-
|
|
275
261
|
return hinttipDelay;
|
|
276
262
|
});
|
|
277
263
|
ctx.expose(control.expose());
|
|
@@ -326,7 +312,6 @@ const VFormControl = vue.defineComponent({
|
|
|
326
312
|
}, [appends])])])]);
|
|
327
313
|
};
|
|
328
314
|
}
|
|
329
|
-
|
|
330
315
|
});
|
|
331
316
|
|
|
332
317
|
function defineFormSelectorComponent(opts) {
|
|
@@ -342,97 +327,100 @@ function defineFormSelectorComponent(opts) {
|
|
|
342
327
|
} = vueKit.createFormSelectorSettings({
|
|
343
328
|
defaultMultiple
|
|
344
329
|
});
|
|
345
|
-
return vue.defineComponent({
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
330
|
+
return (/* @__PURE__ */ vue.defineComponent({
|
|
331
|
+
name: opts.name,
|
|
332
|
+
props: {
|
|
333
|
+
...props,
|
|
334
|
+
...vueKit.createFormControlProps(),
|
|
335
|
+
...createControlProps(),
|
|
336
|
+
stacked: {
|
|
337
|
+
type: Boolean,
|
|
338
|
+
default: true
|
|
339
|
+
},
|
|
340
|
+
// eslint-disable-next-line vue/require-prop-types
|
|
341
|
+
loadingMessage: {},
|
|
342
|
+
// eslint-disable-next-line vue/require-prop-types
|
|
343
|
+
failedToLoadItemsMessage: {},
|
|
344
|
+
...vueKit.defineSlotsProps()
|
|
353
345
|
},
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
});
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
});
|
|
346
|
+
emits,
|
|
347
|
+
setup(props, ctx) {
|
|
348
|
+
const selectorControl = vueKit.useFormSelectorControl(props, ctx, {
|
|
349
|
+
nodeType,
|
|
350
|
+
defaultMultiple
|
|
351
|
+
});
|
|
352
|
+
const control = useControl(props);
|
|
353
|
+
const vui = useVui();
|
|
354
|
+
const loadingMessageRef = vue.computed(() => {
|
|
355
|
+
const slot = vueKit.resolveVNodeChildOrSlots(props.loadingMessage, vui.setting('loadingMessage'), 'Loading...');
|
|
356
|
+
return slot && slot(vui);
|
|
357
|
+
});
|
|
358
|
+
const failedToLoadItemsMessageRef = vue.computed(() => {
|
|
359
|
+
const slot = vueKit.resolveVNodeChildOrSlots(props.failedToLoadItemsMessage, vui.setting('failedToLoadDataMessage'), 'Failed to load data.');
|
|
360
|
+
return slot && slot(vui);
|
|
361
|
+
});
|
|
362
|
+
return {
|
|
363
|
+
...selectorControl.expose(),
|
|
364
|
+
...control,
|
|
365
|
+
loadingMessageRef,
|
|
366
|
+
failedToLoadItemsMessageRef
|
|
367
|
+
};
|
|
368
|
+
},
|
|
369
|
+
render() {
|
|
370
|
+
const {
|
|
371
|
+
selectorControl
|
|
372
|
+
} = this;
|
|
373
|
+
return vue.createVNode(VFormControl, {
|
|
374
|
+
"nodeControl": this.nodeControl,
|
|
375
|
+
"focused": this.nodeControl.focused,
|
|
376
|
+
"hiddenInfo": this.hiddenInfo,
|
|
377
|
+
"class": ['v-form-selector', className, {
|
|
378
|
+
...this.classes,
|
|
379
|
+
'v-form-selector--stacked': this.stacked
|
|
380
|
+
}],
|
|
381
|
+
"label": this.label,
|
|
382
|
+
"hint": this.hint,
|
|
383
|
+
"hinttip": this.hinttip,
|
|
384
|
+
"requiredChip": this.requiredChip,
|
|
385
|
+
"error": selectorControl.itemsLoadFailed
|
|
386
|
+
}, {
|
|
387
|
+
...this.$slots,
|
|
388
|
+
default: () => vue.createVNode("div", {
|
|
389
|
+
"class": "v-form-selector__body"
|
|
390
|
+
}, [selectorControl.itemsLoadFailed && vue.createVNode("div", {
|
|
391
|
+
"key": "failed",
|
|
392
|
+
"class": "v-form-selector__placeholder v-form-selector__placeholder--error"
|
|
393
|
+
}, [this.failedToLoadItemsMessageRef]), selectorControl.itemsLoading && vue.createVNode("div", {
|
|
394
|
+
"key": "loading",
|
|
395
|
+
"class": "v-form-selector__placeholder"
|
|
396
|
+
}, [vue.createVNode(vueLoading.VProgressCircular, {
|
|
397
|
+
"indeterminate": true,
|
|
398
|
+
"class": "mr-1",
|
|
399
|
+
"size": CONTROL_LOADING_SPINNER_SIZES[this.size || 'md']
|
|
400
|
+
}, null), this.loadingMessageRef]), this.propGroups.map(group => {
|
|
401
|
+
const {
|
|
402
|
+
items
|
|
403
|
+
} = group;
|
|
404
|
+
return vue.createVNode(vue.Fragment, null, [items.map(attrs => {
|
|
405
|
+
const selected = selectorControl.isSelected(attrs.value);
|
|
406
|
+
return itemRenderer({
|
|
407
|
+
selected,
|
|
408
|
+
control: selectorControl,
|
|
409
|
+
attrs: {
|
|
410
|
+
...attrs,
|
|
411
|
+
modelValue: selected,
|
|
412
|
+
key: attrs.value
|
|
413
|
+
},
|
|
414
|
+
slots: {
|
|
415
|
+
default: () => attrs.label(this.selectorControl)
|
|
416
|
+
}
|
|
417
|
+
});
|
|
418
|
+
})]);
|
|
419
|
+
}), vueKit.renderSlotOrEmpty(this.$slots, 'default')])
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
})
|
|
423
|
+
);
|
|
436
424
|
}
|
|
437
425
|
|
|
438
426
|
function createElevationProps() {
|
|
@@ -455,8 +443,7 @@ function useElevation(props, opts = {}) {
|
|
|
455
443
|
function _isSlot$f(s) {
|
|
456
444
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
457
445
|
}
|
|
458
|
-
|
|
459
|
-
const VSkeltonLoaderBone = vue.defineComponent({
|
|
446
|
+
const VSkeltonLoaderBone = /* @__PURE__ */ vue.defineComponent({
|
|
460
447
|
name: 'VSkeltonLoaderBone',
|
|
461
448
|
inheritAttrs: false,
|
|
462
449
|
props: {
|
|
@@ -465,11 +452,9 @@ const VSkeltonLoaderBone = vue.defineComponent({
|
|
|
465
452
|
default: 'div'
|
|
466
453
|
}
|
|
467
454
|
},
|
|
468
|
-
|
|
469
455
|
setup(props, ctx) {
|
|
470
456
|
return () => {
|
|
471
457
|
let _slot;
|
|
472
|
-
|
|
473
458
|
const TagName = props.tag;
|
|
474
459
|
return vue.createVNode(TagName, vue.mergeProps(ctx.attrs, {
|
|
475
460
|
"class": "v-skelton-loader-bone"
|
|
@@ -478,23 +463,20 @@ const VSkeltonLoaderBone = vue.defineComponent({
|
|
|
478
463
|
});
|
|
479
464
|
};
|
|
480
465
|
}
|
|
481
|
-
|
|
482
466
|
});
|
|
483
467
|
|
|
484
468
|
const IMAGE_ATTRS = ['alt', 'crossorigin', 'decoding', 'sizes', 'src', 'srcset', 'usemap'];
|
|
485
469
|
function splitAttrs(attrs) {
|
|
486
|
-
const el = {
|
|
470
|
+
const el = {
|
|
471
|
+
...attrs
|
|
487
472
|
};
|
|
488
473
|
const img = {};
|
|
489
|
-
|
|
490
474
|
for (const ATTR of IMAGE_ATTRS) {
|
|
491
475
|
const value = attrs[ATTR];
|
|
492
|
-
|
|
493
476
|
if (value != null) {
|
|
494
477
|
img[ATTR] = value;
|
|
495
478
|
}
|
|
496
479
|
}
|
|
497
|
-
|
|
498
480
|
return {
|
|
499
481
|
el,
|
|
500
482
|
img
|
|
@@ -502,7 +484,6 @@ function splitAttrs(attrs) {
|
|
|
502
484
|
}
|
|
503
485
|
const NUMBERISH_PROP = [Number, String];
|
|
504
486
|
const DEFAULT_HEIGHT = 150;
|
|
505
|
-
|
|
506
487
|
const resolveBusyImageSizeValue = source => {
|
|
507
488
|
if (source == null) return;
|
|
508
489
|
return isNaN(source) ? String(source) : `${source}px`;
|
|
@@ -511,11 +492,10 @@ const resolveBusyImageSizeValue = source => {
|
|
|
511
492
|
* 画像表示用コンポーネント
|
|
512
493
|
* <img /> タグのように振る舞うが、ローディング表示や、表示サイズの調整など、ちょっといい感じにやるためのコンポーネント
|
|
513
494
|
*/
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
const VBusyImage = vue.defineComponent({
|
|
495
|
+
const VBusyImage = /* @__PURE__ */ vue.defineComponent({
|
|
517
496
|
name: 'VBusyImage',
|
|
518
|
-
props: {
|
|
497
|
+
props: {
|
|
498
|
+
...undefined,
|
|
519
499
|
aspectRatio: String,
|
|
520
500
|
width: NUMBERISH_PROP,
|
|
521
501
|
height: NUMBERISH_PROP,
|
|
@@ -526,9 +506,8 @@ const VBusyImage = vue.defineComponent({
|
|
|
526
506
|
load: ev => true,
|
|
527
507
|
error: ev => true
|
|
528
508
|
},
|
|
529
|
-
|
|
530
509
|
setup(props, ctx) {
|
|
531
|
-
const loadStateRef = vue.ref(props.cover &&
|
|
510
|
+
const loadStateRef = vue.ref(props.cover && isAvailableSrc(ctx.attrs.src) ? 'loading' : 'pending');
|
|
532
511
|
const attrsRef = vue.computed(() => splitAttrs(ctx.attrs));
|
|
533
512
|
const isPendingRef = vue.computed(() => loadStateRef.value === 'pending');
|
|
534
513
|
const isLoadingRef = vue.computed(() => loadStateRef.value === 'loading');
|
|
@@ -550,30 +529,24 @@ const VBusyImage = vue.defineComponent({
|
|
|
550
529
|
width,
|
|
551
530
|
height
|
|
552
531
|
} = props;
|
|
553
|
-
|
|
554
532
|
if (height == null && cover) {
|
|
555
533
|
height = DEFAULT_HEIGHT;
|
|
556
534
|
}
|
|
557
|
-
|
|
558
535
|
if (width == null && cover) {
|
|
559
536
|
width = height;
|
|
560
537
|
}
|
|
561
|
-
|
|
562
538
|
width = resolveBusyImageSizeValue(width);
|
|
563
539
|
height = resolveBusyImageSizeValue(height);
|
|
564
540
|
main.width = width;
|
|
565
541
|
main.height = height;
|
|
566
542
|
placeholder.width = width;
|
|
567
543
|
placeholder.height = height;
|
|
568
|
-
|
|
569
544
|
if (placeholder.height == null) {
|
|
570
545
|
placeholder.height = resolveBusyImageSizeValue(DEFAULT_HEIGHT);
|
|
571
546
|
}
|
|
572
|
-
|
|
573
547
|
if (placeholder.width == null) {
|
|
574
548
|
placeholder.width = placeholder.height;
|
|
575
549
|
}
|
|
576
|
-
|
|
577
550
|
return {
|
|
578
551
|
placeholder,
|
|
579
552
|
main
|
|
@@ -585,22 +558,19 @@ const VBusyImage = vue.defineComponent({
|
|
|
585
558
|
value: coverImage
|
|
586
559
|
} = coverImageRef;
|
|
587
560
|
const coverSrc = coverImage && coverImage.src;
|
|
588
|
-
const styles = {
|
|
561
|
+
const styles = {
|
|
562
|
+
...currentRectRef.value
|
|
589
563
|
};
|
|
590
|
-
|
|
591
564
|
if (coverSrc) {
|
|
592
565
|
styles.backgroundImage = `url(${coverSrc})`;
|
|
593
566
|
}
|
|
594
|
-
|
|
595
567
|
return styles;
|
|
596
568
|
});
|
|
597
569
|
let booted = false;
|
|
598
570
|
vue.watch(() => ctx.attrs.src, value => {
|
|
599
571
|
coverImageRef.value = undefined;
|
|
600
|
-
|
|
601
|
-
if (isAvairableSrc(value)) {
|
|
572
|
+
if (isAvailableSrc(value)) {
|
|
602
573
|
loadStateRef.value = 'loading';
|
|
603
|
-
|
|
604
574
|
if (props.cover) {
|
|
605
575
|
helpers.loadImage(value).then(image => {
|
|
606
576
|
coverImageRef.value = image;
|
|
@@ -615,7 +585,6 @@ const VBusyImage = vue.defineComponent({
|
|
|
615
585
|
}, {
|
|
616
586
|
immediate: helpers.IN_WINDOW
|
|
617
587
|
});
|
|
618
|
-
|
|
619
588
|
const setManualState = loadType => {
|
|
620
589
|
loadStateRef.value = loadType === 'load' ? 'loaded' : 'error';
|
|
621
590
|
const ev = new Event(loadType, {
|
|
@@ -625,13 +594,11 @@ const VBusyImage = vue.defineComponent({
|
|
|
625
594
|
});
|
|
626
595
|
ctx.emit(loadType, ev);
|
|
627
596
|
};
|
|
628
|
-
|
|
629
597
|
vue.onMounted(() => {
|
|
630
598
|
if (booted || props.cover) return;
|
|
631
599
|
const image = nodeRef.value;
|
|
632
600
|
if (!image) return;
|
|
633
601
|
const loadType = imageIsReady(image);
|
|
634
|
-
|
|
635
602
|
if (loadType) {
|
|
636
603
|
setManualState(loadType);
|
|
637
604
|
}
|
|
@@ -639,19 +606,16 @@ const VBusyImage = vue.defineComponent({
|
|
|
639
606
|
vue.onBeforeUnmount(() => {
|
|
640
607
|
coverImageRef.value = undefined;
|
|
641
608
|
});
|
|
642
|
-
|
|
643
609
|
const handleLoad = ev => {
|
|
644
610
|
booted = true;
|
|
645
611
|
loadStateRef.value = 'loaded';
|
|
646
612
|
ctx.emit('load', ev);
|
|
647
613
|
};
|
|
648
|
-
|
|
649
614
|
const handleError = ev => {
|
|
650
615
|
booted = true;
|
|
651
616
|
loadStateRef.value = 'error';
|
|
652
617
|
ctx.emit('error', ev);
|
|
653
618
|
};
|
|
654
|
-
|
|
655
619
|
ctx.expose({
|
|
656
620
|
state: loadStateRef,
|
|
657
621
|
isPending: isPendingRef,
|
|
@@ -682,15 +646,12 @@ const VBusyImage = vue.defineComponent({
|
|
|
682
646
|
}, [children])]);
|
|
683
647
|
};
|
|
684
648
|
}
|
|
685
|
-
|
|
686
649
|
});
|
|
687
|
-
|
|
688
650
|
function imageIsReady(image) {
|
|
689
651
|
if (!image.complete) return false;
|
|
690
652
|
return image.naturalWidth + image.naturalHeight > 0 ? 'load' : 'error';
|
|
691
653
|
}
|
|
692
|
-
|
|
693
|
-
function isAvairableSrc(src) {
|
|
654
|
+
function isAvailableSrc(src) {
|
|
694
655
|
return typeof src === 'string' && src !== '';
|
|
695
656
|
}
|
|
696
657
|
|
|
@@ -703,10 +664,11 @@ function extractRawGridValueClasses(value, prefix, getter) {
|
|
|
703
664
|
}
|
|
704
665
|
// export const DEFAULT_MEDIA_MATCH_KEY = MEDIA_MATCH_CONDITIONS[0].key;
|
|
705
666
|
|
|
706
|
-
const VGridItem = vue.defineComponent({
|
|
667
|
+
const VGridItem = /* @__PURE__ */ vue.defineComponent({
|
|
707
668
|
name: 'VGridItem',
|
|
708
669
|
inheritAttrs: false,
|
|
709
|
-
props: {
|
|
670
|
+
props: {
|
|
671
|
+
...vueUtils.htmlAttributesPropOptions,
|
|
710
672
|
tag: {
|
|
711
673
|
type: String,
|
|
712
674
|
default: 'div'
|
|
@@ -717,11 +679,11 @@ const VGridItem = vue.defineComponent({
|
|
|
717
679
|
justify: undefined,
|
|
718
680
|
order: undefined
|
|
719
681
|
},
|
|
720
|
-
|
|
721
682
|
setup(props, ctx) {
|
|
722
683
|
const data = vue.computed(() => {
|
|
723
684
|
const classes = [];
|
|
724
|
-
const attrs = {
|
|
685
|
+
const attrs = {
|
|
686
|
+
...ctx.attrs
|
|
725
687
|
};
|
|
726
688
|
const {
|
|
727
689
|
size,
|
|
@@ -736,14 +698,14 @@ const VGridItem = vue.defineComponent({
|
|
|
736
698
|
size != null && classes.push(extractRawGridValueClasses(size, 'grid-size-'));
|
|
737
699
|
align && classes.push(extractRawGridValueClasses(align, 'self-align-'));
|
|
738
700
|
justify && classes.push(extractRawGridValueClasses(justify, 'self-justify-'));
|
|
739
|
-
order != null && classes.push(extractRawGridValueClasses(order, 'order-'));
|
|
701
|
+
order != null && classes.push(extractRawGridValueClasses(order, 'order-'));
|
|
702
|
+
// MEDIA_MATCH_CONDITIONS.forEach(({ key }) => {
|
|
740
703
|
// const v = attrs[key];
|
|
741
704
|
// delete attrs[key];
|
|
742
705
|
// if (v != null) {
|
|
743
706
|
// classes.push(`grid-size-${v}--${key}`);
|
|
744
707
|
// }
|
|
745
708
|
// });
|
|
746
|
-
|
|
747
709
|
return {
|
|
748
710
|
classes,
|
|
749
711
|
attrs
|
|
@@ -760,17 +722,16 @@ const VGridItem = vue.defineComponent({
|
|
|
760
722
|
}, attrs), ctx.slots);
|
|
761
723
|
};
|
|
762
724
|
}
|
|
763
|
-
|
|
764
725
|
});
|
|
765
726
|
|
|
766
727
|
function spacingValueToString(value) {
|
|
767
728
|
return Number.isInteger(value) ? String(value) : `${value}h`;
|
|
768
729
|
}
|
|
769
|
-
|
|
770
|
-
const VGridContainer = vue.defineComponent({
|
|
730
|
+
const VGridContainer = /* @__PURE__ */ vue.defineComponent({
|
|
771
731
|
name: 'VGridContainer',
|
|
772
732
|
inheritAttrs: false,
|
|
773
|
-
props: {
|
|
733
|
+
props: {
|
|
734
|
+
...vueUtils.htmlAttributesPropOptions,
|
|
774
735
|
wrapperTag: {
|
|
775
736
|
type: String,
|
|
776
737
|
default: 'div'
|
|
@@ -787,11 +748,11 @@ const VGridContainer = vue.defineComponent({
|
|
|
787
748
|
alignContent: undefined,
|
|
788
749
|
justifyContent: undefined
|
|
789
750
|
},
|
|
790
|
-
|
|
791
751
|
setup(props, ctx) {
|
|
792
752
|
const data = vue.computed(() => {
|
|
793
753
|
const classes = [];
|
|
794
|
-
const attrs = {
|
|
754
|
+
const attrs = {
|
|
755
|
+
...ctx.attrs
|
|
795
756
|
};
|
|
796
757
|
const {
|
|
797
758
|
spacing,
|
|
@@ -812,7 +773,8 @@ const VGridContainer = vue.defineComponent({
|
|
|
812
773
|
delete attrs.direction;
|
|
813
774
|
delete attrs.wrap;
|
|
814
775
|
delete attrs.alignContent;
|
|
815
|
-
delete attrs.justifyContent;
|
|
776
|
+
delete attrs.justifyContent;
|
|
777
|
+
// spacingX = mergeSpacing(spacing, spacingX);
|
|
816
778
|
// spacingY = mergeSpacing(spacing, spacingY);
|
|
817
779
|
// if (!spacingX) {
|
|
818
780
|
// spacingX = spacing;
|
|
@@ -821,7 +783,6 @@ const VGridContainer = vue.defineComponent({
|
|
|
821
783
|
// classes.push(extractRawGridItemValueClasses(align, 'self-align-'));
|
|
822
784
|
// justify &&
|
|
823
785
|
// classes.push(extractRawGridItemValueClasses(justify, 'self-justify-'));
|
|
824
|
-
|
|
825
786
|
spacing != null && classes.push(extractRawGridValueClasses(spacing, 'grid-spacing-', spacingValueToString));
|
|
826
787
|
spacingX != null && classes.push(extractRawGridValueClasses(spacingX, 'grid-spacing-x-', spacingValueToString));
|
|
827
788
|
spacingY != null && classes.push(extractRawGridValueClasses(spacingY, 'grid-spacing-y-', spacingValueToString));
|
|
@@ -855,11 +816,11 @@ const VGridContainer = vue.defineComponent({
|
|
|
855
816
|
});
|
|
856
817
|
};
|
|
857
818
|
}
|
|
858
|
-
|
|
859
819
|
});
|
|
860
820
|
|
|
861
821
|
function createPaperBaseProps() {
|
|
862
|
-
return {
|
|
822
|
+
return {
|
|
823
|
+
...vueUtils.htmlAttributesPropOptions,
|
|
863
824
|
color: String,
|
|
864
825
|
tag: {
|
|
865
826
|
type: [String, Object],
|
|
@@ -869,7 +830,8 @@ function createPaperBaseProps() {
|
|
|
869
830
|
};
|
|
870
831
|
}
|
|
871
832
|
function createPaperProps() {
|
|
872
|
-
return {
|
|
833
|
+
return {
|
|
834
|
+
...createElevationProps(),
|
|
873
835
|
...createPaperBaseProps(),
|
|
874
836
|
square: Boolean,
|
|
875
837
|
headerProps: Object,
|
|
@@ -878,11 +840,10 @@ function createPaperProps() {
|
|
|
878
840
|
innerClass: [String, Array, Object]
|
|
879
841
|
};
|
|
880
842
|
}
|
|
881
|
-
const VPaper = vue.defineComponent({
|
|
843
|
+
const VPaper = /* @__PURE__ */ vue.defineComponent({
|
|
882
844
|
name: 'VPaper',
|
|
883
845
|
inheritAttrs: false,
|
|
884
846
|
props: createPaperProps(),
|
|
885
|
-
|
|
886
847
|
setup(props, ctx) {
|
|
887
848
|
const tag = vue.computed(() => props.tag);
|
|
888
849
|
const elevation = useElevation(props, {
|
|
@@ -916,12 +877,12 @@ const VPaper = vue.defineComponent({
|
|
|
916
877
|
});
|
|
917
878
|
};
|
|
918
879
|
}
|
|
919
|
-
|
|
920
880
|
});
|
|
921
881
|
|
|
922
882
|
const AVATAR_SIZES = ['sm', 'md', 'lg'];
|
|
923
883
|
function createAvatarProps() {
|
|
924
|
-
return {
|
|
884
|
+
return {
|
|
885
|
+
...vueColorScheme.colorSchemeProps(),
|
|
925
886
|
...vueUtils.navigationableInheritProps,
|
|
926
887
|
size: {
|
|
927
888
|
type: [String, Number],
|
|
@@ -933,11 +894,10 @@ function createAvatarProps() {
|
|
|
933
894
|
src: String
|
|
934
895
|
};
|
|
935
896
|
}
|
|
936
|
-
const VAvatar = vue.defineComponent({
|
|
897
|
+
const VAvatar = /* @__PURE__ */ vue.defineComponent({
|
|
937
898
|
name: 'VAvatar',
|
|
938
899
|
inheritAttrs: false,
|
|
939
900
|
props: createAvatarProps(),
|
|
940
|
-
|
|
941
901
|
setup(props, ctx) {
|
|
942
902
|
const vui = useVui();
|
|
943
903
|
const defaults = vui.setting('buttonDefault');
|
|
@@ -987,12 +947,12 @@ const VAvatar = vue.defineComponent({
|
|
|
987
947
|
});
|
|
988
948
|
};
|
|
989
949
|
}
|
|
990
|
-
|
|
991
950
|
});
|
|
992
951
|
|
|
993
952
|
const CHIP_SIZES = ['xs', 'sm', 'md', 'lg', 'xl'];
|
|
994
953
|
function createChipProps() {
|
|
995
|
-
return {
|
|
954
|
+
return {
|
|
955
|
+
...vueColorScheme.colorSchemeProps(),
|
|
996
956
|
...vueUtils.navigationableInheritProps,
|
|
997
957
|
size: {
|
|
998
958
|
type: String,
|
|
@@ -1004,10 +964,8 @@ function createChipProps() {
|
|
|
1004
964
|
disabled: Boolean
|
|
1005
965
|
};
|
|
1006
966
|
}
|
|
1007
|
-
|
|
1008
967
|
function resolveRawVChipIcon(raw, type) {
|
|
1009
968
|
if (!raw) return;
|
|
1010
|
-
|
|
1011
969
|
if (typeof raw === 'function') {
|
|
1012
970
|
return () => {
|
|
1013
971
|
const child = raw();
|
|
@@ -1017,18 +975,15 @@ function resolveRawVChipIcon(raw, type) {
|
|
|
1017
975
|
}, [child]);
|
|
1018
976
|
};
|
|
1019
977
|
}
|
|
1020
|
-
|
|
1021
978
|
return () => vue.createVNode(VIcon, {
|
|
1022
979
|
"class": ['v-chip__icon', `v-chip__icon--${type}`],
|
|
1023
980
|
"name": raw
|
|
1024
981
|
}, null);
|
|
1025
982
|
}
|
|
1026
|
-
|
|
1027
|
-
const VChip = vue.defineComponent({
|
|
983
|
+
const VChip = /* @__PURE__ */ vue.defineComponent({
|
|
1028
984
|
name: 'VChip',
|
|
1029
985
|
inheritAttrs: false,
|
|
1030
986
|
props: createChipProps(),
|
|
1031
|
-
|
|
1032
987
|
setup(props, ctx) {
|
|
1033
988
|
const vui = useVui();
|
|
1034
989
|
const defaults = vui.setting('buttonDefault');
|
|
@@ -1038,12 +993,10 @@ const VChip = vue.defineComponent({
|
|
|
1038
993
|
});
|
|
1039
994
|
const startIcon = vue.computed(() => {
|
|
1040
995
|
const _icon = resolveRawVChipIcon(props.startIcon, 'start');
|
|
1041
|
-
|
|
1042
996
|
return _icon && _icon();
|
|
1043
997
|
});
|
|
1044
998
|
const endIcon = vue.computed(() => {
|
|
1045
999
|
const _icon = resolveRawVChipIcon(props.endIcon, 'end');
|
|
1046
|
-
|
|
1047
1000
|
return _icon && _icon();
|
|
1048
1001
|
});
|
|
1049
1002
|
const navigationable = vueUtils.useNavigationable(ctx, {
|
|
@@ -1072,31 +1025,29 @@ const VChip = vue.defineComponent({
|
|
|
1072
1025
|
});
|
|
1073
1026
|
};
|
|
1074
1027
|
}
|
|
1075
|
-
|
|
1076
1028
|
});
|
|
1077
1029
|
|
|
1078
1030
|
function createCardProps() {
|
|
1079
|
-
return {
|
|
1031
|
+
return {
|
|
1032
|
+
...createPaperProps(),
|
|
1080
1033
|
...vueUtils.navigationableInheritProps,
|
|
1081
1034
|
disabled: Boolean
|
|
1082
1035
|
};
|
|
1083
1036
|
}
|
|
1084
|
-
const VCard = vue.defineComponent({
|
|
1037
|
+
const VCard = /* @__PURE__ */ vue.defineComponent({
|
|
1085
1038
|
name: 'VCard',
|
|
1086
1039
|
inheritAttrs: false,
|
|
1087
1040
|
props: createCardProps(),
|
|
1088
|
-
|
|
1089
1041
|
setup(props, ctx) {
|
|
1090
1042
|
const _props = vue.computed(() => props);
|
|
1091
|
-
|
|
1092
1043
|
const data = vue.computed(() => {
|
|
1093
1044
|
const hasLink = !!ctx.attrs.href || !!ctx.attrs.to;
|
|
1094
|
-
const attrs = {
|
|
1045
|
+
const attrs = {
|
|
1046
|
+
..._props.value,
|
|
1095
1047
|
...ctx.attrs,
|
|
1096
1048
|
class: ['v-card', ctx.attrs.class, typeof ctx.attrs.onClick === 'function' && 'clickable'],
|
|
1097
1049
|
tag: hasLink ? vueUtils.VLink : 'div'
|
|
1098
1050
|
};
|
|
1099
|
-
|
|
1100
1051
|
if (props.disabled) {
|
|
1101
1052
|
attrs.disabled = 'disabled';
|
|
1102
1053
|
delete attrs.onClick;
|
|
@@ -1105,7 +1056,6 @@ const VCard = vue.defineComponent({
|
|
|
1105
1056
|
} else {
|
|
1106
1057
|
delete attrs.disabled;
|
|
1107
1058
|
}
|
|
1108
|
-
|
|
1109
1059
|
return {
|
|
1110
1060
|
attrs
|
|
1111
1061
|
};
|
|
@@ -1114,12 +1064,10 @@ const VCard = vue.defineComponent({
|
|
|
1114
1064
|
return vue.createVNode(VPaper, data.value.attrs, ctx.slots);
|
|
1115
1065
|
};
|
|
1116
1066
|
}
|
|
1117
|
-
|
|
1118
1067
|
});
|
|
1119
1068
|
|
|
1120
|
-
const VCardContent = vue.defineComponent({
|
|
1069
|
+
const VCardContent = /* @__PURE__ */ vue.defineComponent({
|
|
1121
1070
|
name: 'VCardContent',
|
|
1122
|
-
|
|
1123
1071
|
setup(props, ctx) {
|
|
1124
1072
|
return () => {
|
|
1125
1073
|
return vue.createVNode("div", {
|
|
@@ -1127,12 +1075,10 @@ const VCardContent = vue.defineComponent({
|
|
|
1127
1075
|
}, [vueUtils.renderSlotOrEmpty(ctx.slots, 'default')]);
|
|
1128
1076
|
};
|
|
1129
1077
|
}
|
|
1130
|
-
|
|
1131
1078
|
});
|
|
1132
1079
|
|
|
1133
|
-
const VCardActions = vue.defineComponent({
|
|
1080
|
+
const VCardActions = /* @__PURE__ */ vue.defineComponent({
|
|
1134
1081
|
name: 'VCardActions',
|
|
1135
|
-
|
|
1136
1082
|
setup(props, ctx) {
|
|
1137
1083
|
return () => {
|
|
1138
1084
|
return vue.createVNode("div", {
|
|
@@ -1140,9 +1086,9 @@ const VCardActions = vue.defineComponent({
|
|
|
1140
1086
|
}, [vueUtils.renderSlotOrEmpty(ctx.slots, 'default')]);
|
|
1141
1087
|
};
|
|
1142
1088
|
}
|
|
1143
|
-
|
|
1144
1089
|
});
|
|
1145
1090
|
|
|
1091
|
+
const BUTTON_ALIGNS = ['left', 'center', 'right'];
|
|
1146
1092
|
function resolveRawVButtonIcon(raw, type = 'main') {
|
|
1147
1093
|
if (!raw) return;
|
|
1148
1094
|
return typeof raw === 'function' ? raw : () => vue.createVNode(VIcon, {
|
|
@@ -1150,8 +1096,8 @@ function resolveRawVButtonIcon(raw, type = 'main') {
|
|
|
1150
1096
|
"name": raw
|
|
1151
1097
|
}, null);
|
|
1152
1098
|
}
|
|
1153
|
-
|
|
1154
|
-
|
|
1099
|
+
const vueButtonProps = vueUtils.createPropsOptions({
|
|
1100
|
+
...vueUtils.htmlAttributesPropOptions,
|
|
1155
1101
|
...vueColorScheme.colorSchemeProps(),
|
|
1156
1102
|
...vueUtils.navigationableInheritProps,
|
|
1157
1103
|
spacer: [Boolean, String],
|
|
@@ -1159,6 +1105,10 @@ const vueButtonProps = vueUtils.createPropsOptions({ ...vueUtils.htmlAttributesP
|
|
|
1159
1105
|
icon: [String, Function],
|
|
1160
1106
|
startIcon: [String, Function],
|
|
1161
1107
|
endIcon: [String, Function],
|
|
1108
|
+
align: {
|
|
1109
|
+
type: String,
|
|
1110
|
+
default: 'center'
|
|
1111
|
+
},
|
|
1162
1112
|
...createControlProps()
|
|
1163
1113
|
});
|
|
1164
1114
|
const LOADING_SIZE_MAP = {
|
|
@@ -1166,28 +1116,24 @@ const LOADING_SIZE_MAP = {
|
|
|
1166
1116
|
md: 20,
|
|
1167
1117
|
lg: 28
|
|
1168
1118
|
};
|
|
1169
|
-
const VButton = vue.defineComponent({
|
|
1119
|
+
const VButton = /* @__PURE__ */ vue.defineComponent({
|
|
1170
1120
|
name: 'VButton',
|
|
1171
1121
|
inheritAttrs: false,
|
|
1172
1122
|
props: vueButtonProps,
|
|
1173
|
-
|
|
1174
1123
|
setup(props, ctx) {
|
|
1175
1124
|
const vui = useVui();
|
|
1176
1125
|
const control = useControl(props);
|
|
1177
1126
|
const defaults = vui.setting('buttonDefault');
|
|
1178
1127
|
const icon = vue.computed(() => {
|
|
1179
1128
|
const _icon = resolveRawVButtonIcon(props.icon);
|
|
1180
|
-
|
|
1181
1129
|
return _icon && _icon();
|
|
1182
1130
|
});
|
|
1183
1131
|
const startIcon = vue.computed(() => {
|
|
1184
1132
|
const _icon = resolveRawVButtonIcon(props.startIcon, 'start');
|
|
1185
|
-
|
|
1186
1133
|
return _icon && _icon();
|
|
1187
1134
|
});
|
|
1188
1135
|
const endIcon = vue.computed(() => {
|
|
1189
1136
|
const _icon = resolveRawVButtonIcon(props.endIcon, 'end');
|
|
1190
|
-
|
|
1191
1137
|
return _icon && _icon();
|
|
1192
1138
|
});
|
|
1193
1139
|
const color = vueColorScheme.useColorClasses({
|
|
@@ -1195,18 +1141,19 @@ const VButton = vue.defineComponent({
|
|
|
1195
1141
|
variant: () => props.variant || (icon.value ? vui.setting('plainVariant') : defaults.variant)
|
|
1196
1142
|
});
|
|
1197
1143
|
const isPlain = vue.computed(() => color.variant.value.value === vui.setting('plainVariant') && color.color.value.value === defaults.color);
|
|
1198
|
-
const isLoading = vue.computed(() => props.loading);
|
|
1144
|
+
const isLoading = vue.computed(() => props.loading);
|
|
1145
|
+
// const isDisabled = computed(() => props.disabled);
|
|
1199
1146
|
// const isRounded = computed(() =>
|
|
1200
1147
|
// props.rounded != null ? props.rounded : !!icon.value,
|
|
1201
1148
|
// );
|
|
1202
|
-
|
|
1203
1149
|
const spacer = vue.computed(() => {
|
|
1204
1150
|
const _spacer = props.spacer;
|
|
1205
1151
|
if (!_spacer) return;
|
|
1206
1152
|
return _spacer === true ? 'left' : _spacer;
|
|
1207
1153
|
});
|
|
1208
|
-
const classes = vue.computed(() => [color.colorClasses.value,
|
|
1209
|
-
|
|
1154
|
+
const classes = vue.computed(() => [color.colorClasses.value,
|
|
1155
|
+
// navigationable.value.classes,
|
|
1156
|
+
spacer.value ? `v-button--spacer-${spacer.value}` : undefined, `v-button--${control.size.value}`, `v-button--align-${props.align}`, {
|
|
1210
1157
|
'v-button--loading': isLoading.value,
|
|
1211
1158
|
'v-button--icon': !!icon.value,
|
|
1212
1159
|
'v-button--rounded': props.rounded,
|
|
@@ -1227,26 +1174,23 @@ const VButton = vue.defineComponent({
|
|
|
1227
1174
|
});
|
|
1228
1175
|
};
|
|
1229
1176
|
}
|
|
1230
|
-
|
|
1231
1177
|
});
|
|
1232
1178
|
|
|
1233
|
-
const VButtonGroup = vue.defineComponent({
|
|
1179
|
+
const VButtonGroup = /* @__PURE__ */ vue.defineComponent({
|
|
1234
1180
|
name: 'VButtonGroup',
|
|
1235
|
-
props: {
|
|
1181
|
+
props: {
|
|
1182
|
+
...vueColorScheme.colorSchemeProps(),
|
|
1236
1183
|
...createControlProps(),
|
|
1237
1184
|
disabled: Boolean
|
|
1238
1185
|
},
|
|
1239
|
-
|
|
1240
1186
|
setup(props, ctx) {
|
|
1241
1187
|
return () => {
|
|
1242
1188
|
let hasIcon = false;
|
|
1243
1189
|
let buttonLength = 0;
|
|
1244
1190
|
let tmp = vueUtils.renderSlotOrEmpty(ctx.slots) || [];
|
|
1245
|
-
|
|
1246
1191
|
if (tmp.length === 1 && vueUtils.isFragment(tmp[0])) {
|
|
1247
1192
|
tmp = tmp[0].children;
|
|
1248
1193
|
}
|
|
1249
|
-
|
|
1250
1194
|
const children = tmp.map(node => {
|
|
1251
1195
|
if (!vue.isVNode(node) || node.type !== VButton) {
|
|
1252
1196
|
return {
|
|
@@ -1254,13 +1198,10 @@ const VButtonGroup = vue.defineComponent({
|
|
|
1254
1198
|
node
|
|
1255
1199
|
};
|
|
1256
1200
|
}
|
|
1257
|
-
|
|
1258
1201
|
buttonLength++;
|
|
1259
|
-
|
|
1260
1202
|
if (!hasIcon && node.props && !!node.props.icon) {
|
|
1261
1203
|
hasIcon = true;
|
|
1262
1204
|
}
|
|
1263
|
-
|
|
1264
1205
|
return {
|
|
1265
1206
|
isButton: true,
|
|
1266
1207
|
node
|
|
@@ -1273,7 +1214,8 @@ const VButtonGroup = vue.defineComponent({
|
|
|
1273
1214
|
const hasLeft = buttonIndex > 1;
|
|
1274
1215
|
const hasRight = buttonIndex < buttonLength;
|
|
1275
1216
|
const childProps = child.node.props;
|
|
1276
|
-
return vue.cloneVNode(child.node, {
|
|
1217
|
+
return vue.cloneVNode(child.node, {
|
|
1218
|
+
...props,
|
|
1277
1219
|
...childProps,
|
|
1278
1220
|
rouded: false,
|
|
1279
1221
|
class: ['v-button-group__item', {
|
|
@@ -1283,7 +1225,6 @@ const VButtonGroup = vue.defineComponent({
|
|
|
1283
1225
|
}]
|
|
1284
1226
|
});
|
|
1285
1227
|
}
|
|
1286
|
-
|
|
1287
1228
|
return child.node;
|
|
1288
1229
|
});
|
|
1289
1230
|
return vue.createVNode("div", {
|
|
@@ -1293,13 +1234,11 @@ const VButtonGroup = vue.defineComponent({
|
|
|
1293
1234
|
}, [$children]);
|
|
1294
1235
|
};
|
|
1295
1236
|
}
|
|
1296
|
-
|
|
1297
1237
|
});
|
|
1298
1238
|
|
|
1299
1239
|
function _isSlot$e(s) {
|
|
1300
1240
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1301
1241
|
}
|
|
1302
|
-
|
|
1303
1242
|
const PAGINATION_ALIGNS = ['left', 'center', 'right'];
|
|
1304
1243
|
function paginationProps() {
|
|
1305
1244
|
return vueUtils.createPropsOptions({
|
|
@@ -1310,7 +1249,6 @@ function paginationProps() {
|
|
|
1310
1249
|
type: vueUtils.rawNumberPropType,
|
|
1311
1250
|
default: 1
|
|
1312
1251
|
},
|
|
1313
|
-
|
|
1314
1252
|
/**
|
|
1315
1253
|
* Total number of pages
|
|
1316
1254
|
*/
|
|
@@ -1318,12 +1256,10 @@ function paginationProps() {
|
|
|
1318
1256
|
type: vueUtils.rawNumberPropType,
|
|
1319
1257
|
default: 0
|
|
1320
1258
|
},
|
|
1321
|
-
|
|
1322
1259
|
/**
|
|
1323
1260
|
* Maximum number of links to display.
|
|
1324
1261
|
*/
|
|
1325
1262
|
totalVisible: vueUtils.rawNumberPropType,
|
|
1326
|
-
|
|
1327
1263
|
/**
|
|
1328
1264
|
* true when narrowing
|
|
1329
1265
|
*/
|
|
@@ -1333,7 +1269,6 @@ function paginationProps() {
|
|
|
1333
1269
|
type: String,
|
|
1334
1270
|
default: 'center'
|
|
1335
1271
|
},
|
|
1336
|
-
|
|
1337
1272
|
/**
|
|
1338
1273
|
* To synchronize with a query, use the query name
|
|
1339
1274
|
*/
|
|
@@ -1342,14 +1277,13 @@ function paginationProps() {
|
|
|
1342
1277
|
color: String
|
|
1343
1278
|
});
|
|
1344
1279
|
}
|
|
1345
|
-
const VPagination = vue.defineComponent({
|
|
1280
|
+
const VPagination = /* @__PURE__ */ vue.defineComponent({
|
|
1346
1281
|
name: 'VPagination',
|
|
1347
1282
|
props: paginationProps(),
|
|
1348
1283
|
emits: {
|
|
1349
1284
|
change: page => true,
|
|
1350
1285
|
'update:modelValue': page => true
|
|
1351
1286
|
},
|
|
1352
|
-
|
|
1353
1287
|
setup(props, ctx) {
|
|
1354
1288
|
const vui = useVui();
|
|
1355
1289
|
const elRef = vue.ref(null);
|
|
@@ -1372,40 +1306,31 @@ const VPagination = vue.defineComponent({
|
|
|
1372
1306
|
const {
|
|
1373
1307
|
routeQuery
|
|
1374
1308
|
} = props;
|
|
1375
|
-
|
|
1376
1309
|
if (routeQuery) {
|
|
1377
1310
|
return vui.location.getQuery(routeQuery, Number, 1);
|
|
1378
1311
|
}
|
|
1379
|
-
|
|
1380
1312
|
return internalValue.value;
|
|
1381
1313
|
});
|
|
1382
|
-
|
|
1383
1314
|
const _range = (from, to) => {
|
|
1384
1315
|
const range = [];
|
|
1385
1316
|
from = from > 0 ? from : 1;
|
|
1386
|
-
|
|
1387
1317
|
for (let i = from; i <= to; i++) {
|
|
1388
1318
|
range.push(i);
|
|
1389
1319
|
}
|
|
1390
|
-
|
|
1391
1320
|
return range;
|
|
1392
1321
|
};
|
|
1393
|
-
|
|
1394
1322
|
const computedItems = vue.computed(() => {
|
|
1395
1323
|
const maxButtons = computedNumbersLength.value;
|
|
1396
1324
|
const totalVisible = computedTotalVisible.value;
|
|
1397
1325
|
const length = computedLength.value;
|
|
1398
1326
|
const pageValue = computedPage.value;
|
|
1399
1327
|
const maxLength = Math.min(Math.max(0, totalVisible || 0) || length, Math.max(0, maxButtons) || length, length);
|
|
1400
|
-
|
|
1401
1328
|
if (length <= maxLength) {
|
|
1402
1329
|
return _range(1, length);
|
|
1403
1330
|
}
|
|
1404
|
-
|
|
1405
1331
|
const even = maxLength % 2 === 0 ? 1 : 0;
|
|
1406
1332
|
const left = Math.floor(maxLength / 2);
|
|
1407
1333
|
const right = length - left + 1 + even;
|
|
1408
|
-
|
|
1409
1334
|
if (pageValue > left && pageValue < right) {
|
|
1410
1335
|
const start = pageValue - left + 2;
|
|
1411
1336
|
const end = pageValue + left - 2 - even;
|
|
@@ -1433,7 +1358,6 @@ const VPagination = vue.defineComponent({
|
|
|
1433
1358
|
'v-pagination--dense': props.dense,
|
|
1434
1359
|
[`v-pagination--${props.align}`]: true
|
|
1435
1360
|
}, colorScope.value.className]);
|
|
1436
|
-
|
|
1437
1361
|
async function setPage(value) {
|
|
1438
1362
|
if (isDisabled.value) return;
|
|
1439
1363
|
const {
|
|
@@ -1442,7 +1366,6 @@ const VPagination = vue.defineComponent({
|
|
|
1442
1366
|
} = props;
|
|
1443
1367
|
const newPage = vueUtils.resolveNumberish(value);
|
|
1444
1368
|
if (computedPage.value === newPage) return;
|
|
1445
|
-
|
|
1446
1369
|
if (beforeChange) {
|
|
1447
1370
|
try {
|
|
1448
1371
|
let result = beforeChange(newPage);
|
|
@@ -1450,7 +1373,6 @@ const VPagination = vue.defineComponent({
|
|
|
1450
1373
|
if (result === false) return;
|
|
1451
1374
|
} catch (e) {}
|
|
1452
1375
|
}
|
|
1453
|
-
|
|
1454
1376
|
if (routeQuery) {
|
|
1455
1377
|
const to = createRoutableLocationByPage(newPage, routeQuery);
|
|
1456
1378
|
return router.push(to).then(failure => {
|
|
@@ -1462,7 +1384,6 @@ const VPagination = vue.defineComponent({
|
|
|
1462
1384
|
ctx.emit('change', newPage);
|
|
1463
1385
|
}
|
|
1464
1386
|
}
|
|
1465
|
-
|
|
1466
1387
|
function createPageInfo(source) {
|
|
1467
1388
|
const currentPage = computedPage.value;
|
|
1468
1389
|
const length = computedLength.value;
|
|
@@ -1470,7 +1391,6 @@ const VPagination = vue.defineComponent({
|
|
|
1470
1391
|
let page;
|
|
1471
1392
|
let active;
|
|
1472
1393
|
let disabled;
|
|
1473
|
-
|
|
1474
1394
|
if (typeof source === 'number') {
|
|
1475
1395
|
number = true;
|
|
1476
1396
|
page = source;
|
|
@@ -1488,7 +1408,6 @@ const VPagination = vue.defineComponent({
|
|
|
1488
1408
|
active = false;
|
|
1489
1409
|
disabled = page < 1 || page > length;
|
|
1490
1410
|
}
|
|
1491
|
-
|
|
1492
1411
|
return {
|
|
1493
1412
|
number,
|
|
1494
1413
|
page,
|
|
@@ -1496,13 +1415,11 @@ const VPagination = vue.defineComponent({
|
|
|
1496
1415
|
disabled
|
|
1497
1416
|
};
|
|
1498
1417
|
}
|
|
1499
|
-
|
|
1500
1418
|
function createRoutableLocationByPage(page, routeQuery) {
|
|
1501
1419
|
return vui.location.getQueryMergedLocation({
|
|
1502
1420
|
[routeQuery]: page
|
|
1503
1421
|
});
|
|
1504
1422
|
}
|
|
1505
|
-
|
|
1506
1423
|
function genItem(source, index) {
|
|
1507
1424
|
const {
|
|
1508
1425
|
number,
|
|
@@ -1520,25 +1437,21 @@ const VPagination = vue.defineComponent({
|
|
|
1520
1437
|
if (type === 'truncate') {
|
|
1521
1438
|
return vue.createVNode("span", null, [vue.createTextVNode("...")]);
|
|
1522
1439
|
}
|
|
1523
|
-
|
|
1524
1440
|
const isPrev = type === 'prev';
|
|
1525
1441
|
const icon = isPrev ? vui.icon('prev') : vui.icon('next');
|
|
1526
1442
|
return resolveRawIconProp(false, icon, {
|
|
1527
1443
|
class: 'v-pagination__item__icon'
|
|
1528
1444
|
});
|
|
1529
1445
|
})();
|
|
1530
|
-
|
|
1531
1446
|
const onClick = ev => {
|
|
1532
1447
|
ev.preventDefault();
|
|
1533
1448
|
if (page === undefined || active || disabled) return;
|
|
1534
1449
|
setPage(page);
|
|
1535
1450
|
};
|
|
1536
|
-
|
|
1537
1451
|
const key = `${source}-${index}`;
|
|
1538
1452
|
const {
|
|
1539
1453
|
routeQuery
|
|
1540
1454
|
} = props;
|
|
1541
|
-
|
|
1542
1455
|
if (page !== undefined && routeQuery) {
|
|
1543
1456
|
const to = createRoutableLocationByPage(page, routeQuery);
|
|
1544
1457
|
return vue.createVNode(vueRouter.RouterLink, {
|
|
@@ -1558,7 +1471,6 @@ const VPagination = vue.defineComponent({
|
|
|
1558
1471
|
}, [children]);
|
|
1559
1472
|
}
|
|
1560
1473
|
}
|
|
1561
|
-
|
|
1562
1474
|
vue.watch(() => props.modelValue, modelValue => {
|
|
1563
1475
|
internalValue.value = vueUtils.resolveNumberish(modelValue);
|
|
1564
1476
|
}, {
|
|
@@ -1574,7 +1486,6 @@ const VPagination = vue.defineComponent({
|
|
|
1574
1486
|
width
|
|
1575
1487
|
}) => {
|
|
1576
1488
|
const el = elRef.value;
|
|
1577
|
-
|
|
1578
1489
|
if (el) {
|
|
1579
1490
|
const style = window.getComputedStyle(el, 'before');
|
|
1580
1491
|
const width = style.getPropertyValue('width');
|
|
@@ -1582,17 +1493,16 @@ const VPagination = vue.defineComponent({
|
|
|
1582
1493
|
const size = parseFloat(width) + parseFloat(margin) * 0.5;
|
|
1583
1494
|
itemSize.value = size;
|
|
1584
1495
|
}
|
|
1585
|
-
|
|
1586
1496
|
containerWidth.value = width;
|
|
1587
1497
|
})]);
|
|
1588
1498
|
};
|
|
1589
1499
|
}
|
|
1590
|
-
|
|
1591
1500
|
});
|
|
1592
1501
|
|
|
1593
1502
|
function createListTileProps() {
|
|
1594
1503
|
const icon = rawIconProp();
|
|
1595
|
-
return {
|
|
1504
|
+
return {
|
|
1505
|
+
...vueUtils.navigationableInheritProps,
|
|
1596
1506
|
...vueUtils.createPropsOptions({
|
|
1597
1507
|
startIcon: icon,
|
|
1598
1508
|
endIcon: icon,
|
|
@@ -1609,26 +1519,25 @@ function createListTileProps() {
|
|
|
1609
1519
|
const listTileEmits = {
|
|
1610
1520
|
changeActive: isActive => true
|
|
1611
1521
|
};
|
|
1612
|
-
const VListTile = vue.defineComponent({
|
|
1522
|
+
const VListTile = /* @__PURE__ */ vue.defineComponent({
|
|
1613
1523
|
name: 'VListTile',
|
|
1614
1524
|
inheritAttrs: false,
|
|
1615
1525
|
props: createListTileProps(),
|
|
1616
|
-
emits: {
|
|
1526
|
+
emits: {
|
|
1527
|
+
...listTileEmits
|
|
1617
1528
|
},
|
|
1618
|
-
|
|
1619
1529
|
setup(props, ctx) {
|
|
1530
|
+
const vui = useVui();
|
|
1620
1531
|
const startIcon = vue.computed(() => {
|
|
1621
1532
|
let icon = resolveRawIconProp(false, props.startIcon);
|
|
1622
|
-
|
|
1623
1533
|
if (!icon && props.startIconEmptySpace) {
|
|
1624
1534
|
icon = resolveRawIconProp(false, '$empty');
|
|
1625
1535
|
}
|
|
1626
|
-
|
|
1627
1536
|
return icon;
|
|
1628
1537
|
});
|
|
1629
1538
|
const endIcon = vue.computed(() => resolveRawIconProp(false, props.endIcon));
|
|
1630
1539
|
const hasTo = vue.computed(() => !!ctx.attrs.to);
|
|
1631
|
-
const link =
|
|
1540
|
+
const link = vui.useLink({
|
|
1632
1541
|
to: ctx.attrs.to || ''
|
|
1633
1542
|
});
|
|
1634
1543
|
const isActive = vue.computed(() => {
|
|
@@ -1667,14 +1576,13 @@ const VListTile = vue.defineComponent({
|
|
|
1667
1576
|
});
|
|
1668
1577
|
};
|
|
1669
1578
|
}
|
|
1670
|
-
|
|
1671
1579
|
});
|
|
1672
1580
|
|
|
1673
|
-
const VDrawerLayout = vue.defineComponent({
|
|
1581
|
+
const VDrawerLayout = /* @__PURE__ */ vue.defineComponent({
|
|
1674
1582
|
name: 'VDrawerLayout',
|
|
1675
|
-
props: {
|
|
1583
|
+
props: {
|
|
1584
|
+
...createPaperBaseProps()
|
|
1676
1585
|
},
|
|
1677
|
-
|
|
1678
1586
|
setup(props, ctx) {
|
|
1679
1587
|
return () => {
|
|
1680
1588
|
const paperProps = vue.computed(() => ({
|
|
@@ -1698,16 +1606,16 @@ const VDrawerLayout = vue.defineComponent({
|
|
|
1698
1606
|
}), ctx.slots);
|
|
1699
1607
|
};
|
|
1700
1608
|
}
|
|
1701
|
-
|
|
1702
1609
|
});
|
|
1703
1610
|
|
|
1611
|
+
// Adornment
|
|
1704
1612
|
function _isSlot$d(s) {
|
|
1705
1613
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1706
1614
|
}
|
|
1707
|
-
|
|
1708
|
-
const VHero = vue.defineComponent({
|
|
1615
|
+
const VHero = /* @__PURE__ */ vue.defineComponent({
|
|
1709
1616
|
name: 'VHero',
|
|
1710
|
-
props: {
|
|
1617
|
+
props: {
|
|
1618
|
+
...vueUtils.htmlAttributesPropOptions,
|
|
1711
1619
|
color: {
|
|
1712
1620
|
type: String,
|
|
1713
1621
|
default: 'primary'
|
|
@@ -1722,11 +1630,9 @@ const VHero = vue.defineComponent({
|
|
|
1722
1630
|
},
|
|
1723
1631
|
...vueUtils.defineSlotsProps()
|
|
1724
1632
|
},
|
|
1725
|
-
|
|
1726
1633
|
setup(props, ctx) {
|
|
1727
1634
|
return () => {
|
|
1728
1635
|
let _slot;
|
|
1729
|
-
|
|
1730
1636
|
const TagName = props.tag;
|
|
1731
1637
|
const HTagName = props.hTag;
|
|
1732
1638
|
const adornment = vueUtils.renderSlotOrEmpty(ctx.slots, 'adornment');
|
|
@@ -1747,37 +1653,36 @@ const VHero = vue.defineComponent({
|
|
|
1747
1653
|
});
|
|
1748
1654
|
};
|
|
1749
1655
|
}
|
|
1750
|
-
|
|
1751
1656
|
});
|
|
1752
1657
|
|
|
1753
1658
|
function _isSlot$c(s) {
|
|
1754
1659
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1755
1660
|
}
|
|
1756
|
-
|
|
1757
1661
|
function createNavigationItemProps() {
|
|
1758
|
-
return {
|
|
1759
|
-
|
|
1662
|
+
return {
|
|
1663
|
+
...createListTileProps(),
|
|
1664
|
+
match: [String, Array],
|
|
1760
1665
|
depth: {
|
|
1761
1666
|
type: Number,
|
|
1762
1667
|
default: 0
|
|
1763
1668
|
},
|
|
1764
1669
|
nested: Boolean,
|
|
1765
|
-
color: String
|
|
1670
|
+
color: String
|
|
1671
|
+
// key: {
|
|
1766
1672
|
// type: [String, Number],
|
|
1767
1673
|
// required: true,
|
|
1768
1674
|
// },
|
|
1769
|
-
|
|
1770
1675
|
};
|
|
1771
1676
|
}
|
|
1677
|
+
|
|
1772
1678
|
function resolveNavigationItemInput(input) {
|
|
1773
1679
|
let label = input.label;
|
|
1774
|
-
const props = {
|
|
1680
|
+
const props = {
|
|
1681
|
+
...input
|
|
1775
1682
|
};
|
|
1776
|
-
|
|
1777
1683
|
if (typeof label === 'function') {
|
|
1778
1684
|
label = label();
|
|
1779
1685
|
}
|
|
1780
|
-
|
|
1781
1686
|
delete props.label;
|
|
1782
1687
|
return {
|
|
1783
1688
|
label,
|
|
@@ -1789,21 +1694,27 @@ function renderNavigationItemInput(input, extraProps) {
|
|
|
1789
1694
|
label,
|
|
1790
1695
|
props
|
|
1791
1696
|
} = resolveNavigationItemInput(input);
|
|
1792
|
-
return vue.createVNode(VNavigationItem, {
|
|
1697
|
+
return vue.createVNode(VNavigationItem, {
|
|
1698
|
+
...props,
|
|
1793
1699
|
...extraProps
|
|
1794
1700
|
}, _isSlot$c(label) ? label : {
|
|
1795
1701
|
default: () => [label]
|
|
1796
1702
|
});
|
|
1797
1703
|
}
|
|
1798
|
-
const
|
|
1704
|
+
const TRIM_END_SLASH_RE = /\/$/;
|
|
1705
|
+
function trimEndSlash(sorce) {
|
|
1706
|
+
return sorce ? sorce.replace(TRIM_END_SLASH_RE, '') : sorce;
|
|
1707
|
+
}
|
|
1708
|
+
const VNavigationItem = /* @__PURE__ */ vue.defineComponent({
|
|
1799
1709
|
name: 'VNavigationItem',
|
|
1800
1710
|
inheritAttrs: false,
|
|
1801
|
-
props: {
|
|
1711
|
+
props: {
|
|
1712
|
+
...createNavigationItemProps(),
|
|
1802
1713
|
children: Array
|
|
1803
1714
|
},
|
|
1804
|
-
emits: {
|
|
1715
|
+
emits: {
|
|
1716
|
+
...listTileEmits
|
|
1805
1717
|
},
|
|
1806
|
-
|
|
1807
1718
|
setup(props, ctx) {
|
|
1808
1719
|
const vui = useVui();
|
|
1809
1720
|
const opened = vue.ref(false);
|
|
@@ -1819,51 +1730,59 @@ const VNavigationItem = vue.defineComponent({
|
|
|
1819
1730
|
const {
|
|
1820
1731
|
to
|
|
1821
1732
|
} = ctx.attrs;
|
|
1822
|
-
if (match)
|
|
1733
|
+
if (match) {
|
|
1734
|
+
return (Array.isArray(match) ? match : [match]).map(trimEndSlash);
|
|
1735
|
+
}
|
|
1823
1736
|
if (!to) return;
|
|
1824
|
-
|
|
1825
|
-
return
|
|
1737
|
+
const toPath = typeof to === 'string' ? to : to.path;
|
|
1738
|
+
if (!toPath) return;
|
|
1739
|
+
return [trimEndSlash(toPath)];
|
|
1826
1740
|
});
|
|
1827
1741
|
const classes = vue.computed(() => [{
|
|
1828
1742
|
'v-navigation-item--opened': opened.value,
|
|
1829
1743
|
[`v-navigation-item--depth-${props.depth}`]: props.depth > 0
|
|
1830
1744
|
}]);
|
|
1831
|
-
const route = vueRouter.useRoute();
|
|
1745
|
+
const route = vueRouter.useRoute();
|
|
1746
|
+
// const classes = computed(() => [
|
|
1832
1747
|
// // {
|
|
1833
1748
|
// // 'v-navigation-item--matched': matched.value,
|
|
1834
1749
|
// // },
|
|
1835
1750
|
// ]);
|
|
1836
|
-
|
|
1837
1751
|
vue.watch(() => route.path, newPath => {
|
|
1838
1752
|
const c = children.value;
|
|
1839
1753
|
const m = match.value;
|
|
1840
|
-
|
|
1841
|
-
if (!c || !m) {
|
|
1754
|
+
if (!c || !m || !m.length) {
|
|
1842
1755
|
// matched.value = false;
|
|
1843
1756
|
return;
|
|
1844
1757
|
}
|
|
1845
|
-
|
|
1846
|
-
if (
|
|
1847
|
-
open();
|
|
1758
|
+
const trimedNewPath = trimEndSlash(newPath);
|
|
1759
|
+
if (m.some(_ => trimedNewPath.match(_))) {
|
|
1760
|
+
open();
|
|
1761
|
+
// matched.value = true;
|
|
1848
1762
|
} else {
|
|
1849
|
-
close();
|
|
1763
|
+
close();
|
|
1764
|
+
// matched.value = false;
|
|
1850
1765
|
}
|
|
1766
|
+
// if (trimEndSlash(newPath).match(m)) {
|
|
1767
|
+
// open();
|
|
1768
|
+
// // matched.value = true;
|
|
1769
|
+
// } else {
|
|
1770
|
+
// close();
|
|
1771
|
+
// // matched.value = false;
|
|
1772
|
+
// }
|
|
1851
1773
|
}, {
|
|
1852
1774
|
immediate: true
|
|
1853
|
-
});
|
|
1854
|
-
|
|
1775
|
+
});
|
|
1776
|
+
// const iconPayload = () => opened.value;
|
|
1855
1777
|
const _props = vue.computed(() => {
|
|
1856
1778
|
const c = children.value;
|
|
1857
1779
|
let {
|
|
1858
1780
|
endIcon
|
|
1859
1781
|
} = props;
|
|
1860
|
-
|
|
1861
1782
|
if (c && !endIcon) {
|
|
1862
1783
|
endIcon = vui.icon('navigationExpand');
|
|
1863
|
-
|
|
1864
1784
|
if (typeof endIcon === 'string') {
|
|
1865
1785
|
const name = endIcon;
|
|
1866
|
-
|
|
1867
1786
|
endIcon = gen => {
|
|
1868
1787
|
return gen({
|
|
1869
1788
|
name,
|
|
@@ -1872,19 +1791,20 @@ const VNavigationItem = vue.defineComponent({
|
|
|
1872
1791
|
};
|
|
1873
1792
|
}
|
|
1874
1793
|
}
|
|
1875
|
-
|
|
1876
|
-
|
|
1794
|
+
const __props = {
|
|
1795
|
+
...props,
|
|
1877
1796
|
endIcon
|
|
1878
1797
|
};
|
|
1879
|
-
delete __props.children;
|
|
1798
|
+
delete __props.children;
|
|
1799
|
+
// const _activeClass = props.activeClass;
|
|
1880
1800
|
// const activeClass = `v-navigation-item--active${
|
|
1881
1801
|
// _activeClass ? ` ${_activeClass}` : ''
|
|
1882
1802
|
// }`;
|
|
1883
|
-
|
|
1884
|
-
|
|
1803
|
+
return {
|
|
1804
|
+
...__props
|
|
1805
|
+
// activeClass,
|
|
1885
1806
|
// startIcon: toRawIconProp(__props.startIcon, iconPayload),
|
|
1886
1807
|
// endIcon: toRawIconProp(__props.endIcon, iconPayload),
|
|
1887
|
-
|
|
1888
1808
|
};
|
|
1889
1809
|
});
|
|
1890
1810
|
|
|
@@ -1892,25 +1812,22 @@ const VNavigationItem = vue.defineComponent({
|
|
|
1892
1812
|
if (!children.value) return;
|
|
1893
1813
|
opened.value = true;
|
|
1894
1814
|
}
|
|
1895
|
-
|
|
1896
1815
|
function close() {
|
|
1897
1816
|
opened.value = false;
|
|
1898
1817
|
}
|
|
1899
|
-
|
|
1900
1818
|
function toggle() {
|
|
1901
1819
|
return opened.value ? close() : open();
|
|
1902
1820
|
}
|
|
1903
|
-
|
|
1904
1821
|
const onClick = ev => {
|
|
1905
1822
|
if (!to.value) {
|
|
1906
1823
|
return toggle();
|
|
1907
|
-
}
|
|
1824
|
+
}
|
|
1825
|
+
// console.log('★');
|
|
1908
1826
|
// open();
|
|
1909
1827
|
// if (!to.value) {
|
|
1910
1828
|
// toggle();
|
|
1911
1829
|
// }
|
|
1912
1830
|
// ctx.emit('click', ev);
|
|
1913
|
-
|
|
1914
1831
|
};
|
|
1915
1832
|
|
|
1916
1833
|
const onChangeActive = isActive => {
|
|
@@ -1931,13 +1848,11 @@ const VNavigationItem = vue.defineComponent({
|
|
|
1931
1848
|
// }
|
|
1932
1849
|
ctx.emit('changeActive', isActive);
|
|
1933
1850
|
};
|
|
1934
|
-
|
|
1935
1851
|
ctx.expose({
|
|
1936
1852
|
close
|
|
1937
1853
|
});
|
|
1938
1854
|
return () => {
|
|
1939
1855
|
let _slot;
|
|
1940
|
-
|
|
1941
1856
|
const _children = children.value;
|
|
1942
1857
|
const fallbackTag = _children ? 'button' : undefined;
|
|
1943
1858
|
return vue.createVNode(vue.Fragment, null, [vue.createVNode(VListTile, vue.mergeProps(ctx.attrs, _props.value, {
|
|
@@ -1956,19 +1871,17 @@ const VNavigationItem = vue.defineComponent({
|
|
|
1956
1871
|
...child
|
|
1957
1872
|
}, {
|
|
1958
1873
|
startIconEmptySpace: _props.value.startIconEmptySpace,
|
|
1959
|
-
depth: props.nested ? props.depth + 1 : props.depth
|
|
1874
|
+
depth: props.nested ? props.depth + 1 : props.depth
|
|
1875
|
+
// onClick,
|
|
1960
1876
|
// onChangeActive,
|
|
1961
|
-
|
|
1962
1877
|
}))]), [[vue.vShow, opened.value]])]
|
|
1963
1878
|
})]);
|
|
1964
1879
|
};
|
|
1965
1880
|
}
|
|
1966
|
-
|
|
1967
1881
|
});
|
|
1968
1882
|
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
props: {
|
|
1883
|
+
function createNavigationProps() {
|
|
1884
|
+
return vueUtils.createPropsOptions({
|
|
1972
1885
|
items: {
|
|
1973
1886
|
type: Array,
|
|
1974
1887
|
required: true
|
|
@@ -1979,8 +1892,11 @@ const VNavigation = vue.defineComponent({
|
|
|
1979
1892
|
default: true
|
|
1980
1893
|
},
|
|
1981
1894
|
caption: [String, Function]
|
|
1982
|
-
}
|
|
1983
|
-
|
|
1895
|
+
});
|
|
1896
|
+
}
|
|
1897
|
+
const VNavigation = /* @__PURE__ */ vue.defineComponent({
|
|
1898
|
+
name: 'VNavigation',
|
|
1899
|
+
props: createNavigationProps(),
|
|
1984
1900
|
setup(props, ctx) {
|
|
1985
1901
|
const items = vue.computed(() => props.items);
|
|
1986
1902
|
const color = vueColorScheme.useScopeColorClass(props);
|
|
@@ -1994,14 +1910,12 @@ const VNavigation = vue.defineComponent({
|
|
|
1994
1910
|
vue.onBeforeUpdate(() => {
|
|
1995
1911
|
itemsRef.value = [];
|
|
1996
1912
|
});
|
|
1997
|
-
|
|
1998
1913
|
function setItemRef(item, itemRef) {
|
|
1999
1914
|
itemsRef.value.push({
|
|
2000
1915
|
key: item.key,
|
|
2001
1916
|
ref: itemRef
|
|
2002
1917
|
});
|
|
2003
1918
|
}
|
|
2004
|
-
|
|
2005
1919
|
function onItemActivated(item) {
|
|
2006
1920
|
itemsRef.value.forEach(({
|
|
2007
1921
|
key,
|
|
@@ -2011,7 +1925,6 @@ const VNavigation = vue.defineComponent({
|
|
|
2011
1925
|
ref.close();
|
|
2012
1926
|
});
|
|
2013
1927
|
}
|
|
2014
|
-
|
|
2015
1928
|
return () => {
|
|
2016
1929
|
const $caption = caption.value;
|
|
2017
1930
|
return vue.createVNode("nav", {
|
|
@@ -2025,27 +1938,24 @@ const VNavigation = vue.defineComponent({
|
|
|
2025
1938
|
setItemRef(item, ref);
|
|
2026
1939
|
},
|
|
2027
1940
|
onChangeActive: isActive => {
|
|
2028
|
-
if (isActive
|
|
2029
|
-
/* && item.children && item.children.length*/
|
|
2030
|
-
) {
|
|
1941
|
+
if (isActive /* && item.children && item.children.length*/) {
|
|
2031
1942
|
onItemActivated(item);
|
|
2032
1943
|
}
|
|
2033
1944
|
}
|
|
2034
1945
|
}))]);
|
|
2035
1946
|
};
|
|
2036
1947
|
}
|
|
2037
|
-
|
|
2038
1948
|
});
|
|
2039
1949
|
|
|
2040
|
-
const VCheckable = vue.defineComponent({
|
|
1950
|
+
const VCheckable = /* @__PURE__ */ vue.defineComponent({
|
|
2041
1951
|
name: 'VCheckable',
|
|
2042
1952
|
props: {
|
|
2043
1953
|
invalid: Boolean,
|
|
2044
1954
|
disabled: Boolean,
|
|
2045
1955
|
readonly: Boolean,
|
|
2046
1956
|
checked: Boolean,
|
|
2047
|
-
...vueKit.defineSlotsProps()
|
|
2048
|
-
|
|
1957
|
+
...vueKit.defineSlotsProps()
|
|
1958
|
+
// autoWidth: Boolean,
|
|
2049
1959
|
},
|
|
2050
1960
|
|
|
2051
1961
|
setup(props, ctx) {
|
|
@@ -2053,8 +1963,8 @@ const VCheckable = vue.defineComponent({
|
|
|
2053
1963
|
const invalid = vue.computed(() => props.invalid);
|
|
2054
1964
|
const disabled = vue.computed(() => props.disabled);
|
|
2055
1965
|
const readonly = vue.computed(() => props.readonly);
|
|
2056
|
-
const checked = vue.computed(() => props.checked);
|
|
2057
|
-
|
|
1966
|
+
const checked = vue.computed(() => props.checked);
|
|
1967
|
+
// const autoWidth = computed(() => props.autoWidth);
|
|
2058
1968
|
const classes = vue.computed(() => {
|
|
2059
1969
|
return [{
|
|
2060
1970
|
'v-checkable--invalid': invalid.value,
|
|
@@ -2075,21 +1985,20 @@ const VCheckable = vue.defineComponent({
|
|
|
2075
1985
|
"class": "v-checkable__label"
|
|
2076
1986
|
}, [vueKit.renderSlotOrEmpty(ctx.slots, 'label')])]);
|
|
2077
1987
|
}
|
|
2078
|
-
|
|
2079
1988
|
});
|
|
2080
1989
|
|
|
2081
1990
|
const {
|
|
2082
1991
|
props: props$7,
|
|
2083
1992
|
emits: emits$7
|
|
2084
1993
|
} = vueKit.createFormSelectorItemSettings();
|
|
2085
|
-
const VCheckbox = vue.defineComponent({
|
|
1994
|
+
const VCheckbox = /* @__PURE__ */ vue.defineComponent({
|
|
2086
1995
|
name: 'VCheckbox',
|
|
2087
|
-
props: {
|
|
1996
|
+
props: {
|
|
1997
|
+
...props$7,
|
|
2088
1998
|
...createControlProps(),
|
|
2089
1999
|
indeterminate: Boolean
|
|
2090
2000
|
},
|
|
2091
2001
|
emits: emits$7,
|
|
2092
|
-
|
|
2093
2002
|
setup(props, ctx) {
|
|
2094
2003
|
const nodeControl = vueKit.useFormSelectorItemControl(props, ctx, {
|
|
2095
2004
|
nodeType: VUI_CHECKBOX_SYMBOL,
|
|
@@ -2097,12 +2006,12 @@ const VCheckbox = vue.defineComponent({
|
|
|
2097
2006
|
});
|
|
2098
2007
|
const control = useControl(props);
|
|
2099
2008
|
const isIndeterminate = vue.computed(() => props.indeterminate);
|
|
2100
|
-
return {
|
|
2009
|
+
return {
|
|
2010
|
+
...nodeControl.expose(),
|
|
2101
2011
|
...control,
|
|
2102
2012
|
isIndeterminate
|
|
2103
2013
|
};
|
|
2104
2014
|
},
|
|
2105
|
-
|
|
2106
2015
|
render() {
|
|
2107
2016
|
const {
|
|
2108
2017
|
selectorItemControl,
|
|
@@ -2127,13 +2036,11 @@ const VCheckbox = vue.defineComponent({
|
|
|
2127
2036
|
label: () => vueKit.renderSlotOrEmpty(this.$slots, 'default')
|
|
2128
2037
|
});
|
|
2129
2038
|
}
|
|
2130
|
-
|
|
2131
2039
|
});
|
|
2132
2040
|
|
|
2133
2041
|
function _isSlot$b(s) {
|
|
2134
2042
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
2135
2043
|
}
|
|
2136
|
-
|
|
2137
2044
|
const VCheckboxGroup = defineFormSelectorComponent({
|
|
2138
2045
|
name: 'VCheckboxGroup',
|
|
2139
2046
|
defaultMultiple: true,
|
|
@@ -2151,24 +2058,24 @@ const {
|
|
|
2151
2058
|
props: props$6,
|
|
2152
2059
|
emits: emits$6
|
|
2153
2060
|
} = vueKit.createFormSelectorItemSettings();
|
|
2154
|
-
const VRadio = vue.defineComponent({
|
|
2061
|
+
const VRadio = /* @__PURE__ */ vue.defineComponent({
|
|
2155
2062
|
name: 'VRadio',
|
|
2156
|
-
props: {
|
|
2063
|
+
props: {
|
|
2064
|
+
...props$6,
|
|
2157
2065
|
...createControlProps()
|
|
2158
2066
|
},
|
|
2159
2067
|
emits: emits$6,
|
|
2160
|
-
|
|
2161
2068
|
setup(props, ctx) {
|
|
2162
2069
|
const nodeControl = vueKit.useFormSelectorItemControl(props, ctx, {
|
|
2163
2070
|
nodeType: VUI_RADIO_SYMBOL,
|
|
2164
2071
|
parentNodeType: VUI_RADIO_GROUP_SYMBOL
|
|
2165
2072
|
});
|
|
2166
2073
|
const control = useControl(props);
|
|
2167
|
-
return {
|
|
2074
|
+
return {
|
|
2075
|
+
...nodeControl.expose(),
|
|
2168
2076
|
...control
|
|
2169
2077
|
};
|
|
2170
2078
|
},
|
|
2171
|
-
|
|
2172
2079
|
render() {
|
|
2173
2080
|
const {
|
|
2174
2081
|
selectorItemControl
|
|
@@ -2191,13 +2098,11 @@ const VRadio = vue.defineComponent({
|
|
|
2191
2098
|
label: () => vueKit.renderSlotOrEmpty(this.$slots, 'default')
|
|
2192
2099
|
});
|
|
2193
2100
|
}
|
|
2194
|
-
|
|
2195
2101
|
});
|
|
2196
2102
|
|
|
2197
2103
|
function _isSlot$a(s) {
|
|
2198
2104
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
2199
2105
|
}
|
|
2200
|
-
|
|
2201
2106
|
const VRadioGroup = defineFormSelectorComponent({
|
|
2202
2107
|
name: 'VRadioGroup',
|
|
2203
2108
|
nodeType: VUI_RADIO_GROUP_SYMBOL,
|
|
@@ -2214,30 +2119,28 @@ const {
|
|
|
2214
2119
|
props: props$5,
|
|
2215
2120
|
emits: emits$5
|
|
2216
2121
|
} = vueKit.createFormSelectorItemSettings();
|
|
2217
|
-
const VSwitch = vue.defineComponent({
|
|
2122
|
+
const VSwitch = /* @__PURE__ */ vue.defineComponent({
|
|
2218
2123
|
name: 'VSwitch',
|
|
2219
|
-
props: {
|
|
2124
|
+
props: {
|
|
2125
|
+
...props$5,
|
|
2220
2126
|
...createControlProps()
|
|
2221
2127
|
},
|
|
2222
2128
|
emits: emits$5,
|
|
2223
|
-
|
|
2224
2129
|
setup(props, ctx) {
|
|
2225
2130
|
const nodeControl = vueKit.useFormSelectorItemControl(props, ctx, {
|
|
2226
2131
|
nodeType: VUI_SWITCH_SYMBOL,
|
|
2227
2132
|
parentNodeType: VUI_SWITCH_GROUP_SYMBOL
|
|
2228
2133
|
});
|
|
2229
2134
|
const control = useControl(props);
|
|
2230
|
-
|
|
2231
2135
|
if (typeof window !== 'undefined') {
|
|
2232
2136
|
window.yy = {};
|
|
2233
2137
|
window.yy[String(Date.now())] = nodeControl;
|
|
2234
2138
|
}
|
|
2235
|
-
|
|
2236
|
-
|
|
2139
|
+
return {
|
|
2140
|
+
...nodeControl.expose(),
|
|
2237
2141
|
...control
|
|
2238
2142
|
};
|
|
2239
2143
|
},
|
|
2240
|
-
|
|
2241
2144
|
render() {
|
|
2242
2145
|
const {
|
|
2243
2146
|
selectorItemControl
|
|
@@ -2264,13 +2167,11 @@ const VSwitch = vue.defineComponent({
|
|
|
2264
2167
|
label: () => vueKit.renderSlotOrEmpty(this.$slots, 'default')
|
|
2265
2168
|
});
|
|
2266
2169
|
}
|
|
2267
|
-
|
|
2268
2170
|
});
|
|
2269
2171
|
|
|
2270
2172
|
function _isSlot$9(s) {
|
|
2271
2173
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
2272
2174
|
}
|
|
2273
|
-
|
|
2274
2175
|
const VSwitchGroup = defineFormSelectorComponent({
|
|
2275
2176
|
name: 'VSwitchGroup',
|
|
2276
2177
|
defaultMultiple: true,
|
|
@@ -2288,13 +2189,13 @@ const {
|
|
|
2288
2189
|
props: props$4,
|
|
2289
2190
|
emits: emits$4
|
|
2290
2191
|
} = vueKit.createFormSelectorItemSettings();
|
|
2291
|
-
const VOption = vue.defineComponent({
|
|
2192
|
+
const VOption = /* @__PURE__ */ vue.defineComponent({
|
|
2292
2193
|
name: 'VOption',
|
|
2293
|
-
props: {
|
|
2194
|
+
props: {
|
|
2195
|
+
...props$4,
|
|
2294
2196
|
...createControlProps()
|
|
2295
2197
|
},
|
|
2296
2198
|
emits: emits$4,
|
|
2297
|
-
|
|
2298
2199
|
setup(props, ctx) {
|
|
2299
2200
|
const nodeControl = vueKit.useFormSelectorItemControl(props, ctx, {
|
|
2300
2201
|
nodeType: VUI_OPTION_SYMBOL,
|
|
@@ -2308,11 +2209,11 @@ const VOption = vue.defineComponent({
|
|
|
2308
2209
|
'v-option--disabled': nodeControl.isDisabled
|
|
2309
2210
|
}, control.classes.value];
|
|
2310
2211
|
});
|
|
2311
|
-
return {
|
|
2212
|
+
return {
|
|
2213
|
+
...nodeControl.expose(),
|
|
2312
2214
|
classes
|
|
2313
2215
|
};
|
|
2314
2216
|
},
|
|
2315
|
-
|
|
2316
2217
|
render() {
|
|
2317
2218
|
const {
|
|
2318
2219
|
selectorItemControl,
|
|
@@ -2329,17 +2230,16 @@ const VOption = vue.defineComponent({
|
|
|
2329
2230
|
"class": "v-option__label"
|
|
2330
2231
|
}, [vueKit.renderSlotOrEmpty(this.$slots, 'default')])]);
|
|
2331
2232
|
}
|
|
2332
|
-
|
|
2333
2233
|
});
|
|
2334
2234
|
|
|
2335
|
-
const VOptionGroup = vue.defineComponent({
|
|
2235
|
+
const VOptionGroup = /* @__PURE__ */ vue.defineComponent({
|
|
2336
2236
|
name: 'VOptionGroup',
|
|
2337
|
-
props: {
|
|
2237
|
+
props: {
|
|
2238
|
+
...vueKit.createFormSelectorItemGroupProps(),
|
|
2338
2239
|
// eslint-disable-next-line vue/require-prop-types
|
|
2339
2240
|
label: {},
|
|
2340
2241
|
...vueKit.defineSlotsProps()
|
|
2341
2242
|
},
|
|
2342
|
-
|
|
2343
2243
|
setup(props, ctx) {
|
|
2344
2244
|
const groupControl = vueKit.useFormSelectorItemGroupControl(props, ctx, {
|
|
2345
2245
|
parentNodeType: VUI_SELECT_SYMBOL
|
|
@@ -2352,12 +2252,12 @@ const VOptionGroup = vue.defineComponent({
|
|
|
2352
2252
|
'v-option-group--disabled': groupControl.isDisabled
|
|
2353
2253
|
}];
|
|
2354
2254
|
});
|
|
2355
|
-
return {
|
|
2255
|
+
return {
|
|
2256
|
+
...groupControl.expose(),
|
|
2356
2257
|
classes,
|
|
2357
2258
|
labelSlot
|
|
2358
2259
|
};
|
|
2359
2260
|
},
|
|
2360
|
-
|
|
2361
2261
|
render() {
|
|
2362
2262
|
const {
|
|
2363
2263
|
labelSlot,
|
|
@@ -2371,12 +2271,12 @@ const VOptionGroup = vue.defineComponent({
|
|
|
2371
2271
|
"class": "v-option-group__label"
|
|
2372
2272
|
}, [label]), vueKit.renderSlotOrEmpty(this.$slots, 'default')]);
|
|
2373
2273
|
}
|
|
2374
|
-
|
|
2375
2274
|
});
|
|
2376
2275
|
|
|
2377
2276
|
const ADORNMENT_POSITIONS = ['start', 'end'];
|
|
2378
2277
|
function createControlFieldProps() {
|
|
2379
|
-
return {
|
|
2278
|
+
return {
|
|
2279
|
+
...vueKit.createPropsOptions({
|
|
2380
2280
|
startAdornment: {},
|
|
2381
2281
|
endAdornment: {},
|
|
2382
2282
|
tabindex: {
|
|
@@ -2388,9 +2288,10 @@ function createControlFieldProps() {
|
|
|
2388
2288
|
...createControlProps()
|
|
2389
2289
|
};
|
|
2390
2290
|
}
|
|
2391
|
-
const VControlField = vue.defineComponent({
|
|
2291
|
+
const VControlField = /* @__PURE__ */ vue.defineComponent({
|
|
2392
2292
|
name: 'VControlField',
|
|
2393
|
-
props: {
|
|
2293
|
+
props: {
|
|
2294
|
+
...createControlFieldProps(),
|
|
2394
2295
|
focused: Boolean,
|
|
2395
2296
|
autoHeight: Boolean,
|
|
2396
2297
|
...vueKit.defineSlotsProps(),
|
|
@@ -2400,7 +2301,6 @@ const VControlField = vue.defineComponent({
|
|
|
2400
2301
|
emits: {
|
|
2401
2302
|
click: ev => true
|
|
2402
2303
|
},
|
|
2403
|
-
|
|
2404
2304
|
setup(props, ctx) {
|
|
2405
2305
|
const parentNode = vueKit.useParentFormNode();
|
|
2406
2306
|
const control = useControl(props);
|
|
@@ -2409,11 +2309,11 @@ const VControlField = vue.defineComponent({
|
|
|
2409
2309
|
const disabled = vue.computed(() => !!parentNode && parentNode.isDisabled);
|
|
2410
2310
|
const invalid = vue.computed(() => !!parentNode && parentNode.invalid);
|
|
2411
2311
|
const autoHeight = vue.computed(() => props.autoHeight);
|
|
2412
|
-
const readonly = vue.computed(() => !!parentNode && parentNode.isReadonly);
|
|
2312
|
+
const readonly = vue.computed(() => !!parentNode && parentNode.isReadonly);
|
|
2313
|
+
// const computedTabindex = computed(() =>
|
|
2413
2314
|
// disabled.value ? -1 : props.tabindex,
|
|
2414
2315
|
// );
|
|
2415
2316
|
// const isOutlined = computed(() => inputBox.variant.value === 'outlined');
|
|
2416
|
-
|
|
2417
2317
|
const colorProvider = useVuiColorProvider();
|
|
2418
2318
|
const classes = vue.computed(() => {
|
|
2419
2319
|
const classes = ['v-control-field', `v-control-field--${inputBox.variant.value}`, {
|
|
@@ -2433,10 +2333,8 @@ const VControlField = vue.defineComponent({
|
|
|
2433
2333
|
});
|
|
2434
2334
|
return slots;
|
|
2435
2335
|
});
|
|
2436
|
-
|
|
2437
2336
|
const renderAdornment = position => {
|
|
2438
2337
|
let child;
|
|
2439
|
-
|
|
2440
2338
|
if (position === 'end' && props.loading) {
|
|
2441
2339
|
child = vue.createVNode(vueLoading.VProgressCircular, {
|
|
2442
2340
|
"indeterminate": true,
|
|
@@ -2445,15 +2343,14 @@ const VControlField = vue.defineComponent({
|
|
|
2445
2343
|
} else {
|
|
2446
2344
|
child = vueKit.renderSlotOrEmpty(resolvedSlots.value, position);
|
|
2447
2345
|
}
|
|
2448
|
-
|
|
2449
2346
|
if (!child) return;
|
|
2450
2347
|
return vue.createVNode("div", {
|
|
2451
2348
|
"class": ['v-control-field__adornment', `v-control-field__adornment--${position}`]
|
|
2452
2349
|
}, [child]);
|
|
2453
2350
|
};
|
|
2454
|
-
|
|
2455
2351
|
const handleClick = ev => {
|
|
2456
|
-
ctx.emit('click', ev);
|
|
2352
|
+
ctx.emit('click', ev);
|
|
2353
|
+
// if (ev.target === hostElRef.value) {
|
|
2457
2354
|
// ctx.emit('clickHost', ev);
|
|
2458
2355
|
// }
|
|
2459
2356
|
};
|
|
@@ -2462,8 +2359,8 @@ const VControlField = vue.defineComponent({
|
|
|
2462
2359
|
classes,
|
|
2463
2360
|
renderAdornment,
|
|
2464
2361
|
hostElRef: () => hostElRef,
|
|
2465
|
-
handleClick
|
|
2466
|
-
|
|
2362
|
+
handleClick
|
|
2363
|
+
// computedTabindex,
|
|
2467
2364
|
};
|
|
2468
2365
|
},
|
|
2469
2366
|
|
|
@@ -2476,23 +2373,22 @@ const VControlField = vue.defineComponent({
|
|
|
2476
2373
|
"class": "v-control-field__body"
|
|
2477
2374
|
}, [vueKit.renderSlotOrEmpty(this.$slots, 'default')]), this.renderAdornment('end')]);
|
|
2478
2375
|
}
|
|
2479
|
-
|
|
2480
2376
|
});
|
|
2481
2377
|
|
|
2482
2378
|
function _isSlot$8(s) {
|
|
2483
2379
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
2484
2380
|
}
|
|
2485
|
-
|
|
2486
|
-
const
|
|
2487
|
-
const
|
|
2488
|
-
const KEYBORD_EVENT_TYPES = vueKit.useKeybord.Key([...ARROW_KEY_TYPES, ...CHOICE_KEY_TYPES]);
|
|
2381
|
+
const ARROW_KEY_TYPES = vueKit.useKeyboard.Key(['ArrowUp', 'ArrowDown']);
|
|
2382
|
+
const CHOICE_KEY_TYPES = vueKit.useKeyboard.Key(['Enter', ' ']);
|
|
2383
|
+
const KEYBORD_EVENT_TYPES = vueKit.useKeyboard.Key([...ARROW_KEY_TYPES, ...CHOICE_KEY_TYPES]);
|
|
2489
2384
|
const {
|
|
2490
2385
|
props: props$3,
|
|
2491
2386
|
emits: emits$3
|
|
2492
2387
|
} = vueKit.createFormSelectorSettings();
|
|
2493
|
-
const VSelect = vue.defineComponent({
|
|
2388
|
+
const VSelect = /* @__PURE__ */ vue.defineComponent({
|
|
2494
2389
|
name: 'VSelect',
|
|
2495
|
-
props: {
|
|
2390
|
+
props: {
|
|
2391
|
+
...props$3,
|
|
2496
2392
|
...vueKit.createFormControlProps(),
|
|
2497
2393
|
...createControlFieldProps(),
|
|
2498
2394
|
...createControlFieldProviderProps(),
|
|
@@ -2502,22 +2398,19 @@ const VSelect = vue.defineComponent({
|
|
|
2502
2398
|
placeholder: String,
|
|
2503
2399
|
loadingMessage: {},
|
|
2504
2400
|
failedToLoadItemsMessage: {}
|
|
2505
|
-
})
|
|
2401
|
+
}),
|
|
2402
|
+
closeOnNavigation: Boolean
|
|
2506
2403
|
},
|
|
2507
2404
|
emits: emits$3,
|
|
2508
|
-
|
|
2509
2405
|
setup(props, ctx) {
|
|
2510
2406
|
const menuRef = vue.ref(null);
|
|
2511
2407
|
const menuOpened = vue.ref(false);
|
|
2512
|
-
|
|
2513
2408
|
const showMenu = () => {
|
|
2514
2409
|
menuOpened.value = true;
|
|
2515
2410
|
};
|
|
2516
|
-
|
|
2517
2411
|
const closeMenu = () => {
|
|
2518
2412
|
menuOpened.value = false;
|
|
2519
2413
|
};
|
|
2520
|
-
|
|
2521
2414
|
const inputControl = vueKit.useFormSelectorControl(props, ctx, {
|
|
2522
2415
|
nodeType: VUI_SELECT_SYMBOL,
|
|
2523
2416
|
onSelectItem: item => {
|
|
@@ -2537,14 +2430,12 @@ const VSelect = vue.defineComponent({
|
|
|
2537
2430
|
const slot = vueKit.resolveVNodeChildOrSlots(props.failedToLoadItemsMessage, vui.setting('failedToLoadDataMessage'), 'Failed to load data.');
|
|
2538
2431
|
return slot && slot(vui);
|
|
2539
2432
|
});
|
|
2540
|
-
|
|
2541
2433
|
const focus = opts => {
|
|
2542
2434
|
fieldRef.value && fieldRef.value.focus(opts);
|
|
2543
2435
|
};
|
|
2544
|
-
|
|
2545
2436
|
const renderSelections = selectedItems => {
|
|
2437
|
+
const selectionSlot = ctx.slots.selection;
|
|
2546
2438
|
const children = [];
|
|
2547
|
-
|
|
2548
2439
|
if (inputControl.itemsLoadFailed) {
|
|
2549
2440
|
children.push(vue.createVNode("span", {
|
|
2550
2441
|
"class": "v-select__placeholder"
|
|
@@ -2558,18 +2449,19 @@ const VSelect = vue.defineComponent({
|
|
|
2558
2449
|
if (index > 0) {
|
|
2559
2450
|
children.push(vui.selectionSeparator());
|
|
2560
2451
|
}
|
|
2561
|
-
|
|
2562
|
-
|
|
2452
|
+
const child = selectionSlot ? selectionSlot({
|
|
2453
|
+
item,
|
|
2454
|
+
index
|
|
2455
|
+
}) : item.renderDefaultSlot();
|
|
2456
|
+
children.push(child);
|
|
2563
2457
|
});
|
|
2564
2458
|
} else if (props.placeholder != null) {
|
|
2565
2459
|
children.push(vue.createVNode("span", {
|
|
2566
2460
|
"class": "v-select__placeholder"
|
|
2567
2461
|
}, [props.placeholder]));
|
|
2568
2462
|
}
|
|
2569
|
-
|
|
2570
2463
|
return children;
|
|
2571
2464
|
};
|
|
2572
|
-
|
|
2573
2465
|
const clearKeyFocused = () => {
|
|
2574
2466
|
const menu = menuRef.value;
|
|
2575
2467
|
if (!menu) return;
|
|
@@ -2578,7 +2470,6 @@ const VSelect = vue.defineComponent({
|
|
|
2578
2470
|
const els = Array.from(bodyEl.querySelectorAll('.v-option'));
|
|
2579
2471
|
els.forEach(el => el.classList.remove('v-option--key-focused'));
|
|
2580
2472
|
};
|
|
2581
|
-
|
|
2582
2473
|
const getItemElements = () => {
|
|
2583
2474
|
const menu = menuRef.value;
|
|
2584
2475
|
if (!menu) return;
|
|
@@ -2594,7 +2485,6 @@ const VSelect = vue.defineComponent({
|
|
|
2594
2485
|
if (!els.length) return;
|
|
2595
2486
|
return els;
|
|
2596
2487
|
};
|
|
2597
|
-
|
|
2598
2488
|
const arrowKeyHandler = ev => {
|
|
2599
2489
|
const {
|
|
2600
2490
|
key
|
|
@@ -2609,22 +2499,18 @@ const VSelect = vue.defineComponent({
|
|
|
2609
2499
|
length
|
|
2610
2500
|
} = els;
|
|
2611
2501
|
const isUp = key === 'ArrowUp';
|
|
2612
|
-
|
|
2613
2502
|
if (currentIndex == null) {
|
|
2614
2503
|
nextIndex = isUp ? length - 1 : 0;
|
|
2615
2504
|
} else {
|
|
2616
2505
|
const shiftAmount = key === 'ArrowUp' ? -1 : 1;
|
|
2617
2506
|
nextIndex = currentIndex + shiftAmount;
|
|
2618
|
-
|
|
2619
2507
|
if (nextIndex < 0) {
|
|
2620
2508
|
nextIndex = length - 1;
|
|
2621
2509
|
} else if (nextIndex >= length) {
|
|
2622
2510
|
nextIndex = 0;
|
|
2623
2511
|
}
|
|
2624
2512
|
}
|
|
2625
|
-
|
|
2626
2513
|
const nextEl = els[nextIndex];
|
|
2627
|
-
|
|
2628
2514
|
if (nextEl) {
|
|
2629
2515
|
clearKeyFocused();
|
|
2630
2516
|
nextEl.classList.add('v-option--key-focused');
|
|
@@ -2636,7 +2522,6 @@ const VSelect = vue.defineComponent({
|
|
|
2636
2522
|
ev.preventDefault();
|
|
2637
2523
|
}
|
|
2638
2524
|
};
|
|
2639
|
-
|
|
2640
2525
|
const choiceKeyHandler = ev => {
|
|
2641
2526
|
const {
|
|
2642
2527
|
key
|
|
@@ -2645,7 +2530,6 @@ const VSelect = vue.defineComponent({
|
|
|
2645
2530
|
const els = getItemElements();
|
|
2646
2531
|
if (!els) return;
|
|
2647
2532
|
const currentEl = els.find(el => el.classList.contains('v-option--key-focused'));
|
|
2648
|
-
|
|
2649
2533
|
if (currentEl) {
|
|
2650
2534
|
const ev = new MouseEvent('click', {
|
|
2651
2535
|
view: window,
|
|
@@ -2659,19 +2543,18 @@ const VSelect = vue.defineComponent({
|
|
|
2659
2543
|
});
|
|
2660
2544
|
}
|
|
2661
2545
|
};
|
|
2662
|
-
|
|
2663
|
-
const keybordEventHandler = ev => {
|
|
2546
|
+
const keyboardEventHandler = ev => {
|
|
2664
2547
|
if (ARROW_KEY_TYPES.includes(ev.key)) return arrowKeyHandler(ev);
|
|
2665
2548
|
if (CHOICE_KEY_TYPES.includes(ev.key)) return choiceKeyHandler(ev);
|
|
2666
2549
|
};
|
|
2667
|
-
|
|
2668
|
-
vueKit.useKeybord([{
|
|
2550
|
+
vueKit.useKeyboard([{
|
|
2669
2551
|
key: KEYBORD_EVENT_TYPES,
|
|
2670
|
-
handler:
|
|
2552
|
+
handler: keyboardEventHandler
|
|
2671
2553
|
}], {
|
|
2672
2554
|
autorun: true
|
|
2673
2555
|
});
|
|
2674
|
-
return {
|
|
2556
|
+
return {
|
|
2557
|
+
...inputControl.expose(),
|
|
2675
2558
|
...control,
|
|
2676
2559
|
iconName,
|
|
2677
2560
|
menuOpened,
|
|
@@ -2684,7 +2567,6 @@ const VSelect = vue.defineComponent({
|
|
|
2684
2567
|
clearKeyFocused
|
|
2685
2568
|
};
|
|
2686
2569
|
},
|
|
2687
|
-
|
|
2688
2570
|
render() {
|
|
2689
2571
|
const {
|
|
2690
2572
|
nodeControl,
|
|
@@ -2695,7 +2577,6 @@ const VSelect = vue.defineComponent({
|
|
|
2695
2577
|
const children = this.$slots.default && this.$slots.default() || [];
|
|
2696
2578
|
const propGroups = this.propGroups.map(group => {
|
|
2697
2579
|
let _slot;
|
|
2698
|
-
|
|
2699
2580
|
return vue.createVNode(VOptionGroup, {
|
|
2700
2581
|
"key": group.id,
|
|
2701
2582
|
"groupId": group.id,
|
|
@@ -2724,10 +2605,12 @@ const VSelect = vue.defineComponent({
|
|
|
2724
2605
|
"onClickLabel": ev => {
|
|
2725
2606
|
this.focus();
|
|
2726
2607
|
}
|
|
2727
|
-
}, {
|
|
2608
|
+
}, {
|
|
2609
|
+
...this.$slots,
|
|
2728
2610
|
default: () => vue.createVNode(vueKit.VMenu, {
|
|
2729
2611
|
"width": "fit",
|
|
2730
2612
|
"maxWidth": "fit",
|
|
2613
|
+
"closeOnNavigation": this.closeOnNavigation,
|
|
2731
2614
|
"distance": 0,
|
|
2732
2615
|
"alwaysRender": true,
|
|
2733
2616
|
"modelValue": this.menuOpened,
|
|
@@ -2756,20 +2639,18 @@ const VSelect = vue.defineComponent({
|
|
|
2756
2639
|
let t = ev.target;
|
|
2757
2640
|
const count = 0;
|
|
2758
2641
|
let hit = false;
|
|
2759
|
-
|
|
2760
2642
|
while (count < 5) {
|
|
2761
2643
|
if (t.classList.contains('v-select__input')) {
|
|
2762
2644
|
hit = true;
|
|
2763
2645
|
break;
|
|
2764
2646
|
}
|
|
2765
|
-
|
|
2766
2647
|
t = t.parentElement;
|
|
2767
2648
|
}
|
|
2768
|
-
|
|
2769
2649
|
control.show(hit ? t : ev);
|
|
2770
2650
|
}
|
|
2771
2651
|
}
|
|
2772
|
-
}, {
|
|
2652
|
+
}, {
|
|
2653
|
+
...this.$slots,
|
|
2773
2654
|
default: () => [vue.withDirectives(vue.createVNode("select", {
|
|
2774
2655
|
"class": "v-select__input__element",
|
|
2775
2656
|
"name": this.name,
|
|
@@ -2801,7 +2682,6 @@ const VSelect = vue.defineComponent({
|
|
|
2801
2682
|
}
|
|
2802
2683
|
}, null);
|
|
2803
2684
|
}
|
|
2804
|
-
|
|
2805
2685
|
if (this.clearable && this.nodeControl.value != null) {
|
|
2806
2686
|
return vue.createVNode(VButton, {
|
|
2807
2687
|
"key": "clear",
|
|
@@ -2813,7 +2693,6 @@ const VSelect = vue.defineComponent({
|
|
|
2813
2693
|
}
|
|
2814
2694
|
}, null);
|
|
2815
2695
|
}
|
|
2816
|
-
|
|
2817
2696
|
return vue.createVNode(VIcon, {
|
|
2818
2697
|
"key": "icon",
|
|
2819
2698
|
"name": this.iconName,
|
|
@@ -2824,10 +2703,9 @@ const VSelect = vue.defineComponent({
|
|
|
2824
2703
|
})
|
|
2825
2704
|
});
|
|
2826
2705
|
}
|
|
2827
|
-
|
|
2828
2706
|
});
|
|
2829
2707
|
|
|
2830
|
-
const VTextCounter = vue.defineComponent({
|
|
2708
|
+
const VTextCounter = /* @__PURE__ */ vue.defineComponent({
|
|
2831
2709
|
name: 'VTextCounter',
|
|
2832
2710
|
props: {
|
|
2833
2711
|
length: {
|
|
@@ -2839,22 +2717,20 @@ const VTextCounter = vue.defineComponent({
|
|
|
2839
2717
|
required: true
|
|
2840
2718
|
}
|
|
2841
2719
|
},
|
|
2842
|
-
|
|
2843
2720
|
render() {
|
|
2844
2721
|
return vue.createVNode("span", {
|
|
2845
2722
|
"class": "v-text-counter"
|
|
2846
2723
|
}, [`${this.length} / ${this.maxlength}`]);
|
|
2847
2724
|
}
|
|
2848
|
-
|
|
2849
2725
|
});
|
|
2850
2726
|
|
|
2851
2727
|
const {
|
|
2852
2728
|
props: props$2,
|
|
2853
2729
|
emits: emits$2
|
|
2854
2730
|
} = vueKit.createTextInputSettings();
|
|
2855
|
-
|
|
2856
2731
|
function createTextFieldProps() {
|
|
2857
|
-
return {
|
|
2732
|
+
return {
|
|
2733
|
+
...props$2,
|
|
2858
2734
|
...vueKit.createFormControlProps(),
|
|
2859
2735
|
...createControlFieldProps(),
|
|
2860
2736
|
...createControlFieldProviderProps(),
|
|
@@ -2862,23 +2738,21 @@ function createTextFieldProps() {
|
|
|
2862
2738
|
...vueKit.defineSlotsProps()
|
|
2863
2739
|
};
|
|
2864
2740
|
}
|
|
2865
|
-
|
|
2866
|
-
const VTextField = vue.defineComponent({
|
|
2741
|
+
const VTextField = /* @__PURE__ */ vue.defineComponent({
|
|
2867
2742
|
name: 'VTextField',
|
|
2868
2743
|
props: createTextFieldProps(),
|
|
2869
2744
|
emits: emits$2,
|
|
2870
|
-
|
|
2871
2745
|
setup(props, ctx) {
|
|
2872
2746
|
const inputControl = vueKit.useTextInputControl(props, ctx, {
|
|
2873
2747
|
nodeType: VUI_TEXT_FIELD_SYMBOL
|
|
2874
2748
|
});
|
|
2875
2749
|
const control = useControl(props);
|
|
2876
2750
|
useControlField(props);
|
|
2877
|
-
return {
|
|
2751
|
+
return {
|
|
2752
|
+
...inputControl.expose(),
|
|
2878
2753
|
...control
|
|
2879
2754
|
};
|
|
2880
2755
|
},
|
|
2881
|
-
|
|
2882
2756
|
render() {
|
|
2883
2757
|
return vue.createVNode(VFormControl, {
|
|
2884
2758
|
"nodeControl": this.nodeControl,
|
|
@@ -2892,13 +2766,15 @@ const VTextField = vue.defineComponent({
|
|
|
2892
2766
|
"onClickLabel": ev => {
|
|
2893
2767
|
this.focus();
|
|
2894
2768
|
}
|
|
2895
|
-
}, {
|
|
2769
|
+
}, {
|
|
2770
|
+
...this.$slots,
|
|
2896
2771
|
default: () => vue.createVNode(VControlField, {
|
|
2897
2772
|
"class": "v-text-field__input",
|
|
2898
2773
|
"startAdornment": this.startAdornment,
|
|
2899
2774
|
"endAdornment": this.endAdornment,
|
|
2900
2775
|
"size": this.size
|
|
2901
|
-
}, {
|
|
2776
|
+
}, {
|
|
2777
|
+
...this.$slots,
|
|
2902
2778
|
default: () => this.textInputControl.createInputElement({
|
|
2903
2779
|
class: 'v-text-field__input__element'
|
|
2904
2780
|
})
|
|
@@ -2912,35 +2788,33 @@ const VTextField = vue.defineComponent({
|
|
|
2912
2788
|
}
|
|
2913
2789
|
});
|
|
2914
2790
|
}
|
|
2915
|
-
|
|
2916
2791
|
});
|
|
2917
2792
|
|
|
2918
|
-
const VNumberField = vue.defineComponent({
|
|
2793
|
+
const VNumberField = /* @__PURE__ */ vue.defineComponent({
|
|
2919
2794
|
name: 'VNumberField',
|
|
2920
|
-
props: {
|
|
2795
|
+
props: {
|
|
2796
|
+
...undefined,
|
|
2921
2797
|
modelValue: {
|
|
2922
2798
|
type: Number,
|
|
2923
2799
|
default: null
|
|
2924
2800
|
}
|
|
2925
2801
|
},
|
|
2926
|
-
emits: {
|
|
2802
|
+
emits: {
|
|
2803
|
+
...undefined,
|
|
2927
2804
|
'update:modelValue': value => true,
|
|
2928
2805
|
change: value => true
|
|
2929
2806
|
},
|
|
2930
|
-
|
|
2931
2807
|
setup(props, ctx) {
|
|
2932
2808
|
const toString = value => {
|
|
2933
2809
|
if (value == null) return '';
|
|
2934
2810
|
return String(value);
|
|
2935
2811
|
};
|
|
2936
|
-
|
|
2937
2812
|
const toNumber = value => {
|
|
2938
2813
|
if (value == null) return null;
|
|
2939
2814
|
if (typeof value === 'number') return value;
|
|
2940
2815
|
if (value.trim() === '') return null;
|
|
2941
2816
|
return Number(value);
|
|
2942
2817
|
};
|
|
2943
|
-
|
|
2944
2818
|
return () => {
|
|
2945
2819
|
return vue.createVNode(VTextField, vue.mergeProps(ctx.attrs, {
|
|
2946
2820
|
"type": "number",
|
|
@@ -2954,16 +2828,16 @@ const VNumberField = vue.defineComponent({
|
|
|
2954
2828
|
}), ctx.slots);
|
|
2955
2829
|
};
|
|
2956
2830
|
}
|
|
2957
|
-
|
|
2958
2831
|
});
|
|
2959
2832
|
|
|
2960
2833
|
const {
|
|
2961
2834
|
props: props$1,
|
|
2962
2835
|
emits: emits$1
|
|
2963
2836
|
} = vueKit.createTextareaSettings();
|
|
2964
|
-
const VTextarea = vue.defineComponent({
|
|
2837
|
+
const VTextarea = /* @__PURE__ */ vue.defineComponent({
|
|
2965
2838
|
name: 'VTextarea',
|
|
2966
|
-
props: {
|
|
2839
|
+
props: {
|
|
2840
|
+
...props$1,
|
|
2967
2841
|
...vueKit.createFormControlProps(),
|
|
2968
2842
|
...createControlFieldProps(),
|
|
2969
2843
|
...createControlFieldProviderProps(),
|
|
@@ -2971,7 +2845,6 @@ const VTextarea = vue.defineComponent({
|
|
|
2971
2845
|
...vueKit.defineSlotsProps()
|
|
2972
2846
|
},
|
|
2973
2847
|
emits: emits$1,
|
|
2974
|
-
|
|
2975
2848
|
setup(props, ctx) {
|
|
2976
2849
|
const vui = useVui();
|
|
2977
2850
|
const inputControl = vueKit.useTextareaControl(props, ctx, {
|
|
@@ -2980,11 +2853,11 @@ const VTextarea = vue.defineComponent({
|
|
|
2980
2853
|
});
|
|
2981
2854
|
const control = useControl(props);
|
|
2982
2855
|
useControlField(props);
|
|
2983
|
-
return {
|
|
2856
|
+
return {
|
|
2857
|
+
...inputControl.expose(),
|
|
2984
2858
|
...control
|
|
2985
2859
|
};
|
|
2986
2860
|
},
|
|
2987
|
-
|
|
2988
2861
|
render() {
|
|
2989
2862
|
return vue.createVNode(VFormControl, {
|
|
2990
2863
|
"nodeControl": this.nodeControl,
|
|
@@ -2998,14 +2871,16 @@ const VTextarea = vue.defineComponent({
|
|
|
2998
2871
|
"onClickLabel": ev => {
|
|
2999
2872
|
this.focus();
|
|
3000
2873
|
}
|
|
3001
|
-
}, {
|
|
2874
|
+
}, {
|
|
2875
|
+
...this.$slots,
|
|
3002
2876
|
default: () => vue.createVNode(VControlField, {
|
|
3003
2877
|
"class": "v-textarea__input",
|
|
3004
2878
|
"size": this.size,
|
|
3005
2879
|
"autoHeight": true,
|
|
3006
2880
|
"startAdornment": this.startAdornment,
|
|
3007
2881
|
"endAdornment": this.endAdornment
|
|
3008
|
-
}, {
|
|
2882
|
+
}, {
|
|
2883
|
+
...this.$slots,
|
|
3009
2884
|
default: () => this.textareaControl.createInputElement({
|
|
3010
2885
|
class: 'v-textarea__input__element'
|
|
3011
2886
|
})
|
|
@@ -3019,7 +2894,6 @@ const VTextarea = vue.defineComponent({
|
|
|
3019
2894
|
}
|
|
3020
2895
|
});
|
|
3021
2896
|
}
|
|
3022
|
-
|
|
3023
2897
|
});
|
|
3024
2898
|
|
|
3025
2899
|
const EDITOR_EVENTS = [
|
|
@@ -3141,10 +3015,10 @@ function resolveRawWysiwygEditorTools(rawTools, vui) {
|
|
|
3141
3015
|
function _isSlot$7(s) {
|
|
3142
3016
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
3143
3017
|
}
|
|
3144
|
-
|
|
3145
|
-
const VWysiwygEditor = vue.defineComponent({
|
|
3018
|
+
const VWysiwygEditor = /* @__PURE__ */ vue.defineComponent({
|
|
3146
3019
|
name: 'VWysiwygEditor',
|
|
3147
|
-
props: {
|
|
3020
|
+
props: {
|
|
3021
|
+
// ...props,
|
|
3148
3022
|
...vueFormControl.createTextableProps(),
|
|
3149
3023
|
...vueKit.createFormControlProps(),
|
|
3150
3024
|
...createControlFieldProps(),
|
|
@@ -3163,9 +3037,9 @@ const VWysiwygEditor = vue.defineComponent({
|
|
|
3163
3037
|
disabledMinHeight: Boolean,
|
|
3164
3038
|
disabledMaxHeight: Boolean
|
|
3165
3039
|
},
|
|
3166
|
-
emits: {
|
|
3040
|
+
emits: {
|
|
3041
|
+
...vueFormControl.createTextableEmits()
|
|
3167
3042
|
},
|
|
3168
|
-
|
|
3169
3043
|
setup(props, ctx) {
|
|
3170
3044
|
const vui = useVui();
|
|
3171
3045
|
const textRef = vue.ref('');
|
|
@@ -3201,22 +3075,21 @@ const VWysiwygEditor = vue.defineComponent({
|
|
|
3201
3075
|
textRef.value = editor.getText();
|
|
3202
3076
|
}
|
|
3203
3077
|
});
|
|
3204
|
-
const extensions = [
|
|
3078
|
+
const extensions = [starterKit.StarterKit.configure({
|
|
3205
3079
|
bold: false,
|
|
3206
3080
|
bulletList: false,
|
|
3207
3081
|
orderedList: false,
|
|
3208
3082
|
history: false,
|
|
3209
3083
|
italic: false
|
|
3210
|
-
}),
|
|
3084
|
+
}),
|
|
3085
|
+
// Linter.configure({
|
|
3211
3086
|
// plugins: [BadWords(['abc', 'evidently']), Punctuation, HeadingLevel],
|
|
3212
3087
|
// }),
|
|
3213
3088
|
...resolveRawWysiwygExtensions(props.extensions, initializeCtx), ...wysiwygSettings.value.extensions];
|
|
3214
|
-
|
|
3215
3089
|
const updateEditable = () => {
|
|
3216
3090
|
if (!editor.value) return;
|
|
3217
3091
|
editor.value.setEditable(inputControl.canOperation);
|
|
3218
3092
|
};
|
|
3219
|
-
|
|
3220
3093
|
vue.watch(() => inputControl.canOperation, updateEditable);
|
|
3221
3094
|
vue.watch(() => props.modelValue, modelValue => {
|
|
3222
3095
|
const $editor = editor.value;
|
|
@@ -3230,7 +3103,8 @@ const VWysiwygEditor = vue.defineComponent({
|
|
|
3230
3103
|
textRef.value = editor.getText();
|
|
3231
3104
|
updateEditable();
|
|
3232
3105
|
});
|
|
3233
|
-
const editor = vue3.useEditor({
|
|
3106
|
+
const editor = vue3.useEditor({
|
|
3107
|
+
...initializeCtx.editorOptions(),
|
|
3234
3108
|
autofocus: props.autofocus,
|
|
3235
3109
|
content: props.modelValue,
|
|
3236
3110
|
extensions,
|
|
@@ -3239,33 +3113,29 @@ const VWysiwygEditor = vue.defineComponent({
|
|
|
3239
3113
|
class: 'v-wysiwyg-editor__input__prose'
|
|
3240
3114
|
}
|
|
3241
3115
|
}
|
|
3242
|
-
});
|
|
3243
|
-
|
|
3116
|
+
});
|
|
3117
|
+
// editor.value.state.doc.content
|
|
3244
3118
|
const focus = (position, options) => {
|
|
3245
3119
|
if (!editor.value) return;
|
|
3246
3120
|
return editor.value.chain().focus(position, options);
|
|
3247
3121
|
};
|
|
3248
|
-
|
|
3249
3122
|
const blur = () => {
|
|
3250
3123
|
if (!editor.value) return;
|
|
3251
3124
|
return editor.value.chain().blur();
|
|
3252
3125
|
};
|
|
3253
|
-
|
|
3254
3126
|
const wysiwygContext = vue.computed(() => {
|
|
3255
3127
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
3256
|
-
const _editor = editor.value;
|
|
3128
|
+
const _editor = editor.value;
|
|
3129
|
+
// if (!_editor) {
|
|
3257
3130
|
// throw new Error('missing editor value');
|
|
3258
3131
|
// }
|
|
3259
|
-
|
|
3260
3132
|
return {
|
|
3261
3133
|
vui,
|
|
3262
3134
|
editor: _editor
|
|
3263
3135
|
};
|
|
3264
3136
|
});
|
|
3265
|
-
|
|
3266
3137
|
const createTools = (bubbleMenu = false) => {
|
|
3267
3138
|
let _slot;
|
|
3268
|
-
|
|
3269
3139
|
const {
|
|
3270
3140
|
value: settings
|
|
3271
3141
|
} = wysiwygSettings;
|
|
@@ -3291,11 +3161,9 @@ const VWysiwygEditor = vue.defineComponent({
|
|
|
3291
3161
|
const isDisabled = !inputControl.canOperation || !!_editor && resolveContextableValue(context, disabled);
|
|
3292
3162
|
let iconName;
|
|
3293
3163
|
let child;
|
|
3294
|
-
|
|
3295
3164
|
if (typeof icon === 'function') {
|
|
3296
3165
|
if (_editor) {
|
|
3297
3166
|
const _child = icon(context);
|
|
3298
|
-
|
|
3299
3167
|
if (typeof _child === 'function') {
|
|
3300
3168
|
child = _child();
|
|
3301
3169
|
} else {
|
|
@@ -3305,7 +3173,6 @@ const VWysiwygEditor = vue.defineComponent({
|
|
|
3305
3173
|
} else {
|
|
3306
3174
|
iconName = icon;
|
|
3307
3175
|
}
|
|
3308
|
-
|
|
3309
3176
|
if (!iconName && child == null) return;
|
|
3310
3177
|
return vue.createVNode(VButton, {
|
|
3311
3178
|
"tabindex": -1,
|
|
@@ -3321,7 +3188,6 @@ const VWysiwygEditor = vue.defineComponent({
|
|
|
3321
3188
|
default: () => [_slot]
|
|
3322
3189
|
});
|
|
3323
3190
|
};
|
|
3324
|
-
|
|
3325
3191
|
vue.onBeforeUnmount(() => {
|
|
3326
3192
|
editor.value && editor.value.destroy();
|
|
3327
3193
|
});
|
|
@@ -3334,7 +3200,6 @@ const VWysiwygEditor = vue.defineComponent({
|
|
|
3334
3200
|
createTools
|
|
3335
3201
|
};
|
|
3336
3202
|
},
|
|
3337
|
-
|
|
3338
3203
|
render() {
|
|
3339
3204
|
return vue.createVNode(VFormControl, {
|
|
3340
3205
|
"nodeControl": this.nodeControl,
|
|
@@ -3353,7 +3218,8 @@ const VWysiwygEditor = vue.defineComponent({
|
|
|
3353
3218
|
scrollIntoView: true
|
|
3354
3219
|
});
|
|
3355
3220
|
}
|
|
3356
|
-
}, {
|
|
3221
|
+
}, {
|
|
3222
|
+
...this.$slots,
|
|
3357
3223
|
default: () => {
|
|
3358
3224
|
const {
|
|
3359
3225
|
editor
|
|
@@ -3366,10 +3232,10 @@ const VWysiwygEditor = vue.defineComponent({
|
|
|
3366
3232
|
"startAdornment": this.startAdornment,
|
|
3367
3233
|
"endAdornment": this.endAdornment,
|
|
3368
3234
|
"size": this.size
|
|
3369
|
-
}, {
|
|
3235
|
+
}, {
|
|
3236
|
+
...this.$slots,
|
|
3370
3237
|
default: () => {
|
|
3371
3238
|
let _slot2;
|
|
3372
|
-
|
|
3373
3239
|
return vue.createVNode("div", {
|
|
3374
3240
|
"class": "v-wysiwyg-editor__body"
|
|
3375
3241
|
}, [vue.createVNode(vue3.EditorContent, vue.mergeProps({
|
|
@@ -3395,9 +3261,7 @@ const VWysiwygEditor = vue.defineComponent({
|
|
|
3395
3261
|
}
|
|
3396
3262
|
});
|
|
3397
3263
|
}
|
|
3398
|
-
|
|
3399
3264
|
});
|
|
3400
|
-
|
|
3401
3265
|
function resolveContextableValue(ctx, source) {
|
|
3402
3266
|
return typeof source === 'function' ? source(ctx) : source;
|
|
3403
3267
|
}
|
|
@@ -3405,11 +3269,9 @@ function resolveContextableValue(ctx, source) {
|
|
|
3405
3269
|
const PROBLEM_CLASS_NAME = 'v-linter__problem';
|
|
3406
3270
|
const ISSUE_ICON_CLASS_NAME = 'v-linter__issue-icon';
|
|
3407
3271
|
const ISSUE_DATASET_NAME = 'data-issue-id';
|
|
3408
|
-
|
|
3409
3272
|
function resolveWysiwygLinterFixMessage(message) {
|
|
3410
3273
|
return typeof message === 'function' ? message() : message;
|
|
3411
3274
|
}
|
|
3412
|
-
|
|
3413
3275
|
function renderIcon(view, issue) {
|
|
3414
3276
|
const {
|
|
3415
3277
|
level = 'warning'
|
|
@@ -3418,14 +3280,11 @@ function renderIcon(view, issue) {
|
|
|
3418
3280
|
const message = resolveWysiwygLinterFixMessage(issue.message);
|
|
3419
3281
|
icon.className = `${ISSUE_ICON_CLASS_NAME} ${level}-scope`;
|
|
3420
3282
|
icon.setAttribute(ISSUE_DATASET_NAME, issue.id);
|
|
3421
|
-
|
|
3422
3283
|
if (typeof message === 'string') {
|
|
3423
3284
|
icon.title = message;
|
|
3424
3285
|
}
|
|
3425
|
-
|
|
3426
3286
|
return icon;
|
|
3427
3287
|
}
|
|
3428
|
-
|
|
3429
3288
|
function runAllLinterPlugins(doc, plugins) {
|
|
3430
3289
|
const decorations = [];
|
|
3431
3290
|
const issues = plugins.map(RegisteredLinterPlugin => {
|
|
@@ -3442,7 +3301,6 @@ function runAllLinterPlugins(doc, plugins) {
|
|
|
3442
3301
|
'data-issue-id': issue.id,
|
|
3443
3302
|
title: typeof message === 'string' ? message : undefined
|
|
3444
3303
|
}));
|
|
3445
|
-
|
|
3446
3304
|
if (icon) {
|
|
3447
3305
|
decorations.push(prosemirrorView.Decoration.widget(issue.from, view => renderIcon(view, issue)));
|
|
3448
3306
|
}
|
|
@@ -3453,7 +3311,6 @@ function runAllLinterPlugins(doc, plugins) {
|
|
|
3453
3311
|
decorationSet
|
|
3454
3312
|
};
|
|
3455
3313
|
}
|
|
3456
|
-
|
|
3457
3314
|
const WysiwygLinter = createWysiwygExtension(ctx => {
|
|
3458
3315
|
function showMenu(view, issue, event) {
|
|
3459
3316
|
const message = resolveWysiwygLinterFixMessage(issue.message);
|
|
@@ -3482,22 +3339,18 @@ const WysiwygLinter = createWysiwygExtension(ctx => {
|
|
|
3482
3339
|
}, [resolveWysiwygLinterFixMessage(fixer.message)])])]))])])
|
|
3483
3340
|
});
|
|
3484
3341
|
}
|
|
3485
|
-
|
|
3486
3342
|
return core.Extension.create({
|
|
3487
3343
|
name: 'linter',
|
|
3488
|
-
|
|
3489
3344
|
addOptions() {
|
|
3490
3345
|
return {
|
|
3491
3346
|
plugins: []
|
|
3492
3347
|
};
|
|
3493
3348
|
},
|
|
3494
|
-
|
|
3495
3349
|
addStorage() {
|
|
3496
3350
|
return {
|
|
3497
3351
|
issues: []
|
|
3498
3352
|
};
|
|
3499
3353
|
},
|
|
3500
|
-
|
|
3501
3354
|
addProseMirrorPlugins() {
|
|
3502
3355
|
const {
|
|
3503
3356
|
plugins
|
|
@@ -3505,7 +3358,6 @@ const WysiwygLinter = createWysiwygExtension(ctx => {
|
|
|
3505
3358
|
const {
|
|
3506
3359
|
storage
|
|
3507
3360
|
} = this;
|
|
3508
|
-
|
|
3509
3361
|
const runAll = doc => {
|
|
3510
3362
|
const {
|
|
3511
3363
|
issues,
|
|
@@ -3514,14 +3366,11 @@ const WysiwygLinter = createWysiwygExtension(ctx => {
|
|
|
3514
3366
|
storage.issues = issues;
|
|
3515
3367
|
return decorationSet;
|
|
3516
3368
|
};
|
|
3517
|
-
|
|
3518
3369
|
const getIssue = id => storage.issues.find(issue => issue.id === id);
|
|
3519
|
-
|
|
3520
3370
|
const getIssueElementByEvent = source => {
|
|
3521
3371
|
if (!source || !(source instanceof HTMLElement)) {
|
|
3522
3372
|
return;
|
|
3523
3373
|
}
|
|
3524
|
-
|
|
3525
3374
|
const issueId = source.getAttribute(ISSUE_DATASET_NAME);
|
|
3526
3375
|
const issue = issueId && getIssue(issueId);
|
|
3527
3376
|
if (!issue) return;
|
|
@@ -3529,7 +3378,6 @@ const WysiwygLinter = createWysiwygExtension(ctx => {
|
|
|
3529
3378
|
issue
|
|
3530
3379
|
};
|
|
3531
3380
|
};
|
|
3532
|
-
|
|
3533
3381
|
const linterPlugin = new prosemirrorState.Plugin({
|
|
3534
3382
|
key: new prosemirrorState.PluginKey('linter'),
|
|
3535
3383
|
state: {
|
|
@@ -3538,24 +3386,19 @@ const WysiwygLinter = createWysiwygExtension(ctx => {
|
|
|
3538
3386
|
}) {
|
|
3539
3387
|
return runAll(doc);
|
|
3540
3388
|
},
|
|
3541
|
-
|
|
3542
3389
|
apply(transaction, oldState) {
|
|
3543
3390
|
return transaction.docChanged ? runAll(transaction.doc) : oldState;
|
|
3544
3391
|
}
|
|
3545
|
-
|
|
3546
3392
|
},
|
|
3547
3393
|
props: {
|
|
3548
3394
|
decorations(state) {
|
|
3549
3395
|
return linterPlugin.getState(state);
|
|
3550
3396
|
},
|
|
3551
|
-
|
|
3552
3397
|
handleClick(view, _, event) {
|
|
3553
3398
|
const info = getIssueElementByEvent(event.target);
|
|
3554
|
-
|
|
3555
3399
|
if (!info) {
|
|
3556
3400
|
return false;
|
|
3557
3401
|
}
|
|
3558
|
-
|
|
3559
3402
|
const {
|
|
3560
3403
|
issue
|
|
3561
3404
|
} = info;
|
|
@@ -3563,19 +3406,15 @@ const WysiwygLinter = createWysiwygExtension(ctx => {
|
|
|
3563
3406
|
from,
|
|
3564
3407
|
to
|
|
3565
3408
|
} = issue;
|
|
3566
|
-
|
|
3567
3409
|
const focus = () => view.dispatch(view.state.tr.setSelection(prosemirrorState.TextSelection.create(view.state.doc, from, to)).scrollIntoView());
|
|
3568
|
-
|
|
3569
3410
|
focus();
|
|
3570
3411
|
showMenu(view, issue, event);
|
|
3571
3412
|
return true;
|
|
3572
3413
|
}
|
|
3573
|
-
|
|
3574
3414
|
}
|
|
3575
3415
|
});
|
|
3576
3416
|
return [linterPlugin];
|
|
3577
3417
|
}
|
|
3578
|
-
|
|
3579
3418
|
});
|
|
3580
3419
|
});
|
|
3581
3420
|
|
|
@@ -3638,9 +3477,7 @@ function WysiwygLinterBadWords(words) {
|
|
|
3638
3477
|
if (!node.isText) {
|
|
3639
3478
|
return;
|
|
3640
3479
|
}
|
|
3641
|
-
|
|
3642
3480
|
const matches = regex.exec(node.text);
|
|
3643
|
-
|
|
3644
3481
|
if (matches) {
|
|
3645
3482
|
const fixValue = matches[0] + '!!!!!';
|
|
3646
3483
|
this.record({
|
|
@@ -3664,7 +3501,6 @@ function WysiwygLinterBadWords(words) {
|
|
|
3664
3501
|
});
|
|
3665
3502
|
return this;
|
|
3666
3503
|
}
|
|
3667
|
-
|
|
3668
3504
|
};
|
|
3669
3505
|
}
|
|
3670
3506
|
|
|
@@ -3952,13 +3788,11 @@ function createWysiwygColorTool(opts) {
|
|
|
3952
3788
|
color
|
|
3953
3789
|
} = item;
|
|
3954
3790
|
let command = ctx.editor.chain().focus();
|
|
3955
|
-
|
|
3956
3791
|
if (color) {
|
|
3957
3792
|
command = command.setColor(color);
|
|
3958
3793
|
} else {
|
|
3959
3794
|
command = command.unsetColor();
|
|
3960
3795
|
}
|
|
3961
|
-
|
|
3962
3796
|
command.run();
|
|
3963
3797
|
stack.close();
|
|
3964
3798
|
}
|
|
@@ -3973,11 +3807,10 @@ function createWysiwygColorTool(opts) {
|
|
|
3973
3807
|
});
|
|
3974
3808
|
},
|
|
3975
3809
|
floating: true,
|
|
3976
|
-
extensions: [
|
|
3810
|
+
extensions: [TextStyle, WysiwygColorExtension]
|
|
3977
3811
|
};
|
|
3978
3812
|
return tool;
|
|
3979
3813
|
};
|
|
3980
|
-
|
|
3981
3814
|
return WysiwygColorTool;
|
|
3982
3815
|
}
|
|
3983
3816
|
|
|
@@ -3988,17 +3821,18 @@ const {
|
|
|
3988
3821
|
nodeType: VUI_FORM_SYMBOL
|
|
3989
3822
|
});
|
|
3990
3823
|
function createVFormProps() {
|
|
3991
|
-
return {
|
|
3824
|
+
return {
|
|
3825
|
+
...props,
|
|
3992
3826
|
...createControlProps(),
|
|
3993
|
-
...vueKit.defineSlotsProps()
|
|
3994
|
-
|
|
3827
|
+
...vueKit.defineSlotsProps()
|
|
3828
|
+
// disableAutoScroll: Boolean,
|
|
3995
3829
|
};
|
|
3996
3830
|
}
|
|
3997
|
-
|
|
3831
|
+
|
|
3832
|
+
const VForm = /* @__PURE__ */ vue.defineComponent({
|
|
3998
3833
|
name: 'VForm',
|
|
3999
3834
|
props: createVFormProps(),
|
|
4000
3835
|
emits,
|
|
4001
|
-
|
|
4002
3836
|
setup(props, ctx) {
|
|
4003
3837
|
const vui = useVui();
|
|
4004
3838
|
const nodeControl = vueKit.useForm(props, ctx, {
|
|
@@ -4021,11 +3855,11 @@ const VForm = vue.defineComponent({
|
|
|
4021
3855
|
}];
|
|
4022
3856
|
});
|
|
4023
3857
|
useControl(props);
|
|
4024
|
-
return {
|
|
3858
|
+
return {
|
|
3859
|
+
...nodeControl.expose(),
|
|
4025
3860
|
classes
|
|
4026
3861
|
};
|
|
4027
3862
|
},
|
|
4028
|
-
|
|
4029
3863
|
render() {
|
|
4030
3864
|
const {
|
|
4031
3865
|
form
|
|
@@ -4038,14 +3872,12 @@ const VForm = vue.defineComponent({
|
|
|
4038
3872
|
"onSubmit": form.handleSubmit
|
|
4039
3873
|
}, [vueKit.renderSlotOrEmpty(this.$slots, 'default', form)]);
|
|
4040
3874
|
}
|
|
4041
|
-
|
|
4042
3875
|
});
|
|
4043
3876
|
|
|
4044
3877
|
function _isSlot$6(s) {
|
|
4045
3878
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
4046
3879
|
}
|
|
4047
|
-
|
|
4048
|
-
const VTab = vue.defineComponent({
|
|
3880
|
+
const VTab = /* @__PURE__ */ vue.defineComponent({
|
|
4049
3881
|
name: 'VTab',
|
|
4050
3882
|
props: {
|
|
4051
3883
|
value: {
|
|
@@ -4059,7 +3891,6 @@ const VTab = vue.defineComponent({
|
|
|
4059
3891
|
emits: {
|
|
4060
3892
|
click: ev => true
|
|
4061
3893
|
},
|
|
4062
|
-
|
|
4063
3894
|
setup(props, ctx) {
|
|
4064
3895
|
const classesRef = vue.computed(() => ({
|
|
4065
3896
|
'v-tab--active': props.active
|
|
@@ -4077,13 +3908,11 @@ const VTab = vue.defineComponent({
|
|
|
4077
3908
|
active
|
|
4078
3909
|
} = props;
|
|
4079
3910
|
const classes = ['v-tab', classesRef.value];
|
|
4080
|
-
|
|
4081
3911
|
const children = vue.createVNode("span", {
|
|
4082
3912
|
"class": "v-tab__content"
|
|
4083
3913
|
}, [icon && resolveRawIconProp(active, icon, {
|
|
4084
3914
|
class: 'v-tab__icon'
|
|
4085
3915
|
}), vueUtils.renderSlotOrEmpty(ctx.slots)]);
|
|
4086
|
-
|
|
4087
3916
|
if (to) {
|
|
4088
3917
|
const replace = typeof to === 'string' ? undefined : to.replace;
|
|
4089
3918
|
return vue.createVNode(vueRouter.RouterLink, {
|
|
@@ -4105,23 +3934,21 @@ const VTab = vue.defineComponent({
|
|
|
4105
3934
|
}
|
|
4106
3935
|
};
|
|
4107
3936
|
}
|
|
4108
|
-
|
|
4109
3937
|
});
|
|
4110
3938
|
|
|
4111
3939
|
function _isSlot$5(s) {
|
|
4112
3940
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
4113
3941
|
}
|
|
4114
|
-
|
|
4115
|
-
const VTabs = vue.defineComponent({
|
|
3942
|
+
const VTabs = /* @__PURE__ */ vue.defineComponent({
|
|
4116
3943
|
name: 'VTabs',
|
|
4117
3944
|
props: {
|
|
4118
3945
|
modelValue: String,
|
|
4119
3946
|
items: {
|
|
4120
3947
|
type: Array,
|
|
4121
|
-
required: true
|
|
3948
|
+
required: true
|
|
3949
|
+
// validator: (value: VTabsItem[]) => {
|
|
4122
3950
|
// return Array.isArray(value) && value.length > 0;
|
|
4123
3951
|
// },
|
|
4124
|
-
|
|
4125
3952
|
},
|
|
4126
3953
|
|
|
4127
3954
|
/**
|
|
@@ -4131,12 +3958,10 @@ const VTabs = vue.defineComponent({
|
|
|
4131
3958
|
type: Number,
|
|
4132
3959
|
default: 20
|
|
4133
3960
|
},
|
|
4134
|
-
|
|
4135
3961
|
/**
|
|
4136
3962
|
* ルーター同期する場合設定する
|
|
4137
3963
|
*/
|
|
4138
3964
|
router: Function,
|
|
4139
|
-
|
|
4140
3965
|
/**
|
|
4141
3966
|
* ルーティング連携を行う際に、クエリベースのURLマッチングを行う
|
|
4142
3967
|
* タブのURLが /page1?tab=xxx のようになる時に設定する
|
|
@@ -4150,7 +3975,6 @@ const VTabs = vue.defineComponent({
|
|
|
4150
3975
|
'update:modelValue': newValue => true,
|
|
4151
3976
|
change: newValue => true
|
|
4152
3977
|
},
|
|
4153
|
-
|
|
4154
3978
|
setup(props, ctx) {
|
|
4155
3979
|
const vui = useVui();
|
|
4156
3980
|
const internalValueRef = vue.ref(null);
|
|
@@ -4183,7 +4007,6 @@ const VTabs = vue.defineComponent({
|
|
|
4183
4007
|
} = item;
|
|
4184
4008
|
const active = current === value;
|
|
4185
4009
|
let location;
|
|
4186
|
-
|
|
4187
4010
|
if (router) {
|
|
4188
4011
|
const to = router(value);
|
|
4189
4012
|
const route = vui.router.resolve(to);
|
|
@@ -4192,31 +4015,26 @@ const VTabs = vue.defineComponent({
|
|
|
4192
4015
|
route
|
|
4193
4016
|
};
|
|
4194
4017
|
}
|
|
4195
|
-
|
|
4196
|
-
|
|
4018
|
+
return {
|
|
4019
|
+
...item,
|
|
4197
4020
|
active,
|
|
4198
4021
|
location
|
|
4199
4022
|
};
|
|
4200
4023
|
});
|
|
4201
4024
|
});
|
|
4202
|
-
|
|
4203
4025
|
const setTabRef = ref => {
|
|
4204
4026
|
tabRefs.value.push(ref);
|
|
4205
|
-
};
|
|
4206
|
-
|
|
4207
|
-
|
|
4027
|
+
};
|
|
4028
|
+
// const isMountedRef = ref(false);
|
|
4208
4029
|
function setupInternalValue(routable) {
|
|
4209
4030
|
let value = props.modelValue;
|
|
4210
|
-
|
|
4211
4031
|
if (value == null || value === '') {
|
|
4212
4032
|
const firstItem = props.items[0];
|
|
4213
4033
|
if (!firstItem) return;
|
|
4214
4034
|
value = firstItem.value;
|
|
4215
4035
|
}
|
|
4216
|
-
|
|
4217
4036
|
if (internalValueRef.value !== value) {
|
|
4218
4037
|
internalValueRef.value = value;
|
|
4219
|
-
|
|
4220
4038
|
if (routable) {
|
|
4221
4039
|
const {
|
|
4222
4040
|
router
|
|
@@ -4240,48 +4058,37 @@ const VTabs = vue.defineComponent({
|
|
|
4240
4058
|
}
|
|
4241
4059
|
}
|
|
4242
4060
|
}
|
|
4243
|
-
|
|
4244
4061
|
async function to(value) {
|
|
4245
4062
|
const {
|
|
4246
4063
|
value: currentValue
|
|
4247
4064
|
} = currentRef;
|
|
4248
|
-
|
|
4249
4065
|
if (currentValue === value) {
|
|
4250
4066
|
return;
|
|
4251
4067
|
}
|
|
4252
|
-
|
|
4253
4068
|
const {
|
|
4254
4069
|
onBeforeChange
|
|
4255
4070
|
} = props;
|
|
4256
|
-
|
|
4257
4071
|
if (onBeforeChange) {
|
|
4258
4072
|
let result = onBeforeChange(value, currentRef.value);
|
|
4259
|
-
|
|
4260
4073
|
if (helpers.isPromise(result)) {
|
|
4261
4074
|
result = await result;
|
|
4262
4075
|
}
|
|
4263
|
-
|
|
4264
4076
|
console.log(result);
|
|
4265
|
-
|
|
4266
4077
|
if (result === false) {
|
|
4267
4078
|
return;
|
|
4268
4079
|
}
|
|
4269
4080
|
}
|
|
4270
|
-
|
|
4271
4081
|
currentRef.value = value;
|
|
4272
4082
|
}
|
|
4273
|
-
|
|
4274
4083
|
function cancelScroll() {
|
|
4275
4084
|
if (scrollResult) {
|
|
4276
4085
|
scrollResult.cancel();
|
|
4277
4086
|
scrollResult = undefined;
|
|
4278
4087
|
}
|
|
4279
4088
|
}
|
|
4280
|
-
|
|
4281
4089
|
const findTab = tab => {
|
|
4282
4090
|
return tabRefs.value.find(t => t.value === tab);
|
|
4283
4091
|
};
|
|
4284
|
-
|
|
4285
4092
|
function scrollToTab(tabValue) {
|
|
4286
4093
|
const tab = findTab(tabValue);
|
|
4287
4094
|
if (!tab) return;
|
|
@@ -4308,15 +4115,12 @@ const VTabs = vue.defineComponent({
|
|
|
4308
4115
|
if (hiddenLeft > 0) hiddenLeft += autoScrollOffset;
|
|
4309
4116
|
if (hiddenRight > 0) hiddenRight += autoScrollOffset;
|
|
4310
4117
|
let scrollAmmount = 0;
|
|
4311
|
-
|
|
4312
4118
|
if (hiddenRight > 0) {
|
|
4313
4119
|
scrollAmmount = hiddenRight;
|
|
4314
4120
|
}
|
|
4315
|
-
|
|
4316
4121
|
if (hiddenLeft > 0) {
|
|
4317
4122
|
scrollAmmount = -hiddenLeft;
|
|
4318
4123
|
}
|
|
4319
|
-
|
|
4320
4124
|
if (Math.abs(scrollAmmount) > 0) {
|
|
4321
4125
|
cancelScroll();
|
|
4322
4126
|
scrollResult = scroller.scroller.by(scrollAmmount, 0, {
|
|
@@ -4324,7 +4128,6 @@ const VTabs = vue.defineComponent({
|
|
|
4324
4128
|
});
|
|
4325
4129
|
}
|
|
4326
4130
|
}
|
|
4327
|
-
|
|
4328
4131
|
vue.watch(() => props.modelValue, () => setupInternalValue(true));
|
|
4329
4132
|
vue.watch(() => props.items, () => setupInternalValue(), {
|
|
4330
4133
|
deep: true
|
|
@@ -4340,7 +4143,6 @@ const VTabs = vue.defineComponent({
|
|
|
4340
4143
|
}) => {
|
|
4341
4144
|
return location && location.route.fullPath === path;
|
|
4342
4145
|
});
|
|
4343
|
-
|
|
4344
4146
|
if (hit) {
|
|
4345
4147
|
currentRef.value = hit.value;
|
|
4346
4148
|
}
|
|
@@ -4370,15 +4172,12 @@ const VTabs = vue.defineComponent({
|
|
|
4370
4172
|
if (!label) {
|
|
4371
4173
|
label = itemSlot;
|
|
4372
4174
|
}
|
|
4373
|
-
|
|
4374
4175
|
const children = typeof label === 'function' ? label({
|
|
4375
4176
|
value,
|
|
4376
4177
|
active,
|
|
4377
4178
|
vui
|
|
4378
4179
|
}) : label;
|
|
4379
|
-
|
|
4380
4180
|
const _to = location && location.to || undefined;
|
|
4381
|
-
|
|
4382
4181
|
return vue.createVNode(VTab, {
|
|
4383
4182
|
"value": value,
|
|
4384
4183
|
"to": _to,
|
|
@@ -4409,22 +4208,20 @@ const VTabs = vue.defineComponent({
|
|
|
4409
4208
|
})]);
|
|
4410
4209
|
};
|
|
4411
4210
|
}
|
|
4412
|
-
|
|
4413
4211
|
});
|
|
4414
4212
|
|
|
4415
4213
|
function _isSlot$4(s) {
|
|
4416
4214
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
4417
4215
|
}
|
|
4418
|
-
|
|
4419
|
-
const VBreadcrumbs = vue.defineComponent({
|
|
4216
|
+
const VBreadcrumbs = /* @__PURE__ */ vue.defineComponent({
|
|
4420
4217
|
name: 'VBreadcrumbs',
|
|
4421
4218
|
props: {
|
|
4422
4219
|
items: {
|
|
4423
4220
|
type: Array,
|
|
4424
4221
|
default: () => []
|
|
4425
4222
|
},
|
|
4426
|
-
divider: [String, Function]
|
|
4427
|
-
|
|
4223
|
+
divider: [String, Function]
|
|
4224
|
+
// ...defineSlotsProps<{}>(),
|
|
4428
4225
|
},
|
|
4429
4226
|
|
|
4430
4227
|
setup(props, ctx) {
|
|
@@ -4441,33 +4238,30 @@ const VBreadcrumbs = vue.defineComponent({
|
|
|
4441
4238
|
text
|
|
4442
4239
|
} = item;
|
|
4443
4240
|
const {
|
|
4444
|
-
disabled = vui.location.match(to) || !vui.location.
|
|
4241
|
+
disabled = vui.location.match(to) || !vui.location.isAvailable(to)
|
|
4445
4242
|
} = item;
|
|
4446
|
-
return {
|
|
4243
|
+
return {
|
|
4244
|
+
...item,
|
|
4447
4245
|
disabled,
|
|
4448
4246
|
text: typeof text === 'function' ? text(vui) : text
|
|
4449
4247
|
};
|
|
4450
4248
|
});
|
|
4451
4249
|
});
|
|
4452
4250
|
const lengthRef = vue.computed(() => computedItemsRef.value.length);
|
|
4453
|
-
|
|
4454
4251
|
const defaultDividerSlot = () => {
|
|
4455
4252
|
return [vue.createVNode("i", {
|
|
4456
4253
|
"class": "v-breadcrumbs__divider__icon"
|
|
4457
4254
|
}, null)];
|
|
4458
4255
|
};
|
|
4459
|
-
|
|
4460
4256
|
return () => {
|
|
4461
4257
|
if (lengthRef.value < 1) return;
|
|
4462
4258
|
let dividerSlot;
|
|
4463
4259
|
const propDivider = props.divider;
|
|
4464
|
-
|
|
4465
4260
|
if (propDivider) {
|
|
4466
4261
|
dividerSlot = typeof propDivider === 'function' ? propDivider : () => propDivider;
|
|
4467
4262
|
} else {
|
|
4468
4263
|
dividerSlot = defaultDividerSlot;
|
|
4469
4264
|
}
|
|
4470
|
-
|
|
4471
4265
|
const children = [];
|
|
4472
4266
|
computedItemsRef.value.forEach((item, index) => {
|
|
4473
4267
|
const {
|
|
@@ -4476,10 +4270,8 @@ const VBreadcrumbs = vue.defineComponent({
|
|
|
4476
4270
|
disabled,
|
|
4477
4271
|
to
|
|
4478
4272
|
} = item;
|
|
4479
|
-
|
|
4480
4273
|
if (index > 0) {
|
|
4481
4274
|
const divider = dividerSlot(vui);
|
|
4482
|
-
|
|
4483
4275
|
if (divider) {
|
|
4484
4276
|
children.push(vue.createVNode("li", {
|
|
4485
4277
|
"class": "v-breadcrumbs__divider",
|
|
@@ -4487,19 +4279,15 @@ const VBreadcrumbs = vue.defineComponent({
|
|
|
4487
4279
|
}, [divider]));
|
|
4488
4280
|
}
|
|
4489
4281
|
}
|
|
4490
|
-
|
|
4491
4282
|
const myChildren = [];
|
|
4492
|
-
|
|
4493
4283
|
if (icon) {
|
|
4494
4284
|
const $icon = resolveRawIconProp(false, icon, {
|
|
4495
4285
|
class: 'v-breadcrumbs__icon'
|
|
4496
4286
|
});
|
|
4497
|
-
|
|
4498
4287
|
if ($icon) {
|
|
4499
4288
|
myChildren.push($icon);
|
|
4500
4289
|
}
|
|
4501
4290
|
}
|
|
4502
|
-
|
|
4503
4291
|
if (text) myChildren.push(text);
|
|
4504
4292
|
const itemChild = to ? vue.createVNode(vueUtils.VLink, {
|
|
4505
4293
|
"class": "v-breadcrumbs__link",
|
|
@@ -4522,14 +4310,12 @@ const VBreadcrumbs = vue.defineComponent({
|
|
|
4522
4310
|
}, [children])]);
|
|
4523
4311
|
};
|
|
4524
4312
|
}
|
|
4525
|
-
|
|
4526
4313
|
});
|
|
4527
4314
|
|
|
4528
4315
|
function _isSlot$3(s) {
|
|
4529
4316
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
4530
4317
|
}
|
|
4531
|
-
|
|
4532
|
-
const VContentSwitcher = vue.defineComponent({
|
|
4318
|
+
const VContentSwitcher = /* @__PURE__ */ vue.defineComponent({
|
|
4533
4319
|
name: 'VContentSwitcher',
|
|
4534
4320
|
props: {
|
|
4535
4321
|
modelValue: String,
|
|
@@ -4542,7 +4328,6 @@ const VContentSwitcher = vue.defineComponent({
|
|
|
4542
4328
|
emits: {
|
|
4543
4329
|
'update:modelValue': modelValue => true
|
|
4544
4330
|
},
|
|
4545
|
-
|
|
4546
4331
|
setup(props, ctx) {
|
|
4547
4332
|
const internalValueRef = vue.ref('');
|
|
4548
4333
|
const transitionRef = vue.ref('');
|
|
@@ -4566,31 +4351,26 @@ const VContentSwitcher = vue.defineComponent({
|
|
|
4566
4351
|
} = props;
|
|
4567
4352
|
if (settings === true) settings = {};
|
|
4568
4353
|
if (!settings) return;
|
|
4569
|
-
return {
|
|
4354
|
+
return {
|
|
4355
|
+
...settings
|
|
4570
4356
|
};
|
|
4571
4357
|
});
|
|
4572
|
-
|
|
4573
4358
|
function seeTop(options) {
|
|
4574
4359
|
const scoller = vueScroller.getDocumentScroller();
|
|
4575
4360
|
const {
|
|
4576
4361
|
value: anchor
|
|
4577
4362
|
} = anchorRef;
|
|
4578
|
-
|
|
4579
4363
|
if (anchor) {
|
|
4580
4364
|
scoller.toElement(anchor, options);
|
|
4581
4365
|
}
|
|
4582
4366
|
}
|
|
4583
|
-
|
|
4584
4367
|
function getEl() {
|
|
4585
4368
|
const el = elRef.value;
|
|
4586
|
-
|
|
4587
4369
|
if (!el) {
|
|
4588
4370
|
throw new Error('missing element');
|
|
4589
4371
|
}
|
|
4590
|
-
|
|
4591
4372
|
return el;
|
|
4592
4373
|
}
|
|
4593
|
-
|
|
4594
4374
|
vue.watch(() => props.modelValue, (value, beforeValue) => {
|
|
4595
4375
|
if (value == null) return;
|
|
4596
4376
|
internalValueRef.value = value;
|
|
@@ -4599,19 +4379,16 @@ const VContentSwitcher = vue.defineComponent({
|
|
|
4599
4379
|
const index = order.indexOf(value);
|
|
4600
4380
|
const beforeIndex = order.indexOf(beforeValue);
|
|
4601
4381
|
let transition = 'fade';
|
|
4602
|
-
|
|
4603
4382
|
if (index !== -1 && beforeIndex !== -1) {
|
|
4604
4383
|
if (index > beforeIndex) transition = 'v-content-switcher-next';
|
|
4605
4384
|
if (index < beforeIndex) transition = 'v-content-switcher-prev';
|
|
4606
4385
|
}
|
|
4607
|
-
|
|
4608
4386
|
transitionRef.value = transition;
|
|
4609
4387
|
}, {
|
|
4610
4388
|
immediate: true
|
|
4611
4389
|
});
|
|
4612
4390
|
vue.watch(currentRef, () => {
|
|
4613
4391
|
const autotopSettings = autotopSettingsRef.value;
|
|
4614
|
-
|
|
4615
4392
|
if (autotopSettings && props.modelValue != null) {
|
|
4616
4393
|
seeTop(autotopSettings);
|
|
4617
4394
|
}
|
|
@@ -4620,14 +4397,12 @@ const VContentSwitcher = vue.defineComponent({
|
|
|
4620
4397
|
const current = currentRef.value;
|
|
4621
4398
|
const children = vueUtils.renderSlotOrEmpty(ctx.slots) || [];
|
|
4622
4399
|
const currentSlot = ctx.slots[current];
|
|
4623
|
-
|
|
4624
4400
|
if (currentSlot) {
|
|
4625
4401
|
children.push(vue.createVNode("div", {
|
|
4626
4402
|
"class": "v-content-switcher__content",
|
|
4627
4403
|
"key": current
|
|
4628
4404
|
}, [currentSlot(this)]));
|
|
4629
4405
|
}
|
|
4630
|
-
|
|
4631
4406
|
return vue.createVNode("div", {
|
|
4632
4407
|
"class": "v-content-switcher",
|
|
4633
4408
|
"ref": elRef
|
|
@@ -4656,7 +4431,6 @@ const VContentSwitcher = vue.defineComponent({
|
|
|
4656
4431
|
})]);
|
|
4657
4432
|
};
|
|
4658
4433
|
}
|
|
4659
|
-
|
|
4660
4434
|
});
|
|
4661
4435
|
|
|
4662
4436
|
const DATA_TABLE_DEFAULTS = {
|
|
@@ -4675,13 +4449,12 @@ const DATA_TABLE_DEFAULTS = {
|
|
|
4675
4449
|
};
|
|
4676
4450
|
function configureDataTableDefaults(defaults) {
|
|
4677
4451
|
Object.assign(DATA_TABLE_DEFAULTS, defaults);
|
|
4678
|
-
|
|
4679
4452
|
if (!defaults.defaultOrder && defaults.ascQueryValue) {
|
|
4680
4453
|
DATA_TABLE_DEFAULTS.defaultOrder = defaults.ascQueryValue;
|
|
4681
4454
|
}
|
|
4682
4455
|
}
|
|
4683
4456
|
const SELECTABLE_HEADER_SYMBOL = '__selectable_header__';
|
|
4684
|
-
const VDataTable = vue.defineComponent({
|
|
4457
|
+
const VDataTable = /* @__PURE__ */ vue.defineComponent({
|
|
4685
4458
|
name: 'VDataTable',
|
|
4686
4459
|
props: {
|
|
4687
4460
|
/** 選択中のkeyの配列 */
|
|
@@ -4693,7 +4466,6 @@ const VDataTable = vue.defineComponent({
|
|
|
4693
4466
|
type: String,
|
|
4694
4467
|
default: () => DATA_TABLE_DEFAULTS.itemKey
|
|
4695
4468
|
},
|
|
4696
|
-
|
|
4697
4469
|
/**
|
|
4698
4470
|
* ページネーションクエリ名
|
|
4699
4471
|
*/
|
|
@@ -4701,7 +4473,6 @@ const VDataTable = vue.defineComponent({
|
|
|
4701
4473
|
type: String,
|
|
4702
4474
|
default: () => DATA_TABLE_DEFAULTS.pageQuery
|
|
4703
4475
|
},
|
|
4704
|
-
|
|
4705
4476
|
/**
|
|
4706
4477
|
* ソートクエリ名
|
|
4707
4478
|
*/
|
|
@@ -4709,7 +4480,6 @@ const VDataTable = vue.defineComponent({
|
|
|
4709
4480
|
type: String,
|
|
4710
4481
|
default: () => DATA_TABLE_DEFAULTS.sortQuery
|
|
4711
4482
|
},
|
|
4712
|
-
|
|
4713
4483
|
/**
|
|
4714
4484
|
* 表示順クエリ名
|
|
4715
4485
|
*/
|
|
@@ -4717,7 +4487,6 @@ const VDataTable = vue.defineComponent({
|
|
|
4717
4487
|
type: String,
|
|
4718
4488
|
default: () => DATA_TABLE_DEFAULTS.orderQuery
|
|
4719
4489
|
},
|
|
4720
|
-
|
|
4721
4490
|
/**
|
|
4722
4491
|
* 検索クエリ名
|
|
4723
4492
|
*/
|
|
@@ -4725,7 +4494,6 @@ const VDataTable = vue.defineComponent({
|
|
|
4725
4494
|
type: [String, Array],
|
|
4726
4495
|
default: () => DATA_TABLE_DEFAULTS.searchQuery
|
|
4727
4496
|
},
|
|
4728
|
-
|
|
4729
4497
|
/**
|
|
4730
4498
|
* リミット件数クエリ名
|
|
4731
4499
|
*/
|
|
@@ -4780,7 +4548,6 @@ const VDataTable = vue.defineComponent({
|
|
|
4780
4548
|
emits: {
|
|
4781
4549
|
input: selecteds => true
|
|
4782
4550
|
},
|
|
4783
|
-
|
|
4784
4551
|
setup(props, ctx) {
|
|
4785
4552
|
const vui = useVui();
|
|
4786
4553
|
const bootedRef = vue.ref(false);
|
|
@@ -4794,13 +4561,11 @@ const VDataTable = vue.defineComponent({
|
|
|
4794
4561
|
selectable
|
|
4795
4562
|
} = props;
|
|
4796
4563
|
const ret = [];
|
|
4797
|
-
|
|
4798
4564
|
if (selectable) {
|
|
4799
4565
|
ret.push({
|
|
4800
4566
|
key: SELECTABLE_HEADER_SYMBOL
|
|
4801
4567
|
});
|
|
4802
4568
|
}
|
|
4803
|
-
|
|
4804
4569
|
ret.push(...headers.filter(h => !h.hidden));
|
|
4805
4570
|
return ret;
|
|
4806
4571
|
});
|
|
@@ -4808,34 +4573,27 @@ const VDataTable = vue.defineComponent({
|
|
|
4808
4573
|
let {
|
|
4809
4574
|
searchQuery
|
|
4810
4575
|
} = props;
|
|
4811
|
-
|
|
4812
4576
|
if (!searchQuery) {
|
|
4813
4577
|
return [];
|
|
4814
4578
|
}
|
|
4815
|
-
|
|
4816
4579
|
if (!Array.isArray(searchQuery)) {
|
|
4817
4580
|
searchQuery = [searchQuery];
|
|
4818
4581
|
}
|
|
4819
|
-
|
|
4820
4582
|
const values = [];
|
|
4821
4583
|
searchQuery.forEach(query => {
|
|
4822
4584
|
const value = vui.location.getQuery(query);
|
|
4823
|
-
|
|
4824
4585
|
if (value == null || value === '') {
|
|
4825
4586
|
return;
|
|
4826
4587
|
}
|
|
4827
|
-
|
|
4828
4588
|
if (typeof value === 'object' && !Object.keys(value).length) {
|
|
4829
4589
|
return;
|
|
4830
4590
|
}
|
|
4831
|
-
|
|
4832
4591
|
values.push(value);
|
|
4833
4592
|
});
|
|
4834
4593
|
return values;
|
|
4835
4594
|
});
|
|
4836
4595
|
const emptyMessage = vue.computed(() => {
|
|
4837
4596
|
let message;
|
|
4838
|
-
|
|
4839
4597
|
if (searchQueryValues.value.length) {
|
|
4840
4598
|
message = props.noResultsMessage || vui.setting('noResultsMessage') || 'No search results found.'; // 検索結果が見つかりませんでした。
|
|
4841
4599
|
} else {
|
|
@@ -4855,13 +4613,10 @@ const VDataTable = vue.defineComponent({
|
|
|
4855
4613
|
maxHeight
|
|
4856
4614
|
} = props;
|
|
4857
4615
|
const footerHeight = footerHeightRef.value;
|
|
4858
|
-
|
|
4859
4616
|
const _maxHeight = maxHeight || (fixedHeader ? '100%' : maxHeight);
|
|
4860
|
-
|
|
4861
4617
|
if (!_maxHeight) {
|
|
4862
4618
|
return;
|
|
4863
4619
|
}
|
|
4864
|
-
|
|
4865
4620
|
return {
|
|
4866
4621
|
maxHeight: layout.calicurateViewHeight(_maxHeight, -footerHeight - 100, 200)
|
|
4867
4622
|
};
|
|
@@ -4876,35 +4631,29 @@ const VDataTable = vue.defineComponent({
|
|
|
4876
4631
|
get: () => {
|
|
4877
4632
|
return vui.location.getQuery(props.sortQuery);
|
|
4878
4633
|
},
|
|
4879
|
-
|
|
4880
4634
|
set(value) {
|
|
4881
4635
|
vui.location.pushQuery({
|
|
4882
4636
|
[props.sortQuery]: value || null,
|
|
4883
4637
|
[props.pageQuery]: 1
|
|
4884
4638
|
});
|
|
4885
4639
|
}
|
|
4886
|
-
|
|
4887
4640
|
});
|
|
4888
4641
|
const ordersRef = vue.computed(() => [props.ascQueryValue, props.descQueryValue]);
|
|
4889
4642
|
const usePaigingRef = vue.computed(() => props.limits.length > 0);
|
|
4890
4643
|
const orderByRef = vue.computed({
|
|
4891
4644
|
get: () => {
|
|
4892
4645
|
const value = vui.location.getQuery(props.orderQuery);
|
|
4893
|
-
|
|
4894
4646
|
if (typeof value !== 'string' || !ordersRef.value.includes(value)) {
|
|
4895
4647
|
return;
|
|
4896
4648
|
}
|
|
4897
|
-
|
|
4898
4649
|
return value;
|
|
4899
4650
|
},
|
|
4900
|
-
|
|
4901
4651
|
set(value) {
|
|
4902
4652
|
vui.location.pushQuery({
|
|
4903
4653
|
[props.orderQuery]: value || null,
|
|
4904
4654
|
[props.pageQuery]: 1
|
|
4905
4655
|
});
|
|
4906
4656
|
}
|
|
4907
|
-
|
|
4908
4657
|
});
|
|
4909
4658
|
const offsetRef = vue.computed(() => (pageRef.value - 1) * limitRef.value);
|
|
4910
4659
|
const limitRef = vue.computed({
|
|
@@ -4926,14 +4675,12 @@ const VDataTable = vue.defineComponent({
|
|
|
4926
4675
|
return Math.ceil(total / _limit);
|
|
4927
4676
|
});
|
|
4928
4677
|
const lengthRef = vue.computed(() => props.items.length);
|
|
4929
|
-
const isASCRef = vue.computed(() => orderByRef.value === props.ascQueryValue);
|
|
4930
|
-
|
|
4678
|
+
const isASCRef = vue.computed(() => orderByRef.value === props.ascQueryValue);
|
|
4679
|
+
// const isDESCRef = computed(() => orderByRef.value === props.descQueryValue);
|
|
4931
4680
|
const sortIconRef = vue.computed(() => {
|
|
4932
4681
|
let icon = vui.icon('sort');
|
|
4933
|
-
|
|
4934
4682
|
if (typeof icon === 'string') {
|
|
4935
4683
|
const name = icon;
|
|
4936
|
-
|
|
4937
4684
|
icon = gen => {
|
|
4938
4685
|
return gen({
|
|
4939
4686
|
name,
|
|
@@ -4941,7 +4688,6 @@ const VDataTable = vue.defineComponent({
|
|
|
4941
4688
|
});
|
|
4942
4689
|
};
|
|
4943
4690
|
}
|
|
4944
|
-
|
|
4945
4691
|
return icon;
|
|
4946
4692
|
});
|
|
4947
4693
|
const isIndeterminateRef = vue.computed(() => {
|
|
@@ -4951,7 +4697,6 @@ const VDataTable = vue.defineComponent({
|
|
|
4951
4697
|
return length > 0 && length < sortedItemKeysRef.value.length;
|
|
4952
4698
|
});
|
|
4953
4699
|
const isAllSelectedRef = vue.computed(() => internalValues.value.length === sortedItemKeysRef.value.length);
|
|
4954
|
-
|
|
4955
4700
|
function setSort(settings) {
|
|
4956
4701
|
const {
|
|
4957
4702
|
sort,
|
|
@@ -4959,30 +4704,27 @@ const VDataTable = vue.defineComponent({
|
|
|
4959
4704
|
} = settings;
|
|
4960
4705
|
if ((sort === undefined || sortByRef.value === sort) && (order === undefined || orderByRef.value === order)) return;
|
|
4961
4706
|
const queries = {};
|
|
4962
|
-
|
|
4963
4707
|
if (sort) {
|
|
4964
4708
|
queries[props.sortQuery] = sort;
|
|
4965
4709
|
}
|
|
4966
|
-
|
|
4967
4710
|
if (order) {
|
|
4968
4711
|
queries[props.orderQuery] = order;
|
|
4969
4712
|
}
|
|
4970
|
-
|
|
4971
|
-
|
|
4972
|
-
|
|
4713
|
+
vui.location.pushQuery({
|
|
4714
|
+
...queries,
|
|
4715
|
+
...(usePaigingRef.value ? {
|
|
4716
|
+
[props.pageQuery]: 1
|
|
4717
|
+
} : undefined)
|
|
4973
4718
|
});
|
|
4974
4719
|
}
|
|
4975
|
-
|
|
4976
4720
|
function toggleOrderBy() {
|
|
4977
4721
|
return setSort({
|
|
4978
4722
|
order: orderByRef.value === props.ascQueryValue ? props.descQueryValue : props.ascQueryValue
|
|
4979
4723
|
});
|
|
4980
4724
|
}
|
|
4981
|
-
|
|
4982
4725
|
function isSelected(key) {
|
|
4983
4726
|
return internalValues.value.includes(key);
|
|
4984
4727
|
}
|
|
4985
|
-
|
|
4986
4728
|
function select(key) {
|
|
4987
4729
|
if (!internalValues.value.includes(key)) {
|
|
4988
4730
|
const values = internalValues.value.slice();
|
|
@@ -4999,7 +4741,6 @@ const VDataTable = vue.defineComponent({
|
|
|
4999
4741
|
ctx.emit('input', values);
|
|
5000
4742
|
}
|
|
5001
4743
|
}
|
|
5002
|
-
|
|
5003
4744
|
function selectAll() {
|
|
5004
4745
|
if (!isAllSelectedRef.value) {
|
|
5005
4746
|
const values = sortedItemKeysRef.value.slice();
|
|
@@ -5007,7 +4748,6 @@ const VDataTable = vue.defineComponent({
|
|
|
5007
4748
|
ctx.emit('input', values);
|
|
5008
4749
|
}
|
|
5009
4750
|
}
|
|
5010
|
-
|
|
5011
4751
|
function deselectAll() {
|
|
5012
4752
|
if (internalValues.value.length) {
|
|
5013
4753
|
const values = [];
|
|
@@ -5015,34 +4755,28 @@ const VDataTable = vue.defineComponent({
|
|
|
5015
4755
|
ctx.emit('input', values);
|
|
5016
4756
|
}
|
|
5017
4757
|
}
|
|
5018
|
-
|
|
5019
4758
|
function deselect(key) {
|
|
5020
4759
|
const values = internalValues.value.slice();
|
|
5021
4760
|
const index = values.indexOf(key);
|
|
5022
|
-
|
|
5023
4761
|
if (index !== -1) {
|
|
5024
4762
|
values.splice(index, 1);
|
|
5025
4763
|
internalValues.value = values;
|
|
5026
4764
|
ctx.emit('input', values);
|
|
5027
4765
|
}
|
|
5028
4766
|
}
|
|
5029
|
-
|
|
5030
4767
|
function handleClickSortHeader(header, ev) {
|
|
5031
4768
|
const {
|
|
5032
4769
|
sortQuery
|
|
5033
4770
|
} = header;
|
|
5034
4771
|
if (!sortQuery) return;
|
|
5035
|
-
|
|
5036
4772
|
if (sortByRef.value === sortQuery) {
|
|
5037
4773
|
return toggleOrderBy();
|
|
5038
4774
|
}
|
|
5039
|
-
|
|
5040
4775
|
return setSort({
|
|
5041
4776
|
sort: sortQuery,
|
|
5042
4777
|
order: defaultOrderQueryRef.value
|
|
5043
4778
|
});
|
|
5044
4779
|
}
|
|
5045
|
-
|
|
5046
4780
|
function genPagination() {
|
|
5047
4781
|
return vue.createVNode(VPagination, {
|
|
5048
4782
|
"class": "v-data-table__pagination",
|
|
@@ -5053,7 +4787,6 @@ const VDataTable = vue.defineComponent({
|
|
|
5053
4787
|
"length": pageLengthRef.value
|
|
5054
4788
|
}, null);
|
|
5055
4789
|
}
|
|
5056
|
-
|
|
5057
4790
|
function genControls() {
|
|
5058
4791
|
const {
|
|
5059
4792
|
total
|
|
@@ -5087,7 +4820,6 @@ const VDataTable = vue.defineComponent({
|
|
|
5087
4820
|
"class": "v-data-table__controls__pagination"
|
|
5088
4821
|
}, [genPagination()])]);
|
|
5089
4822
|
}
|
|
5090
|
-
|
|
5091
4823
|
function genTableHeader() {
|
|
5092
4824
|
const sortBy = sortByRef.value;
|
|
5093
4825
|
const isIndeterminate = isIndeterminateRef.value;
|
|
@@ -5096,7 +4828,7 @@ const VDataTable = vue.defineComponent({
|
|
|
5096
4828
|
defaultOrder,
|
|
5097
4829
|
ascQueryValue
|
|
5098
4830
|
} = props;
|
|
5099
|
-
const usePaiging = usePaigingRef.value;
|
|
4831
|
+
// const usePaiging = usePaigingRef.value;
|
|
5100
4832
|
const children = headersRef.value.map(header => {
|
|
5101
4833
|
const {
|
|
5102
4834
|
label,
|
|
@@ -5105,17 +4837,13 @@ const VDataTable = vue.defineComponent({
|
|
|
5105
4837
|
key
|
|
5106
4838
|
} = header;
|
|
5107
4839
|
const headerChildren = [];
|
|
5108
|
-
|
|
5109
4840
|
if (label != null && typeof label !== 'boolean') {
|
|
5110
4841
|
let _children = typeof label === 'function' ? label(vui) : label;
|
|
5111
|
-
|
|
5112
4842
|
if (_children && !Array.isArray(_children) && typeof _children === 'object') {
|
|
5113
4843
|
_children = JSON.stringify(_children);
|
|
5114
4844
|
}
|
|
5115
|
-
|
|
5116
4845
|
headerChildren.push(_children);
|
|
5117
4846
|
}
|
|
5118
|
-
|
|
5119
4847
|
if (key === SELECTABLE_HEADER_SYMBOL) {
|
|
5120
4848
|
headerChildren.push(vue.createVNode(VCheckbox, {
|
|
5121
4849
|
"modelValue": isAllSelected,
|
|
@@ -5128,14 +4856,12 @@ const VDataTable = vue.defineComponent({
|
|
|
5128
4856
|
}
|
|
5129
4857
|
}
|
|
5130
4858
|
}, null));
|
|
5131
|
-
}
|
|
4859
|
+
}
|
|
4860
|
+
// if (key === DELETOR_HEADER_SYMBOL) {
|
|
5132
4861
|
// headerChildren.push('削除');
|
|
5133
4862
|
// }
|
|
5134
|
-
|
|
5135
|
-
|
|
5136
4863
|
const sortActive = sortBy === sortQuery;
|
|
5137
|
-
|
|
5138
|
-
if (sortQuery && usePaiging) {
|
|
4864
|
+
if (sortQuery) {
|
|
5139
4865
|
const isASC = sortActive ? isASCRef.value : defaultOrder === ascQueryValue;
|
|
5140
4866
|
headerChildren.unshift(vue.createVNode(VIcon, {
|
|
5141
4867
|
"class": "v-data-table__table__sort-icon v-data-table__table__sort-icon--empty",
|
|
@@ -5148,21 +4874,18 @@ const VDataTable = vue.defineComponent({
|
|
|
5148
4874
|
}]
|
|
5149
4875
|
}));
|
|
5150
4876
|
}
|
|
5151
|
-
|
|
5152
4877
|
const classes = ['v-data-table__table__cell', {
|
|
5153
4878
|
'v-data-table__table__cell--active': sortActive
|
|
5154
4879
|
}];
|
|
5155
|
-
|
|
5156
4880
|
if (align) {
|
|
5157
4881
|
classes.push(`v-data-table__table__cell--${align}`);
|
|
5158
4882
|
}
|
|
5159
|
-
|
|
5160
4883
|
return vue.createVNode("th", {
|
|
5161
4884
|
"class": classes,
|
|
5162
4885
|
"key": header.key,
|
|
5163
|
-
"tabindex": sortQuery
|
|
4886
|
+
"tabindex": sortQuery ? 0 : undefined,
|
|
5164
4887
|
"onClick": ev => {
|
|
5165
|
-
if (!sortQuery
|
|
4888
|
+
if (!sortQuery) return;
|
|
5166
4889
|
handleClickSortHeader(header);
|
|
5167
4890
|
}
|
|
5168
4891
|
}, [vue.createVNode("div", {
|
|
@@ -5173,19 +4896,17 @@ const VDataTable = vue.defineComponent({
|
|
|
5173
4896
|
"class": "v-data-table__table__header"
|
|
5174
4897
|
}, [vue.createVNode("tr", null, [children])]);
|
|
5175
4898
|
}
|
|
5176
|
-
|
|
5177
4899
|
function toggleSelect(key) {
|
|
5178
4900
|
return isSelected(key) ? deselect(key) : select(key);
|
|
5179
4901
|
}
|
|
5180
|
-
|
|
5181
4902
|
function defaultItemSlot(payload) {
|
|
5182
4903
|
const {
|
|
5183
4904
|
key,
|
|
5184
4905
|
item,
|
|
5185
4906
|
selected
|
|
5186
4907
|
} = payload;
|
|
5187
|
-
const headers = headersRef.value;
|
|
5188
|
-
|
|
4908
|
+
const headers = headersRef.value;
|
|
4909
|
+
// const { $scopedSlots, $createElement, deletor } = this;
|
|
5189
4910
|
const children = headers.map(header => {
|
|
5190
4911
|
const {
|
|
5191
4912
|
cell,
|
|
@@ -5194,23 +4915,18 @@ const VDataTable = vue.defineComponent({
|
|
|
5194
4915
|
} = header;
|
|
5195
4916
|
const cellSlot = cell || ctx.slots.cell;
|
|
5196
4917
|
let cellChildren;
|
|
5197
|
-
|
|
5198
4918
|
if (cellSlot) {
|
|
5199
4919
|
const cellPayload = {
|
|
5200
4920
|
vui,
|
|
5201
4921
|
item,
|
|
5202
4922
|
selected
|
|
5203
4923
|
};
|
|
5204
|
-
|
|
5205
4924
|
let _children = cellSlot(cellPayload);
|
|
5206
|
-
|
|
5207
4925
|
if (_children && !Array.isArray(_children) && typeof _children === 'object') {
|
|
5208
4926
|
_children = JSON.stringify(_children);
|
|
5209
4927
|
}
|
|
5210
|
-
|
|
5211
4928
|
cellChildren = _children;
|
|
5212
4929
|
}
|
|
5213
|
-
|
|
5214
4930
|
if (!cellChildren) {
|
|
5215
4931
|
switch (headerKey) {
|
|
5216
4932
|
case SELECTABLE_HEADER_SYMBOL:
|
|
@@ -5265,7 +4981,6 @@ const VDataTable = vue.defineComponent({
|
|
|
5265
4981
|
"key": key
|
|
5266
4982
|
}, [children]);
|
|
5267
4983
|
}
|
|
5268
|
-
|
|
5269
4984
|
function genBody() {
|
|
5270
4985
|
const {
|
|
5271
4986
|
items,
|
|
@@ -5287,7 +5002,6 @@ const VDataTable = vue.defineComponent({
|
|
|
5287
5002
|
"class": "v-data-table__table__body"
|
|
5288
5003
|
}, [children]);
|
|
5289
5004
|
}
|
|
5290
|
-
|
|
5291
5005
|
vue.watch(() => props.modelValue, modelValue => {
|
|
5292
5006
|
internalValues.value = modelValue.slice();
|
|
5293
5007
|
});
|
|
@@ -5336,36 +5050,31 @@ const VDataTable = vue.defineComponent({
|
|
|
5336
5050
|
})])]);
|
|
5337
5051
|
};
|
|
5338
5052
|
}
|
|
5339
|
-
|
|
5340
5053
|
});
|
|
5341
5054
|
|
|
5342
5055
|
function _isSlot$2(s) {
|
|
5343
5056
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
5344
5057
|
}
|
|
5345
|
-
|
|
5346
|
-
const VApp = vue.defineComponent({
|
|
5058
|
+
const VApp = /* @__PURE__ */ vue.defineComponent({
|
|
5347
5059
|
name: 'VApp',
|
|
5348
|
-
|
|
5349
5060
|
setup(props, ctx) {
|
|
5350
5061
|
vueKit.useInjectTheme();
|
|
5351
5062
|
return () => {
|
|
5352
5063
|
let _slot;
|
|
5353
|
-
|
|
5354
5064
|
return vue.createVNode(vueKit.VStackRoot, null, _isSlot$2(_slot = vueKit.renderSlotOrEmpty(ctx.slots, 'default')) ? _slot : {
|
|
5355
5065
|
default: () => [_slot]
|
|
5356
5066
|
});
|
|
5357
5067
|
};
|
|
5358
5068
|
}
|
|
5359
|
-
|
|
5360
5069
|
});
|
|
5361
5070
|
|
|
5362
|
-
const VToolbar = vue.defineComponent({
|
|
5071
|
+
const VToolbar = /* @__PURE__ */ vue.defineComponent({
|
|
5363
5072
|
name: 'VToolbar',
|
|
5364
|
-
props: {
|
|
5073
|
+
props: {
|
|
5074
|
+
...createElevationProps(),
|
|
5365
5075
|
...vueColorScheme.colorSchemeProps(),
|
|
5366
5076
|
dense: Boolean
|
|
5367
5077
|
},
|
|
5368
|
-
|
|
5369
5078
|
setup(props, ctx) {
|
|
5370
5079
|
const vui = useVui();
|
|
5371
5080
|
const elevation = useElevation(props, {
|
|
@@ -5388,24 +5097,20 @@ const VToolbar = vue.defineComponent({
|
|
|
5388
5097
|
}, [vueUtils.renderSlotOrEmpty(ctx.slots, 'default')]);
|
|
5389
5098
|
};
|
|
5390
5099
|
}
|
|
5391
|
-
|
|
5392
5100
|
});
|
|
5393
5101
|
|
|
5394
5102
|
function _isSlot$1(s) {
|
|
5395
5103
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
5396
5104
|
}
|
|
5397
|
-
|
|
5398
|
-
const VToolbarMenu = vue.defineComponent({
|
|
5105
|
+
const VToolbarMenu = /* @__PURE__ */ vue.defineComponent({
|
|
5399
5106
|
name: 'VToolbarMenu',
|
|
5400
5107
|
inheritAttrs: false,
|
|
5401
5108
|
props: {},
|
|
5402
|
-
|
|
5403
5109
|
setup(props, ctx) {
|
|
5404
5110
|
const vui = useVui();
|
|
5405
5111
|
const plain = vui.setting('plainVariant');
|
|
5406
5112
|
return () => {
|
|
5407
5113
|
let _slot;
|
|
5408
|
-
|
|
5409
5114
|
const variant = props.variant || plain;
|
|
5410
5115
|
return vue.createVNode(VButton, vue.mergeProps(ctx.attrs, {
|
|
5411
5116
|
"variant": variant,
|
|
@@ -5415,10 +5120,9 @@ const VToolbarMenu = vue.defineComponent({
|
|
|
5415
5120
|
});
|
|
5416
5121
|
};
|
|
5417
5122
|
}
|
|
5418
|
-
|
|
5419
5123
|
});
|
|
5420
5124
|
|
|
5421
|
-
const VToolbarEdge = vue.defineComponent({
|
|
5125
|
+
const VToolbarEdge = /* @__PURE__ */ vue.defineComponent({
|
|
5422
5126
|
name: 'VToolbarEdge',
|
|
5423
5127
|
props: {
|
|
5424
5128
|
edge: {
|
|
@@ -5426,7 +5130,6 @@ const VToolbarEdge = vue.defineComponent({
|
|
|
5426
5130
|
required: true
|
|
5427
5131
|
}
|
|
5428
5132
|
},
|
|
5429
|
-
|
|
5430
5133
|
setup(props, ctx) {
|
|
5431
5134
|
const edge = vue.computed(() => props.edge);
|
|
5432
5135
|
return () => {
|
|
@@ -5439,14 +5142,12 @@ const VToolbarEdge = vue.defineComponent({
|
|
|
5439
5142
|
}, [children]);
|
|
5440
5143
|
};
|
|
5441
5144
|
}
|
|
5442
|
-
|
|
5443
5145
|
});
|
|
5444
5146
|
|
|
5445
5147
|
function _isSlot(s) {
|
|
5446
5148
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
5447
5149
|
}
|
|
5448
|
-
|
|
5449
|
-
const VToolbarTitle = vue.defineComponent({
|
|
5150
|
+
const VToolbarTitle = /* @__PURE__ */ vue.defineComponent({
|
|
5450
5151
|
name: 'VToolbarTitle',
|
|
5451
5152
|
props: {
|
|
5452
5153
|
tag: {
|
|
@@ -5454,13 +5155,10 @@ const VToolbarTitle = vue.defineComponent({
|
|
|
5454
5155
|
default: 'span'
|
|
5455
5156
|
}
|
|
5456
5157
|
},
|
|
5457
|
-
|
|
5458
5158
|
setup(props, ctx) {
|
|
5459
5159
|
const _TagName = vue.computed(() => props.tag);
|
|
5460
|
-
|
|
5461
5160
|
return () => {
|
|
5462
5161
|
let _slot;
|
|
5463
|
-
|
|
5464
5162
|
const TagName = _TagName.value;
|
|
5465
5163
|
return vue.createVNode(TagName, {
|
|
5466
5164
|
"class": "v-toolbar-title"
|
|
@@ -5469,7 +5167,6 @@ const VToolbarTitle = vue.defineComponent({
|
|
|
5469
5167
|
});
|
|
5470
5168
|
};
|
|
5471
5169
|
}
|
|
5472
|
-
|
|
5473
5170
|
});
|
|
5474
5171
|
|
|
5475
5172
|
const DEFAULT_AUTO_SCROLL_TO_ELEMENT_OFFSET_TOP = -20;
|
|
@@ -5478,8 +5175,8 @@ function mergeVuiServiceUISettings(base, overrides) {
|
|
|
5478
5175
|
if (!overrides) {
|
|
5479
5176
|
return base;
|
|
5480
5177
|
}
|
|
5481
|
-
|
|
5482
|
-
|
|
5178
|
+
const merged = {
|
|
5179
|
+
...base
|
|
5483
5180
|
};
|
|
5484
5181
|
Object.entries(overrides).forEach(([key, value]) => {
|
|
5485
5182
|
if (value) {
|
|
@@ -5492,8 +5189,8 @@ function mergeVuiServiceIconSettings(base, overrides) {
|
|
|
5492
5189
|
if (!overrides) {
|
|
5493
5190
|
return base;
|
|
5494
5191
|
}
|
|
5495
|
-
|
|
5496
|
-
|
|
5192
|
+
const merged = {
|
|
5193
|
+
...base
|
|
5497
5194
|
};
|
|
5498
5195
|
Object.entries(overrides).forEach(([key, value]) => {
|
|
5499
5196
|
if (value) {
|
|
@@ -5506,8 +5203,8 @@ function mergeVuiServiceOptions(base, overrides) {
|
|
|
5506
5203
|
if (!overrides) {
|
|
5507
5204
|
return base;
|
|
5508
5205
|
}
|
|
5509
|
-
|
|
5510
|
-
|
|
5206
|
+
const merged = {
|
|
5207
|
+
...base,
|
|
5511
5208
|
uiSettings: mergeVuiServiceUISettings(base.uiSettings, overrides.uiSettings),
|
|
5512
5209
|
icons: mergeVuiServiceIconSettings(base.icons, overrides.icons)
|
|
5513
5210
|
};
|
|
@@ -5523,7 +5220,6 @@ class VuiService {
|
|
|
5523
5220
|
get scroller() {
|
|
5524
5221
|
return vueScroller.getDocumentScroller();
|
|
5525
5222
|
}
|
|
5526
|
-
|
|
5527
5223
|
constructor(options, stackService) {
|
|
5528
5224
|
this.options = options;
|
|
5529
5225
|
this.configure();
|
|
@@ -5542,64 +5238,51 @@ class VuiService {
|
|
|
5542
5238
|
router: this.router
|
|
5543
5239
|
});
|
|
5544
5240
|
this.stack = stackService;
|
|
5241
|
+
this.useLink = options.useLink || vueRouter.useLink;
|
|
5545
5242
|
}
|
|
5546
|
-
|
|
5547
5243
|
configure(options) {
|
|
5548
5244
|
options && Object.assign(this.options, options);
|
|
5549
5245
|
vueUtils.setDefaultRouterLink(this.getRouterLink());
|
|
5550
5246
|
}
|
|
5551
|
-
|
|
5552
5247
|
getRouterLink() {
|
|
5553
5248
|
return this.options.RouterLink || vueRouter.RouterLink;
|
|
5554
5249
|
}
|
|
5555
|
-
|
|
5556
5250
|
setting(key) {
|
|
5557
5251
|
return this.options.uiSettings[key];
|
|
5558
5252
|
}
|
|
5559
|
-
|
|
5560
5253
|
icon(iconType) {
|
|
5561
5254
|
return this.options.icons[iconType];
|
|
5562
5255
|
}
|
|
5563
|
-
|
|
5564
5256
|
getAutoScrollToElementOffsetTop() {
|
|
5565
5257
|
let {
|
|
5566
5258
|
autoScrollToElementOffsetTop
|
|
5567
5259
|
} = this;
|
|
5568
|
-
|
|
5569
5260
|
if (typeof autoScrollToElementOffsetTop === 'function') {
|
|
5570
5261
|
autoScrollToElementOffsetTop = autoScrollToElementOffsetTop();
|
|
5571
5262
|
}
|
|
5572
|
-
|
|
5573
5263
|
return autoScrollToElementOffsetTop || 0;
|
|
5574
5264
|
}
|
|
5575
|
-
|
|
5576
5265
|
getRequiredChip() {
|
|
5577
5266
|
const {
|
|
5578
5267
|
requiredChip
|
|
5579
5268
|
} = this;
|
|
5580
5269
|
return requiredChip && requiredChip();
|
|
5581
5270
|
}
|
|
5582
|
-
|
|
5583
5271
|
dialog(...args) {
|
|
5584
5272
|
return this.stack.dialog(...args);
|
|
5585
5273
|
}
|
|
5586
|
-
|
|
5587
5274
|
alert(...args) {
|
|
5588
5275
|
return this.stack.alert(...args);
|
|
5589
5276
|
}
|
|
5590
|
-
|
|
5591
5277
|
confirm(...args) {
|
|
5592
5278
|
return this.stack.confirm(...args);
|
|
5593
5279
|
}
|
|
5594
|
-
|
|
5595
5280
|
snackbar(...args) {
|
|
5596
5281
|
return this.stack.snackbar(...args);
|
|
5597
5282
|
}
|
|
5598
|
-
|
|
5599
5283
|
menu(...args) {
|
|
5600
5284
|
return this.stack.menu(...args);
|
|
5601
5285
|
}
|
|
5602
|
-
|
|
5603
5286
|
formPrompt(settings, slot) {
|
|
5604
5287
|
let form;
|
|
5605
5288
|
const options = {
|
|
@@ -5610,9 +5293,7 @@ class VuiService {
|
|
|
5610
5293
|
size,
|
|
5611
5294
|
state
|
|
5612
5295
|
} = options;
|
|
5613
|
-
|
|
5614
5296
|
const _state = vue.reactive(state);
|
|
5615
|
-
|
|
5616
5297
|
options.actions = options.actions || [this.stack.action('cancel', undefined, {
|
|
5617
5298
|
size
|
|
5618
5299
|
}), this.stack.action('ok', undefined, {
|
|
@@ -5624,7 +5305,8 @@ class VuiService {
|
|
|
5624
5305
|
}
|
|
5625
5306
|
}
|
|
5626
5307
|
})];
|
|
5627
|
-
const resolved = vueKit.resolveVStackDynamicInput({
|
|
5308
|
+
const resolved = vueKit.resolveVStackDynamicInput({
|
|
5309
|
+
...options,
|
|
5628
5310
|
content: stack => {
|
|
5629
5311
|
return vue.createVNode(VForm, {
|
|
5630
5312
|
"disableAutoScroll": true,
|
|
@@ -5648,15 +5330,16 @@ class VuiService {
|
|
|
5648
5330
|
});
|
|
5649
5331
|
return this.dialog(resolved);
|
|
5650
5332
|
}
|
|
5651
|
-
|
|
5652
5333
|
prompt(rawOptions = {}) {
|
|
5653
5334
|
const options = typeof rawOptions === 'string' ? {
|
|
5654
5335
|
input: {
|
|
5655
5336
|
label: rawOptions
|
|
5656
5337
|
}
|
|
5657
|
-
} : {
|
|
5338
|
+
} : {
|
|
5339
|
+
...rawOptions
|
|
5658
5340
|
};
|
|
5659
|
-
options.input = {
|
|
5341
|
+
options.input = {
|
|
5342
|
+
...options.input
|
|
5660
5343
|
};
|
|
5661
5344
|
options.dense = true;
|
|
5662
5345
|
const {
|
|
@@ -5679,19 +5362,17 @@ class VuiService {
|
|
|
5679
5362
|
return result ? result.input : result;
|
|
5680
5363
|
});
|
|
5681
5364
|
}
|
|
5682
|
-
|
|
5683
5365
|
}
|
|
5684
5366
|
|
|
5685
5367
|
function mergeVuiPluginOptions(base, override) {
|
|
5686
5368
|
if (!override) return base;
|
|
5687
5369
|
const merged = mergeVuiServiceOptions(base, override);
|
|
5688
|
-
|
|
5689
5370
|
if (override.stack) {
|
|
5690
|
-
merged.stack = {
|
|
5371
|
+
merged.stack = {
|
|
5372
|
+
...merged.stack,
|
|
5691
5373
|
...override.stack
|
|
5692
5374
|
};
|
|
5693
5375
|
}
|
|
5694
|
-
|
|
5695
5376
|
return merged;
|
|
5696
5377
|
}
|
|
5697
5378
|
class VuiPlugin {
|
|
@@ -5700,11 +5381,11 @@ class VuiPlugin {
|
|
|
5700
5381
|
colorScheme,
|
|
5701
5382
|
stack,
|
|
5702
5383
|
uiSettings
|
|
5703
|
-
} = opts;
|
|
5704
|
-
|
|
5384
|
+
} = opts;
|
|
5385
|
+
// ColorScheme
|
|
5705
5386
|
const vueColorSchemePlugin = new vueKit.VueColorSchemePlugin(colorScheme);
|
|
5706
|
-
app.use(vueColorSchemePlugin);
|
|
5707
|
-
|
|
5387
|
+
app.use(vueColorSchemePlugin);
|
|
5388
|
+
// Stack
|
|
5708
5389
|
vueKit.installVueStackPlugin(app, {
|
|
5709
5390
|
actions: {
|
|
5710
5391
|
ok: ({
|
|
@@ -5725,8 +5406,8 @@ class VuiPlugin {
|
|
|
5725
5406
|
...(stack ? stack.actions : {})
|
|
5726
5407
|
},
|
|
5727
5408
|
...stack
|
|
5728
|
-
});
|
|
5729
|
-
|
|
5409
|
+
});
|
|
5410
|
+
// Vui
|
|
5730
5411
|
const $vui = new VuiService(opts, app.config.globalProperties.$vstack);
|
|
5731
5412
|
app.provide(VuiInjectionKey, $vui);
|
|
5732
5413
|
app.config.globalProperties.$vui = $vui;
|
|
@@ -5734,7 +5415,6 @@ class VuiPlugin {
|
|
|
5734
5415
|
delete app.config.globalProperties.$vui;
|
|
5735
5416
|
});
|
|
5736
5417
|
}
|
|
5737
|
-
|
|
5738
5418
|
}
|
|
5739
5419
|
function installVuiPlugin(app, opts) {
|
|
5740
5420
|
return app.use(VuiPlugin, opts);
|
|
@@ -5747,6 +5427,7 @@ exports.VTooltip = vueKit.VTooltip;
|
|
|
5747
5427
|
exports.ICON_NAMES = iconFont.ICON_NAMES;
|
|
5748
5428
|
exports.ARROW_KEY_TYPES = ARROW_KEY_TYPES;
|
|
5749
5429
|
exports.AVATAR_SIZES = AVATAR_SIZES;
|
|
5430
|
+
exports.BUTTON_ALIGNS = BUTTON_ALIGNS;
|
|
5750
5431
|
exports.CHIP_SIZES = CHIP_SIZES;
|
|
5751
5432
|
exports.CHOICE_KEY_TYPES = CHOICE_KEY_TYPES;
|
|
5752
5433
|
exports.CONTROL_FIELD_VARIANTS = CONTROL_FIELD_VARIANTS;
|
|
@@ -5838,6 +5519,7 @@ exports.createControlProps = createControlProps;
|
|
|
5838
5519
|
exports.createElevationProps = createElevationProps;
|
|
5839
5520
|
exports.createListTileProps = createListTileProps;
|
|
5840
5521
|
exports.createNavigationItemProps = createNavigationItemProps;
|
|
5522
|
+
exports.createNavigationProps = createNavigationProps;
|
|
5841
5523
|
exports.createPaperBaseProps = createPaperBaseProps;
|
|
5842
5524
|
exports.createPaperProps = createPaperProps;
|
|
5843
5525
|
exports.createRequiredChipRenderer = createRequiredChipRenderer;
|