@smartsoft001/models 1.0.774 → 1.0.778
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/esm2020/lib/decorators/field/field.decorator.mjs +45 -0
- package/{esm2015/lib/decorators/index.js → esm2020/lib/decorators/index.mjs} +0 -0
- package/esm2020/lib/decorators/model/model.decorator.mjs +19 -0
- package/{esm2015/lib/interfaces.js → esm2020/lib/interfaces.mjs} +0 -0
- package/{esm2015/lib/symbols.js → esm2020/lib/symbols.mjs} +0 -0
- package/{esm2015/lib/utils.js → esm2020/lib/utils.mjs} +0 -0
- package/{esm2015/smartsoft001-models.js → esm2020/smartsoft001-models.mjs} +0 -0
- package/fesm2015/{smartsoft001-models.js → smartsoft001-models.mjs} +1 -1
- package/fesm2015/smartsoft001-models.mjs.map +1 -0
- package/fesm2020/smartsoft001-models.mjs +178 -0
- package/fesm2020/smartsoft001-models.mjs.map +1 -0
- package/package.json +25 -12
- package/smartsoft001-models.d.ts +1 -0
- package/bundles/smartsoft001-models.umd.js +0 -199
- package/bundles/smartsoft001-models.umd.js.map +0 -1
- package/esm2015/lib/decorators/field/field.decorator.js +0 -45
- package/esm2015/lib/decorators/model/model.decorator.js +0 -19
- package/fesm2015/smartsoft001-models.js.map +0 -1
- package/smartsoft001-models.metadata.json +0 -1
|
File without changes
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import * as symbols from "../../symbols";
|
|
3
|
+
import { FieldType } from "../../interfaces";
|
|
4
|
+
import { ObjectService } from "@smartsoft001/utils";
|
|
5
|
+
export const Field = FieldDecorator;
|
|
6
|
+
export function FieldDecorator(options) {
|
|
7
|
+
return (target, key) => {
|
|
8
|
+
options = options ? { ...options } : {};
|
|
9
|
+
if (!target.constructor['__fields']) {
|
|
10
|
+
target.constructor['__fields'] = {};
|
|
11
|
+
}
|
|
12
|
+
target.constructor['__fields'][key] = true;
|
|
13
|
+
if (!options.type && key === 'password') {
|
|
14
|
+
options.type = FieldType.password;
|
|
15
|
+
}
|
|
16
|
+
else if (!options.type) {
|
|
17
|
+
options.type = FieldType.text;
|
|
18
|
+
}
|
|
19
|
+
if (options.classType) {
|
|
20
|
+
target['_' + key] = target[key];
|
|
21
|
+
delete target[key];
|
|
22
|
+
Object.defineProperty(target, key, {
|
|
23
|
+
get: function () {
|
|
24
|
+
if (!this['_' + key] && options.type === FieldType.array) {
|
|
25
|
+
this['_' + key] = [];
|
|
26
|
+
}
|
|
27
|
+
return this['_' + key];
|
|
28
|
+
},
|
|
29
|
+
set: function (v) {
|
|
30
|
+
this['_' + key] = options.type === FieldType.array && v ?
|
|
31
|
+
v.map(i => ObjectService.createByType(i, options.classType))
|
|
32
|
+
: ObjectService.createByType(v, options.classType);
|
|
33
|
+
},
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true
|
|
36
|
+
});
|
|
37
|
+
if (!target.constructor['__properties']) {
|
|
38
|
+
target.constructor['__properties'] = {};
|
|
39
|
+
}
|
|
40
|
+
target.constructor['__properties'][key] = true;
|
|
41
|
+
}
|
|
42
|
+
Reflect.defineMetadata(symbols.SYMBOL_FIELD, options, target, key);
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQvbW9kZWxzL3NyYy9saWIvZGVjb3JhdG9ycy9maWVsZC9maWVsZC5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFnQixNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDO0FBQ3BDLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBdUI7SUFDbEQsT0FBTyxDQUFJLE1BQVMsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUVqQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUV4QyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNqQyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUN2QztRQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRTNDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLEdBQUcsS0FBSyxVQUFVLEVBQUU7WUFDckMsT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDdEIsT0FBTyxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1lBQ25CLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRW5CLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtnQkFDaEMsR0FBRyxFQUFFO29CQUNELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEtBQUssRUFBRTt3QkFDdEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7cUJBQ3hCO29CQUNELE9BQU8sSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztnQkFDM0IsQ0FBQztnQkFDQSxHQUFHLEVBQUUsVUFBVSxDQUFNO29CQUNqQixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQzt3QkFDckQsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQzt3QkFDNUQsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDM0QsQ0FBQztnQkFDRCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsWUFBWSxFQUFFLElBQUk7YUFDckIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEVBQUU7Z0JBQ3JDLE1BQU0sQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDO2FBQzNDO1lBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7U0FDbEQ7UUFFRCxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2RSxDQUFDLENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdyZWZsZWN0LW1ldGFkYXRhJztcblxuaW1wb3J0ICogYXMgc3ltYm9scyBmcm9tIFwiLi4vLi4vc3ltYm9sc1wiO1xuaW1wb3J0IHtGaWVsZFR5cGUsIElGaWVsZE9wdGlvbnN9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XG5pbXBvcnQge09iamVjdFNlcnZpY2V9IGZyb20gXCJAc21hcnRzb2Z0MDAxL3V0aWxzXCI7XG5cbmV4cG9ydCBjb25zdCBGaWVsZCA9IEZpZWxkRGVjb3JhdG9yO1xuZXhwb3J0IGZ1bmN0aW9uIEZpZWxkRGVjb3JhdG9yKG9wdGlvbnM/OiBJRmllbGRPcHRpb25zKSB7XG4gICAgcmV0dXJuIDxUPih0YXJnZXQ6IFQsIGtleTogc3RyaW5nKSA9PiB7XG5cbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgPyB7IC4uLm9wdGlvbnMgfSA6IHt9O1xuXG4gICAgICAgIGlmICghdGFyZ2V0LmNvbnN0cnVjdG9yWydfX2ZpZWxkcyddKSB7XG4gICAgICAgICAgICB0YXJnZXQuY29uc3RydWN0b3JbJ19fZmllbGRzJ10gPSB7fTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRhcmdldC5jb25zdHJ1Y3RvclsnX19maWVsZHMnXVtrZXldID0gdHJ1ZTtcblxuICAgICAgICBpZiAoIW9wdGlvbnMudHlwZSAmJiBrZXkgPT09ICdwYXNzd29yZCcpIHtcbiAgICAgICAgICAgIG9wdGlvbnMudHlwZSA9IEZpZWxkVHlwZS5wYXNzd29yZDtcbiAgICAgICAgfSBlbHNlIGlmICghb3B0aW9ucy50eXBlKSB7XG4gICAgICAgICAgICBvcHRpb25zLnR5cGUgPSBGaWVsZFR5cGUudGV4dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcHRpb25zLmNsYXNzVHlwZSkge1xuICAgICAgICAgICAgdGFyZ2V0WydfJyArIGtleV0gPSB0YXJnZXRba2V5XTtcbiAgICAgICAgICAgIGRlbGV0ZSB0YXJnZXRba2V5XTtcblxuICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwga2V5LCB7XG4gICAgICAgICAgICAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXNbJ18nICsga2V5XSAmJiBvcHRpb25zLnR5cGUgPT09IEZpZWxkVHlwZS5hcnJheSkge1xuICAgICAgICAgICAgICAgICAgICAgICB0aGlzWydfJyArIGtleV0gPSBbXTtcbiAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXNbJ18nICsga2V5XTtcbiAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAodjogYW55KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXNbJ18nICsga2V5XSA9IG9wdGlvbnMudHlwZSA9PT0gRmllbGRUeXBlLmFycmF5ICYmIHYgP1xuICAgICAgICAgICAgICAgICAgICAgICAgdi5tYXAoaSA9PiBPYmplY3RTZXJ2aWNlLmNyZWF0ZUJ5VHlwZShpLCBvcHRpb25zLmNsYXNzVHlwZSkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IE9iamVjdFNlcnZpY2UuY3JlYXRlQnlUeXBlKHYsIG9wdGlvbnMuY2xhc3NUeXBlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKCF0YXJnZXQuY29uc3RydWN0b3JbJ19fcHJvcGVydGllcyddKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LmNvbnN0cnVjdG9yWydfX3Byb3BlcnRpZXMnXSA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0YXJnZXQuY29uc3RydWN0b3JbJ19fcHJvcGVydGllcyddW2tleV0gPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShzeW1ib2xzLlNZTUJPTF9GSUVMRCwgb3B0aW9ucywgdGFyZ2V0LCBrZXkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import * as symbols from "../../symbols";
|
|
3
|
+
export const Model = ModelDecorator;
|
|
4
|
+
export function ModelDecorator(options) {
|
|
5
|
+
return function (target) {
|
|
6
|
+
options = options ? { ...options } : {};
|
|
7
|
+
Reflect.defineMetadata(symbols.SYMBOL_MODEL, options, target);
|
|
8
|
+
target.prototype.toJSON = function () {
|
|
9
|
+
const result = { ...this };
|
|
10
|
+
if (this.constructor['__properties']) {
|
|
11
|
+
Object.keys(this.constructor['__properties']).forEach(protoKey => {
|
|
12
|
+
result[protoKey] = this['_' + protoKey];
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return result;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQvbW9kZWxzL3NyYy9saWIvZGVjb3JhdG9ycy9tb2RlbC9tb2RlbC5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUd6QyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDO0FBQ3BDLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBdUI7SUFDcEQsT0FBTyxVQUFZLE1BQVc7UUFDNUIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFeEMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU5RCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRztZQUN4QixNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7WUFFM0IsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQy9ELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxDQUFDO2dCQUMxQyxDQUFDLENBQUMsQ0FBQzthQUNKO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFBO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5cbmltcG9ydCAqIGFzIHN5bWJvbHMgZnJvbSBcIi4uLy4uL3N5bWJvbHNcIjtcbmltcG9ydCB7SU1vZGVsT3B0aW9uc30gZnJvbSBcIi4uLy4uL2ludGVyZmFjZXNcIjtcblxuZXhwb3J0IGNvbnN0IE1vZGVsID0gTW9kZWxEZWNvcmF0b3I7XG5leHBvcnQgZnVuY3Rpb24gTW9kZWxEZWNvcmF0b3Iob3B0aW9ucz86IElNb2RlbE9wdGlvbnMpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uPFQ+KHRhcmdldDogYW55KSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgPyB7IC4uLm9wdGlvbnMgfSA6IHt9O1xuXG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShzeW1ib2xzLlNZTUJPTF9NT0RFTCwgb3B0aW9ucywgdGFyZ2V0KTtcblxuICAgIHRhcmdldC5wcm90b3R5cGUudG9KU09OID0gZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0geyAuLi50aGlzIH07XG5cbiAgICAgIGlmICh0aGlzLmNvbnN0cnVjdG9yWydfX3Byb3BlcnRpZXMnXSkge1xuICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmNvbnN0cnVjdG9yWydfX3Byb3BlcnRpZXMnXSkuZm9yRWFjaChwcm90b0tleSA9PiB7XG4gICAgICAgICAgcmVzdWx0W3Byb3RvS2V5XSA9IHRoaXNbJ18nICsgcHJvdG9LZXldO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -175,4 +175,4 @@ function castModel(instance, mode, permissions) {
|
|
|
175
175
|
*/
|
|
176
176
|
|
|
177
177
|
export { Field, FieldDecorator, FieldType, Model, ModelDecorator, SYMBOL_FIELD, SYMBOL_MODEL, castModel, getInvalidFields, getModelFieldKeys, getModelFieldOptions, getModelFieldsWithOptions, getModelOptions, isModel };
|
|
178
|
-
//# sourceMappingURL=smartsoft001-models.
|
|
178
|
+
//# sourceMappingURL=smartsoft001-models.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smartsoft001-models.mjs","sources":["../../../../../libs/shared/models/src/lib/symbols.ts","../../../../../libs/shared/models/src/lib/interfaces.ts","../../../../../libs/shared/models/src/lib/decorators/model/model.decorator.ts","../../../../../libs/shared/models/src/lib/decorators/field/field.decorator.ts","../../../../../libs/shared/models/src/lib/utils.ts","../../../../../libs/shared/models/src/smartsoft001-models.ts"],"sourcesContent":["export const SYMBOL_MODEL = Symbol.for('smartsoft:model');\nexport const SYMBOL_FIELD = Symbol.for('smartsoft:field');\n","import {Observable} from \"rxjs\";\n\nexport enum FieldType {\n address = \"address\",\n currency = \"currency\",\n date = \"date\",\n dateWithEdit = \"dateWithEdit\",\n email = \"email\",\n enum = \"enum\",\n file = \"file\",\n flag = \"flag\",\n int = \"int\",\n nip = \"nip\",\n object = \"object\",\n array = \"array\",\n password = \"password\",\n radio = \"radio\",\n text = \"text\",\n strings = \"strings\",\n ints = \"ints\",\n longText = \"longText\",\n color = \"color\",\n logo = \"logo\",\n check = \"check\",\n phoneNumber = \"phoneNumber\",\n phoneNumberPl = \"phoneNumberPl\",\n pesel = \"pesel\",\n pdf = \"pdf\",\n video = \"video\",\n attachment = \"attachment\",\n dateRange = \"dateRange\",\n image = \"image\",\n float = \"float\"\n}\n\nexport interface ISpecification {\n criteria: any;\n}\n\nexport interface IModelFilter {\n label?: string;\n fieldType?: FieldType;\n key: string;\n type: '=' | '!=' | '>=' | '<=' | '<' | '>' | '~=';\n possibilities$?: Observable<{ id: any, text: string }[]>;\n}\n\nexport interface IModelStep {\n number: number;\n name: string;\n}\n\nexport interface IModelMetadata {\n titleKey?: string;\n permissions?: Array<string>;\n filters?: Array<IModelFilter>;\n}\n\nexport interface IFieldMetadata extends IFieldModifyMetadata {\n type?: FieldType;\n classType?: any;\n possibilities?: Array<any> | any;\n}\n\nexport interface IFieldModifyMetadata {\n required?: boolean;\n focused?: boolean;\n confirm?: boolean;\n permissions?: Array<string>;\n unique?: boolean | IFieldUniqueMetadata;\n defaltValue?: () => any;\n enabled?: ISpecification;\n hide?: boolean;\n /**\n * @desc - Model step configuration\n */\n step?: IModelStep;\n}\n\nexport interface IFieldEditMetadata extends IFieldModifyMetadata {\n multi?: boolean;\n}\n\nexport interface IFieldListMetadata {\n order?: number;\n filter?: boolean;\n permissions?: Array<string>;\n /**\n * Configuration for dynamic list table data\n * @param {string} dynamic.headerKey - column header object key\n * @param {string} dynamic.rowKey - column row value object key\n */\n dynamic?: { headerKey: string, rowKey: string }\n}\n\nexport interface IFieldDetailsMetadata {\n order?: number;\n permissions?: Array<string>;\n enabled?: ISpecification;\n}\n\nexport interface IModelOptions {\n titleKey?: string;\n filters?: Array<IModelFilter>;\n create?: IModelModeOptions;\n update?: IModelModeOptions;\n list?: IModelModeOptions;\n details?: IModelModeOptions;\n remove?: IModelModeOptions;\n customs?: Array<IModelModeOptionsCustom>;\n /**\n * @desc - Allow export field data\n */\n export?: boolean;\n /**\n * @desc - Allow import field data\n */\n import?: boolean;\n}\n\nexport interface IModelModeOptions {\n permissions?: Array<string>;\n}\n\nexport interface IModelModeOptionsCustom extends IModelModeOptions {\n mode: string;\n}\n\nexport interface IFieldOptions extends IFieldMetadata {\n create?: IFieldModifyMetadata | boolean;\n update?: IFieldEditMetadata | boolean;\n list?: IFieldListMetadata | boolean;\n details?: IFieldDetailsMetadata | boolean;\n customs?: Array<IModelMetadataCustom>;\n search?: boolean;\n info?: string;\n}\n\nexport interface IModelMetadataCustom extends IModelMetadata {\n mode: string\n}\n\nexport interface IFieldUniqueMetadata {\n withFields?: Array<string>;\n}\n\nexport interface IFieldCustomMetadata extends IFieldModifyMetadata, IFieldListMetadata {\n mode: string;\n}\n","import 'reflect-metadata';\n\nimport * as symbols from \"../../symbols\";\nimport {IModelOptions} from \"../../interfaces\";\n\nexport const Model = ModelDecorator;\nexport function ModelDecorator(options?: IModelOptions) {\n return function<T>(target: any) {\n options = options ? { ...options } : {};\n\n Reflect.defineMetadata(symbols.SYMBOL_MODEL, options, target);\n\n target.prototype.toJSON = function () {\n const result = { ...this };\n\n if (this.constructor['__properties']) {\n Object.keys(this.constructor['__properties']).forEach(protoKey => {\n result[protoKey] = this['_' + protoKey];\n });\n }\n\n return result;\n };\n }\n}\n","import 'reflect-metadata';\n\nimport * as symbols from \"../../symbols\";\nimport {FieldType, IFieldOptions} from \"../../interfaces\";\nimport {ObjectService} from \"@smartsoft001/utils\";\n\nexport const Field = FieldDecorator;\nexport function FieldDecorator(options?: IFieldOptions) {\n return <T>(target: T, key: string) => {\n\n options = options ? { ...options } : {};\n\n if (!target.constructor['__fields']) {\n target.constructor['__fields'] = {};\n }\n\n target.constructor['__fields'][key] = true;\n\n if (!options.type && key === 'password') {\n options.type = FieldType.password;\n } else if (!options.type) {\n options.type = FieldType.text;\n }\n\n if (options.classType) {\n target['_' + key] = target[key];\n delete target[key];\n\n Object.defineProperty(target, key, {\n get: function () {\n if (!this['_' + key] && options.type === FieldType.array) {\n this['_' + key] = [];\n }\n return this['_' + key];\n },\n set: function (v: any) {\n this['_' + key] = options.type === FieldType.array && v ?\n v.map(i => ObjectService.createByType(i, options.classType))\n : ObjectService.createByType(v, options.classType);\n },\n enumerable: true,\n configurable: true\n });\n\n if (!target.constructor['__properties']) {\n target.constructor['__properties'] = {};\n }\n\n target.constructor['__properties'][key] = true;\n }\n\n Reflect.defineMetadata(symbols.SYMBOL_FIELD, options, target, key);\n }\n}\n","import { IFieldOptions, IModelMetadata, IModelOptions } from \"./interfaces\";\nimport { SYMBOL_FIELD, SYMBOL_MODEL } from \"./symbols\";\n\nexport function getModelFieldKeys<T>(type: T): Array<string> {\n if (!type[\"__fields\"]) return [];\n return Object.keys(type[\"__fields\"]);\n}\n\nexport function getModelFieldOptions<T>(\n instance: T,\n fieldKey: string\n): IFieldOptions {\n return Reflect.getMetadata(SYMBOL_FIELD, instance, fieldKey);\n}\n\nexport function getModelFieldsWithOptions<T>(\n instance: T\n): Array<{ key: string; options: IFieldOptions }> {\n const keys = getModelFieldKeys(instance.constructor);\n\n return keys.map((item) => {\n return {\n key: item,\n options: getModelFieldOptions(instance, item),\n };\n });\n}\n\nexport function getModelOptions(type: any): IModelOptions {\n return Reflect.getMetadata(SYMBOL_MODEL, type);\n}\n\nexport function isModel<T>(instance: T): boolean {\n if (!instance || !instance.constructor) return false;\n return Reflect.hasMetadata(SYMBOL_MODEL, instance.constructor);\n}\n\nexport function getInvalidFields<T>(\n instance: T,\n mode: \"create\" | \"update\" | string,\n permissions: Array<string>\n): Array<string> {\n const result = [];\n\n getModelFieldsWithOptions(instance).forEach(({ key, options }) => {\n let required = options.required;\n\n if (\n (mode === \"create\" || mode === \"update\") &&\n options[mode] &&\n options[mode].constructor\n ) {\n required = (options[mode] as IFieldOptions).required;\n\n if (\n required &&\n permissions &&\n (options[mode] as IFieldOptions).permissions\n ) {\n required = (options[mode] as IFieldOptions).permissions.some((op) =>\n permissions.some((p) => p === op)\n );\n }\n }\n\n if (required && (instance[key] === null || instance[key] === undefined || instance[key] === '')) result.push(key);\n });\n\n return result;\n}\n\nexport function castModel<T>(\n instance: T,\n mode: \"create\" | \"update\" | string,\n permissions: Array<string>\n): void {\n if (!isModel(instance)) return;\n\n const fieldsWithOptions = getModelFieldsWithOptions(instance);\n\n Object.keys(instance)\n .filter((key) => key !== \"id\")\n .forEach((key) => {\n const fieldWidthOptions = fieldsWithOptions.find((f) => f.key === key);\n\n if (!fieldWidthOptions) {\n delete instance[key];\n return;\n }\n\n if (\n (mode === \"create\" || mode === \"update\") &&\n (!fieldWidthOptions.options[mode] ||\n (permissions &&\n (fieldWidthOptions.options[mode] as IFieldOptions).permissions &&\n !(fieldWidthOptions.options[\n mode\n ] as IFieldOptions).permissions.some((op) =>\n permissions.some((p) => op === p)\n )))\n ) {\n delete instance[key];\n return;\n } else if (\n mode !== \"create\" &&\n mode !== \"update\" &&\n (!fieldWidthOptions.options.customs ||\n !fieldWidthOptions.options.customs.some((c) => c.mode === mode))\n ) {\n delete instance[key];\n return;\n }\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["symbols.SYMBOL_MODEL","symbols.SYMBOL_FIELD"],"mappings":";;;AAAa,MAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE;AAC7C,MAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB;;ACC5C,IAAA,UA+BX;AA/BD,CAAA,UAAY,SAAS,EAAA;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACnB,CAAC,EA/BW,SAAS,KAAT,SAAS,GA+BpB,EAAA,CAAA,CAAA;;AC5BM,MAAM,KAAK,GAAG,eAAe;AAC9B,SAAU,cAAc,CAAC,OAAuB,EAAA;AACpD,IAAA,OAAO,UAAY,MAAW,EAAA;QAC5B,OAAO,GAAG,OAAO,GAAE,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,OAAO,CAAG,GAAE,EAAE,CAAC;QAExC,OAAO,CAAC,cAAc,CAACA,YAAoB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE9D,QAAA,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,YAAA;AACxB,YAAA,MAAM,MAAM,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,IAAI,CAAE,CAAC;AAE3B,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;AACpC,gBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAG;oBAC/D,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;AAC1C,iBAAC,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;AACJ,KAAC,CAAA;AACH;;AClBO,MAAM,KAAK,GAAG,eAAe;AAC9B,SAAU,cAAc,CAAC,OAAuB,EAAA;AAClD,IAAA,OAAO,CAAI,MAAS,EAAE,GAAW,KAAI;QAEjC,OAAO,GAAG,OAAO,GAAE,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,OAAO,CAAG,GAAE,EAAE,CAAC;AAExC,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AACjC,YAAA,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AACvC,SAAA;QAED,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,KAAK,UAAU,EAAE;AACrC,YAAA,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC;AACrC,SAAA;AAAM,aAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACtB,YAAA,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;AACjC,SAAA;QAED,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAChC,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AAEnB,YAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;AAChC,gBAAA,GAAG,EAAE,YAAA;AACD,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE;AACtD,wBAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,qBAAA;AACD,oBAAA,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;iBAC1B;gBACA,GAAG,EAAE,UAAU,CAAM,EAAA;AACjB,oBAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,IAAI,CAAC;AACnD,wBAAA,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;0BAC1D,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;iBAC1D;AACD,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,YAAY,EAAE,IAAI;AACrB,aAAA,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;AACrC,gBAAA,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;AAC3C,aAAA;YAED,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAClD,SAAA;AAED,QAAA,OAAO,CAAC,cAAc,CAACC,YAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AACvE,KAAC,CAAA;AACL;;AClDM,SAAU,iBAAiB,CAAI,IAAO,EAAA;AAC1C,IAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAAE,QAAA,OAAO,EAAE,CAAC;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACvC,CAAC;AAEe,SAAA,oBAAoB,CAClC,QAAW,EACX,QAAgB,EAAA;IAEhB,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAEK,SAAU,yBAAyB,CACvC,QAAW,EAAA;IAEX,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAErD,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;QACvB,OAAO;AACL,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,OAAO,EAAE,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC;SAC9C,CAAC;AACJ,KAAC,CAAC,CAAC;AACL,CAAC;AAEK,SAAU,eAAe,CAAC,IAAS,EAAA;IACvC,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAEK,SAAU,OAAO,CAAI,QAAW,EAAA;AACpC,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW;AAAE,QAAA,OAAO,KAAK,CAAC;IACrD,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;AACjE,CAAC;SAEe,gBAAgB,CAC9B,QAAW,EACX,IAAkC,EAClC,WAA0B,EAAA;IAE1B,MAAM,MAAM,GAAG,EAAE,CAAC;AAElB,IAAA,yBAAyB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAI;AAC/D,QAAA,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEhC,IACE,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ;YACvC,OAAO,CAAC,IAAI,CAAC;AACb,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EACzB;AACA,YAAA,QAAQ,GAAI,OAAO,CAAC,IAAI,CAAmB,CAAC,QAAQ,CAAC;AAErD,YAAA,IACE,QAAQ;gBACR,WAAW;AACV,gBAAA,OAAO,CAAC,IAAI,CAAmB,CAAC,WAAW,EAC5C;AACA,gBAAA,QAAQ,GAAI,OAAO,CAAC,IAAI,CAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,KAC9D,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAClC,CAAC;AACH,aAAA;AACF,SAAA;QAED,IAAI,QAAQ,KAAK,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpH,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;SAEe,SAAS,CACvB,QAAW,EACX,IAAkC,EAClC,WAA0B,EAAA;AAE1B,IAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO;AAE/B,IAAA,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AAE9D,IAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;SAClB,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,IAAI,CAAC;AAC7B,SAAA,OAAO,CAAC,CAAC,GAAG,KAAI;AACf,QAAA,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAEvE,IAAI,CAAC,iBAAiB,EAAE;AACtB,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO;AACR,SAAA;QAED,IACE,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ;AACvC,aAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;AAC/B,iBAAC,WAAW;AACT,oBAAA,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAmB,CAAC,WAAW;AAC9D,oBAAA,CAAE,iBAAiB,CAAC,OAAO,CACzB,IAAI,CACa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,KACtC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAClC,CAAC,CAAC,EACP;AACA,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO;AACR,SAAA;aAAM,IACL,IAAI,KAAK,QAAQ;AACjB,YAAA,IAAI,KAAK,QAAQ;AACjB,aAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO;gBACjC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAClE;AACA,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO;AACR,SAAA;AACH,KAAC,CAAC,CAAC;AACP;;ACjHA;;AAEG;;;;"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { ObjectService } from '@smartsoft001/utils';
|
|
3
|
+
|
|
4
|
+
const SYMBOL_MODEL = Symbol.for('smartsoft:model');
|
|
5
|
+
const SYMBOL_FIELD = Symbol.for('smartsoft:field');
|
|
6
|
+
|
|
7
|
+
var FieldType;
|
|
8
|
+
(function (FieldType) {
|
|
9
|
+
FieldType["address"] = "address";
|
|
10
|
+
FieldType["currency"] = "currency";
|
|
11
|
+
FieldType["date"] = "date";
|
|
12
|
+
FieldType["dateWithEdit"] = "dateWithEdit";
|
|
13
|
+
FieldType["email"] = "email";
|
|
14
|
+
FieldType["enum"] = "enum";
|
|
15
|
+
FieldType["file"] = "file";
|
|
16
|
+
FieldType["flag"] = "flag";
|
|
17
|
+
FieldType["int"] = "int";
|
|
18
|
+
FieldType["nip"] = "nip";
|
|
19
|
+
FieldType["object"] = "object";
|
|
20
|
+
FieldType["array"] = "array";
|
|
21
|
+
FieldType["password"] = "password";
|
|
22
|
+
FieldType["radio"] = "radio";
|
|
23
|
+
FieldType["text"] = "text";
|
|
24
|
+
FieldType["strings"] = "strings";
|
|
25
|
+
FieldType["ints"] = "ints";
|
|
26
|
+
FieldType["longText"] = "longText";
|
|
27
|
+
FieldType["color"] = "color";
|
|
28
|
+
FieldType["logo"] = "logo";
|
|
29
|
+
FieldType["check"] = "check";
|
|
30
|
+
FieldType["phoneNumber"] = "phoneNumber";
|
|
31
|
+
FieldType["phoneNumberPl"] = "phoneNumberPl";
|
|
32
|
+
FieldType["pesel"] = "pesel";
|
|
33
|
+
FieldType["pdf"] = "pdf";
|
|
34
|
+
FieldType["video"] = "video";
|
|
35
|
+
FieldType["attachment"] = "attachment";
|
|
36
|
+
FieldType["dateRange"] = "dateRange";
|
|
37
|
+
FieldType["image"] = "image";
|
|
38
|
+
FieldType["float"] = "float";
|
|
39
|
+
})(FieldType || (FieldType = {}));
|
|
40
|
+
|
|
41
|
+
const Model = ModelDecorator;
|
|
42
|
+
function ModelDecorator(options) {
|
|
43
|
+
return function (target) {
|
|
44
|
+
options = options ? { ...options } : {};
|
|
45
|
+
Reflect.defineMetadata(SYMBOL_MODEL, options, target);
|
|
46
|
+
target.prototype.toJSON = function () {
|
|
47
|
+
const result = { ...this };
|
|
48
|
+
if (this.constructor['__properties']) {
|
|
49
|
+
Object.keys(this.constructor['__properties']).forEach(protoKey => {
|
|
50
|
+
result[protoKey] = this['_' + protoKey];
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
const Field = FieldDecorator;
|
|
59
|
+
function FieldDecorator(options) {
|
|
60
|
+
return (target, key) => {
|
|
61
|
+
options = options ? { ...options } : {};
|
|
62
|
+
if (!target.constructor['__fields']) {
|
|
63
|
+
target.constructor['__fields'] = {};
|
|
64
|
+
}
|
|
65
|
+
target.constructor['__fields'][key] = true;
|
|
66
|
+
if (!options.type && key === 'password') {
|
|
67
|
+
options.type = FieldType.password;
|
|
68
|
+
}
|
|
69
|
+
else if (!options.type) {
|
|
70
|
+
options.type = FieldType.text;
|
|
71
|
+
}
|
|
72
|
+
if (options.classType) {
|
|
73
|
+
target['_' + key] = target[key];
|
|
74
|
+
delete target[key];
|
|
75
|
+
Object.defineProperty(target, key, {
|
|
76
|
+
get: function () {
|
|
77
|
+
if (!this['_' + key] && options.type === FieldType.array) {
|
|
78
|
+
this['_' + key] = [];
|
|
79
|
+
}
|
|
80
|
+
return this['_' + key];
|
|
81
|
+
},
|
|
82
|
+
set: function (v) {
|
|
83
|
+
this['_' + key] = options.type === FieldType.array && v ?
|
|
84
|
+
v.map(i => ObjectService.createByType(i, options.classType))
|
|
85
|
+
: ObjectService.createByType(v, options.classType);
|
|
86
|
+
},
|
|
87
|
+
enumerable: true,
|
|
88
|
+
configurable: true
|
|
89
|
+
});
|
|
90
|
+
if (!target.constructor['__properties']) {
|
|
91
|
+
target.constructor['__properties'] = {};
|
|
92
|
+
}
|
|
93
|
+
target.constructor['__properties'][key] = true;
|
|
94
|
+
}
|
|
95
|
+
Reflect.defineMetadata(SYMBOL_FIELD, options, target, key);
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function getModelFieldKeys(type) {
|
|
100
|
+
if (!type["__fields"])
|
|
101
|
+
return [];
|
|
102
|
+
return Object.keys(type["__fields"]);
|
|
103
|
+
}
|
|
104
|
+
function getModelFieldOptions(instance, fieldKey) {
|
|
105
|
+
return Reflect.getMetadata(SYMBOL_FIELD, instance, fieldKey);
|
|
106
|
+
}
|
|
107
|
+
function getModelFieldsWithOptions(instance) {
|
|
108
|
+
const keys = getModelFieldKeys(instance.constructor);
|
|
109
|
+
return keys.map((item) => {
|
|
110
|
+
return {
|
|
111
|
+
key: item,
|
|
112
|
+
options: getModelFieldOptions(instance, item),
|
|
113
|
+
};
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
function getModelOptions(type) {
|
|
117
|
+
return Reflect.getMetadata(SYMBOL_MODEL, type);
|
|
118
|
+
}
|
|
119
|
+
function isModel(instance) {
|
|
120
|
+
if (!instance || !instance.constructor)
|
|
121
|
+
return false;
|
|
122
|
+
return Reflect.hasMetadata(SYMBOL_MODEL, instance.constructor);
|
|
123
|
+
}
|
|
124
|
+
function getInvalidFields(instance, mode, permissions) {
|
|
125
|
+
const result = [];
|
|
126
|
+
getModelFieldsWithOptions(instance).forEach(({ key, options }) => {
|
|
127
|
+
let required = options.required;
|
|
128
|
+
if ((mode === "create" || mode === "update") &&
|
|
129
|
+
options[mode] &&
|
|
130
|
+
options[mode].constructor) {
|
|
131
|
+
required = options[mode].required;
|
|
132
|
+
if (required &&
|
|
133
|
+
permissions &&
|
|
134
|
+
options[mode].permissions) {
|
|
135
|
+
required = options[mode].permissions.some((op) => permissions.some((p) => p === op));
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (required && (instance[key] === null || instance[key] === undefined || instance[key] === ''))
|
|
139
|
+
result.push(key);
|
|
140
|
+
});
|
|
141
|
+
return result;
|
|
142
|
+
}
|
|
143
|
+
function castModel(instance, mode, permissions) {
|
|
144
|
+
if (!isModel(instance))
|
|
145
|
+
return;
|
|
146
|
+
const fieldsWithOptions = getModelFieldsWithOptions(instance);
|
|
147
|
+
Object.keys(instance)
|
|
148
|
+
.filter((key) => key !== "id")
|
|
149
|
+
.forEach((key) => {
|
|
150
|
+
const fieldWidthOptions = fieldsWithOptions.find((f) => f.key === key);
|
|
151
|
+
if (!fieldWidthOptions) {
|
|
152
|
+
delete instance[key];
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if ((mode === "create" || mode === "update") &&
|
|
156
|
+
(!fieldWidthOptions.options[mode] ||
|
|
157
|
+
(permissions &&
|
|
158
|
+
fieldWidthOptions.options[mode].permissions &&
|
|
159
|
+
!fieldWidthOptions.options[mode].permissions.some((op) => permissions.some((p) => op === p))))) {
|
|
160
|
+
delete instance[key];
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
else if (mode !== "create" &&
|
|
164
|
+
mode !== "update" &&
|
|
165
|
+
(!fieldWidthOptions.options.customs ||
|
|
166
|
+
!fieldWidthOptions.options.customs.some((c) => c.mode === mode))) {
|
|
167
|
+
delete instance[key];
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Generated bundle index. Do not edit.
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
export { Field, FieldDecorator, FieldType, Model, ModelDecorator, SYMBOL_FIELD, SYMBOL_MODEL, castModel, getInvalidFields, getModelFieldKeys, getModelFieldOptions, getModelFieldsWithOptions, getModelOptions, isModel };
|
|
178
|
+
//# sourceMappingURL=smartsoft001-models.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smartsoft001-models.mjs","sources":["../../../../../libs/shared/models/src/lib/symbols.ts","../../../../../libs/shared/models/src/lib/interfaces.ts","../../../../../libs/shared/models/src/lib/decorators/model/model.decorator.ts","../../../../../libs/shared/models/src/lib/decorators/field/field.decorator.ts","../../../../../libs/shared/models/src/lib/utils.ts","../../../../../libs/shared/models/src/smartsoft001-models.ts"],"sourcesContent":["export const SYMBOL_MODEL = Symbol.for('smartsoft:model');\nexport const SYMBOL_FIELD = Symbol.for('smartsoft:field');\n","import {Observable} from \"rxjs\";\n\nexport enum FieldType {\n address = \"address\",\n currency = \"currency\",\n date = \"date\",\n dateWithEdit = \"dateWithEdit\",\n email = \"email\",\n enum = \"enum\",\n file = \"file\",\n flag = \"flag\",\n int = \"int\",\n nip = \"nip\",\n object = \"object\",\n array = \"array\",\n password = \"password\",\n radio = \"radio\",\n text = \"text\",\n strings = \"strings\",\n ints = \"ints\",\n longText = \"longText\",\n color = \"color\",\n logo = \"logo\",\n check = \"check\",\n phoneNumber = \"phoneNumber\",\n phoneNumberPl = \"phoneNumberPl\",\n pesel = \"pesel\",\n pdf = \"pdf\",\n video = \"video\",\n attachment = \"attachment\",\n dateRange = \"dateRange\",\n image = \"image\",\n float = \"float\"\n}\n\nexport interface ISpecification {\n criteria: any;\n}\n\nexport interface IModelFilter {\n label?: string;\n fieldType?: FieldType;\n key: string;\n type: '=' | '!=' | '>=' | '<=' | '<' | '>' | '~=';\n possibilities$?: Observable<{ id: any, text: string }[]>;\n}\n\nexport interface IModelStep {\n number: number;\n name: string;\n}\n\nexport interface IModelMetadata {\n titleKey?: string;\n permissions?: Array<string>;\n filters?: Array<IModelFilter>;\n}\n\nexport interface IFieldMetadata extends IFieldModifyMetadata {\n type?: FieldType;\n classType?: any;\n possibilities?: Array<any> | any;\n}\n\nexport interface IFieldModifyMetadata {\n required?: boolean;\n focused?: boolean;\n confirm?: boolean;\n permissions?: Array<string>;\n unique?: boolean | IFieldUniqueMetadata;\n defaltValue?: () => any;\n enabled?: ISpecification;\n hide?: boolean;\n /**\n * @desc - Model step configuration\n */\n step?: IModelStep;\n}\n\nexport interface IFieldEditMetadata extends IFieldModifyMetadata {\n multi?: boolean;\n}\n\nexport interface IFieldListMetadata {\n order?: number;\n filter?: boolean;\n permissions?: Array<string>;\n /**\n * Configuration for dynamic list table data\n * @param {string} dynamic.headerKey - column header object key\n * @param {string} dynamic.rowKey - column row value object key\n */\n dynamic?: { headerKey: string, rowKey: string }\n}\n\nexport interface IFieldDetailsMetadata {\n order?: number;\n permissions?: Array<string>;\n enabled?: ISpecification;\n}\n\nexport interface IModelOptions {\n titleKey?: string;\n filters?: Array<IModelFilter>;\n create?: IModelModeOptions;\n update?: IModelModeOptions;\n list?: IModelModeOptions;\n details?: IModelModeOptions;\n remove?: IModelModeOptions;\n customs?: Array<IModelModeOptionsCustom>;\n /**\n * @desc - Allow export field data\n */\n export?: boolean;\n /**\n * @desc - Allow import field data\n */\n import?: boolean;\n}\n\nexport interface IModelModeOptions {\n permissions?: Array<string>;\n}\n\nexport interface IModelModeOptionsCustom extends IModelModeOptions {\n mode: string;\n}\n\nexport interface IFieldOptions extends IFieldMetadata {\n create?: IFieldModifyMetadata | boolean;\n update?: IFieldEditMetadata | boolean;\n list?: IFieldListMetadata | boolean;\n details?: IFieldDetailsMetadata | boolean;\n customs?: Array<IModelMetadataCustom>;\n search?: boolean;\n info?: string;\n}\n\nexport interface IModelMetadataCustom extends IModelMetadata {\n mode: string\n}\n\nexport interface IFieldUniqueMetadata {\n withFields?: Array<string>;\n}\n\nexport interface IFieldCustomMetadata extends IFieldModifyMetadata, IFieldListMetadata {\n mode: string;\n}\n","import 'reflect-metadata';\n\nimport * as symbols from \"../../symbols\";\nimport {IModelOptions} from \"../../interfaces\";\n\nexport const Model = ModelDecorator;\nexport function ModelDecorator(options?: IModelOptions) {\n return function<T>(target: any) {\n options = options ? { ...options } : {};\n\n Reflect.defineMetadata(symbols.SYMBOL_MODEL, options, target);\n\n target.prototype.toJSON = function () {\n const result = { ...this };\n\n if (this.constructor['__properties']) {\n Object.keys(this.constructor['__properties']).forEach(protoKey => {\n result[protoKey] = this['_' + protoKey];\n });\n }\n\n return result;\n };\n }\n}\n","import 'reflect-metadata';\n\nimport * as symbols from \"../../symbols\";\nimport {FieldType, IFieldOptions} from \"../../interfaces\";\nimport {ObjectService} from \"@smartsoft001/utils\";\n\nexport const Field = FieldDecorator;\nexport function FieldDecorator(options?: IFieldOptions) {\n return <T>(target: T, key: string) => {\n\n options = options ? { ...options } : {};\n\n if (!target.constructor['__fields']) {\n target.constructor['__fields'] = {};\n }\n\n target.constructor['__fields'][key] = true;\n\n if (!options.type && key === 'password') {\n options.type = FieldType.password;\n } else if (!options.type) {\n options.type = FieldType.text;\n }\n\n if (options.classType) {\n target['_' + key] = target[key];\n delete target[key];\n\n Object.defineProperty(target, key, {\n get: function () {\n if (!this['_' + key] && options.type === FieldType.array) {\n this['_' + key] = [];\n }\n return this['_' + key];\n },\n set: function (v: any) {\n this['_' + key] = options.type === FieldType.array && v ?\n v.map(i => ObjectService.createByType(i, options.classType))\n : ObjectService.createByType(v, options.classType);\n },\n enumerable: true,\n configurable: true\n });\n\n if (!target.constructor['__properties']) {\n target.constructor['__properties'] = {};\n }\n\n target.constructor['__properties'][key] = true;\n }\n\n Reflect.defineMetadata(symbols.SYMBOL_FIELD, options, target, key);\n }\n}\n","import { IFieldOptions, IModelMetadata, IModelOptions } from \"./interfaces\";\nimport { SYMBOL_FIELD, SYMBOL_MODEL } from \"./symbols\";\n\nexport function getModelFieldKeys<T>(type: T): Array<string> {\n if (!type[\"__fields\"]) return [];\n return Object.keys(type[\"__fields\"]);\n}\n\nexport function getModelFieldOptions<T>(\n instance: T,\n fieldKey: string\n): IFieldOptions {\n return Reflect.getMetadata(SYMBOL_FIELD, instance, fieldKey);\n}\n\nexport function getModelFieldsWithOptions<T>(\n instance: T\n): Array<{ key: string; options: IFieldOptions }> {\n const keys = getModelFieldKeys(instance.constructor);\n\n return keys.map((item) => {\n return {\n key: item,\n options: getModelFieldOptions(instance, item),\n };\n });\n}\n\nexport function getModelOptions(type: any): IModelOptions {\n return Reflect.getMetadata(SYMBOL_MODEL, type);\n}\n\nexport function isModel<T>(instance: T): boolean {\n if (!instance || !instance.constructor) return false;\n return Reflect.hasMetadata(SYMBOL_MODEL, instance.constructor);\n}\n\nexport function getInvalidFields<T>(\n instance: T,\n mode: \"create\" | \"update\" | string,\n permissions: Array<string>\n): Array<string> {\n const result = [];\n\n getModelFieldsWithOptions(instance).forEach(({ key, options }) => {\n let required = options.required;\n\n if (\n (mode === \"create\" || mode === \"update\") &&\n options[mode] &&\n options[mode].constructor\n ) {\n required = (options[mode] as IFieldOptions).required;\n\n if (\n required &&\n permissions &&\n (options[mode] as IFieldOptions).permissions\n ) {\n required = (options[mode] as IFieldOptions).permissions.some((op) =>\n permissions.some((p) => p === op)\n );\n }\n }\n\n if (required && (instance[key] === null || instance[key] === undefined || instance[key] === '')) result.push(key);\n });\n\n return result;\n}\n\nexport function castModel<T>(\n instance: T,\n mode: \"create\" | \"update\" | string,\n permissions: Array<string>\n): void {\n if (!isModel(instance)) return;\n\n const fieldsWithOptions = getModelFieldsWithOptions(instance);\n\n Object.keys(instance)\n .filter((key) => key !== \"id\")\n .forEach((key) => {\n const fieldWidthOptions = fieldsWithOptions.find((f) => f.key === key);\n\n if (!fieldWidthOptions) {\n delete instance[key];\n return;\n }\n\n if (\n (mode === \"create\" || mode === \"update\") &&\n (!fieldWidthOptions.options[mode] ||\n (permissions &&\n (fieldWidthOptions.options[mode] as IFieldOptions).permissions &&\n !(fieldWidthOptions.options[\n mode\n ] as IFieldOptions).permissions.some((op) =>\n permissions.some((p) => op === p)\n )))\n ) {\n delete instance[key];\n return;\n } else if (\n mode !== \"create\" &&\n mode !== \"update\" &&\n (!fieldWidthOptions.options.customs ||\n !fieldWidthOptions.options.customs.some((c) => c.mode === mode))\n ) {\n delete instance[key];\n return;\n }\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["symbols.SYMBOL_MODEL","symbols.SYMBOL_FIELD"],"mappings":";;;AAAa,MAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE;AAC7C,MAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB;;ICC5C,UA+BX;AA/BD,CAAA,UAAY,SAAS,EAAA;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACnB,CAAC,EA/BW,SAAS,KAAT,SAAS,GA+BpB,EAAA,CAAA,CAAA;;AC5BM,MAAM,KAAK,GAAG,eAAe;AAC9B,SAAU,cAAc,CAAC,OAAuB,EAAA;AACpD,IAAA,OAAO,UAAY,MAAW,EAAA;AAC5B,QAAA,OAAO,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC;QAExC,OAAO,CAAC,cAAc,CAACA,YAAoB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE9D,QAAA,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,YAAA;AACxB,YAAA,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;AAE3B,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;AACpC,gBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAG;oBAC/D,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;AAC1C,iBAAC,CAAC,CAAC;AACJ,aAAA;AAED,YAAA,OAAO,MAAM,CAAC;AAChB,SAAC,CAAC;AACJ,KAAC,CAAA;AACH;;AClBO,MAAM,KAAK,GAAG,eAAe;AAC9B,SAAU,cAAc,CAAC,OAAuB,EAAA;AAClD,IAAA,OAAO,CAAI,MAAS,EAAE,GAAW,KAAI;AAEjC,QAAA,OAAO,GAAG,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC;AAExC,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;AACjC,YAAA,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;AACvC,SAAA;QAED,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,KAAK,UAAU,EAAE;AACrC,YAAA,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC;AACrC,SAAA;AAAM,aAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACtB,YAAA,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;AACjC,SAAA;QAED,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAChC,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AAEnB,YAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;AAChC,gBAAA,GAAG,EAAE,YAAA;AACD,oBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE;AACtD,wBAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;AACxB,qBAAA;AACD,oBAAA,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;iBAC1B;gBACA,GAAG,EAAE,UAAU,CAAM,EAAA;AACjB,oBAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,IAAI,CAAC;AACnD,wBAAA,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;0BAC1D,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;iBAC1D;AACD,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,YAAY,EAAE,IAAI;AACrB,aAAA,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;AACrC,gBAAA,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;AAC3C,aAAA;YAED,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAClD,SAAA;AAED,QAAA,OAAO,CAAC,cAAc,CAACC,YAAoB,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AACvE,KAAC,CAAA;AACL;;AClDM,SAAU,iBAAiB,CAAI,IAAO,EAAA;AAC1C,IAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAAE,QAAA,OAAO,EAAE,CAAC;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACvC,CAAC;AAEe,SAAA,oBAAoB,CAClC,QAAW,EACX,QAAgB,EAAA;IAEhB,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAEK,SAAU,yBAAyB,CACvC,QAAW,EAAA;IAEX,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAErD,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;QACvB,OAAO;AACL,YAAA,GAAG,EAAE,IAAI;AACT,YAAA,OAAO,EAAE,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC;SAC9C,CAAC;AACJ,KAAC,CAAC,CAAC;AACL,CAAC;AAEK,SAAU,eAAe,CAAC,IAAS,EAAA;IACvC,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAEK,SAAU,OAAO,CAAI,QAAW,EAAA;AACpC,IAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW;AAAE,QAAA,OAAO,KAAK,CAAC;IACrD,OAAO,OAAO,CAAC,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC;AACjE,CAAC;SAEe,gBAAgB,CAC9B,QAAW,EACX,IAAkC,EAClC,WAA0B,EAAA;IAE1B,MAAM,MAAM,GAAG,EAAE,CAAC;AAElB,IAAA,yBAAyB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAI;AAC/D,QAAA,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEhC,IACE,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ;YACvC,OAAO,CAAC,IAAI,CAAC;AACb,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EACzB;AACA,YAAA,QAAQ,GAAI,OAAO,CAAC,IAAI,CAAmB,CAAC,QAAQ,CAAC;AAErD,YAAA,IACE,QAAQ;gBACR,WAAW;AACV,gBAAA,OAAO,CAAC,IAAI,CAAmB,CAAC,WAAW,EAC5C;AACA,gBAAA,QAAQ,GAAI,OAAO,CAAC,IAAI,CAAmB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,KAC9D,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAClC,CAAC;AACH,aAAA;AACF,SAAA;QAED,IAAI,QAAQ,KAAK,QAAQ,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpH,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;SAEe,SAAS,CACvB,QAAW,EACX,IAAkC,EAClC,WAA0B,EAAA;AAE1B,IAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,OAAO;AAE/B,IAAA,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;AAE9D,IAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;SAClB,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,IAAI,CAAC;AAC7B,SAAA,OAAO,CAAC,CAAC,GAAG,KAAI;AACf,QAAA,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAEvE,IAAI,CAAC,iBAAiB,EAAE;AACtB,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO;AACR,SAAA;QAED,IACE,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ;AACvC,aAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC;AAC/B,iBAAC,WAAW;AACT,oBAAA,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAmB,CAAC,WAAW;AAC9D,oBAAA,CAAE,iBAAiB,CAAC,OAAO,CACzB,IAAI,CACa,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE,KACtC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAClC,CAAC,CAAC,EACP;AACA,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO;AACR,SAAA;aAAM,IACL,IAAI,KAAK,QAAQ;AACjB,YAAA,IAAI,KAAK,QAAQ;AACjB,aAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO;gBACjC,CAAC,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,EAClE;AACA,YAAA,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO;AACR,SAAA;AACH,KAAC,CAAC,CAAC;AACP;;ACjHA;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,25 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smartsoft001/models",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"fesm2015": "fesm2015/smartsoft001-models.
|
|
3
|
+
"version": "1.0.778",
|
|
4
|
+
"module": "fesm2015/smartsoft001-models.mjs",
|
|
5
|
+
"es2020": "fesm2020/smartsoft001-models.mjs",
|
|
6
|
+
"esm2020": "esm2020/smartsoft001-models.mjs",
|
|
7
|
+
"fesm2020": "fesm2020/smartsoft001-models.mjs",
|
|
8
|
+
"fesm2015": "fesm2015/smartsoft001-models.mjs",
|
|
9
9
|
"typings": "smartsoft001-models.d.ts",
|
|
10
|
-
"
|
|
10
|
+
"exports": {
|
|
11
|
+
"./package.json": {
|
|
12
|
+
"default": "./package.json"
|
|
13
|
+
},
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./smartsoft001-models.d.ts",
|
|
16
|
+
"esm2020": "./esm2020/smartsoft001-models.mjs",
|
|
17
|
+
"es2020": "./fesm2020/smartsoft001-models.mjs",
|
|
18
|
+
"es2015": "./fesm2015/smartsoft001-models.mjs",
|
|
19
|
+
"node": "./fesm2015/smartsoft001-models.mjs",
|
|
20
|
+
"default": "./fesm2020/smartsoft001-models.mjs"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
11
23
|
"sideEffects": false,
|
|
12
24
|
"dependencies": {
|
|
13
|
-
"tslib": "^2.
|
|
25
|
+
"tslib": "^2.3.0",
|
|
14
26
|
"reflect-metadata": "0.1.13",
|
|
15
|
-
"@smartsoft001/utils": "1.0.
|
|
27
|
+
"@smartsoft001/utils": "1.0.813",
|
|
28
|
+
"@angular/common": "13.2.7",
|
|
29
|
+
"@angular/core": "13.2.7",
|
|
16
30
|
"lodash": "^4.17.20",
|
|
17
31
|
"guid-typescript": "1.0.9",
|
|
18
32
|
"flatted": "^3.2.4",
|
|
19
33
|
"md5": "2.3.0",
|
|
20
|
-
"rxjs": "
|
|
21
|
-
"@angular/
|
|
22
|
-
"@angular/platform-browser-dynamic": "12.2.7"
|
|
34
|
+
"rxjs": "^7.0.0",
|
|
35
|
+
"@angular/platform-browser-dynamic": "13.2.7"
|
|
23
36
|
},
|
|
24
37
|
"peerDependencies": {}
|
|
25
38
|
}
|
package/smartsoft001-models.d.ts
CHANGED
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('reflect-metadata'), require('@smartsoft001/utils')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define('@smartsoft001/models', ['exports', 'reflect-metadata', '@smartsoft001/utils'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.smartsoft001 = global.smartsoft001 || {}, global.smartsoft001.models = {}), null, global.utils));
|
|
5
|
-
})(this, (function (exports, reflectMetadata, utils) { 'use strict';
|
|
6
|
-
|
|
7
|
-
var SYMBOL_MODEL = Symbol.for('smartsoft:model');
|
|
8
|
-
var SYMBOL_FIELD = Symbol.for('smartsoft:field');
|
|
9
|
-
|
|
10
|
-
exports.FieldType = void 0;
|
|
11
|
-
(function (FieldType) {
|
|
12
|
-
FieldType["address"] = "address";
|
|
13
|
-
FieldType["currency"] = "currency";
|
|
14
|
-
FieldType["date"] = "date";
|
|
15
|
-
FieldType["dateWithEdit"] = "dateWithEdit";
|
|
16
|
-
FieldType["email"] = "email";
|
|
17
|
-
FieldType["enum"] = "enum";
|
|
18
|
-
FieldType["file"] = "file";
|
|
19
|
-
FieldType["flag"] = "flag";
|
|
20
|
-
FieldType["int"] = "int";
|
|
21
|
-
FieldType["nip"] = "nip";
|
|
22
|
-
FieldType["object"] = "object";
|
|
23
|
-
FieldType["array"] = "array";
|
|
24
|
-
FieldType["password"] = "password";
|
|
25
|
-
FieldType["radio"] = "radio";
|
|
26
|
-
FieldType["text"] = "text";
|
|
27
|
-
FieldType["strings"] = "strings";
|
|
28
|
-
FieldType["ints"] = "ints";
|
|
29
|
-
FieldType["longText"] = "longText";
|
|
30
|
-
FieldType["color"] = "color";
|
|
31
|
-
FieldType["logo"] = "logo";
|
|
32
|
-
FieldType["check"] = "check";
|
|
33
|
-
FieldType["phoneNumber"] = "phoneNumber";
|
|
34
|
-
FieldType["phoneNumberPl"] = "phoneNumberPl";
|
|
35
|
-
FieldType["pesel"] = "pesel";
|
|
36
|
-
FieldType["pdf"] = "pdf";
|
|
37
|
-
FieldType["video"] = "video";
|
|
38
|
-
FieldType["attachment"] = "attachment";
|
|
39
|
-
FieldType["dateRange"] = "dateRange";
|
|
40
|
-
FieldType["image"] = "image";
|
|
41
|
-
FieldType["float"] = "float";
|
|
42
|
-
})(exports.FieldType || (exports.FieldType = {}));
|
|
43
|
-
|
|
44
|
-
var Model = ModelDecorator;
|
|
45
|
-
function ModelDecorator(options) {
|
|
46
|
-
return function (target) {
|
|
47
|
-
options = options ? Object.assign({}, options) : {};
|
|
48
|
-
Reflect.defineMetadata(SYMBOL_MODEL, options, target);
|
|
49
|
-
target.prototype.toJSON = function () {
|
|
50
|
-
var _this = this;
|
|
51
|
-
var result = Object.assign({}, this);
|
|
52
|
-
if (this.constructor['__properties']) {
|
|
53
|
-
Object.keys(this.constructor['__properties']).forEach(function (protoKey) {
|
|
54
|
-
result[protoKey] = _this['_' + protoKey];
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
return result;
|
|
58
|
-
};
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
var Field = FieldDecorator;
|
|
63
|
-
function FieldDecorator(options) {
|
|
64
|
-
return function (target, key) {
|
|
65
|
-
options = options ? Object.assign({}, options) : {};
|
|
66
|
-
if (!target.constructor['__fields']) {
|
|
67
|
-
target.constructor['__fields'] = {};
|
|
68
|
-
}
|
|
69
|
-
target.constructor['__fields'][key] = true;
|
|
70
|
-
if (!options.type && key === 'password') {
|
|
71
|
-
options.type = exports.FieldType.password;
|
|
72
|
-
}
|
|
73
|
-
else if (!options.type) {
|
|
74
|
-
options.type = exports.FieldType.text;
|
|
75
|
-
}
|
|
76
|
-
if (options.classType) {
|
|
77
|
-
target['_' + key] = target[key];
|
|
78
|
-
delete target[key];
|
|
79
|
-
Object.defineProperty(target, key, {
|
|
80
|
-
get: function () {
|
|
81
|
-
if (!this['_' + key] && options.type === exports.FieldType.array) {
|
|
82
|
-
this['_' + key] = [];
|
|
83
|
-
}
|
|
84
|
-
return this['_' + key];
|
|
85
|
-
},
|
|
86
|
-
set: function (v) {
|
|
87
|
-
this['_' + key] = options.type === exports.FieldType.array && v ?
|
|
88
|
-
v.map(function (i) { return utils.ObjectService.createByType(i, options.classType); })
|
|
89
|
-
: utils.ObjectService.createByType(v, options.classType);
|
|
90
|
-
},
|
|
91
|
-
enumerable: true,
|
|
92
|
-
configurable: true
|
|
93
|
-
});
|
|
94
|
-
if (!target.constructor['__properties']) {
|
|
95
|
-
target.constructor['__properties'] = {};
|
|
96
|
-
}
|
|
97
|
-
target.constructor['__properties'][key] = true;
|
|
98
|
-
}
|
|
99
|
-
Reflect.defineMetadata(SYMBOL_FIELD, options, target, key);
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function getModelFieldKeys(type) {
|
|
104
|
-
if (!type["__fields"])
|
|
105
|
-
return [];
|
|
106
|
-
return Object.keys(type["__fields"]);
|
|
107
|
-
}
|
|
108
|
-
function getModelFieldOptions(instance, fieldKey) {
|
|
109
|
-
return Reflect.getMetadata(SYMBOL_FIELD, instance, fieldKey);
|
|
110
|
-
}
|
|
111
|
-
function getModelFieldsWithOptions(instance) {
|
|
112
|
-
var keys = getModelFieldKeys(instance.constructor);
|
|
113
|
-
return keys.map(function (item) {
|
|
114
|
-
return {
|
|
115
|
-
key: item,
|
|
116
|
-
options: getModelFieldOptions(instance, item),
|
|
117
|
-
};
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
function getModelOptions(type) {
|
|
121
|
-
return Reflect.getMetadata(SYMBOL_MODEL, type);
|
|
122
|
-
}
|
|
123
|
-
function isModel(instance) {
|
|
124
|
-
if (!instance || !instance.constructor)
|
|
125
|
-
return false;
|
|
126
|
-
return Reflect.hasMetadata(SYMBOL_MODEL, instance.constructor);
|
|
127
|
-
}
|
|
128
|
-
function getInvalidFields(instance, mode, permissions) {
|
|
129
|
-
var result = [];
|
|
130
|
-
getModelFieldsWithOptions(instance).forEach(function (_a) {
|
|
131
|
-
var key = _a.key, options = _a.options;
|
|
132
|
-
var required = options.required;
|
|
133
|
-
if ((mode === "create" || mode === "update") &&
|
|
134
|
-
options[mode] &&
|
|
135
|
-
options[mode].constructor) {
|
|
136
|
-
required = options[mode].required;
|
|
137
|
-
if (required &&
|
|
138
|
-
permissions &&
|
|
139
|
-
options[mode].permissions) {
|
|
140
|
-
required = options[mode].permissions.some(function (op) { return permissions.some(function (p) { return p === op; }); });
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
if (required && (instance[key] === null || instance[key] === undefined || instance[key] === ''))
|
|
144
|
-
result.push(key);
|
|
145
|
-
});
|
|
146
|
-
return result;
|
|
147
|
-
}
|
|
148
|
-
function castModel(instance, mode, permissions) {
|
|
149
|
-
if (!isModel(instance))
|
|
150
|
-
return;
|
|
151
|
-
var fieldsWithOptions = getModelFieldsWithOptions(instance);
|
|
152
|
-
Object.keys(instance)
|
|
153
|
-
.filter(function (key) { return key !== "id"; })
|
|
154
|
-
.forEach(function (key) {
|
|
155
|
-
var fieldWidthOptions = fieldsWithOptions.find(function (f) { return f.key === key; });
|
|
156
|
-
if (!fieldWidthOptions) {
|
|
157
|
-
delete instance[key];
|
|
158
|
-
return;
|
|
159
|
-
}
|
|
160
|
-
if ((mode === "create" || mode === "update") &&
|
|
161
|
-
(!fieldWidthOptions.options[mode] ||
|
|
162
|
-
(permissions &&
|
|
163
|
-
fieldWidthOptions.options[mode].permissions &&
|
|
164
|
-
!fieldWidthOptions.options[mode].permissions.some(function (op) { return permissions.some(function (p) { return op === p; }); })))) {
|
|
165
|
-
delete instance[key];
|
|
166
|
-
return;
|
|
167
|
-
}
|
|
168
|
-
else if (mode !== "create" &&
|
|
169
|
-
mode !== "update" &&
|
|
170
|
-
(!fieldWidthOptions.options.customs ||
|
|
171
|
-
!fieldWidthOptions.options.customs.some(function (c) { return c.mode === mode; }))) {
|
|
172
|
-
delete instance[key];
|
|
173
|
-
return;
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Generated bundle index. Do not edit.
|
|
180
|
-
*/
|
|
181
|
-
|
|
182
|
-
exports.Field = Field;
|
|
183
|
-
exports.FieldDecorator = FieldDecorator;
|
|
184
|
-
exports.Model = Model;
|
|
185
|
-
exports.ModelDecorator = ModelDecorator;
|
|
186
|
-
exports.SYMBOL_FIELD = SYMBOL_FIELD;
|
|
187
|
-
exports.SYMBOL_MODEL = SYMBOL_MODEL;
|
|
188
|
-
exports.castModel = castModel;
|
|
189
|
-
exports.getInvalidFields = getInvalidFields;
|
|
190
|
-
exports.getModelFieldKeys = getModelFieldKeys;
|
|
191
|
-
exports.getModelFieldOptions = getModelFieldOptions;
|
|
192
|
-
exports.getModelFieldsWithOptions = getModelFieldsWithOptions;
|
|
193
|
-
exports.getModelOptions = getModelOptions;
|
|
194
|
-
exports.isModel = isModel;
|
|
195
|
-
|
|
196
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
197
|
-
|
|
198
|
-
}));
|
|
199
|
-
//# sourceMappingURL=smartsoft001-models.umd.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"smartsoft001-models.umd.js","sources":["../../../../../libs/shared/models/src/lib/symbols.ts","../../../../../libs/shared/models/src/lib/interfaces.ts","../../../../../libs/shared/models/src/lib/decorators/model/model.decorator.ts","../../../../../libs/shared/models/src/lib/decorators/field/field.decorator.ts","../../../../../libs/shared/models/src/lib/utils.ts","../../../../../libs/shared/models/src/smartsoft001-models.ts"],"sourcesContent":["export const SYMBOL_MODEL = Symbol.for('smartsoft:model');\nexport const SYMBOL_FIELD = Symbol.for('smartsoft:field');\n","import {Observable} from \"rxjs\";\n\nexport enum FieldType {\n address = \"address\",\n currency = \"currency\",\n date = \"date\",\n dateWithEdit = \"dateWithEdit\",\n email = \"email\",\n enum = \"enum\",\n file = \"file\",\n flag = \"flag\",\n int = \"int\",\n nip = \"nip\",\n object = \"object\",\n array = \"array\",\n password = \"password\",\n radio = \"radio\",\n text = \"text\",\n strings = \"strings\",\n ints = \"ints\",\n longText = \"longText\",\n color = \"color\",\n logo = \"logo\",\n check = \"check\",\n phoneNumber = \"phoneNumber\",\n phoneNumberPl = \"phoneNumberPl\",\n pesel = \"pesel\",\n pdf = \"pdf\",\n video = \"video\",\n attachment = \"attachment\",\n dateRange = \"dateRange\",\n image = \"image\",\n float = \"float\"\n}\n\nexport interface ISpecification {\n criteria: any;\n}\n\nexport interface IModelFilter {\n label?: string;\n fieldType?: FieldType;\n key: string;\n type: '=' | '!=' | '>=' | '<=' | '<' | '>' | '~=';\n possibilities$?: Observable<{ id: any, text: string }[]>;\n}\n\nexport interface IModelStep {\n number: number;\n name: string;\n}\n\nexport interface IModelMetadata {\n titleKey?: string;\n permissions?: Array<string>;\n filters?: Array<IModelFilter>;\n}\n\nexport interface IFieldMetadata extends IFieldModifyMetadata {\n type?: FieldType;\n classType?: any;\n possibilities?: Array<any> | any;\n}\n\nexport interface IFieldModifyMetadata {\n required?: boolean;\n focused?: boolean;\n confirm?: boolean;\n permissions?: Array<string>;\n unique?: boolean | IFieldUniqueMetadata;\n defaltValue?: () => any;\n enabled?: ISpecification;\n hide?: boolean;\n /**\n * @desc - Model step configuration\n */\n step?: IModelStep;\n}\n\nexport interface IFieldEditMetadata extends IFieldModifyMetadata {\n multi?: boolean;\n}\n\nexport interface IFieldListMetadata {\n order?: number;\n filter?: boolean;\n permissions?: Array<string>;\n /**\n * Configuration for dynamic list table data\n * @param {string} dynamic.headerKey - column header object key\n * @param {string} dynamic.rowKey - column row value object key\n */\n dynamic?: { headerKey: string, rowKey: string }\n}\n\nexport interface IFieldDetailsMetadata {\n order?: number;\n permissions?: Array<string>;\n enabled?: ISpecification;\n}\n\nexport interface IModelOptions {\n titleKey?: string;\n filters?: Array<IModelFilter>;\n create?: IModelModeOptions;\n update?: IModelModeOptions;\n list?: IModelModeOptions;\n details?: IModelModeOptions;\n remove?: IModelModeOptions;\n customs?: Array<IModelModeOptionsCustom>;\n /**\n * @desc - Allow export field data\n */\n export?: boolean;\n /**\n * @desc - Allow import field data\n */\n import?: boolean;\n}\n\nexport interface IModelModeOptions {\n permissions?: Array<string>;\n}\n\nexport interface IModelModeOptionsCustom extends IModelModeOptions {\n mode: string;\n}\n\nexport interface IFieldOptions extends IFieldMetadata {\n create?: IFieldModifyMetadata | boolean;\n update?: IFieldEditMetadata | boolean;\n list?: IFieldListMetadata | boolean;\n details?: IFieldDetailsMetadata | boolean;\n customs?: Array<IModelMetadataCustom>;\n search?: boolean;\n info?: string;\n}\n\nexport interface IModelMetadataCustom extends IModelMetadata {\n mode: string\n}\n\nexport interface IFieldUniqueMetadata {\n withFields?: Array<string>;\n}\n\nexport interface IFieldCustomMetadata extends IFieldModifyMetadata, IFieldListMetadata {\n mode: string;\n}\n","import 'reflect-metadata';\n\nimport * as symbols from \"../../symbols\";\nimport {IModelOptions} from \"../../interfaces\";\n\nexport const Model = ModelDecorator;\nexport function ModelDecorator(options?: IModelOptions) {\n return function<T>(target: any) {\n options = options ? { ...options } : {};\n\n Reflect.defineMetadata(symbols.SYMBOL_MODEL, options, target);\n\n target.prototype.toJSON = function () {\n const result = { ...this };\n\n if (this.constructor['__properties']) {\n Object.keys(this.constructor['__properties']).forEach(protoKey => {\n result[protoKey] = this['_' + protoKey];\n });\n }\n\n return result;\n };\n }\n}\n","import 'reflect-metadata';\n\nimport * as symbols from \"../../symbols\";\nimport {FieldType, IFieldOptions} from \"../../interfaces\";\nimport {ObjectService} from \"@smartsoft001/utils\";\n\nexport const Field = FieldDecorator;\nexport function FieldDecorator(options?: IFieldOptions) {\n return <T>(target: T, key: string) => {\n\n options = options ? { ...options } : {};\n\n if (!target.constructor['__fields']) {\n target.constructor['__fields'] = {};\n }\n\n target.constructor['__fields'][key] = true;\n\n if (!options.type && key === 'password') {\n options.type = FieldType.password;\n } else if (!options.type) {\n options.type = FieldType.text;\n }\n\n if (options.classType) {\n target['_' + key] = target[key];\n delete target[key];\n\n Object.defineProperty(target, key, {\n get: function () {\n if (!this['_' + key] && options.type === FieldType.array) {\n this['_' + key] = [];\n }\n return this['_' + key];\n },\n set: function (v: any) {\n this['_' + key] = options.type === FieldType.array && v ?\n v.map(i => ObjectService.createByType(i, options.classType))\n : ObjectService.createByType(v, options.classType);\n },\n enumerable: true,\n configurable: true\n });\n\n if (!target.constructor['__properties']) {\n target.constructor['__properties'] = {};\n }\n\n target.constructor['__properties'][key] = true;\n }\n\n Reflect.defineMetadata(symbols.SYMBOL_FIELD, options, target, key);\n }\n}\n","import { IFieldOptions, IModelMetadata, IModelOptions } from \"./interfaces\";\nimport { SYMBOL_FIELD, SYMBOL_MODEL } from \"./symbols\";\n\nexport function getModelFieldKeys<T>(type: T): Array<string> {\n if (!type[\"__fields\"]) return [];\n return Object.keys(type[\"__fields\"]);\n}\n\nexport function getModelFieldOptions<T>(\n instance: T,\n fieldKey: string\n): IFieldOptions {\n return Reflect.getMetadata(SYMBOL_FIELD, instance, fieldKey);\n}\n\nexport function getModelFieldsWithOptions<T>(\n instance: T\n): Array<{ key: string; options: IFieldOptions }> {\n const keys = getModelFieldKeys(instance.constructor);\n\n return keys.map((item) => {\n return {\n key: item,\n options: getModelFieldOptions(instance, item),\n };\n });\n}\n\nexport function getModelOptions(type: any): IModelOptions {\n return Reflect.getMetadata(SYMBOL_MODEL, type);\n}\n\nexport function isModel<T>(instance: T): boolean {\n if (!instance || !instance.constructor) return false;\n return Reflect.hasMetadata(SYMBOL_MODEL, instance.constructor);\n}\n\nexport function getInvalidFields<T>(\n instance: T,\n mode: \"create\" | \"update\" | string,\n permissions: Array<string>\n): Array<string> {\n const result = [];\n\n getModelFieldsWithOptions(instance).forEach(({ key, options }) => {\n let required = options.required;\n\n if (\n (mode === \"create\" || mode === \"update\") &&\n options[mode] &&\n options[mode].constructor\n ) {\n required = (options[mode] as IFieldOptions).required;\n\n if (\n required &&\n permissions &&\n (options[mode] as IFieldOptions).permissions\n ) {\n required = (options[mode] as IFieldOptions).permissions.some((op) =>\n permissions.some((p) => p === op)\n );\n }\n }\n\n if (required && (instance[key] === null || instance[key] === undefined || instance[key] === '')) result.push(key);\n });\n\n return result;\n}\n\nexport function castModel<T>(\n instance: T,\n mode: \"create\" | \"update\" | string,\n permissions: Array<string>\n): void {\n if (!isModel(instance)) return;\n\n const fieldsWithOptions = getModelFieldsWithOptions(instance);\n\n Object.keys(instance)\n .filter((key) => key !== \"id\")\n .forEach((key) => {\n const fieldWidthOptions = fieldsWithOptions.find((f) => f.key === key);\n\n if (!fieldWidthOptions) {\n delete instance[key];\n return;\n }\n\n if (\n (mode === \"create\" || mode === \"update\") &&\n (!fieldWidthOptions.options[mode] ||\n (permissions &&\n (fieldWidthOptions.options[mode] as IFieldOptions).permissions &&\n !(fieldWidthOptions.options[\n mode\n ] as IFieldOptions).permissions.some((op) =>\n permissions.some((p) => op === p)\n )))\n ) {\n delete instance[key];\n return;\n } else if (\n mode !== \"create\" &&\n mode !== \"update\" &&\n (!fieldWidthOptions.options.customs ||\n !fieldWidthOptions.options.customs.some((c) => c.mode === mode))\n ) {\n delete instance[key];\n return;\n }\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["FieldType","symbols.SYMBOL_MODEL","ObjectService","symbols.SYMBOL_FIELD"],"mappings":"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"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
|
-
import * as symbols from "../../symbols";
|
|
3
|
-
import { FieldType } from "../../interfaces";
|
|
4
|
-
import { ObjectService } from "@smartsoft001/utils";
|
|
5
|
-
export const Field = FieldDecorator;
|
|
6
|
-
export function FieldDecorator(options) {
|
|
7
|
-
return (target, key) => {
|
|
8
|
-
options = options ? Object.assign({}, options) : {};
|
|
9
|
-
if (!target.constructor['__fields']) {
|
|
10
|
-
target.constructor['__fields'] = {};
|
|
11
|
-
}
|
|
12
|
-
target.constructor['__fields'][key] = true;
|
|
13
|
-
if (!options.type && key === 'password') {
|
|
14
|
-
options.type = FieldType.password;
|
|
15
|
-
}
|
|
16
|
-
else if (!options.type) {
|
|
17
|
-
options.type = FieldType.text;
|
|
18
|
-
}
|
|
19
|
-
if (options.classType) {
|
|
20
|
-
target['_' + key] = target[key];
|
|
21
|
-
delete target[key];
|
|
22
|
-
Object.defineProperty(target, key, {
|
|
23
|
-
get: function () {
|
|
24
|
-
if (!this['_' + key] && options.type === FieldType.array) {
|
|
25
|
-
this['_' + key] = [];
|
|
26
|
-
}
|
|
27
|
-
return this['_' + key];
|
|
28
|
-
},
|
|
29
|
-
set: function (v) {
|
|
30
|
-
this['_' + key] = options.type === FieldType.array && v ?
|
|
31
|
-
v.map(i => ObjectService.createByType(i, options.classType))
|
|
32
|
-
: ObjectService.createByType(v, options.classType);
|
|
33
|
-
},
|
|
34
|
-
enumerable: true,
|
|
35
|
-
configurable: true
|
|
36
|
-
});
|
|
37
|
-
if (!target.constructor['__properties']) {
|
|
38
|
-
target.constructor['__properties'] = {};
|
|
39
|
-
}
|
|
40
|
-
target.constructor['__properties'][key] = true;
|
|
41
|
-
}
|
|
42
|
-
Reflect.defineMetadata(symbols.SYMBOL_FIELD, options, target, key);
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQvbW9kZWxzL3NyYy9saWIvZGVjb3JhdG9ycy9maWVsZC9maWVsZC5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFnQixNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDO0FBQ3BDLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBdUI7SUFDbEQsT0FBTyxDQUFJLE1BQVMsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUVqQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsbUJBQU0sT0FBTyxFQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDakMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDdkM7UUFFRCxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUUzQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxHQUFHLEtBQUssVUFBVSxFQUFFO1lBQ3JDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztTQUNyQzthQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ3RCLE9BQU8sQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztTQUNqQztRQUVELElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUNuQixNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVuQixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ2hDLEdBQUcsRUFBRTtvQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLEVBQUU7d0JBQ3RELElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO3FCQUN4QjtvQkFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7Z0JBQ0EsR0FBRyxFQUFFLFVBQVUsQ0FBTTtvQkFDakIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7d0JBQ3JELENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7d0JBQzVELENBQUMsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzNELENBQUM7Z0JBQ0QsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFlBQVksRUFBRSxJQUFJO2FBQ3JCLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFO2dCQUNyQyxNQUFNLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQzthQUMzQztZQUVELE1BQU0sQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkUsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAncmVmbGVjdC1tZXRhZGF0YSc7XG5cbmltcG9ydCAqIGFzIHN5bWJvbHMgZnJvbSBcIi4uLy4uL3N5bWJvbHNcIjtcbmltcG9ydCB7RmllbGRUeXBlLCBJRmllbGRPcHRpb25zfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHtPYmplY3RTZXJ2aWNlfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS91dGlsc1wiO1xuXG5leHBvcnQgY29uc3QgRmllbGQgPSBGaWVsZERlY29yYXRvcjtcbmV4cG9ydCBmdW5jdGlvbiBGaWVsZERlY29yYXRvcihvcHRpb25zPzogSUZpZWxkT3B0aW9ucykge1xuICAgIHJldHVybiA8VD4odGFyZ2V0OiBULCBrZXk6IHN0cmluZykgPT4ge1xuXG4gICAgICAgIG9wdGlvbnMgPSBvcHRpb25zID8geyAuLi5vcHRpb25zIH0gOiB7fTtcblxuICAgICAgICBpZiAoIXRhcmdldC5jb25zdHJ1Y3RvclsnX19maWVsZHMnXSkge1xuICAgICAgICAgICAgdGFyZ2V0LmNvbnN0cnVjdG9yWydfX2ZpZWxkcyddID0ge307XG4gICAgICAgIH1cblxuICAgICAgICB0YXJnZXQuY29uc3RydWN0b3JbJ19fZmllbGRzJ11ba2V5XSA9IHRydWU7XG5cbiAgICAgICAgaWYgKCFvcHRpb25zLnR5cGUgJiYga2V5ID09PSAncGFzc3dvcmQnKSB7XG4gICAgICAgICAgICBvcHRpb25zLnR5cGUgPSBGaWVsZFR5cGUucGFzc3dvcmQ7XG4gICAgICAgIH0gZWxzZSBpZiAoIW9wdGlvbnMudHlwZSkge1xuICAgICAgICAgICAgb3B0aW9ucy50eXBlID0gRmllbGRUeXBlLnRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob3B0aW9ucy5jbGFzc1R5cGUpIHtcbiAgICAgICAgICAgIHRhcmdldFsnXycgKyBrZXldID0gdGFyZ2V0W2tleV07XG4gICAgICAgICAgICBkZWxldGUgdGFyZ2V0W2tleV07XG5cbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwge1xuICAgICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzWydfJyArIGtleV0gJiYgb3B0aW9ucy50eXBlID09PSBGaWVsZFR5cGUuYXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgdGhpc1snXycgKyBrZXldID0gW107XG4gICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzWydfJyArIGtleV07XG4gICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldDogZnVuY3Rpb24gKHY6IGFueSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzWydfJyArIGtleV0gPSBvcHRpb25zLnR5cGUgPT09IEZpZWxkVHlwZS5hcnJheSAmJiB2ID9cbiAgICAgICAgICAgICAgICAgICAgICAgIHYubWFwKGkgPT4gT2JqZWN0U2VydmljZS5jcmVhdGVCeVR5cGUoaSwgb3B0aW9ucy5jbGFzc1R5cGUpKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBPYmplY3RTZXJ2aWNlLmNyZWF0ZUJ5VHlwZSh2LCBvcHRpb25zLmNsYXNzVHlwZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICghdGFyZ2V0LmNvbnN0cnVjdG9yWydfX3Byb3BlcnRpZXMnXSkge1xuICAgICAgICAgICAgICAgIHRhcmdldC5jb25zdHJ1Y3RvclsnX19wcm9wZXJ0aWVzJ10gPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGFyZ2V0LmNvbnN0cnVjdG9yWydfX3Byb3BlcnRpZXMnXVtrZXldID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoc3ltYm9scy5TWU1CT0xfRklFTEQsIG9wdGlvbnMsIHRhcmdldCwga2V5KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
|
-
import * as symbols from "../../symbols";
|
|
3
|
-
export const Model = ModelDecorator;
|
|
4
|
-
export function ModelDecorator(options) {
|
|
5
|
-
return function (target) {
|
|
6
|
-
options = options ? Object.assign({}, options) : {};
|
|
7
|
-
Reflect.defineMetadata(symbols.SYMBOL_MODEL, options, target);
|
|
8
|
-
target.prototype.toJSON = function () {
|
|
9
|
-
const result = Object.assign({}, this);
|
|
10
|
-
if (this.constructor['__properties']) {
|
|
11
|
-
Object.keys(this.constructor['__properties']).forEach(protoKey => {
|
|
12
|
-
result[protoKey] = this['_' + protoKey];
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
return result;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9zaGFyZWQvbW9kZWxzL3NyYy9saWIvZGVjb3JhdG9ycy9tb2RlbC9tb2RlbC5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUd6QyxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsY0FBYyxDQUFDO0FBQ3BDLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBdUI7SUFDcEQsT0FBTyxVQUFZLE1BQVc7UUFDNUIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLG1CQUFNLE9BQU8sRUFBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXhDLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFOUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUc7WUFDeEIsTUFBTSxNQUFNLHFCQUFRLElBQUksQ0FBRSxDQUFDO1lBRTNCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUMvRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUMsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuXG5pbXBvcnQgKiBhcyBzeW1ib2xzIGZyb20gXCIuLi8uLi9zeW1ib2xzXCI7XG5pbXBvcnQge0lNb2RlbE9wdGlvbnN9IGZyb20gXCIuLi8uLi9pbnRlcmZhY2VzXCI7XG5cbmV4cG9ydCBjb25zdCBNb2RlbCA9IE1vZGVsRGVjb3JhdG9yO1xuZXhwb3J0IGZ1bmN0aW9uIE1vZGVsRGVjb3JhdG9yKG9wdGlvbnM/OiBJTW9kZWxPcHRpb25zKSB7XG4gIHJldHVybiBmdW5jdGlvbjxUPih0YXJnZXQ6IGFueSkge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zID8geyAuLi5vcHRpb25zIH0gOiB7fTtcblxuICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoc3ltYm9scy5TWU1CT0xfTU9ERUwsIG9wdGlvbnMsIHRhcmdldCk7XG5cbiAgICB0YXJnZXQucHJvdG90eXBlLnRvSlNPTiA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHsgLi4udGhpcyB9O1xuXG4gICAgICBpZiAodGhpcy5jb25zdHJ1Y3RvclsnX19wcm9wZXJ0aWVzJ10pIHtcbiAgICAgICAgT2JqZWN0LmtleXModGhpcy5jb25zdHJ1Y3RvclsnX19wcm9wZXJ0aWVzJ10pLmZvckVhY2gocHJvdG9LZXkgPT4ge1xuICAgICAgICAgIHJlc3VsdFtwcm90b0tleV0gPSB0aGlzWydfJyArIHByb3RvS2V5XTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"smartsoft001-models.js","sources":["../../../../../libs/shared/models/src/lib/symbols.ts","../../../../../libs/shared/models/src/lib/interfaces.ts","../../../../../libs/shared/models/src/lib/decorators/model/model.decorator.ts","../../../../../libs/shared/models/src/lib/decorators/field/field.decorator.ts","../../../../../libs/shared/models/src/lib/utils.ts","../../../../../libs/shared/models/src/smartsoft001-models.ts"],"sourcesContent":["export const SYMBOL_MODEL = Symbol.for('smartsoft:model');\nexport const SYMBOL_FIELD = Symbol.for('smartsoft:field');\n","import {Observable} from \"rxjs\";\n\nexport enum FieldType {\n address = \"address\",\n currency = \"currency\",\n date = \"date\",\n dateWithEdit = \"dateWithEdit\",\n email = \"email\",\n enum = \"enum\",\n file = \"file\",\n flag = \"flag\",\n int = \"int\",\n nip = \"nip\",\n object = \"object\",\n array = \"array\",\n password = \"password\",\n radio = \"radio\",\n text = \"text\",\n strings = \"strings\",\n ints = \"ints\",\n longText = \"longText\",\n color = \"color\",\n logo = \"logo\",\n check = \"check\",\n phoneNumber = \"phoneNumber\",\n phoneNumberPl = \"phoneNumberPl\",\n pesel = \"pesel\",\n pdf = \"pdf\",\n video = \"video\",\n attachment = \"attachment\",\n dateRange = \"dateRange\",\n image = \"image\",\n float = \"float\"\n}\n\nexport interface ISpecification {\n criteria: any;\n}\n\nexport interface IModelFilter {\n label?: string;\n fieldType?: FieldType;\n key: string;\n type: '=' | '!=' | '>=' | '<=' | '<' | '>' | '~=';\n possibilities$?: Observable<{ id: any, text: string }[]>;\n}\n\nexport interface IModelStep {\n number: number;\n name: string;\n}\n\nexport interface IModelMetadata {\n titleKey?: string;\n permissions?: Array<string>;\n filters?: Array<IModelFilter>;\n}\n\nexport interface IFieldMetadata extends IFieldModifyMetadata {\n type?: FieldType;\n classType?: any;\n possibilities?: Array<any> | any;\n}\n\nexport interface IFieldModifyMetadata {\n required?: boolean;\n focused?: boolean;\n confirm?: boolean;\n permissions?: Array<string>;\n unique?: boolean | IFieldUniqueMetadata;\n defaltValue?: () => any;\n enabled?: ISpecification;\n hide?: boolean;\n /**\n * @desc - Model step configuration\n */\n step?: IModelStep;\n}\n\nexport interface IFieldEditMetadata extends IFieldModifyMetadata {\n multi?: boolean;\n}\n\nexport interface IFieldListMetadata {\n order?: number;\n filter?: boolean;\n permissions?: Array<string>;\n /**\n * Configuration for dynamic list table data\n * @param {string} dynamic.headerKey - column header object key\n * @param {string} dynamic.rowKey - column row value object key\n */\n dynamic?: { headerKey: string, rowKey: string }\n}\n\nexport interface IFieldDetailsMetadata {\n order?: number;\n permissions?: Array<string>;\n enabled?: ISpecification;\n}\n\nexport interface IModelOptions {\n titleKey?: string;\n filters?: Array<IModelFilter>;\n create?: IModelModeOptions;\n update?: IModelModeOptions;\n list?: IModelModeOptions;\n details?: IModelModeOptions;\n remove?: IModelModeOptions;\n customs?: Array<IModelModeOptionsCustom>;\n /**\n * @desc - Allow export field data\n */\n export?: boolean;\n /**\n * @desc - Allow import field data\n */\n import?: boolean;\n}\n\nexport interface IModelModeOptions {\n permissions?: Array<string>;\n}\n\nexport interface IModelModeOptionsCustom extends IModelModeOptions {\n mode: string;\n}\n\nexport interface IFieldOptions extends IFieldMetadata {\n create?: IFieldModifyMetadata | boolean;\n update?: IFieldEditMetadata | boolean;\n list?: IFieldListMetadata | boolean;\n details?: IFieldDetailsMetadata | boolean;\n customs?: Array<IModelMetadataCustom>;\n search?: boolean;\n info?: string;\n}\n\nexport interface IModelMetadataCustom extends IModelMetadata {\n mode: string\n}\n\nexport interface IFieldUniqueMetadata {\n withFields?: Array<string>;\n}\n\nexport interface IFieldCustomMetadata extends IFieldModifyMetadata, IFieldListMetadata {\n mode: string;\n}\n","import 'reflect-metadata';\n\nimport * as symbols from \"../../symbols\";\nimport {IModelOptions} from \"../../interfaces\";\n\nexport const Model = ModelDecorator;\nexport function ModelDecorator(options?: IModelOptions) {\n return function<T>(target: any) {\n options = options ? { ...options } : {};\n\n Reflect.defineMetadata(symbols.SYMBOL_MODEL, options, target);\n\n target.prototype.toJSON = function () {\n const result = { ...this };\n\n if (this.constructor['__properties']) {\n Object.keys(this.constructor['__properties']).forEach(protoKey => {\n result[protoKey] = this['_' + protoKey];\n });\n }\n\n return result;\n };\n }\n}\n","import 'reflect-metadata';\n\nimport * as symbols from \"../../symbols\";\nimport {FieldType, IFieldOptions} from \"../../interfaces\";\nimport {ObjectService} from \"@smartsoft001/utils\";\n\nexport const Field = FieldDecorator;\nexport function FieldDecorator(options?: IFieldOptions) {\n return <T>(target: T, key: string) => {\n\n options = options ? { ...options } : {};\n\n if (!target.constructor['__fields']) {\n target.constructor['__fields'] = {};\n }\n\n target.constructor['__fields'][key] = true;\n\n if (!options.type && key === 'password') {\n options.type = FieldType.password;\n } else if (!options.type) {\n options.type = FieldType.text;\n }\n\n if (options.classType) {\n target['_' + key] = target[key];\n delete target[key];\n\n Object.defineProperty(target, key, {\n get: function () {\n if (!this['_' + key] && options.type === FieldType.array) {\n this['_' + key] = [];\n }\n return this['_' + key];\n },\n set: function (v: any) {\n this['_' + key] = options.type === FieldType.array && v ?\n v.map(i => ObjectService.createByType(i, options.classType))\n : ObjectService.createByType(v, options.classType);\n },\n enumerable: true,\n configurable: true\n });\n\n if (!target.constructor['__properties']) {\n target.constructor['__properties'] = {};\n }\n\n target.constructor['__properties'][key] = true;\n }\n\n Reflect.defineMetadata(symbols.SYMBOL_FIELD, options, target, key);\n }\n}\n","import { IFieldOptions, IModelMetadata, IModelOptions } from \"./interfaces\";\nimport { SYMBOL_FIELD, SYMBOL_MODEL } from \"./symbols\";\n\nexport function getModelFieldKeys<T>(type: T): Array<string> {\n if (!type[\"__fields\"]) return [];\n return Object.keys(type[\"__fields\"]);\n}\n\nexport function getModelFieldOptions<T>(\n instance: T,\n fieldKey: string\n): IFieldOptions {\n return Reflect.getMetadata(SYMBOL_FIELD, instance, fieldKey);\n}\n\nexport function getModelFieldsWithOptions<T>(\n instance: T\n): Array<{ key: string; options: IFieldOptions }> {\n const keys = getModelFieldKeys(instance.constructor);\n\n return keys.map((item) => {\n return {\n key: item,\n options: getModelFieldOptions(instance, item),\n };\n });\n}\n\nexport function getModelOptions(type: any): IModelOptions {\n return Reflect.getMetadata(SYMBOL_MODEL, type);\n}\n\nexport function isModel<T>(instance: T): boolean {\n if (!instance || !instance.constructor) return false;\n return Reflect.hasMetadata(SYMBOL_MODEL, instance.constructor);\n}\n\nexport function getInvalidFields<T>(\n instance: T,\n mode: \"create\" | \"update\" | string,\n permissions: Array<string>\n): Array<string> {\n const result = [];\n\n getModelFieldsWithOptions(instance).forEach(({ key, options }) => {\n let required = options.required;\n\n if (\n (mode === \"create\" || mode === \"update\") &&\n options[mode] &&\n options[mode].constructor\n ) {\n required = (options[mode] as IFieldOptions).required;\n\n if (\n required &&\n permissions &&\n (options[mode] as IFieldOptions).permissions\n ) {\n required = (options[mode] as IFieldOptions).permissions.some((op) =>\n permissions.some((p) => p === op)\n );\n }\n }\n\n if (required && (instance[key] === null || instance[key] === undefined || instance[key] === '')) result.push(key);\n });\n\n return result;\n}\n\nexport function castModel<T>(\n instance: T,\n mode: \"create\" | \"update\" | string,\n permissions: Array<string>\n): void {\n if (!isModel(instance)) return;\n\n const fieldsWithOptions = getModelFieldsWithOptions(instance);\n\n Object.keys(instance)\n .filter((key) => key !== \"id\")\n .forEach((key) => {\n const fieldWidthOptions = fieldsWithOptions.find((f) => f.key === key);\n\n if (!fieldWidthOptions) {\n delete instance[key];\n return;\n }\n\n if (\n (mode === \"create\" || mode === \"update\") &&\n (!fieldWidthOptions.options[mode] ||\n (permissions &&\n (fieldWidthOptions.options[mode] as IFieldOptions).permissions &&\n !(fieldWidthOptions.options[\n mode\n ] as IFieldOptions).permissions.some((op) =>\n permissions.some((p) => op === p)\n )))\n ) {\n delete instance[key];\n return;\n } else if (\n mode !== \"create\" &&\n mode !== \"update\" &&\n (!fieldWidthOptions.options.customs ||\n !fieldWidthOptions.options.customs.some((c) => c.mode === mode))\n ) {\n delete instance[key];\n return;\n }\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["symbols.SYMBOL_MODEL","symbols.SYMBOL_FIELD"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"exports":[{"from":"./lib/model/model.decorator"},{"from":"./lib/field/field.decorator"}],"metadata":{"SYMBOL_MODEL":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Symbol"},"member":"for"},"arguments":["smartsoft:model"]},"SYMBOL_FIELD":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Symbol"},"member":"for"},"arguments":["smartsoft:field"]},"FieldType":{"address":"address","currency":"currency","date":"date","dateWithEdit":"dateWithEdit","email":"email","enum":"enum","file":"file","flag":"flag","int":"int","nip":"nip","object":"object","array":"array","password":"password","radio":"radio","text":"text","strings":"strings","ints":"ints","longText":"longText","color":"color","logo":"logo","check":"check","phoneNumber":"phoneNumber","phoneNumberPl":"phoneNumberPl","pesel":"pesel","pdf":"pdf","video":"video","attachment":"attachment","dateRange":"dateRange","image":"image","float":"float"},"ISpecification":{"__symbolic":"interface"},"IModelFilter":{"__symbolic":"interface"},"IModelStep":{"__symbolic":"interface"},"IModelMetadata":{"__symbolic":"interface"},"IFieldMetadata":{"__symbolic":"interface"},"IFieldModifyMetadata":{"__symbolic":"interface"},"IFieldEditMetadata":{"__symbolic":"interface"},"IFieldListMetadata":{"__symbolic":"interface"},"IFieldDetailsMetadata":{"__symbolic":"interface"},"IModelOptions":{"__symbolic":"interface"},"IModelModeOptions":{"__symbolic":"interface"},"IModelModeOptionsCustom":{"__symbolic":"interface"},"IFieldOptions":{"__symbolic":"interface"},"IModelMetadataCustom":{"__symbolic":"interface"},"IFieldUniqueMetadata":{"__symbolic":"interface"},"IFieldCustomMetadata":{"__symbolic":"interface"},"getModelFieldKeys":{"__symbolic":"function"},"getModelFieldOptions":{"__symbolic":"function","parameters":["instance","fieldKey"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Reflect"},"member":"getMetadata"},"arguments":[{"__symbolic":"reference","name":"SYMBOL_FIELD"},{"__symbolic":"reference","name":"instance"},{"__symbolic":"reference","name":"fieldKey"}]}},"getModelFieldsWithOptions":{"__symbolic":"function"},"getModelOptions":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Reflect"},"member":"getMetadata"},"arguments":[{"__symbolic":"reference","name":"SYMBOL_MODEL"},{"__symbolic":"reference","name":"type"}]}},"isModel":{"__symbolic":"function"},"getInvalidFields":{"__symbolic":"function"},"castModel":{"__symbolic":"function"}},"origins":{"SYMBOL_MODEL":"./lib/symbols","SYMBOL_FIELD":"./lib/symbols","FieldType":"./lib/interfaces","ISpecification":"./lib/interfaces","IModelFilter":"./lib/interfaces","IModelStep":"./lib/interfaces","IModelMetadata":"./lib/interfaces","IFieldMetadata":"./lib/interfaces","IFieldModifyMetadata":"./lib/interfaces","IFieldEditMetadata":"./lib/interfaces","IFieldListMetadata":"./lib/interfaces","IFieldDetailsMetadata":"./lib/interfaces","IModelOptions":"./lib/interfaces","IModelModeOptions":"./lib/interfaces","IModelModeOptionsCustom":"./lib/interfaces","IFieldOptions":"./lib/interfaces","IModelMetadataCustom":"./lib/interfaces","IFieldUniqueMetadata":"./lib/interfaces","IFieldCustomMetadata":"./lib/interfaces","getModelFieldKeys":"./lib/utils","getModelFieldOptions":"./lib/utils","getModelFieldsWithOptions":"./lib/utils","getModelOptions":"./lib/utils","isModel":"./lib/utils","getInvalidFields":"./lib/utils","castModel":"./lib/utils"},"importAs":"@smartsoft001/models"}
|