@sneat/ui 0.26.0 → 0.26.1

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.
@@ -1,12 +1,15 @@
1
- import { Directive, inject, InjectionToken, Input, signal, } from '@angular/core';
1
+ import { Directive, inject, InjectionToken, signal, input } from '@angular/core';
2
2
  import { SneatBaseComponent } from '../components/sneat-base.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export const OverlayController = new InjectionToken('OverlayController');
5
5
  export class SelectorBaseComponent extends SneatBaseComponent {
6
6
  constructor() {
7
7
  super(...arguments);
8
+ this.selectMode = input(/* @ts-ignore */
9
+ ...(ngDevMode ? [undefined, { debugName: "selectMode" }] : /* istanbul ignore next */ []));
8
10
  this.overlayController = inject(OverlayController);
9
- this.$selectedItems = signal([], ...(ngDevMode ? [{ debugName: "$selectedItems" }] : []));
11
+ this.$selectedItems = signal([], /* @ts-ignore */
12
+ ...(ngDevMode ? [{ debugName: "$selectedItems" }] : /* istanbul ignore next */ []));
10
13
  }
11
14
  close(event) {
12
15
  event?.stopPropagation();
@@ -15,22 +18,20 @@ export class SelectorBaseComponent extends SneatBaseComponent {
15
18
  .dismiss({ selectedItems: this.$selectedItems() })
16
19
  .catch(this.errorLogger.logErrorHandler('failed to dismiss contact selector modal'));
17
20
  }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SelectorBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
19
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: SelectorBaseComponent, isStandalone: true, inputs: { selectMode: "selectMode" }, usesInheritance: true, ngImport: i0 }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SelectorBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
22
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.3", type: SelectorBaseComponent, isStandalone: true, inputs: { selectMode: { classPropertyName: "selectMode", publicName: "selectMode", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 }); }
20
23
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SelectorBaseComponent, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SelectorBaseComponent, decorators: [{
22
25
  type: Directive
23
- }], propDecorators: { selectMode: [{
24
- type: Input
25
- }] } });
26
+ }], propDecorators: { selectMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectMode", required: false }] }] } });
26
27
  export class SelectorModalComponent extends SelectorBaseComponent {
27
28
  get modalController() {
28
29
  return this.overlayController;
29
30
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SelectorModalComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
31
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: SelectorModalComponent, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SelectorModalComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
32
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.3", type: SelectorModalComponent, isStandalone: true, usesInheritance: true, ngImport: i0 }); }
32
33
  }
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SelectorModalComponent, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.3", ngImport: i0, type: SelectorModalComponent, decorators: [{
34
35
  type: Directive
35
36
  }] });
36
37
  //# sourceMappingURL=selector-base.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"selector-base.component.js","sourceRoot":"","sources":["../../../../../../libs/ui/src/lib/selector/selector-base.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,MAAM,EACN,cAAc,EACd,KAAK,EACL,MAAM,GACP,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;;AAExE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAEjD,mBAAmB,CAAC,CAAC;AAGvB,MAAM,OAAgB,qBAAyB,SAAQ,kBAAkB;IADzE;;QAIqB,sBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEvD,mBAAc,GAAG,MAAM,CAAe,EAAE,0DAAC,CAAC;KAarD;IAXW,KAAK,CAAC,KAAa;QAC3B,KAAK,EAAE,eAAe,EAAE,CAAC;QACzB,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB;aACnB,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;aACjD,KAAK,CACJ,IAAI,CAAC,WAAW,CAAC,eAAe,CAC9B,0CAA0C,CAC3C,CACF,CAAC;IACN,CAAC;8GAjBmB,qBAAqB;kGAArB,qBAAqB;;2FAArB,qBAAqB;kBAD1C,SAAS;;sBAEP,KAAK;;AAoBR,MAAM,OAAgB,sBAEpB,SAAQ,qBAAwB;IAChC,IAAc,eAAe;QAC3B,OAAO,IAAI,CAAC,iBAAoC,CAAC;IACnD,CAAC;8GALmB,sBAAsB;kGAAtB,sBAAsB;;2FAAtB,sBAAsB;kBAD3C,SAAS","sourcesContent":["import {\n Directive,\n inject,\n InjectionToken,\n Input,\n signal,\n} from '@angular/core';\nimport { ModalController, PopoverController } from '@ionic/angular/standalone';\nimport { SneatBaseComponent } from '../components/sneat-base.component';\n\nexport const OverlayController = new InjectionToken<\n ModalController | PopoverController\n>('OverlayController');\n\n@Directive()\nexport abstract class SelectorBaseComponent<T> extends SneatBaseComponent {\n @Input() public selectMode?: 'single' | 'multiple';\n\n protected readonly overlayController = inject(OverlayController);\n\n protected $selectedItems = signal<readonly T[]>([]);\n\n protected close(event?: Event): void {\n event?.stopPropagation();\n event?.preventDefault();\n this.overlayController\n .dismiss({ selectedItems: this.$selectedItems() })\n .catch(\n this.errorLogger.logErrorHandler(\n 'failed to dismiss contact selector modal',\n ),\n );\n }\n}\n\n@Directive()\nexport abstract class SelectorModalComponent<\n T,\n> extends SelectorBaseComponent<T> {\n protected get modalController() {\n return this.overlayController as ModalController;\n }\n}\n"]}
