@abp/ng.core 7.1.0 → 7.2.0-rc.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/esm2020/lib/core.module.mjs +11 -1
- package/esm2020/lib/models/common.mjs +1 -1
- package/esm2020/lib/models/rest.mjs +1 -1
- package/esm2020/lib/pipes/index.mjs +2 -1
- package/esm2020/lib/pipes/safe-html.pipe.mjs +23 -0
- package/esm2020/lib/services/config-state.service.mjs +16 -9
- package/esm2020/lib/services/rest.service.mjs +14 -7
- package/esm2020/lib/services/routes.service.mjs +21 -3
- package/esm2020/lib/tokens/index.mjs +2 -1
- package/esm2020/lib/tokens/others-group.token.mjs +3 -0
- package/esm2020/lib/utils/tree-utils.mjs +17 -1
- package/esm2020/testing/lib/services/mock-rest.service.mjs +7 -6
- package/fesm2015/abp-ng.core-testing.mjs +9 -8
- package/fesm2015/abp-ng.core-testing.mjs.map +1 -1
- package/fesm2015/abp-ng.core.mjs +199 -124
- package/fesm2015/abp-ng.core.mjs.map +1 -1
- package/fesm2020/abp-ng.core-testing.mjs +9 -8
- package/fesm2020/abp-ng.core-testing.mjs.map +1 -1
- package/fesm2020/abp-ng.core.mjs +145 -72
- package/fesm2020/abp-ng.core.mjs.map +1 -1
- package/lib/core.module.d.ts +13 -12
- package/lib/models/common.d.ts +2 -0
- package/lib/models/rest.d.ts +1 -0
- package/lib/pipes/index.d.ts +1 -0
- package/lib/pipes/safe-html.pipe.d.ts +9 -0
- package/lib/services/config-state.service.d.ts +6 -4
- package/lib/services/rest.service.d.ts +4 -1
- package/lib/services/routes.service.d.ts +6 -1
- package/lib/tokens/index.d.ts +1 -0
- package/lib/tokens/others-group.token.d.ts +2 -0
- package/lib/utils/tree-utils.d.ts +7 -0
- package/package.json +2 -2
- package/testing/lib/services/mock-rest.service.d.ts +3 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isArray } from './common-utils';
|
|
1
2
|
/* eslint-disable @typescript-eslint/ban-types */
|
|
2
3
|
export class BaseTreeNode {
|
|
3
4
|
constructor(props) {
|
|
@@ -51,4 +52,19 @@ export function createTreeNodeFilterCreator(key, mapperFn) {
|
|
|
51
52
|
};
|
|
52
53
|
};
|
|
53
54
|
}
|
|
54
|
-
|
|
55
|
+
export function createGroupMap(list, othersGroupKey) {
|
|
56
|
+
if (!isArray(list) || !list.some(node => Boolean(node.group)))
|
|
57
|
+
return undefined;
|
|
58
|
+
const mapGroup = new Map();
|
|
59
|
+
for (const node of list) {
|
|
60
|
+
const group = node?.group || othersGroupKey;
|
|
61
|
+
if (typeof group !== 'string') {
|
|
62
|
+
throw new Error(`Invalid group: ${group}`);
|
|
63
|
+
}
|
|
64
|
+
const items = mapGroup.get(group) || [];
|
|
65
|
+
items.push(node);
|
|
66
|
+
mapGroup.set(group, items);
|
|
67
|
+
}
|
|
68
|
+
return mapGroup;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy90cmVlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxpREFBaUQ7QUFDakQsTUFBTSxPQUFPLFlBQVk7SUFLdkIsWUFBWSxLQUFRO1FBSnBCLGFBQVEsR0FBa0IsRUFBRSxDQUFDO1FBQzdCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFJWixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBbUIsS0FBUTtRQUN0QyxPQUFPLElBQUksWUFBWSxDQUFJLEtBQUssQ0FBZ0IsQ0FBQztJQUNuRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLElBQVMsRUFDVCxXQUFpQyxFQUNqQyxpQkFBcUMsRUFDckMsV0FBMkI7SUFFM0IsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5RCxNQUFNLElBQUksR0FBdUMsRUFBRSxDQUFDO0lBRXBELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDakIsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ25CLE1BQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLE1BQWMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQVksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQy9CO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLElBQVMsRUFDVCxXQUFpQyxFQUNqQyxXQUEyQjtJQUkzQixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FDekMsR0FBWSxFQUNaLFFBQWdDO0lBRWhDLE9BQU8sQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVwRCxPQUFPLFNBQVMsWUFBWSxDQUFDLEtBQW9CLEVBQUUsVUFBeUIsRUFBRTtZQUM1RSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtnQkFDeEIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUV4RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtvQkFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUNoRTtZQUVELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUM1QixJQUFtQixFQUNuQixjQUFzQjtJQUV0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUVoRixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUVsRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRTtRQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLEVBQUUsS0FBSyxJQUFJLGNBQWMsQ0FBQztRQUM1QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztLQUM1QjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi9jb21tb24tdXRpbHMnO1xyXG5cclxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlcyAqL1xyXG5leHBvcnQgY2xhc3MgQmFzZVRyZWVOb2RlPFQgZXh0ZW5kcyBvYmplY3Q+IHtcclxuICBjaGlsZHJlbjogVHJlZU5vZGU8VD5bXSA9IFtdO1xyXG4gIGlzTGVhZiA9IHRydWU7XHJcbiAgcGFyZW50PzogVHJlZU5vZGU8VD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBUKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHByb3BzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGU8VCBleHRlbmRzIG9iamVjdD4ocHJvcHM6IFQpIHtcclxuICAgIHJldHVybiBuZXcgQmFzZVRyZWVOb2RlPFQ+KHByb3BzKSBhcyBUcmVlTm9kZTxUPjtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmVlRnJvbUxpc3Q8VCBleHRlbmRzIG9iamVjdCwgUj4oXHJcbiAgbGlzdDogVFtdLFxyXG4gIGtleVNlbGVjdG9yOiAoaXRlbTogVCkgPT4gTm9kZUtleSxcclxuICBwYXJlbnRLZXlTZWxlY3RvcjogdHlwZW9mIGtleVNlbGVjdG9yLFxyXG4gIHZhbHVlTWFwcGVyOiAoaXRlbTogVCkgPT4gUixcclxuKSB7XHJcbiAgY29uc3QgbWFwID0gY3JlYXRlTWFwRnJvbUxpc3QobGlzdCwga2V5U2VsZWN0b3IsIHZhbHVlTWFwcGVyKTtcclxuICBjb25zdCB0cmVlOiBOb2RlVmFsdWU8VCwgdHlwZW9mIHZhbHVlTWFwcGVyPltdID0gW107XHJcblxyXG4gIGxpc3QuZm9yRWFjaChyb3cgPT4ge1xyXG4gICAgY29uc3QgaWQgPSBrZXlTZWxlY3Rvcihyb3cpO1xyXG4gICAgY29uc3QgcGFyZW50SWQgPSBwYXJlbnRLZXlTZWxlY3Rvcihyb3cpO1xyXG4gICAgY29uc3Qgbm9kZSA9IG1hcC5nZXQoaWQpO1xyXG5cclxuICAgIGlmICghbm9kZSkgcmV0dXJuO1xyXG5cclxuICAgIGlmIChwYXJlbnRJZCkge1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSBtYXAuZ2V0KHBhcmVudElkKTtcclxuICAgICAgaWYgKCFwYXJlbnQpIHJldHVybjtcclxuICAgICAgKHBhcmVudCBhcyBhbnkpLmNoaWxkcmVuLnB1c2gobm9kZSk7XHJcbiAgICAgIChwYXJlbnQgYXMgYW55KS5pc0xlYWYgPSBmYWxzZTtcclxuICAgICAgKG5vZGUgYXMgYW55KS5wYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmVlLnB1c2gobm9kZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiB0cmVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWFwRnJvbUxpc3Q8VCBleHRlbmRzIG9iamVjdCwgUj4oXHJcbiAgbGlzdDogVFtdLFxyXG4gIGtleVNlbGVjdG9yOiAoaXRlbTogVCkgPT4gTm9kZUtleSxcclxuICB2YWx1ZU1hcHBlcjogKGl0ZW06IFQpID0+IFIsXHJcbikge1xyXG4gIHR5cGUgS2V5ID0gUmV0dXJuVHlwZTx0eXBlb2Yga2V5U2VsZWN0b3I+O1xyXG4gIHR5cGUgVmFsdWUgPSBOb2RlVmFsdWU8VCwgdHlwZW9mIHZhbHVlTWFwcGVyPjtcclxuICBjb25zdCBtYXAgPSBuZXcgTWFwPEtleSwgVmFsdWU+KCk7XHJcbiAgbGlzdC5mb3JFYWNoKHJvdyA9PiBtYXAuc2V0KGtleVNlbGVjdG9yKHJvdyksIHZhbHVlTWFwcGVyKHJvdykpKTtcclxuICByZXR1cm4gbWFwO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJlZU5vZGVGaWx0ZXJDcmVhdG9yPFQgZXh0ZW5kcyBvYmplY3Q+KFxyXG4gIGtleToga2V5b2YgVCxcclxuICBtYXBwZXJGbjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyxcclxuKSB7XHJcbiAgcmV0dXJuIChzZWFyY2g6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCcuKicgKyBzZWFyY2ggKyAnLionLCAnaScpO1xyXG5cclxuICAgIHJldHVybiBmdW5jdGlvbiBjb2xsZWN0Tm9kZXMobm9kZXM6IFRyZWVOb2RlPFQ+W10sIG1hdGNoZXM6IFRyZWVOb2RlPFQ+W10gPSBbXSkge1xyXG4gICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcclxuICAgICAgICBpZiAocmVnZXgudGVzdChtYXBwZXJGbihub2RlW2tleV0pKSkgbWF0Y2hlcy5wdXNoKG5vZGUpO1xyXG5cclxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGgpIGNvbGxlY3ROb2Rlcyhub2RlLmNoaWxkcmVuLCBtYXRjaGVzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG1hdGNoZXM7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVHcm91cE1hcDxUIGV4dGVuZHMgeyBncm91cD86IHN0cmluZyB9PihcclxuICBsaXN0OiBUcmVlTm9kZTxUPltdLFxyXG4gIG90aGVyc0dyb3VwS2V5OiBzdHJpbmcsXHJcbikge1xyXG4gIGlmICghaXNBcnJheShsaXN0KSB8fCAhbGlzdC5zb21lKG5vZGUgPT4gQm9vbGVhbihub2RlLmdyb3VwKSkpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0IG1hcEdyb3VwID0gbmV3IE1hcDxzdHJpbmcsIFRyZWVOb2RlPFQ+W10+KCk7XHJcblxyXG4gIGZvciAoY29uc3Qgbm9kZSBvZiBsaXN0KSB7XHJcbiAgICBjb25zdCBncm91cCA9IG5vZGU/Lmdyb3VwIHx8IG90aGVyc0dyb3VwS2V5O1xyXG4gICAgaWYgKHR5cGVvZiBncm91cCAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGdyb3VwOiAke2dyb3VwfWApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGl0ZW1zID0gbWFwR3JvdXAuZ2V0KGdyb3VwKSB8fCBbXTtcclxuICAgIGl0ZW1zLnB1c2gobm9kZSk7XHJcbiAgICBtYXBHcm91cC5zZXQoZ3JvdXAsIGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBtYXBHcm91cDtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVHJlZU5vZGU8VCBleHRlbmRzIG9iamVjdD4gPSB7XHJcbiAgW0sgaW4ga2V5b2YgVF06IFRbS107XHJcbn0gJiB7XHJcbiAgY2hpbGRyZW46IFRyZWVOb2RlPFQ+W107XHJcbiAgaXNMZWFmOiBib29sZWFuO1xyXG4gIHBhcmVudD86IFRyZWVOb2RlPFQ+O1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUm91dGVHcm91cDxUIGV4dGVuZHMgb2JqZWN0PiA9IHtcclxuICByZWFkb25seSBncm91cDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IGl0ZW1zOiBUcmVlTm9kZTxUPltdO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgTm9kZUtleSA9IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbCB8IHVuZGVmaW5lZCB8IG51bGw7XHJcblxyXG5leHBvcnQgdHlwZSBOb2RlVmFsdWU8VCBleHRlbmRzIG9iamVjdCwgRiBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IGFueT4gPSBGIGV4dGVuZHMgdW5kZWZpbmVkXHJcbiAgPyBUcmVlTm9kZTxUPlxyXG4gIDogUmV0dXJuVHlwZTxGPjtcclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CORE_OPTIONS, EnvironmentService, RestService, } from '@abp/ng.core';
|
|
1
|
+
import { CORE_OPTIONS, EnvironmentService, ExternalHttpClient, RestService, } from '@abp/ng.core';
|
|
2
2
|
import { HttpClient } from '@angular/common/http';
|
|
3
3
|
import { Inject, Injectable } from '@angular/core';
|
|
4
4
|
import { throwError } from 'rxjs';
|
|
@@ -6,17 +6,18 @@ import * as i0 from "@angular/core";
|
|
|
6
6
|
import * as i1 from "@angular/common/http";
|
|
7
7
|
import * as i2 from "@abp/ng.core";
|
|
8
8
|
export class MockRestService extends RestService {
|
|
9
|
-
constructor(options, http, environment) {
|
|
10
|
-
super(options, http, environment, null);
|
|
9
|
+
constructor(options, http, externalhttp, environment) {
|
|
10
|
+
super(options, http, externalhttp, environment, null);
|
|
11
11
|
this.options = options;
|
|
12
12
|
this.http = http;
|
|
13
|
+
this.externalhttp = externalhttp;
|
|
13
14
|
this.environment = environment;
|
|
14
15
|
}
|
|
15
16
|
handleError(err) {
|
|
16
17
|
return throwError(err);
|
|
17
18
|
}
|
|
18
19
|
}
|
|
19
|
-
MockRestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MockRestService, deps: [{ token: CORE_OPTIONS }, { token: i1.HttpClient }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
20
|
+
MockRestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MockRestService, deps: [{ token: CORE_OPTIONS }, { token: i1.HttpClient }, { token: i2.ExternalHttpClient }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
20
21
|
MockRestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MockRestService, providedIn: 'root' });
|
|
21
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MockRestService, decorators: [{
|
|
22
23
|
type: Injectable,
|
|
@@ -26,5 +27,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
26
27
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
27
28
|
type: Inject,
|
|
28
29
|
args: [CORE_OPTIONS]
|
|
29
|
-
}] }, { type: i1.HttpClient }, { type: i2.EnvironmentService }]; } });
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
}] }, { type: i1.HttpClient }, { type: i2.ExternalHttpClient }, { type: i2.EnvironmentService }]; } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay1yZXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3Rlc3Rpbmcvc3JjL2xpYi9zZXJ2aWNlcy9tb2NrLXJlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixrQkFBa0IsRUFFbEIsV0FBVyxHQUNaLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7O0FBSzlDLE1BQU0sT0FBTyxlQUFnQixTQUFRLFdBQVc7SUFDOUMsWUFDa0MsT0FBaUIsRUFDdkMsSUFBZ0IsRUFDaEIsWUFBZ0MsRUFDaEMsV0FBK0I7UUFFekMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxJQUEyQyxDQUFDLENBQUM7UUFMNUQsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUN2QyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUFvQjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7SUFHM0MsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFRO1FBQ2xCLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7OzRHQVpVLGVBQWUsa0JBRWhCLFlBQVk7Z0hBRlgsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdJLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQUJQLFxyXG4gIENPUkVfT1BUSU9OUyxcclxuICBFbnZpcm9ubWVudFNlcnZpY2UsXHJcbiAgRXh0ZXJuYWxIdHRwQ2xpZW50LFxyXG4gIEh0dHBFcnJvclJlcG9ydGVyU2VydmljZSxcclxuICBSZXN0U2VydmljZSxcclxufSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vY2tSZXN0U2VydmljZSBleHRlbmRzIFJlc3RTZXJ2aWNlIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoQ09SRV9PUFRJT05TKSBwcm90ZWN0ZWQgb3B0aW9uczogQUJQLlJvb3QsXHJcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByb3RlY3RlZCBleHRlcm5hbGh0dHA6IEV4dGVybmFsSHR0cENsaWVudCxcclxuICAgIHByb3RlY3RlZCBlbnZpcm9ubWVudDogRW52aXJvbm1lbnRTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgc3VwZXIob3B0aW9ucywgaHR0cCxleHRlcm5hbGh0dHAsIGVudmlyb25tZW50LCBudWxsIGFzIHVua25vd24gYXMgSHR0cEVycm9yUmVwb3J0ZXJTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUVycm9yKGVycjogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aHJvd0Vycm9yKGVycik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __rest } from 'tslib';
|
|
2
|
-
import * as
|
|
2
|
+
import * as i2 from '@abp/ng.core';
|
|
3
3
|
import { PermissionService, RestService, CORE_OPTIONS, coreOptionsFactory, LIST_QUERY_DEBOUNCE_TIME, LOADER_DELAY, INCUDE_LOCALIZATION_RESOURCES_TOKEN, BaseCoreModule } from '@abp/ng.core';
|
|
4
4
|
import { APP_BASE_HREF } from '@angular/common';
|
|
5
5
|
import * as i0 from '@angular/core';
|
|
@@ -8,7 +8,7 @@ import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|
|
8
8
|
import { provideRoutes } from '@angular/router';
|
|
9
9
|
import { RouterTestingModule } from '@angular/router/testing';
|
|
10
10
|
import { throwError } from 'rxjs';
|
|
11
|
-
import * as i1
|
|
11
|
+
import * as i1 from '@angular/common/http';
|
|
12
12
|
|
|
13
13
|
class MockPermissionService extends PermissionService {
|
|
14
14
|
constructor(configState) {
|
|
@@ -32,27 +32,28 @@ class MockPermissionService extends PermissionService {
|
|
|
32
32
|
this.configState['store'].deepPatch({ auth: { grantedPolicies } });
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
MockPermissionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MockPermissionService, deps: [{ token:
|
|
35
|
+
MockPermissionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MockPermissionService, deps: [{ token: i2.ConfigStateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
36
36
|
MockPermissionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MockPermissionService, providedIn: 'root' });
|
|
37
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MockPermissionService, decorators: [{
|
|
38
38
|
type: Injectable,
|
|
39
39
|
args: [{
|
|
40
40
|
providedIn: 'root',
|
|
41
41
|
}]
|
|
42
|
-
}], ctorParameters: function () { return [{ type:
|
|
42
|
+
}], ctorParameters: function () { return [{ type: i2.ConfigStateService }]; } });
|
|
43
43
|
|
|
44
44
|
class MockRestService extends RestService {
|
|
45
|
-
constructor(options, http, environment) {
|
|
46
|
-
super(options, http, environment, null);
|
|
45
|
+
constructor(options, http, externalhttp, environment) {
|
|
46
|
+
super(options, http, externalhttp, environment, null);
|
|
47
47
|
this.options = options;
|
|
48
48
|
this.http = http;
|
|
49
|
+
this.externalhttp = externalhttp;
|
|
49
50
|
this.environment = environment;
|
|
50
51
|
}
|
|
51
52
|
handleError(err) {
|
|
52
53
|
return throwError(err);
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
|
-
MockRestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MockRestService, deps: [{ token: CORE_OPTIONS }, { token: i1
|
|
56
|
+
MockRestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MockRestService, deps: [{ token: CORE_OPTIONS }, { token: i1.HttpClient }, { token: i2.ExternalHttpClient }, { token: i2.EnvironmentService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
56
57
|
MockRestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MockRestService, providedIn: 'root' });
|
|
57
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImport: i0, type: MockRestService, decorators: [{
|
|
58
59
|
type: Injectable,
|
|
@@ -63,7 +64,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.4", ngImpor
|
|
|
63
64
|
return [{ type: undefined, decorators: [{
|
|
64
65
|
type: Inject,
|
|
65
66
|
args: [CORE_OPTIONS]
|
|
66
|
-
}] }, { type: i1
|
|
67
|
+
}] }, { type: i1.HttpClient }, { type: i2.ExternalHttpClient }, { type: i2.EnvironmentService }];
|
|
67
68
|
} });
|
|
68
69
|
|
|
69
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abp-ng.core-testing.mjs","sources":["../../../../packages/core/testing/src/lib/services/mock-permission.service.ts","../../../../packages/core/testing/src/lib/services/mock-rest.service.ts","../../../../packages/core/testing/src/lib/core-testing.module.ts","../../../../packages/core/testing/src/lib/utils/clear-page.util.ts","../../../../packages/core/testing/src/lib/utils/wait.util.ts","../../../../packages/core/testing/src/abp-ng.core-testing.ts"],"sourcesContent":["import { ConfigStateService, PermissionService } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MockPermissionService extends PermissionService {\r\n constructor(protected configState: ConfigStateService) {\r\n super(configState);\r\n this.grantAllPolicies();\r\n }\r\n\r\n grantAllPolicies() {\r\n const grantedPolicies = new Proxy(\r\n {},\r\n {\r\n get() {\r\n return true;\r\n },\r\n },\r\n );\r\n\r\n this.configState['store'].deepPatch({ auth: { grantedPolicies } });\r\n }\r\n\r\n grantPolicies(keys: string[]) {\r\n const grantedPolicies = keys.reduce((policies, key) => {\r\n policies[key] = true;\r\n return policies;\r\n }, {} as { [key: string]: boolean });\r\n\r\n this.configState['store'].deepPatch({ auth: { grantedPolicies } });\r\n }\r\n}\r\n","import {\r\n ABP,\r\n CORE_OPTIONS,\r\n EnvironmentService,\r\n HttpErrorReporterService,\r\n RestService,\r\n} from '@abp/ng.core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MockRestService extends RestService {\r\n constructor(\r\n @Inject(CORE_OPTIONS) protected options: ABP.Root,\r\n protected http: HttpClient,\r\n protected environment: EnvironmentService,\r\n ) {\r\n super(options, http, environment, null as unknown as HttpErrorReporterService);\r\n }\r\n\r\n handleError(err: any): Observable<any> {\r\n return throwError(err);\r\n }\r\n}\r\n","import {\r\n ABP,\r\n BaseCoreModule,\r\n coreOptionsFactory,\r\n CORE_OPTIONS,\r\n LIST_QUERY_DEBOUNCE_TIME,\r\n LOADER_DELAY,\r\n PermissionService,\r\n RestService,\r\n INCUDE_LOCALIZATION_RESOURCES_TOKEN,\r\n} from '@abp/ng.core';\r\nimport { APP_BASE_HREF } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { provideRoutes } from '@angular/router';\r\nimport { RouterTestingModule } from '@angular/router/testing';\r\nimport { MockPermissionService } from './services/mock-permission.service';\r\nimport { MockRestService } from './services/mock-rest.service';\r\n\r\n/**\r\n * CoreTestingModule is the module that will be used in tests\r\n * and it provides mock alternatives\r\n */\r\n@NgModule({\r\n exports: [RouterTestingModule, BaseCoreModule],\r\n imports: [NoopAnimationsModule, RouterTestingModule, BaseCoreModule],\r\n})\r\nexport class CoreTestingModule {\r\n static withConfig(\r\n { baseHref = '/', listQueryDebounceTime = 0, routes = [], ...options } = {} as ABP.Test,\r\n ): ModuleWithProviders<CoreTestingModule> {\r\n return {\r\n ngModule: CoreTestingModule,\r\n providers: [\r\n { provide: APP_BASE_HREF, useValue: baseHref },\r\n {\r\n provide: 'CORE_OPTIONS',\r\n useValue: {\r\n skipGetAppConfiguration: true,\r\n ...options,\r\n },\r\n },\r\n {\r\n provide: CORE_OPTIONS,\r\n useFactory: coreOptionsFactory,\r\n deps: ['CORE_OPTIONS'],\r\n },\r\n {\r\n provide: LIST_QUERY_DEBOUNCE_TIME,\r\n useValue: listQueryDebounceTime,\r\n },\r\n {\r\n provide: PermissionService,\r\n useClass: MockPermissionService,\r\n },\r\n {\r\n provide: RestService,\r\n useClass: MockRestService,\r\n },\r\n {\r\n provide: LOADER_DELAY,\r\n useValue: 0,\r\n },\r\n {\r\n provide: INCUDE_LOCALIZATION_RESOURCES_TOKEN,\r\n useValue: false,\r\n },\r\n provideRoutes(routes),\r\n ],\r\n };\r\n }\r\n}\r\n","import { ComponentFixture } from '@angular/core/testing';\r\n\r\nexport function clearPage<T extends any>(_fixture: ComponentFixture<T>) {\r\n if (!document) return;\r\n\r\n const elements = document.querySelectorAll('body > *');\r\n elements.forEach(element => {\r\n if (/^(abp|ngb)-/i.test(element.tagName)) document.body.removeChild(element);\r\n });\r\n}\r\n","import { ComponentFixture } from '@angular/core/testing';\r\n\r\nexport function wait<T extends any>(fixture: ComponentFixture<T>, timeout = 0) {\r\n fixture.detectChanges();\r\n return new Promise(res => setTimeout(res, timeout));\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"
|
|
1
|
+
{"version":3,"file":"abp-ng.core-testing.mjs","sources":["../../../../packages/core/testing/src/lib/services/mock-permission.service.ts","../../../../packages/core/testing/src/lib/services/mock-rest.service.ts","../../../../packages/core/testing/src/lib/core-testing.module.ts","../../../../packages/core/testing/src/lib/utils/clear-page.util.ts","../../../../packages/core/testing/src/lib/utils/wait.util.ts","../../../../packages/core/testing/src/abp-ng.core-testing.ts"],"sourcesContent":["import { ConfigStateService, PermissionService } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MockPermissionService extends PermissionService {\r\n constructor(protected configState: ConfigStateService) {\r\n super(configState);\r\n this.grantAllPolicies();\r\n }\r\n\r\n grantAllPolicies() {\r\n const grantedPolicies = new Proxy(\r\n {},\r\n {\r\n get() {\r\n return true;\r\n },\r\n },\r\n );\r\n\r\n this.configState['store'].deepPatch({ auth: { grantedPolicies } });\r\n }\r\n\r\n grantPolicies(keys: string[]) {\r\n const grantedPolicies = keys.reduce((policies, key) => {\r\n policies[key] = true;\r\n return policies;\r\n }, {} as { [key: string]: boolean });\r\n\r\n this.configState['store'].deepPatch({ auth: { grantedPolicies } });\r\n }\r\n}\r\n","import {\r\n ABP,\r\n CORE_OPTIONS,\r\n EnvironmentService,\r\n ExternalHttpClient,\r\n HttpErrorReporterService,\r\n RestService,\r\n} from '@abp/ng.core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MockRestService extends RestService {\r\n constructor(\r\n @Inject(CORE_OPTIONS) protected options: ABP.Root,\r\n protected http: HttpClient,\r\n protected externalhttp: ExternalHttpClient,\r\n protected environment: EnvironmentService,\r\n ) {\r\n super(options, http,externalhttp, environment, null as unknown as HttpErrorReporterService);\r\n }\r\n\r\n handleError(err: any): Observable<any> {\r\n return throwError(err);\r\n }\r\n}\r\n","import {\r\n ABP,\r\n BaseCoreModule,\r\n coreOptionsFactory,\r\n CORE_OPTIONS,\r\n LIST_QUERY_DEBOUNCE_TIME,\r\n LOADER_DELAY,\r\n PermissionService,\r\n RestService,\r\n INCUDE_LOCALIZATION_RESOURCES_TOKEN,\r\n} from '@abp/ng.core';\r\nimport { APP_BASE_HREF } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { NoopAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { provideRoutes } from '@angular/router';\r\nimport { RouterTestingModule } from '@angular/router/testing';\r\nimport { MockPermissionService } from './services/mock-permission.service';\r\nimport { MockRestService } from './services/mock-rest.service';\r\n\r\n/**\r\n * CoreTestingModule is the module that will be used in tests\r\n * and it provides mock alternatives\r\n */\r\n@NgModule({\r\n exports: [RouterTestingModule, BaseCoreModule],\r\n imports: [NoopAnimationsModule, RouterTestingModule, BaseCoreModule],\r\n})\r\nexport class CoreTestingModule {\r\n static withConfig(\r\n { baseHref = '/', listQueryDebounceTime = 0, routes = [], ...options } = {} as ABP.Test,\r\n ): ModuleWithProviders<CoreTestingModule> {\r\n return {\r\n ngModule: CoreTestingModule,\r\n providers: [\r\n { provide: APP_BASE_HREF, useValue: baseHref },\r\n {\r\n provide: 'CORE_OPTIONS',\r\n useValue: {\r\n skipGetAppConfiguration: true,\r\n ...options,\r\n },\r\n },\r\n {\r\n provide: CORE_OPTIONS,\r\n useFactory: coreOptionsFactory,\r\n deps: ['CORE_OPTIONS'],\r\n },\r\n {\r\n provide: LIST_QUERY_DEBOUNCE_TIME,\r\n useValue: listQueryDebounceTime,\r\n },\r\n {\r\n provide: PermissionService,\r\n useClass: MockPermissionService,\r\n },\r\n {\r\n provide: RestService,\r\n useClass: MockRestService,\r\n },\r\n {\r\n provide: LOADER_DELAY,\r\n useValue: 0,\r\n },\r\n {\r\n provide: INCUDE_LOCALIZATION_RESOURCES_TOKEN,\r\n useValue: false,\r\n },\r\n provideRoutes(routes),\r\n ],\r\n };\r\n }\r\n}\r\n","import { ComponentFixture } from '@angular/core/testing';\r\n\r\nexport function clearPage<T extends any>(_fixture: ComponentFixture<T>) {\r\n if (!document) return;\r\n\r\n const elements = document.querySelectorAll('body > *');\r\n elements.forEach(element => {\r\n if (/^(abp|ngb)-/i.test(element.tagName)) document.body.removeChild(element);\r\n });\r\n}\r\n","import { ComponentFixture } from '@angular/core/testing';\r\n\r\nexport function wait<T extends any>(fixture: ComponentFixture<T>, timeout = 0) {\r\n fixture.detectChanges();\r\n return new Promise(res => setTimeout(res, timeout));\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|