@simplysm/angular 14.0.7 → 14.0.8

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.
Files changed (51) hide show
  1. package/dist/core/utils/injectParent.d.ts +7 -0
  2. package/dist/core/utils/injectParent.d.ts.map +1 -0
  3. package/dist/core/utils/injectParent.js +26 -0
  4. package/dist/features/base/sd-base-container.control.d.ts +26 -0
  5. package/dist/features/base/sd-base-container.control.d.ts.map +1 -0
  6. package/dist/features/base/sd-base-container.control.js +183 -0
  7. package/dist/index.d.ts +2 -0
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +3 -0
  10. package/dist/ui/data/list/sd-list-item.control.js +1 -1
  11. package/dist/ui/data/sheet/sd-sheet.control.d.ts +2 -1
  12. package/dist/ui/data/sheet/sd-sheet.control.d.ts.map +1 -1
  13. package/dist/ui/data/sheet/sd-sheet.control.js +16 -13
  14. package/dist/ui/data/sheet/useSheetCellAgent.d.ts.map +1 -1
  15. package/dist/ui/data/sheet/useSheetCellAgent.js +1 -2
  16. package/dist/ui/data/sheet/useSheetLayoutEngine.d.ts.map +1 -1
  17. package/dist/ui/data/sheet/useSheetLayoutEngine.js +1 -0
  18. package/dist/ui/layout/dock/sd-dock.control.d.ts +2 -0
  19. package/dist/ui/layout/dock/sd-dock.control.d.ts.map +1 -1
  20. package/dist/ui/layout/dock/sd-dock.control.js +13 -4
  21. package/dist/ui/layout/kanban/sd-kanban-lane.control.d.ts.map +1 -1
  22. package/dist/ui/layout/kanban/sd-kanban-lane.control.js +7 -1
  23. package/dist/ui/layout/sd-gap.control.d.ts +2 -2
  24. package/dist/ui/navigation/pagination/sd-pagination.control.d.ts.map +1 -1
  25. package/dist/ui/navigation/pagination/sd-pagination.control.js +7 -3
  26. package/dist/ui/navigation/sidebar/sd-sidebar-container.control.js +1 -1
  27. package/dist/ui/overlay/dropdown/sd-dropdown-popup.control.js +1 -1
  28. package/dist/ui/overlay/modal/sd-modal.control.d.ts +1 -0
  29. package/dist/ui/overlay/modal/sd-modal.control.d.ts.map +1 -1
  30. package/dist/ui/overlay/modal/sd-modal.control.js +10 -2
  31. package/dist/ui/overlay/toast/sd-toast.provider.d.ts.map +1 -1
  32. package/dist/ui/overlay/toast/sd-toast.provider.js +7 -3
  33. package/dist/ui/visual/sd-progress.control.d.ts +1 -0
  34. package/dist/ui/visual/sd-progress.control.d.ts.map +1 -1
  35. package/dist/ui/visual/sd-progress.control.js +5 -4
  36. package/package.json +5 -5
  37. package/src/core/utils/injectParent.ts +41 -0
  38. package/src/features/base/sd-base-container.control.ts +113 -0
  39. package/src/index.ts +4 -0
  40. package/src/ui/data/list/sd-list-item.control.ts +1 -1
  41. package/src/ui/data/sheet/sd-sheet.control.ts +17 -13
  42. package/src/ui/data/sheet/useSheetCellAgent.ts +1 -2
  43. package/src/ui/data/sheet/useSheetLayoutEngine.ts +1 -0
  44. package/src/ui/layout/dock/sd-dock.control.ts +15 -2
  45. package/src/ui/layout/kanban/sd-kanban-lane.control.ts +6 -3
  46. package/src/ui/navigation/pagination/sd-pagination.control.ts +5 -3
  47. package/src/ui/navigation/sidebar/sd-sidebar-container.control.ts +1 -1
  48. package/src/ui/overlay/dropdown/sd-dropdown-popup.control.ts +1 -1
  49. package/src/ui/overlay/modal/sd-modal.control.ts +9 -0
  50. package/src/ui/overlay/toast/sd-toast.provider.ts +9 -3
  51. package/src/ui/visual/sd-progress.control.ts +4 -1
@@ -87,6 +87,6 @@ export class SdSidebarContainerControl {
87
87
  }
88
88
 
89
89
  onBackdropClick(): void {
90
- this.toggle.update((v) => !v);
90
+ this.toggle.set(false);
91
91
  }