1
+ {"version":3,"file":"selector-base.component.js","sourceRoot":"","sources":["../../../../../../libs/ui/src/lib/selector/selector-base.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,MAAM,EACN,cAAc,EACd,MAAM,EACN,KAAK,EACN,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;;AAExE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAEjD,mBAAmB,CAAC,CAAC;AAGvB,MAAM,OAAgB,qBAAyB,SAAQ,kBAAkB;IADzE;;QAEkB,eAAU,GAAG,KAAK;kGAAyB,CAAC;QAEzC,sBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAEvD,mBAAc,GAAG,MAAM,CAAe,EAAE;2FAAC,CAAC;KAarD;IAXW,KAAK,CAAC,KAAa;QAC3B,KAAK,EAAE,eAAe,EAAE,CAAC;QACzB,KAAK,EAAE,cAAc,EAAE,CAAC;QACxB,IAAI,CAAC,iBAAiB;aACnB,OAAO,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;aACjD,KAAK,CACJ,IAAI,CAAC,WAAW,CAAC,eAAe,CAC9B,0CAA0C,CAC3C,CACF,CAAC;IACN,CAAC;8GAjBmB,qBAAqB;kGAArB,qBAAqB;;2FAArB,qBAAqB;kBAD1C,SAAS;;AAsBV,MAAM,OAAgB,sBAEpB,SAAQ,qBAAwB;IAChC,IAAc,eAAe;QAC3B,OAAO,IAAI,CAAC,iBAAoC,CAAC;IACnD,CAAC;8GALmB,sBAAsB;kGAAtB,sBAAsB;;2FAAtB,sBAAsB;kBAD3C,SAAS","sourcesContent":["import {\n Directive,\n inject,\n InjectionToken,\n signal,\n input\n} from '@angular/core';\nimport { ModalController, PopoverController } from '@ionic/angular';\nimport { SneatBaseComponent } from '../components/sneat-base.component';\n\nexport const OverlayController = new InjectionToken<\n ModalController | PopoverController\n>('OverlayController');\n\n@Directive()\nexport abstract class SelectorBaseComponent<T> extends SneatBaseComponent {\n public readonly selectMode = input<'single' | 'multiple'>();\n\n protected readonly overlayController = inject(OverlayController);\n\n protected $selectedItems = signal<readonly T[]>([]);\n\n protected close(event?: Event): void {\n event?.stopPropagation();\n event?.preventDefault();\n this.overlayController\n .dismiss({ selectedItems: this.$selectedItems() })\n .catch(\n this.errorLogger.logErrorHandler(\n 'failed to dismiss contact selector modal',\n ),\n );\n }\n}\n\n@Directive()\nexport abstract class SelectorModalComponent<\n T,\n> extends SelectorBaseComponent<T> {\n protected get modalController() {\n return this.overlayController as ModalController;\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { inject } from '@angular/core';
2
- import { ModalController } from '@ionic/angular/standalone';
2
+ import { ModalController } from '@ionic/angular';
3
3
  import { ErrorLogger } from '@sneat/core';
4
4
  export class SelectorBaseService {
5
5
  constructor(component) {
@@ -1 +1 @@
1
- {"version":3,"file":"selector-base.service.js","sourceRoot":"","sources":["../../../../../../libs/ui/src/lib/selector/selector-base.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,eAAe,EAAgB,MAAM,2BAA2B,CAAC;AAE1E,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,MAAM,OAAgB,mBAAmB;IAIvC,YAAuC,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAH3C,gBAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACpC,oBAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAEM,CAAC;IAE3D,KAAK,CAAC,mBAAmB,CAC9B,OAA4B;QAE5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,mFAAmF;IACzE,KAAK,CAAC,qBAAqB,CACnC,OAA4B;QAG5B,IAAI,MAAM,GAA6B,SAAS,CAAC;QAEjD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC,OAAO,GAAG;YACR,GAAG,OAAO;YACV,UAAU,EAAE,KAAK,EAAE,KAAW,EAAiB,EAAE;gBAC/C,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBACD,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;SACF,CAAC;QACF,IAAI,cAAc,GAA4B;YAC5C,GAAG,OAAO,CAAC,cAAc;YACzB,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI,EAAE,OAAO;SACd,CAAC;QACF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,YAAY,GAAiB;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,cAAc;YAC9B,aAAa,EAAE,IAAI;SACpB,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9D,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAEtB,uCAAuC;QACvC,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;QAE3B,OAAO,MAAM,CAAC;IAChB,CAAC;CACF","sourcesContent":["import { inject } from '@angular/core';\nimport { ModalController, ModalOptions } from '@ionic/angular/standalone';\nimport type { ComponentProps, ComponentRef } from '@ionic/core';\nimport { ErrorLogger } from '@sneat/core';\nimport { ISelectItem } from './selector-interfaces';\nimport { ISelectorOptions } from './selector-options';\n\nexport abstract class SelectorBaseService<T = ISelectItem> {\n protected readonly errorLogger = inject(ErrorLogger);\n private readonly modalController = inject(ModalController);\n\n protected constructor(private readonly component: ComponentRef) {}\n\n public async selectSingleInModal(\n options: ISelectorOptions<T>,\n ): Promise<T | null> {\n const result = await this.selectMultipleInModal(options);\n return result ? result[0] : null;\n }\n\n // We make it protected so each service must override it for easiness of navigation\n protected async selectMultipleInModal(\n options: ISelectorOptions<T>,\n ): Promise<T[] | undefined> {\n\n let result: readonly T[] | undefined = undefined;\n\n const onSelected = options.onSelected;\n\n options = {\n ...options,\n onSelected: async (items?: T[]): Promise<void> => {\n if (onSelected) {\n await onSelected(items);\n }\n await this.modalController.dismiss(items);\n result = items;\n },\n };\n let componentProps: ComponentProps<unknown> = {\n ...options.componentProps,\n selectMode: 'multiple',\n onSelected: options.onSelected,\n mode: 'modal',\n };\n if (options.title) {\n componentProps = { ...componentProps, title: options.title };\n }\n const modalOptions: ModalOptions = {\n component: this.component,\n componentProps: componentProps,\n keyboardClose: true,\n };\n const modal = await this.modalController.create(modalOptions);\n await modal.present();\n\n // 🔹 Track when the modal is dismissed\n await modal.onDidDismiss();\n\n return result;\n }\n}\n"]}
1
+ {"version":3,"file":"selector-base.service.js","sourceRoot":"","sources":["../../../../../../libs/ui/src/lib/selector/selector-base.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,eAAe,EAAgB,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,MAAM,OAAgB,mBAAmB;IAIvC,YAAuC,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;QAH3C,gBAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACpC,oBAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IAEM,CAAC;IAE3D,KAAK,CAAC,mBAAmB,CAC9B,OAA4B;QAE5B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,mFAAmF;IACzE,KAAK,CAAC,qBAAqB,CACnC,OAA4B;QAG5B,IAAI,MAAM,GAA6B,SAAS,CAAC;QAEjD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC,OAAO,GAAG;YACR,GAAG,OAAO;YACV,UAAU,EAAE,KAAK,EAAE,KAAW,EAAiB,EAAE;gBAC/C,IAAI,UAAU,EAAE,CAAC;oBACf,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBACD,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC1C,MAAM,GAAG,KAAK,CAAC;YACjB,CAAC;SACF,CAAC;QACF,IAAI,cAAc,GAA4B;YAC5C,GAAG,OAAO,CAAC,cAAc;YACzB,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI,EAAE,OAAO;SACd,CAAC;QACF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,cAAc,GAAG,EAAE,GAAG,cAAc,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,YAAY,GAAiB;YACjC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,cAAc,EAAE,cAAc;YAC9B,aAAa,EAAE,IAAI;SACpB,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9D,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAEtB,uCAAuC;QACvC,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;QAE3B,OAAO,MAAM,CAAC;IAChB,CAAC;CACF","sourcesContent":["import { inject } from '@angular/core';\nimport { ModalController, ModalOptions } from '@ionic/angular';\nimport type { ComponentProps, ComponentRef } from '@ionic/core';\nimport { ErrorLogger } from '@sneat/core';\nimport { ISelectItem } from './selector-interfaces';\nimport { ISelectorOptions } from './selector-options';\n\nexport abstract class SelectorBaseService<T = ISelectItem> {\n protected readonly errorLogger = inject(ErrorLogger);\n private readonly modalController = inject(ModalController);\n\n protected constructor(private readonly component: ComponentRef) {}\n\n public async selectSingleInModal(\n options: ISelectorOptions<T>,\n ): Promise<T | null> {\n const result = await this.selectMultipleInModal(options);\n return result ? result[0] : null;\n }\n\n // We make it protected so each service must override it for easiness of navigation\n protected async selectMultipleInModal(\n options: ISelectorOptions<T>,\n ): Promise<T[] | undefined> {\n\n let result: readonly T[] | undefined = undefined;\n\n const onSelected = options.onSelected;\n\n options = {\n ...options,\n onSelected: async (items?: T[]): Promise<void> => {\n if (onSelected) {\n await onSelected(items);\n }\n await this.modalController.dismiss(items);\n result = items;\n },\n };\n let componentProps: ComponentProps<unknown> = {\n ...options.componentProps,\n selectMode: 'multiple',\n onSelected: options.onSelected,\n mode: 'modal',\n };\n if (options.title) {\n componentProps = { ...componentProps, title: options.title };\n }\n const modalOptions: ModalOptions = {\n component: this.component,\n componentProps: componentProps,\n keyboardClose: true,\n };\n const modal = await this.modalController.create(modalOptions);\n await modal.present();\n\n // 🔹 Track when the modal is dismissed\n await modal.onDidDismiss();\n\n return result;\n }\n}\n"]}
@@ -16,7 +16,7 @@ export declare abstract class SneatBaseComponent implements OnDestroy {
16
16
  protected readonly errorLogger: import("@sneat/core").IErrorLogger;
17
17
  protected readonly logError: (e: unknown, message?: string, options?: import("@sneat/core").ILogErrorOptions) => void;
18
18
  protected readonly logErrorHandler: (message?: string, options?: import("@sneat/core").ILogErrorOptions) => (error: unknown) => void;
19
- protected readonly setFocusToInput: (input?: import("@ionic/angular/standalone").IonInput | import("@ionic/angular/standalone").IonTextarea, delay?: number) => void;
19
+ protected readonly setFocusToInput: (input?: import("@ionic/angular").IonInput | import("@ionic/angular").IonTextarea, delay?: number) => void;
20
20
  protected readonly className: string;
21
21
  constructor();
22
22
  protected log(msg: string, ...data: unknown[]): void;
package/lib/focus.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { IonInput, IonTextarea } from '@ionic/angular/standalone';
1
+ import { IonInput, IonTextarea } from '@ionic/angular';
2
2
  import { IErrorLogger } from '@sneat/core';
3
3
  export declare function createSetFocusToInput(errorLogger: IErrorLogger): (input?: IonInput | IonTextarea, delay?: number) => void;
@@ -3,8 +3,8 @@ import { ISelectItem, ISelectItemEvent } from '../selector-interfaces';
3
3
  import { SelectorBaseComponent } from '../selector-base.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class MultiSelectorComponent<T = ISelectItem> extends SelectorBaseComponent<T> implements OnChanges {
6
- title: string;
7
- canRemove: boolean;
6
+ readonly title: import("@angular/core").InputSignal<string>;
7
+ readonly canRemove: import("@angular/core").InputSignal<boolean>;
8
8
  allItems?: ISelectItem[];
9
9
  selectedIDs?: readonly string[];
10
10
  readonly removeItems: EventEmitter<ISelectItemEvent[]>;
@@ -13,5 +13,5 @@ export declare class MultiSelectorComponent<T = ISelectItem> extends SelectorBas
13
13
  ngOnChanges(changes: SimpleChanges): void;
14
14
  protected removeItem(event: Event, item: ISelectItem): void;
15
15
  static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectorComponent<any>, never>;
16
- static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectorComponent<any>, "sneat-multi-selector", never, { "title": { "alias": "title"; "required": false; }; "canRemove": { "alias": "canRemove"; "required": false; }; "allItems": { "alias": "allItems"; "required": false; }; "selectedIDs": { "alias": "selectedIDs"; "required": false; }; }, { "removeItems": "removeItems"; "addItems": "addItems"; }, never, never, true, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectorComponent<any>, "sneat-multi-selector", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "canRemove": { "alias": "canRemove"; "required": false; "isSignal": true; }; "allItems": { "alias": "allItems"; "required": false; }; "selectedIDs": { "alias": "selectedIDs"; "required": false; }; }, { "removeItems": "removeItems"; "addItems": "addItems"; }, never, never, true, never>;
17
17
  }
@@ -1,4 +1,4 @@
1
- import { ModalController } from '@ionic/angular/standalone';
1
+ import { ModalController } from '@ionic/angular';
2
2
  import { IErrorLogger } from '@sneat/core';
3
3
  import { ISelectItem } from '../selector-interfaces';
4
4
  export declare class MultiSelectorService {
@@ -1,6 +1,6 @@
1
1
  import { EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
2
2
  import { ControlValueAccessor } from '@angular/forms';
3
- import { IonInput, IonSelect } from '@ionic/angular/standalone';
3
+ import { IonInput, IonSelect } from '@ionic/angular';
4
4
  import { Observable } from 'rxjs';
5
5
  import { ISelectItem } from '../selector-interfaces';
6
6
  import * as i0 from "@angular/core";
@@ -8,24 +8,24 @@ export declare class SelectFromListComponent implements ControlValueAccessor, On
8
8
  private readonly errorLogger;
9
9
  value: string | undefined;
10
10
  readonly valueChange: EventEmitter<string>;
11
- filterLabel: string;
12
- label: string;
13
- listLabel?: 'divider';
14
- listLabelColor?: 'light' | 'medium' | 'primary' | 'secondary' | 'tertiary';
15
- isFilterable?: boolean;
16
- isLoading?: boolean;
11
+ readonly filterLabel: import("@angular/core").InputSignal<string>;
12
+ readonly label: import("@angular/core").InputSignal<string>;
13
+ readonly listLabel: import("@angular/core").InputSignal<"divider" | undefined>;
14
+ readonly listLabelColor: import("@angular/core").InputSignal<"primary" | "secondary" | "tertiary" | "medium" | "light" | undefined>;
15
+ readonly isFilterable: import("@angular/core").InputSignal<boolean | undefined>;
16
+ readonly isLoading: import("@angular/core").InputSignal<boolean | undefined>;
17
17
  items?: readonly ISelectItem[];
18
18
  items$: Observable<ISelectItem[]>;
19
19
  private $items;
20
- lastItemLines?: 'none' | 'inset' | 'full';
20
+ readonly lastItemLines: import("@angular/core").InputSignal<"none" | "inset" | "full" | undefined>;
21
21
  labelPlacement?: 'start' | 'end' | 'fixed' | 'stacked';
22
- justify?: 'start' | 'end' | 'space-between';
23
- other: 'top' | 'bottom' | 'none';
24
- canAdd: boolean;
22
+ readonly justify: import("@angular/core").InputSignal<"start" | "end" | "space-between" | undefined>;
23
+ readonly other: import("@angular/core").InputSignal<"none" | "top" | "bottom">;
24
+ readonly canAdd: import("@angular/core").InputSignal<boolean>;
25
25
  filterItem?: (item: ISelectItem, filter: string) => boolean;
26
26
  readonly filterChanged: EventEmitter<string>;
27
27
  selectMode: 'single' | 'multiple';
28
- isReadonly: boolean;
28
+ readonly isReadonly: import("@angular/core").InputSignal<boolean>;
29
29
  $isProcessing: import("@angular/core").InputSignal<boolean | undefined>;
30
30
  sortBy?: 'title' | 'id';
31
31
  private destroyed;
@@ -56,5 +56,5 @@ export declare class SelectFromListComponent implements ControlValueAccessor, On
56
56
  protected onCheckboxChange(event: CustomEvent, item: ISelectItem): void;
57
57
  ngOnDestroy(): void;
58
58
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectFromListComponent, never>;
59
- static ɵcmp: i0.ɵɵComponentDeclaration<SelectFromListComponent, "sneat-select-from-list", never, { "value": { "alias": "value"; "required": false; }; "filterLabel": { "alias": "filterLabel"; "required": false; }; "label": { "alias": "label"; "required": false; }; "listLabel": { "alias": "listLabel"; "required": false; }; "listLabelColor": { "alias": "listLabelColor"; "required": false; }; "isFilterable": { "alias": "isFilterable"; "required": false; }; "isLoading": { "alias": "isLoading"; "required": false; }; "items": { "alias": "items"; "required": false; }; "items$": { "alias": "items$"; "required": false; }; "lastItemLines": { "alias": "lastItemLines"; "required": false; }; "labelPlacement": { "alias": "labelPlacement"; "required": false; }; "justify": { "alias": "justify"; "required": false; }; "other": { "alias": "other"; "required": false; }; "canAdd": { "alias": "canAdd"; "required": false; }; "filterItem": { "alias": "filterItem"; "required": false; }; "selectMode": { "alias": "selectMode"; "required": false; }; "isReadonly": { "alias": "isReadonly"; "required": false; }; "$isProcessing": { "alias": "$isProcessing"; "required": false; "isSignal": true; }; "sortBy": { "alias": "sortBy"; "required": false; }; }, { "valueChange": "valueChange"; "filterChanged": "filterChanged"; }, never, never, true, never>;
59
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectFromListComponent, "sneat-select-from-list", never, { "value": { "alias": "value"; "required": false; }; "filterLabel": { "alias": "filterLabel"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "listLabel": { "alias": "listLabel"; "required": false; "isSignal": true; }; "listLabelColor": { "alias": "listLabelColor"; "required": false; "isSignal": true; }; "isFilterable": { "alias": "isFilterable"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; }; "items$": { "alias": "items$"; "required": false; }; "lastItemLines": { "alias": "lastItemLines"; "required": false; "isSignal": true; }; "labelPlacement": { "alias": "labelPlacement"; "required": false; }; "justify": { "alias": "justify"; "required": false; "isSignal": true; }; "other": { "alias": "other"; "required": false; "isSignal": true; }; "canAdd": { "alias": "canAdd"; "required": false; "isSignal": true; }; "filterItem": { "alias": "filterItem"; "required": false; }; "selectMode": { "alias": "selectMode"; "required": false; }; "isReadonly": { "alias": "isReadonly"; "required": false; "isSignal": true; }; "$isProcessing": { "alias": "$isProcessing"; "required": false; "isSignal": true; }; "sortBy": { "alias": "sortBy"; "required": false; }; }, { "valueChange": "valueChange"; "filterChanged": "filterChanged"; }, never, never, true, never>;
60
60
  }
@@ -1,15 +1,15 @@
1
1
  import { InjectionToken } from '@angular/core';
2
- import { ModalController, PopoverController } from '@ionic/angular/standalone';
2
+ import { ModalController, PopoverController } from '@ionic/angular';
3
3
  import { SneatBaseComponent } from '../components/sneat-base.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare const OverlayController: InjectionToken<ModalController | PopoverController>;
6
6
  export declare abstract class SelectorBaseComponent<T> extends SneatBaseComponent {
7
- selectMode?: 'single' | 'multiple';
7
+ readonly selectMode: import("@angular/core").InputSignal<"multiple" | "single" | undefined>;
8
8
  protected readonly overlayController: ModalController | PopoverController;
9
9
  protected $selectedItems: import("@angular/core").WritableSignal<readonly T[]>;
10
10
  protected close(event?: Event): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectorBaseComponent<any>, never>;
12
- static ɵdir: i0.ɵɵDirectiveDeclaration<SelectorBaseComponent<any>, never, never, { "selectMode": { "alias": "selectMode"; "required": false; }; }, {}, never, never, true, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SelectorBaseComponent<any>, never, never, { "selectMode": { "alias": "selectMode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
13
13
  }
14
14
  export declare abstract class SelectorModalComponent<T> extends SelectorBaseComponent<T> {
15
15
  protected get modalController(): ModalController;
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@sneat/ui",
3
- "version": "0.26.0",
3
+ "version": "0.26.1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
7
  "peerDependencies": {
8
- "@angular/common": ">=21.0.0",
9
- "@angular/core": ">=21.0.0",
10
- "@ionic/angular": ">=8",
8
+ "@angular/common": ">=22.0.0 <23.0.0",
9
+ "@angular/core": ">=22.0.0 <23.0.0",
10
+ "@ionic/angular": ">=9.0.0 <10.0.0",
11
11
  "@sneat/logging": ">=0.1.0"
12
12
  },
13
13
  "dependencies": {
@@ -24,5 +24,6 @@
24
24
  "default": "./esm2022/sneat-ui.js"
25
25
  }
26
26
  },
27
- "sideEffects": false
27
+ "sideEffects": false,
28
+ "type": "module"
28
29
  }