material_raingular 0.2.7 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d42e83b2720719a4987e85a0341b647f8367bf3b
4
- data.tar.gz: 35eeb19e0c0144e59f1f77080ea083865902174b
3
+ metadata.gz: a938613a6207d86ccd6aaa6acc91a5d5a4bafabe
4
+ data.tar.gz: 150ff98174477fd964752a3dcea14a2c6e9b895b
5
5
  SHA512:
6
- metadata.gz: 386470016b611811e5d550e5e65af1cbafbab6bf590b3c3e7c3e09d521e975fc1ea18bfa348aa57b54ba17f2cc79f3380175fe6f82f60491528697317b9c711c
7
- data.tar.gz: ad4a55398c0a9ded90129e617126fa84533e643749836a0d24bed84cc34255757e03b4a19dfc87bd5b5a3a125e02ebc3cfd9c7327454836bcae763f577425fb6
6
+ metadata.gz: 68951c8c8818fd55df2af294d18aad621963d43a9b5bb117988784457ac7efe031604e79dd33a3e0a32c8891107777bcc27118de19a2712be10f1ccdb9cfa5b0
7
+ data.tar.gz: 062eff127d5023bcb6ea4327a80e1170f7db7e8a9f1dde9cafd4dc23bc588656042ca33a9eded3ce0924054445f114d5f3a2f40044876ef79b657252004684de
@@ -1,5 +1,6 @@
1
1
  # //= require material_raingular/directives/destroy/directive
2
2
  class MrDestroyModel extends AngularLinkModel
3
+ REPEAT_TYPES: ['ng-repeat','ng-repeat-start','md-virtual-repeat']
3
4
  REGEXP: /^\s*(.*?)\s+in\s+(.*?)(?:\s+track\s+by\s+([\s\S]+?))?$/
4
5
  # 1: model name
5
6
  # 2: collection name
@@ -26,10 +27,10 @@ class MrDestroyModel extends AngularLinkModel
26
27
  _list: -> @_options().list || @$scope.$eval(@_matchedExpression()[2].split('|')[0])
27
28
  _options: -> @$scope.$eval(@$attrs.mrOptions || '{}')
28
29
  _matchedExpression: -> @_repeatStatement().match(@REGEXP)
29
- _repeatStatement: -> @_repeatElement().getAttribute('ng-repeat') || @_repeatElement().getAttribute('md-virtual-repeat')
30
+ _repeatStatement: -> (@REPEAT_TYPES.map (type) => @_repeatElement().getAttribute(type)).$inject('|')
30
31
  _repeatElement: ->
31
32
  repeatElement = @$element[0]
32
- until repeatElement.hasAttribute('ng-repeat') || repeatElement.hasAttribute('md-virtual-repeat')
33
+ until (@REPEAT_TYPES.map (type) => repeatElement.hasAttribute(type)).$inject('|')
33
34
  repeatElement = repeatElement.parentElement
34
35
  break if !repeatElement
35
36
  repeatElement
