From e079ea3e587c1be148776e2f8a58707791fc128a Mon Sep 17 00:00:00 2001 From: Juan Pablo Kutianski Date: Sat, 10 Mar 2018 20:40:46 -0300 Subject: [PATCH 1/2] use the correct element to evaluate `sv-handle-disable` --- src/angular-sortable-view.js | 2 +- src/angular-sortable-view.min.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/angular-sortable-view.js b/src/angular-sortable-view.js index 76e08bc..937c083 100644 --- a/src/angular-sortable-view.js +++ b/src/angular-sortable-view.js @@ -447,7 +447,7 @@ if($controllers[1].sortingInProgress()) return; if(e.button != 0 && e.type === 'mousedown') return; - var svHandleDisabledAttr = e.target.attributes['sv-handle-disabled']; + var svHandleDisabledAttr = handle[0].attributes['sv-handle-disabled']; if(svHandleDisabledAttr && svHandleDisabledAttr.value === 'true') return; moveExecuted = false; diff --git a/src/angular-sortable-view.min.js b/src/angular-sortable-view.min.js index 72b185f..df78a06 100644 --- a/src/angular-sortable-view.min.js +++ b/src/angular-sortable-view.min.js @@ -2,4 +2,4 @@ Copyright Kamil Pękala http://github.com/kamilkp angular-sortable-view v0.0.13 2015/01/13 */ -!function(a,b){"use strict";function c(a){if(!("clientX"in a||"clientY"in a)){var b=a.touches||a.originalEvent.touches;b&&b.length&&(a.clientX=b[0].clientX,a.clientY=b[0].clientY),a.preventDefault()}}function d(a){if(a=a[0],a.previousElementSibling)return b.element(a.previousElementSibling);for(var c=a.previousSibling;null!=c&&1!=c.nodeType;)c=c.previousSibling;return b.element(c)}function e(a,b){var c=d(a);c.length>0?c.after(b):a.parent().prepend(b)}function f(a,c){if(a instanceof b.element&&(a=a[0]),null!==i)return a[i](c)}var g=b.module("angular-sortable-view",[]);g.directive("svRoot",[function(){function a(a,b,c){return c?a.x-b.x<0:a.y-b.y<0}function b(a){return i[a]}function c(a){delete i[a]}function d(a){return[{x:a.left,y:a.top},{x:a.left+a.width,y:a.top},{x:a.left,y:a.top+a.height},{x:a.left+a.width,y:a.top+a.height},{x:a.left+a.width/2,y:a.top+a.height/2}]}function g(a,b){return a.x>=b[0].x&&a.x<=b[1].x&&a.y>=b[0].y&&a.y<=b[2].y?0:Math.min.apply(Math,b.map(function(b){return(b.x-a.x)*(b.x-a.x)+(b.y-a.y)*(b.y-a.y)}))}var h,i=Object.create(null);return{restrict:"A",controller:["$scope","$attrs","$interpolate","$parse",function(j,k,l,m){var n=l(k.svRoot)(j)||j.$id;i[n]||(i[n]=[]);var o,p,q,r,s,t,u=!1,v=m(k.svOnSort);k.svOnStart=k.$$element[0].attributes["sv-on-start"],k.svOnStart=k.svOnStart&&k.svOnStart.value,k.svOnStop=k.$$element[0].attributes["sv-on-stop"],k.svOnStop=k.svOnStop&&k.svOnStop.value;var w=m(k.svOnStart),x=m(k.svOnStop);if(this.sortingInProgress=function(){return h},k.svGrid){if(null===(u="true"===k.svGrid||"false"!==k.svGrid&&null))throw"Invalid value of sv-grid attribute"}else j.$watchCollection(function(){return b(n)},function(a){u=!1;var b=a.filter(function(a){return!a.container}).map(function(a){return{part:a.getPart().id,y:a.element[0].getBoundingClientRect().top}}),c=Object.create(null);b.forEach(function(a){c[a.part]?c[a.part].push(a.y):c[a.part]=[a.y]}),Object.keys(c).forEach(function(a){c[a].sort(),c[a].forEach(function(b,d){d0&&b===c[a][d+1]&&(u=!0)})})});this.$moveUpdate=function(c,i,k,l,m,v,x){var y=k[0].getBoundingClientRect();"element"===c.tolerance&&(i={x:~~(y.left+y.width/2),y:~~(y.top+y.height/2)}),h=!0,o=[],p||(m?(p=m.clone(),p.removeClass("ng-hide")):(p=l.clone(),p.addClass("sv-visibility-hidden"),p.addClass("sv-placeholder"),p.css({height:y.height+"px",width:y.width+"px"})),l.after(p),v.copyMode||l.addClass("ng-hide"),s=l,q=c,r=k,w(j,{$helper:{element:r},$part:v.model(v.scope),$index:x,$item:v.model(v.scope)[x]}),j.$root&&j.$root.$$phase||j.$apply()),r[0].reposition({x:i.x+document.body.scrollLeft-i.offset.x*y.width,y:i.y+document.body.scrollTop-i.offset.y*y.height}),b(n).forEach(function(b,e){if(null==c.containment||f(b.element,c.containment)||f(b.element,c.containment+" *")){var h=b.element[0].getBoundingClientRect(),j=d(h),k={x:~~(h.left+h.width/2),y:~~(h.top+h.height/2)},l={x:~~(h.left+h.width/2),y:~~h.top},m={x:~~h.left,y:~~(h.top+h.height/2)};if(!b.container&&(b.element[0].scrollHeight||b.element[0].scrollWidth)){var n=b.getPart();o.push({element:b.element,q:g(i,j),view:n,targetIndex:b.getIndex(),after:a(k,i,"isGrid"in n?n.isGrid:u)})}if(b.container&&!b.element[0].querySelector("[sv-element]:not(.sv-placeholder):not(.sv-source)")){var p=k;"vertical"===b.centerVariant?p=m:"horizontal"===b.centerVariant&&(p=l),o.push({element:b.element,q:(p.x-i.x)*(p.x-i.x)+(p.y-i.y)*(p.y-i.y),view:b.getPart(),targetIndex:0,container:!0})}}});var z=p[0].getBoundingClientRect();o.push({q:g(i,d(z)),element:p,placeholder:!0}),o.sort(function(a,b){return a.q-b.q}),o.forEach(function(a,b){0!==b||a.placeholder||a.container?0===b&&a.container?(t=a,a.element.append(p)):a.element.removeClass("sv-candidate"):(t=a,a.element.addClass("sv-candidate"),a.after?a.element.after(p):e(a.element,p))})},this.$drop=function(a,b,c){function d(){if(h=!1,p.remove(),r.remove(),s.removeClass("ng-hide"),o=void 0,p=void 0,c=void 0,r=void 0,s=void 0,x(j,{$part:a.model(a.scope),$index:b,$item:a.model(a.scope)[b]}),t){t.element.removeClass("sv-candidate");var d=a.model(a.scope).splice(b,1),e=t.targetIndex;t.view===a&&t.targetIndex>b&&e--,t.after&&e++,t.view.model(t.view.scope).splice(e,0,d[0]),t.view===a&&b===e||v(j,{$partTo:t.view.model(t.view.scope),$partFrom:a.model(a.scope),$item:d[0],$indexTo:e,$indexFrom:b})}t=void 0,j.$root&&j.$root.$$phase||j.$apply()}if(p)if(!c.revert||t&&t.view&&t.view.noRevert)d();else{var e=p[0].getBoundingClientRect(),f=r[0].getBoundingClientRect(),g=Math.sqrt(Math.pow(f.top-e.top,2)+Math.pow(f.left-e.left,2)),i=+c.revert*g/200;i=Math.min(i,+c.revert),["-webkit-","-moz-","-ms-","-o-",""].forEach(function(a){void 0!==r[0].style[a+"transition"]&&(r[0].style[a+"transition"]="all "+i+"ms ease")}),setTimeout(d,i),r.css({top:e.top+document.body.scrollTop+"px",left:e.left+document.body.scrollLeft+"px"})}},this.addToSortableElements=function(a){b(n).push(a)},this.removeFromSortableElements=function(a){var d=b(n),e=d.indexOf(a);e>-1&&(d.splice(e,1),0===d.length&&c(n))}}]}}]),g.directive("svPart",["$parse",function(a){return{restrict:"A",require:"^svRoot",controller:["$scope",function(a){a.$ctrl=this,this.getPart=function(){return a.part},this.$drop=function(b,c){a.$sortableRoot.$drop(a.part,b,c)}}],scope:!0,link:function(b,c,d,e){if(!d.svPart)throw new Error("no model provided");var f=a(d.svPart);if(!f.assign)throw new Error("model not assignable");b.part={id:b.$id,element:c,model:f,copyMode:"true"===d.svCopy,noRevert:"true"===d.svNoRevert,scope:b},"isGrid"in d&&(b.part.isGrid="true"===d.isGrid),b.$sortableRoot=e;var g={element:c,getPart:b.$ctrl.getPart,container:!0,centerVariant:d.svCenter||"both"};e.addToSortableElements(g),b.$on("$destroy",function(){e.removeFromSortableElements(g)})}}}]),g.directive("svElement",["$parse",function(a){return{restrict:"A",require:["^svPart","^svRoot"],controller:["$scope",function(a){a.$ctrl=this}],link:function(d,e,f,g){function h(h){function i(a){c(a),n||(e.parent().prepend(r),n=!0),g[1].$moveUpdate(p,{x:a.clientX,y:a.clientY,offset:u},r,e,m,g[0].getPart(),d.$index)}if(c(h),!g[1].sortingInProgress()&&(0==h.button||"mousedown"!==h.type)){var k=h.target.attributes["sv-handle-disabled"];if(!k||"true"!==k.value){n=!1;var p=a(f.svElement)(d);if(p=b.extend({},{tolerance:"pointer",revert:200,containment:"html"},p),p.containment)var q=j.call(e,p.containment)[0].getBoundingClientRect();var r,s=e,t=e[0].getBoundingClientRect();l||(l=g[0].helper),m||(m=g[0].placeholder),l?(r=l.clone(),r.removeClass("ng-hide"),r.css({left:t.left+document.body.scrollLeft+"px",top:t.top+document.body.scrollTop+"px"}),s.addClass("sv-visibility-hidden")):(r=s.clone(),r.addClass("sv-helper").css({left:t.left+document.body.scrollLeft+"px",top:t.top+document.body.scrollTop+"px",width:t.width+"px"})),r[0].reposition=function(a){var b=a.x,c=a.y,d=r[0].getBoundingClientRect(),e=document.body;q&&(cq.top+e.scrollTop+q.height&&(c=q.top+e.scrollTop+q.height-d.height),bq.left+e.scrollLeft+q.width&&(b=q.left+e.scrollLeft+q.width-d.width)),this.style.left=b-e.scrollLeft+"px",this.style.top=c-e.scrollTop+"px"};var u={x:(h.clientX-t.left)/t.width,y:(h.clientY-t.top)/t.height};o.addClass("sv-sorting-in-progress"),o.on("mousemove touchmove",i).on("mouseup touchend touchcancel",function a(b){o.off("mousemove touchmove",i),o.off("mouseup touchend touchcancel",a),o.removeClass("sv-sorting-in-progress"),n&&g[0].$drop(d.$index,p),e.removeClass("sv-visibility-hidden")})}}}var i={element:e,getPart:g[0].getPart,getIndex:function(){return d.$index}};g[1].addToSortableElements(i),d.$on("$destroy",function(){g[1].removeFromSortableElements(i)});var k=e;k.on("mousedown touchstart",h),d.$watch("$ctrl.handle",function(a){a&&(k.off("mousedown touchstart",h),k=a,k.on("mousedown touchstart",h))});var l;d.$watch("$ctrl.helper",function(a){a&&(l=a)});var m;d.$watch("$ctrl.placeholder",function(a){a&&(m=a)});var n,o=(b.element(document.body),b.element(document.documentElement))}}}]),g.directive("svHandle",function(){return{require:"?^svElement",link:function(a,b,c,d){d&&(d.handle=b.add(d.handle))}}}),g.directive("svHelper",function(){return{require:["?^svPart","?^svElement"],link:function(a,b,c,d){b.addClass("sv-helper").addClass("ng-hide"),d[1]?d[1].helper=b:d[0]&&(d[0].helper=b)}}}),g.directive("svPlaceholder",function(){return{require:["?^svPart","?^svElement"],link:function(a,b,c,d){b.addClass("sv-placeholder").addClass("ng-hide"),d[1]?d[1].placeholder=b:d[0]&&(d[0].placeholder=b)}}}),b.element(document.head).append([""].join(""));var h=document.documentElement,i=h.matches?"matches":h.matchesSelector?"matchesSelector":h.webkitMatches?"webkitMatches":h.webkitMatchesSelector?"webkitMatchesSelector":h.msMatches?"msMatches":h.msMatchesSelector?"msMatchesSelector":h.mozMatches?"mozMatches":h.mozMatchesSelector?"mozMatchesSelector":null;if(null==i)throw"This browser doesn't support the HTMLElement.matches method";var j=b.element.prototype.closest||function(a){for(var c=this[0].parentNode;c!==document.documentElement&&!c[i](a);)c=c.parentNode;return c[i](a)?b.element(c):b.element()};"function"!=typeof b.element.prototype.add&&(b.element.prototype.add=function(a){var c,d=b.element();for(a=b.element(a),c=0;c0?c.after(b):a.parent().prepend(b)}function f(a,c){if(a instanceof b.element&&(a=a[0]),null!==i)return a[i](c)}var g=b.module("angular-sortable-view",[]);g.directive("svRoot",[function(){function a(a,b,c){return c?a.x-b.x<0:a.y-b.y<0}function b(a){return i[a]}function c(a){delete i[a]}function d(a){return[{x:a.left,y:a.top},{x:a.left+a.width,y:a.top},{x:a.left,y:a.top+a.height},{x:a.left+a.width,y:a.top+a.height},{x:a.left+a.width/2,y:a.top+a.height/2}]}function g(a,b){return a.x>=b[0].x&&a.x<=b[1].x&&a.y>=b[0].y&&a.y<=b[2].y?0:Math.min.apply(Math,b.map(function(b){return(b.x-a.x)*(b.x-a.x)+(b.y-a.y)*(b.y-a.y)}))}var h,i=Object.create(null);return{restrict:"A",controller:["$scope","$attrs","$interpolate","$parse",function(j,k,l,m){var n=l(k.svRoot)(j)||j.$id;i[n]||(i[n]=[]);var o,p,q,r,s,t,u=!1,v=m(k.svOnSort);k.svOnStart=k.$$element[0].attributes["sv-on-start"],k.svOnStart=k.svOnStart&&k.svOnStart.value,k.svOnStop=k.$$element[0].attributes["sv-on-stop"],k.svOnStop=k.svOnStop&&k.svOnStop.value;var w=m(k.svOnStart),x=m(k.svOnStop);if(this.sortingInProgress=function(){return h},k.svGrid){if(null===(u="true"===k.svGrid||"false"!==k.svGrid&&null))throw"Invalid value of sv-grid attribute"}else j.$watchCollection(function(){return b(n)},function(a){u=!1;var b=a.filter(function(a){return!a.container}).map(function(a){return{part:a.getPart().id,y:a.element[0].getBoundingClientRect().top}}),c=Object.create(null);b.forEach(function(a){c[a.part]?c[a.part].push(a.y):c[a.part]=[a.y]}),Object.keys(c).forEach(function(a){c[a].sort(),c[a].forEach(function(b,d){d0&&b===c[a][d+1]&&(u=!0)})})});this.$moveUpdate=function(c,i,k,l,m,v,x){var y=k[0].getBoundingClientRect();"element"===c.tolerance&&(i={x:~~(y.left+y.width/2),y:~~(y.top+y.height/2)}),h=!0,o=[],p||(m?(p=m.clone(),p.removeClass("ng-hide")):(p=l.clone(),p.addClass("sv-visibility-hidden"),p.addClass("sv-placeholder"),p.css({height:y.height+"px",width:y.width+"px"})),l.after(p),v.copyMode||l.addClass("ng-hide"),s=l,q=c,r=k,w(j,{$helper:{element:r},$part:v.model(v.scope),$index:x,$item:v.model(v.scope)[x]}),j.$root&&j.$root.$$phase||j.$apply()),r[0].reposition({x:i.x+document.body.scrollLeft-i.offset.x*y.width,y:i.y+document.body.scrollTop-i.offset.y*y.height}),b(n).forEach(function(b,e){if(null==c.containment||f(b.element,c.containment)||f(b.element,c.containment+" *")){var h=b.element[0].getBoundingClientRect(),j=d(h),k={x:~~(h.left+h.width/2),y:~~(h.top+h.height/2)},l={x:~~(h.left+h.width/2),y:~~h.top},m={x:~~h.left,y:~~(h.top+h.height/2)};if(!b.container&&(b.element[0].scrollHeight||b.element[0].scrollWidth)){var n=b.getPart();o.push({element:b.element,q:g(i,j),view:n,targetIndex:b.getIndex(),after:a(k,i,"isGrid"in n?n.isGrid:u)})}if(b.container&&!b.element[0].querySelector("[sv-element]:not(.sv-placeholder):not(.sv-source)")){var p=k;"vertical"===b.centerVariant?p=m:"horizontal"===b.centerVariant&&(p=l),o.push({element:b.element,q:(p.x-i.x)*(p.x-i.x)+(p.y-i.y)*(p.y-i.y),view:b.getPart(),targetIndex:0,container:!0})}}});var z=p[0].getBoundingClientRect();o.push({q:g(i,d(z)),element:p,placeholder:!0}),o.sort(function(a,b){return a.q-b.q}),o.forEach(function(a,b){0!==b||a.placeholder||a.container?0===b&&a.container?(t=a,a.element.append(p)):a.element.removeClass("sv-candidate"):(t=a,a.element.addClass("sv-candidate"),a.after?a.element.after(p):e(a.element,p))})},this.$drop=function(a,b,c){function d(){if(h=!1,p.remove(),r.remove(),s.removeClass("ng-hide"),o=void 0,p=void 0,c=void 0,r=void 0,s=void 0,x(j,{$part:a.model(a.scope),$index:b,$item:a.model(a.scope)[b]}),t){t.element.removeClass("sv-candidate");var d=a.model(a.scope).splice(b,1),e=t.targetIndex;t.view===a&&t.targetIndex>b&&e--,t.after&&e++,t.view.model(t.view.scope).splice(e,0,d[0]),t.view===a&&b===e||v(j,{$partTo:t.view.model(t.view.scope),$partFrom:a.model(a.scope),$item:d[0],$indexTo:e,$indexFrom:b})}t=void 0,j.$root&&j.$root.$$phase||j.$apply()}if(p)if(!c.revert||t&&t.view&&t.view.noRevert)d();else{var e=p[0].getBoundingClientRect(),f=r[0].getBoundingClientRect(),g=Math.sqrt(Math.pow(f.top-e.top,2)+Math.pow(f.left-e.left,2)),i=+c.revert*g/200;i=Math.min(i,+c.revert),["-webkit-","-moz-","-ms-","-o-",""].forEach(function(a){void 0!==r[0].style[a+"transition"]&&(r[0].style[a+"transition"]="all "+i+"ms ease")}),setTimeout(d,i),r.css({top:e.top+document.body.scrollTop+"px",left:e.left+document.body.scrollLeft+"px"})}},this.addToSortableElements=function(a){b(n).push(a)},this.removeFromSortableElements=function(a){var d=b(n),e=d.indexOf(a);e>-1&&(d.splice(e,1),0===d.length&&c(n))}}]}}]),g.directive("svPart",["$parse",function(a){return{restrict:"A",require:"^svRoot",controller:["$scope",function(a){a.$ctrl=this,this.getPart=function(){return a.part},this.$drop=function(b,c){a.$sortableRoot.$drop(a.part,b,c)}}],scope:!0,link:function(b,c,d,e){if(!d.svPart)throw new Error("no model provided");var f=a(d.svPart);if(!f.assign)throw new Error("model not assignable");b.part={id:b.$id,element:c,model:f,copyMode:"true"===d.svCopy,noRevert:"true"===d.svNoRevert,scope:b},"isGrid"in d&&(b.part.isGrid="true"===d.isGrid),b.$sortableRoot=e;var g={element:c,getPart:b.$ctrl.getPart,container:!0,centerVariant:d.svCenter||"both"};e.addToSortableElements(g),b.$on("$destroy",function(){e.removeFromSortableElements(g)})}}}]),g.directive("svElement",["$parse",function(a){return{restrict:"A",require:["^svPart","^svRoot"],controller:["$scope",function(a){a.$ctrl=this}],link:function(d,e,f,g){function h(h){function i(a){c(a),n||(e.parent().prepend(s),n=!0),g[1].$moveUpdate(q,{x:a.clientX,y:a.clientY,offset:v},s,e,m,g[0].getPart(),d.$index)}if(c(h),!g[1].sortingInProgress()&&(0==h.button||"mousedown"!==h.type)){var p=k[0].attributes["sv-handle-disabled"];if(!p||"true"!==p.value){n=!1;var q=a(f.svElement)(d);if(q=b.extend({},{tolerance:"pointer",revert:200,containment:"html"},q),q.containment)var r=j.call(e,q.containment)[0].getBoundingClientRect();var s,t=e,u=e[0].getBoundingClientRect();l||(l=g[0].helper),m||(m=g[0].placeholder),l?(s=l.clone(),s.removeClass("ng-hide"),s.css({left:u.left+document.body.scrollLeft+"px",top:u.top+document.body.scrollTop+"px"}),t.addClass("sv-visibility-hidden")):(s=t.clone(),s.addClass("sv-helper").css({left:u.left+document.body.scrollLeft+"px",top:u.top+document.body.scrollTop+"px",width:u.width+"px"})),s[0].reposition=function(a){var b=a.x,c=a.y,d=s[0].getBoundingClientRect(),e=document.body;r&&(cr.top+e.scrollTop+r.height&&(c=r.top+e.scrollTop+r.height-d.height),br.left+e.scrollLeft+r.width&&(b=r.left+e.scrollLeft+r.width-d.width)),this.style.left=b-e.scrollLeft+"px",this.style.top=c-e.scrollTop+"px"};var v={x:(h.clientX-u.left)/u.width,y:(h.clientY-u.top)/u.height};o.addClass("sv-sorting-in-progress"),o.on("mousemove touchmove",i).on("mouseup touchend touchcancel",function a(b){o.off("mousemove touchmove",i),o.off("mouseup touchend touchcancel",a),o.removeClass("sv-sorting-in-progress"),n&&g[0].$drop(d.$index,q),e.removeClass("sv-visibility-hidden")})}}}var i={element:e,getPart:g[0].getPart,getIndex:function(){return d.$index}};g[1].addToSortableElements(i),d.$on("$destroy",function(){g[1].removeFromSortableElements(i)});var k=e;k.on("mousedown touchstart",h),d.$watch("$ctrl.handle",function(a){a&&(k.off("mousedown touchstart",h),k=a,k.on("mousedown touchstart",h))});var l;d.$watch("$ctrl.helper",function(a){a&&(l=a)});var m;d.$watch("$ctrl.placeholder",function(a){a&&(m=a)});var n,o=(b.element(document.body),b.element(document.documentElement))}}}]),g.directive("svHandle",function(){return{require:"?^svElement",link:function(a,b,c,d){d&&(d.handle=b.add(d.handle))}}}),g.directive("svHelper",function(){return{require:["?^svPart","?^svElement"],link:function(a,b,c,d){b.addClass("sv-helper").addClass("ng-hide"),d[1]?d[1].helper=b:d[0]&&(d[0].helper=b)}}}),g.directive("svPlaceholder",function(){return{require:["?^svPart","?^svElement"],link:function(a,b,c,d){b.addClass("sv-placeholder").addClass("ng-hide"),d[1]?d[1].placeholder=b:d[0]&&(d[0].placeholder=b)}}}),b.element(document.head).append([""].join(""));var h=document.documentElement,i=h.matches?"matches":h.matchesSelector?"matchesSelector":h.webkitMatches?"webkitMatches":h.webkitMatchesSelector?"webkitMatchesSelector":h.msMatches?"msMatches":h.msMatchesSelector?"msMatchesSelector":h.mozMatches?"mozMatches":h.mozMatchesSelector?"mozMatchesSelector":null;if(null==i)throw"This browser doesn't support the HTMLElement.matches method";var j=b.element.prototype.closest||function(a){for(var c=this[0].parentNode;c!==document.documentElement&&!c[i](a);)c=c.parentNode;return c[i](a)?b.element(c):b.element()};"function"!=typeof b.element.prototype.add&&(b.element.prototype.add=function(a){var c,d=b.element();for(a=b.element(a),c=0;c Date: Sun, 11 Mar 2018 16:42:28 -0300 Subject: [PATCH 2/2] typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ac0be85..8bb314a 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,7 @@ The API is declarative. There are four directives (hooked on attributes) that ne * `sv-part` - this attribute should be placed on an element that is a container for the `ngRepeat`'ed elements. Its value should be the same as the right hand side expression in `ng-repeat` attribute. **Optional attributes:** * `sv-copy` - default `false`. If `true` then elementes dragged out of this container will be copied instead of moved - * `is-grid` - dafault `false`. If `true` then it means that elements on this container are aligned horizontally (multiline possible) + * `sv-grid` - default `false`. If `true` then it means that elements on this container are aligned horizontally (multiline possible) * `sv-no-revert` - default `false`. If `true` then elements dropped into this container will not be animated * `sv-center` - to set how the "center" of the container (for dropping into empty container purposes) should be comprehended (more in readme). Allowed values: * `both` (default) - a point in both vertical and horizontal center