cocooned 2.0.3 → 2.0.4

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
  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