bootstrap-table-cookie.js 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794
  1. (function (global, factory) {
  2. typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('core-js/modules/es.array.concat.js'), require('core-js/modules/es.array.filter.js'), require('core-js/modules/es.array.find.js'), require('core-js/modules/es.array.includes.js'), require('core-js/modules/es.array.join.js'), require('core-js/modules/es.array.map.js'), require('core-js/modules/es.date.to-json.js'), require('core-js/modules/es.object.assign.js'), require('core-js/modules/es.object.entries.js'), require('core-js/modules/es.object.keys.js'), require('core-js/modules/es.object.to-string.js'), require('core-js/modules/es.regexp.exec.js'), require('core-js/modules/es.regexp.to-string.js'), require('core-js/modules/es.string.includes.js'), require('core-js/modules/es.string.replace.js'), require('core-js/modules/es.string.search.js'), require('core-js/modules/web.dom-collections.for-each.js'), require('jquery')) :
  3. typeof define === 'function' && define.amd ? define(['core-js/modules/es.array.concat.js', 'core-js/modules/es.array.filter.js', 'core-js/modules/es.array.find.js', 'core-js/modules/es.array.includes.js', 'core-js/modules/es.array.join.js', 'core-js/modules/es.array.map.js', 'core-js/modules/es.date.to-json.js', 'core-js/modules/es.object.assign.js', 'core-js/modules/es.object.entries.js', 'core-js/modules/es.object.keys.js', 'core-js/modules/es.object.to-string.js', 'core-js/modules/es.regexp.exec.js', 'core-js/modules/es.regexp.to-string.js', 'core-js/modules/es.string.includes.js', 'core-js/modules/es.string.replace.js', 'core-js/modules/es.string.search.js', 'core-js/modules/web.dom-collections.for-each.js', 'jquery'], factory) :
  4. (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, global.jQuery));
  5. })(this, (function (es_array_concat_js, es_array_filter_js, es_array_find_js, es_array_includes_js, es_array_join_js, es_array_map_js, es_date_toJson_js, es_object_assign_js, es_object_entries_js, es_object_keys_js, es_object_toString_js, es_regexp_exec_js, es_regexp_toString_js, es_string_includes_js, es_string_replace_js, es_string_search_js, web_domCollections_forEach_js, $) { 'use strict';
  6. function _arrayLikeToArray(r, a) {
  7. (null == a || a > r.length) && (a = r.length);
  8. for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
  9. return n;
  10. }
  11. function _arrayWithHoles(r) {
  12. if (Array.isArray(r)) return r;
  13. }
  14. function _assertThisInitialized(e) {
  15. if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  16. return e;
  17. }
  18. function _callSuper(t, o, e) {
  19. return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
  20. }
  21. function _classCallCheck(a, n) {
  22. if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
  23. }
  24. function _defineProperties(e, r) {
  25. for (var t = 0; t < r.length; t++) {
  26. var o = r[t];
  27. o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
  28. }
  29. }
  30. function _createClass(e, r, t) {
  31. return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", {
  32. writable: !1
  33. }), e;
  34. }
  35. function _createForOfIteratorHelper(r, e) {
  36. var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
  37. if (!t) {
  38. if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e ) {
  39. t && (r = t);
  40. var n = 0,
  41. F = function () {};
  42. return {
  43. s: F,
  44. n: function () {
  45. return n >= r.length ? {
  46. done: !0
  47. } : {
  48. done: !1,
  49. value: r[n++]
  50. };
  51. },
  52. e: function (r) {
  53. throw r;
  54. },
  55. f: F
  56. };
  57. }
  58. throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  59. }
  60. var o,
  61. a = !0,
  62. u = !1;
  63. return {
  64. s: function () {
  65. t = t.call(r);
  66. },
  67. n: function () {
  68. var r = t.next();
  69. return a = r.done, r;
  70. },
  71. e: function (r) {
  72. u = !0, o = r;
  73. },
  74. f: function () {
  75. try {
  76. a || null == t.return || t.return();
  77. } finally {
  78. if (u) throw o;
  79. }
  80. }
  81. };
  82. }
  83. function _get() {
  84. return _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {
  85. var p = _superPropBase(e, t);
  86. if (p) {
  87. var n = Object.getOwnPropertyDescriptor(p, t);
  88. return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;
  89. }
  90. }, _get.apply(null, arguments);
  91. }
  92. function _getPrototypeOf(t) {
  93. return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
  94. return t.__proto__ || Object.getPrototypeOf(t);
  95. }, _getPrototypeOf(t);
  96. }
  97. function _inherits(t, e) {
  98. if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
  99. t.prototype = Object.create(e && e.prototype, {
  100. constructor: {
  101. value: t,
  102. writable: !0,
  103. configurable: !0
  104. }
  105. }), Object.defineProperty(t, "prototype", {
  106. writable: !1
  107. }), e && _setPrototypeOf(t, e);
  108. }
  109. function _isNativeReflectConstruct() {
  110. try {
  111. var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
  112. } catch (t) {}
  113. return (_isNativeReflectConstruct = function () {
  114. return !!t;
  115. })();
  116. }
  117. function _iterableToArrayLimit(r, l) {
  118. var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
  119. if (null != t) {
  120. var e,
  121. n,
  122. i,
  123. u,
  124. a = [],
  125. f = !0,
  126. o = !1;
  127. try {
  128. if (i = (t = t.call(r)).next, 0 === l) ; else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
  129. } catch (r) {
  130. o = !0, n = r;
  131. } finally {
  132. try {
  133. if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
  134. } finally {
  135. if (o) throw n;
  136. }
  137. }
  138. return a;
  139. }
  140. }
  141. function _nonIterableRest() {
  142. throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
  143. }
  144. function _possibleConstructorReturn(t, e) {
  145. if (e && ("object" == typeof e || "function" == typeof e)) return e;
  146. if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
  147. return _assertThisInitialized(t);
  148. }
  149. function _setPrototypeOf(t, e) {
  150. return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
  151. return t.__proto__ = e, t;
  152. }, _setPrototypeOf(t, e);
  153. }
  154. function _slicedToArray(r, e) {
  155. return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
  156. }
  157. function _superPropBase(t, o) {
  158. for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t)););
  159. return t;
  160. }
  161. function _toPrimitive(t, r) {
  162. if ("object" != typeof t || !t) return t;
  163. var e = t[Symbol.toPrimitive];
  164. if (void 0 !== e) {
  165. var i = e.call(t, r );
  166. if ("object" != typeof i) return i;
  167. throw new TypeError("@@toPrimitive must return a primitive value.");
  168. }
  169. return (String )(t);
  170. }
  171. function _toPropertyKey(t) {
  172. var i = _toPrimitive(t, "string");
  173. return "symbol" == typeof i ? i : i + "";
  174. }
  175. function _unsupportedIterableToArray(r, a) {
  176. if (r) {
  177. if ("string" == typeof r) return _arrayLikeToArray(r, a);
  178. var t = {}.toString.call(r).slice(8, -1);
  179. return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
  180. }
  181. }
  182. /**
  183. * @author: Dennis Hernández
  184. * @update zhixin wen <wenzhixin2010@gmail.com>
  185. */
  186. var Utils = $.fn.bootstrapTable.utils;
  187. var UtilsCookie = {
  188. cookieIds: {
  189. sortOrder: 'bs.table.sortOrder',
  190. sortName: 'bs.table.sortName',
  191. sortPriority: 'bs.table.sortPriority',
  192. pageNumber: 'bs.table.pageNumber',
  193. pageList: 'bs.table.pageList',
  194. hiddenColumns: 'bs.table.hiddenColumns',
  195. cardView: 'bs.table.cardView',
  196. customView: 'bs.table.customView',
  197. searchText: 'bs.table.searchText',
  198. reorderColumns: 'bs.table.reorderColumns',
  199. filterControl: 'bs.table.filterControl',
  200. filterBy: 'bs.table.filterBy'
  201. },
  202. getCurrentHeader: function getCurrentHeader(that) {
  203. return that.options.height ? that.$tableHeader : that.$header;
  204. },
  205. getCurrentSearchControls: function getCurrentSearchControls(that) {
  206. return that.options.height ? 'table select, table input' : 'select, input';
  207. },
  208. isCookieSupportedByBrowser: function isCookieSupportedByBrowser() {
  209. return navigator.cookieEnabled;
  210. },
  211. isCookieEnabled: function isCookieEnabled(that, cookieName) {
  212. return that.options.cookiesEnabled.includes(cookieName);
  213. },
  214. setCookie: function setCookie(that, cookieName, cookieValue) {
  215. if (!that.options.cookie || !UtilsCookie.isCookieEnabled(that, cookieName)) {
  216. return;
  217. }
  218. return that._storage.setItem("".concat(that.options.cookieIdTable, ".").concat(cookieName), cookieValue);
  219. },
  220. getCookie: function getCookie(that, cookieName) {
  221. if (!cookieName || !UtilsCookie.isCookieEnabled(that, cookieName)) {
  222. return null;
  223. }
  224. return that._storage.getItem("".concat(that.options.cookieIdTable, ".").concat(cookieName));
  225. },
  226. deleteCookie: function deleteCookie(that, cookieName) {
  227. return that._storage.removeItem("".concat(that.options.cookieIdTable, ".").concat(cookieName));
  228. },
  229. calculateExpiration: function calculateExpiration(cookieExpire) {
  230. var time = cookieExpire.replace(/[0-9]*/, ''); // s,mi,h,d,m,y
  231. cookieExpire = cookieExpire.replace(/[A-Za-z]{1,2}/, ''); // number
  232. switch (time.toLowerCase()) {
  233. case 's':
  234. cookieExpire = +cookieExpire;
  235. break;
  236. case 'mi':
  237. cookieExpire *= 60;
  238. break;
  239. case 'h':
  240. cookieExpire = cookieExpire * 60 * 60;
  241. break;
  242. case 'd':
  243. cookieExpire = cookieExpire * 24 * 60 * 60;
  244. break;
  245. case 'm':
  246. cookieExpire = cookieExpire * 30 * 24 * 60 * 60;
  247. break;
  248. case 'y':
  249. cookieExpire = cookieExpire * 365 * 24 * 60 * 60;
  250. break;
  251. default:
  252. cookieExpire = undefined;
  253. break;
  254. }
  255. if (!cookieExpire) {
  256. return '';
  257. }
  258. var d = new Date();
  259. d.setTime(d.getTime() + cookieExpire * 1000);
  260. return d.toGMTString();
  261. },
  262. initCookieFilters: function initCookieFilters(that) {
  263. setTimeout(function () {
  264. var parsedCookieFilters = JSON.parse(UtilsCookie.getCookie(that, UtilsCookie.cookieIds.filterControl));
  265. if (!that._filterControlValuesLoaded && parsedCookieFilters) {
  266. var cachedFilters = {};
  267. var header = UtilsCookie.getCurrentHeader(that);
  268. var searchControls = UtilsCookie.getCurrentSearchControls(that);
  269. var applyCookieFilters = function applyCookieFilters(element, filteredCookies) {
  270. filteredCookies.forEach(function (cookie) {
  271. var value = element.value.toString();
  272. var text = cookie.text;
  273. if (text === '' || element.type === 'radio' && value !== text) {
  274. return;
  275. }
  276. if (element.tagName === 'INPUT' && element.type === 'radio' && value === text) {
  277. element.checked = true;
  278. cachedFilters[cookie.field] = text;
  279. } else if (element.tagName === 'INPUT') {
  280. element.value = text;
  281. cachedFilters[cookie.field] = text;
  282. } else if (element.tagName === 'SELECT' && that.options.filterControlContainer) {
  283. element.value = text;
  284. cachedFilters[cookie.field] = text;
  285. } else if (text !== '' && element.tagName === 'SELECT') {
  286. cachedFilters[cookie.field] = text;
  287. var _iterator = _createForOfIteratorHelper(element),
  288. _step;
  289. try {
  290. for (_iterator.s(); !(_step = _iterator.n()).done;) {
  291. var currentElement = _step.value;
  292. if (currentElement.value === text) {
  293. currentElement.selected = true;
  294. return;
  295. }
  296. }
  297. } catch (err) {
  298. _iterator.e(err);
  299. } finally {
  300. _iterator.f();
  301. }
  302. var option = document.createElement('option');
  303. option.value = text;
  304. option.text = text;
  305. element.add(option, element[1]);
  306. element.selectedIndex = 1;
  307. }
  308. });
  309. };
  310. var filterContainer = header;
  311. if (that.options.filterControlContainer) {
  312. filterContainer = $("".concat(that.options.filterControlContainer));
  313. }
  314. filterContainer.find(searchControls).each(function () {
  315. var field = $(this).closest('[data-field]').data('field');
  316. var filteredCookies = parsedCookieFilters.filter(function (cookie) {
  317. return cookie.field === field;
  318. });
  319. applyCookieFilters(this, filteredCookies);
  320. });
  321. that.initColumnSearch(cachedFilters);
  322. that._filterControlValuesLoaded = true;
  323. that.initServer();
  324. }
  325. }, 250);
  326. }
  327. };
  328. Object.assign($.fn.bootstrapTable.defaults, {
  329. cookie: false,
  330. cookieExpire: '2h',
  331. cookiePath: null,
  332. cookieDomain: null,
  333. cookieSecure: null,
  334. cookieSameSite: 'Lax',
  335. cookieIdTable: '',
  336. cookiesEnabled: ['bs.table.sortOrder', 'bs.table.sortName', 'bs.table.sortPriority', 'bs.table.pageNumber', 'bs.table.pageList', 'bs.table.hiddenColumns', 'bs.table.searchText', 'bs.table.filterControl', 'bs.table.filterBy', 'bs.table.reorderColumns', 'bs.table.cardView', 'bs.table.customView'],
  337. cookieStorage: 'cookieStorage',
  338. // localStorage, sessionStorage, customStorage
  339. cookieCustomStorageGet: null,
  340. cookieCustomStorageSet: null,
  341. cookieCustomStorageDelete: null,
  342. // internal variable
  343. _filterControls: [],
  344. _filterControlValuesLoaded: false,
  345. _storage: {
  346. setItem: undefined,
  347. getItem: undefined,
  348. removeItem: undefined
  349. }
  350. });
  351. $.fn.bootstrapTable.methods.push('getCookies');
  352. $.fn.bootstrapTable.methods.push('deleteCookie');
  353. Object.assign($.fn.bootstrapTable.utils, {
  354. setCookie: UtilsCookie.setCookie,
  355. getCookie: UtilsCookie.getCookie
  356. });
  357. $.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) {
  358. function _class() {
  359. _classCallCheck(this, _class);
  360. return _callSuper(this, _class, arguments);
  361. }
  362. _inherits(_class, _$$BootstrapTable);
  363. return _createClass(_class, [{
  364. key: "init",
  365. value: function init() {
  366. if (this.options.cookie) {
  367. if (this.options.cookieStorage === 'cookieStorage' && !UtilsCookie.isCookieSupportedByBrowser()) {
  368. throw new Error('Cookies are not enabled in this browser.');
  369. }
  370. this.configureStorage();
  371. // FilterBy logic
  372. var filterByCookieValue = UtilsCookie.getCookie(this, UtilsCookie.cookieIds.filterBy);
  373. if (typeof filterByCookieValue === 'boolean' && !filterByCookieValue) {
  374. throw new Error('The cookie value of filterBy must be a json!');
  375. }
  376. var filterByCookie = {};
  377. try {
  378. filterByCookie = JSON.parse(filterByCookieValue);
  379. } catch (e) {
  380. throw new Error('Could not parse the json of the filterBy cookie!');
  381. }
  382. this.filterColumns = filterByCookie ? filterByCookie : {};
  383. // FilterControl logic
  384. this._filterControls = [];
  385. this._filterControlValuesLoaded = false;
  386. this.options.cookiesEnabled = typeof this.options.cookiesEnabled === 'string' ? this.options.cookiesEnabled.replace('[', '').replace(']', '').replace(/'/g, '').replace(/ /g, '').split(',') : this.options.cookiesEnabled;
  387. if (this.options.filterControl) {
  388. var that = this;
  389. this.$el.on('column-search.bs.table', function (e, field, text) {
  390. var isNewField = true;
  391. for (var i = 0; i < that._filterControls.length; i++) {
  392. if (that._filterControls[i].field === field) {
  393. that._filterControls[i].text = text;
  394. isNewField = false;
  395. break;
  396. }
  397. }
  398. if (isNewField) {
  399. that._filterControls.push({
  400. field: field,
  401. text: text
  402. });
  403. }
  404. UtilsCookie.setCookie(that, UtilsCookie.cookieIds.filterControl, JSON.stringify(that._filterControls));
  405. }).on('created-controls.bs.table', UtilsCookie.initCookieFilters(that));
  406. }
  407. }
  408. _get(_getPrototypeOf(_class.prototype), "init", this).call(this);
  409. }
  410. }, {
  411. key: "initServer",
  412. value: function initServer() {
  413. var _get2;
  414. if (this.options.cookie && this.options.filterControl && !this._filterControlValuesLoaded) {
  415. var cookie = JSON.parse(UtilsCookie.getCookie(this, UtilsCookie.cookieIds.filterControl));
  416. if (cookie) {
  417. return;
  418. }
  419. }
  420. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  421. args[_key] = arguments[_key];
  422. }
  423. (_get2 = _get(_getPrototypeOf(_class.prototype), "initServer", this)).call.apply(_get2, [this].concat(args));
  424. }
  425. }, {
  426. key: "initTable",
  427. value: function initTable() {
  428. var _get3;
  429. for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
  430. args[_key2] = arguments[_key2];
  431. }
  432. (_get3 = _get(_getPrototypeOf(_class.prototype), "initTable", this)).call.apply(_get3, [this].concat(args));
  433. this.initCookie();
  434. }
  435. }, {
  436. key: "onSort",
  437. value: function onSort() {
  438. var _get4;
  439. for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
  440. args[_key3] = arguments[_key3];
  441. }
  442. (_get4 = _get(_getPrototypeOf(_class.prototype), "onSort", this)).call.apply(_get4, [this].concat(args));
  443. if (!this.options.cookie) {
  444. return;
  445. }
  446. if (this.options.sortName === undefined || this.options.sortOrder === undefined) {
  447. UtilsCookie.deleteCookie(this, UtilsCookie.cookieIds.sortName);
  448. UtilsCookie.deleteCookie(this, UtilsCookie.cookieIds.sortOrder);
  449. } else {
  450. this.options.sortPriority = null;
  451. UtilsCookie.deleteCookie(this, UtilsCookie.cookieIds.sortPriority);
  452. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.sortOrder, this.options.sortOrder);
  453. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.sortName, this.options.sortName);
  454. }
  455. }
  456. }, {
  457. key: "onMultipleSort",
  458. value: function onMultipleSort() {
  459. var _get5;
  460. for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
  461. args[_key4] = arguments[_key4];
  462. }
  463. (_get5 = _get(_getPrototypeOf(_class.prototype), "onMultipleSort", this)).call.apply(_get5, [this].concat(args));
  464. if (!this.options.cookie) {
  465. return;
  466. }
  467. if (this.options.sortPriority === undefined) {
  468. UtilsCookie.deleteCookie(this, UtilsCookie.cookieIds.sortPriority);
  469. } else {
  470. this.options.sortName = undefined;
  471. this.options.sortOrder = undefined;
  472. UtilsCookie.deleteCookie(this, UtilsCookie.cookieIds.sortName);
  473. UtilsCookie.deleteCookie(this, UtilsCookie.cookieIds.sortOrder);
  474. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.sortPriority, JSON.stringify(this.options.sortPriority));
  475. }
  476. }
  477. }, {
  478. key: "onPageNumber",
  479. value: function onPageNumber() {
  480. var _get6;
  481. for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
  482. args[_key5] = arguments[_key5];
  483. }
  484. (_get6 = _get(_getPrototypeOf(_class.prototype), "onPageNumber", this)).call.apply(_get6, [this].concat(args));
  485. if (!this.options.cookie) {
  486. return;
  487. }
  488. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.pageNumber, this.options.pageNumber);
  489. }
  490. }, {
  491. key: "onPageListChange",
  492. value: function onPageListChange() {
  493. var _get7;
  494. for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
  495. args[_key6] = arguments[_key6];
  496. }
  497. (_get7 = _get(_getPrototypeOf(_class.prototype), "onPageListChange", this)).call.apply(_get7, [this].concat(args));
  498. if (!this.options.cookie) {
  499. return;
  500. }
  501. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.pageList, this.options.pageSize === this.options.formatAllRows() ? 'all' : this.options.pageSize);
  502. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.pageNumber, this.options.pageNumber);
  503. }
  504. }, {
  505. key: "onPagePre",
  506. value: function onPagePre() {
  507. var _get8;
  508. for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
  509. args[_key7] = arguments[_key7];
  510. }
  511. (_get8 = _get(_getPrototypeOf(_class.prototype), "onPagePre", this)).call.apply(_get8, [this].concat(args));
  512. if (!this.options.cookie) {
  513. return;
  514. }
  515. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.pageNumber, this.options.pageNumber);
  516. }
  517. }, {
  518. key: "onPageNext",
  519. value: function onPageNext() {
  520. var _get9;
  521. for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
  522. args[_key8] = arguments[_key8];
  523. }
  524. (_get9 = _get(_getPrototypeOf(_class.prototype), "onPageNext", this)).call.apply(_get9, [this].concat(args));
  525. if (!this.options.cookie) {
  526. return;
  527. }
  528. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.pageNumber, this.options.pageNumber);
  529. }
  530. }, {
  531. key: "_toggleColumn",
  532. value: function _toggleColumn() {
  533. var _get10;
  534. for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
  535. args[_key9] = arguments[_key9];
  536. }
  537. (_get10 = _get(_getPrototypeOf(_class.prototype), "_toggleColumn", this)).call.apply(_get10, [this].concat(args));
  538. if (!this.options.cookie) {
  539. return;
  540. }
  541. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.hiddenColumns, JSON.stringify(this.getHiddenColumns().map(function (column) {
  542. return column.field;
  543. })));
  544. }
  545. }, {
  546. key: "_toggleAllColumns",
  547. value: function _toggleAllColumns() {
  548. var _get11;
  549. for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {
  550. args[_key10] = arguments[_key10];
  551. }
  552. (_get11 = _get(_getPrototypeOf(_class.prototype), "_toggleAllColumns", this)).call.apply(_get11, [this].concat(args));
  553. if (!this.options.cookie) {
  554. return;
  555. }
  556. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.hiddenColumns, JSON.stringify(this.getHiddenColumns().map(function (column) {
  557. return column.field;
  558. })));
  559. }
  560. }, {
  561. key: "toggleView",
  562. value: function toggleView() {
  563. _get(_getPrototypeOf(_class.prototype), "toggleView", this).call(this);
  564. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.cardView, this.options.cardView);
  565. }
  566. }, {
  567. key: "toggleCustomView",
  568. value: function toggleCustomView() {
  569. _get(_getPrototypeOf(_class.prototype), "toggleCustomView", this).call(this);
  570. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.customView, this.customViewDefaultView);
  571. }
  572. }, {
  573. key: "selectPage",
  574. value: function selectPage(page) {
  575. _get(_getPrototypeOf(_class.prototype), "selectPage", this).call(this, page);
  576. if (!this.options.cookie) {
  577. return;
  578. }
  579. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.pageNumber, page);
  580. }
  581. }, {
  582. key: "onSearch",
  583. value: function onSearch(event) {
  584. _get(_getPrototypeOf(_class.prototype), "onSearch", this).call(this, event, arguments.length > 1 ? arguments[1] : true);
  585. if (!this.options.cookie) {
  586. return;
  587. }
  588. if (this.options.search) {
  589. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.searchText, this.searchText);
  590. }
  591. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.pageNumber, this.options.pageNumber);
  592. }
  593. }, {
  594. key: "initHeader",
  595. value: function initHeader() {
  596. var _get12;
  597. if (this.options.reorderableColumns && this.options.cookie) {
  598. this.columnsSortOrder = JSON.parse(UtilsCookie.getCookie(this, UtilsCookie.cookieIds.reorderColumns));
  599. }
  600. for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {
  601. args[_key11] = arguments[_key11];
  602. }
  603. (_get12 = _get(_getPrototypeOf(_class.prototype), "initHeader", this)).call.apply(_get12, [this].concat(args));
  604. }
  605. }, {
  606. key: "persistReorderColumnsState",
  607. value: function persistReorderColumnsState(that) {
  608. UtilsCookie.setCookie(that, UtilsCookie.cookieIds.reorderColumns, JSON.stringify(that.columnsSortOrder));
  609. }
  610. }, {
  611. key: "filterBy",
  612. value: function filterBy() {
  613. var _get13;
  614. for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {
  615. args[_key12] = arguments[_key12];
  616. }
  617. (_get13 = _get(_getPrototypeOf(_class.prototype), "filterBy", this)).call.apply(_get13, [this].concat(args));
  618. if (!this.options.cookie) {
  619. return;
  620. }
  621. UtilsCookie.setCookie(this, UtilsCookie.cookieIds.filterBy, JSON.stringify(this.filterColumns));
  622. }
  623. }, {
  624. key: "initCookie",
  625. value: function initCookie() {
  626. if (!this.options.cookie) {
  627. return;
  628. }
  629. if (this.options.cookieIdTable === '' || this.options.cookieExpire === '') {
  630. console.error('Configuration error. Please review the cookieIdTable and the cookieExpire property. If the properties are correct, then this browser does not support cookies.');
  631. this.options.cookie = false; // Make sure that the cookie extension is disabled
  632. return;
  633. }
  634. var sortOrderCookie = UtilsCookie.getCookie(this, UtilsCookie.cookieIds.sortOrder);
  635. var sortOrderNameCookie = UtilsCookie.getCookie(this, UtilsCookie.cookieIds.sortName);
  636. var sortPriorityCookie = UtilsCookie.getCookie(this, UtilsCookie.cookieIds.sortPriority);
  637. var pageNumberCookie = UtilsCookie.getCookie(this, UtilsCookie.cookieIds.pageNumber);
  638. var pageListCookie = UtilsCookie.getCookie(this, UtilsCookie.cookieIds.pageList);
  639. var searchTextCookie = UtilsCookie.getCookie(this, UtilsCookie.cookieIds.searchText);
  640. var cardViewCookie = UtilsCookie.getCookie(this, UtilsCookie.cookieIds.cardView);
  641. var customViewCookie = UtilsCookie.getCookie(this, UtilsCookie.cookieIds.customView);
  642. var hiddenColumnsCookieValue = UtilsCookie.getCookie(this, UtilsCookie.cookieIds.hiddenColumns);
  643. var hiddenColumnsCookie = {};
  644. try {
  645. hiddenColumnsCookie = JSON.parse(hiddenColumnsCookieValue);
  646. } catch (e) {
  647. throw new Error('Could not parse the json of the hidden columns cookie!', hiddenColumnsCookieValue);
  648. }
  649. try {
  650. sortPriorityCookie = JSON.parse(sortPriorityCookie);
  651. } catch (e) {
  652. throw new Error('Could not parse the json of the sortPriority cookie!', sortPriorityCookie);
  653. }
  654. if (!sortPriorityCookie) {
  655. // sortOrder
  656. this.options.sortOrder = sortOrderCookie ? sortOrderCookie : this.options.sortOrder;
  657. // sortName
  658. this.options.sortName = sortOrderNameCookie ? sortOrderNameCookie : this.options.sortName;
  659. } else {
  660. this.options.sortOrder = undefined;
  661. this.options.sortName = undefined;
  662. }
  663. // sortPriority
  664. this.options.sortPriority = sortPriorityCookie ? sortPriorityCookie : this.options.sortPriority;
  665. if (this.options.sortOrder || this.options.sortName) {
  666. // sortPriority
  667. this.options.sortPriority = null;
  668. }
  669. // pageNumber
  670. this.options.pageNumber = pageNumberCookie ? +pageNumberCookie : this.options.pageNumber;
  671. // pageSize
  672. this.options.pageSize = pageListCookie ? pageListCookie === 'all' ? this.options.formatAllRows() : +pageListCookie : this.options.pageSize;
  673. // searchText
  674. if (UtilsCookie.isCookieEnabled(this, UtilsCookie.cookieIds.searchText) && this.options.searchText === '') {
  675. this.options.searchText = searchTextCookie ? searchTextCookie : '';
  676. }
  677. // cardView
  678. if (cardViewCookie !== null) {
  679. this.options.cardView = cardViewCookie === 'true' ? cardViewCookie : false;
  680. }
  681. this.customViewDefaultView = customViewCookie === 'true';
  682. if (hiddenColumnsCookie) {
  683. var _iterator2 = _createForOfIteratorHelper(this.columns),
  684. _step2;
  685. try {
  686. for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
  687. var column = _step2.value;
  688. if (!column.switchable) {
  689. continue;
  690. }
  691. column.visible = this.isSelectionColumn(column) || !hiddenColumnsCookie.includes(column.field);
  692. }
  693. } catch (err) {
  694. _iterator2.e(err);
  695. } finally {
  696. _iterator2.f();
  697. }
  698. }
  699. }
  700. }, {
  701. key: "getCookies",
  702. value: function getCookies() {
  703. var bootstrapTable = this;
  704. var cookies = {};
  705. for (var _i = 0, _Object$entries = Object.entries(UtilsCookie.cookieIds); _i < _Object$entries.length; _i++) {
  706. var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
  707. key = _Object$entries$_i[0],
  708. value = _Object$entries$_i[1];
  709. cookies[key] = UtilsCookie.getCookie(bootstrapTable, value);
  710. if (key === 'columns' || key === 'hiddenColumns' || key === 'sortPriority') {
  711. cookies[key] = JSON.parse(cookies[key]);
  712. }
  713. }
  714. return cookies;
  715. }
  716. }, {
  717. key: "deleteCookie",
  718. value: function deleteCookie(cookieName) {
  719. if (!cookieName || !this.options.cookie) {
  720. return;
  721. }
  722. UtilsCookie.deleteCookie(this, UtilsCookie.cookieIds[cookieName]);
  723. }
  724. }, {
  725. key: "configureStorage",
  726. value: function configureStorage() {
  727. var that = this;
  728. this._storage = {};
  729. switch (this.options.cookieStorage) {
  730. case 'cookieStorage':
  731. this._storage.setItem = function (cookieName, cookieValue) {
  732. document.cookie = [cookieName, '=', encodeURIComponent(cookieValue), "; expires=".concat(UtilsCookie.calculateExpiration(that.options.cookieExpire)), that.options.cookiePath ? "; path=".concat(that.options.cookiePath) : '', that.options.cookieDomain ? "; domain=".concat(that.options.cookieDomain) : '', that.options.cookieSecure ? '; secure' : '', ";SameSite=".concat(that.options.cookieSameSite)].join('');
  733. };
  734. this._storage.getItem = function (cookieName) {
  735. var value = "; ".concat(document.cookie);
  736. var parts = value.split("; ".concat(cookieName, "="));
  737. return parts.length === 2 ? decodeURIComponent(parts.pop().split(';').shift()) : null;
  738. };
  739. this._storage.removeItem = function (cookieName) {
  740. document.cookie = [encodeURIComponent(cookieName), '=', '; expires=Thu, 01 Jan 1970 00:00:00 GMT', that.options.cookiePath ? "; path=".concat(that.options.cookiePath) : '', that.options.cookieDomain ? "; domain=".concat(that.options.cookieDomain) : '', ";SameSite=".concat(that.options.cookieSameSite)].join('');
  741. };
  742. break;
  743. case 'localStorage':
  744. this._storage.setItem = function (cookieName, cookieValue) {
  745. localStorage.setItem(cookieName, cookieValue);
  746. };
  747. this._storage.getItem = function (cookieName) {
  748. return localStorage.getItem(cookieName);
  749. };
  750. this._storage.removeItem = function (cookieName) {
  751. localStorage.removeItem(cookieName);
  752. };
  753. break;
  754. case 'sessionStorage':
  755. this._storage.setItem = function (cookieName, cookieValue) {
  756. sessionStorage.setItem(cookieName, cookieValue);
  757. };
  758. this._storage.getItem = function (cookieName) {
  759. return sessionStorage.getItem(cookieName);
  760. };
  761. this._storage.removeItem = function (cookieName) {
  762. sessionStorage.removeItem(cookieName);
  763. };
  764. break;
  765. case 'customStorage':
  766. if (!this.options.cookieCustomStorageSet || !this.options.cookieCustomStorageGet || !this.options.cookieCustomStorageDelete) {
  767. throw new Error('The following options must be set while using the customStorage: cookieCustomStorageSet, cookieCustomStorageGet and cookieCustomStorageDelete');
  768. }
  769. this._storage.setItem = function (cookieName, cookieValue) {
  770. Utils.calculateObjectValue(that.options, that.options.cookieCustomStorageSet, [cookieName, cookieValue], '');
  771. };
  772. this._storage.getItem = function (cookieName) {
  773. return Utils.calculateObjectValue(that.options, that.options.cookieCustomStorageGet, [cookieName], '');
  774. };
  775. this._storage.removeItem = function (cookieName) {
  776. Utils.calculateObjectValue(that.options, that.options.cookieCustomStorageDelete, [cookieName], '');
  777. };
  778. break;
  779. default:
  780. throw new Error('Storage method not supported.');
  781. }
  782. }
  783. }]);
  784. }($.BootstrapTable);
  785. }));