-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathangular-snap.min.js
More file actions
1 lines (1 loc) · 3.73 KB
/
angular-snap.min.js
File metadata and controls
1 lines (1 loc) · 3.73 KB
1
angular.module("snap",[]),function(){"use strict";var a=[1,8,6],b={full:a.join("."),major:a[0],minor:a[1],patch:a[2]};angular.module("snap").constant("SNAP_VERSION",b)}(),angular.module("snap").directive("snapClose",["$rootScope","snapRemote",function(a,b){"use strict";return{restrict:"A",link:function(c,d,e){d.bind("click",function(){b.close(c.$eval(e.snapId)),a.$digest()})}}}]),angular.module("snap").directive("snapContent",["SnapConstructor","snapRemote",function(a,b){"use strict";return{restrict:"AE",link:function(c,d,e){d.addClass("snap-content");var f=e.snapId;f&&(f=c.$eval(e.snapId));var g=angular.extend({},b.globalOptions),h=function(a,d){c.$watch(function(){return c.$eval(a)},function(a,c){angular.isDefined(c)&&a!==c&&b.getSnapper(f).then(function(b){var c={};c[d]=a,b.settings(c)})})};angular.forEach(e,function(a,b){0===b.indexOf("snapOpt")&&(b=b.substring(7),b.length&&(b=b[0].toLowerCase()+b.substring(1),g[b]=c.$eval(a),h(a,b)))}),g.element=d[0],angular.isDefined(e.snapOptions)&&e.snapOptions&&angular.extend(g,c.$eval(e.snapOptions)),b.register(new a(g),f),angular.isDefined(e.snapOptions)&&e.snapOptions&&c.$watch(e.snapOptions,function(a){b.getSnapper(f).then(function(b){b.settings(a)})},!0),c.$on("$destroy",function(){b.unregister(f)})}}}]),angular.module("snap").directive("snapDragger",["snapRemote",function(a){"use strict";return{restrict:"AE",link:function(b,c,d){var e=b.$eval(d.snapId);a.getSnapper(e).then(function(a){a.settings({dragger:c[0]})})}}}]),angular.module("snap").directive("snapDrawer",function(){"use strict";return{restrict:"AE",link:function(a,b,c){b.addClass("snap-drawer");var d=b.parent(),e=!0;for("right"===c.snapDrawer?b.addClass("snap-drawer-right"):b.addClass("snap-drawer-left");d.length;)d.hasClass("snap-drawers")&&(e=!1),d=d.parent();e&&b.wrap('<div class="snap-drawers" />')}}}),angular.module("snap").directive("snapDrawers",function(){"use strict";return{restrict:"AE",compile:function(a,b){a.addClass("snap-drawers")}}}),angular.module("snap").directive("snapToggle",["$rootScope","snapRemote",function(a,b){"use strict";return{restrict:"A",link:function(c,d,e){var f=e.snapId,g=e.snapToggle||"left";if(f&&(f=c.$eval(f)),!e.snapUnsafe){var h=!1;d.bind("mousedown",function(a){h=!0,a.stopImmediatePropagation()}),d.bind("mouseup",function(a){h&&a.stopImmediatePropagation(),h=!1})}d.bind("click",function(){b.toggle(g,f),a.$digest()})}}}]),angular.module("snap").provider("SnapConstructor",function(){"use strict";var a;this.use=function(b){a=b},this.$get=["$window",function(b){var c=a||b.Snap;if(angular.isUndefined(c))throw new Error("Snap constructor is not defined. Make sure window.Snap is defined or supply your own with SnapConstructorProvider.use(MySnap).");return c}]}),angular.module("snap").provider("snapRemote",function(){"use strict";var a=this;return this.globalOptions={},this.$get=["$q",function(b){var c,d,e={},f="__DEFAULT_SNAPPER_ID__",g={};return g.globalOptions=a.globalOptions,g.getSnapper=function(a){return a=a||f,e.hasOwnProperty(a)||c(a),e[a].deferred.promise},g.register=function(a,b){b=b||f,e.hasOwnProperty(b)||c(b),e[b].isResolved&&c(b),d(a,b)},g.unregister=function(a){a=a||f,e.hasOwnProperty(a)&&delete e[a]},g.toggle=function(a,b){b=b||f,g.getSnapper(b).then(function(c){a===c.state().state?g.close(b):g.open(a,b)})},g.open=function(a,b){b=b||f,g.getSnapper(b).then(function(b){b.open(a)})},g.close=function(a){a=a||f,g.getSnapper(a).then(function(a){a.close()})},g.expand=function(a,b){b=b||f,g.getSnapper(b).then(function(b){b.expand(a)})},g.enable=function(a){a=a||f,g.getSnapper(a).then(function(a){a.enable()})},g.disable=function(a){a=a||f,g.getSnapper(a).then(function(a){a.disable()})},c=function(a){e[a]={deferred:b.defer(),isResolved:!1}},d=function(a,b){e[b].deferred.resolve(a),e[b].isResolved=!0},g}],this});