@ngyewch/bulma-dialog 0.4.0 → 0.5.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.
@@ -5,39 +5,35 @@ function e(e) {
5
5
  r.classList.add("modal", "is-active"), e.classes !== void 0 && r.classList.add(...e.classes), e.styles !== void 0 && Object.entries(e.styles).forEach(([e, t]) => {
6
6
  r.style.setProperty(e, t);
7
7
  });
8
- let i = document.createElement("div");
9
- i.classList.add("modal-background"), (e.disableOutsideClick === void 0 || !e.disableOutsideClick) && (i.onclick = () => {
10
- document.body.removeChild(r), n();
11
- }), r.appendChild(i);
12
- let a = document.createElement("div");
13
- a.classList.add("modal-content"), r.appendChild(a);
8
+ let i = () => {
9
+ document.body.removeChild(r), e.onClose && e.onClose();
10
+ }, a = document.createElement("div");
11
+ a.classList.add("modal-background"), (e.disableOutsideClick === void 0 || !e.disableOutsideClick) && (a.onclick = () => {
12
+ i(), n();
13
+ }), r.appendChild(a);
14
14
  let o = document.createElement("div");
15
- o.classList.add("card"), a.appendChild(o);
16
- let s = document.createElement("header");
17
- s.classList.add("card-header");
18
- let c = document.createElement("p");
19
- if (c.classList.add("card-header-title"), e.title !== void 0 && (c.innerText = e.title), s.appendChild(c), e.hideCloseButton === void 0 || !e.hideCloseButton) {
15
+ o.classList.add("modal-content"), r.appendChild(o);
16
+ let s = document.createElement("div");
17
+ s.classList.add("card"), o.appendChild(s);
18
+ let c = document.createElement("header");
19
+ c.classList.add("card-header");
20
+ let l = document.createElement("p");
21
+ if (l.classList.add("card-header-title"), e.title !== void 0 && (l.innerText = e.title), c.appendChild(l), e.hideCloseButton === void 0 || !e.hideCloseButton) {
20
22
  let e = document.createElement("button");
21
23
  e.classList.add("card-header-icon"), e.setAttribute("aria-label", "close"), e.onclick = () => {
22
- document.body.removeChild(r), n();
23
- }, s.appendChild(e);
24
+ i(), n();
25
+ }, c.appendChild(e);
24
26
  let t = document.createElement("span");
25
27
  t.classList.add("delete"), e.appendChild(t);
26
28
  }
27
- if (o.appendChild(s), e.mountContent !== void 0) {
28
- let i = document.createElement("div");
29
- i.classList.add("card-content"), o.appendChild(i), e.mountContent(i, (e) => {
30
- document.body.removeChild(r), t(e);
29
+ if (s.appendChild(c), e.mount !== void 0) {
30
+ let r = document.createElement("div");
31
+ r.classList.add("card-content"), s.appendChild(r);
32
+ let a = document.createElement("footer");
33
+ a.classList.add("card-footer"), s.appendChild(a), e.mount(r, a, (e) => {
34
+ i(), t(e);
31
35
  }, (e) => {
32
- document.body.removeChild(r), n(e);
33
- });
34
- }
35
- if (e.mountFooter !== void 0) {
36
- let i = document.createElement("footer");
37
- i.classList.add("card-footer"), o.appendChild(i), e.mountFooter(i, (e) => {
38
- document.body.removeChild(r), t(e);
39
- }, (e) => {
40
- document.body.removeChild(r), n(e);
36
+ i(), n(e);
41
37
  });
42
38
  }
43
39
  document.body.appendChild(r);
@@ -1 +1 @@
1
- {"version":3,"file":"bulma-dialog.js","names":["showDialog","modalEl","options","key","value","modalBackgroundEl","reject","modalContentEl","modalCardEl","modalCardHeaderEl","modalCardTitleEl","closeButtonEl","closeSpanEl","modalCardContentEl","resolve","reason","modalCardFooterEl","createDialogFooterItem","footerItem","label","onclick"],"sources":["../src/dialog.ts"],"sourcesContent":["export interface DialogOptions<T> {\n title?: string;\n hideCloseButton?: boolean;\n disableOutsideClick?: boolean;\n mountContent?: (containerElement: HTMLElement, resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void;\n mountFooter?: (containerElement: HTMLElement, resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void;\n classes?: string[];\n styles?: Record<string, string>;\n}\n\nexport function showDialog<T>(options: DialogOptions<T>): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const modalEl = document.createElement('div');\n modalEl.classList.add('modal', 'is-active');\n if (options.classes !== undefined) {\n modalEl.classList.add(...options.classes);\n }\n if (options.styles !== undefined) {\n (Object.entries(options.styles) as [string, string][])\n .forEach(([key, value]) => {\n modalEl.style.setProperty(key, value);\n });\n }\n\n const modalBackgroundEl = document.createElement('div');\n modalBackgroundEl.classList.add('modal-background');\n if ((options.disableOutsideClick === undefined) || !options.disableOutsideClick) {\n modalBackgroundEl.onclick = () => {\n document.body.removeChild(modalEl);\n reject();\n };\n }\n modalEl.appendChild(modalBackgroundEl);\n\n const modalContentEl = document.createElement('div');\n modalContentEl.classList.add('modal-content');\n modalEl.appendChild(modalContentEl);\n\n const modalCardEl = document.createElement('div');\n modalCardEl.classList.add('card');\n modalContentEl.appendChild(modalCardEl);\n\n const modalCardHeaderEl = document.createElement('header');\n modalCardHeaderEl.classList.add('card-header');\n const modalCardTitleEl = document.createElement('p');\n modalCardTitleEl.classList.add('card-header-title');\n if (options.title !== undefined) {\n modalCardTitleEl.innerText = options.title;\n }\n modalCardHeaderEl.appendChild(modalCardTitleEl);\n if ((options.hideCloseButton === undefined) || !options.hideCloseButton) {\n const closeButtonEl = document.createElement('button');\n closeButtonEl.classList.add('card-header-icon');\n closeButtonEl.setAttribute('aria-label', 'close');\n closeButtonEl.onclick = () => {\n document.body.removeChild(modalEl);\n reject();\n };\n modalCardHeaderEl.appendChild(closeButtonEl);\n const closeSpanEl = document.createElement('span');\n closeSpanEl.classList.add('delete');\n closeButtonEl.appendChild(closeSpanEl);\n }\n modalCardEl.appendChild(modalCardHeaderEl);\n\n if (options.mountContent !== undefined) {\n const modalCardContentEl = document.createElement('div');\n modalCardContentEl.classList.add('card-content');\n modalCardEl.appendChild(modalCardContentEl);\n options.mountContent(modalCardContentEl,\n (value: T | PromiseLike<T>): void => {\n document.body.removeChild(modalEl);\n resolve(value);\n },\n (reason?: any): void => {\n document.body.removeChild(modalEl);\n reject(reason);\n });\n }\n\n if (options.mountFooter !== undefined) {\n const modalCardFooterEl = document.createElement('footer');\n modalCardFooterEl.classList.add('card-footer');\n modalCardEl.appendChild(modalCardFooterEl);\n options.mountFooter(modalCardFooterEl,\n (value: T | PromiseLike<T>): void => {\n document.body.removeChild(modalEl);\n resolve(value);\n },\n (reason?: any): void => {\n document.body.removeChild(modalEl);\n reject(reason);\n });\n }\n\n document.body.appendChild(modalEl);\n });\n}\n\nexport function createDialogFooterItem(label: string, onclick?: (e: PointerEvent) => void): HTMLElement {\n const footerItem = document.createElement('a');\n footerItem.classList.add('card-footer-item');\n footerItem.innerText = label;\n if (onclick !== undefined) {\n footerItem.addEventListener('click', e => {\n e.preventDefault();\n e.stopPropagation();\n onclick(e);\n });\n }\n return footerItem;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"bulma-dialog.js","names":["showDialog","modalEl","options","key","value","doClose","modalBackgroundEl","reject","modalContentEl","modalCardEl","modalCardHeaderEl","modalCardTitleEl","closeButtonEl","closeSpanEl","modalCardContentEl","modalCardFooterEl","resolve","reason","createDialogFooterItem","footerItem","label","onclick"],"sources":["../src/dialog.ts"],"sourcesContent":["export interface DialogOptions<T> {\n title?: string;\n hideCloseButton?: boolean;\n disableOutsideClick?: boolean;\n mount?: (contentElement: HTMLElement, footerElement: HTMLElement, resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void;\n onClose?: () => void;\n classes?: string[];\n styles?: Record<string, string>;\n}\n\nexport function showDialog<T>(options: DialogOptions<T>): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const modalEl = document.createElement('div');\n modalEl.classList.add('modal', 'is-active');\n if (options.classes !== undefined) {\n modalEl.classList.add(...options.classes);\n }\n if (options.styles !== undefined) {\n (Object.entries(options.styles) as [string, string][])\n .forEach(([key, value]) => {\n modalEl.style.setProperty(key, value);\n });\n }\n\n const doClose = (): void => {\n document.body.removeChild(modalEl);\n if (options.onClose) {\n options.onClose();\n }\n };\n\n const modalBackgroundEl = document.createElement('div');\n modalBackgroundEl.classList.add('modal-background');\n if ((options.disableOutsideClick === undefined) || !options.disableOutsideClick) {\n modalBackgroundEl.onclick = () => {\n doClose();\n reject();\n };\n }\n modalEl.appendChild(modalBackgroundEl);\n\n const modalContentEl = document.createElement('div');\n modalContentEl.classList.add('modal-content');\n modalEl.appendChild(modalContentEl);\n\n const modalCardEl = document.createElement('div');\n modalCardEl.classList.add('card');\n modalContentEl.appendChild(modalCardEl);\n\n const modalCardHeaderEl = document.createElement('header');\n modalCardHeaderEl.classList.add('card-header');\n const modalCardTitleEl = document.createElement('p');\n modalCardTitleEl.classList.add('card-header-title');\n if (options.title !== undefined) {\n modalCardTitleEl.innerText = options.title;\n }\n modalCardHeaderEl.appendChild(modalCardTitleEl);\n if ((options.hideCloseButton === undefined) || !options.hideCloseButton) {\n const closeButtonEl = document.createElement('button');\n closeButtonEl.classList.add('card-header-icon');\n closeButtonEl.setAttribute('aria-label', 'close');\n closeButtonEl.onclick = () => {\n doClose();\n reject();\n };\n modalCardHeaderEl.appendChild(closeButtonEl);\n const closeSpanEl = document.createElement('span');\n closeSpanEl.classList.add('delete');\n closeButtonEl.appendChild(closeSpanEl);\n }\n modalCardEl.appendChild(modalCardHeaderEl);\n\n if (options.mount !== undefined) {\n const modalCardContentEl = document.createElement('div');\n modalCardContentEl.classList.add('card-content');\n modalCardEl.appendChild(modalCardContentEl);\n\n const modalCardFooterEl = document.createElement('footer');\n modalCardFooterEl.classList.add('card-footer');\n modalCardEl.appendChild(modalCardFooterEl);\n\n options.mount(modalCardContentEl, modalCardFooterEl,\n (value: T | PromiseLike<T>): void => {\n doClose();\n resolve(value);\n },\n (reason?: any): void => {\n doClose();\n reject(reason);\n });\n }\n\n document.body.appendChild(modalEl);\n });\n}\n\nexport function createDialogFooterItem(label: string, onclick?: (e: PointerEvent) => void): HTMLElement {\n const footerItem = document.createElement('a');\n footerItem.classList.add('card-footer-item');\n footerItem.innerText = label;\n if (onclick !== undefined) {\n footerItem.addEventListener('click', e => {\n e.preventDefault();\n e.stopPropagation();\n onclick(e);\n });\n }\n return footerItem;\n}\n"],"mappings":";AAUA,SAAgBA,EAAc,GAAuC;CACjE,OAAO,IAAI,SAAY,GAAS,MAAW;EACvC,IAAMC,IAAU,SAAS,cAAc,KAAK;EAK5C,AAJAA,EAAQ,UAAU,IAAI,SAAS,WAAW,GACtCC,EAAQ,YAAY,KAAA,KACpBD,EAAQ,UAAU,IAAI,GAAGC,EAAQ,OAAO,GAExCA,EAAQ,WAAW,KAAA,KACnB,OAAQ,QAAQA,EAAQ,MAAM,CAAC,CAC1B,SAAS,CAACC,GAAKC,OAAW;GACvB,EAAQ,MAAM,YAAYD,GAAKC,CAAK;EACxC,CAAC;EAGT,IAAMC,UAAsB;GAExB,AADA,SAAS,KAAK,YAAYJ,CAAO,GAC7BC,EAAQ,WACRA,EAAQ,QAAQ;EAExB,GAEMI,IAAoB,SAAS,cAAc,KAAK;EAQtD,AAPAA,EAAkB,UAAU,IAAI,kBAAkB,IAC7CJ,EAAQ,wBAAwB,KAAA,KAAc,CAACA,EAAQ,yBACxD,EAAkB,gBAAgB;GAE9B,AADAG,EAAQ,GACRE,EAAO;EACX,IAEJN,EAAQ,YAAYK,CAAiB;EAErC,IAAME,IAAiB,SAAS,cAAc,KAAK;EAEnD,AADAA,EAAe,UAAU,IAAI,eAAe,GAC5CP,EAAQ,YAAYO,CAAc;EAElC,IAAMC,IAAc,SAAS,cAAc,KAAK;EAEhD,AADAA,EAAY,UAAU,IAAI,MAAM,GAChCD,EAAe,YAAYC,CAAW;EAEtC,IAAMC,IAAoB,SAAS,cAAc,QAAQ;EACzD,EAAkB,UAAU,IAAI,aAAa;EAC7C,IAAMC,IAAmB,SAAS,cAAc,GAAG;EAMnD,IALAA,EAAiB,UAAU,IAAI,mBAAmB,GAC9CT,EAAQ,UAAU,KAAA,MAClB,EAAiB,YAAYA,EAAQ,QAEzCQ,EAAkB,YAAYC,CAAgB,GACzCT,EAAQ,oBAAoB,KAAA,KAAc,CAACA,EAAQ,iBAAiB;GACrE,IAAMU,IAAgB,SAAS,cAAc,QAAQ;GAOrD,AANAA,EAAc,UAAU,IAAI,kBAAkB,GAC9CA,EAAc,aAAa,cAAc,OAAO,GAChD,EAAc,gBAAgB;IAE1B,AADAP,EAAQ,GACRE,EAAO;GACX,GACAG,EAAkB,YAAYE,CAAa;GAC3C,IAAMC,IAAc,SAAS,cAAc,MAAM;GAEjD,AADAA,EAAY,UAAU,IAAI,QAAQ,GAClCD,EAAc,YAAYC,CAAW;EACzC;EAGA,IAFAJ,EAAY,YAAYC,CAAiB,GAErCR,EAAQ,UAAU,KAAA,GAAW;GAC7B,IAAMY,IAAqB,SAAS,cAAc,KAAK;GAEvD,AADAA,EAAmB,UAAU,IAAI,cAAc,GAC/CL,EAAY,YAAYK,CAAkB;GAE1C,IAAMC,IAAoB,SAAS,cAAc,QAAQ;GAIzD,AAHAA,EAAkB,UAAU,IAAI,aAAa,GAC7CN,EAAY,YAAYM,CAAiB,GAEzCb,EAAQ,MAAMY,GAAoBC,IAC7B,MAAoC;IAEjC,AADAV,EAAQ,GACRW,EAAQZ,CAAK;GACjB,IACC,MAAuB;IAEpB,AADAC,EAAQ,GACRE,EAAOU,CAAM;GACjB,CAAC;EACT;EAEA,SAAS,KAAK,YAAYhB,CAAO;CACrC,CAAC;AACL;AAEA,SAAgBiB,EAAuB,GAAe,GAAkD;CACpG,IAAMC,IAAa,SAAS,cAAc,GAAG;CAU7C,OATAA,EAAW,UAAU,IAAI,kBAAkB,GAC3C,EAAW,YAAYC,GACnBC,MAAY,KAAA,KACZF,EAAW,iBAAiB,UAAS,MAAK;EAGtC,AAFA,EAAE,eAAe,GACjB,EAAE,gBAAgB,GAClBE,EAAQ,CAAC;CACb,CAAC,GAEEF;AACX"}
package/dist/dialog.d.ts CHANGED
@@ -2,8 +2,8 @@ export interface DialogOptions<T> {
2
2
  title?: string;
3
3
  hideCloseButton?: boolean;
4
4
  disableOutsideClick?: boolean;
5
- mountContent?: (containerElement: HTMLElement, resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void;
6
- mountFooter?: (containerElement: HTMLElement, resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void;
5
+ mount?: (contentElement: HTMLElement, footerElement: HTMLElement, resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void;
6
+ onClose?: () => void;
7
7
  classes?: string[];
8
8
  styles?: Record<string, string>;
9
9
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngyewch/bulma-dialog",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "description": "Bulma dialog.",
6
6
  "author": "Nick Ng",