survey-angular-ui 2.5.29 → 2.5.31
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/bundles/survey-angular-ui.umd.js +19 -15
- package/bundles/survey-angular-ui.umd.js.map +1 -1
- package/component-factory.d.ts +2 -2
- package/components/popup/popup.service.d.ts +2 -3
- package/esm2015/component-factory.js +7 -2
- package/esm2015/components/popup/popup.service.js +7 -6
- package/esm2015/utils/dynamic.directive.js +10 -11
- package/fesm2015/survey-angular-ui.js +20 -16
- package/fesm2015/survey-angular-ui.js.map +1 -1
- package/package.json +2 -2
- package/utils/dynamic.directive.d.ts +3 -3
package/component-factory.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Component,
|
|
1
|
+
import { Component, ComponentRef, Type, ViewContainerRef } from "@angular/core";
|
|
2
2
|
export declare class AngularComponentFactory {
|
|
3
3
|
static Instance: AngularComponentFactory;
|
|
4
4
|
private creatorHash;
|
|
5
5
|
registerComponent(typeName: string, componentType: Type<any>): void;
|
|
6
6
|
getAllTypes(): Array<string>;
|
|
7
7
|
isComponentRegistered(elementType: string): boolean;
|
|
8
|
-
create(containerRef: ViewContainerRef, elementType: string, resolver:
|
|
8
|
+
create(containerRef: ViewContainerRef, elementType: string, resolver: any): ComponentRef<Component>;
|
|
9
9
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { ApplicationRef,
|
|
1
|
+
import { ApplicationRef, Injector } from "@angular/core";
|
|
2
2
|
import { DomPortalOutlet } from "@angular/cdk/portal";
|
|
3
3
|
import { PopupBaseViewModel } from "survey-core";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class PopupService {
|
|
6
6
|
private injector;
|
|
7
7
|
private applicationRef;
|
|
8
|
-
|
|
9
|
-
constructor(injector: Injector, applicationRef: ApplicationRef, componentFactoryResolver: ComponentFactoryResolver);
|
|
8
|
+
constructor(injector: Injector, applicationRef: ApplicationRef);
|
|
10
9
|
createComponent(popupViewModel: PopupBaseViewModel): DomPortalOutlet;
|
|
11
10
|
static ɵfac: i0.ɵɵFactoryDeclaration<PopupService, never>;
|
|
12
11
|
static ɵprov: i0.ɵɵInjectableDeclaration<PopupService>;
|
|
@@ -19,8 +19,13 @@ export class AngularComponentFactory {
|
|
|
19
19
|
var componentType = this.creatorHash[elementType];
|
|
20
20
|
if (!componentType)
|
|
21
21
|
return null;
|
|
22
|
-
|
|
22
|
+
try {
|
|
23
|
+
return containerRef.createComponent(componentType);
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
return containerRef.createComponent(resolver.resolveComponentFactory(componentType));
|
|
27
|
+
}
|
|
23
28
|
}
|
|
24
29
|
}
|
|
25
30
|
AngularComponentFactory.Instance = new AngularComponentFactory();
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tcG9uZW50LWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHVCQUF1QjtJQUFwQztRQUVVLGdCQUFXLEdBQXlDLEVBQUUsQ0FBQztJQTJCakUsQ0FBQztJQXpCUSxpQkFBaUIsQ0FDdEIsUUFBZ0IsRUFDaEIsYUFBd0I7UUFFeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQUNNLFdBQVc7UUFDaEIsSUFBSSxNQUFNLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUNqQyxLQUFLLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNsQjtRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFDTSxxQkFBcUIsQ0FBQyxXQUFtQjtRQUM5QyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDTSxNQUFNLENBQUMsWUFBOEIsRUFBRSxXQUFtQixFQUFFLFFBQWE7UUFDOUUsSUFBSSxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQVEsSUFBWSxDQUFDO1FBQ3pDLElBQUk7WUFDRixPQUFPLFlBQVksQ0FBQyxlQUFlLENBQUMsYUFBb0IsQ0FBQyxDQUFDO1NBQzNEO1FBQUMsT0FBTSxDQUFDLEVBQUU7WUFDVCxPQUFPLFlBQVksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7U0FDdEY7SUFDSCxDQUFDOztBQTNCYSxnQ0FBUSxHQUE0QixJQUFJLHVCQUF1QixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgVHlwZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBjbGFzcyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB7XG4gIHB1YmxpYyBzdGF0aWMgSW5zdGFuY2U6IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5ID0gbmV3IEFuZ3VsYXJDb21wb25lbnRGYWN0b3J5KCk7XG4gIHByaXZhdGUgY3JlYXRvckhhc2g6IHsgW2luZGV4OiBzdHJpbmddOiBUeXBlPENvbXBvbmVudD4gfSA9IHt9O1xuXG4gIHB1YmxpYyByZWdpc3RlckNvbXBvbmVudChcbiAgICB0eXBlTmFtZTogc3RyaW5nLFxuICAgIGNvbXBvbmVudFR5cGU6IFR5cGU8YW55PlxuICApOiB2b2lkIHtcbiAgICB0aGlzLmNyZWF0b3JIYXNoW3R5cGVOYW1lXSA9IGNvbXBvbmVudFR5cGU7XG4gIH1cbiAgcHVibGljIGdldEFsbFR5cGVzKCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHZhciByZXN1bHQgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIGZvciAodmFyIGtleSBpbiB0aGlzLmNyZWF0b3JIYXNoKSB7XG4gICAgICByZXN1bHQucHVzaChrZXkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LnNvcnQoKTtcbiAgfVxuICBwdWJsaWMgaXNDb21wb25lbnRSZWdpc3RlcmVkKGVsZW1lbnRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmNyZWF0b3JIYXNoW2VsZW1lbnRUeXBlXTtcbiAgfVxuICBwdWJsaWMgY3JlYXRlKGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgZWxlbWVudFR5cGU6IHN0cmluZywgcmVzb2x2ZXI6IGFueSk6IENvbXBvbmVudFJlZjxDb21wb25lbnQ+IHtcbiAgICB2YXIgY29tcG9uZW50VHlwZSA9IHRoaXMuY3JlYXRvckhhc2hbZWxlbWVudFR5cGVdO1xuICAgIGlmICghY29tcG9uZW50VHlwZSkgcmV0dXJuIChudWxsIGFzIGFueSk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBjb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFR5cGUgYXMgYW55KTtcbiAgICB9IGNhdGNoKGUpIHtcbiAgICAgIHJldHVybiBjb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudFR5cGUpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { Injectable, VERSION } from "@angular/core";
|
|
2
2
|
import { ComponentPortal, DomPortalOutlet } from "@angular/cdk/portal";
|
|
3
3
|
import { PopupBaseContainerComponent } from "./popup-container.component";
|
|
4
|
+
import { NgModuleRef } from "@angular/core";
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export class PopupService {
|
|
6
|
-
constructor(injector, applicationRef
|
|
7
|
+
constructor(injector, applicationRef) {
|
|
7
8
|
this.injector = injector;
|
|
8
9
|
this.applicationRef = applicationRef;
|
|
9
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
10
10
|
}
|
|
11
11
|
createComponent(popupViewModel) {
|
|
12
12
|
let portalHost;
|
|
@@ -16,7 +16,8 @@ export class PopupService {
|
|
|
16
16
|
portalHost = new DomPortalOutlet(popupViewModel.container, this.applicationRef, this.injector);
|
|
17
17
|
}
|
|
18
18
|
else {
|
|
19
|
-
|
|
19
|
+
const resolver = this.injector.get(NgModuleRef).componentFactoryResolver;
|
|
20
|
+
portalHost = new DomPortalOutlet(popupViewModel.container, resolver, this.applicationRef, this.injector);
|
|
20
21
|
}
|
|
21
22
|
const portal = new ComponentPortal(PopupBaseContainerComponent);
|
|
22
23
|
const componentRef = portalHost.attach(portal);
|
|
@@ -26,9 +27,9 @@ export class PopupService {
|
|
|
26
27
|
return portalHost;
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
|
-
PopupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupService, deps: [{ token: i0.Injector }, { token: i0.ApplicationRef }
|
|
30
|
+
PopupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupService, deps: [{ token: i0.Injector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
30
31
|
PopupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupService });
|
|
31
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupService, decorators: [{
|
|
32
33
|
type: Injectable
|
|
33
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ApplicationRef }
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ApplicationRef }]; } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BvcHVwL3BvcHVwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixVQUFVLEVBQVksT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHNUMsTUFBTSxPQUFPLFlBQVk7SUFDdkIsWUFBb0IsUUFBa0IsRUFDbEIsY0FBOEI7UUFEOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFBRyxDQUFDO0lBRXRELGVBQWUsQ0FBQyxjQUFrQztRQUNoRCxJQUFJLFVBQTJCLENBQUM7UUFDaEMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDdkMsNkRBQTZEO1lBQzdELFlBQVk7WUFDWixVQUFVLEdBQUcsSUFBSSxlQUFlLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNoRzthQUFNO1lBQ0wsTUFBTSxRQUFRLEdBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFTLENBQUMsd0JBQXdCLENBQUM7WUFDbEYsVUFBVSxHQUFHLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzFHO1FBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUNoRSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBYyxjQUFjLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQztRQUM3QyxZQUFZLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDL0MsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs7MEdBcEJVLFlBQVk7OEdBQVosWUFBWTs0RkFBWixZQUFZO2tCQUR4QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBWRVJTSU9OIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCwgRG9tUG9ydGFsT3V0bGV0IH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IFBvcHVwQmFzZVZpZXdNb2RlbCB9IGZyb20gXCJzdXJ2ZXktY29yZVwiO1xuaW1wb3J0IHsgUG9wdXBCYXNlQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSBcIi4vcG9wdXAtY29udGFpbmVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTmdNb2R1bGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUG9wdXBTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmKSB7fVxuXG4gIGNyZWF0ZUNvbXBvbmVudChwb3B1cFZpZXdNb2RlbDogUG9wdXBCYXNlVmlld01vZGVsKTogRG9tUG9ydGFsT3V0bGV0IHtcbiAgICBsZXQgcG9ydGFsSG9zdDogRG9tUG9ydGFsT3V0bGV0O1xuICAgIGlmIChOdW1iZXIucGFyc2VJbnQoVkVSU0lPTi5tYWpvcikgPiAxOSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAgICAgLy9AdHMtaWdub3JlXG4gICAgICBwb3J0YWxIb3N0ID0gbmV3IERvbVBvcnRhbE91dGxldChwb3B1cFZpZXdNb2RlbC5jb250YWluZXIsIHRoaXMuYXBwbGljYXRpb25SZWYsIHRoaXMuaW5qZWN0b3IpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCByZXNvbHZlciA9ICh0aGlzLmluamVjdG9yLmdldChOZ01vZHVsZVJlZikgYXMgYW55KS5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI7XG4gICAgICBwb3J0YWxIb3N0ID0gbmV3IERvbVBvcnRhbE91dGxldChwb3B1cFZpZXdNb2RlbC5jb250YWluZXIsIHJlc29sdmVyLCB0aGlzLmFwcGxpY2F0aW9uUmVmLCB0aGlzLmluamVjdG9yKTtcbiAgICB9XG4gICAgY29uc3QgcG9ydGFsID0gbmV3IENvbXBvbmVudFBvcnRhbChQb3B1cEJhc2VDb250YWluZXJDb21wb25lbnQpO1xuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHBvcnRhbEhvc3QuYXR0YWNoKHBvcnRhbCk7XG4gICAgcG9wdXBWaWV3TW9kZWwuc2V0Q29tcG9uZW50RWxlbWVudCg8SFRNTEVsZW1lbnQ+cG9wdXBWaWV3TW9kZWwuY29udGFpbmVyLmNoaWxkcmVuWzBdKTtcbiAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UubW9kZWwgPSBwb3B1cFZpZXdNb2RlbDtcbiAgICBjb21wb25lbnRSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIHJldHVybiBwb3J0YWxIb3N0O1xuICB9XG59Il19
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Directive, Input } from "@angular/core";
|
|
1
|
+
import { Directive, Input, NgModuleRef } from "@angular/core";
|
|
2
2
|
import { AngularComponentFactory } from "../component-factory";
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class DynamicComponentDirective {
|
|
5
|
-
constructor(containerRef, templateRef,
|
|
5
|
+
constructor(containerRef, templateRef, injector) {
|
|
6
6
|
this.containerRef = containerRef;
|
|
7
7
|
this.templateRef = templateRef;
|
|
8
|
-
this.
|
|
8
|
+
this.injector = injector;
|
|
9
9
|
}
|
|
10
10
|
ngOnChanges(changes) {
|
|
11
11
|
var _a;
|
|
@@ -20,11 +20,10 @@ export class DynamicComponentDirective {
|
|
|
20
20
|
}
|
|
21
21
|
createComponent() {
|
|
22
22
|
this.containerRef.clear();
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.componentInstance = AngularComponentFactory.Instance.create(this.containerRef, this.component.default, this.resolver).instance;
|
|
23
|
+
const componentName = AngularComponentFactory.Instance.isComponentRegistered(this.component.name) ? this.component.name : this.component.default;
|
|
24
|
+
if (componentName) {
|
|
25
|
+
const resolver = this.injector.get(NgModuleRef).componentFactoryResolver;
|
|
26
|
+
this.componentInstance = AngularComponentFactory.Instance.create(this.containerRef, componentName, resolver).instance;
|
|
28
27
|
}
|
|
29
28
|
if (!this.componentInstance) {
|
|
30
29
|
throw new Error(`Can't create component with name: ${this.component.name} and default: ${this.component.default}`);
|
|
@@ -41,14 +40,14 @@ export class DynamicComponentDirective {
|
|
|
41
40
|
});
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
|
-
DynamicComponentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicComponentDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.
|
|
43
|
+
DynamicComponentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicComponentDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
45
44
|
DynamicComponentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: DynamicComponentDirective, selector: "[component]", inputs: { component: "component" }, usesOnChanges: true, ngImport: i0 });
|
|
46
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicComponentDirective, decorators: [{
|
|
47
46
|
type: Directive,
|
|
48
47
|
args: [{
|
|
49
48
|
selector: "[component]"
|
|
50
49
|
}]
|
|
51
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.
|
|
50
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.Injector }]; }, propDecorators: { component: [{
|
|
52
51
|
type: Input
|
|
53
52
|
}] } });
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZHluYW1pYy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsV0FBVyxFQUFxRSxNQUFNLGVBQWUsQ0FBQztBQUM3SSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFZL0QsTUFBTSxPQUFPLHlCQUF5QjtJQUNwQyxZQUFvQixZQUE4QixFQUFVLFdBQWlDLEVBQVUsUUFBa0I7UUFBckcsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQXNCO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFJLENBQUM7SUFHOUgsV0FBVyxDQUFDLE9BQXNCOztRQUNoQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM5QyxJQUFJLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLE1BQUssTUFBQSxnQkFBZ0IsQ0FBQyxhQUFhLDBDQUFFLElBQUksQ0FBQTtZQUM3RSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLGdCQUFnQixDQUFDLGFBQWEsS0FBSyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRTtZQUMvSCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDeEI7YUFBTTtZQUNMLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUNELGVBQWU7UUFDYixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFCLE1BQU0sYUFBYSxHQUFHLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDakosSUFBSSxhQUFhLEVBQUU7WUFDakIsTUFBTSxRQUFRLEdBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFTLENBQUMsd0JBQXdCLENBQUM7WUFDbEYsSUFBSSxDQUFDLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQ3ZIO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksaUJBQWlCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUNwSDthQUFNO1lBQ0wsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUNELG1CQUFtQjtRQUNqQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztRQUNqQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt1SEFoQ1UseUJBQXlCOzJHQUF6Qix5QkFBeUI7NEZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7d0pBSVUsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE5nTW9kdWxlUmVmLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmLCBJbmplY3RvciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeSB9IGZyb20gXCIuLi9jb21wb25lbnQtZmFjdG9yeVwiO1xuXG5pbnRlcmZhY2UgSUR5bmFtaWNDb21wb25lbnQge1xuICBuYW1lOiBzdHJpbmc7XG4gIGRhdGE/OiBhbnk7XG4gIGRlZmF1bHQ/OiBzdHJpbmc7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbY29tcG9uZW50XVwiXG59KVxuXG5leHBvcnQgY2xhc3MgRHluYW1pY0NvbXBvbmVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPiwgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHsgfVxuICBASW5wdXQoKSBjb21wb25lbnQhOiBJRHluYW1pY0NvbXBvbmVudDtcbiAgcHJpdmF0ZSBjb21wb25lbnRJbnN0YW5jZTogYW55O1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9uZW50Q2hhbmdlcyA9IGNoYW5nZXNbXCJjb21wb25lbnRcIl07XG4gICAgaWYgKGNvbXBvbmVudENoYW5nZXMuY3VycmVudFZhbHVlLm5hbWUgIT09IGNvbXBvbmVudENoYW5nZXMucHJldmlvdXNWYWx1ZT8ubmFtZSB8fFxuICAgICAgKGNvbXBvbmVudENoYW5nZXMuY3VycmVudFZhbHVlLm5hbWUgPT09IHVuZGVmaW5lZCAmJiBjb21wb25lbnRDaGFuZ2VzLnByZXZpb3VzVmFsdWUgPT09IHVuZGVmaW5lZCAmJiAhdGhpcy5jb21wb25lbnRJbnN0YW5jZSkpIHtcbiAgICAgIHRoaXMuY3JlYXRlQ29tcG9uZW50KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50RGF0YSgpO1xuICAgIH1cbiAgfVxuICBjcmVhdGVDb21wb25lbnQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBjb25zdCBjb21wb25lbnROYW1lID0gQW5ndWxhckNvbXBvbmVudEZhY3RvcnkuSW5zdGFuY2UuaXNDb21wb25lbnRSZWdpc3RlcmVkKHRoaXMuY29tcG9uZW50Lm5hbWUpID8gdGhpcy5jb21wb25lbnQubmFtZSA6IHRoaXMuY29tcG9uZW50LmRlZmF1bHQ7XG4gICAgaWYgKGNvbXBvbmVudE5hbWUpIHtcbiAgICAgIGNvbnN0IHJlc29sdmVyID0gKHRoaXMuaW5qZWN0b3IuZ2V0KE5nTW9kdWxlUmVmKSBhcyBhbnkpLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UgPSBBbmd1bGFyQ29tcG9uZW50RmFjdG9yeS5JbnN0YW5jZS5jcmVhdGUodGhpcy5jb250YWluZXJSZWYsIGNvbXBvbmVudE5hbWUsIHJlc29sdmVyKS5pbnN0YW5jZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudEluc3RhbmNlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbid0IGNyZWF0ZSBjb21wb25lbnQgd2l0aCBuYW1lOiAke3RoaXMuY29tcG9uZW50Lm5hbWV9IGFuZCBkZWZhdWx0OiAke3RoaXMuY29tcG9uZW50LmRlZmF1bHR9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2UuY29udGVudFRlbXBsID0gdGhpcy50ZW1wbGF0ZVJlZjtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVDb21wb25lbnREYXRhKCk7XG4gIH1cbiAgdXBkYXRlQ29tcG9uZW50RGF0YSgpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5jb21wb25lbnQuZGF0YTtcbiAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgIHRoaXMuY29tcG9uZW50SW5zdGFuY2Vba2V5XSA9IGRhdGFba2V5XTtcbiAgICB9KTtcbiAgfVxufSJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { TemplateRef, Component, ViewChild, Directive, Input, VERSION, Injectable, HostBinding, Pipe, ElementRef, HostListener, ViewContainerRef, NgModule } from '@angular/core';
|
|
2
|
+
import { TemplateRef, Component, ViewChild, NgModuleRef, Directive, Input, VERSION, Injectable, HostBinding, Pipe, ElementRef, HostListener, ViewContainerRef, NgModule } from '@angular/core';
|
|
3
3
|
import * as Survey from 'survey-core';
|
|
4
4
|
import { PopupModalManager, settings, ScrollViewModel, SvgRegistry, addIconsToThemeSet, PopupSurveyModel, LocalizableString, createPopupViewModel, Helpers, DropdownMultiSelectListModel, RendererFactory, ButtonGroupItemModel, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, ActionDropdownViewModel, SurveyProgressModel, ProgressButtonsResponsivityManager, SurveyModel } from 'survey-core';
|
|
5
5
|
import { icons } from 'survey-core/icons/iconsV1';
|
|
@@ -188,16 +188,21 @@ class AngularComponentFactory {
|
|
|
188
188
|
var componentType = this.creatorHash[elementType];
|
|
189
189
|
if (!componentType)
|
|
190
190
|
return null;
|
|
191
|
-
|
|
191
|
+
try {
|
|
192
|
+
return containerRef.createComponent(componentType);
|
|
193
|
+
}
|
|
194
|
+
catch (e) {
|
|
195
|
+
return containerRef.createComponent(resolver.resolveComponentFactory(componentType));
|
|
196
|
+
}
|
|
192
197
|
}
|
|
193
198
|
}
|
|
194
199
|
AngularComponentFactory.Instance = new AngularComponentFactory();
|
|
195
200
|
|
|
196
201
|
class DynamicComponentDirective {
|
|
197
|
-
constructor(containerRef, templateRef,
|
|
202
|
+
constructor(containerRef, templateRef, injector) {
|
|
198
203
|
this.containerRef = containerRef;
|
|
199
204
|
this.templateRef = templateRef;
|
|
200
|
-
this.
|
|
205
|
+
this.injector = injector;
|
|
201
206
|
}
|
|
202
207
|
ngOnChanges(changes) {
|
|
203
208
|
var _a;
|
|
@@ -212,11 +217,10 @@ class DynamicComponentDirective {
|
|
|
212
217
|
}
|
|
213
218
|
createComponent() {
|
|
214
219
|
this.containerRef.clear();
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
this.componentInstance = AngularComponentFactory.Instance.create(this.containerRef, this.component.default, this.resolver).instance;
|
|
220
|
+
const componentName = AngularComponentFactory.Instance.isComponentRegistered(this.component.name) ? this.component.name : this.component.default;
|
|
221
|
+
if (componentName) {
|
|
222
|
+
const resolver = this.injector.get(NgModuleRef).componentFactoryResolver;
|
|
223
|
+
this.componentInstance = AngularComponentFactory.Instance.create(this.containerRef, componentName, resolver).instance;
|
|
220
224
|
}
|
|
221
225
|
if (!this.componentInstance) {
|
|
222
226
|
throw new Error(`Can't create component with name: ${this.component.name} and default: ${this.component.default}`);
|
|
@@ -233,14 +237,14 @@ class DynamicComponentDirective {
|
|
|
233
237
|
});
|
|
234
238
|
}
|
|
235
239
|
}
|
|
236
|
-
DynamicComponentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicComponentDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.
|
|
240
|
+
DynamicComponentDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicComponentDirective, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
237
241
|
DynamicComponentDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: DynamicComponentDirective, selector: "[component]", inputs: { component: "component" }, usesOnChanges: true, ngImport: i0 });
|
|
238
242
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DynamicComponentDirective, decorators: [{
|
|
239
243
|
type: Directive,
|
|
240
244
|
args: [{
|
|
241
245
|
selector: "[component]"
|
|
242
246
|
}]
|
|
243
|
-
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.
|
|
247
|
+
}], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.Injector }]; }, propDecorators: { component: [{
|
|
244
248
|
type: Input
|
|
245
249
|
}] } });
|
|
246
250
|
|
|
@@ -423,10 +427,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
423
427
|
}] } });
|
|
424
428
|
|
|
425
429
|
class PopupService {
|
|
426
|
-
constructor(injector, applicationRef
|
|
430
|
+
constructor(injector, applicationRef) {
|
|
427
431
|
this.injector = injector;
|
|
428
432
|
this.applicationRef = applicationRef;
|
|
429
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
430
433
|
}
|
|
431
434
|
createComponent(popupViewModel) {
|
|
432
435
|
let portalHost;
|
|
@@ -436,7 +439,8 @@ class PopupService {
|
|
|
436
439
|
portalHost = new DomPortalOutlet(popupViewModel.container, this.applicationRef, this.injector);
|
|
437
440
|
}
|
|
438
441
|
else {
|
|
439
|
-
|
|
442
|
+
const resolver = this.injector.get(NgModuleRef).componentFactoryResolver;
|
|
443
|
+
portalHost = new DomPortalOutlet(popupViewModel.container, resolver, this.applicationRef, this.injector);
|
|
440
444
|
}
|
|
441
445
|
const portal = new ComponentPortal(PopupBaseContainerComponent);
|
|
442
446
|
const componentRef = portalHost.attach(portal);
|
|
@@ -446,11 +450,11 @@ class PopupService {
|
|
|
446
450
|
return portalHost;
|
|
447
451
|
}
|
|
448
452
|
}
|
|
449
|
-
PopupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupService, deps: [{ token: i0.Injector }, { token: i0.ApplicationRef }
|
|
453
|
+
PopupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupService, deps: [{ token: i0.Injector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
450
454
|
PopupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupService });
|
|
451
455
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PopupService, decorators: [{
|
|
452
456
|
type: Injectable
|
|
453
|
-
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ApplicationRef }
|
|
457
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ApplicationRef }]; } });
|
|
454
458
|
|
|
455
459
|
class ModalComponent {
|
|
456
460
|
constructor(popupService) {
|