@fastkit/vui 0.6.11 → 0.6.15
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.esm-bundler.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { createPropsOptions, createFormControlSettings, defineSlotsProps, useFormControl, renderSlotOrEmpty, createFormSelectorSettings, createFormControlProps, useFormSelectorControl, createFormSelectorItemSettings, useFormSelectorItemControl, createFormSelectorItemGroupProps, useFormSelectorItemGroupControl, resolveVNodeChildOrSlots, useParentFormNode, VMenu, createTextInputSettings, useTextInputControl, createTextareaSettings, useTextareaControl, createFormSettings, useForm, getDocumentScroller, useInjectTheme, VStackRoot, VueColorSchemePlugin, installVueStackPlugin } from '@fastkit/vue-kit';
|
|
2
2
|
export * from '@fastkit/vue-kit';
|
|
3
|
-
export {
|
|
4
|
-
import { inject, computed, provide, defineComponent, createVNode, isVNode, ref, withDirectives, vModelSelect } from 'vue';
|
|
3
|
+
export { VDialog, VMenu, VSnackbar } from '@fastkit/vue-kit';
|
|
4
|
+
import { inject, computed, provide, defineComponent, createVNode, mergeProps, isVNode, ref, withDirectives, vModelSelect, createTextVNode } from 'vue';
|
|
5
|
+
import { useScopeColorClass, colorSchemeProps, useColorClasses } from '@fastkit/vue-color-scheme';
|
|
6
|
+
import { createPropsOptions as createPropsOptions$1, defineSlotsProps as defineSlotsProps$1, renderSlotOrEmpty as renderSlotOrEmpty$1, navigationableProps, navigationableEmits, useNavigationable } from '@fastkit/vue-utils';
|
|
7
|
+
import { VProgressCircular } from '@fastkit/vue-loading';
|
|
8
|
+
export * from '@fastkit/vue-loading';
|
|
5
9
|
export { ICON_NAMES } from '@fastkit/icon-font';
|
|
6
10
|
|
|
7
11
|
const CONTROL_SIZES = ['sm', 'md', 'lg'];
|
|
@@ -35,8 +39,8 @@ function useVuiColorProvider() {
|
|
|
35
39
|
return parent;
|
|
36
40
|
}
|
|
37
41
|
const vui = useVui();
|
|
38
|
-
const primary = computed(() => vui.
|
|
39
|
-
const error = computed(() => vui.
|
|
42
|
+
const primary = computed(() => vui.setting('primaryScope'));
|
|
43
|
+
const error = computed(() => vui.setting('errorScope'));
|
|
40
44
|
const provider = {
|
|
41
45
|
primary,
|
|
42
46
|
error,
|
|
@@ -231,16 +235,137 @@ function defineFormSelectorComponent(opts) {
|
|
|
231
235
|
});
|
|
232
236
|
}
|
|
233
237
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
+
function createElevationProps() {
|
|
239
|
+
return createPropsOptions$1({
|
|
240
|
+
elevation: Number,
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
function useElevation(props, opts = {}) {
|
|
244
|
+
const elevationValue = computed(() => props.elevation == null ? opts.defaultValue : props.elevation);
|
|
245
|
+
const elevationClassName = computed(() => {
|
|
246
|
+
const v = elevationValue.value;
|
|
247
|
+
return v == null ? undefined : `elevation-${v}`;
|
|
248
|
+
});
|
|
249
|
+
return {
|
|
250
|
+
elevationValue,
|
|
251
|
+
elevationClassName,
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
function createPaperProps() {
|
|
256
|
+
return { ...createElevationProps(),
|
|
257
|
+
square: Boolean,
|
|
258
|
+
color: String,
|
|
259
|
+
tag: {
|
|
238
260
|
type: String,
|
|
239
|
-
|
|
261
|
+
default: 'div'
|
|
240
262
|
},
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
263
|
+
...defineSlotsProps$1()
|
|
264
|
+
}; //
|
|
265
|
+
}
|
|
266
|
+
const VPaper = defineComponent({
|
|
267
|
+
name: 'VPaper',
|
|
268
|
+
props: createPaperProps(),
|
|
269
|
+
|
|
270
|
+
setup(props, ctx) {
|
|
271
|
+
const tag = computed(() => props.tag);
|
|
272
|
+
const elevation = useElevation(props, {
|
|
273
|
+
defaultValue: 1
|
|
274
|
+
});
|
|
275
|
+
const scope = useScopeColorClass(props);
|
|
276
|
+
const classes = computed(() => [elevation.elevationClassName.value, scope.value.className, {
|
|
277
|
+
'v-paper--plain': !scope.value.value,
|
|
278
|
+
'v-paper--has-color': !!scope.value.value,
|
|
279
|
+
'v-paper--square': props.square
|
|
280
|
+
}]);
|
|
281
|
+
return () => {
|
|
282
|
+
const TagName = tag.value;
|
|
283
|
+
const header = renderSlotOrEmpty$1(ctx.slots, 'header');
|
|
284
|
+
const footer = renderSlotOrEmpty$1(ctx.slots, 'footer');
|
|
285
|
+
return createVNode(TagName, {
|
|
286
|
+
"class": ['v-paper', classes.value]
|
|
287
|
+
}, {
|
|
288
|
+
default: () => [header && createVNode("div", {
|
|
289
|
+
"class": "v-paper__header"
|
|
290
|
+
}, [header]), createVNode("div", {
|
|
291
|
+
"class": "v-paper__body"
|
|
292
|
+
}, [renderSlotOrEmpty$1(ctx.slots, 'default')]), footer && createVNode("div", {
|
|
293
|
+
"class": "v-paper__footer"
|
|
294
|
+
}, [footer])]
|
|
295
|
+
});
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
function createCardProps() {
|
|
302
|
+
return { ...createPaperProps()
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
const VCard = defineComponent({
|
|
306
|
+
name: 'VCard',
|
|
307
|
+
props: createCardProps(),
|
|
308
|
+
|
|
309
|
+
setup(props, ctx) {
|
|
310
|
+
const _props = computed(() => props);
|
|
311
|
+
|
|
312
|
+
return () => {
|
|
313
|
+
return createVNode(VPaper, mergeProps({
|
|
314
|
+
"class": "v-card"
|
|
315
|
+
}, _props.value), ctx.slots);
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
});
|
|
320
|
+
|
|
321
|
+
const VCardContent = defineComponent({
|
|
322
|
+
name: 'VCardContent',
|
|
323
|
+
|
|
324
|
+
setup(props, ctx) {
|
|
325
|
+
return () => {
|
|
326
|
+
return createVNode("div", {
|
|
327
|
+
"class": "v-card-content"
|
|
328
|
+
}, [renderSlotOrEmpty$1(ctx.slots, 'default')]);
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
});
|
|
333
|
+
|
|
334
|
+
const VCardActions = defineComponent({
|
|
335
|
+
name: 'VCardActions',
|
|
336
|
+
|
|
337
|
+
setup(props, ctx) {
|
|
338
|
+
return () => {
|
|
339
|
+
return createVNode("div", {
|
|
340
|
+
"class": "v-card-actions"
|
|
341
|
+
}, [renderSlotOrEmpty$1(ctx.slots, 'default')]);
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
});
|
|
346
|
+
|
|
347
|
+
const _rawRawIconProp = [String, Function];
|
|
348
|
+
function rawRawIconProp() {
|
|
349
|
+
return _rawRawIconProp;
|
|
350
|
+
}
|
|
351
|
+
function resolveRawIconProp(prop, extraProps) {
|
|
352
|
+
if (!prop) return;
|
|
353
|
+
return typeof prop === 'function' ? prop(input => createVNode(VIcon, mergeProps(input, extraProps), null)) : createVNode(VIcon, mergeProps(extraProps, {
|
|
354
|
+
"name": prop
|
|
355
|
+
}), null);
|
|
356
|
+
}
|
|
357
|
+
const iconProps = createPropsOptions$1({
|
|
358
|
+
name: {
|
|
359
|
+
type: String,
|
|
360
|
+
required: true
|
|
361
|
+
},
|
|
362
|
+
rotate: {
|
|
363
|
+
type: Number
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
const VIcon = defineComponent({
|
|
367
|
+
name: 'VIcon',
|
|
368
|
+
props: { ...iconProps
|
|
244
369
|
},
|
|
245
370
|
emits: {},
|
|
246
371
|
|
|
@@ -270,6 +395,243 @@ const VIcon = defineComponent({
|
|
|
270
395
|
|
|
271
396
|
});
|
|
272
397
|
|
|
398
|
+
function resolveRawVButtonIcon(raw, type = 'main') {
|
|
399
|
+
if (!raw) return;
|
|
400
|
+
return typeof raw === 'function' ? raw : () => createVNode(VIcon, {
|
|
401
|
+
"class": ['v-button__icon', `v-button__icon--${type}`],
|
|
402
|
+
"name": raw
|
|
403
|
+
}, null);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
const vueButtonProps = createPropsOptions$1({ ...colorSchemeProps(),
|
|
407
|
+
...navigationableProps,
|
|
408
|
+
spacer: [Boolean, String],
|
|
409
|
+
loading: Boolean,
|
|
410
|
+
rounded: Boolean,
|
|
411
|
+
icon: [String, Function],
|
|
412
|
+
startIcon: [String, Function],
|
|
413
|
+
endIcon: [String, Function],
|
|
414
|
+
...createControlProps()
|
|
415
|
+
});
|
|
416
|
+
const LOADING_SIZE_MAP = {
|
|
417
|
+
sm: 14,
|
|
418
|
+
md: 20,
|
|
419
|
+
lg: 28
|
|
420
|
+
};
|
|
421
|
+
const VButton = defineComponent({
|
|
422
|
+
name: 'VButton',
|
|
423
|
+
props: vueButtonProps,
|
|
424
|
+
emits: { ...navigationableEmits.emits
|
|
425
|
+
},
|
|
426
|
+
|
|
427
|
+
setup(props, ctx) {
|
|
428
|
+
const vui = useVui();
|
|
429
|
+
const control = useControl(props);
|
|
430
|
+
const defaults = vui.setting('buttonDefault');
|
|
431
|
+
const icon = computed(() => {
|
|
432
|
+
const _icon = resolveRawVButtonIcon(props.icon);
|
|
433
|
+
|
|
434
|
+
return _icon && _icon();
|
|
435
|
+
});
|
|
436
|
+
const startIcon = computed(() => {
|
|
437
|
+
const _icon = resolveRawVButtonIcon(props.startIcon, 'start');
|
|
438
|
+
|
|
439
|
+
return _icon && _icon();
|
|
440
|
+
});
|
|
441
|
+
const endIcon = computed(() => {
|
|
442
|
+
const _icon = resolveRawVButtonIcon(props.endIcon, 'end');
|
|
443
|
+
|
|
444
|
+
return _icon && _icon();
|
|
445
|
+
});
|
|
446
|
+
const color = useColorClasses({
|
|
447
|
+
color: () => props.color || defaults.color,
|
|
448
|
+
variant: () => props.variant || (icon.value ? vui.setting('plainVariant') : defaults.variant)
|
|
449
|
+
});
|
|
450
|
+
const isPlain = computed(() => color.variant.value.value === vui.setting('plainVariant') && color.color.value.value === defaults.color);
|
|
451
|
+
const navigationable = useNavigationable(props);
|
|
452
|
+
const isLoading = computed(() => props.loading);
|
|
453
|
+
const isDisabled = computed(() => props.disabled);
|
|
454
|
+
const isRounded = computed(() => props.rounded || !!icon.value);
|
|
455
|
+
const spacer = computed(() => {
|
|
456
|
+
const _spacer = props.spacer;
|
|
457
|
+
if (!_spacer) return;
|
|
458
|
+
return _spacer === true ? 'left' : _spacer;
|
|
459
|
+
});
|
|
460
|
+
const classes = computed(() => [color.colorClasses.value, navigationable.value.classes, spacer.value ? `v-button--spacer-${spacer.value}` : undefined, `v-button--${control.size.value}`, {
|
|
461
|
+
'v-button--loading': isLoading.value,
|
|
462
|
+
'v-button--icon': !!icon.value,
|
|
463
|
+
'v-button--rounded': isRounded.value,
|
|
464
|
+
'v-button--plain': isPlain.value
|
|
465
|
+
}]);
|
|
466
|
+
return () => {
|
|
467
|
+
const {
|
|
468
|
+
Tag,
|
|
469
|
+
attrs
|
|
470
|
+
} = navigationable.value;
|
|
471
|
+
const children = renderSlotOrEmpty$1(ctx.slots, 'default');
|
|
472
|
+
const _attrs = { ...attrs
|
|
473
|
+
};
|
|
474
|
+
|
|
475
|
+
if (isDisabled.value) {
|
|
476
|
+
_attrs.disabled = true;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
return createVNode(Tag, mergeProps({
|
|
480
|
+
"class": ['v-button', classes.value]
|
|
481
|
+
}, _attrs, {
|
|
482
|
+
"onClick": ev => {
|
|
483
|
+
if (isDisabled.value || isLoading.value) {
|
|
484
|
+
ev.preventDefault();
|
|
485
|
+
|
|
486
|
+
if (isDisabled.value) {
|
|
487
|
+
return;
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
ctx.emit('click', ev);
|
|
492
|
+
}
|
|
493
|
+
}), {
|
|
494
|
+
default: () => [createVNode("span", {
|
|
495
|
+
"class": "v-button__content"
|
|
496
|
+
}, [startIcon.value, children, icon.value, endIcon.value]), isLoading.value && createVNode(VProgressCircular, {
|
|
497
|
+
"class": "v-button__loading",
|
|
498
|
+
"indeterminate": true,
|
|
499
|
+
"size": LOADING_SIZE_MAP[control.size.value]
|
|
500
|
+
}, null)]
|
|
501
|
+
});
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
});
|
|
506
|
+
|
|
507
|
+
function createListTileProps() {
|
|
508
|
+
const icon = rawRawIconProp();
|
|
509
|
+
return createPropsOptions$1({ ...navigationableProps,
|
|
510
|
+
startIcon: icon,
|
|
511
|
+
endIcon: icon,
|
|
512
|
+
fallbackTag: {
|
|
513
|
+
type: String,
|
|
514
|
+
default: 'div'
|
|
515
|
+
}
|
|
516
|
+
});
|
|
517
|
+
}
|
|
518
|
+
const listTileEmits = { ...navigationableEmits.emits
|
|
519
|
+
};
|
|
520
|
+
const VListTile = defineComponent({
|
|
521
|
+
name: 'VListTile',
|
|
522
|
+
props: createListTileProps(),
|
|
523
|
+
emits: { ...listTileEmits
|
|
524
|
+
},
|
|
525
|
+
|
|
526
|
+
setup(props, ctx) {
|
|
527
|
+
const startIcon = computed(() => resolveRawIconProp(props.startIcon));
|
|
528
|
+
const endIcon = computed(() => resolveRawIconProp(props.endIcon));
|
|
529
|
+
const navigationable = useNavigationable(props, () => props.fallbackTag);
|
|
530
|
+
return () => {
|
|
531
|
+
const _startIcon = startIcon.value;
|
|
532
|
+
const _endIcon = endIcon.value;
|
|
533
|
+
const {
|
|
534
|
+
Tag,
|
|
535
|
+
attrs,
|
|
536
|
+
classes
|
|
537
|
+
} = navigationable.value;
|
|
538
|
+
return createVNode(Tag, mergeProps({
|
|
539
|
+
"class": ['v-list-tile', classes]
|
|
540
|
+
}, attrs), {
|
|
541
|
+
default: () => [_startIcon && createVNode("span", {
|
|
542
|
+
"class": "v-list-tile__icon v-list-tile__icon--start"
|
|
543
|
+
}, [_startIcon]), createVNode("span", {
|
|
544
|
+
"class": "v-list-tile__body"
|
|
545
|
+
}, [renderSlotOrEmpty$1(ctx.slots, 'default')]), _endIcon && createVNode("span", {
|
|
546
|
+
"class": "v-list-tile__icon v-list-tile__icon--end"
|
|
547
|
+
}, [_endIcon])]
|
|
548
|
+
});
|
|
549
|
+
};
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
});
|
|
553
|
+
|
|
554
|
+
const VAccordion = defineComponent({
|
|
555
|
+
name: 'VAccordion'
|
|
556
|
+
});
|
|
557
|
+
|
|
558
|
+
function _isSlot$6(s) {
|
|
559
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
function createNavigationItemProps() {
|
|
563
|
+
return { ...createListTileProps()
|
|
564
|
+
};
|
|
565
|
+
}
|
|
566
|
+
const VNavigationItem = defineComponent({
|
|
567
|
+
name: 'VNavigationItem',
|
|
568
|
+
props: createNavigationItemProps(),
|
|
569
|
+
emits: { ...listTileEmits
|
|
570
|
+
},
|
|
571
|
+
|
|
572
|
+
setup(props, ctx) {
|
|
573
|
+
const _props = computed(() => ({ ...props
|
|
574
|
+
}));
|
|
575
|
+
|
|
576
|
+
return () => {
|
|
577
|
+
let _slot;
|
|
578
|
+
|
|
579
|
+
return createVNode(VListTile, mergeProps(_props.value, {
|
|
580
|
+
"class": "v-navigation-item"
|
|
581
|
+
}), _isSlot$6(_slot = renderSlotOrEmpty$1(ctx.slots, 'default')) ? _slot : {
|
|
582
|
+
default: () => [_slot]
|
|
583
|
+
});
|
|
584
|
+
};
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
});
|
|
588
|
+
|
|
589
|
+
function _isSlot$5(s) {
|
|
590
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
const VNavigation = defineComponent({
|
|
594
|
+
name: 'VNavigation',
|
|
595
|
+
props: {
|
|
596
|
+
items: {
|
|
597
|
+
type: Array,
|
|
598
|
+
required: true
|
|
599
|
+
}
|
|
600
|
+
},
|
|
601
|
+
|
|
602
|
+
setup(props, ctx) {
|
|
603
|
+
const items = computed(() => props.items);
|
|
604
|
+
const $items = computed(() => items.value.map(item => {
|
|
605
|
+
let label = item.label;
|
|
606
|
+
const _props = { ...item
|
|
607
|
+
};
|
|
608
|
+
|
|
609
|
+
if (typeof label === 'function') {
|
|
610
|
+
label = label();
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
delete _props.label;
|
|
614
|
+
return {
|
|
615
|
+
label,
|
|
616
|
+
props: _props
|
|
617
|
+
};
|
|
618
|
+
}));
|
|
619
|
+
return () => {
|
|
620
|
+
return createVNode("nav", {
|
|
621
|
+
"class": "v-navigation"
|
|
622
|
+
}, [$items.value.map(({
|
|
623
|
+
label,
|
|
624
|
+
props
|
|
625
|
+
}) => createVNode(VNavigationItem, mergeProps(props, {
|
|
626
|
+
"class": "v-navigation__item"
|
|
627
|
+
}), _isSlot$5(label) ? label : {
|
|
628
|
+
default: () => [label]
|
|
629
|
+
}))]);
|
|
630
|
+
};
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
});
|
|
634
|
+
|
|
273
635
|
const VCheckable = defineComponent({
|
|
274
636
|
name: 'VCheckable',
|
|
275
637
|
props: {
|
|
@@ -363,7 +725,7 @@ const VCheckbox = defineComponent({
|
|
|
363
725
|
|
|
364
726
|
});
|
|
365
727
|
|
|
366
|
-
function _isSlot$
|
|
728
|
+
function _isSlot$4(s) {
|
|
367
729
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
|
|
368
730
|
}
|
|
369
731
|
|
|
@@ -375,7 +737,7 @@ const VCheckboxGroup = defineFormSelectorComponent({
|
|
|
375
737
|
itemRenderer: ({
|
|
376
738
|
attrs,
|
|
377
739
|
slots
|
|
378
|
-
}) => createVNode(VCheckbox, attrs, _isSlot$
|
|
740
|
+
}) => createVNode(VCheckbox, attrs, _isSlot$4(slots) ? slots : {
|
|
379
741
|
default: () => [slots]
|
|
380
742
|
})
|
|
381
743
|
});
|
|
@@ -427,7 +789,7 @@ const VRadio = defineComponent({
|
|
|
427
789
|
|
|
428
790
|
});
|
|
429
791
|
|
|
430
|
-
function _isSlot$
|
|
792
|
+
function _isSlot$3(s) {
|
|
431
793
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
|
|
432
794
|
}
|
|
433
795
|
|
|
@@ -438,7 +800,7 @@ const VRadioGroup = defineFormSelectorComponent({
|
|
|
438
800
|
itemRenderer: ({
|
|
439
801
|
attrs,
|
|
440
802
|
slots
|
|
441
|
-
}) => createVNode(VRadio, attrs, _isSlot$
|
|
803
|
+
}) => createVNode(VRadio, attrs, _isSlot$3(slots) ? slots : {
|
|
442
804
|
default: () => [slots]
|
|
443
805
|
})
|
|
444
806
|
});
|
|
@@ -500,7 +862,7 @@ const VSwitch = defineComponent({
|
|
|
500
862
|
|
|
501
863
|
});
|
|
502
864
|
|
|
503
|
-
function _isSlot$
|
|
865
|
+
function _isSlot$2(s) {
|
|
504
866
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
|
|
505
867
|
}
|
|
506
868
|
|
|
@@ -512,7 +874,7 @@ const VSwitchGroup = defineFormSelectorComponent({
|
|
|
512
874
|
itemRenderer: ({
|
|
513
875
|
attrs,
|
|
514
876
|
slots
|
|
515
|
-
}) => createVNode(VSwitch, attrs, _isSlot$
|
|
877
|
+
}) => createVNode(VSwitch, attrs, _isSlot$2(slots) ? slots : {
|
|
516
878
|
default: () => [slots]
|
|
517
879
|
})
|
|
518
880
|
});
|
|
@@ -1055,7 +1417,7 @@ const VForm = defineComponent({
|
|
|
1055
1417
|
|
|
1056
1418
|
});
|
|
1057
1419
|
|
|
1058
|
-
function _isSlot(s) {
|
|
1420
|
+
function _isSlot$1(s) {
|
|
1059
1421
|
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
|
|
1060
1422
|
}
|
|
1061
1423
|
|
|
@@ -1067,7 +1429,93 @@ const VApp = defineComponent({
|
|
|
1067
1429
|
return () => {
|
|
1068
1430
|
let _slot;
|
|
1069
1431
|
|
|
1070
|
-
return createVNode(VStackRoot, null, _isSlot(_slot = renderSlotOrEmpty(ctx.slots, 'default')) ? _slot : {
|
|
1432
|
+
return createVNode(VStackRoot, null, _isSlot$1(_slot = renderSlotOrEmpty(ctx.slots, 'default')) ? _slot : {
|
|
1433
|
+
default: () => [_slot]
|
|
1434
|
+
});
|
|
1435
|
+
};
|
|
1436
|
+
}
|
|
1437
|
+
|
|
1438
|
+
});
|
|
1439
|
+
|
|
1440
|
+
const VToolbar = defineComponent({
|
|
1441
|
+
name: 'VToolbar',
|
|
1442
|
+
props: { ...createElevationProps(),
|
|
1443
|
+
...colorSchemeProps(),
|
|
1444
|
+
dense: Boolean
|
|
1445
|
+
},
|
|
1446
|
+
|
|
1447
|
+
setup(props, ctx) {
|
|
1448
|
+
const vui = useVui();
|
|
1449
|
+
const elevation = useElevation(props, {
|
|
1450
|
+
defaultValue: 4
|
|
1451
|
+
});
|
|
1452
|
+
const dense = computed(() => props.dense);
|
|
1453
|
+
const color = useColorClasses({
|
|
1454
|
+
color: () => props.color,
|
|
1455
|
+
variant: () => props.variant || vui.setting('containedVariant')
|
|
1456
|
+
});
|
|
1457
|
+
const classes = computed(() => {
|
|
1458
|
+
return [elevation.elevationClassName.value, color.colorClasses.value, {
|
|
1459
|
+
'v-toolbar--plain': !color.color.value.value,
|
|
1460
|
+
'v-toolbar--dense': dense.value
|
|
1461
|
+
}];
|
|
1462
|
+
});
|
|
1463
|
+
return () => {
|
|
1464
|
+
return createVNode("div", {
|
|
1465
|
+
"class": ['v-toolbar', classes.value]
|
|
1466
|
+
}, [renderSlotOrEmpty$1(ctx.slots, 'default')]);
|
|
1467
|
+
};
|
|
1468
|
+
}
|
|
1469
|
+
|
|
1470
|
+
});
|
|
1471
|
+
|
|
1472
|
+
const VToolbarMenu = defineComponent({
|
|
1473
|
+
name: 'VToolbarMenu',
|
|
1474
|
+
props: {
|
|
1475
|
+
edge: {
|
|
1476
|
+
type: String,
|
|
1477
|
+
required: true
|
|
1478
|
+
}
|
|
1479
|
+
},
|
|
1480
|
+
|
|
1481
|
+
setup(props, ctx) {
|
|
1482
|
+
const edge = computed(() => props.edge);
|
|
1483
|
+
return () => {
|
|
1484
|
+
const children = renderSlotOrEmpty$1(ctx.slots, 'default');
|
|
1485
|
+
const hasChildren = !!children && children.length > 0;
|
|
1486
|
+
return createVNode("div", {
|
|
1487
|
+
"class": ['v-toolbar-menu', `v-toolbar-menu--${edge.value}`, {
|
|
1488
|
+
[`v-toolbar-menu--empty`]: !hasChildren
|
|
1489
|
+
}]
|
|
1490
|
+
}, [children]);
|
|
1491
|
+
};
|
|
1492
|
+
}
|
|
1493
|
+
|
|
1494
|
+
});
|
|
1495
|
+
|
|
1496
|
+
function _isSlot(s) {
|
|
1497
|
+
return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !isVNode(s);
|
|
1498
|
+
}
|
|
1499
|
+
|
|
1500
|
+
const VToolbarTitle = defineComponent({
|
|
1501
|
+
name: 'VToolbarTitle',
|
|
1502
|
+
props: {
|
|
1503
|
+
tag: {
|
|
1504
|
+
type: String,
|
|
1505
|
+
default: 'span'
|
|
1506
|
+
}
|
|
1507
|
+
},
|
|
1508
|
+
|
|
1509
|
+
setup(props, ctx) {
|
|
1510
|
+
const _TagName = computed(() => props.tag);
|
|
1511
|
+
|
|
1512
|
+
return () => {
|
|
1513
|
+
let _slot;
|
|
1514
|
+
|
|
1515
|
+
const TagName = _TagName.value;
|
|
1516
|
+
return createVNode(TagName, {
|
|
1517
|
+
"class": "v-toolbar-title"
|
|
1518
|
+
}, _isSlot(_slot = renderSlotOrEmpty$1(ctx.slots, 'default')) ? _slot : {
|
|
1071
1519
|
default: () => [_slot]
|
|
1072
1520
|
});
|
|
1073
1521
|
};
|
|
@@ -1091,8 +1539,8 @@ class VuiService {
|
|
|
1091
1539
|
this.textareaRows = textareaRows;
|
|
1092
1540
|
this.requiredChip = requiredChip;
|
|
1093
1541
|
}
|
|
1094
|
-
|
|
1095
|
-
return this.options.
|
|
1542
|
+
setting(key) {
|
|
1543
|
+
return this.options.uiSettings[key];
|
|
1096
1544
|
}
|
|
1097
1545
|
icon(iconType) {
|
|
1098
1546
|
return this.options.icons[iconType];
|
|
@@ -1110,36 +1558,61 @@ class VuiService {
|
|
|
1110
1558
|
}
|
|
1111
1559
|
}
|
|
1112
1560
|
|
|
1113
|
-
class VuiPlugin {
|
|
1114
|
-
|
|
1115
|
-
|
|
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
|
-
|
|
1561
|
+
class VuiPlugin {
|
|
1562
|
+
static installedApps = new Set();
|
|
1563
|
+
|
|
1564
|
+
static install(app, opts) {
|
|
1565
|
+
const {
|
|
1566
|
+
installedApps
|
|
1567
|
+
} = this;
|
|
1568
|
+
if (installedApps.has(app)) return;
|
|
1569
|
+
const unmountApp = app.unmount;
|
|
1570
|
+
installedApps.add(app);
|
|
1571
|
+
const {
|
|
1572
|
+
colorScheme,
|
|
1573
|
+
stack,
|
|
1574
|
+
uiSettings
|
|
1575
|
+
} = opts; // ColorScheme
|
|
1576
|
+
|
|
1577
|
+
const vueColorSchemePlugin = new VueColorSchemePlugin(colorScheme);
|
|
1578
|
+
app.use(vueColorSchemePlugin); // Stack
|
|
1579
|
+
|
|
1580
|
+
installVueStackPlugin(app, {
|
|
1581
|
+
actions: {
|
|
1582
|
+
ok: ({
|
|
1583
|
+
bindings
|
|
1584
|
+
}) => createVNode(VButton, mergeProps(uiSettings.dialogOk, bindings), {
|
|
1585
|
+
default: () => [createTextVNode("OK")]
|
|
1586
|
+
}),
|
|
1587
|
+
cancel: ({
|
|
1588
|
+
bindings
|
|
1589
|
+
}) => createVNode(VButton, mergeProps(uiSettings.dialogCancel, bindings), {
|
|
1590
|
+
default: () => [createTextVNode("CANCEL")]
|
|
1591
|
+
}),
|
|
1592
|
+
close: ({
|
|
1593
|
+
bindings
|
|
1594
|
+
}) => createVNode(VButton, mergeProps(uiSettings.dialogClose, bindings), {
|
|
1595
|
+
default: () => [createTextVNode("CLOSE")]
|
|
1596
|
+
}),
|
|
1597
|
+
...(stack ? stack.actions : {})
|
|
1598
|
+
},
|
|
1599
|
+
...stack
|
|
1600
|
+
}); // Vui
|
|
1601
|
+
|
|
1602
|
+
const $vui = new VuiService(opts);
|
|
1603
|
+
app.provide(VuiInjectionKey, $vui);
|
|
1604
|
+
app.config.globalProperties.$vui = $vui;
|
|
1605
|
+
|
|
1606
|
+
app.unmount = function () {
|
|
1607
|
+
installedApps.delete(app);
|
|
1608
|
+
delete app.config.globalProperties.$vui;
|
|
1609
|
+
unmountApp();
|
|
1610
|
+
};
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
}
|
|
1614
|
+
function installVuiPlugin(app, opts) {
|
|
1615
|
+
return app.use(VuiPlugin, opts);
|
|
1143
1616
|
}
|
|
1144
1617
|
|
|
1145
|
-
export { CONTROL_FIELD_VARIANTS, CONTROL_SIZES, VApp, VCheckbox, VCheckboxGroup, VForm, VIcon, VOption, VOptionGroup, VRadio, VRadioGroup, VSelect, VSwitch, VSwitchGroup, VTextField, VTextarea, VuiInjectionKey, VuiPlugin, VuiService, createControlFieldProviderProps, createControlProps, defineFormSelectorComponent, installVuiPlugin, useControl, useControlField };
|
|
1618
|
+
export { CONTROL_FIELD_VARIANTS, CONTROL_SIZES, VAccordion, VApp, VButton, VCard, VCardActions, VCardContent, VCheckbox, VCheckboxGroup, VForm, VIcon, VListTile, VNavigation, VNavigationItem, VOption, VOptionGroup, VPaper, VRadio, VRadioGroup, VSelect, VSwitch, VSwitchGroup, VTextField, VTextarea, VToolbar, VToolbarMenu, VToolbarTitle, VUI_CHECKBOX_GROUP_SYMBOL, VUI_CHECKBOX_SYMBOL, VUI_FORM_SYMBOL, VUI_OPTION_SYMBOL, VUI_RADIO_GROUP_SYMBOL, VUI_RADIO_SYMBOL, VUI_SELECT_SYMBOL, VUI_SWITCH_GROUP_SYMBOL, VUI_SWITCH_SYMBOL, VUI_TEXTAREA_SYMBOL, VUI_TEXT_FIELD_SYMBOL, VuiColorProviderInjectionKey, VuiControlFieldInjectionKey, VuiControlInjectionKey, VuiInjectionKey, VuiPlugin, VuiService, createCardProps, createControlFieldProviderProps, createControlProps, createElevationProps, createListTileProps, createNavigationItemProps, createPaperProps, defineFormSelectorComponent, iconProps, installVuiPlugin, listTileEmits, rawRawIconProp, resolveRawIconProp, useControl, useControlField, useElevation, useVui, useVuiColorProvider, vueButtonProps };
|