@melodicdev/components 1.0.15 → 1.0.16

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.
@@ -2,7 +2,7 @@ import type { UniqueID } from '../../../functions';
2
2
  import type { IDialogConfig } from './dialog-config.interface';
3
3
  export declare class DialogRef<TResult = unknown, TData = unknown> {
4
4
  private readonly _dialogID;
5
- private _dialogEl;
5
+ private readonly _dialogEl;
6
6
  private _afterOpenedCallback;
7
7
  private _afterClosedCallback;
8
8
  private _data;
@@ -10,7 +10,6 @@ export declare class DialogRef<TResult = unknown, TData = unknown> {
10
10
  private readonly _handleCancel;
11
11
  private readonly _handleBackdropClick;
12
12
  constructor(_dialogID: UniqueID, _dialogEl: HTMLDialogElement);
13
- updateDialogElement(dialogEl: HTMLDialogElement): void;
14
13
  get dialogID(): UniqueID;
15
14
  get data(): TData | undefined;
16
15
  get disableClose(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-ref.class.d.ts","sourceRoot":"","sources":["../../../../src/components/overlays/dialog/dialog-ref.class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,qBAAa,SAAS,CAAC,OAAO,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IASvD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,SAAS;IATlB,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,oBAAoB,CAAwD;IACpF,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAmC;gBAGtD,SAAS,EAAE,QAAQ,EAC5B,SAAS,EAAE,iBAAiB;IAMrC,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAUtD,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,IAAI,IAAI,KAAK,GAAG,SAAS,CAE5B;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI;IAyB/C,IAAI,IAAI,IAAI;IAKZ,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAK7B,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIvC,WAAW,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,KAAK,IAAI,GAAG,IAAI;IAIlE,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,eAAe;CAKvB"}
1
+ {"version":3,"file":"dialog-ref.class.d.ts","sourceRoot":"","sources":["../../../../src/components/overlays/dialog/dialog-ref.class.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,qBAAa,SAAS,CAAC,OAAO,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO;IASvD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAT3B,OAAO,CAAC,oBAAoB,CAA6B;IACzD,OAAO,CAAC,oBAAoB,CAAwD;IACpF,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAmC;gBAGtD,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,iBAAiB;IAM9C,IAAI,QAAQ,IAAI,QAAQ,CAEvB;IAED,IAAI,IAAI,IAAI,KAAK,GAAG,SAAS,CAE5B;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,IAAI;IAyB/C,IAAI,IAAI,IAAI;IAKZ,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI;IAK7B,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAIvC,WAAW,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,GAAG,SAAS,KAAK,IAAI,GAAG,IAAI;IAIlE,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,eAAe;CAKvB"}
@@ -10,13 +10,6 @@ export class DialogRef {
10
10
  this._dialogEl.addEventListener('cancel', this._handleCancel);
11
11
  this._dialogEl.addEventListener('click', this._handleBackdropClick);
12
12
  }
13
- updateDialogElement(dialogEl) {
14
- this._dialogEl.removeEventListener('cancel', this._handleCancel);
15
- this._dialogEl.removeEventListener('click', this._handleBackdropClick);
16
- this._dialogEl = dialogEl;
17
- this._dialogEl.addEventListener('cancel', this._handleCancel);
18
- this._dialogEl.addEventListener('click', this._handleBackdropClick);
19
- }
20
13
  get dialogID() {
21
14
  return this._dialogID;
22
15
  }
@@ -1,12 +1,11 @@
1
- import type { OnCreate, OnDestroy, IElementRef } from '@melodicdev/core';
2
- export declare class DialogComponent implements IElementRef, OnCreate, OnDestroy {
1
+ import type { OnDestroy, IElementRef } from '@melodicdev/core';
2
+ export declare class DialogComponent implements IElementRef, OnDestroy {
3
3
  elementRef: HTMLElement;
4
4
  private readonly _dialogService;
5
5
  private _dialogID;
6
6
  private _dialogEl;
7
7
  private _dialogRef;
8
8
  private _registered;
9
- onCreate(): void;
10
9
  private registerDialog;
11
10
  onDestroy(): void;
12
11
  open(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/components/overlays/dialog/dialog.component.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAKzE,qBAMa,eAAgB,YAAW,WAAW,EAAE,QAAQ,EAAE,SAAS;IAChE,UAAU,EAAG,WAAW,CAAC;IAGhC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAS;IAE5B,QAAQ,IAAI,IAAI;IAIhB,OAAO,CAAC,cAAc;IAatB,SAAS,IAAI,IAAI;IAIjB,IAAI,IAAI,IAAI;IAaZ,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI;IAIpC,OAAO,CAAC,cAAc;CAQtB"}
1
+ {"version":3,"file":"dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/components/overlays/dialog/dialog.component.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAK/D,qBAMa,eAAgB,YAAW,WAAW,EAAE,SAAS;IACtD,UAAU,EAAG,WAAW,CAAC;IAGhC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,CAAC,cAAc;IAatB,SAAS,IAAI,IAAI;IAIjB,IAAI,IAAI,IAAI;IAKZ,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI;IAIpC,OAAO,CAAC,cAAc;CAQtB"}
@@ -17,9 +17,6 @@ let DialogComponent = class DialogComponent {
17
17
  this._dialogID = newID();
18
18
  this._registered = false;
19
19
  }
20
- onCreate() {
21
- this.registerDialog();
22
- }
23
20
  registerDialog() {
24
21
  if (this._registered)
25
22
  return;
@@ -37,11 +34,6 @@ let DialogComponent = class DialogComponent {
37
34
  }
38
35
  open() {
39
36
  this.registerDialog();
40
- const dialogEl = this.elementRef.shadowRoot?.querySelector('dialog');
41
- if (dialogEl && dialogEl !== this._dialogEl) {
42
- this._dialogEl = dialogEl;
43
- this._dialogRef.updateDialogElement(dialogEl);
44
- }
45
37
  this._dialogRef.open();
46
38
  }
47
39
  close(result) {
@@ -7,8 +7,6 @@ export declare class DialogService {
7
7
  removeDialog(dialogID: UniqueID): void;
8
8
  open<TResult = unknown, TData = unknown>(dialogComponent: new (...args: any[]) => any, config?: IDialogConfig<TData>): DialogRef<TResult, TData>;
9
9
  open<TResult = unknown, TData = unknown>(dialogID: UniqueID): DialogRef<TResult, TData>;
10
- private findDialogElement;
11
- private deepFindDialog;
12
10
  close<T = unknown>(dialogID: UniqueID, result?: T): void;
13
11
  private cleanUpDialog;
14
12
  private mountDialog;
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.service.d.ts","sourceRoot":"","sources":["../../../../src/components/overlays/dialog/dialog.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAW/D,qBACa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IAEjE,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,GAAG,SAAS;IAerE,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAItC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,eAAe,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;IAChJ,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;IA4CvF,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,cAAc;IAoBtB,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI;IAOxD,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;CAGrB"}
1
+ {"version":3,"file":"dialog.service.d.ts","sourceRoot":"","sources":["../../../../src/components/overlays/dialog/dialog.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAI/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAW/D,qBACa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IAEjE,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,GAAG,SAAS;IAerE,YAAY,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAItC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,eAAe,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;IAChJ,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC;IA2BvF,KAAK,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI;IAOxD,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;CAGrB"}
@@ -40,51 +40,9 @@ let DialogService = class DialogService {
40
40
  }
41
41
  dialogComponent.component.onDialogRefSet?.(dialogElements.dialogRef);
42
42
  }
43
- // Lazy resolution: if the dialog wasn't registered during lifecycle hooks
44
- // (e.g. nested router-outlet), find it in the DOM and trigger registration.
45
- if (!dialogElements) {
46
- const mlDialog = this.findDialogElement(dialogID);
47
- if (mlDialog) {
48
- mlDialog.component.open();
49
- dialogElements = this._dialogs.get(dialogID);
50
- }
51
- if (!dialogElements) {
52
- throw new Error(`Dialog "${dialogID}" not found. Ensure an <ml-dialog #${dialogID}> exists in the DOM.`);
53
- }
54
- return dialogElements.dialogRef;
55
- }
56
43
  dialogElements.dialogRef.open();
57
44
  return dialogElements.dialogRef;
58
45
  }
59
- findDialogElement(dialogID) {
60
- // Traverse all shadow roots starting from document.body's children
61
- for (const child of document.body.querySelectorAll('*')) {
62
- if (child.shadowRoot) {
63
- const result = this.deepFindDialog(child, dialogID);
64
- if (result)
65
- return result;
66
- }
67
- }
68
- return null;
69
- }
70
- deepFindDialog(root, dialogID) {
71
- const shadowRoot = root.shadowRoot;
72
- if (!shadowRoot)
73
- return null;
74
- for (const el of shadowRoot.querySelectorAll('ml-dialog')) {
75
- if (el.hasAttribute(`#${dialogID}`)) {
76
- return el;
77
- }
78
- }
79
- for (const child of shadowRoot.querySelectorAll('*')) {
80
- if (child.shadowRoot) {
81
- const result = this.deepFindDialog(child, dialogID);
82
- if (result)
83
- return result;
84
- }
85
- }
86
- return null;
87
- }
88
46
  close(dialogID, result) {
89
47
  if (this._dialogs.has(dialogID)) {
90
48
  const dialogElements = this._dialogs.get(dialogID);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@melodicdev/components",
3
- "version": "1.0.15",
3
+ "version": "1.0.16",
4
4
  "description": "Themeable UI component library built on the Melodic Framework",
5
5
  "license": "MIT",
6
6
  "author": "Melodic Development",