@fastkit/vui 0.6.10 → 0.6.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tool/index.js +16 -7
- package/dist/tool/vite-plugin.d.ts +2 -2
- package/dist/tool/vite-plugin.d.ts.map +1 -1
- package/dist/vui.cjs.js +564 -51
- package/dist/vui.cjs.prod.js +564 -51
- package/dist/vui.css +393 -0
- package/dist/vui.d.ts +699 -16
- package/dist/vui.esm-bundler.js +526 -53
- package/dist/vui.min.css +1 -1
- package/dist/vui.min.css.map +1 -1
- package/package.json +6 -6
package/dist/vui.cjs.js
CHANGED
|
@@ -4,6 +4,9 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var vueKit = require('@fastkit/vue-kit');
|
|
6
6
|
var vue = require('vue');
|
|
7
|
+
var vueColorScheme = require('@fastkit/vue-color-scheme');
|
|
8
|
+
var vueUtils = require('@fastkit/vue-utils');
|
|
9
|
+
var vueLoading = require('@fastkit/vue-loading');
|
|
7
10
|
var iconFont = require('@fastkit/icon-font');
|
|
8
11
|
|
|
9
12
|
const CONTROL_SIZES = ['sm', 'md', 'lg'];
|
|
@@ -37,8 +40,8 @@ function useVuiColorProvider() {
|
|
|
37
40
|
return parent;
|
|
38
41
|
}
|
|
39
42
|
const vui = useVui();
|
|
40
|
-
const primary = vue.computed(() => vui.
|
|
41
|
-
const error = vue.computed(() => vui.
|
|
43
|
+
const primary = vue.computed(() => vui.setting('primaryScope'));
|
|
44
|
+
const error = vue.computed(() => vui.setting('errorScope'));
|
|
42
45
|
const provider = {
|
|
43
46
|
primary,
|
|
44
47
|
error,
|
|
@@ -233,16 +236,137 @@ function defineFormSelectorComponent(opts) {
|
|
|
233
236
|
});
|
|
234
237
|
}
|
|
235
238
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
239
|
+
function createElevationProps() {
|
|
240
|
+
return vueUtils.createPropsOptions({
|
|
241
|
+
elevation: Number,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
function useElevation(props, opts = {}) {
|
|
245
|
+
const elevationValue = vue.computed(() => props.elevation == null ? opts.defaultValue : props.elevation);
|
|
246
|
+
const elevationClassName = vue.computed(() => {
|
|
247
|
+
const v = elevationValue.value;
|
|
248
|
+
return v == null ? undefined : `elevation-${v}`;
|
|
249
|
+
});
|
|
250
|
+
return {
|
|
251
|
+
elevationValue,
|
|
252
|
+
elevationClassName,
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
function createPaperProps() {
|
|
257
|
+
return { ...createElevationProps(),
|
|
258
|
+
square: Boolean,
|
|
259
|
+
color: String,
|
|
260
|
+
tag: {
|
|
240
261
|
type: String,
|
|
241
|
-
|
|
262
|
+
default: 'div'
|
|
242
263
|
},
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
264
|
+
...vueUtils.defineSlotsProps()
|
|
265
|
+
}; //
|
|
266
|
+
}
|
|
267
|
+
const VPaper = vue.defineComponent({
|
|
268
|
+
name: 'VPaper',
|
|
269
|
+
props: createPaperProps(),
|
|
270
|
+
|
|
271
|
+
setup(props, ctx) {
|
|
272
|
+
const tag = vue.computed(() => props.tag);
|
|
273
|
+
const elevation = useElevation(props, {
|
|
274
|
+
defaultValue: 1
|
|
275
|
+
});
|
|
276
|
+
const scope = vueColorScheme.useScopeColorClass(props);
|
|
277
|
+
const classes = vue.computed(() => [elevation.elevationClassName.value, scope.value.className, {
|
|
278
|
+
'v-paper--plain': !scope.value.value,
|
|
279
|
+
'v-paper--has-color': !!scope.value.value,
|
|
280
|
+
'v-paper--square': props.square
|
|
281
|
+
}]);
|
|
282
|
+
return () => {
|
|
283
|
+
const TagName = tag.value;
|
|
284
|
+
const header = vueUtils.renderSlotOrEmpty(ctx.slots, 'header');
|
|
285
|
+
const footer = vueUtils.renderSlotOrEmpty(ctx.slots, 'footer');
|
|
286
|
+
return vue.createVNode(TagName, {
|
|
287
|
+
"class": ['v-paper', classes.value]
|
|
288
|
+
}, {
|
|
289
|
+
default: () => [header && vue.createVNode("div", {
|
|
290
|
+
"class": "v-paper__header"
|
|
291
|
+
}, [header]), vue.createVNode("div", {
|
|
292
|
+
"class": "v-paper__body"
|
|
293
|
+
}, [vueUtils.renderSlotOrEmpty(ctx.slots, 'default')]), footer && vue.createVNode("div", {
|
|
294
|
+
"class": "v-paper__footer"
|
|
295
|
+
}, [footer])]
|
|
296
|
+
});
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
});
|
|
301
|
+
|
|
302
|
+
function createCardProps() {
|
|
303
|
+
return { ...createPaperProps()
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
const VCard = vue.defineComponent({
|
|
307
|
+
name: 'VCard',
|
|
308
|
+
props: createCardProps(),
|
|
309
|
+
|
|
310
|
+
setup(props, ctx) {
|
|
311
|
+
const _props = vue.computed(() => props);
|
|
312
|
+
|
|
313
|
+
return () => {
|
|
314
|
+
return vue.createVNode(VPaper, vue.mergeProps({
|
|
315
|
+
"class": "v-card"
|
|
316
|
+
}, _props.value), ctx.slots);
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
const VCardContent = vue.defineComponent({
|
|
323
|
+
name: 'VCardContent',
|
|
324
|
+
|
|
325
|
+
setup(props, ctx) {
|
|
326
|
+
return () => {
|
|
327
|
+
return vue.createVNode("div", {
|
|
328
|
+
"class": "v-card-content"
|
|
329
|
+
}, [vueUtils.renderSlotOrEmpty(ctx.slots, 'default')]);
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
});
|
|
334
|
+
|
|
335
|
+
const VCardActions = vue.defineComponent({
|
|
336
|
+
name: 'VCardActions',
|
|
337
|
+
|
|
338
|
+
setup(props, ctx) {
|
|
339
|
+
return () => {
|
|
340
|
+
return vue.createVNode("div", {
|
|
341
|
+
"class": "v-card-actions"
|
|
342
|
+
}, [vueUtils.renderSlotOrEmpty(ctx.slots, 'default')]);
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
});
|
|
347
|
+
|
|
348
|
+
const _rawRawIconProp = [String, Function];
|
|
349
|
+
function rawRawIconProp() {
|
|
350
|
+
return _rawRawIconProp;
|
|
351
|
+
}
|
|
352
|
+
function resolveRawIconProp(prop, extraProps) {
|
|
353
|
+
if (!prop) return;
|
|
354
|
+
return typeof prop === 'function' ? prop(input => vue.createVNode(VIcon, vue.mergeProps(input, extraProps), null)) : vue.createVNode(VIcon, vue.mergeProps(extraProps, {
|
|
355
|
+
"name": prop
|
|
356
|
+
}), null);
|
|
357
|
+
}
|
|
358
|
+
const iconProps = vueUtils.createPropsOptions({
|
|
359
|
+
name: {
|
|
360
|
+
type: String,
|
|
361
|
+
required: true
|
|
362
|
+
},
|
|
363
|
+
rotate: {
|
|
364
|
+
type: Number
|
|
365
|
+
}
|
|
366
|
+
});
|
|
367
|
+
const VIcon = vue.defineComponent({
|
|
368
|
+
name: 'VIcon',
|
|
369
|
+
props: { ...iconProps
|
|
246
370
|
},
|
|
247
371
|
emits: {},
|
|
248
372
|
|
|
@@ -272,6 +396,243 @@ const VIcon = vue.defineComponent({
|
|
|
272
396
|
|
|
273
397
|
});
|
|
274
398
|
|
|
399
|
+
function resolveRawVButtonIcon(raw, type = 'main') {
|
|
400
|
+
if (!raw) return;
|
|
401
|
+
return typeof raw === 'function' ? raw : () => vue.createVNode(VIcon, {
|
|
402
|
+
"class": ['v-button__icon', `v-button__icon--${type}`],
|
|
403
|
+
"name": raw
|
|
404
|
+
}, null);
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
const vueButtonProps = vueUtils.createPropsOptions({ ...vueColorScheme.colorSchemeProps(),
|
|
408
|
+
...vueUtils.navigationableProps,
|
|
409
|
+
spacer: [Boolean, String],
|
|
410
|
+
loading: Boolean,
|
|
411
|
+
rounded: Boolean,
|
|
412
|
+
icon: [String, Function],
|
|
413
|
+
startIcon: [String, Function],
|
|
414
|
+
endIcon: [String, Function],
|
|
415
|
+
...createControlProps()
|
|
416
|
+
});
|
|
417
|
+
const LOADING_SIZE_MAP = {
|
|
418
|
+
sm: 14,
|
|
419
|
+
md: 20,
|
|
420
|
+
lg: 28
|
|
421
|
+
};
|
|
422
|
+
const VButton = vue.defineComponent({
|
|
423
|
+
name: 'VButton',
|
|
424
|
+
props: vueButtonProps,
|
|
425
|
+
emits: { ...vueUtils.navigationableEmits.emits
|
|
426
|
+
},
|
|
427
|
+
|
|
428
|
+
setup(props, ctx) {
|
|
429
|
+
const vui = useVui();
|
|
430
|
+
const control = useControl(props);
|
|
431
|
+
const defaults = vui.setting('buttonDefault');
|
|
432
|
+
const icon = vue.computed(() => {
|
|
433
|
+
const _icon = resolveRawVButtonIcon(props.icon);
|
|
434
|
+
|
|
435
|
+
return _icon && _icon();
|
|
436
|
+
});
|
|
437
|
+
const startIcon = vue.computed(() => {
|
|
438
|
+
const _icon = resolveRawVButtonIcon(props.startIcon, 'start');
|
|
439
|
+
|
|
440
|
+
return _icon && _icon();
|
|
441
|
+
});
|
|
442
|
+
const endIcon = vue.computed(() => {
|
|
443
|
+
const _icon = resolveRawVButtonIcon(props.endIcon, 'end');
|
|
444
|
+
|
|
445
|
+
return _icon && _icon();
|
|
446
|
+
});
|
|
447
|
+
const color = vueColorScheme.useColorClasses({
|
|
448
|
+
color: () => props.color || defaults.color,
|
|
449
|
+
variant: () => props.variant || (icon.value ? vui.setting('plainVariant') : defaults.variant)
|
|
450
|
+
});
|
|
451
|
+
const isPlain = vue.computed(() => color.variant.value.value === vui.setting('plainVariant') && color.color.value.value === defaults.color);
|
|
452
|
+
const navigationable = vueUtils.useNavigationable(props);
|
|
453
|
+
const isLoading = vue.computed(() => props.loading);
|
|
454
|
+
const isDisabled = vue.computed(() => props.disabled);
|
|
455
|
+
const isRounded = vue.computed(() => props.rounded || !!icon.value);
|
|
456
|
+
const spacer = vue.computed(() => {
|
|
457
|
+
const _spacer = props.spacer;
|
|
458
|
+
if (!_spacer) return;
|
|
459
|
+
return _spacer === true ? 'left' : _spacer;
|
|
460
|
+
});
|
|
461
|
+
const classes = vue.computed(() => [color.colorClasses.value, navigationable.value.classes, spacer.value ? `v-button--spacer-${spacer.value}` : undefined, `v-button--${control.size.value}`, {
|
|
462
|
+
'v-button--loading': isLoading.value,
|
|
463
|
+
'v-button--icon': !!icon.value,
|
|
464
|
+
'v-button--rounded': isRounded.value,
|
|
465
|
+
'v-button--plain': isPlain.value
|
|
466
|
+
}]);
|
|
467
|
+
return () => {
|
|
468
|
+
const {
|
|
469
|
+
Tag,
|
|
470
|
+
attrs
|
|
471
|
+
} = navigationable.value;
|
|
472
|
+
const children = vueUtils.renderSlotOrEmpty(ctx.slots, 'default');
|
|
473
|
+
const _attrs = { ...attrs
|
|
474
|
+
};
|
|
475
|
+
|
|
476
|
+
if (isDisabled.value) {
|
|
477
|
+
_attrs.disabled = true;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
return vue.createVNode(Tag, vue.mergeProps({
|
|
481
|
+
"class": ['v-button', classes.value]
|
|
482
|
+
}, _attrs, {
|
|
483
|
+
"onClick": ev => {
|
|
484
|
+
if (isDisabled.value || isLoading.value) {
|
|
485
|
+
ev.preventDefault();
|
|
486
|
+
|
|
487
|
+
if (isDisabled.value) {
|
|
488
|
+
return;
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
ctx.emit('click', ev);
|
|
493
|
+
}
|
|
494
|
+
}), {
|
|
495
|
+
default: () => [vue.createVNode("span", {
|
|
496
|
+
"class": "v-button__content"
|
|
497
|
+
}, [startIcon.value, children, icon.value, endIcon.value]), isLoading.value && vue.createVNode(vueLoading.VProgressCircular, {
|
|
498
|
+
"class": "v-button__loading",
|
|
499
|
+
"indeterminate": true,
|
|
500
|
+
"size": LOADING_SIZE_MAP[control.size.value]
|
|
501
|
+
}, null)]
|
|
502
|
+
});
|
|
503
|
+
};
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
});
|
|
507
|
+
|
|
508
|
+
function createListTileProps() {
|
|
509
|
+
const icon = rawRawIconProp();
|
|
510
|
+
return vueUtils.createPropsOptions({ ...vueUtils.navigationableProps,
|
|
511
|
+
startIcon: icon,
|
|
512
|
+
endIcon: icon,
|
|
513
|
+
fallbackTag: {
|
|
514
|
+
type: String,
|
|
515
|
+
default: 'div'
|
|
516
|
+
}
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
const listTileEmits = { ...vueUtils.navigationableEmits.emits
|
|
520
|
+
};
|
|
521
|
+
const VListTile = vue.defineComponent({
|
|
522
|
+
name: 'VListTile',
|
|
523
|
+
props: createListTileProps(),
|
|
524
|
+
emits: { ...listTileEmits
|
|
525
|
+
},
|
|
526
|
+
|
|
527
|
+
setup(props, ctx) {
|
|
528
|
+
const startIcon = vue.computed(() => resolveRawIconProp(props.startIcon));
|
|
529
|
+
const endIcon = vue.computed(() => resolveRawIconProp(props.endIcon));
|
|
530
|
+
const navigationable = vueUtils.useNavigationable(props, () => props.fallbackTag);
|
|
531
|
+
return () => {
|
|
532
|
+
const _startIcon = startIcon.value;
|
|
533
|
+
const _endIcon = endIcon.value;
|
|
534
|
+
const {
|
|
535
|
+
Tag,
|
|
536
|
+
attrs,
|
|
537
|
+
classes
|
|
538
|
+
} = navigationable.value;
|
|
539
|
+
return vue.createVNode(Tag, vue.mergeProps({
|
|
540
|
+
"class": ['v-list-tile', classes]
|
|
541
|
+
}, attrs), {
|
|
542
|
+
default: () => [_startIcon && vue.createVNode("span", {
|
|
543
|
+
"class": "v-list-tile__icon v-list-tile__icon--start"
|
|
544
|
+
}, [_startIcon]), vue.createVNode("span", {
|
|
545
|
+
"class": "v-list-tile__body"
|
|
546
|
+
}, [vueUtils.renderSlotOrEmpty(ctx.slots, 'default')]), _endIcon && vue.createVNode("span", {
|
|
547
|
+
"class": "v-list-tile__icon v-list-tile__icon--end"
|
|
548
|
+
}, [_endIcon])]
|
|
549
|
+
});
|
|
550
|
+
};
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
});
|
|
554
|
+
|
|
555
|
+
const VAccordion = vue.defineComponent({
|
|
556
|
+
name: 'VAccordion'
|
|
557
|
+
});
|
|
558
|
+
|
|
559
|
+
function _isSlot$6(s) {
|
|
560
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
function createNavigationItemProps() {
|
|
564
|
+
return { ...createListTileProps()
|
|
565
|
+
};
|
|
566
|
+
}
|
|
567
|
+
const VNavigationItem = vue.defineComponent({
|
|
568
|
+
name: 'VNavigationItem',
|
|
569
|
+
props: createNavigationItemProps(),
|
|
570
|
+
emits: { ...listTileEmits
|
|
571
|
+
},
|
|
572
|
+
|
|
573
|
+
setup(props, ctx) {
|
|
574
|
+
const _props = vue.computed(() => ({ ...props
|
|
575
|
+
}));
|
|
576
|
+
|
|
577
|
+
return () => {
|
|
578
|
+
let _slot;
|
|
579
|
+
|
|
580
|
+
return vue.createVNode(VListTile, vue.mergeProps(_props.value, {
|
|
581
|
+
"class": "v-navigation-item"
|
|
582
|
+
}), _isSlot$6(_slot = vueUtils.renderSlotOrEmpty(ctx.slots, 'default')) ? _slot : {
|
|
583
|
+
default: () => [_slot]
|
|
584
|
+
});
|
|
585
|
+
};
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
});
|
|
589
|
+
|
|
590
|
+
function _isSlot$5(s) {
|
|
591
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
const VNavigation = vue.defineComponent({
|
|
595
|
+
name: 'VNavigation',
|
|
596
|
+
props: {
|
|
597
|
+
items: {
|
|
598
|
+
type: Array,
|
|
599
|
+
required: true
|
|
600
|
+
}
|
|
601
|
+
},
|
|
602
|
+
|
|
603
|
+
setup(props, ctx) {
|
|
604
|
+
const items = vue.computed(() => props.items);
|
|
605
|
+
const $items = vue.computed(() => items.value.map(item => {
|
|
606
|
+
let label = item.label;
|
|
607
|
+
const _props = { ...item
|
|
608
|
+
};
|
|
609
|
+
|
|
610
|
+
if (typeof label === 'function') {
|
|
611
|
+
label = label();
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
delete _props.label;
|
|
615
|
+
return {
|
|
616
|
+
label,
|
|
617
|
+
props: _props
|
|
618
|
+
};
|
|
619
|
+
}));
|
|
620
|
+
return () => {
|
|
621
|
+
return vue.createVNode("nav", {
|
|
622
|
+
"class": "v-navigation"
|
|
623
|
+
}, [$items.value.map(({
|
|
624
|
+
label,
|
|
625
|
+
props
|
|
626
|
+
}) => vue.createVNode(VNavigationItem, vue.mergeProps(props, {
|
|
627
|
+
"class": "v-navigation__item"
|
|
628
|
+
}), _isSlot$5(label) ? label : {
|
|
629
|
+
default: () => [label]
|
|
630
|
+
}))]);
|
|
631
|
+
};
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
});
|
|
635
|
+
|
|
275
636
|
const VCheckable = vue.defineComponent({
|
|
276
637
|
name: 'VCheckable',
|
|
277
638
|
props: {
|
|
@@ -365,7 +726,7 @@ const VCheckbox = vue.defineComponent({
|
|
|
365
726
|
|
|
366
727
|
});
|
|
367
728
|
|
|
368
|
-
function _isSlot$
|
|
729
|
+
function _isSlot$4(s) {
|
|
369
730
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
370
731
|
}
|
|
371
732
|
|
|
@@ -377,7 +738,7 @@ const VCheckboxGroup = defineFormSelectorComponent({
|
|
|
377
738
|
itemRenderer: ({
|
|
378
739
|
attrs,
|
|
379
740
|
slots
|
|
380
|
-
}) => vue.createVNode(VCheckbox, attrs, _isSlot$
|
|
741
|
+
}) => vue.createVNode(VCheckbox, attrs, _isSlot$4(slots) ? slots : {
|
|
381
742
|
default: () => [slots]
|
|
382
743
|
})
|
|
383
744
|
});
|
|
@@ -429,7 +790,7 @@ const VRadio = vue.defineComponent({
|
|
|
429
790
|
|
|
430
791
|
});
|
|
431
792
|
|
|
432
|
-
function _isSlot$
|
|
793
|
+
function _isSlot$3(s) {
|
|
433
794
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
434
795
|
}
|
|
435
796
|
|
|
@@ -440,7 +801,7 @@ const VRadioGroup = defineFormSelectorComponent({
|
|
|
440
801
|
itemRenderer: ({
|
|
441
802
|
attrs,
|
|
442
803
|
slots
|
|
443
|
-
}) => vue.createVNode(VRadio, attrs, _isSlot$
|
|
804
|
+
}) => vue.createVNode(VRadio, attrs, _isSlot$3(slots) ? slots : {
|
|
444
805
|
default: () => [slots]
|
|
445
806
|
})
|
|
446
807
|
});
|
|
@@ -502,7 +863,7 @@ const VSwitch = vue.defineComponent({
|
|
|
502
863
|
|
|
503
864
|
});
|
|
504
865
|
|
|
505
|
-
function _isSlot$
|
|
866
|
+
function _isSlot$2(s) {
|
|
506
867
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
507
868
|
}
|
|
508
869
|
|
|
@@ -514,7 +875,7 @@ const VSwitchGroup = defineFormSelectorComponent({
|
|
|
514
875
|
itemRenderer: ({
|
|
515
876
|
attrs,
|
|
516
877
|
slots
|
|
517
|
-
}) => vue.createVNode(VSwitch, attrs, _isSlot$
|
|
878
|
+
}) => vue.createVNode(VSwitch, attrs, _isSlot$2(slots) ? slots : {
|
|
518
879
|
default: () => [slots]
|
|
519
880
|
})
|
|
520
881
|
});
|
|
@@ -1057,7 +1418,7 @@ const VForm = vue.defineComponent({
|
|
|
1057
1418
|
|
|
1058
1419
|
});
|
|
1059
1420
|
|
|
1060
|
-
function _isSlot(s) {
|
|
1421
|
+
function _isSlot$1(s) {
|
|
1061
1422
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1062
1423
|
}
|
|
1063
1424
|
|
|
@@ -1069,7 +1430,93 @@ const VApp = vue.defineComponent({
|
|
|
1069
1430
|
return () => {
|
|
1070
1431
|
let _slot;
|
|
1071
1432
|
|
|
1072
|
-
return vue.createVNode(vueKit.VStackRoot, null, _isSlot(_slot = vueKit.renderSlotOrEmpty(ctx.slots, 'default')) ? _slot : {
|
|
1433
|
+
return vue.createVNode(vueKit.VStackRoot, null, _isSlot$1(_slot = vueKit.renderSlotOrEmpty(ctx.slots, 'default')) ? _slot : {
|
|
1434
|
+
default: () => [_slot]
|
|
1435
|
+
});
|
|
1436
|
+
};
|
|
1437
|
+
}
|
|
1438
|
+
|
|
1439
|
+
});
|
|
1440
|
+
|
|
1441
|
+
const VToolbar = vue.defineComponent({
|
|
1442
|
+
name: 'VToolbar',
|
|
1443
|
+
props: { ...createElevationProps(),
|
|
1444
|
+
...vueColorScheme.colorSchemeProps(),
|
|
1445
|
+
dense: Boolean
|
|
1446
|
+
},
|
|
1447
|
+
|
|
1448
|
+
setup(props, ctx) {
|
|
1449
|
+
const vui = useVui();
|
|
1450
|
+
const elevation = useElevation(props, {
|
|
1451
|
+
defaultValue: 4
|
|
1452
|
+
});
|
|
1453
|
+
const dense = vue.computed(() => props.dense);
|
|
1454
|
+
const color = vueColorScheme.useColorClasses({
|
|
1455
|
+
color: () => props.color,
|
|
1456
|
+
variant: () => props.variant || vui.setting('containedVariant')
|
|
1457
|
+
});
|
|
1458
|
+
const classes = vue.computed(() => {
|
|
1459
|
+
return [elevation.elevationClassName.value, color.colorClasses.value, {
|
|
1460
|
+
'v-toolbar--plain': !color.color.value.value,
|
|
1461
|
+
'v-toolbar--dense': dense.value
|
|
1462
|
+
}];
|
|
1463
|
+
});
|
|
1464
|
+
return () => {
|
|
1465
|
+
return vue.createVNode("div", {
|
|
1466
|
+
"class": ['v-toolbar', classes.value]
|
|
1467
|
+
}, [vueUtils.renderSlotOrEmpty(ctx.slots, 'default')]);
|
|
1468
|
+
};
|
|
1469
|
+
}
|
|
1470
|
+
|
|
1471
|
+
});
|
|
1472
|
+
|
|
1473
|
+
const VToolbarMenu = vue.defineComponent({
|
|
1474
|
+
name: 'VToolbarMenu',
|
|
1475
|
+
props: {
|
|
1476
|
+
edge: {
|
|
1477
|
+
type: String,
|
|
1478
|
+
required: true
|
|
1479
|
+
}
|
|
1480
|
+
},
|
|
1481
|
+
|
|
1482
|
+
setup(props, ctx) {
|
|
1483
|
+
const edge = vue.computed(() => props.edge);
|
|
1484
|
+
return () => {
|
|
1485
|
+
const children = vueUtils.renderSlotOrEmpty(ctx.slots, 'default');
|
|
1486
|
+
const hasChildren = !!children && children.length > 0;
|
|
1487
|
+
return vue.createVNode("div", {
|
|
1488
|
+
"class": ['v-toolbar-menu', `v-toolbar-menu--${edge.value}`, {
|
|
1489
|
+
[`v-toolbar-menu--empty`]: !hasChildren
|
|
1490
|
+
}]
|
|
1491
|
+
}, [children]);
|
|
1492
|
+
};
|
|
1493
|
+
}
|
|
1494
|
+
|
|
1495
|
+
});
|
|
1496
|
+
|
|
1497
|
+
function _isSlot(s) {
|
|
1498
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !vue.isVNode(s);
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
const VToolbarTitle = vue.defineComponent({
|
|
1502
|
+
name: 'VToolbarTitle',
|
|
1503
|
+
props: {
|
|
1504
|
+
tag: {
|
|
1505
|
+
type: String,
|
|
1506
|
+
default: 'span'
|
|
1507
|
+
}
|
|
1508
|
+
},
|
|
1509
|
+
|
|
1510
|
+
setup(props, ctx) {
|
|
1511
|
+
const _TagName = vue.computed(() => props.tag);
|
|
1512
|
+
|
|
1513
|
+
return () => {
|
|
1514
|
+
let _slot;
|
|
1515
|
+
|
|
1516
|
+
const TagName = _TagName.value;
|
|
1517
|
+
return vue.createVNode(TagName, {
|
|
1518
|
+
"class": "v-toolbar-title"
|
|
1519
|
+
}, _isSlot(_slot = vueUtils.renderSlotOrEmpty(ctx.slots, 'default')) ? _slot : {
|
|
1073
1520
|
default: () => [_slot]
|
|
1074
1521
|
});
|
|
1075
1522
|
};
|
|
@@ -1093,8 +1540,8 @@ class VuiService {
|
|
|
1093
1540
|
this.textareaRows = textareaRows;
|
|
1094
1541
|
this.requiredChip = requiredChip;
|
|
1095
1542
|
}
|
|
1096
|
-
|
|
1097
|
-
return this.options.
|
|
1543
|
+
setting(key) {
|
|
1544
|
+
return this.options.uiSettings[key];
|
|
1098
1545
|
}
|
|
1099
1546
|
icon(iconType) {
|
|
1100
1547
|
return this.options.icons[iconType];
|
|
@@ -1112,52 +1559,85 @@ class VuiService {
|
|
|
1112
1559
|
}
|
|
1113
1560
|
}
|
|
1114
1561
|
|
|
1115
|
-
class VuiPlugin {
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
}
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1562
|
+
class VuiPlugin {
|
|
1563
|
+
static installedApps = new Set();
|
|
1564
|
+
|
|
1565
|
+
static install(app, opts) {
|
|
1566
|
+
const {
|
|
1567
|
+
installedApps
|
|
1568
|
+
} = this;
|
|
1569
|
+
if (installedApps.has(app)) return;
|
|
1570
|
+
const unmountApp = app.unmount;
|
|
1571
|
+
installedApps.add(app);
|
|
1572
|
+
const {
|
|
1573
|
+
colorScheme,
|
|
1574
|
+
stack,
|
|
1575
|
+
uiSettings
|
|
1576
|
+
} = opts; // ColorScheme
|
|
1577
|
+
|
|
1578
|
+
const vueColorSchemePlugin = new vueKit.VueColorSchemePlugin(colorScheme);
|
|
1579
|
+
app.use(vueColorSchemePlugin); // Stack
|
|
1580
|
+
|
|
1581
|
+
vueKit.installVueStackPlugin(app, {
|
|
1582
|
+
actions: {
|
|
1583
|
+
ok: ({
|
|
1584
|
+
bindings
|
|
1585
|
+
}) => vue.createVNode(VButton, vue.mergeProps(uiSettings.dialogOk, bindings), {
|
|
1586
|
+
default: () => [vue.createTextVNode("OK")]
|
|
1587
|
+
}),
|
|
1588
|
+
cancel: ({
|
|
1589
|
+
bindings
|
|
1590
|
+
}) => vue.createVNode(VButton, vue.mergeProps(uiSettings.dialogCancel, bindings), {
|
|
1591
|
+
default: () => [vue.createTextVNode("CANCEL")]
|
|
1592
|
+
}),
|
|
1593
|
+
close: ({
|
|
1594
|
+
bindings
|
|
1595
|
+
}) => vue.createVNode(VButton, vue.mergeProps(uiSettings.dialogClose, bindings), {
|
|
1596
|
+
default: () => [vue.createTextVNode("CLOSE")]
|
|
1597
|
+
}),
|
|
1598
|
+
...(stack ? stack.actions : {})
|
|
1599
|
+
},
|
|
1600
|
+
...stack
|
|
1601
|
+
}); // Vui
|
|
1602
|
+
|
|
1603
|
+
const $vui = new VuiService(opts);
|
|
1604
|
+
app.provide(VuiInjectionKey, $vui);
|
|
1605
|
+
app.config.globalProperties.$vui = $vui;
|
|
1606
|
+
|
|
1607
|
+
app.unmount = function () {
|
|
1608
|
+
installedApps.delete(app);
|
|
1609
|
+
delete app.config.globalProperties.$vui;
|
|
1610
|
+
unmountApp();
|
|
1611
|
+
};
|
|
1612
|
+
}
|
|
1613
|
+
|
|
1614
|
+
}
|
|
1615
|
+
function installVuiPlugin(app, opts) {
|
|
1616
|
+
return app.use(VuiPlugin, opts);
|
|
1145
1617
|
}
|
|
1146
1618
|
|
|
1147
|
-
exports.VButton = vueKit.VStackBtn;
|
|
1148
1619
|
exports.VDialog = vueKit.VDialog;
|
|
1149
1620
|
exports.VMenu = vueKit.VMenu;
|
|
1150
1621
|
exports.VSnackbar = vueKit.VSnackbar;
|
|
1151
1622
|
exports.ICON_NAMES = iconFont.ICON_NAMES;
|
|
1152
1623
|
exports.CONTROL_FIELD_VARIANTS = CONTROL_FIELD_VARIANTS;
|
|
1153
1624
|
exports.CONTROL_SIZES = CONTROL_SIZES;
|
|
1625
|
+
exports.VAccordion = VAccordion;
|
|
1154
1626
|
exports.VApp = VApp;
|
|
1627
|
+
exports.VButton = VButton;
|
|
1628
|
+
exports.VCard = VCard;
|
|
1629
|
+
exports.VCardActions = VCardActions;
|
|
1630
|
+
exports.VCardContent = VCardContent;
|
|
1155
1631
|
exports.VCheckbox = VCheckbox;
|
|
1156
1632
|
exports.VCheckboxGroup = VCheckboxGroup;
|
|
1157
1633
|
exports.VForm = VForm;
|
|
1158
1634
|
exports.VIcon = VIcon;
|
|
1635
|
+
exports.VListTile = VListTile;
|
|
1636
|
+
exports.VNavigation = VNavigation;
|
|
1637
|
+
exports.VNavigationItem = VNavigationItem;
|
|
1159
1638
|
exports.VOption = VOption;
|
|
1160
1639
|
exports.VOptionGroup = VOptionGroup;
|
|
1640
|
+
exports.VPaper = VPaper;
|
|
1161
1641
|
exports.VRadio = VRadio;
|
|
1162
1642
|
exports.VRadioGroup = VRadioGroup;
|
|
1163
1643
|
exports.VSelect = VSelect;
|
|
@@ -1165,15 +1645,48 @@ exports.VSwitch = VSwitch;
|
|
|
1165
1645
|
exports.VSwitchGroup = VSwitchGroup;
|
|
1166
1646
|
exports.VTextField = VTextField;
|
|
1167
1647
|
exports.VTextarea = VTextarea;
|
|
1648
|
+
exports.VToolbar = VToolbar;
|
|
1649
|
+
exports.VToolbarMenu = VToolbarMenu;
|
|
1650
|
+
exports.VToolbarTitle = VToolbarTitle;
|
|
1651
|
+
exports.VUI_CHECKBOX_GROUP_SYMBOL = VUI_CHECKBOX_GROUP_SYMBOL;
|
|
1652
|
+
exports.VUI_CHECKBOX_SYMBOL = VUI_CHECKBOX_SYMBOL;
|
|
1653
|
+
exports.VUI_FORM_SYMBOL = VUI_FORM_SYMBOL;
|
|
1654
|
+
exports.VUI_OPTION_SYMBOL = VUI_OPTION_SYMBOL;
|
|
1655
|
+
exports.VUI_RADIO_GROUP_SYMBOL = VUI_RADIO_GROUP_SYMBOL;
|
|
1656
|
+
exports.VUI_RADIO_SYMBOL = VUI_RADIO_SYMBOL;
|
|
1657
|
+
exports.VUI_SELECT_SYMBOL = VUI_SELECT_SYMBOL;
|
|
1658
|
+
exports.VUI_SWITCH_GROUP_SYMBOL = VUI_SWITCH_GROUP_SYMBOL;
|
|
1659
|
+
exports.VUI_SWITCH_SYMBOL = VUI_SWITCH_SYMBOL;
|
|
1660
|
+
exports.VUI_TEXTAREA_SYMBOL = VUI_TEXTAREA_SYMBOL;
|
|
1661
|
+
exports.VUI_TEXT_FIELD_SYMBOL = VUI_TEXT_FIELD_SYMBOL;
|
|
1662
|
+
exports.VuiColorProviderInjectionKey = VuiColorProviderInjectionKey;
|
|
1663
|
+
exports.VuiControlFieldInjectionKey = VuiControlFieldInjectionKey;
|
|
1664
|
+
exports.VuiControlInjectionKey = VuiControlInjectionKey;
|
|
1168
1665
|
exports.VuiInjectionKey = VuiInjectionKey;
|
|
1169
1666
|
exports.VuiPlugin = VuiPlugin;
|
|
1170
1667
|
exports.VuiService = VuiService;
|
|
1668
|
+
exports.createCardProps = createCardProps;
|
|
1171
1669
|
exports.createControlFieldProviderProps = createControlFieldProviderProps;
|
|
1172
1670
|
exports.createControlProps = createControlProps;
|
|
1671
|
+
exports.createElevationProps = createElevationProps;
|
|
1672
|
+
exports.createListTileProps = createListTileProps;
|
|
1673
|
+
exports.createNavigationItemProps = createNavigationItemProps;
|
|
1674
|
+
exports.createPaperProps = createPaperProps;
|
|
1173
1675
|
exports.defineFormSelectorComponent = defineFormSelectorComponent;
|
|
1676
|
+
exports.iconProps = iconProps;
|
|
1174
1677
|
exports.installVuiPlugin = installVuiPlugin;
|
|
1678
|
+
exports.listTileEmits = listTileEmits;
|
|
1679
|
+
exports.rawRawIconProp = rawRawIconProp;
|
|
1680
|
+
exports.resolveRawIconProp = resolveRawIconProp;
|
|
1175
1681
|
exports.useControl = useControl;
|
|
1176
1682
|
exports.useControlField = useControlField;
|
|
1683
|
+
exports.useElevation = useElevation;
|
|
1684
|
+
exports.useVui = useVui;
|
|
1685
|
+
exports.useVuiColorProvider = useVuiColorProvider;
|
|
1686
|
+
exports.vueButtonProps = vueButtonProps;
|
|
1177
1687
|
for (var k in vueKit) {
|
|
1178
1688
|
if (k !== 'default' && !exports.hasOwnProperty(k)) exports[k] = vueKit[k];
|
|
1179
1689
|
}
|
|
1690
|
+
for (var k in vueLoading) {
|
|
1691
|
+
if (k !== 'default' && !exports.hasOwnProperty(k)) exports[k] = vueLoading[k];
|
|
1692
|
+
}
|