umy-ui-table 1.2.4 → 1.2.6
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/lib/button.js +1 -1
- package/lib/icon.js +1 -1
- package/lib/index.js +1 -1
- package/lib/locale/format.js +1 -1
- package/lib/locale/index.js +1 -72
- package/lib/mixins/locale.js +1 -1
- package/lib/theme-chalk/button.css +1 -1
- package/lib/theme-chalk/icon.css +1 -1
- package/lib/theme-chalk/iconfont.1785242763644.ttf +0 -0
- package/lib/theme-chalk/iconfont.1785242763644.woff +0 -0
- package/lib/theme-chalk/iconfont.1785242763644.woff2 +0 -0
- package/lib/theme-chalk/index.css +1 -1
- package/lib/theme-chalk/u-table.css +1 -1
- package/lib/theme-chalk/ux-grid.css +1 -1
- package/lib/u-table-column.js +1 -1
- package/lib/u-table.js +1 -1
- package/lib/umy-ui.common.js +1 -1
- package/lib/utils/util.js +1 -1
- package/lib/ux-grid.js +1 -1
- package/lib/ux-table-column.js +1 -1
- package/package.json +4 -3
- package/packages/.DS_Store +0 -0
- package/packages/input/.DS_Store +0 -0
- package/packages/pagination/.DS_Store +0 -0
- package/packages/scrollbar/.DS_Store +0 -0
- package/packages/select/.DS_Store +0 -0
- package/packages/table/.DS_Store +0 -0
- package/packages/tag/.DS_Store +0 -0
- package/packages/tools/.DS_Store +0 -0
- package/packages/tools/locale/index.js +2 -48
- package/packages/tools/utils/.DS_Store +0 -0
- package/packages/tooltip/.DS_Store +0 -0
- package/packages/u-table/.DS_Store +0 -0
- package/packages/ux-grid/.DS_Store +0 -0
- package/packages/ux-grid/mixins/index.js +133 -25
- package/packages/ux-grid/src/dialog-draft.js +75 -0
- package/packages/ux-grid/src/element-renderer.js +809 -0
- package/packages/ux-grid/src/grid-height.js +75 -0
- package/packages/ux-grid/src/grid-kernel.js +14 -0
- package/packages/ux-grid/src/setup.js +42 -0
- package/packages/ux-grid/src/ux-grid.vue +215 -57
- package/packages/ux-grid/test/browser-acceptance.cjs +192 -0
- package/packages/ux-grid/test/browser-baseline-loader.cjs +10 -0
- package/packages/ux-grid/test/browser-entry.js +242 -0
- package/packages/ux-grid/test/browser-layout-contracts.cjs +105 -0
- package/packages/ux-grid/test/browser-layout-entry.js +66 -0
- package/packages/ux-grid/test/browser-renderer-contracts.cjs +262 -0
- package/packages/ux-grid/test/browser-renderer-entry.js +129 -0
- package/packages/ux-grid/test/browser-resize-contracts.cjs +150 -0
- package/packages/ux-grid/test/compatibility.cjs +176 -0
- package/packages/ux-grid/test/contracts.cjs +281 -0
- package/packages/ux-grid/test/delivery-umd.cjs +48 -0
- package/packages/ux-grid/test/delivery.cjs +103 -0
- package/packages/ux-grid/test/integration.cjs +132 -0
- package/packages/ux-grid/test/real-kernel-contracts.cjs +335 -0
- package/packages/ux-grid/test/real-kernel-events.cjs +233 -0
- package/packages/ux-grid/test/renderer-async.cjs +140 -0
- package/packages/ux-grid/test/renderer-boundaries.cjs +196 -0
- package/packages/ux-grid/test/ui-components.cjs +103 -0
- package/tools/locale/format.js +1 -1
- package/tools/locale/index.js +1 -7
- package/tools/mixins/locale.js +1 -1
- package/tools/utils/util.js +1 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
// Real official UI dependency wiring; browser suite measures visual geometry.
|
|
2
|
+
const assert = require('assert');
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const dependencyRoot = process.env.UX_GRID_TEST_DEPENDENCIES || process.cwd();
|
|
6
|
+
const external = name => require(require.resolve(name, { paths: [dependencyRoot] }));
|
|
7
|
+
const { JSDOM } = external('jsdom');
|
|
8
|
+
const dom = new JSDOM('<html><body><script></script></body></html>', { url: 'http://localhost/' });
|
|
9
|
+
for (const key of ['window', 'document', 'Element', 'HTMLElement', 'HTMLTableElement', 'Node', 'MutationObserver', 'getComputedStyle', 'name', 'Image']) global[key] = dom.window[key];
|
|
10
|
+
Object.defineProperty(global, 'navigator', { configurable: true, value: dom.window.navigator });
|
|
11
|
+
global.requestAnimationFrame = callback => setTimeout(callback, 0);
|
|
12
|
+
global.cancelAnimationFrame = clearTimeout;
|
|
13
|
+
const Vue = require('vue');
|
|
14
|
+
const vueModule = require.cache[require.resolve('vue')];
|
|
15
|
+
for (const root of [dependencyRoot, require.resolve('vxe-table'), require.resolve('vxe-pc-ui')]) require.cache[require.resolve('vue', { paths: [root] })] = vueModule;
|
|
16
|
+
Vue.config.productionTip = false;
|
|
17
|
+
Vue.config.devtools = false;
|
|
18
|
+
const errors = [];
|
|
19
|
+
Vue.config.errorHandler = error => errors.push(error);
|
|
20
|
+
const scenario = process.argv[2];
|
|
21
|
+
if (!scenario) {
|
|
22
|
+
for (const name of ['empty', 'short', 'tooltip', 'loading', 'both']) {
|
|
23
|
+
const child = require('child_process').spawnSync(process.execPath, [__filename, name], { env: process.env, encoding: 'utf8' });
|
|
24
|
+
assert.strictEqual(child.status, 0, name + '\n' + child.stdout + child.stderr);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const { VxeUI } = require('vxe-table/lib/ui');
|
|
28
|
+
const translator = key => 'custom:' + key;
|
|
29
|
+
VxeUI.setConfig({ i18n: translator, tooltip: { enterDelay: 0 }, table: { rowConfig: { height: 47 } } });
|
|
30
|
+
VxeUI.setIcon({ TABLE_SORT_ASC: 'consumer-sort' });
|
|
31
|
+
const expectedArrays = scenario === 'empty'
|
|
32
|
+
? { iconPicker: { icons: [] }, upload: { imageTypes: [] }, watermark: { gap: [] } }
|
|
33
|
+
: { iconPicker: { icons: [{ name: 'custom', children: [] }] }, upload: { imageTypes: ['custom'] }, watermark: { gap: [17] } };
|
|
34
|
+
VxeUI.setConfig(expectedArrays);
|
|
35
|
+
const customTooltip = { name: 'VxeTooltip', render(h) { return h('span'); } };
|
|
36
|
+
const customLoading = { name: 'VxeLoading', render(h) { return h('span'); } };
|
|
37
|
+
if (scenario === 'tooltip' || scenario === 'both') VxeUI.component(customTooltip);
|
|
38
|
+
if (scenario === 'loading' || scenario === 'both') VxeUI.component(customLoading);
|
|
39
|
+
const beforeTooltip = VxeUI.getComponent('VxeTooltip');
|
|
40
|
+
const beforeLoading = VxeUI.getComponent('VxeLoading');
|
|
41
|
+
if (scenario) VxeUI.setIcon({ LOADING: 'consumer-loading-icon' });
|
|
42
|
+
const setup = fs.readFileSync(path.join(__dirname, '../src/setup.js'), 'utf8').replace(/^import .*;$/gm, '');
|
|
43
|
+
function runSetup() {
|
|
44
|
+
require('vm').runInNewContext(setup, { require, VxeUI, XEUtils: require('xe-utils'), zhCN: {} });
|
|
45
|
+
}
|
|
46
|
+
runSetup();
|
|
47
|
+
assert.strictEqual(VxeUI.getConfig().i18n, translator);
|
|
48
|
+
assert.equal(VxeUI.getConfig().table.rowConfig.height, 47);
|
|
49
|
+
assert.equal(VxeUI.getConfig().tooltip.enterDelay, 0);
|
|
50
|
+
assert.equal(VxeUI.getIcon().TABLE_SORT_ASC, 'consumer-sort');
|
|
51
|
+
for (const name of Object.keys(expectedArrays)) {
|
|
52
|
+
for (const field of Object.keys(expectedArrays[name])) {
|
|
53
|
+
assert.deepStrictEqual(VxeUI.getConfig()[name][field], expectedArrays[name][field]);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
if (beforeTooltip) assert.strictEqual(VxeUI.getComponent('VxeTooltip'), beforeTooltip);
|
|
57
|
+
if (beforeLoading) assert.strictEqual(VxeUI.getComponent('VxeLoading'), beforeLoading);
|
|
58
|
+
if (scenario) {
|
|
59
|
+
assert.equal(VxeUI.getIcon().LOADING, 'consumer-loading-icon');
|
|
60
|
+
dom.window.close();
|
|
61
|
+
process.exit(0);
|
|
62
|
+
}
|
|
63
|
+
assert(VxeUI.getComponent('VxeTooltip') && VxeUI.getComponent('VxeLoading'));
|
|
64
|
+
const originalTooltip = VxeUI.getComponent('VxeTooltip');
|
|
65
|
+
const originalLoading = VxeUI.getComponent('VxeLoading');
|
|
66
|
+
runSetup();
|
|
67
|
+
assert.strictEqual(VxeUI.getComponent('VxeTooltip'), originalTooltip);
|
|
68
|
+
assert.strictEqual(VxeUI.getComponent('VxeLoading'), originalLoading);
|
|
69
|
+
assert.strictEqual(require('vxe-pc-ui/lib/ui').VxeUI, VxeUI, 'shared UI singleton');
|
|
70
|
+
const Grid = require('../../../lib/ux-grid.js');
|
|
71
|
+
let vm;
|
|
72
|
+
const delay = () => new Promise(resolve => setTimeout(resolve, 100));
|
|
73
|
+
(async () => {
|
|
74
|
+
vm = new Vue({
|
|
75
|
+
data: () => ({ loading: true }),
|
|
76
|
+
render(h) { return h(Grid.default || Grid, { ref: 'grid', props: {
|
|
77
|
+
loading: this.loading, height: 200, data: [{ name: '' }], columns: [{ field: 'name' }],
|
|
78
|
+
showOverflow: true, rules: { name: [{ required: true, message: 'Required name' }] }, validConfig: { message: 'tooltip' }
|
|
79
|
+
} }); }
|
|
80
|
+
}).$mount();
|
|
81
|
+
document.body.appendChild(vm.$el);
|
|
82
|
+
await delay();
|
|
83
|
+
assert(vm.$el.querySelector('.vxe-loading.is--visible'), 'official loading mask mounted');
|
|
84
|
+
assert(vm.$el.querySelector('.vxe-loading .vxe-icon-spinner'), 'official default spinner rendered');
|
|
85
|
+
vm.loading = false;
|
|
86
|
+
await delay();
|
|
87
|
+
assert(!vm.$el.querySelector('.vxe-loading.is--visible'));
|
|
88
|
+
const table = vm.$refs.grid.$refs.singleTable.$refs.refTable;
|
|
89
|
+
for (const name of ['refTooltip', 'refValidTooltip']) {
|
|
90
|
+
const tip = table.$refs[name];
|
|
91
|
+
assert(tip, name + ' exists');
|
|
92
|
+
await tip.open(vm.$el.querySelector('td'), 'Official popup');
|
|
93
|
+
await delay();
|
|
94
|
+
assert(document.body.textContent.includes('Official popup'));
|
|
95
|
+
await tip.close();
|
|
96
|
+
}
|
|
97
|
+
assert.deepStrictEqual(errors, []);
|
|
98
|
+
console.log('ux-grid official Tooltip/Loading wiring and consumer configuration passed');
|
|
99
|
+
})().catch(error => { console.error(error); process.exitCode = 1; }).finally(() => {
|
|
100
|
+
if (vm) vm.$destroy();
|
|
101
|
+
dom.window.close();
|
|
102
|
+
setImmediate(() => process.exit(process.exitCode || 0));
|
|
103
|
+
});
|
package/tools/locale/format.js
CHANGED
package/tools/locale/index.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import defaultLang from '
|
|
2
|
-
// 如果是按需加载,设置u-table的locale(本地 u-table 组件统一使用 packages/tools/locale)
|
|
3
|
-
import tableLocale from '../../packages/tools/locale'
|
|
1
|
+
import defaultLang from './lang/zh-CN';
|
|
4
2
|
import Vue from 'vue';
|
|
5
3
|
import deepmerge from 'deepmerge';
|
|
6
4
|
import Format from './format';
|
|
@@ -41,10 +39,6 @@ export const t = function(path, options) {
|
|
|
41
39
|
|
|
42
40
|
export const use = function(l) {
|
|
43
41
|
lang = l || lang;
|
|
44
|
-
if (l) {
|
|
45
|
-
// 如果是按需加载,设置u-table语言
|
|
46
|
-
tableLocale.use(l)
|
|
47
|
-
}
|
|
48
42
|
};
|
|
49
43
|
|
|
50
44
|
export const i18n = function(fn) {
|
package/tools/mixins/locale.js
CHANGED
package/tools/utils/util.js
CHANGED