bootstrap-table-custom-view.js 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  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.find.js'), require('core-js/modules/es.array.slice.js'), require('core-js/modules/es.object.assign.js'), require('core-js/modules/es.object.to-string.js'), require('jquery')) :
  3. typeof define === 'function' && define.amd ? define(['core-js/modules/es.array.concat.js', 'core-js/modules/es.array.find.js', 'core-js/modules/es.array.slice.js', 'core-js/modules/es.object.assign.js', 'core-js/modules/es.object.to-string.js', 'jquery'], factory) :
  4. (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(null, null, null, null, null, global.jQuery));
  5. })(this, (function (es_array_concat_js, es_array_find_js, es_array_slice_js, es_object_assign_js, es_object_toString_js, $) { 'use strict';
  6. function _assertThisInitialized(e) {
  7. if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
  8. return e;
  9. }
  10. function _callSuper(t, o, e) {
  11. return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e));
  12. }
  13. function _classCallCheck(a, n) {
  14. if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
  15. }
  16. function _defineProperties(e, r) {
  17. for (var t = 0; t < r.length; t++) {
  18. var o = r[t];
  19. o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
  20. }
  21. }
  22. function _createClass(e, r, t) {
  23. return r && _defineProperties(e.prototype, r), Object.defineProperty(e, "prototype", {
  24. writable: !1
  25. }), e;
  26. }
  27. function _get() {
  28. return _get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) {
  29. var p = _superPropBase(e, t);
  30. if (p) {
  31. var n = Object.getOwnPropertyDescriptor(p, t);
  32. return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value;
  33. }
  34. }, _get.apply(null, arguments);
  35. }
  36. function _getPrototypeOf(t) {
  37. return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
  38. return t.__proto__ || Object.getPrototypeOf(t);
  39. }, _getPrototypeOf(t);
  40. }
  41. function _inherits(t, e) {
  42. if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function");
  43. t.prototype = Object.create(e && e.prototype, {
  44. constructor: {
  45. value: t,
  46. writable: !0,
  47. configurable: !0
  48. }
  49. }), Object.defineProperty(t, "prototype", {
  50. writable: !1
  51. }), e && _setPrototypeOf(t, e);
  52. }
  53. function _isNativeReflectConstruct() {
  54. try {
  55. var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
  56. } catch (t) {}
  57. return (_isNativeReflectConstruct = function () {
  58. return !!t;
  59. })();
  60. }
  61. function _possibleConstructorReturn(t, e) {
  62. if (e && ("object" == typeof e || "function" == typeof e)) return e;
  63. if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined");
  64. return _assertThisInitialized(t);
  65. }
  66. function _setPrototypeOf(t, e) {
  67. return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
  68. return t.__proto__ = e, t;
  69. }, _setPrototypeOf(t, e);
  70. }
  71. function _superPropBase(t, o) {
  72. for (; !{}.hasOwnProperty.call(t, o) && null !== (t = _getPrototypeOf(t)););
  73. return t;
  74. }
  75. function _toPrimitive(t, r) {
  76. if ("object" != typeof t || !t) return t;
  77. var e = t[Symbol.toPrimitive];
  78. if (void 0 !== e) {
  79. var i = e.call(t, r );
  80. if ("object" != typeof i) return i;
  81. throw new TypeError("@@toPrimitive must return a primitive value.");
  82. }
  83. return (String )(t);
  84. }
  85. function _toPropertyKey(t) {
  86. var i = _toPrimitive(t, "string");
  87. return "symbol" == typeof i ? i : i + "";
  88. }
  89. /**
  90. * @author: Dustin Utecht
  91. * @github: https://github.com/UtechtDustin
  92. */
  93. var Utils = $.fn.bootstrapTable.utils;
  94. Object.assign($.fn.bootstrapTable.defaults, {
  95. customView: false,
  96. showCustomView: false,
  97. customViewDefaultView: false
  98. });
  99. Object.assign($.fn.bootstrapTable.defaults.icons, {
  100. customViewOn: {
  101. bootstrap3: 'glyphicon glyphicon-list',
  102. bootstrap5: 'bi-list',
  103. bootstrap4: 'fa fa-list',
  104. semantic: 'fa fa-list',
  105. foundation: 'fa fa-list',
  106. bulma: 'fa fa-list',
  107. materialize: 'list'
  108. }[$.fn.bootstrapTable.theme] || 'fa-list',
  109. customViewOff: {
  110. bootstrap3: 'glyphicon glyphicon-thumbnails',
  111. bootstrap5: 'bi-grid',
  112. bootstrap4: 'fa fa-th',
  113. semantic: 'fa fa-th',
  114. foundation: 'fa fa-th',
  115. bulma: 'fa fa-th',
  116. materialize: 'grid_on'
  117. }[$.fn.bootstrapTable.theme] || 'fa-th'
  118. });
  119. Object.assign($.fn.bootstrapTable.defaults, {
  120. onCustomViewPostBody: function onCustomViewPostBody() {
  121. return false;
  122. },
  123. onCustomViewPreBody: function onCustomViewPreBody() {
  124. return false;
  125. },
  126. onToggleCustomView: function onToggleCustomView() {
  127. return false;
  128. }
  129. });
  130. Object.assign($.fn.bootstrapTable.locales, {
  131. formatToggleCustomViewOn: function formatToggleCustomViewOn() {
  132. return 'Show custom view';
  133. },
  134. formatToggleCustomViewOff: function formatToggleCustomViewOff() {
  135. return 'Hide custom view';
  136. }
  137. });
  138. Object.assign($.fn.bootstrapTable.defaults, $.fn.bootstrapTable.locales);
  139. $.fn.bootstrapTable.methods.push('toggleCustomView');
  140. Object.assign($.fn.bootstrapTable.events, {
  141. 'custom-view-post-body.bs.table': 'onCustomViewPostBody',
  142. 'custom-view-pre-body.bs.table': 'onCustomViewPreBody',
  143. 'toggle-custom-view.bs.table': 'onToggleCustomView'
  144. });
  145. $.BootstrapTable = /*#__PURE__*/function (_$$BootstrapTable) {
  146. function _class() {
  147. _classCallCheck(this, _class);
  148. return _callSuper(this, _class, arguments);
  149. }
  150. _inherits(_class, _$$BootstrapTable);
  151. return _createClass(_class, [{
  152. key: "init",
  153. value: function init() {
  154. this.customViewDefaultView = this.options.customViewDefaultView;
  155. _get(_getPrototypeOf(_class.prototype), "init", this).call(this);
  156. }
  157. }, {
  158. key: "initToolbar",
  159. value: function initToolbar() {
  160. var _get2;
  161. if (this.options.customView && this.options.showCustomView) {
  162. this.buttons = Object.assign(this.buttons, {
  163. customView: {
  164. text: this.options.customViewDefaultView ? this.options.formatToggleCustomViewOff() : this.options.formatToggleCustomViewOn(),
  165. icon: this.options.customViewDefaultView ? this.options.icons.customViewOn : this.options.icons.customViewOff,
  166. event: this.toggleCustomView,
  167. attributes: {
  168. 'aria-label': this.options.customViewDefaultView ? this.options.formatToggleCustomViewOff() : this.options.formatToggleCustomViewOn(),
  169. title: this.options.customViewDefaultView ? this.options.formatToggleCustomViewOff() : this.options.formatToggleCustomViewOn()
  170. }
  171. }
  172. });
  173. }
  174. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  175. args[_key] = arguments[_key];
  176. }
  177. (_get2 = _get(_getPrototypeOf(_class.prototype), "initToolbar", this)).call.apply(_get2, [this].concat(args));
  178. }
  179. }, {
  180. key: "initBody",
  181. value: function initBody() {
  182. _get(_getPrototypeOf(_class.prototype), "initBody", this).call(this);
  183. if (!this.options.customView) {
  184. return;
  185. }
  186. var $table = this.$el;
  187. var $customViewContainer = this.$container.find('.fixed-table-custom-view');
  188. $table.hide();
  189. $customViewContainer.hide();
  190. if (!this.options.customView || !this.customViewDefaultView) {
  191. $table.show();
  192. return;
  193. }
  194. var data = this.getData().slice(this.pageFrom - 1, this.pageTo);
  195. var value = Utils.calculateObjectValue(this, this.options.customView, [data], '');
  196. this.trigger('custom-view-pre-body', data, value);
  197. if ($customViewContainer.length === 1) {
  198. $customViewContainer.show().html(value);
  199. } else {
  200. this.$tableBody.after("<div class=\"fixed-table-custom-view\">".concat(value, "</div>"));
  201. }
  202. this.trigger('custom-view-post-body', data, value);
  203. }
  204. }, {
  205. key: "toggleCustomView",
  206. value: function toggleCustomView() {
  207. this.customViewDefaultView = !this.customViewDefaultView;
  208. var icon = this.options.showButtonIcons ? this.customViewDefaultView ? this.options.icons.customViewOn : this.options.icons.customViewOff : '';
  209. var text = this.options.showButtonText ? this.customViewDefaultView ? this.options.formatToggleCustomViewOff() : this.options.formatToggleCustomViewOn() : '';
  210. this.$toolbar.find('button[name="customView"]').html("".concat(Utils.sprintf(this.constants.html.icon, this.options.iconsPrefix, icon), " ").concat(text)).attr('aria-label', text).attr('title', text);
  211. this.initBody();
  212. this.trigger('toggle-custom-view', this.customViewDefaultView);
  213. }
  214. }]);
  215. }($.BootstrapTable);
  216. }));