barsa-novin-ray-core 2.2.73 → 2.2.74
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/fesm2022/barsa-novin-ray-core.mjs +628 -649
- package/fesm2022/barsa-novin-ray-core.mjs.map +1 -1
- package/lib/abstract-classes/field-base.d.ts +1 -1
- package/lib/abstract-classes/number-base.d.ts +1 -1
- package/lib/date-services/date.service.d.ts +1 -1
- package/lib/directives/base.directive.d.ts +1 -1
- package/lib/dynamic-component/base-view-item-props.d.ts +4 -4
- package/lib/resolvers/login-settings.resolver.d.ts +1 -1
- package/lib/resolvers/tile-group-breadcrumb.resolver.d.ts +1 -1
- package/lib/services/notification.service.d.ts +2 -2
- package/lib/services/portal.service.d.ts +1 -1
- package/package.json +3 -5
- package/esm2022/barsa-novin-ray-core.mjs +0 -5
- package/esm2022/lib/abstract-classes/application-base.mjs +0 -25
- package/esm2022/lib/abstract-classes/barsa-api.mjs +0 -43
- package/esm2022/lib/abstract-classes/base-column-props.mjs +0 -89
- package/esm2022/lib/abstract-classes/base.component.mjs +0 -60
- package/esm2022/lib/abstract-classes/field-base.mjs +0 -244
- package/esm2022/lib/abstract-classes/files-validation-helper.mjs +0 -75
- package/esm2022/lib/abstract-classes/form-base.mjs +0 -164
- package/esm2022/lib/abstract-classes/form-field-report-page.component.mjs +0 -54
- package/esm2022/lib/abstract-classes/form-page-base.mjs +0 -132
- package/esm2022/lib/abstract-classes/form-page.component.mjs +0 -53
- package/esm2022/lib/abstract-classes/form-props.base.mjs +0 -100
- package/esm2022/lib/abstract-classes/form-toolbar-base.mjs +0 -57
- package/esm2022/lib/abstract-classes/index.mjs +0 -25
- package/esm2022/lib/abstract-classes/layout-item-base.mjs +0 -49
- package/esm2022/lib/abstract-classes/layout-panel-base.mjs +0 -68
- package/esm2022/lib/abstract-classes/linear-list-helper.mjs +0 -135
- package/esm2022/lib/abstract-classes/models.mjs +0 -184
- package/esm2022/lib/abstract-classes/module-with-dynamic-components.mjs +0 -2
- package/esm2022/lib/abstract-classes/number-base.mjs +0 -201
- package/esm2022/lib/abstract-classes/page-base.mjs +0 -98
- package/esm2022/lib/abstract-classes/page-with-form-handler-base.mjs +0 -41
- package/esm2022/lib/abstract-classes/report-base.mjs +0 -266
- package/esm2022/lib/abstract-classes/report-item-base.mjs +0 -54
- package/esm2022/lib/abstract-classes/report-view-base.component.mjs +0 -450
- package/esm2022/lib/abstract-classes/system-base.mjs +0 -25
- package/esm2022/lib/abstract-classes/tile-props.mjs +0 -49
- package/esm2022/lib/auth-guard.mjs +0 -48
- package/esm2022/lib/barsa-novin-ray-core-routing.module.mjs +0 -311
- package/esm2022/lib/barsa-novin-ray-core.module.mjs +0 -522
- package/esm2022/lib/base-ulv-setting.component.mjs +0 -46
- package/esm2022/lib/base.module.mjs +0 -28
- package/esm2022/lib/button-loading/button-loading.component.mjs +0 -20
- package/esm2022/lib/constants.mjs +0 -963
- package/esm2022/lib/container.component.mjs +0 -100
- package/esm2022/lib/controllers/base-controller.mjs +0 -9
- package/esm2022/lib/controllers/base-view.mjs +0 -24
- package/esm2022/lib/controllers/index.mjs +0 -4
- package/esm2022/lib/controllers/models.mjs +0 -2
- package/esm2022/lib/custom-route-reuse-strategy.mjs +0 -32
- package/esm2022/lib/date-services/date-hijri.service.mjs +0 -146
- package/esm2022/lib/date-services/date-info.mjs +0 -2
- package/esm2022/lib/date-services/date-miladi.service.mjs +0 -124
- package/esm2022/lib/date-services/date-shamsi.service.mjs +0 -148
- package/esm2022/lib/date-services/date.service.mjs +0 -149
- package/esm2022/lib/date-services/index.mjs +0 -6
- package/esm2022/lib/device.mjs +0 -663
- package/esm2022/lib/directives/absolute-div-body.directive.mjs +0 -46
- package/esm2022/lib/directives/anchor-scroll.directive.mjs +0 -25
- package/esm2022/lib/directives/attr-rtl.directive.mjs +0 -36
- package/esm2022/lib/directives/base.directive.mjs +0 -55
- package/esm2022/lib/directives/body-click.directive.mjs +0 -36
- package/esm2022/lib/directives/column-resizer.directive.mjs +0 -40
- package/esm2022/lib/directives/copy.directive.mjs +0 -60
- package/esm2022/lib/directives/count-down.directive.mjs +0 -109
- package/esm2022/lib/directives/dynamic-command.directive.mjs +0 -43
- package/esm2022/lib/directives/dynamic-style.directive.mjs +0 -66
- package/esm2022/lib/directives/ellapsis-text.directive.mjs +0 -70
- package/esm2022/lib/directives/ellipsify.directive.mjs +0 -73
- package/esm2022/lib/directives/field-binding.directive.mjs +0 -18
- package/esm2022/lib/directives/fill-empty-space.mjs +0 -89
- package/esm2022/lib/directives/form-close.directive.mjs +0 -33
- package/esm2022/lib/directives/img-lazy.directive.mjs +0 -82
- package/esm2022/lib/directives/index.mjs +0 -42
- package/esm2022/lib/directives/intersection-observer.directive.mjs +0 -52
- package/esm2022/lib/directives/items-renderer.directive.mjs +0 -60
- package/esm2022/lib/directives/label-mandatory.directive.mjs +0 -49
- package/esm2022/lib/directives/load-external-files.directive.mjs +0 -38
- package/esm2022/lib/directives/mobile.directive.mjs +0 -30
- package/esm2022/lib/directives/nowraptext.directive.mjs +0 -27
- package/esm2022/lib/directives/numbers-only-input.directive.mjs +0 -27
- package/esm2022/lib/directives/placeHolder.directive.mjs +0 -16
- package/esm2022/lib/directives/prevent-default.directive.mjs +0 -21
- package/esm2022/lib/directives/print-files.directive.mjs +0 -39
- package/esm2022/lib/directives/render-ulv-paging.directive.mjs +0 -81
- package/esm2022/lib/directives/render-ulv-viewer.directive.mjs +0 -76
- package/esm2022/lib/directives/render-ulv.directive.mjs +0 -52
- package/esm2022/lib/directives/route-form-change.directive.mjs +0 -38
- package/esm2022/lib/directives/save-image.directive.mjs +0 -28
- package/esm2022/lib/directives/splide-slider.directive.mjs +0 -113
- package/esm2022/lib/directives/stop-propagation.directive.mjs +0 -21
- package/esm2022/lib/directives/table-resizer.directive.mjs +0 -236
- package/esm2022/lib/directives/ulv-command.directive.mjs +0 -43
- package/esm2022/lib/directives/until-inview.directive.mjs +0 -53
- package/esm2022/lib/directives/webotp.directive.mjs +0 -49
- package/esm2022/lib/directives/workflow-choice-command.directive.mjs +0 -61
- package/esm2022/lib/dynamic-component/base-dynamic.component.mjs +0 -97
- package/esm2022/lib/dynamic-component/base-form-toolbaritem-props.mjs +0 -53
- package/esm2022/lib/dynamic-component/base-item-content-props.mjs +0 -83
- package/esm2022/lib/dynamic-component/base-view-content-props.mjs +0 -27
- package/esm2022/lib/dynamic-component/base-view-item-props.mjs +0 -552
- package/esm2022/lib/dynamic-component/base-view-props.mjs +0 -163
- package/esm2022/lib/dynamic-component/dynamic-form-toolbar-item.component.mjs +0 -38
- package/esm2022/lib/dynamic-component/dynamic-form.component.mjs +0 -69
- package/esm2022/lib/dynamic-component/dynamic-item.component.mjs +0 -78
- package/esm2022/lib/dynamic-component/dynamic-layout.component.mjs +0 -64
- package/esm2022/lib/dynamic-component/index.mjs +0 -11
- package/esm2022/lib/empty-page/empty-page.component.mjs +0 -49
- package/esm2022/lib/empty-page-with-router-and-router-outlet/empty-page-with-router-and-router-outlet.component.mjs +0 -16
- package/esm2022/lib/field-ui/field-ui.component.mjs +0 -149
- package/esm2022/lib/form/form.component.mjs +0 -212
- package/esm2022/lib/form-new/form-new.component.mjs +0 -31
- package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page-routing.module.mjs +0 -54
- package/esm2022/lib/form-page-routing/barsa-sap-ui-form-page.module.mjs +0 -29
- package/esm2022/lib/form-page-routing/constants.mjs +0 -9
- package/esm2022/lib/form-page-routing/index.mjs +0 -3
- package/esm2022/lib/from-intersection-observer.mjs +0 -53
- package/esm2022/lib/global-error-handler.mjs +0 -26
- package/esm2022/lib/injdection-tokens.mjs +0 -8
- package/esm2022/lib/modal-root.component.mjs +0 -34
- package/esm2022/lib/not-found/not-found.component.mjs +0 -16
- package/esm2022/lib/not-internet/not-internet.component.mjs +0 -21
- package/esm2022/lib/pipes/barsa-icon-dict.pipe.mjs +0 -20
- package/esm2022/lib/pipes/bbb-translate.pipe.mjs +0 -36
- package/esm2022/lib/pipes/can-upload.pipe.mjs +0 -27
- package/esm2022/lib/pipes/card-media-size.pipe.mjs +0 -21
- package/esm2022/lib/pipes/column-custom-component.pipe.mjs +0 -41
- package/esm2022/lib/pipes/column-customui.pipe.mjs +0 -33
- package/esm2022/lib/pipes/column-icon.pipe.mjs +0 -23
- package/esm2022/lib/pipes/column-value.pipe.mjs +0 -35
- package/esm2022/lib/pipes/column-valueof-parameters.pipe.mjs +0 -34
- package/esm2022/lib/pipes/combo-row-img.pipe.mjs +0 -17
- package/esm2022/lib/pipes/context-menu.pipe.mjs +0 -41
- package/esm2022/lib/pipes/control-ui.pipe.mjs +0 -32
- package/esm2022/lib/pipes/convert-to-style.pipe.mjs +0 -33
- package/esm2022/lib/pipes/date-time-to-caption.pipe.mjs +0 -35
- package/esm2022/lib/pipes/fileinfo-count.pipe.mjs +0 -21
- package/esm2022/lib/pipes/filter-columns-by-details.pipe.mjs +0 -23
- package/esm2022/lib/pipes/filter-inline-action-list.pipe.mjs +0 -19
- package/esm2022/lib/pipes/filter-string.pipe.mjs +0 -45
- package/esm2022/lib/pipes/filter-tab.pipe.mjs +0 -20
- package/esm2022/lib/pipes/filter-toolbar-control.pipe.mjs +0 -17
- package/esm2022/lib/pipes/filter-workflow-mobile.pipe.mjs +0 -25
- package/esm2022/lib/pipes/filter.pipe.mjs +0 -34
- package/esm2022/lib/pipes/find-column-by-db-name.pipe.mjs +0 -28
- package/esm2022/lib/pipes/find-preview-column.pipe.mjs +0 -20
- package/esm2022/lib/pipes/fiori-icon.pipe.mjs +0 -43
- package/esm2022/lib/pipes/groupby.pipe.mjs +0 -64
- package/esm2022/lib/pipes/header-facet-value.pipe.mjs +0 -23
- package/esm2022/lib/pipes/hide-accept-cancel-buttons.pipe.mjs +0 -24
- package/esm2022/lib/pipes/hide-columns-inmobile.pipe.mjs +0 -23
- package/esm2022/lib/pipes/index.mjs +0 -55
- package/esm2022/lib/pipes/isimage.pipe.mjs +0 -20
- package/esm2022/lib/pipes/list-count.pipe.mjs +0 -18
- package/esm2022/lib/pipes/merge-fields-to-columns.pipe.mjs +0 -43
- package/esm2022/lib/pipes/mo-info-ulv-data.pipe.mjs +0 -59
- package/esm2022/lib/pipes/mo-info-ulv-paging.pipe.mjs +0 -17
- package/esm2022/lib/pipes/mo-report-value-concat.pipe.mjs +0 -36
- package/esm2022/lib/pipes/mo-report-value.pipe.mjs +0 -18
- package/esm2022/lib/pipes/mo-value.pipe.mjs +0 -19
- package/esm2022/lib/pipes/multiple-groupby.pipe.mjs +0 -91
- package/esm2022/lib/pipes/numeral.pipe.mjs +0 -44
- package/esm2022/lib/pipes/picture-field-source.pipe.mjs +0 -23
- package/esm2022/lib/pipes/remove-newline.pipe.mjs +0 -21
- package/esm2022/lib/pipes/replace.pipe.mjs +0 -18
- package/esm2022/lib/pipes/reverse.pipe.mjs +0 -23
- package/esm2022/lib/pipes/rownumber.pipe.mjs +0 -26
- package/esm2022/lib/pipes/sanitize-text.pipe.mjs +0 -21
- package/esm2022/lib/pipes/seperator-fix.pipe.mjs +0 -24
- package/esm2022/lib/pipes/sort.pipe.mjs +0 -49
- package/esm2022/lib/pipes/string-to-number.pipe.mjs +0 -26
- package/esm2022/lib/pipes/th-image-icon.pipe.mjs +0 -22
- package/esm2022/lib/pipes/tlbButtons.pipe.mjs +0 -60
- package/esm2022/lib/pipes/toolbar-settings.pipe.mjs +0 -27
- package/esm2022/lib/pipes/total-summary.pipe.mjs +0 -17
- package/esm2022/lib/pipes/tree-item-isexpanded.pipe.mjs +0 -26
- package/esm2022/lib/pipes/visible-value.pipe.mjs +0 -19
- package/esm2022/lib/portal-page/portal-page.component.mjs +0 -24
- package/esm2022/lib/portal-page/portal-sidebar.component.mjs +0 -37
- package/esm2022/lib/redirect-home-guard.mjs +0 -51
- package/esm2022/lib/redirect-report-navigator-command/redirect-report-navigator-command.component.mjs +0 -12
- package/esm2022/lib/report-container/report-container.component.mjs +0 -63
- package/esm2022/lib/resizable-module/resizable.component.mjs +0 -31
- package/esm2022/lib/resizable-module/resizable.directive.mjs +0 -42
- package/esm2022/lib/resizable-module/resizable.module.mjs +0 -17
- package/esm2022/lib/resolvers/index.mjs +0 -7
- package/esm2022/lib/resolvers/login-settings.resolver.mjs +0 -18
- package/esm2022/lib/resolvers/portal-dynamic-page.resolver.mjs +0 -49
- package/esm2022/lib/resolvers/portal-form-page.resolver.mjs +0 -18
- package/esm2022/lib/resolvers/portal-page.resolver.mjs +0 -30
- package/esm2022/lib/resolvers/portal-report-page.resolver.mjs +0 -37
- package/esm2022/lib/resolvers/tile-group-breadcrumb.resolver.mjs +0 -30
- package/esm2022/lib/root-page/root-page.component.mjs +0 -21
- package/esm2022/lib/root-portal/root-portal.component.mjs +0 -236
- package/esm2022/lib/server-connection-error/server-connection-error.component.mjs +0 -19
- package/esm2022/lib/services/api.service.mjs +0 -63
- package/esm2022/lib/services/audio-recording.service.mjs +0 -95
- package/esm2022/lib/services/barsa-dialog.service.mjs +0 -80
- package/esm2022/lib/services/barsa-storage.service.mjs +0 -78
- package/esm2022/lib/services/breadcrumb.service.mjs +0 -64
- package/esm2022/lib/services/column.service.mjs +0 -20
- package/esm2022/lib/services/container.service.mjs +0 -69
- package/esm2022/lib/services/dynamic-component.service.mjs +0 -55
- package/esm2022/lib/services/form-panel.service.mjs +0 -394
- package/esm2022/lib/services/form.service.mjs +0 -14
- package/esm2022/lib/services/groupby.service.mjs +0 -21
- package/esm2022/lib/services/horizontal-layout.service.mjs +0 -16
- package/esm2022/lib/services/index.mjs +0 -32
- package/esm2022/lib/services/indexeddb.service.mjs +0 -34
- package/esm2022/lib/services/layout-main-content.service.mjs +0 -19
- package/esm2022/lib/services/layout.service.mjs +0 -42
- package/esm2022/lib/services/local-storage.service.mjs +0 -32
- package/esm2022/lib/services/log.service.mjs +0 -50
- package/esm2022/lib/services/network-status.service.mjs +0 -15
- package/esm2022/lib/services/notification-popup.service.mjs +0 -2
- package/esm2022/lib/services/notification-sw.service.mjs +0 -180
- package/esm2022/lib/services/notification.service.mjs +0 -189
- package/esm2022/lib/services/portal.service.mjs +0 -950
- package/esm2022/lib/services/prompt-update.service.mjs +0 -56
- package/esm2022/lib/services/routing.service.mjs +0 -60
- package/esm2022/lib/services/save-scoll-position.service.mjs +0 -29
- package/esm2022/lib/services/service-worker-communication.service.mjs +0 -120
- package/esm2022/lib/services/tabpage.service.mjs +0 -13
- package/esm2022/lib/services/toast.service.mjs +0 -2
- package/esm2022/lib/services/ui.service.mjs +0 -23
- package/esm2022/lib/services/ulvmain.service.mjs +0 -824
- package/esm2022/lib/services/upload.service.mjs +0 -166
- package/esm2022/lib/services/video-recording.service.mjs +0 -115
- package/esm2022/lib/unlimit-session/unlimit-session.component.mjs +0 -40
- package/esm2022/public-api.mjs +0 -42
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class IndexedDbService {
|
|
4
|
-
constructor() {
|
|
5
|
-
this._db = null;
|
|
6
|
-
}
|
|
7
|
-
open(dbName, version) {
|
|
8
|
-
const DBOpenRequest = window.indexedDB.open(dbName, version);
|
|
9
|
-
// Register two event handlers to act on the database being opened successfully, or not
|
|
10
|
-
DBOpenRequest.onerror = (event) => {
|
|
11
|
-
// TODO: Handle error
|
|
12
|
-
};
|
|
13
|
-
DBOpenRequest.onsuccess = (event) => {
|
|
14
|
-
// TODO: Handle success
|
|
15
|
-
this._db = DBOpenRequest.result;
|
|
16
|
-
};
|
|
17
|
-
// This event handles the event whereby a new version of the database needs to be created
|
|
18
|
-
// Either one has not been created before, or a new version number has been submitted via the
|
|
19
|
-
// window.indexedDB.open line above
|
|
20
|
-
// it is only implemented in recent browsers
|
|
21
|
-
DBOpenRequest.onupgradeneeded = (event) => {
|
|
22
|
-
// TODO: Handle upgradeneeded
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
delete(dbName) {
|
|
26
|
-
window.indexedDB.deleteDatabase(dbName);
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IndexedDbService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IndexedDbService }); }
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IndexedDbService, decorators: [{
|
|
32
|
-
type: Injectable
|
|
33
|
-
}], ctorParameters: () => [] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhlZGRiLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL2luZGV4ZWRkYi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFekI7UUFEQSxRQUFHLEdBQXVCLElBQUksQ0FBQztJQUNoQixDQUFDO0lBQ2hCLElBQUksQ0FBQyxNQUFjLEVBQUUsT0FBZTtRQUNoQyxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0QsdUZBQXVGO1FBQ3ZGLGFBQWEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM5QixxQkFBcUI7UUFDekIsQ0FBQyxDQUFDO1FBRUYsYUFBYSxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hDLHVCQUF1QjtZQUN2QixJQUFJLENBQUMsR0FBRyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDcEMsQ0FBQyxDQUFDO1FBQ0YseUZBQXlGO1FBQ3pGLDZGQUE2RjtRQUM3RixtQ0FBbUM7UUFDbkMsNENBQTRDO1FBQzVDLGFBQWEsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUN0Qyw2QkFBNkI7UUFDakMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUNELE1BQU0sQ0FBQyxNQUFNO1FBQ1QsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQzsrR0F4QlEsZ0JBQWdCO21IQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJbmRleGVkRGJTZXJ2aWNlIHtcbiAgICBfZGI6IElEQkRhdGFiYXNlIHwgbnVsbCA9IG51bGw7XG4gICAgY29uc3RydWN0b3IoKSB7fVxuICAgIG9wZW4oZGJOYW1lOiBzdHJpbmcsIHZlcnNpb246IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBEQk9wZW5SZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRiTmFtZSwgdmVyc2lvbik7XG4gICAgICAgIC8vIFJlZ2lzdGVyIHR3byBldmVudCBoYW5kbGVycyB0byBhY3Qgb24gdGhlIGRhdGFiYXNlIGJlaW5nIG9wZW5lZCBzdWNjZXNzZnVsbHksIG9yIG5vdFxuICAgICAgICBEQk9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIFRPRE86IEhhbmRsZSBlcnJvclxuICAgICAgICB9O1xuXG4gICAgICAgIERCT3BlblJlcXVlc3Qub25zdWNjZXNzID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAvLyBUT0RPOiBIYW5kbGUgc3VjY2Vzc1xuICAgICAgICAgICAgdGhpcy5fZGIgPSBEQk9wZW5SZXF1ZXN0LnJlc3VsdDtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gVGhpcyBldmVudCBoYW5kbGVzIHRoZSBldmVudCB3aGVyZWJ5IGEgbmV3IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIG5lZWRzIHRvIGJlIGNyZWF0ZWRcbiAgICAgICAgLy8gRWl0aGVyIG9uZSBoYXMgbm90IGJlZW4gY3JlYXRlZCBiZWZvcmUsIG9yIGEgbmV3IHZlcnNpb24gbnVtYmVyIGhhcyBiZWVuIHN1Ym1pdHRlZCB2aWEgdGhlXG4gICAgICAgIC8vIHdpbmRvdy5pbmRleGVkREIub3BlbiBsaW5lIGFib3ZlXG4gICAgICAgIC8vIGl0IGlzIG9ubHkgaW1wbGVtZW50ZWQgaW4gcmVjZW50IGJyb3dzZXJzXG4gICAgICAgIERCT3BlblJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAvLyBUT0RPOiBIYW5kbGUgdXBncmFkZW5lZWRlZFxuICAgICAgICB9O1xuICAgIH1cbiAgICBkZWxldGUoZGJOYW1lKTogdm9pZCB7XG4gICAgICAgIHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGJOYW1lKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class LayoutMainContentService {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.mainContentHeightSource = new BehaviorSubject(0);
|
|
8
|
-
this.mainContentHeight$ = this.mainContentHeightSource.asObservable().pipe(distinctUntilChanged());
|
|
9
|
-
}
|
|
10
|
-
setMainContentHeight(height) {
|
|
11
|
-
this.mainContentHeightSource.next(height);
|
|
12
|
-
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutMainContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
14
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutMainContentService }); }
|
|
15
|
-
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutMainContentService, decorators: [{
|
|
17
|
-
type: Injectable
|
|
18
|
-
}], ctorParameters: () => [] });
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LW1haW4tY29udGVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9sYXlvdXQtbWFpbi1jb250ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUd0RCxNQUFNLE9BQU8sd0JBQXdCO0lBTWpDO1FBSFEsNEJBQXVCLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFJN0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFDRCxvQkFBb0IsQ0FBQyxNQUFjO1FBQy9CLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQzsrR0FYUSx3QkFBd0I7bUhBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFEcEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTGF5b3V0TWFpbkNvbnRlbnRTZXJ2aWNlIHtcclxuICAgIG1haW5Db250ZW50SGVpZ2h0JDogT2JzZXJ2YWJsZTxudW1iZXI+O1xyXG5cclxuICAgIHByaXZhdGUgbWFpbkNvbnRlbnRIZWlnaHRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XHJcbiAgICBpZDogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMubWFpbkNvbnRlbnRIZWlnaHQkID0gdGhpcy5tYWluQ29udGVudEhlaWdodFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgfVxyXG4gICAgc2V0TWFpbkNvbnRlbnRIZWlnaHQoaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1haW5Db250ZW50SGVpZ2h0U291cmNlLm5leHQoaGVpZ2h0KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject, Subject } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class LayoutService {
|
|
6
|
-
constructor() {
|
|
7
|
-
this.rendered = new BehaviorSubject(false);
|
|
8
|
-
this.maxWidth = new BehaviorSubject(0);
|
|
9
|
-
this.refreshLayoutSource = new Subject();
|
|
10
|
-
this.horizontalSource = new Subject();
|
|
11
|
-
this._listOfHorizontal = [];
|
|
12
|
-
this.rootRendered$ = this.rendered.asObservable();
|
|
13
|
-
this.maxWidth$ = this.maxWidth.asObservable();
|
|
14
|
-
this.refreshLayout$ = this.refreshLayoutSource.asObservable();
|
|
15
|
-
this.horizontal$ = this.horizontalSource.asObservable().pipe(distinctUntilChanged((a, b) => a === b));
|
|
16
|
-
}
|
|
17
|
-
setRendered(val) {
|
|
18
|
-
this.rendered.next(val);
|
|
19
|
-
}
|
|
20
|
-
setMaxWidth(val) {
|
|
21
|
-
if (this.maxWidth.value < val) {
|
|
22
|
-
this.maxWidth.next(val);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
refreshLayout() {
|
|
26
|
-
this.refreshLayoutSource.next();
|
|
27
|
-
}
|
|
28
|
-
addHorizontal(id) {
|
|
29
|
-
this._listOfHorizontal = [...this._listOfHorizontal, id];
|
|
30
|
-
this.horizontalSource.next(this._listOfHorizontal);
|
|
31
|
-
}
|
|
32
|
-
removeHorizontal(id) {
|
|
33
|
-
this._listOfHorizontal = this._listOfHorizontal.filter((c) => c !== id);
|
|
34
|
-
this.horizontalSource.next(this._listOfHorizontal);
|
|
35
|
-
}
|
|
36
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
37
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutService }); }
|
|
38
|
-
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LayoutService, decorators: [{
|
|
40
|
-
type: Injectable
|
|
41
|
-
}], ctorParameters: () => [] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL2xheW91dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3RELE1BQU0sT0FBTyxhQUFhO0lBY3RCO1FBTlEsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQy9DLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUMxQyx3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFTLENBQUM7UUFDeEMsc0JBQWlCLEdBQVUsRUFBRSxDQUFDO1FBR2xDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUNELFdBQVcsQ0FBQyxHQUFZO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxXQUFXLENBQUMsR0FBRztRQUNYLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7SUFDRCxhQUFhO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxhQUFhLENBQUMsRUFBRTtRQUNaLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELGdCQUFnQixDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkQsQ0FBQzsrR0F0Q1EsYUFBYTttSEFBYixhQUFhOzs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMYXlvdXRTZXJ2aWNlIHtcclxuICAgIHJvb3RSZW5kZXJlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBtYXhXaWR0aCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIHJlZnJlc2hMYXlvdXQkOiBPYnNlcnZhYmxlPHZvaWQ+O1xyXG4gICAgaG9yaXpvbnRhbCQ6IE9ic2VydmFibGU8YW55W10+O1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIGlzVGFiOiBib29sZWFuO1xyXG5cclxuICAgIHByaXZhdGUgcmVuZGVyZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAgIHByaXZhdGUgbWF4V2lkdGggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XHJcbiAgICBwcml2YXRlIHJlZnJlc2hMYXlvdXRTb3VyY2UgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgcHJpdmF0ZSBob3Jpem9udGFsU291cmNlID0gbmV3IFN1YmplY3Q8YW55W10+KCk7XHJcbiAgICBwcml2YXRlIF9saXN0T2ZIb3Jpem9udGFsOiBhbnlbXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMucm9vdFJlbmRlcmVkJCA9IHRoaXMucmVuZGVyZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5tYXhXaWR0aCQgPSB0aGlzLm1heFdpZHRoLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgICAgIHRoaXMucmVmcmVzaExheW91dCQgPSB0aGlzLnJlZnJlc2hMYXlvdXRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICAgICAgdGhpcy5ob3Jpem9udGFsJCA9IHRoaXMuaG9yaXpvbnRhbFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhID09PSBiKSk7XHJcbiAgICB9XHJcbiAgICBzZXRSZW5kZXJlZCh2YWw6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVkLm5leHQodmFsKTtcclxuICAgIH1cclxuICAgIHNldE1heFdpZHRoKHZhbCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm1heFdpZHRoLnZhbHVlIDwgdmFsKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWF4V2lkdGgubmV4dCh2YWwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHJlZnJlc2hMYXlvdXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoTGF5b3V0U291cmNlLm5leHQoKTtcclxuICAgIH1cclxuICAgIGFkZEhvcml6b250YWwoaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9saXN0T2ZIb3Jpem9udGFsID0gWy4uLnRoaXMuX2xpc3RPZkhvcml6b250YWwsIGlkXTtcclxuICAgICAgICB0aGlzLmhvcml6b250YWxTb3VyY2UubmV4dCh0aGlzLl9saXN0T2ZIb3Jpem9udGFsKTtcclxuICAgIH1cclxuICAgIHJlbW92ZUhvcml6b250YWwoaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9saXN0T2ZIb3Jpem9udGFsID0gdGhpcy5fbGlzdE9mSG9yaXpvbnRhbC5maWx0ZXIoKGMpID0+IGMgIT09IGlkKTtcclxuICAgICAgICB0aGlzLmhvcml6b250YWxTb3VyY2UubmV4dCh0aGlzLl9saXN0T2ZIb3Jpem9udGFsKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class LocalStorageService {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.localstorage = false;
|
|
6
|
-
}
|
|
7
|
-
setItem(key, value) {
|
|
8
|
-
let valueOfKey = '';
|
|
9
|
-
if (typeof value === 'object' || Array.isArray(value)) {
|
|
10
|
-
valueOfKey = JSON.stringify(value);
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
valueOfKey = value;
|
|
14
|
-
}
|
|
15
|
-
localStorage.setItem(key, valueOfKey);
|
|
16
|
-
}
|
|
17
|
-
getItem(key) {
|
|
18
|
-
return localStorage.getItem(key);
|
|
19
|
-
}
|
|
20
|
-
remove(key) {
|
|
21
|
-
localStorage.removeItem(key);
|
|
22
|
-
}
|
|
23
|
-
clear() {
|
|
24
|
-
localStorage.clear();
|
|
25
|
-
}
|
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
27
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageService }); }
|
|
28
|
-
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageService, decorators: [{
|
|
30
|
-
type: Injectable
|
|
31
|
-
}], ctorParameters: () => [] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9sb2NhbC1zdG9yYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLG1CQUFtQjtJQUU1QjtRQURBLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0lBQ04sQ0FBQztJQUNoQixPQUFPLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDOUIsSUFBSSxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNKLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQztRQUNELFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxPQUFPLENBQUMsR0FBVztRQUNmLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0QsTUFBTSxDQUFDLEdBQVc7UUFDZCxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxLQUFLO1FBQ0QsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pCLENBQUM7K0dBcEJRLG1CQUFtQjttSEFBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSB7XG4gICAgbG9jYWxzdG9yYWdlID0gZmFsc2U7XG4gICAgY29uc3RydWN0b3IoKSB7fVxuICAgIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgbGV0IHZhbHVlT2ZLZXkgPSAnJztcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlT2ZLZXkgPSBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZU9mS2V5ID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZU9mS2V5KTtcbiAgICB9XG4gICAgZ2V0SXRlbShrZXk6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KTtcbiAgICB9XG4gICAgcmVtb3ZlKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XG4gICAgfVxuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
// angular
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class LogService {
|
|
5
|
-
static { this.DEBUG = {
|
|
6
|
-
LEVEL_1: false, // .warn only
|
|
7
|
-
LEVEL_2: false, // .error only
|
|
8
|
-
LEVEL_3: false, // .log + all the above
|
|
9
|
-
LEVEL_4: false, // .log + all the above + info
|
|
10
|
-
LEVEL_5: false // just info (excluding all else)
|
|
11
|
-
}; }
|
|
12
|
-
// info (extra messages like analytics)
|
|
13
|
-
// use LEVEL_5 to see only these
|
|
14
|
-
info(...msg) {
|
|
15
|
-
if (LogService.DEBUG.LEVEL_5 || LogService.DEBUG.LEVEL_4) {
|
|
16
|
-
// extra messages
|
|
17
|
-
/* eslint-disable */
|
|
18
|
-
console.info(msg);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
// debug (standard output)
|
|
22
|
-
debug(...msg) {
|
|
23
|
-
if (LogService.DEBUG.LEVEL_4 || LogService.DEBUG.LEVEL_3) {
|
|
24
|
-
// console.debug does not work on {N} apps... use `log`
|
|
25
|
-
/* eslint-disable */
|
|
26
|
-
console.debug(msg);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
// error
|
|
30
|
-
error(...err) {
|
|
31
|
-
if (LogService.DEBUG.LEVEL_4 || LogService.DEBUG.LEVEL_3 || LogService.DEBUG.LEVEL_2) {
|
|
32
|
-
console.error(err);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
// warn
|
|
36
|
-
warn(...warn) {
|
|
37
|
-
if (LogService.DEBUG.LEVEL_4 || LogService.DEBUG.LEVEL_3 || LogService.DEBUG.LEVEL_1) {
|
|
38
|
-
console.warn(warn);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
42
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LogService, providedIn: 'root' }); }
|
|
43
|
-
}
|
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LogService, decorators: [{
|
|
45
|
-
type: Injectable,
|
|
46
|
-
args: [{
|
|
47
|
-
providedIn: 'root'
|
|
48
|
-
}]
|
|
49
|
-
}] });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL2xvZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFVBQVU7QUFDVixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWEzQyxNQUFNLE9BQU8sVUFBVTthQUNMLFVBQUssR0FBVztRQUMxQixPQUFPLEVBQUUsS0FBSyxFQUFFLGFBQWE7UUFDN0IsT0FBTyxFQUFFLEtBQUssRUFBRSxjQUFjO1FBQzlCLE9BQU8sRUFBRSxLQUFLLEVBQUUsdUJBQXVCO1FBQ3ZDLE9BQU8sRUFBRSxLQUFLLEVBQUUsOEJBQThCO1FBQzlDLE9BQU8sRUFBRSxLQUFLLENBQUMsaUNBQWlDO0tBQ25ELEFBTmtCLENBTWpCO0lBRUYsdUNBQXVDO0lBQ3ZDLGdDQUFnQztJQUN6QixJQUFJLENBQUMsR0FBRyxHQUFlO1FBQzFCLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2RCxpQkFBaUI7WUFDakIsb0JBQW9CO1lBQ3BCLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNMLENBQUM7SUFFRCwwQkFBMEI7SUFDbkIsS0FBSyxDQUFDLEdBQUcsR0FBZTtRQUMzQixJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDdkQsdURBQXVEO1lBQ3ZELG9CQUFvQjtZQUNwQixPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtJQUNELEtBQUssQ0FBQyxHQUFHLEdBQWU7UUFDM0IsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25GLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPO0lBQ0EsSUFBSSxDQUFDLEdBQUcsSUFBZ0I7UUFDM0IsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25GLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7K0dBeENRLFVBQVU7bUhBQVYsVUFBVSxjQUZQLE1BQU07OzRGQUVULFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gYW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElEZWJ1ZyB7XHJcbiAgICBMRVZFTF8xOiBib29sZWFuO1xyXG4gICAgTEVWRUxfMjogYm9vbGVhbjtcclxuICAgIExFVkVMXzM6IGJvb2xlYW47XHJcbiAgICBMRVZFTF80OiBib29sZWFuO1xyXG4gICAgTEVWRUxfNTogYm9vbGVhbjtcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dTZXJ2aWNlIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgREVCVUc6IElEZWJ1ZyA9IHtcclxuICAgICAgICBMRVZFTF8xOiBmYWxzZSwgLy8gLndhcm4gb25seVxyXG4gICAgICAgIExFVkVMXzI6IGZhbHNlLCAvLyAuZXJyb3Igb25seVxyXG4gICAgICAgIExFVkVMXzM6IGZhbHNlLCAvLyAubG9nICsgYWxsIHRoZSBhYm92ZVxyXG4gICAgICAgIExFVkVMXzQ6IGZhbHNlLCAvLyAubG9nICsgYWxsIHRoZSBhYm92ZSArIGluZm9cclxuICAgICAgICBMRVZFTF81OiBmYWxzZSAvLyBqdXN0IGluZm8gKGV4Y2x1ZGluZyBhbGwgZWxzZSlcclxuICAgIH07XHJcblxyXG4gICAgLy8gaW5mbyAoZXh0cmEgbWVzc2FnZXMgbGlrZSBhbmFseXRpY3MpXHJcbiAgICAvLyB1c2UgTEVWRUxfNSB0byBzZWUgb25seSB0aGVzZVxyXG4gICAgcHVibGljIGluZm8oLi4ubXNnOiBBcnJheTxhbnk+KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKExvZ1NlcnZpY2UuREVCVUcuTEVWRUxfNSB8fCBMb2dTZXJ2aWNlLkRFQlVHLkxFVkVMXzQpIHtcclxuICAgICAgICAgICAgLy8gZXh0cmEgbWVzc2FnZXNcclxuICAgICAgICAgICAgLyogZXNsaW50LWRpc2FibGUgKi9cclxuICAgICAgICAgICAgY29uc29sZS5pbmZvKG1zZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGRlYnVnIChzdGFuZGFyZCBvdXRwdXQpXHJcbiAgICBwdWJsaWMgZGVidWcoLi4ubXNnOiBBcnJheTxhbnk+KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKExvZ1NlcnZpY2UuREVCVUcuTEVWRUxfNCB8fCBMb2dTZXJ2aWNlLkRFQlVHLkxFVkVMXzMpIHtcclxuICAgICAgICAgICAgLy8gY29uc29sZS5kZWJ1ZyBkb2VzIG5vdCB3b3JrIG9uIHtOfSBhcHBzLi4uIHVzZSBgbG9nYFxyXG4gICAgICAgICAgICAvKiBlc2xpbnQtZGlzYWJsZSAqL1xyXG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKG1zZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIGVycm9yXHJcbiAgICBwdWJsaWMgZXJyb3IoLi4uZXJyOiBBcnJheTxhbnk+KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKExvZ1NlcnZpY2UuREVCVUcuTEVWRUxfNCB8fCBMb2dTZXJ2aWNlLkRFQlVHLkxFVkVMXzMgfHwgTG9nU2VydmljZS5ERUJVRy5MRVZFTF8yKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gd2FyblxyXG4gICAgcHVibGljIHdhcm4oLi4ud2FybjogQXJyYXk8YW55Pik6IHZvaWQge1xyXG4gICAgICAgIGlmIChMb2dTZXJ2aWNlLkRFQlVHLkxFVkVMXzQgfHwgTG9nU2VydmljZS5ERUJVRy5MRVZFTF8zIHx8IExvZ1NlcnZpY2UuREVCVUcuTEVWRUxfMSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4od2Fybik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { fromEvent, merge, of } from 'rxjs';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class NetworkStatusService {
|
|
6
|
-
get networkStatus$() {
|
|
7
|
-
return merge(of(null), fromEvent(window, 'online'), fromEvent(window, 'offline')).pipe(map(() => navigator.onLine));
|
|
8
|
-
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NetworkStatusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
10
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NetworkStatusService }); }
|
|
11
|
-
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NetworkStatusService, decorators: [{
|
|
13
|
-
type: Injectable
|
|
14
|
-
}] });
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1zdGF0dXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLW5vdmluLXJheS1jb3JlL3NyYy9saWIvc2VydmljZXMvbmV0d29yay1zdGF0dXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN4RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3JDLE1BQU0sT0FBTyxvQkFBb0I7SUFDN0IsSUFBSSxjQUFjO1FBQ2QsT0FBTyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDbEYsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FDOUIsQ0FBQztJQUNOLENBQUM7K0dBTFEsb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOZXR3b3JrU3RhdHVzU2VydmljZSB7XHJcbiAgICBnZXQgbmV0d29ya1N0YXR1cyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgcmV0dXJuIG1lcmdlKG9mKG51bGwpLCBmcm9tRXZlbnQod2luZG93LCAnb25saW5lJyksIGZyb21FdmVudCh3aW5kb3csICdvZmZsaW5lJykpLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoKSA9PiBuYXZpZ2F0b3Iub25MaW5lKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXBvcHVwLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1wb3B1cC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvblBvcHVwU2VydmljZSB7XHJcbiAgICBwb3B1cE5vdGlmeShtc2csIHRpdGxlLCB0eXBlLCBpbWFnZSwgbW8sIHVpT3B0aW9ucywgb3RoZXJPcHRpb25zKTtcclxufVxyXG4iXX0=
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { tap } from 'rxjs';
|
|
3
|
-
import { BarsaApi } from '../abstract-classes';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "./log.service";
|
|
6
|
-
import * as i2 from "@angular/service-worker";
|
|
7
|
-
import * as i3 from "./portal.service";
|
|
8
|
-
export class ServiceWorkerNotificationService {
|
|
9
|
-
constructor(_logService, _swPush, _portalService) {
|
|
10
|
-
this._logService = _logService;
|
|
11
|
-
this._swPush = _swPush;
|
|
12
|
-
this._portalService = _portalService;
|
|
13
|
-
this.hasRegistration = false;
|
|
14
|
-
this._notificationPermissionAllowed = true;
|
|
15
|
-
_logService.info(`swPush enable ${_swPush.isEnabled}`);
|
|
16
|
-
_swPush.notificationClicks.pipe(tap((c) => console.log(c))).subscribe((e) => {
|
|
17
|
-
if (!e.notification.tag) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
this.closeNotifications([e.notification.tag]);
|
|
21
|
-
let actionTitle = e.action;
|
|
22
|
-
if (actionTitle === '') {
|
|
23
|
-
actionTitle = 'show';
|
|
24
|
-
}
|
|
25
|
-
if (!BarsaApi?.LoginFormData?.IsUserLoggedIn) {
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
this._portalService.ExecuteNotificationAction(e.notification.tag, actionTitle);
|
|
29
|
-
// TODO:exeucte action
|
|
30
|
-
// not handled!!
|
|
31
|
-
});
|
|
32
|
-
this.getSw().then((c) => (this.hasRegistration = !!c));
|
|
33
|
-
this.handlePermission();
|
|
34
|
-
}
|
|
35
|
-
get isEnabled() {
|
|
36
|
-
return this._swPush.isEnabled && this.hasRegistration && this._notificationPermissionAllowed;
|
|
37
|
-
}
|
|
38
|
-
handlePermission() {
|
|
39
|
-
if (!navigator?.permissions?.query) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
return navigator.permissions
|
|
43
|
-
.query({ name: 'notifications' })
|
|
44
|
-
.then(this.permissionQuery.bind(this))
|
|
45
|
-
.catch(this.permissionError.bind(this));
|
|
46
|
-
}
|
|
47
|
-
permissionQuery(result) {
|
|
48
|
-
let newPrompt;
|
|
49
|
-
if (result.state === 'granted') {
|
|
50
|
-
// notifications allowed, go wild
|
|
51
|
-
}
|
|
52
|
-
else if (result.state === 'prompt') {
|
|
53
|
-
// we can ask the user
|
|
54
|
-
newPrompt = Notification.requestPermission();
|
|
55
|
-
}
|
|
56
|
-
else if (result.state === 'denied') {
|
|
57
|
-
// notifications were disabled
|
|
58
|
-
this._notificationPermissionAllowed = false;
|
|
59
|
-
}
|
|
60
|
-
result.onchange = () => console.log({ updatedPermission: result });
|
|
61
|
-
return newPrompt || result;
|
|
62
|
-
}
|
|
63
|
-
permissionError(error) {
|
|
64
|
-
this._notificationPermissionAllowed = false;
|
|
65
|
-
console.error(error);
|
|
66
|
-
}
|
|
67
|
-
async getSw() {
|
|
68
|
-
if (!navigator.serviceWorker) {
|
|
69
|
-
this.hasRegistration = false;
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
const x = await navigator.serviceWorker.getRegistration('custom-ngsw-worker.js');
|
|
73
|
-
this.hasRegistration = !!x;
|
|
74
|
-
return x;
|
|
75
|
-
}
|
|
76
|
-
async showNotification(payload) {
|
|
77
|
-
const sw = await this.getSw();
|
|
78
|
-
if (!sw) {
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
const { isRtl, lang, notificationItem } = payload;
|
|
82
|
-
const tag = notificationItem.Tag;
|
|
83
|
-
const dir = isRtl ? 'rtl' : 'ltr';
|
|
84
|
-
const actions = !notificationItem.UiActions
|
|
85
|
-
? []
|
|
86
|
-
: notificationItem.UiActions.map((action) => ({
|
|
87
|
-
title: action.Title,
|
|
88
|
-
icon: action.Icon,
|
|
89
|
-
action: action.Title
|
|
90
|
-
}));
|
|
91
|
-
const moInfo = !tag ? `&moid=${notificationItem.Id}&tpid=${notificationItem.$TypeDefId}` : ``;
|
|
92
|
-
const data = {
|
|
93
|
-
onActionClick: {
|
|
94
|
-
default: { operation: 'openWindow', url: `#/login?notificationTag=${tag}&action=show${moInfo}` }
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
actions.forEach((action) => {
|
|
98
|
-
data.onActionClick[action.title] = {
|
|
99
|
-
operation: 'focusLastFocusedOrOpen',
|
|
100
|
-
url: `#/login?notificationTag=${tag}&action=${action.title}`
|
|
101
|
-
};
|
|
102
|
-
});
|
|
103
|
-
sw?.showNotification(notificationItem.Title, {
|
|
104
|
-
dir,
|
|
105
|
-
tag,
|
|
106
|
-
body: notificationItem.Content,
|
|
107
|
-
image: notificationItem.Image,
|
|
108
|
-
icon: notificationItem.Icon ? notificationItem.Icon : '/notif.png',
|
|
109
|
-
badge: '/notif.png',
|
|
110
|
-
lang,
|
|
111
|
-
actions,
|
|
112
|
-
data
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
_isSupported() {
|
|
116
|
-
if (!('serviceWorker' in navigator)) {
|
|
117
|
-
// Service Worker isn't supported on this browser, disable or hide UI.
|
|
118
|
-
return false;
|
|
119
|
-
}
|
|
120
|
-
if (!('PushManager' in window)) {
|
|
121
|
-
// Push isn't supported on this browser, disable or hide UI.
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
124
|
-
return true;
|
|
125
|
-
}
|
|
126
|
-
_isActionsSupported() {
|
|
127
|
-
return 'actions' in Notification.prototype;
|
|
128
|
-
}
|
|
129
|
-
_isIconSupported() {
|
|
130
|
-
return 'icon' in Notification.prototype;
|
|
131
|
-
}
|
|
132
|
-
isBadgeSupported() {
|
|
133
|
-
return 'badge' in Notification.prototype;
|
|
134
|
-
}
|
|
135
|
-
_isDirSupported() {
|
|
136
|
-
return 'dir' in Notification.prototype;
|
|
137
|
-
}
|
|
138
|
-
isImageSupported() {
|
|
139
|
-
return 'image' in Notification.prototype;
|
|
140
|
-
}
|
|
141
|
-
isTitleBodySupported() {
|
|
142
|
-
return 'title' in Notification.prototype && 'body' in Notification.prototype;
|
|
143
|
-
}
|
|
144
|
-
isVibrateSupported() {
|
|
145
|
-
return 'vibrate' in Notification.prototype;
|
|
146
|
-
}
|
|
147
|
-
isTimestampSupported() {
|
|
148
|
-
return 'timestamp' in Notification.prototype;
|
|
149
|
-
}
|
|
150
|
-
isTagSupported() {
|
|
151
|
-
return 'tag' in Notification.prototype;
|
|
152
|
-
}
|
|
153
|
-
isSoundSupported() {
|
|
154
|
-
return 'sound' in Notification.prototype;
|
|
155
|
-
}
|
|
156
|
-
isSilentSupported() {
|
|
157
|
-
return 'silent' in Notification.prototype;
|
|
158
|
-
}
|
|
159
|
-
isReqInterSupported() {
|
|
160
|
-
return 'requireInteraction' in Notification.prototype;
|
|
161
|
-
}
|
|
162
|
-
async closeNotifications(tags) {
|
|
163
|
-
const sw = await this.getSw();
|
|
164
|
-
if (!sw) {
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
tags.forEach(async (tag) => {
|
|
168
|
-
const notifs = await sw?.getNotifications({ tag });
|
|
169
|
-
if (notifs?.length) {
|
|
170
|
-
notifs.forEach((c) => c.close());
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceWorkerNotificationService, deps: [{ token: i1.LogService }, { token: i2.SwPush }, { token: i3.PortalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
175
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceWorkerNotificationService }); }
|
|
176
|
-
}
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceWorkerNotificationService, decorators: [{
|
|
178
|
-
type: Injectable
|
|
179
|
-
}], ctorParameters: () => [{ type: i1.LogService }, { type: i2.SwPush }, { type: i3.PortalService }] });
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXN3LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1ub3Zpbi1yYXktY29yZS9zcmMvbGliL3NlcnZpY2VzL25vdGlmaWNhdGlvbi1zdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsUUFBUSxFQUEyQyxNQUFNLHFCQUFxQixDQUFDOzs7OztBQUt4RixNQUFNLE9BQU8sZ0NBQWdDO0lBR3pDLFlBQW9CLFdBQXVCLEVBQVUsT0FBZSxFQUFVLGNBQTZCO1FBQXZGLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFVLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBRjNHLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLG1DQUE4QixHQUFHLElBQUksQ0FBQztRQUUxQyxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN2RCxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEUsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ3RCLE9BQU87WUFDWCxDQUFDO1lBRUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRTlDLElBQUksV0FBVyxHQUFHLENBQUMsQ0FB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Q0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN3UHVzaCB9IGZyb20gJ0Bhbmd1bGFyL3NlcnZpY2Utd29ya2VyJztcclxuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhcnNhQXBpLCBFeE5vdGlmaWNhdGlvblBheWxvYWQsIE5vdGlmaWNhdGlvbkl0ZW0gfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzJztcclxuaW1wb3J0IHsgTG9nU2VydmljZSB9IGZyb20gJy4vbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb3J0YWxTZXJ2aWNlIH0gZnJvbSAnLi9wb3J0YWwuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uU2VydmljZSB7XHJcbiAgICBoYXNSZWdpc3RyYXRpb24gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX25vdGlmaWNhdGlvblBlcm1pc3Npb25BbGxvd2VkID0gdHJ1ZTtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2xvZ1NlcnZpY2U6IExvZ1NlcnZpY2UsIHByaXZhdGUgX3N3UHVzaDogU3dQdXNoLCBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlKSB7XHJcbiAgICAgICAgX2xvZ1NlcnZpY2UuaW5mbyhgc3dQdXNoIGVuYWJsZSAke19zd1B1c2guaXNFbmFibGVkfWApO1xyXG4gICAgICAgIF9zd1B1c2gubm90aWZpY2F0aW9uQ2xpY2tzLnBpcGUodGFwKChjKSA9PiBjb25zb2xlLmxvZyhjKSkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWUubm90aWZpY2F0aW9uLnRhZykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNsb3NlTm90aWZpY2F0aW9ucyhbZS5ub3RpZmljYXRpb24udGFnXSk7XHJcblxyXG4gICAgICAgICAgICBsZXQgYWN0aW9uVGl0bGUgPSBlLmFjdGlvbjtcclxuICAgICAgICAgICAgaWYgKGFjdGlvblRpdGxlID09PSAnJykge1xyXG4gICAgICAgICAgICAgICAgYWN0aW9uVGl0bGUgPSAnc2hvdyc7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICghQmFyc2FBcGk/LkxvZ2luRm9ybURhdGE/LklzVXNlckxvZ2dlZEluKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5FeGVjdXRlTm90aWZpY2F0aW9uQWN0aW9uKGUubm90aWZpY2F0aW9uLnRhZywgYWN0aW9uVGl0bGUpO1xyXG5cclxuICAgICAgICAgICAgLy8gVE9ETzpleGV1Y3RlIGFjdGlvblxyXG4gICAgICAgICAgICAvLyBub3QgaGFuZGxlZCEhXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5nZXRTdygpLnRoZW4oKGMpID0+ICh0aGlzLmhhc1JlZ2lzdHJhdGlvbiA9ICEhYykpO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlUGVybWlzc2lvbigpO1xyXG4gICAgfVxyXG4gICAgcHVibGljIGdldCBpc0VuYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N3UHVzaC5pc0VuYWJsZWQgJiYgdGhpcy5oYXNSZWdpc3RyYXRpb24gJiYgdGhpcy5fbm90aWZpY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQ7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGhhbmRsZVBlcm1pc3Npb24oKTogYW55IHtcclxuICAgICAgICBpZiAoIW5hdmlnYXRvcj8ucGVybWlzc2lvbnM/LnF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5wZXJtaXNzaW9uc1xyXG4gICAgICAgICAgICAucXVlcnkoeyBuYW1lOiAnbm90aWZpY2F0aW9ucycgfSlcclxuICAgICAgICAgICAgLnRoZW4odGhpcy5wZXJtaXNzaW9uUXVlcnkuYmluZCh0aGlzKSlcclxuICAgICAgICAgICAgLmNhdGNoKHRoaXMucGVybWlzc2lvbkVycm9yLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcGVybWlzc2lvblF1ZXJ5KHJlc3VsdCk6IGFueSB7XHJcbiAgICAgICAgbGV0IG5ld1Byb21wdDtcclxuXHJcbiAgICAgICAgaWYgKHJlc3VsdC5zdGF0ZSA9PT0gJ2dyYW50ZWQnKSB7XHJcbiAgICAgICAgICAgIC8vIG5vdGlmaWNhdGlvbnMgYWxsb3dlZCwgZ28gd2lsZFxyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LnN0YXRlID09PSAncHJvbXB0Jykge1xyXG4gICAgICAgICAgICAvLyB3ZSBjYW4gYXNrIHRoZSB1c2VyXHJcbiAgICAgICAgICAgIG5ld1Byb21wdCA9IE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAocmVzdWx0LnN0YXRlID09PSAnZGVuaWVkJykge1xyXG4gICAgICAgICAgICAvLyBub3RpZmljYXRpb25zIHdlcmUgZGlzYWJsZWRcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJlc3VsdC5vbmNoYW5nZSA9ICgpID0+IGNvbnNvbGUubG9nKHsgdXBkYXRlZFBlcm1pc3Npb246IHJlc3VsdCB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIG5ld1Byb21wdCB8fCByZXN1bHQ7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHBlcm1pc3Npb25FcnJvcihlcnJvcik6IGFueSB7XHJcbiAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9uUGVybWlzc2lvbkFsbG93ZWQgPSBmYWxzZTtcclxuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgYXN5bmMgZ2V0U3coKTogUHJvbWlzZTxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIHwgdW5kZWZpbmVkPiB7XHJcbiAgICAgICAgaWYgKCFuYXZpZ2F0b3Iuc2VydmljZVdvcmtlcikge1xyXG4gICAgICAgICAgICB0aGlzLmhhc1JlZ2lzdHJhdGlvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB4ID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uKCdjdXN0b20tbmdzdy13b3JrZXIuanMnKTtcclxuICAgICAgICB0aGlzLmhhc1JlZ2lzdHJhdGlvbiA9ICEheDtcclxuICAgICAgICByZXR1cm4geDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBhc3luYyBzaG93Tm90aWZpY2F0aW9uKHBheWxvYWQ6IEV4Tm90aWZpY2F0aW9uUGF5bG9hZCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgICAgIGNvbnN0IHN3ID0gYXdhaXQgdGhpcy5nZXRTdygpO1xyXG4gICAgICAgIGlmICghc3cpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB7IGlzUnRsLCBsYW5nLCBub3RpZmljYXRpb25JdGVtIH06IHsgaXNSdGw6IGJvb2xlYW47IGxhbmc6IHN0cmluZzsgbm90aWZpY2F0aW9uSXRlbTogTm90aWZpY2F0aW9uSXRlbSB9ID1cclxuICAgICAgICAgICAgcGF5bG9hZDtcclxuICAgICAgICBjb25zdCB0YWcgPSBub3RpZmljYXRpb25JdGVtLlRhZztcclxuICAgICAgICBjb25zdCBkaXIgPSBpc1J0bCA/ICdydGwnIDogJ2x0cic7XHJcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9ICFub3RpZmljYXRpb25JdGVtLlVpQWN0aW9uc1xyXG4gICAgICAgICAgICA/IFtdXHJcbiAgICAgICAgICAgIDogbm90aWZpY2F0aW9uSXRlbS5VaUFjdGlvbnMubWFwKChhY3Rpb24pID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiBhY3Rpb24uVGl0bGUsXHJcbiAgICAgICAgICAgICAgICAgIGljb246IGFjdGlvbi5JY29uLFxyXG4gICAgICAgICAgICAgICAgICBhY3Rpb246IGFjdGlvbi5UaXRsZVxyXG4gICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICBjb25zdCBtb0luZm8gPSAhdGFnID8gYCZtb2lkPSR7bm90aWZpY2F0aW9uSXRlbS5JZH0mdHBpZD0ke25vdGlmaWNhdGlvbkl0ZW0uJFR5cGVEZWZJZH1gIDogYGA7XHJcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgICAgICAgb25BY3Rpb25DbGljazoge1xyXG4gICAgICAgICAgICAgICAgZGVmYXVsdDogeyBvcGVyYXRpb246ICdvcGVuV2luZG93JywgdXJsOiBgIy9sb2dpbj9ub3RpZmljYXRpb25UYWc9JHt0YWd9JmFjdGlvbj1zaG93JHttb0luZm99YCB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGRhdGEub25BY3Rpb25DbGlja1thY3Rpb24udGl0bGVdID0ge1xyXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uOiAnZm9jdXNMYXN0Rm9jdXNlZE9yT3BlbicsXHJcbiAgICAgICAgICAgICAgICB1cmw6IGAjL2xvZ2luP25vdGlmaWNhdGlvblRhZz0ke3RhZ30mYWN0aW9uPSR7YWN0aW9uLnRpdGxlfWBcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgc3c/LnNob3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSXRlbS5UaXRsZSwge1xyXG4gICAgICAgICAgICBkaXIsXHJcbiAgICAgICAgICAgIHRhZyxcclxuICAgICAgICAgICAgYm9keTogbm90aWZpY2F0aW9uSXRlbS5Db250ZW50LFxyXG4gICAgICAgICAgICBpbWFnZTogbm90aWZpY2F0aW9uSXRlbS5JbWFnZSxcclxuICAgICAgICAgICAgaWNvbjogbm90aWZpY2F0aW9uSXRlbS5JY29uID8gbm90aWZpY2F0aW9uSXRlbS5JY29uIDogJy9ub3RpZi5wbmcnLFxyXG4gICAgICAgICAgICBiYWRnZTogJy9ub3RpZi5wbmcnLFxyXG4gICAgICAgICAgICBsYW5nLFxyXG4gICAgICAgICAgICBhY3Rpb25zLFxyXG4gICAgICAgICAgICBkYXRhXHJcbiAgICAgICAgfSBhcyBhbnkpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfaXNTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCEoJ3NlcnZpY2VXb3JrZXInIGluIG5hdmlnYXRvcikpIHtcclxuICAgICAgICAgICAgLy8gU2VydmljZSBXb3JrZXIgaXNuJ3Qgc3VwcG9ydGVkIG9uIHRoaXMgYnJvd3NlciwgZGlzYWJsZSBvciBoaWRlIFVJLlxyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoISgnUHVzaE1hbmFnZXInIGluIHdpbmRvdykpIHtcclxuICAgICAgICAgICAgLy8gUHVzaCBpc24ndCBzdXBwb3J0ZWQgb24gdGhpcyBicm93c2VyLCBkaXNhYmxlIG9yIGhpZGUgVUkuXHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfaXNBY3Rpb25zU3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAnYWN0aW9ucycgaW4gTm90aWZpY2F0aW9uLnByb3RvdHlwZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2lzSWNvblN1cHBvcnRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gJ2ljb24nIGluIE5vdGlmaWNhdGlvbi5wcm90b3R5cGU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGlzQmFkZ2VTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICdiYWRnZScgaW4gTm90aWZpY2F0aW9uLnByb3RvdHlwZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgX2lzRGlyU3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAnZGlyJyBpbiBOb3RpZmljYXRpb24ucHJvdG90eXBlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBpc0ltYWdlU3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAnaW1hZ2UnIGluIE5vdGlmaWNhdGlvbi5wcm90b3R5cGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpc1RpdGxlQm9keVN1cHBvcnRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gJ3RpdGxlJyBpbiBOb3RpZmljYXRpb24ucHJvdG90eXBlICYmICdib2R5JyBpbiBOb3RpZmljYXRpb24ucHJvdG90eXBlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBpc1ZpYnJhdGVTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICd2aWJyYXRlJyBpbiBOb3RpZmljYXRpb24ucHJvdG90eXBlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBpc1RpbWVzdGFtcFN1cHBvcnRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gJ3RpbWVzdGFtcCcgaW4gTm90aWZpY2F0aW9uLnByb3RvdHlwZTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgaXNUYWdTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICd0YWcnIGluIE5vdGlmaWNhdGlvbi5wcm90b3R5cGU7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIGlzU291bmRTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICdzb3VuZCcgaW4gTm90aWZpY2F0aW9uLnByb3RvdHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzU2lsZW50U3VwcG9ydGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAnc2lsZW50JyBpbiBOb3RpZmljYXRpb24ucHJvdG90eXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaXNSZXFJbnRlclN1cHBvcnRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gJ3JlcXVpcmVJbnRlcmFjdGlvbicgaW4gTm90aWZpY2F0aW9uLnByb3RvdHlwZTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBhc3luYyBjbG9zZU5vdGlmaWNhdGlvbnModGFnczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBjb25zdCBzdyA9IGF3YWl0IHRoaXMuZ2V0U3coKTtcclxuICAgICAgICBpZiAoIXN3KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGFncy5mb3JFYWNoKGFzeW5jICh0YWcpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgbm90aWZzOiBOb3RpZmljYXRpb25bXSB8IHVuZGVmaW5lZCA9IGF3YWl0IHN3Py5nZXROb3RpZmljYXRpb25zKHsgdGFnIH0pO1xyXG4gICAgICAgICAgICBpZiAobm90aWZzPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIG5vdGlmcy5mb3JFYWNoKChjKSA9PiBjLmNsb3NlKCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|