ngx-ionic-zone 1.0.7 → 2.0.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.
package/README.md CHANGED
@@ -1,24 +1,2 @@
1
- # NgxIonicZone
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.0.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project ngx-ionic-zone` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ngx-ionic-zone`.
8
- > Note: Don't forget to add `--project ngx-ionic-zone` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build ngx-ionic-zone` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build ngx-ionic-zone`, go to the dist folder `cd dist/ngx-ionic-zone` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test ngx-ionic-zone` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
1
+ # Versioning
2
+ - for Angular v19, use 1.0.7
@@ -1 +1,15 @@
1
- export * from './help-icon/help-icon.component';
1
+ import * as i0 from '@angular/core';
2
+ import { OnInit } from '@angular/core';
3
+ import { IonAccordionGroup } from '@ionic/angular/standalone';
4
+
5
+ declare class HelpIconComponent implements OnInit {
6
+ text: string;
7
+ accordionGroup: IonAccordionGroup;
8
+ constructor();
9
+ ngOnInit(): void;
10
+ onHelpClicked(): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<HelpIconComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<HelpIconComponent, "help-icon", never, { "text": { "alias": "text"; "required": false; }; }, {}, never, never, true, never>;
13
+ }
14
+
15
+ export { HelpIconComponent };
@@ -1,2 +1,49 @@
1
- export * from './db-sql.service';
2
- export * from './db.module';
1
+ import { Observable } from 'rxjs';
2
+ import { DbService, DbServiceConfig, SchemaService, DbFilter } from 'ngx-universal-zone/database';
3
+ import { SQLiteDBConnection } from '@capacitor-community/sqlite';
4
+ import * as i0 from '@angular/core';
5
+ import { EnvironmentProviders } from '@angular/core';
6
+
7
+ declare class DbSqliteService implements DbService {
8
+ private config;
9
+ private schemaSvc;
10
+ private _dbName;
11
+ private _db;
12
+ private _isDbInitialized;
13
+ private dbInitialized;
14
+ constructor(config: DbServiceConfig, schemaSvc: SchemaService);
15
+ open(): Promise<void>;
16
+ initializeDb(): void;
17
+ getAllRx<T>(store: string, opt?: DbFilter): Observable<T>;
18
+ dbInitialized$: Observable<any>;
19
+ get Db(): SQLiteDBConnection;
20
+ putLocal(store: any, data: any): Promise<{
21
+ rowsAffected: any;
22
+ insertId: any;
23
+ }>;
24
+ putLocalRx(store: any, data: any): Observable<unknown>;
25
+ get<T>(store: string, key: any): Promise<T>;
26
+ getRx<T>(store: string, key: any): Observable<T>;
27
+ getAll<T>(store: string, opt?: DbFilter): Promise<T>;
28
+ remove(store: any, key: any): Promise<any>;
29
+ removeRx(store: any, key: any): Observable<any>;
30
+ removeAll(store: any): Promise<unknown>;
31
+ removeAllRx(store: string): Observable<any>;
32
+ count(store: any, opts?: {
33
+ key: any;
34
+ }): Promise<number>;
35
+ countRx(store: any, opts?: {
36
+ key: any;
37
+ }): Observable<number>;
38
+ deleteDb(): Promise<void>;
39
+ deleteTable(store: any): Observable<void>;
40
+ private _prepareTables;
41
+ private _dbError;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<DbSqliteService, never>;
43
+ static ɵprov: i0.ɵɵInjectableDeclaration<DbSqliteService>;
44
+ }
45
+
46
+ declare function dbSqliteFactory(schemaSvc: SchemaService): DbSqliteService;
47
+ declare const provideDbSqlite: () => EnvironmentProviders;
48
+
49
+ export { DbSqliteService, dbSqliteFactory, provideDbSqlite };
@@ -1,10 +1,10 @@
1
1
  import * as i1 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { Component, Input, ViewChild } from '@angular/core';
4
+ import { ViewChild, Input, Component } from '@angular/core';
5
5
  import { IonButton, IonIcon, IonAccordionGroup, IonAccordion } from '@ionic/angular/standalone';
6
6
  import { addIcons } from 'ionicons';
7
- import { helpCircleOutline, closeCircleOutline, informationCircleOutline } from 'ionicons/icons';
7
+ import { informationCircleOutline, closeCircleOutline, helpCircleOutline } from 'ionicons/icons';
8
8
 
9
9
  class HelpIconComponent {
10
10
  constructor() {
@@ -24,8 +24,8 @@ class HelpIconComponent {
24
24
  nativeEl.value = 'first';
25
25
  }
26
26
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HelpIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.0.5", type: HelpIconComponent, isStandalone: true, selector: "help-icon", inputs: { text: "text" }, viewQueries: [{ propertyName: "accordionGroup", first: true, predicate: ["accordionGroup"], descendants: true, static: true }], ngImport: i0, template: `
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: HelpIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.2.1", type: HelpIconComponent, isStandalone: true, selector: "help-icon", inputs: { text: "text" }, viewQueries: [{ propertyName: "accordionGroup", first: true, predicate: ["accordionGroup"], descendants: true, static: true }], ngImport: i0, template: `
29
29
  <ion-button class="help-button button-no-border" fill="clear" (click)="onHelpClicked()">
30
30
  <ion-icon ios="help-circle-outline" md="help-circle-outline" *ngIf="!accordionGroup.value"></ion-icon>
31
31
  <ion-icon ios="close-circle-outline" md="close-circle-outline" *ngIf="accordionGroup.value"></ion-icon>
@@ -43,7 +43,7 @@ class HelpIconComponent {
43
43
  </ion-accordion-group>
44
44
  `, isInline: true, styles: [":host{display:inline-block;width:100%;display:none;--help-icon-right: 10px;--help-icon-left: initial;--help-icon-caret-left: 35px;--help-icon-caret-right: initial;--help-icon-content-margin-left: 24px;--help-icon-content-margin-right: initial}.help-button{position:absolute;right:var(--help-icon-right);left:var(--help-icon-left);top:0;z-index:9999;height:36px}.help-content{position:relative;margin-top:10px;background:var(--ion-color-primary);color:#fff;padding:10px}.help-content:after{content:\"\";position:absolute;width:0;height:0;border-width:10px;border-style:solid;border-color:transparent transparent var(--ion-color-primary) transparent;top:-19px;left:var(--help-icon-caret-left);right:var(--help-icon-caret-right)}.help-content span{display:flex;align-items:center}.help-content span ion-icon{font-size:24px}.help-content p{margin-left:var(--help-icon-content-margin-left);margin-right:var(--help-icon-content-margin-right)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonAccordionGroup, selector: "ion-accordion-group", inputs: ["animated", "disabled", "expand", "mode", "multiple", "readonly", "value"] }, { kind: "component", type: IonAccordion, selector: "ion-accordion", inputs: ["disabled", "mode", "readonly", "toggleIcon", "toggleIconSlot", "value"] }] }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HelpIconComponent, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: HelpIconComponent, decorators: [{
47
47
  type: Component,
48
48
  args: [{ selector: 'help-icon', template: `
49
49
  <ion-button class="help-button button-no-border" fill="clear" (click)="onHelpClicked()">
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-ionic-zone-components.mjs","sources":["../../../projects/ngx-ionic-zone/components/help-icon/help-icon.component.ts","../../../projects/ngx-ionic-zone/components/ngx-ionic-zone-components.ts"],"sourcesContent":["import { CommonModule } from \"@angular/common\";\nimport { Component, Input, OnInit, ViewChild } from \"@angular/core\";\nimport { IonButton, IonIcon, IonAccordionGroup, IonAccordion } from \"@ionic/angular/standalone\";\nimport { addIcons } from 'ionicons';\nimport { helpCircleOutline, closeCircleOutline, informationCircleOutline } from \"ionicons/icons\";\n\n@Component({\n selector: 'help-icon',\n template: `\n <ion-button class=\"help-button button-no-border\" fill=\"clear\" (click)=\"onHelpClicked()\">\n <ion-icon ios=\"help-circle-outline\" md=\"help-circle-outline\" *ngIf=\"!accordionGroup.value\"></ion-icon>\n <ion-icon ios=\"close-circle-outline\" md=\"close-circle-outline\" *ngIf=\"accordionGroup.value\"></ion-icon>\n </ion-button>\n <ion-accordion-group #accordionGroup>\n <ion-accordion value=\"first\">\n <div slot=\"content\" class=\"help-content\">\n <span>\n <ion-icon ios=\"information-circle-outline\" md=\"information-circle-outline\"></ion-icon>\n <!-- <strong>{{'admin.common.alert' | localizedResource | async}}:</strong> -->\n </span>\n <p [innerHTML]=\"text\"></p>\n </div>\n </ion-accordion>\n </ion-accordion-group>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 100%;\n display:none; /* tmp: hide by default */\n\n --help-icon-right: 10px;\n --help-icon-left: initial;\n --help-icon-caret-left: 35px;\n --help-icon-caret-right: initial;\n --help-icon-content-margin-left: 24px;\n --help-icon-content-margin-right: initial;\n }\n\n .help-button {\n position: absolute;\n right: var(--help-icon-right);\n left: var(--help-icon-left);\n top: 0;\n z-index: 9999;\n height: 36px;\n }\n \n .help-content {\n position: relative;\n margin-top: 10px;\n background: var(--ion-color-primary);\n color: #fff;\n padding: 10px;\n }\n\n .help-content::after {\n content: \"\";\n position: absolute;\n width: 0;\n height: 0;\n border-width: 10px;\n border-style: solid;\n border-color: transparent transparent var(--ion-color-primary) transparent;\n top: -19px;\n left: var(--help-icon-caret-left);\n right: var(--help-icon-caret-right);\n }\n\n .help-content span {\n display: flex;\n align-items: center;\n }\n\n .help-content span ion-icon {\n font-size: 24px;\n }\n\n .help-content p {\n margin-left: var(--help-icon-content-margin-left);\n margin-right: var(--help-icon-content-margin-right);\n }\n `],\n standalone: true,\n imports: [CommonModule, IonButton, IonIcon, IonAccordionGroup, IonAccordion]\n})\nexport class HelpIconComponent implements OnInit {\n @Input() text!: string;\n @ViewChild('accordionGroup', { static: true }) accordionGroup!: IonAccordionGroup;\n\n constructor() {\n addIcons({ helpCircleOutline, closeCircleOutline, informationCircleOutline });\n }\n\n ngOnInit() {\n if (!this.text) {\n this.text = 'Please add some help text';\n }\n }\n\n onHelpClicked() {\n const nativeEl = this.accordionGroup;\n if (nativeEl.value === 'first') {\n nativeEl.value = undefined;\n } else {\n nativeEl.value = 'first';\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-ionic-zone-components.mjs","sources":["../../../projects/ngx-ionic-zone/components/help-icon/help-icon.component.ts","../../../projects/ngx-ionic-zone/components/ngx-ionic-zone-components.ts"],"sourcesContent":["import { CommonModule } from \"@angular/common\";\nimport { Component, Input, OnInit, ViewChild } from \"@angular/core\";\nimport { IonButton, IonIcon, IonAccordionGroup, IonAccordion } from \"@ionic/angular/standalone\";\nimport { addIcons } from 'ionicons';\nimport { helpCircleOutline, closeCircleOutline, informationCircleOutline } from \"ionicons/icons\";\n\n@Component({\n selector: 'help-icon',\n template: `\n <ion-button class=\"help-button button-no-border\" fill=\"clear\" (click)=\"onHelpClicked()\">\n <ion-icon ios=\"help-circle-outline\" md=\"help-circle-outline\" *ngIf=\"!accordionGroup.value\"></ion-icon>\n <ion-icon ios=\"close-circle-outline\" md=\"close-circle-outline\" *ngIf=\"accordionGroup.value\"></ion-icon>\n </ion-button>\n <ion-accordion-group #accordionGroup>\n <ion-accordion value=\"first\">\n <div slot=\"content\" class=\"help-content\">\n <span>\n <ion-icon ios=\"information-circle-outline\" md=\"information-circle-outline\"></ion-icon>\n <!-- <strong>{{'admin.common.alert' | localizedResource | async}}:</strong> -->\n </span>\n <p [innerHTML]=\"text\"></p>\n </div>\n </ion-accordion>\n </ion-accordion-group>\n `,\n styles: [`\n :host {\n display: inline-block;\n width: 100%;\n display:none; /* tmp: hide by default */\n\n --help-icon-right: 10px;\n --help-icon-left: initial;\n --help-icon-caret-left: 35px;\n --help-icon-caret-right: initial;\n --help-icon-content-margin-left: 24px;\n --help-icon-content-margin-right: initial;\n }\n\n .help-button {\n position: absolute;\n right: var(--help-icon-right);\n left: var(--help-icon-left);\n top: 0;\n z-index: 9999;\n height: 36px;\n }\n \n .help-content {\n position: relative;\n margin-top: 10px;\n background: var(--ion-color-primary);\n color: #fff;\n padding: 10px;\n }\n\n .help-content::after {\n content: \"\";\n position: absolute;\n width: 0;\n height: 0;\n border-width: 10px;\n border-style: solid;\n border-color: transparent transparent var(--ion-color-primary) transparent;\n top: -19px;\n left: var(--help-icon-caret-left);\n right: var(--help-icon-caret-right);\n }\n\n .help-content span {\n display: flex;\n align-items: center;\n }\n\n .help-content span ion-icon {\n font-size: 24px;\n }\n\n .help-content p {\n margin-left: var(--help-icon-content-margin-left);\n margin-right: var(--help-icon-content-margin-right);\n }\n `],\n standalone: true,\n imports: [CommonModule, IonButton, IonIcon, IonAccordionGroup, IonAccordion]\n})\nexport class HelpIconComponent implements OnInit {\n @Input() text!: string;\n @ViewChild('accordionGroup', { static: true }) accordionGroup!: IonAccordionGroup;\n\n constructor() {\n addIcons({ helpCircleOutline, closeCircleOutline, informationCircleOutline });\n }\n\n ngOnInit() {\n if (!this.text) {\n this.text = 'Please add some help text';\n }\n }\n\n onHelpClicked() {\n const nativeEl = this.accordionGroup;\n if (nativeEl.value === 'first') {\n nativeEl.value = undefined;\n } else {\n nativeEl.value = 'first';\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;MAsFa,iBAAiB,CAAA;AAI1B,IAAA,WAAA,GAAA;QACI,QAAQ,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,CAAC;IACjF;IAEA,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;AACZ,YAAA,IAAI,CAAC,IAAI,GAAG,2BAA2B;QAC3C;IACJ;IAEA,aAAa,GAAA;AACT,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc;AACpC,QAAA,IAAI,QAAQ,CAAC,KAAK,KAAK,OAAO,EAAE;AAC5B,YAAA,QAAQ,CAAC,KAAK,GAAG,SAAS;QAC9B;aAAO;AACH,YAAA,QAAQ,CAAC,KAAK,GAAG,OAAO;QAC5B;IACJ;8GArBS,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA9EhB;;;;;;;;;;;;;;;;KAgBT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,46BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EA4DS,YAAY,mIAAE,SAAS,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,qJAAE,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAElE,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAhF7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,EAAA,QAAA,EACX;;;;;;;;;;;;;;;;AAgBT,IAAA,CAAA,EAAA,UAAA,EA2DW,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAA,MAAA,EAAA,CAAA,46BAAA,CAAA,EAAA;wDAGnE,IAAI,EAAA,CAAA;sBAAZ;gBAC8C,cAAc,EAAA,CAAA;sBAA5D,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;;ACxFjD;;AAEG;;;;"}
@@ -227,10 +227,10 @@ class DbSqliteService {
227
227
  _dbError(err) {
228
228
  alert('Open database ERROR: ' + JSON.stringify(err));
229
229
  }
230
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DbSqliteService, deps: [{ token: i1.DbServiceConfig }, { token: i1.SchemaService }], target: i0.ɵɵFactoryTarget.Injectable }); }
231
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DbSqliteService }); }
230
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DbSqliteService, deps: [{ token: i1.DbServiceConfig }, { token: i1.SchemaService }], target: i0.ɵɵFactoryTarget.Injectable }); }
231
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DbSqliteService }); }
232
232
  }
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: DbSqliteService, decorators: [{
233
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: DbSqliteService, decorators: [{
234
234
  type: Injectable
235
235
  }], ctorParameters: () => [{ type: i1.DbServiceConfig }, { type: i1.SchemaService }] });
