@fastkit/vui 0.7.20 → 0.7.24
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 +5 -4
- package/dist/tool/vite-plugin.d.ts.map +1 -1
- package/dist/vui.cjs.js +135 -4
- package/dist/vui.cjs.prod.js +135 -4
- package/dist/vui.d.ts +91 -19
- package/dist/vui.mjs +132 -5
- package/package.json +6 -6
- package/src/components/VDataTable/VDataTable.tsx +53 -1
- package/src/components/VFormControl/VFormControl.tsx +18 -1
- package/src/plugin.tsx +26 -1
- package/src/service.tsx +74 -1
- package/src/tool/vite-plugin.ts +5 -4
package/dist/tool/index.js
CHANGED
|
@@ -35,20 +35,21 @@ import './setup.scss';
|
|
|
35
35
|
import type { App } from 'vue';
|
|
36
36
|
import type { Router } from 'vue-router';
|
|
37
37
|
import { VPageLink } from '@fastkit/vue-page';
|
|
38
|
-
import { installVuiPlugin as _installVuiPlugin,
|
|
38
|
+
import { installVuiPlugin as _installVuiPlugin, RawVuiPluginOptions, mergeVuiPluginOptions } from '@fastkit/vui';
|
|
39
39
|
import { colorScheme } from '<%~ it.colorScheme %>';
|
|
40
40
|
import '<%~ it.mediaMatch %>';
|
|
41
41
|
import './icon-font';
|
|
42
42
|
import '${STYLE_AFTER_EFFECTS_PATH}';
|
|
43
43
|
|
|
44
|
-
export function installVui(settings: { app: App, router: Router }) {
|
|
45
|
-
|
|
44
|
+
export function installVui(settings: { app: App, router: Router }, options?: RawVuiPluginOptions) {
|
|
45
|
+
const merged = mergeVuiPluginOptions({
|
|
46
46
|
RouterLink: VPageLink,
|
|
47
47
|
colorScheme,
|
|
48
48
|
uiSettings: <%~ it.uiSettings %>,
|
|
49
49
|
icons: <%~ it.icons %>,
|
|
50
50
|
...settings,
|
|
51
|
-
});
|
|
51
|
+
}, options);
|
|
52
|
+
_installVuiPlugin(settings.app, merged);
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
export default installVui;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../../../../../../../packages/vui/src/tool/vite-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAK9B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"vite-plugin.d.ts","sourceRoot":"","sources":["../../../../../../../packages/vui/src/tool/vite-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAK9B,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAgG/C,MAAM,WAAW,oBACf,SAAQ,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAGD,MAAM,WAAW,2BACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,YAAY,GAAG,OAAO,CAAC;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,2BAA2B,CAAC;IACtC,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,aAAa,CAC3B,OAAO,GAAE,oBAAyB,GACjC,mBAAmB,CAyJrB"}
|
package/dist/vui.cjs.js
CHANGED
|
@@ -247,6 +247,21 @@ const VFormControl = vue.defineComponent({
|
|
|
247
247
|
"name": vui.icon('hinttip')
|
|
248
248
|
}, null)
|
|
249
249
|
});
|
|
250
|
+
const hinttipDelay = vue.computed(() => {
|
|
251
|
+
let {
|
|
252
|
+
hinttipDelay
|
|
253
|
+
} = control;
|
|
254
|
+
|
|
255
|
+
if (hinttipDelay == null) {
|
|
256
|
+
hinttipDelay = vui.setting('hinttipDelay');
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
if (hinttipDelay == null) {
|
|
260
|
+
hinttipDelay = 500;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
return hinttipDelay;
|
|
264
|
+
});
|
|
250
265
|
ctx.expose(control.expose());
|
|
251
266
|
const colorProvider = useVuiColorProvider();
|
|
252
267
|
const classes = vue.computed(() => [{
|
|
@@ -268,6 +283,7 @@ const VFormControl = vue.defineComponent({
|
|
|
268
283
|
const message = control.renderMessage();
|
|
269
284
|
const appends = control.renderInfoAppends();
|
|
270
285
|
const hinttip = control.renderHinttip();
|
|
286
|
+
const _hinttipDelay = hinttipDelay.value;
|
|
271
287
|
return vue.createVNode("div", {
|
|
272
288
|
"class": ['v-form-control', classes.value]
|
|
273
289
|
}, [label && vue.createVNode("label", {
|
|
@@ -277,7 +293,8 @@ const VFormControl = vue.defineComponent({
|
|
|
277
293
|
}
|
|
278
294
|
}, [label, getRequiredChip(), hinttip && vue.createVNode(vueKit.VTooltip, {
|
|
279
295
|
"top": true,
|
|
280
|
-
"openOnHover":
|
|
296
|
+
"openOnHover": _hinttipDelay !== 'click',
|
|
297
|
+
"openDelay": typeof _hinttipDelay === 'number' ? _hinttipDelay : undefined
|
|
281
298
|
}, {
|
|
282
299
|
default: () => [vue.createVNode("div", {
|
|
283
300
|
"class": "v-form-control__label__hinttip__hint"
|
|
@@ -3385,7 +3402,8 @@ const DATA_TABLE_DEFAULTS = {
|
|
|
3385
3402
|
descQueryValue: 'DESC',
|
|
3386
3403
|
limits: [5, 10, 20, 50, 100],
|
|
3387
3404
|
limitDefault: 20,
|
|
3388
|
-
contorolThreshold: 10
|
|
3405
|
+
contorolThreshold: 10,
|
|
3406
|
+
searchQuery: []
|
|
3389
3407
|
};
|
|
3390
3408
|
function configureDataTableDefaults(defaults) {
|
|
3391
3409
|
Object.assign(DATA_TABLE_DEFAULTS, defaults);
|
|
@@ -3432,6 +3450,14 @@ const VDataTable = vue.defineComponent({
|
|
|
3432
3450
|
default: () => DATA_TABLE_DEFAULTS.orderQuery
|
|
3433
3451
|
},
|
|
3434
3452
|
|
|
3453
|
+
/**
|
|
3454
|
+
* 検索クエリ名
|
|
3455
|
+
*/
|
|
3456
|
+
searchQuery: {
|
|
3457
|
+
type: [String, Array],
|
|
3458
|
+
default: () => DATA_TABLE_DEFAULTS.searchQuery
|
|
3459
|
+
},
|
|
3460
|
+
|
|
3435
3461
|
/**
|
|
3436
3462
|
* リミット件数クエリ名
|
|
3437
3463
|
*/
|
|
@@ -3477,7 +3503,11 @@ const VDataTable = vue.defineComponent({
|
|
|
3477
3503
|
},
|
|
3478
3504
|
selectable: Boolean,
|
|
3479
3505
|
fixedHeader: Boolean,
|
|
3480
|
-
maxHeight: [Number, String]
|
|
3506
|
+
maxHeight: [Number, String],
|
|
3507
|
+
// eslint-disable-next-line vue/require-prop-types
|
|
3508
|
+
noDataMessage: {},
|
|
3509
|
+
// eslint-disable-next-line vue/require-prop-types
|
|
3510
|
+
noResultsMessage: {}
|
|
3481
3511
|
},
|
|
3482
3512
|
emits: {
|
|
3483
3513
|
input: selecteds => true
|
|
@@ -3506,6 +3536,46 @@ const VDataTable = vue.defineComponent({
|
|
|
3506
3536
|
ret.push(...headers.filter(h => !h.hidden));
|
|
3507
3537
|
return ret;
|
|
3508
3538
|
});
|
|
3539
|
+
const searchQueryValues = vue.computed(() => {
|
|
3540
|
+
let {
|
|
3541
|
+
searchQuery
|
|
3542
|
+
} = props;
|
|
3543
|
+
|
|
3544
|
+
if (!searchQuery) {
|
|
3545
|
+
return [];
|
|
3546
|
+
}
|
|
3547
|
+
|
|
3548
|
+
if (!Array.isArray(searchQuery)) {
|
|
3549
|
+
searchQuery = [searchQuery];
|
|
3550
|
+
}
|
|
3551
|
+
|
|
3552
|
+
const values = [];
|
|
3553
|
+
searchQuery.forEach(query => {
|
|
3554
|
+
const value = vui.location.getQuery(query);
|
|
3555
|
+
|
|
3556
|
+
if (value == null || value === '') {
|
|
3557
|
+
return;
|
|
3558
|
+
}
|
|
3559
|
+
|
|
3560
|
+
if (typeof value === 'object' && !Object.keys(value).length) {
|
|
3561
|
+
return;
|
|
3562
|
+
}
|
|
3563
|
+
|
|
3564
|
+
values.push(value);
|
|
3565
|
+
});
|
|
3566
|
+
return values;
|
|
3567
|
+
});
|
|
3568
|
+
const emptyMessage = vue.computed(() => {
|
|
3569
|
+
let message;
|
|
3570
|
+
|
|
3571
|
+
if (searchQueryValues.value.length) {
|
|
3572
|
+
message = props.noResultsMessage || vui.setting('noResultsMessage') || 'No search results found.'; // 検索結果が見つかりませんでした。
|
|
3573
|
+
} else {
|
|
3574
|
+
message = props.noDataMessage || vui.setting('noDataMessage') || 'No data was available.'; // データはありませんでした。
|
|
3575
|
+
}
|
|
3576
|
+
|
|
3577
|
+
return typeof message === 'function' ? message() : message;
|
|
3578
|
+
});
|
|
3509
3579
|
const classesRef = vue.computed(() => [{
|
|
3510
3580
|
'v-data-table--fixed-header': props.fixedHeader
|
|
3511
3581
|
}]);
|
|
@@ -3972,7 +4042,7 @@ const VDataTable = vue.defineComponent({
|
|
|
3972
4042
|
"class": "v-data-table__body container-pull"
|
|
3973
4043
|
}, [isEmpty ? vue.createVNode("div", {
|
|
3974
4044
|
"class": "v-data-table__empty--message"
|
|
3975
|
-
},
|
|
4045
|
+
}, [emptyMessage.value]) : vue.createVNode(VPaper, {
|
|
3976
4046
|
"class": "v-data-table__body__inner",
|
|
3977
4047
|
"style": bodyInnerStylesRef.value
|
|
3978
4048
|
}, {
|
|
@@ -4136,6 +4206,51 @@ const VToolbarTitle = vue.defineComponent({
|
|
|
4136
4206
|
|
|
4137
4207
|
const DEFAULT_AUTO_SCROLL_TO_ELEMENT_OFFSET_TOP = -20;
|
|
4138
4208
|
const DEFAULT_TEXTAREA_ROWS = 3;
|
|
4209
|
+
function mergeVuiServiceUISettings(base, overrides) {
|
|
4210
|
+
if (!overrides) {
|
|
4211
|
+
return base;
|
|
4212
|
+
}
|
|
4213
|
+
|
|
4214
|
+
const merged = { ...base
|
|
4215
|
+
};
|
|
4216
|
+
Object.entries(overrides).forEach(([key, value]) => {
|
|
4217
|
+
if (value) {
|
|
4218
|
+
merged[key] = value;
|
|
4219
|
+
}
|
|
4220
|
+
});
|
|
4221
|
+
return merged;
|
|
4222
|
+
}
|
|
4223
|
+
function mergeVuiServiceIconSettings(base, overrides) {
|
|
4224
|
+
if (!overrides) {
|
|
4225
|
+
return base;
|
|
4226
|
+
}
|
|
4227
|
+
|
|
4228
|
+
const merged = { ...base
|
|
4229
|
+
};
|
|
4230
|
+
Object.entries(overrides).forEach(([key, value]) => {
|
|
4231
|
+
if (value) {
|
|
4232
|
+
merged[key] = value;
|
|
4233
|
+
}
|
|
4234
|
+
});
|
|
4235
|
+
return merged;
|
|
4236
|
+
}
|
|
4237
|
+
function mergeVuiServiceOptions(base, overrides) {
|
|
4238
|
+
if (!overrides) {
|
|
4239
|
+
return base;
|
|
4240
|
+
}
|
|
4241
|
+
|
|
4242
|
+
const merged = { ...base,
|
|
4243
|
+
uiSettings: mergeVuiServiceUISettings(base.uiSettings, overrides.uiSettings),
|
|
4244
|
+
icons: mergeVuiServiceIconSettings(base.icons, overrides.icons)
|
|
4245
|
+
};
|
|
4246
|
+
const excludes = ['uiSettings', 'icons'];
|
|
4247
|
+
Object.entries(overrides).forEach(([key, value]) => {
|
|
4248
|
+
if (value && !excludes.includes(key)) {
|
|
4249
|
+
merged[key] = value;
|
|
4250
|
+
}
|
|
4251
|
+
});
|
|
4252
|
+
return merged;
|
|
4253
|
+
}
|
|
4139
4254
|
class VuiService {
|
|
4140
4255
|
get scroller() {
|
|
4141
4256
|
return vueScroller.getDocumentScroller();
|
|
@@ -4272,6 +4387,18 @@ class VuiService {
|
|
|
4272
4387
|
|
|
4273
4388
|
}
|
|
4274
4389
|
|
|
4390
|
+
function mergeVuiPluginOptions(base, override) {
|
|
4391
|
+
if (!override) return base;
|
|
4392
|
+
const merged = mergeVuiServiceOptions(base, override);
|
|
4393
|
+
|
|
4394
|
+
if (override.stack) {
|
|
4395
|
+
merged.stack = { ...merged.stack,
|
|
4396
|
+
...override.stack
|
|
4397
|
+
};
|
|
4398
|
+
}
|
|
4399
|
+
|
|
4400
|
+
return merged;
|
|
4401
|
+
}
|
|
4275
4402
|
class VuiPlugin {
|
|
4276
4403
|
static installedApps = new Set();
|
|
4277
4404
|
|
|
@@ -4415,6 +4542,10 @@ exports.defineFormSelectorComponent = defineFormSelectorComponent;
|
|
|
4415
4542
|
exports.iconProps = iconProps;
|
|
4416
4543
|
exports.installVuiPlugin = installVuiPlugin;
|
|
4417
4544
|
exports.listTileEmits = listTileEmits;
|
|
4545
|
+
exports.mergeVuiPluginOptions = mergeVuiPluginOptions;
|
|
4546
|
+
exports.mergeVuiServiceIconSettings = mergeVuiServiceIconSettings;
|
|
4547
|
+
exports.mergeVuiServiceOptions = mergeVuiServiceOptions;
|
|
4548
|
+
exports.mergeVuiServiceUISettings = mergeVuiServiceUISettings;
|
|
4418
4549
|
exports.paginationProps = paginationProps;
|
|
4419
4550
|
exports.rawIconProp = rawIconProp;
|
|
4420
4551
|
exports.renderNavigationItemInput = renderNavigationItemInput;
|
package/dist/vui.cjs.prod.js
CHANGED
|
@@ -247,6 +247,21 @@ const VFormControl = vue.defineComponent({
|
|
|
247
247
|
"name": vui.icon('hinttip')
|
|
248
248
|
}, null)
|
|
249
249
|
});
|
|
250
|
+
const hinttipDelay = vue.computed(() => {
|
|
251
|
+
let {
|
|
252
|
+
hinttipDelay
|
|
253
|
+
} = control;
|
|
254
|
+
|
|
255
|
+
if (hinttipDelay == null) {
|
|
256
|
+
hinttipDelay = vui.setting('hinttipDelay');
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
if (hinttipDelay == null) {
|
|
260
|
+
hinttipDelay = 500;
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
return hinttipDelay;
|
|
264
|
+
});
|
|
250
265
|
ctx.expose(control.expose());
|
|
251
266
|
const colorProvider = useVuiColorProvider();
|
|
252
267
|
const classes = vue.computed(() => [{
|
|
@@ -268,6 +283,7 @@ const VFormControl = vue.defineComponent({
|
|
|
268
283
|
const message = control.renderMessage();
|
|
269
284
|
const appends = control.renderInfoAppends();
|
|
270
285
|
const hinttip = control.renderHinttip();
|
|
286
|
+
const _hinttipDelay = hinttipDelay.value;
|
|
271
287
|
return vue.createVNode("div", {
|
|
272
288
|
"class": ['v-form-control', classes.value]
|
|
273
289
|
}, [label && vue.createVNode("label", {
|
|
@@ -277,7 +293,8 @@ const VFormControl = vue.defineComponent({
|
|
|
277
293
|
}
|
|
278
294
|
}, [label, getRequiredChip(), hinttip && vue.createVNode(vueKit.VTooltip, {
|
|
279
295
|
"top": true,
|
|
280
|
-
"openOnHover":
|
|
296
|
+
"openOnHover": _hinttipDelay !== 'click',
|
|
297
|
+
"openDelay": typeof _hinttipDelay === 'number' ? _hinttipDelay : undefined
|
|
281
298
|
}, {
|
|
282
299
|
default: () => [vue.createVNode("div", {
|
|
283
300
|
"class": "v-form-control__label__hinttip__hint"
|
|
@@ -3385,7 +3402,8 @@ const DATA_TABLE_DEFAULTS = {
|
|
|
3385
3402
|
descQueryValue: 'DESC',
|
|
3386
3403
|
limits: [5, 10, 20, 50, 100],
|
|
3387
3404
|
limitDefault: 20,
|
|
3388
|
-
contorolThreshold: 10
|
|
3405
|
+
contorolThreshold: 10,
|
|
3406
|
+
searchQuery: []
|
|
3389
3407
|
};
|
|
3390
3408
|
function configureDataTableDefaults(defaults) {
|
|
3391
3409
|
Object.assign(DATA_TABLE_DEFAULTS, defaults);
|
|
@@ -3432,6 +3450,14 @@ const VDataTable = vue.defineComponent({
|
|
|
3432
3450
|
default: () => DATA_TABLE_DEFAULTS.orderQuery
|
|
3433
3451
|
},
|
|
3434
3452
|
|
|
3453
|
+
/**
|
|
3454
|
+
* 検索クエリ名
|
|
3455
|
+
*/
|
|
3456
|
+
searchQuery: {
|
|
3457
|
+
type: [String, Array],
|
|
3458
|
+
default: () => DATA_TABLE_DEFAULTS.searchQuery
|
|
3459
|
+
},
|
|
3460
|
+
|
|
3435
3461
|
/**
|
|
3436
3462
|
* リミット件数クエリ名
|
|
3437
3463
|
*/
|
|
@@ -3477,7 +3503,11 @@ const VDataTable = vue.defineComponent({
|
|
|
3477
3503
|
},
|
|
3478
3504
|
selectable: Boolean,
|
|
3479
3505
|
fixedHeader: Boolean,
|
|
3480
|
-
maxHeight: [Number, String]
|
|
3506
|
+
maxHeight: [Number, String],
|
|
3507
|
+
// eslint-disable-next-line vue/require-prop-types
|
|
3508
|
+
noDataMessage: {},
|
|
3509
|
+
// eslint-disable-next-line vue/require-prop-types
|
|
3510
|
+
noResultsMessage: {}
|
|
3481
3511
|
},
|
|
3482
3512
|
emits: {
|
|
3483
3513
|
input: selecteds => true
|
|
@@ -3506,6 +3536,46 @@ const VDataTable = vue.defineComponent({
|
|
|
3506
3536
|
ret.push(...headers.filter(h => !h.hidden));
|
|
3507
3537
|
return ret;
|
|
3508
3538
|
});
|
|
3539
|
+
const searchQueryValues = vue.computed(() => {
|
|
3540
|
+
let {
|
|
3541
|
+
searchQuery
|
|
3542
|
+
} = props;
|
|
3543
|
+
|
|
3544
|
+
if (!searchQuery) {
|
|
3545
|
+
return [];
|
|
3546
|
+
}
|
|
3547
|
+
|
|
3548
|
+
if (!Array.isArray(searchQuery)) {
|
|
3549
|
+
searchQuery = [searchQuery];
|
|
3550
|
+
}
|
|
3551
|
+
|
|
3552
|
+
const values = [];
|
|
3553
|
+
searchQuery.forEach(query => {
|
|
3554
|
+
const value = vui.location.getQuery(query);
|
|
3555
|
+
|
|
3556
|
+
if (value == null || value === '') {
|
|
3557
|
+
return;
|
|
3558
|
+
}
|
|
3559
|
+
|
|
3560
|
+
if (typeof value === 'object' && !Object.keys(value).length) {
|
|
3561
|
+
return;
|
|
3562
|
+
}
|
|
3563
|
+
|
|
3564
|
+
values.push(value);
|
|
3565
|
+
});
|
|
3566
|
+
return values;
|
|
3567
|
+
});
|
|
3568
|
+
const emptyMessage = vue.computed(() => {
|
|
3569
|
+
let message;
|
|
3570
|
+
|
|
3571
|
+
if (searchQueryValues.value.length) {
|
|
3572
|
+
message = props.noResultsMessage || vui.setting('noResultsMessage') || 'No search results found.'; // 検索結果が見つかりませんでした。
|
|
3573
|
+
} else {
|
|
3574
|
+
message = props.noDataMessage || vui.setting('noDataMessage') || 'No data was available.'; // データはありませんでした。
|
|
3575
|
+
}
|
|
3576
|
+
|
|
3577
|
+
return typeof message === 'function' ? message() : message;
|
|
3578
|
+
});
|
|
3509
3579
|
const classesRef = vue.computed(() => [{
|
|
3510
3580
|
'v-data-table--fixed-header': props.fixedHeader
|
|
3511
3581
|
}]);
|
|
@@ -3972,7 +4042,7 @@ const VDataTable = vue.defineComponent({
|
|
|
3972
4042
|
"class": "v-data-table__body container-pull"
|
|
3973
4043
|
}, [isEmpty ? vue.createVNode("div", {
|
|
3974
4044
|
"class": "v-data-table__empty--message"
|
|
3975
|
-
},
|
|
4045
|
+
}, [emptyMessage.value]) : vue.createVNode(VPaper, {
|
|
3976
4046
|
"class": "v-data-table__body__inner",
|
|
3977
4047
|
"style": bodyInnerStylesRef.value
|
|
3978
4048
|
}, {
|
|
@@ -4136,6 +4206,51 @@ const VToolbarTitle = vue.defineComponent({
|
|
|
4136
4206
|
|
|
4137
4207
|
const DEFAULT_AUTO_SCROLL_TO_ELEMENT_OFFSET_TOP = -20;
|
|
4138
4208
|
const DEFAULT_TEXTAREA_ROWS = 3;
|
|
4209
|
+
function mergeVuiServiceUISettings(base, overrides) {
|
|
4210
|
+
if (!overrides) {
|
|
4211
|
+
return base;
|
|
4212
|
+
}
|
|
4213
|
+
|
|
4214
|
+
const merged = { ...base
|
|
4215
|
+
};
|
|
4216
|
+
Object.entries(overrides).forEach(([key, value]) => {
|
|
4217
|
+
if (value) {
|
|
4218
|
+
merged[key] = value;
|
|
4219
|
+
}
|
|
4220
|
+
});
|
|
4221
|
+
return merged;
|
|
4222
|
+
}
|
|
4223
|
+
function mergeVuiServiceIconSettings(base, overrides) {
|
|
4224
|
+
if (!overrides) {
|
|
4225
|
+
return base;
|
|
4226
|
+
}
|
|
4227
|
+
|
|
4228
|
+
const merged = { ...base
|
|
4229
|
+
};
|
|
4230
|
+
Object.entries(overrides).forEach(([key, value]) => {
|
|
4231
|
+
if (value) {
|
|
4232
|
+
merged[key] = value;
|
|
4233
|
+
}
|
|
4234
|
+
});
|
|
4235
|
+
return merged;
|
|
4236
|
+
}
|
|
4237
|
+
function mergeVuiServiceOptions(base, overrides) {
|
|
4238
|
+
if (!overrides) {
|
|
4239
|
+
return base;
|
|
4240
|
+
}
|
|
4241
|
+
|
|
4242
|
+
const merged = { ...base,
|
|
4243
|
+
uiSettings: mergeVuiServiceUISettings(base.uiSettings, overrides.uiSettings),
|
|
4244
|
+
icons: mergeVuiServiceIconSettings(base.icons, overrides.icons)
|
|
4245
|
+
};
|
|
4246
|
+
const excludes = ['uiSettings', 'icons'];
|
|
4247
|
+
Object.entries(overrides).forEach(([key, value]) => {
|
|
4248
|
+
if (value && !excludes.includes(key)) {
|
|
4249
|
+
merged[key] = value;
|
|
4250
|
+
}
|
|
4251
|
+
});
|
|
4252
|
+
return merged;
|
|
4253
|
+
}
|
|
4139
4254
|
class VuiService {
|
|
4140
4255
|
get scroller() {
|
|
4141
4256
|
return vueScroller.getDocumentScroller();
|
|
@@ -4272,6 +4387,18 @@ class VuiService {
|
|
|
4272
4387
|
|
|
4273
4388
|
}
|
|
4274
4389
|
|
|
4390
|
+
function mergeVuiPluginOptions(base, override) {
|
|
4391
|
+
if (!override) return base;
|
|
4392
|
+
const merged = mergeVuiServiceOptions(base, override);
|
|
4393
|
+
|
|
4394
|
+
if (override.stack) {
|
|
4395
|
+
merged.stack = { ...merged.stack,
|
|
4396
|
+
...override.stack
|
|
4397
|
+
};
|
|
4398
|
+
}
|
|
4399
|
+
|
|
4400
|
+
return merged;
|
|
4401
|
+
}
|
|
4275
4402
|
class VuiPlugin {
|
|
4276
4403
|
static installedApps = new Set();
|
|
4277
4404
|
|
|
@@ -4415,6 +4542,10 @@ exports.defineFormSelectorComponent = defineFormSelectorComponent;
|
|
|
4415
4542
|
exports.iconProps = iconProps;
|
|
4416
4543
|
exports.installVuiPlugin = installVuiPlugin;
|
|
4417
4544
|
exports.listTileEmits = listTileEmits;
|
|
4545
|
+
exports.mergeVuiPluginOptions = mergeVuiPluginOptions;
|
|
4546
|
+
exports.mergeVuiServiceIconSettings = mergeVuiServiceIconSettings;
|
|
4547
|
+
exports.mergeVuiServiceOptions = mergeVuiServiceOptions;
|
|
4548
|
+
exports.mergeVuiServiceUISettings = mergeVuiServiceUISettings;
|
|
4418
4549
|
exports.paginationProps = paginationProps;
|
|
4419
4550
|
exports.rawIconProp = rawIconProp;
|
|
4420
4551
|
exports.renderNavigationItemInput = renderNavigationItemInput;
|
package/dist/vui.d.ts
CHANGED
|
@@ -19,6 +19,9 @@ import { FocusPosition } from '@tiptap/vue-3';
|
|
|
19
19
|
import { FormAction } from '@fastkit/vue-kit';
|
|
20
20
|
import { FormAutoCapitalize } from '@fastkit/vue-kit';
|
|
21
21
|
import { FormControl } from '@fastkit/vue-kit';
|
|
22
|
+
import { FormControlHinttip } from '@fastkit/vue-kit';
|
|
23
|
+
import { FormControlHinttipDelay } from '@fastkit/vue-kit';
|
|
24
|
+
import { FormControlHinttipDelay as FormControlHinttipDelay_2 } from '@fastkit/vue-form-control';
|
|
22
25
|
import { FormControlSlots } from '@fastkit/vue-kit';
|
|
23
26
|
import { FormNodeControl } from '@fastkit/vue-kit';
|
|
24
27
|
import { FormNodeError } from '@fastkit/vue-kit';
|
|
@@ -829,7 +832,8 @@ declare function createTextFieldProps(): {
|
|
|
829
832
|
nodeControl: PropType<FormNodeControl<any, any>>;
|
|
830
833
|
label: PropType<VNodeChildOrSlot<any>>;
|
|
831
834
|
hint: PropType<VNodeChildOrSlot<any>>;
|
|
832
|
-
hinttip: PropType<
|
|
835
|
+
hinttip: PropType<FormControlHinttip>;
|
|
836
|
+
hinttipDelay: PropType<FormControlHinttipDelay>;
|
|
833
837
|
infoAppends: PropType<VNodeChildOrSlot<any>>;
|
|
834
838
|
validating: BooleanConstructor;
|
|
835
839
|
pending: BooleanConstructor;
|
|
@@ -897,6 +901,7 @@ declare const DATA_TABLE_DEFAULTS: {
|
|
|
897
901
|
limits: number[];
|
|
898
902
|
limitDefault: number;
|
|
899
903
|
contorolThreshold: number;
|
|
904
|
+
searchQuery: never[];
|
|
900
905
|
};
|
|
901
906
|
|
|
902
907
|
export declare interface DataTableCellSlotPayload<T extends DataTableItem = DataTableItem> {
|
|
@@ -947,7 +952,8 @@ export declare function defineFormSelectorComponent(opts: DefineFormSelectorComp
|
|
|
947
952
|
nodeControl: PropType<FormNodeControl<any, any>>;
|
|
948
953
|
label: PropType<VNodeChildOrSlot<any>>;
|
|
949
954
|
hint: PropType<VNodeChildOrSlot<any>>;
|
|
950
|
-
hinttip: PropType<
|
|
955
|
+
hinttip: PropType<FormControlHinttip>;
|
|
956
|
+
hinttipDelay: PropType<FormControlHinttipDelay>;
|
|
951
957
|
infoAppends: PropType<VNodeChildOrSlot<any>>;
|
|
952
958
|
validating: BooleanConstructor;
|
|
953
959
|
pending: BooleanConstructor;
|
|
@@ -1061,6 +1067,7 @@ export declare function defineFormSelectorComponent(opts: DefineFormSelectorComp
|
|
|
1061
1067
|
label?: unknown;
|
|
1062
1068
|
hint?: unknown;
|
|
1063
1069
|
hinttip?: unknown;
|
|
1070
|
+
hinttipDelay?: unknown;
|
|
1064
1071
|
infoAppends?: unknown;
|
|
1065
1072
|
validating?: unknown;
|
|
1066
1073
|
pending?: unknown;
|
|
@@ -1123,7 +1130,8 @@ export declare function defineFormSelectorComponent(opts: DefineFormSelectorComp
|
|
|
1123
1130
|
nodeControl?: FormNodeControl<any, any> | undefined;
|
|
1124
1131
|
label?: VNodeChildOrSlot<any>;
|
|
1125
1132
|
hint?: VNodeChildOrSlot<any>;
|
|
1126
|
-
hinttip?:
|
|
1133
|
+
hinttip?: FormControlHinttip | undefined;
|
|
1134
|
+
hinttipDelay?: FormControlHinttipDelay | undefined;
|
|
1127
1135
|
infoAppends?: VNodeChildOrSlot<any>;
|
|
1128
1136
|
requiredChip?: RequiredChipSource | undefined;
|
|
1129
1137
|
size?: "sm" | "md" | "lg" | undefined;
|
|
@@ -1241,6 +1249,14 @@ export declare const listTileEmits: {
|
|
|
1241
1249
|
changeActive: (isActive: boolean) => boolean;
|
|
1242
1250
|
};
|
|
1243
1251
|
|
|
1252
|
+
export declare function mergeVuiPluginOptions(base: VuiPluginOptions, override?: RawVuiPluginOptions): VuiPluginOptions;
|
|
1253
|
+
|
|
1254
|
+
export declare function mergeVuiServiceIconSettings(base: VuiServiceIconSettings, overrides?: RawVuiServiceIconSettings): VuiServiceIconSettings;
|
|
1255
|
+
|
|
1256
|
+
export declare function mergeVuiServiceOptions(base: VuiServiceOptions, overrides?: RawVuiServiceOptions): VuiServiceOptions;
|
|
1257
|
+
|
|
1258
|
+
export declare function mergeVuiServiceUISettings(base: VuiServiceUISettings, overrides?: RawVuiServiceUISettings): VuiServiceUISettings;
|
|
1259
|
+
|
|
1244
1260
|
export declare interface NavigationItemInput extends ExtractPropInput<ReturnType<typeof createNavigationItemProps>> {
|
|
1245
1261
|
key: string | number;
|
|
1246
1262
|
label: VNodeChild | (() => VNodeChild);
|
|
@@ -1299,8 +1315,21 @@ export declare type RawVButtonIcon = IconName | VButtonIcon;
|
|
|
1299
1315
|
|
|
1300
1316
|
export declare type RawVButtonSpacer = boolean | VButtonSpacer;
|
|
1301
1317
|
|
|
1318
|
+
export declare interface RawVuiPluginOptions extends RawVuiServiceOptions {
|
|
1319
|
+
stack?: VuiPluginStackOptions;
|
|
1320
|
+
}
|
|
1321
|
+
|
|
1302
1322
|
export declare type RawVuiPromptOptions = string | VuiPromptOptions;
|
|
1303
1323
|
|
|
1324
|
+
export declare type RawVuiServiceIconSettings = Partial<VuiServiceIconSettings>;
|
|
1325
|
+
|
|
1326
|
+
export declare interface RawVuiServiceOptions extends Omit<Partial<VuiServiceOptions>, 'uiSettings' | 'icons'> {
|
|
1327
|
+
uiSettings?: RawVuiServiceUISettings;
|
|
1328
|
+
icons?: RawVuiServiceIconSettings;
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
export declare type RawVuiServiceUISettings = Partial<VuiServiceUISettings>;
|
|
1332
|
+
|
|
1304
1333
|
declare type RawWysiwygEditorTool = WysiwygEditorTool | WysiwygEditorToolFactory<any>;
|
|
1305
1334
|
|
|
1306
1335
|
declare type RecursiveArray<T> = T | RecursiveArray<T>[];
|
|
@@ -3594,7 +3623,8 @@ export declare const VCheckboxGroup: DefineComponent<{
|
|
|
3594
3623
|
nodeControl: PropType<FormNodeControl<any, any>>;
|
|
3595
3624
|
label: PropType<VNodeChildOrSlot<any>>;
|
|
3596
3625
|
hint: PropType<VNodeChildOrSlot<any>>;
|
|
3597
|
-
hinttip: PropType<
|
|
3626
|
+
hinttip: PropType<FormControlHinttip>;
|
|
3627
|
+
hinttipDelay: PropType<FormControlHinttipDelay>;
|
|
3598
3628
|
infoAppends: PropType<VNodeChildOrSlot<any>>;
|
|
3599
3629
|
validating: BooleanConstructor;
|
|
3600
3630
|
pending: BooleanConstructor;
|
|
@@ -3708,6 +3738,7 @@ export declare const VCheckboxGroup: DefineComponent<{
|
|
|
3708
3738
|
label?: unknown;
|
|
3709
3739
|
hint?: unknown;
|
|
3710
3740
|
hinttip?: unknown;
|
|
3741
|
+
hinttipDelay?: unknown;
|
|
3711
3742
|
infoAppends?: unknown;
|
|
3712
3743
|
validating?: unknown;
|
|
3713
3744
|
pending?: unknown;
|
|
@@ -3770,7 +3801,8 @@ export declare const VCheckboxGroup: DefineComponent<{
|
|
|
3770
3801
|
nodeControl?: FormNodeControl<any, any> | undefined;
|
|
3771
3802
|
label?: VNodeChildOrSlot<any>;
|
|
3772
3803
|
hint?: VNodeChildOrSlot<any>;
|
|
3773
|
-
hinttip?:
|
|
3804
|
+
hinttip?: FormControlHinttip | undefined;
|
|
3805
|
+
hinttipDelay?: FormControlHinttipDelay | undefined;
|
|
3774
3806
|
infoAppends?: VNodeChildOrSlot<any>;
|
|
3775
3807
|
requiredChip?: RequiredChipSource | undefined;
|
|
3776
3808
|
size?: "sm" | "md" | "lg" | undefined;
|
|
@@ -3864,6 +3896,13 @@ export declare const VDataTable: DefineComponent<{
|
|
|
3864
3896
|
type: StringConstructor;
|
|
3865
3897
|
default: () => string;
|
|
3866
3898
|
};
|
|
3899
|
+
/**
|
|
3900
|
+
* 検索クエリ名
|
|
3901
|
+
*/
|
|
3902
|
+
searchQuery: {
|
|
3903
|
+
type: PropType<string | string[]>;
|
|
3904
|
+
default: () => never[];
|
|
3905
|
+
};
|
|
3867
3906
|
/**
|
|
3868
3907
|
* リミット件数クエリ名
|
|
3869
3908
|
*/
|
|
@@ -3910,6 +3949,8 @@ export declare const VDataTable: DefineComponent<{
|
|
|
3910
3949
|
selectable: BooleanConstructor;
|
|
3911
3950
|
fixedHeader: BooleanConstructor;
|
|
3912
3951
|
maxHeight: (StringConstructor | NumberConstructor)[];
|
|
3952
|
+
noDataMessage: PropType<VNodeChild | (() => VNodeChild)>;
|
|
3953
|
+
noResultsMessage: PropType<VNodeChild | (() => VNodeChild)>;
|
|
3913
3954
|
}, () => JSX.Element, unknown, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
3914
3955
|
input: (selecteds: string[]) => true;
|
|
3915
3956
|
}, string, VNodeProps & AllowedComponentProps & ComponentCustomProps, Readonly<{
|
|
@@ -3918,6 +3959,7 @@ export declare const VDataTable: DefineComponent<{
|
|
|
3918
3959
|
pageQuery?: unknown;
|
|
3919
3960
|
sortQuery?: unknown;
|
|
3920
3961
|
orderQuery?: unknown;
|
|
3962
|
+
searchQuery?: unknown;
|
|
3921
3963
|
limitQuery?: unknown;
|
|
3922
3964
|
defaultOrder?: unknown;
|
|
3923
3965
|
ascQueryValue?: unknown;
|
|
@@ -3931,6 +3973,8 @@ export declare const VDataTable: DefineComponent<{
|
|
|
3931
3973
|
selectable?: unknown;
|
|
3932
3974
|
fixedHeader?: unknown;
|
|
3933
3975
|
maxHeight?: unknown;
|
|
3976
|
+
noDataMessage?: unknown;
|
|
3977
|
+
noResultsMessage?: unknown;
|
|
3934
3978
|
} & {
|
|
3935
3979
|
itemKey: string;
|
|
3936
3980
|
pageQuery: string;
|
|
@@ -3943,6 +3987,7 @@ export declare const VDataTable: DefineComponent<{
|
|
|
3943
3987
|
limits: number[];
|
|
3944
3988
|
limitDefault: number;
|
|
3945
3989
|
contorolThreshold: number;
|
|
3990
|
+
searchQuery: string | string[];
|
|
3946
3991
|
modelValue: string[];
|
|
3947
3992
|
headers: DataTableHeader[];
|
|
3948
3993
|
items: DataTableItem[];
|
|
@@ -3951,6 +3996,8 @@ export declare const VDataTable: DefineComponent<{
|
|
|
3951
3996
|
fixedHeader: boolean;
|
|
3952
3997
|
} & {
|
|
3953
3998
|
maxHeight?: string | number | undefined;
|
|
3999
|
+
noDataMessage?: VNodeChild | (() => VNodeChild);
|
|
4000
|
+
noResultsMessage?: VNodeChild | (() => VNodeChild);
|
|
3954
4001
|
}> & {
|
|
3955
4002
|
onInput?: ((selecteds: string[]) => any) | undefined;
|
|
3956
4003
|
}, {
|
|
@@ -3965,6 +4012,7 @@ export declare const VDataTable: DefineComponent<{
|
|
|
3965
4012
|
limits: number[];
|
|
3966
4013
|
limitDefault: number;
|
|
3967
4014
|
contorolThreshold: number;
|
|
4015
|
+
searchQuery: string | string[];
|
|
3968
4016
|
modelValue: string[];
|
|
3969
4017
|
items: DataTableItem[];
|
|
3970
4018
|
total: number;
|
|
@@ -4671,7 +4719,8 @@ export declare const VFormControl: DefineComponent<{
|
|
|
4671
4719
|
nodeControl: PropType<FormNodeControl<any, any>>;
|
|
4672
4720
|
label: PropType<VNodeChildOrSlot<any>>;
|
|
4673
4721
|
hint: PropType<VNodeChildOrSlot<any>>;
|
|
4674
|
-
hinttip: PropType<
|
|
4722
|
+
hinttip: PropType<FormControlHinttip>;
|
|
4723
|
+
hinttipDelay: PropType<FormControlHinttipDelay>;
|
|
4675
4724
|
infoAppends: PropType<VNodeChildOrSlot<any>>;
|
|
4676
4725
|
validating: BooleanConstructor;
|
|
4677
4726
|
pending: BooleanConstructor;
|
|
@@ -4699,6 +4748,7 @@ export declare const VFormControl: DefineComponent<{
|
|
|
4699
4748
|
label?: unknown;
|
|
4700
4749
|
hint?: unknown;
|
|
4701
4750
|
hinttip?: unknown;
|
|
4751
|
+
hinttipDelay?: unknown;
|
|
4702
4752
|
infoAppends?: unknown;
|
|
4703
4753
|
validating?: unknown;
|
|
4704
4754
|
pending?: unknown;
|
|
@@ -4734,7 +4784,8 @@ export declare const VFormControl: DefineComponent<{
|
|
|
4734
4784
|
nodeControl?: FormNodeControl<any, any> | undefined;
|
|
4735
4785
|
label?: VNodeChildOrSlot<any>;
|
|
4736
4786
|
hint?: VNodeChildOrSlot<any>;
|
|
4737
|
-
hinttip?:
|
|
4787
|
+
hinttip?: FormControlHinttip | undefined;
|
|
4788
|
+
hinttipDelay?: FormControlHinttipDelay | undefined;
|
|
4738
4789
|
infoAppends?: VNodeChildOrSlot<any>;
|
|
4739
4790
|
requiredChip?: RequiredChipSource | undefined;
|
|
4740
4791
|
"v-slots"?: ResolveRawSlots<FormControlSlots & {
|
|
@@ -7616,7 +7667,8 @@ export declare const VRadioGroup: DefineComponent<{
|
|
|
7616
7667
|
nodeControl: PropType<FormNodeControl<any, any>>;
|
|
7617
7668
|
label: PropType<VNodeChildOrSlot<any>>;
|
|
7618
7669
|
hint: PropType<VNodeChildOrSlot<any>>;
|
|
7619
|
-
hinttip: PropType<
|
|
7670
|
+
hinttip: PropType<FormControlHinttip>;
|
|
7671
|
+
hinttipDelay: PropType<FormControlHinttipDelay>;
|
|
7620
7672
|
infoAppends: PropType<VNodeChildOrSlot<any>>;
|
|
7621
7673
|
validating: BooleanConstructor;
|
|
7622
7674
|
pending: BooleanConstructor;
|
|
@@ -7730,6 +7782,7 @@ export declare const VRadioGroup: DefineComponent<{
|
|
|
7730
7782
|
label?: unknown;
|
|
7731
7783
|
hint?: unknown;
|
|
7732
7784
|
hinttip?: unknown;
|
|
7785
|
+
hinttipDelay?: unknown;
|
|
7733
7786
|
infoAppends?: unknown;
|
|
7734
7787
|
validating?: unknown;
|
|
7735
7788
|
pending?: unknown;
|
|
@@ -7792,7 +7845,8 @@ export declare const VRadioGroup: DefineComponent<{
|
|
|
7792
7845
|
nodeControl?: FormNodeControl<any, any> | undefined;
|
|
7793
7846
|
label?: VNodeChildOrSlot<any>;
|
|
7794
7847
|
hint?: VNodeChildOrSlot<any>;
|
|
7795
|
-
hinttip?:
|
|
7848
|
+
hinttip?: FormControlHinttip | undefined;
|
|
7849
|
+
hinttipDelay?: FormControlHinttipDelay | undefined;
|
|
7796
7850
|
infoAppends?: VNodeChildOrSlot<any>;
|
|
7797
7851
|
requiredChip?: RequiredChipSource | undefined;
|
|
7798
7852
|
size?: "sm" | "md" | "lg" | undefined;
|
|
@@ -7851,7 +7905,8 @@ export declare const VSelect: DefineComponent<{
|
|
|
7851
7905
|
nodeControl: PropType<FormNodeControl<any, any>>;
|
|
7852
7906
|
label: PropType<VNodeChildOrSlot<any>>;
|
|
7853
7907
|
hint: PropType<VNodeChildOrSlot<any>>;
|
|
7854
|
-
hinttip: PropType<
|
|
7908
|
+
hinttip: PropType<FormControlHinttip>;
|
|
7909
|
+
hinttipDelay: PropType<FormControlHinttipDelay>;
|
|
7855
7910
|
infoAppends: PropType<VNodeChildOrSlot<any>>;
|
|
7856
7911
|
validating: BooleanConstructor;
|
|
7857
7912
|
pending: BooleanConstructor;
|
|
@@ -7971,6 +8026,7 @@ export declare const VSelect: DefineComponent<{
|
|
|
7971
8026
|
label?: unknown;
|
|
7972
8027
|
hint?: unknown;
|
|
7973
8028
|
hinttip?: unknown;
|
|
8029
|
+
hinttipDelay?: unknown;
|
|
7974
8030
|
infoAppends?: unknown;
|
|
7975
8031
|
validating?: unknown;
|
|
7976
8032
|
pending?: unknown;
|
|
@@ -8031,7 +8087,8 @@ export declare const VSelect: DefineComponent<{
|
|
|
8031
8087
|
nodeControl?: FormNodeControl<any, any> | undefined;
|
|
8032
8088
|
label?: VNodeChildOrSlot<any>;
|
|
8033
8089
|
hint?: VNodeChildOrSlot<any>;
|
|
8034
|
-
hinttip?:
|
|
8090
|
+
hinttip?: FormControlHinttip | undefined;
|
|
8091
|
+
hinttipDelay?: FormControlHinttipDelay | undefined;
|
|
8035
8092
|
infoAppends?: VNodeChildOrSlot<any>;
|
|
8036
8093
|
requiredChip?: RequiredChipSource | undefined;
|
|
8037
8094
|
startAdornment?: VNodeChildOrSlot<any>;
|
|
@@ -8223,7 +8280,8 @@ export declare const VSwitchGroup: DefineComponent<{
|
|
|
8223
8280
|
nodeControl: PropType<FormNodeControl<any, any>>;
|
|
8224
8281
|
label: PropType<VNodeChildOrSlot<any>>;
|
|
8225
8282
|
hint: PropType<VNodeChildOrSlot<any>>;
|
|
8226
|
-
hinttip: PropType<
|
|
8283
|
+
hinttip: PropType<FormControlHinttip>;
|
|
8284
|
+
hinttipDelay: PropType<FormControlHinttipDelay>;
|
|
8227
8285
|
infoAppends: PropType<VNodeChildOrSlot<any>>;
|
|
8228
8286
|
validating: BooleanConstructor;
|
|
8229
8287
|
pending: BooleanConstructor;
|
|
@@ -8337,6 +8395,7 @@ export declare const VSwitchGroup: DefineComponent<{
|
|
|
8337
8395
|
label?: unknown;
|
|
8338
8396
|
hint?: unknown;
|
|
8339
8397
|
hinttip?: unknown;
|
|
8398
|
+
hinttipDelay?: unknown;
|
|
8340
8399
|
infoAppends?: unknown;
|
|
8341
8400
|
validating?: unknown;
|
|
8342
8401
|
pending?: unknown;
|
|
@@ -8399,7 +8458,8 @@ export declare const VSwitchGroup: DefineComponent<{
|
|
|
8399
8458
|
nodeControl?: FormNodeControl<any, any> | undefined;
|
|
8400
8459
|
label?: VNodeChildOrSlot<any>;
|
|
8401
8460
|
hint?: VNodeChildOrSlot<any>;
|
|
8402
|
-
hinttip?:
|
|
8461
|
+
hinttip?: FormControlHinttip | undefined;
|
|
8462
|
+
hinttipDelay?: FormControlHinttipDelay | undefined;
|
|
8403
8463
|
infoAppends?: VNodeChildOrSlot<any>;
|
|
8404
8464
|
requiredChip?: RequiredChipSource | undefined;
|
|
8405
8465
|
size?: "sm" | "md" | "lg" | undefined;
|
|
@@ -8529,7 +8589,8 @@ export declare const VTextarea: DefineComponent<{
|
|
|
8529
8589
|
nodeControl: PropType<FormNodeControl<any, any>>;
|
|
8530
8590
|
label: PropType<VNodeChildOrSlot<any>>;
|
|
8531
8591
|
hint: PropType<VNodeChildOrSlot<any>>;
|
|
8532
|
-
hinttip: PropType<
|
|
8592
|
+
hinttip: PropType<FormControlHinttip>;
|
|
8593
|
+
hinttipDelay: PropType<FormControlHinttipDelay>;
|
|
8533
8594
|
infoAppends: PropType<VNodeChildOrSlot<any>>;
|
|
8534
8595
|
validating: BooleanConstructor;
|
|
8535
8596
|
pending: BooleanConstructor;
|
|
@@ -8648,6 +8709,7 @@ export declare const VTextarea: DefineComponent<{
|
|
|
8648
8709
|
label?: unknown;
|
|
8649
8710
|
hint?: unknown;
|
|
8650
8711
|
hinttip?: unknown;
|
|
8712
|
+
hinttipDelay?: unknown;
|
|
8651
8713
|
infoAppends?: unknown;
|
|
8652
8714
|
validating?: unknown;
|
|
8653
8715
|
pending?: unknown;
|
|
@@ -8729,7 +8791,8 @@ export declare const VTextarea: DefineComponent<{
|
|
|
8729
8791
|
nodeControl?: FormNodeControl<any, any> | undefined;
|
|
8730
8792
|
label?: VNodeChildOrSlot<any>;
|
|
8731
8793
|
hint?: VNodeChildOrSlot<any>;
|
|
8732
|
-
hinttip?:
|
|
8794
|
+
hinttip?: FormControlHinttip | undefined;
|
|
8795
|
+
hinttipDelay?: FormControlHinttipDelay | undefined;
|
|
8733
8796
|
infoAppends?: VNodeChildOrSlot<any>;
|
|
8734
8797
|
requiredChip?: RequiredChipSource | undefined;
|
|
8735
8798
|
startAdornment?: VNodeChildOrSlot<any>;
|
|
@@ -8790,7 +8853,8 @@ export declare const VTextField: DefineComponent<{
|
|
|
8790
8853
|
nodeControl: PropType<FormNodeControl<any, any>>;
|
|
8791
8854
|
label: PropType<VNodeChildOrSlot<any>>;
|
|
8792
8855
|
hint: PropType<VNodeChildOrSlot<any>>;
|
|
8793
|
-
hinttip: PropType<
|
|
8856
|
+
hinttip: PropType<FormControlHinttip>;
|
|
8857
|
+
hinttipDelay: PropType<FormControlHinttipDelay>;
|
|
8794
8858
|
infoAppends: PropType<VNodeChildOrSlot<any>>;
|
|
8795
8859
|
validating: BooleanConstructor;
|
|
8796
8860
|
pending: BooleanConstructor;
|
|
@@ -8913,6 +8977,7 @@ export declare const VTextField: DefineComponent<{
|
|
|
8913
8977
|
label?: unknown;
|
|
8914
8978
|
hint?: unknown;
|
|
8915
8979
|
hinttip?: unknown;
|
|
8980
|
+
hinttipDelay?: unknown;
|
|
8916
8981
|
infoAppends?: unknown;
|
|
8917
8982
|
validating?: unknown;
|
|
8918
8983
|
pending?: unknown;
|
|
@@ -8998,7 +9063,8 @@ export declare const VTextField: DefineComponent<{
|
|
|
8998
9063
|
nodeControl?: FormNodeControl<any, any> | undefined;
|
|
8999
9064
|
label?: VNodeChildOrSlot<any>;
|
|
9000
9065
|
hint?: VNodeChildOrSlot<any>;
|
|
9001
|
-
hinttip?:
|
|
9066
|
+
hinttip?: FormControlHinttip | undefined;
|
|
9067
|
+
hinttipDelay?: FormControlHinttipDelay | undefined;
|
|
9002
9068
|
infoAppends?: VNodeChildOrSlot<any>;
|
|
9003
9069
|
requiredChip?: RequiredChipSource | undefined;
|
|
9004
9070
|
startAdornment?: VNodeChildOrSlot<any>;
|
|
@@ -10138,6 +10204,9 @@ export declare interface VuiServiceUISettings {
|
|
|
10138
10204
|
color?: ScopeName;
|
|
10139
10205
|
variant?: ColorVariant;
|
|
10140
10206
|
};
|
|
10207
|
+
hinttipDelay?: FormControlHinttipDelay_2;
|
|
10208
|
+
noDataMessage?: VNodeChild | (() => VNodeChild);
|
|
10209
|
+
noResultsMessage?: VNodeChild | (() => VNodeChild);
|
|
10141
10210
|
}
|
|
10142
10211
|
|
|
10143
10212
|
export declare type VuiVNodeResolver = () => VNodeChild;
|
|
@@ -10168,7 +10237,8 @@ export declare const VWysiwygEditor: DefineComponent<{
|
|
|
10168
10237
|
nodeControl: PropType<FormNodeControl<any, any>>;
|
|
10169
10238
|
label: PropType<VNodeChildOrSlot<any>>;
|
|
10170
10239
|
hint: PropType<VNodeChildOrSlot<any>>;
|
|
10171
|
-
hinttip: PropType<
|
|
10240
|
+
hinttip: PropType<FormControlHinttip>;
|
|
10241
|
+
hinttipDelay: PropType<FormControlHinttipDelay>;
|
|
10172
10242
|
infoAppends: PropType<VNodeChildOrSlot<any>>;
|
|
10173
10243
|
validating: BooleanConstructor;
|
|
10174
10244
|
pending: BooleanConstructor;
|
|
@@ -10282,6 +10352,7 @@ export declare const VWysiwygEditor: DefineComponent<{
|
|
|
10282
10352
|
label?: unknown;
|
|
10283
10353
|
hint?: unknown;
|
|
10284
10354
|
hinttip?: unknown;
|
|
10355
|
+
hinttipDelay?: unknown;
|
|
10285
10356
|
infoAppends?: unknown;
|
|
10286
10357
|
validating?: unknown;
|
|
10287
10358
|
pending?: unknown;
|
|
@@ -10362,7 +10433,8 @@ export declare const VWysiwygEditor: DefineComponent<{
|
|
|
10362
10433
|
nodeControl?: FormNodeControl<any, any> | undefined;
|
|
10363
10434
|
label?: VNodeChildOrSlot<any>;
|
|
10364
10435
|
hint?: VNodeChildOrSlot<any>;
|
|
10365
|
-
hinttip?:
|
|
10436
|
+
hinttip?: FormControlHinttip | undefined;
|
|
10437
|
+
hinttipDelay?: FormControlHinttipDelay | undefined;
|
|
10366
10438
|
infoAppends?: VNodeChildOrSlot<any>;
|
|
10367
10439
|
requiredChip?: RequiredChipSource | undefined;
|
|
10368
10440
|
startAdornment?: VNodeChildOrSlot<any>;
|
package/dist/vui.mjs
CHANGED
|
@@ -242,6 +242,21 @@ const VFormControl = defineComponent({
|
|
|
242
242
|
"name": vui.icon('hinttip')
|
|
243
243
|
}, null)
|
|
244
244
|
});
|
|
245
|
+
const hinttipDelay = computed(() => {
|
|
246
|
+
let {
|
|
247
|
+
hinttipDelay
|
|
248
|
+
} = control;
|
|
249
|
+
|
|
250
|
+
if (hinttipDelay == null) {
|
|
251
|
+
hinttipDelay = vui.setting('hinttipDelay');
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
if (hinttipDelay == null) {
|
|
255
|
+
hinttipDelay = 500;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
return hinttipDelay;
|
|
259
|
+
});
|
|
245
260
|
ctx.expose(control.expose());
|
|
246
261
|
const colorProvider = useVuiColorProvider();
|
|
247
262
|
const classes = computed(() => [{
|
|
@@ -263,6 +278,7 @@ const VFormControl = defineComponent({
|
|
|
263
278
|
const message = control.renderMessage();
|
|
264
279
|
const appends = control.renderInfoAppends();
|
|
265
280
|
const hinttip = control.renderHinttip();
|
|
281
|
+
const _hinttipDelay = hinttipDelay.value;
|
|
266
282
|
return createVNode("div", {
|
|
267
283
|
"class": ['v-form-control', classes.value]
|
|
268
284
|
}, [label && createVNode("label", {
|
|
@@ -272,7 +288,8 @@ const VFormControl = defineComponent({
|
|
|
272
288
|
}
|
|
273
289
|
}, [label, getRequiredChip(), hinttip && createVNode(VTooltip, {
|
|
274
290
|
"top": true,
|
|
275
|
-
"openOnHover":
|
|
291
|
+
"openOnHover": _hinttipDelay !== 'click',
|
|
292
|
+
"openDelay": typeof _hinttipDelay === 'number' ? _hinttipDelay : undefined
|
|
276
293
|
}, {
|
|
277
294
|
default: () => [createVNode("div", {
|
|
278
295
|
"class": "v-form-control__label__hinttip__hint"
|
|
@@ -3380,7 +3397,8 @@ const DATA_TABLE_DEFAULTS = {
|
|
|
3380
3397
|
descQueryValue: 'DESC',
|
|
3381
3398
|
limits: [5, 10, 20, 50, 100],
|
|
3382
3399
|
limitDefault: 20,
|
|
3383
|
-
contorolThreshold: 10
|
|
3400
|
+
contorolThreshold: 10,
|
|
3401
|
+
searchQuery: []
|
|
3384
3402
|
};
|
|
3385
3403
|
function configureDataTableDefaults(defaults) {
|
|
3386
3404
|
Object.assign(DATA_TABLE_DEFAULTS, defaults);
|
|
@@ -3427,6 +3445,14 @@ const VDataTable = defineComponent({
|
|
|
3427
3445
|
default: () => DATA_TABLE_DEFAULTS.orderQuery
|
|
3428
3446
|
},
|
|
3429
3447
|
|
|
3448
|
+
/**
|
|
3449
|
+
* 検索クエリ名
|
|
3450
|
+
*/
|
|
3451
|
+
searchQuery: {
|
|
3452
|
+
type: [String, Array],
|
|
3453
|
+
default: () => DATA_TABLE_DEFAULTS.searchQuery
|
|
3454
|
+
},
|
|
3455
|
+
|
|
3430
3456
|
/**
|
|
3431
3457
|
* リミット件数クエリ名
|
|
3432
3458
|
*/
|
|
@@ -3472,7 +3498,11 @@ const VDataTable = defineComponent({
|
|
|
3472
3498
|
},
|
|
3473
3499
|
selectable: Boolean,
|
|
3474
3500
|
fixedHeader: Boolean,
|
|
3475
|
-
maxHeight: [Number, String]
|
|
3501
|
+
maxHeight: [Number, String],
|
|
3502
|
+
// eslint-disable-next-line vue/require-prop-types
|
|
3503
|
+
noDataMessage: {},
|
|
3504
|
+
// eslint-disable-next-line vue/require-prop-types
|
|
3505
|
+
noResultsMessage: {}
|
|
3476
3506
|
},
|
|
3477
3507
|
emits: {
|
|
3478
3508
|
input: selecteds => true
|
|
@@ -3501,6 +3531,46 @@ const VDataTable = defineComponent({
|
|
|
3501
3531
|
ret.push(...headers.filter(h => !h.hidden));
|
|
3502
3532
|
return ret;
|
|
3503
3533
|
});
|
|
3534
|
+
const searchQueryValues = computed(() => {
|
|
3535
|
+
let {
|
|
3536
|
+
searchQuery
|
|
3537
|
+
} = props;
|
|
3538
|
+
|
|
3539
|
+
if (!searchQuery) {
|
|
3540
|
+
return [];
|
|
3541
|
+
}
|
|
3542
|
+
|
|
3543
|
+
if (!Array.isArray(searchQuery)) {
|
|
3544
|
+
searchQuery = [searchQuery];
|
|
3545
|
+
}
|
|
3546
|
+
|
|
3547
|
+
const values = [];
|
|
3548
|
+
searchQuery.forEach(query => {
|
|
3549
|
+
const value = vui.location.getQuery(query);
|
|
3550
|
+
|
|
3551
|
+
if (value == null || value === '') {
|
|
3552
|
+
return;
|
|
3553
|
+
}
|
|
3554
|
+
|
|
3555
|
+
if (typeof value === 'object' && !Object.keys(value).length) {
|
|
3556
|
+
return;
|
|
3557
|
+
}
|
|
3558
|
+
|
|
3559
|
+
values.push(value);
|
|
3560
|
+
});
|
|
3561
|
+
return values;
|
|
3562
|
+
});
|
|
3563
|
+
const emptyMessage = computed(() => {
|
|
3564
|
+
let message;
|
|
3565
|
+
|
|
3566
|
+
if (searchQueryValues.value.length) {
|
|
3567
|
+
message = props.noResultsMessage || vui.setting('noResultsMessage') || 'No search results found.'; // 検索結果が見つかりませんでした。
|
|
3568
|
+
} else {
|
|
3569
|
+
message = props.noDataMessage || vui.setting('noDataMessage') || 'No data was available.'; // データはありませんでした。
|
|
3570
|
+
}
|
|
3571
|
+
|
|
3572
|
+
return typeof message === 'function' ? message() : message;
|
|
3573
|
+
});
|
|
3504
3574
|
const classesRef = computed(() => [{
|
|
3505
3575
|
'v-data-table--fixed-header': props.fixedHeader
|
|
3506
3576
|
}]);
|
|
@@ -3967,7 +4037,7 @@ const VDataTable = defineComponent({
|
|
|
3967
4037
|
"class": "v-data-table__body container-pull"
|
|
3968
4038
|
}, [isEmpty ? createVNode("div", {
|
|
3969
4039
|
"class": "v-data-table__empty--message"
|
|
3970
|
-
},
|
|
4040
|
+
}, [emptyMessage.value]) : createVNode(VPaper, {
|
|
3971
4041
|
"class": "v-data-table__body__inner",
|
|
3972
4042
|
"style": bodyInnerStylesRef.value
|
|
3973
4043
|
}, {
|
|
@@ -4131,6 +4201,51 @@ const VToolbarTitle = defineComponent({
|
|
|
4131
4201
|
|
|
4132
4202
|
const DEFAULT_AUTO_SCROLL_TO_ELEMENT_OFFSET_TOP = -20;
|
|
4133
4203
|
const DEFAULT_TEXTAREA_ROWS = 3;
|
|
4204
|
+
function mergeVuiServiceUISettings(base, overrides) {
|
|
4205
|
+
if (!overrides) {
|
|
4206
|
+
return base;
|
|
4207
|
+
}
|
|
4208
|
+
|
|
4209
|
+
const merged = { ...base
|
|
4210
|
+
};
|
|
4211
|
+
Object.entries(overrides).forEach(([key, value]) => {
|
|
4212
|
+
if (value) {
|
|
4213
|
+
merged[key] = value;
|
|
4214
|
+
}
|
|
4215
|
+
});
|
|
4216
|
+
return merged;
|
|
4217
|
+
}
|
|
4218
|
+
function mergeVuiServiceIconSettings(base, overrides) {
|
|
4219
|
+
if (!overrides) {
|
|
4220
|
+
return base;
|
|
4221
|
+
}
|
|
4222
|
+
|
|
4223
|
+
const merged = { ...base
|
|
4224
|
+
};
|
|
4225
|
+
Object.entries(overrides).forEach(([key, value]) => {
|
|
4226
|
+
if (value) {
|
|
4227
|
+
merged[key] = value;
|
|
4228
|
+
}
|
|
4229
|
+
});
|
|
4230
|
+
return merged;
|
|
4231
|
+
}
|
|
4232
|
+
function mergeVuiServiceOptions(base, overrides) {
|
|
4233
|
+
if (!overrides) {
|
|
4234
|
+
return base;
|
|
4235
|
+
}
|
|
4236
|
+
|
|
4237
|
+
const merged = { ...base,
|
|
4238
|
+
uiSettings: mergeVuiServiceUISettings(base.uiSettings, overrides.uiSettings),
|
|
4239
|
+
icons: mergeVuiServiceIconSettings(base.icons, overrides.icons)
|
|
4240
|
+
};
|
|
4241
|
+
const excludes = ['uiSettings', 'icons'];
|
|
4242
|
+
Object.entries(overrides).forEach(([key, value]) => {
|
|
4243
|
+
if (value && !excludes.includes(key)) {
|
|
4244
|
+
merged[key] = value;
|
|
4245
|
+
}
|
|
4246
|
+
});
|
|
4247
|
+
return merged;
|
|
4248
|
+
}
|
|
4134
4249
|
class VuiService {
|
|
4135
4250
|
get scroller() {
|
|
4136
4251
|
return getDocumentScroller$1();
|
|
@@ -4267,6 +4382,18 @@ class VuiService {
|
|
|
4267
4382
|
|
|
4268
4383
|
}
|
|
4269
4384
|
|
|
4385
|
+
function mergeVuiPluginOptions(base, override) {
|
|
4386
|
+
if (!override) return base;
|
|
4387
|
+
const merged = mergeVuiServiceOptions(base, override);
|
|
4388
|
+
|
|
4389
|
+
if (override.stack) {
|
|
4390
|
+
merged.stack = { ...merged.stack,
|
|
4391
|
+
...override.stack
|
|
4392
|
+
};
|
|
4393
|
+
}
|
|
4394
|
+
|
|
4395
|
+
return merged;
|
|
4396
|
+
}
|
|
4270
4397
|
class VuiPlugin {
|
|
4271
4398
|
static installedApps = new Set();
|
|
4272
4399
|
|
|
@@ -4324,4 +4451,4 @@ function installVuiPlugin(app, opts) {
|
|
|
4324
4451
|
return app.use(VuiPlugin, opts);
|
|
4325
4452
|
}
|
|
4326
4453
|
|
|
4327
|
-
export { CONTROL_FIELD_VARIANTS, CONTROL_SIZES, PAGINATION_ALIGNS, VApp, VBreadcrumbs, VButton, VButtonGroup, VCard, VCardActions, VCardContent, VCheckbox, VCheckboxGroup, VContentSwitcher, VDataTable, VDrawerLayout, VForm, VFormControl, VGridContainer, VGridItem, VHero, VIcon, VListTile, VNavigation, VNavigationItem, VOption, VOptionGroup, VPagination, VPaper, VRadio, VRadioGroup, VSelect, VSwitch, VSwitchGroup, VTabs, VTextField, VTextarea, VToolbar, VToolbarEdge, 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, VUI_WYSIWYG_EDITOR_SYMBOL, VWysiwygEditor, VuiColorProviderInjectionKey, VuiControlFieldInjectionKey, VuiControlInjectionKey, VuiInjectionKey, VuiPlugin, VuiService, WysiwygBulletListTool, WysiwygFormatBoldTool, WysiwygFormatItalicTool, WysiwygFormatUnderlineTool, WysiwygHistoryTool, WysiwygLinkTool, WysiwygOrderedListTool, WysiwygTextColorTool, configureDataTableDefaults, createCardProps, createControlFieldProviderProps, createControlProps, createElevationProps, createListTileProps, createNavigationItemProps, createPaperBaseProps, createPaperProps, createRequiredChipRenderer, defineFormSelectorComponent, iconProps, installVuiPlugin, listTileEmits, paginationProps, rawIconProp, renderNavigationItemInput, resolveNavigationItemInput, resolveRawIconProp, useControl, useControlField, useElevation, useVui, useVuiColorProvider, vueButtonProps };
|
|
4454
|
+
export { CONTROL_FIELD_VARIANTS, CONTROL_SIZES, PAGINATION_ALIGNS, VApp, VBreadcrumbs, VButton, VButtonGroup, VCard, VCardActions, VCardContent, VCheckbox, VCheckboxGroup, VContentSwitcher, VDataTable, VDrawerLayout, VForm, VFormControl, VGridContainer, VGridItem, VHero, VIcon, VListTile, VNavigation, VNavigationItem, VOption, VOptionGroup, VPagination, VPaper, VRadio, VRadioGroup, VSelect, VSwitch, VSwitchGroup, VTabs, VTextField, VTextarea, VToolbar, VToolbarEdge, 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, VUI_WYSIWYG_EDITOR_SYMBOL, VWysiwygEditor, VuiColorProviderInjectionKey, VuiControlFieldInjectionKey, VuiControlInjectionKey, VuiInjectionKey, VuiPlugin, VuiService, WysiwygBulletListTool, WysiwygFormatBoldTool, WysiwygFormatItalicTool, WysiwygFormatUnderlineTool, WysiwygHistoryTool, WysiwygLinkTool, WysiwygOrderedListTool, WysiwygTextColorTool, configureDataTableDefaults, createCardProps, createControlFieldProviderProps, createControlProps, createElevationProps, createListTileProps, createNavigationItemProps, createPaperBaseProps, createPaperProps, createRequiredChipRenderer, defineFormSelectorComponent, iconProps, installVuiPlugin, listTileEmits, mergeVuiPluginOptions, mergeVuiServiceIconSettings, mergeVuiServiceOptions, mergeVuiServiceUISettings, paginationProps, rawIconProp, renderNavigationItemInput, resolveNavigationItemInput, resolveRawIconProp, useControl, useControlField, useElevation, useVui, useVuiColorProvider, vueButtonProps };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fastkit/vui",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.24",
|
|
4
4
|
"description": "@fastkit/vui",
|
|
5
5
|
"buildOptions": {
|
|
6
6
|
"name": "Vui",
|
|
@@ -32,11 +32,11 @@
|
|
|
32
32
|
"vue": "^3.2.26"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@fastkit/color-scheme": "0.7.
|
|
36
|
-
"@fastkit/icon-font": "0.7.
|
|
37
|
-
"@fastkit/tiny-logger": "0.7.
|
|
38
|
-
"@fastkit/vite-kit": "0.7.
|
|
39
|
-
"@fastkit/vue-kit": "0.7.
|
|
35
|
+
"@fastkit/color-scheme": "0.7.24",
|
|
36
|
+
"@fastkit/icon-font": "0.7.24",
|
|
37
|
+
"@fastkit/tiny-logger": "0.7.24",
|
|
38
|
+
"@fastkit/vite-kit": "0.7.24",
|
|
39
|
+
"@fastkit/vue-kit": "0.7.24",
|
|
40
40
|
"@tiptap/extension-link": "^2.0.0-beta.35",
|
|
41
41
|
"@tiptap/extension-underline": "^2.0.0-beta.22",
|
|
42
42
|
"@tiptap/starter-kit": "^2.0.0-beta.168",
|
|
@@ -38,6 +38,7 @@ const DATA_TABLE_DEFAULTS = {
|
|
|
38
38
|
limits: [5, 10, 20, 50, 100],
|
|
39
39
|
limitDefault: 20,
|
|
40
40
|
contorolThreshold: 10,
|
|
41
|
+
searchQuery: [],
|
|
41
42
|
};
|
|
42
43
|
|
|
43
44
|
export type DataTableDefaults = typeof DATA_TABLE_DEFAULTS;
|
|
@@ -126,6 +127,14 @@ export const VDataTable = defineComponent({
|
|
|
126
127
|
default: () => DATA_TABLE_DEFAULTS.orderQuery,
|
|
127
128
|
},
|
|
128
129
|
|
|
130
|
+
/**
|
|
131
|
+
* 検索クエリ名
|
|
132
|
+
*/
|
|
133
|
+
searchQuery: {
|
|
134
|
+
type: [String, Array] as PropType<string | string[]>,
|
|
135
|
+
default: () => DATA_TABLE_DEFAULTS.searchQuery,
|
|
136
|
+
},
|
|
137
|
+
|
|
129
138
|
/**
|
|
130
139
|
* リミット件数クエリ名
|
|
131
140
|
*/
|
|
@@ -172,6 +181,10 @@ export const VDataTable = defineComponent({
|
|
|
172
181
|
selectable: Boolean,
|
|
173
182
|
fixedHeader: Boolean,
|
|
174
183
|
maxHeight: [Number, String],
|
|
184
|
+
// eslint-disable-next-line vue/require-prop-types
|
|
185
|
+
noDataMessage: {} as PropType<VNodeChild | (() => VNodeChild)>,
|
|
186
|
+
// eslint-disable-next-line vue/require-prop-types
|
|
187
|
+
noResultsMessage: {} as PropType<VNodeChild | (() => VNodeChild)>,
|
|
175
188
|
},
|
|
176
189
|
emits: {
|
|
177
190
|
input: (selecteds: string[]) => true,
|
|
@@ -196,6 +209,45 @@ export const VDataTable = defineComponent({
|
|
|
196
209
|
ret.push(...headers.filter((h) => !h.hidden));
|
|
197
210
|
return ret;
|
|
198
211
|
});
|
|
212
|
+
|
|
213
|
+
const searchQueryValues = computed<string[]>(() => {
|
|
214
|
+
let { searchQuery } = props;
|
|
215
|
+
if (!searchQuery) {
|
|
216
|
+
return [];
|
|
217
|
+
}
|
|
218
|
+
if (!Array.isArray(searchQuery)) {
|
|
219
|
+
searchQuery = [searchQuery];
|
|
220
|
+
}
|
|
221
|
+
const values: string[] = [];
|
|
222
|
+
searchQuery.forEach((query) => {
|
|
223
|
+
const value = vui.location.getQuery(query);
|
|
224
|
+
if (value == null || value === '') {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
if (typeof value === 'object' && !Object.keys(value).length) {
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
values.push(value);
|
|
231
|
+
});
|
|
232
|
+
return values;
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
const emptyMessage = computed(() => {
|
|
236
|
+
let message: VNodeChild | (() => VNodeChild);
|
|
237
|
+
if (searchQueryValues.value.length) {
|
|
238
|
+
message =
|
|
239
|
+
props.noResultsMessage ||
|
|
240
|
+
vui.setting('noResultsMessage') ||
|
|
241
|
+
'No search results found.'; // 検索結果が見つかりませんでした。
|
|
242
|
+
} else {
|
|
243
|
+
message =
|
|
244
|
+
props.noDataMessage ||
|
|
245
|
+
vui.setting('noDataMessage') ||
|
|
246
|
+
'No data was available.'; // データはありませんでした。
|
|
247
|
+
}
|
|
248
|
+
return typeof message === 'function' ? message() : message;
|
|
249
|
+
});
|
|
250
|
+
|
|
199
251
|
const classesRef = computed(() => [
|
|
200
252
|
{
|
|
201
253
|
'v-data-table--fixed-header': props.fixedHeader,
|
|
@@ -724,7 +776,7 @@ export const VDataTable = defineComponent({
|
|
|
724
776
|
<div class="v-data-table__body container-pull">
|
|
725
777
|
{isEmpty ? (
|
|
726
778
|
<div class="v-data-table__empty--message">
|
|
727
|
-
{
|
|
779
|
+
{emptyMessage.value}
|
|
728
780
|
</div>
|
|
729
781
|
) : (
|
|
730
782
|
<VPaper
|
|
@@ -64,6 +64,17 @@ export const VFormControl = defineComponent({
|
|
|
64
64
|
),
|
|
65
65
|
});
|
|
66
66
|
|
|
67
|
+
const hinttipDelay = computed(() => {
|
|
68
|
+
let { hinttipDelay } = control;
|
|
69
|
+
if (hinttipDelay == null) {
|
|
70
|
+
hinttipDelay = vui.setting('hinttipDelay');
|
|
71
|
+
}
|
|
72
|
+
if (hinttipDelay == null) {
|
|
73
|
+
hinttipDelay = 500;
|
|
74
|
+
}
|
|
75
|
+
return hinttipDelay;
|
|
76
|
+
});
|
|
77
|
+
|
|
67
78
|
ctx.expose(control.expose());
|
|
68
79
|
|
|
69
80
|
const colorProvider = useVuiColorProvider();
|
|
@@ -98,6 +109,7 @@ export const VFormControl = defineComponent({
|
|
|
98
109
|
const message = control.renderMessage();
|
|
99
110
|
const appends = control.renderInfoAppends();
|
|
100
111
|
const hinttip = control.renderHinttip();
|
|
112
|
+
const _hinttipDelay = hinttipDelay.value;
|
|
101
113
|
|
|
102
114
|
return (
|
|
103
115
|
<div class={['v-form-control', classes.value]}>
|
|
@@ -112,7 +124,12 @@ export const VFormControl = defineComponent({
|
|
|
112
124
|
{hinttip && (
|
|
113
125
|
<VTooltip
|
|
114
126
|
top
|
|
115
|
-
openOnHover={
|
|
127
|
+
openOnHover={_hinttipDelay !== 'click'}
|
|
128
|
+
openDelay={
|
|
129
|
+
typeof _hinttipDelay === 'number'
|
|
130
|
+
? _hinttipDelay
|
|
131
|
+
: undefined
|
|
132
|
+
}
|
|
116
133
|
v-slots={{
|
|
117
134
|
activator: (ctx) => (
|
|
118
135
|
<a
|
package/src/plugin.tsx
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { App } from 'vue';
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
VuiService,
|
|
4
|
+
VuiServiceOptions,
|
|
5
|
+
RawVuiServiceOptions,
|
|
6
|
+
mergeVuiServiceOptions,
|
|
7
|
+
VuiInjectionKey,
|
|
8
|
+
} from './service';
|
|
3
9
|
import {
|
|
4
10
|
installVueStackPlugin,
|
|
5
11
|
VueStackServiceOptions,
|
|
@@ -14,6 +20,25 @@ export interface VuiPluginOptions extends VuiServiceOptions {
|
|
|
14
20
|
stack?: VuiPluginStackOptions;
|
|
15
21
|
}
|
|
16
22
|
|
|
23
|
+
export interface RawVuiPluginOptions extends RawVuiServiceOptions {
|
|
24
|
+
stack?: VuiPluginStackOptions;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function mergeVuiPluginOptions(
|
|
28
|
+
base: VuiPluginOptions,
|
|
29
|
+
override?: RawVuiPluginOptions,
|
|
30
|
+
): VuiPluginOptions {
|
|
31
|
+
if (!override) return base;
|
|
32
|
+
const merged: VuiPluginOptions = mergeVuiServiceOptions(base, override);
|
|
33
|
+
if (override.stack) {
|
|
34
|
+
merged.stack = {
|
|
35
|
+
...merged.stack,
|
|
36
|
+
...override.stack,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return merged;
|
|
40
|
+
}
|
|
41
|
+
|
|
17
42
|
declare module '@vue/runtime-core' {
|
|
18
43
|
export interface ComponentCustomProperties {
|
|
19
44
|
$vui: VuiService;
|
package/src/service.tsx
CHANGED
|
@@ -14,7 +14,7 @@ import { RouterLink } from 'vue-router';
|
|
|
14
14
|
import { LocationService, setDefaultRouterLink } from '@fastkit/vue-utils';
|
|
15
15
|
import { VForm } from './components/VForm';
|
|
16
16
|
import { VTextField, TextFieldInput } from './components/VTextField';
|
|
17
|
-
import { VueForm } from '@fastkit/vue-form-control';
|
|
17
|
+
import { VueForm, FormControlHinttipDelay } from '@fastkit/vue-form-control';
|
|
18
18
|
import { getDocumentScroller } from '@fastkit/vue-scroller';
|
|
19
19
|
|
|
20
20
|
export interface VuiPromptOptions extends Partial<VDialogProps> {
|
|
@@ -50,6 +50,29 @@ export interface VuiServiceUISettings {
|
|
|
50
50
|
color?: ScopeName;
|
|
51
51
|
variant?: ColorVariant;
|
|
52
52
|
};
|
|
53
|
+
hinttipDelay?: FormControlHinttipDelay;
|
|
54
|
+
noDataMessage?: VNodeChild | (() => VNodeChild);
|
|
55
|
+
noResultsMessage?: VNodeChild | (() => VNodeChild);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export type RawVuiServiceUISettings = Partial<VuiServiceUISettings>;
|
|
59
|
+
|
|
60
|
+
export function mergeVuiServiceUISettings(
|
|
61
|
+
base: VuiServiceUISettings,
|
|
62
|
+
overrides?: RawVuiServiceUISettings,
|
|
63
|
+
): VuiServiceUISettings {
|
|
64
|
+
if (!overrides) {
|
|
65
|
+
return base;
|
|
66
|
+
}
|
|
67
|
+
const merged: VuiServiceUISettings = {
|
|
68
|
+
...base,
|
|
69
|
+
};
|
|
70
|
+
Object.entries(overrides).forEach(([key, value]) => {
|
|
71
|
+
if (value) {
|
|
72
|
+
(merged as any)[key] = value;
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
return merged;
|
|
53
76
|
}
|
|
54
77
|
|
|
55
78
|
export interface VuiServiceIconSettings {
|
|
@@ -72,6 +95,26 @@ export interface VuiServiceIconSettings {
|
|
|
72
95
|
clear: IconName;
|
|
73
96
|
}
|
|
74
97
|
|
|
98
|
+
export type RawVuiServiceIconSettings = Partial<VuiServiceIconSettings>;
|
|
99
|
+
|
|
100
|
+
export function mergeVuiServiceIconSettings(
|
|
101
|
+
base: VuiServiceIconSettings,
|
|
102
|
+
overrides?: RawVuiServiceIconSettings,
|
|
103
|
+
): VuiServiceIconSettings {
|
|
104
|
+
if (!overrides) {
|
|
105
|
+
return base;
|
|
106
|
+
}
|
|
107
|
+
const merged: VuiServiceIconSettings = {
|
|
108
|
+
...base,
|
|
109
|
+
};
|
|
110
|
+
Object.entries(overrides).forEach(([key, value]) => {
|
|
111
|
+
if (value) {
|
|
112
|
+
(merged as any)[key] = value;
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return merged;
|
|
116
|
+
}
|
|
117
|
+
|
|
75
118
|
export type VuiVNodeResolver = () => VNodeChild;
|
|
76
119
|
|
|
77
120
|
export interface VuiServiceOptions {
|
|
@@ -86,6 +129,36 @@ export interface VuiServiceOptions {
|
|
|
86
129
|
requiredChip?: VuiVNodeResolver;
|
|
87
130
|
}
|
|
88
131
|
|
|
132
|
+
export interface RawVuiServiceOptions
|
|
133
|
+
extends Omit<Partial<VuiServiceOptions>, 'uiSettings' | 'icons'> {
|
|
134
|
+
uiSettings?: RawVuiServiceUISettings;
|
|
135
|
+
icons?: RawVuiServiceIconSettings;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
export function mergeVuiServiceOptions(
|
|
139
|
+
base: VuiServiceOptions,
|
|
140
|
+
overrides?: RawVuiServiceOptions,
|
|
141
|
+
): VuiServiceOptions {
|
|
142
|
+
if (!overrides) {
|
|
143
|
+
return base;
|
|
144
|
+
}
|
|
145
|
+
const merged: VuiServiceOptions = {
|
|
146
|
+
...base,
|
|
147
|
+
uiSettings: mergeVuiServiceUISettings(
|
|
148
|
+
base.uiSettings,
|
|
149
|
+
overrides.uiSettings,
|
|
150
|
+
),
|
|
151
|
+
icons: mergeVuiServiceIconSettings(base.icons, overrides.icons),
|
|
152
|
+
};
|
|
153
|
+
const excludes = ['uiSettings', 'icons'];
|
|
154
|
+
Object.entries(overrides).forEach(([key, value]) => {
|
|
155
|
+
if (value && !excludes.includes(key)) {
|
|
156
|
+
(merged as any)[key] = value;
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
return merged;
|
|
160
|
+
}
|
|
161
|
+
|
|
89
162
|
export class VuiService {
|
|
90
163
|
readonly options: VuiServiceOptions;
|
|
91
164
|
|
package/src/tool/vite-plugin.ts
CHANGED
|
@@ -30,20 +30,21 @@ import './setup.scss';
|
|
|
30
30
|
import type { App } from 'vue';
|
|
31
31
|
import type { Router } from 'vue-router';
|
|
32
32
|
import { VPageLink } from '@fastkit/vue-page';
|
|
33
|
-
import { installVuiPlugin as _installVuiPlugin,
|
|
33
|
+
import { installVuiPlugin as _installVuiPlugin, RawVuiPluginOptions, mergeVuiPluginOptions } from '@fastkit/vui';
|
|
34
34
|
import { colorScheme } from '<%~ it.colorScheme %>';
|
|
35
35
|
import '<%~ it.mediaMatch %>';
|
|
36
36
|
import './icon-font';
|
|
37
37
|
import '${STYLE_AFTER_EFFECTS_PATH}';
|
|
38
38
|
|
|
39
|
-
export function installVui(settings: { app: App, router: Router }) {
|
|
40
|
-
|
|
39
|
+
export function installVui(settings: { app: App, router: Router }, options?: RawVuiPluginOptions) {
|
|
40
|
+
const merged = mergeVuiPluginOptions({
|
|
41
41
|
RouterLink: VPageLink,
|
|
42
42
|
colorScheme,
|
|
43
43
|
uiSettings: <%~ it.uiSettings %>,
|
|
44
44
|
icons: <%~ it.icons %>,
|
|
45
45
|
...settings,
|
|
46
|
-
});
|
|
46
|
+
}, options);
|
|
47
|
+
_installVuiPlugin(settings.app, merged);
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
export default installVui;
|