ngx-ionic-zone 1.0.3
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 +24 -0
- package/components/help-icon/help-icon.component.d.ts +12 -0
- package/components/index.d.ts +1 -0
- package/fesm2022/ngx-ionic-zone-components.mjs +77 -0
- package/fesm2022/ngx-ionic-zone-components.mjs.map +1 -0
- package/fesm2022/ngx-ionic-zone-network.mjs +38 -0
- package/fesm2022/ngx-ionic-zone-network.mjs.map +1 -0
- package/fesm2022/ngx-ionic-zone.mjs +147 -0
- package/fesm2022/ngx-ionic-zone.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/network/index.d.ts +1 -0
- package/network/network.service.d.ts +12 -0
- package/package.json +33 -0
- package/public-api.d.ts +3 -0
- package/shared/app-config.d.ts +15 -0
- package/shared/base-http.service.d.ts +34 -0
- package/shared/uz-ionic.module.d.ts +2 -0
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
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.
|
|
@@ -0,0 +1,12 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './help-icon/help-icon.component';
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import * as i1 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Component, Input, ViewChild } from '@angular/core';
|
|
5
|
+
import { IonButton, IonIcon, IonAccordionGroup, IonAccordion } from '@ionic/angular/standalone';
|
|
6
|
+
import { addIcons } from 'ionicons';
|
|
7
|
+
import { helpCircleOutline, closeCircleOutline, informationCircleOutline } from 'ionicons/icons';
|
|
8
|
+
|
|
9
|
+
class HelpIconComponent {
|
|
10
|
+
constructor() {
|
|
11
|
+
addIcons({ helpCircleOutline, closeCircleOutline, informationCircleOutline });
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
if (!this.text) {
|
|
15
|
+
this.text = 'Please add some help text';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
onHelpClicked() {
|
|
19
|
+
const nativeEl = this.accordionGroup;
|
|
20
|
+
if (nativeEl.value === 'first') {
|
|
21
|
+
nativeEl.value = undefined;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
nativeEl.value = 'first';
|
|
25
|
+
}
|
|
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: `
|
|
29
|
+
<ion-button class="help-button button-no-border" fill="clear" (click)="onHelpClicked()">
|
|
30
|
+
<ion-icon ios="help-circle-outline" md="help-circle-outline" *ngIf="!accordionGroup.value"></ion-icon>
|
|
31
|
+
<ion-icon ios="close-circle-outline" md="close-circle-outline" *ngIf="accordionGroup.value"></ion-icon>
|
|
32
|
+
</ion-button>
|
|
33
|
+
<ion-accordion-group #accordionGroup>
|
|
34
|
+
<ion-accordion value="first">
|
|
35
|
+
<div slot="content" class="help-content">
|
|
36
|
+
<span>
|
|
37
|
+
<ion-icon ios="information-circle-outline" md="information-circle-outline"></ion-icon>
|
|
38
|
+
<!-- <strong>{{'admin.common.alert' | localizedResource | async}}:</strong> -->
|
|
39
|
+
</span>
|
|
40
|
+
<p [innerHTML]="text"></p>
|
|
41
|
+
</div>
|
|
42
|
+
</ion-accordion>
|
|
43
|
+
</ion-accordion-group>
|
|
44
|
+
`, isInline: true, styles: [":host{display:inline-block;width:100%;--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
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: HelpIconComponent, decorators: [{
|
|
47
|
+
type: Component,
|
|
48
|
+
args: [{ selector: 'help-icon', template: `
|
|
49
|
+
<ion-button class="help-button button-no-border" fill="clear" (click)="onHelpClicked()">
|
|
50
|
+
<ion-icon ios="help-circle-outline" md="help-circle-outline" *ngIf="!accordionGroup.value"></ion-icon>
|
|
51
|
+
<ion-icon ios="close-circle-outline" md="close-circle-outline" *ngIf="accordionGroup.value"></ion-icon>
|
|
52
|
+
</ion-button>
|
|
53
|
+
<ion-accordion-group #accordionGroup>
|
|
54
|
+
<ion-accordion value="first">
|
|
55
|
+
<div slot="content" class="help-content">
|
|
56
|
+
<span>
|
|
57
|
+
<ion-icon ios="information-circle-outline" md="information-circle-outline"></ion-icon>
|
|
58
|
+
<!-- <strong>{{'admin.common.alert' | localizedResource | async}}:</strong> -->
|
|
59
|
+
</span>
|
|
60
|
+
<p [innerHTML]="text"></p>
|
|
61
|
+
</div>
|
|
62
|
+
</ion-accordion>
|
|
63
|
+
</ion-accordion-group>
|
|
64
|
+
`, standalone: true, imports: [CommonModule, IonButton, IonIcon, IonAccordionGroup, IonAccordion], styles: [":host{display:inline-block;width:100%;--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"] }]
|
|
65
|
+
}], ctorParameters: () => [], propDecorators: { text: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], accordionGroup: [{
|
|
68
|
+
type: ViewChild,
|
|
69
|
+
args: ['accordionGroup', { static: true }]
|
|
70
|
+
}] } });
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Generated bundle index. Do not edit.
|
|
74
|
+
*/
|
|
75
|
+
|
|
76
|
+
export { HelpIconComponent };
|
|
77
|
+
//# sourceMappingURL=ngx-ionic-zone-components.mjs.map
|
|
@@ -0,0 +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\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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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, Inject } from '@angular/core';
|
|
3
|
+
import { Subject, BehaviorSubject, distinctUntilChanged } from 'rxjs';
|
|
4
|
+
import { Network } from '@capacitor/network';
|
|
5
|
+
import { BaseHttpService, APP_CONFIG_TOKEN } from 'ngx-ionic-zone';
|
|
6
|
+
|
|
7
|
+
class NetworkService extends BaseHttpService {
|
|
8
|
+
constructor(appConfig) {
|
|
9
|
+
super();
|
|
10
|
+
this.appConfig = appConfig;
|
|
11
|
+
this.ngDestroy = new Subject();
|
|
12
|
+
this.statusSubject = new BehaviorSubject(true);
|
|
13
|
+
Network.getStatus().then((status) => this.statusSubject.next(status.connected));
|
|
14
|
+
this.connected$ = this.statusSubject.asObservable()
|
|
15
|
+
.pipe(distinctUntilChanged());
|
|
16
|
+
Network.addListener("networkStatusChange", (status) => {
|
|
17
|
+
this.statusSubject.next(status.connected);
|
|
18
|
+
});
|
|
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' }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: NetworkService, decorators: [{
|
|
24
|
+
type: Injectable,
|
|
25
|
+
args: [{
|
|
26
|
+
providedIn: 'root'
|
|
27
|
+
}]
|
|
28
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
29
|
+
type: Inject,
|
|
30
|
+
args: [APP_CONFIG_TOKEN]
|
|
31
|
+
}] }] });
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Generated bundle index. Do not edit.
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
export { NetworkService };
|
|
38
|
+
//# sourceMappingURL=ngx-ionic-zone-network.mjs.map
|
|
@@ -0,0 +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;;;;"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, Injectable, makeEnvironmentProviders } from '@angular/core';
|
|
3
|
+
import { HttpClient, HttpHeaders, HttpContext, HttpContextToken } from '@angular/common/http';
|
|
4
|
+
import { BehaviorSubject, tap, catchError, throwError } from 'rxjs';
|
|
5
|
+
|
|
6
|
+
const APP_CONFIG_TOKEN = new InjectionToken('APP_CONFIG');
|
|
7
|
+
|
|
8
|
+
class BaseHttpService {
|
|
9
|
+
constructor() {
|
|
10
|
+
this._httpInProgressRequest = new BehaviorSubject(null);
|
|
11
|
+
this.httpInProgressRequest$ = this._httpInProgressRequest.asObservable();
|
|
12
|
+
this.http = inject(HttpClient);
|
|
13
|
+
this.config = inject(APP_CONFIG_TOKEN);
|
|
14
|
+
}
|
|
15
|
+
getDataRx(args) {
|
|
16
|
+
this._httpInProgressRequest.next(args);
|
|
17
|
+
if (!args.overrideUrl) {
|
|
18
|
+
args.url = `${this.config.baseApiUrl + args.url}`;
|
|
19
|
+
}
|
|
20
|
+
args.body = args.body || {};
|
|
21
|
+
for (let prop in args.body) {
|
|
22
|
+
if (args.body.hasOwnProperty(prop) && args.body[prop]) {
|
|
23
|
+
if (args.url.includes('?')) {
|
|
24
|
+
args.url += '&';
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
args.url += '?';
|
|
28
|
+
}
|
|
29
|
+
args.url += `${prop}=${args.body[prop]}`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
// if(!this.config.http?.useNativeHttp) {
|
|
33
|
+
let headers = new HttpHeaders();
|
|
34
|
+
for (let prop in args.headers) {
|
|
35
|
+
if (args.headers.hasOwnProperty(prop) && args.headers[prop]) {
|
|
36
|
+
headers = headers.set(prop, args.headers[prop]);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
let context = new HttpContext();
|
|
40
|
+
if (args.retryCount != null) {
|
|
41
|
+
context.set(RETRY_COUNT, args.retryCount);
|
|
42
|
+
}
|
|
43
|
+
if (args.retryDelay != null) {
|
|
44
|
+
context.set(RETRY_DELAY, args.retryCount);
|
|
45
|
+
}
|
|
46
|
+
return this.http.get(args.url, { headers: headers, context: context })
|
|
47
|
+
.pipe(tap(() => this._httpInProgressRequest.next(null)), catchError((error) => {
|
|
48
|
+
this._httpInProgressRequest.next(null);
|
|
49
|
+
//pass error to the caller
|
|
50
|
+
return throwError(() => error);
|
|
51
|
+
}));
|
|
52
|
+
// }
|
|
53
|
+
// return new Observable<T>((observer) => {
|
|
54
|
+
// CapacitorHttp.get({
|
|
55
|
+
// url: args.url,
|
|
56
|
+
// headers: args.headers
|
|
57
|
+
// }).then(response => {
|
|
58
|
+
// observer.next(<T>response.data);
|
|
59
|
+
// observer.complete();
|
|
60
|
+
// }).catch(error => {
|
|
61
|
+
// observer.error(error);
|
|
62
|
+
// });
|
|
63
|
+
// });
|
|
64
|
+
}
|
|
65
|
+
postDataRx(args) {
|
|
66
|
+
this._httpInProgressRequest.next(args);
|
|
67
|
+
let newUrl;
|
|
68
|
+
if (!args.overrideUrl) {
|
|
69
|
+
newUrl = `${this.config.baseApiUrl + args.url}`;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
newUrl = args.url;
|
|
73
|
+
}
|
|
74
|
+
args.url = newUrl;
|
|
75
|
+
let context = new HttpContext();
|
|
76
|
+
if (args.retryCount != null) {
|
|
77
|
+
context.set(RETRY_COUNT, args.retryCount);
|
|
78
|
+
}
|
|
79
|
+
if (args.retryDelay != null) {
|
|
80
|
+
context.set(RETRY_DELAY, args.retryCount);
|
|
81
|
+
}
|
|
82
|
+
console.log('postDataRx', args);
|
|
83
|
+
let body = args.body;
|
|
84
|
+
return this.http.post(args.url, body, { headers: new HttpHeaders(args.headers), context: context })
|
|
85
|
+
.pipe(tap(() => this._httpInProgressRequest.next(null)), catchError((error) => {
|
|
86
|
+
this._httpInProgressRequest.next(null);
|
|
87
|
+
//pass error to the caller
|
|
88
|
+
return throwError(() => error);
|
|
89
|
+
}));
|
|
90
|
+
}
|
|
91
|
+
async handleError(e, args) {
|
|
92
|
+
switch (e.status) {
|
|
93
|
+
// case 401:
|
|
94
|
+
// const u = await this.userSettingSvc.getCurrentUser();
|
|
95
|
+
// if(u) {
|
|
96
|
+
// //TODO: check for token expiration...
|
|
97
|
+
// //kickout...
|
|
98
|
+
// this.pubsubSvc.publishEvent(UserConstant.EVENT_USER_LOGGEDOUT, { clearCache: true, displayLoginDialog: true });
|
|
99
|
+
// }
|
|
100
|
+
// break;
|
|
101
|
+
default:
|
|
102
|
+
if (!args.errorCallback) {
|
|
103
|
+
let msg;
|
|
104
|
+
//the error might be thrown by e.g a plugin wasn't install properly. In that case text() will not be available
|
|
105
|
+
if (e.message) {
|
|
106
|
+
msg = e.message;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
msg = e.error.toString();
|
|
110
|
+
}
|
|
111
|
+
// setTimeout(async () => {
|
|
112
|
+
// await this.helperSvc.alert(msg);
|
|
113
|
+
// });
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
args.errorCallback(e, args);
|
|
117
|
+
}
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BaseHttpService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
122
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BaseHttpService, providedIn: 'root' }); }
|
|
123
|
+
}
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.5", ngImport: i0, type: BaseHttpService, decorators: [{
|
|
125
|
+
type: Injectable,
|
|
126
|
+
args: [{
|
|
127
|
+
providedIn: 'root',
|
|
128
|
+
}]
|
|
129
|
+
}], ctorParameters: () => [] });
|
|
130
|
+
const RETRY_COUNT = new HttpContextToken(() => 3);
|
|
131
|
+
const RETRY_DELAY = new HttpContextToken(() => 5000);
|
|
132
|
+
|
|
133
|
+
const provideUniversalZoneIonic = () => {
|
|
134
|
+
const providers = [];
|
|
135
|
+
return makeEnvironmentProviders(providers);
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
/*
|
|
139
|
+
* Public API Surface of ngx-ionic-zone
|
|
140
|
+
*/
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Generated bundle index. Do not edit.
|
|
144
|
+
*/
|
|
145
|
+
|
|
146
|
+
export { APP_CONFIG_TOKEN, BaseHttpService, RETRY_COUNT, RETRY_DELAY, provideUniversalZoneIonic };
|
|
147
|
+
//# sourceMappingURL=ngx-ionic-zone.mjs.map
|
|
@@ -0,0 +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/uz-ionic.module.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 { EnvironmentProviders, makeEnvironmentProviders, Provider } from \"@angular/core\";\r\n\r\nexport const provideUniversalZoneIonic = (): EnvironmentProviders => {\r\n const providers: Provider[] = [\r\n ];\r\n\r\n return makeEnvironmentProviders(providers);\r\n};\r\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.module';\r\nexport * from './shared/app-config';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './network.service';
|
|
@@ -0,0 +1,12 @@
|
|
|
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/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ngx-ionic-zone",
|
|
3
|
+
"version": "1.0.3",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@angular/common": "^19.0.0",
|
|
6
|
+
"@angular/core": "^19.0.0",
|
|
7
|
+
"@capacitor/network": "^6.0.2",
|
|
8
|
+
"@capacitor/core": "6.1.2"
|
|
9
|
+
},
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"tslib": "^2.3.0"
|
|
12
|
+
},
|
|
13
|
+
"sideEffects": false,
|
|
14
|
+
"module": "fesm2022/ngx-ionic-zone.mjs",
|
|
15
|
+
"typings": "index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
"./package.json": {
|
|
18
|
+
"default": "./package.json"
|
|
19
|
+
},
|
|
20
|
+
".": {
|
|
21
|
+
"types": "./index.d.ts",
|
|
22
|
+
"default": "./fesm2022/ngx-ionic-zone.mjs"
|
|
23
|
+
},
|
|
24
|
+
"./components": {
|
|
25
|
+
"types": "./components/index.d.ts",
|
|
26
|
+
"default": "./fesm2022/ngx-ionic-zone-components.mjs"
|
|
27
|
+
},
|
|
28
|
+
"./network": {
|
|
29
|
+
"types": "./network/index.d.ts",
|
|
30
|
+
"default": "./fesm2022/ngx-ionic-zone-network.mjs"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
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>;
|