@apipass/frontend-utils 1.0.89 → 1.0.91
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/mfe/configure-remote-routes.mjs +19 -0
- package/esm2022/mfe/load-remote-module.directive.mjs +85 -0
- package/esm2022/mfe/remote-module.mjs +2 -0
- package/esm2022/public-api.mjs +4 -1
- package/fesm2022/apipass-frontend-utils.mjs +103 -2
- package/fesm2022/apipass-frontend-utils.mjs.map +1 -1
- package/mfe/configure-remote-routes.d.ts +3 -0
- package/mfe/load-remote-module.directive.d.ts +26 -0
- package/mfe/remote-module.d.ts +15 -0
- package/package.json +2 -1
- package/public-api.d.ts +3 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { loadRemoteModule } from '@angular-architects/module-federation';
|
|
2
|
+
export function configureRemoteRoutes(remoteModules) {
|
|
3
|
+
return remoteModules?.filter(remote => remote.routePath)?.map(remote => {
|
|
4
|
+
return {
|
|
5
|
+
path: remote.routePath,
|
|
6
|
+
loadChildren: () => loadRemoteModule({
|
|
7
|
+
type: 'script',
|
|
8
|
+
remoteEntry: remote.remoteEntry,
|
|
9
|
+
remoteName: remote.remoteName,
|
|
10
|
+
exposedModule: remote.exposedModule
|
|
11
|
+
}).then(m => {
|
|
12
|
+
return m[remote.exposedModule];
|
|
13
|
+
}),
|
|
14
|
+
canActivate: remote.canActivate,
|
|
15
|
+
data: { guard: remote.guardFunctionName }
|
|
16
|
+
};
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJlLXJlbW90ZS1yb3V0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mcm9udGVuZC11dGlscy9zcmMvbWZlL2NvbmZpZ3VyZS1yZW1vdGUtcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRXpFLE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxhQUE2QjtJQUNqRSxPQUFPLGFBQWEsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3JFLE9BQU87WUFDTCxJQUFJLEVBQUUsTUFBTSxDQUFDLFNBQVM7WUFDdEIsWUFBWSxFQUFFLEdBQVEsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUN4QyxJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7Z0JBQy9CLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVTtnQkFDN0IsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhO2FBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1YsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1lBQ2hDLENBQUMsQ0FBQztZQUNGLFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztZQUMvQixJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLGlCQUFpQixFQUFFO1NBQzFDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZW1vdGVNb2R1bGUgfSBmcm9tICcuL3JlbW90ZS1tb2R1bGUnO1xuaW1wb3J0IHsgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGxvYWRSZW1vdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci1hcmNoaXRlY3RzL21vZHVsZS1mZWRlcmF0aW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ3VyZVJlbW90ZVJvdXRlcyhyZW1vdGVNb2R1bGVzOiBSZW1vdGVNb2R1bGVbXSk6IFJvdXRlcyB7XG4gIHJldHVybiByZW1vdGVNb2R1bGVzPy5maWx0ZXIocmVtb3RlID0+IHJlbW90ZS5yb3V0ZVBhdGgpPy5tYXAocmVtb3RlID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogcmVtb3RlLnJvdXRlUGF0aCxcbiAgICAgIGxvYWRDaGlsZHJlbjogKCk6IGFueSA9PiBsb2FkUmVtb3RlTW9kdWxlKHtcbiAgICAgICAgdHlwZTogJ3NjcmlwdCcsXG4gICAgICAgIHJlbW90ZUVudHJ5OiByZW1vdGUucmVtb3RlRW50cnksXG4gICAgICAgIHJlbW90ZU5hbWU6IHJlbW90ZS5yZW1vdGVOYW1lLFxuICAgICAgICBleHBvc2VkTW9kdWxlOiByZW1vdGUuZXhwb3NlZE1vZHVsZVxuICAgICAgfSkudGhlbihtID0+IHtcbiAgICAgICAgcmV0dXJuIG1bcmVtb3RlLmV4cG9zZWRNb2R1bGVdXG4gICAgICB9KSxcbiAgICAgIGNhbkFjdGl2YXRlOiByZW1vdGUuY2FuQWN0aXZhdGUsXG4gICAgICBkYXRhOiB7IGd1YXJkOiByZW1vdGUuZ3VhcmRGdW5jdGlvbk5hbWUgfVxuICAgIH1cbiAgfSlcbn1cbiJdfQ==
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { loadRemoteModule } from '@angular-architects/module-federation';
|
|
2
|
+
import { createNgModule, Directive, EventEmitter, Injector, Input, Output, ViewContainerRef } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
class LoadRemoteModuleDirective {
|
|
5
|
+
viewRef;
|
|
6
|
+
injectable;
|
|
7
|
+
static cache = new Map();
|
|
8
|
+
remoteComponent;
|
|
9
|
+
loaded = new EventEmitter();
|
|
10
|
+
constructor(viewRef, injectable) {
|
|
11
|
+
this.viewRef = viewRef;
|
|
12
|
+
this.injectable = injectable;
|
|
13
|
+
}
|
|
14
|
+
async ngOnInit() {
|
|
15
|
+
const componentModuleRef = await this.getComponent();
|
|
16
|
+
const componentRef = this.viewRef.createComponent(componentModuleRef.component, {
|
|
17
|
+
injector: this.injectable,
|
|
18
|
+
ngModuleRef: componentModuleRef.ngModuleRef
|
|
19
|
+
});
|
|
20
|
+
this.setComponentParameters(componentRef);
|
|
21
|
+
this.loaded.emit({ instance: componentRef.instance });
|
|
22
|
+
componentRef.changeDetectorRef.markForCheck();
|
|
23
|
+
}
|
|
24
|
+
setComponentParameters(componentRef) {
|
|
25
|
+
const componentProperties = Object.keys(componentRef?.instance);
|
|
26
|
+
const instanceProperties = Object.keys(this);
|
|
27
|
+
componentProperties?.forEach(property => {
|
|
28
|
+
if (property === '__ngContext__') {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const existsInInstanceProperties = instanceProperties?.find(instance => instance === property);
|
|
32
|
+
if (existsInInstanceProperties) {
|
|
33
|
+
componentRef.instance[property] = this[property];
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
async getComponent() {
|
|
38
|
+
const key = this.getKey();
|
|
39
|
+
if (LoadRemoteModuleDirective.cache.has(key)) {
|
|
40
|
+
return LoadRemoteModuleDirective.cache.get(key);
|
|
41
|
+
}
|
|
42
|
+
return await this.loadComponent();
|
|
43
|
+
}
|
|
44
|
+
async loadComponent() {
|
|
45
|
+
const remoteModule = await loadRemoteModule({
|
|
46
|
+
remoteEntry: this.remoteComponent?.remoteEntry,
|
|
47
|
+
remoteName: this.remoteComponent?.remoteName,
|
|
48
|
+
exposedModule: this.remoteComponent?.exposedModule
|
|
49
|
+
});
|
|
50
|
+
const remoteComponent = await loadRemoteModule({
|
|
51
|
+
remoteEntry: this.remoteComponent?.remoteEntry,
|
|
52
|
+
remoteName: this.remoteComponent?.remoteName,
|
|
53
|
+
exposedModule: this.remoteComponent?.componentRefName
|
|
54
|
+
});
|
|
55
|
+
const module = remoteModule[this.remoteComponent?.exposedModule];
|
|
56
|
+
const component = remoteComponent[this.remoteComponent?.componentRefName];
|
|
57
|
+
const ngModuleRef = await this.createModule(module);
|
|
58
|
+
const componentAndModule = {
|
|
59
|
+
component,
|
|
60
|
+
ngModuleRef
|
|
61
|
+
};
|
|
62
|
+
LoadRemoteModuleDirective.cache.set(this.getKey(), componentAndModule);
|
|
63
|
+
return componentAndModule;
|
|
64
|
+
}
|
|
65
|
+
getKey() {
|
|
66
|
+
return `${this.remoteComponent?.remoteEntry}-
|
|
67
|
+
${this.remoteComponent?.remoteName}-
|
|
68
|
+
${this.remoteComponent?.exposedModule}-
|
|
69
|
+
${this.remoteComponent?.componentRefName}`;
|
|
70
|
+
}
|
|
71
|
+
async createModule(moduleOrFactory) {
|
|
72
|
+
return createNgModule(moduleOrFactory, this.injectable);
|
|
73
|
+
}
|
|
74
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LoadRemoteModuleDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
75
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: LoadRemoteModuleDirective, inputs: { remoteComponent: "remoteComponent" }, outputs: { loaded: "loaded" }, ngImport: i0 });
|
|
76
|
+
}
|
|
77
|
+
export { LoadRemoteModuleDirective };
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LoadRemoteModuleDirective, decorators: [{
|
|
79
|
+
type: Directive
|
|
80
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }]; }, propDecorators: { remoteComponent: [{
|
|
81
|
+
type: Input
|
|
82
|
+
}], loaded: [{
|
|
83
|
+
type: Output
|
|
84
|
+
}] } });
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1yZW1vdGUtbW9kdWxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zyb250ZW5kLXV0aWxzL3NyYy9tZmUvbG9hZC1yZW1vdGUtbW9kdWxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBRUwsY0FBYyxFQUNkLFNBQVMsRUFDVCxZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFFTCxNQUFNLEVBRU4sZ0JBQWdCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDOztBQVF2QixNQUNzQix5QkFBeUI7SUFRMUI7SUFDQTtJQVBuQixNQUFNLENBQUMsS0FBSyxHQUE0QixJQUFJLEdBQUcsRUFBc0IsQ0FBQztJQUU3RCxlQUFlLENBQWM7SUFDNUIsTUFBTSxHQUF3QyxJQUFJLFlBQVksRUFBeUIsQ0FBQztJQUVsRyxZQUNtQixPQUF5QixFQUN6QixVQUFvQjtRQURwQixZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUN6QixlQUFVLEdBQVYsVUFBVSxDQUFVO0lBRXZDLENBQUM7SUFFRCxLQUFLLENBQUMsUUFBUTtRQUNaLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFO1lBQzlFLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUN6QixXQUFXLEVBQUUsa0JBQWtCLENBQUMsV0FBVztTQUM1QyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsc0JBQXNCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFD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QXpCLHlCQUF5QjtrQkFEOUMsU0FBUzs4SEFLQyxlQUFlO3NCQUF2QixLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxvYWRSZW1vdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci1hcmNoaXRlY3RzL21vZHVsZS1mZWRlcmF0aW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudFJlZixcbiAgY3JlYXRlTmdNb2R1bGUsXG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nTW9kdWxlUmVmLFxuICBPdXRwdXQsXG4gIFR5cGUsXG4gIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZW1vdGVNb2R1bGUgfSBmcm9tICcuL3JlbW90ZS1tb2R1bGUnO1xuXG5pbnRlcmZhY2UgSUNhY2hlSXRlbSB7XG4gIGNvbXBvbmVudDogVHlwZTx1bmtub3duPlxuICBuZ01vZHVsZVJlZjogTmdNb2R1bGVSZWY8dW5rbm93bj5cbn1cblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTG9hZFJlbW90ZU1vZHVsZURpcmVjdGl2ZSB7XG5cbiAgc3RhdGljIGNhY2hlOiBNYXA8c3RyaW5nLCBJQ2FjaGVJdGVtPiA9IG5ldyBNYXA8c3RyaW5nLCBJQ2FjaGVJdGVtPigpO1xuXG4gIEBJbnB1dCgpIHJlbW90ZUNvbXBvbmVudDogUmVtb3RlTW9kdWxlXG4gIEBPdXRwdXQoKSBsb2FkZWQ6IEV2ZW50RW1pdHRlcjx7IGluc3RhbmNlOiB1bmtub3duIH0+ID0gbmV3IEV2ZW50RW1pdHRlcjx7IGluc3RhbmNlOiB1bmtub3duIH0+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld1JlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdGFibGU6IEluamVjdG9yXG4gICkge1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY29tcG9uZW50TW9kdWxlUmVmID0gYXdhaXQgdGhpcy5nZXRDb21wb25lbnQoKTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLnZpZXdSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudE1vZHVsZVJlZi5jb21wb25lbnQsIHtcbiAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdGFibGUsXG4gICAgICBuZ01vZHVsZVJlZjogY29tcG9uZW50TW9kdWxlUmVmLm5nTW9kdWxlUmVmXG4gICAgfSk7XG4gICAgdGhpcy5zZXRDb21wb25lbnRQYXJhbWV0ZXJzKGNvbXBvbmVudFJlZik7XG4gICAgdGhpcy5sb2FkZWQuZW1pdCh7IGluc3RhbmNlOiBjb21wb25lbnRSZWYuaW5zdGFuY2UgfSk7XG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldENvbXBvbmVudFBhcmFtZXRlcnMoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55Pik6IHZvaWQge1xuICAgIGNvbnN0IGNvbXBvbmVudFByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyhjb21wb25lbnRSZWY/Lmluc3RhbmNlKTtcbiAgICBjb25zdCBpbnN0YW5jZVByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyh0aGlzKTtcbiAgICBjb21wb25lbnRQcm9wZXJ0aWVzPy5mb3JFYWNoKHByb3BlcnR5ID0+IHtcbiAgICAgIGlmIChwcm9wZXJ0eSA9PT0gJ19fbmdDb250ZXh0X18nKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGV4aXN0c0luSW5zdGFuY2VQcm9wZXJ0aWVzID0gaW5zdGFuY2VQcm9wZXJ0aWVzPy5maW5kKGluc3RhbmNlID0+IGluc3RhbmNlID09PSBwcm9wZXJ0eSk7XG4gICAgICBpZiAoZXhpc3RzSW5JbnN0YW5jZVByb3BlcnRpZXMpIHtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlW3Byb3BlcnR5XSA9IHRoaXNbcHJvcGVydHldXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0Q29tcG9uZW50KCk6IFByb21pc2U8SUNhY2hlSXRlbT4ge1xuICAgIGNvbnN0IGtleSA9IHRoaXMuZ2V0S2V5KCk7XG5cbiAgICBpZiAoTG9hZFJlbW90ZU1vZHVsZURpcmVjdGl2ZS5jYWNoZS5oYXMoa2V5KSkge1xuICAgICAgcmV0dXJuIExvYWRSZW1vdGVNb2R1bGVEaXJlY3RpdmUuY2FjaGUuZ2V0KGtleSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubG9hZENvbXBvbmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkQ29tcG9uZW50KCk6IFByb21pc2U8SUNhY2hlSXRlbT4ge1xuICAgIGNvbnN0IHJlbW90ZU1vZHVsZSA9IGF3YWl0IGxvYWRSZW1vdGVNb2R1bGUoe1xuICAgICAgcmVtb3RlRW50cnk6IHRoaXMucmVtb3RlQ29tcG9uZW50Py5yZW1vdGVFbnRyeSxcbiAgICAgIHJlbW90ZU5hbWU6IHRoaXMucmVtb3RlQ29tcG9uZW50Py5yZW1vdGVOYW1lLFxuICAgICAgZXhwb3NlZE1vZHVsZTogdGhpcy5yZW1vdGVDb21wb25lbnQ/LmV4cG9zZWRNb2R1bGVcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlbW90ZUNvbXBvbmVudCA9IGF3YWl0IGxvYWRSZW1vdGVNb2R1bGUoe1xuICAgICAgcmVtb3RlRW50cnk6IHRoaXMucmVtb3RlQ29tcG9uZW50Py5yZW1vdGVFbnRyeSxcbiAgICAgIHJlbW90ZU5hbWU6IHRoaXMucmVtb3RlQ29tcG9uZW50Py5yZW1vdGVOYW1lLFxuICAgICAgZXhwb3NlZE1vZHVsZTogdGhpcy5yZW1vdGVDb21wb25lbnQ/LmNvbXBvbmVudFJlZk5hbWVcbiAgICB9KTtcbiAgICBjb25zdCBtb2R1bGUgPSByZW1vdGVNb2R1bGVbdGhpcy5yZW1vdGVDb21wb25lbnQ/LmV4cG9zZWRNb2R1bGVdO1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IHJlbW90ZUNvbXBvbmVudFt0aGlzLnJlbW90ZUNvbXBvbmVudD8uY29tcG9uZW50UmVmTmFtZV07XG4gICAgY29uc3QgbmdNb2R1bGVSZWYgPSBhd2FpdCB0aGlzLmNyZWF0ZU1vZHVsZShtb2R1bGUpO1xuICAgIGNvbnN0IGNvbXBvbmVudEFuZE1vZHVsZSA9IHtcbiAgICAgIGNvbXBvbmVudCxcbiAgICAgIG5nTW9kdWxlUmVmXG4gICAgfTtcbiAgICBMb2FkUmVtb3RlTW9kdWxlRGlyZWN0aXZlLmNhY2hlLnNldCh0aGlzLmdldEtleSgpLCBjb21wb25lbnRBbmRNb2R1bGUpO1xuICAgIHJldHVybiBjb21wb25lbnRBbmRNb2R1bGU7XG4gIH1cblxuICBwcml2YXRlIGdldEtleSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLnJlbW90ZUNvbXBvbmVudD8ucmVtb3RlRW50cnl9LVxuICAgICAgJHt0aGlzLnJlbW90ZUNvbXBvbmVudD8ucmVtb3RlTmFtZX0tXG4gICAgICAke3RoaXMucmVtb3RlQ29tcG9uZW50Py5leHBvc2VkTW9kdWxlfS1cbiAgICAgICR7dGhpcy5yZW1vdGVDb21wb25lbnQ/LmNvbXBvbmVudFJlZk5hbWV9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlTW9kdWxlKG1vZHVsZU9yRmFjdG9yeTogYW55KTogUHJvbWlzZTxOZ01vZHVsZVJlZjxhbnk+PiB7XG4gICAgcmV0dXJuIGNyZWF0ZU5nTW9kdWxlPGFueT4obW9kdWxlT3JGYWN0b3J5LCB0aGlzLmluamVjdGFibGUpO1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zyb250ZW5kLXV0aWxzL3NyYy9tZmUvcmVtb3RlLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZUkxOG4ge1xuICBwcmVmaXg6IHN0cmluZ1xuICBzdWZmaXg6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZU1vZHVsZSB7XG4gIGRpc3BsYXlOYW1lPzogc3RyaW5nXG4gIHJlbW90ZUVudHJ5OiBzdHJpbmdcbiAgcmVtb3RlTmFtZTogc3RyaW5nXG4gIGV4cG9zZWRNb2R1bGU6IHN0cmluZ1xuICBjb21wb25lbnRSZWZOYW1lPzogc3RyaW5nXG4gIHJvdXRlUGF0aD86IHN0cmluZ1xuICBjYW5BY3RpdmF0ZT86IGFueVtdXG4gIGkxOG4/OiBSZW1vdGVJMThuXG4gIGd1YXJkRnVuY3Rpb25OYW1lPzogc3RyaW5nXG59XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -15,4 +15,7 @@ export * from './event.emitter.service';
|
|
|
15
15
|
export * from './event';
|
|
16
16
|
export * from './beautify.utils';
|
|
17
17
|
export { moment };
|
|
18
|
-
|
|
18
|
+
export * from './mfe/remote-module';
|
|
19
|
+
export * from './mfe/load-remote-module.directive';
|
|
20
|
+
export * from './mfe/configure-remote-routes';
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Zyb250ZW5kLXV0aWxzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQTtBQUUzQixjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLGNBQWMsQ0FBQTtBQUM1QixjQUFjLGtCQUFrQixDQUFBO0FBQ2hDLGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxRQUFRLENBQUE7QUFDdEIsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxjQUFjLENBQUE7QUFDNUIsY0FBYyxlQUFlLENBQUE7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyxTQUFTLENBQUE7QUFDdkIsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUE7QUFDakIsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsK0JBQStCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCdcblxuZXhwb3J0ICogZnJvbSAnLi9maWxlLnV0aWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtLnV0aWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9pZnJhbWUubWVzc2FnZSdcbmV4cG9ydCAqIGZyb20gJy4vcmVtb3ZlLWVtcHR5LWF0dHJpYnV0ZXMnXG5leHBvcnQgKiBmcm9tICcuL3Nhc3MtdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL3NvcnQnXG5leHBvcnQgKiBmcm9tICcuL3NvcnQtdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL3N0ZXAudXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL3RpbWUtdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2NvbG9yLXV0aWxzJ1xuZXhwb3J0ICogZnJvbSAnLi9zdHJpbmctdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2xhbmd1YWdlLnV0aWwnXG5leHBvcnQgKiBmcm9tICcuL2V2ZW50LmVtaXR0ZXIuc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnQnXG5leHBvcnQgKiBmcm9tICcuL2JlYXV0aWZ5LnV0aWxzJ1xuZXhwb3J0IHsgbW9tZW50IH1cbmV4cG9ydCAqIGZyb20gJy4vbWZlL3JlbW90ZS1tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL21mZS9sb2FkLXJlbW90ZS1tb2R1bGUuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9tZmUvY29uZmlndXJlLXJlbW90ZS1yb3V0ZXMnXG4iXX0=
|
|
@@ -8,8 +8,10 @@ import hexToRgba from 'hex-to-rgba';
|
|
|
8
8
|
import { registerLocaleData } from '@angular/common';
|
|
9
9
|
import localePt from '@angular/common/locales/pt';
|
|
10
10
|
import localeEn from '@angular/common/locales/en';
|
|
11
|
-
import
|
|
11
|
+
import * as i0 from '@angular/core';
|
|
12
|
+
import { EventEmitter, createNgModule, Directive, Input, Output } from '@angular/core';
|
|
12
13
|
import vkBeautify from 'vkbeautify';
|
|
14
|
+
import { loadRemoteModule } from '@angular-architects/module-federation';
|
|
13
15
|
|
|
14
16
|
function downloadFile(blob, filename) {
|
|
15
17
|
const url = window.URL.createObjectURL(blob);
|
|
@@ -276,9 +278,108 @@ function beautifyRawDataContent(text) {
|
|
|
276
278
|
}
|
|
277
279
|
}
|
|
278
280
|
|
|
281
|
+
class LoadRemoteModuleDirective {
|
|
282
|
+
viewRef;
|
|
283
|
+
injectable;
|
|
284
|
+
static cache = new Map();
|
|
285
|
+
remoteComponent;
|
|
286
|
+
loaded = new EventEmitter();
|
|
287
|
+
constructor(viewRef, injectable) {
|
|
288
|
+
this.viewRef = viewRef;
|
|
289
|
+
this.injectable = injectable;
|
|
290
|
+
}
|
|
291
|
+
async ngOnInit() {
|
|
292
|
+
const componentModuleRef = await this.getComponent();
|
|
293
|
+
const componentRef = this.viewRef.createComponent(componentModuleRef.component, {
|
|
294
|
+
injector: this.injectable,
|
|
295
|
+
ngModuleRef: componentModuleRef.ngModuleRef
|
|
296
|
+
});
|
|
297
|
+
this.setComponentParameters(componentRef);
|
|
298
|
+
this.loaded.emit({ instance: componentRef.instance });
|
|
299
|
+
componentRef.changeDetectorRef.markForCheck();
|
|
300
|
+
}
|
|
301
|
+
setComponentParameters(componentRef) {
|
|
302
|
+
const componentProperties = Object.keys(componentRef?.instance);
|
|
303
|
+
const instanceProperties = Object.keys(this);
|
|
304
|
+
componentProperties?.forEach(property => {
|
|
305
|
+
if (property === '__ngContext__') {
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
const existsInInstanceProperties = instanceProperties?.find(instance => instance === property);
|
|
309
|
+
if (existsInInstanceProperties) {
|
|
310
|
+
componentRef.instance[property] = this[property];
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
}
|
|
314
|
+
async getComponent() {
|
|
315
|
+
const key = this.getKey();
|
|
316
|
+
if (LoadRemoteModuleDirective.cache.has(key)) {
|
|
317
|
+
return LoadRemoteModuleDirective.cache.get(key);
|
|
318
|
+
}
|
|
319
|
+
return await this.loadComponent();
|
|
320
|
+
}
|
|
321
|
+
async loadComponent() {
|
|
322
|
+
const remoteModule = await loadRemoteModule({
|
|
323
|
+
remoteEntry: this.remoteComponent?.remoteEntry,
|
|
324
|
+
remoteName: this.remoteComponent?.remoteName,
|
|
325
|
+
exposedModule: this.remoteComponent?.exposedModule
|
|
326
|
+
});
|
|
327
|
+
const remoteComponent = await loadRemoteModule({
|
|
328
|
+
remoteEntry: this.remoteComponent?.remoteEntry,
|
|
329
|
+
remoteName: this.remoteComponent?.remoteName,
|
|
330
|
+
exposedModule: this.remoteComponent?.componentRefName
|
|
331
|
+
});
|
|
332
|
+
const module = remoteModule[this.remoteComponent?.exposedModule];
|
|
333
|
+
const component = remoteComponent[this.remoteComponent?.componentRefName];
|
|
334
|
+
const ngModuleRef = await this.createModule(module);
|
|
335
|
+
const componentAndModule = {
|
|
336
|
+
component,
|
|
337
|
+
ngModuleRef
|
|
338
|
+
};
|
|
339
|
+
LoadRemoteModuleDirective.cache.set(this.getKey(), componentAndModule);
|
|
340
|
+
return componentAndModule;
|
|
341
|
+
}
|
|
342
|
+
getKey() {
|
|
343
|
+
return `${this.remoteComponent?.remoteEntry}-
|
|
344
|
+
${this.remoteComponent?.remoteName}-
|
|
345
|
+
${this.remoteComponent?.exposedModule}-
|
|
346
|
+
${this.remoteComponent?.componentRefName}`;
|
|
347
|
+
}
|
|
348
|
+
async createModule(moduleOrFactory) {
|
|
349
|
+
return createNgModule(moduleOrFactory, this.injectable);
|
|
350
|
+
}
|
|
351
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LoadRemoteModuleDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
352
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.2", type: LoadRemoteModuleDirective, inputs: { remoteComponent: "remoteComponent" }, outputs: { loaded: "loaded" }, ngImport: i0 });
|
|
353
|
+
}
|
|
354
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.2", ngImport: i0, type: LoadRemoteModuleDirective, decorators: [{
|
|
355
|
+
type: Directive
|
|
356
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.Injector }]; }, propDecorators: { remoteComponent: [{
|
|
357
|
+
type: Input
|
|
358
|
+
}], loaded: [{
|
|
359
|
+
type: Output
|
|
360
|
+
}] } });
|
|
361
|
+
|
|
362
|
+
function configureRemoteRoutes(remoteModules) {
|
|
363
|
+
return remoteModules?.filter(remote => remote.routePath)?.map(remote => {
|
|
364
|
+
return {
|
|
365
|
+
path: remote.routePath,
|
|
366
|
+
loadChildren: () => loadRemoteModule({
|
|
367
|
+
type: 'script',
|
|
368
|
+
remoteEntry: remote.remoteEntry,
|
|
369
|
+
remoteName: remote.remoteName,
|
|
370
|
+
exposedModule: remote.exposedModule
|
|
371
|
+
}).then(m => {
|
|
372
|
+
return m[remote.exposedModule];
|
|
373
|
+
}),
|
|
374
|
+
canActivate: remote.canActivate,
|
|
375
|
+
data: { guard: remote.guardFunctionName }
|
|
376
|
+
};
|
|
377
|
+
});
|
|
378
|
+
}
|
|
379
|
+
|
|
279
380
|
/**
|
|
280
381
|
* Generated bundle index. Do not edit.
|
|
281
382
|
*/
|
|
282
383
|
|
|
283
|
-
export { EventEmitterService, IframeMessage, LanguageUtil, Sort, adicionarValidacaoRequiredNoFormControl, applicationFireEventService, applicationSubscribeEventService, applicationUnSubscribeEventService, beautifyRawDataContent, changeCssColorVariable, changePrimaryColor, changeSecondaryColor, changeTertiaryColor, convertHexToRGB, desabilitarTodosOsCamposDoFormGroup, disableFormControl, disableIfEnableElseFormControl, downloadFile, enableFormControl, enableIfDisableElseFormControl, getDuration, getRGBAArray, getScssVarValue, habilitarTodosOsCamposDoFormGroup, isJSON, isUUID, isXML, markAllFormFieldAsDirty, markAllFormFieldAsPristine, orderBy, removeEmptyAttributes, shadeBlendHexColor, validateEmail };
|
|
384
|
+
export { EventEmitterService, IframeMessage, LanguageUtil, LoadRemoteModuleDirective, Sort, adicionarValidacaoRequiredNoFormControl, applicationFireEventService, applicationSubscribeEventService, applicationUnSubscribeEventService, beautifyRawDataContent, changeCssColorVariable, changePrimaryColor, changeSecondaryColor, changeTertiaryColor, configureRemoteRoutes, convertHexToRGB, desabilitarTodosOsCamposDoFormGroup, disableFormControl, disableIfEnableElseFormControl, downloadFile, enableFormControl, enableIfDisableElseFormControl, getDuration, getRGBAArray, getScssVarValue, habilitarTodosOsCamposDoFormGroup, isJSON, isUUID, isXML, markAllFormFieldAsDirty, markAllFormFieldAsPristine, orderBy, removeEmptyAttributes, shadeBlendHexColor, validateEmail };
|
|
284
385
|
//# sourceMappingURL=apipass-frontend-utils.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apipass-frontend-utils.mjs","sources":["../../../projects/frontend-utils/src/file.utils.ts","../../../projects/frontend-utils/src/form.utils.ts","../../../projects/frontend-utils/src/iframe.message.ts","../../../projects/frontend-utils/src/remove-empty-attributes.ts","../../../projects/frontend-utils/src/sass-utils.ts","../../../projects/frontend-utils/src/sort.ts","../../../projects/frontend-utils/src/sort-utils.ts","../../../projects/frontend-utils/src/step.utils.ts","../../../projects/frontend-utils/src/time-utils.ts","../../../projects/frontend-utils/src/color-utils.ts","../../../projects/frontend-utils/src/string-utils.ts","../../../projects/frontend-utils/src/language.util.ts","../../../projects/frontend-utils/src/event.emitter.service.ts","../../../projects/frontend-utils/src/event.ts","../../../projects/frontend-utils/src/beautify.utils.ts","../../../projects/frontend-utils/src/apipass-frontend-utils.ts"],"sourcesContent":["export function downloadFile (blob: any, filename: string): void {\n const url = window.URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.style.display = 'none'\n a.href = url\n a.download = filename\n document.body.appendChild(a)\n a.click()\n window.URL.revokeObjectURL(url)\n}\n","import { AbstractControl, FormGroup, Validators } from '@angular/forms'\n\nexport function markAllFormFieldAsDirty (form: FormGroup): void {\n for (const field in form.controls) {\n if (form.controls.hasOwnProperty(field)) {\n form.controls[field].markAsDirty()\n form.controls[field].markAsTouched()\n }\n }\n}\n\nexport function markAllFormFieldAsPristine (form: FormGroup): void {\n for (const field in form.controls) {\n if (form.controls.hasOwnProperty(field)) {\n form.controls[field].markAsPristine()\n form.controls[field].markAsUntouched()\n }\n }\n}\n\nexport function disableIfEnableElseFormControl (form: AbstractControl, formControlName: string, condition: boolean): void {\n condition ? form?.get(formControlName)?.disable() : form?.get(formControlName)?.enable()\n}\n\nexport function enableIfDisableElseFormControl (form: AbstractControl, formControlName: string, condition: boolean): void {\n condition ? form?.get(formControlName)?.enable() : form?.get(formControlName)?.disable()\n}\n\nexport function disableFormControl (form: FormGroup, formControlName: string): void {\n form?.get(formControlName)?.disable()\n}\n\nexport function enableFormControl (form: FormGroup, formControlName: string): void {\n form?.get(formControlName)?.enable()\n}\n\nexport function habilitarTodosOsCamposDoFormGroup (form: FormGroup): void {\n Object.keys(form.controls).forEach((key) => {\n form?.get(key)?.enable()\n })\n}\n\nexport function desabilitarTodosOsCamposDoFormGroup (form: FormGroup): void {\n Object.keys(form.controls).forEach((key) => {\n form?.get(key)?.disable()\n })\n}\n\nexport function adicionarValidacaoRequiredNoFormControl (form: FormGroup, keyFormControl: string): void {\n form?.get(keyFormControl)?.setValidators(Validators.required)\n form?.get(keyFormControl)?.updateValueAndValidity()\n}\n","export class IframeMessage {\n\n static insideIframe (): boolean {\n return window !== window.parent\n }\n\n static sendMessage (message: any): void {\n if (this.insideIframe()) {\n window.parent.postMessage(message, '*')\n }\n }\n\n static sendLoadedMessage (): void {\n this.sendMessage({ loaded: true })\n }\n\n static sendUnauthorizedMessage (): void {\n this.sendMessage({ unauthorized: true })\n }\n\n}\n","import { isEmptyObject } from 'jquery'\n\nexport function removeEmptyAttributes (obj: any): any {\n if (Array.isArray(obj)) {\n return obj\n .map(v => (v && isObject(v)) ? removeEmptyAttributes(v) : v)\n .filter(v => !(v == null) && !(isEmptyObject(v)))\n } else {\n return Object.entries(obj)\n .map(([k, v]) => [k, v && isObject(v) ? removeEmptyAttributes(v) : v])\n .reduce((a: any, [k, v]) => (v == null || isEmptyObject(v) ? a : (a[k] = v, a)), {})\n }\n}\n\nfunction isObject (value: any): boolean {\n return value !== null && typeof value === 'object'\n}\n","export function getScssVarValue (name: string): string {\n return getComputedStyle(document.body).getPropertyValue(name)\n}\n","export type Direction = Array<boolean | 'asc' | 'desc'>\n\nexport class Sort {\n\n attributes: string[]\n directions: Direction\n\n constructor (attributes: string[], directions: Direction) {\n this.attributes = attributes\n this.directions = directions\n }\n\n}\n","import { type Sort } from './sort'\nimport * as _ from 'lodash'\n\nexport function orderBy (list: any[], sort: Sort): any[] {\n if (!list || !sort || !sort.attributes || !sort.directions) { return list }\n return _.orderBy(list, sort.attributes, sort.directions)\n}\n","export function isUUID (text: string): boolean {\n const uuidRegex: RegExp = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n return uuidRegex.test(text)\n}\n","import moment from 'moment'\n\nexport function getDuration (dateStart: Date, dateEnd: Date): string {\n if (!dateStart || !dateEnd) { return '--' }\n const difTime = moment(dateEnd).diff(moment(dateStart), 'milliseconds')\n if (Number.isNaN(difTime)) { return '--' }\n if (difTime > 5000) { return Math.round(difTime / 1000) + ' sec' }\n return difTime + ' ms'\n}\n","import tinycolor from 'tinycolor2'\nimport hexToRgba from 'hex-to-rgba'\n\nexport function getRGBAArray (hex: string): any[] {\n let rgba: string = convertHexToRGB(hex)\n rgba = rgba.replace('rgba(', '')\n rgba = rgba.replace(')', '')\n return rgba.split(',')\n}\n\nexport function convertHexToRGB (color: string, alpha?: string | number): string {\n return hexToRgba(color, alpha)\n}\n\nexport function shadeBlendHexColor (hex: string, percent: number): any {\n return tinycolor(hex).lighten(percent).toString()\n}\n\nexport function changePrimaryColor (element: string, hex: any): void {\n const color = hex\n changeCssColorVariable(element, '--color-primary', color)\n changeCssColorVariable(element, '--mdc-theme-primary', color)\n changeCssColorVariable(element, '--color-primary-hover', shadeBlendHexColor(color, -7))\n changeCssColorVariable(element, '--color-primary-active', shadeBlendHexColor(color, 7))\n}\n\nexport function changeSecondaryColor (element: string, hex: any): void {\n const color = hex\n changeCssColorVariable(element, '--color-secondary', color)\n changeCssColorVariable(element, '--mdc-theme-secondary', color)\n changeCssColorVariable(element, '--color-secondary-hover', shadeBlendHexColor(color, -15))\n changeCssColorVariable(element, '--color-secondary-active', shadeBlendHexColor(color, 15))\n}\n\nexport function changeTertiaryColor (element: string, hex: any): void {\n const color = hex\n changeCssColorVariable(element, '--color-tertiary', color)\n changeCssColorVariable(element, '--mdc-theme-tertiary', color)\n changeCssColorVariable(element, '--color-fonts-tertiary', shadeBlendHexColor(color, -35))\n changeCssColorVariable(element, '--color-tertiary-hover', shadeBlendHexColor(color, -15))\n changeCssColorVariable(element, '--color-tertiary-active', shadeBlendHexColor(color, 15))\n}\n\nexport function changeCssColorVariable (element: string, colorProperty: string, hex: any): void {\n if (!element) {\n element = ':root'\n }\n const root: any = document.querySelector(element)\n root.style.setProperty(colorProperty, hex)\n}\n","export function validateEmail (email: string): boolean {\n const regularExpression = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n return regularExpression.test(String(email).toLowerCase())\n}\n","import { registerLocaleData } from '@angular/common';\nimport localePt from '@angular/common/locales/pt';\nimport localeEn from '@angular/common/locales/en';\nimport { TranslateService } from '@ngx-translate/core';\n\nexport class LanguageUtil {\n\n static getLanguage(userLanguage?: string): string {\n if (userLanguage) {\n return LanguageUtil.prepareLocale(userLanguage);\n }\n\n const languageStorage = window.localStorage.getItem('apipass-user-language');\n if (languageStorage) {\n return languageStorage;\n }\n\n const navigatorLanguage = navigator.language;\n if (navigatorLanguage.split('-')[0] === 'pt') {\n return 'pt-BR';\n }\n return 'en-US';\n }\n\n private static prepareLocale(language: string): string {\n if (language?.toLowerCase() === 'en') {\n return 'en-US'\n } else if (language?.toLowerCase() === 'pt') {\n return 'pt-BR'\n }\n return language\n }\n\n static registerLanguage(translate?: TranslateService, userLanguage?: string): string {\n const language: string = LanguageUtil.getLanguage(userLanguage);\n if (language === 'pt-BR') {\n registerLocaleData(localePt, language);\n } else {\n registerLocaleData(localeEn, language);\n }\n if (translate) {\n translate.use(language);\n }\n if (userLanguage) {\n window.localStorage.setItem('apipass-user-language', language);\n }\n return language;\n }\n\n}\n","import { EventEmitter } from '@angular/core';\n\nexport class EventEmitterService {\n\n private static emitters: Record<string, EventEmitter<any>> = {};\n\n static get(eventName: string): EventEmitter<any> {\n if (!this.emitters[eventName]) {\n this.emitters[eventName] = new EventEmitter<any>();\n }\n return this.emitters[eventName];\n }\n\n}\n","export function applicationFireEventService (event: string, detail?: Record<any, any>): void {\n window.dispatchEvent(new CustomEvent(event, { detail }))\n}\n\nexport function applicationSubscribeEventService (event: string, listener: EventListener): void {\n window.addEventListener(event, listener);\n}\n\nexport function applicationUnSubscribeEventService (event: string): void {\n window.removeEventListener(event, undefined);\n}\n","import vkBeautify from 'vkbeautify';\n\nexport function isJSON(text: string): boolean {\n try {\n vkBeautify.json(text);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function isXML(text: string): boolean {\n try {\n vkBeautify.xml(text);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function beautifyRawDataContent(text: string): string {\n if (isJSON(text)) {\n return vkBeautify.json(text, 2)\n } else if (isXML(text)) {\n return vkBeautify.xml(text);\n } else {\n return text;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apipass-frontend-utils.mjs","sources":["../../../projects/frontend-utils/src/file.utils.ts","../../../projects/frontend-utils/src/form.utils.ts","../../../projects/frontend-utils/src/iframe.message.ts","../../../projects/frontend-utils/src/remove-empty-attributes.ts","../../../projects/frontend-utils/src/sass-utils.ts","../../../projects/frontend-utils/src/sort.ts","../../../projects/frontend-utils/src/sort-utils.ts","../../../projects/frontend-utils/src/step.utils.ts","../../../projects/frontend-utils/src/time-utils.ts","../../../projects/frontend-utils/src/color-utils.ts","../../../projects/frontend-utils/src/string-utils.ts","../../../projects/frontend-utils/src/language.util.ts","../../../projects/frontend-utils/src/event.emitter.service.ts","../../../projects/frontend-utils/src/event.ts","../../../projects/frontend-utils/src/beautify.utils.ts","../../../projects/frontend-utils/src/mfe/load-remote-module.directive.ts","../../../projects/frontend-utils/src/mfe/configure-remote-routes.ts","../../../projects/frontend-utils/src/apipass-frontend-utils.ts"],"sourcesContent":["export function downloadFile (blob: any, filename: string): void {\n const url = window.URL.createObjectURL(blob)\n const a = document.createElement('a')\n a.style.display = 'none'\n a.href = url\n a.download = filename\n document.body.appendChild(a)\n a.click()\n window.URL.revokeObjectURL(url)\n}\n","import { AbstractControl, FormGroup, Validators } from '@angular/forms'\n\nexport function markAllFormFieldAsDirty (form: FormGroup): void {\n for (const field in form.controls) {\n if (form.controls.hasOwnProperty(field)) {\n form.controls[field].markAsDirty()\n form.controls[field].markAsTouched()\n }\n }\n}\n\nexport function markAllFormFieldAsPristine (form: FormGroup): void {\n for (const field in form.controls) {\n if (form.controls.hasOwnProperty(field)) {\n form.controls[field].markAsPristine()\n form.controls[field].markAsUntouched()\n }\n }\n}\n\nexport function disableIfEnableElseFormControl (form: AbstractControl, formControlName: string, condition: boolean): void {\n condition ? form?.get(formControlName)?.disable() : form?.get(formControlName)?.enable()\n}\n\nexport function enableIfDisableElseFormControl (form: AbstractControl, formControlName: string, condition: boolean): void {\n condition ? form?.get(formControlName)?.enable() : form?.get(formControlName)?.disable()\n}\n\nexport function disableFormControl (form: FormGroup, formControlName: string): void {\n form?.get(formControlName)?.disable()\n}\n\nexport function enableFormControl (form: FormGroup, formControlName: string): void {\n form?.get(formControlName)?.enable()\n}\n\nexport function habilitarTodosOsCamposDoFormGroup (form: FormGroup): void {\n Object.keys(form.controls).forEach((key) => {\n form?.get(key)?.enable()\n })\n}\n\nexport function desabilitarTodosOsCamposDoFormGroup (form: FormGroup): void {\n Object.keys(form.controls).forEach((key) => {\n form?.get(key)?.disable()\n })\n}\n\nexport function adicionarValidacaoRequiredNoFormControl (form: FormGroup, keyFormControl: string): void {\n form?.get(keyFormControl)?.setValidators(Validators.required)\n form?.get(keyFormControl)?.updateValueAndValidity()\n}\n","export class IframeMessage {\n\n static insideIframe (): boolean {\n return window !== window.parent\n }\n\n static sendMessage (message: any): void {\n if (this.insideIframe()) {\n window.parent.postMessage(message, '*')\n }\n }\n\n static sendLoadedMessage (): void {\n this.sendMessage({ loaded: true })\n }\n\n static sendUnauthorizedMessage (): void {\n this.sendMessage({ unauthorized: true })\n }\n\n}\n","import { isEmptyObject } from 'jquery'\n\nexport function removeEmptyAttributes (obj: any): any {\n if (Array.isArray(obj)) {\n return obj\n .map(v => (v && isObject(v)) ? removeEmptyAttributes(v) : v)\n .filter(v => !(v == null) && !(isEmptyObject(v)))\n } else {\n return Object.entries(obj)\n .map(([k, v]) => [k, v && isObject(v) ? removeEmptyAttributes(v) : v])\n .reduce((a: any, [k, v]) => (v == null || isEmptyObject(v) ? a : (a[k] = v, a)), {})\n }\n}\n\nfunction isObject (value: any): boolean {\n return value !== null && typeof value === 'object'\n}\n","export function getScssVarValue (name: string): string {\n return getComputedStyle(document.body).getPropertyValue(name)\n}\n","export type Direction = Array<boolean | 'asc' | 'desc'>\n\nexport class Sort {\n\n attributes: string[]\n directions: Direction\n\n constructor (attributes: string[], directions: Direction) {\n this.attributes = attributes\n this.directions = directions\n }\n\n}\n","import { type Sort } from './sort'\nimport * as _ from 'lodash'\n\nexport function orderBy (list: any[], sort: Sort): any[] {\n if (!list || !sort || !sort.attributes || !sort.directions) { return list }\n return _.orderBy(list, sort.attributes, sort.directions)\n}\n","export function isUUID (text: string): boolean {\n const uuidRegex: RegExp = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;\n return uuidRegex.test(text)\n}\n","import moment from 'moment'\n\nexport function getDuration (dateStart: Date, dateEnd: Date): string {\n if (!dateStart || !dateEnd) { return '--' }\n const difTime = moment(dateEnd).diff(moment(dateStart), 'milliseconds')\n if (Number.isNaN(difTime)) { return '--' }\n if (difTime > 5000) { return Math.round(difTime / 1000) + ' sec' }\n return difTime + ' ms'\n}\n","import tinycolor from 'tinycolor2'\nimport hexToRgba from 'hex-to-rgba'\n\nexport function getRGBAArray (hex: string): any[] {\n let rgba: string = convertHexToRGB(hex)\n rgba = rgba.replace('rgba(', '')\n rgba = rgba.replace(')', '')\n return rgba.split(',')\n}\n\nexport function convertHexToRGB (color: string, alpha?: string | number): string {\n return hexToRgba(color, alpha)\n}\n\nexport function shadeBlendHexColor (hex: string, percent: number): any {\n return tinycolor(hex).lighten(percent).toString()\n}\n\nexport function changePrimaryColor (element: string, hex: any): void {\n const color = hex\n changeCssColorVariable(element, '--color-primary', color)\n changeCssColorVariable(element, '--mdc-theme-primary', color)\n changeCssColorVariable(element, '--color-primary-hover', shadeBlendHexColor(color, -7))\n changeCssColorVariable(element, '--color-primary-active', shadeBlendHexColor(color, 7))\n}\n\nexport function changeSecondaryColor (element: string, hex: any): void {\n const color = hex\n changeCssColorVariable(element, '--color-secondary', color)\n changeCssColorVariable(element, '--mdc-theme-secondary', color)\n changeCssColorVariable(element, '--color-secondary-hover', shadeBlendHexColor(color, -15))\n changeCssColorVariable(element, '--color-secondary-active', shadeBlendHexColor(color, 15))\n}\n\nexport function changeTertiaryColor (element: string, hex: any): void {\n const color = hex\n changeCssColorVariable(element, '--color-tertiary', color)\n changeCssColorVariable(element, '--mdc-theme-tertiary', color)\n changeCssColorVariable(element, '--color-fonts-tertiary', shadeBlendHexColor(color, -35))\n changeCssColorVariable(element, '--color-tertiary-hover', shadeBlendHexColor(color, -15))\n changeCssColorVariable(element, '--color-tertiary-active', shadeBlendHexColor(color, 15))\n}\n\nexport function changeCssColorVariable (element: string, colorProperty: string, hex: any): void {\n if (!element) {\n element = ':root'\n }\n const root: any = document.querySelector(element)\n root.style.setProperty(colorProperty, hex)\n}\n","export function validateEmail (email: string): boolean {\n const regularExpression = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n return regularExpression.test(String(email).toLowerCase())\n}\n","import { registerLocaleData } from '@angular/common';\nimport localePt from '@angular/common/locales/pt';\nimport localeEn from '@angular/common/locales/en';\nimport { TranslateService } from '@ngx-translate/core';\n\nexport class LanguageUtil {\n\n static getLanguage(userLanguage?: string): string {\n if (userLanguage) {\n return LanguageUtil.prepareLocale(userLanguage);\n }\n\n const languageStorage = window.localStorage.getItem('apipass-user-language');\n if (languageStorage) {\n return languageStorage;\n }\n\n const navigatorLanguage = navigator.language;\n if (navigatorLanguage.split('-')[0] === 'pt') {\n return 'pt-BR';\n }\n return 'en-US';\n }\n\n private static prepareLocale(language: string): string {\n if (language?.toLowerCase() === 'en') {\n return 'en-US'\n } else if (language?.toLowerCase() === 'pt') {\n return 'pt-BR'\n }\n return language\n }\n\n static registerLanguage(translate?: TranslateService, userLanguage?: string): string {\n const language: string = LanguageUtil.getLanguage(userLanguage);\n if (language === 'pt-BR') {\n registerLocaleData(localePt, language);\n } else {\n registerLocaleData(localeEn, language);\n }\n if (translate) {\n translate.use(language);\n }\n if (userLanguage) {\n window.localStorage.setItem('apipass-user-language', language);\n }\n return language;\n }\n\n}\n","import { EventEmitter } from '@angular/core';\n\nexport class EventEmitterService {\n\n private static emitters: Record<string, EventEmitter<any>> = {};\n\n static get(eventName: string): EventEmitter<any> {\n if (!this.emitters[eventName]) {\n this.emitters[eventName] = new EventEmitter<any>();\n }\n return this.emitters[eventName];\n }\n\n}\n","export function applicationFireEventService (event: string, detail?: Record<any, any>): void {\n window.dispatchEvent(new CustomEvent(event, { detail }))\n}\n\nexport function applicationSubscribeEventService (event: string, listener: EventListener): void {\n window.addEventListener(event, listener);\n}\n\nexport function applicationUnSubscribeEventService (event: string): void {\n window.removeEventListener(event, undefined);\n}\n","import vkBeautify from 'vkbeautify';\n\nexport function isJSON(text: string): boolean {\n try {\n vkBeautify.json(text);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function isXML(text: string): boolean {\n try {\n vkBeautify.xml(text);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function beautifyRawDataContent(text: string): string {\n if (isJSON(text)) {\n return vkBeautify.json(text, 2)\n } else if (isXML(text)) {\n return vkBeautify.xml(text);\n } else {\n return text;\n }\n}\n","import { loadRemoteModule } from '@angular-architects/module-federation';\nimport {\n ComponentRef,\n createNgModule,\n Directive,\n EventEmitter,\n Injector,\n Input,\n NgModuleRef,\n Output,\n Type,\n ViewContainerRef\n} from '@angular/core';\nimport { RemoteModule } from './remote-module';\n\ninterface ICacheItem {\n component: Type<unknown>\n ngModuleRef: NgModuleRef<unknown>\n}\n\n@Directive()\nexport abstract class LoadRemoteModuleDirective {\n\n static cache: Map<string, ICacheItem> = new Map<string, ICacheItem>();\n\n @Input() remoteComponent: RemoteModule\n @Output() loaded: EventEmitter<{ instance: unknown }> = new EventEmitter<{ instance: unknown }>();\n\n public constructor(\n private readonly viewRef: ViewContainerRef,\n private readonly injectable: Injector\n ) {\n }\n\n async ngOnInit(): Promise<void> {\n const componentModuleRef = await this.getComponent();\n const componentRef = this.viewRef.createComponent(componentModuleRef.component, {\n injector: this.injectable,\n ngModuleRef: componentModuleRef.ngModuleRef\n });\n this.setComponentParameters(componentRef);\n this.loaded.emit({ instance: componentRef.instance });\n componentRef.changeDetectorRef.markForCheck();\n }\n\n protected setComponentParameters(componentRef: ComponentRef<any>): void {\n const componentProperties = Object.keys(componentRef?.instance);\n const instanceProperties = Object.keys(this);\n componentProperties?.forEach(property => {\n if (property === '__ngContext__') {\n return;\n }\n const existsInInstanceProperties = instanceProperties?.find(instance => instance === property);\n if (existsInInstanceProperties) {\n componentRef.instance[property] = this[property]\n }\n })\n }\n\n private async getComponent(): Promise<ICacheItem> {\n const key = this.getKey();\n\n if (LoadRemoteModuleDirective.cache.has(key)) {\n return LoadRemoteModuleDirective.cache.get(key);\n }\n\n return await this.loadComponent();\n }\n\n private async loadComponent(): Promise<ICacheItem> {\n const remoteModule = await loadRemoteModule({\n remoteEntry: this.remoteComponent?.remoteEntry,\n remoteName: this.remoteComponent?.remoteName,\n exposedModule: this.remoteComponent?.exposedModule\n });\n\n const remoteComponent = await loadRemoteModule({\n remoteEntry: this.remoteComponent?.remoteEntry,\n remoteName: this.remoteComponent?.remoteName,\n exposedModule: this.remoteComponent?.componentRefName\n });\n const module = remoteModule[this.remoteComponent?.exposedModule];\n const component = remoteComponent[this.remoteComponent?.componentRefName];\n const ngModuleRef = await this.createModule(module);\n const componentAndModule = {\n component,\n ngModuleRef\n };\n LoadRemoteModuleDirective.cache.set(this.getKey(), componentAndModule);\n return componentAndModule;\n }\n\n private getKey(): string {\n return `${this.remoteComponent?.remoteEntry}-\n ${this.remoteComponent?.remoteName}-\n ${this.remoteComponent?.exposedModule}-\n ${this.remoteComponent?.componentRefName}`;\n }\n\n private async createModule(moduleOrFactory: any): Promise<NgModuleRef<any>> {\n return createNgModule<any>(moduleOrFactory, this.injectable);\n }\n\n}\n","import { RemoteModule } from './remote-module';\nimport { Routes } from '@angular/router';\nimport { loadRemoteModule } from '@angular-architects/module-federation';\n\nexport function configureRemoteRoutes(remoteModules: RemoteModule[]): Routes {\n return remoteModules?.filter(remote => remote.routePath)?.map(remote => {\n return {\n path: remote.routePath,\n loadChildren: (): any => loadRemoteModule({\n type: 'script',\n remoteEntry: remote.remoteEntry,\n remoteName: remote.remoteName,\n exposedModule: remote.exposedModule\n }).then(m => {\n return m[remote.exposedModule]\n }),\n canActivate: remote.canActivate,\n data: { guard: remote.guardFunctionName }\n }\n })\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ComponentRef, EventEmitter, Injector, NgModuleRef, Type, ViewContainerRef } from '@angular/core';
|
|
2
|
+
import { RemoteModule } from './remote-module';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
interface ICacheItem {
|
|
5
|
+
component: Type<unknown>;
|
|
6
|
+
ngModuleRef: NgModuleRef<unknown>;
|
|
7
|
+
}
|
|
8
|
+
export declare abstract class LoadRemoteModuleDirective {
|
|
9
|
+
private readonly viewRef;
|
|
10
|
+
private readonly injectable;
|
|
11
|
+
static cache: Map<string, ICacheItem>;
|
|
12
|
+
remoteComponent: RemoteModule;
|
|
13
|
+
loaded: EventEmitter<{
|
|
14
|
+
instance: unknown;
|
|
15
|
+
}>;
|
|
16
|
+
constructor(viewRef: ViewContainerRef, injectable: Injector);
|
|
17
|
+
ngOnInit(): Promise<void>;
|
|
18
|
+
protected setComponentParameters(componentRef: ComponentRef<any>): void;
|
|
19
|
+
private getComponent;
|
|
20
|
+
private loadComponent;
|
|
21
|
+
private getKey;
|
|
22
|
+
private createModule;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoadRemoteModuleDirective, never>;
|
|
24
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<LoadRemoteModuleDirective, never, never, { "remoteComponent": { "alias": "remoteComponent"; "required": false; }; }, { "loaded": "loaded"; }, never, never, false, never>;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface RemoteI18n {
|
|
2
|
+
prefix: string;
|
|
3
|
+
suffix: string;
|
|
4
|
+
}
|
|
5
|
+
export interface RemoteModule {
|
|
6
|
+
displayName?: string;
|
|
7
|
+
remoteEntry: string;
|
|
8
|
+
remoteName: string;
|
|
9
|
+
exposedModule: string;
|
|
10
|
+
componentRefName?: string;
|
|
11
|
+
routePath?: string;
|
|
12
|
+
canActivate?: any[];
|
|
13
|
+
i18n?: RemoteI18n;
|
|
14
|
+
guardFunctionName?: string;
|
|
15
|
+
}
|
package/package.json
CHANGED
package/public-api.d.ts
CHANGED
|
@@ -15,3 +15,6 @@ export * from './event.emitter.service';
|
|
|
15
15
|
export * from './event';
|
|
16
16
|
export * from './beautify.utils';
|
|
17
17
|
export { moment };
|
|
18
|
+
export * from './mfe/remote-module';
|
|
19
|
+
export * from './mfe/load-remote-module.directive';
|
|
20
|
+
export * from './mfe/configure-remote-routes';
|