@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.
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==
@@ -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
@@ -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.js.map
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":"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"}
@@ -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":"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"}
package/package.json CHANGED
@@ -1,25 +1,38 @@
1
1
  {
2
2
  "name": "@smartsoft001/models",
3
- "version": "1.0.774",
4
- "main": "bundles/smartsoft001-models.umd.js",
5
- "module": "fesm2015/smartsoft001-models.js",
6
- "es2015": "fesm2015/smartsoft001-models.js",
7
- "esm2015": "esm2015/smartsoft001-models.js",
8
- "fesm2015": "fesm2015/smartsoft001-models.js",
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
- "metadata": "smartsoft001-models.metadata.json",
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.2.0",
25
+ "tslib": "^2.3.0",
14
26
  "reflect-metadata": "0.1.13",
15
- "@smartsoft001/utils": "1.0.809",
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": "6.6.3",
21
- "@angular/core": "12.2.7",
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
  }
@@ -1,4 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
+ /// <amd-module name="@smartsoft001/models" />
4
5
  export * from './index';
@@ -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"}