@smartsoft001/crud-shell-angular 1.1.732 → 1.1.736
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/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/{esm2015/lib/+state/crud.actions.js → esm2020/lib/+state/crud.actions.mjs} +0 -0
- package/esm2020/lib/+state/crud.effects.mjs +182 -0
- package/esm2020/lib/+state/crud.facade.mjs +88 -0
- package/esm2020/lib/+state/crud.reducer.mjs +212 -0
- package/{esm2015/lib/+state/crud.selectors.js → esm2020/lib/+state/crud.selectors.mjs} +0 -0
- package/esm2020/lib/components/components.module.mjs +109 -0
- package/esm2020/lib/components/export/export.component.mjs +47 -0
- package/esm2020/lib/components/filter/base/base.component.mjs +140 -0
- package/esm2020/lib/components/filter/check/check.component.mjs +36 -0
- package/esm2020/lib/components/filter/date/date.component.mjs +41 -0
- package/esm2020/lib/components/filter/date-with-edit/date-with-edit.component.mjs +45 -0
- package/esm2020/lib/components/filter/filter.component.mjs +29 -0
- package/esm2020/lib/components/filter/flag/flag.component.mjs +16 -0
- package/{esm2015/lib/components/filter/index.js → esm2020/lib/components/filter/index.mjs} +0 -0
- package/esm2020/lib/components/filter/int/int.component.mjs +33 -0
- package/esm2020/lib/components/filter/radio/radio.component.mjs +16 -0
- package/esm2020/lib/components/filter/text/text.component.mjs +16 -0
- package/esm2020/lib/components/filters/filters.component.mjs +111 -0
- package/esm2020/lib/components/filters-config/filters-config.component.mjs +37 -0
- package/esm2020/lib/components/group/group.component.mjs +54 -0
- package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
- package/esm2020/lib/components/multiselect/multiselect.component.mjs +68 -0
- package/esm2020/lib/crud-full.module.mjs +105 -0
- package/esm2020/lib/crud.config.mjs +17 -0
- package/esm2020/lib/crud.module.mjs +107 -0
- package/esm2020/lib/factories/list-pagination/list-pagination.factory.mjs +69 -0
- package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
- package/{esm2015/lib/models/interfaces.js → esm2020/lib/models/interfaces.mjs} +0 -0
- package/esm2020/lib/pages/index.mjs +7 -0
- package/esm2020/lib/pages/item/base/base.component.mjs +44 -0
- package/esm2020/lib/pages/item/item.component.mjs +393 -0
- package/esm2020/lib/pages/item/standard/standard.component.mjs +15 -0
- package/esm2020/lib/pages/list/base/base.component.mjs +23 -0
- package/esm2020/lib/pages/list/list.component.mjs +343 -0
- package/esm2020/lib/pages/list/standard/standard.component.mjs +34 -0
- package/esm2020/lib/pipes/form-options/form-options.pipe.mjs +55 -0
- package/{esm2015/lib/pipes/index.js → esm2020/lib/pipes/index.mjs} +0 -0
- package/esm2020/lib/pipes/pipes.module.mjs +20 -0
- package/{esm2015/lib/providers/model-possibilities/model-possibilities.provider.js → esm2020/lib/providers/model-possibilities/model-possibilities.provider.mjs} +0 -0
- package/esm2020/lib/services/crud/crud.service.mjs +138 -0
- package/esm2020/lib/services/list-group/list-group.service.mjs +60 -0
- package/esm2020/lib/services/page/page.service.mjs +41 -0
- package/{esm2015/lib/services/search/search.service.js → esm2020/lib/services/search/search.service.mjs} +9 -8
- package/esm2020/lib/services/socket/socket.service.mjs +17 -0
- package/esm2020/smartsoft001-crud-shell-angular.mjs +5 -0
- package/fesm2015/smartsoft001-crud-shell-angular.mjs +2569 -0
- package/fesm2015/smartsoft001-crud-shell-angular.mjs.map +1 -0
- package/fesm2020/smartsoft001-crud-shell-angular.mjs +2729 -0
- package/fesm2020/smartsoft001-crud-shell-angular.mjs.map +1 -0
- package/lib/+state/crud.effects.d.ts +3 -0
- package/lib/+state/crud.effects.d.ts.map +1 -1
- package/lib/+state/crud.facade.d.ts +3 -0
- package/lib/+state/crud.facade.d.ts.map +1 -1
- package/lib/components/components.module.d.ts +22 -0
- package/lib/components/components.module.d.ts.map +1 -1
- package/lib/components/export/export.component.d.ts +3 -0
- package/lib/components/export/export.component.d.ts.map +1 -1
- package/lib/components/filter/base/base.component.d.ts +3 -0
- package/lib/components/filter/base/base.component.d.ts.map +1 -1
- package/lib/components/filter/check/check.component.d.ts +3 -0
- package/lib/components/filter/check/check.component.d.ts.map +1 -1
- package/lib/components/filter/date/date.component.d.ts +3 -0
- package/lib/components/filter/date/date.component.d.ts.map +1 -1
- package/lib/components/filter/date-with-edit/date-with-edit.component.d.ts +3 -0
- package/lib/components/filter/date-with-edit/date-with-edit.component.d.ts.map +1 -1
- package/lib/components/filter/filter.component.d.ts +3 -0
- package/lib/components/filter/filter.component.d.ts.map +1 -1
- package/lib/components/filter/flag/flag.component.d.ts +3 -0
- package/lib/components/filter/flag/flag.component.d.ts.map +1 -1
- package/lib/components/filter/int/int.component.d.ts +3 -0
- package/lib/components/filter/int/int.component.d.ts.map +1 -1
- package/lib/components/filter/radio/radio.component.d.ts +3 -0
- package/lib/components/filter/radio/radio.component.d.ts.map +1 -1
- package/lib/components/filter/text/text.component.d.ts +3 -0
- package/lib/components/filter/text/text.component.d.ts.map +1 -1
- package/lib/components/filters/filters.component.d.ts +3 -0
- package/lib/components/filters/filters.component.d.ts.map +1 -1
- package/lib/components/filters-config/filters-config.component.d.ts +3 -0
- package/lib/components/filters-config/filters-config.component.d.ts.map +1 -1
- package/lib/components/group/group.component.d.ts +3 -0
- package/lib/components/group/group.component.d.ts.map +1 -1
- package/lib/components/multiselect/multiselect.component.d.ts +3 -0
- package/lib/components/multiselect/multiselect.component.d.ts.map +1 -1
- package/lib/crud-full.module.d.ts +20 -0
- package/lib/crud-full.module.d.ts.map +1 -1
- package/lib/crud.config.d.ts +18 -2
- package/lib/crud.config.d.ts.map +1 -1
- package/lib/crud.module.d.ts +13 -0
- package/lib/crud.module.d.ts.map +1 -1
- package/lib/factories/list-pagination/list-pagination.factory.d.ts +3 -0
- package/lib/factories/list-pagination/list-pagination.factory.d.ts.map +1 -1
- package/lib/pages/index.d.ts +5 -1
- package/lib/pages/index.d.ts.map +1 -1
- package/lib/pages/item/base/base.component.d.ts +3 -0
- package/lib/pages/item/base/base.component.d.ts.map +1 -1
- package/lib/pages/item/item.component.d.ts +7 -1
- package/lib/pages/item/item.component.d.ts.map +1 -1
- package/lib/pages/item/standard/standard.component.d.ts +3 -0
- package/lib/pages/item/standard/standard.component.d.ts.map +1 -1
- package/lib/pages/list/base/base.component.d.ts +3 -0
- package/lib/pages/list/base/base.component.d.ts.map +1 -1
- package/lib/pages/list/list.component.d.ts +3 -0
- package/lib/pages/list/list.component.d.ts.map +1 -1
- package/lib/pages/list/standard/standard.component.d.ts +3 -0
- package/lib/pages/list/standard/standard.component.d.ts.map +1 -1
- package/lib/pipes/form-options/form-options.pipe.d.ts +3 -0
- package/lib/pipes/form-options/form-options.pipe.d.ts.map +1 -1
- package/lib/pipes/pipes.module.d.ts +5 -0
- package/lib/pipes/pipes.module.d.ts.map +1 -1
- package/lib/services/crud/crud.service.d.ts +3 -0
- package/lib/services/crud/crud.service.d.ts.map +1 -1
- package/lib/services/list-group/list-group.service.d.ts +3 -0
- package/lib/services/list-group/list-group.service.d.ts.map +1 -1
- package/lib/services/page/page.service.d.ts +3 -0
- package/lib/services/page/page.service.d.ts.map +1 -1
- package/lib/services/search/search.service.d.ts +3 -0
- package/lib/services/search/search.service.d.ts.map +1 -1
- package/lib/services/socket/socket.service.d.ts +5 -0
- package/lib/services/socket/socket.service.d.ts.map +1 -1
- package/package.json +38 -25
- package/smartsoft001-crud-shell-angular.d.ts +1 -17
- package/smartsoft001-crud-shell-angular.d.ts.map +1 -1
- package/bundles/smartsoft001-crud-shell-angular.umd.js +0 -3283
- package/bundles/smartsoft001-crud-shell-angular.umd.js.map +0 -1
- package/esm2015/lib/+state/crud.effects.js +0 -178
- package/esm2015/lib/+state/crud.facade.js +0 -92
- package/esm2015/lib/+state/crud.reducer.js +0 -92
- package/esm2015/lib/components/components.module.js +0 -65
- package/esm2015/lib/components/export/export.component.js +0 -55
- package/esm2015/lib/components/filter/base/base.component.js +0 -144
- package/esm2015/lib/components/filter/check/check.component.js +0 -34
- package/esm2015/lib/components/filter/date/date.component.js +0 -42
- package/esm2015/lib/components/filter/date-with-edit/date-with-edit.component.js +0 -43
- package/esm2015/lib/components/filter/filter.component.js +0 -30
- package/esm2015/lib/components/filter/flag/flag.component.js +0 -13
- package/esm2015/lib/components/filter/int/int.component.js +0 -31
- package/esm2015/lib/components/filter/radio/radio.component.js +0 -13
- package/esm2015/lib/components/filter/text/text.component.js +0 -13
- package/esm2015/lib/components/filters/filters.component.js +0 -124
- package/esm2015/lib/components/filters-config/filters-config.component.js +0 -46
- package/esm2015/lib/components/group/group.component.js +0 -65
- package/esm2015/lib/components/multiselect/multiselect.component.js +0 -74
- package/esm2015/lib/crud-full.module.js +0 -83
- package/esm2015/lib/crud.config.js +0 -14
- package/esm2015/lib/crud.module.js +0 -84
- package/esm2015/lib/factories/list-pagination/list-pagination.factory.js +0 -73
- package/esm2015/lib/pages/index.js +0 -3
- package/esm2015/lib/pages/item/base/base.component.js +0 -44
- package/esm2015/lib/pages/item/item.component.js +0 -345
- package/esm2015/lib/pages/item/standard/standard.component.js +0 -13
- package/esm2015/lib/pages/list/base/base.component.js +0 -30
- package/esm2015/lib/pages/list/list.component.js +0 -319
- package/esm2015/lib/pages/list/standard/standard.component.js +0 -39
- package/esm2015/lib/pipes/form-options/form-options.pipe.js +0 -56
- package/esm2015/lib/pipes/pipes.module.js +0 -16
- package/esm2015/lib/services/crud/crud.service.js +0 -143
- package/esm2015/lib/services/list-group/list-group.service.js +0 -61
- package/esm2015/lib/services/page/page.service.js +0 -48
- package/esm2015/lib/services/socket/socket.service.js +0 -14
- package/esm2015/smartsoft001-crud-shell-angular.js +0 -22
- package/fesm2015/smartsoft001-crud-shell-angular.js +0 -2638
- package/fesm2015/smartsoft001-crud-shell-angular.js.map +0 -1
- package/lib/+state/crud.effects.ngfactory.d.ts.map +0 -1
- package/lib/+state/crud.facade.ngfactory.d.ts.map +0 -1
- package/lib/components/components.module.ngfactory.d.ts.map +0 -1
- package/lib/components/export/export.component.ngfactory.d.ts.map +0 -1
- package/lib/components/export/export.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/components/filter/check/check.component.ngfactory.d.ts.map +0 -1
- package/lib/components/filter/check/check.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/components/filter/date/date.component.ngfactory.d.ts.map +0 -1
- package/lib/components/filter/date/date.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/components/filter/date-with-edit/date-with-edit.component.ngfactory.d.ts.map +0 -1
- package/lib/components/filter/date-with-edit/date-with-edit.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/components/filter/filter.component.ngfactory.d.ts.map +0 -1
- package/lib/components/filter/filter.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/components/filter/flag/flag.component.ngfactory.d.ts.map +0 -1
- package/lib/components/filter/flag/flag.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/components/filter/int/int.component.ngfactory.d.ts.map +0 -1
- package/lib/components/filter/int/int.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/components/filter/radio/radio.component.ngfactory.d.ts.map +0 -1
- package/lib/components/filter/radio/radio.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/components/filter/text/text.component.ngfactory.d.ts.map +0 -1
- package/lib/components/filter/text/text.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/components/filters/filters.component.ngfactory.d.ts.map +0 -1
- package/lib/components/filters/filters.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/components/filters-config/filters-config.component.ngfactory.d.ts.map +0 -1
- package/lib/components/filters-config/filters-config.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/components/group/group.component.ngfactory.d.ts.map +0 -1
- package/lib/components/group/group.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/components/multiselect/multiselect.component.ngfactory.d.ts.map +0 -1
- package/lib/components/multiselect/multiselect.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/crud-full.module.ngfactory.d.ts.map +0 -1
- package/lib/crud.config.ngfactory.d.ts.map +0 -1
- package/lib/crud.module.ngfactory.d.ts.map +0 -1
- package/lib/factories/list-pagination/list-pagination.factory.ngfactory.d.ts.map +0 -1
- package/lib/pages/item/item.component.ngfactory.d.ts.map +0 -1
- package/lib/pages/item/standard/standard.component.ngfactory.d.ts.map +0 -1
- package/lib/pages/item/standard/standard.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/pages/list/list.component.ngfactory.d.ts.map +0 -1
- package/lib/pages/list/standard/standard.component.ngfactory.d.ts.map +0 -1
- package/lib/pages/list/standard/standard.component.scss.shim.ngstyle.d.ts.map +0 -1
- package/lib/pipes/form-options/form-options.pipe.ngfactory.d.ts.map +0 -1
- package/lib/pipes/pipes.module.ngfactory.d.ts.map +0 -1
- package/lib/services/crud/crud.service.ngfactory.d.ts.map +0 -1
- package/lib/services/list-group/list-group.service.ngfactory.d.ts.map +0 -1
- package/lib/services/page/page.service.ngfactory.d.ts.map +0 -1
- package/lib/services/search/search.service.ngfactory.d.ts.map +0 -1
- package/lib/services/socket/socket.service.ngfactory.d.ts.map +0 -1
- package/smartsoft001-crud-shell-angular.metadata.json +0 -1
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Directive, Inject, Input, Optional } from "@angular/core";
|
|
3
|
-
import { Debounce } from "lodash-decorators";
|
|
4
|
-
import { FieldType } from "@smartsoft001/models";
|
|
5
|
-
import { CrudFacade } from "../../../+state/crud.facade";
|
|
6
|
-
import { CRUD_MODEL_POSSIBILITIES_PROVIDER, ICrudModelPossibilitiesProvider, } from "../../../providers/model-possibilities/model-possibilities.provider";
|
|
7
|
-
import { CrudConfig } from "../../../crud.config";
|
|
8
|
-
export class BaseComponent {
|
|
9
|
-
constructor(facade, config, modelPossibilitiesProvider) {
|
|
10
|
-
this.facade = facade;
|
|
11
|
-
this.config = config;
|
|
12
|
-
this.modelPossibilitiesProvider = modelPossibilitiesProvider;
|
|
13
|
-
}
|
|
14
|
-
get value() {
|
|
15
|
-
if (this.isArrayType()) {
|
|
16
|
-
return this.filter.query
|
|
17
|
-
.filter((q) => q.key === this.item.key && q.type === this.item.type)
|
|
18
|
-
.map(q => q.value);
|
|
19
|
-
}
|
|
20
|
-
const query = this.filter.query.find((q) => q.key === this.item.key && q.type === this.item.type);
|
|
21
|
-
return query === null || query === void 0 ? void 0 : query.value;
|
|
22
|
-
}
|
|
23
|
-
set value(val) {
|
|
24
|
-
this.refresh(val);
|
|
25
|
-
}
|
|
26
|
-
get minValue() {
|
|
27
|
-
if (this.isArrayType()) {
|
|
28
|
-
return this.filter.query
|
|
29
|
-
.filter((q) => q.key === this.item.key && q.type === ">=")
|
|
30
|
-
.map(q => q.value);
|
|
31
|
-
}
|
|
32
|
-
const query = this.filter.query.find((q) => q.key === this.item.key && q.type === ">=");
|
|
33
|
-
return query === null || query === void 0 ? void 0 : query.value;
|
|
34
|
-
}
|
|
35
|
-
set minValue(val) {
|
|
36
|
-
this.refresh(val, ">=");
|
|
37
|
-
}
|
|
38
|
-
get maxValue() {
|
|
39
|
-
if (this.isArrayType()) {
|
|
40
|
-
return this.filter.query
|
|
41
|
-
.filter((q) => q.key === this.item.key && q.type === "<=")
|
|
42
|
-
.map(q => q.value);
|
|
43
|
-
}
|
|
44
|
-
const query = this.filter.query.find((q) => q.key === this.item.key && q.type === "<=");
|
|
45
|
-
return query === null || query === void 0 ? void 0 : query.value;
|
|
46
|
-
}
|
|
47
|
-
set maxValue(val) {
|
|
48
|
-
this.refresh(val, "<=");
|
|
49
|
-
}
|
|
50
|
-
refresh(val, type = null) {
|
|
51
|
-
if (!type)
|
|
52
|
-
type = this.item.type;
|
|
53
|
-
if (this.isArrayType()) {
|
|
54
|
-
this.refreshForArray(val, type);
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
let query = this.filter.query.find((q) => q.key === this.item.key && q.type === type);
|
|
58
|
-
if (val === null || val === undefined || val === '') {
|
|
59
|
-
const index = this.filter.query.indexOf(query);
|
|
60
|
-
if (index > -1) {
|
|
61
|
-
this.filter.query.splice(index, 1);
|
|
62
|
-
}
|
|
63
|
-
this.facade.read(this.filter);
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (!query) {
|
|
67
|
-
query = {
|
|
68
|
-
key: this.item.key,
|
|
69
|
-
type: type,
|
|
70
|
-
value: null,
|
|
71
|
-
};
|
|
72
|
-
this.filter.query.push(query);
|
|
73
|
-
}
|
|
74
|
-
query.value = val;
|
|
75
|
-
query.label = this.item.label;
|
|
76
|
-
this.facade.read(this.filter);
|
|
77
|
-
}
|
|
78
|
-
ngOnInit() {
|
|
79
|
-
this.initPossibilities();
|
|
80
|
-
}
|
|
81
|
-
initPossibilities() {
|
|
82
|
-
let possibilities = this.item.possibilities$;
|
|
83
|
-
if (this.modelPossibilitiesProvider) {
|
|
84
|
-
const possibilitiesFromProvider = this.modelPossibilitiesProvider.get(this.config.type);
|
|
85
|
-
if (possibilitiesFromProvider && possibilitiesFromProvider[this.item.key])
|
|
86
|
-
possibilities = possibilitiesFromProvider[this.item.key];
|
|
87
|
-
}
|
|
88
|
-
this.possibilities$ = possibilities;
|
|
89
|
-
}
|
|
90
|
-
isArrayType() {
|
|
91
|
-
var _a;
|
|
92
|
-
return (((_a = this.item) === null || _a === void 0 ? void 0 : _a.fieldType) === FieldType.check);
|
|
93
|
-
}
|
|
94
|
-
refreshForArray(vals, type) {
|
|
95
|
-
const queries = this.filter.query.filter((q) => q.key === this.item.key && q.type === type);
|
|
96
|
-
queries.forEach(query => {
|
|
97
|
-
const index = this.filter.query.indexOf(query);
|
|
98
|
-
if (index > -1) {
|
|
99
|
-
this.filter.query.splice(index, 1);
|
|
100
|
-
}
|
|
101
|
-
});
|
|
102
|
-
if (vals === null || vals === undefined || !vals.length) {
|
|
103
|
-
this.facade.read(this.filter);
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
vals.forEach(val => {
|
|
107
|
-
const query = {
|
|
108
|
-
key: this.item.key,
|
|
109
|
-
type: type,
|
|
110
|
-
value: val,
|
|
111
|
-
};
|
|
112
|
-
this.filter.query.push(query);
|
|
113
|
-
});
|
|
114
|
-
this.facade.read(this.filter);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
118
|
-
BaseComponent.decorators = [
|
|
119
|
-
{ type: Directive }
|
|
120
|
-
];
|
|
121
|
-
/**
|
|
122
|
-
* @type {function(): !Array<(null|{
|
|
123
|
-
* type: ?,
|
|
124
|
-
* decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
|
|
125
|
-
* })>}
|
|
126
|
-
* @nocollapse
|
|
127
|
-
*/
|
|
128
|
-
BaseComponent.ctorParameters = () => [
|
|
129
|
-
{ type: CrudFacade },
|
|
130
|
-
{ type: CrudConfig },
|
|
131
|
-
{ type: ICrudModelPossibilitiesProvider, decorators: [{ type: Optional }, { type: Inject, args: [CRUD_MODEL_POSSIBILITIES_PROVIDER,] }] }
|
|
132
|
-
];
|
|
133
|
-
/** @type {!Object<string, !Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
|
|
134
|
-
BaseComponent.propDecorators = {
|
|
135
|
-
item: [{ type: Input }],
|
|
136
|
-
filter: [{ type: Input }]
|
|
137
|
-
};
|
|
138
|
-
__decorate([
|
|
139
|
-
Debounce(500),
|
|
140
|
-
__metadata("design:type", Function),
|
|
141
|
-
__metadata("design:paramtypes", [Object, Object]),
|
|
142
|
-
__metadata("design:returntype", void 0)
|
|
143
|
-
], BaseComponent.prototype, "refresh", null);
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2Jhc2UvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBSTNDLE9BQU8sRUFBQyxTQUFTLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUc3RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUNMLGlDQUFpQyxFQUNqQywrQkFBK0IsR0FDaEMsTUFBTSxxRUFBcUUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFHaEQsTUFBTSxPQUFPLGFBQWE7SUErRHhCLFlBQ1ksTUFBcUIsRUFDdkIsTUFBcUIsRUFHckIsMEJBQTJEO1FBSnpELFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdkIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUdyQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQWlDO0lBQ2xFLENBQUM7SUEvREosSUFBSSxLQUFLO1FBQ1AsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUs7aUJBQ25CLE1BQU0sQ0FDTCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUM1RDtpQkFDQSxHQUFHLENB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QUMsQ0FBQzthQUNwQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM5QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sS0FBSyxHQUFHO2dCQUNaLEdBQUcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7Z0JBQ2xCLElBQUksRUFBRSxJQUFJO2dCQUNWLEtBQUssRUFBRSxHQUFHO2FBQ1gsQ0FBQztZQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDOzs7O1lBL0pGLFNBQVM7Ozs7Ozs7Ozs7WUFQRixVQUFVO1lBS1YsVUFBVTtZQUZoQiwrQkFBK0IsdUJBdUU1QixRQUFRLFlBQ1IsTUFBTSxTQUFDLGlDQUFpQzs7OzttQkFoRTFDLEtBQUs7cUJBQ0wsS0FBSzs7QUFvRU47SUFEQyxRQUFRLENBQUMsR0FBRyxDQUFDOzs7OzRDQXFDYiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE9wdGlvbmFsfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtEZWJvdW5jZX0gZnJvbSBcImxvZGFzaC1kZWNvcmF0b3JzXCI7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcbmltcG9ydCB7RmllbGRUeXBlLCBJTW9kZWxGaWx0ZXJ9IGZyb20gXCJAc21hcnRzb2Z0MDAxL21vZGVsc1wiO1xuXG5pbXBvcnQge0lDcnVkRmlsdGVyfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7Q3J1ZEZhY2FkZX0gZnJvbSBcIi4uLy4uLy4uLytzdGF0ZS9jcnVkLmZhY2FkZVwiO1xuaW1wb3J0IHtcbiAgQ1JVRF9NT0RFTF9QT1NTSUJJTElUSUVTX1BST1ZJREVSLFxuICBJQ3J1ZE1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyLFxufSBmcm9tIFwiLi4vLi4vLi4vcHJvdmlkZXJzL21vZGVsLXBvc3NpYmlsaXRpZXMvbW9kZWwtcG9zc2liaWxpdGllcy5wcm92aWRlclwiO1xuaW1wb3J0IHtDcnVkQ29uZmlnfSBmcm9tIFwiLi4vLi4vLi4vY3J1ZC5jb25maWdcIjtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgQmFzZUNvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHBvc3NpYmlsaXRpZXMkOiBPYnNlcnZhYmxlPHsgaWQ6IGFueTsgdGV4dDogc3RyaW5nIH1bXT47XG5cbiAgQElucHV0KCkgaXRlbTogSU1vZGVsRmlsdGVyO1xuICBASW5wdXQoKSBmaWx0ZXI6IElDcnVkRmlsdGVyO1xuXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIGlmICh0aGlzLmlzQXJyYXlUeXBlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlci5xdWVyeVxuICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAocSkgPT4gcS5rZXkgPT09IHRoaXMuaXRlbS5rZXkgJiYgcS50eXBlID09PSB0aGlzLml0ZW0udHlwZVxuICAgICAgICAgIClcbiAgICAgICAgICAubWFwKHEgPT4gcS52YWx1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmZpbHRlci5xdWVyeS5maW5kKFxuICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gdGhpcy5pdGVtLnR5cGVcbiAgICApO1xuICAgIHJldHVybiBxdWVyeT8udmFsdWU7XG4gIH1cblxuICBzZXQgdmFsdWUodmFsOiBhbnkpIHtcbiAgICB0aGlzLnJlZnJlc2godmFsKTtcbiAgfVxuXG4gIGdldCBtaW5WYWx1ZSgpOiBhbnkge1xuICAgIGlmICh0aGlzLmlzQXJyYXlUeXBlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlci5xdWVyeVxuICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgIChxKSA9PiBxLmtleSA9PT0gdGhpcy5pdGVtLmtleSAmJiBxLnR5cGUgPT09IFwiPj1cIlxuICAgICAgICAgIClcbiAgICAgICAgICAubWFwKHEgPT4gcS52YWx1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmZpbHRlci5xdWVyeS5maW5kKFxuICAgICAgICAocSkgPT4gcS5rZXkgPT09IHRoaXMuaXRlbS5rZXkgJiYgcS50eXBlID09PSBcIj49XCJcbiAgICApO1xuICAgIHJldHVybiBxdWVyeT8udmFsdWU7XG4gIH1cblxuICBzZXQgbWluVmFsdWUodmFsOiBhbnkpIHtcbiAgICB0aGlzLnJlZnJlc2godmFsLCBcIj49XCIpO1xuICB9XG5cbiAgZ2V0IG1heFZhbHVlKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNBcnJheVR5cGUoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnF1ZXJ5XG4gICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gXCI8PVwiXG4gICAgICAgICAgKVxuICAgICAgICAgIC5tYXAocSA9PiBxLnZhbHVlKTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZmlsdGVyLnF1ZXJ5LmZpbmQoXG4gICAgICAgIChxKSA9PiBxLmtleSA9PT0gdGhpcy5pdGVtLmtleSAmJiBxLnR5cGUgPT09IFwiPD1cIlxuICAgICk7XG4gICAgcmV0dXJuIHF1ZXJ5Py52YWx1ZTtcbiAgfVxuXG4gIHNldCBtYXhWYWx1ZSh2YWw6IGFueSkge1xuICAgIHRoaXMucmVmcmVzaCh2YWwsIFwiPD1cIik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZmFjYWRlOiBDcnVkRmFjYWRlPFQ+LFxuICAgIHByaXZhdGUgY29uZmlnOiBDcnVkQ29uZmlnPFQ+LFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChDUlVEX01PREVMX1BPU1NJQklMSVRJRVNfUFJPVklERVIpXG4gICAgcHJpdmF0ZSBtb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlcjogSUNydWRNb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlclxuICApIHt9XG5cbiAgQERlYm91bmNlKDUwMClcbiAgcmVmcmVzaCh2YWw6IGFueSwgdHlwZSA9IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoIXR5cGUpIHR5cGUgPSB0aGlzLml0ZW0udHlwZTtcblxuICAgIGlmICh0aGlzLmlzQXJyYXlUeXBlKCkpIHtcbiAgICAgIHRoaXMucmVmcmVzaEZvckFycmF5KHZhbCBhcyBbXSwgdHlwZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHF1ZXJ5ID0gdGhpcy5maWx0ZXIucXVlcnkuZmluZChcbiAgICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gdHlwZVxuICAgICk7XG5cbiAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gJycpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5maWx0ZXIucXVlcnkuaW5kZXhPZihxdWVyeSk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICB0aGlzLmZpbHRlci5xdWVyeS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZhY2FkZS5yZWFkKHRoaXMuZmlsdGVyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXF1ZXJ5KSB7XG4gICAgICBxdWVyeSA9IHtcbiAgICAgICAga2V5OiB0aGlzLml0ZW0ua2V5LFxuICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuZmlsdGVyLnF1ZXJ5LnB1c2gocXVlcnkpO1xuICAgIH1cblxuICAgIHF1ZXJ5LnZhbHVlID0gdmFsO1xuICAgIHF1ZXJ5LmxhYmVsID0gdGhpcy5pdGVtLmxhYmVsO1xuXG4gICAgdGhpcy5mYWNhZGUucmVhZCh0aGlzLmZpbHRlcik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRQb3NzaWJpbGl0aWVzKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRQb3NzaWJpbGl0aWVzKCk6IHZvaWQge1xuICAgIGxldCBwb3NzaWJpbGl0aWVzID0gdGhpcy5pdGVtLnBvc3NpYmlsaXRpZXMkO1xuXG4gICAgaWYgKHRoaXMubW9kZWxQb3NzaWJpbGl0aWVzUHJvdmlkZXIpIHtcbiAgICAgIGNvbnN0IHBvc3NpYmlsaXRpZXNGcm9tUHJvdmlkZXIgPSB0aGlzLm1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyLmdldCh0aGlzLmNvbmZpZy50eXBlKTtcbiAgICAgIGlmIChwb3NzaWJpbGl0aWVzRnJvbVByb3ZpZGVyICYmIHBvc3NpYmlsaXRpZXNGcm9tUHJvdmlkZXJbdGhpcy5pdGVtLmtleV0pXG4gICAgICAgIHBvc3NpYmlsaXRpZXMgPSBwb3NzaWJpbGl0aWVzRnJvbVByb3ZpZGVyW3RoaXMuaXRlbS5rZXldO1xuICAgIH1cblxuICAgIHRoaXMucG9zc2liaWxpdGllcyQgPSBwb3NzaWJpbGl0aWVzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FycmF5VHlwZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuaXRlbT8uZmllbGRUeXBlID09PSBGaWVsZFR5cGUuY2hlY2spO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoRm9yQXJyYXkodmFsczogW10sIHR5cGUpOiB2b2lkIHtcbiAgICBjb25zdCBxdWVyaWVzID0gdGhpcy5maWx0ZXIucXVlcnkuZmlsdGVyKFxuICAgICAgICAocSkgPT4gcS5rZXkgPT09IHRoaXMuaXRlbS5rZXkgJiYgcS50eXBlID09PSB0eXBlXG4gICAgKTtcblxuICAgIHF1ZXJpZXMuZm9yRWFjaChxdWVyeSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuZmlsdGVyLnF1ZXJ5LmluZGV4T2YocXVlcnkpO1xuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgdGhpcy5maWx0ZXIucXVlcnkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh2YWxzID09PSBudWxsIHx8IHZhbHMgPT09IHVuZGVmaW5lZCB8fCAhdmFscy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZmFjYWRlLnJlYWQodGhpcy5maWx0ZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhbHMuZm9yRWFjaCh2YWwgPT4ge1xuICAgICAgY29uc3QgcXVlcnkgPSB7XG4gICAgICAgIGtleTogdGhpcy5pdGVtLmtleSxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgdmFsdWU6IHZhbCxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuZmlsdGVyLnF1ZXJ5LnB1c2gocXVlcnkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5mYWNhZGUucmVhZCh0aGlzLmZpbHRlcik7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { map } from "rxjs/operators";
|
|
3
|
-
import { combineLatest } from 'rxjs';
|
|
4
|
-
import { BaseComponent } from "../base/base.component";
|
|
5
|
-
export class FilterCheckComponent extends BaseComponent {
|
|
6
|
-
ngAfterContentInit() {
|
|
7
|
-
this.list$ = combineLatest([this.possibilities$, this.facade.filter$]).pipe((map(([possibilities]) => {
|
|
8
|
-
return possibilities.map(pos => ({
|
|
9
|
-
value: pos,
|
|
10
|
-
isCheck: this.value.some(r => r === pos.id)
|
|
11
|
-
}));
|
|
12
|
-
})));
|
|
13
|
-
}
|
|
14
|
-
onCheckChange(checked, entry) {
|
|
15
|
-
if (checked && !this.value.some(r => r === entry.value.id)) {
|
|
16
|
-
this.value = [
|
|
17
|
-
...this.value,
|
|
18
|
-
entry.value.id
|
|
19
|
-
];
|
|
20
|
-
}
|
|
21
|
-
if (!checked && this.value.some(r => r === entry.value.id)) {
|
|
22
|
-
this.value = this.value.filter(r => r !== entry.value.id);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
27
|
-
FilterCheckComponent.decorators = [
|
|
28
|
-
{ type: Component, args: [{
|
|
29
|
-
selector: 'smart-crud-filter-check',
|
|
30
|
-
template: "<ion-row>\n <ion-col>\n <ion-item-divider>\n <ion-icon slot=\"start\" name=\"filter-outline\"></ion-icon>\n <ion-label>\n {{ item.label | translate }}\n </ion-label>\n <ion-button *ngIf=\"value && value.length\" slot=\"end\" color=\"danger\" (click)=\"refresh([])\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-item-divider>\n <ion-item *ngFor=\"let entry of list$ | async\">\n <ion-label>{{entry.value.text | translate}}</ion-label>\n <ion-checkbox slot=\"end\" [checked]=\"entry.isCheck\" (ionChange)=\"onCheckChange($event.detail.checked, entry)\"></ion-checkbox>\n </ion-item>\n </ion-col>\n <!-- <ion-col size=\"auto\" *ngIf=\"value\">\n <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col> -->\n</ion-row>",
|
|
31
|
-
styles: [":host{width:100%;margin-bottom:1.2rem}:host ion-radio{margin-right:2.4rem}:host ion-item-divider{font-weight:300;--padding-end: .8rem;font-size:1.2rem;--ion-background-color: linear-gradient(90deg, transparent, var(--ion-color-light))}:host ion-item-divider ion-icon{margin-right:1.6rem;font-size:1.6rem;--color: var(--ion-color-primary)}:host ion-item-divider ion-label{--padding: var(--smart-button-padding-left)/2 var(--smart-button-padding-top)/2 var(--smart-button-padding-right)/2 var(--smart-button-padding-bottom)/2}:host ion-item-divider .squere-button{margin:0;font-size:18px;height:36px;width:36px;padding:0;--padding-start: .2em;--padding-end: .2em}:host ion-item-divider .squere-button ion-icon{margin:0;padding:0}\n"]
|
|
32
|
-
},] }
|
|
33
|
-
];
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9jaGVjay9jaGVjay5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJckMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBT3JELE1BQU0sT0FBTyxvQkFBZ0QsU0FBUSxhQUFnQjtJQUdqRixrQkFBa0I7UUFDZCxJQUFJLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxDQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUN6RSxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDN0IsS0FBSyxFQUFFLEdBQUc7Z0JBQ1YsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDOUMsQ0FBQyxDQUFDLENBQUE7UUFDUCxDQUFDLENBQUMsQ0FDTCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWdCLEVBQUUsS0FBdUM7UUFDbkUsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUc7Z0JBQ1QsR0FBRyxJQUFJLENBQUMsS0FBSztnQkFDYixLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7YUFDakIsQ0FBQTtTQUNKO1FBRUQsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3hELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUM3RDtJQUNMLENBQUM7Ozs7WUE5QkosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSx5QkFBeUI7Z0JBQ25DLCtqQ0FBcUM7O2FBRXhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHttYXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0lFbnRpdHl9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5cbmltcG9ydCB7QmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlci1jaGVjaycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGVjay5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlckNoZWNrQ29tcG9uZW50PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IGV4dGVuZHMgQmFzZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIGxpc3QkOiBPYnNlcnZhYmxlPHsgdmFsdWU6IGFueSwgaXNDaGVjazogYm9vbGVhbiB9W10+O1xuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxpc3QkID0gY29tYmluZUxhdGVzdChbIHRoaXMucG9zc2liaWxpdGllcyQsIHRoaXMuZmFjYWRlLmZpbHRlciRdKS5waXBlKChcbiAgICAgICAgICAgIG1hcCgoW3Bvc3NpYmlsaXRpZXNdKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvc3NpYmlsaXRpZXMubWFwKHBvcyA9PiAoe1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcG9zLFxuICAgICAgICAgICAgICAgICAgICBpc0NoZWNrOiB0aGlzLnZhbHVlLnNvbWUociA9PiByID09PSBwb3MuaWQpXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICB9KVxuICAgICAgICApKTtcbiAgICB9XG5cbiAgICBvbkNoZWNrQ2hhbmdlKGNoZWNrZWQ6IGJvb2xlYW4sIGVudHJ5OiB7IHZhbHVlOiBhbnk7IGlzQ2hlY2s6IGJvb2xlYW4gfSkge1xuICAgICAgICBpZiAoY2hlY2tlZCAmJiAhdGhpcy52YWx1ZS5zb21lKHIgPT4gciA9PT0gZW50cnkudmFsdWUuaWQpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gW1xuICAgICAgICAgICAgICAgIC4uLnRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgZW50cnkudmFsdWUuaWRcbiAgICAgICAgICAgIF1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghY2hlY2tlZCAmJiB0aGlzLnZhbHVlLnNvbWUociA9PiByID09PSBlbnRyeS52YWx1ZS5pZCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLmZpbHRlcihyID0+IHIgIT09IGVudHJ5LnZhbHVlLmlkKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as moment from "moment";
|
|
3
|
-
import { BaseComponent } from "../base/base.component";
|
|
4
|
-
export class FilterDateComponent extends BaseComponent {
|
|
5
|
-
get allowAdvanced() {
|
|
6
|
-
var _a;
|
|
7
|
-
return ((_a = this.item) === null || _a === void 0 ? void 0 : _a.type) === '=';
|
|
8
|
-
}
|
|
9
|
-
set customValue(val) {
|
|
10
|
-
var _a;
|
|
11
|
-
const momentDate = moment(val);
|
|
12
|
-
this.value = ((_a = val) === null || _a === void 0 ? void 0 : _a.length) >= 10 && momentDate.isValid() ? momentDate.format('YYYY-MM-DD') : val;
|
|
13
|
-
}
|
|
14
|
-
get customValue() {
|
|
15
|
-
return this.value;
|
|
16
|
-
}
|
|
17
|
-
set customMinValue(val) {
|
|
18
|
-
var _a;
|
|
19
|
-
const momentDate = moment(val);
|
|
20
|
-
this.minValue = ((_a = val) === null || _a === void 0 ? void 0 : _a.length) >= 10 && momentDate.isValid() ? momentDate.format('YYYY-MM-DD') : val;
|
|
21
|
-
}
|
|
22
|
-
get customMinValue() {
|
|
23
|
-
return this.minValue;
|
|
24
|
-
}
|
|
25
|
-
set customMaxValue(val) {
|
|
26
|
-
var _a;
|
|
27
|
-
const momentDate = moment(val);
|
|
28
|
-
this.maxValue = ((_a = val) === null || _a === void 0 ? void 0 : _a.length) >= 10 && momentDate.isValid() ? momentDate.format('YYYY-MM-DD') : val;
|
|
29
|
-
}
|
|
30
|
-
get customMaxValue() {
|
|
31
|
-
return this.maxValue;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
35
|
-
FilterDateComponent.decorators = [
|
|
36
|
-
{ type: Component, args: [{
|
|
37
|
-
selector: 'smart-crud-filter-date',
|
|
38
|
-
template: "<ion-row>\n <ion-col>\n <ion-label position=\"floating\">\n {{ item.label | translate }}\n </ion-label>\n <ion-datetime displayFormat=\"YYYY-MM-DD\"\n pickerFormat=\"YYYY-MM-DD\"\n [(ngModel)]=\"customValue\"></ion-datetime>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"value\">\n <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>",
|
|
39
|
-
styles: [":host{width:100%}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\n"]
|
|
40
|
-
},] }
|
|
41
|
-
];
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2RhdGUvZGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUlqQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFPckQsTUFBTSxPQUFPLG1CQUErQyxTQUFRLGFBQWdCO0lBQ2xGLElBQUksYUFBYTs7UUFDZixPQUFPLENBQUEsTUFBQSxJQUFJLENBQUMsSUFBSSwwQ0FBRSxJQUFJLE1BQUssR0FBRyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxHQUFHOztRQUNqQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFBLE1BQUMsR0FBYywwQ0FBRSxNQUFNLEtBQUksRUFBRSxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzdHLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLEdBQUc7O1FBQ3BCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUEsTUFBQyxHQUFjLDBDQUFFLE1BQU0sS0FBSSxFQUFFLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDaEgsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLEdBQUc7O1FBQ3BCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUEsTUFBQyxHQUFjLDBDQUFFLE1BQU0sS0FBSSxFQUFFLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDaEgsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs7OztZQW5DRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsK2tCQUFvQzs7YUFFckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5cbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcblxuaW1wb3J0IHtCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS9iYXNlLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlci1kYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyRGF0ZUNvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIEJhc2VDb21wb25lbnQ8VD4ge1xuICBnZXQgYWxsb3dBZHZhbmNlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtPy50eXBlID09PSAnPSc7XG4gIH1cblxuICBzZXQgY3VzdG9tVmFsdWUodmFsKSB7XG4gICAgY29uc3QgbW9tZW50RGF0ZSA9IG1vbWVudCh2YWwpO1xuICAgIHRoaXMudmFsdWUgPSAodmFsIGFzIHN0cmluZyk/Lmxlbmd0aCA+PSAxMCAmJiBtb21lbnREYXRlLmlzVmFsaWQoKSA/IG1vbWVudERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJykgOiB2YWw7XG4gIH1cblxuICBnZXQgY3VzdG9tVmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHNldCBjdXN0b21NaW5WYWx1ZSh2YWwpIHtcbiAgICBjb25zdCBtb21lbnREYXRlID0gbW9tZW50KHZhbCk7XG4gICAgdGhpcy5taW5WYWx1ZSA9ICh2YWwgYXMgc3RyaW5nKT8ubGVuZ3RoID49IDEwICYmIG1vbWVudERhdGUuaXNWYWxpZCgpID8gbW9tZW50RGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKSA6IHZhbDtcbiAgfVxuXG4gIGdldCBjdXN0b21NaW5WYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm1pblZhbHVlO1xuICB9XG5cbiAgc2V0IGN1c3RvbU1heFZhbHVlKHZhbCkge1xuICAgIGNvbnN0IG1vbWVudERhdGUgPSBtb21lbnQodmFsKTtcbiAgICB0aGlzLm1heFZhbHVlID0gKHZhbCBhcyBzdHJpbmcpPy5sZW5ndGggPj0gMTAgJiYgbW9tZW50RGF0ZS5pc1ZhbGlkKCkgPyBtb21lbnREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpIDogdmFsO1xuICB9XG5cbiAgZ2V0IGN1c3RvbU1heFZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMubWF4VmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Component, ViewChild } from '@angular/core';
|
|
2
|
-
import { IonDatetime } from "@ionic/angular";
|
|
3
|
-
import { Subscription } from "rxjs";
|
|
4
|
-
import { FilterDateComponent } from "../date/date.component";
|
|
5
|
-
export class FilterDateWithEditComponent extends FilterDateComponent {
|
|
6
|
-
constructor() {
|
|
7
|
-
super(...arguments);
|
|
8
|
-
this._subscriptions = new Subscription();
|
|
9
|
-
this.advanced = false;
|
|
10
|
-
}
|
|
11
|
-
open() {
|
|
12
|
-
this.dateTimePicker.open();
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() {
|
|
15
|
-
super.ngOnInit();
|
|
16
|
-
if (this.dateTimePicker) {
|
|
17
|
-
this._subscriptions.add(this.dateTimePicker.ionChange.subscribe((val) => {
|
|
18
|
-
this.customValue = val.detail.value;
|
|
19
|
-
}));
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
console.error('dateTimePicker not found!');
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
ngOnDestroy() {
|
|
26
|
-
if (this._subscriptions) {
|
|
27
|
-
this._subscriptions.unsubscribe();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
32
|
-
FilterDateWithEditComponent.decorators = [
|
|
33
|
-
{ type: Component, args: [{
|
|
34
|
-
selector: 'smart-crud-filter-date-with-edit',
|
|
35
|
-
template: "<ion-row>\n <ion-col>\n <ion-label>\n {{ item.label | translate }}\n </ion-label>\n\n <ion-input placeholder=\"YYYY-MM-DD\"\n [(ngModel)]=\"customValue\"\n [pattern]=\"'([12]\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\d|3[01]))'\"\n ></ion-input>\n <ion-datetime [hidden]=\"true\"\n displayFormat=\"YYYY-MM-DD\"\n pickerFormat=\"YYYY-MM-DD\"\n [(ngModel)]=\"customValue\"></ion-datetime>\n </ion-col>\n <ion-col size=\"auto\">\n <ion-button (click)=\"open()\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"calendar-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"allowAdvanced\">\n <ion-button (click)=\"advanced = !advanced\" class=\"squere-button\" [disabled]=\"minValue || maxValue\">\n <ion-icon *ngIf=\"!advanced\" slot=\"icon-only\" name=\"settings-outline\"></ion-icon>\n <ion-icon *ngIf=\"advanced\" slot=\"icon-only\" name=\"settings\"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"value\">\n <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>\n<ion-row *ngIf=\"(advanced || minValue || maxValue) && allowAdvanced\">\n <ion-col>\n <ion-item>\n <ion-label>\n {{ 'from' | translate }}\n </ion-label>\n <ion-input placeholder=\"YYYY-MM-DD\"\n [(ngModel)]=\"customMinValue\"\n [pattern]=\"'([12]\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\d|3[01]))'\"\n ></ion-input>\n <ion-datetime [hidden]=\"true\"\n [(ngModel)]=\"customMinValue\"\n displayFormat=\"YYYY-MM-DD\"\n pickerFormat=\"YYYY-MM-DD\"></ion-datetime>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"customMinValue\">\n <ion-button color=\"danger\" (click)=\"refresh(null, '>=')\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col>\n <ion-item>\n <ion-label>\n {{ 'to' | translate }}\n </ion-label>\n <ion-input placeholder=\"YYYY-MM-DD\"\n [(ngModel)]=\"customMaxValue\"\n [pattern]=\"'([12]\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\d|3[01]))'\"\n ></ion-input>\n <ion-datetime [hidden]=\"true\"\n displayFormat=\"YYYY-MM-DD\"\n pickerFormat=\"YYYY-MM-DD\"\n [(ngModel)]=\"customMaxValue\"></ion-datetime>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"customMaxValue\">\n <ion-button color=\"danger\" (click)=\"refresh(null, '<=')\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>",
|
|
36
|
-
styles: [":host{width:100%}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\n"]
|
|
37
|
-
},] }
|
|
38
|
-
];
|
|
39
|
-
/** @type {!Object<string, !Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
|
|
40
|
-
FilterDateWithEditComponent.propDecorators = {
|
|
41
|
-
dateTimePicker: [{ type: ViewChild, args: [IonDatetime, { read: IonDatetime, static: false },] }]
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS13aXRoLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9kYXRlLXdpdGgtZWRpdC9kYXRlLXdpdGgtZWRpdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSWxDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBTzNELE1BQU0sT0FBTywyQkFBdUQsU0FBUSxtQkFBc0I7SUFMbEc7O1FBT1UsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVDLGFBQVEsR0FBRyxLQUFLLENBQUM7SUF5Qm5CLENBQUM7SUFyQkMsSUFBSTtRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQWdCLEVBQUUsRUFBRTtnQkFDbkYsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ0w7YUFBTTtZQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbkM7SUFDSCxDQUFDOzs7O1lBakNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0NBQWtDO2dCQUM1Qyw4dEdBQThDOzthQUUvQzs7Ozs2QkFPRSxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJb25EYXRldGltZX0gZnJvbSBcIkBpb25pYy9hbmd1bGFyXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcblxuaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuXG5pbXBvcnQge0ZpbHRlckRhdGVDb21wb25lbnR9IGZyb20gXCIuLi9kYXRlL2RhdGUuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtZmlsdGVyLWRhdGUtd2l0aC1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtd2l0aC1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS13aXRoLWVkaXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJEYXRlV2l0aEVkaXRDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4gZXh0ZW5kcyBGaWx0ZXJEYXRlQ29tcG9uZW50PFQ+XG5pbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBhZHZhbmNlZCA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoSW9uRGF0ZXRpbWUsIHsgcmVhZDogSW9uRGF0ZXRpbWUsIHN0YXRpYzogZmFsc2UgfSkgZGF0ZVRpbWVQaWNrZXI6IElvbkRhdGV0aW1lO1xuXG4gIG9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlVGltZVBpY2tlci5vcGVuKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuXG4gICAgaWYgKHRoaXMuZGF0ZVRpbWVQaWNrZXIpIHtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuZGF0ZVRpbWVQaWNrZXIuaW9uQ2hhbmdlLnN1YnNjcmliZSgodmFsOiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICB0aGlzLmN1c3RvbVZhbHVlID0gdmFsLmRldGFpbC52YWx1ZTtcbiAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignZGF0ZVRpbWVQaWNrZXIgbm90IGZvdW5kIScpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG5cbiJdfQ==
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from "@angular/core";
|
|
2
|
-
import { FieldType } from "@smartsoft001/models";
|
|
3
|
-
export class FilterComponent {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.FieldType = FieldType;
|
|
6
|
-
}
|
|
7
|
-
ngOnInit() { }
|
|
8
|
-
}
|
|
9
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
10
|
-
FilterComponent.decorators = [
|
|
11
|
-
{ type: Component, args: [{
|
|
12
|
-
selector: "smart-crud-filter",
|
|
13
|
-
template: "<ion-item [ngSwitch]=\"item.fieldType\">\n <smart-crud-filter-date\n *ngSwitchCase=\"FieldType.date\"\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-date>\n\n <smart-crud-filter-date-with-edit\n *ngSwitchCase=\"FieldType.dateWithEdit\"\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-date-with-edit>\n\n <smart-crud-filter-radio\n *ngSwitchCase=\"FieldType.radio\"\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-radio>\n\n <smart-crud-filter-check\n *ngSwitchCase=\"FieldType.check\"\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-check>\n\n <smart-crud-filter-flag\n *ngSwitchCase=\"FieldType.flag\"\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-flag>\n\n <smart-crud-filter-int\n *ngSwitchCase=\"FieldType.int\"\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-int>\n\n <smart-crud-filter-text\n *ngSwitchDefault\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-text>\n</ion-item>\n",
|
|
14
|
-
styles: [""]
|
|
15
|
-
},] }
|
|
16
|
-
];
|
|
17
|
-
/**
|
|
18
|
-
* @type {function(): !Array<(null|{
|
|
19
|
-
* type: ?,
|
|
20
|
-
* decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
|
|
21
|
-
* })>}
|
|
22
|
-
* @nocollapse
|
|
23
|
-
*/
|
|
24
|
-
FilterComponent.ctorParameters = () => [];
|
|
25
|
-
/** @type {!Object<string, !Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
|
|
26
|
-
FilterComponent.propDecorators = {
|
|
27
|
-
item: [{ type: Input }],
|
|
28
|
-
filter: [{ type: Input }]
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUMsU0FBUyxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFTN0QsTUFBTSxPQUFPLGVBQWU7SUFNMUI7UUFMQSxjQUFTLEdBQUcsU0FBUyxDQUFDO0lBS1AsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQzs7OztZQWJwQixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IscXFDQUFzQzs7YUFFdkM7Ozs7Ozs7Ozs7OzttQkFJRSxLQUFLO3FCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQge0ZpZWxkVHlwZSwgSU1vZGVsRmlsdGVyfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9tb2RlbHNcIjtcblxuaW1wb3J0IHtJQ3J1ZEZpbHRlcn0gZnJvbSBcIi4uLy4uL21vZGVscy9pbnRlcmZhY2VzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzbWFydC1jcnVkLWZpbHRlclwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2ZpbHRlci5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vZmlsdGVyLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XG5cbiAgQElucHV0KCkgaXRlbTogSU1vZGVsRmlsdGVyO1xuICBASW5wdXQoKSBmaWx0ZXI6IElDcnVkRmlsdGVyO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG4iXX0=
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { BaseComponent } from "../base/base.component";
|
|
3
|
-
export class FilterFlagComponent extends BaseComponent {
|
|
4
|
-
}
|
|
5
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
6
|
-
FilterFlagComponent.decorators = [
|
|
7
|
-
{ type: Component, args: [{
|
|
8
|
-
selector: 'smart-crud-filter-flag',
|
|
9
|
-
template: "<ion-row>\n <ion-col>\n <div class=\"flag-container\">\n <ion-label position=\"static\">\n {{ item.label | translate }}\n </ion-label>\n <ion-checkbox [(ngModel)]=\"value\" slot=\"end\"></ion-checkbox>\n </div>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"value\">\n <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>",
|
|
10
|
-
styles: [":host{width:100%}:host .flag-container{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;padding:0 1.2rem 0 0}:host .flag-container ion-label{--color: var(--smart-color-dark);vertical-align:middle;padding:1.6rem 0}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\n"]
|
|
11
|
-
},] }
|
|
12
|
-
];
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2ZsYWcvZmxhZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkxQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFPckQsTUFBTSxPQUFPLG1CQUErQyxTQUFRLGFBQWdCOzs7O1lBTG5GLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyxxakJBQW9DOzthQUV2QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0lFbnRpdHl9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5cbmltcG9ydCB7QmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlci1mbGFnJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmxhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmxhZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlckZsYWdDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFQ+IHtcblxufVxuIl19
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { Subscription } from "rxjs";
|
|
3
|
-
import { BaseComponent } from "../base/base.component";
|
|
4
|
-
export class FilterIntComponent extends BaseComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
super(...arguments);
|
|
7
|
-
this._subscriptions = new Subscription();
|
|
8
|
-
this.advanced = false;
|
|
9
|
-
}
|
|
10
|
-
get allowAdvanced() {
|
|
11
|
-
var _a;
|
|
12
|
-
return ((_a = this.item) === null || _a === void 0 ? void 0 : _a.type) === '=';
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() {
|
|
15
|
-
super.ngOnInit();
|
|
16
|
-
}
|
|
17
|
-
ngOnDestroy() {
|
|
18
|
-
if (this._subscriptions) {
|
|
19
|
-
this._subscriptions.unsubscribe();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
24
|
-
FilterIntComponent.decorators = [
|
|
25
|
-
{ type: Component, args: [{
|
|
26
|
-
selector: 'smart-crud-filter-int',
|
|
27
|
-
template: "<ion-row>\n <ion-col>\n <ion-label>\n {{ item.label | translate }}\n </ion-label>\n <ion-input [(ngModel)]=\"value\" type=\"number\" step=\"1\"></ion-input>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"allowAdvanced\">\n <ion-button (click)=\"advanced = !advanced\" class=\"squere-button\" [disabled]=\"minValue || maxValue\">\n <ion-icon *ngIf=\"!advanced\" slot=\"icon-only\" name=\"settings-outline\"></ion-icon>\n <ion-icon *ngIf=\"advanced\" slot=\"icon-only\" name=\"settings\"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"value\">\n <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>\n<ion-row *ngIf=\"(advanced || minValue || maxValue) && allowAdvanced\">\n <ion-col>\n <ion-item>\n <ion-label>\n {{ 'from' | translate }}\n </ion-label>\n <ion-input [(ngModel)]=\"minValue\" type=\"number\" step=\"1\"></ion-input>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"minValue\">\n <ion-button color=\"danger\" (click)=\"refresh(null, '>=')\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col>\n <ion-item>\n <ion-label>\n {{ 'to' | translate }}\n </ion-label>\n <ion-input [(ngModel)]=\"maxValue\" type=\"number\" step=\"1\"></ion-input>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"maxValue\">\n <ion-button color=\"danger\" (click)=\"refresh(null, '<=')\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>",
|
|
28
|
-
styles: [":host{width:100%}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\n"]
|
|
29
|
-
},] }
|
|
30
|
-
];
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvaW50L2ludC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUtsQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFPckQsTUFBTSxPQUFPLGtCQUE4QyxTQUFRLGFBQWdCO0lBTG5GOztRQU9VLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU1QyxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBZW5CLENBQUM7SUFiQyxJQUFJLGFBQWE7O1FBQ2YsT0FBTyxDQUFBLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsSUFBSSxNQUFLLEdBQUcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ25DO0lBQ0gsQ0FBQzs7OztZQXZCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsbzhEQUFtQzs7YUFFcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lvbkRhdGV0aW1lfSBmcm9tIFwiQGlvbmljL2FuZ3VsYXJcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQge0lFbnRpdHl9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5cbmltcG9ydCB7RmlsdGVyRGF0ZUNvbXBvbmVudH0gZnJvbSBcIi4uL2RhdGUvZGF0ZS5jb21wb25lbnRcIjtcbmltcG9ydCB7QmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtY3J1ZC1maWx0ZXItaW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ludC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ludC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlckludENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIEJhc2VDb21wb25lbnQ8VD5cbmltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGFkdmFuY2VkID0gZmFsc2U7XG5cbiAgZ2V0IGFsbG93QWR2YW5jZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbT8udHlwZSA9PT0gJz0nO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG5cbiJdfQ==
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { BaseComponent } from "../base/base.component";
|
|
3
|
-
export class FilterRadioComponent extends BaseComponent {
|
|
4
|
-
}
|
|
5
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
6
|
-
FilterRadioComponent.decorators = [
|
|
7
|
-
{ type: Component, args: [{
|
|
8
|
-
selector: 'smart-crud-filter-radio',
|
|
9
|
-
template: "<ion-row>\n <ion-col>\n <ion-radio-group [(ngModel)]=\"value\">\n <ion-item-divider>\n <ion-icon slot=\"start\" name=\"filter-outline\"></ion-icon>\n <ion-label>\n {{ item.label | translate }}\n </ion-label>\n <ion-button *ngIf=\"value\" slot=\"end\" color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-item-divider>\n\n <ion-item *ngFor=\"let item of possibilities$ | async\">\n <ion-label>{{ item.text | translate }}</ion-label>\n <ion-radio [value]=\"item.id\"></ion-radio>\n </ion-item>\n </ion-radio-group>\n </ion-col>\n <!-- <ion-col size=\"auto\" *ngIf=\"value\">\n <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col> -->\n</ion-row>",
|
|
10
|
-
styles: [":host{width:100%;margin-bottom:1.2rem}:host ion-radio{margin-right:2.4rem}:host ion-item-divider{font-weight:300;--padding-end: .8rem;font-size:1.2rem;--ion-background-color: linear-gradient(90deg, transparent, var(--ion-color-light))}:host ion-item-divider ion-icon{margin-right:1.6rem;font-size:1.6rem;--color: var(--ion-color-primary)}:host ion-item-divider ion-label{--padding: var(--smart-button-padding-left)/2 var(--smart-button-padding-top)/2 var(--smart-button-padding-right)/2 var(--smart-button-padding-bottom)/2}:host ion-item-divider .squere-button{margin:0;font-size:18px;height:36px;width:36px;padding:0;--padding-start: .2em;--padding-end: .2em}:host ion-item-divider .squere-button ion-icon{margin:0;padding:0}\n"]
|
|
11
|
-
},] }
|
|
12
|
-
];
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9yYWRpby9yYWRpby5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFPckQsTUFBTSxPQUFPLG9CQUFnRCxTQUFRLGFBQWdCOzs7O1lBTHBGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2dCQUNuQyxnbUNBQXFDOzthQUV0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHtCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS9iYXNlLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlci1yYWRpbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyUmFkaW9Db21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFQ+IHtcblxufVxuIl19
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { BaseComponent } from "../base/base.component";
|
|
3
|
-
export class FilterTextComponent extends BaseComponent {
|
|
4
|
-
}
|
|
5
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
6
|
-
FilterTextComponent.decorators = [
|
|
7
|
-
{ type: Component, args: [{
|
|
8
|
-
selector: 'smart-crud-filter-text',
|
|
9
|
-
template: "<ion-row>\n <ion-col>\n <ion-label position=\"floating\">\n {{ item.label | translate }}\n </ion-label>\n <ion-input [(ngModel)]=\"value\"></ion-input>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"value\">\n <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>",
|
|
10
|
-
styles: [":host{width:100%}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\n"]
|
|
11
|
-
},] }
|
|
12
|
-
];
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL3RleHQvdGV4dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkxQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFPckQsTUFBTSxPQUFPLG1CQUErQyxTQUFRLGFBQWdCOzs7O1lBTG5GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyw0ZEFBb0M7O2FBRXJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcblxuaW1wb3J0IHtCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS9iYXNlLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlci10ZXh0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyVGV4dENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIEJhc2VDb21wb25lbnQ8VD4ge1xuXG59XG4iXX0=
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { Component, ElementRef, Input } from '@angular/core';
|
|
3
|
-
import { MenuService, StyleService } from "@smartsoft001/angular";
|
|
4
|
-
import { FieldType, getModelFieldsWithOptions, getModelOptions } from "@smartsoft001/models";
|
|
5
|
-
import { CrudConfig } from "../../crud.config";
|
|
6
|
-
import { CrudFacade } from "../../+state/crud.facade";
|
|
7
|
-
/**
|
|
8
|
-
* This component is only to use in crud module
|
|
9
|
-
* @requires CrudModule
|
|
10
|
-
* @example
|
|
11
|
-
*
|
|
12
|
-
* html: <smart-crud-filters></smart-crud-filters>
|
|
13
|
-
*
|
|
14
|
-
* use on the model:
|
|
15
|
-
* @Model({
|
|
16
|
-
titleKey: 'body',
|
|
17
|
-
filters: [
|
|
18
|
-
{
|
|
19
|
-
label: 'testNegation',
|
|
20
|
-
key: 'body',
|
|
21
|
-
type: '!=',
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
label: 'fromDate',
|
|
25
|
-
key: 'createDate',
|
|
26
|
-
type: '<=',
|
|
27
|
-
fieldType: FieldType.dateWithEdit
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
label: 'select',
|
|
31
|
-
key: 'type',
|
|
32
|
-
type: '=',
|
|
33
|
-
fieldType: FieldType.radio,
|
|
34
|
-
possibilities$: of([
|
|
35
|
-
{
|
|
36
|
-
id: 1, text: 'Test 1'
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
id: 2, text: 'Test 2'
|
|
40
|
-
}
|
|
41
|
-
])
|
|
42
|
-
}
|
|
43
|
-
]
|
|
44
|
-
})
|
|
45
|
-
*
|
|
46
|
-
* use on the field (list.filter property):
|
|
47
|
-
* @Field({
|
|
48
|
-
create: modifyMetdata,
|
|
49
|
-
update: {
|
|
50
|
-
...modifyMetdata,
|
|
51
|
-
multi: true
|
|
52
|
-
},
|
|
53
|
-
type: FieldType.longText,
|
|
54
|
-
details: true,
|
|
55
|
-
list: {
|
|
56
|
-
order: 2,
|
|
57
|
-
filter: true
|
|
58
|
-
}
|
|
59
|
-
})
|
|
60
|
-
body: string;
|
|
61
|
-
*/
|
|
62
|
-
export class FiltersComponent {
|
|
63
|
-
constructor(menuService, config, facade, styleService, elementRef) {
|
|
64
|
-
this.menuService = menuService;
|
|
65
|
-
this.config = config;
|
|
66
|
-
this.facade = facade;
|
|
67
|
-
this.styleService = styleService;
|
|
68
|
-
this.elementRef = elementRef;
|
|
69
|
-
}
|
|
70
|
-
onClose() {
|
|
71
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
-
yield this.menuService.closeEnd();
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
ngOnInit() {
|
|
76
|
-
this.styleService.init(this.elementRef);
|
|
77
|
-
const modelFilters = getModelOptions(this.config.type).filters;
|
|
78
|
-
this.list = [
|
|
79
|
-
...(modelFilters ? modelFilters.map(item => {
|
|
80
|
-
if (!item.label) {
|
|
81
|
-
item.label = 'MODEL.' + item.key;
|
|
82
|
-
}
|
|
83
|
-
return item;
|
|
84
|
-
}) : []),
|
|
85
|
-
...getModelFieldsWithOptions(new this.config.type())
|
|
86
|
-
.filter(item => { var _a, _b; return (_b = (_a = item.options) === null || _a === void 0 ? void 0 : _a.list) === null || _b === void 0 ? void 0 : _b.filter; })
|
|
87
|
-
.map(item => ({
|
|
88
|
-
key: item.key,
|
|
89
|
-
type: item.options.type === FieldType.text || item.options.type === FieldType.longText
|
|
90
|
-
? '~=' : '=',
|
|
91
|
-
label: 'MODEL.' + item.key,
|
|
92
|
-
fieldType: item.options.type
|
|
93
|
-
}))
|
|
94
|
-
];
|
|
95
|
-
this.filter$ = this.facade.filter$;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
|
|
99
|
-
FiltersComponent.decorators = [
|
|
100
|
-
{ type: Component, args: [{
|
|
101
|
-
selector: 'smart-crud-filters',
|
|
102
|
-
template: "<ion-header [hidden]=\"hideMenu\">\n <ion-toolbar>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"onClose()\">\n <ion-icon slot=\"icon-only\" name=\"close\"> </ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-title>{{ 'filters' | translate }}</ion-title>\n </ion-toolbar>\n</ion-header>\n<div class=\"filter-content\">\n <ng-container *ngIf=\"filter$ | async; let filter\">\n <ng-container *ngFor=\"let item of list\">\n <smart-crud-filter [item]=\"item\" [filter]=\"filter\"></smart-crud-filter>\n </ng-container>\n </ng-container>\n <div class=\"menu-bottom-space\">\n \n </div>\n</div>",
|
|
103
|
-
styles: [":host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}ion-modal :host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){:host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}ion-modal :host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}}@media only screen and (max-width: 420px){:host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}ion-modal :host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}}:host ion-toolbar.ios{height:4.6rem;--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){:host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}:host ion-toolbar.ios ion-title{text-align:left;padding-left:5.2rem}:host ion-toolbar.ios ion-icon{color:var(--ion-color-light)}}@media only screen and (max-width: 420px){:host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}:host ion-toolbar.ios ion-title{text-align:left;padding-left:5.2rem}:host ion-toolbar.ios ion-icon{color:var(--ion-color-light)}}.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-title{text-align:left;padding-left:1.2rem}.modal-wrapper :host ion-toolbar.ios ion-icon{color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-buttons{margin:0}}@media only screen and (max-width: 420px){.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-title{text-align:left;padding-left:1.2rem}.modal-wrapper :host ion-toolbar.ios ion-icon{color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-buttons{margin:0}}:host ion-toolbar.ios.toolbar-searchbar ion-buttons{height:var(--smart-button-height);margin:.4rem}:host ion-toolbar ion-menu-button{color:var(--ion-color-light)}:host ion-toolbar ion-buttons.ios{height:var(--smart-button-height);margin:0}:host .filter-content{display:block;overflow:auto;overflow-x:hidden}:host .menu-bottom-space{height:75px}\n"]
|
|
104
|
-
},] }
|
|
105
|
-
];
|
|
106
|
-
/**
|
|
107
|
-
* @type {function(): !Array<(null|{
|
|
108
|
-
* type: ?,
|
|
109
|
-
* decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
|
|
110
|
-
* })>}
|
|
111
|
-
* @nocollapse
|
|
112
|
-
*/
|
|
113
|
-
FiltersComponent.ctorParameters = () => [
|
|
114
|
-
{ type: MenuService },
|
|
115
|
-
{ type: CrudConfig },
|
|
116
|
-
{ type: CrudFacade },
|
|
117
|
-
{ type: StyleService },
|
|
118
|
-
{ type: ElementRef }
|
|
119
|
-
];
|
|
120
|
-
/** @type {!Object<string, !Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
|
|
121
|
-
FiltersComponent.propDecorators = {
|
|
122
|
-
hideMenu: [{ type: Input }]
|
|
123
|
-
};
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBR25FLE9BQU8sRUFBYyxXQUFXLEVBQUUsWUFBWSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDN0UsT0FBTyxFQUNILFNBQVMsRUFDVCx5QkFBeUIsRUFDekIsZUFBZSxFQUdsQixNQUFNLHNCQUFzQixDQUFDO0FBSTlCLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFcEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNERztBQU1ILE1BQU0sT0FBTyxnQkFBZ0I7SUFVM0IsWUFDWSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFxQixFQUNyQixZQUEwQixFQUMxQixVQUFzQjtRQUp0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUM5QixDQUFDO0lBRUMsT0FBTzs7WUFDWCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEMsQ0FBQztLQUFBO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQyxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFFL0QsSUFBSSxDQUFDLElBQUksR0FBRztZQUNSLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7aUJBQ2xDO2dCQUNELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNSLEdBQUcseUJBQXlCLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsZUFBQyxPQUFBLE1BQUMsTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxJQUEyQiwwQ0FBRSxNQUFNLENBQUEsRUFBQSxDQUFDO2lCQUNsRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsUUFBUTtvQkFDbEYsQ0FBQyxDQUFDLElBQVksQ0FBQyxDQUFDLENBQUMsR0FBVTtnQkFDL0IsS0FBSyxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRztnQkFDMUIsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTthQUM3QixDQUFDLENBQUM7U0FDVixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUNyQyxDQUFDOzs7O1lBbERGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2dCQUM5QixpdEJBQXVDOzthQUV4Qzs7Ozs7Ozs7OztZQXpFb0IsV0FBVztZQVd4QixVQUFVO1lBQ1YsVUFBVTtZQVpnQixZQUFZO1lBSDNCLFVBQVU7Ozs7dUJBcUYxQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQge0F1dGhTZXJ2aWNlLCBNZW51U2VydmljZSwgU3R5bGVTZXJ2aWNlfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9hbmd1bGFyXCI7XG5pbXBvcnQge1xuICAgIEZpZWxkVHlwZSxcbiAgICBnZXRNb2RlbEZpZWxkc1dpdGhPcHRpb25zLFxuICAgIGdldE1vZGVsT3B0aW9ucyxcbiAgICBJRmllbGRMaXN0TWV0YWRhdGEsXG4gICAgSU1vZGVsRmlsdGVyXG59IGZyb20gXCJAc21hcnRzb2Z0MDAxL21vZGVsc1wiO1xuaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuXG5pbXBvcnQge0lDcnVkRmlsdGVyfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7Q3J1ZENvbmZpZ30gZnJvbSBcIi4uLy4uL2NydWQuY29uZmlnXCI7XG5pbXBvcnQge0NydWRGYWNhZGV9IGZyb20gXCIuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGVcIjtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyBvbmx5IHRvIHVzZSBpbiBjcnVkIG1vZHVsZVxuICogQHJlcXVpcmVzIENydWRNb2R1bGVcbiAqIEBleGFtcGxlXG4gKlxuICogaHRtbDogPHNtYXJ0LWNydWQtZmlsdGVycz48L3NtYXJ0LWNydWQtZmlsdGVycz5cbiAqXG4gKiB1c2Ugb24gdGhlIG1vZGVsOlxuICogQE1vZGVsKHtcbiAgICB0aXRsZUtleTogJ2JvZHknLFxuICAgIGZpbHRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6ICd0ZXN0TmVnYXRpb24nLFxuICAgICAgICAgICAga2V5OiAnYm9keScsXG4gICAgICAgICAgICB0eXBlOiAnIT0nLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ2Zyb21EYXRlJyxcbiAgICAgICAgICAgIGtleTogJ2NyZWF0ZURhdGUnLFxuICAgICAgICAgICAgdHlwZTogJzw9JyxcbiAgICAgICAgICAgIGZpZWxkVHlwZTogRmllbGRUeXBlLmRhdGVXaXRoRWRpdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ3NlbGVjdCcsXG4gICAgICAgICAgICBrZXk6ICd0eXBlJyxcbiAgICAgICAgICAgIHR5cGU6ICc9JyxcbiAgICAgICAgICAgIGZpZWxkVHlwZTogRmllbGRUeXBlLnJhZGlvLFxuICAgICAgICAgICAgcG9zc2liaWxpdGllcyQ6IG9mKFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAxLCB0ZXh0OiAnVGVzdCAxJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogMiwgdGV4dDogJ1Rlc3QgMidcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdKVxuICAgICAgICB9XG4gICAgXVxufSlcbiAqXG4gKiB1c2Ugb24gdGhlIGZpZWxkIChsaXN0LmZpbHRlciBwcm9wZXJ0eSk6XG4gKiBARmllbGQoe1xuICAgICAgICBjcmVhdGU6IG1vZGlmeU1ldGRhdGEsXG4gICAgICAgIHVwZGF0ZToge1xuICAgICAgICAgICAgLi4ubW9kaWZ5TWV0ZGF0YSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IEZpZWxkVHlwZS5sb25nVGV4dCxcbiAgICAgICAgZGV0YWlsczogdHJ1ZSxcbiAgICAgICAgbGlzdDoge1xuICAgICAgICAgICAgb3JkZXI6IDIsXG4gICAgICAgICAgICBmaWx0ZXI6IHRydWVcbiAgICAgICAgfVxuICAgIH0pXG4gYm9keTogc3RyaW5nO1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlcnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzQ29tcG9uZW50PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbGlzdDogQXJyYXk8SU1vZGVsRmlsdGVyPjtcblxuICBmaWx0ZXIkOiBPYnNlcnZhYmxlPElDcnVkRmlsdGVyPjtcblxuICAgIC8qKlxuICAgICAqIEhpZGUgbWVudSB1c2VkIG9ubHkgZnJvbSBNZW51U2VydmljZVxuICAgICAqL1xuICBASW5wdXQoKSBoaWRlTWVudTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBjb25maWc6IENydWRDb25maWc8VD4sXG4gICAgICBwcml2YXRlIGZhY2FkZTogQ3J1ZEZhY2FkZTxUPixcbiAgICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBTdHlsZVNlcnZpY2UsXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7IH1cblxuICBhc3luYyBvbkNsb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubWVudVNlcnZpY2UuY2xvc2VFbmQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy5zdHlsZVNlcnZpY2UuaW5pdCh0aGlzLmVsZW1lbnRSZWYpO1xuXG4gICAgY29uc3QgbW9kZWxGaWx0ZXJzID0gZ2V0TW9kZWxPcHRpb25zKHRoaXMuY29uZmlnLnR5cGUpLmZpbHRlcnM7XG5cbiAgICB0aGlzLmxpc3QgPSBbXG4gICAgICAgIC4uLihtb2RlbEZpbHRlcnMgPyBtb2RlbEZpbHRlcnMubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgIGlmICghaXRlbS5sYWJlbCkge1xuICAgICAgICAgICAgaXRlbS5sYWJlbCA9ICdNT0RFTC4nICsgaXRlbS5rZXk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9KSA6IFtdKSxcbiAgICAgICAgLi4uZ2V0TW9kZWxGaWVsZHNXaXRoT3B0aW9ucyhuZXcgdGhpcy5jb25maWcudHlwZSgpKVxuICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+IChpdGVtLm9wdGlvbnM/Lmxpc3QgYXMgSUZpZWxkTGlzdE1ldGFkYXRhKT8uZmlsdGVyKVxuICAgICAgICAgICAgLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAgIGtleTogaXRlbS5rZXksXG4gICAgICAgICAgICAgIHR5cGU6IGl0ZW0ub3B0aW9ucy50eXBlID09PSBGaWVsZFR5cGUudGV4dCB8fCBpdGVtLm9wdGlvbnMudHlwZSA9PT0gRmllbGRUeXBlLmxvbmdUZXh0XG4gICAgICAgICAgICAgICAgICA/ICd+PScgYXMgJ349JyA6ICc9JyBhcyAnPScsXG4gICAgICAgICAgICAgIGxhYmVsOiAnTU9ERUwuJyArIGl0ZW0ua2V5LFxuICAgICAgICAgICAgICBmaWVsZFR5cGU6IGl0ZW0ub3B0aW9ucy50eXBlXG4gICAgICAgICAgICB9KSlcbiAgICBdO1xuICAgIHRoaXMuZmlsdGVyJCA9IHRoaXMuZmFjYWRlLmZpbHRlciQ7XG4gIH1cbn1cbiJdfQ==
|