@theseam/ui-common 0.4.6 → 0.4.8
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/framework/dashboard/dashboard-widgets/dashboard-widgets.service.mjs +6 -6
- package/esm2020/widget/public-api.mjs +4 -1
- package/fesm2015/theseam-ui-common-framework.mjs +5 -5
- package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2015/theseam-ui-common-widget.mjs +96 -96
- package/fesm2015/theseam-ui-common-widget.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-framework.mjs +5 -5
- package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2020/theseam-ui-common-widget.mjs +94 -94
- package/fesm2020/theseam-ui-common-widget.mjs.map +1 -1
- package/package.json +1 -1
- package/widget/public-api.d.ts +3 -0
|
@@ -77,10 +77,10 @@ export class DashboardWidgetsService {
|
|
|
77
77
|
})));
|
|
78
78
|
}
|
|
79
79
|
createWidgetPortal(def, vcr) {
|
|
80
|
+
const injector = Injector.create({ providers: [
|
|
81
|
+
{ provide: THESEAM_WIDGET_DATA, useValue: { widgetId: def.widgetId } }
|
|
82
|
+
], parent: this._viewContainerRefSubject.value?.injector });
|
|
80
83
|
if (typeof def.component === 'string') {
|
|
81
|
-
const injector = Injector.create({ providers: [
|
|
82
|
-
{ provide: THESEAM_WIDGET_DATA, useValue: { widgetId: def.widgetId } }
|
|
83
|
-
], parent: this._viewContainerRefSubject.value?.injector });
|
|
84
84
|
return this._dynamicComponentLoaderModule
|
|
85
85
|
.getComponentFactory(def.component)
|
|
86
86
|
.pipe(map(componentFactory => {
|
|
@@ -90,8 +90,8 @@ export class DashboardWidgetsService {
|
|
|
90
90
|
}), take(1));
|
|
91
91
|
}
|
|
92
92
|
return def.componentFactoryResolver
|
|
93
|
-
? of(new ComponentPortal(def.component, vcr,
|
|
94
|
-
: of(new ComponentPortal(def.component, vcr));
|
|
93
|
+
? of(new ComponentPortal(def.component, vcr, injector, def.componentFactoryResolver))
|
|
94
|
+
: of(new ComponentPortal(def.component, vcr, injector));
|
|
95
95
|
}
|
|
96
96
|
updateOrder() {
|
|
97
97
|
return this.widgetColumns$
|
|
@@ -175,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
175
175
|
providedIn: 'root'
|
|
176
176
|
}]
|
|
177
177
|
}], ctorParameters: function () { return [{ type: i1.TheSeamDynamicComponentLoader }, { type: i2.DashboardWidgetsPreferencesService }]; } });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXdpZGdldHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvZGFzaGJvYXJkL2Rhc2hib2FyZC13aWRnZXRzL2Rhc2hib2FyZC13aWRnZXRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUE7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUd6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQVM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTs7OztBQUsvRCxNQUFNLE9BQU8sdUJBQXVCO0lBU2xDLElBQUksT0FBTyxLQUFpQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUN4RSxJQUFJLE9BQU8sQ0FBQyxLQUFpQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUc1RSxJQUFJLFVBQVUsS0FBYSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUMxRCxJQUFJLFVBQVUsQ0FBQyxLQUFhO1FBQzFCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQ3BDLElBQUks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QUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3hELElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztnQkFDbEMsS0FBSzthQUNOLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxFQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FDakIsQ0FBQTtJQUNILENBQUM7O29IQXJPVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJ1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGlzRGV2TW9kZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGF1ZGl0VGltZSwgbWFwLCBtYXBUbywgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IFRoZVNlYW1EeW5hbWljQ29tcG9uZW50TG9hZGVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2R5bmFtaWMtY29tcG9uZW50LWxvYWRlcidcbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHtcbiAgSURhc2hib2FyZFdpZGdldEl0ZW1MYXlvdXRQcmVmZXJlbmNlLFxuICBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZCxcbiAgSURhc2hib2FyZFdpZGdldHNJdGVtLFxuICBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1EZWZcbn0gZnJvbSAnLi9kYXNoYm9hcmQtd2lkZ2V0cy1pdGVtJ1xuaW1wb3J0IHsgRGFzaGJvYXJkV2lkZ2V0c1ByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4vZGFzaGJvYXJkLXdpZGdldHMtcHJlZmVyZW5jZXMuc2VydmljZSdcbmltcG9ydCB7IFRIRVNFQU1fV0lER0VUX0RBVEEgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vd2lkZ2V0J1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRXaWRnZXRzU2VydmljZSB7XG5cbiAgcHVibGljIHJlYWRvbmx5IHByZWZlcmVuY2VLZXk6IHN0cmluZyA9ICdkYXRhdGFibGUtd2lkZ2V0cydcblxuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdE51bUNvbHVtbnM6IG51bWJlciA9IDNcblxuICAvKiogVXNlZCBmb3Igb3BlcmF0aW9ucywgc3VjaCBhcyAnYWRkV2lkZ2V0JywgaWYgdGhlIGNvbHVtbiBpcyBub3Qgc3BlY2lmaWVkLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdENvbHVtbjogbnVtYmVyID0gMFxuXG4gIGdldCB3aWRnZXRzKCk6IElEYXNoYm9hcmRXaWRnZXRzSXRlbURlZltdIHsgcmV0dXJuIHRoaXMuX3dpZGdldHMudmFsdWUgfVxuICBzZXQgd2lkZ2V0cyh2YWx1ZTogSURhc2hib2FyZFdpZGdldHNJdGVtRGVmW10pIHsgdGhpcy5fd2lkZ2V0cy5uZXh0KHZhbHVlKSB9XG4gIHByaXZhdGUgX3dpZGdldHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElEYXNoYm9hcmRXaWRnZXRzSXRlbURlZltdPihbXSlcblxuICBnZXQgbnVtQ29sdW1ucygpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fbnVtQ29sdW1ucy52YWx1ZSB9XG4gIHNldCBudW1Db2x1bW5zKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX251bUNvbHVtbnMudmFsdWUpIHtcbiAgICAgIHRoaXMuX251bUNvbHVtbnMubmV4dCh2YWx1ZSlcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfbnVtQ29sdW1ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPih0aGlzLmRlZmF1bHROdW1Db2x1bW5zKVxuXG4gIHB1YmxpYyByZWFkb25seSBudW1Db2x1bW5zJDogT2JzZXJ2YWJsZTxudW1iZXI+XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRJdGVtcyQ6IE9ic2VydmFibGU8SURhc2hib2FyZFdpZGdldHNJdGVtW10+XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRDb2x1bW5zJDogT2JzZXJ2YWJsZTxJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZFtdPlxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWZTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZHluYW1pY0NvbXBvbmVudExvYWRlck1vZHVsZTogVGhlU2VhbUR5bmFtaWNDb21wb25lbnRMb2FkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcHJlZmVyZW5jZXM6IERhc2hib2FyZFdpZGdldHNQcmVmZXJlbmNlc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5udW1Db2x1bW5zJCA9IHRoaXMuX251bUNvbHVtbnMuYXNPYnNlcnZhYmxlKClcblxuICAgIC8vIFdpZGdldCBpdGVtcyB3aXRob3V0IHByZWZlcmVuY2VzXG4gICAgY29uc3QgX3dpZGdldEl0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoWyB0aGlzLl93aWRnZXRzLCB0aGlzLl92aWV3Q29udGFpbmVyUmVmU3ViamVjdCBdKVxuICAgICAgLnBpcGUoc3dpdGNoTWFwKChbIGRlZnMsIHZjciBdKSA9PiB0aGlzLmNyZWF0ZVdpZGdldEl0ZW1zKGRlZnMsIHZjcikpKVxuXG4gICAgLy8gV2lkZ2V0IGl0ZW1zIHdpdGggcHJlZmVyZW5jZXNcbiAgICB0aGlzLndpZGdldEl0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoWyBfd2lkZ2V0SXRlbXMkLCB0aGlzLm51bUNvbHVtbnMkIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgLy8gV2FpdCB1bnRpbCB0aGUgY3VycmVudCB0aWNrIGlzIGRvbmUsIGluY2FzZSBib3RoIHRoZSB3aWRnZXRzIGFuZFxuICAgICAgICAvLyBudW1iZXIgb2YgY29sdW1ucyBhcmUgc2V0IGR1cnJpbmcgdGhlIHNhbWUgdGljay4gV2l0aG91dCB0aGUgYXVkaXQsXG4gICAgICAgIC8vIHRoaXMgd291bGQgZ2V0IGNhbGxlZCB0d2ljZSB3aGVuIHRoZSBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWQgd2l0aFxuICAgICAgICAvLyBib3RoIGlucHV0cyBzZXQgb25lIGFmdGVyIHRoZSBvdGhlciBpbmRpdmlkdWFsbHkuXG4gICAgICAgIGF1ZGl0VGltZSgwKSxcbiAgICAgICAgc3dpdGNoTWFwKChbIGl0ZW1zLCBudW1Db2x1bW5zIF0pID0+XG4gICAgICAgICAgdGhpcy5fcHJlZmVyZW5jZXMuc2VsZWN0TGF5b3V0KHRoaXMucHJlZmVyZW5jZUtleSwgdGhpcy5fbGF5b3V0TmFtZShudW1Db2x1bW5zKSkucGlwZShcbiAgICAgICAgICAgIG1hcChsYXlvdXQgPT4gbGF5b3V0ID8gdGhpcy53aXRoTGF5b3V0UHJlZmVyZW5jZXMoaXRlbXMsIGxheW91dCkgOiBpdGVtcylcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSlcbiAgICAgIClcblxuICAgIHRoaXMud2lkZ2V0Q29sdW1ucyQgPSB0aGlzLndpZGdldEl0ZW1zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChpdGVtcyA9PiB0aGlzLnRvQ29sdW1uUmVjb3JkcyhpdGVtcykpLFxuICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgICApXG4gIH1cblxuICBwcml2YXRlIF9sYXlvdXROYW1lKG51bUNvbHVtbnM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjb2x1bW5zLSR7bnVtQ29sdW1uc31gXG4gIH1cblxuICBwdWJsaWMgc2V0Vmlld0NvbnRhaW5lclJlZih2Y3I6IFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmU3ViamVjdC5uZXh0KHZjcilcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVXaWRnZXRJdGVtcyhkZWZzOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1EZWZbXSwgdmNyPzogVmlld0NvbnRhaW5lclJlZik6IE9ic2VydmFibGU8SURhc2hib2FyZFdpZGdldHNJdGVtW10+IHtcbiAgICBjb25zdCBfY3JlYXRlT2JzZXJ2YWJsZXMgPSAoZGVmcyB8fCBbXSkubWFwKGQgPT4gdGhpcy5jcmVhdGVXaWRnZXRJdGVtKGQsIHZjcikpXG4gICAgY29uc3QgaXRlbXMkID0gX2NyZWF0ZU9ic2VydmFibGVzLmxlbmd0aCA+IDAgPyBjb21iaW5lTGF0ZXN0KF9jcmVhdGVPYnNlcnZhYmxlcykgOiBvZihbXSlcbiAgICByZXR1cm4gaXRlbXMkLnBpcGUoXG4gICAgICBtYXAoaXRlbXMgPT4gaXRlbXMuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCkpLFxuICAgICAgdGFwKGl0ZW1zID0+IHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgY29uc3QgaWRzOiBzdHJpbmdbXSA9IGl0ZW1zLm1hcCh2ID0+IHYud2lkZ2V0SWQpXG4gICAgICAgICAgaWYgKChuZXcgU2V0KGlkcykpLnNpemUgIT09IGlkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFtEYXNoYm9hcmRXaWRnZXRzU2VydmljZV0gRHVwbGljYXRlIHdpZGdldCdzIHdpdGggdGhlIHNhbWUgJ3dpZGdldElkJyBmb3VuZC5gKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwdWJsaWMgY3JlYXRlV2lkZ2V0SXRlbShkZWY6IElEYXNoYm9hcmRXaWRnZXRzSXRlbURlZiwgdmNyPzogVmlld0NvbnRhaW5lclJlZik6IE9ic2VydmFibGU8SURhc2hib2FyZFdpZGdldHNJdGVtIHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCFkZWYud2lkZ2V0SWQgfHwgdHlwZW9mIGRlZi53aWRnZXRJZCAhPT0gJ3N0cmluZycgfHwgZGVmLndpZGdldElkLmxlbmd0aCA8IDEpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLndhcm4oYFtEYXNoYm9hcmRXaWRnZXRzU2VydmljZV0gV2lkZ2V0IGlnbm9yZWQuIEFsbCB3aWRnZXRzIG11c3QgaGF2ZSBhICd3aWRnZXRJZCcuYCwgZGVmKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVXaWRnZXRQb3J0YWwoZGVmLCB2Y3IpLnBpcGUoXG4gICAgICBtYXAocG9ydGFsID0+ICh7XG4gICAgICAgIC4uLmRlZixcbiAgICAgICAgY29sOiBkZWYuY29sIHx8IHRoaXMuZGVmYXVsdENvbHVtbixcbiAgICAgICAgb3JkZXI6IGRlZi5vcmRlciB8fCAwLFxuICAgICAgICBwb3J0YWwsXG4gICAgICAgIF9faXRlbURlZjogZGVmXG4gICAgICB9KSlcbiAgICApXG4gIH1cblxuICBwdWJsaWMgY3JlYXRlV2lkZ2V0UG9ydGFsKGRlZjogSURhc2hib2FyZFdpZGdldHNJdGVtRGVmLCB2Y3I/OiBWaWV3Q29udGFpbmVyUmVmKTogT2JzZXJ2YWJsZTxDb21wb25lbnRQb3J0YWw8YW55Pj4ge1xuICAgIGlmICh0eXBlb2YgZGVmLmNvbXBvbmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHsgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogVEhFU0VBTV9XSURHRVRfREFUQSwgdXNlVmFsdWU6IHsgd2lkZ2V0SWQ6IGRlZi53aWRnZXRJZCB9IH1cbiAgICAgIF0sIHBhcmVudDogdGhpcy5fdmlld0NvbnRhaW5lclJlZlN1YmplY3QudmFsdWU/LmluamVjdG9yIH0pXG4gICAgICByZXR1cm4gdGhpcy5fZHluYW1pY0NvbXBvbmVudExvYWRlck1vZHVsZVxuICAgICAgICAuZ2V0Q29tcG9uZW50RmFjdG9yeShkZWYuY29tcG9uZW50KVxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoY29tcG9uZW50RmFjdG9yeSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IENvbXBvbmVudFBvcnRhbChcbiAgICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yeS5jb21wb25lbnRUeXBlLFxuICAgICAgICAgICAgICB2Y3IsXG4gICAgICAgICAgICAgIC8vIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgaW5qZWN0b3IsXG4gICAgICAgICAgICAgIChjb21wb25lbnRGYWN0b3J5IGFzIGFueSAvKiBDb21wb25lbnRGYWN0b3J5Qm91bmRUb01vZHVsZSAqLykubmdNb2R1bGUuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSksXG4gICAgICAgICAgdGFrZSgxKVxuICAgICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZi5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgID8gb2YobmV3IENvbXBvbmVudFBvcnRhbChkZWYuY29tcG9uZW50LCB2Y3IsIHVuZGVmaW5lZCwgZGVmLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikpXG4gICAgICA6IG9mKG5ldyBDb21wb25lbnRQb3J0YWwoZGVmLmNvbXBvbmVudCwgdmNyKSlcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVPcmRlcigpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy53aWRnZXRDb2x1bW5zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIHRhcChjb2x1bW5zID0+IGNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICAgIGxldCBpID0gMFxuICAgICAgICAgIGNvbC5pdGVtcy5mb3JFYWNoKGl0bSA9PiBpdG0ub3JkZXIgPSBpKyspXG4gICAgICAgIH0pKSxcbiAgICAgICAgbWFwVG8odW5kZWZpbmVkKVxuICAgICAgKVxuICB9XG5cbiAgcHVibGljIHRvQ29sdW1uUmVjb3JkcyhpdGVtczogSURhc2hib2FyZFdpZGdldHNJdGVtW10pOiBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZFtdIHtcbiAgICBsZXQgY29sdW1uczogSURhc2hib2FyZFdpZGdldHNDb2x1bW5SZWNvcmRbXSA9IFtdXG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubnVtQ29sdW1uczsgaSsrKSB7XG4gICAgICBjb2x1bW5zLnB1c2goeyBjb2x1bW46IGksIGl0ZW1zOiBbXSB9KVxuICAgIH1cblxuICAgIGNvbnN0IGNvbE5vdEZvdW5kOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1bXSA9IFtdXG5cbiAgICAvLyBEaXN0cmlidXRlIGl0ZW1zIGludG8gY29sdW1uc1xuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgY29uc3QgY29sOiBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZCB8IHVuZGVmaW5lZCA9IGNvbHVtbnMuZmluZChjID0+IGMuY29sdW1uID09PSBpdGVtLmNvbClcbiAgICAgIGlmICghY29sKSB7XG4gICAgICAgIC8vIGNvbHVtbnMucHVzaCh7IGNvbHVtbjogaXRlbS5jb2wsIGl0ZW1zOiBbIGl0ZW0gXSB9KVxuICAgICAgICAvLyBpZiAoaXRlbS5jb2wgPCAwKSB7XG4gICAgICAgIC8vICAgY29uc3QgY29sMDogSURhc2hib2FyZFdpZGdldHNDb2x1bW5SZWNvcmQgfCB1bmRlZmluZWQgPSBjb2x1bW5zLmZpbmQoYyA9PiBjLmNvbHVtbiA9PT0gMClcbiAgICAgICAgLy8gICBpZiAoY29sMCkge1xuICAgICAgICAvLyAgICAgY29sMC5pdGVtcy5wdXNoKGl0ZW0pXG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyB9IGVsc2UgaWYgKGl0ZW0uY29sID4gdGhpcy5udW1Db2x1bW5zIC0gMSkge1xuICAgICAgICAvLyAgIGNvbnN0IGNvbE1heDogSURhc2hib2FyZFdpZGdldHNDb2x1bW5SZWNvcmQgfCB1bmRlZmluZWQgPSBjb2x1bW5zLmZpbmQoYyA9PiBjLmNvbHVtbiA9PT0gdGhpcy5udW1Db2x1bW5zIC0gMSlcbiAgICAgICAgLy8gICBpZiAoY29sTWF4KSB7XG4gICAgICAgIC8vICAgICBjb2xNYXguaXRlbXMucHVzaChpdGVtKVxuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gfVxuICAgICAgICBjb2xOb3RGb3VuZC5wdXNoKGl0ZW0pXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2wuaXRlbXMucHVzaChpdGVtKVxuICAgICAgfVxuICAgIH1cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sTm90Rm91bmQubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBjb2xOb3RGb3VuZFtpXVxuXG4gICAgICBjb25zdCBjb2w6IElEYXNoYm9hcmRXaWRnZXRzQ29sdW1uUmVjb3JkIHwgdW5kZWZpbmVkID0gY29sdW1uc1xuICAgICAgICAuZmluZChjID0+IGMuY29sdW1uID09PSBpICUgdGhpcy5udW1Db2x1bW5zKVxuXG4gICAgICBpZiAoY29sKSB7XG4gICAgICAgIGNvbC5pdGVtcy5wdXNoKGl0ZW0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU29ydCBjb2x1bW5zXG4gICAgY29sdW1ucyA9IGNvbHVtbnMuc29ydCgoYSwgYikgPT4gYS5jb2x1bW4gLSBiLmNvbHVtbilcblxuICAgIC8vIFNvcnQgY29sdW1ucyBpdGVtc1xuICAgIGNvbHVtbnMuZm9yRWFjaChjb2wgPT4gY29sLml0ZW1zLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKSlcblxuICAgIHJldHVybiBjb2x1bW5zXG4gIH1cblxuICBwdWJsaWMgd2l0aExheW91dFByZWZlcmVuY2VzKGl0ZW1zOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1bXSwgbGF5b3V0OiBJRGFzaGJvYXJkV2lkZ2V0SXRlbUxheW91dFByZWZlcmVuY2UpOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1bXSB7XG4gICAgY29uc3QgX2l0ZW1zOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1bXSA9IFtdXG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGNvbnN0IGl0ZW1QcmVmID0gbGF5b3V0Lml0ZW1zLmZpbmQoeCA9PiB4LndpZGdldElkID09PSBpdGVtLndpZGdldElkKVxuICAgICAgX2l0ZW1zLnB1c2goe1xuICAgICAgICAuLi5pdGVtLFxuICAgICAgICAuLi4oaXRlbVByZWYgfHwge30pXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBfaXRlbXNcbiAgfVxuXG4gIHB1YmxpYyBzYXZlUHJlZmVyZW5jZXMoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgLy8gUmlnaHQgbm93IHRoZSBpdGVtcyBhcmUgbW92ZWQgYmV0d2VlbiB0aGUgY29sdW1uIHJlY29yZCBhcnJheXMsIGJ1dCB0aGVcbiAgICAvLyAnY29sJyBwcm9wIGlzIG5vdCB1cGRhdGVkLCBzbyBpdCBpcyBtYXBwZWQgdG8gY29ycmVjdGVkIGl0ZW1zIGhlcmUgZnJvbVxuICAgIC8vIHRoZSBjb2x1bW4gcmVjb3Jkcy5cbiAgICBjb25zdCBpdGVtcyQgPSB0aGlzLndpZGdldENvbHVtbnMkLnBpcGUoXG4gICAgICBtYXAoY29sdW1ucyA9PiAoW10gYXMgSURhc2hib2FyZFdpZGdldHNJdGVtW10pXG4gICAgICAgIC5jb25jYXQoLi4uKGNvbHVtbnMubWFwKGMgPT4gYy5pdGVtcy5tYXAoaXRtID0+ICh7IC4uLml0bSwgY29sOiBjLmNvbHVtbiB9KSkpKSlcbiAgICAgICksXG4gICAgKVxuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoWyBpdGVtcyQsIHRoaXMubnVtQ29sdW1ucyQgXSkucGlwZShcbiAgICAgIGF1ZGl0VGltZSgwKSxcbiAgICAgIHRha2UoMSksXG4gICAgICBzd2l0Y2hNYXAoKFsgaXRlbXMsIG51bUNvbHVtbnMgXSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJlZmVyZW5jZXMudXBkYXRlTGF5b3V0KHRoaXMucHJlZmVyZW5jZUtleSwge1xuICAgICAgICAgIG5hbWU6IHRoaXMuX2xheW91dE5hbWUobnVtQ29sdW1ucyksXG4gICAgICAgICAgaXRlbXNcbiAgICAgICAgfSlcbiAgICAgIH0pLFxuICAgICAgbWFwVG8odW5kZWZpbmVkKVxuICAgIClcbiAgfVxuXG59XG4iXX0=
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLXdpZGdldHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvZGFzaGJvYXJkL2Rhc2hib2FyZC13aWRnZXRzL2Rhc2hib2FyZC13aWRnZXRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUE7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUd6RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQVM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTs7OztBQUsvRCxNQUFNLE9BQU8sdUJBQXVCO0lBU2xDLElBQUksT0FBTyxLQUFpQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUN4RSxJQUFJLE9BQU8sQ0FBQyxLQUFpQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUc1RSxJQUFJLFVBQVUsS0FBYSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFBLENBQUMsQ0FBQztJQUMxRCxJQUFJLFVBQVUsQ0FBQyxLQUFhO1FBQzFCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFO1lBQ3BDLElBQUks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QUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ3hELElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztnQkFDbEMsS0FBSzthQUNOLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxFQUNGLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FDakIsQ0FBQTtJQUNILENBQUM7O29IQXRPVSx1QkFBdUI7d0hBQXZCLHVCQUF1QixjQUZ0QixNQUFNOzJGQUVQLHVCQUF1QjtrQkFIbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJ1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGlzRGV2TW9kZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGF1ZGl0VGltZSwgbWFwLCBtYXBUbywgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCwgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5cbmltcG9ydCB7IFRoZVNlYW1EeW5hbWljQ29tcG9uZW50TG9hZGVyIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL2R5bmFtaWMtY29tcG9uZW50LWxvYWRlcidcbmltcG9ydCB7IG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHtcbiAgSURhc2hib2FyZFdpZGdldEl0ZW1MYXlvdXRQcmVmZXJlbmNlLFxuICBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZCxcbiAgSURhc2hib2FyZFdpZGdldHNJdGVtLFxuICBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1EZWZcbn0gZnJvbSAnLi9kYXNoYm9hcmQtd2lkZ2V0cy1pdGVtJ1xuaW1wb3J0IHsgRGFzaGJvYXJkV2lkZ2V0c1ByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4vZGFzaGJvYXJkLXdpZGdldHMtcHJlZmVyZW5jZXMuc2VydmljZSdcbmltcG9ydCB7IFRIRVNFQU1fV0lER0VUX0RBVEEgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vd2lkZ2V0J1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEYXNoYm9hcmRXaWRnZXRzU2VydmljZSB7XG5cbiAgcHVibGljIHJlYWRvbmx5IHByZWZlcmVuY2VLZXk6IHN0cmluZyA9ICdkYXRhdGFibGUtd2lkZ2V0cydcblxuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdE51bUNvbHVtbnM6IG51bWJlciA9IDNcblxuICAvKiogVXNlZCBmb3Igb3BlcmF0aW9ucywgc3VjaCBhcyAnYWRkV2lkZ2V0JywgaWYgdGhlIGNvbHVtbiBpcyBub3Qgc3BlY2lmaWVkLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdENvbHVtbjogbnVtYmVyID0gMFxuXG4gIGdldCB3aWRnZXRzKCk6IElEYXNoYm9hcmRXaWRnZXRzSXRlbURlZltdIHsgcmV0dXJuIHRoaXMuX3dpZGdldHMudmFsdWUgfVxuICBzZXQgd2lkZ2V0cyh2YWx1ZTogSURhc2hib2FyZFdpZGdldHNJdGVtRGVmW10pIHsgdGhpcy5fd2lkZ2V0cy5uZXh0KHZhbHVlKSB9XG4gIHByaXZhdGUgX3dpZGdldHMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElEYXNoYm9hcmRXaWRnZXRzSXRlbURlZltdPihbXSlcblxuICBnZXQgbnVtQ29sdW1ucygpOiBudW1iZXIgeyByZXR1cm4gdGhpcy5fbnVtQ29sdW1ucy52YWx1ZSB9XG4gIHNldCBudW1Db2x1bW5zKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX251bUNvbHVtbnMudmFsdWUpIHtcbiAgICAgIHRoaXMuX251bUNvbHVtbnMubmV4dCh2YWx1ZSlcbiAgICB9XG4gIH1cbiAgcHJpdmF0ZSBfbnVtQ29sdW1ucyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPih0aGlzLmRlZmF1bHROdW1Db2x1bW5zKVxuXG4gIHB1YmxpYyByZWFkb25seSBudW1Db2x1bW5zJDogT2JzZXJ2YWJsZTxudW1iZXI+XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRJdGVtcyQ6IE9ic2VydmFibGU8SURhc2hib2FyZFdpZGdldHNJdGVtW10+XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRDb2x1bW5zJDogT2JzZXJ2YWJsZTxJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZFtdPlxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdDb250YWluZXJSZWZTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZHluYW1pY0NvbXBvbmVudExvYWRlck1vZHVsZTogVGhlU2VhbUR5bmFtaWNDb21wb25lbnRMb2FkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcHJlZmVyZW5jZXM6IERhc2hib2FyZFdpZGdldHNQcmVmZXJlbmNlc1NlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5udW1Db2x1bW5zJCA9IHRoaXMuX251bUNvbHVtbnMuYXNPYnNlcnZhYmxlKClcblxuICAgIC8vIFdpZGdldCBpdGVtcyB3aXRob3V0IHByZWZlcmVuY2VzXG4gICAgY29uc3QgX3dpZGdldEl0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoWyB0aGlzLl93aWRnZXRzLCB0aGlzLl92aWV3Q29udGFpbmVyUmVmU3ViamVjdCBdKVxuICAgICAgLnBpcGUoc3dpdGNoTWFwKChbIGRlZnMsIHZjciBdKSA9PiB0aGlzLmNyZWF0ZVdpZGdldEl0ZW1zKGRlZnMsIHZjcikpKVxuXG4gICAgLy8gV2lkZ2V0IGl0ZW1zIHdpdGggcHJlZmVyZW5jZXNcbiAgICB0aGlzLndpZGdldEl0ZW1zJCA9IGNvbWJpbmVMYXRlc3QoWyBfd2lkZ2V0SXRlbXMkLCB0aGlzLm51bUNvbHVtbnMkIF0pXG4gICAgICAucGlwZShcbiAgICAgICAgLy8gV2FpdCB1bnRpbCB0aGUgY3VycmVudCB0aWNrIGlzIGRvbmUsIGluY2FzZSBib3RoIHRoZSB3aWRnZXRzIGFuZFxuICAgICAgICAvLyBudW1iZXIgb2YgY29sdW1ucyBhcmUgc2V0IGR1cnJpbmcgdGhlIHNhbWUgdGljay4gV2l0aG91dCB0aGUgYXVkaXQsXG4gICAgICAgIC8vIHRoaXMgd291bGQgZ2V0IGNhbGxlZCB0d2ljZSB3aGVuIHRoZSBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWQgd2l0aFxuICAgICAgICAvLyBib3RoIGlucHV0cyBzZXQgb25lIGFmdGVyIHRoZSBvdGhlciBpbmRpdmlkdWFsbHkuXG4gICAgICAgIGF1ZGl0VGltZSgwKSxcbiAgICAgICAgc3dpdGNoTWFwKChbIGl0ZW1zLCBudW1Db2x1bW5zIF0pID0+XG4gICAgICAgICAgdGhpcy5fcHJlZmVyZW5jZXMuc2VsZWN0TGF5b3V0KHRoaXMucHJlZmVyZW5jZUtleSwgdGhpcy5fbGF5b3V0TmFtZShudW1Db2x1bW5zKSkucGlwZShcbiAgICAgICAgICAgIG1hcChsYXlvdXQgPT4gbGF5b3V0ID8gdGhpcy53aXRoTGF5b3V0UHJlZmVyZW5jZXMoaXRlbXMsIGxheW91dCkgOiBpdGVtcylcbiAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSlcbiAgICAgIClcblxuICAgIHRoaXMud2lkZ2V0Q29sdW1ucyQgPSB0aGlzLndpZGdldEl0ZW1zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChpdGVtcyA9PiB0aGlzLnRvQ29sdW1uUmVjb3JkcyhpdGVtcykpLFxuICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgICApXG4gIH1cblxuICBwcml2YXRlIF9sYXlvdXROYW1lKG51bUNvbHVtbnM6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBjb2x1bW5zLSR7bnVtQ29sdW1uc31gXG4gIH1cblxuICBwdWJsaWMgc2V0Vmlld0NvbnRhaW5lclJlZih2Y3I6IFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmU3ViamVjdC5uZXh0KHZjcilcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVXaWRnZXRJdGVtcyhkZWZzOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1EZWZbXSwgdmNyPzogVmlld0NvbnRhaW5lclJlZik6IE9ic2VydmFibGU8SURhc2hib2FyZFdpZGdldHNJdGVtW10+IHtcbiAgICBjb25zdCBfY3JlYXRlT2JzZXJ2YWJsZXMgPSAoZGVmcyB8fCBbXSkubWFwKGQgPT4gdGhpcy5jcmVhdGVXaWRnZXRJdGVtKGQsIHZjcikpXG4gICAgY29uc3QgaXRlbXMkID0gX2NyZWF0ZU9ic2VydmFibGVzLmxlbmd0aCA+IDAgPyBjb21iaW5lTGF0ZXN0KF9jcmVhdGVPYnNlcnZhYmxlcykgOiBvZihbXSlcbiAgICByZXR1cm4gaXRlbXMkLnBpcGUoXG4gICAgICBtYXAoaXRlbXMgPT4gaXRlbXMuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCkpLFxuICAgICAgdGFwKGl0ZW1zID0+IHtcbiAgICAgICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICAgICAgY29uc3QgaWRzOiBzdHJpbmdbXSA9IGl0ZW1zLm1hcCh2ID0+IHYud2lkZ2V0SWQpXG4gICAgICAgICAgaWYgKChuZXcgU2V0KGlkcykpLnNpemUgIT09IGlkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYFtEYXNoYm9hcmRXaWRnZXRzU2VydmljZV0gRHVwbGljYXRlIHdpZGdldCdzIHdpdGggdGhlIHNhbWUgJ3dpZGdldElkJyBmb3VuZC5gKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApXG4gIH1cblxuICBwdWJsaWMgY3JlYXRlV2lkZ2V0SXRlbShkZWY6IElEYXNoYm9hcmRXaWRnZXRzSXRlbURlZiwgdmNyPzogVmlld0NvbnRhaW5lclJlZik6IE9ic2VydmFibGU8SURhc2hib2FyZFdpZGdldHNJdGVtIHwgdW5kZWZpbmVkPiB7XG4gICAgaWYgKCFkZWYud2lkZ2V0SWQgfHwgdHlwZW9mIGRlZi53aWRnZXRJZCAhPT0gJ3N0cmluZycgfHwgZGVmLndpZGdldElkLmxlbmd0aCA8IDEpIHtcbiAgICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLndhcm4oYFtEYXNoYm9hcmRXaWRnZXRzU2VydmljZV0gV2lkZ2V0IGlnbm9yZWQuIEFsbCB3aWRnZXRzIG11c3QgaGF2ZSBhICd3aWRnZXRJZCcuYCwgZGVmKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZClcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jcmVhdGVXaWRnZXRQb3J0YWwoZGVmLCB2Y3IpLnBpcGUoXG4gICAgICBtYXAocG9ydGFsID0+ICh7XG4gICAgICAgIC4uLmRlZixcbiAgICAgICAgY29sOiBkZWYuY29sIHx8IHRoaXMuZGVmYXVsdENvbHVtbixcbiAgICAgICAgb3JkZXI6IGRlZi5vcmRlciB8fCAwLFxuICAgICAgICBwb3J0YWwsXG4gICAgICAgIF9faXRlbURlZjogZGVmXG4gICAgICB9KSlcbiAgICApXG4gIH1cblxuICBwdWJsaWMgY3JlYXRlV2lkZ2V0UG9ydGFsKGRlZjogSURhc2hib2FyZFdpZGdldHNJdGVtRGVmLCB2Y3I/OiBWaWV3Q29udGFpbmVyUmVmKTogT2JzZXJ2YWJsZTxDb21wb25lbnRQb3J0YWw8YW55Pj4ge1xuICAgIGNvbnN0IGluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHsgcHJvdmlkZXJzOiBbXG4gICAgICB7IHByb3ZpZGU6IFRIRVNFQU1fV0lER0VUX0RBVEEsIHVzZVZhbHVlOiB7IHdpZGdldElkOiBkZWYud2lkZ2V0SWQgfSB9XG4gICAgXSwgcGFyZW50OiB0aGlzLl92aWV3Q29udGFpbmVyUmVmU3ViamVjdC52YWx1ZT8uaW5qZWN0b3IgfSlcblxuICAgIGlmICh0eXBlb2YgZGVmLmNvbXBvbmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB0aGlzLl9keW5hbWljQ29tcG9uZW50TG9hZGVyTW9kdWxlXG4gICAgICAgIC5nZXRDb21wb25lbnRGYWN0b3J5KGRlZi5jb21wb25lbnQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcChjb21wb25lbnRGYWN0b3J5ID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgQ29tcG9uZW50UG9ydGFsKFxuICAgICAgICAgICAgICBjb21wb25lbnRGYWN0b3J5LmNvbXBvbmVudFR5cGUsXG4gICAgICAgICAgICAgIHZjcixcbiAgICAgICAgICAgICAgLy8gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICBpbmplY3RvcixcbiAgICAgICAgICAgICAgKGNvbXBvbmVudEZhY3RvcnkgYXMgYW55IC8qIENvbXBvbmVudEZhY3RvcnlCb3VuZFRvTW9kdWxlICovKS5uZ01vZHVsZS5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB0YWtlKDEpXG4gICAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgPyBvZihuZXcgQ29tcG9uZW50UG9ydGFsKGRlZi5jb21wb25lbnQsIHZjciwgaW5qZWN0b3IsIGRlZi5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpKVxuICAgICAgOiBvZihuZXcgQ29tcG9uZW50UG9ydGFsKGRlZi5jb21wb25lbnQsIHZjciwgaW5qZWN0b3IpKVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZU9yZGVyKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLndpZGdldENvbHVtbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgdGFwKGNvbHVtbnMgPT4gY29sdW1ucy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICAgICAgbGV0IGkgPSAwXG4gICAgICAgICAgY29sLml0ZW1zLmZvckVhY2goaXRtID0+IGl0bS5vcmRlciA9IGkrKylcbiAgICAgICAgfSkpLFxuICAgICAgICBtYXBUbyh1bmRlZmluZWQpXG4gICAgICApXG4gIH1cblxuICBwdWJsaWMgdG9Db2x1bW5SZWNvcmRzKGl0ZW1zOiBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1bXSk6IElEYXNoYm9hcmRXaWRnZXRzQ29sdW1uUmVjb3JkW10ge1xuICAgIGxldCBjb2x1bW5zOiBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZFtdID0gW11cblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5udW1Db2x1bW5zOyBpKyspIHtcbiAgICAgIGNvbHVtbnMucHVzaCh7IGNvbHVtbjogaSwgaXRlbXM6IFtdIH0pXG4gICAgfVxuXG4gICAgY29uc3QgY29sTm90Rm91bmQ6IElEYXNoYm9hcmRXaWRnZXRzSXRlbVtdID0gW11cblxuICAgIC8vIERpc3RyaWJ1dGUgaXRlbXMgaW50byBjb2x1bW5zXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBjb25zdCBjb2w6IElEYXNoYm9hcmRXaWRnZXRzQ29sdW1uUmVjb3JkIHwgdW5kZWZpbmVkID0gY29sdW1ucy5maW5kKGMgPT4gYy5jb2x1bW4gPT09IGl0ZW0uY29sKVxuICAgICAgaWYgKCFjb2wpIHtcbiAgICAgICAgLy8gY29sdW1ucy5wdXNoKHsgY29sdW1uOiBpdGVtLmNvbCwgaXRlbXM6IFsgaXRlbSBdIH0pXG4gICAgICAgIC8vIGlmIChpdGVtLmNvbCA8IDApIHtcbiAgICAgICAgLy8gICBjb25zdCBjb2wwOiBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZCB8IHVuZGVmaW5lZCA9IGNvbHVtbnMuZmluZChjID0+IGMuY29sdW1uID09PSAwKVxuICAgICAgICAvLyAgIGlmIChjb2wwKSB7XG4gICAgICAgIC8vICAgICBjb2wwLml0ZW1zLnB1c2goaXRlbSlcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH0gZWxzZSBpZiAoaXRlbS5jb2wgPiB0aGlzLm51bUNvbHVtbnMgLSAxKSB7XG4gICAgICAgIC8vICAgY29uc3QgY29sTWF4OiBJRGFzaGJvYXJkV2lkZ2V0c0NvbHVtblJlY29yZCB8IHVuZGVmaW5lZCA9IGNvbHVtbnMuZmluZChjID0+IGMuY29sdW1uID09PSB0aGlzLm51bUNvbHVtbnMgLSAxKVxuICAgICAgICAvLyAgIGlmIChjb2xNYXgpIHtcbiAgICAgICAgLy8gICAgIGNvbE1heC5pdGVtcy5wdXNoKGl0ZW0pXG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyB9XG4gICAgICAgIGNvbE5vdEZvdW5kLnB1c2goaXRlbSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbC5pdGVtcy5wdXNoKGl0ZW0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb2xOb3RGb3VuZC5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgaXRlbSA9IGNvbE5vdEZvdW5kW2ldXG5cbiAgICAgIGNvbnN0IGNvbDogSURhc2hib2FyZFdpZGdldHNDb2x1bW5SZWNvcmQgfCB1bmRlZmluZWQgPSBjb2x1bW5zXG4gICAgICAgIC5maW5kKGMgPT4gYy5jb2x1bW4gPT09IGkgJSB0aGlzLm51bUNvbHVtbnMpXG5cbiAgICAgIGlmIChjb2wpIHtcbiAgICAgICAgY29sLml0ZW1zLnB1c2goaXRlbSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTb3J0IGNvbHVtbnNcbiAgICBjb2x1bW5zID0gY29sdW1ucy5zb3J0KChhLCBiKSA9PiBhLmNvbHVtbiAtIGIuY29sdW1uKVxuXG4gICAgLy8gU29ydCBjb2x1bW5zIGl0ZW1zXG4gICAgY29sdW1ucy5mb3JFYWNoKGNvbCA9PiBjb2wuaXRlbXMuc29ydCgoYSwgYikgPT4gYS5vcmRlciAtIGIub3JkZXIpKVxuXG4gICAgcmV0dXJuIGNvbHVtbnNcbiAgfVxuXG4gIHB1YmxpYyB3aXRoTGF5b3V0UHJlZmVyZW5jZXMoaXRlbXM6IElEYXNoYm9hcmRXaWRnZXRzSXRlbVtdLCBsYXlvdXQ6IElEYXNoYm9hcmRXaWRnZXRJdGVtTGF5b3V0UHJlZmVyZW5jZSk6IElEYXNoYm9hcmRXaWRnZXRzSXRlbVtdIHtcbiAgICBjb25zdCBfaXRlbXM6IElEYXNoYm9hcmRXaWRnZXRzSXRlbVtdID0gW11cblxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgY29uc3QgaXRlbVByZWYgPSBsYXlvdXQuaXRlbXMuZmluZCh4ID0+IHgud2lkZ2V0SWQgPT09IGl0ZW0ud2lkZ2V0SWQpXG4gICAgICBfaXRlbXMucHVzaCh7XG4gICAgICAgIC4uLml0ZW0sXG4gICAgICAgIC4uLihpdGVtUHJlZiB8fCB7fSlcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIF9pdGVtc1xuICB9XG5cbiAgcHVibGljIHNhdmVQcmVmZXJlbmNlcygpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAvLyBSaWdodCBub3cgdGhlIGl0ZW1zIGFyZSBtb3ZlZCBiZXR3ZWVuIHRoZSBjb2x1bW4gcmVjb3JkIGFycmF5cywgYnV0IHRoZVxuICAgIC8vICdjb2wnIHByb3AgaXMgbm90IHVwZGF0ZWQsIHNvIGl0IGlzIG1hcHBlZCB0byBjb3JyZWN0ZWQgaXRlbXMgaGVyZSBmcm9tXG4gICAgLy8gdGhlIGNvbHVtbiByZWNvcmRzLlxuICAgIGNvbnN0IGl0ZW1zJCA9IHRoaXMud2lkZ2V0Q29sdW1ucyQucGlwZShcbiAgICAgIG1hcChjb2x1bW5zID0+IChbXSBhcyBJRGFzaGJvYXJkV2lkZ2V0c0l0ZW1bXSlcbiAgICAgICAgLmNvbmNhdCguLi4oY29sdW1ucy5tYXAoYyA9PiBjLml0ZW1zLm1hcChpdG0gPT4gKHsgLi4uaXRtLCBjb2w6IGMuY29sdW1uIH0pKSkpKVxuICAgICAgKSxcbiAgICApXG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbIGl0ZW1zJCwgdGhpcy5udW1Db2x1bW5zJCBdKS5waXBlKFxuICAgICAgYXVkaXRUaW1lKDApLFxuICAgICAgdGFrZSgxKSxcbiAgICAgIHN3aXRjaE1hcCgoWyBpdGVtcywgbnVtQ29sdW1ucyBdKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wcmVmZXJlbmNlcy51cGRhdGVMYXlvdXQodGhpcy5wcmVmZXJlbmNlS2V5LCB7XG4gICAgICAgICAgbmFtZTogdGhpcy5fbGF5b3V0TmFtZShudW1Db2x1bW5zKSxcbiAgICAgICAgICBpdGVtc1xuICAgICAgICB9KVxuICAgICAgfSksXG4gICAgICBtYXBUbyh1bmRlZmluZWQpXG4gICAgKVxuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export * from './directives/widget-drag-handle.directive';
|
|
2
2
|
export * from './directives/widget-icon-tpl.directive';
|
|
3
3
|
export * from './directives/widget-title-tpl.directive';
|
|
4
|
+
export * from './preferences/widget-preferences.models';
|
|
5
|
+
export * from './preferences/widget-preferences.service';
|
|
6
|
+
export * from './preferences/widget-preferences.token';
|
|
4
7
|
export * from './widget-content-components/widget-button-group/widget-button-group.component';
|
|
5
8
|
export * from './widget-content-components/widget-button-group/widget-button-group.module';
|
|
6
9
|
export * from './widget-content-components/widget-content-header/widget-content-header.component';
|
|
@@ -36,4 +39,4 @@ export * from './widget-registry.service';
|
|
|
36
39
|
export * from './widget-token';
|
|
37
40
|
export * from './widget.module';
|
|
38
41
|
export * from './widget.models';
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi93aWRnZXQvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsd0NBQXdDLENBQUE7QUFDdEQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUV2RCxjQUFjLHlDQUF5QyxDQUFBO0FBQ3ZELGNBQWMsMENBQTBDLENBQUE7QUFDeEQsY0FBYyx3Q0FBd0MsQ0FBQTtBQUV0RCxjQUFjLCtFQUErRSxDQUFBO0FBQzdGLGNBQWMsNEVBQTRFLENBQUE7QUFFMUYsY0FBYyxtRkFBbUYsQ0FBQTtBQUNqRyxjQUFjLGdGQUFnRixDQUFBO0FBRTlGLGNBQWMsNkVBQTZFLENBQUE7QUFDM0YsY0FBYywwRUFBMEUsQ0FBQTtBQUV4RixjQUFjLDZFQUE2RSxDQUFBO0FBQzNGLGNBQWMsMEVBQTBFLENBQUE7QUFFeEYsY0FBYyw2RUFBNkUsQ0FBQTtBQUMzRixjQUFjLDBFQUEwRSxDQUFBO0FBRXhGLGNBQWMsNkVBQTZFLENBQUE7QUFDM0YsY0FBYywwRUFBMEUsQ0FBQTtBQUV4RixjQUFjLCtFQUErRSxDQUFBO0FBQzdGLGNBQWMsNEVBQTRFLENBQUE7QUFFMUYsY0FBYyxnSEFBZ0gsQ0FBQTtBQUM5SCxjQUFjLHVHQUF1RyxDQUFBO0FBQ3JILGNBQWMsMkVBQTJFLENBQUE7QUFDekYsY0FBYyx3RUFBd0UsQ0FBQTtBQUV0RixjQUFjLGlFQUFpRSxDQUFBO0FBQy9FLGNBQWMsOERBQThELENBQUE7QUFFNUUsY0FBYyx5RkFBeUYsQ0FBQTtBQUN2RyxjQUFjLG1HQUFtRyxDQUFBO0FBQ2pILGNBQWMsdUZBQXVGLENBQUE7QUFFckcsY0FBYyw4RUFBOEUsQ0FBQTtBQUM1RixjQUFjLCtEQUErRCxDQUFBO0FBQzdFLGNBQWMsNERBQTRELENBQUE7QUFFMUUsY0FBYyx5RUFBeUUsQ0FBQTtBQUN2RixjQUFjLHNFQUFzRSxDQUFBO0FBRXBGLGNBQWMsMkJBQTJCLENBQUE7QUFFekMsY0FBYyx5Q0FBeUMsQ0FBQTtBQUV2RCxjQUFjLDBCQUEwQixDQUFBO0FBQ3hDLGNBQWMsMkJBQTJCLENBQUE7QUFDekMsY0FBYyxnQkFBZ0IsQ0FBQTtBQUM5QixjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsaUJBQWlCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvd2lkZ2V0LWRyYWctaGFuZGxlLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy93aWRnZXQtaWNvbi10cGwuZGlyZWN0aXZlJ1xuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3dpZGdldC10aXRsZS10cGwuZGlyZWN0aXZlJ1xuXG5leHBvcnQgKiBmcm9tICcuL3ByZWZlcmVuY2VzL3dpZGdldC1wcmVmZXJlbmNlcy5tb2RlbHMnXG5leHBvcnQgKiBmcm9tICcuL3ByZWZlcmVuY2VzL3dpZGdldC1wcmVmZXJlbmNlcy5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi9wcmVmZXJlbmNlcy93aWRnZXQtcHJlZmVyZW5jZXMudG9rZW4nXG5cbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNvbnRlbnQtY29tcG9uZW50cy93aWRnZXQtYnV0dG9uLWdyb3VwL3dpZGdldC1idXR0b24tZ3JvdXAuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtY29udGVudC1jb21wb25lbnRzL3dpZGdldC1idXR0b24tZ3JvdXAvd2lkZ2V0LWJ1dHRvbi1ncm91cC5tb2R1bGUnXG5cbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNvbnRlbnQtY29tcG9uZW50cy93aWRnZXQtY29udGVudC1oZWFkZXIvd2lkZ2V0LWNvbnRlbnQtaGVhZGVyLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNvbnRlbnQtY29tcG9uZW50cy93aWRnZXQtY29udGVudC1oZWFkZXIvd2lkZ2V0LWNvbnRlbnQtaGVhZGVyLm1vZHVsZSdcblxuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtY29udGVudC1jb21wb25lbnRzL3dpZGdldC1kZXNjcmlwdGlvbi93aWRnZXQtZGVzY3JpcHRpb24uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtY29udGVudC1jb21wb25lbnRzL3dpZGdldC1kZXNjcmlwdGlvbi93aWRnZXQtZGVzY3JpcHRpb24ubW9kdWxlJ1xuXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC1jb250ZW50LWNvbXBvbmVudHMvd2lkZ2V0LWVtcHR5LWxhYmVsL3dpZGdldC1lbXB0eS1sYWJlbC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC1jb250ZW50LWNvbXBvbmVudHMvd2lkZ2V0LWVtcHR5LWxhYmVsL3dpZGdldC1lbXB0eS1sYWJlbC5tb2R1bGUnXG5cbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNvbnRlbnQtY29tcG9uZW50cy93aWRnZXQtZm9vdGVyLWxpbmsvd2lkZ2V0LWZvb3Rlci1saW5rLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNvbnRlbnQtY29tcG9uZW50cy93aWRnZXQtZm9vdGVyLWxpbmsvd2lkZ2V0LWZvb3Rlci1saW5rLm1vZHVsZSdcblxuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtY29udGVudC1jb21wb25lbnRzL3dpZGdldC1mb290ZXItdGV4dC93aWRnZXQtZm9vdGVyLXRleHQuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtY29udGVudC1jb21wb25lbnRzL3dpZGdldC1mb290ZXItdGV4dC93aWRnZXQtZm9vdGVyLXRleHQubW9kdWxlJ1xuXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC1jb250ZW50LWNvbXBvbmVudHMvd2lkZ2V0LWhlYWRlci1iYWRnZS93aWRnZXQtaGVhZGVyLWJhZGdlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNvbnRlbnQtY29tcG9uZW50cy93aWRnZXQtaGVhZGVyLWJhZGdlL3dpZGdldC1oZWFkZXItYmFkZ2UubW9kdWxlJ1xuXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC1jb250ZW50LWNvbXBvbmVudHMvd2lkZ2V0LWxpc3QtZ3JvdXAvd2lkZ2V0LWxpc3QtZ3JvdXAtaXRlbS93aWRnZXQtbGlzdC1ncm91cC1pdGVtLWljb24tdHBsLmRpcmVjdGl2ZSdcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNvbnRlbnQtY29tcG9uZW50cy93aWRnZXQtbGlzdC1ncm91cC93aWRnZXQtbGlzdC1ncm91cC1pdGVtL3dpZGdldC1saXN0LWdyb3VwLWl0ZW0uY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtY29udGVudC1jb21wb25lbnRzL3dpZGdldC1saXN0LWdyb3VwL3dpZGdldC1saXN0LWdyb3VwLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNvbnRlbnQtY29tcG9uZW50cy93aWRnZXQtbGlzdC1ncm91cC93aWRnZXQtbGlzdC1ncm91cC5tb2R1bGUnXG5cbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNvbnRlbnQtY29tcG9uZW50cy93aWRnZXQtdGFibGUvd2lkZ2V0LXRhYmxlLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNvbnRlbnQtY29tcG9uZW50cy93aWRnZXQtdGFibGUvd2lkZ2V0LXRhYmxlLm1vZHVsZSdcblxuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtY29udGVudC1jb21wb25lbnRzL3dpZGdldC10aWxlL3dpZGdldC10aWxlLWZvb3Rlci93aWRnZXQtdGlsZS1mb290ZXIuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtY29udGVudC1jb21wb25lbnRzL3dpZGdldC10aWxlL3dpZGdldC10aWxlLWZvb3Rlci1pdGVtL3dpZGdldC10aWxlLWZvb3Rlci1pdGVtLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNvbnRlbnQtY29tcG9uZW50cy93aWRnZXQtdGlsZS93aWRnZXQtdGlsZS1ncm91cC93aWRnZXQtdGlsZS1ncm91cC5jb21wb25lbnQnXG5cbmV4cG9ydCAqIGZyb20gJy4vd2lkZ2V0LWNvbnRlbnQtY29tcG9uZW50cy93aWRnZXQtdGlsZS93aWRnZXQtdGlsZS1zZWNvbmRhcnktaWNvbi5kaXJlY3RpdmUnXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC1jb250ZW50LWNvbXBvbmVudHMvd2lkZ2V0LXRpbGUvd2lkZ2V0LXRpbGUuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtY29udGVudC1jb21wb25lbnRzL3dpZGdldC10aWxlL3dpZGdldC10aWxlLm1vZHVsZSdcblxuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtY29udGVudC1jb21wb25lbnRzL3dpZGdldC10aWxlLWxpc3Qvd2lkZ2V0LXRpbGUtbGlzdC5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC1jb250ZW50LWNvbXBvbmVudHMvd2lkZ2V0LXRpbGUtbGlzdC93aWRnZXQtdGlsZS1saXN0Lm1vZHVsZSdcblxuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQvd2lkZ2V0LmNvbXBvbmVudCdcblxuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtZm9vdGVyL3dpZGdldC1mb290ZXIuY29tcG9uZW50J1xuXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC1yZWdpc3RyeS5tb2RlbHMnXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC1yZWdpc3RyeS5zZXJ2aWNlJ1xuZXhwb3J0ICogZnJvbSAnLi93aWRnZXQtdG9rZW4nXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC5tb2R1bGUnXG5leHBvcnQgKiBmcm9tICcuL3dpZGdldC5tb2RlbHMnXG4iXX0=
|
|
@@ -742,10 +742,10 @@ class DashboardWidgetsService {
|
|
|
742
742
|
}
|
|
743
743
|
createWidgetPortal(def, vcr) {
|
|
744
744
|
var _a;
|
|
745
|
+
const injector = Injector.create({ providers: [
|
|
746
|
+
{ provide: THESEAM_WIDGET_DATA, useValue: { widgetId: def.widgetId } }
|
|
747
|
+
], parent: (_a = this._viewContainerRefSubject.value) === null || _a === void 0 ? void 0 : _a.injector });
|
|
745
748
|
if (typeof def.component === 'string') {
|
|
746
|
-
const injector = Injector.create({ providers: [
|
|
747
|
-
{ provide: THESEAM_WIDGET_DATA, useValue: { widgetId: def.widgetId } }
|
|
748
|
-
], parent: (_a = this._viewContainerRefSubject.value) === null || _a === void 0 ? void 0 : _a.injector });
|
|
749
749
|
return this._dynamicComponentLoaderModule
|
|
750
750
|
.getComponentFactory(def.component)
|
|
751
751
|
.pipe(map(componentFactory => {
|
|
@@ -755,8 +755,8 @@ class DashboardWidgetsService {
|
|
|
755
755
|
}), take(1));
|
|
756
756
|
}
|
|
757
757
|
return def.componentFactoryResolver
|
|
758
|
-
? of(new ComponentPortal(def.component, vcr,
|
|
759
|
-
: of(new ComponentPortal(def.component, vcr));
|
|
758
|
+
? of(new ComponentPortal(def.component, vcr, injector, def.componentFactoryResolver))
|
|
759
|
+
: of(new ComponentPortal(def.component, vcr, injector));
|
|
760
760
|
}
|
|
761
761
|
updateOrder() {
|
|
762
762
|
return this.widgetColumns$
|