zmp-core
Version:
Full featured mobile HTML framework for building iOS & Android apps
2 lines (1 loc) • 5.33 kB
JavaScript
(function zmpComponentLoader(e,t){void 0===t&&(t=!0);var a=e.$,n=e.utils,l=(e.getDevice,e.getSupport,e.Class),r=(e.Modal,e.ConstructorMethods);e.ModalMethods;function o(e){this.wrapped=e}function c(e){var t,a;function n(t,a){try{var r=e[t](a),c=r.value,i=c instanceof o;Promise.resolve(i?c.wrapped:c).then((function(e){i?n("return"===t?"return":"next",e):l(r.done?"return":"normal",e)}),(function(e){n("throw",e)}))}catch(e){l("throw",e)}}function l(e,l){switch(e){case"return":t.resolve({value:l,done:!0});break;case"throw":t.reject(l);break;default:t.resolve({value:l,done:!1})}(t=t.next)?n(t.key,t.arg):a=null}this._invoke=function(e,l){return new Promise((function(r,o){var c={key:e,arg:l,resolve:r,reject:o,next:null};a?a=a.next=c:(t=a=c,n(e,l))}))},"function"!=typeof e.return&&(this.return=void 0)}function i(e,t){return(i=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function s(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}c.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},c.prototype.next=function(e){return this._invoke("next",e)},c.prototype.throw=function(e){return this._invoke("throw",e)},c.prototype.return=function(e){return this._invoke("return",e)};var d=n.extend,h=n.deleteProps,u=function(e){var t,n;function l(t,n){var l;void 0===n&&(n={});var r=s(l=e.call(this,n,[t])||this),o={};r.useModulesParams(o),r.params=d(o,n);var c=a(r.params.el);if(0===c.length)return s(l);if(r.$el=c,r.el=c[0],r.$el[0].zmpDataTable){var i=r.$el[0].zmpDataTable;return r.destroy(),i||s(l)}function h(e){if(!e.detail||!e.detail.sentByZMPDataTable){var t=a(this),n=t[0].checked,l=t.parents("td,th").index();if(t.parents("thead").length>0)0===l&&c.find("tbody tr")[n?"addClass":"removeClass"]("data-table-row-selected"),c.find("tbody tr td:nth-child("+(l+1)+") input").prop("checked",n).trigger("change",{sentByZMPDataTable:!0}),t.prop("indeterminate",!1);else{0===l&&t.parents("tr")[n?"addClass":"removeClass"]("data-table-row-selected");var o=c.find("tbody .checkbox-cell:nth-child("+(l+1)+') input[type="checkbox"]:checked').length,i=c.find("tbody tr").length,s=c.find("thead .checkbox-cell:nth-child("+(l+1)+') input[type="checkbox"]');n?o===i&&s.prop("checked",!0).trigger("change",{sentByZMPDataTable:!0}):s.prop("checked",!1),s.prop("indeterminate",o>0&&o<i)}r.checkSelectedHeader()}}function u(){var e,t=a(this),n=t.hasClass("sortable-cell-active"),l=t.hasClass("sortable-desc")?"desc":"asc";n?(e="desc"===l?"asc":"desc",t.removeClass("sortable-desc sortable-asc").addClass("sortable-"+e)):(c.find("thead .sortable-cell-active").removeClass("sortable-cell-active"),t.addClass("sortable-cell-active"),e=l),t.trigger("datatable:sort",e),r.emit("local::sort dataTableSort",r,e)}return r.$el[0].zmpDataTable=r,d(r,{collapsible:c.hasClass("data-table-collapsible"),$headerEl:c.find(".data-table-header"),$headerSelectedEl:c.find(".data-table-header-selected")}),r.attachEvents=function(){r.$el.on("change",'.checkbox-cell input[type="checkbox"]',h),r.$el.find("thead .sortable-cell").on("click",u)},r.detachEvents=function(){r.$el.off("change",'.checkbox-cell input[type="checkbox"]',h),r.$el.find("thead .sortable-cell").off("click",u)},r.useModules(),r.init(),r||s(l)}n=e,(t=l).prototype=Object.create(n.prototype),t.prototype.constructor=t,i(t,n);var r=l.prototype;return r.setCollapsibleLabels=function(){var e=this;e.collapsible&&e.$el.find("tbody td:not(.checkbox-cell)").each((function(t){var n=a(t),l=n.index(),r=n.attr("data-collapsible-title");r||""===r||n.attr("data-collapsible-title",e.$el.find("thead th").eq(l).text())}))},r.checkSelectedHeader=function(){var e=this;if(e.$headerEl.length>0&&e.$headerSelectedEl.length>0){var t=e.$el.find("tbody .checkbox-cell input:checked").length;e.$el[t>0?"addClass":"removeClass"]("data-table-has-checked"),e.$headerSelectedEl.find(".data-table-selected-count").text(t)}},r.init=function(){var e=this;e.attachEvents(),e.setCollapsibleLabels(),e.checkSelectedHeader()},r.destroy=function(){var e=this;e.$el.trigger("datatable:beforedestroy"),e.emit("local::beforeDestroy dataTableBeforeDestroy",e),e.attachEvents(),e.$el[0]&&(e.$el[0].zmpDataTable=null,delete e.$el[0].zmpDataTable),h(e),e=null},l}(l),b={name:"dataTable",static:{DataTable:u},create:function(){this.dataTable=r({defaultSelector:".data-table",constructor:u,app:this,domProp:"zmpDataTable"})},on:{tabBeforeRemove:function(e){var t=this;a(e).find(".data-table-init").each((function(e){t.dataTable.destroy(e)}))},tabMounted:function(e){var t=this;a(e).find(".data-table-init").each((function(e){t.dataTable.create({el:e})}))},pageBeforeRemove:function(e){var t=this;e.$el.find(".data-table-init").each((function(e){t.dataTable.destroy(e)}))},pageInit:function(e){var t=this;e.$el.find(".data-table-init").each((function(e){t.dataTable.create({el:e})}))}},vnode:{"data-table-init":{insert:function(e){var t=e.elm;this.dataTable.create({el:t})},destroy:function(e){var t=e.elm;this.dataTable.destroy(t)}}}};if(t){if(e.prototype.modules&&e.prototype.modules[b.name])return;e.use(b),e.instance&&(e.instance.useModuleParams(b,e.instance.params),e.instance.useModule(b))}return b}(ZMP, typeof ZMPAutoInstallComponent === 'undefined' ? undefined : ZMPAutoInstallComponent))