UNPKG

data-center-components

Version:
1,500 lines (1,332 loc) 222 kB
/******/ (function() { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ 601: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "default": function() { return /* binding */ src; } }); ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-about-us/src/index.vue?vue&type=template&id=203f2860&scoped=true var render = function render() { var _vm = this, _c = _vm._self._c; return _c('a-modal', { staticClass: "adout-wrap", attrs: { "title": "关于我们", "centered": true, "mask-closable": false, "closable": true, "body-style": { padding: '24px' } }, on: { "cancel": _vm.handleCancel }, model: { value: _vm.visible, callback: function ($$v) { _vm.visible = $$v; }, expression: "visible" } }, [_c('div', { staticClass: "logo-wrap" }, [_c('img', { staticClass: "logo-item", attrs: { "src": _vm.logoUrl, "alt": "" } }), _c('p', [_vm._v("版本信息:" + _vm._s(_vm.version))])]), _c('template', { slot: "footer" }, [_c('p', { staticClass: "footer-info" }, [_vm._v("Copyright © 2023浙江中控信息产业股份有限公司")])])], 2); }; var staticRenderFns = []; ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-about-us/src/index.vue?vue&type=script&lang=js /* harmony default export */ var srcvue_type_script_lang_js = ({ name: 'supconit-about-us', data() { return { visible: false, logoUrl: __webpack_require__(7636), version: undefined }; }, methods: { showModal(version) { this.version = version; this.visible = true; }, handleCancel() { this.visible = false; } } }); ;// CONCATENATED MODULE: ./packages/supconit-about-us/src/index.vue?vue&type=script&lang=js /* harmony default export */ var supconit_about_us_srcvue_type_script_lang_js = (srcvue_type_script_lang_js); ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-21.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-21.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-21.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-21.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-about-us/src/index.vue?vue&type=style&index=0&id=203f2860&prod&scoped=true&lang=scss // extracted by mini-css-extract-plugin ;// CONCATENATED MODULE: ./packages/supconit-about-us/src/index.vue?vue&type=style&index=0&id=203f2860&prod&scoped=true&lang=scss // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(1001); ;// CONCATENATED MODULE: ./packages/supconit-about-us/src/index.vue ; /* normalize component */ var component = (0,componentNormalizer/* default */.Z)( supconit_about_us_srcvue_type_script_lang_js, render, staticRenderFns, false, null, "203f2860", null ) /* harmony default export */ var src = (component.exports); /***/ }), /***/ 3514: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "default": function() { return /* binding */ src; } }); ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-block-title/src/index.vue?vue&type=template&id=7d2b37d5&scoped=true var render = function render() { var _vm = this, _c = _vm._self._c; return _c('div', [_c('div', { staticClass: "block_title", class: { has_padding: _vm.hasPadding } }, [_c('div', { staticClass: "title_text", class: { has_bar: _vm.hasBar } }, [_vm.imgURL ? _c('img', { attrs: { "src": _vm.imgURL, "alt": "" } }) : _vm._e(), _c('span', { staticClass: "pure_text" }, [_vm._v(_vm._s(_vm.title))])]), _c('div', { staticClass: "more" }, [_vm._t("more")], 2), _c('div', { staticClass: "ml_auto" }, [_vm._t("right")], 2)])]); }; var staticRenderFns = []; // EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"} var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__(3797); ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-block-title/src/index.vue?vue&type=script&lang=js const __default__ = { name: 'supconit-block-title', props: { title: { type: String, default: '默认标题' }, hasPadding: { type: Boolean, default: false }, fontSize: { type: String, default: '18px' }, height: { type: String, default: '20px' }, fontWeight: { type: String, default: '400' }, color: { type: String, default: 'rgba(0, 0, 0, 0.65)' }, imgURL: { // 目前只支持 require()导入的图片 // eg :imgURL="require('@/asd/ccc.png')" type: String, default: '' }, // 支持背景图缩放 默认原图比例 imgScale: { type: String, default: '' }, hasBar: { type: Boolean, default: true } } }; const __injectCSSVars__ = () => { (0,external_commonjs_vue_commonjs2_vue_root_Vue_.useCssVars)((_vm, _setup) => ({ "241e1058": _vm.fontSize, "171038fb": _vm.color, "5a1e8ae2": _vm.height, "c9228de2": _vm.fontWeight, "b7a07310": _vm.barColor, "378d5aa2": _vm.imgScale })); }; const __setup__ = __default__.setup; __default__.setup = __setup__ ? (props, ctx) => { __injectCSSVars__(); return __setup__(props, ctx); } : __injectCSSVars__; /* harmony default export */ var srcvue_type_script_lang_js = (__default__); ;// CONCATENATED MODULE: ./packages/supconit-block-title/src/index.vue?vue&type=script&lang=js /* harmony default export */ var supconit_block_title_srcvue_type_script_lang_js = (srcvue_type_script_lang_js); ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-21.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-21.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-21.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-21.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-block-title/src/index.vue?vue&type=style&index=0&id=7d2b37d5&prod&lang=scss&scoped=true // extracted by mini-css-extract-plugin ;// CONCATENATED MODULE: ./packages/supconit-block-title/src/index.vue?vue&type=style&index=0&id=7d2b37d5&prod&lang=scss&scoped=true // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(1001); ;// CONCATENATED MODULE: ./packages/supconit-block-title/src/index.vue ; /* normalize component */ var component = (0,componentNormalizer/* default */.Z)( supconit_block_title_srcvue_type_script_lang_js, render, staticRenderFns, false, null, "7d2b37d5", null ) /* harmony default export */ var src = (component.exports); /***/ }), /***/ 2319: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "default": function() { return /* binding */ src; } }); ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-custom-status/src/index.vue?vue&type=template&id=23286ea0&scoped=true var render = function render() { var _vm$filerStatus, _vm$filerStatus2, _vm$filerStatus3, _vm$filerStatus4, _vm$filerStatus5, _vm$filerStatus6; var _vm = this, _c = _vm._self._c; return _c('div', [_c('span', { class: (_vm$filerStatus = _vm.filerStatus(_vm.status)) !== null && _vm$filerStatus !== void 0 && _vm$filerStatus.color ? (_vm$filerStatus2 = _vm.filerStatus(_vm.status)) === null || _vm$filerStatus2 === void 0 ? void 0 : _vm$filerStatus2.color : '' }, [(_vm$filerStatus3 = _vm.filerStatus(_vm.status)) !== null && _vm$filerStatus3 !== void 0 && _vm$filerStatus3.type ? _c('i', { staticClass: "anticon anticon-svg" }, [_c('svg-icon', { attrs: { "iconFileName": (_vm$filerStatus4 = _vm.filerStatus(_vm.status)) === null || _vm$filerStatus4 === void 0 ? void 0 : _vm$filerStatus4.type } })], 1) : _vm._e(), _vm._v(" " + _vm._s(((_vm$filerStatus5 = _vm.filerStatus(_vm.status)) === null || _vm$filerStatus5 === void 0 ? void 0 : _vm$filerStatus5.text) === '无' ? '' : (_vm$filerStatus6 = _vm.filerStatus(_vm.status)) === null || _vm$filerStatus6 === void 0 ? void 0 : _vm$filerStatus6.text) + " ")])]); }; var staticRenderFns = []; ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-custom-status/src/index.vue?vue&type=script&lang=js /* harmony default export */ var srcvue_type_script_lang_js = ({ name: 'supconit-custom-status', props: { status: { required: false }, customTypes: { type: Array, required: false, default: () => [ // { text: '待发布、未发布、待审核', value: 'UNRELEASED', color: 'warning-color', type: 'clock-circle' } // { text: '已发布、已开启、成功、正常、运行成功、使用中、启用', value: 'UNRELEASED', color: 'success-color', type: 'check-circle' } // { text: '已下线、告警、停止、停用', value: 'UNRELEASED', color: 'error-color', type: 'exclamation-circle' } // { text: '审批中、审核中、部署中、运行中、分发中', value: 'UNRELEASED', color: 'primary-color', type: 'in-progress' } // { text: '失败、运行失败、拒绝、未通过、禁用', value: 'UNRELEASED', color: 'error-color', type: 'close-circle' } ] } }, methods: { filerStatus(value) { let item = this.customTypes.find(t => t.value == value); return item; } } }); ;// CONCATENATED MODULE: ./packages/supconit-custom-status/src/index.vue?vue&type=script&lang=js /* harmony default export */ var supconit_custom_status_srcvue_type_script_lang_js = (srcvue_type_script_lang_js); ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-21.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-21.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-21.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-21.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-custom-status/src/index.vue?vue&type=style&index=0&id=23286ea0&prod&lang=scss&scoped=true // extracted by mini-css-extract-plugin ;// CONCATENATED MODULE: ./packages/supconit-custom-status/src/index.vue?vue&type=style&index=0&id=23286ea0&prod&lang=scss&scoped=true // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(1001); ;// CONCATENATED MODULE: ./packages/supconit-custom-status/src/index.vue ; /* normalize component */ var component = (0,componentNormalizer/* default */.Z)( supconit_custom_status_srcvue_type_script_lang_js, render, staticRenderFns, false, null, "23286ea0", null ) /* harmony default export */ var src = (component.exports); /***/ }), /***/ 1957: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "default": function() { return /* binding */ src; } }); ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-icon/src/index.vue?vue&type=template&id=293e30c4&scoped=true var render = function render() { var _vm = this, _c = _vm._self._c; return _vm.iconFileName.indexOf('el-icon-') === 0 ? _c('i', { class: _vm.iconFileName }) : _c('svg', _vm._g({ staticClass: "svg-icon", attrs: { "aria-hidden": "true" } }, _vm.$listeners), [_c('use', { attrs: { "xlink:href": `#icon-${_vm.iconFileName}` } })]); }; var staticRenderFns = []; ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-icon/src/index.vue?vue&type=script&lang=js /* harmony default export */ var srcvue_type_script_lang_js = ({ name: 'supconit-icon', props: { iconFileName: { type: String, required: true } } }); ;// CONCATENATED MODULE: ./packages/supconit-icon/src/index.vue?vue&type=script&lang=js /* harmony default export */ var supconit_icon_srcvue_type_script_lang_js = (srcvue_type_script_lang_js); ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-11.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-11.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-11.use[2]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-icon/src/index.vue?vue&type=style&index=0&id=293e30c4&prod&scoped=true&lang=css // extracted by mini-css-extract-plugin ;// CONCATENATED MODULE: ./packages/supconit-icon/src/index.vue?vue&type=style&index=0&id=293e30c4&prod&scoped=true&lang=css // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(1001); ;// CONCATENATED MODULE: ./packages/supconit-icon/src/index.vue ; /* normalize component */ var component = (0,componentNormalizer/* default */.Z)( supconit_icon_srcvue_type_script_lang_js, render, staticRenderFns, false, null, "293e30c4", null ) /* harmony default export */ var src = (component.exports); /***/ }), /***/ 3585: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "default": function() { return /* binding */ src; } }); ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-popup/src/index.vue?vue&type=template&id=5cec1b57&scoped=true var render = function render() { var _vm = this, _c = _vm._self._c; return _c('div', { staticClass: "popup" }, [_c('a-modal', { attrs: { "title": _vm.params.title, "maskClosable": false, "closable": true, "centered": "" }, on: { "cancel": _vm.handleCancel }, model: { value: _vm.visible, callback: function ($$v) { _vm.visible = $$v; }, expression: "visible" } }, [_c('div', { staticClass: "content-wrap" }, [_vm.params.iconType === 1 ? _c('a-icon', { staticClass: "warning-color popup-icon", attrs: { "type": "exclamation-circle", "theme": "filled" } }) : _vm._e(), _vm.params.iconType === 2 ? _c('a-icon', { staticClass: "success-color popup-icon", attrs: { "type": "check-circle", "theme": "filled" } }) : _vm._e(), _c('p', { staticClass: "popup-work" }, [_vm._v(_vm._s(_vm.params.content))])], 1), _c('template', { slot: "footer" }, [_c('a-button', { attrs: { "type": "primary", "loading": _vm.btnLoading }, on: { "click": _vm.handleOk } }, [_vm._v(" 确定 ")]), _c('a-button', { on: { "click": _vm.handleCancel } }, [_vm._v(" 取消 ")])], 1)], 2)], 1); }; var staticRenderFns = []; ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-popup/src/index.vue?vue&type=script&lang=js /* harmony default export */ var srcvue_type_script_lang_js = ({ name: 'supconit-popup', props: { popupData: { type: Object, required: false, default: () => { return { title: '删除确认', content: '删除后将无法恢复,确定要删除吗?' }; } } }, watch: { popupData(newName) { this.params = newName; this.params.iconType = newName.iconType || 1; } }, data() { return { visible: false, btnLoading: false, params: { title: '删除确认', content: '删除后将无法恢复,确定要删除吗?', iconType: 1 } }; }, methods: { showModal() { this.visible = true; }, loading() { // 按钮loading this.btnLoading = true; }, unloading() { // 取消按钮loading this.btnLoading = false; }, handleOk() { this.$emit('successFn'); this.visible = false; }, handleCancel() { this.visible = false; } } }); ;// CONCATENATED MODULE: ./packages/supconit-popup/src/index.vue?vue&type=script&lang=js /* harmony default export */ var supconit_popup_srcvue_type_script_lang_js = (srcvue_type_script_lang_js); ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-21.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-21.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-21.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-21.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-popup/src/index.vue?vue&type=style&index=0&id=5cec1b57&prod&scoped=true&lang=scss // extracted by mini-css-extract-plugin ;// CONCATENATED MODULE: ./packages/supconit-popup/src/index.vue?vue&type=style&index=0&id=5cec1b57&prod&scoped=true&lang=scss // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(1001); ;// CONCATENATED MODULE: ./packages/supconit-popup/src/index.vue ; /* normalize component */ var component = (0,componentNormalizer/* default */.Z)( supconit_popup_srcvue_type_script_lang_js, render, staticRenderFns, false, null, "5cec1b57", null ) /* harmony default export */ var src = (component.exports); /***/ }), /***/ 3859: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "default": function() { return /* binding */ src; } }); ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-switch-tabs/src/index.vue?vue&type=template&id=0e3dd32e&scoped=true var render = function render() { var _vm = this, _c = _vm._self._c, _setup = _vm._self._setupProxy; return _c('div', { staticClass: "switch_tabs" }, [_c('a-tabs', { attrs: { "hide-add": "", "type": "editable-card" }, on: { "edit": _setup.onEdit }, model: { value: _setup.currentKey, callback: function ($$v) { _setup.currentKey = $$v; }, expression: "currentKey" } }, _vm._l(_vm.tabs, function (tab, index) { return _c('a-tab-pane', { key: `${tab.key}`, attrs: { "tab": tab.label, "closable": tab.closable || index !== 0 } }); }), 1)], 1); }; var staticRenderFns = []; // EXTERNAL MODULE: ./node_modules/core-js/modules/es.array.push.js var es_array_push = __webpack_require__(7658); // EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"} var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__(3797); // EXTERNAL MODULE: ./node_modules/deepcopy/umd/deepcopy.js var deepcopy = __webpack_require__(8601); var deepcopy_default = /*#__PURE__*/__webpack_require__.n(deepcopy); ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-switch-tabs/src/index.vue?vue&type=script&setup=true&lang=js const __default__ = { name: 'supconit-switch-tabs' }; /* harmony default export */ var srcvue_type_script_setup_true_lang_js = (/*#__PURE__*/Object.assign(__default__, { props: { tabs: { type: Array, default: () => [] }, currentTab: { type: Object, default: () => {} } }, emits: ['update:currentTab', 'update:tabs', 'change'], setup(__props, { expose, emit: emits }) { const props = __props; // #region ********** 库&组件等引入 start **************/ const copy = (deepcopy_default()); // #endregion ******* 库&组件等引入 ~end~ **************/ // #region ********** props && emits start **************/ // #endregion ******* props && emits ~end~ **************/ // #region ********** 通用部分 start **************/ const { proxy } = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.getCurrentInstance)(); // #endregion ******* 通用部分 ~end~ **************/ // #region ********** currentTab相关 start **************/ /** 当前tab */ const tabInfo = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)({ currentSwitchTabKey: '', menuFlag: Math.random(), // 左侧菜单点击信号, switchTabs: [] }); /** 选中当前tab */ const selectCurrentTab = tab => { tabInfo.value.currentSwitchTabKey = tab === null || tab === void 0 ? void 0 : tab.key; emits('update:currentTab', tab); emits('change', tab); }; const closeCurrentTab = () => { onEdit(currentKey.value, 'remove'); }; // #endregion ******* currentTab相关 ~end~ **************/ // #region ********** 初始化相关 start **************/ // #endregion ******* 初始化相关 ~end~ **************/ // #region ********** 注释 start **************/ /** 当前tab的key */ const currentKey = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)({ get() { var _props$currentTab; return (_props$currentTab = props.currentTab) === null || _props$currentTab === void 0 ? void 0 : _props$currentTab.key; }, set(newV) { const theTab = props.tabs.find(item => item.key === newV); selectCurrentTab(theTab); // doSaveIntoStore(props.tabs); } }); /** 编辑修改 */ const onEdit = (key, type) => { if (type === 'remove') { const resultArr = [...props.tabs].filter(item => item.key !== key); if (currentKey.value !== key) { endWatchFlag = true; } emits('update:tabs', resultArr); } }; // #endregion ******* 注释 ~end~ **************/ // #region ********** tabs变化相关 start **************/ /** 定义参数,是否处于监听终止模式 * 发现新大陆 * @return {*} */ let endWatchFlag = false; /** 对tabs进行数据清理 * 功能:1清除重复key的项, * @return {*}目标tab */ const doFilterTabs = fakeTabs => { // 目前只支持添加在最后一位,且一次性只能增加一个 let theLastTab = fakeTabs.pop(); let theTargetTab; // 如果加入的tab有Key 则需要判断唯一性 // 默认取出最后一项,如果最后一项唯一,则归还给原数组 // 最后赋值给props.tabs if (!['', null, undefined].includes(theLastTab.key)) { // 判断唯一性 , theTargetTab = fakeTabs.find(item => item.key === theLastTab.key); if (theTargetTab) { // 如果已经拥有,则不还了(耍赖),v1.0 // 如果已经拥有,则替换(耍赖),v1.1 const thrTargetIndex = fakeTabs.findIndex(item => item.key === theLastTab.key); fakeTabs.splice(thrTargetIndex, 1, theLastTab); theTargetTab = theLastTab; endWatchFlag = true; emits('update:tabs', fakeTabs); } else { // 否则归还 fakeTabs.push(theLastTab); // theTargetTab 就是 theLastTab theTargetTab = theLastTab; } } return theTargetTab; }; /** 最新的免费的key */ const freeKey = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.ref)(1); /** 发放key */ const getFreeKey = () => { return `switchKey${freeKey.value++}`; }; /** 对无key的项目赋予Key */ const doGiftTabsKey = fakeTabs => { fakeTabs.forEach(tab => { if (!tab.key) { tab.key = getFreeKey(); } }); emits('update:tabs', fakeTabs); endWatchFlag = true; }; /** 初始化 */ const echoTabs = () => { var _commonPart$switchTab; let name = proxy.$route.name.split('.')[0]; const commonPart = JSON.parse(sessionStorage.getItem(name)); if (!(commonPart !== null && commonPart !== void 0 && (_commonPart$switchTab = commonPart.switchTabs) !== null && _commonPart$switchTab !== void 0 && _commonPart$switchTab.length)) return; emits('update:tabs', commonPart.switchTabs); // 更新currentTab (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)(() => { currentKey.value = commonPart.currentSwitchTabKey; }); }; /** 监听tabs变化 * @return {*} */ const startWatch = () => { return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.watch)(() => props.tabs, newV => { // 总控制,强制停止监听 if (endWatchFlag || !(newV !== null && newV !== void 0 && newV.length)) { endWatchFlag = false; return; } const fakeTabs = copy(newV); doGiftTabsKey(fakeTabs); const theTargetTab = doFilterTabs(fakeTabs); // selectCurrentTab(theTargetTab); // 当tab属性变化时 仅仅通过key无法进行处理 // currentKey.value = theTargetTab.key selectCurrentTab(theTargetTab); tabInfo.value.switchTabs = fakeTabs; let info = JSON.stringify(tabInfo.value); let name = proxy.$route.name.split('.')[0]; sessionStorage.setItem(name, info); } // { // immediate: true // } ); }; proxy.$router.beforeEach((to, from, next) => { tabInfo.value.switchTabs = []; tabInfo.value.currentSwitchTabKey = ''; tabInfo.value.menuFlag = Math.random(); let info = JSON.stringify(tabInfo.value); let name = from.name.split('.')[0]; sessionStorage.setItem(name, info); next(); }); // #endregion ******* tabs变化相关 ~end~ **************/ // #region ********** 初始化 start **************/ startWatch(); /** 初始化 */ const initAll = () => { echoTabs(); }; (0,external_commonjs_vue_commonjs2_vue_root_Vue_.onMounted)(() => { initAll(); }); // #endregion ******* 初始化 ~end~ **************/ // #region ********** 导出区域 start **************/ expose({ closeCurrentTab, emits }); // #endregion ******* 导出区域 ~end~ **************/ // #region ********** 测试区域 start **************/ // #endregion ******* 测试区域 ~end~ **************/ return { __sfc: true, copy, props, emits, proxy, tabInfo, selectCurrentTab, closeCurrentTab, currentKey, onEdit, endWatchFlag, doFilterTabs, freeKey, getFreeKey, doGiftTabsKey, echoTabs, startWatch, initAll }; } })); ;// CONCATENATED MODULE: ./packages/supconit-switch-tabs/src/index.vue?vue&type=script&setup=true&lang=js /* harmony default export */ var supconit_switch_tabs_srcvue_type_script_setup_true_lang_js = (srcvue_type_script_setup_true_lang_js); ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-21.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-21.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-21.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-21.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-switch-tabs/src/index.vue?vue&type=style&index=0&id=0e3dd32e&prod&lang=scss&scoped=true // extracted by mini-css-extract-plugin ;// CONCATENATED MODULE: ./packages/supconit-switch-tabs/src/index.vue?vue&type=style&index=0&id=0e3dd32e&prod&lang=scss&scoped=true // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(1001); ;// CONCATENATED MODULE: ./packages/supconit-switch-tabs/src/index.vue ; /* normalize component */ var component = (0,componentNormalizer/* default */.Z)( supconit_switch_tabs_srcvue_type_script_setup_true_lang_js, render, staticRenderFns, false, null, "0e3dd32e", null ) /* harmony default export */ var src = (component.exports); /***/ }), /***/ 5110: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { "default": function() { return /* binding */ src; } }); ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/loaders/templateLoader.js??ruleSet[1].rules[4]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-table/src/index.vue?vue&type=template&id=1cb88c9a&scoped=true var render = function render() { var _vm$cfg$data, _vm$cfg; var _vm = this, _c = _vm._self._c; return _c('div', [_c('a-table', { staticClass: "supcon-table-slote", attrs: { "locale": _vm.locale, "size": "middle", "rowKey": _vm.cfg.rowKey, "row-selection": _vm.cfg.selectHide ? undefined : { fixed: false, selectedRowKeys: _vm.selectedRowKeys, onChange: _vm.onSelectChange, onSelect: _vm.cfg.onSelect ? _vm.cfg.onSelect : _vm.onSelect, onSelectAll: _vm.cfg.onSelectAll ? _vm.cfg.onSelectAll : _vm.onSelectAll, getCheckboxProps: _vm.cfg.getCheckboxProps ? _vm.cfg.getCheckboxProps : _vm.getCheckboxProps, selections: false, type: _vm.cfg.isMulCheckbox ? 'checkbox' : 'radio' }, "columns": _vm.cfg.columns, "data-source": _vm.cfg.data, "pagination": false, "loading": _vm.loading, "scroll": { y: (_vm$cfg$data = _vm.cfg.data) !== null && _vm$cfg$data !== void 0 && _vm$cfg$data.length ? _vm.tableHeight : 0, x: (_vm$cfg = _vm.cfg) !== null && _vm$cfg !== void 0 && _vm$cfg.scrollX ? 0 : 1300 } }, on: { "change": _vm.handleTableChange }, scopedSlots: _vm._u([_vm._l(_vm.cfg.columns, function (column) { return { key: column.scopedSlots ? column.scopedSlots.filterDropdown : '', fn: function (text, record, tabIndex) { return [_vm._t(column.scopedSlots ? column.scopedSlots.filterDropdown : '', null, { "scope": record, "index": tabIndex })]; } }; }), _vm._l(_vm.cfg.columns, function (column) { return { key: column.scopedSlots ? column.scopedSlots.customRender : '', fn: function (text, record, tabIndex) { return [_vm._t(column.scopedSlots ? column.scopedSlots.customRender : '', null, { "scope": record, "index": tabIndex })]; } }; }), _vm._l(_vm.cfg.columns, function (column) { return { key: column.scopedSlots ? column.scopedSlots.filterIcon : '', fn: function (text, record, tabIndex) { return [_vm._t(column.scopedSlots ? column.scopedSlots.filterIcon : '', null, { "scope": record, "index": tabIndex })]; } }; }), { key: _vm.cfg.expandedRowRender ? 'expandedRowRender' : '', fn: function (text, record, tabIndex) { return _c('p', { staticStyle: { "margin": "0" } }, [_vm._t("expandedRowRender", null, { "scope": record, "index": tabIndex })], 2); } }], null, true) }), _vm.page.total > 0 && _vm.cfg.paginationShow ? _c('div', { staticClass: "pagination-wrap" }, [_c('span', { staticClass: "total-text" }, [_vm._v("共 " + _vm._s(_vm.page.total) + " 项数据")]), !_vm.cfg.noshowPagination ? _c('a-pagination', { attrs: { "page-size-options": _vm.cfg.pageSizeOptions ? _vm.cfg.pageSizeOptions : _vm.pageSizeOptions, "total": _vm.page.total, "item-render": _vm.itemRender, "showQuickJumper": "", "show-size-changer": "", "page-size": _vm.page.size }, on: { "change": _vm.pageChange, "showSizeChange": _vm.onShowSizeChange }, scopedSlots: _vm._u([{ key: "buildOptionText", fn: function (props) { return [_c('span', [_vm._v(_vm._s(props.value) + "条/页")])]; } }], null, false, 198454938), model: { value: _vm.page.start, callback: function ($$v) { _vm.$set(_vm.page, "start", $$v); }, expression: "page.start" } }) : _vm._e()], 1) : _vm._e()], 1); }; var staticRenderFns = []; // EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"} var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__(3797); var external_commonjs_vue_commonjs2_vue_root_Vue_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_vue_commonjs2_vue_root_Vue_); // EXTERNAL MODULE: ./node_modules/vue-draggable-resizable/dist/VueDraggableResizable.umd.min.js var VueDraggableResizable_umd_min = __webpack_require__(6347); var VueDraggableResizable_umd_min_default = /*#__PURE__*/__webpack_require__.n(VueDraggableResizable_umd_min); ;// CONCATENATED MODULE: ./node_modules/babel-loader/lib/index.js??clonedRuleSet-39.use[0]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-table/src/index.vue?vue&type=script&lang=js external_commonjs_vue_commonjs2_vue_root_Vue_default().component('vue-draggable-resizable', (VueDraggableResizable_umd_min_default())); /* harmony default export */ var srcvue_type_script_lang_js = ({ name: 'supconit-table', props: { config: Object }, data() { return { tableHeight: this.config.tableHeight || window.document.documentElement.clientHeight - 345, setMinwidth: this.config.setMinwidth || false, cfg: { rowKey: 'id', ...this.config }, locale: { emptyText: '暂无数据' }, selectedRowKeys: [], // Check here to configure the default column selectedRows: [], loading: false, paginationShow: true, pageSizeOptions: ['10', '20', '30', '40', '50'], page: { size: this.config.size || 20, start: 1, total: 0 }, randomNum: 0 }; }, watch: { 'config.columns': { handler: function (val) { this.cfg.columns = val; }, deep: true }, 'config.data': { handler: function (val) { this.cfg.data = val; } }, 'config.getCheckboxProps': { handler: function (val) { this.cfg.getCheckboxProps = val || (() => {}); } }, 'config.tableHeight': { handler: function (val) { this.tableHeight = val; } }, 'config.tableWidth': { handler: function (val) { this.tableWidth = val; } }, 'config.rowKey': { handler: function (val) { this.cfg.rowKey = val; } } }, created() { if (!this.cfg.unLoad) this.load(); }, mounted() { this.initStall(); }, methods: { initStall() { // 表格初始化 window.onresize = () => { return (() => { this.tableHeight = window.document.documentElement.clientHeight - 350; })(); }; }, resetData() { this.cfg.data = []; }, // 获取勾选的值 onSelectChange(selectedRowKeys, selectedRows) { this.selectedRowKeys = selectedRowKeys; this.selectedRows = selectedRows; }, onSelect() {}, onSelectAll() {}, // 全选 getCheckboxProps() { // 选择框的默认属性配置 return {}; }, // 条数改变 onShowSizeChange(current, pageSize) { this.page.start = 1; this.page.size = pageSize; this.load(); }, // 页数改变 pageChange(page, pageSize) { this.page.start = page; this.load(); // 跳转结束后清空快速跳转的页码 this.$nextTick(() => { document.querySelector('.ant-pagination-options-quick-jumper>input').value = ''; }); }, // 请求数据 load() { const { size, start } = this.page; const { loadData = params => Promise.resolve({}) } = this.config; this.loading = true; // 这里loadData的参数在初始化时只有分页所需的start和size,至于接口需要的其他参数,是在父组件的loadData中传递 loadData({ start, size }).then(({ data, total }) => { if (data.length === 0 && start > 1) { this.page.start--; this.load(); return; } this.cfg.data = data; this.page.start = start; this.page.total = total; this.$forceUpdate(); }).finally(() => { this.loading = false; }); setTimeout(() => { this.loading = false; }, 5000); }, // 一般在点击查询按钮或局部刷新表格列表时,可调用此方法,如果不传参数,则默认从第一页开始 isRevert为true重置size reload(isRevert, isStart = true) { if (isStart) { this.page.start = 1; this.selectedRows = []; this.selectedRowKeys = []; this.page.size = 20; } if (isRevert) this.page.size = 20; this.load(); }, // 筛选条件发生变化时触发 handleTableChange(pagination, filters, sorter) { this.cfg.columns.forEach(t => { if (t.filters) { t.filteredValue = filters[t.key]; } if (t.sorter) { t.sortOrder = sorter.columnKey === t.key && sorter.order; } }); pagination = this.page; const sorterItem = this.cfg.columns.find(t => t.sortOrder); let sorterColumn = null; if (sorterItem) { sorterColumn = { key: sorterItem.key, sort: sorterItem.sortOrder }; } this.$emit('handleTableChange', { pagination, filters, sorter, sorterColumn }); }, clearFilteredValue() { this.cfg.columns.forEach(t => { if (t.filters) { t.filteredValue = null; } if (t.sorter) { t.sortOrder = false; } }); }, // 分页器 itemRender(current, type, originalElement) { const h = this.$createElement; if (type === 'prev') { return h("a", [h("a-icon", { "attrs": { "type": 'left' } })]); } else if (type === 'next') { return h("a", [h("a-icon", { "attrs": { "type": 'right' } })]); } return originalElement; } } }); ;// CONCATENATED MODULE: ./packages/supconit-table/src/index.vue?vue&type=script&lang=js /* harmony default export */ var supconit_table_srcvue_type_script_lang_js = (srcvue_type_script_lang_js); ;// CONCATENATED MODULE: ./node_modules/mini-css-extract-plugin/dist/loader.js??clonedRuleSet-21.use[0]!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-21.use[1]!./node_modules/@vue/vue-loader-v15/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-21.use[2]!./node_modules/sass-loader/dist/cjs.js??clonedRuleSet-21.use[3]!./node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./packages/supconit-table/src/index.vue?vue&type=style&index=0&id=1cb88c9a&prod&scoped=true&lang=scss // extracted by mini-css-extract-plugin ;// CONCATENATED MODULE: ./packages/supconit-table/src/index.vue?vue&type=style&index=0&id=1cb88c9a&prod&scoped=true&lang=scss // EXTERNAL MODULE: ./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js var componentNormalizer = __webpack_require__(1001); ;// CONCATENATED MODULE: ./packages/supconit-table/src/index.vue ; /* normalize component */ var component = (0,componentNormalizer/* default */.Z)( supconit_table_srcvue_type_script_lang_js, render, staticRenderFns, false, null, "1cb88c9a", null ) /* harmony default export */ var src = (component.exports); /***/ }), /***/ 1001: /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": function() { return /* binding */ normalizeComponent; } /* harmony export */ }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier /* server only */, shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call( this, (options.functional ? this.parent : this).$root.$options.shadowRoot ) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functional component in vue file var originalRender = options.render options.render = function renderWithStyleInjection(h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ 8601: /***/ (function(module, __unused_webpack_exports, __webpack_require__) { __webpack_require__(2087); __webpack_require__(7658); /*! * @license deepcopy.js Copyright(c) 2013 sasa+1 * https://github.com/sasaplus1/deepcopy.js * Released under the MIT license. * * type-detect * Copyright(c) 2013 jake luer <jake@alogicalparadox.com> * MIT Licensed */ (function (global, factory) { true ? module.exports = factory() : 0; })(this, function () { 'use strict'; var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {}; function createCommonjsModule(fn, module) { return module = { exports: {} }, fn(module, module.exports), module.exports; } var typeDetect = createCommonjsModule(function (module, exports) { (function (global, factory) { module.exports = factory(); })(commonjsGlobal, function () { /* ! * type-detect * Copyright(c) 2013 jake luer <jake@alogicalparadox.com> * MIT Licensed */ var promiseExists = typeof Promise === 'function'; /* eslint-disable no-undef */ var globalObject = typeof self === 'object' ? self : commonjsGlobal; // eslint-disable-line id-blacklist var symbolExists = typeof Symbol !== 'undefined'; var mapExists = typeof Map !== 'undefined'; var setExists = typeof Set !== 'undefined'; var weakMapExists = typeof WeakMap !== 'undefined'; var weakSetExists = typeof WeakSet !== 'undefined'; var dataViewExists = typeof DataView !== 'undefined'; var symbolIteratorExists = symbolExists && typeof Symbol.iterator !== 'undefined'; var symbolToStringTagExists = symbolExists && typeof Symbol.toStringTag !== 'undefined'; var setEntriesExists = setExists && typeof Set.prototype.entries === 'function'; var mapEntriesExists = mapExists && typeof Map.prototype.entries === 'function'; var setIteratorPrototype = setEntriesExists && Object.getPrototypeOf(new Set().entries()); var mapIteratorPrototype = mapEntriesExists && Object.getPrototypeOf(new Map().entries()); var arrayIteratorExists = symbolIteratorExists && typeof Array.prototype[Symbol.iterator] === 'function'; var arrayIteratorPrototype = arrayIteratorExists && Object.getPrototypeOf([][Symbol.iterator]()); var stringIteratorExists = symbolIteratorExists && typeof String.prototype[Symbol.iterator] === 'function'; var stringIteratorPrototype = stringIteratorExists && Object.getPrototypeOf(''[Symbol.iterator]()); var toStringLeftSliceLength = 8; var toStringRightSliceLength = -1; /** * ### typeOf (obj) * * Uses `Object.prototype.toString` to determine the type of an object, * normalising behaviour across engine versions & well optimised. * * @param {Mixed} object * @return {String} object type * @api public */ function typeDetect(obj) { /* ! Speed optimisation * Pre: * string literal x 3,039,035 ops/sec ±1.62% (78 runs sampled) * boolean literal x 1,424,138 ops/sec ±4.54% (75 runs sampled) * number literal x 1,653,153 ops/sec ±1.91% (82 runs sampled) * undefined x 9,978,660 ops/sec ±1.92% (75 runs sampled) * function x 2,556,769 ops/sec ±1.73% (77 runs sampled) * Post: * string literal x 38,564,796 ops/sec ±1.15% (79 runs sampled) * boolean literal x 31,148,940 ops/sec ±1.10% (79 runs sampled) * number literal x 32,679,330 ops/sec ±1.90% (78 runs sampled) * undefined x 32,363,368 ops/sec ±1.07% (82 runs sampled) * function x 31,296,870 ops/sec ±0.96% (83 runs sampled) */ var typeofObj = typeof obj; if (typeofObj !== 'object') { return typeofObj; } /* ! Speed optimisation * Pre: * null x 28,645,765 ops/sec ±1.17% (82 runs sampled) * Post: * null x 36,428,962 ops/sec ±1.37% (84 runs sampled) */ if (obj === null) { return 'null'; } /* ! Spec Conformance * Test: `Object.prototype.toString.call(window)`` * - Node === "[object global]" * - Chrome === "[object global]" * - Firefox === "[object Window]" * - PhantomJS === "[object Window]" * - Safari === "[object Window]" * - IE 11 === "[object Window]" * - IE Edge === "[object Window]" * Test: `Object.prototype.toString.call(this)`` * - Chrome Worker === "[object global]" * - Firefox Worker === "[object DedicatedWorkerGlobalScope]" * - Safari Worker === "[object DedicatedWorkerGlobalScope]" * - IE 11 Worker === "[object WorkerGlobalScope]" * - IE Edge Worker === "[object WorkerGlobalScope]" */ if (obj === globalObject) { return 'global'; } /* ! Speed optimisation * Pre: