@smartsoft001/models 1.0.782 → 1.0.783

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.
Files changed (38) hide show
  1. package/package.json +7 -26
  2. package/{index.d.ts → src/index.d.ts} +0 -0
  3. package/src/index.js +5 -0
  4. package/src/index.js.map +1 -0
  5. package/{lib → src/lib}/decorators/field/field.decorator.d.ts +0 -0
  6. package/src/lib/decorators/field/field.decorator.js +45 -0
  7. package/src/lib/decorators/field/field.decorator.js.map +1 -0
  8. package/{lib → src/lib}/decorators/index.d.ts +0 -0
  9. package/src/lib/decorators/index.js +3 -0
  10. package/src/lib/decorators/index.js.map +1 -0
  11. package/{lib → src/lib}/decorators/model/model.decorator.d.ts +0 -0
  12. package/src/lib/decorators/model/model.decorator.js +19 -0
  13. package/src/lib/decorators/model/model.decorator.js.map +1 -0
  14. package/{lib → src/lib}/interfaces.d.ts +0 -0
  15. package/src/lib/interfaces.js +34 -0
  16. package/src/lib/interfaces.js.map +1 -0
  17. package/{lib → src/lib}/symbols.d.ts +0 -0
  18. package/src/lib/symbols.js +3 -0
  19. package/src/lib/symbols.js.map +1 -0
  20. package/{lib → src/lib}/utils.d.ts +0 -0
  21. package/src/lib/utils.js +75 -0
  22. package/src/lib/utils.js.map +1 -0
  23. package/test-setup.d.ts +0 -0
  24. package/test-setup.js +1 -0
  25. package/test-setup.js.map +1 -0
  26. package/esm2020/index.mjs +0 -5
  27. package/esm2020/lib/decorators/field/field.decorator.mjs +0 -45
  28. package/esm2020/lib/decorators/index.mjs +0 -3
  29. package/esm2020/lib/decorators/model/model.decorator.mjs +0 -19
  30. package/esm2020/lib/interfaces.mjs +0 -34
  31. package/esm2020/lib/symbols.mjs +0 -3
  32. package/esm2020/lib/utils.mjs +0 -75
  33. package/esm2020/smartsoft001-models.mjs +0 -5
  34. package/fesm2015/smartsoft001-models.mjs +0 -178
  35. package/fesm2015/smartsoft001-models.mjs.map +0 -1
  36. package/fesm2020/smartsoft001-models.mjs +0 -178
  37. package/fesm2020/smartsoft001-models.mjs.map +0 -1
  38. package/smartsoft001-models.d.ts +0 -5
package/package.json CHANGED
@@ -1,30 +1,12 @@
1
1
  {
2
2
  "name": "@smartsoft001/models",
3
- "version": "1.0.782",
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
- "typings": "smartsoft001-models.d.ts",
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
- },
23
- "sideEffects": false,
24
- "dependencies": {
25
- "tslib": "^2.3.0",
3
+ "version": "1.0.783",
4
+ "main": "./src/index.js",
5
+ "typings": "./src/index.d.ts",
6
+ "dependencies": {},
7
+ "peerDependencies": {
26
8
  "reflect-metadata": "0.1.13",
27
- "@smartsoft001/utils": "1.0.817",
9
+ "@smartsoft001/utils": "1.0.818",
28
10
  "@angular/common": "13.2.7",
29
11
  "@angular/core": "13.2.7",
30
12
  "lodash": "^4.17.20",
@@ -33,6 +15,5 @@
33
15
  "md5": "2.3.0",
34
16
  "rxjs": "^7.0.0",
35
17
  "@angular/platform-browser-dynamic": "13.2.7"
36
- },
37
- "peerDependencies": {}
18
+ }
38
19
  }
