bootstrap-table-resizable.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650
  1. (function (global, factory) {
  2. typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('jquery')) :
  3. typeof define === 'function' && define.amd ? define(['jquery'], factory) :
  4. (global = global || self, factory(global.jQuery));
  5. }(this, function ($) { 'use strict';
  6. $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
  7. var isObject = function (it) {
  8. return typeof it === 'object' ? it !== null : typeof it === 'function';
  9. };
  10. var toString = {}.toString;
  11. var classofRaw = function (it) {
  12. return toString.call(it).slice(8, -1);
  13. };
  14. // `IsArray` abstract operation
  15. // https://tc39.github.io/ecma262/#sec-isarray
  16. var isArray = Array.isArray || function isArray(arg) {
  17. return classofRaw(arg) == 'Array';
  18. };
  19. var ceil = Math.ceil;
  20. var floor = Math.floor;
  21. // `ToInteger` abstract operation
  22. // https://tc39.github.io/ecma262/#sec-tointeger
  23. var toInteger = function (argument) {
  24. return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
  25. };
  26. var max = Math.max;
  27. var min = Math.min;
  28. // Helper for a popular repeating case of the spec:
  29. // Let integer be ? ToInteger(index).
  30. // If integer < 0, let result be max((length + integer), 0); else let result be min(length, length).
  31. var toAbsoluteIndex = function (index, length) {
  32. var integer = toInteger(index);
  33. return integer < 0 ? max(integer + length, 0) : min(integer, length);
  34. };
  35. var min$1 = Math.min;
  36. // `ToLength` abstract operation
  37. // https://tc39.github.io/ecma262/#sec-tolength
  38. var toLength = function (argument) {
  39. return argument > 0 ? min$1(toInteger(argument), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
  40. };
  41. var fails = function (exec) {
  42. try {
  43. return !!exec();
  44. } catch (e) {
  45. return true;
  46. }
  47. };
  48. // fallback for non-array-like ES3 and non-enumerable old V8 strings
  49. var split = ''.split;
  50. var indexedObject = fails(function () {
  51. // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346
  52. // eslint-disable-next-line no-prototype-builtins
  53. return !Object('z').propertyIsEnumerable(0);
  54. }) ? function (it) {
  55. return classofRaw(it) == 'String' ? split.call(it, '') : Object(it);
  56. } : Object;
  57. // `RequireObjectCoercible` abstract operation
  58. // https://tc39.github.io/ecma262/#sec-requireobjectcoercible
  59. var requireObjectCoercible = function (it) {
  60. if (it == undefined) throw TypeError("Can't call method on " + it);
  61. return it;
  62. };
  63. // toObject with fallback for non-array-like ES3 strings
  64. var toIndexedObject = function (it) {
  65. return indexedObject(requireObjectCoercible(it));
  66. };
  67. // 7.1.1 ToPrimitive(input [, PreferredType])
  68. // instead of the ES6 spec version, we didn't implement @@toPrimitive case
  69. // and the second argument - flag - preferred type is a string
  70. var toPrimitive = function (it, S) {
  71. if (!isObject(it)) return it;
  72. var fn, val;
  73. if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  74. if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
  75. if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
  76. throw TypeError("Can't convert object to primitive value");
  77. };
  78. // Thank's IE8 for his funny defineProperty
  79. var descriptors = !fails(function () {
  80. return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
  81. });
  82. // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
  83. var global = typeof window == 'object' && window && window.Math == Math ? window
  84. : typeof self == 'object' && self && self.Math == Math ? self
  85. // eslint-disable-next-line no-new-func
  86. : Function('return this')();
  87. var document = global.document;
  88. // typeof document.createElement is 'object' in old IE
  89. var exist = isObject(document) && isObject(document.createElement);
  90. var documentCreateElement = function (it) {
  91. return exist ? document.createElement(it) : {};
  92. };
  93. // Thank's IE8 for his funny defineProperty
  94. var ie8DomDefine = !descriptors && !fails(function () {
  95. return Object.defineProperty(documentCreateElement('div'), 'a', {
  96. get: function () { return 7; }
  97. }).a != 7;
  98. });
  99. var anObject = function (it) {
  100. if (!isObject(it)) {
  101. throw TypeError(String(it) + ' is not an object');
  102. } return it;
  103. };
  104. var nativeDefineProperty = Object.defineProperty;
  105. var f = descriptors ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
  106. anObject(O);
  107. P = toPrimitive(P, true);
  108. anObject(Attributes);
  109. if (ie8DomDefine) try {
  110. return nativeDefineProperty(O, P, Attributes);
  111. } catch (e) { /* empty */ }
  112. if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');
  113. if ('value' in Attributes) O[P] = Attributes.value;
  114. return O;
  115. };
  116. var objectDefineProperty = {
  117. f: f
  118. };
  119. var createPropertyDescriptor = function (bitmap, value) {
  120. return {
  121. enumerable: !(bitmap & 1),
  122. configurable: !(bitmap & 2),
  123. writable: !(bitmap & 4),
  124. value: value
  125. };
  126. };
  127. var createProperty = function (object, key, value) {
  128. var propertyKey = toPrimitive(key);
  129. if (propertyKey in object) objectDefineProperty.f(object, propertyKey, createPropertyDescriptor(0, value));
  130. else object[propertyKey] = value;
  131. };
  132. function createCommonjsModule(fn, module) {
  133. return module = { exports: {} }, fn(module, module.exports), module.exports;
  134. }
  135. var hide = descriptors ? function (object, key, value) {
  136. return objectDefineProperty.f(object, key, createPropertyDescriptor(1, value));
  137. } : function (object, key, value) {
  138. object[key] = value;
  139. return object;
  140. };
  141. var setGlobal = function (key, value) {
  142. try {
  143. hide(global, key, value);
  144. } catch (e) {
  145. global[key] = value;
  146. } return value;
  147. };
  148. var shared = createCommonjsModule(function (module) {
  149. var SHARED = '__core-js_shared__';
  150. var store = global[SHARED] || setGlobal(SHARED, {});
  151. (module.exports = function (key, value) {
  152. return store[key] || (store[key] = value !== undefined ? value : {});
  153. })('versions', []).push({
  154. version: '3.0.0',
  155. mode: 'global',
  156. copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
  157. });
  158. });
  159. var id = 0;
  160. var postfix = Math.random();
  161. var uid = function (key) {
  162. return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + postfix).toString(36));
  163. };
  164. // Chrome 38 Symbol has incorrect toString conversion
  165. var nativeSymbol = !fails(function () {
  166. });
  167. var store = shared('wks');
  168. var Symbol = global.Symbol;
  169. var wellKnownSymbol = function (name) {
  170. return store[name] || (store[name] = nativeSymbol && Symbol[name]
  171. || (nativeSymbol ? Symbol : uid)('Symbol.' + name));
  172. };
  173. var SPECIES = wellKnownSymbol('species');
  174. var arrayMethodHasSpeciesSupport = function (METHOD_NAME) {
  175. return !fails(function () {
  176. var array = [];
  177. var constructor = array.constructor = {};
  178. constructor[SPECIES] = function () {
  179. return { foo: 1 };
  180. };
  181. return array[METHOD_NAME](Boolean).foo !== 1;
  182. });
  183. };
  184. var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
  185. var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
  186. // Nashorn ~ JDK8 bug
  187. var NASHORN_BUG = nativeGetOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
  188. var f$1 = NASHORN_BUG ? function propertyIsEnumerable(V) {
  189. var descriptor = nativeGetOwnPropertyDescriptor(this, V);
  190. return !!descriptor && descriptor.enumerable;
  191. } : nativePropertyIsEnumerable;
  192. var objectPropertyIsEnumerable = {
  193. f: f$1
  194. };
  195. var hasOwnProperty = {}.hasOwnProperty;
  196. var has = function (it, key) {
  197. return hasOwnProperty.call(it, key);
  198. };
  199. var nativeGetOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor;
  200. var f$2 = descriptors ? nativeGetOwnPropertyDescriptor$1 : function getOwnPropertyDescriptor(O, P) {
  201. O = toIndexedObject(O);
  202. P = toPrimitive(P, true);
  203. if (ie8DomDefine) try {
  204. return nativeGetOwnPropertyDescriptor$1(O, P);
  205. } catch (e) { /* empty */ }
  206. if (has(O, P)) return createPropertyDescriptor(!objectPropertyIsEnumerable.f.call(O, P), O[P]);
  207. };
  208. var objectGetOwnPropertyDescriptor = {
  209. f: f$2
  210. };
  211. var functionToString = shared('native-function-to-string', Function.toString);
  212. var WeakMap = global.WeakMap;
  213. var nativeWeakMap = typeof WeakMap === 'function' && /native code/.test(functionToString.call(WeakMap));
  214. var shared$1 = shared('keys');
  215. var sharedKey = function (key) {
  216. return shared$1[key] || (shared$1[key] = uid(key));
  217. };
  218. var hiddenKeys = {};
  219. var WeakMap$1 = global.WeakMap;
  220. var set, get, has$1;
  221. var enforce = function (it) {
  222. return has$1(it) ? get(it) : set(it, {});
  223. };
  224. var getterFor = function (TYPE) {
  225. return function (it) {
  226. var state;
  227. if (!isObject(it) || (state = get(it)).type !== TYPE) {
  228. throw TypeError('Incompatible receiver, ' + TYPE + ' required');
  229. } return state;
  230. };
  231. };
  232. if (nativeWeakMap) {
  233. var store$1 = new WeakMap$1();
  234. var wmget = store$1.get;
  235. var wmhas = store$1.has;
  236. var wmset = store$1.set;
  237. set = function (it, metadata) {
  238. wmset.call(store$1, it, metadata);
  239. return metadata;
  240. };
  241. get = function (it) {
  242. return wmget.call(store$1, it) || {};
  243. };
  244. has$1 = function (it) {
  245. return wmhas.call(store$1, it);
  246. };
  247. } else {
  248. var STATE = sharedKey('state');
  249. hiddenKeys[STATE] = true;
  250. set = function (it, metadata) {
  251. hide(it, STATE, metadata);
  252. return metadata;
  253. };
  254. get = function (it) {
  255. return has(it, STATE) ? it[STATE] : {};
  256. };
  257. has$1 = function (it) {
  258. return has(it, STATE);
  259. };
  260. }
  261. var internalState = {
  262. set: set,
  263. get: get,
  264. has: has$1,
  265. enforce: enforce,
  266. getterFor: getterFor
  267. };
  268. var redefine = createCommonjsModule(function (module) {
  269. var getInternalState = internalState.get;
  270. var enforceInternalState = internalState.enforce;
  271. var TEMPLATE = String(functionToString).split('toString');
  272. shared('inspectSource', function (it) {
  273. return functionToString.call(it);
  274. });
  275. (module.exports = function (O, key, value, options) {
  276. var unsafe = options ? !!options.unsafe : false;
  277. var simple = options ? !!options.enumerable : false;
  278. var noTargetGet = options ? !!options.noTargetGet : false;
  279. if (typeof value == 'function') {
  280. if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key);
  281. enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
  282. }
  283. if (O === global) {
  284. if (simple) O[key] = value;
  285. else setGlobal(key, value);
  286. return;
  287. } else if (!unsafe) {
  288. delete O[key];
  289. } else if (!noTargetGet && O[key]) {
  290. simple = true;
  291. }
  292. if (simple) O[key] = value;
  293. else hide(O, key, value);
  294. // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
  295. })(Function.prototype, 'toString', function toString() {
  296. return typeof this == 'function' && getInternalState(this).source || functionToString.call(this);
  297. });
  298. });
  299. // `Array.prototype.{ indexOf, includes }` methods implementation
  300. // false -> Array#indexOf
  301. // https://tc39.github.io/ecma262/#sec-array.prototype.indexof
  302. // true -> Array#includes
  303. // https://tc39.github.io/ecma262/#sec-array.prototype.includes
  304. var arrayIncludes = function (IS_INCLUDES) {
  305. return function ($this, el, fromIndex) {
  306. var O = toIndexedObject($this);
  307. var length = toLength(O.length);
  308. var index = toAbsoluteIndex(fromIndex, length);
  309. var value;
  310. // Array#includes uses SameValueZero equality algorithm
  311. // eslint-disable-next-line no-self-compare
  312. if (IS_INCLUDES && el != el) while (length > index) {
  313. value = O[index++];
  314. // eslint-disable-next-line no-self-compare
  315. if (value != value) return true;
  316. // Array#indexOf ignores holes, Array#includes - not
  317. } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
  318. if (O[index] === el) return IS_INCLUDES || index || 0;
  319. } return !IS_INCLUDES && -1;
  320. };
  321. };
  322. var arrayIndexOf = arrayIncludes(false);
  323. var objectKeysInternal = function (object, names) {
  324. var O = toIndexedObject(object);
  325. var i = 0;
  326. var result = [];
  327. var key;
  328. for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);
  329. // Don't enum bug & hidden keys
  330. while (names.length > i) if (has(O, key = names[i++])) {
  331. ~arrayIndexOf(result, key) || result.push(key);
  332. }
  333. return result;
  334. };
  335. // IE8- don't enum bug keys
  336. var enumBugKeys = [
  337. 'constructor',
  338. 'hasOwnProperty',
  339. 'isPrototypeOf',
  340. 'propertyIsEnumerable',
  341. 'toLocaleString',
  342. 'toString',
  343. 'valueOf'
  344. ];
  345. // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
  346. var hiddenKeys$1 = enumBugKeys.concat('length', 'prototype');
  347. var f$3 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
  348. return objectKeysInternal(O, hiddenKeys$1);
  349. };
  350. var objectGetOwnPropertyNames = {
  351. f: f$3
  352. };
  353. var f$4 = Object.getOwnPropertySymbols;
  354. var objectGetOwnPropertySymbols = {
  355. f: f$4
  356. };
  357. var Reflect = global.Reflect;
  358. // all object keys, includes non-enumerable and symbols
  359. var ownKeys = Reflect && Reflect.ownKeys || function ownKeys(it) {
  360. var keys = objectGetOwnPropertyNames.f(anObject(it));
  361. var getOwnPropertySymbols = objectGetOwnPropertySymbols.f;
  362. return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
  363. };
  364. var copyConstructorProperties = function (target, source) {
  365. var keys = ownKeys(source);
  366. var defineProperty = objectDefineProperty.f;
  367. var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
  368. for (var i = 0; i < keys.length; i++) {
  369. var key = keys[i];
  370. if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));
  371. }
  372. };
  373. var replacement = /#|\.prototype\./;
  374. var isForced = function (feature, detection) {
  375. var value = data[normalize(feature)];
  376. return value == POLYFILL ? true
  377. : value == NATIVE ? false
  378. : typeof detection == 'function' ? fails(detection)
  379. : !!detection;
  380. };
  381. var normalize = isForced.normalize = function (string) {
  382. return String(string).replace(replacement, '.').toLowerCase();
  383. };
  384. var data = isForced.data = {};
  385. var NATIVE = isForced.NATIVE = 'N';
  386. var POLYFILL = isForced.POLYFILL = 'P';
  387. var isForced_1 = isForced;
  388. var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f;
  389. /*
  390. options.target - name of the target object
  391. options.global - target is the global object
  392. options.stat - export as static methods of target
  393. options.proto - export as prototype methods of target
  394. options.real - real prototype method for the `pure` version
  395. options.forced - export even if the native feature is available
  396. options.bind - bind methods to the target, required for the `pure` version
  397. options.wrap - wrap constructors to preventing global pollution, required for the `pure` version
  398. options.unsafe - use the simple assignment of property instead of delete + defineProperty
  399. options.sham - add a flag to not completely full polyfills
  400. options.enumerable - export as enumerable property
  401. options.noTargetGet - prevent calling a getter on target
  402. */
  403. var _export = function (options, source) {
  404. var TARGET = options.target;
  405. var GLOBAL = options.global;
  406. var STATIC = options.stat;
  407. var FORCED, target, key, targetProperty, sourceProperty, descriptor;
  408. if (GLOBAL) {
  409. target = global;
  410. } else if (STATIC) {
  411. target = global[TARGET] || setGlobal(TARGET, {});
  412. } else {
  413. target = (global[TARGET] || {}).prototype;
  414. }
  415. if (target) for (key in source) {
  416. sourceProperty = source[key];
  417. if (options.noTargetGet) {
  418. descriptor = getOwnPropertyDescriptor(target, key);
  419. targetProperty = descriptor && descriptor.value;
  420. } else targetProperty = target[key];
  421. FORCED = isForced_1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
  422. // contained in target
  423. if (!FORCED && targetProperty !== undefined) {
  424. if (typeof sourceProperty === typeof targetProperty) continue;
  425. copyConstructorProperties(sourceProperty, targetProperty);
  426. }
  427. // add a flag to not completely full polyfills
  428. if (options.sham || (targetProperty && targetProperty.sham)) {
  429. hide(sourceProperty, 'sham', true);
  430. }
  431. // extend global
  432. redefine(target, key, sourceProperty, options);
  433. }
  434. };
  435. var SPECIES$1 = wellKnownSymbol('species');
  436. var nativeSlice = [].slice;
  437. var max$1 = Math.max;
  438. var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');
  439. // `Array.prototype.slice` method
  440. // https://tc39.github.io/ecma262/#sec-array.prototype.slice
  441. // fallback for not array-like ES3 strings and DOM objects
  442. _export({ target: 'Array', proto: true, forced: !SPECIES_SUPPORT }, {
  443. slice: function slice(start, end) {
  444. var O = toIndexedObject(this);
  445. var length = toLength(O.length);
  446. var k = toAbsoluteIndex(start, length);
  447. var fin = toAbsoluteIndex(end === undefined ? length : end, length);
  448. // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible
  449. var Constructor, result, n;
  450. if (isArray(O)) {
  451. Constructor = O.constructor;
  452. // cross-realm fallback
  453. if (typeof Constructor == 'function' && (Constructor === Array || isArray(Constructor.prototype))) {
  454. Constructor = undefined;
  455. } else if (isObject(Constructor)) {
  456. Constructor = Constructor[SPECIES$1];
  457. if (Constructor === null) Constructor = undefined;
  458. }
  459. if (Constructor === Array || Constructor === undefined) {
  460. return nativeSlice.call(O, k, fin);
  461. }
  462. }
  463. result = new (Constructor === undefined ? Array : Constructor)(max$1(fin - k, 0));
  464. for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);
  465. result.length = n;
  466. return result;
  467. }
  468. });
  469. /**
  470. * @author: Dennis Hernández
  471. * @webSite: http://djhvscf.github.io/Blog
  472. * @version: v2.0.0
  473. */
  474. var isInit = function isInit(that) {
  475. return that.$el.data('resizableColumns') !== undefined;
  476. };
  477. var initResizable = function initResizable(that) {
  478. if (that.options.resizable && !that.options.cardView && !isInit(that)) {
  479. that.$el.resizableColumns();
  480. }
  481. };
  482. var destroy = function destroy(that) {
  483. if (isInit(that)) {
  484. that.$el.data('resizableColumns').destroy();
  485. }
  486. };
  487. var reInitResizable = function reInitResizable(that) {
  488. destroy(that);
  489. initResizable(that);
  490. };
  491. $.extend($.fn.bootstrapTable.defaults, {
  492. resizable: false
  493. });
  494. var BootstrapTable = $.fn.bootstrapTable.Constructor;
  495. var _initBody = BootstrapTable.prototype.initBody;
  496. var _toggleView = BootstrapTable.prototype.toggleView;
  497. var _resetView = BootstrapTable.prototype.resetView;
  498. BootstrapTable.prototype.initBody = function () {
  499. var that = this;
  500. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  501. args[_key] = arguments[_key];
  502. }
  503. _initBody.apply(this, Array.prototype.slice.apply(args));
  504. that.$el.off('column-switch.bs.table, page-change.bs.table').on('column-switch.bs.table, page-change.bs.table', function () {
  505. reInitResizable(that);
  506. });
  507. };
  508. BootstrapTable.prototype.toggleView = function () {
  509. for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
  510. args[_key2] = arguments[_key2];
  511. }
  512. _toggleView.apply(this, Array.prototype.slice.apply(args));
  513. if (this.options.resizable && this.options.cardView) {
  514. // Destroy the plugin
  515. destroy(this);
  516. }
  517. };
  518. BootstrapTable.prototype.resetView = function () {
  519. var that = this;
  520. for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
  521. args[_key3] = arguments[_key3];
  522. }
  523. _resetView.apply(this, Array.prototype.slice.apply(args));
  524. if (this.options.resizable) {
  525. // because in fitHeader function, we use setTimeout(func, 100);
  526. setTimeout(function () {
  527. initResizable(that);
  528. }, 100);
  529. }
  530. };
  531. }));