@vxe-ui/core 1.0.6 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.en.md +31 -31
- package/README.md +31 -31
- package/README.zh-TW.md +31 -31
- package/es/src/core.js +1 -1
- package/es/src/interceptor.js +21 -4
- package/es/src/log.js +1 -1
- package/lib/index.umd.js +40 -26
- package/lib/index.umd.min.js +1 -1
- package/lib/src/clipboard.min.js +1 -1
- package/lib/src/commands.min.js +1 -1
- package/lib/src/core.js +1 -1
- package/lib/src/core.min.js +1 -1
- package/lib/src/event.min.js +1 -1
- package/lib/src/formats.min.js +1 -1
- package/lib/src/globalStore.min.js +1 -1
- package/lib/src/hooks.min.js +1 -1
- package/lib/src/i18n.min.js +1 -1
- package/lib/src/i18nStore.min.js +1 -1
- package/lib/src/iconStore.min.js +1 -1
- package/lib/src/interceptor.js +21 -4
- package/lib/src/interceptor.min.js +1 -1
- package/lib/src/log.js +1 -1
- package/lib/src/log.min.js +1 -1
- package/lib/src/menus.min.js +1 -1
- package/lib/src/renderer.min.js +1 -1
- package/lib/src/resize.min.js +1 -1
- package/lib/src/store.min.js +1 -1
- package/lib/src/themeStore.min.js +1 -1
- package/lib/src/useFns.min.js +1 -1
- package/lib/src/validators.min.js +1 -1
- package/package.json +78 -78
- package/packages/index.ts +4 -4
- package/packages/src/clipboard.ts +53 -53
- package/packages/src/commands.ts +62 -62
- package/packages/src/core.ts +163 -163
- package/packages/src/event.ts +113 -113
- package/packages/src/formats.ts +62 -62
- package/packages/src/globalStore.ts +8 -8
- package/packages/src/hooks.ts +5 -5
- package/packages/src/i18n.ts +14 -14
- package/packages/src/i18nStore.ts +11 -11
- package/packages/src/iconStore.ts +3 -3
- package/packages/src/interceptor.ts +65 -46
- package/packages/src/log.ts +19 -19
- package/packages/src/menus.ts +62 -62
- package/packages/src/renderer.ts +50 -50
- package/packages/src/resize.ts +89 -89
- package/packages/src/store.ts +49 -49
- package/packages/src/themeStore.ts +7 -7
- package/packages/src/useFns.ts +18 -18
- package/packages/src/validators.ts +9 -9
- package/types/core/clipboard.d.ts +13 -13
- package/types/core/commands.d.ts +19 -24
- package/types/core/components.d.ts +4 -4
- package/types/core/formats.d.ts +19 -22
- package/types/core/global-config.d.ts +49 -49
- package/types/core/global-event.d.ts +39 -39
- package/types/core/global-icon.d.ts +6 -6
- package/types/core/global-lang.d.ts +1 -1
- package/types/core/global-resize.d.ts +3 -3
- package/types/core/global-theme.d.ts +1 -1
- package/types/core/hooks.d.ts +14 -14
- package/types/core/index.d.ts +211 -211
- package/types/core/interceptor.d.ts +22 -18
- package/types/core/log.d.ts +8 -8
- package/types/core/menus.d.ts +19 -24
- package/types/core/renderer.d.ts +14 -14
- package/types/core/useFn.d.ts +17 -17
- package/types/core/validators.d.ts +19 -20
- package/types/index.d.ts +10 -10
- package/types/tool/common.d.ts +70 -70
- package/types/tool/index.d.ts +2 -2
- package/types/tool/util.d.ts +4 -4
package/lib/src/core.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0});var _exportNames={setTheme:!0,getTheme:!0,setLanguage:!0,setI18n:!0,setConfig:!0,getConfig:!0,setIcon:!0,getIcon:!0,coreVersion:!0,use:!0,getComponent:!0,component:!0,VxeUI:!0},_xeUtils=(exports.VxeUI=void 0,exports.component=component,exports.default=exports.coreVersion=void 0,exports.getComponent=getComponent,exports.getConfig=getConfig,exports.getIcon=getIcon,exports.getTheme=getTheme,exports.setConfig=setConfig,exports.setI18n=setI18n,exports.setIcon=setIcon,exports.setLanguage=setLanguage,exports.setTheme=setTheme,exports.use=use,_interopRequireDefault(require("xe-utils"))),_domZindex=_interopRequireDefault(require("dom-zindex")),_globalStore=require("./globalStore"),_iconStore=require("./iconStore"),_themeStore=require("./themeStore"),_i18nStore=require("./i18nStore"),_event=require("./event"),_resize=(Object.keys(_event).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_event[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _event[e]}})}),require("./resize")),_i18n=(Object.keys(_resize).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_resize[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _resize[e]}})}),require("./i18n")),_renderer=(Object.keys(_i18n).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_i18n[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _i18n[e]}})}),require("./renderer")),_validators=(Object.keys(_renderer).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_renderer[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _renderer[e]}})}),require("./validators")),_menus=(Object.keys(_validators).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_validators[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _validators[e]}})}),require("./menus")),_formats=(Object.keys(_menus).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_menus[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _menus[e]}})}),require("./formats")),_commands=(Object.keys(_formats).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_formats[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _formats[e]}})}),require("./commands")),_interceptor=(Object.keys(_commands).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_commands[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _commands[e]}})}),require("./interceptor")),_clipboard=(Object.keys(_interceptor).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_interceptor[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _interceptor[e]}})}),require("./clipboard")),_log=(Object.keys(_clipboard).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_clipboard[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _clipboard[e]}})}),require("./log")),_hooks=(Object.keys(_log).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_log[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _log[e]}})}),require("./hooks")),_useFns=(Object.keys(_hooks).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_hooks[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _hooks[e]}})}),require("./useFns"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function setTheme(e){var t,e=e&&"default"!==e?e:"light";return _themeStore.themeConfigStore.theme=e,"undefined"!=typeof document&&(t=document.documentElement)&&t.setAttribute("data-vxe-ui-theme",e),VxeUI}function getTheme(){return _themeStore.themeConfigStore.theme}function setLanguage(e){return _i18nStore.i18nConfigStore.language=e||"zh-CN",VxeUI}function setI18n(e,t){return _i18nStore.i18nConfigStore.langMaps[e]=Object.assign({},t),VxeUI}function setConfig(e){return e&&(e.zIndex&&_domZindex.default.setCurrent(e.zIndex),e.theme&&setTheme(e.theme),_xeUtils.default.merge(_globalStore.globalConfigStore,e)),VxeUI}function getConfig(e,t){return arguments.length?_xeUtils.default.get(_globalStore.globalConfigStore,e,t):_globalStore.globalConfigStore}function setIcon(e){return e&&Object.assign(_iconStore.iconConfigStore,e),VxeUI}function getIcon(e){return arguments.length?_xeUtils.default.get(_iconStore.iconConfigStore,e):_iconStore.iconConfigStore}Object.keys(_useFns).forEach(function(e){"default"===e||"__esModule"===e||Object.prototype.hasOwnProperty.call(_exportNames,e)||e in exports&&exports[e]===_useFns[e]||Object.defineProperty(exports,e,{enumerable:!0,get:function(){return _useFns[e]}})});let coreVersion=exports.coreVersion="1.0.8",installedPlugins=[];function use(e,t){return e&&e.install&&-1===installedPlugins.indexOf(e)&&(e.install(VxeUI,t),installedPlugins.push(e)),VxeUI}let components={};function getComponent(e){return components[e]||null}function component(e){e&&e.name&&(components[e.name]=e)}let VxeUI=exports.VxeUI={coreVersion:coreVersion,setTheme:setTheme,getTheme:getTheme,setConfig:setConfig,getConfig:getConfig,setIcon:setIcon,getIcon:getIcon,setLanguage:setLanguage,hasLanguage:_i18n.hasLanguage,setI18n:setI18n,getI18n:_i18n.getI18n,globalEvents:_event.globalEvents,GLOBAL_EVENT_KEYS:_event.GLOBAL_EVENT_KEYS,createEvent:_event.createEvent,globalResize:_resize.globalResize,renderer:_renderer.renderer,validators:_validators.validators,menus:_menus.menus,formats:_formats.formats,commands:_commands.commands,interceptor:_interceptor.interceptor,clipboard:_clipboard.clipboard,log:_log.log,hooks:_hooks.hooks,component:component,getComponent:getComponent,useFns:_useFns.useFns,use:use};setTheme();var _default=exports.default=VxeUI;
|
package/lib/src/event.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.globalEvents=exports.createEvent=exports.GLOBAL_EVENT_KEYS=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let GLOBAL_EVENT_KEYS=exports.GLOBAL_EVENT_KEYS={F2:"F2",ESCAPE:"Escape",ENTER:"Enter",TAB:"Tab",DELETE:"Delete",BACKSPACE:"Backspace",SPACEBAR:" ",CONTEXT_MENU:"ContextMenu",ARROW_UP:"ArrowUp",ARROW_DOWN:"ArrowDown",ARROW_LEFT:"ArrowLeft",ARROW_RIGHT:"ArrowRight",PAGE_UP:"PageUp",PAGE_DOWN:"PageDown",R:"R",P:"P",Z:"Z",X:"X",C:"C",V:"V",M:"M"},browse=_xeUtils.default.browse(),convertEventKeys={" ":"Spacebar",Apps:GLOBAL_EVENT_KEYS.CONTEXT_MENU,Del:GLOBAL_EVENT_KEYS.DELETE,Up:GLOBAL_EVENT_KEYS.ARROW_UP,Down:GLOBAL_EVENT_KEYS.ARROW_DOWN,Left:GLOBAL_EVENT_KEYS.ARROW_LEFT,Right:GLOBAL_EVENT_KEYS.ARROW_RIGHT},wheelName=browse.firefox?"DOMMouseScroll":"mousewheel",eventStore=[];function triggerEvent(r){let n=r.type===wheelName;eventStore.forEach(({type:e,cb:t})=>{r.cancelBubble||(e===r.type||n&&"mousewheel"===e)&&t(r)})}class VxeComponentEvent{constructor(e,t,r){Object.defineProperty(this,"$event",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.$event=e,Object.assign(this,t,r)}stopPropagation(){var e=this.$event;e&&e.stopPropagation()}preventDefault(){var e=this.$event;e&&e.preventDefault()}}let createEvent=(e,t,r)=>new VxeComponentEvent(e,t,r),globalEvents=(exports.createEvent=createEvent,exports.globalEvents={on(e,t,r){eventStore.push({comp:e,type:t,cb:r})},off(t,r){_xeUtils.default.remove(eventStore,e=>e.comp===t&&e.type===r)},hasKey(e,t){e=e.key;return t=t.toLowerCase(),!(!e||t!==e.toLowerCase()&&(!convertEventKeys[e]||convertEventKeys[e].toLowerCase()!==t))}});browse.isDoc&&(browse.msie||(window.addEventListener("copy",triggerEvent,!1),window.addEventListener("cut",triggerEvent,!1),window.addEventListener("paste",triggerEvent,!1)),document.addEventListener("keydown",triggerEvent,!1),document.addEventListener("contextmenu",triggerEvent,!1),window.addEventListener("mousedown",triggerEvent,!1),window.addEventListener("blur",triggerEvent,!1),window.addEventListener("resize",triggerEvent,!1),window.addEventListener(wheelName,_xeUtils.default.throttle(triggerEvent,100,{leading:!0,trailing:!1}),{passive:!0,capture:!1}));
|
package/lib/src/formats.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.formats=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_log=require("./log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}class VXEFormatsStore{constructor(){Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:{}})}mixin(e){return _xeUtils.default.each(e,(e,t)=>{this.add(t,e)}),this}has(e){return!!this.get(e)}get(e){return this.store[e]}add(o,e){var t=this.store[o];if(_xeUtils.default.isFunction(e)&&("development"===process.env.NODE_ENV&&_log.log.warn("vxe.error.delProp",["formats -> callback","cellFormatMethod"]),e={cellFormatMethod:e}),"development"===process.env.NODE_ENV){let r=_xeUtils.default.keys(t);_xeUtils.default.each(e,(e,t)=>{r.includes(t)&&_log.log.warn("vxe.error.coverProp",[o,t])})}return this.store[o]=t?_xeUtils.default.merge(t,e):e,this}delete(e){delete this.store[e]}forEach(e){_xeUtils.default.objectEach(this.store,e)}}let formats=exports.formats=new VXEFormatsStore;"development"===process.env.NODE_ENV&&Object.assign(formats,{_name:"Formats"});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.globalConfigStore=void 0;let globalConfigStore=exports.globalConfigStore={size:"",version:1,zIndex:999,resizeInterval:500};
|
package/lib/src/hooks.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.hooks=void 0;var _store=_interopRequireDefault(require("./store"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let hooks=exports.hooks=new _store.default;
|
package/lib/src/i18n.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.getI18n=getI18n,exports.hasLanguage=hasLanguage;var _xeUtils=_interopRequireDefault(require("xe-utils")),_i18nStore=require("./i18nStore");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getI18n(e,t){var{langMaps:n,language:r}=_i18nStore.i18nConfigStore;return _xeUtils.default.toFormatString(_xeUtils.default.get(n[r],e,e),t)}function hasLanguage(e){var t=_i18nStore.i18nConfigStore["langMaps"];return!!t[e]}
|
package/lib/src/i18nStore.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.i18nConfigStore=void 0;var _vue=require("vue");let i18nConfigStore=exports.i18nConfigStore=(0,_vue.reactive)({language:"",langMaps:{}});
|
package/lib/src/iconStore.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.iconConfigStore=void 0;let iconConfigStore=exports.iconConfigStore={};
|
package/lib/src/interceptor.js
CHANGED
|
@@ -10,15 +10,25 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
|
|
|
10
10
|
const storeMap = {};
|
|
11
11
|
const interceptor = exports.interceptor = {
|
|
12
12
|
mixin(options) {
|
|
13
|
-
_xeUtils.default.each(options, (
|
|
14
|
-
interceptor.add(type,
|
|
13
|
+
_xeUtils.default.each(options, (render, type) => {
|
|
14
|
+
interceptor.add(type, render);
|
|
15
15
|
});
|
|
16
16
|
return interceptor;
|
|
17
17
|
},
|
|
18
18
|
get(type) {
|
|
19
19
|
return storeMap[type] || [];
|
|
20
20
|
},
|
|
21
|
-
add(type,
|
|
21
|
+
add(type, render) {
|
|
22
|
+
// 兼容
|
|
23
|
+
if (_xeUtils.default.isFunction(render)) {
|
|
24
|
+
// if (process.env.NODE_ENV === 'development') {
|
|
25
|
+
// log.warn('vxe.error.delProp', ['interceptor -> callback', 'tableInterceptorMethod'])
|
|
26
|
+
// }
|
|
27
|
+
render = {
|
|
28
|
+
tableInterceptorMethod: render
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const callback = render.tableInterceptorMethod;
|
|
22
32
|
if (callback) {
|
|
23
33
|
let eList = storeMap[type];
|
|
24
34
|
if (!eList) {
|
|
@@ -34,9 +44,16 @@ const interceptor = exports.interceptor = {
|
|
|
34
44
|
}
|
|
35
45
|
return interceptor;
|
|
36
46
|
},
|
|
37
|
-
delete(type,
|
|
47
|
+
delete(type, render) {
|
|
38
48
|
const eList = storeMap[type];
|
|
39
49
|
if (eList) {
|
|
50
|
+
// 兼容
|
|
51
|
+
if (_xeUtils.default.isFunction(render)) {
|
|
52
|
+
render = {
|
|
53
|
+
tableInterceptorMethod: render
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
const callback = render ? render.tableInterceptorMethod : null;
|
|
40
57
|
if (callback) {
|
|
41
58
|
_xeUtils.default.remove(eList, fn => fn === callback);
|
|
42
59
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.interceptor=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_log=require("./log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let storeMap={},interceptor=exports.interceptor={mixin(e){return _xeUtils.default.each(e,(e,t)=>{interceptor.add(t,e)}),interceptor},get(e){return storeMap[e]||[]},add(t,r){r=(r=_xeUtils.default.isFunction(r)?{tableInterceptorMethod:r}:r).tableInterceptorMethod;if(r){let e=storeMap[t];e=e||(storeMap[t]=[]),"development"===process.env.NODE_ENV&&-1<e.indexOf(r)&&_log.log.warn("vxe.error.coverProp",["Interceptor",t]),e.push(r)}return interceptor},delete(e,r){var o=storeMap[e];if(o){let t=(r=_xeUtils.default.isFunction(r)?{tableInterceptorMethod:r}:r)?r.tableInterceptorMethod:null;t?_xeUtils.default.remove(o,e=>e===t):delete storeMap[e]}}};
|
package/lib/src/log.js
CHANGED
package/lib/src/log.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.log=void 0;var _i18n=require("./i18n");function createLog(o,n){return function(e,r){e=`[vxe ${n||""}] `+(0,_i18n.getI18n)(e,r);return console[o](e),e}}let version="1.0.8",log=exports.log={create:createLog,warn:createLog("warn","v"+version),err:createLog("error","v"+version)};
|
package/lib/src/menus.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.menus=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_log=require("./log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}class VXEMenusStore{constructor(){Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:{}})}mixin(e){return _xeUtils.default.each(e,(e,t)=>{this.add(t,e)}),this}has(e){return!!this.get(e)}get(e){return this.store[e]}add(s,e){var t=this.store[s];if(_xeUtils.default.isFunction(e)&&("development"===process.env.NODE_ENV&&_log.log.warn("vxe.error.delProp",["menus -> callback","menuMethod"]),e={menuMethod:e}),"development"===process.env.NODE_ENV){let r=_xeUtils.default.keys(t);_xeUtils.default.each(e,(e,t)=>{r.includes(t)&&_log.log.warn("vxe.error.coverProp",[s,t])})}return this.store[s]=t?_xeUtils.default.merge(t,e):e,this}delete(e){delete this.store[e]}forEach(e){_xeUtils.default.objectEach(this.store,e)}}let menus=exports.menus=new VXEMenusStore;"development"===process.env.NODE_ENV&&Object.assign(menus,{_name:"Menus"});
|
package/lib/src/renderer.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.renderer=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_log=require("./log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderMap={},renderer=exports.renderer={mixin(e){return _xeUtils.default.each(e,(e,r)=>renderer.add(r,e)),renderer},get(e){return renderMap[e]||null},add(n,e){if(n&&e){let t=renderMap[n];t?("development"===process.env.NODE_ENV&&_xeUtils.default.each(e,(e,r)=>{_xeUtils.default.eqNull(t[r])||t[r]===e||_log.log.warn("vxe.error.coverProp",["Renderer."+n,r])}),Object.assign(t,e)):renderMap[n]=e}return renderer},forEach(e){return _xeUtils.default.objectEach(renderMap,e),renderer},delete(e){return delete renderMap[e],renderer}};
|
package/lib/src/resize.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.globalResize=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_globalStore=require("./globalStore");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let resizeTimeout,eventStore=[],defaultInterval=500;function eventHandle(){eventStore.length&&(eventStore.forEach(o=>{o.tarList.forEach(e=>{var{target:t,width:r,heighe:i}=e,l=t.clientWidth,t=t.clientHeight;(l&&r!==l||t&&i!==t)&&(e.width=l,e.heighe=t,setTimeout(o.callback))})}),eventListener())}function eventListener(){clearTimeout(resizeTimeout),resizeTimeout=setTimeout(eventHandle,_globalStore.globalConfigStore.resizeInterval||defaultInterval)}class XEResizeObserver{constructor(e){Object.defineProperty(this,"tarList",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"callback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.callback=e}observe(t){var e;t&&(e=this["tarList"],e.some(e=>e.target===t)||e.push({target:t,width:t.clientWidth,heighe:t.clientHeight}),eventStore.length||eventListener(),eventStore.some(e=>e===this)||eventStore.push(this))}unobserve(t){_xeUtils.default.remove(eventStore,e=>e.tarList.some(e=>e.target===t))}disconnect(){_xeUtils.default.remove(eventStore,e=>e===this)}}let globalResize=exports.globalResize={create(e){return new(window.ResizeObserver||XEResizeObserver)(e)}};
|
package/lib/src/store.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Store=void 0;var _log=require("./log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}class Store{constructor(){Object.defineProperty(this,"store",{enumerable:!0,configurable:!0,writable:!0,value:{}})}mixin(e){return _xeUtils.default.each(e,(e,t)=>{this.add(t,e)}),this}has(e){return!!this.get(e)}get(e){return this.store[e]}add(o,e){var t=this.store[o];if("development"===process.env.NODE_ENV){let r=_xeUtils.default.keys(t);_xeUtils.default.each(e,(e,t)=>{r.includes(t)&&_log.log.warn("vxe.error.coverProp",[o,t])})}return this.store[o]=t?_xeUtils.default.merge(t,e):e,this}delete(e){delete this.store[e]}forEach(e){_xeUtils.default.objectEach(this.store,e)}}exports.Store=Store;var _default=exports.default=Store;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.themeConfigStore=void 0;let themeConfigStore=exports.themeConfigStore={theme:""};
|
package/lib/src/useFns.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.useFns=void 0,exports.useSize=useSize;var _vue=require("vue");function useSize(e){let u=(0,_vue.inject)("xeSizeInfo",null);var s=(0,_vue.computed)(()=>e.size||(u?u.value:null));return(0,_vue.provide)("xeSizeInfo",s),{computeSize:s}}let useFns=exports.useFns={useSize:useSize};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.validators=void 0;var _store=_interopRequireDefault(require("./store"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let validators=exports.validators=new _store.default;"development"===process.env.NODE_ENV&&Object.assign(validators,{_name:"Validators"});
|
package/package.json
CHANGED
|
@@ -1,78 +1,78 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@vxe-ui/core",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Vxe UI core library",
|
|
5
|
-
"scripts": {
|
|
6
|
-
"update": "npm install --legacy-peer-deps",
|
|
7
|
-
"lib:pack": "vue-cli-service build --target lib --name index --dest lib_temp packages/index.ts",
|
|
8
|
-
"lib:modules": "gulp build",
|
|
9
|
-
"lib": "npm run lib:pack && npm run lib:modules"
|
|
10
|
-
},
|
|
11
|
-
"files": [
|
|
12
|
-
"lib",
|
|
13
|
-
"es",
|
|
14
|
-
"src",
|
|
15
|
-
"types",
|
|
16
|
-
"packages"
|
|
17
|
-
],
|
|
18
|
-
"main": "lib/index.common.js",
|
|
19
|
-
"module": "es/index.esm.js",
|
|
20
|
-
"unpkg": "lib/index.umd.js",
|
|
21
|
-
"jsdelivr": "lib/index.umd.js",
|
|
22
|
-
"typings": "types/index.d.ts",
|
|
23
|
-
"dependencies": {
|
|
24
|
-
"dom-zindex": "^1.0.4",
|
|
25
|
-
"xe-utils": "^3.5.27"
|
|
26
|
-
},
|
|
27
|
-
"devDependencies": {
|
|
28
|
-
"@types/node": "^20.12.12",
|
|
29
|
-
"@types/resize-observer-browser": "^0.1.11",
|
|
30
|
-
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
31
|
-
"@typescript-eslint/parser": "^6.21.0",
|
|
32
|
-
"@vue/cli-plugin-babel": "~5.0.0",
|
|
33
|
-
"@vue/cli-plugin-eslint": "~5.0.0",
|
|
34
|
-
"@vue/cli-plugin-router": "~5.0.0",
|
|
35
|
-
"@vue/cli-plugin-typescript": "~5.0.0",
|
|
36
|
-
"@vue/cli-plugin-vuex": "~5.0.0",
|
|
37
|
-
"@vue/cli-service": "~5.0.0",
|
|
38
|
-
"@vue/eslint-config-standard": "^6.1.0",
|
|
39
|
-
"@vue/eslint-config-typescript": "^9.1.0",
|
|
40
|
-
"core-js": "^3.8.3",
|
|
41
|
-
"del": "^6.1.1",
|
|
42
|
-
"eslint": "^7.32.0",
|
|
43
|
-
"eslint-plugin-import": "^2.29.1",
|
|
44
|
-
"eslint-plugin-node": "^11.1.0",
|
|
45
|
-
"eslint-plugin-promise": "^6.1.1",
|
|
46
|
-
"eslint-plugin-vue": "^8.0.3",
|
|
47
|
-
"gulp": "^4.0.2",
|
|
48
|
-
"gulp-autoprefixer": "^8.0.0",
|
|
49
|
-
"gulp-babel": "^8.0.0",
|
|
50
|
-
"gulp-clean-css": "^4.3.0",
|
|
51
|
-
"gulp-concat": "^2.6.1",
|
|
52
|
-
"gulp-rename": "^2.0.0",
|
|
53
|
-
"gulp-replace": "^1.1.4",
|
|
54
|
-
"gulp-sourcemaps": "^3.0.0",
|
|
55
|
-
"gulp-typescript": "^5.0.1",
|
|
56
|
-
"gulp-uglify": "^3.0.2",
|
|
57
|
-
"postcss": "^8.4.38",
|
|
58
|
-
"typescript": "~4.5.5",
|
|
59
|
-
"vue": "3.4.27"
|
|
60
|
-
},
|
|
61
|
-
"repository": {
|
|
62
|
-
"type": "git",
|
|
63
|
-
"url": "git+https://github.com/x-extends/vxe-core.git"
|
|
64
|
-
},
|
|
65
|
-
"keywords": [
|
|
66
|
-
"vxe",
|
|
67
|
-
"vxe-core",
|
|
68
|
-
"vxe-ui"
|
|
69
|
-
],
|
|
70
|
-
"author": {
|
|
71
|
-
"name": "Xu Liangzhan",
|
|
72
|
-
"email": "xu_liangzhan@163.com"
|
|
73
|
-
},
|
|
74
|
-
"license": "MIT",
|
|
75
|
-
"bugs": {
|
|
76
|
-
"url": "https://github.com/x-extends/vxe-core/issues"
|
|
77
|
-
}
|
|
78
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@vxe-ui/core",
|
|
3
|
+
"version": "1.0.8",
|
|
4
|
+
"description": "Vxe UI core library",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"update": "npm install --legacy-peer-deps",
|
|
7
|
+
"lib:pack": "vue-cli-service build --target lib --name index --dest lib_temp packages/index.ts",
|
|
8
|
+
"lib:modules": "gulp build",
|
|
9
|
+
"lib": "npm run lib:pack && npm run lib:modules"
|
|
10
|
+
},
|
|
11
|
+
"files": [
|
|
12
|
+
"lib",
|
|
13
|
+
"es",
|
|
14
|
+
"src",
|
|
15
|
+
"types",
|
|
16
|
+
"packages"
|
|
17
|
+
],
|
|
18
|
+
"main": "lib/index.common.js",
|
|
19
|
+
"module": "es/index.esm.js",
|
|
20
|
+
"unpkg": "lib/index.umd.js",
|
|
21
|
+
"jsdelivr": "lib/index.umd.js",
|
|
22
|
+
"typings": "types/index.d.ts",
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"dom-zindex": "^1.0.4",
|
|
25
|
+
"xe-utils": "^3.5.27"
|
|
26
|
+
},
|
|
27
|
+
"devDependencies": {
|
|
28
|
+
"@types/node": "^20.12.12",
|
|
29
|
+
"@types/resize-observer-browser": "^0.1.11",
|
|
30
|
+
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
31
|
+
"@typescript-eslint/parser": "^6.21.0",
|
|
32
|
+
"@vue/cli-plugin-babel": "~5.0.0",
|
|
33
|
+
"@vue/cli-plugin-eslint": "~5.0.0",
|
|
34
|
+
"@vue/cli-plugin-router": "~5.0.0",
|
|
35
|
+
"@vue/cli-plugin-typescript": "~5.0.0",
|
|
36
|
+
"@vue/cli-plugin-vuex": "~5.0.0",
|
|
37
|
+
"@vue/cli-service": "~5.0.0",
|
|
38
|
+
"@vue/eslint-config-standard": "^6.1.0",
|
|
39
|
+
"@vue/eslint-config-typescript": "^9.1.0",
|
|
40
|
+
"core-js": "^3.8.3",
|
|
41
|
+
"del": "^6.1.1",
|
|
42
|
+
"eslint": "^7.32.0",
|
|
43
|
+
"eslint-plugin-import": "^2.29.1",
|
|
44
|
+
"eslint-plugin-node": "^11.1.0",
|
|
45
|
+
"eslint-plugin-promise": "^6.1.1",
|
|
46
|
+
"eslint-plugin-vue": "^8.0.3",
|
|
47
|
+
"gulp": "^4.0.2",
|
|
48
|
+
"gulp-autoprefixer": "^8.0.0",
|
|
49
|
+
"gulp-babel": "^8.0.0",
|
|
50
|
+
"gulp-clean-css": "^4.3.0",
|
|
51
|
+
"gulp-concat": "^2.6.1",
|
|
52
|
+
"gulp-rename": "^2.0.0",
|
|
53
|
+
"gulp-replace": "^1.1.4",
|
|
54
|
+
"gulp-sourcemaps": "^3.0.0",
|
|
55
|
+
"gulp-typescript": "^5.0.1",
|
|
56
|
+
"gulp-uglify": "^3.0.2",
|
|
57
|
+
"postcss": "^8.4.38",
|
|
58
|
+
"typescript": "~4.5.5",
|
|
59
|
+
"vue": "3.4.27"
|
|
60
|
+
},
|
|
61
|
+
"repository": {
|
|
62
|
+
"type": "git",
|
|
63
|
+
"url": "git+https://github.com/x-extends/vxe-core.git"
|
|
64
|
+
},
|
|
65
|
+
"keywords": [
|
|
66
|
+
"vxe",
|
|
67
|
+
"vxe-core",
|
|
68
|
+
"vxe-ui"
|
|
69
|
+
],
|
|
70
|
+
"author": {
|
|
71
|
+
"name": "Xu Liangzhan",
|
|
72
|
+
"email": "xu_liangzhan@163.com"
|
|
73
|
+
},
|
|
74
|
+
"license": "MIT",
|
|
75
|
+
"bugs": {
|
|
76
|
+
"url": "https://github.com/x-extends/vxe-core/issues"
|
|
77
|
+
}
|
|
78
|
+
}
|
package/packages/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import VxeUI from './src/core'
|
|
2
|
-
|
|
3
|
-
export * from './src/core'
|
|
4
|
-
export default VxeUI
|
|
1
|
+
import VxeUI from './src/core'
|
|
2
|
+
|
|
3
|
+
export * from './src/core'
|
|
4
|
+
export default VxeUI
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import XEUtils from 'xe-utils'
|
|
2
|
-
|
|
3
|
-
import { VxeGlobalClipboard } from '../../types'
|
|
4
|
-
|
|
5
|
-
let copyElem: HTMLTextAreaElement
|
|
6
|
-
const clipStore = {
|
|
7
|
-
text: '',
|
|
8
|
-
html: ''
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
function handleText (text: string) {
|
|
12
|
-
if (!copyElem) {
|
|
13
|
-
copyElem = document.createElement('textarea')
|
|
14
|
-
copyElem.id = '$VxeCopy'
|
|
15
|
-
const styles = copyElem.style
|
|
16
|
-
styles.width = '48px'
|
|
17
|
-
styles.height = '24px'
|
|
18
|
-
styles.position = 'fixed'
|
|
19
|
-
styles.zIndex = '0'
|
|
20
|
-
styles.left = '-500px'
|
|
21
|
-
styles.top = '-500px'
|
|
22
|
-
document.body.appendChild(copyElem)
|
|
23
|
-
}
|
|
24
|
-
copyElem.value = text
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export const clipboard: VxeGlobalClipboard = {
|
|
28
|
-
getStore () {
|
|
29
|
-
return clipStore
|
|
30
|
-
},
|
|
31
|
-
setStore (data) {
|
|
32
|
-
Object.assign(clipStore, data || {})
|
|
33
|
-
},
|
|
34
|
-
/**
|
|
35
|
-
* 复制内容到剪贴板
|
|
36
|
-
*
|
|
37
|
-
* @param {String} content Text 内容
|
|
38
|
-
*/
|
|
39
|
-
copy (content: string | number) {
|
|
40
|
-
let result = false
|
|
41
|
-
try {
|
|
42
|
-
const text = XEUtils.toValueString(content)
|
|
43
|
-
handleText(text)
|
|
44
|
-
copyElem.select()
|
|
45
|
-
copyElem.setSelectionRange(0, copyElem.value.length)
|
|
46
|
-
result = document.execCommand('copy')
|
|
47
|
-
copyElem.blur()
|
|
48
|
-
clipStore.text = text
|
|
49
|
-
clipStore.html = ''
|
|
50
|
-
} catch (e) {}
|
|
51
|
-
return result
|
|
52
|
-
}
|
|
53
|
-
}
|
|
1
|
+
import XEUtils from 'xe-utils'
|
|
2
|
+
|
|
3
|
+
import { VxeGlobalClipboard } from '../../types'
|
|
4
|
+
|
|
5
|
+
let copyElem: HTMLTextAreaElement
|
|
6
|
+
const clipStore = {
|
|
7
|
+
text: '',
|
|
8
|
+
html: ''
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function handleText (text: string) {
|
|
12
|
+
if (!copyElem) {
|
|
13
|
+
copyElem = document.createElement('textarea')
|
|
14
|
+
copyElem.id = '$VxeCopy'
|
|
15
|
+
const styles = copyElem.style
|
|
16
|
+
styles.width = '48px'
|
|
17
|
+
styles.height = '24px'
|
|
18
|
+
styles.position = 'fixed'
|
|
19
|
+
styles.zIndex = '0'
|
|
20
|
+
styles.left = '-500px'
|
|
21
|
+
styles.top = '-500px'
|
|
22
|
+
document.body.appendChild(copyElem)
|
|
23
|
+
}
|
|
24
|
+
copyElem.value = text
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export const clipboard: VxeGlobalClipboard = {
|
|
28
|
+
getStore () {
|
|
29
|
+
return clipStore
|
|
30
|
+
},
|
|
31
|
+
setStore (data) {
|
|
32
|
+
Object.assign(clipStore, data || {})
|
|
33
|
+
},
|
|
34
|
+
/**
|
|
35
|
+
* 复制内容到剪贴板
|
|
36
|
+
*
|
|
37
|
+
* @param {String} content Text 内容
|
|
38
|
+
*/
|
|
39
|
+
copy (content: string | number) {
|
|
40
|
+
let result = false
|
|
41
|
+
try {
|
|
42
|
+
const text = XEUtils.toValueString(content)
|
|
43
|
+
handleText(text)
|
|
44
|
+
copyElem.select()
|
|
45
|
+
copyElem.setSelectionRange(0, copyElem.value.length)
|
|
46
|
+
result = document.execCommand('copy')
|
|
47
|
+
copyElem.blur()
|
|
48
|
+
clipStore.text = text
|
|
49
|
+
clipStore.html = ''
|
|
50
|
+
} catch (e) {}
|
|
51
|
+
return result
|
|
52
|
+
}
|
|
53
|
+
}
|
package/packages/src/commands.ts
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
|
-
import XEUtils from 'xe-utils'
|
|
2
|
-
import { log } from './log'
|
|
3
|
-
|
|
4
|
-
import { VxeGlobalCommands } from '../../types'
|
|
5
|
-
|
|
6
|
-
class VXECommandsStore {
|
|
7
|
-
private store: any = {}
|
|
8
|
-
|
|
9
|
-
mixin (options: any): VXECommandsStore {
|
|
10
|
-
XEUtils.each(options, (item, key) => {
|
|
11
|
-
this.add(key, item)
|
|
12
|
-
})
|
|
13
|
-
return this
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
has (name: string): boolean {
|
|
17
|
-
return !!this.get(name)
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
get (name: string): any {
|
|
21
|
-
return this.store[name]
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
add (name: string, render: any): VXECommandsStore {
|
|
25
|
-
const conf = this.store[name]
|
|
26
|
-
// 兼容
|
|
27
|
-
if (XEUtils.isFunction(render)) {
|
|
28
|
-
if (process.env.VUE_APP_VXE_ENV === 'development') {
|
|
29
|
-
log.warn('vxe.error.delProp', ['commands -> callback', 'commandMethod'])
|
|
30
|
-
}
|
|
31
|
-
render = {
|
|
32
|
-
commandMethod: render
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// 检测是否覆盖
|
|
37
|
-
if (process.env.VUE_APP_VXE_ENV === 'development') {
|
|
38
|
-
const confKeys = XEUtils.keys(conf)
|
|
39
|
-
XEUtils.each(render, (item, key) => {
|
|
40
|
-
if (confKeys.includes(key)) {
|
|
41
|
-
log.warn('vxe.error.coverProp', [name, key])
|
|
42
|
-
}
|
|
43
|
-
})
|
|
44
|
-
}
|
|
45
|
-
this.store[name] = conf ? XEUtils.merge(conf, render) : render
|
|
46
|
-
return this
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
delete (name: string): void {
|
|
50
|
-
delete this.store[name]
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
forEach (callback: any): void {
|
|
54
|
-
XEUtils.objectEach(this.store, callback)
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export const commands = new VXECommandsStore() as VxeGlobalCommands
|
|
59
|
-
|
|
60
|
-
if (process.env.VUE_APP_VXE_ENV === 'development') {
|
|
61
|
-
Object.assign(commands, { _name: 'Commands' })
|
|
62
|
-
}
|
|
1
|
+
import XEUtils from 'xe-utils'
|
|
2
|
+
import { log } from './log'
|
|
3
|
+
|
|
4
|
+
import { VxeGlobalCommands } from '../../types'
|
|
5
|
+
|
|
6
|
+
class VXECommandsStore {
|
|
7
|
+
private store: any = {}
|
|
8
|
+
|
|
9
|
+
mixin (options: any): VXECommandsStore {
|
|
10
|
+
XEUtils.each(options, (item, key) => {
|
|
11
|
+
this.add(key, item)
|
|
12
|
+
})
|
|
13
|
+
return this
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
has (name: string): boolean {
|
|
17
|
+
return !!this.get(name)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
get (name: string): any {
|
|
21
|
+
return this.store[name]
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
add (name: string, render: any): VXECommandsStore {
|
|
25
|
+
const conf = this.store[name]
|
|
26
|
+
// 兼容
|
|
27
|
+
if (XEUtils.isFunction(render)) {
|
|
28
|
+
if (process.env.VUE_APP_VXE_ENV === 'development') {
|
|
29
|
+
log.warn('vxe.error.delProp', ['commands -> callback', 'commandMethod'])
|
|
30
|
+
}
|
|
31
|
+
render = {
|
|
32
|
+
commandMethod: render
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// 检测是否覆盖
|
|
37
|
+
if (process.env.VUE_APP_VXE_ENV === 'development') {
|
|
38
|
+
const confKeys = XEUtils.keys(conf)
|
|
39
|
+
XEUtils.each(render, (item, key) => {
|
|
40
|
+
if (confKeys.includes(key)) {
|
|
41
|
+
log.warn('vxe.error.coverProp', [name, key])
|
|
42
|
+
}
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
this.store[name] = conf ? XEUtils.merge(conf, render) : render
|
|
46
|
+
return this
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
delete (name: string): void {
|
|
50
|
+
delete this.store[name]
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
forEach (callback: any): void {
|
|
54
|
+
XEUtils.objectEach(this.store, callback)
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export const commands = new VXECommandsStore() as VxeGlobalCommands
|
|
59
|
+
|
|
60
|
+
if (process.env.VUE_APP_VXE_ENV === 'development') {
|
|
61
|
+
Object.assign(commands, { _name: 'Commands' })
|
|
62
|
+
}
|