236
236
 
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-ionic-zone-database.mjs","sources":["../../../projects/ngx-ionic-zone/database/db-sql.service.ts","../../../projects/ngx-ionic-zone/database/db.module.ts","../../../projects/ngx-ionic-zone/database/ngx-ionic-zone-database.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { SchemaService, DbService, DbServiceConfig, DbFilter } from 'ngx-universal-zone/database';\n\nimport { CapacitorSQLite, SQLiteConnection, SQLiteDBConnection } from '@capacitor-community/sqlite';\n@Injectable()\nexport class DbSqliteService implements DbService {\n private _dbName: string;\n private _db: SQLiteDBConnection;\n private _isDbInitialized = false;\n private dbInitialized = new Subject<any>();\n\n constructor(\n private config: DbServiceConfig, private schemaSvc: SchemaService\n ) {\n this._dbName = config.dbName;\n\n CapacitorSQLite.deleteDatabase({ database: this._dbName })\n .then(() => {\n\n this.open();\n this.initializeDb();\n });\n\n }\n \n async open() {\n try {\n const sqlite: SQLiteConnection = new SQLiteConnection(CapacitorSQLite);\n const ret = await sqlite.checkConnectionsConsistency();\n const isConnConsistent = ret.result;\n if (isConnConsistent) {\n this._db = await sqlite.retrieveConnection(this._dbName, false);\n } else {\n this._db = await sqlite.createConnection(\n this._dbName,\n false,\n 'no-encryption',\n 1,\n false\n );\n }\n\n await this._db.open();\n // await this._prepareTables();\n // this.dbInitialized.next(this._db);\n this._isDbInitialized = true;\n } catch (error) {\n this._dbError(error);\n }\n }\n\n initializeDb() {\n const delay = 50;\n //workaround: don't proceed unless db is initialized...wait everytime 50ms\n const _self = this;\n let timerId: any = setTimeout(async function request() {\n if (!_self._isDbInitialized) {\n //retry\n timerId = setTimeout(request, delay);\n } else {\n //clear timeout\n clearTimeout(timerId);\n timerId = null;\n\n await _self._prepareTables.call(_self);\n\n // heavy database operations should start from this...\n _self.dbInitialized.next(_self._db);\n }\n }, delay);\n }\n\n getAllRx<T>(store: string, opt?: DbFilter): Observable<T> {\n return new Observable((observer) => {\n this.getAll<T>(store, opt).then((result) => {\n observer.next(result);\n observer.complete();\n }, (error) => {\n observer.error(error);\n });\n });\n }\n\n dbInitialized$ = this.dbInitialized.asObservable();\n get Db() {\n return this._db;\n }\n\n async putLocal(store, data: any): Promise<{ rowsAffected; insertId }> {\n let sql = ``;\n const values: any[] = [];\n\n const total = await this.count(store);\n if (total) {\n //update\n sql = `UPDATE ${store} SET `;\n //columns\n for (let prop in data) {\n if (data.hasOwnProperty(prop)) {\n sql += `${prop}='${data[prop]}',`;\n }\n }\n //remove extra ',' at the end\n sql = sql.substr(0, sql.length - 1);\n } else {\n //insert\n sql = `INSERT INTO ${store} `;\n //columns\n sql += `(`;\n for (let prop in data) {\n if (data.hasOwnProperty(prop)) {\n sql += `${prop},`;\n }\n }\n //remove extra ',' at the end\n sql = sql.substr(0, sql.length - 1);\n sql += `)`;\n\n //values\n sql += ` VALUES (`;\n for (let prop in data) {\n sql += `?,`;\n values.push(data[prop]);\n }\n sql = sql.substr(0, sql.length - 1);\n sql += `)`;\n }\n\n console.log('putLocal executing: ', sql, values);\n const result = await this._db.run(sql, values);\n console.log('putLocal result: ', result);\n\n return {\n rowsAffected: result.changes.changes,\n insertId: result.changes.lastId,\n };\n // this._db.transaction(async (tx) => {\n // const res = await this._executeSql<{ rowsAffected, insertId }>(tx, sql, values);\n // resolve(res);\n // }, (error) => reject(error));\n }\n\n putLocalRx(store, data) {\n return new Observable((observer) => {\n this.putLocal(store, data).then((result) => {\n observer.next(result);\n observer.complete();\n });\n });\n }\n\n async get<T>(store: string, key: any): Promise<T> {\n //get primary key field form schema\n const table: any = this.schemaSvc.schema.stores.filter(\n (s) => s.name === store\n )[0];\n const pk = table.columns.filter((c) => c.isPrimaryKey)[0];\n const pkName = pk.name;\n\n let sql = `SELECT * FROM ${store} WHERE ${pkName} = '${key}' LIMIT 1`;\n const { values } = await this._db.query(sql);\n \n return values[0] as T;\n }\n\n getRx<T>(store: string, key: any): Observable<T> {\n return new Observable((observer) => {\n this.get<T>(store, key).then((result) => {\n observer.next(result);\n observer.complete();\n }, (e) => {\n observer.error(e);\n });\n });\n }\n\n getAll<T>(store: string, opt?: DbFilter): Promise<T> {\n return new Promise(async (resolve, reject) => {\n let sql = `SELECT * FROM ${store}`;\n\n try {\n let data;\n const { values } = await this._db.query(sql);\n resolve(values as any);\n } catch (e) {\n reject(e);\n }\n });\n }\n\n remove(store, key): Promise<any> {\n return new Promise((resolve, reject) => {\n throw 'remove not impleted in db-sql yet';\n });\n }\n\n removeRx(store, key): Observable<any> {\n throw 'remove not impleted in db-sql yet';\n }\n\n removeAll(store) {\n return new Promise((resolve, reject) => {\n throw 'removeAll not impleted in db-sql yet';\n });\n }\n\n removeAllRx(store: string): Observable<any> {\n throw 'removeAllRx not impleted in db-sql yet';\n }\n\n count(store, opts?: { key }): Promise<number> {\n return new Promise(async (resolve, reject) => {\n let sql = `SELECT count(*) AS total FROM ${store} `;\n\n try {\n const { values } = await this._db.query(sql);\n resolve(values[0].total);\n } catch (e) {\n reject(e);\n } });\n }\n\n countRx(store, opts?: { key }) {\n return new Observable<number>((observer) => {\n this.count(store, opts).then((result) => {\n observer.next(result);\n observer.complete();\n }, (error) => observer.error(error));\n });\n }\n\n async deleteDb() {\n }\n\n \n deleteTable(store): Observable<void> {\n throw 'deleteTable not impleted in db-sql yet';\n }\n\n private async _prepareTables() {\n const schemas = this.schemaSvc.schema.stores;\n\n const promises: any[] = [];\n for (let schema of schemas) {\n // let sql = `BEGIN TRANSACTION;`;\n let sql = '';\n\n sql += `CREATE TABLE IF NOT EXISTS ${schema.name} `;\n sql += `(`;\n\n for (let col of schema.columns) {\n //TODO: need to fix primary key\n // const ikPkTypeNumber = col['type'] == 'INTEGER';\n sql += `${col.name}${col.type ? ' ' + col.type : ''}${\n col['isPrimaryKey'] ? ' PRIMARY KEY' : ''\n },`;\n }\n\n //remove extra ',' at the end\n sql = sql.substr(0, sql.length - 1);\n sql += `)`;\n\n // sql += `COMMIT TRANSACTION;`;\n\n const promise = this._db.execute(sql);\n promises.push(promise); \n await Promise.all(promises);\n }\n}\n\n private _dbError(err) {\n alert('Open database ERROR: ' + JSON.stringify(err));\n }\n\n}","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { SchemaService } from 'ngx-universal-zone/database';\nimport { DbService } from 'ngx-universal-zone/database';\nimport { DbSqliteService } from './db-sql.service';\n\nexport function dbSqliteFactory(schemaSvc: SchemaService) {\n const dbConfig = schemaSvc.config;\n return new DbSqliteService(dbConfig, schemaSvc);\n}\n\nexport const provideDbSqlite = (): EnvironmentProviders => {\n const providers: Provider[] = [\n SchemaService,\n {\n provide: DbService,\n useFactory: dbSqliteFactory,\n deps: [SchemaService],\n }\n ];\n\n return makeEnvironmentProviders(providers);\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-ionic-zone-database.mjs","sources":["../../../projects/ngx-ionic-zone/database/db-sql.service.ts","../../../projects/ngx-ionic-zone/database/db.module.ts","../../../projects/ngx-ionic-zone/database/ngx-ionic-zone-database.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\nimport { SchemaService, DbService, DbServiceConfig, DbFilter } from 'ngx-universal-zone/database';\n\nimport { CapacitorSQLite, SQLiteConnection, SQLiteDBConnection } from '@capacitor-community/sqlite';\n@Injectable()\nexport class DbSqliteService implements DbService {\n private _dbName: string;\n private _db: SQLiteDBConnection;\n private _isDbInitialized = false;\n private dbInitialized = new Subject<any>();\n\n constructor(\n private config: DbServiceConfig, private schemaSvc: SchemaService\n ) {\n this._dbName = config.dbName;\n\n CapacitorSQLite.deleteDatabase({ database: this._dbName })\n .then(() => {\n\n this.open();\n this.initializeDb();\n });\n\n }\n \n async open() {\n try {\n const sqlite: SQLiteConnection = new SQLiteConnection(CapacitorSQLite);\n const ret = await sqlite.checkConnectionsConsistency();\n const isConnConsistent = ret.result;\n if (isConnConsistent) {\n this._db = await sqlite.retrieveConnection(this._dbName, false);\n } else {\n this._db = await sqlite.createConnection(\n this._dbName,\n false,\n 'no-encryption',\n 1,\n false\n );\n }\n\n await this._db.open();\n // await this._prepareTables();\n // this.dbInitialized.next(this._db);\n this._isDbInitialized = true;\n } catch (error) {\n this._dbError(error);\n }\n }\n\n initializeDb() {\n const delay = 50;\n //workaround: don't proceed unless db is initialized...wait everytime 50ms\n const _self = this;\n let timerId: any = setTimeout(async function request() {\n if (!_self._isDbInitialized) {\n //retry\n timerId = setTimeout(request, delay);\n } else {\n //clear timeout\n clearTimeout(timerId);\n timerId = null;\n\n await _self._prepareTables.call(_self);\n\n // heavy database operations should start from this...\n _self.dbInitialized.next(_self._db);\n }\n }, delay);\n }\n\n getAllRx<T>(store: string, opt?: DbFilter): Observable<T> {\n return new Observable((observer) => {\n this.getAll<T>(store, opt).then((result) => {\n observer.next(result);\n observer.complete();\n }, (error) => {\n observer.error(error);\n });\n });\n }\n\n dbInitialized$ = this.dbInitialized.asObservable();\n get Db() {\n return this._db;\n }\n\n async putLocal(store, data: any): Promise<{ rowsAffected; insertId }> {\n let sql = ``;\n const values: any[] = [];\n\n const total = await this.count(store);\n if (total) {\n //update\n sql = `UPDATE ${store} SET `;\n //columns\n for (let prop in data) {\n if (data.hasOwnProperty(prop)) {\n sql += `${prop}='${data[prop]}',`;\n }\n }\n //remove extra ',' at the end\n sql = sql.substr(0, sql.length - 1);\n } else {\n //insert\n sql = `INSERT INTO ${store} `;\n //columns\n sql += `(`;\n for (let prop in data) {\n if (data.hasOwnProperty(prop)) {\n sql += `${prop},`;\n }\n }\n //remove extra ',' at the end\n sql = sql.substr(0, sql.length - 1);\n sql += `)`;\n\n //values\n sql += ` VALUES (`;\n for (let prop in data) {\n sql += `?,`;\n values.push(data[prop]);\n }\n sql = sql.substr(0, sql.length - 1);\n sql += `)`;\n }\n\n console.log('putLocal executing: ', sql, values);\n const result = await this._db.run(sql, values);\n console.log('putLocal result: ', result);\n\n return {\n rowsAffected: result.changes.changes,\n insertId: result.changes.lastId,\n };\n // this._db.transaction(async (tx) => {\n // const res = await this._executeSql<{ rowsAffected, insertId }>(tx, sql, values);\n // resolve(res);\n // }, (error) => reject(error));\n }\n\n putLocalRx(store, data) {\n return new Observable((observer) => {\n this.putLocal(store, data).then((result) => {\n observer.next(result);\n observer.complete();\n });\n });\n }\n\n async get<T>(store: string, key: any): Promise<T> {\n //get primary key field form schema\n const table: any = this.schemaSvc.schema.stores.filter(\n (s) => s.name === store\n )[0];\n const pk = table.columns.filter((c) => c.isPrimaryKey)[0];\n const pkName = pk.name;\n\n let sql = `SELECT * FROM ${store} WHERE ${pkName} = '${key}' LIMIT 1`;\n const { values } = await this._db.query(sql);\n \n return values[0] as T;\n }\n\n getRx<T>(store: string, key: any): Observable<T> {\n return new Observable((observer) => {\n this.get<T>(store, key).then((result) => {\n observer.next(result);\n observer.complete();\n }, (e) => {\n observer.error(e);\n });\n });\n }\n\n getAll<T>(store: string, opt?: DbFilter): Promise<T> {\n return new Promise(async (resolve, reject) => {\n let sql = `SELECT * FROM ${store}`;\n\n try {\n let data;\n const { values } = await this._db.query(sql);\n resolve(values as any);\n } catch (e) {\n reject(e);\n }\n });\n }\n\n remove(store, key): Promise<any> {\n return new Promise((resolve, reject) => {\n throw 'remove not impleted in db-sql yet';\n });\n }\n\n removeRx(store, key): Observable<any> {\n throw 'remove not impleted in db-sql yet';\n }\n\n removeAll(store) {\n return new Promise((resolve, reject) => {\n throw 'removeAll not impleted in db-sql yet';\n });\n }\n\n removeAllRx(store: string): Observable<any> {\n throw 'removeAllRx not impleted in db-sql yet';\n }\n\n count(store, opts?: { key }): Promise<number> {\n return new Promise(async (resolve, reject) => {\n let sql = `SELECT count(*) AS total FROM ${store} `;\n\n try {\n const { values } = await this._db.query(sql);\n resolve(values[0].total);\n } catch (e) {\n reject(e);\n } });\n }\n\n countRx(store, opts?: { key }) {\n return new Observable<number>((observer) => {\n this.count(store, opts).then((result) => {\n observer.next(result);\n observer.complete();\n }, (error) => observer.error(error));\n });\n }\n\n async deleteDb() {\n }\n\n \n deleteTable(store): Observable<void> {\n throw 'deleteTable not impleted in db-sql yet';\n }\n\n private async _prepareTables() {\n const schemas = this.schemaSvc.schema.stores;\n\n const promises: any[] = [];\n for (let schema of schemas) {\n // let sql = `BEGIN TRANSACTION;`;\n let sql = '';\n\n sql += `CREATE TABLE IF NOT EXISTS ${schema.name} `;\n sql += `(`;\n\n for (let col of schema.columns) {\n //TODO: need to fix primary key\n // const ikPkTypeNumber = col['type'] == 'INTEGER';\n sql += `${col.name}${col.type ? ' ' + col.type : ''}${\n col['isPrimaryKey'] ? ' PRIMARY KEY' : ''\n },`;\n }\n\n //remove extra ',' at the end\n sql = sql.substr(0, sql.length - 1);\n sql += `)`;\n\n // sql += `COMMIT TRANSACTION;`;\n\n const promise = this._db.execute(sql);\n promises.push(promise); \n await Promise.all(promises);\n }\n}\n\n private _dbError(err) {\n alert('Open database ERROR: ' + JSON.stringify(err));\n }\n\n}","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { SchemaService } from 'ngx-universal-zone/database';\nimport { DbService } from 'ngx-universal-zone/database';\nimport { DbSqliteService } from './db-sql.service';\n\nexport function dbSqliteFactory(schemaSvc: SchemaService) {\n const dbConfig = schemaSvc.config;\n return new DbSqliteService(dbConfig, schemaSvc);\n}\n\nexport const provideDbSqlite = (): EnvironmentProviders => {\n const providers: Provider[] = [\n SchemaService,\n {\n provide: DbService,\n useFactory: dbSqliteFactory,\n deps: [SchemaService],\n }\n ];\n\n return makeEnvironmentProviders(providers);\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAOa,eAAe,CAAA;IAM1B,WAAA,CACU,MAAuB,EAAU,SAAwB,EAAA;QAAzD,IAAA,CAAA,MAAM,GAAN,MAAM;QAA2B,IAAA,CAAA,SAAS,GAAT,SAAS;QAJ5C,IAAA,CAAA,gBAAgB,GAAG,KAAK;AACxB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAO;AA0E1C,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;AArEhD,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM;QAE5B,eAAe,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE;aACxD,IAAI,CAAC,MAAK;YAET,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,YAAY,EAAE;AACrB,QAAA,CAAC,CAAC;IAEJ;AAEA,IAAA,MAAM,IAAI,GAAA;AACR,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAqB,IAAI,gBAAgB,CAAC,eAAe,CAAC;AACtE,YAAA,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,2BAA2B,EAAE;AACtD,YAAA,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM;YACnC,IAAI,gBAAgB,EAAE;AACpB,gBAAA,IAAI,CAAC,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;YACjE;iBAAO;gBACL,IAAI,CAAC,GAAG,GAAG,MAAM,MAAM,CAAC,gBAAgB,CACtC,IAAI,CAAC,OAAO,EACZ,KAAK,EACL,eAAe,EACf,CAAC,EACD,KAAK,CACN;YACH;AAEA,YAAA,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;;;AAGrB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;QAC9B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACtB;IACF;IAEA,YAAY,GAAA;QACV,MAAM,KAAK,GAAG,EAAE;;QAEhB,MAAM,KAAK,GAAG,IAAI;AAClB,QAAA,IAAI,OAAO,GAAQ,UAAU,CAAC,eAAe,OAAO,GAAA;AAClD,YAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;;AAE3B,gBAAA,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC;YACtC;iBAAO;;gBAEL,YAAY,CAAC,OAAO,CAAC;gBACrB,OAAO,GAAG,IAAI;gBAEd,MAAM,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;;gBAGtC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YACrC;QACF,CAAC,EAAE,KAAK,CAAC;IACX;IAEA,QAAQ,CAAI,KAAa,EAAE,GAAc,EAAA;AACvC,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ,KAAI;AACjC,YAAA,IAAI,CAAC,MAAM,CAAI,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;AACzC,gBAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACrB,QAAQ,CAAC,QAAQ,EAAE;AACrB,YAAA,CAAC,EAAE,CAAC,KAAK,KAAI;AACX,gBAAA,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC;AACvB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAGA,IAAA,IAAI,EAAE,GAAA;QACJ,OAAO,IAAI,CAAC,GAAG;IACjB;AAEA,IAAA,MAAM,QAAQ,CAAC,KAAK,EAAE,IAAS,EAAA;QAC7B,IAAI,GAAG,GAAG,CAAA,CAAE;QACZ,MAAM,MAAM,GAAU,EAAE;QAExB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACrC,IAAI,KAAK,EAAE;;AAET,YAAA,GAAG,GAAG,CAAA,OAAA,EAAU,KAAK,CAAA,KAAA,CAAO;;AAE5B,YAAA,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;AACrB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;oBAC7B,GAAG,IAAI,GAAG,IAAI,CAAA,EAAA,EAAK,IAAI,CAAC,IAAI,CAAC,CAAA,EAAA,CAAI;gBACnC;YACF;;AAEA,YAAA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QACrC;aAAO;;AAEL,YAAA,GAAG,GAAG,CAAA,YAAA,EAAe,KAAK,CAAA,CAAA,CAAG;;YAE7B,GAAG,IAAI,GAAG;AACV,YAAA,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;AACrB,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAC7B,oBAAA,GAAG,IAAI,CAAA,EAAG,IAAI,CAAA,CAAA,CAAG;gBACnB;YACF;;AAEA,YAAA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC,GAAG,IAAI,GAAG;;YAGV,GAAG,IAAI,WAAW;AAClB,YAAA,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE;gBACrB,GAAG,IAAI,IAAI;gBACX,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB;AACA,YAAA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC,GAAG,IAAI,GAAG;QACZ;QAEA,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,GAAG,EAAE,MAAM,CAAC;AAChD,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC;AAC9C,QAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,CAAC;QAExC,OAAO;AACL,YAAA,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;AACpC,YAAA,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;SAChC;;;;;IAKH;IAEA,UAAU,CAAC,KAAK,EAAE,IAAI,EAAA;AACpB,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ,KAAI;AACjC,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;AACzC,gBAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACrB,QAAQ,CAAC,QAAQ,EAAE;AACrB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,MAAM,GAAG,CAAI,KAAa,EAAE,GAAQ,EAAA;;QAEhC,MAAM,KAAK,GAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CACpD,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CACxB,CAAC,CAAC,CAAC;QACJ,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACzD,QAAA,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI;QAEtB,IAAI,GAAG,GAAG,CAAA,cAAA,EAAiB,KAAK,UAAU,MAAM,CAAA,IAAA,EAAO,GAAG,CAAA,SAAA,CAAW;AACrE,QAAA,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;AAE5C,QAAA,OAAO,MAAM,CAAC,CAAC,CAAM;IACzB;IAEA,KAAK,CAAI,KAAa,EAAE,GAAQ,EAAA;AAC9B,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ,KAAI;AACjC,YAAA,IAAI,CAAC,GAAG,CAAI,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;AACtC,gBAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACrB,QAAQ,CAAC,QAAQ,EAAE;AACrB,YAAA,CAAC,EAAE,CAAC,CAAC,KAAI;AACP,gBAAA,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACnB,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,CAAI,KAAa,EAAE,GAAc,EAAA;QACrC,OAAO,IAAI,OAAO,CAAC,OAAO,OAAO,EAAE,MAAM,KAAI;AAC3C,YAAA,IAAI,GAAG,GAAG,CAAA,cAAA,EAAiB,KAAK,EAAE;AAElC,YAAA,IAAI;AACF,gBAAA,IAAI,IAAI;AACR,gBAAA,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC5C,OAAO,CAAC,MAAa,CAAC;YACxB;YAAE,OAAO,CAAC,EAAE;gBACV,MAAM,CAAC,CAAC,CAAC;YACX;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,MAAM,CAAC,KAAK,EAAE,GAAG,EAAA;QACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,MAAM,mCAAmC;AAC3C,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAA;AACjB,QAAA,MAAM,mCAAmC;IAC3C;AAEA,IAAA,SAAS,CAAC,KAAK,EAAA;QACb,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,YAAA,MAAM,sCAAsC;AAC9C,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,MAAM,wCAAwC;IAChD;IAEA,KAAK,CAAC,KAAK,EAAE,IAAc,EAAA;QACzB,OAAO,IAAI,OAAO,CAAC,OAAO,OAAO,EAAE,MAAM,KAAI;AAC3C,YAAA,IAAI,GAAG,GAAG,CAAA,8BAAA,EAAiC,KAAK,GAAG;AAEnD,YAAA,IAAI;AACF,gBAAA,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC5C,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC1B;YAAE,OAAO,CAAC,EAAE;gBACV,MAAM,CAAC,CAAC,CAAC;YACX;AAAK,QAAA,CAAC,CAAC;IACX;IAEA,OAAO,CAAC,KAAK,EAAE,IAAc,EAAA;AAC3B,QAAA,OAAO,IAAI,UAAU,CAAS,CAAC,QAAQ,KAAI;AACzC,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;AACtC,gBAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;gBACrB,QAAQ,CAAC,QAAQ,EAAE;AACrB,YAAA,CAAC,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,MAAM,QAAQ,GAAA;IACd;AAGA,IAAA,WAAW,CAAC,KAAK,EAAA;AACf,QAAA,MAAM,wCAAwC;IAChD;AAEQ,IAAA,MAAM,cAAc,GAAA;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM;QAE5C,MAAM,QAAQ,GAAU,EAAE;AAC1B,QAAA,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE;;YAE1B,IAAI,GAAG,GAAG,EAAE;AAEZ,YAAA,GAAG,IAAI,CAAA,2BAAA,EAA8B,MAAM,CAAC,IAAI,GAAG;YACnD,GAAG,IAAI,GAAG;AAEV,YAAA,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE;;;AAG9B,gBAAA,GAAG,IAAI,CAAA,EAAG,GAAG,CAAC,IAAI,CAAA,EAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,CAAA,EACjD,GAAG,CAAC,cAAc,CAAC,GAAG,cAAc,GAAG,EACzC,GAAG;YACL;;AAGA,YAAA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YACnC,GAAG,IAAI,GAAG;;YAIV,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC;AACrC,YAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACtB,YAAA,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QACjC;IACF;AAEU,IAAA,QAAQ,CAAC,GAAG,EAAA;QAClB,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtD;8GA3QW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAf,eAAe,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;ACDK,SAAU,eAAe,CAAC,SAAwB,EAAA;AACtD,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM;AACjC,IAAA,OAAO,IAAI,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC;AACjD;AAEO,MAAM,eAAe,GAAG,MAA2B;AACxD,IAAA,MAAM,SAAS,GAAe;QAC5B,aAAa;AACb,QAAA;AACE,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,CAAC,aAAa,CAAC;AACtB;KACF;AAED,IAAA,OAAO,wBAAwB,CAAC,SAAS,CAAC;AAC5C;;ACrBA;;AAEG;;;;"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, Inject } from '@angular/core';
2
+ import { Inject, Injectable } from '@angular/core';
3
3
  import { Subject, BehaviorSubject, distinctUntilChanged } from 'rxjs';
4
4
  import { Network } from '@capacitor/network';
5
5
  import { BaseHttpService, APP_CONFIG_TOKEN } from 'ngx-ionic-zone';
@@ -17,10 +17,10 @@ class NetworkService extends BaseHttpService {
17
17
  this.statusSubject.next(status.connected);
18
18
  });
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NetworkService, deps: [{ token: APP_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NetworkService, providedIn: 'root' }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: NetworkService, deps: [{ token: APP_CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable }); }
21
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: NetworkService, providedIn: 'root' }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NetworkService, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: NetworkService, decorators: [{
24
24
  type: Injectable,
25
25
  args: [{
26
26
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-ionic-zone-network.mjs","sources":["../../../projects/ngx-ionic-zone/network/network.service.ts","../../../projects/ngx-ionic-zone/network/ngx-ionic-zone-network.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\r\n\r\nimport { BehaviorSubject, distinctUntilChanged, Observable, Subject } from \"rxjs\";\r\nimport { Network } from \"@capacitor/network\";\r\n\r\nimport { APP_CONFIG_TOKEN, BaseHttpService, IAppConfig } from \"ngx-ionic-zone\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NetworkService extends BaseHttpService {\r\n private ngDestroy = new Subject<void>();\r\n \r\n connected$: Observable<boolean>;\r\n statusSubject = new BehaviorSubject<boolean>(true);\r\n\r\n constructor(@Inject(APP_CONFIG_TOKEN) private appConfig: IAppConfig) {\r\n super();\r\n\r\n Network.getStatus().then((status) =>\r\n this.statusSubject.next(status.connected)\r\n );\r\n\r\n this.connected$ = this.statusSubject.asObservable()\r\n .pipe(distinctUntilChanged());\r\n\r\n Network.addListener(\"networkStatusChange\", (status) => {\r\n this.statusSubject.next(status.connected);\r\n });\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAUM,MAAO,cAAe,SAAQ,eAAe,CAAA;AAMjD,IAAA,WAAA,CAA8C,SAAqB,EAAA;AACjE,QAAA,KAAK,EAAE;QADqC,IAAS,CAAA,SAAA,GAAT,SAAS;AAL/C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ;AAGvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC;QAKhD,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAC1C;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY;AAChD,aAAA,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE7B,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,MAAM,KAAI;YACpD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC3C,SAAC,CAAC;;AAlBO,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAML,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AANzB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;0BAOc,MAAM;2BAAC,gBAAgB;;;AChBtC;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-ionic-zone-network.mjs","sources":["../../../projects/ngx-ionic-zone/network/network.service.ts","../../../projects/ngx-ionic-zone/network/ngx-ionic-zone-network.ts"],"sourcesContent":["import { Inject, Injectable } from \"@angular/core\";\r\n\r\nimport { BehaviorSubject, distinctUntilChanged, Observable, Subject } from \"rxjs\";\r\nimport { Network } from \"@capacitor/network\";\r\n\r\nimport { APP_CONFIG_TOKEN, BaseHttpService, IAppConfig } from \"ngx-ionic-zone\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NetworkService extends BaseHttpService {\r\n private ngDestroy = new Subject<void>();\r\n \r\n connected$: Observable<boolean>;\r\n statusSubject = new BehaviorSubject<boolean>(true);\r\n\r\n constructor(@Inject(APP_CONFIG_TOKEN) private appConfig: IAppConfig) {\r\n super();\r\n\r\n Network.getStatus().then((status) =>\r\n this.statusSubject.next(status.connected)\r\n );\r\n\r\n this.connected$ = this.statusSubject.asObservable()\r\n .pipe(distinctUntilChanged());\r\n\r\n Network.addListener(\"networkStatusChange\", (status) => {\r\n this.statusSubject.next(status.connected);\r\n });\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAUM,MAAO,cAAe,SAAQ,eAAe,CAAA;AAMjD,IAAA,WAAA,CAA8C,SAAqB,EAAA;AACjE,QAAA,KAAK,EAAE;QADqC,IAAA,CAAA,SAAS,GAAT,SAAS;AAL/C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAQ;AAGvC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC;QAKhD,OAAO,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,KAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAC1C;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY;AAChD,aAAA,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE7B,OAAO,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,MAAM,KAAI;YACpD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC3C,QAAA,CAAC,CAAC;IACJ;AAnBW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAML,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AANzB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;;2FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;0BAOc,MAAM;2BAAC,gBAAgB;;;AChBtC;;AAEG;;;;"}
@@ -120,10 +120,10 @@ class BaseHttpService {
120
120
  break;
121
121
  }
122
122
  }
123
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BaseHttpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
124
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BaseHttpService, providedIn: 'root' }); }
123
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: BaseHttpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
124
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: BaseHttpService, providedIn: 'root' }); }
125
125
  }