@@ -0,0 +1,3 @@
1
+ class Directives.MrDrag extends AngularDirective
2
+ restrict: 'A'
3
+ @register(MaterialRaingular.app)
@@ -0,0 +1,16 @@
1
+ class MrDragModel extends AngularLinkModel
2
+ initialize: ->
3
+ @_element().draggable = true
4
+ @_element().addEventListener 'dragstart', @_dragStart
5
+ @_element().addEventListener 'dragend', @_dragEnd
6
+ _element: -> @$element[0]
7
+ _dragStart: (event) =>
8
+ @$scope.$event = event
9
+ event.dataTransfer.setData('html',@_element())
10
+ @$element.addClass('drag')
11
+ @$scope.$eval(@$attrs.mrDrag)
12
+ _dragEnd: (event) =>
13
+ @$scope.$event = event
14
+ @$element.removeClass('drag')
15
+ @$scope.$eval(@$attrs.mrDragEnd) if @$attrs.mrDragEnd
16
+ @register(Directives.MrDrag)
@@ -0,0 +1,3 @@
1
+ class Directives.MrDrop extends AngularDirective
2
+ restrict: 'A'
3
+ @register(MaterialRaingular.app)
@@ -0,0 +1,31 @@
1
+ class MrDropModel extends AngularLinkModel
2
+ initialize: ->
3
+ @_element().droppable = true
4
+ @_element().addEventListener 'drop', @_drop
5
+ @_element().addEventListener 'dragover', @_dragOver
6
+ @_element().addEventListener 'dragenter', @_dragEnter
7
+ @_element().addEventListener 'dragleave', @_dragLeave
8
+
9
+ _element: -> @$element[0]
10
+ _drop: (event) =>
11
+ @$scope.$event = event
12
+ event.stopPropagation?()
13
+ @$element.removeClass('over')
14
+ @$scope.$eval(@$attrs.mrDrop)
15
+ _dragOver: (event) =>
16
+ @$scope.$event = event
17
+ event.dataTransfer.dropEffect = 'move'
18
+ event.preventDefault()
19
+ @$element.addClass('over')
20
+ @$scope.$eval(@$attrs.mrDragOver) if @$scope.$eval(@$attrs.mrDragOver)
21
+ _dragEnter: (event) =>
22
+ @$scope.$event = event
23
+ event.preventDefault()
24
+ @$element.addClass('over')
25
+ @$scope.$eval(@$attrs.mrDragEnter) if @$scope.$eval(@$attrs.mrDragEnter)
26
+ _dragLeave: (event) =>
27
+ @$scope.$event = event
28
+ @$element.removeClass('over')
29
+ event.preventDefault()
30
+ @$scope.$eval(@$attrs.mrDragLeave) if @$scope.$eval(@$attrs.mrDragLeave)
31
+ @register(Directives.MrDrop)
@@ -6,7 +6,7 @@ class DirectiveModels.MrUpdateModel extends AngularLinkModel
6
6
  )
7
7
  initialize: ->
8
8
  [@ngModelCtrl,@mrCallbackCtrl,@ngTrackByCtrl] = @$controller
9
- @updater = @RailsUpdater.new(@$scope,@$controller,@$attrs.ngModel,@$attrs.ngOverride,@$attrs.ngFactory)
9
+ @updater = @RailsUpdater.new(@$scope,@$controller,@$attrs.ngModel,@$attrs.ngOverride,@_options().factory)
10
10
  @_bind()
11
11
 
12
12
  @register(Directives.MrUpdate)
@@ -46,6 +46,7 @@ class DirectiveModels.MrUpdateModel extends AngularLinkModel
46
46
  return if old == undefined
47
47
  @updater.update(updated) unless updated == old
48
48
  _specificTypes: ['radio','date','checkbox','hidden']
49
+ _options: -> @$scope.$eval(@$attrs.mrOptions || '{}')
49
50
  _type: -> @$attrs.type
50
51
  _tagName: -> @$element[0].tagName
51
52
  _modelName: -> @$attrs.ngModel
@@ -1,3 +1,3 @@
1
1
  module MaterialRaingular
2
- VERSION = "0.2.7"
2
+ VERSION = "0.2.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: material_raingular
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Moody
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-07 00:00:00.000000000 Z
11
+ date: 2016-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -109,6 +109,10 @@ files:
109
109
  - lib/assets/javascripts/material_raingular/directives/create/linkmodel.coffee
110
110
  - lib/assets/javascripts/material_raingular/directives/destroy/directive.coffee
111
111
  - lib/assets/javascripts/material_raingular/directives/destroy/linkmodel.coffee
112
+ - lib/assets/javascripts/material_raingular/directives/drag/directive.coffee
113
+ - lib/assets/javascripts/material_raingular/directives/drag/linkmodel.coffee
114
+ - lib/assets/javascripts/material_raingular/directives/drop/directive.coffee
115
+ - lib/assets/javascripts/material_raingular/directives/drop/linkmodel.coffee
112
116
  - lib/assets/javascripts/material_raingular/directives/update/directive.coffee
113
117
  - lib/assets/javascripts/material_raingular/directives/update/linkmodel.coffee
114
118
  - lib/assets/javascripts/rails_updater.coffee