cocooned 2.0.3 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4e43afc0b47e21fabcc8bb5c81642df49c72d1932a0ab3a2338c9dadeed2b48b
4
- data.tar.gz: 5dc1efd9e0f72570ec2b45d9b89b8a060f9110eae96cd414282bad1c681e6799
3
+ metadata.gz: 4b263ee9e9f62225ffda1bf6023baf4b2f26643ca3951bffe3789c251a3da267
4
+ data.tar.gz: b390024eaa76fd227ac9e32b292aaf75987e9a3f42200069e51d02440cdd9ea9
5
5
  SHA512:
6
- metadata.gz: ffc721aa5f32c5fa8195155fb319b14d533a5a40eb3daeb475c86c54d3e4cd1c59627736f10bf488f73ec3f54638ea75dd42e8d9121bd9036699aad550d4115f
7
- data.tar.gz: 548162a0067e73797892b53d16a5013d77e3c89abe4f4ead07b54893c706d798ae8cc805670afd5ac09dedee8dfca1abab06bdabdb42e0cafb47868a6b3bd44c
6
+ metadata.gz: 35f0aecab1c7b427c52b99cf8d1665ac3a06a5d8bcb980a33d2577e18bdef322897ea080da60a05d7218b90977c53cc919cc14e967c314247c0ff4cd76f83d8e
7
+ data.tar.gz: ff5d977c74da72179fa80cc2b62ad65bd709f7cce6734ebbd4f82123ac7f3349c6a865f030f035a5d32af6dc9f1522142a0705b1f7b610f6d7bd064bbbaf85fd
data/CHANGELOG.md CHANGED
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## Version 2.0.4 (2023-11-23)
10
+
11
+ ### Fixed
12
+
13
+ * Fix multiple callback executions in nested containers (#50)
14
+
9
15
  ## Version 2.0.3 (2023-10-13)
10
16
 
11
17
  ### Fixed
@@ -673,14 +673,27 @@
673
673
  }
674
674
 
675
675
  function delegatedClickHandler (selector, callback) {
676
+ const handler = clickHandler$1(callback);
677
+
676
678
  return e => {
677
679
  const { target } = e;
678
680
  if (target.closest(selector) === null) {
679
681
  return
680
682
  }
681
683
 
682
- e.preventDefault();
683
- callback(e);
684
+ handler(e);
685
+ }
686
+ }
687
+
688
+ function itemDelegatedClickHandler (container, selector, callback) {
689
+ const delegatedHandler = delegatedClickHandler(selector, callback);
690
+
691
+ return e => {
692
+ if (!container.contains(e.target)) {
693
+ return
694
+ }
695
+
696
+ delegatedHandler(e);
684
697
  }
685
698
  }
686
699
 
@@ -707,7 +720,7 @@
707
720
 
708
721
  this.container.addEventListener(
709
722
  'click',
710
- delegatedClickHandler(this._selector('triggers.remove'), (e) => {
723
+ itemDelegatedClickHandler(this, this._selector('triggers.remove'), (e) => {
711
724
  const trigger = new Remove(e.target, this);
712
725
  trigger.handle(e);
713
726
  })
@@ -866,8 +879,8 @@
866
879
  }
867
880
  }
868
881
 
869
- function clickHandler (selector, cocooned, TriggerClass) {
870
- return delegatedClickHandler(selector, (e) => {
882
+ function clickHandler (cocooned, selector, TriggerClass) {
883
+ return itemDelegatedClickHandler(cocooned, selector, (e) => {
871
884
  const trigger = new TriggerClass(e.target, cocooned);
872
885
  trigger.handle(e);
873
886
  })
@@ -900,8 +913,8 @@
900
913
  form.addEventListener('submit', e => this._reindexer.reindex(e));
901
914
  }
902
915
 
903
- this.container.addEventListener('click', clickHandler(this._selector('triggers.up'), this, Up));
904
- this.container.addEventListener('click', clickHandler(this._selector('triggers.down'), this, Down));
916
+ this.container.addEventListener('click', clickHandler(this, this._selector('triggers.up'), Up));
917
+ this.container.addEventListener('click', clickHandler(this, this._selector('triggers.down'), Down));
905
918
  }
906
919
 
907
920
  /* Protected and private attributes and methods */
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Cocooned
4
- VERSION = '2.0.3'
4
+ VERSION = '2.0.4'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocooned
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gaël-Ian Havard
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-10-13 00:00:00.000000000 Z
12
+ date: 2023-11-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails