@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.
Files changed (36) hide show
  1. package/esm2020/index.mjs +8 -0
  2. package/esm2020/lib/+state/configs.facade.mjs +54 -0
  3. package/esm2020/lib/components/app/app.component.mjs +13 -0
  4. package/esm2020/lib/components/filters/filters.component.mjs +351 -0
  5. package/esm2020/lib/components/index.mjs +8 -0
  6. package/esm2020/lib/components/page/page.component.mjs +11 -0
  7. package/esm2020/lib/directives/index.mjs +2 -0
  8. package/esm2020/lib/environments/environment.mjs +5 -0
  9. package/esm2020/lib/services/configs/configs.service.mjs +44 -0
  10. package/esm2020/lib/services/crud/crud.service.mjs +82 -0
  11. package/esm2020/lib/services/dictionary/dictionary.service.mjs +36 -0
  12. package/esm2020/lib/services/index.mjs +15 -0
  13. package/esm2020/lib/services/style/style.service.mjs +23 -0
  14. package/esm2020/lib/services/style/variables.mjs +33 -0
  15. package/esm2020/lib/shared.config.mjs +13 -0
  16. package/esm2020/lib/shared.module.mjs +91 -0
  17. package/esm2020/lib/translations.mjs +19 -0
  18. package/esm2020/smartsoft001-mobilems-angular.mjs +5 -0
  19. package/index.d.ts +7 -0
  20. package/lib/+state/configs.facade.d.ts +17 -0
  21. package/lib/components/app/app.component.d.ts +6 -0
  22. package/lib/components/filters/filters.component.d.ts +87 -0
  23. package/lib/components/index.d.ts +5 -0
  24. package/lib/components/page/page.component.d.ts +6 -0
  25. package/lib/directives/index.d.ts +1 -0
  26. package/lib/environments/environment.d.ts +4 -0
  27. package/lib/services/configs/configs.service.d.ts +13 -0
  28. package/lib/services/crud/crud.service.d.ts +18 -0
  29. package/lib/services/dictionary/dictionary.service.d.ts +26 -0
  30. package/lib/services/index.d.ts +9 -0
  31. package/lib/services/style/style.service.d.ts +10 -0
  32. package/lib/services/style/variables.d.ts +2 -0
  33. package/lib/shared.config.d.ts +6 -0
  34. package/lib/shared.module.d.ts +16 -0
  35. package/lib/translations.d.ts +6 -0
  36. 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=