twine-rails 1.2.2 → 2.0.0
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 +4 -4
- data/lib/assets/javascripts/twine.coffee +18 -23
- data/lib/twine-rails/version.rb +1 -1
- metadata +8 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7245233240a25c03d7714bbeab59980acd3a0743118611db224c5eacaf52f7c8
|
4
|
+
data.tar.gz: e91b4658d70df7a8106b7ef6705429681819da11f411ea7fc4cd3e9fdfb18300
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1cc8f28bdd59879b679ea684021b5b500540e1d3928593b550488ae0cb9bd75a761bdc631ff70223028797812e9095e69c43ab9c2d77b2671a059be61d20a0a1
|
7
|
+
data.tar.gz: c8f4f398ef794db3e6062208f4d3ef8496d84f64968032bef0150b1a4b6f3f8044119bc362f182f0a0d15f09e4ea7818ed99a1ba62cb330e104ece89ff9a5f49
|
@@ -1,15 +1,11 @@
|
|
1
1
|
((root, factory) ->
|
2
2
|
if typeof root.define == 'function' && root.define.amd
|
3
|
-
root.define([
|
3
|
+
root.define([], factory)
|
4
4
|
else if typeof module == 'object' && module.exports
|
5
|
-
|
6
|
-
then require('jquery')
|
7
|
-
else require('jquery')(root)
|
8
|
-
|
9
|
-
module.exports = factory(jQuery)
|
5
|
+
module.exports = factory()
|
10
6
|
else
|
11
|
-
root.Twine = factory(
|
12
|
-
)(this,
|
7
|
+
root.Twine = factory()
|
8
|
+
)(this, ->
|
13
9
|
Twine = {}
|
14
10
|
Twine.shouldDiscardEvent = {}
|
15
11
|
|
@@ -362,13 +358,14 @@
|
|
362
358
|
refreshContext()
|
363
359
|
|
364
360
|
if twoWayBinding
|
361
|
+
events = ['input', 'keyup', 'change']
|
365
362
|
changeHandler = ->
|
366
363
|
return if getValue(context, keypath) == this[valueProp]
|
367
364
|
refreshContext()
|
368
365
|
Twine.refreshImmediately()
|
369
|
-
|
366
|
+
node.addEventListener(eventName, changeHandler) for eventName in events
|
370
367
|
teardown = ->
|
371
|
-
|
368
|
+
node.removeEventListener(eventName, changeHandler) for eventName in events
|
372
369
|
|
373
370
|
{refresh, teardown}
|
374
371
|
|
@@ -378,28 +375,23 @@
|
|
378
375
|
return refresh: ->
|
379
376
|
newValue = !fn.call(node, context, rootContext, arrayPointersForNode(node, context))
|
380
377
|
return if newValue == lastValue
|
381
|
-
|
378
|
+
node.classList.toggle('hide', lastValue = newValue)
|
382
379
|
|
383
380
|
'bind-class': (node, context, definition) ->
|
384
381
|
fn = wrapFunctionString(definition, '$context,$root,$arrayPointers', node)
|
385
382
|
lastValues = {}
|
386
|
-
$node = jQuery(node)
|
387
383
|
return refresh: ->
|
388
384
|
newValues = fn.call(node, context, rootContext, arrayPointersForNode(node, context))
|
389
|
-
additions = []
|
390
|
-
removals = []
|
391
385
|
|
392
386
|
for key, value of newValues
|
393
387
|
newValue = newValues[key] = !!newValues[key]
|
394
|
-
currValue = lastValues[key] ?
|
388
|
+
currValue = lastValues[key] ? node.classList.contains(key)
|
395
389
|
if currValue != newValue
|
396
390
|
if newValue
|
397
|
-
|
391
|
+
node.classList.add(key)
|
398
392
|
else
|
399
|
-
|
393
|
+
node.classList.remove(key)
|
400
394
|
|
401
|
-
$node.removeClass(removals.join(' ')) if removals.length
|
402
|
-
$node.addClass(additions.join(' ')) if additions.length
|
403
395
|
lastValues = newValues
|
404
396
|
|
405
397
|
'bind-attribute': (node, context, definition) ->
|
@@ -408,7 +400,10 @@
|
|
408
400
|
return refresh: ->
|
409
401
|
newValue = fn.call(node, context, rootContext, arrayPointersForNode(node, context))
|
410
402
|
for key, value of newValue when lastValue[key] != value
|
411
|
-
|
403
|
+
if (!value)
|
404
|
+
node.removeAttribute(key)
|
405
|
+
else
|
406
|
+
node.setAttribute(key, value)
|
412
407
|
lastValue = newValue
|
413
408
|
|
414
409
|
define: (node, context, definition) ->
|
@@ -462,7 +457,7 @@
|
|
462
457
|
|
463
458
|
setupEventBinding = (eventName) ->
|
464
459
|
Twine.bindingTypes["bind-event-#{eventName}"] = (node, context, definition) ->
|
465
|
-
onEventHandler = (event, data) ->
|
460
|
+
onEventHandler = (event, data = event.detail) ->
|
466
461
|
discardEvent = Twine.shouldDiscardEvent[eventName]?(event)
|
467
462
|
if discardEvent || preventDefaultForEvent(event)
|
468
463
|
event.preventDefault()
|
@@ -471,10 +466,10 @@
|
|
471
466
|
|
472
467
|
wrapFunctionString(definition, '$context,$root,$arrayPointers,event,data', node).call(node, context, rootContext, arrayPointersForNode(node, context), event, data)
|
473
468
|
Twine.refreshImmediately()
|
474
|
-
|
469
|
+
node.addEventListener(eventName, onEventHandler)
|
475
470
|
|
476
471
|
return teardown: ->
|
477
|
-
|
472
|
+
node.removeEventListener(eventName, onEventHandler)
|
478
473
|
|
479
474
|
for eventName in ['click', 'dblclick', 'mouseenter', 'mouseleave', 'mouseover', 'mouseout', 'mousedown', 'mouseup',
|
480
475
|
'submit', 'dragenter', 'dragleave', 'dragover', 'drop', 'drag', 'change', 'keypress', 'keydown', 'keyup', 'input',
|
data/lib/twine-rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: twine-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Li
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2021-02-24 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: coffee-rails
|
@@ -83,7 +83,11 @@ files:
|
|
83
83
|
homepage: https://github.com/Shopify/twine
|
84
84
|
licenses:
|
85
85
|
- MIT
|
86
|
-
metadata:
|
86
|
+
metadata:
|
87
|
+
bug_tracker_uri: https://github.com/Shopify/twine/issues
|
88
|
+
changelog_uri: https://github.com/Shopify/twine/releases
|
89
|
+
source_code_uri: https://github.com/Shopify/twine
|
90
|
+
allowed_push_host: https://rubygems.org
|
87
91
|
post_install_message:
|
88
92
|
rdoc_options: []
|
89
93
|
require_paths:
|
@@ -99,8 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
103
|
- !ruby/object:Gem::Version
|
100
104
|
version: '0'
|
101
105
|
requirements: []
|
102
|
-
|
103
|
-
rubygems_version: 2.7.6
|
106
|
+
rubygems_version: 3.0.3
|
104
107
|
signing_key:
|
105
108
|
specification_version: 4
|
106
109
|
summary: Minimalistic two-way bindings
|