@sumaris-net/ngx-components 2.0.0-rc40 → 2.0.0-rc41

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.
@@ -47,77 +47,51 @@ export function EntityClass(opts) {
47
47
  // Define static field TYPENAME
48
48
  clazz.TYPENAME = typename;
49
49
  // Define static fromObject()
50
- if (!clazz.fromObject) {
51
- if (opts.fromObjectReuseStrategy === 'clone') {
52
- constructor.fromObject = function (source, opts) {
53
- if (!source)
54
- return undefined;
55
- if (source instanceof constructor)
56
- return source.clone(opts);
57
- const target = new constructor();
58
- target.fromObject(source, opts);
59
- return target;
60
- };
61
- constructor.asObject = function (source, opts) {
62
- if (!source)
63
- return undefined;
64
- if (source instanceof constructor)
65
- return source.asObject(opts);
66
- return Object.assign({}, source);
67
- };
68
- }
69
- else {
70
- clazz.fromObject = function (source, opts) {
71
- if (!source)
72
- return undefined;
73
- if (source instanceof constructor) {
74
- // DEBUG
75
- //console.debug('@EntityClass() fromObject() => will recycle existing object: ', source);
76
- return source;
77
- }
78
- const target = new constructor();
79
- target.fromObject(source, opts);
80
- return target;
81
- };
82
- clazz.asObject = function (source, opts) {
83
- if (!source)
84
- return undefined;
85
- if (source instanceof constructor) {
86
- return source.asObject(opts);
87
- }
88
- // DEBUG
89
- //console.debug('@EntityClass() asObject() => will recycle existing object: ', source);
90
- return source;
91
- };
92
- }
50
+ if (opts.fromObjectReuseStrategy === 'clone') {
51
+ clazz.fromObject = function (source, opts) {
52
+ if (!source)
53
+ return undefined;
54
+ if (source instanceof constructor)
55
+ return source.clone(opts);
56
+ const target = new constructor();
57
+ target.fromObject(source, opts);
58
+ return target;
59
+ };
60
+ clazz.asObject = function (source, opts) {
61
+ if (!source)
62
+ return undefined;
63
+ if (source instanceof constructor)
64
+ return source.asObject(opts);
65
+ return Object.assign({}, source);
66
+ };
93
67
  }
94
- // Define static asObject()
95
- if (!clazz.asObject) {
96
- if (opts.fromObjectReuseStrategy === 'clone') {
97
- clazz.asObject = function (source, opts) {
98
- if (!source)
99
- return undefined;
100
- if (source instanceof constructor)
101
- return source.asObject(opts);
102
- return Object.assign({}, source);
103
- };
104
- }
105
- else {
106
- clazz.asObject = function (source, opts) {
107
- if (!source)
108
- return undefined;
109
- if (source instanceof constructor) {
110
- return source.asObject(opts);
111
- }
68
+ else {
69
+ clazz.fromObject = function (source, opts) {
70
+ if (!source)
71
+ return undefined;
72
+ if (source instanceof constructor) {
112
73
  // DEBUG
113
- //console.debug('@EntityClass() asObject() => will recycle existing object: ', source);
74
+ //console.debug('@EntityClass() fromObject() => will recycle existing object: ', source);
114
75
  return source;
115
- };
116
- }
76
+ }
77
+ const target = new constructor();
78
+ target.fromObject(source, opts);
79
+ return target;
80
+ };
81
+ clazz.asObject = function (source, opts) {
82
+ if (!source)
83
+ return undefined;
84
+ if (source instanceof constructor) {
85
+ return source.asObject(opts);
86
+ }
87
+ // DEBUG
88
+ //console.debug('@EntityClass() asObject() => will recycle existing object: ', source);
89
+ return source;
90
+ };
117
91
  }
118
92
  // Register the entity class
119
93
  EntityClasses.register(typename, constructor);
120
94
  return constructor;
121
95
  };
122
96
  }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5LmRlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJdEQsTUFBTSxPQUFPLGFBQWE7SUFHeEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQixFQUFFLFdBQXdCO1FBQ3hELGdDQUFnQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLFFBQVE7UUFDUix3RUFBd0U7UUFFeEUsYUFBYTtRQUNiLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBc0IsVUFBa0I7UUFDaEQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixHQUFHLFVBQVUsR0FBRyw2REFBNkQsQ0FBQyxDQUFDO1NBQzlIO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQXNCLEtBQVUsRUFBRSxJQUlsRDtRQUNDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDekIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJ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QU8sV0FBVyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyByZW1vdmVFbmQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcblxuZGVjbGFyZSB0eXBlIENvbnN0cnVjdG9yID0gbmV3KC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk7XG5cbmV4cG9ydCBjbGFzcyBFbnRpdHlDbGFzc2VzIHtcbiAgc3RhdGljIENMQVNTRVNfQllfTkFNRSA9IG5ldyBNYXA8c3RyaW5nLCBDb25zdHJ1Y3Rvcj4oKTtcblxuICBzdGF0aWMgcmVnaXN0ZXIodHlwZW5hbWU6IHN0cmluZywgZW50aXR5Q2xhc3M6IENvbnN0cnVjdG9yKSB7XG4gICAgLy8gQ29udmVydCB0byBleHRyYWN0IGVudGl0eU5hbWVcbiAgICBjb25zdCBlbnRpdHlOYW1lID0gcmVtb3ZlRW5kKHR5cGVuYW1lLCAnVk8nKTtcbiAgICAvLyBERUJVR1xuICAgIC8vY29uc29sZS5kZWJ1ZygnW2VudGl0eS1jbGFzc2VzXSBEZXRlY3RlZCBlbnRpdHkgY2xhc3MgJyArIGVudGl0eU5hbWUpO1xuXG4gICAgLy8gQWRkIHRvIG1hcFxuICAgIEVudGl0eUNsYXNzZXMuQ0xBU1NFU19CWV9OQU1FLnNldChlbnRpdHlOYW1lLCBlbnRpdHlDbGFzcyk7XG4gIH1cblxuICBzdGF0aWMgZ2V0PFQgZXh0ZW5kcyBFbnRpdHk8VD4+KGVudGl0eU5hbWU6IHN0cmluZyk6IENvbnN0cnVjdG9yIHtcbiAgICBjb25zdCBlbnRpdHlDbGFzcyA9IEVudGl0eUNsYXNzZXMuQ0xBU1NFU19CWV9OQU1FLmdldChlbnRpdHlOYW1lKTtcbiAgICBpZiAoIWVudGl0eUNsYXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmb3VuZCBlbnRpdHkgY2xhc3MgXFwnJyArIGVudGl0eU5hbWUgKyAnXFwnLiBNYWtlIHN1cmUgaXQgZXhpc3RzIGFuZCBoYXMgdGhlIEBFbnRpdHlDbGFzcyBkZWNvcmF0b3IuJyk7XG4gICAgfVxuICAgIHJldHVybiBlbnRpdHlDbGFzcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tT2JqZWN0PFQgZXh0ZW5kcyBFbnRpdHk8VD4+KHZhbHVlOiBhbnksIG9wdHM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIHR5cGVuYW1lPzogc3RyaW5nO1xuICAgIGVudGl0eU5hbWU/OiBzdHJpbmc7XG4gIH0pOiBUIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gdmFsdWU7XG4gICAgY29uc3QgZW50aXR5TmFtZSA9IChvcHRzICYmIG9wdHMuZW50aXR5TmFtZSkgfHwgcmVtb3ZlRW5kKHZhbHVlLl9fdHlwZW5hbWUgfHwgb3B0cz8udHlwZW5hbWUsICdWTycpO1xuICAgIGlmICghZW50aXR5TmFtZSkgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIG9uZSBvZiBcXCd2YWx1ZS5fX3R5cGVuYW1lXFwnLCBcXCdvcHRzLmVudGl0eU5hbWVcXCcsIG9yIFxcJ29wdHMudHlwZW5hbWVcXCcuJyk7XG4gICAgY29uc3QgZW50aXR5Q2xhc3MgPSBFbnRpdHlDbGFzc2VzLmdldChlbnRpdHlOYW1lKSBhcyBhbnk7XG4gICAgaWYgKHR5cGVvZiBlbnRpdHlDbGFzcy5mcm9tT2JqZWN0ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBmb3VuZCB0aGUgc3RhdGljIGZ1bmN0aW9uIFxcJycgKyBlbnRpdHlOYW1lICsgJy5mcm9tT2JqZWN0KClcXCcuIE1ha2Ugc3VyZSB0aGlzIGZ1bmN0aW9uIGhhcyBiZWVuIGRlY2xhcmVkIGFuZCB0aGUgZW50aXR5IGNsYXNzIGhhcyB0aGUgQEVudGl0eUNsYXNzIGRlY29yYXRvcicpO1xuICAgIH1cbiAgICByZXR1cm4gZW50aXR5Q2xhc3MuZnJvbU9iamVjdCh2YWx1ZSwgb3B0cykgYXMgVDtcbiAgfVxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWFycm93L3ByZWZlci1hcnJvdy1mdW5jdGlvbnNcbmV4cG9ydCBmdW5jdGlvbiBFbnRpdHlDbGFzcyhvcHRzOiB7XG4gIHR5cGVuYW1lOiBzdHJpbmc7XG4gIGZyb21PYmplY3RSZXVzZVN0cmF0ZWd5PzogJ2RlZmF1bHQnIHwgJ2Nsb25lJztcbn0pIHtcblxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItYXJyb3cvcHJlZmVyLWFycm93LWZ1bmN0aW9uc1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oY29uc3RydWN0b3I6IFR8YW55KSB7XG5cbiAgICAvLyBNYWtlIHN1cmUgdGhlIGNsYXNzIGV4dGVuZHMgRW50aXR5XG4gICAgaWYgKCFlbnZpcm9ubWVudC5wcm9kdWN0aW9uKSB7XG4gICAgICBjb25zdCBvYmogPSBuZXcgY29uc3RydWN0b3IoKTtcbiAgICAgIGlmICghKG9iaiBpbnN0YW5jZW9mIEVudGl0eSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDbGFzcyAke2NvbnN0cnVjdG9yLm5hbWV9IG11c3QgZXh0ZW5kcyA8PEVudGl0eT4+IHRvIGJlIGFibGUgdG8gdXNlIEBGcm9tT2JqZWN0IWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNsYXp6ID0gKGNvbnN0cnVjdG9yIGFzIGFueSlcbiAgICBjb25zdCB0eXBlbmFtZSA9IG9wdHMudHlwZW5hbWUgfHwgYCR7Y29uc3RydWN0b3IubmFtZX1WT2A7XG5cbiAgICAvLyBEZWZpbmUgc3RhdGljIGZpZWxkIFRZUEVOQU1FXG4gICAgY2xhenouVFlQRU5BTUUgPSB0eXBlbmFtZTtcblxuICAgIC8vIERlZmluZSBzdGF0aWMgZnJvbU9iamVjdCgpXG4gICAgaWYgKCFjbGF6ei5mcm9tT2JqZWN0KSB7XG4gICAgICBpZiAob3B0cy5mcm9tT2JqZWN0UmV1c2VTdHJhdGVneSA9PT0gJ2Nsb25lJykge1xuXG4gICAgICAgIChjb25zdHJ1Y3RvciBhcyBhbnkpLmZyb21PYmplY3QgPSBmdW5jdGlvbihzb3VyY2U6IGFueSwgb3B0cz86IGFueSk6IFQge1xuICAgICAgICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBjb25zdHJ1Y3RvcikgcmV0dXJuIChzb3VyY2UgYXMgYW55KS5jbG9uZShvcHRzKSBhcyBUO1xuICAgICAgICAgIGNvbnN0IHRhcmdldDogYW55ID0gbmV3IGNvbnN0cnVjdG9yKCk7XG4gICAgICAgICAgdGFyZ2V0LmZyb21PYmplY3Qoc291cmNlLCBvcHRzKTtcbiAgICAgICAgICByZXR1cm4gdGFyZ2V0IGFzIFQ7XG4gICAgICAgIH07XG4gICAgICAgIChjb25zdHJ1Y3RvciBhcyBhbnkpLmFzT2JqZWN0ID0gZnVuY3Rpb24oc291cmNlOiBhbnksIG9wdHM/OiBhbnkpOiBhbnkge1xuICAgICAgICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBjb25zdHJ1Y3RvcikgcmV0dXJuIHNvdXJjZS5hc09iamVjdChvcHRzKTtcbiAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc291cmNlKTtcbiAgICAgICAgfTtcblxuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGNsYXp6LmZyb21PYmplY3QgPSBmdW5jdGlvbihzb3VyY2U6IGFueSwgb3B0cz86IGFueSk6IFQge1xuICAgICAgICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBjb25zdHJ1Y3Rvcikge1xuICAgICAgICAgICAgLy8gREVCVUdcbiAgICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZygnQEVudGl0eUNsYXNzKCkgZnJvbU9iamVjdCgpID0+IHdpbGwgcmVjeWNsZSBleGlzdGluZyBvYmplY3Q6ICcsIHNvdXJjZSk7XG4gICAgICAgICAgICByZXR1cm4gc291cmNlIGFzIFQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHRhcmdldDogYW55ID0gbmV3IGNvbnN0cnVjdG9yKCk7XG4gICAgICAgICAgdGFyZ2V0LmZyb21PYmplY3Qoc291cmNlLCBvcHRzKTtcbiAgICAgICAgICByZXR1cm4gdGFyZ2V0IGFzIFQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgY2xhenouYXNPYmplY3QgPSBmdW5jdGlvbihzb3VyY2U6IGFueSwgb3B0cz86IGFueSk6IGFueSB7XG4gICAgICAgICAgaWYgKCFzb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIGNvbnN0cnVjdG9yKSB7XG4gICAgICAgICAgICByZXR1cm4gc291cmNlLmFzT2JqZWN0KG9wdHMpO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBERUJVR1xuICAgICAgICAgIC8vY29uc29sZS5kZWJ1ZygnQEVudGl0eUNsYXNzKCkgYXNPYmplY3QoKSA9PiB3aWxsIHJlY3ljbGUgZXhpc3Rpbmcgb2JqZWN0OiAnLCBzb3VyY2UpO1xuICAgICAgICAgIHJldHVybiBzb3VyY2U7XG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRGVmaW5lIHN0YXRpYyBhc09iamVjdCgpXG4gICAgaWYgKCFjbGF6ei5hc09iamVjdCkge1xuICAgICAgaWYgKG9wdHMuZnJvbU9iamVjdFJldXNlU3RyYXRlZ3kgPT09ICdjbG9uZScpIHtcbiAgICAgICAgY2xhenouYXNPYmplY3QgPSBmdW5jdGlvbihzb3VyY2U6IGFueSwgb3B0cz86IGFueSk6IGFueSB7XG4gICAgICAgICAgaWYgKCFzb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgICAgaWYgKHNvdXJjZSBpbnN0YW5jZW9mIGNvbnN0cnVjdG9yKSByZXR1cm4gc291cmNlLmFzT2JqZWN0KG9wdHMpO1xuICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzb3VyY2UpO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGNsYXp6LmFzT2JqZWN0ID0gZnVuY3Rpb24oc291cmNlOiBhbnksIG9wdHM/OiBhbnkpOiBhbnkge1xuICAgICAgICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBjb25zdHJ1Y3Rvcikge1xuICAgICAgICAgICAgcmV0dXJuIHNvdXJjZS5hc09iamVjdChvcHRzKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gREVCVUdcbiAgICAgICAgICAvL2NvbnNvbGUuZGVidWcoJ0BFbnRpdHlDbGFzcygpIGFzT2JqZWN0KCkgPT4gd2lsbCByZWN5Y2xlIGV4aXN0aW5nIG9iamVjdDogJywgc291cmNlKTtcbiAgICAgICAgICByZXR1cm4gc291cmNlO1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBSZWdpc3RlciB0aGUgZW50aXR5IGNsYXNzXG4gICAgRW50aXR5Q2xhc3Nlcy5yZWdpc3Rlcih0eXBlbmFtZSwgY29uc3RydWN0b3IpO1xuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yO1xuICB9O1xufVxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5LmRlY29yYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFJdEQsTUFBTSxPQUFPLGFBQWE7SUFHeEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFnQixFQUFFLFdBQXdCO1FBQ3hELGdDQUFnQztRQUNoQyxNQUFNLFVBQVUsR0FBRyxTQUFTLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLFFBQVE7UUFDUix3RUFBd0U7UUFFeEUsYUFBYTtRQUNiLGFBQWEsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBc0IsVUFBa0I7UUFDaEQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixHQUFHLFVBQVUsR0FBRyw2REFBNkQsQ0FBQyxDQUFDO1NBQzlIO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQXNCLEtBQVUsRUFBRSxJQUlsRDtRQUNDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDekIsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJ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SUFBSSxDQUFDLE1BQU07b0JBQUUsT0FBTyxTQUFTLENBQUM7Z0JBQzlCLElBQUksTUFBTSxZQUFZLFdBQVcsRUFBRTtvQkFDakMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM5QjtnQkFDRCxRQUFRO2dCQUNSLHVGQUF1RjtnQkFDdkYsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQyxDQUFDO1NBQ0g7UUFFRCw0QkFBNEI7UUFDNUIsYUFBYSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFOUMsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IHJlbW92ZUVuZCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuXG5kZWNsYXJlIHR5cGUgQ29uc3RydWN0b3IgPSBuZXcoLi4uYXJnczogYW55W10pID0+IGFueTtcblxuZXhwb3J0IGNsYXNzIEVudGl0eUNsYXNzZXMge1xuICBzdGF0aWMgQ0xBU1NFU19CWV9OQU1FID0gbmV3IE1hcDxzdHJpbmcsIENvbnN0cnVjdG9yPigpO1xuXG4gIHN0YXRpYyByZWdpc3Rlcih0eXBlbmFtZTogc3RyaW5nLCBlbnRpdHlDbGFzczogQ29uc3RydWN0b3IpIHtcbiAgICAvLyBDb252ZXJ0IHRvIGV4dHJhY3QgZW50aXR5TmFtZVxuICAgIGNvbnN0IGVudGl0eU5hbWUgPSByZW1vdmVFbmQodHlwZW5hbWUsICdWTycpO1xuICAgIC8vIERFQlVHXG4gICAgLy9jb25zb2xlLmRlYnVnKCdbZW50aXR5LWNsYXNzZXNdIERldGVjdGVkIGVudGl0eSBjbGFzcyAnICsgZW50aXR5TmFtZSk7XG5cbiAgICAvLyBBZGQgdG8gbWFwXG4gICAgRW50aXR5Q2xhc3Nlcy5DTEFTU0VTX0JZX05BTUUuc2V0KGVudGl0eU5hbWUsIGVudGl0eUNsYXNzKTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQ8VCBleHRlbmRzIEVudGl0eTxUPj4oZW50aXR5TmFtZTogc3RyaW5nKTogQ29uc3RydWN0b3Ige1xuICAgIGNvbnN0IGVudGl0eUNsYXNzID0gRW50aXR5Q2xhc3Nlcy5DTEFTU0VTX0JZX05BTUUuZ2V0KGVudGl0eU5hbWUpO1xuICAgIGlmICghZW50aXR5Q2xhc3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZvdW5kIGVudGl0eSBjbGFzcyBcXCcnICsgZW50aXR5TmFtZSArICdcXCcuIE1ha2Ugc3VyZSBpdCBleGlzdHMgYW5kIGhhcyB0aGUgQEVudGl0eUNsYXNzIGRlY29yYXRvci4nKTtcbiAgICB9XG4gICAgcmV0dXJuIGVudGl0eUNsYXNzO1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3Q8VCBleHRlbmRzIEVudGl0eTxUPj4odmFsdWU6IGFueSwgb3B0cz86IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgdHlwZW5hbWU/OiBzdHJpbmc7XG4gICAgZW50aXR5TmFtZT86IHN0cmluZztcbiAgfSk6IFQge1xuICAgIGlmICghdmFsdWUpIHJldHVybiB2YWx1ZTtcbiAgICBjb25zdCBlbnRpdHlOYW1lID0gKG9wdHMgJiYgb3B0cy5lbnRpdHlOYW1lKSB8fCByZW1vdmVFbmQodmFsdWUuX190eXBlbmFtZSB8fCBvcHRzPy50eXBlbmFtZSwgJ1ZPJyk7XG4gICAgaWYgKCFlbnRpdHlOYW1lKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3Npbmcgb25lIG9mIFxcJ3ZhbHVlLl9fdHlwZW5hbWVcXCcsIFxcJ29wdHMuZW50aXR5TmFtZVxcJywgb3IgXFwnb3B0cy50eXBlbmFtZVxcJy4nKTtcbiAgICBjb25zdCBlbnRpdHlDbGFzcyA9IEVudGl0eUNsYXNzZXMuZ2V0KGVudGl0eU5hbWUpIGFzIGFueTtcbiAgICBpZiAodHlwZW9mIGVudGl0eUNsYXNzLmZyb21PYmplY3QgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGZvdW5kIHRoZSBzdGF0aWMgZnVuY3Rpb24gXFwnJyArIGVudGl0eU5hbWUgKyAnLmZyb21PYmplY3QoKVxcJy4gTWFrZSBzdXJlIHRoaXMgZnVuY3Rpb24gaGFzIGJlZW4gZGVjbGFyZWQgYW5kIHRoZSBlbnRpdHkgY2xhc3MgaGFzIHRoZSBARW50aXR5Q2xhc3MgZGVjb3JhdG9yJyk7XG4gICAgfVxuICAgIHJldHVybiBlbnRpdHlDbGFzcy5mcm9tT2JqZWN0KHZhbHVlLCBvcHRzKSBhcyBUO1xuICB9XG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItYXJyb3cvcHJlZmVyLWFycm93LWZ1bmN0aW9uc1xuZXhwb3J0IGZ1bmN0aW9uIEVudGl0eUNsYXNzKG9wdHM6IHtcbiAgdHlwZW5hbWU6IHN0cmluZztcbiAgZnJvbU9iamVjdFJldXNlU3RyYXRlZ3k/OiAnZGVmYXVsdCcgfCAnY2xvbmUnO1xufSkge1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItYXJyb3cvcHJlZmVyLWFycm93LWZ1bmN0aW9uc1xuICByZXR1cm4gZnVuY3Rpb24gPFQgZXh0ZW5kcyBDb25zdHJ1Y3Rvcj4oY29uc3RydWN0b3I6IFQpIHtcblxuICAgIC8vIE1ha2Ugc3VyZSB0aGUgY2xhc3MgZXh0ZW5kcyBFbnRpdHlcbiAgICBpZiAoIWVudmlyb25tZW50LnByb2R1Y3Rpb24pIHtcbiAgICAgIGNvbnN0IG9iaiA9IG5ldyBjb25zdHJ1Y3RvcigpO1xuICAgICAgaWYgKCEob2JqIGluc3RhbmNlb2YgRW50aXR5KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENsYXNzICR7Y29uc3RydWN0b3IubmFtZX0gbXVzdCBleHRlbmRzIDw8RW50aXR5Pj4gdG8gYmUgYWJsZSB0byB1c2UgQEZyb21PYmplY3QhYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY2xhenogPSAoY29uc3RydWN0b3IgYXMgYW55KVxuICAgIGNvbnN0IHR5cGVuYW1lID0gb3B0cy50eXBlbmFtZSB8fCBgJHtjb25zdHJ1Y3Rvci5uYW1lfVZPYDtcblxuICAgIC8vIERlZmluZSBzdGF0aWMgZmllbGQgVFlQRU5BTUVcbiAgICBjbGF6ei5UWVBFTkFNRSA9IHR5cGVuYW1lO1xuXG4gICAgLy8gRGVmaW5lIHN0YXRpYyBmcm9tT2JqZWN0KClcbiAgICBpZiAob3B0cy5mcm9tT2JqZWN0UmV1c2VTdHJhdGVneSA9PT0gJ2Nsb25lJykge1xuXG4gICAgICBjbGF6ei5mcm9tT2JqZWN0ID0gZnVuY3Rpb24oc291cmNlOiBhbnksIG9wdHM/OiBhbnkpOiBUIHtcbiAgICAgICAgaWYgKCFzb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBjb25zdHJ1Y3RvcikgcmV0dXJuIChzb3VyY2UgYXMgYW55KS5jbG9uZShvcHRzKSBhcyBUO1xuICAgICAgICBjb25zdCB0YXJnZXQ6IGFueSA9IG5ldyBjb25zdHJ1Y3RvcigpO1xuICAgICAgICB0YXJnZXQuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMpO1xuICAgICAgICByZXR1cm4gdGFyZ2V0IGFzIFQ7XG4gICAgICB9O1xuICAgICAgY2xhenouYXNPYmplY3QgPSBmdW5jdGlvbihzb3VyY2U6IGFueSwgb3B0cz86IGFueSk6IGFueSB7XG4gICAgICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoc291cmNlIGluc3RhbmNlb2YgY29uc3RydWN0b3IpIHJldHVybiBzb3VyY2UuYXNPYmplY3Qob3B0cyk7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBzb3VyY2UpO1xuICAgICAgfTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjbGF6ei5mcm9tT2JqZWN0ID0gZnVuY3Rpb24oc291cmNlOiBhbnksIG9wdHM/OiBhbnkpOiBUIHtcbiAgICAgICAgaWYgKCFzb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChzb3VyY2UgaW5zdGFuY2VvZiBjb25zdHJ1Y3Rvcikge1xuICAgICAgICAgIC8vIERFQlVHXG4gICAgICAgICAgLy9jb25zb2xlLmRlYnVnKCdARW50aXR5Q2xhc3MoKSBmcm9tT2JqZWN0KCkgPT4gd2lsbCByZWN5Y2xlIGV4aXN0aW5nIG9iamVjdDogJywgc291cmNlKTtcbiAgICAgICAgICByZXR1cm4gc291cmNlIGFzIFQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBuZXcgY29uc3RydWN0b3IoKTtcbiAgICAgICAgdGFyZ2V0LmZyb21PYmplY3Qoc291cmNlLCBvcHRzKTtcbiAgICAgICAgcmV0dXJuIHRhcmdldCBhcyBUO1xuICAgICAgfTtcblxuICAgICAgY2xhenouYXNPYmplY3QgPSBmdW5jdGlvbihzb3VyY2U6IGFueSwgb3B0cz86IGFueSk6IGFueSB7XG4gICAgICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoc291cmNlIGluc3RhbmNlb2YgY29uc3RydWN0b3IpIHtcbiAgICAgICAgICByZXR1cm4gc291cmNlLmFzT2JqZWN0KG9wdHMpO1xuICAgICAgICB9XG4gICAgICAgIC8vIERFQlVHXG4gICAgICAgIC8vY29uc29sZS5kZWJ1ZygnQEVudGl0eUNsYXNzKCkgYXNPYmplY3QoKSA9PiB3aWxsIHJlY3ljbGUgZXhpc3Rpbmcgb2JqZWN0OiAnLCBzb3VyY2UpO1xuICAgICAgICByZXR1cm4gc291cmNlO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBSZWdpc3RlciB0aGUgZW50aXR5IGNsYXNzXG4gICAgRW50aXR5Q2xhc3Nlcy5yZWdpc3Rlcih0eXBlbmFtZSwgY29uc3RydWN0b3IpO1xuXG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yO1xuICB9O1xufVxuIl19
@@ -11231,73 +11231,47 @@ function EntityClass(opts) {
11231
11231
  // Define static field TYPENAME
11232
11232
  clazz.TYPENAME = typename;
11233
11233
  // Define static fromObject()
11234
- if (!clazz.fromObject) {
11235
- if (opts.fromObjectReuseStrategy === 'clone') {
11236
- constructor.fromObject = function (source, opts) {
11237
- if (!source)
11238
- return undefined;
11239
- if (source instanceof constructor)
11240
- return source.clone(opts);
11241
- const target = new constructor();
11242
- target.fromObject(source, opts);
11243
- return target;
11244
- };
11245
- constructor.asObject = function (source, opts) {
11246
- if (!source)
11247
- return undefined;
11248
- if (source instanceof constructor)
11249
- return source.asObject(opts);
11250
- return Object.assign({}, source);
11251
- };
11252
- }
11253
- else {
11254
- clazz.fromObject = function (source, opts) {
11255
- if (!source)
11256
- return undefined;
11257
- if (source instanceof constructor) {
11258
- // DEBUG
11259
- //console.debug('@EntityClass() fromObject() => will recycle existing object: ', source);
11260
- return source;
11261
- }
11262
- const target = new constructor();
11263
- target.fromObject(source, opts);
11264
- return target;
11265
- };
11266
- clazz.asObject = function (source, opts) {
11267
- if (!source)
11268
- return undefined;
11269
- if (source instanceof constructor) {
11270
- return source.asObject(opts);
11271
- }
11272
- // DEBUG
11273
- //console.debug('@EntityClass() asObject() => will recycle existing object: ', source);
11274
- return source;
11275
- };
11276
- }
11234
+ if (opts.fromObjectReuseStrategy === 'clone') {
11235
+ clazz.fromObject = function (source, opts) {
11236
+ if (!source)
11237
+ return undefined;
11238
+ if (source instanceof constructor)
11239
+ return source.clone(opts);
11240
+ const target = new constructor();
11241
+ target.fromObject(source, opts);
11242
+ return target;
11243
+ };
11244
+ clazz.asObject = function (source, opts) {
11245
+ if (!source)
11246
+ return undefined;
11247
+ if (source instanceof constructor)
11248
+ return source.asObject(opts);
11249
+ return Object.assign({}, source);
11250
+ };
11277
11251
  }
11278
- // Define static asObject()
11279
- if (!clazz.asObject) {
11280
- if (opts.fromObjectReuseStrategy === 'clone') {
11281
- clazz.asObject = function (source, opts) {
11282
- if (!source)
11283
- return undefined;
11284
- if (source instanceof constructor)
11285
- return source.asObject(opts);
11286
- return Object.assign({}, source);
11287
- };
11288
- }
11289
- else {
11290
- clazz.asObject = function (source, opts) {
11291
- if (!source)
11292
- return undefined;
11293
- if (source instanceof constructor) {
11294
- return source.asObject(opts);
11295
- }
11252
+ else {
11253
+ clazz.fromObject = function (source, opts) {
11254
+ if (!source)
11255
+ return undefined;
11256
+ if (source instanceof constructor) {
11296
11257
  // DEBUG
11297
- //console.debug('@EntityClass() asObject() => will recycle existing object: ', source);
11258
+ //console.debug('@EntityClass() fromObject() => will recycle existing object: ', source);
11298
11259
  return source;
11299
- };
11300
- }
11260
+ }
11261
+ const target = new constructor();
11262
+ target.fromObject(source, opts);
11263
+ return target;
11264
+ };
11265
+ clazz.asObject = function (source, opts) {
11266
+ if (!source)
11267
+ return undefined;
11268
+ if (source instanceof constructor) {
11269
+ return source.asObject(opts);
11270
+ }
11271
+ // DEBUG
11272
+ //console.debug('@EntityClass() asObject() => will recycle existing object: ', source);
11273
+ return source;
11274
+ };
11301
11275
  }
11302
11276
  // Register the entity class
11303
11277
  EntityClasses.register(typename, constructor);