@smartsoft001-mobilems/angular 1.0.41
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/esm2020/index.mjs +8 -0
- package/esm2020/lib/+state/configs.facade.mjs +54 -0
- package/esm2020/lib/components/app/app.component.mjs +13 -0
- package/esm2020/lib/components/filters/filters.component.mjs +351 -0
- package/esm2020/lib/components/index.mjs +8 -0
- package/esm2020/lib/components/page/page.component.mjs +11 -0
- package/esm2020/lib/directives/index.mjs +2 -0
- package/esm2020/lib/environments/environment.mjs +5 -0
- package/esm2020/lib/services/configs/configs.service.mjs +44 -0
- package/esm2020/lib/services/crud/crud.service.mjs +82 -0
- package/esm2020/lib/services/dictionary/dictionary.service.mjs +36 -0
- package/esm2020/lib/services/index.mjs +15 -0
- package/esm2020/lib/services/style/style.service.mjs +23 -0
- package/esm2020/lib/services/style/variables.mjs +33 -0
- package/esm2020/lib/shared.config.mjs +13 -0
- package/esm2020/lib/shared.module.mjs +91 -0
- package/esm2020/lib/translations.mjs +19 -0
- package/esm2020/smartsoft001-mobilems-angular.mjs +5 -0
- package/index.d.ts +7 -0
- package/lib/+state/configs.facade.d.ts +17 -0
- package/lib/components/app/app.component.d.ts +6 -0
- package/lib/components/filters/filters.component.d.ts +87 -0
- package/lib/components/index.d.ts +5 -0
- package/lib/components/page/page.component.d.ts +6 -0
- package/lib/directives/index.d.ts +1 -0
- package/lib/environments/environment.d.ts +4 -0
- package/lib/services/configs/configs.service.d.ts +13 -0
- package/lib/services/crud/crud.service.d.ts +18 -0
- package/lib/services/dictionary/dictionary.service.d.ts +26 -0
- package/lib/services/index.d.ts +9 -0
- package/lib/services/style/style.service.d.ts +10 -0
- package/lib/services/style/variables.d.ts +2 -0
- package/lib/shared.config.d.ts +6 -0
- package/lib/shared.module.d.ts +16 -0
- package/lib/translations.d.ts +6 -0
- package/package.json +43 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./lib/translations";
|
|
2
|
+
export * from "./lib/environments/environment";
|
|
3
|
+
export * from "./lib/+state/configs.facade";
|
|
4
|
+
export * from "./lib/shared.module";
|
|
5
|
+
export * from "./lib/services";
|
|
6
|
+
export * from "./lib/components";
|
|
7
|
+
export * from "./lib/shared.config";
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC9hbmd1bGFyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbGliL3RyYW5zbGF0aW9uc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliLytzdGF0ZS9jb25maWdzLmZhY2FkZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL3NoYXJlZC5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zZXJ2aWNlc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9zaGFyZWQuY29uZmlnXCI7Il19
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Injectable } from "@angular/core";
|
|
3
|
+
import { ReduxAction } from "@smartsoft001/angular";
|
|
4
|
+
import { DomSanitizer } from "@angular/platform-browser";
|
|
5
|
+
import { BehaviorSubject } from "rxjs";
|
|
6
|
+
import { ConfigsService } from "../services/configs/configs.service";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../services/configs/configs.service";
|
|
9
|
+
import * as i2 from "@angular/platform-browser";
|
|
10
|
+
export class ConfigsFacade {
|
|
11
|
+
constructor(service, sanitizer) {
|
|
12
|
+
this.service = service;
|
|
13
|
+
this.sanitizer = sanitizer;
|
|
14
|
+
this.data$ = ConfigsFacade._source.asObservable();
|
|
15
|
+
}
|
|
16
|
+
get data() {
|
|
17
|
+
return ConfigsFacade._source.value;
|
|
18
|
+
}
|
|
19
|
+
getPage(id) {
|
|
20
|
+
return this.service.getPage(id).then(r => {
|
|
21
|
+
if (!r)
|
|
22
|
+
return r;
|
|
23
|
+
return {
|
|
24
|
+
...r,
|
|
25
|
+
content: this.sanitizer.bypassSecurityTrustHtml(r.content)
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
init() {
|
|
30
|
+
return this.service.get().then(r => {
|
|
31
|
+
ConfigsFacade._source.next(r);
|
|
32
|
+
return r;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
ConfigsFacade._source = new BehaviorSubject(null);
|
|
37
|
+
ConfigsFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfigsFacade, deps: [{ token: i1.ConfigsService }, { token: i2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
38
|
+
ConfigsFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfigsFacade });
|
|
39
|
+
__decorate([
|
|
40
|
+
ReduxAction(),
|
|
41
|
+
__metadata("design:type", Function),
|
|
42
|
+
__metadata("design:paramtypes", [Number]),
|
|
43
|
+
__metadata("design:returntype", Promise)
|
|
44
|
+
], ConfigsFacade.prototype, "getPage", null);
|
|
45
|
+
__decorate([
|
|
46
|
+
ReduxAction(),
|
|
47
|
+
__metadata("design:type", Function),
|
|
48
|
+
__metadata("design:paramtypes", []),
|
|
49
|
+
__metadata("design:returntype", Promise)
|
|
50
|
+
], ConfigsFacade.prototype, "init", null);
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfigsFacade, decorators: [{
|
|
52
|
+
type: Injectable
|
|
53
|
+
}], ctorParameters: function () { return [{ type: i1.ConfigsService }, { type: i2.DomSanitizer }]; }, propDecorators: { getPage: [], init: [] } });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvK3N0YXRlL2NvbmZpZ3MuZmFjYWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUNuRCxPQUFPLEVBQUMsWUFBWSxFQUFXLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFDLGVBQWUsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUlqRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFHbkUsTUFBTSxPQUFPLGFBQWE7SUFTdEIsWUFBb0IsT0FBdUIsRUFBVSxTQUF1QjtRQUF4RCxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFVLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFGNUUsVUFBSyxHQUE4QixhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBR3hFLENBQUM7SUFQRCxJQUFJLElBQUk7UUFDSixPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ3ZDLENBQUM7SUFRRCxPQUFPLENBQUMsRUFBVTtRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRWpCLE9BQU87Z0JBQ0gsR0FBRyxDQUFDO2dCQUNKLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7YUFDN0QsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUdELElBQUk7UUFDQSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQy9CLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztBQTdCYyxxQkFBTyxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQzswR0FEekQsYUFBYTs4R0FBYixhQUFhO0FBWXRCO0lBQUMsV0FBVyxFQUFFOzs7OzRDQVViO0FBRUQ7SUFBQyxXQUFXLEVBQUU7Ozs7eUNBTWI7MkZBOUJRLGFBQWE7a0JBRHpCLFVBQVU7Z0lBY1AsT0FBTyxNQVlQLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBSZWR1eEFjdGlvbiB9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2FuZ3VsYXJcIlxuaW1wb3J0IHtEb21TYW5pdGl6ZXIsIFNhZmVIdG1sfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7Q29uZmlnLCBQYWdlfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS1tb2JpbGVtcy9tb2RlbHNcIjtcblxuaW1wb3J0IHtDb25maWdzU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2NvbmZpZ3MvY29uZmlncy5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb25maWdzRmFjYWRlIHtcbiAgICBwcml2YXRlIHN0YXRpYyBfc291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb25maWcgfCBudWxsPihudWxsKTtcblxuICAgIGdldCBkYXRhKCk6IENvbmZpZyB8IG51bGwge1xuICAgICAgICByZXR1cm4gQ29uZmlnc0ZhY2FkZS5fc291cmNlLnZhbHVlO1xuICAgIH1cblxuICAgIGRhdGEkOiBPYnNlcnZhYmxlPENvbmZpZyB8IG51bGw+ID0gQ29uZmlnc0ZhY2FkZS5fc291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBzZXJ2aWNlOiBDb25maWdzU2VydmljZSwgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcikge1xuICAgIH1cblxuICAgIEBSZWR1eEFjdGlvbigpXG4gICAgZ2V0UGFnZShpZDogbnVtYmVyKTogUHJvbWlzZTxQYWdlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0UGFnZShpZCkudGhlbihyID0+IHtcbiAgICAgICAgICAgaWYgKCFyKSByZXR1cm4gcjtcblxuICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgLi4ucixcbiAgICAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHIuY29udGVudClcbiAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBAUmVkdXhBY3Rpb24oKVxuICAgIGluaXQoKTogUHJvbWlzZTxDb25maWc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VydmljZS5nZXQoKS50aGVuKHIgPT4ge1xuICAgICAgICAgICAgQ29uZmlnc0ZhY2FkZS5fc291cmNlLm5leHQocik7XG4gICAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSk7XG4gICAgfVxufSJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { AppBaseComponent } from "@smartsoft001/angular";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/router";
|
|
5
|
+
export class AppComponent extends AppBaseComponent {
|
|
6
|
+
}
|
|
7
|
+
AppComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AppComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
8
|
+
AppComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: AppComponent, selector: "smart-mobilems-app", usesInheritance: true, ngImport: i0, template: "<ng-content select=\"header\"></ng-content>\n\n<router-outlet></router-outlet>\n\n<ng-content select=\"footer\"></ng-content>", dependencies: [{ kind: "directive", type: i1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }] });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AppComponent, decorators: [{
|
|
10
|
+
type: Component,
|
|
11
|
+
args: [{ selector: "smart-mobilems-app", template: "<ng-content select=\"header\"></ng-content>\n\n<router-outlet></router-outlet>\n\n<ng-content select=\"footer\"></ng-content>" }]
|
|
12
|
+
}] });
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2FwcC9hcHAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvYXBwL2FwcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7QUFNekQsTUFBTSxPQUFPLFlBQWEsU0FBUSxnQkFBZ0I7O3lHQUFyQyxZQUFZOzZGQUFaLFlBQVksaUZDUHpCLCtIQUl5QzsyRkRHNUIsWUFBWTtrQkFKeEIsU0FBUzsrQkFDSSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFwcEJhc2VDb21wb25lbnQgfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9hbmd1bGFyXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInNtYXJ0LW1vYmlsZW1zLWFwcFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vYXBwLmNvbXBvbmVudC5odG1sXCJcbn0pXG5leHBvcnQgY2xhc3MgQXBwQ29tcG9uZW50IGV4dGVuZHMgQXBwQmFzZUNvbXBvbmVudCB7XG5cbn0iLCI8bmctY29udGVudCBzZWxlY3Q9XCJoZWFkZXJcIj48L25nLWNvbnRlbnQ+XG5cbjxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiZm9vdGVyXCI+PC9uZy1jb250ZW50PiJdfQ==
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { ContentChild, Directive, TemplateRef } from "@angular/core";
|
|
3
|
+
import { Debounce } from "lodash-decorators";
|
|
4
|
+
import { BaseComponent } from "@smartsoft001/angular";
|
|
5
|
+
import { CrudFacade } from "@smartsoft001/crud-shell-angular";
|
|
6
|
+
import * as _ from "lodash";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@smartsoft001/crud-shell-angular";
|
|
9
|
+
export class FiltersContext extends BaseComponent {
|
|
10
|
+
constructor(facade) {
|
|
11
|
+
super();
|
|
12
|
+
this.facade = facade;
|
|
13
|
+
this.totalCount$ = this.facade.totalCount$;
|
|
14
|
+
this.facade.filter$.pipe(this.takeUntilDestroy).subscribe(val => {
|
|
15
|
+
this._filter = val;
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
set searchText(val) {
|
|
19
|
+
if (this._filter && this._filter.searchText === val)
|
|
20
|
+
return;
|
|
21
|
+
this.refresh({
|
|
22
|
+
searchText: val,
|
|
23
|
+
offset: 0
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
get searchText() {
|
|
27
|
+
return this._filter?.searchText;
|
|
28
|
+
}
|
|
29
|
+
set page(val) {
|
|
30
|
+
const offset = this._filter?.limit ? (this._filter?.limit * val) : 0;
|
|
31
|
+
if (this._filter && this._filter.offset === offset)
|
|
32
|
+
return;
|
|
33
|
+
this.refresh({
|
|
34
|
+
offset: offset
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
get page() {
|
|
38
|
+
if (!this._filter)
|
|
39
|
+
return 1;
|
|
40
|
+
if (!this._filter.offset || !this._filter.limit)
|
|
41
|
+
return 1;
|
|
42
|
+
return (this._filter.offset / this._filter.limit);
|
|
43
|
+
}
|
|
44
|
+
set limit(val) {
|
|
45
|
+
if (this._filter && this._filter.limit === val)
|
|
46
|
+
return;
|
|
47
|
+
this.refresh({
|
|
48
|
+
limit: val,
|
|
49
|
+
offset: 0
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
get limit() {
|
|
53
|
+
if (!this._filter)
|
|
54
|
+
return 20;
|
|
55
|
+
if (!this._filter.limit)
|
|
56
|
+
return 20;
|
|
57
|
+
return this._filter.limit;
|
|
58
|
+
}
|
|
59
|
+
set sortBy(val) {
|
|
60
|
+
if (this._filter && this._filter.sortBy === val)
|
|
61
|
+
return;
|
|
62
|
+
this.refresh({
|
|
63
|
+
sortBy: val
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
get sortBy() {
|
|
67
|
+
return this._filter?.sortBy;
|
|
68
|
+
}
|
|
69
|
+
set query(val) {
|
|
70
|
+
if (this._filter && this._filter.query === val)
|
|
71
|
+
return;
|
|
72
|
+
this.refresh({
|
|
73
|
+
query: val
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
get query() {
|
|
77
|
+
return this._filter?.query;
|
|
78
|
+
}
|
|
79
|
+
set sortDesc(val) {
|
|
80
|
+
if (this._filter && this._filter.sortDesc === val)
|
|
81
|
+
return;
|
|
82
|
+
this.refresh({
|
|
83
|
+
sortDesc: val
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
set sort(val) {
|
|
87
|
+
if (this._filter && this._filter.sortBy === val)
|
|
88
|
+
return;
|
|
89
|
+
this.refresh({
|
|
90
|
+
sortBy: val?.by,
|
|
91
|
+
sortDesc: val?.desc
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
get sort() {
|
|
95
|
+
return {
|
|
96
|
+
by: this._filter?.sortBy,
|
|
97
|
+
desc: this._filter?.sortDesc
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
get sortDesc() {
|
|
101
|
+
return this._filter?.sortDesc;
|
|
102
|
+
}
|
|
103
|
+
set onlyImage(val) {
|
|
104
|
+
if (!val && this.onlyImage && this._filter) {
|
|
105
|
+
const result = this._filter.query ? this._filter.query
|
|
106
|
+
?.filter(q => !(q.type === "=" && q.key === 'onlyImage')) : [];
|
|
107
|
+
this.refresh({
|
|
108
|
+
query: [
|
|
109
|
+
...result
|
|
110
|
+
]
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
if (val && !this.onlyImage && this._filter) {
|
|
114
|
+
const result = this._filter.query
|
|
115
|
+
? this._filter.query.filter(q => !(q.type === "=" && q.key === 'onlyImage')) : [];
|
|
116
|
+
this.refresh({
|
|
117
|
+
offset: 0,
|
|
118
|
+
query: [
|
|
119
|
+
...result,
|
|
120
|
+
{
|
|
121
|
+
type: "=",
|
|
122
|
+
key: "onlyImage",
|
|
123
|
+
value: 1,
|
|
124
|
+
hidden: true
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
get onlyImage() {
|
|
131
|
+
return this._filter?.query
|
|
132
|
+
?.some(q => q.type === "=" && q.key === 'onlyImage' && q.value === 1);
|
|
133
|
+
}
|
|
134
|
+
set exposure(val) {
|
|
135
|
+
if (!val && this.exposure && this._filter) {
|
|
136
|
+
const result = this._filter.query ? this._filter.query
|
|
137
|
+
?.filter(q => !(q.type === "=" && q.key === 'locationType' && q.value === "Ekspozycja")) : [];
|
|
138
|
+
this.refresh({
|
|
139
|
+
query: [
|
|
140
|
+
...result
|
|
141
|
+
]
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
if (val && !this.exposure && this._filter) {
|
|
145
|
+
const result = this._filter.query
|
|
146
|
+
? this._filter.query?.filter(q => !(q.type === "=" && q.key === 'locationType' && q.value === "Ekspozycja")) : [];
|
|
147
|
+
this.refresh({
|
|
148
|
+
offset: 0,
|
|
149
|
+
query: [
|
|
150
|
+
...result,
|
|
151
|
+
{
|
|
152
|
+
type: "=",
|
|
153
|
+
key: "locationType",
|
|
154
|
+
value: "Ekspozycja",
|
|
155
|
+
hidden: true
|
|
156
|
+
}
|
|
157
|
+
]
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
get exposure() {
|
|
162
|
+
return this._filter?.query
|
|
163
|
+
?.some(q => q.type === "=" && q.key === 'locationType' && q.value === "Ekspozycja");
|
|
164
|
+
}
|
|
165
|
+
set creators(val) {
|
|
166
|
+
this.filterSet(this.creators, val, 'creators', "=");
|
|
167
|
+
}
|
|
168
|
+
get creators() {
|
|
169
|
+
return this.filterGet("=", 'creators');
|
|
170
|
+
}
|
|
171
|
+
set createDatesFrom(val) {
|
|
172
|
+
this.filterSet(this.createDatesFrom, val, 'createDates', ">=");
|
|
173
|
+
}
|
|
174
|
+
get createDatesFrom() {
|
|
175
|
+
return this.filterGet(">=", 'createDates');
|
|
176
|
+
}
|
|
177
|
+
set createDatesTo(val) {
|
|
178
|
+
this.filterSet(this.createDatesTo, val, 'createDates', "<=");
|
|
179
|
+
}
|
|
180
|
+
get createDatesTo() {
|
|
181
|
+
return this.filterGet("<=", 'createDates');
|
|
182
|
+
}
|
|
183
|
+
set publicationDateFrom(val) {
|
|
184
|
+
this.filterSet(this.publicationDateFrom, val, 'publicationDate', ">=");
|
|
185
|
+
}
|
|
186
|
+
get publicationDateFrom() {
|
|
187
|
+
return this.filterGet(">=", 'publicationDate');
|
|
188
|
+
}
|
|
189
|
+
set publicationDateTo(val) {
|
|
190
|
+
this.filterSet(this.publicationDateTo, val, 'publicationDate', "<=");
|
|
191
|
+
}
|
|
192
|
+
get publicationDateTo() {
|
|
193
|
+
return this.filterGet("<=", 'publicationDate');
|
|
194
|
+
}
|
|
195
|
+
set createPlaces(val) {
|
|
196
|
+
this.filterSet(this.createPlaces, val, 'createPlaces', "=");
|
|
197
|
+
}
|
|
198
|
+
get createPlaces() {
|
|
199
|
+
return this.filterGet("=", 'createPlaces');
|
|
200
|
+
}
|
|
201
|
+
set keywords(val) {
|
|
202
|
+
this.filterSet(this.keywords, val, 'keywords', "=");
|
|
203
|
+
}
|
|
204
|
+
get keywords() {
|
|
205
|
+
return this.filterGet("=", 'keywords');
|
|
206
|
+
}
|
|
207
|
+
set techniques(val) {
|
|
208
|
+
this.filterSet(this.techniques, val, 'techniques', "=");
|
|
209
|
+
}
|
|
210
|
+
get techniques() {
|
|
211
|
+
return this.filterGet("=", 'techniques');
|
|
212
|
+
}
|
|
213
|
+
set materials(val) {
|
|
214
|
+
this.filterSet(this.materials, val, 'materials', "=");
|
|
215
|
+
}
|
|
216
|
+
get materials() {
|
|
217
|
+
return this.filterGet("=", 'materials');
|
|
218
|
+
}
|
|
219
|
+
set category(val) {
|
|
220
|
+
this.filterSet(this.category, val, 'category', "=");
|
|
221
|
+
}
|
|
222
|
+
get category() {
|
|
223
|
+
return this.filterGet("=", 'category');
|
|
224
|
+
}
|
|
225
|
+
set department(val) {
|
|
226
|
+
this.filterSet(this.department, val, 'department', "=");
|
|
227
|
+
}
|
|
228
|
+
get department() {
|
|
229
|
+
return this.filterGet("=", 'department');
|
|
230
|
+
}
|
|
231
|
+
set location(val) {
|
|
232
|
+
this.filterSet(this.category, val, 'location', "=");
|
|
233
|
+
}
|
|
234
|
+
get location() {
|
|
235
|
+
return this.filterGet("=", 'location');
|
|
236
|
+
}
|
|
237
|
+
set locationType(val) {
|
|
238
|
+
this.filterSet(this.category, val, 'locationType', "=");
|
|
239
|
+
}
|
|
240
|
+
get locationType() {
|
|
241
|
+
return this.filterGet("=", 'locationType');
|
|
242
|
+
}
|
|
243
|
+
set cycles(val) {
|
|
244
|
+
this.filterSet(this.cycles, val, 'cycles', "=");
|
|
245
|
+
}
|
|
246
|
+
get cycles() {
|
|
247
|
+
return this.filterGet("=", 'cycles');
|
|
248
|
+
}
|
|
249
|
+
set authors(val) {
|
|
250
|
+
this.filterSet(this.authors, val, 'authors', "=");
|
|
251
|
+
}
|
|
252
|
+
get authors() {
|
|
253
|
+
return this.filterGet("=", 'authors');
|
|
254
|
+
}
|
|
255
|
+
set targetGroups(val) {
|
|
256
|
+
this.filterSet(this.targetGroups, val, 'targetGroups', "=");
|
|
257
|
+
}
|
|
258
|
+
get targetGroups() {
|
|
259
|
+
return this.filterGet("=", 'targetGroups');
|
|
260
|
+
}
|
|
261
|
+
set template(val) {
|
|
262
|
+
this.filterSet(this.template, val, 'template', "=");
|
|
263
|
+
}
|
|
264
|
+
get template() {
|
|
265
|
+
return this.filterGet("=", 'template');
|
|
266
|
+
}
|
|
267
|
+
set types(val) {
|
|
268
|
+
this.filterSet(this.types, val, 'types', "=");
|
|
269
|
+
}
|
|
270
|
+
get types() {
|
|
271
|
+
return this.filterGet("=", 'types');
|
|
272
|
+
}
|
|
273
|
+
set extraNumbersValue(val) {
|
|
274
|
+
this.filterSet(this.creators, val, 'extraNumbersValue', "=");
|
|
275
|
+
}
|
|
276
|
+
get extraNumbersValue() {
|
|
277
|
+
return this.filterGet("=", 'extraNumbersValue');
|
|
278
|
+
}
|
|
279
|
+
refresh(filter) {
|
|
280
|
+
let change = false;
|
|
281
|
+
Object.keys(filter).forEach(key => {
|
|
282
|
+
if (!_.isEqual(this._filter[key], filter[key]))
|
|
283
|
+
change = true;
|
|
284
|
+
});
|
|
285
|
+
if (!change)
|
|
286
|
+
return;
|
|
287
|
+
this.facade.read({
|
|
288
|
+
...this.facade.filter,
|
|
289
|
+
...filter
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
filterGet(key, type) {
|
|
293
|
+
return this._filter?.query
|
|
294
|
+
?.find(q => q.type === key && q.key === type)?.value;
|
|
295
|
+
}
|
|
296
|
+
filterSet(currentValue, val, key, type) {
|
|
297
|
+
if (!val && this._filter) {
|
|
298
|
+
const result = this._filter?.query ? this._filter?.query
|
|
299
|
+
?.filter(q => !(q.type === type && q.key === key)) : [];
|
|
300
|
+
this.refresh({
|
|
301
|
+
offset: 0,
|
|
302
|
+
query: [
|
|
303
|
+
...result
|
|
304
|
+
]
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
if (val && currentValue !== val && this._filter) {
|
|
308
|
+
const result = this._filter?.query
|
|
309
|
+
? this._filter?.query?.filter(q => !(q.type === type && q.key === key)) : [];
|
|
310
|
+
this.refresh({
|
|
311
|
+
offset: 0,
|
|
312
|
+
query: [
|
|
313
|
+
...result,
|
|
314
|
+
{
|
|
315
|
+
type: type,
|
|
316
|
+
key: key,
|
|
317
|
+
value: val,
|
|
318
|
+
hidden: true
|
|
319
|
+
}
|
|
320
|
+
]
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
__decorate([
|
|
326
|
+
Debounce(500),
|
|
327
|
+
__metadata("design:type", Function),
|
|
328
|
+
__metadata("design:paramtypes", [Object]),
|
|
329
|
+
__metadata("design:returntype", void 0)
|
|
330
|
+
], FiltersContext.prototype, "refresh", null);
|
|
331
|
+
export class FiltersBaseComponent {
|
|
332
|
+
constructor(facade) {
|
|
333
|
+
this.facade = facade;
|
|
334
|
+
this.contentTpl = null;
|
|
335
|
+
}
|
|
336
|
+
ngAfterContentInit() {
|
|
337
|
+
this.context = new FiltersContext(this.facade);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
FiltersBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FiltersBaseComponent, deps: [{ token: i1.CrudFacade }], target: i0.ɵɵFactoryTarget.Directive });
|
|
341
|
+
FiltersBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: FiltersBaseComponent, selector: "smart-mobilems-filters", queries: [{ propertyName: "contentTpl", first: true, predicate: ["contentTpl"], descendants: true, read: TemplateRef }], ngImport: i0 });
|
|
342
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FiltersBaseComponent, decorators: [{
|
|
343
|
+
type: Directive,
|
|
344
|
+
args: [{
|
|
345
|
+
selector: "smart-mobilems-filters",
|
|
346
|
+
}]
|
|
347
|
+
}], ctorParameters: function () { return [{ type: i1.CrudFacade }]; }, propDecorators: { contentTpl: [{
|
|
348
|
+
type: ContentChild,
|
|
349
|
+
args: ["contentTpl", { read: TemplateRef }]
|
|
350
|
+
}] } });
|
|
351
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQW1CLFlBQVksRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFDLFVBQVUsRUFBYyxNQUFNLGtDQUFrQyxDQUFDO0FBRXpFLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7QUFNNUIsTUFBTSxPQUFPLGNBQTBDLFNBQVEsYUFBYTtJQWtTeEUsWUFBNkIsTUFBcUI7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFEaUIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUZsRCxnQkFBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBS2xDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDcEIsSUFBSSxDQUFDLGdCQUFnQixDQUN4QixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQXZTRCxJQUFJLFVBQVUsQ0FBQyxHQUF1QjtRQUNsQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEtBQUssR0FBRztZQUFFLE9BQU87UUFDNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNULFVBQVUsRUFBRSxHQUFHO1lBQ2YsTUFBTSxFQUFFLENBQUM7U0FD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SUFBSSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxHQUFlO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxHQUFlO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxHQUFlO1FBQ3pCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFDRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxHQUFlO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxHQUFlO1FBQzFCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxHQUFlO1FBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFJLFlBQVksQ0FBQyxHQUFlO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxHQUFlO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxHQUFlO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFB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QW9CO3FHQUFwQixvQkFBb0IsK0lBR0YsV0FBVzsyRkFIN0Isb0JBQW9CO2tCQUh6QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx3QkFBd0I7aUJBQ3JDO2lHQUlzRCxVQUFVO3NCQUE1RCxZQUFZO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyQ29udGVudEluaXQsIENvbnRlbnRDaGlsZCwgRGlyZWN0aXZlLCBUZW1wbGF0ZVJlZn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERlYm91bmNlIH0gZnJvbSBcImxvZGFzaC1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSBcIkBzbWFydHNvZnQwMDEvYW5ndWxhclwiO1xuaW1wb3J0IHtDcnVkRmFjYWRlLCBJQ3J1ZEZpbHRlcn0gZnJvbSBcIkBzbWFydHNvZnQwMDEvY3J1ZC1zaGVsbC1hbmd1bGFyXCI7XG5pbXBvcnQge0lDcnVkRmlsdGVyUXVlcnlJdGVtfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9jcnVkLXNoZWxsLWFuZ3VsYXIvbGliL21vZGVscy9pbnRlcmZhY2VzXCI7XG5pbXBvcnQgKiBhcyBfIGZyb20gXCJsb2Rhc2hcIjtcblxuaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJUeXBlID0gc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJzQ29udGV4dDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIHByaXZhdGUgX2ZpbHRlcj86IElDcnVkRmlsdGVyO1xuXG4gICAgc2V0IHNlYXJjaFRleHQodmFsOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbHRlciAmJiB0aGlzLl9maWx0ZXIuc2VhcmNoVGV4dCA9PT0gdmFsKSByZXR1cm47XG4gICAgICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICAgICAgICBzZWFyY2hUZXh0OiB2YWwsXG4gICAgICAgICAgICBvZmZzZXQ6IDBcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldCBzZWFyY2hUZXh0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyPy5zZWFyY2hUZXh0O1xuICAgIH1cblxuICAgIHNldCBwYWdlKHZhbDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuX2ZpbHRlcj8ubGltaXQgPyAodGhpcy5fZmlsdGVyPy5saW1pdCAqIHZhbCk6IDA7XG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXIgJiYgdGhpcy5fZmlsdGVyLm9mZnNldCA9PT0gb2Zmc2V0KSByZXR1cm47XG4gICAgICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICAgICAgICBvZmZzZXQ6IG9mZnNldFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0IHBhZ2UoKSB7XG4gICAgICAgIGlmICghdGhpcy5fZmlsdGVyKSByZXR1cm4gMTtcbiAgICAgICAgaWYgKCF0aGlzLl9maWx0ZXIub2Zmc2V0IHx8ICF0aGlzLl9maWx0ZXIubGltaXQpIHJldHVybiAxO1xuXG4gICAgICAgIHJldHVybiAodGhpcy5fZmlsdGVyLm9mZnNldCAvIHRoaXMuX2ZpbHRlci5saW1pdCk7XG4gICAgfVxuXG4gICAgc2V0IGxpbWl0KHZhbDogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0aGlzLl9maWx0ZXIgJiYgdGhpcy5fZmlsdGVyLmxpbWl0ID09PSB2YWwpIHJldHVybjtcbiAgICAgICAgdGhpcy5yZWZyZXNoKHtcbiAgICAgICAgICAgIGxpbWl0OiB2YWwsXG4gICAgICAgICAgICBvZmZzZXQ6IDBcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldCBsaW1pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9maWx0ZXIpIHJldHVybiAyMDtcbiAgICAgICAgaWYgKCF0aGlzLl9maWx0ZXIubGltaXQpIHJldHVybiAyMDtcblxuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyLmxpbWl0O1xuICAgIH1cblxuICAgIHNldCBzb3J0QnkodmFsOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbHRlciAmJiB0aGlzLl9maWx0ZXIuc29ydEJ5ID09PSB2YWwpIHJldHVybjtcbiAgICAgICAgdGhpcy5yZWZyZXNoKHtcbiAgICAgICAgICAgIHNvcnRCeTogdmFsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQgc29ydEJ5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyPy5zb3J0Qnk7XG4gICAgfVxuXG4gICAgc2V0IHF1ZXJ5KHZhbDogSUNydWRGaWx0ZXJRdWVyeUl0ZW1bXSB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodGhpcy5fZmlsdGVyICYmIHRoaXMuX2ZpbHRlci5xdWVyeSA9PT0gdmFsKSByZXR1cm47XG4gICAgICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICAgICAgICBxdWVyeTogdmFsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQgcXVlcnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXI/LnF1ZXJ5O1xuICAgIH1cblxuICAgIHNldCBzb3J0RGVzYyh2YWw6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbHRlciAmJiB0aGlzLl9maWx0ZXIuc29ydERlc2MgPT09IHZhbCkgcmV0dXJuO1xuICAgICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICAgICAgc29ydERlc2M6IHZhbFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzZXQgc29ydCh2YWw6IHsgYnk/OiBzdHJpbmcsIGRlc2M/OiBib29sZWFuIH0gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuX2ZpbHRlciAmJiB0aGlzLl9maWx0ZXIuc29ydEJ5ID09PSB2YWwpIHJldHVybjtcbiAgICAgICAgdGhpcy5yZWZyZXNoKHtcbiAgICAgICAgICAgIHNvcnRCeTogdmFsPy5ieSxcbiAgICAgICAgICAgIHNvcnREZXNjOiB2YWw/LmRlc2NcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGdldCBzb3J0KCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgYnk6IHRoaXMuX2ZpbHRlcj8uc29ydEJ5LFxuICAgICAgICAgICAgZGVzYzogdGhpcy5fZmlsdGVyPy5zb3J0RGVzY1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldCBzb3J0RGVzYygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcj8uc29ydERlc2M7XG4gICAgfVxuXG4gICAgc2V0IG9ubHlJbWFnZSh2YWw6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKCF2YWwgJiYgdGhpcy5vbmx5SW1hZ2UgJiYgdGhpcy5fZmlsdGVyKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9maWx0ZXIucXVlcnkgPyB0aGlzLl9maWx0ZXIucXVlcnlcbiAgICAgICAgICAgICAgICA/LmZpbHRlcihxID0+ICEocS50eXBlID09PSBcIj1cIiAmJiBxLmtleSA9PT0gJ29ubHlJbWFnZScpKSA6IFtdO1xuXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICAgICAgICAgIHF1ZXJ5OiBbXG4gICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbCAmJiAhdGhpcy5vbmx5SW1hZ2UgJiYgdGhpcy5fZmlsdGVyKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9maWx0ZXIucXVlcnlcbiAgICAgICAgICAgICAgICA/IHRoaXMuX2ZpbHRlci5xdWVyeS5maWx0ZXIocSA9PiAhKHEudHlwZSA9PT0gXCI9XCIgJiYgcS5rZXkgPT09ICdvbmx5SW1hZ2UnKSkgOiBbXTtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAwLFxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBbXG4gICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCI9XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwib25seUltYWdlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGRlbjogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgb25seUltYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyPy5xdWVyeVxuICAgICAgICAgICAgPy5zb21lKHEgPT4gcS50eXBlID09PSBcIj1cIiAmJiBxLmtleSA9PT0gJ29ubHlJbWFnZScgJiYgcS52YWx1ZSA9PT0gMSlcbiAgICB9XG5cbiAgICBzZXQgZXhwb3N1cmUodmFsOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICghdmFsICYmIHRoaXMuZXhwb3N1cmUgJiYgdGhpcy5fZmlsdGVyKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9maWx0ZXIucXVlcnkgPyB0aGlzLl9maWx0ZXIucXVlcnlcbiAgICAgICAgICAgICAgICA/LmZpbHRlcihxID0+ICEocS50eXBlID09PSBcIj1cIiAmJiBxLmtleSA9PT0gJ2xvY2F0aW9uVHlwZScgJiYgcS52YWx1ZSA9PT0gXCJFa3Nwb3p5Y2phXCIpKSA6IFtdO1xuXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICAgICAgICAgIHF1ZXJ5OiBbXG4gICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbCAmJiAhdGhpcy5leHBvc3VyZSAmJiB0aGlzLl9maWx0ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZpbHRlci5xdWVyeVxuICAgICAgICAgICAgICAgID8gdGhpcy5fZmlsdGVyLnF1ZXJ5Py5maWx0ZXIocSA9PiAhKHEudHlwZSA9PT0gXCI9XCIgICYmIHEua2V5ID09PSAnbG9jYXRpb25UeXBlJyAmJiBxLnZhbHVlID09PSBcIkVrc3BvenljamFcIikpIDogW107XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgICAgICBxdWVyeTogW1xuICAgICAgICAgICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiPVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiBcImxvY2F0aW9uVHlwZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRWtzcG96eWNqYVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaGlkZGVuOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBleHBvc3VyZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcj8ucXVlcnlcbiAgICAgICAgICAgID8uc29tZShxID0+IHEudHlwZSA9PT0gXCI9XCIgJiYgcS5rZXkgPT09ICdsb2NhdGlvblR5cGUnICYmIHEudmFsdWUgPT09IFwiRWtzcG96eWNqYVwiKVxuICAgIH1cblxuICAgIHNldCBjcmVhdG9ycyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJTZXQodGhpcy5jcmVhdG9ycywgdmFsLCAnY3JlYXRvcnMnLCBcIj1cIik7XG4gICAgfVxuICAgIGdldCBjcmVhdG9ycygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KFwiPVwiLCAnY3JlYXRvcnMnKTtcbiAgICB9XG5cbiAgICBzZXQgY3JlYXRlRGF0ZXNGcm9tKHZhbDogRmlsdGVyVHlwZSkge1xuICAgICAgICB0aGlzLmZpbHRlclNldCh0aGlzLmNyZWF0ZURhdGVzRnJvbSwgdmFsLCAnY3JlYXRlRGF0ZXMnLCBcIj49XCIpO1xuICAgIH1cbiAgICBnZXQgY3JlYXRlRGF0ZXNGcm9tKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoXCI+PVwiLCAnY3JlYXRlRGF0ZXMnKTtcbiAgICB9XG5cbiAgICBzZXQgY3JlYXRlRGF0ZXNUbyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJTZXQodGhpcy5jcmVhdGVEYXRlc1RvLCB2YWwsICdjcmVhdGVEYXRlcycsIFwiPD1cIik7XG4gICAgfVxuICAgIGdldCBjcmVhdGVEYXRlc1RvKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoXCI8PVwiLCAnY3JlYXRlRGF0ZXMnKTtcbiAgICB9XG5cbiAgICBzZXQgcHVibGljYXRpb25EYXRlRnJvbSh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJTZXQodGhpcy5wdWJsaWNhdGlvbkRhdGVGcm9tLCB2YWwsICdwdWJsaWNhdGlvbkRhdGUnLCBcIj49XCIpO1xuICAgIH1cbiAgICBnZXQgcHVibGljYXRpb25EYXRlRnJvbSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KFwiPj1cIiwgJ3B1YmxpY2F0aW9uRGF0ZScpO1xuICAgIH1cblxuICAgIHNldCBwdWJsaWNhdGlvbkRhdGVUbyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJTZXQodGhpcy5wdWJsaWNhdGlvbkRhdGVUbywgdmFsLCAncHVibGljYXRpb25EYXRlJywgXCI8PVwiKTtcbiAgICB9XG4gICAgZ2V0IHB1YmxpY2F0aW9uRGF0ZVRvKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoXCI8PVwiLCAncHVibGljYXRpb25EYXRlJyk7XG4gICAgfVxuXG4gICAgc2V0IGNyZWF0ZVBsYWNlcyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJTZXQodGhpcy5jcmVhdGVQbGFjZXMsIHZhbCwgJ2NyZWF0ZVBsYWNlcycsIFwiPVwiKTtcbiAgICB9XG4gICAgZ2V0IGNyZWF0ZVBsYWNlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KFwiPVwiLCAnY3JlYXRlUGxhY2VzJyk7XG4gICAgfVxuXG4gICAgc2V0IGtleXdvcmRzKHZhbDogRmlsdGVyVHlwZSkge1xuICAgICAgICB0aGlzLmZpbHRlclNldCh0aGlzLmtleXdvcmRzLCB2YWwsICdrZXl3b3JkcycsIFwiPVwiKTtcbiAgICB9XG4gICAgZ2V0IGtleXdvcmRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoXCI9XCIsICdrZXl3b3JkcycpO1xuICAgIH1cblxuICAgIHNldCB0ZWNobmlxdWVzKHZhbDogRmlsdGVyVHlwZSkge1xuICAgICAgICB0aGlzLmZpbHRlclNldCh0aGlzLnRlY2huaXF1ZXMsIHZhbCwgJ3RlY2huaXF1ZXMnLCBcIj1cIik7XG4gICAgfVxuICAgIGdldCB0ZWNobmlxdWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoXCI9XCIsICd0ZWNobmlxdWVzJyk7XG4gICAgfVxuXG4gICAgc2V0IG1hdGVyaWFscyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJTZXQodGhpcy5tYXRlcmlhbHMsIHZhbCwgJ21hdGVyaWFscycsIFwiPVwiKTtcbiAgICB9XG4gICAgZ2V0IG1hdGVyaWFscygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KFwiPVwiLCAnbWF0ZXJpYWxzJyk7XG4gICAgfVxuXG4gICAgc2V0IGNhdGVnb3J5KHZhbDogRmlsdGVyVHlwZSkge1xuICAgICAgICB0aGlzLmZpbHRlclNldCh0aGlzLmNhdGVnb3J5LCB2YWwsICdjYXRlZ29yeScsIFwiPVwiKTtcbiAgICB9XG4gICAgZ2V0IGNhdGVnb3J5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoXCI9XCIsICdjYXRlZ29yeScpO1xuICAgIH1cblxuICAgIHNldCBkZXBhcnRtZW50KHZhbDogRmlsdGVyVHlwZSkge1xuICAgICAgICB0aGlzLmZpbHRlclNldCh0aGlzLmRlcGFydG1lbnQsIHZhbCwgJ2RlcGFydG1lbnQnLCBcIj1cIik7XG4gICAgfVxuICAgIGdldCBkZXBhcnRtZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoXCI9XCIsICdkZXBhcnRtZW50Jyk7XG4gICAgfVxuXG4gICAgc2V0IGxvY2F0aW9uKHZhbDogRmlsdGVyVHlwZSkge1xuICAgICAgICB0aGlzLmZpbHRlclNldCh0aGlzLmNhdGVnb3J5LCB2YWwsICdsb2NhdGlvbicsIFwiPVwiKTtcbiAgICB9XG4gICAgZ2V0IGxvY2F0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoXCI9XCIsICdsb2NhdGlvbicpO1xuICAgIH1cblxuICAgIHNldCBsb2NhdGlvblR5cGUodmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMuY2F0ZWdvcnksIHZhbCwgJ2xvY2F0aW9uVHlwZScsIFwiPVwiKTtcbiAgICB9XG4gICAgZ2V0IGxvY2F0aW9uVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KFwiPVwiLCAnbG9jYXRpb25UeXBlJyk7XG4gICAgfVxuXG4gICAgc2V0IGN5Y2xlcyh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJTZXQodGhpcy5jeWNsZXMsIHZhbCwgJ2N5Y2xlcycsIFwiPVwiKTtcbiAgICB9XG4gICAgZ2V0IGN5Y2xlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KFwiPVwiLCAnY3ljbGVzJyk7XG4gICAgfVxuXG4gICAgc2V0IGF1dGhvcnModmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMuYXV0aG9ycywgdmFsLCAnYXV0aG9ycycsIFwiPVwiKTtcbiAgICB9XG4gICAgZ2V0IGF1dGhvcnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlckdldChcIj1cIiwgJ2F1dGhvcnMnKTtcbiAgICB9XG5cbiAgICBzZXQgdGFyZ2V0R3JvdXBzKHZhbDogRmlsdGVyVHlwZSkge1xuICAgICAgICB0aGlzLmZpbHRlclNldCh0aGlzLnRhcmdldEdyb3VwcywgdmFsLCAndGFyZ2V0R3JvdXBzJywgXCI9XCIpO1xuICAgIH1cbiAgICBnZXQgdGFyZ2V0R3JvdXBzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoXCI9XCIsICd0YXJnZXRHcm91cHMnKTtcbiAgICB9XG5cbiAgICBzZXQgdGVtcGxhdGUodmFsOiBGaWx0ZXJUeXBlKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyU2V0KHRoaXMudGVtcGxhdGUsIHZhbCwgJ3RlbXBsYXRlJywgXCI9XCIpO1xuICAgIH1cbiAgICBnZXQgdGVtcGxhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlckdldChcIj1cIiwgJ3RlbXBsYXRlJyk7XG4gICAgfVxuXG4gICAgc2V0IHR5cGVzKHZhbDogRmlsdGVyVHlwZSkge1xuICAgICAgICB0aGlzLmZpbHRlclNldCh0aGlzLnR5cGVzLCB2YWwsICd0eXBlcycsIFwiPVwiKTtcbiAgICB9XG4gICAgZ2V0IHR5cGVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXJHZXQoXCI9XCIsICd0eXBlcycpO1xuICAgIH1cblxuICAgIHNldCBleHRyYU51bWJlcnNWYWx1ZSh2YWw6IEZpbHRlclR5cGUpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJTZXQodGhpcy5jcmVhdG9ycywgdmFsLCAnZXh0cmFOdW1iZXJzVmFsdWUnLCBcIj1cIik7XG4gICAgfVxuICAgIGdldCBleHRyYU51bWJlcnNWYWx1ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyR2V0KFwiPVwiLCAnZXh0cmFOdW1iZXJzVmFsdWUnKTtcbiAgICB9XG5cbiAgICB0b3RhbENvdW50JCA9IHRoaXMuZmFjYWRlLnRvdGFsQ291bnQkO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmYWNhZGU6IENydWRGYWNhZGU8VD4pIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLmZhY2FkZS5maWx0ZXIkLnBpcGUoXG4gICAgICAgICAgICB0aGlzLnRha2VVbnRpbERlc3Ryb3lcbiAgICAgICAgKS5zdWJzY3JpYmUodmFsID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2ZpbHRlciA9IHZhbDtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBARGVib3VuY2UoNTAwKVxuICAgIHByaXZhdGUgcmVmcmVzaChmaWx0ZXI6IElDcnVkRmlsdGVyKTogdm9pZCB7XG4gICAgICAgIGxldCBjaGFuZ2UgPSBmYWxzZTtcblxuICAgICAgICBPYmplY3Qua2V5cyhmaWx0ZXIpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmICghXy5pc0VxdWFsKCh0aGlzLl9maWx0ZXIgYXMgYW55KVtrZXldLCAoZmlsdGVyIGFzIGFueSlba2V5XSkpIGNoYW5nZSA9IHRydWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmICghY2hhbmdlKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5mYWNhZGUucmVhZCh7XG4gICAgICAgICAgICAuLi50aGlzLmZhY2FkZS5maWx0ZXIsXG4gICAgICAgICAgICAuLi5maWx0ZXJcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaWx0ZXJHZXQoa2V5OiBzdHJpbmcsIHR5cGU6IGFueSkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyPy5xdWVyeVxuICAgICAgICAgICAgPy5maW5kKHEgPT4gcS50eXBlID09PSBrZXkgJiYgcS5rZXkgPT09IHR5cGUpPy52YWx1ZVxuICAgIH1cblxuICAgIHByaXZhdGUgZmlsdGVyU2V0KGN1cnJlbnRWYWx1ZTogRmlsdGVyVHlwZSwgdmFsOiBGaWx0ZXJUeXBlLCBrZXk6IHN0cmluZywgdHlwZTogYW55KSB7XG4gICAgICAgIGlmICghdmFsICYmIHRoaXMuX2ZpbHRlcikge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZmlsdGVyPy5xdWVyeSA/IHRoaXMuX2ZpbHRlcj8ucXVlcnlcbiAgICAgICAgICAgICAgICA/LmZpbHRlcihxID0+ICEocS50eXBlID09PSB0eXBlICYmIHEua2V5ID09PSBrZXkpKSA6IFtdO1xuXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2goe1xuICAgICAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgICAgICBxdWVyeTogW1xuICAgICAgICAgICAgICAgICAgICAuLi5yZXN1bHRcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWwgJiYgY3VycmVudFZhbHVlICE9PSB2YWwgJiYgdGhpcy5fZmlsdGVyKSB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLl9maWx0ZXI/LnF1ZXJ5XG4gICAgICAgICAgICAgICAgPyB0aGlzLl9maWx0ZXI/LnF1ZXJ5Py5maWx0ZXIocSA9PiAhKHEudHlwZSA9PT0gdHlwZSAmJiBxLmtleSA9PT0ga2V5KSkgOiBbXTtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaCh7XG4gICAgICAgICAgICAgICAgb2Zmc2V0OiAwLFxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBbXG4gICAgICAgICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGRlbjogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBcInNtYXJ0LW1vYmlsZW1zLWZpbHRlcnNcIixcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRmlsdGVyc0Jhc2VDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj5pbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIGNvbnRleHQ/OiBGaWx0ZXJzQ29udGV4dDxUPjtcblxuICAgIEBDb250ZW50Q2hpbGQoXCJjb250ZW50VHBsXCIsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgY29udGVudFRwbDogVGVtcGxhdGVSZWY8YW55PiB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmYWNhZGU6IENydWRGYWNhZGU8VD4pIHsgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQgPSBuZXcgRmlsdGVyc0NvbnRleHQodGhpcy5mYWNhZGUpO1xuICAgIH1cbn1cblxuIl19
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AppComponent } from "./app/app.component";
|
|
2
|
+
export * from "./app/app.component";
|
|
3
|
+
export * from "./page/page.component";
|
|
4
|
+
export * from "./filters/filters.component";
|
|
5
|
+
export const COMPONENTS = [
|
|
6
|
+
AppComponent
|
|
7
|
+
];
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFakQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3RCLFlBQVk7Q0FDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcHBDb21wb25lbnR9IGZyb20gXCIuL2FwcC9hcHAuY29tcG9uZW50XCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL2FwcC9hcHAuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9wYWdlL3BhZ2UuY29tcG9uZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50XCI7XG5cbmV4cG9ydCBjb25zdCBDT01QT05FTlRTID0gW1xuICAgIEFwcENvbXBvbmVudFxuXTsiXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PageBaseComponent } from "@smartsoft001/angular";
|
|
2
|
+
import { Directive } from "@angular/core";
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class PageComponent extends PageBaseComponent {
|
|
5
|
+
}
|
|
6
|
+
PageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: PageComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7
|
+
PageComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.2", type: PageComponent, usesInheritance: true, ngImport: i0 });
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: PageComponent, decorators: [{
|
|
9
|
+
type: Directive
|
|
10
|
+
}] });
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9wYWdlL3BhZ2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBR3hDLE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQWlCOzswR0FBdkMsYUFBYTs4RkFBYixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BhZ2VCYXNlQ29tcG9uZW50fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9hbmd1bGFyXCI7XG5pbXBvcnQge0RpcmVjdGl2ZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUGFnZUNvbXBvbmVudCBleHRlbmRzIFBhZ2VCYXNlQ29tcG9uZW50IHt9Il19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export const DIRECTIVES = [];
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IERJUkVDVElWRVMgPSBbXTsiXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const environment = {
|
|
2
|
+
production: false,
|
|
3
|
+
apiUrl: ""
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC9hbmd1bGFyL3NyYy9saWIvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN2QixVQUFVLEVBQUUsS0FBSztJQUNqQixNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgZW52aXJvbm1lbnQgPSB7XG4gICAgcHJvZHVjdGlvbjogZmFsc2UsXG4gICAgYXBpVXJsOiBcIlwiXG59OyJdfQ==
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Injectable } from "@angular/core";
|
|
2
|
+
import { HttpClient } from "@angular/common/http";
|
|
3
|
+
import moment from 'moment';
|
|
4
|
+
import { combineLatest, lastValueFrom } from "rxjs";
|
|
5
|
+
import { SharedConfig } from "../../shared.config";
|
|
6
|
+
import { map } from "rxjs/operators";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common/http";
|
|
9
|
+
import * as i2 from "../../shared.config";
|
|
10
|
+
export class ConfigsService {
|
|
11
|
+
constructor(httpClient, config) {
|
|
12
|
+
this.httpClient = httpClient;
|
|
13
|
+
this.config = config;
|
|
14
|
+
}
|
|
15
|
+
get() {
|
|
16
|
+
const date = moment().format("YYYY-MM-DD");
|
|
17
|
+
return lastValueFrom(combineLatest([
|
|
18
|
+
this.httpClient.post(this.config.apiUrl + "object/object-of-the-week", {
|
|
19
|
+
dateStart: date, dateEnd: date
|
|
20
|
+
}),
|
|
21
|
+
this.httpClient.get(this.config.apiUrl + "setting/theme")
|
|
22
|
+
]).pipe(map(([r1, r2]) => {
|
|
23
|
+
return {
|
|
24
|
+
id: "",
|
|
25
|
+
objectOfTheDay: {
|
|
26
|
+
id: r1?.data?.current?.objectId,
|
|
27
|
+
title: r1?.data?.current?.title
|
|
28
|
+
},
|
|
29
|
+
theme: r2.data
|
|
30
|
+
};
|
|
31
|
+
})));
|
|
32
|
+
}
|
|
33
|
+
getPage(id) {
|
|
34
|
+
return this.httpClient.get(this.config.apiUrl + "page/" + id)
|
|
35
|
+
.pipe(map(r => r.data))
|
|
36
|
+
.toPromise();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
ConfigsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfigsService, deps: [{ token: i1.HttpClient }, { token: i2.SharedConfig }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
+
ConfigsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfigsService });
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: ConfigsService, decorators: [{
|
|
42
|
+
type: Injectable
|
|
43
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.SharedConfig }]; } });
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL2NvbmZpZ3MvY29uZmlncy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUlsRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7O0FBR25DLE1BQU0sT0FBTyxjQUFjO0lBQ3ZCLFlBQTZCLFVBQXNCLEVBQW1CLE1BQW9CO1FBQTdELGVBQVUsR0FBVixVQUFVLENBQVk7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBYztJQUMxRixDQUFDO0lBRUQsR0FBRztRQUNDLE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUzQyxPQUFPLGFBQWEsQ0FBQyxhQUFhLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQWdCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLDJCQUEyQixFQUFFO2dCQUNsRixTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJO2FBQ2pDLENBQUM7WUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBZ0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsZUFBZSxDQUFDO1NBQzNFLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsQ0FBRSxFQUFFLEVBQUUsRUFBRSxDQUFFLEVBQUUsRUFBRTtZQUNmLE9BQU87Z0JBQ0gsRUFBRSxFQUFFLEVBQUU7Z0JBQ04sY0FBYyxFQUFFO29CQUNaLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxRQUFRO29CQUMvQixLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSztpQkFDbEM7Z0JBQ0QsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFJO2FBQ2pCLENBQUE7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUFvQixDQUFDO0lBQzFCLENBQUM7SUFFRCxPQUFPLENBQUMsRUFBbUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBZ0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsT0FBTyxHQUFHLEVBQUUsQ0FBQzthQUN2RSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ3RCLFNBQVMsRUFBRSxDQUFBO0lBQ3BCLENBQUM7OzJHQTlCUSxjQUFjOytHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge2NvbWJpbmVMYXRlc3QsIGxhc3RWYWx1ZUZyb219IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7Q29uZmlnLCBQYWdlfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS1tb2JpbGVtcy9tb2RlbHNcIjtcblxuaW1wb3J0IHtTaGFyZWRDb25maWd9IGZyb20gXCIuLi8uLi9zaGFyZWQuY29uZmlnXCI7XG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb25maWdzU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LCBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogU2hhcmVkQ29uZmlnKSB7XG4gICAgfVxuXG4gICAgZ2V0KCk6IFByb21pc2U8Q29uZmlnPiB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpO1xuXG4gICAgICAgIHJldHVybiBsYXN0VmFsdWVGcm9tKGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAgICAgdGhpcy5odHRwQ2xpZW50LnBvc3Q8eyBkYXRhOiBhbnkgfT4odGhpcy5jb25maWcuYXBpVXJsICsgXCJvYmplY3Qvb2JqZWN0LW9mLXRoZS13ZWVrXCIsIHtcbiAgICAgICAgICAgICAgICBkYXRlU3RhcnQ6IGRhdGUsIGRhdGVFbmQ6IGRhdGVcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGhpcy5odHRwQ2xpZW50LmdldDx7IGRhdGE6IGFueSB9Pih0aGlzLmNvbmZpZy5hcGlVcmwgKyBcInNldHRpbmcvdGhlbWVcIilcbiAgICAgICAgXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoWyByMSwgcjIgXSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICBvYmplY3RPZlRoZURheToge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHIxPy5kYXRhPy5jdXJyZW50Py5vYmplY3RJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiByMT8uZGF0YT8uY3VycmVudD8udGl0bGVcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgdGhlbWU6IHIyLmRhdGFcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApKSBhcyBQcm9taXNlPENvbmZpZz47XG4gICAgfVxuXG4gICAgZ2V0UGFnZShpZDogbnVtYmVyIHwgJ2hvbWUnKTogUHJvbWlzZTxQYWdlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PHsgZGF0YTogYW55IH0+KHRoaXMuY29uZmlnLmFwaVVybCArIFwicGFnZS9cIiArIGlkKVxuICAgICAgICAgICAgLnBpcGUobWFwKHIgPT4gci5kYXRhKSlcbiAgICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgIH1cbn0iXX0=
|