92
92
  }
@@ -102,7 +102,7 @@ export class SdDropdownPopupControl {
102
102
  const divEl = el.firstElementChild as HTMLElement;
103
103
 
104
104
  if (divEl.clientHeight > 300) {
105
- el.style.height = "18.75rem";
105
+ el.style.height = "300px";
106
106
  } else {
107
107
  el.style.height = "";
108
108
  }
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  ChangeDetectionStrategy,
3
3
  Component,
4
+ DestroyRef,
4
5
  effect,
5
6
  ElementRef,
6
7
  inject,
@@ -62,6 +63,7 @@ export class SdModalControl {
62
63
  private readonly _elRef = inject(ElementRef<HTMLElement>);
63
64
  private readonly _activatedModal = inject(SdActivatedModalProvider, { optional: true });
64
65
  private readonly _systemConfig = inject(SdSystemConfigProvider, { optional: true });
66
+ private readonly _destroyRef = inject(DestroyRef);
65
67
 
66
68
  open = model(false);
67
69
  key = input<string | undefined>(undefined);
@@ -147,6 +149,11 @@ export class SdModalControl {
147
149
  void this._saveConfig();
148
150
  }
149
151
  };
152
+
153
+ this._destroyRef.onDestroy(() => {
154
+ document.removeEventListener("mousemove", this._onDocumentMouseMove);
155
+ document.removeEventListener("mouseup", this._onDocumentMouseUp);
156
+ });
150
157
  }
151
158
 
152
159
  onResizeMouseDown(event: MouseEvent, dir: string): void {
@@ -262,6 +269,8 @@ export class SdModalControl {
262
269
  maxZ = z;
263
270
  }
264
271
  }
272
+ const currentZ = parseInt(hostEl.style.zIndex, 10);
273
+ if (currentZ >= maxZ) return;
265
274
  hostEl.style.zIndex = String(maxZ + 1);
266
275
  }
267
276
 
@@ -201,12 +201,13 @@ export class SdToastProvider {
201
201
  const progressSignal = toastRef.instance.progress;
202
202
 
203
203
  effect(
204
- () => {
204
+ (onCleanup) => {
205
205
  const val = progressSignal();
206
206
  if (val >= 100) {
207
- setTimeout(() => {
207
+ const timerId = setTimeout(() => {
208
208
  this._dismissToast(toastRef);
209
209
  }, 1000);
210
+ onCleanup(() => clearTimeout(timerId));
210
211
  }
211
212
  },
212
213
  { injector: toastRef.injector },
@@ -260,14 +261,19 @@ export class SdToastProvider {
260
261
  toastRef.instance.open.set(false);
261
262
 
262
263
  const el = toastRef.location.nativeElement as HTMLElement;
264
+ let fallbackId: ReturnType<typeof setTimeout>;
265
+
263
266
  const onTransitionEnd = () => {
267
+ clearTimeout(fallbackId);
264
268
  el.removeEventListener("transitionend", onTransitionEnd);
265
269
  this._destroyToast(toastRef);
266
270
  };
271
+
267
272
  el.addEventListener("transitionend", onTransitionEnd);
268
273
 
269
274
  // fallback: transition이 없는 경우 300ms 후 파괴
270
- setTimeout(() => {
275
+ fallbackId = setTimeout(() => {
276
+ el.removeEventListener("transitionend", onTransitionEnd);
271
277
  this._destroyToast(toastRef);
272
278
  }, 300);
273
279
  }
@@ -2,6 +2,7 @@ import {
2
2
  booleanAttribute,
3
3
  ChangeDetectionStrategy,
4
4
  Component,
5
+ computed,
5
6
  input,
6
7
  ViewEncapsulation,
7
8
  } from "@angular/core";
@@ -22,7 +23,7 @@ import { PercentPipe } from "@angular/common";
22
23
  <div class="_content tx-right">
23
24
  {{ value() | percent: "1.0-2" }}
24
25
  </div>
25
- <div class="_progress" [style.width]="value() * 100 + '%'"></div>
26
+ <div class="_progress" [style.width]="_barWidth()"></div>
26
27
  `,
27
28
  styles: [
28
29
  /* language=SCSS */ `
@@ -85,4 +86,6 @@ export class SdProgressControl {
85
86
  >();
86
87
 
87
88
  value = input.required<number>();
89
+
90
+ _barWidth = computed(() => Math.min(this.value() * 100, 100) + "%");
88
91
  }