@smartsoft001/models 1.0.697 → 1.0.702

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.
@@ -1 +1 @@
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 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
+ {"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 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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"}
@@ -30,4 +30,4 @@ export var FieldType;
30
30
  FieldType["image"] = "image";
31
31
  FieldType["float"] = "float";
32
32
  })(FieldType || (FieldType = {}));
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkL21vZGVscy9zcmMvbGliL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksU0E4Qlg7QUE5QkQsV0FBWSxTQUFTO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0lBQ3JCLDBCQUFhLENBQUE7SUFDYiwwQ0FBNkIsQ0FBQTtJQUM3Qiw0QkFBZSxDQUFBO0lBQ2YsMEJBQWEsQ0FBQTtJQUNiLDBCQUFhLENBQUE7SUFDYiwwQkFBYSxDQUFBO0lBQ2Isd0JBQVcsQ0FBQTtJQUNYLHdCQUFXLENBQUE7SUFDWCw4QkFBaUIsQ0FBQTtJQUNqQiw0QkFBZSxDQUFBO0lBQ2Ysa0NBQXFCLENBQUE7SUFDckIsNEJBQWUsQ0FBQTtJQUNmLDBCQUFhLENBQUE7SUFDYixnQ0FBbUIsQ0FBQTtJQUNuQiwwQkFBYSxDQUFBO0lBQ2Isa0NBQXFCLENBQUE7SUFDckIsNEJBQWUsQ0FBQTtJQUNmLDBCQUFhLENBQUE7SUFDYiw0QkFBZSxDQUFBO0lBQ2Ysd0NBQTJCLENBQUE7SUFDM0IsNEJBQWUsQ0FBQTtJQUNmLHdCQUFXLENBQUE7SUFDWCw0QkFBZSxDQUFBO0lBQ2Ysc0NBQXlCLENBQUE7SUFDekIsb0NBQXVCLENBQUE7SUFDdkIsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQTlCVyxTQUFTLEtBQVQsU0FBUyxRQThCcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5cbmV4cG9ydCBlbnVtIEZpZWxkVHlwZSB7XG4gICAgYWRkcmVzcyA9IFwiYWRkcmVzc1wiLFxuICAgIGN1cnJlbmN5ID0gXCJjdXJyZW5jeVwiLFxuICAgIGRhdGUgPSBcImRhdGVcIixcbiAgICBkYXRlV2l0aEVkaXQgPSBcImRhdGVXaXRoRWRpdFwiLFxuICAgIGVtYWlsID0gXCJlbWFpbFwiLFxuICAgIGVudW0gPSBcImVudW1cIixcbiAgICBmaWxlID0gXCJmaWxlXCIsXG4gICAgZmxhZyA9IFwiZmxhZ1wiLFxuICAgIGludCA9IFwiaW50XCIsXG4gICAgbmlwID0gXCJuaXBcIixcbiAgICBvYmplY3QgPSBcIm9iamVjdFwiLFxuICAgIGFycmF5ID0gXCJhcnJheVwiLFxuICAgIHBhc3N3b3JkID0gXCJwYXNzd29yZFwiLFxuICAgIHJhZGlvID0gXCJyYWRpb1wiLFxuICAgIHRleHQgPSBcInRleHRcIixcbiAgICBzdHJpbmdzID0gXCJzdHJpbmdzXCIsXG4gICAgaW50cyA9IFwiaW50c1wiLFxuICAgIGxvbmdUZXh0ID0gXCJsb25nVGV4dFwiLFxuICAgIGNvbG9yID0gXCJjb2xvclwiLFxuICAgIGxvZ28gPSBcImxvZ29cIixcbiAgICBjaGVjayA9IFwiY2hlY2tcIixcbiAgICBwaG9uZU51bWJlciA9IFwicGhvbmVOdW1iZXJcIixcbiAgICBwZXNlbCA9IFwicGVzZWxcIixcbiAgICBwZGYgPSBcInBkZlwiLFxuICAgIHZpZGVvID0gXCJ2aWRlb1wiLFxuICAgIGF0dGFjaG1lbnQgPSBcImF0dGFjaG1lbnRcIixcbiAgICBkYXRlUmFuZ2UgPSBcImRhdGVSYW5nZVwiLFxuICAgIGltYWdlID0gXCJpbWFnZVwiLFxuICAgIGZsb2F0ID0gXCJmbG9hdFwiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNwZWNpZmljYXRpb24ge1xuICAgIGNyaXRlcmlhOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsRmlsdGVyIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBmaWVsZFR5cGU/OiBGaWVsZFR5cGU7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdHlwZTogJz0nIHwgJyE9JyB8ICc+PScgfCAnPD0nIHwgJzwnIHwgJz4nO1xuICAgIHBvc3NpYmlsaXRpZXMkPzogT2JzZXJ2YWJsZTx7IGlkOiBhbnksIHRleHQ6IHN0cmluZyB9W10+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNb2RlbFN0ZXAge1xuICAgIG51bWJlcjogbnVtYmVyO1xuICAgIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTW9kZWxNZXRhZGF0YSB7XG4gICAgdGl0bGVLZXk/OiBzdHJpbmc7XG4gICAgcGVybWlzc2lvbnM/OiBBcnJheTxzdHJpbmc+O1xuICAgIGZpbHRlcnM/OiBBcnJheTxJTW9kZWxGaWx0ZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZE1ldGFkYXRhIGV4dGVuZHMgSUZpZWxkTW9kaWZ5TWV0YWRhdGEge1xuICAgIHR5cGU/OiBGaWVsZFR5cGU7XG4gICAgY2xhc3NUeXBlPzogYW55O1xuICAgIHBvc3NpYmlsaXRpZXM/OiBBcnJheTxhbnk+IHwgYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZE1vZGlmeU1ldGFkYXRhIHtcbiAgICByZXF1aXJlZD86IGJvb2xlYW47XG4gICAgZm9jdXNlZD86IGJvb2xlYW47XG4gICAgY29uZmlybT86IGJvb2xlYW47XG4gICAgcGVybWlzc2lvbnM/OiBBcnJheTxzdHJpbmc+O1xuICAgIHVuaXF1ZT86IGJvb2xlYW4gfCBJRmllbGRVbmlxdWVNZXRhZGF0YTtcbiAgICBkZWZhbHRWYWx1ZT86ICgpID0+IGFueTtcbiAgICBlbmFibGVkPzogSVNwZWNpZmljYXRpb247XG4gICAgaGlkZT86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQGRlc2MgLSBNb2RlbCBzdGVwIGNvbmZpZ3VyYXRpb25cbiAgICAgKi9cbiAgICBzdGVwPzogSU1vZGVsU3RlcDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmllbGRFZGl0TWV0YWRhdGEgZXh0ZW5kcyBJRmllbGRNb2RpZnlNZXRhZGF0YSB7XG4gICAgbXVsdGk/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZExpc3RNZXRhZGF0YSB7XG4gICAgb3JkZXI/OiBudW1iZXI7XG4gICAgZmlsdGVyPzogYm9vbGVhbjtcbiAgICBwZXJtaXNzaW9ucz86IEFycmF5PHN0cmluZz47XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgZHluYW1pYyBsaXN0IHRhYmxlIGRhdGFcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZHluYW1pYy5oZWFkZXJLZXkgLSBjb2x1bW4gaGVhZGVyIG9iamVjdCBrZXlcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZHluYW1pYy5yb3dLZXkgLSBjb2x1bW4gcm93IHZhbHVlIG9iamVjdCBrZXlcbiAgICAgKi9cbiAgICBkeW5hbWljPzogeyBoZWFkZXJLZXk6IHN0cmluZywgcm93S2V5OiBzdHJpbmcgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZERldGFpbHNNZXRhZGF0YSB7XG4gICAgb3JkZXI/OiBudW1iZXI7XG4gICAgcGVybWlzc2lvbnM/OiBBcnJheTxzdHJpbmc+O1xuICAgIGVuYWJsZWQ/OiBJU3BlY2lmaWNhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTW9kZWxPcHRpb25zIHtcbiAgICB0aXRsZUtleT86IHN0cmluZztcbiAgICBmaWx0ZXJzPzogQXJyYXk8SU1vZGVsRmlsdGVyPjtcbiAgICBjcmVhdGU/OiBJTW9kZWxNb2RlT3B0aW9ucztcbiAgICB1cGRhdGU/OiBJTW9kZWxNb2RlT3B0aW9ucztcbiAgICBsaXN0PzogSU1vZGVsTW9kZU9wdGlvbnM7XG4gICAgZGV0YWlscz86IElNb2RlbE1vZGVPcHRpb25zO1xuICAgIHJlbW92ZT86IElNb2RlbE1vZGVPcHRpb25zO1xuICAgIGN1c3RvbXM/OiBBcnJheTxJTW9kZWxNb2RlT3B0aW9uc0N1c3RvbT47XG4gICAgLyoqXG4gICAgICogQGRlc2MgLSBBbGxvdyBleHBvcnQgZmllbGQgZGF0YVxuICAgICAqL1xuICAgIGV4cG9ydD86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQGRlc2MgLSBBbGxvdyBpbXBvcnQgZmllbGQgZGF0YVxuICAgICAqL1xuICAgIGltcG9ydD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsTW9kZU9wdGlvbnMge1xuICAgIHBlcm1pc3Npb25zPzogQXJyYXk8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTW9kZWxNb2RlT3B0aW9uc0N1c3RvbSBleHRlbmRzIElNb2RlbE1vZGVPcHRpb25zIHtcbiAgICBtb2RlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkT3B0aW9ucyBleHRlbmRzIElGaWVsZE1ldGFkYXRhIHtcbiAgICBjcmVhdGU/OiBJRmllbGRNb2RpZnlNZXRhZGF0YSB8IGJvb2xlYW47XG4gICAgdXBkYXRlPzogSUZpZWxkRWRpdE1ldGFkYXRhIHwgYm9vbGVhbjtcbiAgICBsaXN0PzogSUZpZWxkTGlzdE1ldGFkYXRhIHwgYm9vbGVhbjtcbiAgICBkZXRhaWxzPzogSUZpZWxkRGV0YWlsc01ldGFkYXRhIHwgYm9vbGVhbjtcbiAgICBjdXN0b21zPzogQXJyYXk8SU1vZGVsTWV0YWRhdGFDdXN0b20+O1xuICAgIHNlYXJjaD86IGJvb2xlYW47XG4gICAgaW5mbz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTW9kZWxNZXRhZGF0YUN1c3RvbSBleHRlbmRzIElNb2RlbE1ldGFkYXRhIHtcbiAgICBtb2RlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmllbGRVbmlxdWVNZXRhZGF0YSB7XG4gICAgd2l0aEZpZWxkcz86IEFycmF5PHN0cmluZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkQ3VzdG9tTWV0YWRhdGEgZXh0ZW5kcyBJRmllbGRNb2RpZnlNZXRhZGF0YSwgSUZpZWxkTGlzdE1ldGFkYXRhIHtcbiAgICBtb2RlOiBzdHJpbmc7XG59XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkL21vZGVscy9zcmMvbGliL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksU0E4Qlg7QUE5QkQsV0FBWSxTQUFTO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0lBQ3JCLDBCQUFhLENBQUE7SUFDYiwwQ0FBNkIsQ0FBQTtJQUM3Qiw0QkFBZSxDQUFBO0lBQ2YsMEJBQWEsQ0FBQTtJQUNiLDBCQUFhLENBQUE7SUFDYiwwQkFBYSxDQUFBO0lBQ2Isd0JBQVcsQ0FBQTtJQUNYLHdCQUFXLENBQUE7SUFDWCw4QkFBaUIsQ0FBQTtJQUNqQiw0QkFBZSxDQUFBO0lBQ2Ysa0NBQXFCLENBQUE7SUFDckIsNEJBQWUsQ0FBQTtJQUNmLDBCQUFhLENBQUE7SUFDYixnQ0FBbUIsQ0FBQTtJQUNuQiwwQkFBYSxDQUFBO0lBQ2Isa0NBQXFCLENBQUE7SUFDckIsNEJBQWUsQ0FBQTtJQUNmLDBCQUFhLENBQUE7SUFDYiw0QkFBZSxDQUFBO0lBQ2Ysd0NBQTJCLENBQUE7SUFDM0IsNEJBQWUsQ0FBQTtJQUNmLHdCQUFXLENBQUE7SUFDWCw0QkFBZSxDQUFBO0lBQ2Ysc0NBQXlCLENBQUE7SUFDekIsb0NBQXVCLENBQUE7SUFDdkIsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQTlCVyxTQUFTLEtBQVQsU0FBUyxRQThCcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5cbmV4cG9ydCBlbnVtIEZpZWxkVHlwZSB7XG4gICAgYWRkcmVzcyA9IFwiYWRkcmVzc1wiLFxuICAgIGN1cnJlbmN5ID0gXCJjdXJyZW5jeVwiLFxuICAgIGRhdGUgPSBcImRhdGVcIixcbiAgICBkYXRlV2l0aEVkaXQgPSBcImRhdGVXaXRoRWRpdFwiLFxuICAgIGVtYWlsID0gXCJlbWFpbFwiLFxuICAgIGVudW0gPSBcImVudW1cIixcbiAgICBmaWxlID0gXCJmaWxlXCIsXG4gICAgZmxhZyA9IFwiZmxhZ1wiLFxuICAgIGludCA9IFwiaW50XCIsXG4gICAgbmlwID0gXCJuaXBcIixcbiAgICBvYmplY3QgPSBcIm9iamVjdFwiLFxuICAgIGFycmF5ID0gXCJhcnJheVwiLFxuICAgIHBhc3N3b3JkID0gXCJwYXNzd29yZFwiLFxuICAgIHJhZGlvID0gXCJyYWRpb1wiLFxuICAgIHRleHQgPSBcInRleHRcIixcbiAgICBzdHJpbmdzID0gXCJzdHJpbmdzXCIsXG4gICAgaW50cyA9IFwiaW50c1wiLFxuICAgIGxvbmdUZXh0ID0gXCJsb25nVGV4dFwiLFxuICAgIGNvbG9yID0gXCJjb2xvclwiLFxuICAgIGxvZ28gPSBcImxvZ29cIixcbiAgICBjaGVjayA9IFwiY2hlY2tcIixcbiAgICBwaG9uZU51bWJlciA9IFwicGhvbmVOdW1iZXJcIixcbiAgICBwZXNlbCA9IFwicGVzZWxcIixcbiAgICBwZGYgPSBcInBkZlwiLFxuICAgIHZpZGVvID0gXCJ2aWRlb1wiLFxuICAgIGF0dGFjaG1lbnQgPSBcImF0dGFjaG1lbnRcIixcbiAgICBkYXRlUmFuZ2UgPSBcImRhdGVSYW5nZVwiLFxuICAgIGltYWdlID0gXCJpbWFnZVwiLFxuICAgIGZsb2F0ID0gXCJmbG9hdFwiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNwZWNpZmljYXRpb24ge1xuICAgIGNyaXRlcmlhOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsRmlsdGVyIHtcbiAgICBsYWJlbD86IHN0cmluZztcbiAgICBmaWVsZFR5cGU/OiBGaWVsZFR5cGU7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgdHlwZTogJz0nIHwgJyE9JyB8ICc+PScgfCAnPD0nIHwgJzwnIHwgJz4nIHwgJ349JztcbiAgICBwb3NzaWJpbGl0aWVzJD86IE9ic2VydmFibGU8eyBpZDogYW55LCB0ZXh0OiBzdHJpbmcgfVtdPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTW9kZWxTdGVwIHtcbiAgICBudW1iZXI6IG51bWJlcjtcbiAgICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsTWV0YWRhdGEge1xuICAgIHRpdGxlS2V5Pzogc3RyaW5nO1xuICAgIHBlcm1pc3Npb25zPzogQXJyYXk8c3RyaW5nPjtcbiAgICBmaWx0ZXJzPzogQXJyYXk8SU1vZGVsRmlsdGVyPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmllbGRNZXRhZGF0YSBleHRlbmRzIElGaWVsZE1vZGlmeU1ldGFkYXRhIHtcbiAgICB0eXBlPzogRmllbGRUeXBlO1xuICAgIGNsYXNzVHlwZT86IGFueTtcbiAgICBwb3NzaWJpbGl0aWVzPzogQXJyYXk8YW55PiB8IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmllbGRNb2RpZnlNZXRhZGF0YSB7XG4gICAgcmVxdWlyZWQ/OiBib29sZWFuO1xuICAgIGZvY3VzZWQ/OiBib29sZWFuO1xuICAgIGNvbmZpcm0/OiBib29sZWFuO1xuICAgIHBlcm1pc3Npb25zPzogQXJyYXk8c3RyaW5nPjtcbiAgICB1bmlxdWU/OiBib29sZWFuIHwgSUZpZWxkVW5pcXVlTWV0YWRhdGE7XG4gICAgZGVmYWx0VmFsdWU/OiAoKSA9PiBhbnk7XG4gICAgZW5hYmxlZD86IElTcGVjaWZpY2F0aW9uO1xuICAgIGhpZGU/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIC0gTW9kZWwgc3RlcCBjb25maWd1cmF0aW9uXG4gICAgICovXG4gICAgc3RlcD86IElNb2RlbFN0ZXA7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkRWRpdE1ldGFkYXRhIGV4dGVuZHMgSUZpZWxkTW9kaWZ5TWV0YWRhdGEge1xuICAgIG11bHRpPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmllbGRMaXN0TWV0YWRhdGEge1xuICAgIG9yZGVyPzogbnVtYmVyO1xuICAgIGZpbHRlcj86IGJvb2xlYW47XG4gICAgcGVybWlzc2lvbnM/OiBBcnJheTxzdHJpbmc+O1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGR5bmFtaWMgbGlzdCB0YWJsZSBkYXRhXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGR5bmFtaWMuaGVhZGVyS2V5IC0gY29sdW1uIGhlYWRlciBvYmplY3Qga2V5XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGR5bmFtaWMucm93S2V5IC0gY29sdW1uIHJvdyB2YWx1ZSBvYmplY3Qga2V5XG4gICAgICovXG4gICAgZHluYW1pYz86IHsgaGVhZGVyS2V5OiBzdHJpbmcsIHJvd0tleTogc3RyaW5nIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmllbGREZXRhaWxzTWV0YWRhdGEge1xuICAgIG9yZGVyPzogbnVtYmVyO1xuICAgIHBlcm1pc3Npb25zPzogQXJyYXk8c3RyaW5nPjtcbiAgICBlbmFibGVkPzogSVNwZWNpZmljYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsT3B0aW9ucyB7XG4gICAgdGl0bGVLZXk/OiBzdHJpbmc7XG4gICAgZmlsdGVycz86IEFycmF5PElNb2RlbEZpbHRlcj47XG4gICAgY3JlYXRlPzogSU1vZGVsTW9kZU9wdGlvbnM7XG4gICAgdXBkYXRlPzogSU1vZGVsTW9kZU9wdGlvbnM7XG4gICAgbGlzdD86IElNb2RlbE1vZGVPcHRpb25zO1xuICAgIGRldGFpbHM/OiBJTW9kZWxNb2RlT3B0aW9ucztcbiAgICByZW1vdmU/OiBJTW9kZWxNb2RlT3B0aW9ucztcbiAgICBjdXN0b21zPzogQXJyYXk8SU1vZGVsTW9kZU9wdGlvbnNDdXN0b20+O1xuICAgIC8qKlxuICAgICAqIEBkZXNjIC0gQWxsb3cgZXhwb3J0IGZpZWxkIGRhdGFcbiAgICAgKi9cbiAgICBleHBvcnQ/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEBkZXNjIC0gQWxsb3cgaW1wb3J0IGZpZWxkIGRhdGFcbiAgICAgKi9cbiAgICBpbXBvcnQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNb2RlbE1vZGVPcHRpb25zIHtcbiAgICBwZXJtaXNzaW9ucz86IEFycmF5PHN0cmluZz47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsTW9kZU9wdGlvbnNDdXN0b20gZXh0ZW5kcyBJTW9kZWxNb2RlT3B0aW9ucyB7XG4gICAgbW9kZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZE9wdGlvbnMgZXh0ZW5kcyBJRmllbGRNZXRhZGF0YSB7XG4gICAgY3JlYXRlPzogSUZpZWxkTW9kaWZ5TWV0YWRhdGEgfCBib29sZWFuO1xuICAgIHVwZGF0ZT86IElGaWVsZEVkaXRNZXRhZGF0YSB8IGJvb2xlYW47XG4gICAgbGlzdD86IElGaWVsZExpc3RNZXRhZGF0YSB8IGJvb2xlYW47XG4gICAgZGV0YWlscz86IElGaWVsZERldGFpbHNNZXRhZGF0YSB8IGJvb2xlYW47XG4gICAgY3VzdG9tcz86IEFycmF5PElNb2RlbE1ldGFkYXRhQ3VzdG9tPjtcbiAgICBzZWFyY2g/OiBib29sZWFuO1xuICAgIGluZm8/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsTWV0YWRhdGFDdXN0b20gZXh0ZW5kcyBJTW9kZWxNZXRhZGF0YSB7XG4gICAgbW9kZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkVW5pcXVlTWV0YWRhdGEge1xuICAgIHdpdGhGaWVsZHM/OiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZEN1c3RvbU1ldGFkYXRhIGV4dGVuZHMgSUZpZWxkTW9kaWZ5TWV0YWRhdGEsIElGaWVsZExpc3RNZXRhZGF0YSB7XG4gICAgbW9kZTogc3RyaW5nO1xufVxuIl19
@@ -1 +1 @@
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 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
+ {"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 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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"}
@@ -37,7 +37,7 @@ export interface IModelFilter {
37
37
  label?: string;
38
38
  fieldType?: FieldType;
39
39
  key: string;
40
- type: '=' | '!=' | '>=' | '<=' | '<' | '>';
40
+ type: '=' | '!=' | '>=' | '<=' | '<' | '>' | '~=';
41
41
  possibilities$?: Observable<{
42
42
  id: any;
43
43
  text: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartsoft001/models",
3
- "version": "1.0.697",
3
+ "version": "1.0.702",
4
4
  "main": "bundles/smartsoft001-models.umd.js",
5
5
  "module": "fesm2015/smartsoft001-models.js",
6
6
  "es2015": "fesm2015/smartsoft001-models.js",
@@ -12,12 +12,14 @@
12
12
  "dependencies": {
13
13
  "tslib": "^2.2.0",
14
14
  "reflect-metadata": "0.1.13",
15
- "@smartsoft001/utils": "1.0.732",
15
+ "@smartsoft001/utils": "1.0.737",
16
16
  "lodash": "^4.17.20",
17
17
  "guid-typescript": "1.0.9",
18
18
  "flatted": "^3.2.4",
19
19
  "md5": "2.3.0",
20
- "rxjs": "6.6.3"
20
+ "rxjs": "6.6.3",
21
+ "@angular/core": "12.2.7",
22
+ "@angular/platform-browser-dynamic": "12.2.7"
21
23
  },
22
24
  "peerDependencies": {}
23
25
  }