@solidev/data 0.4.8 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/solidev-data.mjs +181 -157
- package/fesm2022/solidev-data.mjs.map +1 -1
- package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +2 -2
- package/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.d.ts +7 -1
- package/package.json +5 -7
- package/esm2022/lib/auth/auth-interceptor.service.mjs +0 -113
- package/esm2022/lib/auth/auth.service.mjs +0 -216
- package/esm2022/lib/auth/jwt.mjs +0 -21
- package/esm2022/lib/data/data-backend.mjs +0 -162
- package/esm2022/lib/data/data-collection.mjs +0 -125
- package/esm2022/lib/data/data-collection.mock.mjs +0 -39
- package/esm2022/lib/data/data-model.mjs +0 -291
- package/esm2022/lib/data/data-parameters.mjs +0 -34
- package/esm2022/lib/data/data-query.mjs +0 -154
- package/esm2022/lib/data/data-query.mock.mjs +0 -46
- package/esm2022/lib/data/fields/base.mjs +0 -144
- package/esm2022/lib/data/fields/boolean.mjs +0 -38
- package/esm2022/lib/data/fields/computed.mjs +0 -10
- package/esm2022/lib/data/fields/datetime.mjs +0 -167
- package/esm2022/lib/data/fields/index.mjs +0 -8
- package/esm2022/lib/data/fields/numbers.mjs +0 -38
- package/esm2022/lib/data/fields/primaryfield.mjs +0 -9
- package/esm2022/lib/data/fields/relations.mjs +0 -53
- package/esm2022/lib/data/fields/stringfields.mjs +0 -71
- package/esm2022/lib/dispedit/choice.pipe.mjs +0 -79
- package/esm2022/lib/dispedit/dispedit/dispedit.component.mjs +0 -480
- package/esm2022/lib/dispedit/dispedit/dispedit.constants.mjs +0 -2
- package/esm2022/lib/dispedit/factor.pipe.mjs +0 -81
- package/esm2022/lib/dispedit/factorc.pipe.mjs +0 -99
- package/esm2022/lib/dispedit/fkselect/fkselect.component.mjs +0 -139
- package/esm2022/lib/dispedit/flags/flags.component.mjs +0 -137
- package/esm2022/lib/dispedit/m2mselect/m2mselect.component.mjs +0 -312
- package/esm2022/lib/dispedit/richedit/richedit.component.mjs +0 -126
- package/esm2022/lib/dispedit/sdelete/sdelete.component.mjs +0 -103
- package/esm2022/lib/messages/message-zone/message-zone.component.mjs +0 -53
- package/esm2022/lib/messages/message.service.mjs +0 -151
- package/esm2022/lib/modellist/model-list-fields/model-list-field-header/messages.mjs +0 -2
- package/esm2022/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +0 -61
- package/esm2022/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +0 -64
- package/esm2022/lib/modellist/model-list-fields/model-list-fields.mjs +0 -273
- package/esm2022/lib/modellist/model-list-filters/filters/filtertypes.mjs +0 -3
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +0 -109
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.mjs +0 -28
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +0 -29
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.mjs +0 -9
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +0 -40
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.mjs +0 -14
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +0 -40
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.mjs +0 -14
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +0 -21
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.mjs +0 -14
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +0 -49
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.mjs +0 -23
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.mjs +0 -24
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +0 -63
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.mjs +0 -16
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +0 -46
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.mjs +0 -49
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +0 -56
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +0 -40
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +0 -51
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +0 -21
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +0 -40
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +0 -17
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +0 -174
- package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.mjs +0 -18
- package/esm2022/lib/modellist/model-list-filters/model-list-filter-group.mjs +0 -19
- package/esm2022/lib/modellist/model-list-filters/model-list-filter.mjs +0 -157
- package/esm2022/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +0 -50
- package/esm2022/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +0 -51
- package/esm2022/lib/modellist/model-list-filters/model-list-filters.mjs +0 -134
- package/esm2022/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +0 -69
- package/esm2022/lib/modellist/model-list-paginator/model-list-paginator.mjs +0 -47
- package/esm2022/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +0 -49
- package/esm2022/lib/modellist/model-list-sorter/model-list-sorter.mjs +0 -116
- package/esm2022/lib/modellist/model-list.service.mjs +0 -168
- package/esm2022/lib/routing/breadcrumb/breadcrumb.component.mjs +0 -138
- package/esm2022/lib/routing/routing.mjs +0 -57
- package/esm2022/lib/updates/update/update.component.mjs +0 -17
- package/esm2022/lib/updates/update.service.mjs +0 -58
- package/esm2022/lib/uploader/index.mjs +0 -6
- package/esm2022/lib/uploader/interfaces.mjs +0 -8
- package/esm2022/lib/uploader/ng-file-drop.directive.mjs +0 -81
- package/esm2022/lib/uploader/ng-file-select.directive.mjs +0 -51
- package/esm2022/lib/uploader/ngx-uploader.class.mjs +0 -308
- package/esm2022/lib/uploader/ngx-uploader.module.mjs +0 -17
- package/esm2022/lib/utils/slugify.mjs +0 -16
- package/esm2022/lib/utils/tab-memory.service.mjs +0 -80
- package/esm2022/lib/utils/template.mjs +0 -72
- package/esm2022/public-api.mjs +0 -56
- package/esm2022/solidev-data.mjs +0 -5
- package/solidev-data-0.4.8.tgz +0 -0
|
@@ -1,144 +0,0 @@
|
|
|
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.computed = false;
|
|
28
|
-
this.priority = 0;
|
|
29
|
-
this.editorType = 'input.text';
|
|
30
|
-
this.displayType = 'text';
|
|
31
|
-
Object.assign(this, params);
|
|
32
|
-
if (!this.name) {
|
|
33
|
-
this.name = 'noname';
|
|
34
|
-
}
|
|
35
|
-
if (!this.description) {
|
|
36
|
-
this.description = this.name;
|
|
37
|
-
}
|
|
38
|
-
if (!this.help) {
|
|
39
|
-
this.help = '';
|
|
40
|
-
}
|
|
41
|
-
this.getDefaultValue();
|
|
42
|
-
}
|
|
43
|
-
/** Return field validators */
|
|
44
|
-
get validators() {
|
|
45
|
-
return this.getValidators();
|
|
46
|
-
}
|
|
47
|
-
/** Returns current field name */
|
|
48
|
-
get fname() {
|
|
49
|
-
return this.name.split('__')[1] || this.name;
|
|
50
|
-
}
|
|
51
|
-
/** Create a new typed formControl for this field. */
|
|
52
|
-
formControl(instance) {
|
|
53
|
-
return new FormControl(instance[this.fname] || this.getDefaultValue(), this.validators);
|
|
54
|
-
}
|
|
55
|
-
/** JSON deserializer base method. */
|
|
56
|
-
fromJson(data) {
|
|
57
|
-
return data;
|
|
58
|
-
}
|
|
59
|
-
/** JSON serializer base method. */
|
|
60
|
-
toJson(data) {
|
|
61
|
-
return data;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Display value (as string)
|
|
65
|
-
* @param data
|
|
66
|
-
* @param format (not used)
|
|
67
|
-
*/
|
|
68
|
-
toString(data, format = 'default') {
|
|
69
|
-
return `${data}`;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Returns default value for model, using args if needed.
|
|
73
|
-
* @param args
|
|
74
|
-
*/
|
|
75
|
-
default(args = {}) {
|
|
76
|
-
return this.getDefaultValue(args);
|
|
77
|
-
}
|
|
78
|
-
/** Return validators
|
|
79
|
-
*
|
|
80
|
-
* @protected
|
|
81
|
-
*/
|
|
82
|
-
getValidators() {
|
|
83
|
-
const v = [];
|
|
84
|
-
if (this.required) {
|
|
85
|
-
v.push(Validators.required);
|
|
86
|
-
}
|
|
87
|
-
return v;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Returns default value for model, using args if needed.
|
|
91
|
-
* @param args
|
|
92
|
-
* @protected
|
|
93
|
-
*/
|
|
94
|
-
getDefaultValue(args = {}) {
|
|
95
|
-
if (this.defaultValue instanceof Function) {
|
|
96
|
-
return this.defaultValue(args);
|
|
97
|
-
}
|
|
98
|
-
if (this.required && this.defaultValue === undefined) {
|
|
99
|
-
throw new Error(`Field ${this.name} : no default value for required field`);
|
|
100
|
-
}
|
|
101
|
-
return this.defaultValue;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
/** Util to get own object keys */
|
|
105
|
-
const ownKeys = (target) => Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));
|
|
106
|
-
/**
|
|
107
|
-
* Creates a field decorator that can only be applied within
|
|
108
|
-
* an object containing a static __name property.
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
* @param meta field metadata
|
|
112
|
-
* @param type field type code
|
|
113
|
-
* @param manager field manager
|
|
114
|
-
*/
|
|
115
|
-
export function genericDataField(meta, type, manager) {
|
|
116
|
-
return (target, propertyKey) => {
|
|
117
|
-
const allMetadata = Reflect.getMetadata(PROPERTY_METADATA_KEY, target) ||
|
|
118
|
-
new Map();
|
|
119
|
-
let cname = `${target.constructor.__name}`;
|
|
120
|
-
if ((cname === `undefined` || cname === '') && type !== 'primaryField') {
|
|
121
|
-
throw Error(`Decorator ${type} allowed only on classes with static __name field : "${cname}" found for - ${target}`);
|
|
122
|
-
}
|
|
123
|
-
const pk = `${cname}__${String(propertyKey)}`;
|
|
124
|
-
let cm = allMetadata.get(pk);
|
|
125
|
-
/* istanbul ignore if */
|
|
126
|
-
if (cm) {
|
|
127
|
-
// This should never occur as metadata is object bound and property names must be unique
|
|
128
|
-
throw Error(`Field ${pk} already defined = ${cm}`);
|
|
129
|
-
}
|
|
130
|
-
cm = {};
|
|
131
|
-
for (const key of ownKeys(meta)) {
|
|
132
|
-
cm[key] = meta[key];
|
|
133
|
-
}
|
|
134
|
-
if (meta.name === undefined) {
|
|
135
|
-
cm.name = `${String(propertyKey)}`;
|
|
136
|
-
}
|
|
137
|
-
cm.type = type;
|
|
138
|
-
cm.self = pk;
|
|
139
|
-
cm.manager = new manager(cm);
|
|
140
|
-
allMetadata.set(pk, cm);
|
|
141
|
-
Reflect.defineMetadata(PROPERTY_METADATA_KEY, allMetadata, target);
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2ZpZWxkcy9iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFdBQVcsRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU90RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQXVCL0Q7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFlM0IsWUFBWSxNQUEwQjtRQVQvQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBR2IsZUFBVSxHQUEwQixZQUFZLENBQUM7UUFDakQsZ0JBQVcsR0FBMkIsTUFBTSxDQUFDO1FBR2xELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUN2QixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0IsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNqQixDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCw4QkFBOEI7SUFDOUIsSUFBVyxVQUFVO1FBQ25C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QztRQUM5QyxJQUFJLEVBQUUsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLHdCQUF3QjtRQUN4QixJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ1Asd0ZBQXdGO1lBQ3hGLE1BQU0sS0FBSyxDQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsRUFBRSxHQUFHLEVBQStCLENBQUM7UUFDckMsS0FBSyxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsSUFBVyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxFQUFVLENBQUMsR0FBRyxDQUFDLEdBQUksSUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsRUFBRSxDQUFDLElBQUksR0FBRyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1FBQ3JDLENBQUM7UUFDRCxFQUFFLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNmLEVBQUUsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2IsRUFBRSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4QixPQUFPLENBQUMsY0FBYyxDQUFDLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRSxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGFNb2RlbCB9IGZyb20gJy4uL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHtcbiAgRElTUEVESVRfRElTUExBWV9UWVBFUyxcbiAgRElTUEVESVRfRURJVE9SX1RZUEVTLFxufSBmcm9tICcuLi8uLi9kaXNwZWRpdC9kaXNwZWRpdC9kaXNwZWRpdC5jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgUFJPUEVSVFlfTUVUQURBVEFfS0VZID0gU3ltYm9sKCduZ3hEYXRhTWV0YWRhdGEnKTtcblxuLyoqXG4gKiBEZXNjcmlwdGl2ZSBpbmZvIGZvciBhbGwgZmllbGRzLlxuICogQWxsIGFyZSBvcHRpb25hbC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRmllbGRNZXRhZGF0YTxGVD4ge1xuICAvKiogRmllbGQgbmFtZSAoZm9yIGRpc3BsYXksIGNvbHVtbiB0aXRsZSwgZXRjLi4pICovXG4gIG5hbWU/OiBzdHJpbmc7XG4gIC8qKiBGaWVsZCBoZWxwIHRleHQgKGZvciBpbnB1dCkgKi9cbiAgaGVscD86IHN0cmluZztcbiAgLyoqIEZpZWxkIGRlc2NyaXB0aW9uIChmb3IgZGV0YWlscyBvbiBob3ZlciBldGMuLikgKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBGaWVsZCByZXF1aXJlZCA6IG5vIHVuZGVmaW5lZCBhbGxvd2VkIG9uIHNhdmUgPyAqL1xuICByZXF1aXJlZD86IGJvb2xlYW47XG4gIC8qKiBGaWVsZCBjYW5ub3QgYmUgdXBkYXRlZCAqL1xuICByZWFkb25seT86IGJvb2xlYW47XG4gIC8qKiBEZWZhdWx0IHZhbHVlICovXG4gIGRlZmF1bHRWYWx1ZT86IEZUIHwgKChhcmdzOiBhbnkpID0+IEZUKSB8IG51bGw7XG4gIC8qKiBQcmlvcml0eSA6IGZpcnN0IGZpZWxkcyA9IGhpZ2hlciBwcmlvcml0eSAqL1xuICBwcmlvcml0eT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBCYXNlIGZpZWxkIG1hbmFnZXIsIHN0b3JlcyBtZXRhZGF0YSBhbmQgcHJvdmlkZXMgY29tbW9uIGZpZWxkIHV0aWxpdGllc1xuICpcbiAqIC0gbmFtZSA6IGZpZWxkIG5hbWUsIHNob3VsZCBiZSB0aGUgc2FtZSBpbiBkYXRhIHN0cnVjdHVyZSBhbmQgbW9kZWxcbiAqIC0gaGVscCA6IGZpZWxkIGhlbHAgdGV4dCwgYmxhbmsgYnkgZGVmYXVsdFxuICogLSBkZXNjcmlwdGlvbiA6IGZpZWxkIG5hbWUgZm9yIGh1bWFuc1xuICogLSByZWFkb25seSA6IGZpZWxkIGlzIHJlYWRvbmx5IChjYW5ub3QgYmUgY2hhbmdlZCAvIHB1c2hlZCB0byBhcGkpXG4gKiAtIGRlZmF1bHQgOiBkZWZhdWx0IHZhbHVlIGZvciBmaWVsZFxuICpcbiAqIC0gZWRpdG9yX3R5cGUgOiBlZGl0b3IgdHlwZVxuICogLSBkaXNwbGF5X3R5cGUgOiBkaXNwbGF5IHR5cGVcbiAqXG4gKiAtIGZyb21Kc29uKGRhdGEpIDogZGVzZXJpYWxpemVyXG4gKiAtIHRvSnNvbihkYXRhKSA6IHNlcmlhbGlzZXJcbiAqIC0gdG9TdHJpbmcoZGF0YSxmb3JtYXQpIDogdG8gc3RyaW5nLCBmb3IgZGlzcGxheVxuICpcbiAqIC0gZm9ybUNvbnRyb2wgOiByZXR1cm5zIGZpZWxkIGZvcm0gY29udHJvbFxuICogLSB2YWxpZGF0b3JzIDogcmV0dXJucyBmaWVsZCB2YWxpZGF0b3JcbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VGaWVsZE1hbmFnZXI8RlQ+IGltcGxlbWVudHMgSUZpZWxkTWV0YWRhdGE8RlQ+IHtcbiAgLyoqIE5hbWUgaXMgbWFuZGF0b3J5IGluIGEgZmllbGQgbWFuYWdlci4gSXQgaXMgZ2l2ZW4gYnlcbiAgICogZmllbGQgZGVjb3JhdG9yIGlmIG5vdCBkaXJlY3RseSBnaXZlbiBpbiBmaWVsZCBtYW5hZ2VyLiAqL1xuICBwdWJsaWMgbmFtZSE6IHN0cmluZztcbiAgcHVibGljIGRlc2NyaXB0aW9uITogc3RyaW5nO1xuICBwdWJsaWMgaGVscCE6IHN0cmluZztcbiAgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XG4gIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xuICBwdWJsaWMgY29tcHV0ZWQgPSBmYWxzZTtcbiAgcHVibGljIHByaW9yaXR5ID0gMDtcbiAgcHVibGljIGRlZmF1bHRWYWx1ZT86IEZUIHwgKChhcmdzOiBhbnkpID0+IEZUKTtcblxuICBwdWJsaWMgZWRpdG9yVHlwZTogRElTUEVESVRfRURJVE9SX1RZUEVTID0gJ2lucHV0LnRleHQnO1xuICBwdWJsaWMgZGlzcGxheVR5cGU6IERJU1BFRElUX0RJU1BMQVlfVFlQRVMgPSAndGV4dCc7XG5cbiAgY29uc3RydWN0b3IocGFyYW1zOiBJRmllbGRNZXRhZGF0YTxGVD4pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHBhcmFtcyk7XG4gICAgaWYgKCF0aGlzLm5hbWUpIHtcbiAgICAgIHRoaXMubmFtZSA9ICdub25hbWUnO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZGVzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSB0aGlzLm5hbWU7XG4gICAgfVxuICAgIGlmICghdGhpcy5oZWxwKSB7XG4gICAgICB0aGlzLmhlbHAgPSAnJztcbiAgICB9XG4gICAgdGhpcy5nZXREZWZhdWx0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm4gZmllbGQgdmFsaWRhdG9ycyAqL1xuICBwdWJsaWMgZ2V0IHZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VmFsaWRhdG9ycygpO1xuICB9XG5cbiAgLyoqIFJldHVybnMgY3VycmVudCBmaWVsZCBuYW1lICovXG4gIHB1YmxpYyBnZXQgZm5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lLnNwbGl0KCdfXycpWzFdIHx8IHRoaXMubmFtZTtcbiAgfVxuXG4gIC8qKiBDcmVhdGUgYSBuZXcgdHlwZWQgZm9ybUNvbnRyb2wgZm9yIHRoaXMgZmllbGQuICovXG4gIHB1YmxpYyBmb3JtQ29udHJvbChpbnN0YW5jZTogRGF0YU1vZGVsKTogRm9ybUNvbnRyb2w8RlQgfCBudWxsPiB7XG4gICAgcmV0dXJuIG5ldyBGb3JtQ29udHJvbDxGVD4oXG4gICAgICAoKGluc3RhbmNlIGFzIGFueSlbdGhpcy5mbmFtZV0gYXMgRlQpIHx8ICh0aGlzLmdldERlZmF1bHRWYWx1ZSgpIGFzIEZUKSxcbiAgICAgIHRoaXMudmFsaWRhdG9yc1xuICAgICk7XG4gIH1cblxuICAvKiogSlNPTiBkZXNlcmlhbGl6ZXIgYmFzZSBtZXRob2QuICovXG4gIHB1YmxpYyBmcm9tSnNvbihkYXRhOiBhbnkpOiBGVCB7XG4gICAgcmV0dXJuIGRhdGEgYXMgRlQ7XG4gIH1cblxuICAvKiogSlNPTiBzZXJpYWxpemVyIGJhc2UgbWV0aG9kLiAqL1xuICBwdWJsaWMgdG9Kc29uKGRhdGE6IEZUKTogYW55IHtcbiAgICByZXR1cm4gZGF0YSBhcyBhbnk7XG4gIH1cblxuICAvKipcbiAgICogRGlzcGxheSB2YWx1ZSAoYXMgc3RyaW5nKVxuICAgKiBAcGFyYW0gZGF0YVxuICAgKiBAcGFyYW0gZm9ybWF0IChub3QgdXNlZClcbiAgICovXG4gIHB1YmxpYyB0b1N0cmluZyhkYXRhOiBGVCwgZm9ybWF0OiBzdHJpbmcgPSAnZGVmYXVsdCcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtkYXRhfWA7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBkZWZhdWx0IHZhbHVlIGZvciBtb2RlbCwgdXNpbmcgYXJncyBpZiBuZWVkZWQuXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqL1xuICBwdWJsaWMgZGVmYXVsdChhcmdzOiBhbnkgPSB7fSk6IEZUIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0VmFsdWUoYXJncyk7XG4gIH1cblxuICAvKiogUmV0dXJuIHZhbGlkYXRvcnNcbiAgICpcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgdjogVmFsaWRhdG9yRm5bXSA9IFtdO1xuICAgIGlmICh0aGlzLnJlcXVpcmVkKSB7XG4gICAgICB2LnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgfVxuICAgIHJldHVybiB2O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgZGVmYXVsdCB2YWx1ZSBmb3IgbW9kZWwsIHVzaW5nIGFyZ3MgaWYgbmVlZGVkLlxuICAgKiBAcGFyYW0gYXJnc1xuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdFZhbHVlKGFyZ3M6IGFueSA9IHt9KTogRlQgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmRlZmF1bHRWYWx1ZSBpbnN0YW5jZW9mIEZ1bmN0aW9uKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0VmFsdWUoYXJncyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJlcXVpcmVkICYmIHRoaXMuZGVmYXVsdFZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEZpZWxkICR7dGhpcy5uYW1lfSA6IG5vIGRlZmF1bHQgdmFsdWUgZm9yIHJlcXVpcmVkIGZpZWxkYFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogRmllbGQgZGF0YSBzdG9yZWQgb24gcmVmbGVjdGVkIG1ldGFkYXRhLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZFN0b3JlZE1ldGFkYXRhPEZUPiBleHRlbmRzIElGaWVsZE1ldGFkYXRhPEZUPiB7XG4gIHNlbGY6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIG1hbmFnZXI6IEJhc2VGaWVsZE1hbmFnZXI8RlQ+O1xufVxuXG4vKiogVXRpbCB0byBnZXQgb3duIG9iamVjdCBrZXlzICovXG5jb25zdCBvd25LZXlzID0gKHRhcmdldDogYW55KTogYW55ID0+XG4gIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHRhcmdldCkuY29uY2F0KFxuICAgIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModGFyZ2V0KSBhcyBhbnlcbiAgKTtcblxuLyoqIE1hbmFnZXIgY29uc3RydWN0b3JcbiAqICBGVCBpcyBqcyBmaWVsZCB0eXBlO1xuICogIFQgaXMgbWFuYWdlciB0eXBlXG4gKiAqL1xudHlwZSBCYXNlRmllbGRNYW5hZ2VyQ29uc3RydWN0b3I8RlQsIFQgZXh0ZW5kcyBCYXNlRmllbGRNYW5hZ2VyPEZUPj4gPSBuZXcgKFxuICBwYXJhbXM6IGFueVxuKSA9PiBUO1xuXG4vKipcbiAqIEZpZWxkIGRlY29yYXRvciBmdW5jdGlvblxuICovXG5leHBvcnQgdHlwZSBGaWVsZERlY29yYXRvckZuID0gKFxuICB0YXJnZXQ6IGFueSxcbiAgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbFxuKSA9PiB2b2lkO1xuXG4vKipcbiAqIENyZWF0ZXMgYSBmaWVsZCBkZWNvcmF0b3IgdGhhdCBjYW4gb25seSBiZSBhcHBsaWVkIHdpdGhpblxuICogYW4gb2JqZWN0IGNvbnRhaW5pbmcgYSBzdGF0aWMgX19uYW1lIHByb3BlcnR5LlxuICpcbiAqXG4gKiBAcGFyYW0gbWV0YSBmaWVsZCBtZXRhZGF0YVxuICogQHBhcmFtIHR5cGUgZmllbGQgdHlwZSBjb2RlXG4gKiBAcGFyYW0gbWFuYWdlciBmaWVsZCBtYW5hZ2VyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmljRGF0YUZpZWxkPFxuICBGVCxcbiAgTUQgZXh0ZW5kcyBJRmllbGRNZXRhZGF0YTxGVD4sXG4gIE1HIGV4dGVuZHMgQmFzZUZpZWxkTWFuYWdlcjxGVD5cbj4oXG4gIG1ldGE6IE1ELFxuICB0eXBlOiBzdHJpbmcsXG4gIG1hbmFnZXI6IEJhc2VGaWVsZE1hbmFnZXJDb25zdHJ1Y3RvcjxGVCwgTUc+XG4pOiBGaWVsZERlY29yYXRvckZuIHtcbiAgcmV0dXJuICh0YXJnZXQ6IERhdGFNb2RlbCwgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCkgPT4ge1xuICAgIGNvbnN0IGFsbE1ldGFkYXRhOiBNYXA8XG4gICAgICBzdHJpbmcsXG4gICAgICBJRmllbGRTdG9yZWRNZXRhZGF0YTxhbnk+XG4gICAgPiA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoUFJPUEVSVFlfTUVUQURBVEFfS0VZLCB0YXJnZXQpIHx8XG4gICAgbmV3IE1hcDxzdHJpbmcsIElGaWVsZFN0b3JlZE1ldGFkYXRhPGFueT4+KCk7XG4gICAgbGV0IGNuYW1lOiBzdHJpbmcgPSBgJHsodGFyZ2V0LmNvbnN0cnVjdG9yIGFzIGFueSkuX19uYW1lfWA7XG4gICAgaWYgKChjbmFtZSA9PT0gYHVuZGVmaW5lZGAgfHwgY25hbWUgPT09ICcnKSAmJiB0eXBlICE9PSAncHJpbWFyeUZpZWxkJykge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIGBEZWNvcmF0b3IgJHt0eXBlfSBhbGxvd2VkIG9ubHkgb24gY2xhc3NlcyB3aXRoIHN0YXRpYyBfX25hbWUgZmllbGQgOiBcIiR7Y25hbWV9XCIgZm91bmQgZm9yIC0gJHt0YXJnZXR9YFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgcGsgPSBgJHtjbmFtZX1fXyR7U3RyaW5nKHByb3BlcnR5S2V5KX1gO1xuICAgIGxldCBjbSA9IGFsbE1ldGFkYXRhLmdldChwayk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKGNtKSB7XG4gICAgICAvLyBUaGlzIHNob3VsZCBuZXZlciBvY2N1ciBhcyBtZXRhZGF0YSBpcyBvYmplY3QgYm91bmQgYW5kIHByb3BlcnR5IG5hbWVzIG11c3QgYmUgdW5pcXVlXG4gICAgICB0aHJvdyBFcnJvcihgRmllbGQgJHtwa30gYWxyZWFkeSBkZWZpbmVkID0gJHtjbX1gKTtcbiAgICB9XG4gICAgY20gPSB7fSBhcyBJRmllbGRTdG9yZWRNZXRhZGF0YTxhbnk+O1xuICAgIGZvciAoY29uc3Qga2V5IG9mIG93bktleXMobWV0YSBhcyBhbnkpKSB7XG4gICAgICAoY20gYXMgYW55KVtrZXldID0gKG1ldGEgYXMgYW55KVtrZXldO1xuICAgIH1cbiAgICBpZiAobWV0YS5uYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNtLm5hbWUgPSBgJHtTdHJpbmcocHJvcGVydHlLZXkpfWA7XG4gICAgfVxuICAgIGNtLnR5cGUgPSB0eXBlO1xuICAgIGNtLnNlbGYgPSBwaztcbiAgICBjbS5tYW5hZ2VyID0gbmV3IG1hbmFnZXIoY20pO1xuICAgIGFsbE1ldGFkYXRhLnNldChwaywgY20pO1xuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoUFJPUEVSVFlfTUVUQURBVEFfS0VZLCBhbGxNZXRhZGF0YSwgdGFyZ2V0KTtcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,38 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2ZpZWxkcy9ib29sZWFuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBa0IsTUFBTSxRQUFRLENBQUM7QUFRNUUsTUFBTSxPQUFPLG1CQUNYLFNBQVEsZ0JBQWdDO0lBRDFDOztRQUlrQixlQUFVLEdBQTBCLGdCQUFnQixDQUFDO1FBQ3JELGdCQUFXLEdBQTJCLFNBQVMsQ0FBQztJQTRCbEUsQ0FBQztJQTFCaUIsUUFBUSxDQUFDLElBQVM7UUFDaEMsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRyxDQUFDO1lBQ2pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRyxDQUFDO1lBQ2pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QixPQUFPLElBQWUsQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxVQUFpQyxFQUFFLEVBQUUsRUFBRSxDQUNsRSxnQkFBZ0IsQ0FDZCxPQUFPLEVBQ1AsY0FBYyxFQUNkLG1CQUFtQixDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUZpZWxkTWFuYWdlciwgZ2VuZXJpY0RhdGFGaWVsZCwgSUZpZWxkTWV0YWRhdGEgfSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtcbiAgRElTUEVESVRfRElTUExBWV9UWVBFUyxcbiAgRElTUEVESVRfRURJVE9SX1RZUEVTLFxufSBmcm9tICcuLi8uLi9kaXNwZWRpdC9kaXNwZWRpdC9kaXNwZWRpdC5jb25zdGFudHMnO1xuXG5leHBvcnQgdHlwZSBJQm9vbGVhbkZpZWxkTWV0YWRhdGEgPSBJRmllbGRNZXRhZGF0YTxib29sZWFuIHwgbnVsbD47XG5cbmV4cG9ydCBjbGFzcyBCb29sZWFuRmllbGRNYW5hZ2VyXG4gIGV4dGVuZHMgQmFzZUZpZWxkTWFuYWdlcjxib29sZWFuIHwgbnVsbD5cbiAgaW1wbGVtZW50cyBJQm9vbGVhbkZpZWxkTWV0YWRhdGFcbntcbiAgcHVibGljIG92ZXJyaWRlIGVkaXRvclR5cGU6IERJU1BFRElUX0VESVRPUl9UWVBFUyA9ICdpbnB1dC5jaGVja2JveCc7XG4gIHB1YmxpYyBvdmVycmlkZSBkaXNwbGF5VHlwZTogRElTUEVESVRfRElTUExBWV9UWVBFUyA9ICdib29sZWFuJztcblxuICBwdWJsaWMgb3ZlcnJpZGUgZnJvbUpzb24oZGF0YTogYW55KTogYm9vbGVhbiB8IG51bGwge1xuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLnJlcXVpcmVkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRWYWx1ZSgpITtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZGF0YSA9PT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdFZhbHVlKCkhO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4gZGF0YSBhcyBib29sZWFuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoWyd0cnVlJywgJzEnLCAnb2snLCAneWVzJ10uaW5kZXhPZihkYXRhKSAhPT0gLTEpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gWydmYWxzZScsICcwJywgJ25vaycsICdubyddLmluZGV4T2YoZGF0YSkgPT09IC0xO1xuICAgIH1cbiAgICByZXR1cm4gISFkYXRhO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBib29sZWFuRmllbGQgPSAodXBkYXRlczogSUJvb2xlYW5GaWVsZE1ldGFkYXRhID0ge30pID0+XG4gIGdlbmVyaWNEYXRhRmllbGQ8Ym9vbGVhbiB8IG51bGwsIElCb29sZWFuRmllbGRNZXRhZGF0YSwgQm9vbGVhbkZpZWxkTWFuYWdlcj4oXG4gICAgdXBkYXRlcyxcbiAgICAnYm9vbGVhbkZpZWxkJyxcbiAgICBCb29sZWFuRmllbGRNYW5hZ2VyXG4gICk7XG4iXX0=
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { BaseFieldManager, genericDataField, } from './base';
|
|
2
|
-
export class ComputedFieldManager extends BaseFieldManager {
|
|
3
|
-
constructor() {
|
|
4
|
-
super(...arguments);
|
|
5
|
-
this.computed = true;
|
|
6
|
-
}
|
|
7
|
-
fromJson(data, coll) { }
|
|
8
|
-
}
|
|
9
|
-
export const computedField = (meta = {}) => genericDataField(meta, 'computedField', ComputedFieldManager);
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHV0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvZGF0YS9maWVsZHMvY29tcHV0ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdCQUFnQixFQUVoQixnQkFBZ0IsR0FFakIsTUFBTSxRQUFRLENBQUM7QUFVaEIsTUFBTSxPQUFPLG9CQUNYLFNBQVEsZ0JBQW1CO0lBRDdCOztRQUtrQixhQUFRLEdBQUcsSUFBSSxDQUFDO0lBR2xDLENBQUM7SUFEaUIsUUFBUSxDQUFDLElBQVMsRUFBRSxJQUFzQixJQUFRLENBQUM7Q0FDcEU7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FDM0IsT0FBb0MsRUFBRSxFQUNwQixFQUFFLENBQ3BCLGdCQUFnQixDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VGaWVsZE1hbmFnZXIsXG4gIEZpZWxkRGVjb3JhdG9yRm4sXG4gIGdlbmVyaWNEYXRhRmllbGQsXG4gIElGaWVsZE1ldGFkYXRhLFxufSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2RhdGEtY29sbGVjdGlvbic7XG5pbXBvcnQgeyBJQ2hhckZpZWxkQ2hvaWNlIH0gZnJvbSAnLi9zdHJpbmdmaWVsZHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDb21wdXRlZEZpZWxkTWV0YWRhdGE8VD4gZXh0ZW5kcyBJRmllbGRNZXRhZGF0YTxUPiB7XG4gIGZpZWxkPzogc3RyaW5nO1xuICBmYWN0b3I/OiBudW1iZXI7XG4gIGNob2ljZXM/OiBJQ2hhckZpZWxkQ2hvaWNlW107XG59XG5cbmV4cG9ydCBjbGFzcyBDb21wdXRlZEZpZWxkTWFuYWdlcjxUPlxuICBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8VD5cbiAgaW1wbGVtZW50cyBJQ29tcHV0ZWRGaWVsZE1ldGFkYXRhPFQ+XG57XG4gIHB1YmxpYyBmaWVsZD86IHN0cmluZztcbiAgcHVibGljIG92ZXJyaWRlIGNvbXB1dGVkID0gdHJ1ZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZnJvbUpzb24oZGF0YTogYW55LCBjb2xsPzogQ29sbGVjdGlvbjxhbnk+KTogYW55IHt9XG59XG5cbmV4cG9ydCBjb25zdCBjb21wdXRlZEZpZWxkID0gKFxuICBtZXRhOiBJQ29tcHV0ZWRGaWVsZE1ldGFkYXRhPGFueT4gPSB7fVxuKTogRmllbGREZWNvcmF0b3JGbiA9PlxuICBnZW5lcmljRGF0YUZpZWxkKG1ldGEsICdjb21wdXRlZEZpZWxkJywgQ29tcHV0ZWRGaWVsZE1hbmFnZXIpO1xuIl19
|
|
@@ -1,167 +0,0 @@
|
|
|
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(params) {
|
|
38
|
-
super(params);
|
|
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
|
-
/**
|
|
96
|
-
* Datetime field manager.
|
|
97
|
-
*
|
|
98
|
-
*/
|
|
99
|
-
export class DatetimeFieldManager extends DateFieldManager {
|
|
100
|
-
constructor(params) {
|
|
101
|
-
super(params);
|
|
102
|
-
this.editorType = 'input.datetime';
|
|
103
|
-
this.displayType = 'datetime';
|
|
104
|
-
}
|
|
105
|
-
toJson(data) {
|
|
106
|
-
if (data === null || data === undefined) {
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
if (typeof data === 'string') {
|
|
110
|
-
const d = this.fromJson(data);
|
|
111
|
-
if (d === null) {
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
data = d;
|
|
115
|
-
}
|
|
116
|
-
try {
|
|
117
|
-
if (this.timezone === null || this.timezone === undefined) {
|
|
118
|
-
const offset = data.getTimezoneOffset();
|
|
119
|
-
const localDate = new Date(data.getTime() - offset * 60000);
|
|
120
|
-
return localDate.toISOString().replace('Z', '');
|
|
121
|
-
}
|
|
122
|
-
else if (this.timezone === 'UTC') {
|
|
123
|
-
return data.toISOString();
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
return data.toISOString().replace('Z', '') + this.timezone;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
catch (e) {
|
|
130
|
-
console.error(e, data);
|
|
131
|
-
return null;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
fromJson(data) {
|
|
135
|
-
if (data === null || data === undefined) {
|
|
136
|
-
return null;
|
|
137
|
-
}
|
|
138
|
-
let date;
|
|
139
|
-
if (typeof data === 'string') {
|
|
140
|
-
// If we don't have timezone info, we parse all dates as local
|
|
141
|
-
if (this.timezone === null || this.timezone === undefined) {
|
|
142
|
-
if (data.endsWith('Z')) {
|
|
143
|
-
date = new Date(data.replace('Z', ''));
|
|
144
|
-
}
|
|
145
|
-
else if (data.match(/[-+]\d{4}$/)) {
|
|
146
|
-
date = new Date(data.replace(/[-+]\d{4}$/, ''));
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
date = new Date(data);
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
else {
|
|
153
|
-
date = new Date(data);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
else {
|
|
157
|
-
date = new Date(data);
|
|
158
|
-
}
|
|
159
|
-
if (date instanceof Date && !isNaN(date)) {
|
|
160
|
-
return date;
|
|
161
|
-
}
|
|
162
|
-
return null;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
export const dateField = (updates = {}) => genericDataField(updates, 'dateField', DateFieldManager);
|
|
166
|
-
export const datetimeField = (updates = {}) => genericDataField(updates, 'datetimeField', DatetimeFieldManager);
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvZGF0YS9maWVsZHMvZGF0ZXRpbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFrQixNQUFNLFFBQVEsQ0FBQztBQWM1RSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFVLEVBQWUsRUFBRTtJQUNyRCxPQUFPLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtRQUMzRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTVDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQztRQUU1QixPQUFPLFdBQVcsR0FBRyxjQUFjO1lBQ2pDLENBQUMsQ0FBQyxJQUFJO1lBQ04sQ0FBQyxDQUFDO2dCQUNFLE9BQU8sRUFBRTtvQkFDUCxjQUFjLEVBQUUsY0FBYztvQkFDOUIsTUFBTSxFQUFFLFdBQVc7aUJBQ3BCO2FBQ0YsQ0FBQztJQUNSLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLElBQVUsRUFBZSxFQUFFO0lBQ3JELE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1FBQzNELElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUMxQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRTVCLE9BQU8sV0FBVyxHQUFHLGNB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QUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBVyxDQUFDLEVBQUUsQ0FBQztZQUNoRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLFVBQThCLEVBQUUsRUFBRSxFQUFFLENBQzVELGdCQUFnQixDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUUzRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxVQUFrQyxFQUFFLEVBQUUsRUFBRSxDQUNwRSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlRmllbGRNYW5hZ2VyLCBnZW5lcmljRGF0YUZpZWxkLCBJRmllbGRNZXRhZGF0YSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQge1xuICBESVNQRURJVF9ESVNQTEFZX1RZUEVTLFxuICBESVNQRURJVF9FRElUT1JfVFlQRVMsXG59IGZyb20gJy4uLy4uL2Rpc3BlZGl0L2Rpc3BlZGl0L2Rpc3BlZGl0LmNvbnN0YW50cyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYXRlRmllbGRNZXRhZGF0YSBleHRlbmRzIElGaWVsZE1ldGFkYXRhPERhdGUgfCBudWxsPiB7XG4gIGF1dG9Ob3c/OiBib29sZWFuO1xuICBhdXRvTm93QWRkPzogYm9vbGVhbjtcbiAgbWluPzogRGF0ZTtcbiAgbWF4PzogRGF0ZTtcbn1cblxuZXhwb3J0IGNvbnN0IGRhdGVNaW5pbXVtID0gKGRhdGU6IERhdGUpOiBWYWxpZGF0b3JGbiA9PiB7XG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgIGlmIChjb250cm9sLnZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRyb2xEYXRlID0gbmV3IERhdGUoY29udHJvbC52YWx1ZSk7XG5cbiAgICBjb25zdCB2YWxpZGF0aW9uRGF0ZSA9IGRhdGU7XG5cbiAgICByZXR1cm4gY29udHJvbERhdGUgPiB2YWxpZGF0aW9uRGF0ZVxuICAgICAgPyBudWxsXG4gICAgICA6IHtcbiAgICAgICAgICBtaW5EYXRlOiB7XG4gICAgICAgICAgICAnZGF0ZS1taW5pbXVtJzogdmFsaWRhdGlvbkRhdGUsXG4gICAgICAgICAgICBhY3R1YWw6IGNvbnRyb2xEYXRlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH07XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGF0ZU1heGltdW0gPSAoZGF0ZTogRGF0ZSk6IFZhbGlkYXRvckZuID0+IHtcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgaWYgKGNvbnRyb2wudmFsdWUgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRyb2xEYXRlID0gbmV3IERhdGUoY29udHJvbC52YWx1ZSk7XG4gICAgY29uc3QgdmFsaWRhdGlvbkRhdGUgPSBkYXRlO1xuXG4gICAgcmV0dXJuIGNvbnRyb2xEYXRlIDwgdmFsaWRhdGlvbkRhdGVcbiAgICAgID8gbnVsbFxuICAgICAgOiB7XG4gICAgICAgICAgbWF4RGF0ZToge1xuICAgICAgICAgICAgJ2RhdGUtbWF4aW11bSc6IHZhbGlkYXRpb25EYXRlLFxuICAgICAgICAgICAgYWN0dWFsOiBjb250cm9sRGF0ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9O1xuICB9O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBJRGF0ZXRpbWVGaWVsZE1ldGFkYXRhIGV4dGVuZHMgSURhdGVGaWVsZE1ldGFkYXRhIHtcbiAgdGltZXpvbmU/OiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgY2xhc3MgRGF0ZUZpZWxkTWFuYWdlclxuICBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8RGF0ZSB8IG51bGw+XG4gIGltcGxlbWVudHMgSURhdGVGaWVsZE1ldGFkYXRhXG57XG4gIHB1YmxpYyBhdXRvTm93ID0gZmFsc2U7XG4gIHB1YmxpYyBhdXRvTm93QWRkID0gZmFsc2U7XG4gIHB1YmxpYyBtaW4/OiBEYXRlO1xuICBwdWJsaWMgbWF4PzogRGF0ZTtcbiAgcHVibGljIG92ZXJyaWRlIGVkaXRvclR5cGU6IERJU1BFRElUX0VESVRPUl9UWVBFUyA9ICdpbnB1dC5kYXRlJztcbiAgcHVibGljIG92ZXJyaWRlIGRpc3BsYXlUeXBlOiBESVNQRURJVF9ESVNQTEFZX1RZUEVTID0gJ2RhdGUnO1xuXG4gIGNvbnN0cnVjdG9yKHBhcmFtczogSURhdGVGaWVsZE1ldGFkYXRhKSB7XG4gICAgc3VwZXIocGFyYW1zIGFzIElGaWVsZE1ldGFkYXRhPERhdGUgfCBudWxsPik7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgdiA9IHN1cGVyLnZhbGlkYXRvcnM7XG4gICAgaWYgKHRoaXMubWluKSB7XG4gICAgICB2LnB1c2goZGF0ZU1pbmltdW0odGhpcy5taW4pKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4KSB7XG4gICAgICB2LnB1c2goZGF0ZU1heGltdW0odGhpcy5tYXgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZnJvbUpzb24oZGF0YTogYW55KTogRGF0ZSB8IG51bGwge1xuICAgIGlmIChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShkYXRhKTtcbiAgICBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUgYXMgYW55KSkge1xuICAgICAgcmV0dXJuIGRhdGU7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHRvSnNvbihkYXRhOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCk6IG51bGwgfCBzdHJpbmcge1xuICAgIGlmIChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGQgPSB0aGlzLmZyb21Kc29uKGRhdGEpO1xuICAgICAgaWYgKGQgPT09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBkYXRhID0gZDtcbiAgICB9XG4gICAgcmV0dXJuIGAke2RhdGEuZ2V0VVRDRnVsbFllYXIoKX0tJHtcbiAgICAgIGRhdGEuZ2V0VVRDTW9udGgoKSArIDFcbiAgICB9LSR7ZGF0YS5nZXRVVENEYXRlKCl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGRlZmF1bHQgdmFsdWUgZm9yIG1vZGVsLCB1c2luZyBhcmdzIGlmIG5lZWRlZC5cbiAgICogQHBhcmFtIGFyZ3NcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldERlZmF1bHRWYWx1ZShhcmdzOiBhbnkgPSB7fSk6IERhdGUgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlKGFyZ3MpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiB0aGlzLmRlZmF1bHRWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBGaWVsZCAke3RoaXMubmFtZX0gOiBubyBkZWZhdWx0IHZhbHVlIGZvciByZXF1aXJlZCBmaWVsZGAsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0b05vdyB8fCB0aGlzLmF1dG9Ob3dBZGQgPyBuZXcgRGF0ZSgpIDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFZhbHVlO1xuICB9XG59XG5cbi8qKlxuICogRGF0ZXRpbWUgZmllbGQgbWFuYWdlci5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRldGltZUZpZWxkTWFuYWdlclxuICBleHRlbmRzIERhdGVGaWVsZE1hbmFnZXJcbiAgaW1wbGVtZW50cyBJRGF0ZXRpbWVGaWVsZE1ldGFkYXRhXG57XG4gIHB1YmxpYyB0aW1lem9uZT86IHN0cmluZyB8IG51bGw7XG4gIHB1YmxpYyBvdmVycmlkZSBlZGl0b3JUeXBlOiBESVNQRURJVF9FRElUT1JfVFlQRVMgPSAnaW5wdXQuZGF0ZXRpbWUnO1xuICBwdWJsaWMgb3ZlcnJpZGUgZGlzcGxheVR5cGU6IERJU1BFRElUX0RJU1BMQVlfVFlQRVMgPSAnZGF0ZXRpbWUnO1xuXG4gIGNvbnN0cnVjdG9yKHBhcmFtczogSURhdGV0aW1lRmllbGRNZXRhZGF0YSkge1xuICAgIHN1cGVyKHBhcmFtcyBhcyBJRmllbGRNZXRhZGF0YTxEYXRlIHwgbnVsbD4pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHRvSnNvbihkYXRhOiBEYXRlIHwgc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgZCA9IHRoaXMuZnJvbUpzb24oZGF0YSk7XG4gICAgICBpZiAoZCA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGRhdGEgPSBkO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMudGltZXpvbmUgPT09IG51bGwgfHwgdGhpcy50aW1lem9uZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IG9mZnNldCA9IGRhdGEuZ2V0VGltZXpvbmVPZmZzZXQoKTtcbiAgICAgICAgY29uc3QgbG9jYWxEYXRlID0gbmV3IERhdGUoZGF0YS5nZXRUaW1lKCkgLSBvZmZzZXQgKiA2MDAwMCk7XG4gICAgICAgIHJldHVybiBsb2NhbERhdGUudG9JU09TdHJpbmcoKS5yZXBsYWNlKCdaJywgJycpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLnRpbWV6b25lID09PSAnVVRDJykge1xuICAgICAgICByZXR1cm4gZGF0YS50b0lTT1N0cmluZygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGRhdGEudG9JU09TdHJpbmcoKS5yZXBsYWNlKCdaJywgJycpICsgdGhpcy50aW1lem9uZTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGUsIGRhdGEpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGZyb21Kc29uKGRhdGE6IGFueSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBsZXQgZGF0ZTogRGF0ZTtcbiAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XG4gICAgICAvLyBJZiB3ZSBkb24ndCBoYXZlIHRpbWV6b25lIGluZm8sIHdlIHBhcnNlIGFsbCBkYXRlcyBhcyBsb2NhbFxuICAgICAgaWYgKHRoaXMudGltZXpvbmUgPT09IG51bGwgfHwgdGhpcy50aW1lem9uZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmIChkYXRhLmVuZHNXaXRoKCdaJykpIHtcbiAgICAgICAgICBkYXRlID0gbmV3IERhdGUoZGF0YS5yZXBsYWNlKCdaJywgJycpKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhLm1hdGNoKC9bLStdXFxkezR9JC8pKSB7XG4gICAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGEucmVwbGFjZSgvWy0rXVxcZHs0fSQvLCAnJykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRhdGUgPSBuZXcgRGF0ZShkYXRhKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZGF0ZSA9IG5ldyBEYXRlKGRhdGEpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUoZGF0YSk7XG4gICAgfVxuXG4gICAgaWYgKGRhdGUgaW5zdGFuY2VvZiBEYXRlICYmICFpc05hTihkYXRlIGFzIGFueSkpIHtcbiAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZGF0ZUZpZWxkID0gKHVwZGF0ZXM6IElEYXRlRmllbGRNZXRhZGF0YSA9IHt9KSA9PlxuICBnZW5lcmljRGF0YUZpZWxkKHVwZGF0ZXMsICdkYXRlRmllbGQnLCBEYXRlRmllbGRNYW5hZ2VyKTtcblxuZXhwb3J0IGNvbnN0IGRhdGV0aW1lRmllbGQgPSAodXBkYXRlczogSURhdGV0aW1lRmllbGRNZXRhZGF0YSA9IHt9KSA9PlxuICBnZW5lcmljRGF0YUZpZWxkKHVwZGF0ZXMsICdkYXRldGltZUZpZWxkJywgRGF0ZXRpbWVGaWVsZE1hbmFnZXIpO1xuIl19
|
|
@@ -1,8 +0,0 @@
|
|
|
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
|
-
export { computedField } from './computed';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvZGF0YS9maWVsZHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULGFBQWEsR0FDZCxNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN0RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLGVBQWUsRUFDZixzQkFBc0IsRUFDdEIsWUFBWSxHQUNiLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBjaGFyRmllbGQsXG4gIGVtYWlsRmllbGQsXG4gIHRleHRGaWVsZCxcbiAgcGFzc3dvcmRGaWVsZCxcbn0gZnJvbSAnLi9zdHJpbmdmaWVsZHMnO1xuZXhwb3J0IHsgcHJpbWFyeUZpZWxkIH0gZnJvbSAnLi9wcmltYXJ5ZmllbGQnO1xuZXhwb3J0IHsgZGF0ZUZpZWxkLCBkYXRldGltZUZpZWxkIH0gZnJvbSAnLi9kYXRldGltZSc7XG5leHBvcnQge1xuICBmb3JlaWduS2V5RmllbGQsXG4gIG1hbnlUb01hbnlGaWVsZCxcbiAgcmV2ZXJzZUZvcmVpZ25LZXlGaWVsZCxcbiAgZGV0YWlsc0ZpZWxkLFxufSBmcm9tICcuL3JlbGF0aW9ucyc7XG5leHBvcnQgeyBib29sZWFuRmllbGQgfSBmcm9tICcuL2Jvb2xlYW4nO1xuZXhwb3J0IHsgZGVjaW1hbEZpZWxkLCBpbnRlZ2VyRmllbGQsIGZsb2F0RmllbGQgfSBmcm9tICcuL251bWJlcnMnO1xuZXhwb3J0IHsgY29tcHV0ZWRGaWVsZCB9IGZyb20gJy4vY29tcHV0ZWQnO1xuIl19
|
|
@@ -1,38 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kYXRhL2ZpZWxkcy9udW1iZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFFaEIsZ0JBQWdCLEdBRWpCLE1BQU0sUUFBUSxDQUFDO0FBS2hCLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWtCekQsTUFBTSxPQUFPLG1CQUNYLFNBQVEsZ0JBQXdCO0lBRGxDOztRQUlrQixnQkFBVyxHQUEyQixNQUFNLENBQUM7UUFDN0MsZUFBVSxHQUEwQixjQUFjLENBQUM7SUFlckUsQ0FBQztJQVZDLElBQW9CLFVBQVU7UUFDNUIsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGlCQUNYLFNBQVEsbUJBQW1CO0lBRDdCOztRQUlrQixnQkFBVyxHQUEyQixNQUFNLENBQUM7UUFDN0MsZUFBVSxHQUEwQixjQUFjLENBQUM7SUFDckUsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLG1CQUNYLFNBQVEsbUJBQW1CO0lBRDdCOztRQUtrQixnQkFBVyxHQUEyQixTQUFTLENBQUM7UUFDaEQsZUFBVSxHQUEwQixlQUFlLENBQUM7SUFDdEUsQ0FBQztDQUFBO0FBRUQsNEJBQTRCO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUMxQixVQUFpQyxFQUFFLEVBQ2pCLEVBQUUsQ0FDcEIsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUN4QixVQUErQixFQUFFLEVBQ2YsRUFBRSxDQUNwQixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUM7QUFFN0QsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQzFCLFVBQWlDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUM5QixFQUFFLENBQ3BCLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VGaWVsZE1hbmFnZXIsXG4gIEZpZWxkRGVjb3JhdG9yRm4sXG4gIGdlbmVyaWNEYXRhRmllbGQsXG4gIElGaWVsZE1ldGFkYXRhLFxufSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHtcbiAgRElTUEVESVRfRElTUExBWV9UWVBFUyxcbiAgRElTUEVESVRfRURJVE9SX1RZUEVTLFxufSBmcm9tICcuLi8uLi9kaXNwZWRpdC9kaXNwZWRpdC9kaXNwZWRpdC5jb25zdGFudHMnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUludGVnZXJGaWVsZE1ldGFkYXRhIGV4dGVuZHMgSUZpZWxkTWV0YWRhdGE8bnVtYmVyPiB7XG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGbG9hdEZpZWxkTWV0YWRhdGEgZXh0ZW5kcyBJRmllbGRNZXRhZGF0YTxudW1iZXI+IHtcbiAgbWluPzogbnVtYmVyO1xuICBtYXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURlY2ltYWxGaWVsZE1ldGFkYXRhIGV4dGVuZHMgSUZpZWxkTWV0YWRhdGE8bnVtYmVyPiB7XG4gIG1pbj86IG51bWJlcjtcbiAgbWF4PzogbnVtYmVyO1xuICBmYWN0b3I/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBJbnRlZ2VyRmllbGRNYW5hZ2VyXG4gIGV4dGVuZHMgQmFzZUZpZWxkTWFuYWdlcjxudW1iZXI+XG4gIGltcGxlbWVudHMgSUludGVnZXJGaWVsZE1ldGFkYXRhXG57XG4gIHB1YmxpYyBvdmVycmlkZSBkaXNwbGF5VHlwZTogRElTUEVESVRfRElTUExBWV9UWVBFUyA9ICd0ZXh0JztcbiAgcHVibGljIG92ZXJyaWRlIGVkaXRvclR5cGU6IERJU1BFRElUX0VESVRPUl9UWVBFUyA9ICdpbnB1dC5udW1iZXInO1xuXG4gIHB1YmxpYyBtaW4/OiBudW1iZXI7XG4gIHB1YmxpYyBtYXg/OiBudW1iZXI7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCB2YWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHYgPSBzdXBlci5nZXRWYWxpZGF0b3JzKCk7XG4gICAgaWYgKHRoaXMubWluICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHYucHVzaChWYWxpZGF0b3JzLm1pbih0aGlzLm1pbikpO1xuICAgIH1cbiAgICBpZiAodGhpcy5tYXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgdi5wdXNoKFZhbGlkYXRvcnMubWF4KHRoaXMubWF4KSk7XG4gICAgfVxuICAgIHJldHVybiB2O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGbG9hdEZpZWxkTWFuYWdlclxuICBleHRlbmRzIEludGVnZXJGaWVsZE1hbmFnZXJcbiAgaW1wbGVtZW50cyBJRmxvYXRGaWVsZE1ldGFkYXRhXG57XG4gIHB1YmxpYyBvdmVycmlkZSBkaXNwbGF5VHlwZTogRElTUEVESVRfRElTUExBWV9UWVBFUyA9ICd0ZXh0JztcbiAgcHVibGljIG92ZXJyaWRlIGVkaXRvclR5cGU6IERJU1BFRElUX0VESVRPUl9UWVBFUyA9ICdpbnB1dC5udW1iZXInO1xufVxuXG5leHBvcnQgY2xhc3MgRGVjaW1hbEZpZWxkTWFuYWdlclxuICBleHRlbmRzIEludGVnZXJGaWVsZE1hbmFnZXJcbiAgaW1wbGVtZW50cyBJRGVjaW1hbEZpZWxkTWV0YWRhdGFcbntcbiAgcHVibGljIGZhY3Rvcj86IG51bWJlcjtcbiAgcHVibGljIG92ZXJyaWRlIGRpc3BsYXlUeXBlOiBESVNQRURJVF9ESVNQTEFZX1RZUEVTID0gJ2RlY2ltYWwnO1xuICBwdWJsaWMgb3ZlcnJpZGUgZWRpdG9yVHlwZTogRElTUEVESVRfRURJVE9SX1RZUEVTID0gJ2lucHV0LmRlY2ltYWwnO1xufVxuXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG5leHBvcnQgY29uc3QgaW50ZWdlckZpZWxkID0gKFxuICB1cGRhdGVzOiBJSW50ZWdlckZpZWxkTWV0YWRhdGEgPSB7fVxuKTogRmllbGREZWNvcmF0b3JGbiA9PlxuICBnZW5lcmljRGF0YUZpZWxkKHVwZGF0ZXMsICdpbnRlZ2VyRmllbGQnLCBJbnRlZ2VyRmllbGRNYW5hZ2VyKTtcblxuZXhwb3J0IGNvbnN0IGZsb2F0RmllbGQgPSAoXG4gIHVwZGF0ZXM6IElGbG9hdEZpZWxkTWV0YWRhdGEgPSB7fVxuKTogRmllbGREZWNvcmF0b3JGbiA9PlxuICBnZW5lcmljRGF0YUZpZWxkKHVwZGF0ZXMsICdmbG9hdEZpZWxkJywgRmxvYXRGaWVsZE1hbmFnZXIpO1xuXG5leHBvcnQgY29uc3QgZGVjaW1hbEZpZWxkID0gKFxuICB1cGRhdGVzOiBJRGVjaW1hbEZpZWxkTWV0YWRhdGEgPSB7IGZhY3RvcjogMTAwIH1cbik6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAnZGVjaW1hbEZpZWxkJywgRGVjaW1hbEZpZWxkTWFuYWdlcik7XG4iXX0=
|
|
@@ -1,9 +0,0 @@
|
|
|
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
|
|
@@ -1,53 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2RhdGEvZmllbGRzL3JlbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWhCLGdCQUFnQixHQUVqQixNQUFNLFFBQVEsQ0FBQztBQTJCaEIsTUFBTSxPQUFPLHNCQUNYLFNBQVEsZ0JBQXdCO0lBRGxDOztRQUtrQixlQUFVLEdBQTBCLFVBQVUsQ0FBQztRQUMvQyxnQkFBVyxHQUEyQixXQUFXLENBQUM7SUFDcEUsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLDZCQUNYLFNBQVEsZ0JBQXdCO0NBSWpDO0FBRUQsTUFBTSxPQUFPLG1CQUNYLFNBQVEsZ0JBQW1CO0lBUVgsUUFBUSxDQUFDLElBQVMsRUFBRSxJQUFzQjtRQUN4RCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNqQixPQUFPLENBQUMsQ0FBQztZQUNYLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLEdBQUcsR0FBVSxFQUFFLENBQUM7Z0JBQ3RCLEtBQUssTUFBTSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ3RCLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDL0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDZixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNkLENBQUM7Z0JBQ0QsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBTUQsTUFBTSxPQUFPLHNCQUNYLFNBQVEsZ0JBQTBCO0lBRHBDOztRQUtrQixlQUFVLEdBQTBCLFdBQVcsQ0FBQztRQUNoRCxnQkFBVyxHQUEyQixZQUFZLENBQUM7SUFDckUsQ0FBQztDQUFBO0FBRUQsNEJBQTRCO0FBQzVCLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUM3QixPQUFpQyxFQUNmLEVBQUUsQ0FDcEIsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHNCQUFzQixDQUFDLENBQUM7QUFFdkUsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FDcEMsT0FBd0MsRUFDdEIsRUFBRSxDQUNwQixnQkFBZ0IsQ0FDZCxPQUFPLEVBQ1Asd0JBQXdCLEVBQ3hCLDZCQUE2QixDQUM5QixDQUFDO0FBRUosTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQzFCLE9BQW1DLEVBQUUsRUFDbkIsRUFBRSxDQUNwQixnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFFOUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQzdCLElBQThCLEVBQ1osRUFBRSxDQUNwQixnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsc0JBQXNCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VGaWVsZE1hbmFnZXIsXG4gIEZpZWxkRGVjb3JhdG9yRm4sXG4gIGdlbmVyaWNEYXRhRmllbGQsXG4gIElGaWVsZE1ldGFkYXRhLFxufSBmcm9tICcuL2Jhc2UnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbiB9IGZyb20gJy4uL2RhdGEtY29sbGVjdGlvbic7XG5pbXBvcnQge1xuICBESVNQRURJVF9ESVNQTEFZX1RZUEVTLFxuICBESVNQRURJVF9FRElUT1JfVFlQRVMsXG59IGZyb20gJy4uLy4uL2Rpc3BlZGl0L2Rpc3BlZGl0L2Rpc3BlZGl0LmNvbnN0YW50cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZvcmVpZ25LZXlGaWVsZE1ldGFkYXRhIGV4dGVuZHMgSUZpZWxkTWV0YWRhdGE8bnVtYmVyPiB7XG4gIHJlbGF0ZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVJldmVyc2VGb3JlaWduS2V5RmllbGRNZXRhZGF0YVxuICBleHRlbmRzIElGaWVsZE1ldGFkYXRhPG51bWJlcj4ge1xuICByZWxhdGVkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSURldGFpbHNGaWVsZE1ldGFkYXRhPFQ+IGV4dGVuZHMgSUZpZWxkTWV0YWRhdGE8VD4ge1xuICBmaWVsZD86IHN0cmluZztcbiAgbWFueT86IGJvb2xlYW47XG4gIG1vZGVsPzogVDtcbiAgZGVzZXJpYWxpemU/OiAoZGF0YTogYW55KSA9PiBUO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNYW55VG9NYW55RmllbGRNZXRhZGF0YSBleHRlbmRzIElGaWVsZE1ldGFkYXRhPG51bWJlcltdPiB7XG4gIHJlbGF0ZWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEZvcmVpZ25LZXlGaWVsZE1hbmFnZXJcbiAgZXh0ZW5kcyBCYXNlRmllbGRNYW5hZ2VyPG51bWJlcj5cbiAgaW1wbGVtZW50cyBJRm9yZWlnbktleUZpZWxkTWV0YWRhdGFcbntcbiAgcHVibGljIHJlbGF0ZWQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBvdmVycmlkZSBlZGl0b3JUeXBlOiBESVNQRURJVF9FRElUT1JfVFlQRVMgPSAnZmtzZWxlY3QnO1xuICBwdWJsaWMgb3ZlcnJpZGUgZGlzcGxheVR5cGU6IERJU1BFRElUX0RJU1BMQVlfVFlQRVMgPSAnZmtkZXRhaWxzJztcbn1cblxuZXhwb3J0IGNsYXNzIFJldmVyc2VGb3JlaWduS2V5RmllbGRNYW5hZ2VyXG4gIGV4dGVuZHMgQmFzZUZpZWxkTWFuYWdlcjxudW1iZXI+XG4gIGltcGxlbWVudHMgSUZvcmVpZ25LZXlGaWVsZE1ldGFkYXRhXG57XG4gIHB1YmxpYyByZWxhdGVkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRGV0YWlsc0ZpZWxkTWFuYWdlcjxUPlxuICBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8VD5cbiAgaW1wbGVtZW50cyBJRGV0YWlsc0ZpZWxkTWV0YWRhdGE8VD5cbntcbiAgcHVibGljIGZpZWxkPzogc3RyaW5nO1xuICBwdWJsaWMgbWFueT86IGJvb2xlYW47XG4gIHB1YmxpYyBtb2RlbDogYW55O1xuICBwdWJsaWMgZGVzZXJpYWxpemU/OiAoZGF0YTogYW55KSA9PiBhbnk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZyb21Kc29uKGRhdGE6IGFueSwgY29sbD86IENvbGxlY3Rpb248YW55Pik6IGFueSB7XG4gICAgaWYgKGRhdGEgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodGhpcy5kZXNlcmlhbGl6ZSkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVzZXJpYWxpemUoZGF0YSk7XG4gICAgfVxuICAgIGlmICh0aGlzLm1vZGVsKSB7XG4gICAgICBpZiAoIXRoaXMubWFueSkge1xuICAgICAgICBjb25zdCBkID0gbmV3IHRoaXMubW9kZWwoY29sbCk7XG4gICAgICAgIGQuZnJvbUpzb24oZGF0YSk7XG4gICAgICAgIHJldHVybiBkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgb3V0OiBhbnlbXSA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IGR0IG9mIGRhdGEpIHtcbiAgICAgICAgICBjb25zdCBkID0gbmV3IHRoaXMubW9kZWwoY29sbCk7XG4gICAgICAgICAgZC5mcm9tSnNvbihkdCk7XG4gICAgICAgICAgb3V0LnB1c2goZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTWFueVRvTWFueUtleUZpZWxkTWV0YWRhdGEgZXh0ZW5kcyBJRmllbGRNZXRhZGF0YTxudW1iZXJbXT4ge1xuICByZWxhdGVkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTWFueVRvTWFueUZpZWxkTWFuYWdlclxuICBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8bnVtYmVyW10+XG4gIGltcGxlbWVudHMgSU1hbnlUb01hbnlLZXlGaWVsZE1ldGFkYXRhXG57XG4gIHB1YmxpYyByZWxhdGVkPzogc3RyaW5nO1xuICBwdWJsaWMgb3ZlcnJpZGUgZWRpdG9yVHlwZTogRElTUEVESVRfRURJVE9SX1RZUEVTID0gJ20ybXNlbGVjdCc7XG4gIHB1YmxpYyBvdmVycmlkZSBkaXNwbGF5VHlwZTogRElTUEVESVRfRElTUExBWV9UWVBFUyA9ICdtMm1kZXRhaWxzJztcbn1cblxuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuZXhwb3J0IGNvbnN0IGZvcmVpZ25LZXlGaWVsZCA9IChcbiAgdXBkYXRlczogSUZvcmVpZ25LZXlGaWVsZE1ldGFkYXRhXG4pOiBGaWVsZERlY29yYXRvckZuID0+XG4gIGdlbmVyaWNEYXRhRmllbGQodXBkYXRlcywgJ2ZvcmVpZ25LZXlGaWVsZCcsIEZvcmVpZ25LZXlGaWVsZE1hbmFnZXIpO1xuXG5leHBvcnQgY29uc3QgcmV2ZXJzZUZvcmVpZ25LZXlGaWVsZCA9IChcbiAgdXBkYXRlczogSVJldmVyc2VGb3JlaWduS2V5RmllbGRNZXRhZGF0YVxuKTogRmllbGREZWNvcmF0b3JGbiA9PlxuICBnZW5lcmljRGF0YUZpZWxkKFxuICAgIHVwZGF0ZXMsXG4gICAgJ3JldmVyc2VGb3JlaWduS2V5RmllbGQnLFxuICAgIFJldmVyc2VGb3JlaWduS2V5RmllbGRNYW5hZ2VyXG4gICk7XG5cbmV4cG9ydCBjb25zdCBkZXRhaWxzRmllbGQgPSAoXG4gIG1ldGE6IElEZXRhaWxzRmllbGRNZXRhZGF0YTxhbnk+ID0ge31cbik6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZChtZXRhLCAnZGV0YWlsc0ZpZWxkJywgRGV0YWlsc0ZpZWxkTWFuYWdlcik7XG5cbmV4cG9ydCBjb25zdCBtYW55VG9NYW55RmllbGQgPSAoXG4gIG1ldGE6IElNYW55VG9NYW55RmllbGRNZXRhZGF0YVxuKTogRmllbGREZWNvcmF0b3JGbiA9PlxuICBnZW5lcmljRGF0YUZpZWxkKG1ldGEsICdtYW55VG9NYW55RmllbGQnLCBNYW55VG9NYW55RmllbGRNYW5hZ2VyKTtcbiJdfQ==
|
|
@@ -1,71 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2RhdGEvZmllbGRzL3N0cmluZ2ZpZWxkcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBRWhCLGdCQUFnQixHQUVqQixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUE2QnpELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxnQkFBd0I7SUFNNUQsWUFBWSxNQUFXO1FBQ3JCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBb0IsVUFBVTtRQUM1QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsaUNBQWlDO1FBQ2pDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVlLFFBQVEsQ0FBQyxJQUFTO1FBQ2hDLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUcsQ0FBQztRQUNqQyxDQUFDO1FBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFDRCxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGlCQUNYLFNBQVEsZ0JBQWdCO0lBTXhCLFlBQVksTUFBVztRQUNyQixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFKVCxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ1AsZUFBVSxHQUEwQixhQUFhLENBQUM7UUFJaEUsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBb0IsVUFBVTtRQUM1QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGdCQUFnQjtJQUF0RDs7UUFFa0IsZUFBVSxHQUEwQixVQUFVLENBQUM7SUFDakUsQ0FBQztDQUFBO0FBRUQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQUExRDs7UUFFa0IsZUFBVSxHQUEwQixnQkFBZ0IsQ0FBQztJQUN2RSxDQUFDO0NBQUE7QUFFRCw0QkFBNEI7QUFFNUIsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsVUFBOEIsRUFBRSxFQUFvQixFQUFFLENBQzlFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUUzRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FDeEIsVUFBK0IsRUFBRSxFQUNmLEVBQUUsQ0FDcEIsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLFVBQThCLEVBQUUsRUFBb0IsRUFBRSxDQUM5RSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFM0QsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQzNCLFVBQWtDLEVBQUUsRUFDbEIsRUFBRSxDQUNwQixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlRmllbGRNYW5hZ2VyLFxuICBGaWVsZERlY29yYXRvckZuLFxuICBnZW5lcmljRGF0YUZpZWxkLFxuICBJRmllbGRNZXRhZGF0YSxcbn0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRElTUEVESVRfRURJVE9SX1RZUEVTIH0gZnJvbSAnLi4vLi4vZGlzcGVkaXQvZGlzcGVkaXQvZGlzcGVkaXQuY29uc3RhbnRzJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ2hhckZpZWxkRGVzY0Nob2ljZSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGRlc2M6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgSUNoYXJGaWVsZENob2ljZSA9IElDaGFyRmllbGREZXNjQ2hvaWNlIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDaGFyRmllbGRNZXRhZGF0YSBleHRlbmRzIElGaWVsZE1ldGFkYXRhPHN0cmluZz4ge1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgcGF0dGVybj86IFJlZ0V4cCB8IHN0cmluZztcbiAgY2hvaWNlcz86IElDaGFyRmllbGRDaG9pY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRW1haWxGaWVsZE1ldGFkYXRhIGV4dGVuZHMgSUNoYXJGaWVsZE1ldGFkYXRhIHtcbiAgdmFsaWRhdGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXNzd29yZEZpZWxkTWV0YWRhdGEgZXh0ZW5kcyBJQ2hhckZpZWxkTWV0YWRhdGEge1xuICB2YWxpZGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRleHRGaWVsZE1ldGFkYXRhIGV4dGVuZHMgSUNoYXJGaWVsZE1ldGFkYXRhIHtcbiAgc3ludGF4Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQ2hhckZpZWxkTWFuYWdlciBleHRlbmRzIEJhc2VGaWVsZE1hbmFnZXI8c3RyaW5nPiB7XG4gIHB1YmxpYyBtaW5MZW5ndGg/OiBudW1iZXI7XG4gIHB1YmxpYyBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIHB1YmxpYyBjaG9pY2VzPzogSUNoYXJGaWVsZENob2ljZVtdO1xuICBwdWJsaWMgcGF0dGVybj86IFJlZ0V4cCB8IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihwYXJhbXM6IGFueSkge1xuICAgIHN1cGVyKHBhcmFtcyk7XG4gICAgaWYgKHRoaXMuY2hvaWNlcykge1xuICAgICAgdGhpcy5lZGl0b3JUeXBlID0gJ3NlbGVjdCc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCB2YWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHYgPSBzdXBlci5nZXRWYWxpZGF0b3JzKCk7XG4gICAgaWYgKHRoaXMubWluTGVuZ3RoKSB7XG4gICAgICB2LnB1c2goVmFsaWRhdG9ycy5taW5MZW5ndGgodGhpcy5taW5MZW5ndGgpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICB2LnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhMZW5ndGgpKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucGF0dGVybikge1xuICAgICAgdi5wdXNoKFZhbGlkYXRvcnMucGF0dGVybih0aGlzLnBhdHRlcm4pKTtcbiAgICB9XG4gICAgLy8gVE9ETzogYWRkIGNob2ljZXMgdmFsaWRhdG9yID8/XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZnJvbUpzb24oZGF0YTogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoZGF0YSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0VmFsdWUoKSE7XG4gICAgfVxuICAgIGlmIChkYXRhID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0VmFsdWUoKSE7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICByZXR1cm4gYCR7ZGF0YX1gO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBFbWFpbEZpZWxkTWFuYWdlclxuICBleHRlbmRzIENoYXJGaWVsZE1hbmFnZXJcbiAgaW1wbGVtZW50cyBJQ2hhckZpZWxkTWV0YWRhdGFcbntcbiAgcHVibGljIHZhbGlkYXRlID0gdHJ1ZTtcbiAgcHVibGljIG92ZXJyaWRlIGVkaXRvclR5cGU6IERJU1BFRElUX0VESVRPUl9UWVBFUyA9ICdpbnB1dC5lbWFpbCc7XG5cbiAgY29uc3RydWN0b3IocGFyYW1zOiBhbnkpIHtcbiAgICBzdXBlcihwYXJhbXMpO1xuICAgIGlmICh0aGlzLnZhbGlkYXRlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgdmFsaWRhdG9ycygpOiBWYWxpZGF0b3JGbltdIHtcbiAgICBjb25zdCB2ID0gc3VwZXIuZ2V0VmFsaWRhdG9ycygpO1xuICAgIGlmICh0aGlzLnZhbGlkYXRlKSB7XG4gICAgICB2LnB1c2goVmFsaWRhdG9ycy5lbWFpbCk7XG4gICAgfVxuICAgIHJldHVybiB2O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXh0RmllbGRNYW5hZ2VyIGV4dGVuZHMgQ2hhckZpZWxkTWFuYWdlciB7XG4gIHB1YmxpYyBzeW50YXg/OiBzdHJpbmc7XG4gIHB1YmxpYyBvdmVycmlkZSBlZGl0b3JUeXBlOiBESVNQRURJVF9FRElUT1JfVFlQRVMgPSAndGV4dGFyZWEnO1xufVxuXG5leHBvcnQgY2xhc3MgUGFzc3dvcmRGaWVsZE1hbmFnZXIgZXh0ZW5kcyBDaGFyRmllbGRNYW5hZ2VyIHtcbiAgcHVibGljIHN5bnRheD86IHN0cmluZztcbiAgcHVibGljIG92ZXJyaWRlIGVkaXRvclR5cGU6IERJU1BFRElUX0VESVRPUl9UWVBFUyA9ICdpbnB1dC5wYXNzd29yZCc7XG59XG5cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cblxuZXhwb3J0IGNvbnN0IGNoYXJGaWVsZCA9ICh1cGRhdGVzOiBJQ2hhckZpZWxkTWV0YWRhdGEgPSB7fSk6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAnY2hhckZpZWxkJywgQ2hhckZpZWxkTWFuYWdlcik7XG5cbmV4cG9ydCBjb25zdCBlbWFpbEZpZWxkID0gKFxuICB1cGRhdGVzOiBJRW1haWxGaWVsZE1ldGFkYXRhID0ge31cbik6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAnZW1haWxGaWVsZCcsIEVtYWlsRmllbGRNYW5hZ2VyKTtcblxuZXhwb3J0IGNvbnN0IHRleHRGaWVsZCA9ICh1cGRhdGVzOiBJVGV4dEZpZWxkTWV0YWRhdGEgPSB7fSk6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAndGV4dEZpZWxkJywgVGV4dEZpZWxkTWFuYWdlcik7XG5cbmV4cG9ydCBjb25zdCBwYXNzd29yZEZpZWxkID0gKFxuICB1cGRhdGVzOiBJUGFzc3dvcmRGaWVsZE1ldGFkYXRhID0ge31cbik6IEZpZWxkRGVjb3JhdG9yRm4gPT5cbiAgZ2VuZXJpY0RhdGFGaWVsZCh1cGRhdGVzLCAncGFzc3dvcmRGaWVsZCcsIFBhc3N3b3JkRmllbGRNYW5hZ2VyKTtcbiJdfQ==
|