126
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BaseHttpService, decorators: [{
126
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: BaseHttpService, decorators: [{
127
127
  type: Injectable,
128
128
  args: [{
129
129
  providedIn: 'root',
@@ -311,10 +311,10 @@ class HapticsService {
311
311
  navigator.vibrate(vibrationPattern);
312
312
  }
313
313
  }
314
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HapticsService, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }
315
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HapticsService, providedIn: 'root' }); }
314
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: HapticsService, deps: [{ token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }
315
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: HapticsService, providedIn: 'root' }); }
316
316
  }
317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HapticsService, decorators: [{
317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: HapticsService, decorators: [{
318
318
  type: Injectable,
319
319
  args: [{
320
320
  providedIn: 'root'
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-ionic-zone.mjs","sources":["../../../projects/ngx-ionic-zone/shared/app-config.ts","../../../projects/ngx-ionic-zone/shared/base-http.service.ts","../../../projects/ngx-ionic-zone/shared/haptics.service.ts","../../../projects/ngx-ionic-zone/shared/uz-ionic.provider.ts","../../../projects/ngx-ionic-zone/public-api.ts","../../../projects/ngx-ionic-zone/ngx-ionic-zone.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const APP_CONFIG_TOKEN = new InjectionToken<IAppConfig>('APP_CONFIG');\r\n\r\nexport interface IAppConfig {\r\n baseUrl: string;\r\n baseApiUrl: string;\r\n ping?: IAppConfigPing;\r\n http?: IAppConfigHttp;\r\n}\r\n\r\nexport interface IAppConfigPing {\r\n url?: string;\r\n interval: number;\r\n}\r\n\r\nexport interface IAppConfigHttp {\r\n useNativeHttp: boolean;\r\n}","import { inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpErrorResponse, HttpContext, HttpContextToken } from '@angular/common/http';\n\n// import { CapacitorHttp } from '@capacitor/core';\n\nimport { BehaviorSubject, catchError, tap, throwError } from 'rxjs';\nimport { APP_CONFIG_TOKEN, IAppConfig } from './app-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BaseHttpService {\n private _httpInProgressRequest = new BehaviorSubject<HttpParams>(null);\n\n protected http: HttpClient;\n protected config: IAppConfig;\n\n httpInProgressRequest$ = this._httpInProgressRequest.asObservable();\n\n constructor() {\n this.http = inject(HttpClient);\n this.config = inject(APP_CONFIG_TOKEN);\n }\n\n protected getDataRx<T>(args: HttpParams) {\n this._httpInProgressRequest.next(args);\n\n if (!args.overrideUrl) {\n args.url = `${this.config.baseApiUrl + args.url}`;\n }\n args.body = args.body || {};\n\n for (let prop in args.body) {\n if (args.body.hasOwnProperty(prop) && args.body[prop]) {\n if (args.url.includes('?')) {\n args.url += '&';\n } else {\n args.url += '?';\n }\n args.url += `${prop}=${args.body[prop]}`;\n }\n }\n\n // if(!this.config.http?.useNativeHttp) {\n let headers = new HttpHeaders();\n for (let prop in args.headers) {\n if (args.headers.hasOwnProperty(prop) && args.headers[prop]) {\n headers = headers.set(prop, args.headers[prop]);\n }\n }\n\n let context = new HttpContext();\n if(args.retryCount != null) {\n context.set(RETRY_COUNT, args.retryCount);\n }\n \n if(args.retryDelay != null) {\n context.set(RETRY_DELAY, args.retryCount);\n }\n \n return this.http.get<T>(args.url, { headers: headers, context: context })\n .pipe(\n tap(() => this._httpInProgressRequest.next(null)),\n catchError((error) => {\n this._httpInProgressRequest.next(null);\n \n //pass error to the caller\n return throwError(() => error);\n }));\n // }\n \n // return new Observable<T>((observer) => {\n // CapacitorHttp.get({\n // url: args.url,\n // headers: args.headers\n // }).then(response => {\n // observer.next(<T>response.data);\n // observer.complete();\n // }).catch(error => {\n // observer.error(error);\n // });\n // });\n }\n\n protected postDataRx<T>(args: HttpParams) {\n this._httpInProgressRequest.next(args);\n\n let newUrl;\n if (!args.overrideUrl) {\n newUrl = `${this.config.baseApiUrl + args.url}`;\n } else {\n newUrl = args.url;\n }\n\n args.url = newUrl;\n\n let context = new HttpContext();\n if(args.retryCount != null) {\n context.set(RETRY_COUNT, args.retryCount);\n }\n\n if(args.retryDelay != null) {\n context.set(RETRY_DELAY, args.retryCount);\n }\n\n console.log('postDataRx', args);\n let body = args.body;\n return this.http.post<T>(args.url, body, { headers: new HttpHeaders(args.headers), context: context })\n .pipe(\n tap(() => this._httpInProgressRequest.next(null)),\n catchError((error) => {\n this._httpInProgressRequest.next(null);\n\n //pass error to the caller\n return throwError(() => error);\n })\n );\n }\n\n protected async handleError(e: HttpErrorResponse, args: HttpParams) {\n switch (e.status) {\n // case 401:\n // const u = await this.userSettingSvc.getCurrentUser();\n // if(u) {\n // //TODO: check for token expiration...\n // //kickout...\n // this.pubsubSvc.publishEvent(UserConstant.EVENT_USER_LOGGEDOUT, { clearCache: true, displayLoginDialog: true });\n // }\n // break;\n default:\n if (!args.errorCallback) {\n let msg;\n //the error might be thrown by e.g a plugin wasn't install properly. In that case text() will not be available\n if (e.message) {\n msg = e.message;\n } else {\n msg = e.error.toString();\n }\n // setTimeout(async () => {\n // await this.helperSvc.alert(msg);\n // });\n } else {\n args.errorCallback(e, args);\n }\n break;\n }\n }\n}\n\nexport interface HttpParams {\n url: string;\n body?: any;\n errorCallback?;\n overrideUrl?: boolean;\n headers?: { [key: string]: string };\n retryCount?: number;\n retryDelay?: number;\n}\n\nexport interface ApiResponse<T> {\n statusCode: number;\n message: any;\n data: T;\n exception: any;\n}\n\n\nexport const RETRY_COUNT = new HttpContextToken(() => 3);\nexport const RETRY_DELAY = new HttpContextToken(() => 5000);","import { Injectable } from '@angular/core';\nimport { Haptics, ImpactStyle, NotificationType } from '@capacitor/haptics';\nimport { Platform } from '@ionic/angular';\n\nexport interface HapticOptions {\n /**\n * Enable or disable haptic feedback\n */\n enabled?: boolean;\n /**\n * Fallback to vibration on unsupported devices\n */\n fallbackToVibration?: boolean;\n}\n\nexport enum HapticPattern {\n Light = 'light',\n Medium = 'medium',\n Heavy = 'heavy',\n Success = 'success',\n Warning = 'warning',\n Error = 'error',\n Selection = 'selection'\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HapticsService {\n private options: HapticOptions = {\n enabled: true,\n fallbackToVibration: true\n };\n\n constructor(private platform: Platform) {}\n\n /**\n * Configure haptic feedback options\n */\n configure(options: Partial<HapticOptions>): void {\n this.options = { ...this.options, ...options };\n }\n\n /**\n * Play haptic feedback based on pattern\n */\n async play(pattern: HapticPattern): Promise<void> {\n if (!this.options.enabled) {\n return;\n }\n\n try {\n switch (pattern) {\n case HapticPattern.Light:\n await Haptics.impact({ style: ImpactStyle.Light });\n break;\n \n case HapticPattern.Medium:\n await Haptics.impact({ style: ImpactStyle.Medium });\n break;\n \n case HapticPattern.Heavy:\n await Haptics.impact({ style: ImpactStyle.Heavy });\n break;\n \n case HapticPattern.Success:\n await Haptics.notification({ type: NotificationType.Success });\n break;\n \n case HapticPattern.Warning:\n await Haptics.notification({ type: NotificationType.Warning });\n break;\n \n case HapticPattern.Error:\n await Haptics.notification({ type: NotificationType.Error });\n break;\n \n case HapticPattern.Selection:\n await Haptics.selectionStart();\n break;\n \n default:\n await Haptics.impact({ style: ImpactStyle.Light });\n }\n } catch (error) {\n console.warn('Haptic feedback failed:', error);\n \n // Fallback to vibration if haptics are not supported\n if (this.options.fallbackToVibration && this.platform.is('mobile')) {\n this.vibrate(pattern);\n }\n }\n }\n\n /**\n * Play product selection haptic feedback\n */\n async light(): Promise<void> {\n await this.play(HapticPattern.Light);\n }\n\n /**\n * Play product add to cart haptic feedback\n */\n async medium(): Promise<void> {\n await this.play(HapticPattern.Medium);\n }\n\n /**\n * Play order submission haptic feedback\n */\n async heavy(): Promise<void> {\n await this.play(HapticPattern.Heavy);\n }\n\n /**\n * Play order success haptic feedback\n */\n async success(): Promise<void> {\n await this.play(HapticPattern.Success);\n }\n\n /**\n * Play order error haptic feedback\n */\n async orderError(): Promise<void> {\n await this.play(HapticPattern.Error);\n }\n\n /**\n * Play button interaction haptic feedback\n */\n async buttonInteraction(): Promise<void> {\n await this.play(HapticPattern.Selection);\n }\n\n /**\n * Play custom haptic pattern\n */\n async customImpact(style: ImpactStyle): Promise<void> {\n if (!this.options.enabled) {\n return;\n }\n\n try {\n await Haptics.impact({ style });\n } catch (error) {\n console.warn('Custom haptic impact failed:', error);\n }\n }\n\n /**\n * Play custom notification haptic\n */\n async customNotification(type: NotificationType): Promise<void> {\n if (!this.options.enabled) {\n return;\n }\n\n try {\n await Haptics.notification({ type });\n } catch (error) {\n console.warn('Custom haptic notification failed:', error);\n }\n }\n\n /**\n * Check if haptics are available on the device\n */\n async isAvailable(): Promise<boolean> {\n try {\n // Try to perform a test haptic\n await Haptics.impact({ style: ImpactStyle.Light });\n return true;\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Disable haptic feedback\n */\n disable(): void {\n this.options.enabled = false;\n }\n\n /**\n * Enable haptic feedback\n */\n enable(): void {\n this.options.enabled = true;\n }\n\n /**\n * Fallback vibration for unsupported devices\n */\n private vibrate(pattern: HapticPattern): void {\n if (!navigator.vibrate) {\n return;\n }\n\n const vibrationPatterns: Record<HapticPattern, number | number[]> = {\n [HapticPattern.Light]: 50,\n [HapticPattern.Medium]: 100,\n [HapticPattern.Heavy]: 200,\n [HapticPattern.Success]: [100, 50, 100],\n [HapticPattern.Warning]: [150, 100, 150],\n [HapticPattern.Error]: [200, 100, 200, 100, 200],\n [HapticPattern.Selection]: 25\n };\n\n const vibrationPattern = vibrationPatterns[pattern];\n if (Array.isArray(vibrationPattern)) {\n navigator.vibrate(vibrationPattern);\n } else {\n navigator.vibrate(vibrationPattern);\n }\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from \"@angular/core\";\n\nimport { HapticsService } from \"./haptics.service\";\n\nexport const provideUniversalZoneIonic = (): EnvironmentProviders => {\n const providers: Provider[] = [\n HapticsService\n ];\n\n return makeEnvironmentProviders(providers);\n};\n","/*\r\n * Public API Surface of ngx-ionic-zone\r\n */\r\n\r\nexport * from './shared/base-http.service';\r\nexport * from './shared/uz-ionic.provider';\r\nexport * from './shared/app-config';\r\nexport * from './shared/haptics.service';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-ionic-zone.mjs","sources":["../../../projects/ngx-ionic-zone/shared/app-config.ts","../../../projects/ngx-ionic-zone/shared/base-http.service.ts","../../../projects/ngx-ionic-zone/shared/haptics.service.ts","../../../projects/ngx-ionic-zone/shared/uz-ionic.provider.ts","../../../projects/ngx-ionic-zone/public-api.ts","../../../projects/ngx-ionic-zone/ngx-ionic-zone.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const APP_CONFIG_TOKEN = new InjectionToken<IAppConfig>('APP_CONFIG');\r\n\r\nexport interface IAppConfig {\r\n baseUrl: string;\r\n baseApiUrl: string;\r\n ping?: IAppConfigPing;\r\n http?: IAppConfigHttp;\r\n}\r\n\r\nexport interface IAppConfigPing {\r\n url?: string;\r\n interval: number;\r\n}\r\n\r\nexport interface IAppConfigHttp {\r\n useNativeHttp: boolean;\r\n}","import { inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpErrorResponse, HttpContext, HttpContextToken } from '@angular/common/http';\n\n// import { CapacitorHttp } from '@capacitor/core';\n\nimport { BehaviorSubject, catchError, tap, throwError } from 'rxjs';\nimport { APP_CONFIG_TOKEN, IAppConfig } from './app-config';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BaseHttpService {\n private _httpInProgressRequest = new BehaviorSubject<HttpParams>(null);\n\n protected http: HttpClient;\n protected config: IAppConfig;\n\n httpInProgressRequest$ = this._httpInProgressRequest.asObservable();\n\n constructor() {\n this.http = inject(HttpClient);\n this.config = inject(APP_CONFIG_TOKEN);\n }\n\n protected getDataRx<T>(args: HttpParams) {\n this._httpInProgressRequest.next(args);\n\n if (!args.overrideUrl) {\n args.url = `${this.config.baseApiUrl + args.url}`;\n }\n args.body = args.body || {};\n\n for (let prop in args.body) {\n if (args.body.hasOwnProperty(prop) && args.body[prop]) {\n if (args.url.includes('?')) {\n args.url += '&';\n } else {\n args.url += '?';\n }\n args.url += `${prop}=${args.body[prop]}`;\n }\n }\n\n // if(!this.config.http?.useNativeHttp) {\n let headers = new HttpHeaders();\n for (let prop in args.headers) {\n if (args.headers.hasOwnProperty(prop) && args.headers[prop]) {\n headers = headers.set(prop, args.headers[prop]);\n }\n }\n\n let context = new HttpContext();\n if(args.retryCount != null) {\n context.set(RETRY_COUNT, args.retryCount);\n }\n \n if(args.retryDelay != null) {\n context.set(RETRY_DELAY, args.retryCount);\n }\n \n return this.http.get<T>(args.url, { headers: headers, context: context })\n .pipe(\n tap(() => this._httpInProgressRequest.next(null)),\n catchError((error) => {\n this._httpInProgressRequest.next(null);\n \n //pass error to the caller\n return throwError(() => error);\n }));\n // }\n \n // return new Observable<T>((observer) => {\n // CapacitorHttp.get({\n // url: args.url,\n // headers: args.headers\n // }).then(response => {\n // observer.next(<T>response.data);\n // observer.complete();\n // }).catch(error => {\n // observer.error(error);\n // });\n // });\n }\n\n protected postDataRx<T>(args: HttpParams) {\n this._httpInProgressRequest.next(args);\n\n let newUrl;\n if (!args.overrideUrl) {\n newUrl = `${this.config.baseApiUrl + args.url}`;\n } else {\n newUrl = args.url;\n }\n\n args.url = newUrl;\n\n let context = new HttpContext();\n if(args.retryCount != null) {\n context.set(RETRY_COUNT, args.retryCount);\n }\n\n if(args.retryDelay != null) {\n context.set(RETRY_DELAY, args.retryCount);\n }\n\n console.log('postDataRx', args);\n let body = args.body;\n return this.http.post<T>(args.url, body, { headers: new HttpHeaders(args.headers), context: context })\n .pipe(\n tap(() => this._httpInProgressRequest.next(null)),\n catchError((error) => {\n this._httpInProgressRequest.next(null);\n\n //pass error to the caller\n return throwError(() => error);\n })\n );\n }\n\n protected async handleError(e: HttpErrorResponse, args: HttpParams) {\n switch (e.status) {\n // case 401:\n // const u = await this.userSettingSvc.getCurrentUser();\n // if(u) {\n // //TODO: check for token expiration...\n // //kickout...\n // this.pubsubSvc.publishEvent(UserConstant.EVENT_USER_LOGGEDOUT, { clearCache: true, displayLoginDialog: true });\n // }\n // break;\n default:\n if (!args.errorCallback) {\n let msg;\n //the error might be thrown by e.g a plugin wasn't install properly. In that case text() will not be available\n if (e.message) {\n msg = e.message;\n } else {\n msg = e.error.toString();\n }\n // setTimeout(async () => {\n // await this.helperSvc.alert(msg);\n // });\n } else {\n args.errorCallback(e, args);\n }\n break;\n }\n }\n}\n\nexport interface HttpParams {\n url: string;\n body?: any;\n errorCallback?;\n overrideUrl?: boolean;\n headers?: { [key: string]: string };\n retryCount?: number;\n retryDelay?: number;\n}\n\nexport interface ApiResponse<T> {\n statusCode: number;\n message: any;\n data: T;\n exception: any;\n}\n\n\nexport const RETRY_COUNT = new HttpContextToken(() => 3);\nexport const RETRY_DELAY = new HttpContextToken(() => 5000);","import { Injectable } from '@angular/core';\nimport { Haptics, ImpactStyle, NotificationType } from '@capacitor/haptics';\nimport { Platform } from '@ionic/angular';\n\nexport interface HapticOptions {\n /**\n * Enable or disable haptic feedback\n */\n enabled?: boolean;\n /**\n * Fallback to vibration on unsupported devices\n */\n fallbackToVibration?: boolean;\n}\n\nexport enum HapticPattern {\n Light = 'light',\n Medium = 'medium',\n Heavy = 'heavy',\n Success = 'success',\n Warning = 'warning',\n Error = 'error',\n Selection = 'selection'\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HapticsService {\n private options: HapticOptions = {\n enabled: true,\n fallbackToVibration: true\n };\n\n constructor(private platform: Platform) {}\n\n /**\n * Configure haptic feedback options\n */\n configure(options: Partial<HapticOptions>): void {\n this.options = { ...this.options, ...options };\n }\n\n /**\n * Play haptic feedback based on pattern\n */\n async play(pattern: HapticPattern): Promise<void> {\n if (!this.options.enabled) {\n return;\n }\n\n try {\n switch (pattern) {\n case HapticPattern.Light:\n await Haptics.impact({ style: ImpactStyle.Light });\n break;\n \n case HapticPattern.Medium:\n await Haptics.impact({ style: ImpactStyle.Medium });\n break;\n \n case HapticPattern.Heavy:\n await Haptics.impact({ style: ImpactStyle.Heavy });\n break;\n \n case HapticPattern.Success:\n await Haptics.notification({ type: NotificationType.Success });\n break;\n \n case HapticPattern.Warning:\n await Haptics.notification({ type: NotificationType.Warning });\n break;\n \n case HapticPattern.Error:\n await Haptics.notification({ type: NotificationType.Error });\n break;\n \n case HapticPattern.Selection:\n await Haptics.selectionStart();\n break;\n \n default:\n await Haptics.impact({ style: ImpactStyle.Light });\n }\n } catch (error) {\n console.warn('Haptic feedback failed:', error);\n \n // Fallback to vibration if haptics are not supported\n if (this.options.fallbackToVibration && this.platform.is('mobile')) {\n this.vibrate(pattern);\n }\n }\n }\n\n /**\n * Play product selection haptic feedback\n */\n async light(): Promise<void> {\n await this.play(HapticPattern.Light);\n }\n\n /**\n * Play product add to cart haptic feedback\n */\n async medium(): Promise<void> {\n await this.play(HapticPattern.Medium);\n }\n\n /**\n * Play order submission haptic feedback\n */\n async heavy(): Promise<void> {\n await this.play(HapticPattern.Heavy);\n }\n\n /**\n * Play order success haptic feedback\n */\n async success(): Promise<void> {\n await this.play(HapticPattern.Success);\n }\n\n /**\n * Play order error haptic feedback\n */\n async orderError(): Promise<void> {\n await this.play(HapticPattern.Error);\n }\n\n /**\n * Play button interaction haptic feedback\n */\n async buttonInteraction(): Promise<void> {\n await this.play(HapticPattern.Selection);\n }\n\n /**\n * Play custom haptic pattern\n */\n async customImpact(style: ImpactStyle): Promise<void> {\n if (!this.options.enabled) {\n return;\n }\n\n try {\n await Haptics.impact({ style });\n } catch (error) {\n console.warn('Custom haptic impact failed:', error);\n }\n }\n\n /**\n * Play custom notification haptic\n */\n async customNotification(type: NotificationType): Promise<void> {\n if (!this.options.enabled) {\n return;\n }\n\n try {\n await Haptics.notification({ type });\n } catch (error) {\n console.warn('Custom haptic notification failed:', error);\n }\n }\n\n /**\n * Check if haptics are available on the device\n */\n async isAvailable(): Promise<boolean> {\n try {\n // Try to perform a test haptic\n await Haptics.impact({ style: ImpactStyle.Light });\n return true;\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Disable haptic feedback\n */\n disable(): void {\n this.options.enabled = false;\n }\n\n /**\n * Enable haptic feedback\n */\n enable(): void {\n this.options.enabled = true;\n }\n\n /**\n * Fallback vibration for unsupported devices\n */\n private vibrate(pattern: HapticPattern): void {\n if (!navigator.vibrate) {\n return;\n }\n\n const vibrationPatterns: Record<HapticPattern, number | number[]> = {\n [HapticPattern.Light]: 50,\n [HapticPattern.Medium]: 100,\n [HapticPattern.Heavy]: 200,\n [HapticPattern.Success]: [100, 50, 100],\n [HapticPattern.Warning]: [150, 100, 150],\n [HapticPattern.Error]: [200, 100, 200, 100, 200],\n [HapticPattern.Selection]: 25\n };\n\n const vibrationPattern = vibrationPatterns[pattern];\n if (Array.isArray(vibrationPattern)) {\n navigator.vibrate(vibrationPattern);\n } else {\n navigator.vibrate(vibrationPattern);\n }\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from \"@angular/core\";\n\nimport { HapticsService } from \"./haptics.service\";\n\nexport const provideUniversalZoneIonic = (): EnvironmentProviders => {\n const providers: Provider[] = [\n HapticsService\n ];\n\n return makeEnvironmentProviders(providers);\n};\n","/*\r\n * Public API Surface of ngx-ionic-zone\r\n */\r\n\r\nexport * from './shared/base-http.service';\r\nexport * from './shared/uz-ionic.provider';\r\nexport * from './shared/app-config';\r\nexport * from './shared/haptics.service';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,5 +1,141 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="ngx-ionic-zone" />
5
- export * from './public-api';
1
+ import * as rxjs from 'rxjs';
2
+ import { HttpClient, HttpErrorResponse, HttpContextToken } from '@angular/common/http';
3
+ import * as i0 from '@angular/core';
4
+ import { InjectionToken, EnvironmentProviders } from '@angular/core';
5
+ import { ImpactStyle, NotificationType } from '@capacitor/haptics';
6
+ import { Platform } from '@ionic/angular';
7
+
8
+ declare const APP_CONFIG_TOKEN: InjectionToken<IAppConfig>;
9
+ interface IAppConfig {
10
+ baseUrl: string;
11
+ baseApiUrl: string;
12
+ ping?: IAppConfigPing;
13
+ http?: IAppConfigHttp;
14
+ }
15
+ interface IAppConfigPing {
16
+ url?: string;
17
+ interval: number;
18
+ }
19
+ interface IAppConfigHttp {
20
+ useNativeHttp: boolean;
21
+ }
22
+
23
+ declare class BaseHttpService {
24
+ private _httpInProgressRequest;
25
+ protected http: HttpClient;
26
+ protected config: IAppConfig;
27
+ httpInProgressRequest$: rxjs.Observable<HttpParams>;
28
+ constructor();
29
+ protected getDataRx<T>(args: HttpParams): rxjs.Observable<T>;
30
+ protected postDataRx<T>(args: HttpParams): rxjs.Observable<T>;
31
+ protected handleError(e: HttpErrorResponse, args: HttpParams): Promise<void>;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<BaseHttpService, never>;
33
+ static ɵprov: i0.ɵɵInjectableDeclaration<BaseHttpService>;
34
+ }
35
+ interface HttpParams {
36
+ url: string;
37
+ body?: any;
38
+ errorCallback?: any;
39
+ overrideUrl?: boolean;
40
+ headers?: {
41
+ [key: string]: string;
42
+ };
43
+ retryCount?: number;
44
+ retryDelay?: number;
45
+ }
46
+ interface ApiResponse<T> {
47
+ statusCode: number;
48
+ message: any;
49
+ data: T;
50
+ exception: any;
51
+ }
52
+ declare const RETRY_COUNT: HttpContextToken<number>;
53
+ declare const RETRY_DELAY: HttpContextToken<number>;
54
+
55
+ declare const provideUniversalZoneIonic: () => EnvironmentProviders;
56
+
57
+ interface HapticOptions {
58
+ /**
59
+ * Enable or disable haptic feedback
60
+ */
61
+ enabled?: boolean;
62
+ /**
63
+ * Fallback to vibration on unsupported devices
64
+ */
65
+ fallbackToVibration?: boolean;
66
+ }
67
+ declare enum HapticPattern {
68
+ Light = "light",
69
+ Medium = "medium",
70
+ Heavy = "heavy",
71
+ Success = "success",
72
+ Warning = "warning",
73
+ Error = "error",
74
+ Selection = "selection"
75
+ }
76
+ declare class HapticsService {
77
+ private platform;
78
+ private options;
79
+ constructor(platform: Platform);
80
+ /**
81
+ * Configure haptic feedback options
82
+ */
83
+ configure(options: Partial<HapticOptions>): void;
84
+ /**
85
+ * Play haptic feedback based on pattern
86
+ */
87
+ play(pattern: HapticPattern): Promise<void>;
88
+ /**
89
+ * Play product selection haptic feedback
90
+ */
91
+ light(): Promise<void>;
92
+ /**
93
+ * Play product add to cart haptic feedback
94
+ */
95
+ medium(): Promise<void>;
96
+ /**
97
+ * Play order submission haptic feedback
98
+ */
99
+ heavy(): Promise<void>;
100
+ /**
101
+ * Play order success haptic feedback
102
+ */
103
+ success(): Promise<void>;
104
+ /**
105
+ * Play order error haptic feedback
106
+ */
107
+ orderError(): Promise<void>;
108
+ /**
109
+ * Play button interaction haptic feedback
110
+ */
111
+ buttonInteraction(): Promise<void>;
112
+ /**
113
+ * Play custom haptic pattern
114
+ */
115
+ customImpact(style: ImpactStyle): Promise<void>;
116
+ /**
117
+ * Play custom notification haptic
118
+ */
119
+ customNotification(type: NotificationType): Promise<void>;
120
+ /**
121
+ * Check if haptics are available on the device
122
+ */
123
+ isAvailable(): Promise<boolean>;
124
+ /**
125
+ * Disable haptic feedback
126
+ */
127
+ disable(): void;
128
+ /**
129
+ * Enable haptic feedback
130
+ */
131
+ enable(): void;
132
+ /**
133
+ * Fallback vibration for unsupported devices
134
+ */
135
+ private vibrate;
136
+ static ɵfac: i0.ɵɵFactoryDeclaration<HapticsService, never>;
137
+ static ɵprov: i0.ɵɵInjectableDeclaration<HapticsService>;
138
+ }
139
+
140
+ export { APP_CONFIG_TOKEN, BaseHttpService, HapticPattern, HapticsService, RETRY_COUNT, RETRY_DELAY, provideUniversalZoneIonic };
141
+ export type { ApiResponse, HapticOptions, HttpParams, IAppConfig, IAppConfigHttp, IAppConfigPing };
@@ -1 +1,15 @@
1
- export * from './network.service';
1
+ import { Observable, BehaviorSubject } from 'rxjs';
2
+ import { BaseHttpService, IAppConfig } from 'ngx-ionic-zone';
3
+ import * as i0 from '@angular/core';
4
+
5
+ declare class NetworkService extends BaseHttpService {
6
+ private appConfig;
7
+ private ngDestroy;
8
+ connected$: Observable<boolean>;
9
+ statusSubject: BehaviorSubject<boolean>;
10
+ constructor(appConfig: IAppConfig);
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<NetworkService, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<NetworkService>;
13
+ }
14
+
15
+ export { NetworkService };
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "ngx-ionic-zone",
3
- "version": "1.0.7",
3
+ "version": "2.0.1",
4
4
  "peerDependencies": {
5
- "@angular/common": "^19.0.0",
6
- "@angular/core": "^19.0.0",
5
+ "@angular/common": "^20.0.0",
6
+ "@angular/core": "^20.0.0",
7
7
  "@capacitor/network": "^7.0.0",
8
8
  "@capacitor/core": "^7.0.0"
9
9
  },
@@ -1,12 +0,0 @@
1
- import { OnInit } from "@angular/core";
2
- import { IonAccordionGroup } from "@ionic/angular/standalone";
3
- import * as i0 from "@angular/core";
4
- export declare class HelpIconComponent implements OnInit {
5
- text: string;
6
- accordionGroup: IonAccordionGroup;
7
- constructor();
8
- ngOnInit(): void;
9
- onHelpClicked(): void;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<HelpIconComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<HelpIconComponent, "help-icon", never, { "text": { "alias": "text"; "required": false; }; }, {}, never, never, true, never>;
12
- }
@@ -1,42 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { SchemaService, DbService, DbServiceConfig, DbFilter } from 'ngx-universal-zone/database';
3
- import { SQLiteDBConnection } from '@capacitor-community/sqlite';
4
- import * as i0 from "@angular/core";
5
- export declare class DbSqliteService implements DbService {
6
- private config;
7
- private schemaSvc;
8
- private _dbName;
9
- private _db;
10
- private _isDbInitialized;
11
- private dbInitialized;
12
- constructor(config: DbServiceConfig, schemaSvc: SchemaService);
13
- open(): Promise<void>;
14
- initializeDb(): void;
15
- getAllRx<T>(store: string, opt?: DbFilter): Observable<T>;
16
- dbInitialized$: Observable<any>;
17
- get Db(): SQLiteDBConnection;
18
- putLocal(store: any, data: any): Promise<{
19
- rowsAffected: any;
20
- insertId: any;
21
- }>;
22
- putLocalRx(store: any, data: any): Observable<unknown>;
23
- get<T>(store: string, key: any): Promise<T>;
24
- getRx<T>(store: string, key: any): Observable<T>;
25
- getAll<T>(store: string, opt?: DbFilter): Promise<T>;
26
- remove(store: any, key: any): Promise<any>;
27
- removeRx(store: any, key: any): Observable<any>;
28
- removeAll(store: any): Promise<unknown>;
29
- removeAllRx(store: string): Observable<any>;
30
- count(store: any, opts?: {
31
- key: any;
32
- }): Promise<number>;
33
- countRx(store: any, opts?: {
34
- key: any;
35
- }): Observable<number>;
36
- deleteDb(): Promise<void>;
37
- deleteTable(store: any): Observable<void>;
38
- private _prepareTables;
39
- private _dbError;
40
- static ɵfac: i0.ɵɵFactoryDeclaration<DbSqliteService, never>;
41
- static ɵprov: i0.ɵɵInjectableDeclaration<DbSqliteService>;
42
- }
@@ -1,5 +0,0 @@
1
- import { EnvironmentProviders } from '@angular/core';
2
- import { SchemaService } from 'ngx-universal-zone/database';
3
- import { DbSqliteService } from './db-sql.service';
4
- export declare function dbSqliteFactory(schemaSvc: SchemaService): DbSqliteService;
5
- export declare const provideDbSqlite: () => EnvironmentProviders;
@@ -1,12 +0,0 @@
1
- import { BehaviorSubject, Observable } from "rxjs";
2
- import { BaseHttpService, IAppConfig } from "ngx-ionic-zone";
3
- import * as i0 from "@angular/core";
4
- export declare class NetworkService extends BaseHttpService {
5
- private appConfig;
6
- private ngDestroy;
7
- connected$: Observable<boolean>;
8
- statusSubject: BehaviorSubject<boolean>;
9
- constructor(appConfig: IAppConfig);
10
- static ɵfac: i0.ɵɵFactoryDeclaration<NetworkService, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<NetworkService>;
12
- }
package/public-api.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './shared/base-http.service';
2
- export * from './shared/uz-ionic.provider';
3
- export * from './shared/app-config';
4
- export * from './shared/haptics.service';
@@ -1,15 +0,0 @@
1
- import { InjectionToken } from "@angular/core";
2
- export declare const APP_CONFIG_TOKEN: InjectionToken<IAppConfig>;
3
- export interface IAppConfig {
4
- baseUrl: string;
5
- baseApiUrl: string;
6
- ping?: IAppConfigPing;
7
- http?: IAppConfigHttp;
8
- }
9
- export interface IAppConfigPing {
10
- url?: string;
11
- interval: number;
12
- }
13
- export interface IAppConfigHttp {
14
- useNativeHttp: boolean;
15
- }
@@ -1,34 +0,0 @@
1
- import { HttpClient, HttpErrorResponse, HttpContextToken } from '@angular/common/http';
2
- import { IAppConfig } from './app-config';
3
- import * as i0 from "@angular/core";
4
- export declare class BaseHttpService {
5
- private _httpInProgressRequest;
6
- protected http: HttpClient;
7
- protected config: IAppConfig;
8
- httpInProgressRequest$: import("rxjs").Observable<HttpParams>;
9
- constructor();
10
- protected getDataRx<T>(args: HttpParams): import("rxjs").Observable<T>;
11
- protected postDataRx<T>(args: HttpParams): import("rxjs").Observable<T>;
12
- protected handleError(e: HttpErrorResponse, args: HttpParams): Promise<void>;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<BaseHttpService, never>;
14
- static ɵprov: i0.ɵɵInjectableDeclaration<BaseHttpService>;
15
- }
16
- export interface HttpParams {
17
- url: string;
18
- body?: any;
19
- errorCallback?: any;
20
- overrideUrl?: boolean;
21
- headers?: {
22
- [key: string]: string;
23
- };
24
- retryCount?: number;
25
- retryDelay?: number;
26
- }
27
- export interface ApiResponse<T> {
28
- statusCode: number;
29
- message: any;
30
- data: T;
31
- exception: any;
32
- }
33
- export declare const RETRY_COUNT: HttpContextToken<number>;
34
- export declare const RETRY_DELAY: HttpContextToken<number>;
@@ -1,85 +0,0 @@
1
- import { ImpactStyle, NotificationType } from '@capacitor/haptics';
2
- import { Platform } from '@ionic/angular';
3
- import * as i0 from "@angular/core";
4
- export interface HapticOptions {
5
- /**
6
- * Enable or disable haptic feedback
7
- */
8
- enabled?: boolean;
9
- /**
10
- * Fallback to vibration on unsupported devices
11
- */
12
- fallbackToVibration?: boolean;
13
- }
14
- export declare enum HapticPattern {
15
- Light = "light",
16
- Medium = "medium",
17
- Heavy = "heavy",
18
- Success = "success",
19
- Warning = "warning",
20
- Error = "error",
21
- Selection = "selection"
22
- }
23
- export declare class HapticsService {
24
- private platform;
25
- private options;
26
- constructor(platform: Platform);
27
- /**
28
- * Configure haptic feedback options
29
- */
30
- configure(options: Partial<HapticOptions>): void;
31
- /**
32
- * Play haptic feedback based on pattern
33
- */
34
- play(pattern: HapticPattern): Promise<void>;
35
- /**
36
- * Play product selection haptic feedback
37
- */
38
- light(): Promise<void>;
39
- /**
40
- * Play product add to cart haptic feedback
41
- */
42
- medium(): Promise<void>;
43
- /**
44
- * Play order submission haptic feedback
45
- */
46
- heavy(): Promise<void>;
47
- /**
48
- * Play order success haptic feedback
49
- */
50
- success(): Promise<void>;
51
- /**
52
- * Play order error haptic feedback
53
- */
54
- orderError(): Promise<void>;
55
- /**
56
- * Play button interaction haptic feedback
57
- */
58
- buttonInteraction(): Promise<void>;
59
- /**
60
- * Play custom haptic pattern
61
- */
62
- customImpact(style: ImpactStyle): Promise<void>;
63
- /**
64
- * Play custom notification haptic
65
- */
66
- customNotification(type: NotificationType): Promise<void>;
67
- /**
68
- * Check if haptics are available on the device
69
- */
70
- isAvailable(): Promise<boolean>;
71
- /**
72
- * Disable haptic feedback
73
- */
74
- disable(): void;
75
- /**
76
- * Enable haptic feedback
77
- */
78
- enable(): void;
79
- /**
80
- * Fallback vibration for unsupported devices
81
- */
82
- private vibrate;
83
- static ɵfac: i0.ɵɵFactoryDeclaration<HapticsService, never>;
84
- static ɵprov: i0.ɵɵInjectableDeclaration<HapticsService>;
85
- }
@@ -1,2 +0,0 @@
1
- import { EnvironmentProviders } from "@angular/core";
2
- export declare const provideUniversalZoneIonic: () => EnvironmentProviders;