UNPKG

6.37 kBJavaScriptView Raw
1(function (global, factory) {
2 typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3 typeof define === 'function' && define.amd ? define(factory) :
4 (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.BootstrapTable = factory());
5})(this, (function () { 'use strict';
6
7 //
8 //
9 //
10 //
11
12 const $ = window.jQuery;
13 const deepCopy = arg => {
14 if (arg === undefined) {
15 return arg
16 }
17 return $.extend(true, Array.isArray(arg) ? [] : {}, arg)
18 };
19
20 var script = {
21 name: 'BootstrapTable',
22 props: {
23 columns: {
24 type: Array,
25 require: true
26 },
27 data: {
28 type: [Array, Object],
29 default () {
30 return undefined
31 }
32 },
33 options: {
34 type: Object,
35 default () {
36 return {}
37 }
38 }
39 },
40 mounted () {
41 this.$table = $(this.$el);
42
43 this.$table.on('all.bs.table', (e, name, args) => {
44 let eventName = $.fn.bootstrapTable.events[name];
45 eventName = eventName.replace(/([A-Z])/g, '-$1').toLowerCase();
46 this.$emit('on-all', ...args);
47 this.$emit(eventName, ...args);
48 });
49
50 this._initTable();
51 },
52 methods: {
53 _initTable () {
54 const options = {
55 ...deepCopy(this.options),
56 columns: deepCopy(this.columns),
57 data: deepCopy(this.data)
58 };
59 if (!this._hasInit) {
60 this.$table.bootstrapTable(options);
61 this._hasInit = true;
62 } else {
63 this.refreshOptions(options);
64 }
65 },
66 ...(() => {
67 const res = {};
68 for (const method of $.fn.bootstrapTable.methods) {
69 res[method] = function (...args) {
70 return this.$table.bootstrapTable(method, ...args)
71 };
72 }
73 return res
74 })()
75 },
76 watch: {
77 options: {
78 handler () {
79 this._initTable();
80 },
81 deep: true
82 },
83 columns: {
84 handler () {
85 this._initTable();
86 },
87 deep: true
88 },
89 data: {
90 handler () {
91 this.load(deepCopy(this.data));
92 },
93 deep: true
94 }
95 }
96 };
97
98 function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier /* server only */, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
99 if (typeof shadowMode !== 'boolean') {
100 createInjectorSSR = createInjector;
101 createInjector = shadowMode;
102 shadowMode = false;
103 }
104 // Vue.extend constructor export interop.
105 const options = typeof script === 'function' ? script.options : script;
106 // render functions
107 if (template && template.render) {
108 options.render = template.render;
109 options.staticRenderFns = template.staticRenderFns;
110 options._compiled = true;
111 // functional template
112 if (isFunctionalTemplate) {
113 options.functional = true;
114 }
115 }
116 // scopedId
117 if (scopeId) {
118 options._scopeId = scopeId;
119 }
120 let hook;
121 if (moduleIdentifier) {
122 // server build
123 hook = function (context) {
124 // 2.3 injection
125 context =
126 context || // cached call
127 (this.$vnode && this.$vnode.ssrContext) || // stateful
128 (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext); // functional
129 // 2.2 with runInNewContext: true
130 if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
131 context = __VUE_SSR_CONTEXT__;
132 }
133 // inject component styles
134 if (style) {
135 style.call(this, createInjectorSSR(context));
136 }
137 // register component module identifier for async chunk inference
138 if (context && context._registeredComponents) {
139 context._registeredComponents.add(moduleIdentifier);
140 }
141 };
142 // used by ssr in case component is cached and beforeCreate
143 // never gets called
144 options._ssrRegister = hook;
145 }
146 else if (style) {
147 hook = shadowMode
148 ? function (context) {
149 style.call(this, createInjectorShadow(context, this.$root.$options.shadowRoot));
150 }
151 : function (context) {
152 style.call(this, createInjector(context));
153 };
154 }
155 if (hook) {
156 if (options.functional) {
157 // register for functional component in vue file
158 const originalRender = options.render;
159 options.render = function renderWithStyleInjection(h, context) {
160 hook.call(context);
161 return originalRender(h, context);
162 };
163 }
164 else {
165 // inject component registration as beforeCreate hook
166 const existing = options.beforeCreate;
167 options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
168 }
169 }
170 return script;
171 }
172
173 /* script */
174 const __vue_script__ = script;
175
176 /* template */
177 var __vue_render__ = function () {
178 var _vm = this;
179 var _h = _vm.$createElement;
180 var _c = _vm._self._c || _h;
181 return _c("table")
182 };
183 var __vue_staticRenderFns__ = [];
184 __vue_render__._withStripped = true;
185
186 /* style */
187 const __vue_inject_styles__ = undefined;
188 /* scoped */
189 const __vue_scope_id__ = undefined;
190 /* module identifier */
191 const __vue_module_identifier__ = undefined;
192 /* functional template */
193 const __vue_is_functional_template__ = false;
194 /* style inject */
195
196 /* style inject SSR */
197
198 /* style inject shadow dom */
199
200
201
202 const __vue_component__ = /*#__PURE__*/normalizeComponent(
203 { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
204 __vue_inject_styles__,
205 __vue_script__,
206 __vue_scope_id__,
207 __vue_is_functional_template__,
208 __vue_module_identifier__,
209 false,
210 undefined,
211 undefined,
212 undefined
213 );
214
215 return __vue_component__;
216
217}));