@ngyewch/bulma-dialog 0.2.0 → 0.3.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.
@@ -43,7 +43,13 @@ function e(e) {
43
43
  document.body.appendChild(r);
44
44
  });
45
45
  }
46
+ function t(e, t) {
47
+ let n = document.createElement("a");
48
+ return n.classList.add("card-footer-item"), n.innerText = e, t !== void 0 && n.addEventListener("click", (e) => {
49
+ e.preventDefault(), e.stopPropagation(), t(e);
50
+ }), n;
51
+ }
46
52
  //#endregion
47
- export { e as showDialog };
53
+ export { t as createDialogFooterItem, e as showDialog };
48
54
 
49
55
  //# sourceMappingURL=bulma-dialog.js.map
@@ -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"],"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"],"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,IAAoB,SAAS,cAAc,KAAK;EAQtD,AAPAA,EAAkB,UAAU,IAAI,kBAAkB,IAC7CH,EAAQ,wBAAwB,KAAA,KAAc,CAACA,EAAQ,yBACxD,EAAkB,gBAAgB;GAE9B,AADA,SAAS,KAAK,YAAYD,CAAO,GACjCK,EAAO;EACX,IAEJL,EAAQ,YAAYI,CAAiB;EAErC,IAAME,IAAiB,SAAS,cAAc,KAAK;EAEnD,AADAA,EAAe,UAAU,IAAI,eAAe,GAC5CN,EAAQ,YAAYM,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,GAC9CR,EAAQ,UAAU,KAAA,MAClB,EAAiB,YAAYA,EAAQ,QAEzCO,EAAkB,YAAYC,CAAgB,GACzCR,EAAQ,oBAAoB,KAAA,KAAc,CAACA,EAAQ,iBAAiB;GACrE,IAAMS,IAAgB,SAAS,cAAc,QAAQ;GAOrD,AANAA,EAAc,UAAU,IAAI,kBAAkB,GAC9CA,EAAc,aAAa,cAAc,OAAO,GAChD,EAAc,gBAAgB;IAE1B,AADA,SAAS,KAAK,YAAYV,CAAO,GACjCK,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,GAErCP,EAAQ,iBAAiB,KAAA,GAAW;GACpC,IAAMW,IAAqB,SAAS,cAAc,KAAK;GAGvD,AAFAA,EAAmB,UAAU,IAAI,cAAc,GAC/CL,EAAY,YAAYK,CAAkB,GAC1CX,EAAQ,aAAaW,IAChB,MAAoC;IAEjC,AADA,SAAS,KAAK,YAAYZ,CAAO,GACjCa,EAAQV,CAAK;GACjB,IACC,MAAuB;IAEpB,AADA,SAAS,KAAK,YAAYH,CAAO,GACjCK,EAAOS,CAAM;GACjB,CAAC;EACT;EAEA,IAAIb,EAAQ,gBAAgB,KAAA,GAAW;GACnC,IAAMc,IAAoB,SAAS,cAAc,QAAQ;GAGzD,AAFAA,EAAkB,UAAU,IAAI,aAAa,GAC7CR,EAAY,YAAYQ,CAAiB,GACzCd,EAAQ,YAAYc,IACf,MAAoC;IAEjC,AADA,SAAS,KAAK,YAAYf,CAAO,GACjCa,EAAQV,CAAK;GACjB,IACC,MAAuB;IAEpB,AADA,SAAS,KAAK,YAAYH,CAAO,GACjCK,EAAOS,CAAM;GACjB,CAAC;EACT;EAEA,SAAS,KAAK,YAAYd,CAAO;CACrC,CAAC;AACL"}
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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"}
package/dist/dialog.d.ts CHANGED
@@ -8,3 +8,4 @@ export interface DialogOptions<T> {
8
8
  styles?: Record<string, string>;
9
9
  }
10
10
  export declare function showDialog<T>(options: DialogOptions<T>): Promise<T>;
11
+ export declare function createDialogFooterItem(label: string, onclick?: (e: PointerEvent) => void): HTMLElement;
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { DialogOptions, showDialog } from './dialog.js';
2
- export { type DialogOptions, showDialog, };
1
+ import { DialogOptions, createDialogFooterItem, showDialog } from './dialog.js';
2
+ export { type DialogOptions, createDialogFooterItem, showDialog, };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ngyewch/bulma-dialog",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "Bulma dialog.",
6
6
  "author": "Nick Ng",