UNPKG

ngx-pwa

Version:

Provides functionality around the progressive web app functionality in angular. Most notably the an approach to cache POST, UPDATE and DELETE requests.

55 lines 8.72 kB
import { CommonModule } from '@angular/common'; import { Component, Inject, Input } from '@angular/core'; import { MatBadgeModule } from '@angular/material/badge'; import { MatButtonModule } from '@angular/material/button'; import { MatDialogModule } from '@angular/material/dialog'; import { NGX_PWA_OFFLINE_SERVICE } from '../../services/offline.service'; import { NgxPwaSynchronizeDialogComponent } from '../synchronize-dialog/synchronize-dialog.component'; import * as i0 from "@angular/core"; import * as i1 from "@angular/material/dialog"; import * as i2 from "@angular/material/button"; import * as i3 from "@angular/material/badge"; /** * Displays a badge with the amount of cached offline request. * Can be clicked to open a dialog to sync cached requests to the server. */ export class NgxPwaSynchronizeBadgeComponent { offlineService; dialog; /** * Configuration data for the Synchronize Dialog. */ synchronizeDialogData; constructor(offlineService, dialog) { this.offlineService = offlineService; this.dialog = dialog; } /** * Opens the dialog for syncing cached requests to the server. */ openSyncDialog() { this.dialog.open(NgxPwaSynchronizeDialogComponent, { autoFocus: false, restoreFocus: false, minWidth: '40%', data: this.synchronizeDialogData }); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPwaSynchronizeBadgeComponent, deps: [{ token: NGX_PWA_OFFLINE_SERVICE }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NgxPwaSynchronizeBadgeComponent, isStandalone: true, selector: "ngx-pwa-synchronize-badge", inputs: { synchronizeDialogData: "synchronizeDialogData" }, ngImport: i0, template: "@if (offlineService.cachedRequests.length) {\n <button type=\"button\" mat-button (click)=\"openSyncDialog()\">\n <i class=\"fas fa-rotate\" matBadgePosition=\"above after\" matBadgeColor=\"warn\" [matBadge]=\"offlineService.cachedRequests.length\"></i>\n </button>\n}", styles: ["i{font-size:22px;height:24px}i:before{display:inline-block;margin-top:2px;text-align:end;transform:scaleX(-1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i3.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "ngmodule", type: MatDialogModule }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NgxPwaSynchronizeBadgeComponent, decorators: [{ type: Component, args: [{ selector: 'ngx-pwa-synchronize-badge', standalone: true, imports: [ CommonModule, MatButtonModule, MatBadgeModule, MatDialogModule ], template: "@if (offlineService.cachedRequests.length) {\n <button type=\"button\" mat-button (click)=\"openSyncDialog()\">\n <i class=\"fas fa-rotate\" matBadgePosition=\"above after\" matBadgeColor=\"warn\" [matBadge]=\"offlineService.cachedRequests.length\"></i>\n </button>\n}", styles: ["i{font-size:22px;height:24px}i:before{display:inline-block;margin-top:2px;text-align:end;transform:scaleX(-1)}\n"] }] }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, args: [NGX_PWA_OFFLINE_SERVICE] }] }, { type: i1.MatDialog }], propDecorators: { synchronizeDialogData: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY2hyb25pemUtYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXB3YS9zcmMvY29tcG9uZW50cy9zeW5jaHJvbml6ZS1iYWRnZS9zeW5jaHJvbml6ZS1iYWRnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcHdhL3NyYy9jb21wb25lbnRzL3N5bmNocm9uaXplLWJhZGdlL3N5bmNocm9uaXplLWJhZGdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHdEUsT0FBTyxFQUFFLHVCQUF1QixFQUF3QixNQUFNLGdDQUFnQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOzs7OztBQUV0Rzs7O0dBR0c7QUFhSCxNQUFNLE9BQU8sK0JBQStCO0lBVTNCO0lBQ1E7SUFUckI7O09BRUc7SUFFSCxxQkFBcUIsQ0FBeUI7SUFFOUMsWUFFYSxjQUFrQyxFQUMxQixNQUFpQjtRQUR6QixtQkFBYyxHQUFkLGNBQWMsQ0FBb0I7UUFDMUIsV0FBTSxHQUFOLE1BQU0sQ0FBVztJQUNsQyxDQUFDO0lBRUw7O09BRUc7SUFDSCxjQUFjO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ1osZ0NBQWdDLEVBQ2hDO1lBQ0ksU0FBUyxFQUFFLEtBQUs7WUFDaEIsWUFBWSxFQUFFLEtBQUs7WUFDbkIsUUFBUSxFQUFFLEtBQUs7WUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtTQUNuQyxDQUNKLENBQUM7SUFDTixDQUFDO3dHQTNCUSwrQkFBK0Isa0JBUzVCLHVCQUF1Qjs0RkFUMUIsK0JBQStCLGlKQzFCNUMsMlJBSUMseUtEZ0JPLFlBQVksOEJBQ1osZUFBZSwyTkFDZixjQUFjLDJQQUNkLGVBQWU7OzRGQUdWLCtCQUErQjtrQkFaM0MsU0FBUzsrQkFDSSwyQkFBMkIsY0FHekIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixjQUFjO3dCQUNkLGVBQWU7cUJBQ2xCOzswQkFXSSxNQUFNOzJCQUFDLHVCQUF1QjtpRUFIbkMscUJBQXFCO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuXG5pbXBvcnQgeyBTeW5jaHJvbml6ZURpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9tb2RlbHMvc3luY2hyb25pemUtZGlhbG9nLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgTkdYX1BXQV9PRkZMSU5FX1NFUlZJQ0UsIE5neFB3YU9mZmxpbmVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb2ZmbGluZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5neFB3YVN5bmNocm9uaXplRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vc3luY2hyb25pemUtZGlhbG9nL3N5bmNocm9uaXplLWRpYWxvZy5jb21wb25lbnQnO1xuXG4vKipcbiAqIERpc3BsYXlzIGEgYmFkZ2Ugd2l0aCB0aGUgYW1vdW50IG9mIGNhY2hlZCBvZmZsaW5lIHJlcXVlc3QuXG4gKiBDYW4gYmUgY2xpY2tlZCB0byBvcGVuIGEgZGlhbG9nIHRvIHN5bmMgY2FjaGVkIHJlcXVlc3RzIHRvIHRoZSBzZXJ2ZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LXB3YS1zeW5jaHJvbml6ZS1iYWRnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N5bmNocm9uaXplLWJhZGdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zeW5jaHJvbml6ZS1iYWRnZS5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0QmFkZ2VNb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4UHdhU3luY2hyb25pemVCYWRnZUNvbXBvbmVudDxPZmZsaW5lU2VydmljZVR5cGUgZXh0ZW5kcyBOZ3hQd2FPZmZsaW5lU2VydmljZT4ge1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBkYXRhIGZvciB0aGUgU3luY2hyb25pemUgRGlhbG9nLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3luY2hyb25pemVEaWFsb2dEYXRhPzogU3luY2hyb25pemVEaWFsb2dEYXRhO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTkdYX1BXQV9PRkZMSU5FX1NFUlZJQ0UpXG4gICAgICAgIHJlYWRvbmx5IG9mZmxpbmVTZXJ2aWNlOiBPZmZsaW5lU2VydmljZVR5cGUsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2dcbiAgICApIHsgfVxuXG4gICAgLyoqXG4gICAgICogT3BlbnMgdGhlIGRpYWxvZyBmb3Igc3luY2luZyBjYWNoZWQgcmVxdWVzdHMgdG8gdGhlIHNlcnZlci5cbiAgICAgKi9cbiAgICBvcGVuU3luY0RpYWxvZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2cub3BlbihcbiAgICAgICAgICAgIE5neFB3YVN5bmNocm9uaXplRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgICAgICAgICAgcmVzdG9yZUZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtaW5XaWR0aDogJzQwJScsXG4gICAgICAgICAgICAgICAgZGF0YTogdGhpcy5zeW5jaHJvbml6ZURpYWxvZ0RhdGFcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG59IiwiQGlmIChvZmZsaW5lU2VydmljZS5jYWNoZWRSZXF1ZXN0cy5sZW5ndGgpIHtcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtYnV0dG9uIChjbGljayk9XCJvcGVuU3luY0RpYWxvZygpXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXJvdGF0ZVwiIG1hdEJhZGdlUG9zaXRpb249XCJhYm92ZSBhZnRlclwiIG1hdEJhZGdlQ29sb3I9XCJ3YXJuXCIgW21hdEJhZGdlXT1cIm9mZmxpbmVTZXJ2aWNlLmNhY2hlZFJlcXVlc3RzLmxlbmd0aFwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbn0iXX0=