@ship-ui/core 0.16.1 → 0.16.2

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.
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { ElementRef, QueryList, ComponentRef, OutputRefSubscription, Type, OutputEmitterRef, AfterViewInit, OnDestroy, AfterContentInit, TemplateRef, WritableSignal, InjectionToken } from '@angular/core';
2
+ import { ElementRef, QueryList, InputSignal, OutputEmitterRef, ComponentRef, OutputRefSubscription, Type, AfterViewInit, OnDestroy, AfterContentInit, TemplateRef, WritableSignal, InjectionToken } from '@angular/core';
3
3
  import { NgModel } from '@angular/forms';
4
4
 
5
5
  type ShipAlertItem = {
@@ -99,12 +99,21 @@ declare class ShipDialog {
99
99
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ShipDialog, "sh-dialog", never, { "isOpen": { "alias": "isOpen"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "isOpen": "isOpenChange"; "closed": "closed"; }, never, ["*"], true, never>;
100
100
  }
101
101
 
102
- interface ShipDialogServiceOptions<T = any> extends ShipDialogOptions {
103
- data?: T;
104
- closed?: (...args: any[]) => void;
102
+ type Exact<T, U> = U extends T ? (keyof U extends keyof T ? U : never) : never;
103
+ type ComponentDataType<T> = T extends {
104
+ data: InputSignal<infer K>;
105
+ } ? K : void;
106
+ type ComponentClosedType<T> = T extends {
107
+ closed: OutputEmitterRef<infer U>;
108
+ } ? U : undefined;
109
+ interface ShipDialogServiceOptions<TData = any, TResult = undefined> extends ShipDialogOptions {
110
+ data?: TData extends void ? void : TData & Exact<TData, TData>;
111
+ closed?: (res: TResult) => void;
105
112
  }
106
- type ShipDialogReturn<T> = ReturnType<ShipDialogService['open']> & {
113
+ type ShipDialogInstance<T> = {
107
114
  component: T;
115
+ close: (res?: ComponentClosedType<T> | undefined) => void;
116
+ closed: OutputEmitterRef<ComponentClosedType<T> | undefined>;
108
117
  };
109
118
  declare class ShipDialogService {
110
119
  #private;
@@ -112,11 +121,10 @@ declare class ShipDialogService {
112
121
  insertedCompRef: ComponentRef<unknown> | null;
113
122
  closedFieldSub: OutputRefSubscription | null;
114
123
  compClosedSub: OutputRefSubscription | null;
115
- open<T, K = any>(component: Type<T>, options?: ShipDialogServiceOptions<K>): {
116
- component: T;
117
- close: <U>(arg?: U | undefined) => void;
118
- closed: OutputEmitterRef<void>;
119
- };
124
+ open<T extends {
125
+ data?: InputSignal<any>;
126
+ closed?: OutputEmitterRef<any>;
127
+ }, K = ComponentDataType<T>, U = ComponentClosedType<T>, _Options extends ShipDialogServiceOptions<K, U | undefined> = ShipDialogServiceOptions<K, U | undefined>>(component: Type<T>, options?: _Options): ShipDialogInstance<T>;
120
128
  ngOnDestroy(): void;
121
129
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShipDialogService, never>;
122
130
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<ShipDialogService>;
@@ -585,7 +593,7 @@ declare class ShipSelect {
585
593
  inputValueEffect: _angular_core.EffectRef;
586
594
  inputRefElEffect: _angular_core.EffectRef;
587
595
  selectedLabels: _angular_core.Signal<string>;
588
- inputState: _angular_core.Signal<"open" | "closed" | "selected" | "loading" | "open-searching" | "searching">;
596
+ inputState: _angular_core.Signal<"closed" | "selected" | "loading" | "open-searching" | "open" | "searching">;
589
597
  hasSearch: _angular_core.Signal<boolean>;
590
598
  ngOnInit(): void;
591
599
  setInitInput(): void;
@@ -851,4 +859,4 @@ interface ShipConfig {
851
859
  }
852
860
 
853
861
  export { GridSortable, SHIP_CONFIG, ShipAlert, ShipAlertContainer, ShipAlertModule, ShipAlertService, ShipBlueprint, ShipButton, ShipButtonGroup, ShipCard, ShipCheckbox, ShipChip, ShipColorPicker, ShipDatepicker, ShipDatepickerInput, ShipDaterangeInput, ShipDialog, ShipDialogService, ShipDivider, ShipEventCard, ShipFileDragDrop, ShipFileUpload, ShipFormField, ShipIcon, ShipInputMask, ShipList, ShipMenu, ShipPopover, ShipPreventWheel, ShipProgressBar, ShipRadio, ShipRangeSlider, ShipResize, ShipSelect, ShipSidenav, ShipSort, ShipSortable, ShipSpinner, ShipStepper, ShipStickyColumns, ShipTable, ShipTabs, ShipToggle, ShipToggleCard, ShipTooltip, ShipTooltipWrapper, ShipVirtualScroll, TEST_NODES, moveIndex, watchHostClass };
854
- export type { AfterDropResponse, BlueprintNode, Coordinates, ShipAlertItem, ShipAlertItemInternal, ShipAlertType, ShipConfig, ShipDialogOptions, ShipDialogReturn, ShipDialogServiceOptions, ShipPopoverOptions, ShipProgressBarMode, ShipSidenavType };
862
+ export type { AfterDropResponse, BlueprintNode, ComponentClosedType, ComponentDataType, Coordinates, Exact, ShipAlertItem, ShipAlertItemInternal, ShipAlertType, ShipConfig, ShipDialogInstance, ShipDialogOptions, ShipDialogServiceOptions, ShipPopoverOptions, ShipProgressBarMode, ShipSidenavType };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ship-ui/core",
3
3
  "license": "MIT",
4
- "version": "0.16.1",
4
+ "version": "0.16.2",
5
5
  "peerDependencies": {
6
6
  "@angular/common": ">=20",
7
7
  "@angular/core": ">=20"