@flexilla/dismissible 2.0.7 → 2.0.9

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.
@@ -1,82 +1,110 @@
1
- var b = Object.defineProperty;
2
- var u = (s, e, t) => e in s ? b(s, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : s[e] = t;
3
- var i = (s, e, t) => u(s, typeof e != "symbol" ? e + "" : e, t);
4
- const E = (s, e = document.body) => e.querySelector(s), r = (s, e = document.body) => Array.from(e.querySelectorAll(s)), f = ({
5
- element: s,
1
+ var u = Object.defineProperty;
2
+ var E = (t, e, s) => e in t ? u(t, e, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[e] = s;
3
+ var n = (t, e, s) => E(t, typeof e != "symbol" ? e + "" : e, s);
4
+ const f = (t, e = document.body) => e.querySelector(t), c = (t, e = document.body) => Array.from(e.querySelectorAll(t)), w = ({
5
+ element: t,
6
6
  callback: e,
7
- type: t,
8
- keysCheck: n
7
+ type: s,
8
+ keysCheck: i
9
9
  }) => {
10
- const m = getComputedStyle(s), d = m.transition;
11
- if (d !== "none" && d !== "" && !n.includes(d)) {
12
- const o = "transitionend", a = () => {
13
- s.removeEventListener(o, a), e();
10
+ const l = getComputedStyle(t), a = l.transition;
11
+ if (a !== "none" && a !== "" && !i.includes(a)) {
12
+ const d = "transitionend", r = () => {
13
+ t.removeEventListener(d, r), e();
14
14
  };
15
- s.addEventListener(o, a, { once: !0 });
15
+ t.addEventListener(d, r, { once: !0 });
16
16
  } else
17
17
  e();
18
- }, c = ({
19
- element: s,
18
+ }, h = ({
19
+ element: t,
20
20
  callback: e
21
21
  }) => {
22
- f({
23
- element: s,
22
+ w({
23
+ element: t,
24
24
  callback: e,
25
25
  type: "transition",
26
26
  keysCheck: ["all 0s ease 0s", "all"]
27
27
  });
28
- }, l = class l {
28
+ };
29
+ class o {
30
+ static initGlobalRegistry() {
31
+ window.$flexillaInstances || (window.$flexillaInstances = {});
32
+ }
33
+ static register(e, s, i) {
34
+ return this.initGlobalRegistry(), window.$flexillaInstances[e] || (window.$flexillaInstances[e] = []), this.getInstance(e, s) || (window.$flexillaInstances[e].push({ element: s, instance: i }), i);
35
+ }
36
+ static getInstance(e, s) {
37
+ var i, l;
38
+ return this.initGlobalRegistry(), (l = (i = window.$flexillaInstances[e]) == null ? void 0 : i.find(
39
+ (a) => a.element === s
40
+ )) == null ? void 0 : l.instance;
41
+ }
42
+ static removeInstance(e, s) {
43
+ this.initGlobalRegistry(), window.$flexillaInstances[e] && (window.$flexillaInstances[e] = window.$flexillaInstances[e].filter(
44
+ (i) => i.element !== s
45
+ ));
46
+ }
47
+ }
48
+ const m = class m {
29
49
  /**
30
50
  * Dismissible Component
31
51
  * @param dismissible
32
52
  * @param action
33
53
  * @param onDissmiss
34
54
  */
35
- constructor(e, t, n) {
36
- i(this, "dismissibleElement");
37
- i(this, "dismissButtons");
38
- i(this, "action");
39
- i(this, "onDismiss");
40
- i(this, "hideFromScreen", () => {
55
+ constructor(e, s, i) {
56
+ n(this, "dismissibleElement");
57
+ n(this, "dismissButtons");
58
+ n(this, "action");
59
+ n(this, "onDismiss");
60
+ n(this, "hideFromScreen", () => {
41
61
  var e;
42
62
  this.dismissibleElement.style.display = "none", (e = this.onDismiss) == null || e.call(this);
43
63
  });
44
- i(this, "removeFromDom", () => {
45
- var e, t;
46
- (e = this.onDismiss) == null || e.call(this), (t = this.dismissibleElement.parentElement) == null || t.removeChild(this.dismissibleElement);
64
+ n(this, "removeFromDom", () => {
65
+ var e, s;
66
+ (e = this.onDismiss) == null || e.call(this), (s = this.dismissibleElement.parentElement) == null || s.removeChild(this.dismissibleElement);
47
67
  });
48
- i(this, "dismiss", () => {
68
+ n(this, "dismiss", () => {
49
69
  switch (this.action) {
50
70
  case "hide-from-screen":
51
- this.dismissibleElement.setAttribute("aria-hidden", "true"), this.dismissibleElement.setAttribute("data-state", "hidden"), c({
71
+ this.dismissibleElement.setAttribute("aria-hidden", "true"), this.dismissibleElement.setAttribute("data-state", "hidden"), h({
52
72
  element: this.dismissibleElement,
53
73
  callback: this.hideFromScreen
54
74
  });
55
75
  break;
56
76
  default:
57
- this.dismissibleElement.setAttribute("data-hidden", ""), this.dismissibleElement.setAttribute("aria-hidden", "true"), this.dismissibleElement.setAttribute("data-state", "removed"), c({
77
+ this.dismissibleElement.setAttribute("data-hidden", ""), this.dismissibleElement.setAttribute("aria-hidden", "true"), this.dismissibleElement.setAttribute("data-state", "removed"), h({
58
78
  element: this.dismissibleElement,
59
79
  callback: this.removeFromDom
60
80
  });
61
81
  break;
62
82
  }
63
83
  });
64
- const m = typeof e == "string" ? E(e, document.body) : e;
65
- if (!(m instanceof HTMLElement)) throw new Error("Provided Element not a valid HTMLElement");
66
- this.dismissibleElement = m, this.action = t || this.dismissibleElement.dataset.action || "hide-from-screen", this.dismissButtons = r("[data-dismiss-btn]", this.dismissibleElement), this.onDismiss = n, this.dismissibleElement.setAttribute("aria-hidden", "false"), this.setupDismissible();
84
+ const l = typeof e == "string" ? f(e, document.body) : e;
85
+ if (!(l instanceof HTMLElement)) throw new Error("Provided Element not a valid HTMLElement");
86
+ this.dismissibleElement = l, this.action = s || this.dismissibleElement.dataset.action || "hide-from-screen", this.dismissButtons = c("[data-dismiss-btn]", this.dismissibleElement), this.onDismiss = i, this.dismissibleElement.setAttribute("aria-hidden", "false");
87
+ const a = o.getInstance("dismissible", this.dismissibleElement);
88
+ if (a)
89
+ return a;
90
+ this.setupDismissible(), o.register("dismissible", this.dismissibleElement, this);
67
91
  }
68
92
  setupDismissible() {
69
93
  for (const e of this.dismissButtons)
70
94
  e.addEventListener("click", this.dismiss);
71
95
  }
96
+ /**
97
+ * Cleanup method to remove event listeners
98
+ */
99
+ cleanup() {
100
+ for (const e of this.dismissButtons)
101
+ e.removeEventListener("click", this.dismiss);
102
+ o.removeInstance("dismissible", this.dismissibleElement);
103
+ }
72
104
  };
73
- /**
74
- * auto init Dismissible Element based on the selector provided
75
- * @param selector {string} default is [data-fx-dismissible]
76
- */
77
- i(l, "autoInit", (e = "[data-fx-dismissible]") => {
78
- const t = r(e);
79
- for (const n of t) new l(n);
105
+ n(m, "autoInit", (e = "[data-fx-dismissible]") => {
106
+ const s = c(e);
107
+ for (const i of s) new m(i);
80
108
  }), /**
81
109
  *
82
110
  * @param dismissible
@@ -84,8 +112,8 @@ i(l, "autoInit", (e = "[data-fx-dismissible]") => {
84
112
  * @param onDissmiss
85
113
  * @returns
86
114
  */
87
- i(l, "init", (e, t, n) => new l(e, t, n));
88
- let h = l;
115
+ n(m, "init", (e, s, i) => new m(e, s, i));
116
+ let b = m;
89
117
  export {
90
- h as Dismissible
118
+ b as Dismissible
91
119
  };
@@ -1 +1 @@
1
- (function(i,s){typeof exports=="object"&&typeof module<"u"?s(exports):typeof define=="function"&&define.amd?define(["exports"],s):(i=typeof globalThis<"u"?globalThis:i||self,s(i["@flexilla/dismissible"]={}))})(this,function(i){"use strict";var E=Object.defineProperty;var y=(i,s,d)=>s in i?E(i,s,{enumerable:!0,configurable:!0,writable:!0,value:d}):i[s]=d;var t=(i,s,d)=>y(i,typeof s!="symbol"?s+"":s,d);const s=(n,e=document.body)=>e.querySelector(n),d=(n,e=document.body)=>Array.from(e.querySelectorAll(n)),f=({element:n,callback:e,type:l,keysCheck:m})=>{const a=getComputedStyle(n),c=a.transition;if(c!=="none"&&c!==""&&!m.includes(c)){const b="transitionend",u=()=>{n.removeEventListener(b,u),e()};n.addEventListener(b,u,{once:!0})}else e()},h=({element:n,callback:e})=>{f({element:n,callback:e,type:"transition",keysCheck:["all 0s ease 0s","all"]})},o=class o{constructor(e,l,m){t(this,"dismissibleElement");t(this,"dismissButtons");t(this,"action");t(this,"onDismiss");t(this,"hideFromScreen",()=>{var e;this.dismissibleElement.style.display="none",(e=this.onDismiss)==null||e.call(this)});t(this,"removeFromDom",()=>{var e,l;(e=this.onDismiss)==null||e.call(this),(l=this.dismissibleElement.parentElement)==null||l.removeChild(this.dismissibleElement)});t(this,"dismiss",()=>{switch(this.action){case"hide-from-screen":this.dismissibleElement.setAttribute("aria-hidden","true"),this.dismissibleElement.setAttribute("data-state","hidden"),h({element:this.dismissibleElement,callback:this.hideFromScreen});break;default:this.dismissibleElement.setAttribute("data-hidden",""),this.dismissibleElement.setAttribute("aria-hidden","true"),this.dismissibleElement.setAttribute("data-state","removed"),h({element:this.dismissibleElement,callback:this.removeFromDom});break}});const a=typeof e=="string"?s(e,document.body):e;if(!(a instanceof HTMLElement))throw new Error("Provided Element not a valid HTMLElement");this.dismissibleElement=a,this.action=l||this.dismissibleElement.dataset.action||"hide-from-screen",this.dismissButtons=d("[data-dismiss-btn]",this.dismissibleElement),this.onDismiss=m,this.dismissibleElement.setAttribute("aria-hidden","false"),this.setupDismissible()}setupDismissible(){for(const e of this.dismissButtons)e.addEventListener("click",this.dismiss)}};t(o,"autoInit",(e="[data-fx-dismissible]")=>{const l=d(e);for(const m of l)new o(m)}),t(o,"init",(e,l,m)=>new o(e,l,m));let r=o;i.Dismissible=r,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
1
+ (function(n,t){typeof exports=="object"&&typeof module<"u"?t(exports):typeof define=="function"&&define.amd?define(["exports"],t):(n=typeof globalThis<"u"?globalThis:n||self,t(n["@flexilla/dismissible"]={}))})(this,function(n){"use strict";var w=Object.defineProperty;var y=(n,t,m)=>t in n?w(n,t,{enumerable:!0,configurable:!0,writable:!0,value:m}):n[t]=m;var o=(n,t,m)=>y(n,typeof t!="symbol"?t+"":t,m);const t=(l,e=document.body)=>e.querySelector(l),m=(l,e=document.body)=>Array.from(e.querySelectorAll(l)),E=({element:l,callback:e,type:s,keysCheck:i})=>{const a=getComputedStyle(l),d=a.transition;if(d!=="none"&&d!==""&&!i.includes(d)){const u="transitionend",f=()=>{l.removeEventListener(u,f),e()};l.addEventListener(u,f,{once:!0})}else e()},b=({element:l,callback:e})=>{E({element:l,callback:e,type:"transition",keysCheck:["all 0s ease 0s","all"]})};class c{static initGlobalRegistry(){window.$flexillaInstances||(window.$flexillaInstances={})}static register(e,s,i){return this.initGlobalRegistry(),window.$flexillaInstances[e]||(window.$flexillaInstances[e]=[]),this.getInstance(e,s)||(window.$flexillaInstances[e].push({element:s,instance:i}),i)}static getInstance(e,s){var i,a;return this.initGlobalRegistry(),(a=(i=window.$flexillaInstances[e])==null?void 0:i.find(d=>d.element===s))==null?void 0:a.instance}static removeInstance(e,s){this.initGlobalRegistry(),window.$flexillaInstances[e]&&(window.$flexillaInstances[e]=window.$flexillaInstances[e].filter(i=>i.element!==s))}}const r=class r{constructor(e,s,i){o(this,"dismissibleElement");o(this,"dismissButtons");o(this,"action");o(this,"onDismiss");o(this,"hideFromScreen",()=>{var e;this.dismissibleElement.style.display="none",(e=this.onDismiss)==null||e.call(this)});o(this,"removeFromDom",()=>{var e,s;(e=this.onDismiss)==null||e.call(this),(s=this.dismissibleElement.parentElement)==null||s.removeChild(this.dismissibleElement)});o(this,"dismiss",()=>{switch(this.action){case"hide-from-screen":this.dismissibleElement.setAttribute("aria-hidden","true"),this.dismissibleElement.setAttribute("data-state","hidden"),b({element:this.dismissibleElement,callback:this.hideFromScreen});break;default:this.dismissibleElement.setAttribute("data-hidden",""),this.dismissibleElement.setAttribute("aria-hidden","true"),this.dismissibleElement.setAttribute("data-state","removed"),b({element:this.dismissibleElement,callback:this.removeFromDom});break}});const a=typeof e=="string"?t(e,document.body):e;if(!(a instanceof HTMLElement))throw new Error("Provided Element not a valid HTMLElement");this.dismissibleElement=a,this.action=s||this.dismissibleElement.dataset.action||"hide-from-screen",this.dismissButtons=m("[data-dismiss-btn]",this.dismissibleElement),this.onDismiss=i,this.dismissibleElement.setAttribute("aria-hidden","false");const d=c.getInstance("dismissible",this.dismissibleElement);if(d)return d;this.setupDismissible(),c.register("dismissible",this.dismissibleElement,this)}setupDismissible(){for(const e of this.dismissButtons)e.addEventListener("click",this.dismiss)}cleanup(){for(const e of this.dismissButtons)e.removeEventListener("click",this.dismiss);c.removeInstance("dismissible",this.dismissibleElement)}};o(r,"autoInit",(e="[data-fx-dismissible]")=>{const s=m(e);for(const i of s)new r(i)}),o(r,"init",(e,s,i)=>new r(e,s,i));let h=r;n.Dismissible=h,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})});
package/dist/index.d.ts CHANGED
@@ -15,9 +15,9 @@ export declare class Dismissible {
15
15
  dismiss: () => void;
16
16
  private setupDismissible;
17
17
  /**
18
- * auto init Dismissible Element based on the selector provided
19
- * @param selector {string} default is [data-fx-dismissible]
18
+ * Cleanup method to remove event listeners
20
19
  */
20
+ cleanup(): void;
21
21
  static autoInit: (selector?: string) => void;
22
22
  /**
23
23
  *
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@flexilla/dismissible",
3
3
  "private": false,
4
- "version": "2.0.7",
4
+ "version": "2.0.9",
5
5
  "type": "module",
6
6
  "description": "A lightweight JavaScript component that automatically makes a component dismissible for easy user interaction.",
7
7
  "publishConfig": {
@@ -61,5 +61,8 @@
61
61
  },
62
62
  "license": "MIT",
63
63
  "author": "johnkat-mj",
64
- "gitHead": "f85cdc8aaec4a1309152d235c762f515b34fc9d9"
64
+ "dependencies": {
65
+ "@flexilla/manager": "^0.0.0"
66
+ },
67
+ "gitHead": "548b5079e8334509c0dd81522360b034c040e284"
65
68
  }