@solidev/data 0.0.1-alpha.0
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/README.md +7 -0
- package/esm2020/lib/auth/auth-interceptor.service.mjs +90 -0
- package/esm2020/lib/auth/auth.service.mjs +125 -0
- package/esm2020/lib/auth/jwt.mjs +21 -0
- package/esm2020/lib/data/data-backend.mjs +106 -0
- package/esm2020/lib/data/data-collection.mjs +109 -0
- package/esm2020/lib/data/data-collection.mock.mjs +39 -0
- package/esm2020/lib/data/data-model.mjs +287 -0
- package/esm2020/lib/data/data-parameters.mjs +34 -0
- package/esm2020/lib/data/data-query.mjs +147 -0
- package/esm2020/lib/data/data-query.mock.mjs +46 -0
- package/esm2020/lib/data/fields/base.mjs +142 -0
- package/esm2020/lib/data/fields/boolean.mjs +38 -0
- package/esm2020/lib/data/fields/datetime.mjs +124 -0
- package/esm2020/lib/data/fields/index.mjs +7 -0
- package/esm2020/lib/data/fields/numbers.mjs +38 -0
- package/esm2020/lib/data/fields/primaryfield.mjs +9 -0
- package/esm2020/lib/data/fields/relations.mjs +53 -0
- package/esm2020/lib/data/fields/stringfields.mjs +71 -0
- package/esm2020/lib/dispedit/choice.pipe.mjs +39 -0
- package/esm2020/lib/dispedit/dispedit/dispedit.component.mjs +475 -0
- package/esm2020/lib/dispedit/dispedit/dispedit.constants.mjs +2 -0
- package/esm2020/lib/dispedit/factor.pipe.mjs +48 -0
- package/esm2020/lib/dispedit/factorc.pipe.mjs +50 -0
- package/esm2020/lib/dispedit/fkselect/fkselect.component.mjs +142 -0
- package/esm2020/lib/dispedit/flags/flags.component.mjs +140 -0
- package/esm2020/lib/dispedit/m2mselect/m2mselect.component.mjs +318 -0
- package/esm2020/lib/dispedit/richedit/richedit.component.mjs +94 -0
- package/esm2020/lib/dispedit/sdelete/sdelete.component.mjs +46 -0
- package/esm2020/lib/messages/message-zone/message-zone.component.mjs +57 -0
- package/esm2020/lib/messages/message.service.mjs +151 -0
- package/esm2020/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +34 -0
- package/esm2020/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +63 -0
- package/esm2020/lib/modellist/model-list-fields/model-list-fields.mjs +225 -0
- package/esm2020/lib/modellist/model-list-filters/filters/filtertypes.mjs +3 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +108 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.mjs +28 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +24 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.mjs +9 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +40 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.mjs +14 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +40 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.mjs +14 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +21 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.mjs +14 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +21 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.mjs +14 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.mjs +24 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +63 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.mjs +16 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +46 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.mjs +49 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +57 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +35 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +49 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +15 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +40 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +14 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +21 -0
- package/esm2020/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.mjs +14 -0
- package/esm2020/lib/modellist/model-list-filters/model-list-filter.mjs +145 -0
- package/esm2020/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +50 -0
- package/esm2020/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +30 -0
- package/esm2020/lib/modellist/model-list-filters/model-list-filters.mjs +80 -0
- package/esm2020/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +70 -0
- package/esm2020/lib/modellist/model-list-paginator/model-list-paginator.mjs +47 -0
- package/esm2020/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +49 -0
- package/esm2020/lib/modellist/model-list-sorter/model-list-sorter.mjs +116 -0
- package/esm2020/lib/modellist/model-list.service.mjs +135 -0
- package/esm2020/lib/routing/breadcrumb/breadcrumb.component.mjs +142 -0
- package/esm2020/lib/routing/routing.mjs +57 -0
- package/esm2020/lib/uploader/index.mjs +6 -0
- package/esm2020/lib/uploader/interfaces.mjs +8 -0
- package/esm2020/lib/uploader/ng-file-drop.directive.mjs +81 -0
- package/esm2020/lib/uploader/ng-file-select.directive.mjs +51 -0
- package/esm2020/lib/uploader/ngx-uploader.class.mjs +308 -0
- package/esm2020/lib/uploader/ngx-uploader.module.mjs +17 -0
- package/esm2020/lib/utils/slugify.mjs +16 -0
- package/esm2020/lib/utils/tab-memory.service.mjs +71 -0
- package/esm2020/public-api.mjs +51 -0
- package/esm2020/solidev-data.mjs +5 -0
- package/fesm2015/solidev-data.mjs +5411 -0
- package/fesm2015/solidev-data.mjs.map +1 -0
- package/fesm2020/solidev-data.mjs +5358 -0
- package/fesm2020/solidev-data.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/auth/auth-interceptor.service.d.ts +17 -0
- package/lib/auth/auth.service.d.ts +43 -0
- package/lib/auth/jwt.d.ts +22 -0
- package/lib/data/data-backend.d.ts +47 -0
- package/lib/data/data-collection.d.ts +87 -0
- package/lib/data/data-collection.mock.d.ts +19 -0
- package/lib/data/data-model.d.ts +93 -0
- package/lib/data/data-parameters.d.ts +26 -0
- package/lib/data/data-query.d.ts +101 -0
- package/lib/data/data-query.mock.d.ts +25 -0
- package/lib/data/fields/base.d.ts +116 -0
- package/lib/data/fields/boolean.d.ts +9 -0
- package/lib/data/fields/datetime.d.ts +39 -0
- package/lib/data/fields/index.d.ts +6 -0
- package/lib/data/fields/numbers.d.ts +35 -0
- package/lib/data/fields/primaryfield.d.ts +8 -0
- package/lib/data/fields/relations.d.ts +45 -0
- package/lib/data/fields/stringfields.d.ts +50 -0
- package/lib/dispedit/choice.pipe.d.ts +8 -0
- package/lib/dispedit/dispedit/dispedit.component.d.ts +182 -0
- package/lib/dispedit/dispedit/dispedit.constants.d.ts +6 -0
- package/lib/dispedit/factor.pipe.d.ts +12 -0
- package/lib/dispedit/factorc.pipe.d.ts +11 -0
- package/lib/dispedit/fkselect/fkselect.component.d.ts +43 -0
- package/lib/dispedit/flags/flags.component.d.ts +40 -0
- package/lib/dispedit/m2mselect/m2mselect.component.d.ts +120 -0
- package/lib/dispedit/richedit/richedit.component.d.ts +31 -0
- package/lib/dispedit/sdelete/sdelete.component.d.ts +27 -0
- package/lib/messages/message-zone/message-zone.component.d.ts +14 -0
- package/lib/messages/message.service.d.ts +59 -0
- package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +15 -0
- package/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.d.ts +19 -0
- package/lib/modellist/model-list-fields/model-list-fields.d.ts +67 -0
- package/lib/modellist/model-list-filters/filters/filtertypes.d.ts +1 -0
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.d.ts +30 -0
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.d.ts +22 -0
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.d.ts +10 -0
- package/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.d.ts +8 -0
- package/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.d.ts +15 -0
- package/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.d.ts +4 -0
- package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.d.ts +15 -0
- package/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.d.ts +4 -0
- package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +11 -0
- package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.d.ts +4 -0
- package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.d.ts +11 -0
- package/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.d.ts +4 -0
- package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.d.ts +35 -0
- package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.d.ts +25 -0
- package/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.d.ts +18 -0
- package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.d.ts +17 -0
- package/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.d.ts +19 -0
- package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.d.ts +17 -0
- package/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.d.ts +16 -0
- package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.d.ts +17 -0
- package/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.d.ts +6 -0
- package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.d.ts +16 -0
- package/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.d.ts +4 -0
- package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.d.ts +11 -0
- package/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.d.ts +4 -0
- package/lib/modellist/model-list-filters/model-list-filter.d.ts +52 -0
- package/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.d.ts +9 -0
- package/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.d.ts +13 -0
- package/lib/modellist/model-list-filters/model-list-filters.d.ts +15 -0
- package/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.d.ts +23 -0
- package/lib/modellist/model-list-paginator/model-list-paginator.d.ts +16 -0
- package/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.d.ts +22 -0
- package/lib/modellist/model-list-sorter/model-list-sorter.d.ts +61 -0
- package/lib/modellist/model-list.service.d.ts +83 -0
- package/lib/routing/breadcrumb/breadcrumb.component.d.ts +42 -0
- package/lib/routing/routing.d.ts +64 -0
- package/lib/uploader/index.d.ts +5 -0
- package/lib/uploader/interfaces.d.ts +67 -0
- package/lib/uploader/ng-file-drop.directive.d.ts +22 -0
- package/lib/uploader/ng-file-select.directive.d.ts +19 -0
- package/lib/uploader/ngx-uploader.class.d.ts +35 -0
- package/lib/uploader/ngx-uploader.module.d.ts +8 -0
- package/lib/utils/slugify.d.ts +1 -0
- package/lib/utils/tab-memory.service.d.ts +29 -0
- package/package.json +35 -0
- package/public-api.d.ts +47 -0
- package/src/lib/data/README.md +35 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { FormControl, Validators } from '@angular/forms';
|
|
3
|
+
export const PROPERTY_METADATA_KEY = Symbol('ngxDataMetadata');
|
|
4
|
+
/**
|
|
5
|
+
* Base field manager, stores metadata and provides common field utilities
|
|
6
|
+
*
|
|
7
|
+
* - name : field name, should be the same in data structure and model
|
|
8
|
+
* - help : field help text, blank by default
|
|
9
|
+
* - description : field name for humans
|
|
10
|
+
* - readonly : field is readonly (cannot be changed / pushed to api)
|
|
11
|
+
* - default : default value for field
|
|
12
|
+
*
|
|
13
|
+
* - editor_type : editor type
|
|
14
|
+
* - display_type : display type
|
|
15
|
+
*
|
|
16
|
+
* - fromJson(data) : deserializer
|
|
17
|
+
* - toJson(data) : serialiser
|
|
18
|
+
* - toString(data,format) : to string, for display
|
|
19
|
+
*
|
|
20
|
+
* - formControl : returns field form control
|
|
21
|
+
* - validators : returns field validator
|
|
22
|
+
*/
|
|
23
|
+
export class BaseFieldManager {
|
|
24
|
+
constructor(params) {
|
|
25
|
+
this.required = false;
|
|
26
|
+
this.readonly = false;
|
|
27
|
+
this.editorType = 'input.text';
|
|
28
|
+
this.displayType = 'text';
|
|
29
|
+
Object.assign(this, params);
|
|
30
|
+
if (!this.name) {
|
|
31
|
+
this.name = 'noname';
|
|
32
|
+
}
|
|
33
|
+
if (!this.description) {
|
|
34
|
+
this.description = this.name;
|
|
35
|
+
}
|
|
36
|
+
if (!this.help) {
|
|
37
|
+
this.help = '';
|
|
38
|
+
}
|
|
39
|
+
this.getDefaultValue();
|
|
40
|
+
}
|
|
41
|
+
/** Return field validators */
|
|
42
|
+
get validators() {
|
|
43
|
+
return this.getValidators();
|
|
44
|
+
}
|
|
45
|
+
/** Returns current field name */
|
|
46
|
+
get fname() {
|
|
47
|
+
return this.name.split('__')[1] || this.name;
|
|
48
|
+
}
|
|
49
|
+
/** Create a new typed formControl for this field. */
|
|
50
|
+
formControl(instance) {
|
|
51
|
+
return new FormControl(instance[this.fname] || this.getDefaultValue(), this.validators);
|
|
52
|
+
}
|
|
53
|
+
/** JSON deserializer base method. */
|
|
54
|
+
fromJson(data) {
|
|
55
|
+
return data;
|
|
56
|
+
}
|
|
57
|
+
/** JSON serializer base method. */
|
|
58
|
+
toJson(data) {
|
|
59
|
+
return data;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Display value (as string)
|
|
63
|
+
* @param data
|
|
64
|
+
* @param format (not used)
|
|
65
|
+
*/
|
|
66
|
+
toString(data, format = 'default') {
|
|
67
|
+
return `${data}`;
|
|
68
|
+
}
|
|
69
|
+
/** Return validators
|
|
70
|
+
*
|
|
71
|
+
* @protected
|
|
72
|
+
*/
|
|
73
|
+
getValidators() {
|
|
74
|
+
const v = [];
|
|
75
|
+
if (this.required) {
|
|
76
|
+
v.push(Validators.required);
|
|
77
|
+
}
|
|
78
|
+
return v;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Returns default value for model, using args if needed.
|
|
82
|
+
* @param args
|
|
83
|
+
*/
|
|
84
|
+
default(args = {}) {
|
|
85
|
+
return this.getDefaultValue(args);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Returns default value for model, using args if needed.
|
|
89
|
+
* @param args
|
|
90
|
+
* @protected
|
|
91
|
+
*/
|
|
92
|
+
getDefaultValue(args = {}) {
|
|
93
|
+
if (this.defaultValue instanceof Function) {
|
|
94
|
+
return this.defaultValue(args);
|
|
95
|
+
}
|
|
96
|
+
if (this.required && this.defaultValue === undefined) {
|
|
97
|
+
throw new Error(`Field ${this.name} : no default value for required field`);
|
|
98
|
+
}
|
|
99
|
+
return this.defaultValue;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/** Util to get own object keys */
|
|
103
|
+
const ownKeys = (target) => Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));
|
|
104
|
+
/**
|
|
105
|
+
* Creates a field decorator that can only be applied within
|
|
106
|
+
* an object containing a static __name property.
|
|
107
|
+
*
|
|
108
|
+
*
|
|
109
|
+
* @param meta field metadata
|
|
110
|
+
* @param type field type code
|
|
111
|
+
* @param manager field manager
|
|
112
|
+
*/
|
|
113
|
+
export function genericDataField(meta, type, manager) {
|
|
114
|
+
return (target, propertyKey) => {
|
|
115
|
+
const allMetadata = Reflect.getMetadata(PROPERTY_METADATA_KEY, target) ||
|
|
116
|
+
new Map();
|
|
117
|
+
let cname = `${target.constructor.__name}`;
|
|
118
|
+
if ((cname === `undefined` || cname === '') && type !== 'primaryField') {
|
|
119
|
+
throw Error(`Decorator ${type} allowed only on classes with static __name field : "${cname}" found for - ${target}`);
|
|
120
|
+
}
|
|
121
|
+
const pk = `${cname}__${String(propertyKey)}`;
|
|
122
|
+
let cm = allMetadata.get(pk);
|
|
123
|
+
/* istanbul ignore if */
|
|
124
|
+
if (cm) {
|
|
125
|
+
// This should never occur as metadata is object bound and property names must be unique
|
|
126
|
+
throw Error(`Field ${pk} already defined = ${cm}`);
|
|
127
|
+
}
|
|
128
|
+
cm = {};
|
|
129
|
+
for (const key of ownKeys(meta)) {
|
|
130
|
+
cm[key] = meta[key];
|
|
131
|
+
}
|
|
132
|
+
if (meta.name === undefined) {
|
|
133
|
+
cm.name = `${String(propertyKey)}`;
|
|
134
|
+
}
|
|
135
|
+
cm.type = type;
|
|
136
|
+
cm.self = pk;
|
|
137
|
+
cm.manager = new manager(cm);
|
|
138
|
+
allMetadata.set(pk, cm);
|
|
139
|
+
Reflect.defineMetadata(PROPERTY_METADATA_KEY, allMetadata, target);
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2ZpZWxkcy9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU90RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQXFCL0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFhM0IsWUFBWSxNQUEwQjtRQVAvQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsZUFBVSxHQUEwQixZQUFZLENBQUM7UUFDakQsZ0JBQVcsR0FBMkIsTUFBTSxDQUFDO1FBR2xELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7U0FDdEI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDOUI7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNkLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsSUFBVyxVQUFVO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxpQ0FBaUM7SUFDakMsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJ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QUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNwRDtRQUNELEVBQUUsR0FBRyxFQUErQixDQUFDO1FBQ3JDLEtBQUssTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLElBQVcsQ0FBQyxFQUFFO1lBQ3JDLEVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBSSxJQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDdkM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQzNCLEVBQUUsQ0FBQyxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztTQUNwQztRQUNELEVBQUUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2YsRUFBRSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDYixFQUFFLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxjQUFjLENBQUMscUJBQXFCLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vZGF0YS1tb2RlbCc7XG5pbXBvcnQge1xuICBESVNQRURJVF9ESVNQTEFZX1RZUEVTLFxuICBESVNQRURJVF9FRElUT1JfVFlQRVMsXG59IGZyb20gJy4uLy4uL2Rpc3BlZGl0L2Rpc3BlZGl0L2Rpc3BlZGl0LmNvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBQUk9QRVJUWV9NRVRBREFUQV9LRVkgPSBTeW1ib2woJ25neERhdGFNZXRhZGF0YScpO1xuXG4vKipcbiAqIERlc2NyaXB0aXZlIGluZm8gZm9yIGFsbCBmaWVsZHMuXG4gKiBBbGwgYXJlIG9wdGlvbmFsLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZE1ldGFkYXRhPEZUPiB7XG4gIC8qKiBGaWVsZCBuYW1lIChmb3IgZGlzcGxheSwgY29sdW1uIHRpdGxlLCBldGMuLikgKi9cbiAgbmFtZT86IHN0cmluZztcbiAgLyoqIEZpZWxkIGhlbHAgdGV4dCAoZm9yIGlucHV0KSAqL1xuICBoZWxwPzogc3RyaW5nO1xuICAvKiogRmllbGQgZGVzY3JpcHRpb24gKGZvciBkZXRhaWxzIG9uIGhvdmVyIGV0Yy4uKSAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqIEZpZWxkIHJlcXVpcmVkIDogbm8gdW5kZWZpbmVkIGFsbG93ZWQgb24gc2F2ZSA/ICovXG4gIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgLyoqIEZpZWxkIGNhbm5vdCBiZSB1cGRhdGVkICovXG4gIHJlYWRvbmx5PzogYm9vbGVhbjtcbiAgLyoqIERlZmF1bHQgdmFsdWUgKi9cbiAgZGVmYXVsdFZhbHVlPzogRlQgfCAoKGFyZ3M6IGFueSkgPT4gRlQpIHwgbnVsbDtcbn1cblxuLyoqXG4gKiBCYXNlIGZpZWxkIG1hbmFnZXIsIHN0b3JlcyBtZXRhZGF0YSBhbmQgcHJvdmlkZXMgY29tbW9uIGZpZWxkIHV0aWxpdGllc1xuICpcbiAqIC0gbmFtZSA6IGZpZWxkIG5hbWUsIHNob3VsZCBiZSB0aGUgc2FtZSBpbiBkYXRhIHN0cnVjdHVyZSBhbmQgbW9kZWxcbiAqIC0gaGVscCA6IGZpZWxkIGhlbHAgdGV4dCwgYmxhbmsgYnkgZGVmYXVsdFxuICogLSBkZXNjcmlwdGlvbiA6IGZpZWxkIG5hbWUgZm9yIGh1bWFuc1xuICogLSByZWFkb25seSA6IGZpZWxkIGlzIHJlYWRvbmx5IChjYW5ub3QgYmUgY2hhbmdlZCAvIHB1c2hlZCB0byBhcGkpXG4gKiAtIGRlZmF1bHQgOiBkZWZhdWx0IHZhbHVlIGZvciBmaWVsZFxuICpcbiAqIC0gZWRpdG9yX3R5cGUgOiBlZGl0b3IgdHlwZVxuICogLSBkaXNwbGF5X3R5cGUgOiBkaXNwbGF5IHR5cGVcbiAqXG4gKiAtIGZyb21Kc29uKGRhdGEpIDogZGVzZXJpYWxpemVyXG4gKiAtIHRvSnNvbihkYXRhKSA6IHNlcmlhbGlzZXJcbiAqIC0gdG9TdHJpbmcoZGF0YSxmb3JtYXQpIDogdG8gc3RyaW5nLCBmb3IgZGlzcGxheVxuICpcbiAqIC0gZm9ybUNvbnRyb2wgOiByZXR1cm5zIGZpZWxkIGZvcm0gY29udHJvbFxuICogLSB2YWxpZGF0b3JzIDogcmV0dXJucyBmaWVsZCB2YWxpZGF0b3JcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VGaWVsZE1hbmFnZXI8RlQ+IGltcGxlbWVudHMgSUZpZWxkTWV0YWRhdGE8RlQ+IHtcbiAgLyoqIE5hbWUgaXMgbWFuZGF0b3J5IGluIGEgZmllbGQgbWFuYWdlci4gSXQgaXMgZ2l2ZW4gYnlcbiAgICogZmllbGQgZGVjb3JhdG9yIGlmIG5vdCBkaXJlY3RseSBnaXZlbiBpbiBmaWVsZCBtYW5hZ2VyLiAqL1xuICBwdWJsaWMgbmFtZSE6IHN0cmluZztcbiAgcHVibGljIGRlc2NyaXB0aW9uITogc3RyaW5nO1xuICBwdWJsaWMgaGVscCE6IHN0cmluZztcbiAgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xuICBwdWJsaWMgZGVmYXVsdFZhbHVlPzogRlQgfCAoKGFyZ3M6IGFueSkgPT4gRlQpO1xuXG4gIHB1YmxpYyBlZGl0b3JUeXBlOiBESVNQRURJVF9FRElUT1JfVFlQRVMgPSAnaW5wdXQudGV4dCc7XG4gIHB1YmxpYyBkaXNwbGF5VHlwZTogRElTUEVESVRfRElTUExBWV9UWVBFUyA9ICd0ZXh0JztcblxuICBjb25zdHJ1Y3RvcihwYXJhbXM6IElGaWVsZE1ldGFkYXRhPEZUPikge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcywgcGFyYW1zKTtcbiAgICBpZiAoIXRoaXMubmFtZSkge1xuICAgICAgdGhpcy5uYW1lID0gJ25vbmFtZSc7XG4gICAgfVxuICAgIGlmICghdGhpcy5kZXNjcmlwdGlvbikge1xuICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IHRoaXMubmFtZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmhlbHApIHtcbiAgICAgIHRoaXMuaGVscCA9ICcnO1xuICAgIH1cbiAgICB0aGlzLmdldERlZmF1bHRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqIFJldHVybiBmaWVsZCB2YWxpZGF0b3JzICovXG4gIHB1YmxpYyBnZXQgdmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWYWxpZGF0b3JzKCk7XG4gIH1cblxuICAvKiogUmV0dXJucyBjdXJyZW50IGZpZWxkIG5hbWUgKi9cbiAgcHVibGljIGdldCBmbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWUuc3BsaXQoJ19fJylbMV0gfHwgdGhpcy5uYW1lO1xuICB9XG5cbiAgLyoqIENyZWF0ZSBhIG5ldyB0eXBlZCBmb3JtQ29udHJvbCBmb3IgdGhpcyBmaWVsZC4gKi9cbiAgcHVibGljIGZvcm1Db250cm9sKGluc3RhbmNlOiBEYXRhTW9kZWwpOiBGb3JtQ29udHJvbDxGVCB8IG51bGw+IHtcbiAgICByZXR1cm4gbmV3IEZvcm1Db250cm9sPEZUPihcbiAgICAgICgoaW5zdGFuY2UgYXMgYW55KVt0aGlzLmZuYW1lXSBhcyBGVCkgfHwgKHRoaXMuZ2V0RGVmYXVsdFZhbHVlKCkgYXMgRlQpLFxuICAgICAgdGhpcy52YWxpZGF0b3JzXG4gICAgKTtcbiAgfVxuXG4gIC8qKiBKU09OIGRlc2VyaWFsaXplciBiYXNlIG1ldGhvZC4gKi9cbiAgcHVibGljIGZyb21Kc29uKGRhdGE6IGFueSk6IEZUIHtcbiAgICByZXR1cm4gZGF0YSBhcyBGVDtcbiAgfVxuXG4gIC8qKiBKU09OIHNlcmlhbGl6ZXIgYmFzZSBtZXRob2QuICovXG4gIHB1YmxpYyB0b0pzb24oZGF0YTogRlQpOiBhbnkge1xuICAgIHJldHVybiBkYXRhIGFzIGFueTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEaXNwbGF5IHZhbHVlIChhcyBzdHJpbmcpXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqIEBwYXJhbSBmb3JtYXQgKG5vdCB1c2VkKVxuICAgKi9cbiAgcHVibGljIHRvU3RyaW5nKGRhdGE6IEZULCBmb3JtYXQ6IHN0cmluZyA9ICdkZWZhdWx0Jyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke2RhdGF9YDtcbiAgfVxuXG4gIC8qKiBSZXR1cm4gdmFsaWRhdG9yc1xuICAgKlxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICBjb25zdCB2OiBWYWxpZGF0b3JGbltdID0gW107XG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHYucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBkZWZhdWx0IHZhbHVlIGZvciBtb2RlbCwgdXNpbmcgYXJncyBpZiBuZWVkZWQuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqL1xuICBwdWJsaWMgZGVmYXVsdChhcmdzOiBhbnkgPSB7fSk6IEZUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0VmFsdWUoYXJncyk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBkZWZhdWx0IHZhbHVlIGZvciBtb2RlbCwgdXNpbmcgYXJncyBpZiBuZWVkZWQuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBnZXREZWZhdWx0VmFsdWUoYXJnczogYW55ID0ge30pOiBGVCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRWYWx1ZShhcmdzKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgdGhpcy5kZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRmllbGQgJHt0aGlzLm5hbWV9IDogbm8gZGVmYXVsdCB2YWx1ZSBmb3IgcmVxdWlyZWQgZmllbGRgXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0VmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBGaWVsZCBkYXRhIHN0b3JlZCBvbiByZWZsZWN0ZWQgbWV0YWRhdGEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkU3RvcmVkTWV0YWRhdGE8RlQ+IGV4dGVuZHMgSUZpZWxkTWV0YWRhdGE8RlQ+IHtcbiAgc2VsZjogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IHN0cmluZztcbiAgbWFuYWdlcjogQmFzZUZpZWxkTWFuYWdlcjxGVD47XG59XG5cbi8qKiBVdGlsIHRvIGdldCBvd24gb2JqZWN0IGtleXMgKi9cbmNvbnN0IG93bktleXMgPSAodGFyZ2V0OiBhbnkpOiBhbnkgPT5cbiAgT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModGFyZ2V0KS5jb25jYXQoXG4gICAgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpIGFzIGFueVxuICApO1xuXG4vKiogTWFuYWdlciBjb25zdHJ1Y3RvclxuICogIEZUIGlzIGpzIGZpZWxkIHR5cGU7XG4gKiAgVCBpcyBtYW5hZ2VyIHR5cGVcbiAqICovXG50eXBlIEJhc2VGaWVsZE1hbmFnZXJDb25zdHJ1Y3RvcjxGVCwgVCBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8RlQ+PiA9IG5ldyAoXG4gIHBhcmFtczogYW55XG4pID0+IFQ7XG5cbi8qKlxuICogRmllbGQgZGVjb3JhdG9yIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIEZpZWxkRGVjb3JhdG9yRm4gPSAoXG4gIHRhcmdldDogYW55LFxuICBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sXG4pID0+IHZvaWQ7XG5cbi8qKlxuICogQ3JlYXRlcyBhIGZpZWxkIGRlY29yYXRvciB0aGF0IGNhbiBvbmx5IGJlIGFwcGxpZWQgd2l0aGluXG4gKiBhbiBvYmplY3QgY29udGFpbmluZyBhIHN0YXRpYyBfX25hbWUgcHJvcGVydHkuXG4gKlxuICpcbiAqIEBwYXJhbSBtZXRhIGZpZWxkIG1ldGFkYXRhXG4gKiBAcGFyYW0gdHlwZSBmaWVsZCB0eXBlIGNvZGVcbiAqIEBwYXJhbSBtYW5hZ2VyIGZpZWxkIG1hbmFnZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyaWNEYXRhRmllbGQ8XG4gIEZULFxuICBNRCBleHRlbmRzIElGaWVsZE1ldGFkYXRhPEZUPixcbiAgTUcgZXh0ZW5kcyBCYXNlRmllbGRNYW5hZ2VyPEZUPlxuPihcbiAgbWV0YTogTUQsXG4gIHR5cGU6IHN0cmluZyxcbiAgbWFuYWdlcjogQmFzZUZpZWxkTWFuYWdlckNvbnN0cnVjdG9yPEZULCBNRz5cbik6IEZpZWxkRGVjb3JhdG9yRm4ge1xuICByZXR1cm4gKHRhcmdldDogRGF0YU1vZGVsLCBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sKSA9PiB7XG4gICAgY29uc3QgYWxsTWV0YWRhdGE6IE1hcDxcbiAgICAgIHN0cmluZyxcbiAgICAgIElGaWVsZFN0b3JlZE1ldGFkYXRhPGFueT5cbiAgICA+ID0gUmVmbGVjdC5nZXRNZXRhZGF0YShQUk9QRVJUWV9NRVRBREFUQV9LRVksIHRhcmdldCkgfHxcbiAgICBuZXcgTWFwPHN0cmluZywgSUZpZWxkU3RvcmVkTWV0YWRhdGE8YW55Pj4oKTtcbiAgICBsZXQgY25hbWU6IHN0cmluZyA9IGAkeyh0YXJnZXQuY29uc3RydWN0b3IgYXMgYW55KS5fX25hbWV9YDtcbiAgICBpZiAoKGNuYW1lID09PSBgdW5kZWZpbmVkYCB8fCBjbmFtZSA9PT0gJycpICYmIHR5cGUgIT09ICdwcmltYXJ5RmllbGQnKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgYERlY29yYXRvciAke3R5cGV9IGFsbG93ZWQgb25seSBvbiBjbGFzc2VzIHdpdGggc3RhdGljIF9fbmFtZSBmaWVsZCA6IFwiJHtjbmFtZX1cIiBmb3VuZCBmb3IgLSAke3RhcmdldH1gXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBwayA9IGAke2NuYW1lfV9fJHtTdHJpbmcocHJvcGVydHlLZXkpfWA7XG4gICAgbGV0IGNtID0gYWxsTWV0YWRhdGEuZ2V0KHBrKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoY20pIHtcbiAgICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIG9jY3VyIGFzIG1ldGFkYXRhIGlzIG9iamVjdCBib3VuZCBhbmQgcHJvcGVydHkgbmFtZXMgbXVzdCBiZSB1bmlxdWVcbiAgICAgIHRocm93IEVycm9yKGBGaWVsZCAke3BrfSBhbHJlYWR5IGRlZmluZWQgPSAke2NtfWApO1xuICAgIH1cbiAgICBjbSA9IHt9IGFzIElGaWVsZFN0b3JlZE1ldGFkYXRhPGFueT47XG4gICAgZm9yIChjb25zdCBrZXkgb2Ygb3duS2V5cyhtZXRhIGFzIGFueSkpIHtcbiAgICAgIChjbSBhcyBhbnkpW2tleV0gPSAobWV0YSBhcyBhbnkpW2tleV07XG4gICAgfVxuICAgIGlmIChtZXRhLm5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY20ubmFtZSA9IGAke1N0cmluZyhwcm9wZXJ0eUtleSl9YDtcbiAgICB9XG4gICAgY20udHlwZSA9IHR5cGU7XG4gICAgY20uc2VsZiA9IHBrO1xuICAgIGNtLm1hbmFnZXIgPSBuZXcgbWFuYWdlcihjbSk7XG4gICAgYWxsTWV0YWRhdGEuc2V0KHBrLCBjbSk7XG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShQUk9QRVJUWV9NRVRBREFUQV9LRVksIGFsbE1ldGFkYXRhLCB0YXJnZXQpO1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BaseFieldManager, genericDataField } from './base';
|
|
2
|
+
export class BooleanFieldManager extends BaseFieldManager {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
this.editorType = 'input.checkbox';
|
|
6
|
+
this.displayType = 'boolean';
|
|
7
|
+
}
|
|
8
|
+
fromJson(data) {
|
|
9
|
+
if (data === undefined) {
|
|
10
|
+
if (this.required) {
|
|
11
|
+
return this.getDefaultValue();
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (data === null) {
|
|
18
|
+
if (this.required) {
|
|
19
|
+
return this.getDefaultValue();
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (typeof data === 'boolean') {
|
|
26
|
+
return data;
|
|
27
|
+
}
|
|
28
|
+
if (typeof data === 'string') {
|
|
29
|
+
if (['true', '1', 'ok', 'yes'].indexOf(data) !== -1) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
return ['false', '0', 'nok', 'no'].indexOf(data) === -1;
|
|
33
|
+
}
|
|
34
|
+
return !!data;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export const booleanField = (updates = {}) => genericDataField(updates, 'booleanField', BooleanFieldManager);
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2ZpZWxkcy9ib29sZWFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSxRQUFRLENBQUM7QUFRNUUsTUFBTSxPQUFPLG1CQUNYLFNBQVEsZ0JBQWdDO0lBRDFDOztRQUlrQixlQUFVLEdBQTBCLGdCQUFnQixDQUFDO1FBQ3JELGdCQUFXLEdBQTJCLFNBQVMsQ0FBQztJQTRCbEUsQ0FBQztJQTFCaUIsUUFBUSxDQUFDLElBQVM7UUFDaEMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFHLENBQUM7YUFDaEM7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBQ0QsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ2pCLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFHLENBQUM7YUFDaEM7aUJBQU07Z0JBQ0wsT0FBTyxJQUFJLENBQUM7YUFDYjtTQUNGO1FBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDN0IsT0FBTyxJQUFlLENBQUM7U0FDeEI7UUFDRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUM1QixJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUNuRCxPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN6RDtRQUNELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxVQUFpQyxFQUFFLEVBQUUsRUFBRSxDQUNsRSxnQkFBZ0IsQ0FDZCxPQUFPLEVBQ1AsY0FBYyxFQUNkLG1CQUFtQixDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUZpZWxkTWFuYWdlciwgZ2VuZXJpY0RhdGFGaWVsZCwgSUZpZWxkTWV0YWRhdGEgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtcbiAgRElTUEVESVRfRElTUExBWV9UWVBFUyxcbiAgRElTUEVESVRfRURJVE9SX1RZUEVTLFxufSBmcm9tICcuLi8uLi9kaXNwZWRpdC9kaXNwZWRpdC9kaXNwZWRpdC5jb25zdGFudHMnO1xuXG5leHBvcnQgdHlwZSBJQm9vbGVhbkZpZWxkTWV0YWRhdGEgPSBJRmllbGRNZXRhZGF0YTxib29sZWFuIHwgbnVsbD47XG5cbmV4cG9ydCBjbGFzcyBCb29sZWFuRmllbGRNYW5hZ2VyXG4gIGV4dGVuZHMgQmFzZUZpZWxkTWFuYWdlcjxib29sZWFuIHwgbnVsbD5cbiAgaW1wbGVtZW50cyBJQm9vbGVhbkZpZWxkTWV0YWRhdGFcbntcbiAgcHVibGljIG92ZXJyaWRlIGVkaXRvclR5cGU6IERJU1BFRElUX0VESVRPUl9UWVBFUyA9ICdpbnB1dC5jaGVja2JveCc7XG4gIHB1YmxpYyBvdmVycmlkZSBkaXNwbGF5VHlwZTogRElTUEVESVRfRElTUExBWV9UWVBFUyA9ICdib29sZWFuJztcblxuICBwdWJsaWMgb3ZlcnJpZGUgZnJvbUpzb24oZGF0YTogYW55KTogYm9vbGVhbiB8IG51bGwge1xuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLnJlcXVpcmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRWYWx1ZSgpITtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YSA9PT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdFZhbHVlKCkhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4gZGF0YSBhcyBib29sZWFuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoWyd0cnVlJywgJzEnLCAnb2snLCAneWVzJ10uaW5kZXhPZihkYXRhKSAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gWydmYWxzZScsICcwJywgJ25vaycsICdubyddLmluZGV4T2YoZGF0YSkgPT09IC0xO1xuICAgIH1cbiAgICByZXR1cm4gISFkYXRhO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBib29sZWFuRmllbGQgPSAodXBkYXRlczogSUJvb2xlYW5GaWVsZE1ldGFkYXRhID0ge30pID0+XG4gIGdlbmVyaWNEYXRhRmllbGQ8Ym9vbGVhbiB8IG51bGwsIElCb29sZWFuRmllbGRNZXRhZGF0YSwgQm9vbGVhbkZpZWxkTWFuYWdlcj4oXG4gICAgdXBkYXRlcyxcbiAgICAnYm9vbGVhbkZpZWxkJyxcbiAgICBCb29sZWFuRmllbGRNYW5hZ2VyXG4gICk7XG4iXX0=
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { BaseFieldManager, genericDataField } from './base';
|
|
2
|
+
export const dateMinimum = (date) => {
|
|
3
|
+
return (control) => {
|
|
4
|
+
if (control.value == null) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
const controlDate = new Date(control.value);
|
|
8
|
+
const validationDate = date;
|
|
9
|
+
return controlDate > validationDate
|
|
10
|
+
? null
|
|
11
|
+
: {
|
|
12
|
+
minDate: {
|
|
13
|
+
'date-minimum': validationDate,
|
|
14
|
+
actual: controlDate,
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export const dateMaximum = (date) => {
|
|
20
|
+
return (control) => {
|
|
21
|
+
if (control.value == null) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
const controlDate = new Date(control.value);
|
|
25
|
+
const validationDate = date;
|
|
26
|
+
return controlDate < validationDate
|
|
27
|
+
? null
|
|
28
|
+
: {
|
|
29
|
+
maxDate: {
|
|
30
|
+
'date-maximum': validationDate,
|
|
31
|
+
actual: controlDate,
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
export class DateFieldManager extends BaseFieldManager {
|
|
37
|
+
constructor() {
|
|
38
|
+
super(...arguments);
|
|
39
|
+
this.autoNow = false;
|
|
40
|
+
this.autoNowAdd = false;
|
|
41
|
+
this.editorType = 'input.date';
|
|
42
|
+
this.displayType = 'date';
|
|
43
|
+
}
|
|
44
|
+
get validators() {
|
|
45
|
+
const v = super.validators;
|
|
46
|
+
if (this.min) {
|
|
47
|
+
v.push(dateMinimum(this.min));
|
|
48
|
+
}
|
|
49
|
+
if (this.max) {
|
|
50
|
+
v.push(dateMaximum(this.max));
|
|
51
|
+
}
|
|
52
|
+
return v;
|
|
53
|
+
}
|
|
54
|
+
fromJson(data) {
|
|
55
|
+
if (data === null || data === undefined) {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
const date = new Date(data);
|
|
59
|
+
if (date instanceof Date && !isNaN(date)) {
|
|
60
|
+
return date;
|
|
61
|
+
}
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
toJson(data) {
|
|
65
|
+
if (data === null || data === undefined) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
if (typeof data === 'string') {
|
|
69
|
+
const d = this.fromJson(data);
|
|
70
|
+
if (d === null) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
data = d;
|
|
74
|
+
}
|
|
75
|
+
return `${data.getUTCFullYear()}-${data.getUTCMonth() + 1}-${data.getUTCDate()}`;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Returns default value for model, using args if needed.
|
|
79
|
+
* @param args
|
|
80
|
+
* @protected
|
|
81
|
+
*/
|
|
82
|
+
getDefaultValue(args = {}) {
|
|
83
|
+
if (this.defaultValue instanceof Function) {
|
|
84
|
+
return this.defaultValue(args);
|
|
85
|
+
}
|
|
86
|
+
if (this.required && this.defaultValue === undefined) {
|
|
87
|
+
throw new Error(`Field ${this.name} : no default value for required field`);
|
|
88
|
+
}
|
|
89
|
+
if (this.defaultValue === undefined) {
|
|
90
|
+
return this.autoNow || this.autoNowAdd ? new Date() : null;
|
|
91
|
+
}
|
|
92
|
+
return this.defaultValue;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
export class DatetimeFieldManager extends DateFieldManager {
|
|
96
|
+
constructor() {
|
|
97
|
+
super(...arguments);
|
|
98
|
+
this.timezone = 'Europe/Paris';
|
|
99
|
+
this.editorType = 'input.datetime';
|
|
100
|
+
this.displayType = 'datetime';
|
|
101
|
+
}
|
|
102
|
+
toJson(data) {
|
|
103
|
+
if (data === null || data === undefined) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
if (typeof data === 'string') {
|
|
107
|
+
const d = this.fromJson(data);
|
|
108
|
+
if (d === null) {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
data = d;
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
return data.toISOString();
|
|
115
|
+
}
|
|
116
|
+
catch (e) {
|
|
117
|
+
console.error(e, data);
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
export const dateField = (updates = {}) => genericDataField(updates, 'dateField', DateFieldManager);
|
|
123
|
+
export const datetimeField = (updates = {}) => genericDataField(updates, 'datetimeField', DatetimeFieldManager);
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvZGF0YS9maWVsZHMvZGF0ZXRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFrQixNQUFNLFFBQVEsQ0FBQztBQWM1RSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFVLEVBQWUsRUFBRTtJQUNyRCxPQUFPLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtRQUMzRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFNUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRTVCLE9BQU8sV0FBVyxHQUFHLGNBQWM7WUFDakMsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUM7Z0JBQ0UsT0FBTyxFQUFFO29CQUNQLGNBQWMsRUFBRSxjQUFjO29CQUM5QixNQUFNLEVBQUUsV0FBVztpQkFDcEI7YUFDRixDQUFDO0lBQ1IsQ0FBQyxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBVSxFQUFlLEVBQUU7SUFDckQsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7UUFDM0QsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQztRQUU1QixPQUFPLFdBQVcsR0FBRyxjQUFjO1lBQ2pDLENBQUMsQ0FBQyxJ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QVUsQ0FBQztJQW9CbkUsQ0FBQztJQWxCaUIsTUFBTSxDQUFDLElBQVU7UUFDL0IsSUFBSSxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDdkMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNkLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxJQUFJLEdBQUcsQ0FBQyxDQUFDO1NBQ1Y7UUFDRCxJQUFJO1lBQ0YsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDM0I7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxVQUE4QixFQUFFLEVBQUUsRUFBRSxDQUM1RCxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsVUFBa0MsRUFBRSxFQUFFLEVBQUUsQ0FDcEUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUZpZWxkTWFuYWdlciwgZ2VuZXJpY0RhdGFGaWVsZCwgSUZpZWxkTWV0YWRhdGEgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtcbiAgRElTUEVESVRfRElTUExBWV9UWVBFUyxcbiAgRElTUEVESVRfRURJVE9SX1RZUEVTLFxufSBmcm9tICcuLi8uLi9kaXNwZWRpdC9kaXNwZWRpdC9kaXNwZWRpdC5jb25zdGFudHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZUZpZWxkTWV0YWRhdGEgZXh0ZW5kcyBJRmllbGRNZXRhZGF0YTxEYXRlIHwgbnVsbD4ge1xuICBhdXRvTm93PzogYm9vbGVhbjtcbiAgYXV0b05vd0FkZD86IGJvb2xlYW47XG4gIG1pbj86IERhdGU7XG4gIG1heD86IERhdGU7XG59XG5cbmV4cG9ydCBjb25zdCBkYXRlTWluaW11bSA9IChkYXRlOiBEYXRlKTogVmFsaWRhdG9yRm4gPT4ge1xuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICBpZiAoY29udHJvbC52YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBjb250cm9sRGF0ZSA9IG5ldyBEYXRlKGNvbnRyb2wudmFsdWUpO1xuXG4gICAgY29uc3QgdmFsaWRhdGlvbkRhdGUgPSBkYXRlO1xuXG4gICAgcmV0dXJuIGNvbnRyb2xEYXRlID4gdmFsaWRhdGlvbkRhdGVcbiAgICAgID8gbnVsbFxuICAgICAgOiB7XG4gICAgICAgICAgbWluRGF0ZToge1xuICAgICAgICAgICAgJ2RhdGUtbWluaW11bSc6IHZhbGlkYXRpb25EYXRlLFxuICAgICAgICAgICAgYWN0dWFsOiBjb250cm9sRGF0ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRhdGVNYXhpbXVtID0gKGRhdGU6IERhdGUpOiBWYWxpZGF0b3JGbiA9PiB7XG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgIGlmIChjb250cm9sLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBjb250cm9sRGF0ZSA9IG5ldyBEYXRlKGNvbnRyb2wudmFsdWUpO1xuICAgIGNvbnN0IHZhbGlkYXRpb25EYXRlID0gZGF0ZTtcblxuICAgIHJldHVybiBjb250cm9sRGF0ZSA8IHZhbGlkYXRpb25EYXRlXG4gICAgICA/IG51bGxcbiAgICAgIDoge1xuICAgICAgICAgIG1heERhdGU6IHtcbiAgICAgICAgICAgICdkYXRlLW1heGltdW0nOiB2YWxpZGF0aW9uRGF0ZSxcbiAgICAgICAgICAgIGFjdHVhbDogY29udHJvbERhdGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgfTtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURhdGV0aW1lRmllbGRNZXRhZGF0YSBleHRlbmRzIElEYXRlRmllbGRNZXRhZGF0YSB7XG4gIHRpbWV6b25lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRGF0ZUZpZWxkTWFuYWdlciBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8RGF0ZSB8IG51bGw+IHtcbiAgcHVibGljIGF1dG9Ob3cgPSBmYWxzZTtcbiAgcHVibGljIGF1dG9Ob3dBZGQgPSBmYWxzZTtcbiAgcHVibGljIG1pbj86IERhdGU7XG4gIHB1YmxpYyBtYXg/OiBEYXRlO1xuICBwdWJsaWMgb3ZlcnJpZGUgZWRpdG9yVHlwZTogRElTUEVESVRfRURJVE9SX1RZUEVTID0gJ2lucHV0LmRhdGUnO1xuICBwdWJsaWMgb3ZlcnJpZGUgZGlzcGxheVR5cGU6IERJU1BFRElUX0RJU1BMQVlfVFlQRVMgPSAnZGF0ZSc7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCB2YWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHYgPSBzdXBlci52YWxpZGF0b3JzO1xuICAgIGlmICh0aGlzLm1pbikge1xuICAgICAgdi5wdXNoKGRhdGVNaW5pbXVtKHRoaXMubWluKSk7XG4gICAgfVxuICAgIGlmICh0aGlzLm1heCkge1xuICAgICAgdi5wdXNoKGRhdGVNYXhpbXVtKHRoaXMubWF4KSk7XG4gICAgfVxuICAgIHJldHVybiB2O1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGZyb21Kc29uKGRhdGE6IGFueSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0YSk7XG4gICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlIGFzIGFueSkpIHtcbiAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB0b0pzb24oZGF0YTogRGF0ZSB8IHN0cmluZyB8IG51bGwpOiBudWxsIHwgc3RyaW5nIHtcbiAgICBpZiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBkID0gdGhpcy5mcm9tSnNvbihkYXRhKTtcbiAgICAgIGlmIChkID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgZGF0YSA9IGQ7XG4gICAgfVxuICAgIHJldHVybiBgJHtkYXRhLmdldFVUQ0Z1bGxZZWFyKCl9LSR7XG4gICAgICBkYXRhLmdldFVUQ01vbnRoKCkgKyAxXG4gICAgfS0ke2RhdGEuZ2V0VVRDRGF0ZSgpfWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBkZWZhdWx0IHZhbHVlIGZvciBtb2RlbCwgdXNpbmcgYXJncyBpZiBuZWVkZWQuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXREZWZhdWx0VmFsdWUoYXJnczogYW55ID0ge30pOiBEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFZhbHVlIGluc3RhbmNlb2YgRnVuY3Rpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRWYWx1ZShhcmdzKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgdGhpcy5kZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgRmllbGQgJHt0aGlzLm5hbWV9IDogbm8gZGVmYXVsdCB2YWx1ZSBmb3IgcmVxdWlyZWQgZmllbGRgXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0b05vdyB8fCB0aGlzLmF1dG9Ob3dBZGQgPyBuZXcgRGF0ZSgpIDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEYXRldGltZUZpZWxkTWFuYWdlclxuICBleHRlbmRzIERhdGVGaWVsZE1hbmFnZXJcbiAgaW1wbGVtZW50cyBJRGF0ZXRpbWVGaWVsZE1ldGFkYXRhXG57XG4gIHB1YmxpYyB0aW1lem9uZSA9ICdFdXJvcGUvUGFyaXMnO1xuICBwdWJsaWMgb3ZlcnJpZGUgZWRpdG9yVHlwZTogRElTUEVESVRfRURJVE9SX1RZUEVTID0gJ2lucHV0LmRhdGV0aW1lJztcbiAgcHVibGljIG92ZXJyaWRlIGRpc3BsYXlUeXBlOiBESVNQRURJVF9ESVNQTEFZX1RZUEVTID0gJ2RhdGV0aW1lJztcblxuICBwdWJsaWMgb3ZlcnJpZGUgdG9Kc29uKGRhdGE6IERhdGUpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb25zdCBkID0gdGhpcy5mcm9tSnNvbihkYXRhKTtcbiAgICAgIGlmIChkID09PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgICAgZGF0YSA9IGQ7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZGF0YS50b0lTT1N0cmluZygpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZSwgZGF0YSk7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGRhdGVGaWVsZCA9ICh1cGRhdGVzOiBJRGF0ZUZpZWxkTWV0YWRhdGEgPSB7fSkgPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAnZGF0ZUZpZWxkJywgRGF0ZUZpZWxkTWFuYWdlcik7XG5cbmV4cG9ydCBjb25zdCBkYXRldGltZUZpZWxkID0gKHVwZGF0ZXM6IElEYXRldGltZUZpZWxkTWV0YWRhdGEgPSB7fSkgPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAnZGF0ZXRpbWVGaWVsZCcsIERhdGV0aW1lRmllbGRNYW5hZ2VyKTtcbiJdfQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { charField, emailField, textField, passwordField, } from './stringfields';
|
|
2
|
+
export { primaryField } from './primaryfield';
|
|
3
|
+
export { dateField, datetimeField } from './datetime';
|
|
4
|
+
export { foreignKeyField, manyToManyField, reverseForeignKeyField, detailsField, } from './relations';
|
|
5
|
+
export { booleanField } from './boolean';
|
|
6
|
+
export { decimalField, integerField, floatField } from './numbers';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvZGF0YS9maWVsZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsWUFBWSxHQUNiLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgY2hhckZpZWxkLFxuICBlbWFpbEZpZWxkLFxuICB0ZXh0RmllbGQsXG4gIHBhc3N3b3JkRmllbGQsXG59IGZyb20gJy4vc3RyaW5nZmllbGRzJztcbmV4cG9ydCB7IHByaW1hcnlGaWVsZCB9IGZyb20gJy4vcHJpbWFyeWZpZWxkJztcbmV4cG9ydCB7IGRhdGVGaWVsZCwgZGF0ZXRpbWVGaWVsZCB9IGZyb20gJy4vZGF0ZXRpbWUnO1xuZXhwb3J0IHtcbiAgZm9yZWlnbktleUZpZWxkLFxuICBtYW55VG9NYW55RmllbGQsXG4gIHJldmVyc2VGb3JlaWduS2V5RmllbGQsXG4gIGRldGFpbHNGaWVsZCxcbn0gZnJvbSAnLi9yZWxhdGlvbnMnO1xuZXhwb3J0IHsgYm9vbGVhbkZpZWxkIH0gZnJvbSAnLi9ib29sZWFuJztcbmV4cG9ydCB7IGRlY2ltYWxGaWVsZCwgaW50ZWdlckZpZWxkLCBmbG9hdEZpZWxkIH0gZnJvbSAnLi9udW1iZXJzJztcbiJdfQ==
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { BaseFieldManager, genericDataField, } from './base';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
export class IntegerFieldManager extends BaseFieldManager {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.displayType = 'text';
|
|
7
|
+
this.editorType = 'input.number';
|
|
8
|
+
}
|
|
9
|
+
get validators() {
|
|
10
|
+
const v = super.getValidators();
|
|
11
|
+
if (this.min !== undefined) {
|
|
12
|
+
v.push(Validators.min(this.min));
|
|
13
|
+
}
|
|
14
|
+
if (this.max !== undefined) {
|
|
15
|
+
v.push(Validators.max(this.max));
|
|
16
|
+
}
|
|
17
|
+
return v;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export class FloatFieldManager extends IntegerFieldManager {
|
|
21
|
+
constructor() {
|
|
22
|
+
super(...arguments);
|
|
23
|
+
this.displayType = 'text';
|
|
24
|
+
this.editorType = 'input.number';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export class DecimalFieldManager extends IntegerFieldManager {
|
|
28
|
+
constructor() {
|
|
29
|
+
super(...arguments);
|
|
30
|
+
this.displayType = 'decimal';
|
|
31
|
+
this.editorType = 'input.decimal';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/* eslint-disable max-len */
|
|
35
|
+
export const integerField = (updates = {}) => genericDataField(updates, 'integerField', IntegerFieldManager);
|
|
36
|
+
export const floatField = (updates = {}) => genericDataField(updates, 'floatField', FloatFieldManager);
|
|
37
|
+
export const decimalField = (updates = { factor: 100 }) => genericDataField(updates, 'decimalField', DecimalFieldManager);
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2ZpZWxkcy9udW1iZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIsZ0JBQWdCLEdBRWpCLE1BQU0sUUFBUSxDQUFDO0FBS2hCLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWtCekQsTUFBTSxPQUFPLG1CQUNYLFNBQVEsZ0JBQXdCO0lBRGxDOztRQUlrQixnQkFBVyxHQUEyQixNQUFNLENBQUM7UUFDN0MsZUFBVSxHQUEwQixjQUFjLENBQUM7SUFlckUsQ0FBQztJQVZDLElBQW9CLFVBQVU7UUFDNUIsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDMUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRTtZQUMxQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDbEM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxpQkFDWCxTQUFRLG1CQUFtQjtJQUQ3Qjs7UUFJa0IsZ0JBQVcsR0FBMkIsTUFBTSxDQUFDO1FBQzdDLGVBQVUsR0FBMEIsY0FBYyxDQUFDO0lBQ3JFLENBQUM7Q0FBQTtBQUVELE1BQU0sT0FBTyxtQkFDWCxTQUFRLG1CQUFtQjtJQUQ3Qjs7UUFLa0IsZ0JBQVcsR0FBMkIsU0FBUyxDQUFDO1FBQ2hELGVBQVUsR0FBMEIsZUFBZSxDQUFDO0lBQ3RFLENBQUM7Q0FBQTtBQUVELDRCQUE0QjtBQUM1QixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FDMUIsVUFBaUMsRUFBRSxFQUNqQixFQUFFLENBQ3BCLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FDeEIsVUFBK0IsRUFBRSxFQUNmLEVBQUUsQ0FDcEIsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUMxQixVQUFpQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFDOUIsRUFBRSxDQUNwQixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlRmllbGRNYW5hZ2VyLFxuICBGaWVsZERlY29yYXRvckZuLFxuICBnZW5lcmljRGF0YUZpZWxkLFxuICBJRmllbGRNZXRhZGF0YSxcbn0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7XG4gIERJU1BFRElUX0RJU1BMQVlfVFlQRVMsXG4gIERJU1BFRElUX0VESVRPUl9UWVBFUyxcbn0gZnJvbSAnLi4vLi4vZGlzcGVkaXQvZGlzcGVkaXQvZGlzcGVkaXQuY29uc3RhbnRzJztcbmltcG9ydCB7IFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElJbnRlZ2VyRmllbGRNZXRhZGF0YSBleHRlbmRzIElGaWVsZE1ldGFkYXRhPG51bWJlcj4ge1xuICBtaW4/OiBudW1iZXI7XG4gIG1heD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmxvYXRGaWVsZE1ldGFkYXRhIGV4dGVuZHMgSUZpZWxkTWV0YWRhdGE8bnVtYmVyPiB7XG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElEZWNpbWFsRmllbGRNZXRhZGF0YSBleHRlbmRzIElGaWVsZE1ldGFkYXRhPG51bWJlcj4ge1xuICBtaW4/OiBudW1iZXI7XG4gIG1heD86IG51bWJlcjtcbiAgZmFjdG9yPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgSW50ZWdlckZpZWxkTWFuYWdlclxuICBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8bnVtYmVyPlxuICBpbXBsZW1lbnRzIElJbnRlZ2VyRmllbGRNZXRhZGF0YVxue1xuICBwdWJsaWMgb3ZlcnJpZGUgZGlzcGxheVR5cGU6IERJU1BFRElUX0RJU1BMQVlfVFlQRVMgPSAndGV4dCc7XG4gIHB1YmxpYyBvdmVycmlkZSBlZGl0b3JUeXBlOiBESVNQRURJVF9FRElUT1JfVFlQRVMgPSAnaW5wdXQubnVtYmVyJztcblxuICBwdWJsaWMgbWluPzogbnVtYmVyO1xuICBwdWJsaWMgbWF4PzogbnVtYmVyO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgdmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICBjb25zdCB2ID0gc3VwZXIuZ2V0VmFsaWRhdG9ycygpO1xuICAgIGlmICh0aGlzLm1pbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB2LnB1c2goVmFsaWRhdG9ycy5taW4odGhpcy5taW4pKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHYucHVzaChWYWxpZGF0b3JzLm1heCh0aGlzLm1heCkpO1xuICAgIH1cbiAgICByZXR1cm4gdjtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmxvYXRGaWVsZE1hbmFnZXJcbiAgZXh0ZW5kcyBJbnRlZ2VyRmllbGRNYW5hZ2VyXG4gIGltcGxlbWVudHMgSUZsb2F0RmllbGRNZXRhZGF0YVxue1xuICBwdWJsaWMgb3ZlcnJpZGUgZGlzcGxheVR5cGU6IERJU1BFRElUX0RJU1BMQVlfVFlQRVMgPSAndGV4dCc7XG4gIHB1YmxpYyBvdmVycmlkZSBlZGl0b3JUeXBlOiBESVNQRURJVF9FRElUT1JfVFlQRVMgPSAnaW5wdXQubnVtYmVyJztcbn1cblxuZXhwb3J0IGNsYXNzIERlY2ltYWxGaWVsZE1hbmFnZXJcbiAgZXh0ZW5kcyBJbnRlZ2VyRmllbGRNYW5hZ2VyXG4gIGltcGxlbWVudHMgSURlY2ltYWxGaWVsZE1ldGFkYXRhXG57XG4gIHB1YmxpYyBmYWN0b3I/OiBudW1iZXI7XG4gIHB1YmxpYyBvdmVycmlkZSBkaXNwbGF5VHlwZTogRElTUEVESVRfRElTUExBWV9UWVBFUyA9ICdkZWNpbWFsJztcbiAgcHVibGljIG92ZXJyaWRlIGVkaXRvclR5cGU6IERJU1BFRElUX0VESVRPUl9UWVBFUyA9ICdpbnB1dC5kZWNpbWFsJztcbn1cblxuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuZXhwb3J0IGNvbnN0IGludGVnZXJGaWVsZCA9IChcbiAgdXBkYXRlczogSUludGVnZXJGaWVsZE1ldGFkYXRhID0ge31cbik6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAnaW50ZWdlckZpZWxkJywgSW50ZWdlckZpZWxkTWFuYWdlcik7XG5cbmV4cG9ydCBjb25zdCBmbG9hdEZpZWxkID0gKFxuICB1cGRhdGVzOiBJRmxvYXRGaWVsZE1ldGFkYXRhID0ge31cbik6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAnZmxvYXRGaWVsZCcsIEZsb2F0RmllbGRNYW5hZ2VyKTtcblxuZXhwb3J0IGNvbnN0IGRlY2ltYWxGaWVsZCA9IChcbiAgdXBkYXRlczogSURlY2ltYWxGaWVsZE1ldGFkYXRhID0geyBmYWN0b3I6IDEwMCB9XG4pOiBGaWVsZERlY29yYXRvckZuID0+XG4gIGdlbmVyaWNEYXRhRmllbGQodXBkYXRlcywgJ2RlY2ltYWxGaWVsZCcsIERlY2ltYWxGaWVsZE1hbmFnZXIpO1xuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseFieldManager, genericDataField, } from './base';
|
|
2
|
+
export class PrimaryFieldManager extends BaseFieldManager {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
this.step = 1;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export const primaryField = (updates = {}) => genericDataField(updates, 'primaryField', PrimaryFieldManager);
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbWFyeWZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2RhdGEvZmllbGRzL3ByaW1hcnlmaWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWhCLGdCQUFnQixHQUVqQixNQUFNLFFBQVEsQ0FBQztBQU1oQixNQUFNLE9BQU8sbUJBQ1gsU0FBUSxnQkFBd0I7SUFEbEM7O1FBSVMsU0FBSSxHQUFHLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FDMUIsVUFBaUMsRUFBRSxFQUNqQixFQUFFLENBQ3BCLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VGaWVsZE1hbmFnZXIsXG4gIEZpZWxkRGVjb3JhdG9yRm4sXG4gIGdlbmVyaWNEYXRhRmllbGQsXG4gIElGaWVsZE1ldGFkYXRhLFxufSBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQcmltYXJ5RmllbGRNZXRhZGF0YSBleHRlbmRzIElGaWVsZE1ldGFkYXRhPG51bWJlcj4ge1xuICBzdGVwPzogbnVtYmVyO1xufVxuXG5leHBvcnQgY2xhc3MgUHJpbWFyeUZpZWxkTWFuYWdlclxuICBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8bnVtYmVyPlxuICBpbXBsZW1lbnRzIElQcmltYXJ5RmllbGRNZXRhZGF0YVxue1xuICBwdWJsaWMgc3RlcCA9IDE7XG59XG5cbmV4cG9ydCBjb25zdCBwcmltYXJ5RmllbGQgPSAoXG4gIHVwZGF0ZXM6IElQcmltYXJ5RmllbGRNZXRhZGF0YSA9IHt9XG4pOiBGaWVsZERlY29yYXRvckZuID0+XG4gIGdlbmVyaWNEYXRhRmllbGQodXBkYXRlcywgJ3ByaW1hcnlGaWVsZCcsIFByaW1hcnlGaWVsZE1hbmFnZXIpO1xuIl19
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { BaseFieldManager, genericDataField, } from './base';
|
|
2
|
+
export class ForeignKeyFieldManager extends BaseFieldManager {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
this.editorType = 'fkselect';
|
|
6
|
+
this.displayType = 'fkdetails';
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class ReverseForeignKeyFieldManager extends BaseFieldManager {
|
|
10
|
+
}
|
|
11
|
+
export class DetailsFieldManager extends BaseFieldManager {
|
|
12
|
+
fromJson(data, coll) {
|
|
13
|
+
if (data === null) {
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
16
|
+
if (data === undefined) {
|
|
17
|
+
return undefined;
|
|
18
|
+
}
|
|
19
|
+
if (this.deserialize) {
|
|
20
|
+
return this.deserialize(data);
|
|
21
|
+
}
|
|
22
|
+
if (this.model) {
|
|
23
|
+
if (!this.many) {
|
|
24
|
+
const d = new this.model(coll);
|
|
25
|
+
d.fromJson(data);
|
|
26
|
+
return d;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
const out = [];
|
|
30
|
+
for (const dt of data) {
|
|
31
|
+
const d = new this.model(coll);
|
|
32
|
+
d.fromJson(dt);
|
|
33
|
+
out.push(d);
|
|
34
|
+
}
|
|
35
|
+
return out;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return data;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
export class ManyToManyFieldManager extends BaseFieldManager {
|
|
42
|
+
constructor() {
|
|
43
|
+
super(...arguments);
|
|
44
|
+
this.editorType = 'm2mselect';
|
|
45
|
+
this.displayType = 'm2mdetails';
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/* eslint-disable max-len */
|
|
49
|
+
export const foreignKeyField = (updates) => genericDataField(updates, 'foreignKeyField', ForeignKeyFieldManager);
|
|
50
|
+
export const reverseForeignKeyField = (updates) => genericDataField(updates, 'reverseForeignKeyField', ReverseForeignKeyFieldManager);
|
|
51
|
+
export const detailsField = (meta = {}) => genericDataField(meta, 'detailsField', DetailsFieldManager);
|
|
52
|
+
export const manyToManyField = (meta) => genericDataField(meta, 'manyToManyField', ManyToManyFieldManager);
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2RhdGEvZmllbGRzL3JlbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWhCLGdCQUFnQixHQUVqQixNQUFNLFFBQVEsQ0FBQztBQTJCaEIsTUFBTSxPQUFPLHNCQUNYLFNBQVEsZ0JBQXdCO0lBRGxDOztRQUtrQixlQUFVLEdBQTBCLFVBQVUsQ0FBQztRQUMvQyxnQkFBVyxHQUEyQixXQUFXLENBQUM7SUFDcEUsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLDZCQUNYLFNBQVEsZ0JBQXdCO0NBSWpDO0FBRUQsTUFBTSxPQUFPLG1CQUNYLFNBQVEsZ0JBQW1CO0lBUVgsUUFBUSxDQUFDLElBQVMsRUFBRSxJQUFzQjtRQUN4RCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDakIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRTtZQUN0QixPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDZCxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2pCLE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7aUJBQU07Z0JBQ0wsTUFBTSxHQUFHLEdBQVUsRUFBRSxDQUFDO2dCQUN0QixLQUFLLE1BQU0sRUFBRSxJQUFJLElBQUksRUFBRTtvQkFDckIsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMvQixDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNmLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2I7Z0JBQ0QsT0FBTyxHQUFHLENBQUM7YUFDWjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUFNRCxNQUFNLE9BQU8sc0JBQ1gsU0FBUSxnQkFBMEI7SUFEcEM7O1FBS2tCLGVBQVUsR0FBMEIsV0FBVyxDQUFDO1FBQ2hELGdCQUFXLEdBQTJCLFlBQVksQ0FBQztJQUNyRSxDQUFDO0NBQUE7QUFFRCw0QkFBNEI7QUFDNUIsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQzdCLE9BQWlDLEVBQ2YsRUFBRSxDQUNwQixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztBQUV2RSxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUNwQyxPQUF3QyxFQUN0QixFQUFFLENBQ3BCLGdCQUFnQixDQUNkLE9BQU8sRUFDUCx3QkFBd0IsRUFDeEIsNkJBQTZCLENBQzlCLENBQUM7QUFFSixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FDMUIsT0FBbUMsRUFBRSxFQUNuQixFQUFFLENBQ3BCLGdCQUFnQixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FDN0IsSUFBOEIsRUFDWixFQUFFLENBQ3BCLGdCQUFnQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUZpZWxkTWFuYWdlcixcbiAgRmllbGREZWNvcmF0b3JGbixcbiAgZ2VuZXJpY0RhdGFGaWVsZCxcbiAgSUZpZWxkTWV0YWRhdGEsXG59IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vZGF0YS1jb2xsZWN0aW9uJztcbmltcG9ydCB7XG4gIERJU1BFRElUX0RJU1BMQVlfVFlQRVMsXG4gIERJU1BFRElUX0VESVRPUl9UWVBFUyxcbn0gZnJvbSAnLi4vLi4vZGlzcGVkaXQvZGlzcGVkaXQvZGlzcGVkaXQuY29uc3RhbnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBJRm9yZWlnbktleUZpZWxkTWV0YWRhdGEgZXh0ZW5kcyBJRmllbGRNZXRhZGF0YTxudW1iZXI+IHtcbiAgcmVsYXRlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmV2ZXJzZUZvcmVpZ25LZXlGaWVsZE1ldGFkYXRhXG4gIGV4dGVuZHMgSUZpZWxkTWV0YWRhdGE8bnVtYmVyPiB7XG4gIHJlbGF0ZWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGV0YWlsc0ZpZWxkTWV0YWRhdGE8VD4gZXh0ZW5kcyBJRmllbGRNZXRhZGF0YTxUPiB7XG4gIGZpZWxkPzogc3RyaW5nO1xuICBtYW55PzogYm9vbGVhbjtcbiAgbW9kZWw/OiBUO1xuICBkZXNlcmlhbGl6ZT86IChkYXRhOiBhbnkpID0+IFQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1hbnlUb01hbnlGaWVsZE1ldGFkYXRhIGV4dGVuZHMgSUZpZWxkTWV0YWRhdGE8bnVtYmVyW10+IHtcbiAgcmVsYXRlZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRm9yZWlnbktleUZpZWxkTWFuYWdlclxuICBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8bnVtYmVyPlxuICBpbXBsZW1lbnRzIElGb3JlaWduS2V5RmllbGRNZXRhZGF0YVxue1xuICBwdWJsaWMgcmVsYXRlZD86IHN0cmluZztcbiAgcHVibGljIG92ZXJyaWRlIGVkaXRvclR5cGU6IERJU1BFRElUX0VESVRPUl9UWVBFUyA9ICdma3NlbGVjdCc7XG4gIHB1YmxpYyBvdmVycmlkZSBkaXNwbGF5VHlwZTogRElTUEVESVRfRElTUExBWV9UWVBFUyA9ICdma2RldGFpbHMnO1xufVxuXG5leHBvcnQgY2xhc3MgUmV2ZXJzZUZvcmVpZ25LZXlGaWVsZE1hbmFnZXJcbiAgZXh0ZW5kcyBCYXNlRmllbGRNYW5hZ2VyPG51bWJlcj5cbiAgaW1wbGVtZW50cyBJRm9yZWlnbktleUZpZWxkTWV0YWRhdGFcbntcbiAgcHVibGljIHJlbGF0ZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBEZXRhaWxzRmllbGRNYW5hZ2VyPFQ+XG4gIGV4dGVuZHMgQmFzZUZpZWxkTWFuYWdlcjxUPlxuICBpbXBsZW1lbnRzIElEZXRhaWxzRmllbGRNZXRhZGF0YTxUPlxue1xuICBwdWJsaWMgZmllbGQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBtYW55PzogYm9vbGVhbjtcbiAgcHVibGljIG1vZGVsOiBhbnk7XG4gIHB1YmxpYyBkZXNlcmlhbGl6ZT86IChkYXRhOiBhbnkpID0+IGFueTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZnJvbUpzb24oZGF0YTogYW55LCBjb2xsPzogQ29sbGVjdGlvbjxhbnk+KTogYW55IHtcbiAgICBpZiAoZGF0YSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGlmICh0aGlzLmRlc2VyaWFsaXplKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZXNlcmlhbGl6ZShkYXRhKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubW9kZWwpIHtcbiAgICAgIGlmICghdGhpcy5tYW55KSB7XG4gICAgICAgIGNvbnN0IGQgPSBuZXcgdGhpcy5tb2RlbChjb2xsKTtcbiAgICAgICAgZC5mcm9tSnNvbihkYXRhKTtcbiAgICAgICAgcmV0dXJuIGQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBvdXQ6IGFueVtdID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZHQgb2YgZGF0YSkge1xuICAgICAgICAgIGNvbnN0IGQgPSBuZXcgdGhpcy5tb2RlbChjb2xsKTtcbiAgICAgICAgICBkLmZyb21Kc29uKGR0KTtcbiAgICAgICAgICBvdXQucHVzaChkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNYW55VG9NYW55S2V5RmllbGRNZXRhZGF0YSBleHRlbmRzIElGaWVsZE1ldGFkYXRhPG51bWJlcltdPiB7XG4gIHJlbGF0ZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBNYW55VG9NYW55RmllbGRNYW5hZ2VyXG4gIGV4dGVuZHMgQmFzZUZpZWxkTWFuYWdlcjxudW1iZXJbXT5cbiAgaW1wbGVtZW50cyBJTWFueVRvTWFueUtleUZpZWxkTWV0YWRhdGFcbntcbiAgcHVibGljIHJlbGF0ZWQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBvdmVycmlkZSBlZGl0b3JUeXBlOiBESVNQRURJVF9FRElUT1JfVFlQRVMgPSAnbTJtc2VsZWN0JztcbiAgcHVibGljIG92ZXJyaWRlIGRpc3BsYXlUeXBlOiBESVNQRURJVF9ESVNQTEFZX1RZUEVTID0gJ20ybWRldGFpbHMnO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG5leHBvcnQgY29uc3QgZm9yZWlnbktleUZpZWxkID0gKFxuICB1cGRhdGVzOiBJRm9yZWlnbktleUZpZWxkTWV0YWRhdGFcbik6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAnZm9yZWlnbktleUZpZWxkJywgRm9yZWlnbktleUZpZWxkTWFuYWdlcik7XG5cbmV4cG9ydCBjb25zdCByZXZlcnNlRm9yZWlnbktleUZpZWxkID0gKFxuICB1cGRhdGVzOiBJUmV2ZXJzZUZvcmVpZ25LZXlGaWVsZE1ldGFkYXRhXG4pOiBGaWVsZERlY29yYXRvckZuID0+XG4gIGdlbmVyaWNEYXRhRmllbGQoXG4gICAgdXBkYXRlcyxcbiAgICAncmV2ZXJzZUZvcmVpZ25LZXlGaWVsZCcsXG4gICAgUmV2ZXJzZUZvcmVpZ25LZXlGaWVsZE1hbmFnZXJcbiAgKTtcblxuZXhwb3J0IGNvbnN0IGRldGFpbHNGaWVsZCA9IChcbiAgbWV0YTogSURldGFpbHNGaWVsZE1ldGFkYXRhPGFueT4gPSB7fVxuKTogRmllbGREZWNvcmF0b3JGbiA9PlxuICBnZW5lcmljRGF0YUZpZWxkKG1ldGEsICdkZXRhaWxzRmllbGQnLCBEZXRhaWxzRmllbGRNYW5hZ2VyKTtcblxuZXhwb3J0IGNvbnN0IG1hbnlUb01hbnlGaWVsZCA9IChcbiAgbWV0YTogSU1hbnlUb01hbnlGaWVsZE1ldGFkYXRhXG4pOiBGaWVsZERlY29yYXRvckZuID0+XG4gIGdlbmVyaWNEYXRhRmllbGQobWV0YSwgJ21hbnlUb01hbnlGaWVsZCcsIE1hbnlUb01hbnlGaWVsZE1hbmFnZXIpO1xuIl19
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { BaseFieldManager, genericDataField, } from './base';
|
|
2
|
+
import { Validators } from '@angular/forms';
|
|
3
|
+
export class CharFieldManager extends BaseFieldManager {
|
|
4
|
+
constructor(params) {
|
|
5
|
+
super(params);
|
|
6
|
+
if (this.choices) {
|
|
7
|
+
this.editorType = 'select';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
get validators() {
|
|
11
|
+
const v = super.getValidators();
|
|
12
|
+
if (this.minLength) {
|
|
13
|
+
v.push(Validators.minLength(this.minLength));
|
|
14
|
+
}
|
|
15
|
+
if (this.maxLength) {
|
|
16
|
+
v.push(Validators.maxLength(this.maxLength));
|
|
17
|
+
}
|
|
18
|
+
if (this.pattern) {
|
|
19
|
+
v.push(Validators.pattern(this.pattern));
|
|
20
|
+
}
|
|
21
|
+
// TODO: add choices validator ??
|
|
22
|
+
return v;
|
|
23
|
+
}
|
|
24
|
+
fromJson(data) {
|
|
25
|
+
if (data === undefined) {
|
|
26
|
+
return this.getDefaultValue();
|
|
27
|
+
}
|
|
28
|
+
if (data === null) {
|
|
29
|
+
return this.getDefaultValue();
|
|
30
|
+
}
|
|
31
|
+
if (typeof data === 'string') {
|
|
32
|
+
return data;
|
|
33
|
+
}
|
|
34
|
+
return `${data}`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export class EmailFieldManager extends CharFieldManager {
|
|
38
|
+
constructor(params) {
|
|
39
|
+
super(params);
|
|
40
|
+
this.validate = true;
|
|
41
|
+
this.editorType = 'input.email';
|
|
42
|
+
if (this.validate === undefined) {
|
|
43
|
+
this.validate = true;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
get validators() {
|
|
47
|
+
const v = super.getValidators();
|
|
48
|
+
if (this.validate) {
|
|
49
|
+
v.push(Validators.email);
|
|
50
|
+
}
|
|
51
|
+
return v;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export class TextFieldManager extends CharFieldManager {
|
|
55
|
+
constructor() {
|
|
56
|
+
super(...arguments);
|
|
57
|
+
this.editorType = 'textarea';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
export class PasswordFieldManager extends CharFieldManager {
|
|
61
|
+
constructor() {
|
|
62
|
+
super(...arguments);
|
|
63
|
+
this.editorType = 'input.password';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/* eslint-disable max-len */
|
|
67
|
+
export const charField = (updates = {}) => genericDataField(updates, 'charField', CharFieldManager);
|
|
68
|
+
export const emailField = (updates = {}) => genericDataField(updates, 'emailField', EmailFieldManager);
|
|
69
|
+
export const textField = (updates = {}) => genericDataField(updates, 'textField', TextFieldManager);
|
|
70
|
+
export const passwordField = (updates = {}) => genericDataField(updates, 'passwordField', PasswordFieldManager);
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2RhdGEvZmllbGRzL3N0cmluZ2ZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWhCLGdCQUFnQixHQUVqQixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUE2QnpELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBd0I7SUFNNUQsWUFBWSxNQUFXO1FBQ3JCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxJQUFvQixVQUFVO1FBQzVCLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztTQUM5QztRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDMUM7UUFDRCxpQ0FBaUM7UUFDakMsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRWUsUUFBUSxDQUFDLElBQVM7UUFDaEMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8saUJBQ1gsU0FBUSxnQkFBZ0I7SUFNeEIsWUFBWSxNQUFXO1FBQ3JCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUpULGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDUCxlQUFVLEdBQTBCLGFBQWEsQ0FBQztRQUloRSxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVELElBQW9CLFVBQVU7UUFDNUIsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjtRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdCQUFnQjtJQUF0RDs7UUFFa0IsZUFBVSxHQUEwQixVQUFVLENBQUM7SUFDakUsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQUExRDs7UUFFa0IsZUFBVSxHQUEwQixnQkFBZ0IsQ0FBQztJQUN2RSxDQUFDO0NBQUE7QUFFRCw0QkFBNEI7QUFFNUIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsVUFBOEIsRUFBRSxFQUFvQixFQUFFLENBQzlFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUUzRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FDeEIsVUFBK0IsRUFBRSxFQUNmLEVBQUUsQ0FDcEIsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLFVBQThCLEVBQUUsRUFBb0IsRUFBRSxDQUM5RSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQzNCLFVBQWtDLEVBQUUsRUFDbEIsRUFBRSxDQUNwQixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlRmllbGRNYW5hZ2VyLFxuICBGaWVsZERlY29yYXRvckZuLFxuICBnZW5lcmljRGF0YUZpZWxkLFxuICBJRmllbGRNZXRhZGF0YSxcbn0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRElTUEVESVRfRURJVE9SX1RZUEVTIH0gZnJvbSAnLi4vLi4vZGlzcGVkaXQvZGlzcGVkaXQvZGlzcGVkaXQuY29uc3RhbnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ2hhckZpZWxkRGVzY0Nob2ljZSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGRlc2M6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgSUNoYXJGaWVsZENob2ljZSA9IElDaGFyRmllbGREZXNjQ2hvaWNlIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDaGFyRmllbGRNZXRhZGF0YSBleHRlbmRzIElGaWVsZE1ldGFkYXRhPHN0cmluZz4ge1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgcGF0dGVybj86IFJlZ0V4cCB8IHN0cmluZztcbiAgY2hvaWNlcz86IElDaGFyRmllbGRDaG9pY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRW1haWxGaWVsZE1ldGFkYXRhIGV4dGVuZHMgSUNoYXJGaWVsZE1ldGFkYXRhIHtcbiAgdmFsaWRhdGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXNzd29yZEZpZWxkTWV0YWRhdGEgZXh0ZW5kcyBJQ2hhckZpZWxkTWV0YWRhdGEge1xuICB2YWxpZGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRleHRGaWVsZE1ldGFkYXRhIGV4dGVuZHMgSUNoYXJGaWVsZE1ldGFkYXRhIHtcbiAgc3ludGF4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ2hhckZpZWxkTWFuYWdlciBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8c3RyaW5nPiB7XG4gIHB1YmxpYyBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIHB1YmxpYyBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIHB1YmxpYyBjaG9pY2VzPzogSUNoYXJGaWVsZENob2ljZVtdO1xuICBwdWJsaWMgcGF0dGVybj86IFJlZ0V4cCB8IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihwYXJhbXM6IGFueSkge1xuICAgIHN1cGVyKHBhcmFtcyk7XG4gICAgaWYgKHRoaXMuY2hvaWNlcykge1xuICAgICAgdGhpcy5lZGl0b3JUeXBlID0gJ3NlbGVjdCc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCB2YWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHYgPSBzdXBlci5nZXRWYWxpZGF0b3JzKCk7XG4gICAgaWYgKHRoaXMubWluTGVuZ3RoKSB7XG4gICAgICB2LnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgodGhpcy5taW5MZW5ndGgpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICB2LnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhMZW5ndGgpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucGF0dGVybikge1xuICAgICAgdi5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih0aGlzLnBhdHRlcm4pKTtcbiAgICB9XG4gICAgLy8gVE9ETzogYWRkIGNob2ljZXMgdmFsaWRhdG9yID8/XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZnJvbUpzb24oZGF0YTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0VmFsdWUoKSE7XG4gICAgfVxuICAgIGlmIChkYXRhID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0VmFsdWUoKSE7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICByZXR1cm4gYCR7ZGF0YX1gO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbWFpbEZpZWxkTWFuYWdlclxuICBleHRlbmRzIENoYXJGaWVsZE1hbmFnZXJcbiAgaW1wbGVtZW50cyBJQ2hhckZpZWxkTWV0YWRhdGFcbntcbiAgcHVibGljIHZhbGlkYXRlID0gdHJ1ZTtcbiAgcHVibGljIG92ZXJyaWRlIGVkaXRvclR5cGU6IERJU1BFRElUX0VESVRPUl9UWVBFUyA9ICdpbnB1dC5lbWFpbCc7XG5cbiAgY29uc3RydWN0b3IocGFyYW1zOiBhbnkpIHtcbiAgICBzdXBlcihwYXJhbXMpO1xuICAgIGlmICh0aGlzLnZhbGlkYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgdmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICBjb25zdCB2ID0gc3VwZXIuZ2V0VmFsaWRhdG9ycygpO1xuICAgIGlmICh0aGlzLnZhbGlkYXRlKSB7XG4gICAgICB2LnB1c2goVmFsaWRhdG9ycy5lbWFpbCk7XG4gICAgfVxuICAgIHJldHVybiB2O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXh0RmllbGRNYW5hZ2VyIGV4dGVuZHMgQ2hhckZpZWxkTWFuYWdlciB7XG4gIHB1YmxpYyBzeW50YXg/OiBzdHJpbmc7XG4gIHB1YmxpYyBvdmVycmlkZSBlZGl0b3JUeXBlOiBESVNQRURJVF9FRElUT1JfVFlQRVMgPSAndGV4dGFyZWEnO1xufVxuXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRGaWVsZE1hbmFnZXIgZXh0ZW5kcyBDaGFyRmllbGRNYW5hZ2VyIHtcbiAgcHVibGljIHN5bnRheD86IHN0cmluZztcbiAgcHVibGljIG92ZXJyaWRlIGVkaXRvclR5cGU6IERJU1BFRElUX0VESVRPUl9UWVBFUyA9ICdpbnB1dC5wYXNzd29yZCc7XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cblxuZXhwb3J0IGNvbnN0IGNoYXJGaWVsZCA9ICh1cGRhdGVzOiBJQ2hhckZpZWxkTWV0YWRhdGEgPSB7fSk6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAnY2hhckZpZWxkJywgQ2hhckZpZWxkTWFuYWdlcik7XG5cbmV4cG9ydCBjb25zdCBlbWFpbEZpZWxkID0gKFxuICB1cGRhdGVzOiBJRW1haWxGaWVsZE1ldGFkYXRhID0ge31cbik6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAnZW1haWxGaWVsZCcsIEVtYWlsRmllbGRNYW5hZ2VyKTtcblxuZXhwb3J0IGNvbnN0IHRleHRGaWVsZCA9ICh1cGRhdGVzOiBJVGV4dEZpZWxkTWV0YWRhdGEgPSB7fSk6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAndGV4dEZpZWxkJywgVGV4dEZpZWxkTWFuYWdlcik7XG5cbmV4cG9ydCBjb25zdCBwYXNzd29yZEZpZWxkID0gKFxuICB1cGRhdGVzOiBJUGFzc3dvcmRGaWVsZE1ldGFkYXRhID0ge31cbik6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAncGFzc3dvcmRGaWVsZCcsIFBhc3N3b3JkRmllbGRNYW5hZ2VyKTtcbiJdfQ==
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ChoicePipe {
|
|
4
|
+
transform(value, field, mode = 'desc') {
|
|
5
|
+
if (!value) {
|
|
6
|
+
return '-';
|
|
7
|
+
}
|
|
8
|
+
const fvalue = value[field];
|
|
9
|
+
if (mode === 'code') {
|
|
10
|
+
return `${fvalue}`;
|
|
11
|
+
}
|
|
12
|
+
const manager = value.FM(field);
|
|
13
|
+
const choices = manager.choices;
|
|
14
|
+
if (!choices) {
|
|
15
|
+
return `${fvalue}`;
|
|
16
|
+
}
|
|
17
|
+
for (const ch of choices) {
|
|
18
|
+
if (ch.value === fvalue) {
|
|
19
|
+
if (mode === 'desc') {
|
|
20
|
+
return ch.desc;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return `[${fvalue}] ${ch.desc}`;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return `[${fvalue}] ??`;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
ChoicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ChoicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
31
|
+
ChoicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.9", ngImport: i0, type: ChoicePipe, isStandalone: true, name: "choice" });
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: ChoicePipe, decorators: [{
|
|
33
|
+
type: Pipe,
|
|
34
|
+
args: [{
|
|
35
|
+
name: 'choice',
|
|
36
|
+
standalone: true,
|
|
37
|
+
}]
|
|
38
|
+
}] });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hvaWNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvZGlzcGVkaXQvY2hvaWNlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFNBQVMsQ0FDUCxLQUFRLEVBQ1IsS0FBYSxFQUNiLE9BQWlDLE1BQU07UUFFdkMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sR0FBRyxDQUFDO1NBQ1o7UUFDRCxNQUFNLE1BQU0sR0FBSSxLQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ25CLE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQztTQUNwQjtRQUNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsTUFBTSxPQUFPLEdBQUksT0FBZSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDO1NBQ3BCO1FBQ0QsS0FBSyxNQUFNLEVBQUUsSUFBSSxPQUFPLEVBQUU7WUFDeEIsSUFBSSxFQUFFLENBQUMsS0FBSyxLQUFLLE1BQU0sRUFBRTtnQkFDdkIsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO29CQUNuQixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7aUJBQ2hCO3FCQUFNO29CQUNMLE9BQU8sSUFBSSxNQUFNLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUNqQzthQUNGO1NBQ0Y7UUFDRCxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7SUFDMUIsQ0FBQzs7dUdBNUJVLFVBQVU7cUdBQVYsVUFBVTsyRkFBVixVQUFVO2tCQUp0QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGFNb2RlbCB9IGZyb20gJy4uL2RhdGEvZGF0YS1tb2RlbCc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2Nob2ljZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIENob2ljZVBpcGU8VCBleHRlbmRzIERhdGFNb2RlbD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBULFxuICAgIGZpZWxkOiBzdHJpbmcsXG4gICAgbW9kZTogJ2NvZGUnIHwgJ2Rlc2MnIHwgJ2JvdGgnID0gJ2Rlc2MnXG4gICk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuICctJztcbiAgICB9XG4gICAgY29uc3QgZnZhbHVlID0gKHZhbHVlIGFzIGFueSlbZmllbGRdO1xuICAgIGlmIChtb2RlID09PSAnY29kZScpIHtcbiAgICAgIHJldHVybiBgJHtmdmFsdWV9YDtcbiAgICB9XG4gICAgY29uc3QgbWFuYWdlciA9IHZhbHVlLkZNKGZpZWxkKTtcbiAgICBjb25zdCBjaG9pY2VzID0gKG1hbmFnZXIgYXMgYW55KS5jaG9pY2VzO1xuICAgIGlmICghY2hvaWNlcykge1xuICAgICAgcmV0dXJuIGAke2Z2YWx1ZX1gO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGNoIG9mIGNob2ljZXMpIHtcbiAgICAgIGlmIChjaC52YWx1ZSA9PT0gZnZhbHVlKSB7XG4gICAgICAgIGlmIChtb2RlID09PSAnZGVzYycpIHtcbiAgICAgICAgICByZXR1cm4gY2guZGVzYztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gYFske2Z2YWx1ZX1dICR7Y2guZGVzY31gO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBgWyR7ZnZhbHVlfV0gPz9gO1xuICB9XG59XG4iXX0=
|