@sumaris-net/ngx-components 18.22.0 → 18.22.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/src/app/admin/users/person.filter.mjs +2 -2
- package/esm2022/src/app/core/services/model/filter.model.mjs +92 -42
- package/fesm2022/sumaris-net.ngx-components.mjs +91 -41
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/services/model/filter.model.d.ts +13 -26
- package/src/assets/manifest.json +1 -1
|
@@ -131,7 +131,7 @@ export class AdditionalFields {
|
|
|
131
131
|
return;
|
|
132
132
|
return (Object.keys(source)
|
|
133
133
|
// Exclude common fields, from PersonFilter
|
|
134
|
-
.filter((key) => !PersonFilter.FIELDS.includes(key))
|
|
134
|
+
.filter((key) => !PersonFilter.FIELDS.includes(key) && key !== 'and' && key !== 'or' && key !== 'not')
|
|
135
135
|
.reduce((target, key) => {
|
|
136
136
|
if (isNil(source[key]))
|
|
137
137
|
return target;
|
|
@@ -154,4 +154,4 @@ export class AdditionalFields {
|
|
|
154
154
|
return target;
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLmZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvYWRtaW4vdXNlcnMvcGVyc29uLmZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFdEUsT0FBTyxFQUF5QixXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUc3RixXQUFXO0FBRUosSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLFlBQWtDOztJQUNsRSxNQUFNLENBQUMsTUFBTSxHQUEyQjtRQUN0QyxZQUFZO1FBQ1osSUFBSTtRQUNKLFlBQVk7UUFDWixPQUFPO1FBQ1AsUUFBUTtRQUNSLFlBQVk7UUFDWixXQUFXO1FBQ1gsY0FBYztRQUNkLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLGtCQUFrQjtLQUNuQixDQUFDO0lBRUYsTUFBTSxDQUFDLFVBQVUsQ0FBdUM7SUFFeEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFXO1FBQzNCLE9BQU8sY0FBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsWUFBWSxHQUFHLGNBQVksQ0FBQyxVQUFVLENBQUM7SUFFOUMsS0FBSyxDQUFTO0lBQ2QsTUFBTSxDQUFTO0lBQ2YsVUFBVSxDQUFTO0lBQ25CLFNBQVMsQ0FBVztJQUNwQixZQUFZLENBQVc7SUFDdkIsV0FBVyxDQUFXO0lBQ3RCLFdBQVcsQ0FBVztJQUN0QixlQUFlLENBQVM7SUFDeEIsZ0JBQWdCLENB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UUFDaEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ1gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5Q2xhc3MgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5kZWNvcmF0b3JzJztcbmltcG9ydCB7IEVudGl0eUZpbHRlciB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IEVudGl0eUFzT2JqZWN0T3B0aW9ucywgRW50aXR5VXRpbHMgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBTdG9yZU9iamVjdCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgZ2V0UHJvcGVydHlCeVBhdGgsIGlzTmlsLCBpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBGaWx0ZXJGbiB9IGZyb20gJy4uLy4uL3NoYXJlZC90eXBlcyc7XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3MoeyB0eXBlbmFtZTogJ1BlcnNvbkZpbHRlclZPJyB9KVxuZXhwb3J0IGNsYXNzIFBlcnNvbkZpbHRlciBleHRlbmRzIEVudGl0eUZpbHRlcjxQZXJzb25GaWx0ZXIsIFBlcnNvbj4ge1xuICBzdGF0aWMgRklFTERTOiAoa2V5b2YgUGVyc29uRmlsdGVyKVtdID0gW1xuICAgICdfX3R5cGVuYW1lJyxcbiAgICAnaWQnLFxuICAgICd1cGRhdGVEYXRlJyxcbiAgICAnZW1haWwnLFxuICAgICdwdWJrZXknLFxuICAgICdzZWFyY2hUZXh0JyxcbiAgICAnc3RhdHVzSWRzJyxcbiAgICAndXNlclByb2ZpbGVzJyxcbiAgICAnZXhjbHVkZWRJZHMnLFxuICAgICdzZWFyY2hBdHRyaWJ1dGUnLFxuICAgICdzZWFyY2hBdHRyaWJ1dGVzJyxcbiAgICAnYWRkaXRpb25hbEZpZWxkcycsXG4gIF07XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2UsIG9wdHM/OiBhbnkpID0+IFBlcnNvbkZpbHRlcjtcblxuICBzdGF0aWMgYXNGaWx0ZXJGbihzb3VyY2U6IGFueSk6IEZpbHRlckZuPFBlcnNvbj4ge1xuICAgIHJldHVybiBQZXJzb25GaWx0ZXIuZnJvbU9iamVjdChzb3VyY2UpPy5hc0ZpbHRlckZuKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBQZXJzb25GaWx0ZXIuYXNGaWx0ZXJGbmAgaW5zdGVhZFxuICAgKi9cbiAgc3RhdGljIHNlYXJjaEZpbHRlciA9IFBlcnNvbkZpbHRlci5hc0ZpbHRlckZuO1xuXG4gIGVtYWlsOiBzdHJpbmc7XG4gIHB1YmtleTogc3RyaW5nO1xuICBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gIHN0YXR1c0lkczogbnVtYmVyW107XG4gIHVzZXJQcm9maWxlczogc3RyaW5nW107XG4gIGluY2x1ZGVkSWRzOiBudW1iZXJbXTtcbiAgZXhjbHVkZWRJZHM6IG51bWJlcltdO1xuICBzZWFyY2hBdHRyaWJ1dGU6IHN0cmluZztcbiAgc2VhcmNoQXR0cmlidXRlczogc3RyaW5nW107XG4gIGFkZGl0aW9uYWxGaWVsZHM6IEFkZGl0aW9uYWxGaWVsZHM7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUGVyc29uRmlsdGVyLlRZUEVOQU1FKTtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy5lbWFpbCA9IHNvdXJjZS5lbWFpbDtcbiAgICB0aGlzLnB1YmtleSA9IHNvdXJjZS5wdWJrZXk7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gc291cmNlLnNlYXJjaFRleHQ7XG4gICAgdGhpcy5zdGF0dXNJZHMgPSBzb3VyY2Uuc3RhdHVzSWRzIHx8IChpc05vdE5pbChzb3VyY2Uuc3RhdHVzSWQpID8gW3NvdXJjZS5zdGF0dXNJZF0gOiB1bmRlZmluZWQpO1xuICAgIHRoaXMudXNlclByb2ZpbGVzID0gc291cmNlLnVzZXJQcm9maWxlcztcbiAgICB0aGlzLmV4Y2x1ZGVkSWRzID0gc291cmNlLmV4Y2x1ZGVkSWRzO1xuICAgIHRoaXMuc2VhcmNoQXR0cmlidXRlID0gc291cmNlLnNlYXJjaEF0dHJpYnV0ZTtcbiAgICB0aGlzLnNlYXJjaEF0dHJpYnV0ZXMgPSBzb3VyY2Uuc2VhcmNoQXR0cmlidXRlcztcblxuICAgIC8vIEV4dHJhY3QgYWRkaXRpb25hbCBmaWVsZHNcbiAgICB0aGlzLmFkZGl0aW9uYWxGaWVsZHMgPSBBZGRpdGlvbmFsRmllbGRzLmZyb21PYmplY3Qoc291cmNlLCBvcHRzKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBTdG9yZU9iamVjdCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LmVtYWlsID0gdGhpcy5lbWFpbDtcbiAgICB0YXJnZXQucHVia2V5ID0gdGhpcy5wdWJrZXk7XG4gICAgdGFyZ2V0LnNlYXJjaFRleHQgPSB0aGlzLnNlYXJjaFRleHQ7XG4gICAgdGFyZ2V0LnN0YXR1c0lkcyA9IHRoaXMuc3RhdHVzSWRzO1xuICAgIHRhcmdldC51c2VyUHJvZmlsZXMgPSB0aGlzLnVzZXJQcm9maWxlcztcbiAgICB0YXJnZXQuZXhjbHVkZWRJZHMgPSB0aGlzLmV4Y2x1ZGVkSWRzO1xuICAgIHRhcmdldC5zZWFyY2hBdHRyaWJ1dGUgPSB0aGlzLnNlYXJjaEF0dHJpYnV0ZTtcbiAgICB0YXJnZXQuc2VhcmNoQXR0cmlidXRlcyA9IHRoaXMuc2VhcmNoQXR0cmlidXRlcztcbiAgICBBZGRpdGlvbmFsRmllbGRzLmFzT2JqZWN0KHRoaXMuYWRkaXRpb25hbEZpZWxkcywgdGFyZ2V0LCBvcHRzKTtcbiAgICBkZWxldGUgdGFyZ2V0LmFkZGl0aW9uYWxGaWVsZHM7XG5cbiAgICBpZiAob3B0cz8ubWluaWZ5KSB7XG4gICAgICB0YXJnZXQudXNlclByb2ZpbGVzID0gQXJyYXkuaXNBcnJheSh0YXJnZXQudXNlclByb2ZpbGVzKSA/IHRhcmdldC51c2VyUHJvZmlsZXM/Lm1hcCgodXApID0+IHVwPy5sYWJlbCA/PyB1cCkgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRGaWx0ZXIoKTogRmlsdGVyRm48UGVyc29uPltdIHtcbiAgICBjb25zdCBmaWx0ZXJGbnMgPSBzdXBlci5idWlsZEZpbHRlcigpO1xuXG4gICAgLy8gRmlsdGVyIGJ5IHN0YXR1c1xuICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5zdGF0dXNJZHMpKSB7XG4gICAgICBmaWx0ZXJGbnMucHVzaCgoZSkgPT4gdGhpcy5zdGF0dXNJZHMuaW5jbHVkZXMoZS5zdGF0dXNJZCkpO1xuICAgIH1cblxuICAgIC8vIEZpbHRlciBpbmNsdWRlZCBpZHNcbiAgICBjb25zdCBpbmNsdWRlZElkcyA9IHRoaXMuaW5jbHVkZWRJZHM7XG4gICAgaWYgKGlzTm90RW1wdHlBcnJheShpbmNsdWRlZElkcykpIHtcbiAgICAgIGZpbHRlckZucy5wdXNoKChlKSA9PiBpc05vdE5pbChlLmlkKSAmJiBpbmNsdWRlZElkcy5pbmNsdWRlcyhlLmlkKSk7XG4gICAgfVxuXG4gICAgLy8gRmlsdGVyIGV4Y2x1ZGVkIGlkc1xuICAgIGNvbnN0IGV4Y2x1ZGVkSWRzID0gdGhpcy5leGNsdWRlZElkcztcbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KGV4Y2x1ZGVkSWRzKSkge1xuICAgICAgZmlsdGVyRm5zLnB1c2goKGUpID0+IGlzTmlsKGUuaWQpIHx8ICFleGNsdWRlZElkcy5pbmNsdWRlcyhlLmlkKSk7XG4gICAgfVxuXG4gICAgLy8gU2VhcmNoIHRleHRcbiAgICBjb25zdCBzZWFyY2hUZXh0RmlsdGVyID0gRW50aXR5VXRpbHMuc2VhcmNoVGV4dEZpbHRlcihcbiAgICAgIHRoaXMuc2VhcmNoQXR0cmlidXRlIHx8IHRoaXMuc2VhcmNoQXR0cmlidXRlcyB8fCBbJ2xhc3ROYW1lJywgJ2ZpcnN0TmFtZScsICdkZXBhcnRtZW50Lm5hbWUnXSxcbiAgICAgIHRoaXMuc2VhcmNoVGV4dFxuICAgICk7XG4gICAgaWYgKHNlYXJjaFRleHRGaWx0ZXIpIGZpbHRlckZucy5wdXNoKHNlYXJjaFRleHRGaWx0ZXIpO1xuXG4gICAgLy8gRmlsdGVyIGJ5IGFkZGl0aW9uYWwgZmllbGRzXG4gICAgaWYgKHRoaXMuYWRkaXRpb25hbEZpZWxkcykge1xuICAgICAgT2JqZWN0LmtleXModGhpcy5hZGRpdGlvbmFsRmllbGRzKS5mb3JFYWNoKChmaWVsZEtleSkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5hZGRpdGlvbmFsRmllbGRzW2ZpZWxkS2V5XTtcbiAgICAgICAgaWYgKGlzTm90TmlsKGZpZWxkVmFsdWUpKSB7XG4gICAgICAgICAgZmlsdGVyRm5zLnB1c2goKHBlcnNvbjogUGVyc29uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwZXJzb25WYWx1ZSA9IGdldFByb3BlcnR5QnlQYXRoKHBlcnNvbiwgZmllbGRLZXkpO1xuICAgICAgICAgICAgLy8gSGFuZGxlIGRpZmZlcmVudCB2YWx1ZSB0eXBlcyAoc3RyaW5nLCBvYmplY3Qgd2l0aCBpZCwgYXJyYXksIGV0Yy4pXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZFZhbHVlKSkge1xuICAgICAgICAgICAgICAvLyBNdWx0aXBsZSBzZWxlY3Rpb24gLSBjaGVjayBpZiBwZXJzb24gdmFsdWUgbWF0Y2hlcyBhbnkgc2VsZWN0ZWQgdmFsdWVcbiAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkVmFsdWUuc29tZSgoc2VsZWN0ZWRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWQgPSBzZWxlY3RlZFZhbHVlPy5pZCA/PyBzZWxlY3RlZFZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBlcnNvbklkID0gcGVyc29uVmFsdWU/LmlkID8/IHBlcnNvblZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZElkID09PSBwZXJzb25JZDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBTaW5nbGUgdmFsdWUgLSBkaXJlY3QgY29tcGFyaXNvblxuICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZElkID0gZmllbGRWYWx1ZT8uaWQgPz8gZmllbGRWYWx1ZTtcbiAgICAgICAgICAgICAgY29uc3QgcGVyc29uSWQgPSBwZXJzb25WYWx1ZT8uaWQgPz8gcGVyc29uVmFsdWU7XG4gICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZElkID09PSBwZXJzb25JZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlckZucztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWRkaXRpb25hbEZpZWxkcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcblxuICBzdGF0aWMgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IGFueSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGlmICghc291cmNlIHx8ICEodHlwZW9mIHNvdXJjZSA9PSAnb2JqZWN0JykpIHJldHVybjtcbiAgICByZXR1cm4gKFxuICAgICAgT2JqZWN0LmtleXMoc291cmNlKVxuICAgICAgICAvLyBFeGNsdWRlIGNvbW1vbiBmaWVsZHMsIGZyb20gUGVyc29uRmlsdGVyXG4gICAgICAgIC5maWx0ZXIoKGtleSkgPT4gIVBlcnNvbkZpbHRlci5GSUVMRFMuaW5jbHVkZXMoa2V5IGFzIGtleW9mIFBlcnNvbkZpbHRlcikpXG4gICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgKHRhcmdldCwga2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNOaWwoc291cmNlW2tleV0pKSByZXR1cm4gdGFyZ2V0O1xuICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0IHx8IHt9O1xuICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB1bmRlZmluZWQgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfVxuICAgICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBhc09iamVjdChzb3VyY2U6IGFueSwgdGFyZ2V0OiBhbnkgPSB7fSwgb3B0cz86IEVudGl0eUFzT2JqZWN0T3B0aW9ucyk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGlmICghc291cmNlIHx8ICEodHlwZW9mIHNvdXJjZSA9PSAnb2JqZWN0JykpIHJldHVybjtcbiAgICBPYmplY3Qua2V5cyhzb3VyY2UpLnJlZHVjZSgodGFyZ2V0LCBrZXkpID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gRW50aXR5VXRpbHMuYXNPYmplY3Qoc291cmNlW2tleV0sIG9wdHMpO1xuICAgICAgaWYgKGlzTmlsKHZhbHVlKSkgcmV0dXJuIHRhcmdldDtcbiAgICAgIHRhcmdldCA9IHRhcmdldCB8fCB7fTtcbiAgICAgIHRhcmdldFtrZXldID0gdmFsdWU7XG4gICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH0sIHRhcmdldCk7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxufVxuIl19
|
|
157
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLmZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvYWRtaW4vdXNlcnMvcGVyc29uLmZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFdEUsT0FBTyxFQUF5QixXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUc3RixXQUFXO0FBRUosSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLFlBQWtDOztJQUNsRSxNQUFNLENBQUMsTUFBTSxHQUEyQjtRQUN0QyxZQUFZO1FBQ1osSUFBSTtRQUNKLFlBQVk7UUFDWixPQUFPO1FBQ1AsUUFBUTtRQUNSLFlBQVk7UUFDWixXQUFXO1FBQ1gsY0FBYztRQUNkLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLGtCQUFrQjtLQUNuQixDQUFDO0lBRUYsTUFBTSxDQUFDLFVBQVUsQ0FBdUM7SUFFeEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFXO1FBQzNCLE9BQU8sY0FBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsWUFBWSxHQUFHLGNBQVksQ0FBQyxVQUFVLENBQUM7SUFFOUMsS0FBSyxDQUFTO0lBQ2QsTUFBTSxDQUFTO0lBQ2YsVUFBVSxDQUFTO0lBQ25CLFNBQVMsQ0FBVztJQUNwQixZQUFZLENBQVc7SUFDdkIsV0FBVyxDQUFXO0lBQ3RCLFdBQVcsQ0FBVztJQUN0QixlQUFlLENBQVM7SUFDeEIsZ0JBQWdCLENB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Q3RCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDcEIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ1gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5Q2xhc3MgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5kZWNvcmF0b3JzJztcbmltcG9ydCB7IEVudGl0eUZpbHRlciB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IEVudGl0eUFzT2JqZWN0T3B0aW9ucywgRW50aXR5VXRpbHMgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBTdG9yZU9iamVjdCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgZ2V0UHJvcGVydHlCeVBhdGgsIGlzTmlsLCBpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBGaWx0ZXJGbiB9IGZyb20gJy4uLy4uL3NoYXJlZC90eXBlcyc7XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3MoeyB0eXBlbmFtZTogJ1BlcnNvbkZpbHRlclZPJyB9KVxuZXhwb3J0IGNsYXNzIFBlcnNvbkZpbHRlciBleHRlbmRzIEVudGl0eUZpbHRlcjxQZXJzb25GaWx0ZXIsIFBlcnNvbj4ge1xuICBzdGF0aWMgRklFTERTOiAoa2V5b2YgUGVyc29uRmlsdGVyKVtdID0gW1xuICAgICdfX3R5cGVuYW1lJyxcbiAgICAnaWQnLFxuICAgICd1cGRhdGVEYXRlJyxcbiAgICAnZW1haWwnLFxuICAgICdwdWJrZXknLFxuICAgICdzZWFyY2hUZXh0JyxcbiAgICAnc3RhdHVzSWRzJyxcbiAgICAndXNlclByb2ZpbGVzJyxcbiAgICAnZXhjbHVkZWRJZHMnLFxuICAgICdzZWFyY2hBdHRyaWJ1dGUnLFxuICAgICdzZWFyY2hBdHRyaWJ1dGVzJyxcbiAgICAnYWRkaXRpb25hbEZpZWxkcycsXG4gIF07XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2UsIG9wdHM/OiBhbnkpID0+IFBlcnNvbkZpbHRlcjtcblxuICBzdGF0aWMgYXNGaWx0ZXJGbihzb3VyY2U6IGFueSk6IEZpbHRlckZuPFBlcnNvbj4ge1xuICAgIHJldHVybiBQZXJzb25GaWx0ZXIuZnJvbU9iamVjdChzb3VyY2UpPy5hc0ZpbHRlckZuKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBQZXJzb25GaWx0ZXIuYXNGaWx0ZXJGbmAgaW5zdGVhZFxuICAgKi9cbiAgc3RhdGljIHNlYXJjaEZpbHRlciA9IFBlcnNvbkZpbHRlci5hc0ZpbHRlckZuO1xuXG4gIGVtYWlsOiBzdHJpbmc7XG4gIHB1YmtleTogc3RyaW5nO1xuICBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gIHN0YXR1c0lkczogbnVtYmVyW107XG4gIHVzZXJQcm9maWxlczogc3RyaW5nW107XG4gIGluY2x1ZGVkSWRzOiBudW1iZXJbXTtcbiAgZXhjbHVkZWRJZHM6IG51bWJlcltdO1xuICBzZWFyY2hBdHRyaWJ1dGU6IHN0cmluZztcbiAgc2VhcmNoQXR0cmlidXRlczogc3RyaW5nW107XG4gIGFkZGl0aW9uYWxGaWVsZHM6IEFkZGl0aW9uYWxGaWVsZHM7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUGVyc29uRmlsdGVyLlRZUEVOQU1FKTtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy5lbWFpbCA9IHNvdXJjZS5lbWFpbDtcbiAgICB0aGlzLnB1YmtleSA9IHNvdXJjZS5wdWJrZXk7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gc291cmNlLnNlYXJjaFRleHQ7XG4gICAgdGhpcy5zdGF0dXNJZHMgPSBzb3VyY2Uuc3RhdHVzSWRzIHx8IChpc05vdE5pbChzb3VyY2Uuc3RhdHVzSWQpID8gW3NvdXJjZS5zdGF0dXNJZF0gOiB1bmRlZmluZWQpO1xuICAgIHRoaXMudXNlclByb2ZpbGVzID0gc291cmNlLnVzZXJQcm9maWxlcztcbiAgICB0aGlzLmV4Y2x1ZGVkSWRzID0gc291cmNlLmV4Y2x1ZGVkSWRzO1xuICAgIHRoaXMuc2VhcmNoQXR0cmlidXRlID0gc291cmNlLnNlYXJjaEF0dHJpYnV0ZTtcbiAgICB0aGlzLnNlYXJjaEF0dHJpYnV0ZXMgPSBzb3VyY2Uuc2VhcmNoQXR0cmlidXRlcztcblxuICAgIC8vIEV4dHJhY3QgYWRkaXRpb25hbCBmaWVsZHNcbiAgICB0aGlzLmFkZGl0aW9uYWxGaWVsZHMgPSBBZGRpdGlvbmFsRmllbGRzLmZyb21PYmplY3Qoc291cmNlLCBvcHRzKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBTdG9yZU9iamVjdCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LmVtYWlsID0gdGhpcy5lbWFpbDtcbiAgICB0YXJnZXQucHVia2V5ID0gdGhpcy5wdWJrZXk7XG4gICAgdGFyZ2V0LnNlYXJjaFRleHQgPSB0aGlzLnNlYXJjaFRleHQ7XG4gICAgdGFyZ2V0LnN0YXR1c0lkcyA9IHRoaXMuc3RhdHVzSWRzO1xuICAgIHRhcmdldC51c2VyUHJvZmlsZXMgPSB0aGlzLnVzZXJQcm9maWxlcztcbiAgICB0YXJnZXQuZXhjbHVkZWRJZHMgPSB0aGlzLmV4Y2x1ZGVkSWRzO1xuICAgIHRhcmdldC5zZWFyY2hBdHRyaWJ1dGUgPSB0aGlzLnNlYXJjaEF0dHJpYnV0ZTtcbiAgICB0YXJnZXQuc2VhcmNoQXR0cmlidXRlcyA9IHRoaXMuc2VhcmNoQXR0cmlidXRlcztcbiAgICBBZGRpdGlvbmFsRmllbGRzLmFzT2JqZWN0KHRoaXMuYWRkaXRpb25hbEZpZWxkcywgdGFyZ2V0LCBvcHRzKTtcbiAgICBkZWxldGUgdGFyZ2V0LmFkZGl0aW9uYWxGaWVsZHM7XG5cbiAgICBpZiAob3B0cz8ubWluaWZ5KSB7XG4gICAgICB0YXJnZXQudXNlclByb2ZpbGVzID0gQXJyYXkuaXNBcnJheSh0YXJnZXQudXNlclByb2ZpbGVzKSA/IHRhcmdldC51c2VyUHJvZmlsZXM/Lm1hcCgodXApID0+IHVwPy5sYWJlbCA/PyB1cCkgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRGaWx0ZXIoKTogRmlsdGVyRm48UGVyc29uPltdIHtcbiAgICBjb25zdCBmaWx0ZXJGbnMgPSBzdXBlci5idWlsZEZpbHRlcigpO1xuXG4gICAgLy8gRmlsdGVyIGJ5IHN0YXR1c1xuICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5zdGF0dXNJZHMpKSB7XG4gICAgICBmaWx0ZXJGbnMucHVzaCgoZSkgPT4gdGhpcy5zdGF0dXNJZHMuaW5jbHVkZXMoZS5zdGF0dXNJZCkpO1xuICAgIH1cblxuICAgIC8vIEZpbHRlciBpbmNsdWRlZCBpZHNcbiAgICBjb25zdCBpbmNsdWRlZElkcyA9IHRoaXMuaW5jbHVkZWRJZHM7XG4gICAgaWYgKGlzTm90RW1wdHlBcnJheShpbmNsdWRlZElkcykpIHtcbiAgICAgIGZpbHRlckZucy5wdXNoKChlKSA9PiBpc05vdE5pbChlLmlkKSAmJiBpbmNsdWRlZElkcy5pbmNsdWRlcyhlLmlkKSk7XG4gICAgfVxuXG4gICAgLy8gRmlsdGVyIGV4Y2x1ZGVkIGlkc1xuICAgIGNvbnN0IGV4Y2x1ZGVkSWRzID0gdGhpcy5leGNsdWRlZElkcztcbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KGV4Y2x1ZGVkSWRzKSkge1xuICAgICAgZmlsdGVyRm5zLnB1c2goKGUpID0+IGlzTmlsKGUuaWQpIHx8ICFleGNsdWRlZElkcy5pbmNsdWRlcyhlLmlkKSk7XG4gICAgfVxuXG4gICAgLy8gU2VhcmNoIHRleHRcbiAgICBjb25zdCBzZWFyY2hUZXh0RmlsdGVyID0gRW50aXR5VXRpbHMuc2VhcmNoVGV4dEZpbHRlcihcbiAgICAgIHRoaXMuc2VhcmNoQXR0cmlidXRlIHx8IHRoaXMuc2VhcmNoQXR0cmlidXRlcyB8fCBbJ2xhc3ROYW1lJywgJ2ZpcnN0TmFtZScsICdkZXBhcnRtZW50Lm5hbWUnXSxcbiAgICAgIHRoaXMuc2VhcmNoVGV4dFxuICAgICk7XG4gICAgaWYgKHNlYXJjaFRleHRGaWx0ZXIpIGZpbHRlckZucy5wdXNoKHNlYXJjaFRleHRGaWx0ZXIpO1xuXG4gICAgLy8gRmlsdGVyIGJ5IGFkZGl0aW9uYWwgZmllbGRzXG4gICAgaWYgKHRoaXMuYWRkaXRpb25hbEZpZWxkcykge1xuICAgICAgT2JqZWN0LmtleXModGhpcy5hZGRpdGlvbmFsRmllbGRzKS5mb3JFYWNoKChmaWVsZEtleSkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5hZGRpdGlvbmFsRmllbGRzW2ZpZWxkS2V5XTtcbiAgICAgICAgaWYgKGlzTm90TmlsKGZpZWxkVmFsdWUpKSB7XG4gICAgICAgICAgZmlsdGVyRm5zLnB1c2goKHBlcnNvbjogUGVyc29uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwZXJzb25WYWx1ZSA9IGdldFByb3BlcnR5QnlQYXRoKHBlcnNvbiwgZmllbGRLZXkpO1xuICAgICAgICAgICAgLy8gSGFuZGxlIGRpZmZlcmVudCB2YWx1ZSB0eXBlcyAoc3RyaW5nLCBvYmplY3Qgd2l0aCBpZCwgYXJyYXksIGV0Yy4pXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZFZhbHVlKSkge1xuICAgICAgICAgICAgICAvLyBNdWx0aXBsZSBzZWxlY3Rpb24gLSBjaGVjayBpZiBwZXJzb24gdmFsdWUgbWF0Y2hlcyBhbnkgc2VsZWN0ZWQgdmFsdWVcbiAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkVmFsdWUuc29tZSgoc2VsZWN0ZWRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWQgPSBzZWxlY3RlZFZhbHVlPy5pZCA/PyBzZWxlY3RlZFZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBlcnNvbklkID0gcGVyc29uVmFsdWU/LmlkID8/IHBlcnNvblZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZElkID09PSBwZXJzb25JZDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBTaW5nbGUgdmFsdWUgLSBkaXJlY3QgY29tcGFyaXNvblxuICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZElkID0gZmllbGRWYWx1ZT8uaWQgPz8gZmllbGRWYWx1ZTtcbiAgICAgICAgICAgICAgY29uc3QgcGVyc29uSWQgPSBwZXJzb25WYWx1ZT8uaWQgPz8gcGVyc29uVmFsdWU7XG4gICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZElkID09PSBwZXJzb25JZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlckZucztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWRkaXRpb25hbEZpZWxkcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcblxuICBzdGF0aWMgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IGFueSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGlmICghc291cmNlIHx8ICEodHlwZW9mIHNvdXJjZSA9PSAnb2JqZWN0JykpIHJldHVybjtcbiAgICByZXR1cm4gKFxuICAgICAgT2JqZWN0LmtleXMoc291cmNlKVxuICAgICAgICAvLyBFeGNsdWRlIGNvbW1vbiBmaWVsZHMsIGZyb20gUGVyc29uRmlsdGVyXG4gICAgICAgIC5maWx0ZXIoKGtleSkgPT4gIVBlcnNvbkZpbHRlci5GSUVMRFMuaW5jbHVkZXMoa2V5IGFzIGtleW9mIFBlcnNvbkZpbHRlcikgJiYga2V5ICE9PSAnYW5kJyAmJiBrZXkgIT09ICdvcicgJiYga2V5ICE9PSAnbm90JylcbiAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAodGFyZ2V0LCBrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChpc05pbChzb3VyY2Vba2V5XSkpIHJldHVybiB0YXJnZXQ7XG4gICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQgfHwge307XG4gICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHVuZGVmaW5lZCBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gICAgICAgIClcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGFzT2JqZWN0KHNvdXJjZTogYW55LCB0YXJnZXQ6IGFueSA9IHt9LCBvcHRzPzogRW50aXR5QXNPYmplY3RPcHRpb25zKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgaWYgKCFzb3VyY2UgfHwgISh0eXBlb2Ygc291cmNlID09ICdvYmplY3QnKSkgcmV0dXJuO1xuICAgIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKCh0YXJnZXQsIGtleSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBFbnRpdHlVdGlscy5hc09iamVjdChzb3VyY2Vba2V5XSwgb3B0cyk7XG4gICAgICBpZiAoaXNOaWwodmFsdWUpKSByZXR1cm4gdGFyZ2V0O1xuICAgICAgdGFyZ2V0ID0gdGFyZ2V0IHx8IHt9O1xuICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfSwgdGFyZ2V0KTtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG59XG4iXX0=
|
|
@@ -1,48 +1,20 @@
|
|
|
1
|
-
import { isEmptyArray, isNotNil } from '../../../shared/functions';
|
|
1
|
+
import { isEmptyArray, isNotEmptyArray, isNotNil } from '../../../shared/functions';
|
|
2
2
|
import { MINIFY_ENTITY_FOR_POD, ReferentialUtils } from './referential.model';
|
|
3
3
|
import { Entity, isInstanceOf } from './entity.model';
|
|
4
4
|
export class EntityFilter extends Entity {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*/
|
|
11
|
-
static composeFilters(filterFns) {
|
|
5
|
+
// Internal composition state (fluent API)
|
|
6
|
+
__and;
|
|
7
|
+
__or;
|
|
8
|
+
__not;
|
|
9
|
+
static andFns(filterFns) {
|
|
12
10
|
if (isEmptyArray(filterFns))
|
|
13
11
|
return undefined;
|
|
14
12
|
return (entity) => (filterFns || []).every((fn) => fn(entity));
|
|
15
13
|
}
|
|
16
|
-
|
|
17
|
-
* Compose some filter functions: all should return true
|
|
18
|
-
*
|
|
19
|
-
* @param filterFns
|
|
20
|
-
*/
|
|
21
|
-
static composeFns(filterFns) {
|
|
14
|
+
static orFns(filterFns) {
|
|
22
15
|
if (isEmptyArray(filterFns))
|
|
23
16
|
return undefined;
|
|
24
|
-
return (entity) => (filterFns || []).
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* @deprecated Use `EntityFilter.and()`
|
|
28
|
-
*/
|
|
29
|
-
static compose(filters) {
|
|
30
|
-
const filterFns = (filters || []).reduce((res, f) => {
|
|
31
|
-
const fns = f.buildFilter();
|
|
32
|
-
if (!fns)
|
|
33
|
-
return res;
|
|
34
|
-
return res.concat(fns);
|
|
35
|
-
}, []);
|
|
36
|
-
return this.composeFns(filterFns);
|
|
37
|
-
}
|
|
38
|
-
static or(...filters) {
|
|
39
|
-
return new OrFilter(...(filters || []));
|
|
40
|
-
}
|
|
41
|
-
static and(...filters) {
|
|
42
|
-
return new AndFilter(...(filters || []));
|
|
43
|
-
}
|
|
44
|
-
static not(filter) {
|
|
45
|
-
return new NotFilter(filter);
|
|
17
|
+
return (entity) => (filterFns || []).some((fn) => fn(entity));
|
|
46
18
|
}
|
|
47
19
|
constructor(__typename) {
|
|
48
20
|
super(__typename);
|
|
@@ -61,17 +33,95 @@ export class EntityFilter extends Entity {
|
|
|
61
33
|
return Object.keys(json).filter((key) => this.isCriteriaNotEmpty(key, json[key])).length;
|
|
62
34
|
}
|
|
63
35
|
asFilterFn() {
|
|
64
|
-
|
|
65
|
-
|
|
36
|
+
// Base (this) filter functions
|
|
37
|
+
let filterFns = this.buildFilter() || [];
|
|
38
|
+
// AND filters
|
|
39
|
+
if (isNotEmptyArray(this.__and)) {
|
|
40
|
+
filterFns.push(...this.__and.map((f) => f?.asFilterFn()).filter(isNotNil));
|
|
41
|
+
}
|
|
42
|
+
// As filter function
|
|
43
|
+
let result = EntityFilter.andFns(filterFns);
|
|
44
|
+
// OR filters
|
|
45
|
+
if (isNotEmptyArray(this.__or)) {
|
|
46
|
+
result = EntityFilter.orFns([
|
|
47
|
+
result,
|
|
48
|
+
...(this.__or || []).map((f) => f?.asFilterFn())
|
|
49
|
+
].filter(isNotNil));
|
|
50
|
+
}
|
|
51
|
+
// NOT
|
|
52
|
+
if (this.__not && result) {
|
|
53
|
+
const inner = result;
|
|
54
|
+
result = (entity) => !inner(entity);
|
|
55
|
+
}
|
|
56
|
+
return result;
|
|
66
57
|
}
|
|
67
58
|
and(...filters) {
|
|
68
|
-
|
|
59
|
+
if (!isEmptyArray(filters)) {
|
|
60
|
+
this.__and = (this.__and || []).concat(filters.filter(isNotNil));
|
|
61
|
+
}
|
|
62
|
+
return this;
|
|
69
63
|
}
|
|
70
64
|
or(...filters) {
|
|
71
|
-
|
|
65
|
+
if (!isEmptyArray(filters)) {
|
|
66
|
+
this.__or = (this.__or || []).concat(filters.filter(isNotNil));
|
|
67
|
+
}
|
|
68
|
+
return this;
|
|
72
69
|
}
|
|
73
70
|
not() {
|
|
74
|
-
|
|
71
|
+
this.__not = !(this.__not ?? false);
|
|
72
|
+
return this;
|
|
73
|
+
}
|
|
74
|
+
asObject(opts) {
|
|
75
|
+
const target = super.asObject(opts);
|
|
76
|
+
// Serialize composition
|
|
77
|
+
if (isNotEmptyArray(this.__and)) {
|
|
78
|
+
target.and = this.__and.map((f) => f.asObject(opts));
|
|
79
|
+
}
|
|
80
|
+
if (isNotEmptyArray(this.__or)) {
|
|
81
|
+
target.or = this.__or.map((f) => f.asObject(opts));
|
|
82
|
+
}
|
|
83
|
+
if (this.__not) {
|
|
84
|
+
target.not = true;
|
|
85
|
+
}
|
|
86
|
+
// Sanitize
|
|
87
|
+
delete target.__and;
|
|
88
|
+
delete target.__or;
|
|
89
|
+
delete target.__not;
|
|
90
|
+
return target;
|
|
91
|
+
}
|
|
92
|
+
fromObject(source, opts) {
|
|
93
|
+
super.fromObject(source, opts);
|
|
94
|
+
// Deserialize composition using the same concrete filter type
|
|
95
|
+
// AND
|
|
96
|
+
if (Array.isArray(source?.and)) {
|
|
97
|
+
const Ctor = this.constructor;
|
|
98
|
+
this.__and = source.and.map((s) => {
|
|
99
|
+
if (!s)
|
|
100
|
+
return undefined;
|
|
101
|
+
const f = new Ctor();
|
|
102
|
+
f.fromObject(s, opts);
|
|
103
|
+
return f;
|
|
104
|
+
}).filter(isNotNil);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
this.__and = undefined;
|
|
108
|
+
}
|
|
109
|
+
// OR
|
|
110
|
+
if (Array.isArray(source?.or)) {
|
|
111
|
+
const Ctor = this.constructor;
|
|
112
|
+
this.__or = source.or.map((s) => {
|
|
113
|
+
if (!s)
|
|
114
|
+
return undefined;
|
|
115
|
+
const f = new Ctor();
|
|
116
|
+
f.fromObject(s, opts);
|
|
117
|
+
return f;
|
|
118
|
+
}).filter(isNotNil);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
this.__or = undefined;
|
|
122
|
+
}
|
|
123
|
+
// NOT
|
|
124
|
+
this.__not = !!source?.not;
|
|
75
125
|
}
|
|
76
126
|
/* -- protected functions -- */
|
|
77
127
|
buildFilter() {
|
|
@@ -166,4 +216,4 @@ export class EntityFilterUtils {
|
|
|
166
216
|
return target;
|
|
167
217
|
}
|
|
168
218
|
}
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxNQUFNLEVBQWtDLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBeUJ0RixNQUFNLE9BQWdCLFlBT3BCLFNBQVEsTUFBcUI7SUFHN0I7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUE0QixTQUF3QjtRQUN2RSxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUM5QyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLFVBQVUsQ0FBNEIsU0FBd0I7UUFDbkUsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDOUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsT0FBTyxDQUEwRCxPQUFZO1FBQ2xGLE1BQU0sU0FBUyxHQUFHLENBQUMs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QUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3QyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFnQixpQkFBaUI7SUFDckMsTUFBTSxDQUFDLGNBQWMsQ0FBaUMsR0FBZTtRQUNuRSxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUksTUFBVyxFQUFFLFVBQXVCO1FBQ3ZELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDM0IsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztZQUFFLE9BQU8sTUFBVyxDQUFDO1FBQ3pELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDaEMsSUFBSSxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOb3ROaWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IE1JTklGWV9FTlRJVFlfRk9SX1BPRCwgUmVmZXJlbnRpYWxVdGlscyB9IGZyb20gJy4vcmVmZXJlbnRpYWwubW9kZWwnO1xuaW1wb3J0IHsgRW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnMsIElFbnRpdHksIGlzSW5zdGFuY2VPZiB9IGZyb20gJy4vZW50aXR5Lm1vZGVsJztcblxuaW1wb3J0IHsgRmlsdGVyRm4gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElFbnRpdHlGaWx0ZXI8XG4gIEYgZXh0ZW5kcyBJRW50aXR5RmlsdGVyPEYsIFQsIElELCBBTywgRk8+LFxuICBUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+LFxuICBJRCA9IG51bWJlcixcbiAgQU8gZXh0ZW5kcyBFbnRpdHlBc09iamVjdE9wdGlvbnMgPSBFbnRpdHlBc09iamVjdE9wdGlvbnMsXG4gIEZPID0gYW55LFxuPiBleHRlbmRzIElFbnRpdHk8RiwgSUQsIEFPLCBGTz4ge1xuICBhc1BvZE9iamVjdCgpOiBhbnk7XG5cbiAgYXNGaWx0ZXJGbigpOiBGaWx0ZXJGbjxUPjtcblxuICBpc0VtcHR5KCk6IGJvb2xlYW47XG5cbiAgY291bnROb3RFbXB0eUNyaXRlcmlhKCk6IG51bWJlcjtcblxuICAvLyBMb2dpY2FsIGNvbWJpbmF0b3JzXG4gIGFuZCguLi5maWx0ZXJzOiBFbnRpdHlGaWx0ZXI8YW55LCBUPltdKTogQW5kRmlsdGVyPFQ+O1xuICBvciguLi5maWx0ZXJzOiBFbnRpdHlGaWx0ZXI8YW55LCBUPltdKTogT3JGaWx0ZXI8VD47XG4gIG5vdCgpOiBOb3RGaWx0ZXI8VD47XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdHlGaWx0ZXI8XG4gICAgRiBleHRlbmRzIElFbnRpdHlGaWx0ZXI8RiwgVCwgSUQsIEFPLCBGTz4sXG4gICAgVCBleHRlbmRzIElFbnRpdHk8VCwgYW55PixcbiAgICBJRCA9IG51bWJlcixcbiAgICBBTyBleHRlbmRzIEVudGl0eUFzT2JqZWN0T3B0aW9ucyA9IEVudGl0eUFzT2JqZWN0T3B0aW9ucyxcbiAgICBGTyA9IGFueSxcbiAgPlxuICBleHRlbmRzIEVudGl0eTxGLCBJRCwgQU8sIEZPPlxuICBpbXBsZW1lbnRzIElFbnRpdHlGaWx0ZXI8RiwgVCwgSUQsIEFPLCBGTz5cbntcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgRW50aXR5RmlsdGVyVXRpbHMuY29tcG9zZUZucygpYFxuICAgKiBDb21wb3NlIHNvbWUgZmlsdGVyIGZ1bmN0aW9uczogYWxsIHNob3VsZCByZXR1cm4gdHJ1ZVxuICAgKlxuICAgKiBAcGFyYW0gZmlsdGVyRm5zXG4gICAqL1xuICBzdGF0aWMgY29tcG9zZUZpbHRlcnM8VCBleHRlbmRzIElFbnRpdHk8VCwgYW55Pj4oZmlsdGVyRm5zOiBGaWx0ZXJGbjxUPltdKTogRmlsdGVyRm48VD4ge1xuICAgIGlmIChpc0VtcHR5QXJyYXkoZmlsdGVyRm5zKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKGVudGl0eSkgPT4gKGZpbHRlckZucyB8fCBbXSkuZXZlcnkoKGZuKSA9PiBmbihlbnRpdHkpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wb3NlIHNvbWUgZmlsdGVyIGZ1bmN0aW9uczogYWxsIHNob3VsZCByZXR1cm4gdHJ1ZVxuICAgKlxuICAgKiBAcGFyYW0gZmlsdGVyRm5zXG4gICAqL1xuICBzdGF0aWMgY29tcG9zZUZuczxUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+PihmaWx0ZXJGbnM6IEZpbHRlckZuPFQ+W10pOiBGaWx0ZXJGbjxUPiB7XG4gICAgaWYgKGlzRW1wdHlBcnJheShmaWx0ZXJGbnMpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiAoZW50aXR5KSA9PiAoZmlsdGVyRm5zIHx8IFtdKS5ldmVyeSgoZm4pID0+IGZuKGVudGl0eSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgRW50aXR5RmlsdGVyLmFuZCgpYFxuICAgKi9cbiAgc3RhdGljIGNvbXBvc2U8RiBleHRlbmRzIEVudGl0eUZpbHRlcjxGLCBUPiwgVCBleHRlbmRzIElFbnRpdHk8VCwgYW55Pj4oZmlsdGVyczogRltdKTogRmlsdGVyRm48VD4ge1xuICAgIGNvbnN0IGZpbHRlckZucyA9IChmaWx0ZXJzIHx8IFtdKS5yZWR1Y2UoKHJlcywgZikgPT4ge1xuICAgICAgY29uc3QgZm5zID0gZi5idWlsZEZpbHRlcigpO1xuICAgICAgaWYgKCFmbnMpIHJldHVybiByZXM7XG4gICAgICByZXR1cm4gcmVzLmNvbmNhdChmbnMpO1xuICAgIH0sIFtdKTtcbiAgICByZXR1cm4gdGhpcy5jb21wb3NlRm5zKGZpbHRlckZucyk7XG4gIH1cblxuICBzdGF0aWMgb3I8VCBleHRlbmRzIElFbnRpdHk8VCwgYW55Pj4oLi4uZmlsdGVyczogRW50aXR5RmlsdGVyPGFueSwgVD5bXSk6IE9yRmlsdGVyPFQ+IHtcbiAgICByZXR1cm4gbmV3IE9yRmlsdGVyPFQ+KC4uLihmaWx0ZXJzIHx8IFtdKSk7XG4gIH1cblxuICBzdGF0aWMgYW5kPFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4+KC4uLmZpbHRlcnM6IEVudGl0eUZpbHRlcjxhbnksIFQ+W10pOiBBbmRGaWx0ZXI8VD4ge1xuICAgIHJldHVybiBuZXcgQW5kRmlsdGVyPFQ+KC4uLihmaWx0ZXJzIHx8IFtdKSk7XG4gIH1cblxuICBzdGF0aWMgbm90PFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4+KGZpbHRlcjogRW50aXR5RmlsdGVyPGFueSwgVD4pOiBOb3RGaWx0ZXI8VD4ge1xuICAgIHJldHVybiBuZXcgTm90RmlsdGVyPFQ+KGZpbHRlcik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihfX3R5cGVuYW1lPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoX190eXBlbmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW4gYSBmaWx0ZXIsIGJlZm9yZSBzZW5kaW5nIHRvIHRoZSBwb2QgKGUuZyBjb252ZXJ0IGRhdGVzLCByZW1vdmUgaW50ZXJuYWwgcHJvcGVydGllcywgZXRjLilcbiAgICovXG4gIGFzUG9kT2JqZWN0KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuYXNPYmplY3QoTUlOSUZZX0VOVElUWV9GT1JfUE9EIGFzIEFPKTtcbiAgfVxuXG4gIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY291bnROb3RFbXB0eUNyaXRlcmlhKCkgPT09IDA7XG4gIH1cblxuICBjb3VudE5vdEVtcHR5Q3JpdGVyaWEoKTogbnVtYmVyIHtcbiAgICBjb25zdCBqc29uID0gdGhpcy5hc1BvZE9iamVjdCgpO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhqc29uKS5maWx0ZXIoKGtleSkgPT4gdGhpcy5pc0NyaXRlcmlhTm90RW1wdHkoa2V5LCBqc29uW2tleV0pKS5sZW5ndGg7XG4gIH1cblxuICBhc0ZpbHRlckZuKCk6IEZpbHRlckZuPFQ+IHtcbiAgICBjb25zdCBmaWx0ZXJGbnMgPSB0aGlzLmJ1aWxkRmlsdGVyKCk7XG4gICAgcmV0dXJuIEVudGl0eUZpbHRlci5jb21wb3NlRm5zKGZpbHRlckZucyk7XG4gIH1cblxuICBhbmQoLi4uZmlsdGVyczogRW50aXR5RmlsdGVyPGFueSwgVD5bXSk6IEFuZEZpbHRlcjxUPiB7XG4gICAgcmV0dXJuIG5ldyBBbmRGaWx0ZXI8VD4odGhpcyBhcyBFbnRpdHlGaWx0ZXI8YW55LCBUPiwgLi4uZmlsdGVycyk7XG4gIH1cblxuICBvciguLi5maWx0ZXJzOiBFbnRpdHlGaWx0ZXI8YW55LCBUPltdKTogT3JGaWx0ZXI8VD4ge1xuICAgIHJldHVybiBuZXcgT3JGaWx0ZXI8VD4odGhpcyBhcyBFbnRpdHlGaWx0ZXI8YW55LCBUPiwgLi4uZmlsdGVycyk7XG4gIH1cblxuICBub3QoKTogTm90RmlsdGVyPFQ+IHtcbiAgICByZXR1cm4gbmV3IE5vdEZpbHRlcjxUPih0aGlzIGFzIEVudGl0eUZpbHRlcjxhbnksIFQ+KTtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBmdW5jdGlvbnMgLS0gKi9cblxuICBwcm90ZWN0ZWQgYnVpbGRGaWx0ZXIoKTogRmlsdGVyRm48VD5bXSB7XG4gICAgLy8gQ2FuIGJlIGNvbXBsZXRlZCBieSBzdWJjbGFzc2VzXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQ3JpdGVyaWFOb3RFbXB0eShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIC8vIENhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXNcbiAgICByZXR1cm4gKFxuICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgIC8vIG5vdCBlbXB0eSBzdHJpbmdcbiAgICAgICgodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgIT09ICcnKSB8fFxuICAgICAgICAvLyB2YWxpZCBudW1iZXJcbiAgICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbHVlKSkgfHxcbiAgICAgICAgLy8gdmFsaWQgYm9vbGVhblxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fFxuICAgICAgICAvLyBub3QgZW1wdHkgYXJyYXlcbiAgICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHx8XG4gICAgICAgIC8vIGVudGl0eSB3aXRoIGFuIGlkXG4gICAgICAgIFJlZmVyZW50aWFsVXRpbHMuaXNOb3RFbXB0eSh2YWx1ZSkpXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3JGaWx0ZXI8VCBleHRlbmRzIElFbnRpdHk8VCwgYW55Pj4gZXh0ZW5kcyBFbnRpdHlGaWx0ZXI8T3JGaWx0ZXI8VD4sIFQ+IHtcbiAgcHJvdGVjdGVkIGZpbHRlcnM6IEVudGl0eUZpbHRlcjxhbnksIFQ+W107XG5cbiAgY29uc3RydWN0b3IoLi4uZmlsdGVyczogRW50aXR5RmlsdGVyPGFueSwgVD5bXSkge1xuICAgIHN1cGVyKCdPckZpbHRlcicpO1xuICAgIHRoaXMuZmlsdGVycyA9IChmaWx0ZXJzIHx8IFtdKS5maWx0ZXIoaXNOb3ROaWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkRmlsdGVyKCk6IEZpbHRlckZuPFQ+W10ge1xuICAgIGNvbnN0IGZucyA9ICh0aGlzLmZpbHRlcnMgfHwgW10pXG4gICAgICAubWFwKChmKSA9PiAoZiA/IGYuYXNGaWx0ZXJGbigpIDogdW5kZWZpbmVkKSlcbiAgICAgIC5maWx0ZXIoaXNOb3ROaWwpO1xuXG4gICAgaWYgKGlzRW1wdHlBcnJheShmbnMpKSByZXR1cm4gW107XG5cbiAgICByZXR1cm4gW1xuICAgICAgKGVudGl0eTogVCkgPT4gZm5zLnNvbWUoKGZuKSA9PiBmbihlbnRpdHkpKVxuICAgIF07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5vdEZpbHRlcjxUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+PiBleHRlbmRzIEVudGl0eUZpbHRlcjxOb3RGaWx0ZXI8VD4sIFQ+IHtcbiAgcHJvdGVjdGVkIGZpbHRlcjogRW50aXR5RmlsdGVyPGFueSwgVD47XG5cbiAgY29uc3RydWN0b3IoZmlsdGVyOiBFbnRpdHlGaWx0ZXI8YW55LCBUPikge1xuICAgIHN1cGVyKCdOb3RGaWx0ZXInKTtcbiAgICB0aGlzLmZpbHRlciA9IGZpbHRlcjtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEZpbHRlcigpOiBGaWx0ZXJGbjxUPltdIHtcbiAgICBjb25zdCBmbiA9IHRoaXMuZmlsdGVyPy5hc0ZpbHRlckZuKCk7XG4gICAgaWYgKCFmbikgcmV0dXJuIFtdO1xuICAgIHJldHVybiBbXG4gICAgICAoZW50aXR5OiBUKSA9PiAhZm4oZW50aXR5KVxuICAgIF07XG4gIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgQW5kRmlsdGVyPFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4+IGV4dGVuZHMgRW50aXR5RmlsdGVyPEFuZEZpbHRlcjxUPiwgVD4ge1xuICBwcm90ZWN0ZWQgZmlsdGVyczogRW50aXR5RmlsdGVyPGFueSwgVD5bXTtcblxuICBjb25zdHJ1Y3RvciguLi5maWx0ZXJzOiBFbnRpdHlGaWx0ZXI8YW55LCBUPltdKSB7XG4gICAgc3VwZXIoJ0FuZEZpbHRlcicpO1xuICAgIHRoaXMuZmlsdGVycyA9IChmaWx0ZXJzIHx8IFtdKS5maWx0ZXIoaXNOb3ROaWwpO1xuICB9XG5cbiAgYW5kKC4uLmZpbHRlcnM6IEVudGl0eUZpbHRlcjxhbnksIFQ+W10pOiBBbmRGaWx0ZXI8VD4ge1xuICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVycy5jb25jYXQoLi4uKGZpbHRlcnMgfHwgW10pLmZpbHRlcihpc05vdE5pbCkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkRmlsdGVyKCk6IEZpbHRlckZuPFQ+W10ge1xuICAgIGNvbnN0IGZucyA9ICh0aGlzLmZpbHRlcnMgfHwgW10pXG4gICAgICAubWFwKChmKSA9PiAoZiA/IGYuYXNGaWx0ZXJGbigpIDogdW5kZWZpbmVkKSlcbiAgICAgIC5maWx0ZXIoaXNOb3ROaWwpO1xuXG4gICAgaWYgKGlzRW1wdHlBcnJheShmbnMpKSByZXR1cm4gW107XG5cbiAgICByZXR1cm4gW1xuICAgICAgKGVudGl0eTogVCkgPT4gZm5zLmV2ZXJ5KChmbikgPT4gZm4oZW50aXR5KSlcbiAgICBdO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdHlGaWx0ZXJVdGlscyB7XG4gIHN0YXRpYyBpc0VudGl0eUZpbHRlcjxGIGV4dGVuZHMgRW50aXR5RmlsdGVyPEYsIGFueT4+KG9iajogUGFydGlhbDxGPik6IG9iaiBpcyBGIHtcbiAgICByZXR1cm4gKG9iaiAmJiBvYmouYXNQb2RPYmplY3QgJiYgb2JqLmFzRmlsdGVyRm4gJiYgdHJ1ZSkgfHwgZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbU9iamVjdDxGPihzb3VyY2U6IGFueSwgZmlsdGVyVHlwZTogbmV3ICgpID0+IEYpOiBGIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuIHNvdXJjZTtcbiAgICBpZiAoaXNJbnN0YW5jZU9mKHNvdXJjZSwgZmlsdGVyVHlwZSkpIHJldHVybiBzb3VyY2UgYXMgRjtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgZmlsdGVyVHlwZSgpO1xuICAgIGlmIChFbnRpdHlGaWx0ZXJVdGlscy5pc0VudGl0eUZpbHRlcih0YXJnZXQpKSB7XG4gICAgICB0YXJnZXQuZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3QuYXNzaWduKHRhcmdldCwgc291cmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG59XG4iXX0=
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsTUFBTSxFQUFrQyxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXlCdEYsTUFBTSxPQUFnQixZQU9wQixTQUFRLE1BQXFCO0lBRzdCLDBDQUEwQztJQUNoQyxLQUFLLENBQU87SUFDWixJQUFJLENBQU87SUFDWCxLQUFLLENBQVc7SUFFMUIsTUFBTSxDQUFDLE1BQU0sQ0FBNEIsU0FBd0I7UUFDL0QsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDOUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBNEIsU0FBd0I7UUFDOUQsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDOUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBR0QsWUFBWSxVQUFtQjtRQUM3QixLQUFL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QyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0VtcHR5QXJyYXksIGlzTm90RW1wdHlBcnJheSwgaXNOb3ROaWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IE1JTklGWV9FTlRJVFlfRk9SX1BPRCwgUmVmZXJlbnRpYWxVdGlscyB9IGZyb20gJy4vcmVmZXJlbnRpYWwubW9kZWwnO1xuaW1wb3J0IHsgRW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnMsIElFbnRpdHksIGlzSW5zdGFuY2VPZiB9IGZyb20gJy4vZW50aXR5Lm1vZGVsJztcblxuaW1wb3J0IHsgRmlsdGVyRm4gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElFbnRpdHlGaWx0ZXI8XG4gIEYgZXh0ZW5kcyBJRW50aXR5RmlsdGVyPEYsIFQsIElELCBBTywgRk8+LFxuICBUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+LFxuICBJRCA9IG51bWJlcixcbiAgQU8gZXh0ZW5kcyBFbnRpdHlBc09iamVjdE9wdGlvbnMgPSBFbnRpdHlBc09iamVjdE9wdGlvbnMsXG4gIEZPID0gYW55LFxuPiBleHRlbmRzIElFbnRpdHk8RiwgSUQsIEFPLCBGTz4ge1xuICBhc1BvZE9iamVjdCgpOiBhbnk7XG5cbiAgYXNGaWx0ZXJGbigpOiBGaWx0ZXJGbjxUPjtcblxuICBpc0VtcHR5KCk6IGJvb2xlYW47XG5cbiAgY291bnROb3RFbXB0eUNyaXRlcmlhKCk6IG51bWJlcjtcblxuICAvLyBMb2dpY2FsIGNvbWJpbmF0b3JzIChmbHVlbnQsIHJldHVybiBzYW1lIGZpbHRlciB0eXBlIEYpXG4gIGFuZCguLi5maWx0ZXJzOiBGW10pOiBGO1xuICBvciguLi5maWx0ZXJzOiBGW10pOiBGO1xuICBub3QoKTogRjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0eUZpbHRlcjxcbiAgICBGIGV4dGVuZHMgSUVudGl0eUZpbHRlcjxGLCBULCBJRCwgQU8sIEZPPixcbiAgICBUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+LFxuICAgIElEID0gbnVtYmVyLFxuICAgIEFPIGV4dGVuZHMgRW50aXR5QXNPYmplY3RPcHRpb25zID0gRW50aXR5QXNPYmplY3RPcHRpb25zLFxuICAgIEZPID0gYW55LFxuICA+XG4gIGV4dGVuZHMgRW50aXR5PEYsIElELCBBTywgRk8+XG4gIGltcGxlbWVudHMgSUVudGl0eUZpbHRlcjxGLCBULCBJRCwgQU8sIEZPPlxue1xuICAvLyBJbnRlcm5hbCBjb21wb3NpdGlvbiBzdGF0ZSAoZmx1ZW50IEFQSSlcbiAgcHJvdGVjdGVkIF9fYW5kPzogRltdO1xuICBwcm90ZWN0ZWQgX19vcj86IEZbXTtcbiAgcHJvdGVjdGVkIF9fbm90PzogYm9vbGVhbjtcblxuICBzdGF0aWMgYW5kRm5zPFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4+KGZpbHRlckZuczogRmlsdGVyRm48VD5bXSk6IEZpbHRlckZuPFQ+IHtcbiAgICBpZiAoaXNFbXB0eUFycmF5KGZpbHRlckZucykpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChlbnRpdHkpID0+IChmaWx0ZXJGbnMgfHwgW10pLmV2ZXJ5KChmbikgPT4gZm4oZW50aXR5KSk7XG4gIH1cblxuICBzdGF0aWMgb3JGbnM8VCBleHRlbmRzIElFbnRpdHk8VCwgYW55Pj4oZmlsdGVyRm5zOiBGaWx0ZXJGbjxUPltdKTogRmlsdGVyRm48VD4ge1xuICAgIGlmIChpc0VtcHR5QXJyYXkoZmlsdGVyRm5zKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKGVudGl0eSkgPT4gKGZpbHRlckZucyB8fCBbXSkuc29tZSgoZm4pID0+IGZuKGVudGl0eSkpO1xuICB9XG5cblxuICBjb25zdHJ1Y3RvcihfX3R5cGVuYW1lPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoX190eXBlbmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW4gYSBmaWx0ZXIsIGJlZm9yZSBzZW5kaW5nIHRvIHRoZSBwb2QgKGUuZyBjb252ZXJ0IGRhdGVzLCByZW1vdmUgaW50ZXJuYWwgcHJvcGVydGllcywgZXRjLilcbiAgICovXG4gIGFzUG9kT2JqZWN0KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuYXNPYmplY3QoTUlOSUZZX0VOVElUWV9GT1JfUE9EIGFzIEFPKTtcbiAgfVxuXG4gIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY291bnROb3RFbXB0eUNyaXRlcmlhKCkgPT09IDA7XG4gIH1cblxuICBjb3VudE5vdEVtcHR5Q3JpdGVyaWEoKTogbnVtYmVyIHtcbiAgICBjb25zdCBqc29uID0gdGhpcy5hc1BvZE9iamVjdCgpO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhqc29uKS5maWx0ZXIoKGtleSkgPT4gdGhpcy5pc0NyaXRlcmlhTm90RW1wdHkoa2V5LCBqc29uW2tleV0pKS5sZW5ndGg7XG4gIH1cblxuICBhc0ZpbHRlckZuKCk6IEZpbHRlckZuPFQ+IHtcbiAgICAvLyBCYXNlICh0aGlzKSBmaWx0ZXIgZnVuY3Rpb25zXG4gICAgbGV0IGZpbHRlckZucyA9IHRoaXMuYnVpbGRGaWx0ZXIoKSB8fCBbXTtcblxuICAgIC8vIEFORCBmaWx0ZXJzXG4gICAgaWYgKGlzTm90RW1wdHlBcnJheSh0aGlzLl9fYW5kKSkge1xuICAgICAgZmlsdGVyRm5zLnB1c2goLi4udGhpcy5fX2FuZC5tYXAoKGYpID0+IGY/LmFzRmlsdGVyRm4oKSkuZmlsdGVyKGlzTm90TmlsKSk7XG4gICAgfVxuXG4gICAgLy8gQXMgZmlsdGVyIGZ1bmN0aW9uXG4gICAgbGV0IHJlc3VsdCA9IEVudGl0eUZpbHRlci5hbmRGbnM8VD4oZmlsdGVyRm5zKTtcblxuICAgIC8vIE9SIGZpbHRlcnNcbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMuX19vcikpIHtcbiAgICAgIHJlc3VsdCA9IEVudGl0eUZpbHRlci5vckZucyhcbiAgICAgICAgW1xuICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICAuLi4odGhpcy5fX29yIHx8IFtdKS5tYXAoKGYpID0+IGY/LmFzRmlsdGVyRm4oKSlcbiAgICAgICAgXS5maWx0ZXIoaXNOb3ROaWwpXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIE5PVFxuICAgIGlmICh0aGlzLl9fbm90ICYmIHJlc3VsdCkge1xuICAgICAgY29uc3QgaW5uZXIgPSByZXN1bHQ7XG4gICAgICByZXN1bHQgPSAoZW50aXR5OiBUKSA9PiAhaW5uZXIoZW50aXR5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYW5kKC4uLmZpbHRlcnM6IEZbXSk6IEYge1xuICAgIGlmICghaXNFbXB0eUFycmF5KGZpbHRlcnMpKSB7XG4gICAgICB0aGlzLl9fYW5kID0gKHRoaXMuX19hbmQgfHwgW10pLmNvbmNhdChmaWx0ZXJzLmZpbHRlcihpc05vdE5pbCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcyBhcyB1bmtub3duIGFzIEY7XG4gIH1cblxuICBvciguLi5maWx0ZXJzOiBGW10pOiBGIHtcbiAgICBpZiAoIWlzRW1wdHlBcnJheShmaWx0ZXJzKSkge1xuICAgICAgdGhpcy5fX29yID0gKHRoaXMuX19vciB8fCBbXSkuY29uY2F0KGZpbHRlcnMuZmlsdGVyKGlzTm90TmlsKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzIGFzIHVua25vd24gYXMgRjtcbiAgfVxuXG4gIG5vdCgpOiBGIHtcbiAgICB0aGlzLl9fbm90ID0gISh0aGlzLl9fbm90ID8/IGZhbHNlKTtcbiAgICByZXR1cm4gdGhpcyBhcyB1bmtub3duIGFzIEY7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogQU8pOiBhbnkge1xuICAgIGNvbnN0IHRhcmdldDogYW55ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG5cbiAgICAvLyBTZXJpYWxpemUgY29tcG9zaXRpb25cbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMuX19hbmQpKSB7XG4gICAgICB0YXJnZXQuYW5kID0gdGhpcy5fX2FuZC5tYXAoKGYpID0+IGYuYXNPYmplY3Qob3B0cykpO1xuICAgIH1cbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMuX19vcikpIHtcbiAgICAgIHRhcmdldC5vciA9IHRoaXMuX19vci5tYXAoKGYpID0+IGYuYXNPYmplY3Qob3B0cykpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fX25vdCkge1xuICAgICAgdGFyZ2V0Lm5vdCA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gU2FuaXRpemVcbiAgICBkZWxldGUgdGFyZ2V0Ll9fYW5kO1xuICAgIGRlbGV0ZSB0YXJnZXQuX19vcjtcbiAgICBkZWxldGUgdGFyZ2V0Ll9fbm90O1xuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBGTykge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlLCBvcHRzIGFzIGFueSk7XG4gICAgLy8gRGVzZXJpYWxpemUgY29tcG9zaXRpb24gdXNpbmcgdGhlIHNhbWUgY29uY3JldGUgZmlsdGVyIHR5cGVcblxuICAgIC8vIEFORFxuICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZT8uYW5kKSkge1xuICAgICAgY29uc3QgQ3RvcjogbmV3ICgpID0+IEYgPSAodGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkpO1xuICAgICAgdGhpcy5fX2FuZCA9IHNvdXJjZS5hbmQubWFwKChzKSA9PiB7XG4gICAgICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZiA9IG5ldyBDdG9yKCk7XG4gICAgICAgIChmIGFzIGFueSkuZnJvbU9iamVjdChzLCBvcHRzKTtcbiAgICAgICAgcmV0dXJuIGY7XG4gICAgICB9KS5maWx0ZXIoaXNOb3ROaWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9fYW5kID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIE9SXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlPy5vcikpIHtcbiAgICAgIGNvbnN0IEN0b3I6IG5ldyAoKSA9PiBGID0gKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KTtcbiAgICAgIHRoaXMuX19vciA9IHNvdXJjZS5vci5tYXAoKHMpID0+IHtcbiAgICAgICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBmID0gbmV3IEN0b3IoKTtcbiAgICAgICAgKGYgYXMgYW55KS5mcm9tT2JqZWN0KHMsIG9wdHMpO1xuICAgICAgICByZXR1cm4gZjtcbiAgICAgIH0pLmZpbHRlcihpc05vdE5pbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX19vciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBOT1RcbiAgICB0aGlzLl9fbm90ID0gISFzb3VyY2U/Lm5vdDtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBmdW5jdGlvbnMgLS0gKi9cblxuICBwcm90ZWN0ZWQgYnVpbGRGaWx0ZXIoKTogRmlsdGVyRm48VD5bXSB7XG4gICAgLy8gQ2FuIGJlIGNvbXBsZXRlZCBieSBzdWJjbGFzc2VzXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQ3JpdGVyaWFOb3RFbXB0eShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIC8vIENhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXNcbiAgICByZXR1cm4gKFxuICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgIC8vIG5vdCBlbXB0eSBzdHJpbmdcbiAgICAgICgodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgIT09ICcnKSB8fFxuICAgICAgICAvLyB2YWxpZCBudW1iZXJcbiAgICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbHVlKSkgfHxcbiAgICAgICAgLy8gdmFsaWQgYm9vbGVhblxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fFxuICAgICAgICAvLyBub3QgZW1wdHkgYXJyYXlcbiAgICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHx8XG4gICAgICAgIC8vIGVudGl0eSB3aXRoIGFuIGlkXG4gICAgICAgIFJlZmVyZW50aWFsVXRpbHMuaXNOb3RFbXB0eSh2YWx1ZSkpXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3JGaWx0ZXI8VCBleHRlbmRzIElFbnRpdHk8VCwgYW55Pj4gZXh0ZW5kcyBFbnRpdHlGaWx0ZXI8T3JGaWx0ZXI8VD4sIFQ+IHtcbiAgcHJvdGVjdGVkIGZpbHRlcnM6IEVudGl0eUZpbHRlcjxhbnksIFQ+W107XG5cbiAgY29uc3RydWN0b3IoLi4uZmlsdGVyczogRW50aXR5RmlsdGVyPGFueSwgVD5bXSkge1xuICAgIHN1cGVyKCdPckZpbHRlcicpO1xuICAgIHRoaXMuZmlsdGVycyA9IChmaWx0ZXJzIHx8IFtdKS5maWx0ZXIoaXNOb3ROaWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkRmlsdGVyKCk6IEZpbHRlckZuPFQ+W10ge1xuICAgIGNvbnN0IGZucyA9ICh0aGlzLmZpbHRlcnMgfHwgW10pXG4gICAgICAubWFwKChmKSA9PiAoZiA/IGYuYXNGaWx0ZXJGbigpIDogdW5kZWZpbmVkKSlcbiAgICAgIC5maWx0ZXIoaXNOb3ROaWwpO1xuXG4gICAgaWYgKGlzRW1wdHlBcnJheShmbnMpKSByZXR1cm4gW107XG5cbiAgICByZXR1cm4gW1xuICAgICAgKGVudGl0eTogVCkgPT4gZm5zLnNvbWUoKGZuKSA9PiBmbihlbnRpdHkpKVxuICAgIF07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5vdEZpbHRlcjxUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+PiBleHRlbmRzIEVudGl0eUZpbHRlcjxOb3RGaWx0ZXI8VD4sIFQ+IHtcbiAgcHJvdGVjdGVkIGZpbHRlcjogRW50aXR5RmlsdGVyPGFueSwgVD47XG5cbiAgY29uc3RydWN0b3IoZmlsdGVyOiBFbnRpdHlGaWx0ZXI8YW55LCBUPikge1xuICAgIHN1cGVyKCdOb3RGaWx0ZXInKTtcbiAgICB0aGlzLmZpbHRlciA9IGZpbHRlcjtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEZpbHRlcigpOiBGaWx0ZXJGbjxUPltdIHtcbiAgICBjb25zdCBmbiA9IHRoaXMuZmlsdGVyPy5hc0ZpbHRlckZuKCk7XG4gICAgaWYgKCFmbikgcmV0dXJuIFtdO1xuICAgIHJldHVybiBbXG4gICAgICAoZW50aXR5OiBUKSA9PiAhZm4oZW50aXR5KVxuICAgIF07XG4gIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgQW5kRmlsdGVyPFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4+IGV4dGVuZHMgRW50aXR5RmlsdGVyPEFuZEZpbHRlcjxUPiwgVD4ge1xuICBwcm90ZWN0ZWQgZmlsdGVyczogRW50aXR5RmlsdGVyPGFueSwgVD5bXTtcblxuICBjb25zdHJ1Y3RvciguLi5maWx0ZXJzOiBFbnRpdHlGaWx0ZXI8YW55LCBUPltdKSB7XG4gICAgc3VwZXIoJ0FuZEZpbHRlcicpO1xuICAgIHRoaXMuZmlsdGVycyA9IChmaWx0ZXJzIHx8IFtdKS5maWx0ZXIoaXNOb3ROaWwpO1xuICB9XG5cbiAgYW5kKC4uLmZpbHRlcnM6IEVudGl0eUZpbHRlcjxhbnksIFQ+W10pOiBBbmRGaWx0ZXI8VD4ge1xuICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVycy5jb25jYXQoLi4uKGZpbHRlcnMgfHwgW10pLmZpbHRlcihpc05vdE5pbCkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkRmlsdGVyKCk6IEZpbHRlckZuPFQ+W10ge1xuICAgIGNvbnN0IGZucyA9ICh0aGlzLmZpbHRlcnMgfHwgW10pXG4gICAgICAubWFwKChmKSA9PiAoZiA/IGYuYXNGaWx0ZXJGbigpIDogdW5kZWZpbmVkKSlcbiAgICAgIC5maWx0ZXIoaXNOb3ROaWwpO1xuXG4gICAgaWYgKGlzRW1wdHlBcnJheShmbnMpKSByZXR1cm4gW107XG5cbiAgICByZXR1cm4gW1xuICAgICAgKGVudGl0eTogVCkgPT4gZm5zLmV2ZXJ5KChmbikgPT4gZm4oZW50aXR5KSlcbiAgICBdO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdHlGaWx0ZXJVdGlscyB7XG4gIHN0YXRpYyBpc0VudGl0eUZpbHRlcjxGIGV4dGVuZHMgRW50aXR5RmlsdGVyPEYsIGFueT4+KG9iajogUGFydGlhbDxGPik6IG9iaiBpcyBGIHtcbiAgICByZXR1cm4gKG9iaiAmJiBvYmouYXNQb2RPYmplY3QgJiYgb2JqLmFzRmlsdGVyRm4gJiYgdHJ1ZSkgfHwgZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbU9iamVjdDxGPihzb3VyY2U6IGFueSwgZmlsdGVyVHlwZTogbmV3ICgpID0+IEYpOiBGIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuIHNvdXJjZTtcbiAgICBpZiAoaXNJbnN0YW5jZU9mKHNvdXJjZSwgZmlsdGVyVHlwZSkpIHJldHVybiBzb3VyY2UgYXMgRjtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgZmlsdGVyVHlwZSgpO1xuICAgIGlmIChFbnRpdHlGaWx0ZXJVdGlscy5pc0VudGl0eUZpbHRlcih0YXJnZXQpKSB7XG4gICAgICB0YXJnZXQuZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3QuYXNzaWduKHRhcmdldCwgc291cmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -17968,47 +17968,19 @@ ReferentialRef = ReferentialRef_1 = __decorate([
|
|
|
17968
17968
|
], ReferentialRef);
|
|
17969
17969
|
|
|
17970
17970
|
class EntityFilter extends Entity {
|
|
17971
|
-
|
|
17972
|
-
|
|
17973
|
-
|
|
17974
|
-
|
|
17975
|
-
|
|
17976
|
-
*/
|
|
17977
|
-
static composeFilters(filterFns) {
|
|
17971
|
+
// Internal composition state (fluent API)
|
|
17972
|
+
__and;
|
|
17973
|
+
__or;
|
|
17974
|
+
__not;
|
|
17975
|
+
static andFns(filterFns) {
|
|
17978
17976
|
if (isEmptyArray(filterFns))
|
|
17979
17977
|
return undefined;
|
|
17980
17978
|
return (entity) => (filterFns || []).every((fn) => fn(entity));
|
|
17981
17979
|
}
|
|
17982
|
-
|
|
17983
|
-
* Compose some filter functions: all should return true
|
|
17984
|
-
*
|
|
17985
|
-
* @param filterFns
|
|
17986
|
-
*/
|
|
17987
|
-
static composeFns(filterFns) {
|
|
17980
|
+
static orFns(filterFns) {
|
|
17988
17981
|
if (isEmptyArray(filterFns))
|
|
17989
17982
|
return undefined;
|
|
17990
|
-
return (entity) => (filterFns || []).
|
|
17991
|
-
}
|
|
17992
|
-
/**
|
|
17993
|
-
* @deprecated Use `EntityFilter.and()`
|
|
17994
|
-
*/
|
|
17995
|
-
static compose(filters) {
|
|
17996
|
-
const filterFns = (filters || []).reduce((res, f) => {
|
|
17997
|
-
const fns = f.buildFilter();
|
|
17998
|
-
if (!fns)
|
|
17999
|
-
return res;
|
|
18000
|
-
return res.concat(fns);
|
|
18001
|
-
}, []);
|
|
18002
|
-
return this.composeFns(filterFns);
|
|
18003
|
-
}
|
|
18004
|
-
static or(...filters) {
|
|
18005
|
-
return new OrFilter(...(filters || []));
|
|
18006
|
-
}
|
|
18007
|
-
static and(...filters) {
|
|
18008
|
-
return new AndFilter(...(filters || []));
|
|
18009
|
-
}
|
|
18010
|
-
static not(filter) {
|
|
18011
|
-
return new NotFilter(filter);
|
|
17983
|
+
return (entity) => (filterFns || []).some((fn) => fn(entity));
|
|
18012
17984
|
}
|
|
18013
17985
|
constructor(__typename) {
|
|
18014
17986
|
super(__typename);
|
|
@@ -18027,17 +17999,95 @@ class EntityFilter extends Entity {
|
|
|
18027
17999
|
return Object.keys(json).filter((key) => this.isCriteriaNotEmpty(key, json[key])).length;
|
|
18028
18000
|
}
|
|
18029
18001
|
asFilterFn() {
|
|
18030
|
-
|
|
18031
|
-
|
|
18002
|
+
// Base (this) filter functions
|
|
18003
|
+
let filterFns = this.buildFilter() || [];
|
|
18004
|
+
// AND filters
|
|
18005
|
+
if (isNotEmptyArray(this.__and)) {
|
|
18006
|
+
filterFns.push(...this.__and.map((f) => f?.asFilterFn()).filter(isNotNil));
|
|
18007
|
+
}
|
|
18008
|
+
// As filter function
|
|
18009
|
+
let result = EntityFilter.andFns(filterFns);
|
|
18010
|
+
// OR filters
|
|
18011
|
+
if (isNotEmptyArray(this.__or)) {
|
|
18012
|
+
result = EntityFilter.orFns([
|
|
18013
|
+
result,
|
|
18014
|
+
...(this.__or || []).map((f) => f?.asFilterFn())
|
|
18015
|
+
].filter(isNotNil));
|
|
18016
|
+
}
|
|
18017
|
+
// NOT
|
|
18018
|
+
if (this.__not && result) {
|
|
18019
|
+
const inner = result;
|
|
18020
|
+
result = (entity) => !inner(entity);
|
|
18021
|
+
}
|
|
18022
|
+
return result;
|
|
18032
18023
|
}
|
|
18033
18024
|
and(...filters) {
|
|
18034
|
-
|
|
18025
|
+
if (!isEmptyArray(filters)) {
|
|
18026
|
+
this.__and = (this.__and || []).concat(filters.filter(isNotNil));
|
|
18027
|
+
}
|
|
18028
|
+
return this;
|
|
18035
18029
|
}
|
|
18036
18030
|
or(...filters) {
|
|
18037
|
-
|
|
18031
|
+
if (!isEmptyArray(filters)) {
|
|
18032
|
+
this.__or = (this.__or || []).concat(filters.filter(isNotNil));
|
|
18033
|
+
}
|
|
18034
|
+
return this;
|
|
18038
18035
|
}
|
|
18039
18036
|
not() {
|
|
18040
|
-
|
|
18037
|
+
this.__not = !(this.__not ?? false);
|
|
18038
|
+
return this;
|
|
18039
|
+
}
|
|
18040
|
+
asObject(opts) {
|
|
18041
|
+
const target = super.asObject(opts);
|
|
18042
|
+
// Serialize composition
|
|
18043
|
+
if (isNotEmptyArray(this.__and)) {
|
|
18044
|
+
target.and = this.__and.map((f) => f.asObject(opts));
|
|
18045
|
+
}
|
|
18046
|
+
if (isNotEmptyArray(this.__or)) {
|
|
18047
|
+
target.or = this.__or.map((f) => f.asObject(opts));
|
|
18048
|
+
}
|
|
18049
|
+
if (this.__not) {
|
|
18050
|
+
target.not = true;
|
|
18051
|
+
}
|
|
18052
|
+
// Sanitize
|
|
18053
|
+
delete target.__and;
|
|
18054
|
+
delete target.__or;
|
|
18055
|
+
delete target.__not;
|
|
18056
|
+
return target;
|
|
18057
|
+
}
|
|
18058
|
+
fromObject(source, opts) {
|
|
18059
|
+
super.fromObject(source, opts);
|
|
18060
|
+
// Deserialize composition using the same concrete filter type
|
|
18061
|
+
// AND
|
|
18062
|
+
if (Array.isArray(source?.and)) {
|
|
18063
|
+
const Ctor = this.constructor;
|
|
18064
|
+
this.__and = source.and.map((s) => {
|
|
18065
|
+
if (!s)
|
|
18066
|
+
return undefined;
|
|
18067
|
+
const f = new Ctor();
|
|
18068
|
+
f.fromObject(s, opts);
|
|
18069
|
+
return f;
|
|
18070
|
+
}).filter(isNotNil);
|
|
18071
|
+
}
|
|
18072
|
+
else {
|
|
18073
|
+
this.__and = undefined;
|
|
18074
|
+
}
|
|
18075
|
+
// OR
|
|
18076
|
+
if (Array.isArray(source?.or)) {
|
|
18077
|
+
const Ctor = this.constructor;
|
|
18078
|
+
this.__or = source.or.map((s) => {
|
|
18079
|
+
if (!s)
|
|
18080
|
+
return undefined;
|
|
18081
|
+
const f = new Ctor();
|
|
18082
|
+
f.fromObject(s, opts);
|
|
18083
|
+
return f;
|
|
18084
|
+
}).filter(isNotNil);
|
|
18085
|
+
}
|
|
18086
|
+
else {
|
|
18087
|
+
this.__or = undefined;
|
|
18088
|
+
}
|
|
18089
|
+
// NOT
|
|
18090
|
+
this.__not = !!source?.not;
|
|
18041
18091
|
}
|
|
18042
18092
|
/* -- protected functions -- */
|
|
18043
18093
|
buildFilter() {
|
|
@@ -34203,7 +34253,7 @@ class AdditionalFields {
|
|
|
34203
34253
|
return;
|
|
34204
34254
|
return (Object.keys(source)
|
|
34205
34255
|
// Exclude common fields, from PersonFilter
|
|
34206
|
-
.filter((key) => !PersonFilter.FIELDS.includes(key))
|
|
34256
|
+
.filter((key) => !PersonFilter.FIELDS.includes(key) && key !== 'and' && key !== 'or' && key !== 'not')
|
|
34207
34257
|
.reduce((target, key) => {
|
|
34208
34258
|
if (isNil(source[key]))
|
|
34209
34259
|
return target;
|