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 +2 -24
- package/components/index.d.ts +15 -1
- package/database/index.d.ts +49 -2
- package/fesm2022/ngx-ionic-zone-components.mjs +5 -5
- package/fesm2022/ngx-ionic-zone-components.mjs.map +1 -1
- package/fesm2022/ngx-ionic-zone-database.mjs +3 -3
- package/fesm2022/ngx-ionic-zone-database.mjs.map +1 -1
- package/fesm2022/ngx-ionic-zone-network.mjs +4 -4
- package/fesm2022/ngx-ionic-zone-network.mjs.map +1 -1
- package/fesm2022/ngx-ionic-zone.mjs +6 -6
- package/fesm2022/ngx-ionic-zone.mjs.map +1 -1
- package/index.d.ts +141 -5
- package/network/index.d.ts +15 -1
- package/package.json +3 -3
- package/components/help-icon/help-icon.component.d.ts +0 -12
- package/database/db-sql.service.d.ts +0 -42
- package/database/db.module.d.ts +0 -5
- package/network/network.service.d.ts +0 -12
- package/public-api.d.ts +0 -4
- package/shared/app-config.d.ts +0 -15
- package/shared/base-http.service.d.ts +0 -34
- package/shared/haptics.service.d.ts +0 -85
- package/shared/uz-ionic.provider.d.ts +0 -2
package/README.md
CHANGED
|
@@ -1,24 +1,2 @@
|
|
|
1
|
-
#
|
|
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
|
package/components/index.d.ts
CHANGED
|
@@ -1 +1,15 @@
|
|
|
1
|
-
|
|
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 };
|
package/database/index.d.ts
CHANGED
|
@@ -1,2 +1,49 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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 {
|
|
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 {
|
|
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: "
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
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: "
|
|
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":";;;;;;;;MAsFa,iBAAiB,CAAA;AAI1B,IAAA,WAAA,GAAA;QACI,QAAQ,CAAC,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,CAAC
|
|
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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"}
|
|
@@ -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: "
|
|
231
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
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: "
|
|
21
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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,
|
|
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: "
|
|
124
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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: "
|
|
315
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
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: "
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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 };
|
package/network/index.d.ts
CHANGED
|
@@ -1 +1,15 @@
|
|
|
1
|
-
|
|
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": "
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@angular/common": "^
|
|
6
|
-
"@angular/core": "^
|
|
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
|
-
}
|
package/database/db.module.d.ts
DELETED
|
@@ -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
package/shared/app-config.d.ts
DELETED
|
@@ -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
|
-
}
|