File without changes
package/src/index.js ADDED
@@ -0,0 +1,5 @@
1
+ export * from "./lib/symbols";
2
+ export * from './lib/interfaces';
3
+ export * from './lib/decorators';
4
+ export * from './lib/utils';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/shared/models/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,aAAa,CAAC","sourcesContent":["export * from \"./lib/symbols\";\nexport * from './lib/interfaces';\nexport * from './lib/decorators';\n\nexport * from './lib/utils';\n"]}
@@ -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 ? 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=field.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.decorator.js","sourceRoot":"","sources":["../../../../../../../../libs/shared/models/src/lib/decorators/field/field.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AACzC,OAAO,EAAC,SAAS,EAAgB,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAElD,MAAM,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC;AACpC,MAAM,UAAU,cAAc,CAAC,OAAuB;IAClD,OAAO,CAAI,MAAS,EAAE,GAAW,EAAE,EAAE;QAEjC,OAAO,GAAG,OAAO,CAAC,CAAC,mBAAM,OAAO,EAAG,CAAC,CAAC,EAAE,CAAC;QAExC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;YACjC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;SACvC;QAED,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,GAAG,KAAK,UAAU,EAAE;YACrC,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC;SACrC;aAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YACtB,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;SACjC;QAED,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;YAEnB,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;gBAChC,GAAG,EAAE;oBACD,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,EAAE;wBACtD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;qBACxB;oBACD,OAAO,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;gBAC3B,CAAC;gBACA,GAAG,EAAE,UAAU,CAAM;oBACjB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;wBACrD,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;wBAC5D,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC3D,CAAC;gBACD,UAAU,EAAE,IAAI;gBAChB,YAAY,EAAE,IAAI;aACrB,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;gBACrC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;aAC3C;YAED,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;SAClD;QAED,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IACvE,CAAC,CAAA;AACL,CAAC","sourcesContent":["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"]}
File without changes
@@ -0,0 +1,3 @@
1
+ export * from './model/model.decorator';
2
+ export * from './field/field.decorator';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../libs/shared/models/src/lib/decorators/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC","sourcesContent":["export * from './model/model.decorator';\nexport * from './field/field.decorator';\n"]}
@@ -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 ? 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=model.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.decorator.js","sourceRoot":"","sources":["../../../../../../../../libs/shared/models/src/lib/decorators/model/model.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AAGzC,MAAM,CAAC,MAAM,KAAK,GAAG,cAAc,CAAC;AACpC,MAAM,UAAU,cAAc,CAAC,OAAuB;IACpD,OAAO,UAAY,MAAW;QAC5B,OAAO,GAAG,OAAO,CAAC,CAAC,mBAAM,OAAO,EAAG,CAAC,CAAC,EAAE,CAAC;QAExC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE9D,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG;YACxB,MAAM,MAAM,qBAAQ,IAAI,CAAE,CAAC;YAE3B,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;gBACpC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAC/D,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;gBAC1C,CAAC,CAAC,CAAC;aACJ;YAED,OAAO,MAAM,CAAC;QAChB,CAAC,CAAC;IACJ,CAAC,CAAA;AACH,CAAC","sourcesContent":["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"]}
File without changes
@@ -0,0 +1,34 @@
1
+ export var FieldType;
2
+ (function (FieldType) {
3
+ FieldType["address"] = "address";
4
+ FieldType["currency"] = "currency";
5
+ FieldType["date"] = "date";
6
+ FieldType["dateWithEdit"] = "dateWithEdit";
7
+ FieldType["email"] = "email";
8
+ FieldType["enum"] = "enum";
9
+ FieldType["file"] = "file";
10
+ FieldType["flag"] = "flag";
11
+ FieldType["int"] = "int";
12
+ FieldType["nip"] = "nip";
13
+ FieldType["object"] = "object";
14
+ FieldType["array"] = "array";
15
+ FieldType["password"] = "password";
16
+ FieldType["radio"] = "radio";
17
+ FieldType["text"] = "text";
18
+ FieldType["strings"] = "strings";
19
+ FieldType["ints"] = "ints";
20
+ FieldType["longText"] = "longText";
21
+ FieldType["color"] = "color";
22
+ FieldType["logo"] = "logo";
23
+ FieldType["check"] = "check";
24
+ FieldType["phoneNumber"] = "phoneNumber";
25
+ FieldType["phoneNumberPl"] = "phoneNumberPl";
26
+ FieldType["pesel"] = "pesel";
27
+ FieldType["pdf"] = "pdf";
28
+ FieldType["video"] = "video";
29
+ FieldType["attachment"] = "attachment";
30
+ FieldType["dateRange"] = "dateRange";
31
+ FieldType["image"] = "image";
32
+ FieldType["float"] = "float";
33
+ })(FieldType || (FieldType = {}));
34
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../../libs/shared/models/src/lib/interfaces.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,SA+BX;AA/BD,WAAY,SAAS;IACjB,gCAAmB,CAAA;IACnB,kCAAqB,CAAA;IACrB,0BAAa,CAAA;IACb,0CAA6B,CAAA;IAC7B,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,0BAAa,CAAA;IACb,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,8BAAiB,CAAA;IACjB,4BAAe,CAAA;IACf,kCAAqB,CAAA;IACrB,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,gCAAmB,CAAA;IACnB,0BAAa,CAAA;IACb,kCAAqB,CAAA;IACrB,4BAAe,CAAA;IACf,0BAAa,CAAA;IACb,4BAAe,CAAA;IACf,wCAA2B,CAAA;IAC3B,4CAA+B,CAAA;IAC/B,4BAAe,CAAA;IACf,wBAAW,CAAA;IACX,4BAAe,CAAA;IACf,sCAAyB,CAAA;IACzB,oCAAuB,CAAA;IACvB,4BAAe,CAAA;IACf,4BAAe,CAAA;AACnB,CAAC,EA/BW,SAAS,KAAT,SAAS,QA+BpB","sourcesContent":["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"]}
File without changes
@@ -0,0 +1,3 @@
1
+ export const SYMBOL_MODEL = Symbol.for('smartsoft:model');
2
+ export const SYMBOL_FIELD = Symbol.for('smartsoft:field');
3
+ //# sourceMappingURL=symbols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbols.js","sourceRoot":"","sources":["../../../../../../libs/shared/models/src/lib/symbols.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC1D,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC","sourcesContent":["export const SYMBOL_MODEL = Symbol.for('smartsoft:model');\nexport const SYMBOL_FIELD = Symbol.for('smartsoft:field');\n"]}
File without changes
@@ -0,0 +1,75 @@
1
+ import { SYMBOL_FIELD, SYMBOL_MODEL } from "./symbols";
2
+ export function getModelFieldKeys(type) {
3
+ if (!type["__fields"])
4
+ return [];
5
+ return Object.keys(type["__fields"]);
6
+ }
7
+ export function getModelFieldOptions(instance, fieldKey) {
8
+ return Reflect.getMetadata(SYMBOL_FIELD, instance, fieldKey);
9
+ }
10
+ export function getModelFieldsWithOptions(instance) {
11
+ const keys = getModelFieldKeys(instance.constructor);
12
+ return keys.map((item) => {
13
+ return {
14
+ key: item,
15
+ options: getModelFieldOptions(instance, item),
16
+ };
17
+ });
18
+ }
19
+ export function getModelOptions(type) {
20
+ return Reflect.getMetadata(SYMBOL_MODEL, type);
21
+ }
22
+ export function isModel(instance) {
23
+ if (!instance || !instance.constructor)
24
+ return false;
25
+ return Reflect.hasMetadata(SYMBOL_MODEL, instance.constructor);
26
+ }
27
+ export function getInvalidFields(instance, mode, permissions) {
28
+ const result = [];
29
+ getModelFieldsWithOptions(instance).forEach(({ key, options }) => {
30
+ let required = options.required;
31
+ if ((mode === "create" || mode === "update") &&
32
+ options[mode] &&
33
+ options[mode].constructor) {
34
+ required = options[mode].required;
35
+ if (required &&
36
+ permissions &&
37
+ options[mode].permissions) {
38
+ required = options[mode].permissions.some((op) => permissions.some((p) => p === op));
39
+ }
40
+ }
41
+ if (required && (instance[key] === null || instance[key] === undefined || instance[key] === ''))
42
+ result.push(key);
43
+ });
44
+ return result;
45
+ }
46
+ export function castModel(instance, mode, permissions) {
47
+ if (!isModel(instance))
48
+ return;
49
+ const fieldsWithOptions = getModelFieldsWithOptions(instance);
50
+ Object.keys(instance)
51
+ .filter((key) => key !== "id")
52
+ .forEach((key) => {
53
+ const fieldWidthOptions = fieldsWithOptions.find((f) => f.key === key);
54
+ if (!fieldWidthOptions) {
55
+ delete instance[key];
56
+ return;
57
+ }
58
+ if ((mode === "create" || mode === "update") &&
59
+ (!fieldWidthOptions.options[mode] ||
60
+ (permissions &&
61
+ fieldWidthOptions.options[mode].permissions &&
62
+ !fieldWidthOptions.options[mode].permissions.some((op) => permissions.some((p) => op === p))))) {
63
+ delete instance[key];
64
+ return;
65
+ }
66
+ else if (mode !== "create" &&
67
+ mode !== "update" &&
68
+ (!fieldWidthOptions.options.customs ||
69
+ !fieldWidthOptions.options.customs.some((c) => c.mode === mode))) {
70
+ delete instance[key];
71
+ return;
72
+ }
73
+ });
74
+ }
75
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../libs/shared/models/src/lib/utils.ts"],"names":[],"mappings":"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","sourcesContent":["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"]}
File without changes
package/test-setup.js ADDED
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=test-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-setup.js","sourceRoot":"","sources":["../../../../libs/shared/models/test-setup.ts"],"names":[],"mappings":"","sourcesContent":["\n"]}
package/esm2020/index.mjs DELETED
@@ -1,5 +0,0 @@
1
- export * from "./lib/symbols";
2
- export * from './lib/interfaces';
3
- export * from './lib/decorators';
4
- export * from './lib/utils';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC9tb2RlbHMvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQyxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2xpYi9zeW1ib2xzXCI7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RlY29yYXRvcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi91dGlscyc7XG4iXX0=
@@ -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 ? { ...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==
@@ -1,3 +0,0 @@
1
- export * from './model/model.decorator';
2
- export * from './field/field.decorator';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC9tb2RlbHMvc3JjL2xpYi9kZWNvcmF0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kZWwvbW9kZWwuZGVjb3JhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQvZmllbGQuZGVjb3JhdG9yJztcbiJdfQ==
@@ -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 ? { ...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=
@@ -1,34 +0,0 @@
1
- export var FieldType;
2
- (function (FieldType) {
3
- FieldType["address"] = "address";
4
- FieldType["currency"] = "currency";
5
- FieldType["date"] = "date";
6
- FieldType["dateWithEdit"] = "dateWithEdit";
7
- FieldType["email"] = "email";
8
- FieldType["enum"] = "enum";
9
- FieldType["file"] = "file";
10
- FieldType["flag"] = "flag";
11
- FieldType["int"] = "int";
12
- FieldType["nip"] = "nip";
13
- FieldType["object"] = "object";
14
- FieldType["array"] = "array";
15
- FieldType["password"] = "password";
16
- FieldType["radio"] = "radio";
17
- FieldType["text"] = "text";
18
- FieldType["strings"] = "strings";
19
- FieldType["ints"] = "ints";
20
- FieldType["longText"] = "longText";
21
- FieldType["color"] = "color";
22
- FieldType["logo"] = "logo";
23
- FieldType["check"] = "check";
24
- FieldType["phoneNumber"] = "phoneNumber";
25
- FieldType["phoneNumberPl"] = "phoneNumberPl";
26
- FieldType["pesel"] = "pesel";
27
- FieldType["pdf"] = "pdf";
28
- FieldType["video"] = "video";
29
- FieldType["attachment"] = "attachment";
30
- FieldType["dateRange"] = "dateRange";
31
- FieldType["image"] = "image";
32
- FieldType["float"] = "float";
33
- })(FieldType || (FieldType = {}));
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkL21vZGVscy9zcmMvbGliL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksU0ErQlg7QUEvQkQsV0FBWSxTQUFTO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0lBQ3JCLDBCQUFhLENBQUE7SUFDYiwwQ0FBNkIsQ0FBQTtJQUM3Qiw0QkFBZSxDQUFBO0lBQ2YsMEJBQWEsQ0FBQTtJQUNiLDBCQUFhLENBQUE7SUFDYiwwQkFBYSxDQUFBO0lBQ2Isd0JBQVcsQ0FBQTtJQUNYLHdCQUFXLENBQUE7SUFDWCw4QkFBaUIsQ0FBQTtJQUNqQiw0QkFBZSxDQUFBO0lBQ2Ysa0NBQXFCLENBQUE7SUFDckIsNEJBQWUsQ0FBQTtJQUNmLDBCQUFhLENBQUE7SUFDYixnQ0FBbUIsQ0FBQTtJQUNuQiwwQkFBYSxDQUFBO0lBQ2Isa0NBQXFCLENBQUE7SUFDckIsNEJBQWUsQ0FBQTtJQUNmLDBCQUFhLENBQUE7SUFDYiw0QkFBZSxDQUFBO0lBQ2Ysd0NBQTJCLENBQUE7SUFDM0IsNENBQStCLENBQUE7SUFDL0IsNEJBQWUsQ0FBQTtJQUNmLHdCQUFXLENBQUE7SUFDWCw0QkFBZSxDQUFBO0lBQ2Ysc0NBQXlCLENBQUE7SUFDekIsb0NBQXVCLENBQUE7SUFDdkIsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQS9CVyxTQUFTLEtBQVQsU0FBUyxRQStCcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5cbmV4cG9ydCBlbnVtIEZpZWxkVHlwZSB7XG4gICAgYWRkcmVzcyA9IFwiYWRkcmVzc1wiLFxuICAgIGN1cnJlbmN5ID0gXCJjdXJyZW5jeVwiLFxuICAgIGRhdGUgPSBcImRhdGVcIixcbiAgICBkYXRlV2l0aEVkaXQgPSBcImRhdGVXaXRoRWRpdFwiLFxuICAgIGVtYWlsID0gXCJlbWFpbFwiLFxuICAgIGVudW0gPSBcImVudW1cIixcbiAgICBmaWxlID0gXCJmaWxlXCIsXG4gICAgZmxhZyA9IFwiZmxhZ1wiLFxuICAgIGludCA9IFwiaW50XCIsXG4gICAgbmlwID0gXCJuaXBcIixcbiAgICBvYmplY3QgPSBcIm9iamVjdFwiLFxuICAgIGFycmF5ID0gXCJhcnJheVwiLFxuICAgIHBhc3N3b3JkID0gXCJwYXNzd29yZFwiLFxuICAgIHJhZGlvID0gXCJyYWRpb1wiLFxuICAgIHRleHQgPSBcInRleHRcIixcbiAgICBzdHJpbmdzID0gXCJzdHJpbmdzXCIsXG4gICAgaW50cyA9IFwiaW50c1wiLFxuICAgIGxvbmdUZXh0ID0gXCJsb25nVGV4dFwiLFxuICAgIGNvbG9yID0gXCJjb2xvclwiLFxuICAgIGxvZ28gPSBcImxvZ29cIixcbiAgICBjaGVjayA9IFwiY2hlY2tcIixcbiAgICBwaG9uZU51bWJlciA9IFwicGhvbmVOdW1iZXJcIixcbiAgICBwaG9uZU51bWJlclBsID0gXCJwaG9uZU51bWJlclBsXCIsXG4gICAgcGVzZWwgPSBcInBlc2VsXCIsXG4gICAgcGRmID0gXCJwZGZcIixcbiAgICB2aWRlbyA9IFwidmlkZW9cIixcbiAgICBhdHRhY2htZW50ID0gXCJhdHRhY2htZW50XCIsXG4gICAgZGF0ZVJhbmdlID0gXCJkYXRlUmFuZ2VcIixcbiAgICBpbWFnZSA9IFwiaW1hZ2VcIixcbiAgICBmbG9hdCA9IFwiZmxvYXRcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTcGVjaWZpY2F0aW9uIHtcbiAgICBjcml0ZXJpYTogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNb2RlbEZpbHRlciB7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgZmllbGRUeXBlPzogRmllbGRUeXBlO1xuICAgIGtleTogc3RyaW5nO1xuICAgIHR5cGU6ICc9JyB8ICchPScgfCAnPj0nIHwgJzw9JyB8ICc8JyB8ICc+JyB8ICd+PSc7XG4gICAgcG9zc2liaWxpdGllcyQ/OiBPYnNlcnZhYmxlPHsgaWQ6IGFueSwgdGV4dDogc3RyaW5nIH1bXT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZGVsU3RlcCB7XG4gICAgbnVtYmVyOiBudW1iZXI7XG4gICAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNb2RlbE1ldGFkYXRhIHtcbiAgICB0aXRsZUtleT86IHN0cmluZztcbiAgICBwZXJtaXNzaW9ucz86IEFycmF5PHN0cmluZz47XG4gICAgZmlsdGVycz86IEFycmF5PElNb2RlbEZpbHRlcj47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkTWV0YWRhdGEgZXh0ZW5kcyBJRmllbGRNb2RpZnlNZXRhZGF0YSB7XG4gICAgdHlwZT86IEZpZWxkVHlwZTtcbiAgICBjbGFzc1R5cGU/OiBhbnk7XG4gICAgcG9zc2liaWxpdGllcz86IEFycmF5PGFueT4gfCBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkTW9kaWZ5TWV0YWRhdGEge1xuICAgIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgICBmb2N1c2VkPzogYm9vbGVhbjtcbiAgICBjb25maXJtPzogYm9vbGVhbjtcbiAgICBwZXJtaXNzaW9ucz86IEFycmF5PHN0cmluZz47XG4gICAgdW5pcXVlPzogYm9vbGVhbiB8IElGaWVsZFVuaXF1ZU1ldGFkYXRhO1xuICAgIGRlZmFsdFZhbHVlPzogKCkgPT4gYW55O1xuICAgIGVuYWJsZWQ/OiBJU3BlY2lmaWNhdGlvbjtcbiAgICBoaWRlPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBAZGVzYyAtIE1vZGVsIHN0ZXAgY29uZmlndXJhdGlvblxuICAgICAqL1xuICAgIHN0ZXA/OiBJTW9kZWxTdGVwO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZEVkaXRNZXRhZGF0YSBleHRlbmRzIElGaWVsZE1vZGlmeU1ldGFkYXRhIHtcbiAgICBtdWx0aT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkTGlzdE1ldGFkYXRhIHtcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBmaWx0ZXI/OiBib29sZWFuO1xuICAgIHBlcm1pc3Npb25zPzogQXJyYXk8c3RyaW5nPjtcbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBkeW5hbWljIGxpc3QgdGFibGUgZGF0YVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkeW5hbWljLmhlYWRlcktleSAtIGNvbHVtbiBoZWFkZXIgb2JqZWN0IGtleVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkeW5hbWljLnJvd0tleSAtIGNvbHVtbiByb3cgdmFsdWUgb2JqZWN0IGtleVxuICAgICAqL1xuICAgIGR5bmFtaWM/OiB7IGhlYWRlcktleTogc3RyaW5nLCByb3dLZXk6IHN0cmluZyB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZpZWxkRGV0YWlsc01ldGFkYXRhIHtcbiAgICBvcmRlcj86IG51bWJlcjtcbiAgICBwZXJtaXNzaW9ucz86IEFycmF5PHN0cmluZz47XG4gICAgZW5hYmxlZD86IElTcGVjaWZpY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNb2RlbE9wdGlvbnMge1xuICAgIHRpdGxlS2V5Pzogc3RyaW5nO1xuICAgIGZpbHRlcnM/OiBBcnJheTxJTW9kZWxGaWx0ZXI+O1xuICAgIGNyZWF0ZT86IElNb2RlbE1vZGVPcHRpb25zO1xuICAgIHVwZGF0ZT86IElNb2RlbE1vZGVPcHRpb25zO1xuICAgIGxpc3Q/OiBJTW9kZWxNb2RlT3B0aW9ucztcbiAgICBkZXRhaWxzPzogSU1vZGVsTW9kZU9wdGlvbnM7XG4gICAgcmVtb3ZlPzogSU1vZGVsTW9kZU9wdGlvbnM7XG4gICAgY3VzdG9tcz86IEFycmF5PElNb2RlbE1vZGVPcHRpb25zQ3VzdG9tPjtcbiAgICAvKipcbiAgICAgKiBAZGVzYyAtIEFsbG93IGV4cG9ydCBmaWVsZCBkYXRhXG4gICAgICovXG4gICAgZXhwb3J0PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBAZGVzYyAtIEFsbG93IGltcG9ydCBmaWVsZCBkYXRhXG4gICAgICovXG4gICAgaW1wb3J0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJTW9kZWxNb2RlT3B0aW9ucyB7XG4gICAgcGVybWlzc2lvbnM/OiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNb2RlbE1vZGVPcHRpb25zQ3VzdG9tIGV4dGVuZHMgSU1vZGVsTW9kZU9wdGlvbnMge1xuICAgIG1vZGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmllbGRPcHRpb25zIGV4dGVuZHMgSUZpZWxkTWV0YWRhdGEge1xuICAgIGNyZWF0ZT86IElGaWVsZE1vZGlmeU1ldGFkYXRhIHwgYm9vbGVhbjtcbiAgICB1cGRhdGU/OiBJRmllbGRFZGl0TWV0YWRhdGEgfCBib29sZWFuO1xuICAgIGxpc3Q/OiBJRmllbGRMaXN0TWV0YWRhdGEgfCBib29sZWFuO1xuICAgIGRldGFpbHM/OiBJRmllbGREZXRhaWxzTWV0YWRhdGEgfCBib29sZWFuO1xuICAgIGN1c3RvbXM/OiBBcnJheTxJTW9kZWxNZXRhZGF0YUN1c3RvbT47XG4gICAgc2VhcmNoPzogYm9vbGVhbjtcbiAgICBpbmZvPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElNb2RlbE1ldGFkYXRhQ3VzdG9tIGV4dGVuZHMgSU1vZGVsTWV0YWRhdGEge1xuICAgIG1vZGU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGaWVsZFVuaXF1ZU1ldGFkYXRhIHtcbiAgICB3aXRoRmllbGRzPzogQXJyYXk8c3RyaW5nPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRmllbGRDdXN0b21NZXRhZGF0YSBleHRlbmRzIElGaWVsZE1vZGlmeU1ldGFkYXRhLCBJRmllbGRMaXN0TWV0YWRhdGEge1xuICAgIG1vZGU6IHN0cmluZztcbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- export const SYMBOL_MODEL = Symbol.for('smartsoft:model');
2
- export const SYMBOL_FIELD = Symbol.for('smartsoft:field');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkL21vZGVscy9zcmMvbGliL3N5bWJvbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztBQUMxRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFNZTUJPTF9NT0RFTCA9IFN5bWJvbC5mb3IoJ3NtYXJ0c29mdDptb2RlbCcpO1xuZXhwb3J0IGNvbnN0IFNZTUJPTF9GSUVMRCA9IFN5bWJvbC5mb3IoJ3NtYXJ0c29mdDpmaWVsZCcpO1xuIl19
@@ -1,75 +0,0 @@
1
- import { SYMBOL_FIELD, SYMBOL_MODEL } from "./symbols";
2
- export function getModelFieldKeys(type) {
3
- if (!type["__fields"])
4
- return [];
5
- return Object.keys(type["__fields"]);
6
- }
7
- export function getModelFieldOptions(instance, fieldKey) {
8
- return Reflect.getMetadata(SYMBOL_FIELD, instance, fieldKey);
9
- }
10
- export function getModelFieldsWithOptions(instance) {
11
- const keys = getModelFieldKeys(instance.constructor);
12
- return keys.map((item) => {
13
- return {
14
- key: item,
15
- options: getModelFieldOptions(instance, item),
16
- };
17
- });
18
- }
19
- export function getModelOptions(type) {
20
- return Reflect.getMetadata(SYMBOL_MODEL, type);
21
- }
22
- export function isModel(instance) {
23
- if (!instance || !instance.constructor)
24
- return false;
25
- return Reflect.hasMetadata(SYMBOL_MODEL, instance.constructor);
26
- }
27
- export function getInvalidFields(instance, mode, permissions) {
28
- const result = [];
29
- getModelFieldsWithOptions(instance).forEach(({ key, options }) => {
30
- let required = options.required;
31
- if ((mode === "create" || mode === "update") &&
32
- options[mode] &&
33
- options[mode].constructor) {
34
- required = options[mode].required;
35
- if (required &&
36
- permissions &&
37
- options[mode].permissions) {
38
- required = options[mode].permissions.some((op) => permissions.some((p) => p === op));
39
- }
40
- }
41
- if (required && (instance[key] === null || instance[key] === undefined || instance[key] === ''))
42
- result.push(key);
43
- });
44
- return result;
45
- }
46
- export function castModel(instance, mode, permissions) {
47
- if (!isModel(instance))
48
- return;
49
- const fieldsWithOptions = getModelFieldsWithOptions(instance);
50
- Object.keys(instance)
51
- .filter((key) => key !== "id")
52
- .forEach((key) => {
53
- const fieldWidthOptions = fieldsWithOptions.find((f) => f.key === key);
54
- if (!fieldWidthOptions) {
55
- delete instance[key];
56
- return;
57
- }
58
- if ((mode === "create" || mode === "update") &&
59
- (!fieldWidthOptions.options[mode] ||
60
- (permissions &&
61
- fieldWidthOptions.options[mode].permissions &&
62
- !fieldWidthOptions.options[mode].permissions.some((op) => permissions.some((p) => op === p))))) {
63
- delete instance[key];
64
- return;
65
- }
66
- else if (mode !== "create" &&
67
- mode !== "update" &&
68
- (!fieldWidthOptions.options.customs ||
69
- !fieldWidthOptions.options.customs.some((c) => c.mode === mode))) {
70
- delete instance[key];
71
- return;
72
- }
73
- });
74
- }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC9tb2RlbHMvc3JjL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV2RCxNQUFNLFVBQVUsaUJBQWlCLENBQUksSUFBTztJQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxRQUFXLEVBQ1gsUUFBZ0I7SUFFaEIsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVELE1BQU0sVUFBVSx5QkFBeUIsQ0FDdkMsUUFBVztJQUVYLE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVyRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUN2QixPQUFPO1lBQ0wsR0FBRyxFQUFFLElBQUk7WUFDVCxPQUFPLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQztTQUM5QyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFTO0lBQ3ZDLE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUksUUFBVztJQUNwQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFdB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QUFDO1lBQ3JCLE9BQU87U0FDUjthQUFNLElBQ0wsSUFBSSxLQUFLLFFBQVE7WUFDakIsSUFBSSxLQUFLLFFBQVE7WUFDakIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxPQUFPO2dCQUNqQyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLEVBQ2xFO1lBQ0EsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckIsT0FBTztTQUNSO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUZpZWxkT3B0aW9ucywgSU1vZGVsTWV0YWRhdGEsIElNb2RlbE9wdGlvbnMgfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XG5pbXBvcnQgeyBTWU1CT0xfRklFTEQsIFNZTUJPTF9NT0RFTCB9IGZyb20gXCIuL3N5bWJvbHNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGVsRmllbGRLZXlzPFQ+KHR5cGU6IFQpOiBBcnJheTxzdHJpbmc+IHtcbiAgaWYgKCF0eXBlW1wiX19maWVsZHNcIl0pIHJldHVybiBbXTtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHR5cGVbXCJfX2ZpZWxkc1wiXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2RlbEZpZWxkT3B0aW9uczxUPihcbiAgaW5zdGFuY2U6IFQsXG4gIGZpZWxkS2V5OiBzdHJpbmdcbik6IElGaWVsZE9wdGlvbnMge1xuICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YShTWU1CT0xfRklFTEQsIGluc3RhbmNlLCBmaWVsZEtleSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNb2RlbEZpZWxkc1dpdGhPcHRpb25zPFQ+KFxuICBpbnN0YW5jZTogVFxuKTogQXJyYXk8eyBrZXk6IHN0cmluZzsgb3B0aW9uczogSUZpZWxkT3B0aW9ucyB9PiB7XG4gIGNvbnN0IGtleXMgPSBnZXRNb2RlbEZpZWxkS2V5cyhpbnN0YW5jZS5jb25zdHJ1Y3Rvcik7XG5cbiAgcmV0dXJuIGtleXMubWFwKChpdGVtKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogaXRlbSxcbiAgICAgIG9wdGlvbnM6IGdldE1vZGVsRmllbGRPcHRpb25zKGluc3RhbmNlLCBpdGVtKSxcbiAgICB9O1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZGVsT3B0aW9ucyh0eXBlOiBhbnkpOiBJTW9kZWxPcHRpb25zIHtcbiAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoU1lNQk9MX01PREVMLCB0eXBlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTW9kZWw8VD4oaW5zdGFuY2U6IFQpOiBib29sZWFuIHtcbiAgaWYgKCFpbnN0YW5jZSB8fCAhaW5zdGFuY2UuY29uc3RydWN0b3IpIHJldHVybiBmYWxzZTtcbiAgcmV0dXJuIFJlZmxlY3QuaGFzTWV0YWRhdGEoU1lNQk9MX01PREVMLCBpbnN0YW5jZS5jb25zdHJ1Y3Rvcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnZhbGlkRmllbGRzPFQ+KFxuICBpbnN0YW5jZTogVCxcbiAgbW9kZTogXCJjcmVhdGVcIiB8IFwidXBkYXRlXCIgfCBzdHJpbmcsXG4gIHBlcm1pc3Npb25zOiBBcnJheTxzdHJpbmc+XG4pOiBBcnJheTxzdHJpbmc+IHtcbiAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgZ2V0TW9kZWxGaWVsZHNXaXRoT3B0aW9ucyhpbnN0YW5jZSkuZm9yRWFjaCgoeyBrZXksIG9wdGlvbnMgfSkgPT4ge1xuICAgIGxldCByZXF1aXJlZCA9IG9wdGlvbnMucmVxdWlyZWQ7XG5cbiAgICBpZiAoXG4gICAgICAobW9kZSA9PT0gXCJjcmVhdGVcIiB8fCBtb2RlID09PSBcInVwZGF0ZVwiKSAmJlxuICAgICAgb3B0aW9uc1ttb2RlXSAmJlxuICAgICAgb3B0aW9uc1ttb2RlXS5jb25zdHJ1Y3RvclxuICAgICkge1xuICAgICAgcmVxdWlyZWQgPSAob3B0aW9uc1ttb2RlXSBhcyBJRmllbGRPcHRpb25zKS5yZXF1aXJlZDtcblxuICAgICAgaWYgKFxuICAgICAgICByZXF1aXJlZCAmJlxuICAgICAgICBwZXJtaXNzaW9ucyAmJlxuICAgICAgICAob3B0aW9uc1ttb2RlXSBhcyBJRmllbGRPcHRpb25zKS5wZXJtaXNzaW9uc1xuICAgICAgKSB7XG4gICAgICAgIHJlcXVpcmVkID0gKG9wdGlvbnNbbW9kZV0gYXMgSUZpZWxkT3B0aW9ucykucGVybWlzc2lvbnMuc29tZSgob3ApID0+XG4gICAgICAgICAgcGVybWlzc2lvbnMuc29tZSgocCkgPT4gcCA9PT0gb3ApXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHJlcXVpcmVkICYmIChpbnN0YW5jZVtrZXldID09PSBudWxsIHx8IGluc3RhbmNlW2tleV0gPT09IHVuZGVmaW5lZCB8fCBpbnN0YW5jZVtrZXldID09PSAnJykpIHJlc3VsdC5wdXNoKGtleSk7XG4gIH0pO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYXN0TW9kZWw8VD4oXG4gIGluc3RhbmNlOiBULFxuICBtb2RlOiBcImNyZWF0ZVwiIHwgXCJ1cGRhdGVcIiB8IHN0cmluZyxcbiAgcGVybWlzc2lvbnM6IEFycmF5PHN0cmluZz5cbik6IHZvaWQge1xuICBpZiAoIWlzTW9kZWwoaW5zdGFuY2UpKSByZXR1cm47XG5cbiAgY29uc3QgZmllbGRzV2l0aE9wdGlvbnMgPSBnZXRNb2RlbEZpZWxkc1dpdGhPcHRpb25zKGluc3RhbmNlKTtcblxuICBPYmplY3Qua2V5cyhpbnN0YW5jZSlcbiAgICAuZmlsdGVyKChrZXkpID0+IGtleSAhPT0gXCJpZFwiKVxuICAgIC5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIGNvbnN0IGZpZWxkV2lkdGhPcHRpb25zID0gZmllbGRzV2l0aE9wdGlvbnMuZmluZCgoZikgPT4gZi5rZXkgPT09IGtleSk7XG5cbiAgICAgIGlmICghZmllbGRXaWR0aE9wdGlvbnMpIHtcbiAgICAgICAgZGVsZXRlIGluc3RhbmNlW2tleV07XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICAobW9kZSA9PT0gXCJjcmVhdGVcIiB8fCBtb2RlID09PSBcInVwZGF0ZVwiKSAmJlxuICAgICAgICAoIWZpZWxkV2lkdGhPcHRpb25zLm9wdGlvbnNbbW9kZV0gfHxcbiAgICAgICAgICAocGVybWlzc2lvbnMgJiZcbiAgICAgICAgICAgIChmaWVsZFdpZHRoT3B0aW9ucy5vcHRpb25zW21vZGVdIGFzIElGaWVsZE9wdGlvbnMpLnBlcm1pc3Npb25zICYmXG4gICAgICAgICAgICAhKGZpZWxkV2lkdGhPcHRpb25zLm9wdGlvbnNbXG4gICAgICAgICAgICAgIG1vZGVcbiAgICAgICAgICAgIF0gYXMgSUZpZWxkT3B0aW9ucykucGVybWlzc2lvbnMuc29tZSgob3ApID0+XG4gICAgICAgICAgICAgIHBlcm1pc3Npb25zLnNvbWUoKHApID0+IG9wID09PSBwKVxuICAgICAgICAgICAgKSkpXG4gICAgICApIHtcbiAgICAgICAgZGVsZXRlIGluc3RhbmNlW2tleV07XG4gICAgICAgIHJldHVybjtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIG1vZGUgIT09IFwiY3JlYXRlXCIgJiZcbiAgICAgICAgbW9kZSAhPT0gXCJ1cGRhdGVcIiAmJlxuICAgICAgICAoIWZpZWxkV2lkdGhPcHRpb25zLm9wdGlvbnMuY3VzdG9tcyB8fFxuICAgICAgICAgICFmaWVsZFdpZHRoT3B0aW9ucy5vcHRpb25zLmN1c3RvbXMuc29tZSgoYykgPT4gYy5tb2RlID09PSBtb2RlKSlcbiAgICAgICkge1xuICAgICAgICBkZWxldGUgaW5zdGFuY2Vba2V5XTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2Z0MDAxLW1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvc2hhcmVkL21vZGVscy9zcmMvc21hcnRzb2Z0MDAxLW1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,178 +0,0 @@
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 ? Object.assign({}, options) : {};
45
- Reflect.defineMetadata(SYMBOL_MODEL, options, target);
46
- target.prototype.toJSON = function () {
47
- const result = Object.assign({}, 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 ? Object.assign({}, 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
@@ -1 +0,0 @@
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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"}
@@ -1,178 +0,0 @@
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
@@ -1 +0,0 @@
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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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- /// <amd-module name="@smartsoft001/models" />
5
- export * from './index';