ux-datagrid-sortModel.min.js |
|
! ux-angularjs-datagrid v.1.4.11 (c) 2016, Obogo https://github.com/obogo/ux-angularjs-datagrid License: MIT. |
(function (exports, global) {
if (typeof define === "function" && define.amd) {
define(exports);
} else if (typeof module !== "undefined" && module.exports) {
module.exports = exports;
} else {
global.ux = exports;
}
!function(a,b){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&module.exports?module.exports=a:b.ux=a,a.datagrid.events.ON_BEFORE_SORT="datagrid:onBeforeSort",a.datagrid.events.ON_AFTER_SORT="datagrid:onAfterSort",a.datagrid.events.ON_BEFORE_TOGGLE_SORT="datagrid:onBeforeToggleSort",a.datagrid.events.ON_AFTER_TOGGLE_SORT="datagrid:onAfterToggleSort",a.datagrid.events.CLEAR_SORTS="datagrid:clearSorts",a.datagrid.events.CLEAR_ALL_SORTS="datagrid:clearAllSorts",angular.module("ux").service("sortStatesModel",["$location","$rootScope",function(b,c){return a.datagrid.sortStatesModel=function(){function d(a){return"$"===a.charAt(0)}function e(){return b.path()}function f(){return F.getCurrentPath().split("?").shift()}function g(){var a;return a=F.getIgnoreParamsInPath()?F.getCurrentPathWithoutParams():F.getCurrentPath(),a!==H&&(F.log("getPath changed from %s to %s",H,a),H=a),a}function h(){var a=J[F.getPath()];return a===!0||a===!1?a:L}function i(a,b){return b=b||F.getPath(),void 0!==a&&(F.log("setAllowMultipleStates %s",a),J[b]=a===!0),!!J[b]}function j(){return K[F.getCurrentPathWithoutParams()]===!0}function k(a){F.log("setIgnoreParamsInPath %s",a),K[F.getCurrentPathWithoutParams()]=a}function l(a){return a=a||F.getPath(),!!I[a]}function m(a){return a=a||F.getPath(),I[a]||(I[a]={$dirty:!1,$path:a,$order:[]}),I[a]}function n(b){var c,e=F.getPathState();F.log("setPathState %s to %s",e,b),F.setIgnoreParamsInPath(!0);for(c in b)a.util.apply(Object.prototype.hasOwnProperty,b,[c])&&b[c]!==e[c]&&!d(c)&&F.setState(c,b[c],e)}function o(a){var b=F.getPathState(F.getPath());return void 0===b[a]&&(b[a]=G.NONE),b[a]}function p(a,b,c){var d,e;if(c=c||F.getPathState(F.getPath()),!F.isPrivate(a)&&c[a]!==b){if(e=c[a],F.getAllowMultipleStates(c.$path)&&(d=c.$order.indexOf(a),-1!==d&&c.$order.splice(d,1)),b!==G.NONE&&(F.getAllowMultipleStates()||F.clear(c),c.$order.push(a)),c[a]=b,!e&&b===G.NONE)return;F.dirtyState(c)}}function q(b){b=b||F.getPathState(F.getPath());var c={text:"",pathState:b};return a.each(b.$order,F.createKeyFromState,c),c.text}function r(a,b,c,d){F.isPrivate(a)||(d.text+=(d.text.length?"|":"")+a+":"+d.pathState[a])}function s(a){var b=F.getState(a),c=F.getNextState(b);F.info("toggle %s from %s to %s",a,b,c),F.setState(a,c),F.dirtyState()}function t(a){a=a||F.getPathState(F.getPath()),F.log("dirtyState %s",a),a.$dirty=!0}function u(a){a=a||F.getPathState(F.getPath()),F.log("clearDirty %s",a),a.$dirty=!1}function v(a){var b=G.ASC;switch(a){case G.NONE:b=G.ASC;break;case G.ASC:b=G.DESC;break;case G.DESC:b=G.NONE}return b}function w(a){return a=a||F.getPathState(F.getPath()),a.$dirty}function x(a){var b=void 0===a||null===a?"":a;return"string"==typeof b?b.toLowerCase():b}function y(){return"en"}function z(a,b){return a=F.cleanSortValue(a),b=F.cleanSortValue(b),a>b?1:b>a?-1:0}function A(a,b){return 0}function B(a){return function(b,c){var d=b[a],e=c[a];return F.sortValueCompare(d,e)}}function C(a){return function(b,c){var d=b[a],e=c[a];return-F.sortValueCompare(d,e)}}function D(b){var c;b=b||F.getPathState(F.getPath()),b.$order.length=0;for(c in b)a.util.apply(Object.prototype.hasOwnProperty,b,[c])&&!F.isPrivate(c)&&b[c]!==G.NONE&&(b[c]=G.NONE)}function E(){I={},J={}}var F=a.logWrapper("columnSortStatesModel",{},"blue",function(){a.util.apply(c.$emit,c,arguments)}),G={ASC:"asc",DESC:"desc",NONE:"none"},H="",I={},J={},K={},L=!1;return F.getPath=g,F.getCurrentPath=e,F.getCurrentPathWithoutParams=f,F.sortValueCompare=z,F.cleanSortValue=x,F.getNextState=v,F.createKeyFromState=r,F.getAllowMultipleStates=h,F.setAllowMultipleStates=i,F.getIgnoreParamsInPath=j,F.setIgnoreParamsInPath=k,F.hasPathState=l,F.getPathState=m,F.setPathState=n,F.getState=o,F.setState=p,F.toggle=s,F.dirtyState=t,F.clearDirty=u,F.sortNone=A,F.createAscSort=B,F.createDescSort=C,F.hasDirtySortState=w,F.createKeyFromStates=q,F.isPrivate=d,F.getLocale=y,F.clear=D,F.clearAll=E,F.sortOptions=G,F}(),a.datagrid.sortStatesModel}]),angular.module("ux").factory("sortModel",["sortStatesModel",function(b){return["inst",function(c){function d(a,b,c){var d=c[b];return d&&j[b]&&ux.util.array.sort(a,j[b][d]),a}function e(a,b,c,e){var f,g;if(!l.groupSort&&e.grouped&&e.ary.length&&e.ary[0].hasOwnProperty(e.grouped))for(g=e.ary.length,f=0;g>f;f+=1)e.ary[f]=angular.extend({},e.ary[f]),e.ary[f][e.grouped]=d(e.ary[f][e.grouped].slice(0),a,e.pathState);else d(e.ary,a,e.pathState)}function f(){var a,d,e=b.hasPathState(),f=b.getPathState();if(l.sorts=l.sorts||c.options.sorts,l.sorts)for(a in l.sorts)"object"==typeof l.sorts[a]?(b.setState(a,l.sorts[a].value,f),d=l.sorts[a]):(e||b.setState(a,l.sorts[a],f),d={asc:b.createAscSort(a),desc:b.createDescSort(a),none:b.sortNone}),i.addSortColumn(a,d)}var g,h,i=a.logWrapper("sortModel",{},"blue",c),j={},k={},l=c.options.sortModel||{};return i.addSortColumn=function(a,c){j[a]=c;var d=b.getPathState();d[a]=d[a]||b.sortOptions.NONE},i.getCache=function(a){return k[a]},i.setCache=function(a,b){k[a]=b},i.applySorts=function(d,f,j){var k=b.getPathState(),m=angular.copy(k);if(f&&(i.log("apply sortOptions"),b.setPathState(f)),g!==d||b.hasDirtySortState(k)){if(g=d,!g)return h=g;if(j&&i.clear(),i.setCache("",g),!i.$processing){i.$processing=!0;var n,o=b.createKeyFromStates(k),p=angular.copy(k);i.info("applySorts %s",o),n=c.dispatch(a.datagrid.events.ON_BEFORE_SORT,o,m,p),n.defaultPrevented?h=g:(i.getCache(o)&&i.getCache(o).length===g.length?i.log(" pull sort from cache"):(i.log(" store sort %s",o),i.setCache(o,g&&g.slice(0)||[]),ux.each(p.$order,e,{grouped:c.grouped,pathState:p,ary:i.getCache(o)})),h=i.getCache(o),b.clearDirty(k),l.enableCache===!1&&i.clear()),i.$processing=!1,c.dispatch(a.datagrid.events.ON_AFTER_SORT,o,p,m)}}return h},i.isApplied=function(a,c){return b.getPathState()[a]===c},i.getSortStateOf=function(a){return b.getPathState()[a]},i.multipleSort=b.setAllowMultipleStates,i.getSortKey=b.createKeyFromStates,i.toggleSort=function(d){i.log("toggleSort %s",d),c.dispatch(a.datagrid.events.ON_BEFORE_TOGGLE_SORT,d),c.creepRenderModel&&c.creepRenderModel.stop(),b.toggle(d),i.applySorts(g),c.dispatch(a.datagrid.events.ON_AFTER_TOGGLE_SORT,d)},i.setSortStateOf=function(a,c){("none"===c||"asc"===c||"desc"===c)&&b.setState(a,c)},i.clear=function(){k={}},i.destroy=function(){i=null,h=null,j=null,k=null,g=null,c.sortModel=null,c=null},c.unwatchers.push(c.scope.$on(a.datagrid.events.CLEAR_SORTS,a.datagrid.sortStatesModel.clear)),c.unwatchers.push(c.scope.$on(a.datagrid.events.CLEAR_ALL_SORTS,a.datagrid.sortStatesModel.clearAll)),c.sortModel=i,f(),c}]}])}(this.ux=this.ux||{},function(){return this}());
|
¶ sourceMappingURL=ux-datagrid-sortModel.min.js.map |
}(this.ux = this.ux || {}, function() {return this;}()));
|