@alfresco/adf-extensions 6.10.0-9874289033 → 7.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/viewer/preview-extension.component.mjs +7 -2
- package/esm2020/lib/config/action.extensions.mjs +1 -1
- package/fesm2015/adf-extensions.mjs +6 -1
- package/fesm2015/adf-extensions.mjs.map +1 -1
- package/fesm2020/adf-extensions.mjs +6 -1
- package/fesm2020/adf-extensions.mjs.map +1 -1
- package/lib/components/viewer/preview-extension.component.d.ts +3 -1
- package/lib/config/action.extensions.d.ts +1 -0
- package/package.json +2 -2
|
@@ -21,6 +21,8 @@ import * as i1 from "../../services/extension.service";
|
|
|
21
21
|
export class PreviewExtensionComponent {
|
|
22
22
|
constructor(extensionService) {
|
|
23
23
|
this.extensionService = extensionService;
|
|
24
|
+
/** Identifier of a node that is opened by the viewer. */
|
|
25
|
+
this.nodeId = null;
|
|
24
26
|
}
|
|
25
27
|
ngOnInit() {
|
|
26
28
|
if (!this.id) {
|
|
@@ -47,11 +49,12 @@ export class PreviewExtensionComponent {
|
|
|
47
49
|
const instance = this.componentRef.instance;
|
|
48
50
|
instance.url = this.url;
|
|
49
51
|
instance.extension = this.extension;
|
|
52
|
+
instance.nodeId = this.nodeId;
|
|
50
53
|
}
|
|
51
54
|
}
|
|
52
55
|
}
|
|
53
56
|
PreviewExtensionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PreviewExtensionComponent, deps: [{ token: i1.ExtensionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
54
|
-
PreviewExtensionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PreviewExtensionComponent, isStandalone: true, selector: "adf-preview-extension", inputs: { id: "id", url: "url", extension: "extension" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `<div #content></div>`, isInline: true });
|
|
57
|
+
PreviewExtensionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PreviewExtensionComponent, isStandalone: true, selector: "adf-preview-extension", inputs: { id: "id", nodeId: "nodeId", url: "url", extension: "extension" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `<div #content></div>`, isInline: true });
|
|
55
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PreviewExtensionComponent, decorators: [{
|
|
56
59
|
type: Component,
|
|
57
60
|
args: [{
|
|
@@ -64,9 +67,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
64
67
|
args: ['content', { read: ViewContainerRef, static: true }]
|
|
65
68
|
}], id: [{
|
|
66
69
|
type: Input
|
|
70
|
+
}], nodeId: [{
|
|
71
|
+
type: Input
|
|
67
72
|
}], url: [{
|
|
68
73
|
type: Input
|
|
69
74
|
}], extension: [{
|
|
70
75
|
type: Input
|
|
71
76
|
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy1leHRlbnNpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2V4dGVuc2lvbnMvc3JjL2xpYi9jb21wb25lbnRzL3ZpZXdlci9wcmV2aWV3LWV4dGVuc2lvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXdCLFNBQVMsRUFBRSxnQkFBZ0IsRUFBd0IsTUFBTSxlQUFlLENBQUM7QUFDMUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQU9wRSxNQUFNLE9BQU8seUJBQXlCO0lBc0JsQyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQWR0RCx5REFBeUQ7UUFFekQsV0FBTSxHQUFXLElBQUksQ0FBQztJQVltQyxDQUFDO0lBRTFELFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNWLE9BQU87U0FDVjtRQUVELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEUsSUFBSSxhQUFhLEVBQUU7WUFDZixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztTQUM1QjtJQUNMLENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUU7WUFDN0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFFNUMsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3hCLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDakM7SUFDTCxDQUFDOzt1SEF4RFEseUJBQXlCOzJHQUF6Qix5QkFBeUIsNE9BQ0osZ0JBQWdCLGdFQUhwQyxzQkFBc0I7NEZBRXZCLHlCQUF5QjtrQkFMckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHNCQUFzQjtpQkFDbkM7dUdBR0csT0FBTztzQkFETixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUs5RCxFQUFFO3NCQURELEtBQUs7Z0JBS04sTUFBTTtzQkFETCxLQUFLO2dCQUtOLEdBQUc7c0JBREYsS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIENvbXBvbmVudFJlZiwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIE9uRGVzdHJveSwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFeHRlbnNpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXh0ZW5zaW9uLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1wcmV2aWV3LWV4dGVuc2lvbicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZTogYDxkaXYgI2NvbnRlbnQ+PC9kaXY+YFxufSlcbmV4cG9ydCBjbGFzcyBQcmV2aWV3RXh0ZW5zaW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgY29udGVudDogVmlld0NvbnRhaW5lclJlZjtcblxuICAgIC8qKiBJRCBzdHJpbmcgb2YgdGhlIGNvbXBvbmVudCB0byBwcmV2aWV3LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgaWQ6IHN0cmluZztcblxuICAgIC8qKiBJZGVudGlmaWVyIG9mIGEgbm9kZSB0aGF0IGlzIG9wZW5lZCBieSB0aGUgdmlld2VyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbm9kZUlkOiBzdHJpbmcgPSBudWxsO1xuXG4gICAgLyoqIFVSTCBvZiB0aGUgY29udGVudCBpbiB0aGUgcmVwb3NpdG9yeS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHVybDogc3RyaW5nO1xuXG4gICAgLyoqIEZpbGUgZXh0ZW5zaW9uICguanBnLCAucG5nLCBldGMpIGZvciB0aGUgdmlld2VyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGV4dGVuc2lvblNlcnZpY2U6IEV4dGVuc2lvblNlcnZpY2UpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb21wb25lbnRUeXBlID0gdGhpcy5leHRlbnNpb25TZXJ2aWNlLmdldENvbXBvbmVudEJ5SWQodGhpcy5pZCk7XG4gICAgICAgIGlmIChjb21wb25lbnRUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQuY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuY29tcG9uZW50UmVmID0gdGhpcy5jb250ZW50LmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRUeXBlLCB7IGluZGV4OiAwIH0pO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVJbnN0YW5jZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIHRoaXMudXBkYXRlSW5zdGFuY2UoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUluc3RhbmNlKCkge1xuICAgICAgICBpZiAodGhpcy5jb21wb25lbnRSZWY/Lmluc3RhbmNlKSB7XG4gICAgICAgICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlO1xuXG4gICAgICAgICAgICBpbnN0YW5jZS51cmwgPSB0aGlzLnVybDtcbiAgICAgICAgICAgIGluc3RhbmNlLmV4dGVuc2lvbiA9IHRoaXMuZXh0ZW5zaW9uO1xuICAgICAgICAgICAgaW5zdGFuY2Uubm9kZUlkID0gdGhpcy5ub2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
@@ -23,4 +23,4 @@ export var ContentActionType;
|
|
|
23
23
|
ContentActionType["menu"] = "menu";
|
|
24
24
|
ContentActionType["custom"] = "custom";
|
|
25
25
|
})(ContentActionType || (ContentActionType = {}));
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmV4dGVuc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWIvZXh0ZW5zaW9ucy9zcmMvbGliL2NvbmZpZy9hY3Rpb24uZXh0ZW5zaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFJSCxxQ0FBcUM7QUFDckMsTUFBTSxDQUFOLElBQVksaUJBTVg7QUFORCxXQUFZLGlCQUFpQjtJQUN6Qix3Q0FBbUIsQ0FBQTtJQUNuQixzQ0FBaUIsQ0FBQTtJQUNqQiw0Q0FBdUIsQ0FBQTtJQUN2QixrQ0FBYSxDQUFBO0lBQ2Isc0NBQWlCLENBQUE7QUFDckIsQ0FBQyxFQU5XLGlCQUFpQixLQUFqQixpQkFBaUIsUUFNNUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI0IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEV4dGVuc2lvbkVsZW1lbnQgfSBmcm9tICcuL2V4dGVuc2lvbi1lbGVtZW50JztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNoYWRvd1xuZXhwb3J0IGVudW0gQ29udGVudEFjdGlvblR5cGUge1xuICAgIGRlZmF1bHQgPSAnZGVmYXVsdCcsXG4gICAgYnV0dG9uID0gJ2J1dHRvbicsXG4gICAgc2VwYXJhdG9yID0gJ3NlcGFyYXRvcicsXG4gICAgbWVudSA9ICdtZW51JyxcbiAgICBjdXN0b20gPSAnY3VzdG9tJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnRBY3Rpb25SZWYgZXh0ZW5kcyBFeHRlbnNpb25FbGVtZW50IHtcbiAgICB0eXBlOiBDb250ZW50QWN0aW9uVHlwZTtcblxuICAgIHRpdGxlPzogc3RyaW5nO1xuICAgIHRvb2x0aXA/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICBjaGlsZHJlbj86IEFycmF5PENvbnRlbnRBY3Rpb25SZWY+O1xuICAgIGNvbXBvbmVudD86IHN0cmluZztcbiAgICBkYXRhPzogYW55O1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGFjdGlvbnM/OiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgICAgICAgY2xpY2s/OiBzdHJpbmc7XG4gICAgfTtcbiAgICBydWxlcz86IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICAgICAgICBlbmFibGVkPzogc3RyaW5nO1xuICAgICAgICB2aXNpYmxlPzogc3RyaW5nO1xuICAgIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uUmVmIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBwYXlsb2FkPzogYW55O1xufVxuIl19
|
|
@@ -843,6 +843,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
843
843
|
class PreviewExtensionComponent {
|
|
844
844
|
constructor(extensionService) {
|
|
845
845
|
this.extensionService = extensionService;
|
|
846
|
+
/** Identifier of a node that is opened by the viewer. */
|
|
847
|
+
this.nodeId = null;
|
|
846
848
|
}
|
|
847
849
|
ngOnInit() {
|
|
848
850
|
if (!this.id) {
|
|
@@ -870,11 +872,12 @@ class PreviewExtensionComponent {
|
|
|
870
872
|
const instance = this.componentRef.instance;
|
|
871
873
|
instance.url = this.url;
|
|
872
874
|
instance.extension = this.extension;
|
|
875
|
+
instance.nodeId = this.nodeId;
|
|
873
876
|
}
|
|
874
877
|
}
|
|
875
878
|
}
|
|
876
879
|
PreviewExtensionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PreviewExtensionComponent, deps: [{ token: ExtensionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
877
|
-
PreviewExtensionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PreviewExtensionComponent, isStandalone: true, selector: "adf-preview-extension", inputs: { id: "id", url: "url", extension: "extension" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `<div #content></div>`, isInline: true });
|
|
880
|
+
PreviewExtensionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PreviewExtensionComponent, isStandalone: true, selector: "adf-preview-extension", inputs: { id: "id", nodeId: "nodeId", url: "url", extension: "extension" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `<div #content></div>`, isInline: true });
|
|
878
881
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PreviewExtensionComponent, decorators: [{
|
|
879
882
|
type: Component,
|
|
880
883
|
args: [{
|
|
@@ -887,6 +890,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
887
890
|
args: ['content', { read: ViewContainerRef, static: true }]
|
|
888
891
|
}], id: [{
|
|
889
892
|
type: Input
|
|
893
|
+
}], nodeId: [{
|
|
894
|
+
type: Input
|
|
890
895
|
}], url: [{
|
|
891
896
|
type: Input
|
|
892
897
|
}], extension: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adf-extensions.mjs","sources":["../../../../lib/extensions/src/lib/config/action.extensions.ts","../../../../lib/extensions/src/lib/config/extension-utils.ts","../../../../lib/extensions/src/lib/config/rule.extensions.ts","../../../../lib/extensions/src/lib/services/extension-loader.service.ts","../../../../lib/extensions/src/lib/evaluators/core.evaluators.ts","../../../../lib/extensions/src/lib/services/component-register.service.ts","../../../../lib/extensions/src/lib/services/rule.service.ts","../../../../lib/extensions/src/lib/services/extension.service.ts","../../../../lib/extensions/src/lib/services/app-extension.service.ts","../../../../lib/extensions/src/lib/components/viewer/preview-extension.component.ts","../../../../lib/extensions/src/lib/components/dynamic-column/dynamic-column.component.ts","../../../../lib/extensions/src/lib/components/dynamic-component/dynamic.component.ts","../../../../lib/extensions/src/lib/components/dynamic-tab/dynamic-tab.component.ts","../../../../lib/extensions/src/lib/components/public-api.ts","../../../../lib/extensions/src/lib/services/startup-extension-factory.ts","../../../../lib/extensions/src/lib/extensions.module.ts","../../../../lib/extensions/src/public-api.ts","../../../../lib/extensions/src/adf-extensions.ts"],"sourcesContent":["/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\n// eslint-disable-next-line no-shadow\nexport enum ContentActionType {\n default = 'default',\n button = 'button',\n separator = 'separator',\n menu = 'menu',\n custom = 'custom'\n}\n\nexport interface ContentActionRef extends ExtensionElement {\n type: ContentActionType;\n\n title?: string;\n description?: string;\n icon?: string;\n children?: Array<ContentActionRef>;\n component?: string;\n data?: any;\n color?: string;\n actions?: {\n [key: string]: string;\n click?: string;\n };\n rules?: {\n [key: string]: string;\n enabled?: string;\n visible?: string;\n };\n}\n\nexport interface ActionRef {\n id: string;\n type: string;\n payload?: any;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContentActionRef, ContentActionType } from './action.extensions';\n\nexport const getValue = (target: any, key: string): any => {\n if (!target) {\n return undefined;\n }\n\n const keys = key.split('.');\n key = '';\n\n do {\n key += keys.shift();\n const value = target[key];\n if (\n value !== undefined &&\n (typeof value === 'object' || !keys.length)\n ) {\n target = value;\n key = '';\n } else if (!keys.length) {\n target = undefined;\n } else {\n key += '.';\n }\n } while (keys.length);\n\n return target;\n};\n\nexport const filterEnabled = (entry: { disabled?: boolean }): boolean => !entry.disabled;\n\nexport const sortByOrder = (\n a: { order?: number | undefined },\n b: { order?: number | undefined }\n) => {\n const left = a.order === undefined ? Number.MAX_SAFE_INTEGER : a.order;\n const right = b.order === undefined ? Number.MAX_SAFE_INTEGER : b.order;\n return left - right;\n};\n\nexport const reduceSeparators = (\n acc: ContentActionRef[],\n el: ContentActionRef,\n i: number,\n arr: ContentActionRef[]\n): ContentActionRef[] => {\n // remove leading separator\n if (i === 0) {\n if (arr[i].type === ContentActionType.separator) {\n return acc;\n }\n }\n // remove duplicate separators\n if (i > 0) {\n const prev = arr[i - 1];\n if (\n prev.type === ContentActionType.separator &&\n el.type === ContentActionType.separator\n ) {\n return acc;\n }\n\n // remove trailing separator\n if (i === arr.length - 1) {\n if (el.type === ContentActionType.separator) {\n return acc;\n }\n }\n }\n\n return acc.concat(el);\n};\n\nexport const reduceEmptyMenus = (\n acc: ContentActionRef[],\n el: ContentActionRef\n): ContentActionRef[] => {\n if (el.type === ContentActionType.menu) {\n if ((el.children || []).length === 0) {\n return acc;\n }\n }\n return acc.concat(el);\n};\n\nexport const mergeObjects = (...objects: any[]): any => {\n const result = {};\n\n objects.forEach((source) => {\n Object.keys(source).forEach((prop) => {\n let replace = false;\n\n if (prop.endsWith('.$replace')) {\n replace = true;\n prop = prop.replace('.$replace', '');\n }\n\n if (!prop.startsWith('$')) {\n if (replace) {\n result[prop] = source[`${prop}.$replace`];\n } else if (prop in result && Array.isArray(result[prop])) {\n if (Array.isArray(source[prop])) {\n result[prop] = mergeArrays(result[prop], source[prop]);\n } else {\n result[prop] = [...result[prop], source[prop]];\n }\n } else if (prop in result && typeof result[prop] === 'object') {\n result[prop] = mergeObjects(result[prop], source[prop]);\n } else {\n result[prop] = source[prop];\n }\n }\n });\n });\n\n return result;\n};\n\nexport const mergeArrays = (left: any[], right: any[]): any[] => {\n const result = [];\n const map = {};\n\n (left || []).forEach((entry) => {\n const element = entry;\n if (element && Object.prototype.hasOwnProperty.call(element, 'id')) {\n map[element.id] = element;\n } else {\n result.push(element);\n }\n });\n\n (right || []).forEach((entry) => {\n const element = entry;\n if (element && Object.prototype.hasOwnProperty.call(element, 'id') && map[element.id]) {\n const merged = mergeObjects(map[element.id], element);\n map[element.id] = merged;\n } else {\n result.push(element);\n }\n });\n\n return Object.keys(map).map((key) => map[key]).concat(result);\n};\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SelectionState } from '../store/states/selection.state';\nimport { NavigationState } from '../store/states/navigation.state';\nimport { NodePermissions } from './permission.extensions';\nimport { ProfileState } from '../store/states/profile.state';\nimport { RepositoryInfo } from '@alfresco/js-api';\n\nexport type RuleEvaluator = (context: RuleContext, ...args: any[]) => boolean;\n\nexport interface RuleContext {\n repository: RepositoryInfo;\n auth: any;\n selection: SelectionState;\n navigation: NavigationState;\n profile: ProfileState;\n permissions: NodePermissions;\n\n getEvaluator(key: string): RuleEvaluator;\n}\n\nexport class RuleRef {\n type: string;\n id?: string;\n parameters?: Array<RuleParameter>;\n}\n\nexport interface RuleParameter {\n type: string;\n value: any;\n parameters?: Array<RuleParameter>;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActionRef, ContentActionRef, ContentActionType } from '../config/action.extensions';\nimport { ExtensionElement } from '../config/extension-element';\nimport { filterEnabled, getValue, mergeObjects, sortByOrder } from '../config/extension-utils';\nimport { ExtensionConfig, ExtensionRef } from '../config/extension.config';\nimport { RouteRef } from '../config/routing.extensions';\nimport { RuleRef } from '../config/rule.extensions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtensionLoaderService {\n constructor(private http: HttpClient) {\n }\n\n load(\n configPath: string,\n pluginsPath: string,\n extensions?: string[],\n extensionValues?: ExtensionConfig[]\n ): Promise<ExtensionConfig> {\n return new Promise<any>((resolve) => {\n this.loadConfig(configPath, 0).then((result) => {\n if (result) {\n let config = result.config;\n\n const override = sessionStorage.getItem('app.extension.config');\n if (override) {\n config = JSON.parse(override);\n }\n\n if (!config.$references?.length) {\n config.$references = this.filterIgnoredExtensions(extensions || [], config.$ignoreReferenceList);\n } else {\n config.$references = this.filterIgnoredExtensions(config.$references, config.$ignoreReferenceList);\n }\n\n if (config.$references?.length > 0 || extensionValues) {\n const plugins = (config.$references ?? []).map((name, idx) =>\n this.loadConfig(`${pluginsPath}/${name}`, idx)\n );\n\n Promise.all(plugins).then((results) => {\n let configs = results\n .filter((entry) => entry)\n .sort(sortByOrder)\n .map((entry) => entry.config);\n\n if (extensionValues) {\n configs = [\n ...configs,\n ...extensionValues\n ];\n }\n\n\n if (configs.length > 0) {\n config = mergeObjects(config, ...configs);\n }\n\n config = {\n ...config,\n ...this.getMetadata(result.config),\n $references: configs.map((ext) => this.getMetadata(ext))\n };\n\n resolve(config);\n });\n } else {\n resolve(config);\n }\n }\n });\n });\n }\n\n /**\n * Retrieves configuration elements.\n * Filters element by **enabled** and **order** attributes.\n * Example:\n * `getElements<ViewerExtensionRef>(config, 'features.viewer.extensions')`\n *\n * @param config configuration settings\n * @param key element key\n * @param fallback fallback array of values\n * @returns list of elements\n */\n getElements<T extends ExtensionElement>(\n config: ExtensionConfig,\n key: string,\n fallback: Array<T> = []\n ): Array<T> {\n const values = getValue(config, key) || fallback || [];\n return values.filter(filterEnabled).sort(sortByOrder);\n }\n\n getContentActions(\n config: ExtensionConfig,\n key: string\n ): Array<ContentActionRef> {\n return this.getElements(config, key).map(this.setActionDefaults);\n }\n\n getRules(config: ExtensionConfig): Array<RuleRef> {\n if (config?.rules) {\n return config.rules;\n }\n return [];\n }\n\n getRoutes(config: ExtensionConfig): Array<RouteRef> {\n if (config) {\n return config.routes || [];\n }\n return [];\n }\n\n getActions(config: ExtensionConfig): Array<ActionRef> {\n if (config) {\n return config.actions || [];\n }\n return [];\n }\n\n getFeatures(config: ExtensionConfig): any {\n if (config) {\n return config.features || [];\n }\n return [];\n }\n\n protected getMetadata(config: ExtensionConfig): ExtensionRef {\n const result: any = {};\n\n Object\n .keys(config)\n .filter((key) => key.startsWith('$'))\n .forEach((key) => {\n result[key] = config[key];\n });\n\n return result;\n }\n\n protected loadConfig(\n url: string,\n order: number\n ): Promise<{ order: number; config: ExtensionConfig }> {\n return new Promise((resolve) => {\n this.http.get<ExtensionConfig>(url).subscribe(\n (config) => {\n resolve({\n order,\n config\n });\n },\n () => {\n resolve(null);\n }\n );\n });\n }\n\n protected setActionDefaults(action: ContentActionRef): ContentActionRef {\n if (action) {\n action.type = action.type || ContentActionType.default;\n action.icon = action.icon || 'extension';\n }\n return action;\n }\n\n private filterIgnoredExtensions(extensions: Array<string | ExtensionRef>, ignoreReferenceList: string[]): Array<string | ExtensionRef> {\n if (!ignoreReferenceList?.length) {\n return extensions;\n }\n\n return extensions.map((file: string) => file.match('(?!.*/).+')[0]).filter((fileName: string) => !ignoreReferenceList.includes(fileName));\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RuleContext, RuleParameter } from '../config/rule.extensions';\n\nexport const not = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .every((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return !evaluator(context, ...(arg.parameters || []));\n });\n};\n\nexport const every = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .every((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return evaluator(context, ...(arg.parameters || []));\n });\n};\n\nexport const some = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .some((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return evaluator(context, ...(arg.parameters || []));\n });\n};\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable, Type } from '@angular/core';\n\nexport interface ExtensionComponent {\n data: any;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentRegisterService {\n components: { [key: string]: Type<any> } = {};\n\n setComponents(values: { [key: string]: Type<any> }) {\n if (values) {\n this.components = Object.assign({}, this.components, values);\n }\n }\n\n getComponentById<T>(id: string): Type<T> {\n return this.components[id];\n }\n\n hasComponentById(id: string): boolean {\n return !!this.getComponentById(id);\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from '@angular/core';\nimport { RuleRef, RuleContext, RuleEvaluator, RuleParameter } from '../config/rule.extensions';\nimport { ExtensionConfig } from '../config/extension.config';\nimport { ExtensionLoaderService } from './extension-loader.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RuleService {\n context: RuleContext = null;\n rules: Array<RuleRef> = [];\n evaluators: { [key: string]: RuleEvaluator } = {};\n\n constructor(protected loader: ExtensionLoaderService) {}\n\n setup(config: ExtensionConfig) {\n this.rules = this.loader.getRules(config);\n }\n\n /**\n * Adds one or more new rule evaluators to the existing set.\n *\n * @param values The new evaluators to add\n */\n setEvaluators(values: { [key: string]: RuleEvaluator }) {\n if (values) {\n this.evaluators = Object.assign({}, this.evaluators, values);\n }\n }\n\n /**\n * Retrieves a rule using its ID value.\n *\n * @param id The ID value to look for\n * @returns The rule or null if not found\n */\n getRuleById(id: string): RuleRef {\n return this.rules.find((ref) => ref.id === id);\n }\n\n /**\n * Retrieves a RuleEvaluator function using its key name.\n *\n * @param key Key name to look for\n * @returns RuleEvaluator or null if not found\n */\n getEvaluator(key: string): RuleEvaluator {\n if (key?.startsWith('!')) {\n const fn = this.evaluators[key.substring(1)];\n return (context: RuleContext, ...args: RuleParameter[]): boolean => !fn(context, ...args);\n }\n return this.evaluators[key];\n }\n\n /**\n * Evaluates a rule.\n *\n * @param ruleId ID of the rule to evaluate\n * @param context Custom rule execution context.\n * @returns True if the rule passed, false otherwise\n */\n evaluateRule(ruleId: string, context?: RuleContext): boolean {\n const ruleRef = this.getRuleById(ruleId);\n context = context || this.context;\n\n if (ruleRef) {\n const evaluator = this.getEvaluator(ruleRef.type);\n if (evaluator) {\n return evaluator(context, ...ruleRef.parameters);\n }\n } else {\n const evaluator = this.getEvaluator(ruleId);\n if (evaluator) {\n return evaluator(context);\n }\n }\n return false;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable, Type, InjectionToken, Inject } from '@angular/core';\nimport { RuleEvaluator, RuleRef, RuleContext } from '../config/rule.extensions';\nimport { ExtensionConfig } from '../config/extension.config';\nimport { ExtensionLoaderService } from './extension-loader.service';\nimport { RouteRef } from '../config/routing.extensions';\nimport { ActionRef } from '../config/action.extensions';\nimport * as core from '../evaluators/core.evaluators';\nimport { ComponentRegisterService } from './component-register.service';\nimport { RuleService } from './rule.service';\nimport { ExtensionElement } from '../config/extension-element';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n/**\n * The default extensions factory\n *\n * @returns the list of extension json files\n */\nexport function extensionJsonsFactory() {\n return [];\n};\n\nexport const EXTENSION_JSONS = new InjectionToken<string[][]>('extension-jsons', {\n providedIn: 'root',\n factory: extensionJsonsFactory\n});\n\nexport const EXTENSION_JSON_VALUES = new InjectionToken<string[][]>('extension-jsons-values', {\n providedIn: 'root',\n factory: extensionJsonsFactory\n});\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n/**\n * Provides the extension json values for the angular modules\n *\n * @param jsons files to provide\n * @returns a provider section\n */\nexport function provideExtensionConfig(jsons: string[]) {\n return {\n provide: EXTENSION_JSONS,\n useValue: jsons,\n multi: true\n };\n};\n\n/**\n * Provides the extension json raw values for the angular modules\n *\n * @param extensionConfigValue config value\n * @returns a provider section\n */\nexport function provideExtensionConfigValues(extensionConfigValue: ExtensionConfig[]) {\n return {\n provide: EXTENSION_JSON_VALUES,\n useValue: extensionConfigValue,\n multi: true\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtensionService {\n configPath = 'assets/app.extensions.json';\n pluginsPath = 'assets/plugins';\n\n routes: Array<RouteRef> = [];\n actions: Array<ActionRef> = [];\n features: Array<any> = [];\n authGuards: { [key: string]: Type<any> } = {};\n\n setup$: Observable<ExtensionConfig>;\n\n protected config: ExtensionConfig = null;\n protected onSetup$ = new BehaviorSubject<ExtensionConfig>(this.config);\n\n constructor(\n protected loader: ExtensionLoaderService,\n protected componentRegister: ComponentRegisterService,\n protected ruleService: RuleService,\n @Inject(EXTENSION_JSONS) protected extensionJsons: string[],\n @Inject(EXTENSION_JSON_VALUES) protected extensionJsonValues: ExtensionConfig[]\n ) {\n this.setup$ = this.onSetup$.asObservable();\n }\n\n /**\n * Loads and registers an extension config file and plugins (specified by path properties).\n *\n * @returns The loaded config data\n */\n async load(): Promise<ExtensionConfig> {\n const config = await this.loader.load(\n this.configPath,\n this.pluginsPath,\n this.extensionJsons.flat(),\n this.extensionJsonValues.flat()\n );\n\n this.setup(config);\n return config;\n }\n\n /**\n * Registers extensions from a config object.\n *\n * @param config Object with config data\n */\n setup(config: ExtensionConfig) {\n if (!config) {\n console.warn('Extension configuration not found');\n return;\n }\n\n this.config = config;\n\n this.setEvaluators({\n 'core.every': core.every,\n 'core.some': core.some,\n 'core.not': core.not\n });\n\n this.actions = this.loader.getActions(config);\n this.routes = this.loader.getRoutes(config);\n this.features = this.loader.getFeatures(config);\n\n this.ruleService.setup(config);\n this.onSetup$.next(config);\n }\n\n /**\n * Gets features by key.\n *\n * @param key Key string using dot notation or array of strings\n * @param defaultValue Default value returned if feature is not found, default is empty array\n * @returns Feature found by key\n */\n getFeature<T = any[]>(key: string | string[], defaultValue: any = []): T {\n const properties: string[] = Array.isArray(key) ? key : key.split('.');\n return properties.reduce((prev, curr) => prev?.[curr], this.features) || defaultValue;\n }\n\n getElements<T extends ExtensionElement>(key: string, fallback: Array<T> = []): Array<T> {\n return this.loader.getElements(this.config, key, fallback);\n }\n\n /**\n * Adds one or more new rule evaluators to the existing set.\n *\n * @param values The new evaluators to add\n */\n setEvaluators(values: { [key: string]: RuleEvaluator }) {\n this.ruleService.setEvaluators(values);\n }\n\n /**\n * Adds one or more new auth guards to the existing set.\n *\n * @param values The new auth guards to add\n */\n setAuthGuards(values: { [key: string]: Type<any> }) {\n if (values) {\n this.authGuards = Object.assign({}, this.authGuards, values);\n }\n }\n\n /**\n * Adds one or more new components to the existing set.\n *\n * @param values The new components to add\n */\n setComponents(values: { [key: string]: Type<any> }) {\n this.componentRegister.setComponents(values);\n }\n\n /**\n * Retrieves a route using its ID value.\n *\n * @param id The ID value to look for\n * @returns The route or null if not found\n */\n getRouteById(id: string): RouteRef {\n return this.routes.find((route) => route.id === id);\n }\n\n /**\n * Retrieves one or more auth guards using an array of ID values.\n *\n * @param ids Array of ID value to look for\n * @returns Array of auth guards or empty array if none were found\n */\n getAuthGuards(ids: string[]): Array<Type<any>> {\n return (ids || [])\n .map((id) => this.authGuards[id])\n .filter((guard) => guard);\n }\n\n /**\n * Retrieves an action using its ID value.\n *\n * @param id The ID value to look for\n * @returns Action or null if not found\n */\n getActionById(id: string): ActionRef {\n return this.actions.find((action) => action.id === id);\n }\n\n /**\n * Retrieves a RuleEvaluator function using its key name.\n *\n * @param key Key name to look for\n * @returns RuleEvaluator or null if not found\n */\n getEvaluator(key: string): RuleEvaluator {\n return this.ruleService.getEvaluator(key);\n }\n\n /**\n * Evaluates a rule.\n *\n * @param ruleId ID of the rule to evaluate\n * @param context Custom rule execution context.\n * @returns True if the rule passed, false otherwise\n */\n evaluateRule(ruleId: string, context?: RuleContext): boolean {\n return this.ruleService.evaluateRule(ruleId, context);\n }\n\n /**\n * Retrieves a registered extension component using its ID value.\n *\n * @param id The ID value to look for\n * @returns The component or null if not found\n */\n getComponentById<T>(id: string) {\n return this.componentRegister.getComponentById<T>(id);\n }\n\n /**\n * Retrieves a rule using its ID value.\n *\n * @param id The ID value to look for\n * @returns The rule or null if not found\n */\n getRuleById(id: string): RuleRef {\n return this.ruleService.getRuleById(id);\n }\n\n /**\n * Runs a lightweight expression stored in a string.\n *\n * @param value String containing the expression or literal value\n * @param context Parameter object for the expression with details of app state\n * @returns Result of evaluated expression, if found, or the literal value otherwise\n */\n runExpression(value: string | any , context?: any) {\n if (typeof value === 'string' ) {\n return this.evaluateExpression(value, context);\n } else {\n const duplicate = Object.assign({}, value);\n Object.keys(duplicate).forEach( (key) => {\n duplicate[key] = this.evaluateExpression(duplicate[key], context);\n });\n return duplicate;\n }\n }\n\n private evaluateExpression(value: string, context?: any): string {\n const pattern = new RegExp(/\\$\\((.*\\)?)\\)/g);\n const matches = pattern.exec(value);\n\n if (matches && matches.length > 1) {\n const expression = matches[1];\n const fn = new Function('context', `return ${expression}`);\n const result = fn(context);\n\n return result;\n }\n return value;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from '@angular/core';\nimport { ExtensionConfig, ExtensionRef } from '../config/extension.config';\nimport { ExtensionService } from '../services/extension.service';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { ViewerExtensionRef } from '../config/viewer.extensions';\nimport { DocumentListPresetRef } from '../config/document-list.extensions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppExtensionService {\n references$: Observable<ExtensionRef[]>;\n private _references = new BehaviorSubject<ExtensionRef[]>([]);\n\n constructor(protected extensionService: ExtensionService) {\n this.references$ = this._references.asObservable();\n }\n\n async load() {\n const config = await this.extensionService.load();\n this.setup(config);\n }\n\n setup(config: ExtensionConfig) {\n if (!config) {\n return;\n }\n\n const references = (config.$references || [])\n .filter((entry) => typeof entry === 'object')\n .map((entry) => entry as ExtensionRef);\n this._references.next(references);\n }\n\n /**\n * Provides a collection of document list columns for the particular preset.\n * The result is filtered by the **disabled** state.\n *\n * @param key Preset key.\n * @returns list of document list presets\n */\n getDocumentListPreset(key: string): DocumentListPresetRef[] {\n return this.extensionService\n .getElements<DocumentListPresetRef>(\n `features.documentList.${key}`\n )\n .filter((entry) => !entry.disabled);\n }\n\n /**\n * Provides a list of the Viewer content extensions,\n * filtered by **disabled** state and **rules**.\n *\n * @returns list of viewer extension references\n */\n getViewerExtensions(): ViewerExtensionRef[] {\n return this.extensionService\n .getElements<ViewerExtensionRef>('features.viewer.extensions')\n .filter((extension) => !this.isViewerExtensionDisabled(extension));\n }\n\n protected isViewerExtensionDisabled(extension: ViewerExtensionRef): boolean {\n if (extension) {\n if (extension.disabled) {\n return true;\n }\n\n if (extension.rules?.disabled) {\n return this.extensionService.evaluateRule(extension.rules.disabled);\n }\n }\n\n return false;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, ComponentRef, OnInit, ViewChild, ViewContainerRef, OnDestroy, OnChanges } from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-preview-extension',\n standalone: true,\n template: `<div #content></div>`\n})\nexport class PreviewExtensionComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** ID string of the component to preview. */\n @Input()\n id: string;\n\n /** URL of the content in the repository. */\n @Input()\n url: string;\n\n /** File extension (.jpg, .png, etc) for the viewer. */\n @Input()\n extension: string;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensionService: ExtensionService) {}\n\n ngOnInit() {\n if (!this.id) {\n return;\n }\n\n const componentType = this.extensionService.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges() {\n this.updateInstance();\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n const instance = this.componentRef.instance;\n\n instance.url = this.url;\n instance.extension = this.extension;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n Input,\n OnInit,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n ComponentRef,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-dynamic-column',\n standalone: true,\n template: `<ng-container #content></ng-container>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'adf-dynamic-column' },\n styles: [\n `\n .adf-dynamic-column {\n display: flex;\n align-items: center;\n width: inherit;\n }\n `\n ]\n})\nexport class DynamicColumnComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n @Input()\n id: string;\n\n @Input()\n context: any;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnInit() {\n const componentType = this.extensions.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.node) {\n this.updateInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.instance.context = this.context;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, ComponentRef, ViewChild, ViewContainerRef, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\nimport { ExtensionComponent } from '../../services/component-register.service';\n\n// cSpell:words lifecycle\n@Component({\n selector: 'adf-dynamic-component',\n standalone: true,\n template: `<div #content></div>`\n})\nexport class DynamicExtensionComponent implements OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** Unique ID string for the component to show. */\n @Input() id: string;\n\n /** Data for the dynamically-loaded component instance. */\n @Input() data: any;\n\n private componentRef: ComponentRef<ExtensionComponent>;\n private loaded: boolean = false;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this.loaded) {\n this.loadComponent();\n this.loaded = true;\n }\n\n if (changes.data) {\n this.data = changes.data.currentValue;\n }\n\n this.updateInstance();\n this.proxy('ngOnChanges', changes);\n }\n\n ngOnDestroy() {\n if (this.componentCreated()) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private loadComponent() {\n const componentType = this.extensions.getComponentById<ExtensionComponent>(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n }\n }\n\n private updateInstance() {\n if (this.componentCreated()) {\n this.componentRef.instance.data = this.data;\n }\n }\n\n private proxy(lifecycleMethod: string, ...args: any[]) {\n if (this.componentCreated() && this.lifecycleHookIsImplemented(lifecycleMethod)) {\n // eslint-disable-next-line prefer-spread\n this.componentRef.instance[lifecycleMethod].apply(this.componentRef.instance, args);\n }\n }\n\n private componentCreated(): boolean {\n return !!this.componentRef && !!this.componentRef.instance;\n }\n\n private lifecycleHookIsImplemented(lifecycleMethod: string): boolean {\n return !!this.componentRef.instance[lifecycleMethod];\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, OnInit, OnDestroy, ViewChild, ViewContainerRef, ComponentRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { Node } from '@alfresco/js-api';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-dynamic-tab',\n standalone: true,\n template: `<div #content></div>`\n})\nexport class DynamicTabComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** Unique ID string for the component to show. */\n @Input()\n id: string;\n\n @Input()\n node: Node;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnInit() {\n const componentType = this.extensions.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.node) {\n this.updateInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.instance.node = this.node;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './viewer/viewer-extension.interface';\nexport * from './viewer/preview-extension.component';\nexport * from './dynamic-column/dynamic-column.component';\nexport * from './dynamic-component/dynamic.component';\nexport * from './dynamic-tab/dynamic-tab.component';\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AppExtensionService } from './app-extension.service';\n\nexport const setupExtensions = (appExtensionService: AppExtensionService) => () => appExtensionService.load();\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DynamicExtensionComponent } from './components/dynamic-component/dynamic.component';\nimport { DynamicTabComponent } from './components/dynamic-tab/dynamic-tab.component';\nimport { DynamicColumnComponent } from './components/dynamic-column/dynamic-column.component';\nimport { PreviewExtensionComponent } from './components/viewer/preview-extension.component';\nimport { NgModule, ModuleWithProviders, APP_INITIALIZER } from '@angular/core';\nimport { AppExtensionService } from './services/app-extension.service';\nimport { setupExtensions } from './services/startup-extension-factory';\n\nexport const EXTENSION_DIRECTIVES = [DynamicExtensionComponent, DynamicTabComponent, DynamicColumnComponent, PreviewExtensionComponent] as const;\n\n/** @deprecated import EXTENSION_DIRECTIVES or standalone components instead */\n@NgModule({\n imports: [...EXTENSION_DIRECTIVES],\n exports: [...EXTENSION_DIRECTIVES]\n})\nexport class ExtensionsModule {\n static forRoot(): ModuleWithProviders<ExtensionsModule> {\n return {\n ngModule: ExtensionsModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: setupExtensions,\n deps: [AppExtensionService],\n multi: true\n }\n ]\n };\n }\n\n /**\n * @deprecated use `ExtensionsModule` instead, `EXTENSION_DIRECTIVES` or direct standalone components\n * @returns Module with providers\n */\n static forChild(): ModuleWithProviders<ExtensionsModule> {\n return {\n ngModule: ExtensionsModule\n };\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './lib/config/action.extensions';\nexport * from './lib/config/document-list.extensions';\nexport * from './lib/config/extension-element';\nexport * from './lib/config/extension-utils';\nexport * from './lib/config/extension.config';\nexport * from './lib/config/icon.extensions';\nexport * from './lib/config/navbar.extensions';\nexport * from './lib/config/permission.extensions';\nexport * from './lib/config/routing.extensions';\nexport * from './lib/config/rule.extensions';\nexport * from './lib/config/sidebar.extensions';\nexport * from './lib/config/viewer.extensions';\n\nexport * from './lib/services/extension-loader.service';\nexport * from './lib/services/extension.service';\nexport * from './lib/services/component-register.service';\nexport * from './lib/services/app-extension.service';\nexport * from './lib/services/rule.service';\n\nexport * from './lib/store/states/navigation.state';\nexport * from './lib/store/states/profile.state';\nexport * from './lib/store/states/selection.state';\nexport * from './lib/store/states/repository.state';\n\nexport * from './lib/components/public-api';\nexport * from './lib/extensions.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ExtensionLoaderService","core.every","core.some","core.not","i2.ComponentRegisterService","i3.RuleService","i1.ExtensionService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adf-extensions.mjs","sources":["../../../../lib/extensions/src/lib/config/action.extensions.ts","../../../../lib/extensions/src/lib/config/extension-utils.ts","../../../../lib/extensions/src/lib/config/rule.extensions.ts","../../../../lib/extensions/src/lib/services/extension-loader.service.ts","../../../../lib/extensions/src/lib/evaluators/core.evaluators.ts","../../../../lib/extensions/src/lib/services/component-register.service.ts","../../../../lib/extensions/src/lib/services/rule.service.ts","../../../../lib/extensions/src/lib/services/extension.service.ts","../../../../lib/extensions/src/lib/services/app-extension.service.ts","../../../../lib/extensions/src/lib/components/viewer/preview-extension.component.ts","../../../../lib/extensions/src/lib/components/dynamic-column/dynamic-column.component.ts","../../../../lib/extensions/src/lib/components/dynamic-component/dynamic.component.ts","../../../../lib/extensions/src/lib/components/dynamic-tab/dynamic-tab.component.ts","../../../../lib/extensions/src/lib/components/public-api.ts","../../../../lib/extensions/src/lib/services/startup-extension-factory.ts","../../../../lib/extensions/src/lib/extensions.module.ts","../../../../lib/extensions/src/public-api.ts","../../../../lib/extensions/src/adf-extensions.ts"],"sourcesContent":["/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\n// eslint-disable-next-line no-shadow\nexport enum ContentActionType {\n default = 'default',\n button = 'button',\n separator = 'separator',\n menu = 'menu',\n custom = 'custom'\n}\n\nexport interface ContentActionRef extends ExtensionElement {\n type: ContentActionType;\n\n title?: string;\n tooltip?: string;\n description?: string;\n icon?: string;\n children?: Array<ContentActionRef>;\n component?: string;\n data?: any;\n color?: string;\n actions?: {\n [key: string]: string;\n click?: string;\n };\n rules?: {\n [key: string]: string;\n enabled?: string;\n visible?: string;\n };\n}\n\nexport interface ActionRef {\n id: string;\n type: string;\n payload?: any;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContentActionRef, ContentActionType } from './action.extensions';\n\nexport const getValue = (target: any, key: string): any => {\n if (!target) {\n return undefined;\n }\n\n const keys = key.split('.');\n key = '';\n\n do {\n key += keys.shift();\n const value = target[key];\n if (\n value !== undefined &&\n (typeof value === 'object' || !keys.length)\n ) {\n target = value;\n key = '';\n } else if (!keys.length) {\n target = undefined;\n } else {\n key += '.';\n }\n } while (keys.length);\n\n return target;\n};\n\nexport const filterEnabled = (entry: { disabled?: boolean }): boolean => !entry.disabled;\n\nexport const sortByOrder = (\n a: { order?: number | undefined },\n b: { order?: number | undefined }\n) => {\n const left = a.order === undefined ? Number.MAX_SAFE_INTEGER : a.order;\n const right = b.order === undefined ? Number.MAX_SAFE_INTEGER : b.order;\n return left - right;\n};\n\nexport const reduceSeparators = (\n acc: ContentActionRef[],\n el: ContentActionRef,\n i: number,\n arr: ContentActionRef[]\n): ContentActionRef[] => {\n // remove leading separator\n if (i === 0) {\n if (arr[i].type === ContentActionType.separator) {\n return acc;\n }\n }\n // remove duplicate separators\n if (i > 0) {\n const prev = arr[i - 1];\n if (\n prev.type === ContentActionType.separator &&\n el.type === ContentActionType.separator\n ) {\n return acc;\n }\n\n // remove trailing separator\n if (i === arr.length - 1) {\n if (el.type === ContentActionType.separator) {\n return acc;\n }\n }\n }\n\n return acc.concat(el);\n};\n\nexport const reduceEmptyMenus = (\n acc: ContentActionRef[],\n el: ContentActionRef\n): ContentActionRef[] => {\n if (el.type === ContentActionType.menu) {\n if ((el.children || []).length === 0) {\n return acc;\n }\n }\n return acc.concat(el);\n};\n\nexport const mergeObjects = (...objects: any[]): any => {\n const result = {};\n\n objects.forEach((source) => {\n Object.keys(source).forEach((prop) => {\n let replace = false;\n\n if (prop.endsWith('.$replace')) {\n replace = true;\n prop = prop.replace('.$replace', '');\n }\n\n if (!prop.startsWith('$')) {\n if (replace) {\n result[prop] = source[`${prop}.$replace`];\n } else if (prop in result && Array.isArray(result[prop])) {\n if (Array.isArray(source[prop])) {\n result[prop] = mergeArrays(result[prop], source[prop]);\n } else {\n result[prop] = [...result[prop], source[prop]];\n }\n } else if (prop in result && typeof result[prop] === 'object') {\n result[prop] = mergeObjects(result[prop], source[prop]);\n } else {\n result[prop] = source[prop];\n }\n }\n });\n });\n\n return result;\n};\n\nexport const mergeArrays = (left: any[], right: any[]): any[] => {\n const result = [];\n const map = {};\n\n (left || []).forEach((entry) => {\n const element = entry;\n if (element && Object.prototype.hasOwnProperty.call(element, 'id')) {\n map[element.id] = element;\n } else {\n result.push(element);\n }\n });\n\n (right || []).forEach((entry) => {\n const element = entry;\n if (element && Object.prototype.hasOwnProperty.call(element, 'id') && map[element.id]) {\n const merged = mergeObjects(map[element.id], element);\n map[element.id] = merged;\n } else {\n result.push(element);\n }\n });\n\n return Object.keys(map).map((key) => map[key]).concat(result);\n};\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SelectionState } from '../store/states/selection.state';\nimport { NavigationState } from '../store/states/navigation.state';\nimport { NodePermissions } from './permission.extensions';\nimport { ProfileState } from '../store/states/profile.state';\nimport { RepositoryInfo } from '@alfresco/js-api';\n\nexport type RuleEvaluator = (context: RuleContext, ...args: any[]) => boolean;\n\nexport interface RuleContext {\n repository: RepositoryInfo;\n auth: any;\n selection: SelectionState;\n navigation: NavigationState;\n profile: ProfileState;\n permissions: NodePermissions;\n\n getEvaluator(key: string): RuleEvaluator;\n}\n\nexport class RuleRef {\n type: string;\n id?: string;\n parameters?: Array<RuleParameter>;\n}\n\nexport interface RuleParameter {\n type: string;\n value: any;\n parameters?: Array<RuleParameter>;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActionRef, ContentActionRef, ContentActionType } from '../config/action.extensions';\nimport { ExtensionElement } from '../config/extension-element';\nimport { filterEnabled, getValue, mergeObjects, sortByOrder } from '../config/extension-utils';\nimport { ExtensionConfig, ExtensionRef } from '../config/extension.config';\nimport { RouteRef } from '../config/routing.extensions';\nimport { RuleRef } from '../config/rule.extensions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtensionLoaderService {\n constructor(private http: HttpClient) {\n }\n\n load(\n configPath: string,\n pluginsPath: string,\n extensions?: string[],\n extensionValues?: ExtensionConfig[]\n ): Promise<ExtensionConfig> {\n return new Promise<any>((resolve) => {\n this.loadConfig(configPath, 0).then((result) => {\n if (result) {\n let config = result.config;\n\n const override = sessionStorage.getItem('app.extension.config');\n if (override) {\n config = JSON.parse(override);\n }\n\n if (!config.$references?.length) {\n config.$references = this.filterIgnoredExtensions(extensions || [], config.$ignoreReferenceList);\n } else {\n config.$references = this.filterIgnoredExtensions(config.$references, config.$ignoreReferenceList);\n }\n\n if (config.$references?.length > 0 || extensionValues) {\n const plugins = (config.$references ?? []).map((name, idx) =>\n this.loadConfig(`${pluginsPath}/${name}`, idx)\n );\n\n Promise.all(plugins).then((results) => {\n let configs = results\n .filter((entry) => entry)\n .sort(sortByOrder)\n .map((entry) => entry.config);\n\n if (extensionValues) {\n configs = [\n ...configs,\n ...extensionValues\n ];\n }\n\n\n if (configs.length > 0) {\n config = mergeObjects(config, ...configs);\n }\n\n config = {\n ...config,\n ...this.getMetadata(result.config),\n $references: configs.map((ext) => this.getMetadata(ext))\n };\n\n resolve(config);\n });\n } else {\n resolve(config);\n }\n }\n });\n });\n }\n\n /**\n * Retrieves configuration elements.\n * Filters element by **enabled** and **order** attributes.\n * Example:\n * `getElements<ViewerExtensionRef>(config, 'features.viewer.extensions')`\n *\n * @param config configuration settings\n * @param key element key\n * @param fallback fallback array of values\n * @returns list of elements\n */\n getElements<T extends ExtensionElement>(\n config: ExtensionConfig,\n key: string,\n fallback: Array<T> = []\n ): Array<T> {\n const values = getValue(config, key) || fallback || [];\n return values.filter(filterEnabled).sort(sortByOrder);\n }\n\n getContentActions(\n config: ExtensionConfig,\n key: string\n ): Array<ContentActionRef> {\n return this.getElements(config, key).map(this.setActionDefaults);\n }\n\n getRules(config: ExtensionConfig): Array<RuleRef> {\n if (config?.rules) {\n return config.rules;\n }\n return [];\n }\n\n getRoutes(config: ExtensionConfig): Array<RouteRef> {\n if (config) {\n return config.routes || [];\n }\n return [];\n }\n\n getActions(config: ExtensionConfig): Array<ActionRef> {\n if (config) {\n return config.actions || [];\n }\n return [];\n }\n\n getFeatures(config: ExtensionConfig): any {\n if (config) {\n return config.features || [];\n }\n return [];\n }\n\n protected getMetadata(config: ExtensionConfig): ExtensionRef {\n const result: any = {};\n\n Object\n .keys(config)\n .filter((key) => key.startsWith('$'))\n .forEach((key) => {\n result[key] = config[key];\n });\n\n return result;\n }\n\n protected loadConfig(\n url: string,\n order: number\n ): Promise<{ order: number; config: ExtensionConfig }> {\n return new Promise((resolve) => {\n this.http.get<ExtensionConfig>(url).subscribe(\n (config) => {\n resolve({\n order,\n config\n });\n },\n () => {\n resolve(null);\n }\n );\n });\n }\n\n protected setActionDefaults(action: ContentActionRef): ContentActionRef {\n if (action) {\n action.type = action.type || ContentActionType.default;\n action.icon = action.icon || 'extension';\n }\n return action;\n }\n\n private filterIgnoredExtensions(extensions: Array<string | ExtensionRef>, ignoreReferenceList: string[]): Array<string | ExtensionRef> {\n if (!ignoreReferenceList?.length) {\n return extensions;\n }\n\n return extensions.map((file: string) => file.match('(?!.*/).+')[0]).filter((fileName: string) => !ignoreReferenceList.includes(fileName));\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RuleContext, RuleParameter } from '../config/rule.extensions';\n\nexport const not = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .every((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return !evaluator(context, ...(arg.parameters || []));\n });\n};\n\nexport const every = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .every((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return evaluator(context, ...(arg.parameters || []));\n });\n};\n\nexport const some = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .some((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return evaluator(context, ...(arg.parameters || []));\n });\n};\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable, Type } from '@angular/core';\n\nexport interface ExtensionComponent {\n data: any;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentRegisterService {\n components: { [key: string]: Type<any> } = {};\n\n setComponents(values: { [key: string]: Type<any> }) {\n if (values) {\n this.components = Object.assign({}, this.components, values);\n }\n }\n\n getComponentById<T>(id: string): Type<T> {\n return this.components[id];\n }\n\n hasComponentById(id: string): boolean {\n return !!this.getComponentById(id);\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from '@angular/core';\nimport { RuleRef, RuleContext, RuleEvaluator, RuleParameter } from '../config/rule.extensions';\nimport { ExtensionConfig } from '../config/extension.config';\nimport { ExtensionLoaderService } from './extension-loader.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RuleService {\n context: RuleContext = null;\n rules: Array<RuleRef> = [];\n evaluators: { [key: string]: RuleEvaluator } = {};\n\n constructor(protected loader: ExtensionLoaderService) {}\n\n setup(config: ExtensionConfig) {\n this.rules = this.loader.getRules(config);\n }\n\n /**\n * Adds one or more new rule evaluators to the existing set.\n *\n * @param values The new evaluators to add\n */\n setEvaluators(values: { [key: string]: RuleEvaluator }) {\n if (values) {\n this.evaluators = Object.assign({}, this.evaluators, values);\n }\n }\n\n /**\n * Retrieves a rule using its ID value.\n *\n * @param id The ID value to look for\n * @returns The rule or null if not found\n */\n getRuleById(id: string): RuleRef {\n return this.rules.find((ref) => ref.id === id);\n }\n\n /**\n * Retrieves a RuleEvaluator function using its key name.\n *\n * @param key Key name to look for\n * @returns RuleEvaluator or null if not found\n */\n getEvaluator(key: string): RuleEvaluator {\n if (key?.startsWith('!')) {\n const fn = this.evaluators[key.substring(1)];\n return (context: RuleContext, ...args: RuleParameter[]): boolean => !fn(context, ...args);\n }\n return this.evaluators[key];\n }\n\n /**\n * Evaluates a rule.\n *\n * @param ruleId ID of the rule to evaluate\n * @param context Custom rule execution context.\n * @returns True if the rule passed, false otherwise\n */\n evaluateRule(ruleId: string, context?: RuleContext): boolean {\n const ruleRef = this.getRuleById(ruleId);\n context = context || this.context;\n\n if (ruleRef) {\n const evaluator = this.getEvaluator(ruleRef.type);\n if (evaluator) {\n return evaluator(context, ...ruleRef.parameters);\n }\n } else {\n const evaluator = this.getEvaluator(ruleId);\n if (evaluator) {\n return evaluator(context);\n }\n }\n return false;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable, Type, InjectionToken, Inject } from '@angular/core';\nimport { RuleEvaluator, RuleRef, RuleContext } from '../config/rule.extensions';\nimport { ExtensionConfig } from '../config/extension.config';\nimport { ExtensionLoaderService } from './extension-loader.service';\nimport { RouteRef } from '../config/routing.extensions';\nimport { ActionRef } from '../config/action.extensions';\nimport * as core from '../evaluators/core.evaluators';\nimport { ComponentRegisterService } from './component-register.service';\nimport { RuleService } from './rule.service';\nimport { ExtensionElement } from '../config/extension-element';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n/**\n * The default extensions factory\n *\n * @returns the list of extension json files\n */\nexport function extensionJsonsFactory() {\n return [];\n};\n\nexport const EXTENSION_JSONS = new InjectionToken<string[][]>('extension-jsons', {\n providedIn: 'root',\n factory: extensionJsonsFactory\n});\n\nexport const EXTENSION_JSON_VALUES = new InjectionToken<string[][]>('extension-jsons-values', {\n providedIn: 'root',\n factory: extensionJsonsFactory\n});\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n/**\n * Provides the extension json values for the angular modules\n *\n * @param jsons files to provide\n * @returns a provider section\n */\nexport function provideExtensionConfig(jsons: string[]) {\n return {\n provide: EXTENSION_JSONS,\n useValue: jsons,\n multi: true\n };\n};\n\n/**\n * Provides the extension json raw values for the angular modules\n *\n * @param extensionConfigValue config value\n * @returns a provider section\n */\nexport function provideExtensionConfigValues(extensionConfigValue: ExtensionConfig[]) {\n return {\n provide: EXTENSION_JSON_VALUES,\n useValue: extensionConfigValue,\n multi: true\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtensionService {\n configPath = 'assets/app.extensions.json';\n pluginsPath = 'assets/plugins';\n\n routes: Array<RouteRef> = [];\n actions: Array<ActionRef> = [];\n features: Array<any> = [];\n authGuards: { [key: string]: Type<any> } = {};\n\n setup$: Observable<ExtensionConfig>;\n\n protected config: ExtensionConfig = null;\n protected onSetup$ = new BehaviorSubject<ExtensionConfig>(this.config);\n\n constructor(\n protected loader: ExtensionLoaderService,\n protected componentRegister: ComponentRegisterService,\n protected ruleService: RuleService,\n @Inject(EXTENSION_JSONS) protected extensionJsons: string[],\n @Inject(EXTENSION_JSON_VALUES) protected extensionJsonValues: ExtensionConfig[]\n ) {\n this.setup$ = this.onSetup$.asObservable();\n }\n\n /**\n * Loads and registers an extension config file and plugins (specified by path properties).\n *\n * @returns The loaded config data\n */\n async load(): Promise<ExtensionConfig> {\n const config = await this.loader.load(\n this.configPath,\n this.pluginsPath,\n this.extensionJsons.flat(),\n this.extensionJsonValues.flat()\n );\n\n this.setup(config);\n return config;\n }\n\n /**\n * Registers extensions from a config object.\n *\n * @param config Object with config data\n */\n setup(config: ExtensionConfig) {\n if (!config) {\n console.warn('Extension configuration not found');\n return;\n }\n\n this.config = config;\n\n this.setEvaluators({\n 'core.every': core.every,\n 'core.some': core.some,\n 'core.not': core.not\n });\n\n this.actions = this.loader.getActions(config);\n this.routes = this.loader.getRoutes(config);\n this.features = this.loader.getFeatures(config);\n\n this.ruleService.setup(config);\n this.onSetup$.next(config);\n }\n\n /**\n * Gets features by key.\n *\n * @param key Key string using dot notation or array of strings\n * @param defaultValue Default value returned if feature is not found, default is empty array\n * @returns Feature found by key\n */\n getFeature<T = any[]>(key: string | string[], defaultValue: any = []): T {\n const properties: string[] = Array.isArray(key) ? key : key.split('.');\n return properties.reduce((prev, curr) => prev?.[curr], this.features) || defaultValue;\n }\n\n getElements<T extends ExtensionElement>(key: string, fallback: Array<T> = []): Array<T> {\n return this.loader.getElements(this.config, key, fallback);\n }\n\n /**\n * Adds one or more new rule evaluators to the existing set.\n *\n * @param values The new evaluators to add\n */\n setEvaluators(values: { [key: string]: RuleEvaluator }) {\n this.ruleService.setEvaluators(values);\n }\n\n /**\n * Adds one or more new auth guards to the existing set.\n *\n * @param values The new auth guards to add\n */\n setAuthGuards(values: { [key: string]: Type<any> }) {\n if (values) {\n this.authGuards = Object.assign({}, this.authGuards, values);\n }\n }\n\n /**\n * Adds one or more new components to the existing set.\n *\n * @param values The new components to add\n */\n setComponents(values: { [key: string]: Type<any> }) {\n this.componentRegister.setComponents(values);\n }\n\n /**\n * Retrieves a route using its ID value.\n *\n * @param id The ID value to look for\n * @returns The route or null if not found\n */\n getRouteById(id: string): RouteRef {\n return this.routes.find((route) => route.id === id);\n }\n\n /**\n * Retrieves one or more auth guards using an array of ID values.\n *\n * @param ids Array of ID value to look for\n * @returns Array of auth guards or empty array if none were found\n */\n getAuthGuards(ids: string[]): Array<Type<any>> {\n return (ids || [])\n .map((id) => this.authGuards[id])\n .filter((guard) => guard);\n }\n\n /**\n * Retrieves an action using its ID value.\n *\n * @param id The ID value to look for\n * @returns Action or null if not found\n */\n getActionById(id: string): ActionRef {\n return this.actions.find((action) => action.id === id);\n }\n\n /**\n * Retrieves a RuleEvaluator function using its key name.\n *\n * @param key Key name to look for\n * @returns RuleEvaluator or null if not found\n */\n getEvaluator(key: string): RuleEvaluator {\n return this.ruleService.getEvaluator(key);\n }\n\n /**\n * Evaluates a rule.\n *\n * @param ruleId ID of the rule to evaluate\n * @param context Custom rule execution context.\n * @returns True if the rule passed, false otherwise\n */\n evaluateRule(ruleId: string, context?: RuleContext): boolean {\n return this.ruleService.evaluateRule(ruleId, context);\n }\n\n /**\n * Retrieves a registered extension component using its ID value.\n *\n * @param id The ID value to look for\n * @returns The component or null if not found\n */\n getComponentById<T>(id: string) {\n return this.componentRegister.getComponentById<T>(id);\n }\n\n /**\n * Retrieves a rule using its ID value.\n *\n * @param id The ID value to look for\n * @returns The rule or null if not found\n */\n getRuleById(id: string): RuleRef {\n return this.ruleService.getRuleById(id);\n }\n\n /**\n * Runs a lightweight expression stored in a string.\n *\n * @param value String containing the expression or literal value\n * @param context Parameter object for the expression with details of app state\n * @returns Result of evaluated expression, if found, or the literal value otherwise\n */\n runExpression(value: string | any , context?: any) {\n if (typeof value === 'string' ) {\n return this.evaluateExpression(value, context);\n } else {\n const duplicate = Object.assign({}, value);\n Object.keys(duplicate).forEach( (key) => {\n duplicate[key] = this.evaluateExpression(duplicate[key], context);\n });\n return duplicate;\n }\n }\n\n private evaluateExpression(value: string, context?: any): string {\n const pattern = new RegExp(/\\$\\((.*\\)?)\\)/g);\n const matches = pattern.exec(value);\n\n if (matches && matches.length > 1) {\n const expression = matches[1];\n const fn = new Function('context', `return ${expression}`);\n const result = fn(context);\n\n return result;\n }\n return value;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from '@angular/core';\nimport { ExtensionConfig, ExtensionRef } from '../config/extension.config';\nimport { ExtensionService } from '../services/extension.service';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { ViewerExtensionRef } from '../config/viewer.extensions';\nimport { DocumentListPresetRef } from '../config/document-list.extensions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppExtensionService {\n references$: Observable<ExtensionRef[]>;\n private _references = new BehaviorSubject<ExtensionRef[]>([]);\n\n constructor(protected extensionService: ExtensionService) {\n this.references$ = this._references.asObservable();\n }\n\n async load() {\n const config = await this.extensionService.load();\n this.setup(config);\n }\n\n setup(config: ExtensionConfig) {\n if (!config) {\n return;\n }\n\n const references = (config.$references || [])\n .filter((entry) => typeof entry === 'object')\n .map((entry) => entry as ExtensionRef);\n this._references.next(references);\n }\n\n /**\n * Provides a collection of document list columns for the particular preset.\n * The result is filtered by the **disabled** state.\n *\n * @param key Preset key.\n * @returns list of document list presets\n */\n getDocumentListPreset(key: string): DocumentListPresetRef[] {\n return this.extensionService\n .getElements<DocumentListPresetRef>(\n `features.documentList.${key}`\n )\n .filter((entry) => !entry.disabled);\n }\n\n /**\n * Provides a list of the Viewer content extensions,\n * filtered by **disabled** state and **rules**.\n *\n * @returns list of viewer extension references\n */\n getViewerExtensions(): ViewerExtensionRef[] {\n return this.extensionService\n .getElements<ViewerExtensionRef>('features.viewer.extensions')\n .filter((extension) => !this.isViewerExtensionDisabled(extension));\n }\n\n protected isViewerExtensionDisabled(extension: ViewerExtensionRef): boolean {\n if (extension) {\n if (extension.disabled) {\n return true;\n }\n\n if (extension.rules?.disabled) {\n return this.extensionService.evaluateRule(extension.rules.disabled);\n }\n }\n\n return false;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, ComponentRef, OnInit, ViewChild, ViewContainerRef, OnDestroy, OnChanges } from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-preview-extension',\n standalone: true,\n template: `<div #content></div>`\n})\nexport class PreviewExtensionComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** ID string of the component to preview. */\n @Input()\n id: string;\n\n /** Identifier of a node that is opened by the viewer. */\n @Input()\n nodeId: string = null;\n\n /** URL of the content in the repository. */\n @Input()\n url: string;\n\n /** File extension (.jpg, .png, etc) for the viewer. */\n @Input()\n extension: string;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensionService: ExtensionService) {}\n\n ngOnInit() {\n if (!this.id) {\n return;\n }\n\n const componentType = this.extensionService.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges() {\n this.updateInstance();\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n const instance = this.componentRef.instance;\n\n instance.url = this.url;\n instance.extension = this.extension;\n instance.nodeId = this.nodeId;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n Input,\n OnInit,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n ComponentRef,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-dynamic-column',\n standalone: true,\n template: `<ng-container #content></ng-container>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'adf-dynamic-column' },\n styles: [\n `\n .adf-dynamic-column {\n display: flex;\n align-items: center;\n width: inherit;\n }\n `\n ]\n})\nexport class DynamicColumnComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n @Input()\n id: string;\n\n @Input()\n context: any;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnInit() {\n const componentType = this.extensions.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.node) {\n this.updateInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.instance.context = this.context;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, ComponentRef, ViewChild, ViewContainerRef, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\nimport { ExtensionComponent } from '../../services/component-register.service';\n\n// cSpell:words lifecycle\n@Component({\n selector: 'adf-dynamic-component',\n standalone: true,\n template: `<div #content></div>`\n})\nexport class DynamicExtensionComponent implements OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** Unique ID string for the component to show. */\n @Input() id: string;\n\n /** Data for the dynamically-loaded component instance. */\n @Input() data: any;\n\n private componentRef: ComponentRef<ExtensionComponent>;\n private loaded: boolean = false;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this.loaded) {\n this.loadComponent();\n this.loaded = true;\n }\n\n if (changes.data) {\n this.data = changes.data.currentValue;\n }\n\n this.updateInstance();\n this.proxy('ngOnChanges', changes);\n }\n\n ngOnDestroy() {\n if (this.componentCreated()) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private loadComponent() {\n const componentType = this.extensions.getComponentById<ExtensionComponent>(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n }\n }\n\n private updateInstance() {\n if (this.componentCreated()) {\n this.componentRef.instance.data = this.data;\n }\n }\n\n private proxy(lifecycleMethod: string, ...args: any[]) {\n if (this.componentCreated() && this.lifecycleHookIsImplemented(lifecycleMethod)) {\n // eslint-disable-next-line prefer-spread\n this.componentRef.instance[lifecycleMethod].apply(this.componentRef.instance, args);\n }\n }\n\n private componentCreated(): boolean {\n return !!this.componentRef && !!this.componentRef.instance;\n }\n\n private lifecycleHookIsImplemented(lifecycleMethod: string): boolean {\n return !!this.componentRef.instance[lifecycleMethod];\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, OnInit, OnDestroy, ViewChild, ViewContainerRef, ComponentRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { Node } from '@alfresco/js-api';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-dynamic-tab',\n standalone: true,\n template: `<div #content></div>`\n})\nexport class DynamicTabComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** Unique ID string for the component to show. */\n @Input()\n id: string;\n\n @Input()\n node: Node;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnInit() {\n const componentType = this.extensions.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.node) {\n this.updateInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.instance.node = this.node;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './viewer/viewer-extension.interface';\nexport * from './viewer/preview-extension.component';\nexport * from './dynamic-column/dynamic-column.component';\nexport * from './dynamic-component/dynamic.component';\nexport * from './dynamic-tab/dynamic-tab.component';\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AppExtensionService } from './app-extension.service';\n\nexport const setupExtensions = (appExtensionService: AppExtensionService) => () => appExtensionService.load();\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DynamicExtensionComponent } from './components/dynamic-component/dynamic.component';\nimport { DynamicTabComponent } from './components/dynamic-tab/dynamic-tab.component';\nimport { DynamicColumnComponent } from './components/dynamic-column/dynamic-column.component';\nimport { PreviewExtensionComponent } from './components/viewer/preview-extension.component';\nimport { NgModule, ModuleWithProviders, APP_INITIALIZER } from '@angular/core';\nimport { AppExtensionService } from './services/app-extension.service';\nimport { setupExtensions } from './services/startup-extension-factory';\n\nexport const EXTENSION_DIRECTIVES = [DynamicExtensionComponent, DynamicTabComponent, DynamicColumnComponent, PreviewExtensionComponent] as const;\n\n/** @deprecated import EXTENSION_DIRECTIVES or standalone components instead */\n@NgModule({\n imports: [...EXTENSION_DIRECTIVES],\n exports: [...EXTENSION_DIRECTIVES]\n})\nexport class ExtensionsModule {\n static forRoot(): ModuleWithProviders<ExtensionsModule> {\n return {\n ngModule: ExtensionsModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: setupExtensions,\n deps: [AppExtensionService],\n multi: true\n }\n ]\n };\n }\n\n /**\n * @deprecated use `ExtensionsModule` instead, `EXTENSION_DIRECTIVES` or direct standalone components\n * @returns Module with providers\n */\n static forChild(): ModuleWithProviders<ExtensionsModule> {\n return {\n ngModule: ExtensionsModule\n };\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './lib/config/action.extensions';\nexport * from './lib/config/document-list.extensions';\nexport * from './lib/config/extension-element';\nexport * from './lib/config/extension-utils';\nexport * from './lib/config/extension.config';\nexport * from './lib/config/icon.extensions';\nexport * from './lib/config/navbar.extensions';\nexport * from './lib/config/permission.extensions';\nexport * from './lib/config/routing.extensions';\nexport * from './lib/config/rule.extensions';\nexport * from './lib/config/sidebar.extensions';\nexport * from './lib/config/viewer.extensions';\n\nexport * from './lib/services/extension-loader.service';\nexport * from './lib/services/extension.service';\nexport * from './lib/services/component-register.service';\nexport * from './lib/services/app-extension.service';\nexport * from './lib/services/rule.service';\n\nexport * from './lib/store/states/navigation.state';\nexport * from './lib/store/states/profile.state';\nexport * from './lib/store/states/selection.state';\nexport * from './lib/store/states/repository.state';\n\nexport * from './lib/components/public-api';\nexport * from './lib/extensions.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ExtensionLoaderService","core.every","core.some","core.not","i2.ComponentRegisterService","i3.RuleService","i1.ExtensionService"],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;AAeG;AAIH;AACY,IAAA,kBAMX;AAND,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,GAM5B,EAAA,CAAA,CAAA;;AC1BD;;;;;;;;;;;;;;;AAeG;MAIU,QAAQ,GAAG,CAAC,MAAW,EAAE,GAAW,KAAS;IACtD,IAAI,CAAC,MAAM,EAAE;AACT,QAAA,OAAO,SAAS,CAAC;AACpB,KAAA;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5B,GAAG,GAAG,EAAE,CAAC;IAET,GAAG;AACC,QAAA,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;AACpB,QAAA,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC1B,IACI,KAAK,KAAK,SAAS;aAClB,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAC7C;YACE,MAAM,GAAG,KAAK,CAAC;YACf,GAAG,GAAG,EAAE,CAAC;AACZ,SAAA;AAAM,aAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACrB,MAAM,GAAG,SAAS,CAAC;AACtB,SAAA;AAAM,aAAA;YACH,GAAG,IAAI,GAAG,CAAC;AACd,SAAA;KACJ,QAAQ,IAAI,CAAC,MAAM,EAAE;AAEtB,IAAA,OAAO,MAAM,CAAC;AAClB,EAAE;AAEK,MAAM,aAAa,GAAG,CAAC,KAA6B,KAAc,CAAC,KAAK,CAAC,SAAS;MAE5E,WAAW,GAAG,CACvB,CAAiC,EACjC,CAAiC,KACjC;AACA,IAAA,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,GAAG,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC;AACvE,IAAA,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,KAAK,SAAS,GAAG,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC;IACxE,OAAO,IAAI,GAAG,KAAK,CAAC;AACxB,EAAE;AAEK,MAAM,gBAAgB,GAAG,CAC5B,GAAuB,EACvB,EAAoB,EACpB,CAAS,EACT,GAAuB,KACH;;IAEpB,IAAI,CAAC,KAAK,CAAC,EAAE;QACT,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,SAAS,EAAE;AAC7C,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;AACJ,KAAA;;IAED,IAAI,CAAC,GAAG,CAAC,EAAE;QACP,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,QAAA,IACI,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,SAAS;AACzC,YAAA,EAAE,CAAC,IAAI,KAAK,iBAAiB,CAAC,SAAS,EACzC;AACE,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;;AAGD,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB,CAAC,SAAS,EAAE;AACzC,gBAAA,OAAO,GAAG,CAAC;AACd,aAAA;AACJ,SAAA;AACJ,KAAA;AAED,IAAA,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1B,EAAE;MAEW,gBAAgB,GAAG,CAC5B,GAAuB,EACvB,EAAoB,KACA;AACpB,IAAA,IAAI,EAAE,CAAC,IAAI,KAAK,iBAAiB,CAAC,IAAI,EAAE;QACpC,IAAI,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,KAAK,CAAC,EAAE;AAClC,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC1B,EAAE;MAEW,YAAY,GAAG,CAAC,GAAG,OAAc,KAAS;IACnD,MAAM,MAAM,GAAG,EAAE,CAAC;AAElB,IAAA,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;QACvB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACjC,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;gBAC5B,OAAO,GAAG,IAAI,CAAC;gBACf,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACxC,aAAA;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACvB,gBAAA,IAAI,OAAO,EAAE;oBACT,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAG,EAAA,IAAI,CAAW,SAAA,CAAA,CAAC,CAAC;AAC7C,iBAAA;AAAM,qBAAA,IAAI,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;oBACtD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;AAC7B,wBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,qBAAA;AAAM,yBAAA;AACH,wBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAClD,qBAAA;AACJ,iBAAA;qBAAM,IAAI,IAAI,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;AAC3D,oBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,iBAAA;AAAM,qBAAA;oBACH,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;AACP,KAAC,CAAC,CAAC;AAEH,IAAA,OAAO,MAAM,CAAC;AAClB,EAAE;MAEW,WAAW,GAAG,CAAC,IAAW,EAAE,KAAY,KAAW;IAC5D,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,GAAG,GAAG,EAAE,CAAC;IAEf,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,KAAI;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;AAChE,YAAA,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;AAC7B,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxB,SAAA;AACL,KAAC,CAAC,CAAC;IAEH,CAAC,KAAK,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC,KAAK,KAAI;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC;QACtB,IAAI,OAAO,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AACnF,YAAA,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AACtD,YAAA,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;AAC5B,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxB,SAAA;AACL,KAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClE;;AC/JA;;;;;;;;;;;;;;;AAeG;MAqBU,OAAO,CAAA;AAInB;;MCXY,sBAAsB,CAAA;AAC/B,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAAhB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACnC;AAED,IAAA,IAAI,CACA,UAAkB,EAClB,WAAmB,EACnB,UAAqB,EACrB,eAAmC,EAAA;AAEnC,QAAA,OAAO,IAAI,OAAO,CAAM,CAAC,OAAO,KAAI;AAChC,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;;AAC3C,gBAAA,IAAI,MAAM,EAAE;AACR,oBAAA,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;oBAE3B,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAChE,oBAAA,IAAI,QAAQ,EAAE;AACV,wBAAA,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACjC,qBAAA;oBAED,IAAI,EAAC,CAAA,EAAA,GAAA,MAAM,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA,EAAE;AAC7B,wBAAA,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,UAAU,IAAI,EAAE,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACpG,qBAAA;AAAM,yBAAA;AACH,wBAAA,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACtG,qBAAA;oBAED,IAAI,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,IAAG,CAAC,IAAI,eAAe,EAAE;AACnD,wBAAA,MAAM,OAAO,GAAG,CAAC,CAAA,EAAA,GAAA,MAAM,CAAC,WAAW,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,KACrD,IAAI,CAAC,UAAU,CAAC,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,IAAI,CAAE,CAAA,EAAE,GAAG,CAAC,CACjD,CAAC;wBAEF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;4BAClC,IAAI,OAAO,GAAG,OAAO;AAChB,iCAAA,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC;iCACxB,IAAI,CAAC,WAAW,CAAC;iCACjB,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;AAElC,4BAAA,IAAI,eAAe,EAAE;AACjB,gCAAA,OAAO,GAAG;AACN,oCAAA,GAAG,OAAO;AACV,oCAAA,GAAG,eAAe;iCACrB,CAAC;AACL,6BAAA;AAGD,4BAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;gCACpB,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC;AAC7C,6BAAA;AAED,4BAAA,MAAM,GACC,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,MAAM,CACN,EAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA,EAAA,EAClC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAC3D,CAAC;4BAEF,OAAO,CAAC,MAAM,CAAC,CAAC;AACpB,yBAAC,CAAC,CAAC;AACN,qBAAA;AAAM,yBAAA;wBACH,OAAO,CAAC,MAAM,CAAC,CAAC;AACnB,qBAAA;AACJ,iBAAA;AACL,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACN;AAED;;;;;;;;;;AAUG;AACH,IAAA,WAAW,CACP,MAAuB,EACvB,GAAW,EACX,WAAqB,EAAE,EAAA;AAEvB,QAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,QAAQ,IAAI,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACzD;IAED,iBAAiB,CACb,MAAuB,EACvB,GAAW,EAAA;AAEX,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACpE;AAED,IAAA,QAAQ,CAAC,MAAuB,EAAA;AAC5B,QAAA,IAAI,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,KAAK,EAAE;YACf,OAAO,MAAM,CAAC,KAAK,CAAC;AACvB,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACb;AAED,IAAA,SAAS,CAAC,MAAuB,EAAA;AAC7B,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,OAAO,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;AAC9B,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACb;AAED,IAAA,UAAU,CAAC,MAAuB,EAAA;AAC9B,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,OAAO,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;AAC/B,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACb;AAED,IAAA,WAAW,CAAC,MAAuB,EAAA;AAC/B,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,OAAO,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;AAChC,SAAA;AACD,QAAA,OAAO,EAAE,CAAC;KACb;AAES,IAAA,WAAW,CAAC,MAAuB,EAAA;QACzC,MAAM,MAAM,GAAQ,EAAE,CAAC;QAEvB,MAAM;aACD,IAAI,CAAC,MAAM,CAAC;AACZ,aAAA,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACpC,aAAA,OAAO,CAAC,CAAC,GAAG,KAAI;YACb,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC9B,SAAC,CAAC,CAAC;AAEP,QAAA,OAAO,MAAM,CAAC;KACjB;IAES,UAAU,CAChB,GAAW,EACX,KAAa,EAAA;AAEb,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAI;AAC3B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,CAAC,CAAC,SAAS,CACzC,CAAC,MAAM,KAAI;AACP,gBAAA,OAAO,CAAC;oBACJ,KAAK;oBACL,MAAM;AACT,iBAAA,CAAC,CAAC;aACN,EACD,MAAK;gBACD,OAAO,CAAC,IAAI,CAAC,CAAC;AAClB,aAAC,CACJ,CAAC;AACN,SAAC,CAAC,CAAC;KACN;AAES,IAAA,iBAAiB,CAAC,MAAwB,EAAA;AAChD,QAAA,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,iBAAiB,CAAC,OAAO,CAAC;YACvD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC;AAC5C,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;IAEO,uBAAuB,CAAC,UAAwC,EAAE,mBAA6B,EAAA;QACnG,IAAI,EAAC,mBAAmB,KAAnB,IAAA,IAAA,mBAAmB,uBAAnB,mBAAmB,CAAE,MAAM,CAAA,EAAE;AAC9B,YAAA,OAAO,UAAU,CAAC;AACrB,SAAA;AAED,QAAA,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAY,KAAK,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAgB,KAAK,CAAC,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;KAC7I;;oHAtKQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFnB,MAAM,EAAA,CAAA,CAAA;4FAET,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;AC5BD;;;;;;;;;;;;;;;AAeG;AAII,MAAM,GAAG,GAAG,CAAC,OAAoB,EAAE,GAAG,IAAqB,KAAa;IAC3E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AAED,IAAA,OAAO,IAAI;AACN,SAAA,KAAK,CAAC,CAAC,GAAG,KAAI;QACX,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAClD,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1D,KAAC,CAAC,CAAC;AACX,CAAC,CAAC;AAEK,MAAM,KAAK,GAAG,CAAC,OAAoB,EAAE,GAAG,IAAqB,KAAa;IAC7E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AAED,IAAA,OAAO,IAAI;AACN,SAAA,KAAK,CAAC,CAAC,GAAG,KAAI;QACX,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAClD,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;AACzD,KAAC,CAAC,CAAC;AACX,CAAC,CAAC;AAEK,MAAM,IAAI,GAAG,CAAC,OAAoB,EAAE,GAAG,IAAqB,KAAa;IAC5E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,QAAA,OAAO,KAAK,CAAC;AAChB,KAAA;AAED,IAAA,OAAO,IAAI;AACN,SAAA,IAAI,CAAC,CAAC,GAAG,KAAI;QACV,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE;YACZ,OAAO,CAAC,IAAI,CAAC,uBAAuB,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;AAClD,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;AACzD,KAAC,CAAC,CAAC;AACX,CAAC;;ACjED;;;;;;;;;;;;;;;AAeG;MASU,wBAAwB,CAAA;AADrC,IAAA,WAAA,GAAA;AAEI,QAAA,IAAU,CAAA,UAAA,GAAiC,EAAE,CAAC;KAejD;AAbG,IAAA,aAAa,CAAC,MAAoC,EAAA;AAC9C,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAChE,SAAA;KACJ;AAED,IAAA,gBAAgB,CAAI,EAAU,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;KAC9B;AAED,IAAA,gBAAgB,CAAC,EAAU,EAAA;QACvB,OAAO,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;KACtC;;sHAfQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cADX,MAAM,EAAA,CAAA,CAAA;4FACnB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;ACvBlC;;;;;;;;;;;;;;;AAeG;MAUU,WAAW,CAAA;AAKpB,IAAA,WAAA,CAAsB,MAA8B,EAAA;AAA9B,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAwB;AAJpD,QAAA,IAAO,CAAA,OAAA,GAAgB,IAAI,CAAC;AAC5B,QAAA,IAAK,CAAA,KAAA,GAAmB,EAAE,CAAC;AAC3B,QAAA,IAAU,CAAA,UAAA,GAAqC,EAAE,CAAC;KAEM;AAExD,IAAA,KAAK,CAAC,MAAuB,EAAA;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAC7C;AAED;;;;AAIG;AACH,IAAA,aAAa,CAAC,MAAwC,EAAA;AAClD,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAChE,SAAA;KACJ;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAC,EAAU,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAClD;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAC,GAAW,EAAA;QACpB,IAAI,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,UAAU,CAAC,GAAG,CAAC,EAAE;AACtB,YAAA,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,YAAA,OAAO,CAAC,OAAoB,EAAE,GAAG,IAAqB,KAAc,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAC7F,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAC/B;AAED;;;;;;AAMG;IACH,YAAY,CAAC,MAAc,EAAE,OAAqB,EAAA;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACzC,QAAA,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;AAElC,QAAA,IAAI,OAAO,EAAE;YACT,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAClD,YAAA,IAAI,SAAS,EAAE;gBACX,OAAO,SAAS,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACpD,aAAA;AACJ,SAAA;AAAM,aAAA;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAC5C,YAAA,IAAI,SAAS,EAAE;AACX,gBAAA,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;AAC7B,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;;yGArEQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,WAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFR,MAAM,EAAA,CAAA,CAAA;4FAET,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;ACKD;AACA;;;;AAIG;SACa,qBAAqB,GAAA;AACjC,IAAA,OAAO,EAAE,CAAC;AACd,CAAC;AAAA,CAAC;MAEW,eAAe,GAAG,IAAI,cAAc,CAAa,iBAAiB,EAAE;AAC7E,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,qBAAqB;AACjC,CAAA,EAAE;MAEU,qBAAqB,GAAG,IAAI,cAAc,CAAa,wBAAwB,EAAE;AAC1F,IAAA,UAAU,EAAE,MAAM;AAClB,IAAA,OAAO,EAAE,qBAAqB;AACjC,CAAA,EAAE;AAEH;AACA;;;;;AAKG;AACG,SAAU,sBAAsB,CAAC,KAAe,EAAA;IAClD,OAAO;AACH,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,KAAK,EAAE,IAAI;KACd,CAAC;AACN,CAAC;AAAA,CAAC;AAEF;;;;;AAKG;AACG,SAAU,4BAA4B,CAAC,oBAAuC,EAAA;IAChF,OAAO;AACH,QAAA,OAAO,EAAE,qBAAqB;AAC9B,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,KAAK,EAAE,IAAI;KACd,CAAC;AACN,CAAC;AAAA,CAAC;MAKW,gBAAgB,CAAA;IAczB,WACc,CAAA,MAA8B,EAC9B,iBAA2C,EAC3C,WAAwB,EACC,cAAwB,EAClB,mBAAsC,EAAA;AAJrE,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAwB;AAC9B,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAA0B;AAC3C,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AACC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAU;AAClB,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAmB;AAlBnF,QAAA,IAAU,CAAA,UAAA,GAAG,4BAA4B,CAAC;AAC1C,QAAA,IAAW,CAAA,WAAA,GAAG,gBAAgB,CAAC;AAE/B,QAAA,IAAM,CAAA,MAAA,GAAoB,EAAE,CAAC;AAC7B,QAAA,IAAO,CAAA,OAAA,GAAqB,EAAE,CAAC;AAC/B,QAAA,IAAQ,CAAA,QAAA,GAAe,EAAE,CAAC;AAC1B,QAAA,IAAU,CAAA,UAAA,GAAiC,EAAE,CAAC;AAIpC,QAAA,IAAM,CAAA,MAAA,GAAoB,IAAI,CAAC;QAC/B,IAAQ,CAAA,QAAA,GAAG,IAAI,eAAe,CAAkB,IAAI,CAAC,MAAM,CAAC,CAAC;QASnE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;KAC9C;AAED;;;;AAIG;IACG,IAAI,GAAA;;AACN,YAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CACjC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAC1B,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAClC,CAAC;AAEF,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACnB,YAAA,OAAO,MAAM,CAAC;SACjB,CAAA,CAAA;AAAA,KAAA;AAED;;;;AAIG;AACH,IAAA,KAAK,CAAC,MAAuB,EAAA;QACzB,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,OAAO,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;YAClD,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,CAAC,aAAa,CAAC;YACf,YAAY,EAAEC,KAAU;YACxB,WAAW,EAAEC,IAAS;YACtB,UAAU,EAAEC,GAAQ;AACvB,SAAA,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAEhD,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC9B;AAED;;;;;;AAMG;AACH,IAAA,UAAU,CAAY,GAAsB,EAAE,YAAA,GAAoB,EAAE,EAAA;QAChE,MAAM,UAAU,GAAa,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvE,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAG,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC;KACzF;AAED,IAAA,WAAW,CAA6B,GAAW,EAAE,QAAA,GAAqB,EAAE,EAAA;AACxE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;KAC9D;AAED;;;;AAIG;AACH,IAAA,aAAa,CAAC,MAAwC,EAAA;AAClD,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KAC1C;AAED;;;;AAIG;AACH,IAAA,aAAa,CAAC,MAAoC,EAAA;AAC9C,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAChE,SAAA;KACJ;AAED;;;;AAIG;AACH,IAAA,aAAa,CAAC,MAAoC,EAAA;AAC9C,QAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;KAChD;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAC,EAAU,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KACvD;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAC,GAAa,EAAA;AACvB,QAAA,OAAO,CAAC,GAAG,IAAI,EAAE;AACZ,aAAA,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aAChC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;KACjC;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAC,EAAU,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAC1D;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAC,GAAW,EAAA;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;KAC7C;AAED;;;;;;AAMG;IACH,YAAY,CAAC,MAAc,EAAE,OAAqB,EAAA;QAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACzD;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAI,EAAU,EAAA;QAC1B,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAI,EAAE,CAAC,CAAC;KACzD;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAC,EAAU,EAAA;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAC3C;AAED;;;;;;AAMG;IACH,aAAa,CAAC,KAAmB,EAAG,OAAa,EAAA;AAC7C,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAG;YAC5B,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AAClD,SAAA;AAAM,aAAA;YACH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAE,CAAC,GAAG,KAAI;AACpC,gBAAA,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AACtE,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,SAAS,CAAC;AACpB,SAAA;KACJ;IAEO,kBAAkB,CAAC,KAAa,EAAE,OAAa,EAAA;AACnD,QAAA,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEpC,QAAA,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,YAAA,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAU,OAAA,EAAA,UAAU,CAAE,CAAA,CAAC,CAAC;AAC3D,YAAA,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;AAE3B,YAAA,OAAO,MAAM,CAAC;AACjB,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;;8GAzNQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAkBb,eAAe,EAAA,EAAA,EAAA,KAAA,EACf,qBAAqB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAnBxB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;4FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;8BAmBQ,MAAM;+BAAC,eAAe,CAAA;;8BACtB,MAAM;+BAAC,qBAAqB,CAAA;;;;MCzExB,mBAAmB,CAAA;AAI5B,IAAA,WAAA,CAAsB,gBAAkC,EAAA;AAAlC,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAFhD,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAiB,EAAE,CAAC,CAAC;QAG1D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;KACtD;IAEK,IAAI,GAAA;;YACN,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;AAClD,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACtB,CAAA,CAAA;AAAA,KAAA;AAED,IAAA,KAAK,CAAC,MAAuB,EAAA;QACzB,IAAI,CAAC,MAAM,EAAE;YACT,OAAO;AACV,SAAA;QAED,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE;aACvC,MAAM,CAAC,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,CAAC;aAC5C,GAAG,CAAC,CAAC,KAAK,KAAK,KAAqB,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACrC;AAED;;;;;;AAMG;AACH,IAAA,qBAAqB,CAAC,GAAW,EAAA;QAC7B,OAAO,IAAI,CAAC,gBAAgB;AACzB,aAAA,WAAW,CACV,CAAA,sBAAA,EAAyB,GAAG,CAAA,CAAE,CAC/B;aACA,MAAM,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;KACzC;AAED;;;;;AAKG;IACH,mBAAmB,GAAA;QACf,OAAO,IAAI,CAAC,gBAAgB;aACvB,WAAW,CAAqB,4BAA4B,CAAC;AAC7D,aAAA,MAAM,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,CAAC;KAC1E;AAES,IAAA,yBAAyB,CAAC,SAA6B,EAAA;;AAC7D,QAAA,IAAI,SAAS,EAAE;YACb,IAAI,SAAS,CAAC,QAAQ,EAAE;AACtB,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AAED,YAAA,IAAI,MAAA,SAAS,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;AAC7B,gBAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACrE,aAAA;AACF,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;;iHA/DQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;4FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;AC1BD;;;;;;;;;;;;;;;AAeG;MAUU,yBAAyB,CAAA;AAsBlC,IAAA,WAAA,CAAoB,gBAAkC,EAAA;AAAlC,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;;AAZtD,QAAA,IAAM,CAAA,MAAA,GAAW,IAAI,CAAC;KAYoC;IAE1D,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACV,OAAO;AACV,SAAA;AAED,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtE,QAAA,IAAI,aAAa,EAAE;AACf,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;KACJ;IAED,WAAW,GAAA;QACP,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,SAAA;KACJ;IAEO,cAAc,GAAA;;AAClB,QAAA,IAAI,MAAA,IAAI,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;AAC7B,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;AAE5C,YAAA,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACxB,YAAA,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AACpC,YAAA,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AACjC,SAAA;KACJ;;uHAxDQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,GAAA,EAAA,KAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACJ,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHpC,CAAsB,oBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAEvB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAsB,oBAAA,CAAA;iBACnC,CAAA;oGAGG,OAAO,EAAA,CAAA;sBADN,SAAS;uBAAC,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAK9D,EAAE,EAAA,CAAA;sBADD,KAAK;gBAKN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAKN,GAAG,EAAA,CAAA;sBADF,KAAK;gBAKN,SAAS,EAAA,CAAA;sBADR,KAAK;;;AC1CV;;;;;;;;;;;;;;;AAeG;MAkCU,sBAAsB,CAAA;AAY/B,IAAA,WAAA,CAAoB,UAA4B,EAAA;AAA5B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAkB;KAAI;IAEpD,QAAQ,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChE,QAAA,IAAI,aAAa,EAAE;AACf,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;KACJ;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;KACJ;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,SAAA;KACJ;IAEO,cAAc,GAAA;;AAClB,QAAA,IAAI,MAAA,IAAI,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;YAC7B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;AACrD,SAAA;KACJ;;oHAxCQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,oBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACD,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAfpC,wCAAwC,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,sEAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4FAczC,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAjBlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAClB,IAAI,EAAA,QAAA,EACN,CAAA,sCAAA,CAAwC,EAAA,aAAA,EACnC,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC,EAAE,KAAK,EAAE,oBAAoB,EAAE,EAAA,MAAA,EAAA,CAAA,sEAAA,CAAA,EAAA,CAAA;oGAarC,OAAO,EAAA,CAAA;sBADN,SAAS;uBAAC,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAI9D,EAAE,EAAA,CAAA;sBADD,KAAK;gBAIN,OAAO,EAAA,CAAA;sBADN,KAAK;;;ACxDV;;;;;;;;;;;;;;;AAeG;AAMH;MAMa,yBAAyB,CAAA;AAalC,IAAA,WAAA,CAAoB,UAA4B,EAAA;AAA5B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAkB;AAFxC,QAAA,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;KAEoB;AAEpD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACtB,SAAA;QAED,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;AACzC,SAAA;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;KACtC;IAED,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,SAAA;KACJ;IAEO,aAAa,GAAA;AACjB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAqB,IAAI,CAAC,EAAE,CAAC,CAAC;AACpF,QAAA,IAAI,aAAa,EAAE;AACf,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACjF,SAAA;KACJ;IAEO,cAAc,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;YACzB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC/C,SAAA;KACJ;AAEO,IAAA,KAAK,CAAC,eAAuB,EAAE,GAAG,IAAW,EAAA;QACjD,IAAI,IAAI,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,0BAA0B,CAAC,eAAe,CAAC,EAAE;;AAE7E,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACvF,SAAA;KACJ;IAEO,gBAAgB,GAAA;AACpB,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;KAC9D;AAEO,IAAA,0BAA0B,CAAC,eAAuB,EAAA;QACtD,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;KACxD;;uHA/DQ,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACJ,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHpC,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAEvB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAsB,oBAAA,CAAA;iBACnC,CAAA;oGAGG,OAAO,EAAA,CAAA;sBADN,SAAS;uBAAC,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAIrD,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAGG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;ACnCV;;;;;;;;;;;;;;;AAeG;MAWU,mBAAmB,CAAA;AAa5B,IAAA,WAAA,CAAoB,UAA4B,EAAA;AAA5B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAkB;KAAI;IAEpD,QAAQ,GAAA;AACJ,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAChE,QAAA,IAAI,aAAa,EAAE;AACf,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;KACJ;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAC9B,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,cAAc,EAAE,CAAC;AACzB,SAAA;KACJ;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC5B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC5B,SAAA;KACJ;IAEO,cAAc,GAAA;;AAClB,QAAA,IAAI,MAAA,IAAI,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;YAC7B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC/C,SAAA;KACJ;;iHAzCQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACE,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAHpC,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAEvB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,CAAsB,oBAAA,CAAA;iBACnC,CAAA;oGAGG,OAAO,EAAA,CAAA;sBADN,SAAS;uBAAC,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAK9D,EAAE,EAAA,CAAA;sBADD,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,KAAK;;;AClCV;;;;;;;;;;;;;;;AAeG;;ACfH;;;;;;;;;;;;;;;AAeG;AAII,MAAM,eAAe,GAAG,CAAC,mBAAwC,KAAK,MAAM,mBAAmB,CAAC,IAAI,EAAE;;ACnB7G;;;;;;;;;;;;;;;AAeG;AAUI,MAAM,oBAAoB,GAAG,CAAC,yBAAyB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,yBAAyB,EAAW;AAEjJ;MAKa,gBAAgB,CAAA;AACzB,IAAA,OAAO,OAAO,GAAA;QACV,OAAO;AACH,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,eAAe;AACxB,oBAAA,UAAU,EAAE,eAAe;oBAC3B,IAAI,EAAE,CAAC,mBAAmB,CAAC;AAC3B,oBAAA,KAAK,EAAE,IAAI;AACd,iBAAA;AACJ,aAAA;SACJ,CAAC;KACL;AAED;;;AAGG;AACH,IAAA,OAAO,QAAQ,GAAA;QACX,OAAO;AACH,YAAA,QAAQ,EAAE,gBAAgB;SAC7B,CAAC;KACL;;8GAvBQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAPQ,OAAA,EAAA,CAAA,yBAAyB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAAjG,yBAAyB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,yBAAyB,CAAA,EAAA,CAAA,CAAA;AAOzH,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAHZ,oBAAoB,CAAA,EAAA,CAAA,CAAA;4FAGxB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,CAAC,GAAG,oBAAoB,CAAC;AAClC,oBAAA,OAAO,EAAE,CAAC,GAAG,oBAAoB,CAAC;iBACrC,CAAA;;;AC/BD;;;;;;;;;;;;;;;AAeG;;ACfH;;AAEG;;;;"}
|
|
@@ -1125,6 +1125,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1125
1125
|
class PreviewExtensionComponent {
|
|
1126
1126
|
constructor(extensionService) {
|
|
1127
1127
|
this.extensionService = extensionService;
|
|
1128
|
+
/** Identifier of a node that is opened by the viewer. */
|
|
1129
|
+
this.nodeId = null;
|
|
1128
1130
|
}
|
|
1129
1131
|
ngOnInit() {
|
|
1130
1132
|
if (!this.id) {
|
|
@@ -1151,11 +1153,12 @@ class PreviewExtensionComponent {
|
|
|
1151
1153
|
const instance = this.componentRef.instance;
|
|
1152
1154
|
instance.url = this.url;
|
|
1153
1155
|
instance.extension = this.extension;
|
|
1156
|
+
instance.nodeId = this.nodeId;
|
|
1154
1157
|
}
|
|
1155
1158
|
}
|
|
1156
1159
|
}
|
|
1157
1160
|
PreviewExtensionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PreviewExtensionComponent, deps: [{ token: ExtensionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1158
|
-
PreviewExtensionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PreviewExtensionComponent, isStandalone: true, selector: "adf-preview-extension", inputs: { id: "id", url: "url", extension: "extension" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `<div #content></div>`, isInline: true });
|
|
1161
|
+
PreviewExtensionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: PreviewExtensionComponent, isStandalone: true, selector: "adf-preview-extension", inputs: { id: "id", nodeId: "nodeId", url: "url", extension: "extension" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef, static: true }], usesOnChanges: true, ngImport: i0, template: `<div #content></div>`, isInline: true });
|
|
1159
1162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: PreviewExtensionComponent, decorators: [{
|
|
1160
1163
|
type: Component,
|
|
1161
1164
|
args: [{
|
|
@@ -1168,6 +1171,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
1168
1171
|
args: ['content', { read: ViewContainerRef, static: true }]
|
|
1169
1172
|
}], id: [{
|
|
1170
1173
|
type: Input
|
|
1174
|
+
}], nodeId: [{
|
|
1175
|
+
type: Input
|
|
1171
1176
|
}], url: [{
|
|
1172
1177
|
type: Input
|
|
1173
1178
|
}], extension: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adf-extensions.mjs","sources":["../../../../lib/extensions/src/lib/config/action.extensions.ts","../../../../lib/extensions/src/lib/config/document-list.extensions.ts","../../../../lib/extensions/src/lib/config/extension-element.ts","../../../../lib/extensions/src/lib/config/extension-utils.ts","../../../../lib/extensions/src/lib/config/extension.config.ts","../../../../lib/extensions/src/lib/config/icon.extensions.ts","../../../../lib/extensions/src/lib/config/navbar.extensions.ts","../../../../lib/extensions/src/lib/config/permission.extensions.ts","../../../../lib/extensions/src/lib/config/routing.extensions.ts","../../../../lib/extensions/src/lib/config/rule.extensions.ts","../../../../lib/extensions/src/lib/config/sidebar.extensions.ts","../../../../lib/extensions/src/lib/config/viewer.extensions.ts","../../../../lib/extensions/src/lib/services/extension-loader.service.ts","../../../../lib/extensions/src/lib/evaluators/core.evaluators.ts","../../../../lib/extensions/src/lib/services/component-register.service.ts","../../../../lib/extensions/src/lib/services/rule.service.ts","../../../../lib/extensions/src/lib/services/extension.service.ts","../../../../lib/extensions/src/lib/services/app-extension.service.ts","../../../../lib/extensions/src/lib/store/states/navigation.state.ts","../../../../lib/extensions/src/lib/store/states/profile.state.ts","../../../../lib/extensions/src/lib/store/states/selection.state.ts","../../../../lib/extensions/src/lib/store/states/repository.state.ts","../../../../lib/extensions/src/lib/components/viewer/viewer-extension.interface.ts","../../../../lib/extensions/src/lib/components/viewer/preview-extension.component.ts","../../../../lib/extensions/src/lib/components/dynamic-column/dynamic-column.component.ts","../../../../lib/extensions/src/lib/components/dynamic-component/dynamic.component.ts","../../../../lib/extensions/src/lib/components/dynamic-tab/dynamic-tab.component.ts","../../../../lib/extensions/src/lib/components/public-api.ts","../../../../lib/extensions/src/lib/services/startup-extension-factory.ts","../../../../lib/extensions/src/lib/extensions.module.ts","../../../../lib/extensions/src/public-api.ts","../../../../lib/extensions/src/adf-extensions.ts"],"sourcesContent":["/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\n// eslint-disable-next-line no-shadow\nexport enum ContentActionType {\n default = 'default',\n button = 'button',\n separator = 'separator',\n menu = 'menu',\n custom = 'custom'\n}\n\nexport interface ContentActionRef extends ExtensionElement {\n type: ContentActionType;\n\n title?: string;\n description?: string;\n icon?: string;\n children?: Array<ContentActionRef>;\n component?: string;\n data?: any;\n color?: string;\n actions?: {\n [key: string]: string;\n click?: string;\n };\n rules?: {\n [key: string]: string;\n enabled?: string;\n visible?: string;\n };\n}\n\nexport interface ActionRef {\n id: string;\n type: string;\n payload?: any;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable id-blacklist */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface DataColumnTypes {\n text: string;\n image: string;\n date: string;\n json: string;\n icon: string;\n fileSize: string;\n location: string;\n boolean: string;\n amount: string;\n number: string;\n}\n\nexport type DataColumnType = keyof DataColumnTypes;\n\nexport interface DocumentListPresetRef extends ExtensionElement {\n key: string;\n type: DataColumnType;\n title?: string;\n format?: string;\n class?: string;\n sortable: boolean;\n template: string;\n desktopOnly: boolean;\n sortingKey: string;\n isHidden?: boolean;\n rules?: {\n [key: string]: string;\n visible?: string;\n };\n draggable?: boolean;\n resizable?: boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface ExtensionElement {\n id: string;\n\n order?: number;\n disabled?: boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContentActionRef, ContentActionType } from './action.extensions';\n\nexport const getValue = (target: any, key: string): any => {\n if (!target) {\n return undefined;\n }\n\n const keys = key.split('.');\n key = '';\n\n do {\n key += keys.shift();\n const value = target[key];\n if (\n value !== undefined &&\n (typeof value === 'object' || !keys.length)\n ) {\n target = value;\n key = '';\n } else if (!keys.length) {\n target = undefined;\n } else {\n key += '.';\n }\n } while (keys.length);\n\n return target;\n};\n\nexport const filterEnabled = (entry: { disabled?: boolean }): boolean => !entry.disabled;\n\nexport const sortByOrder = (\n a: { order?: number | undefined },\n b: { order?: number | undefined }\n) => {\n const left = a.order === undefined ? Number.MAX_SAFE_INTEGER : a.order;\n const right = b.order === undefined ? Number.MAX_SAFE_INTEGER : b.order;\n return left - right;\n};\n\nexport const reduceSeparators = (\n acc: ContentActionRef[],\n el: ContentActionRef,\n i: number,\n arr: ContentActionRef[]\n): ContentActionRef[] => {\n // remove leading separator\n if (i === 0) {\n if (arr[i].type === ContentActionType.separator) {\n return acc;\n }\n }\n // remove duplicate separators\n if (i > 0) {\n const prev = arr[i - 1];\n if (\n prev.type === ContentActionType.separator &&\n el.type === ContentActionType.separator\n ) {\n return acc;\n }\n\n // remove trailing separator\n if (i === arr.length - 1) {\n if (el.type === ContentActionType.separator) {\n return acc;\n }\n }\n }\n\n return acc.concat(el);\n};\n\nexport const reduceEmptyMenus = (\n acc: ContentActionRef[],\n el: ContentActionRef\n): ContentActionRef[] => {\n if (el.type === ContentActionType.menu) {\n if ((el.children || []).length === 0) {\n return acc;\n }\n }\n return acc.concat(el);\n};\n\nexport const mergeObjects = (...objects: any[]): any => {\n const result = {};\n\n objects.forEach((source) => {\n Object.keys(source).forEach((prop) => {\n let replace = false;\n\n if (prop.endsWith('.$replace')) {\n replace = true;\n prop = prop.replace('.$replace', '');\n }\n\n if (!prop.startsWith('$')) {\n if (replace) {\n result[prop] = source[`${prop}.$replace`];\n } else if (prop in result && Array.isArray(result[prop])) {\n if (Array.isArray(source[prop])) {\n result[prop] = mergeArrays(result[prop], source[prop]);\n } else {\n result[prop] = [...result[prop], source[prop]];\n }\n } else if (prop in result && typeof result[prop] === 'object') {\n result[prop] = mergeObjects(result[prop], source[prop]);\n } else {\n result[prop] = source[prop];\n }\n }\n });\n });\n\n return result;\n};\n\nexport const mergeArrays = (left: any[], right: any[]): any[] => {\n const result = [];\n const map = {};\n\n (left || []).forEach((entry) => {\n const element = entry;\n if (element && Object.prototype.hasOwnProperty.call(element, 'id')) {\n map[element.id] = element;\n } else {\n result.push(element);\n }\n });\n\n (right || []).forEach((entry) => {\n const element = entry;\n if (element && Object.prototype.hasOwnProperty.call(element, 'id') && map[element.id]) {\n const merged = mergeObjects(map[element.id], element);\n map[element.id] = merged;\n } else {\n result.push(element);\n }\n });\n\n return Object.keys(map).map((key) => map[key]).concat(result);\n};\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RouteRef } from './routing.extensions';\nimport { RuleRef } from './rule.extensions';\nimport { ActionRef } from './action.extensions';\n\nexport interface ExtensionRef {\n $id: string;\n $name: string;\n $version: string;\n $vendor: string;\n $license: string;\n $runtime?: string;\n $description?: string;\n $dependencies?: Array<string>;\n\n appConfig?: any;\n rules?: Array<RuleRef>;\n routes?: Array<RouteRef>;\n actions?: Array<ActionRef>;\n\n features?: {\n [key: string]: any;\n };\n}\n\nexport interface ExtensionConfig extends ExtensionRef {\n $references?: Array<string | ExtensionRef>;\n $ignoreReferenceList?: Array<string>;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface IconRef extends ExtensionElement {\n value: string;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface NavBarRules {\n [ruleId: string]: string;\n}\n\nexport interface NavBarGroupRef extends ExtensionElement {\n items: Array<NavBarLinkRef>;\n rules?: NavBarRules;\n}\n\nexport interface NavBarLinkRef extends ExtensionElement {\n icon: string;\n title: string;\n route: string;\n\n provider?: string;\n component?: string;\n url?: string; // evaluated at runtime based on route ref\n description?: string;\n children?: Array<NavBarLinkRef>;\n rules?: NavBarRules;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface NodePermissions {\n check(source: any, permissions: string[], options?: any): boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface RouteRef {\n id: string;\n path: string;\n component: string;\n parentRoute?: string;\n layout?: string;\n auth?: string[];\n data?: { [key: string]: string };\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SelectionState } from '../store/states/selection.state';\nimport { NavigationState } from '../store/states/navigation.state';\nimport { NodePermissions } from './permission.extensions';\nimport { ProfileState } from '../store/states/profile.state';\nimport { RepositoryInfo } from '@alfresco/js-api';\n\nexport type RuleEvaluator = (context: RuleContext, ...args: any[]) => boolean;\n\nexport interface RuleContext {\n repository: RepositoryInfo;\n auth: any;\n selection: SelectionState;\n navigation: NavigationState;\n profile: ProfileState;\n permissions: NodePermissions;\n\n getEvaluator(key: string): RuleEvaluator;\n}\n\nexport class RuleRef {\n type: string;\n id?: string;\n parameters?: Array<RuleParameter>;\n}\n\nexport interface RuleParameter {\n type: string;\n value: any;\n parameters?: Array<RuleParameter>;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface SidebarTabRef extends ExtensionElement {\n title: string;\n component: string;\n\n icon?: string;\n rules?: {\n [key: string]: string;\n visible?: string;\n };\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface ViewerExtensionRef extends ExtensionElement {\n fileExtension: string;\n component: string;\n\n rules?: {\n [key: string]: string;\n visible?: string;\n };\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActionRef, ContentActionRef, ContentActionType } from '../config/action.extensions';\nimport { ExtensionElement } from '../config/extension-element';\nimport { filterEnabled, getValue, mergeObjects, sortByOrder } from '../config/extension-utils';\nimport { ExtensionConfig, ExtensionRef } from '../config/extension.config';\nimport { RouteRef } from '../config/routing.extensions';\nimport { RuleRef } from '../config/rule.extensions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtensionLoaderService {\n constructor(private http: HttpClient) {\n }\n\n load(\n configPath: string,\n pluginsPath: string,\n extensions?: string[],\n extensionValues?: ExtensionConfig[]\n ): Promise<ExtensionConfig> {\n return new Promise<any>((resolve) => {\n this.loadConfig(configPath, 0).then((result) => {\n if (result) {\n let config = result.config;\n\n const override = sessionStorage.getItem('app.extension.config');\n if (override) {\n config = JSON.parse(override);\n }\n\n if (!config.$references?.length) {\n config.$references = this.filterIgnoredExtensions(extensions || [], config.$ignoreReferenceList);\n } else {\n config.$references = this.filterIgnoredExtensions(config.$references, config.$ignoreReferenceList);\n }\n\n if (config.$references?.length > 0 || extensionValues) {\n const plugins = (config.$references ?? []).map((name, idx) =>\n this.loadConfig(`${pluginsPath}/${name}`, idx)\n );\n\n Promise.all(plugins).then((results) => {\n let configs = results\n .filter((entry) => entry)\n .sort(sortByOrder)\n .map((entry) => entry.config);\n\n if (extensionValues) {\n configs = [\n ...configs,\n ...extensionValues\n ];\n }\n\n\n if (configs.length > 0) {\n config = mergeObjects(config, ...configs);\n }\n\n config = {\n ...config,\n ...this.getMetadata(result.config),\n $references: configs.map((ext) => this.getMetadata(ext))\n };\n\n resolve(config);\n });\n } else {\n resolve(config);\n }\n }\n });\n });\n }\n\n /**\n * Retrieves configuration elements.\n * Filters element by **enabled** and **order** attributes.\n * Example:\n * `getElements<ViewerExtensionRef>(config, 'features.viewer.extensions')`\n *\n * @param config configuration settings\n * @param key element key\n * @param fallback fallback array of values\n * @returns list of elements\n */\n getElements<T extends ExtensionElement>(\n config: ExtensionConfig,\n key: string,\n fallback: Array<T> = []\n ): Array<T> {\n const values = getValue(config, key) || fallback || [];\n return values.filter(filterEnabled).sort(sortByOrder);\n }\n\n getContentActions(\n config: ExtensionConfig,\n key: string\n ): Array<ContentActionRef> {\n return this.getElements(config, key).map(this.setActionDefaults);\n }\n\n getRules(config: ExtensionConfig): Array<RuleRef> {\n if (config?.rules) {\n return config.rules;\n }\n return [];\n }\n\n getRoutes(config: ExtensionConfig): Array<RouteRef> {\n if (config) {\n return config.routes || [];\n }\n return [];\n }\n\n getActions(config: ExtensionConfig): Array<ActionRef> {\n if (config) {\n return config.actions || [];\n }\n return [];\n }\n\n getFeatures(config: ExtensionConfig): any {\n if (config) {\n return config.features || [];\n }\n return [];\n }\n\n protected getMetadata(config: ExtensionConfig): ExtensionRef {\n const result: any = {};\n\n Object\n .keys(config)\n .filter((key) => key.startsWith('$'))\n .forEach((key) => {\n result[key] = config[key];\n });\n\n return result;\n }\n\n protected loadConfig(\n url: string,\n order: number\n ): Promise<{ order: number; config: ExtensionConfig }> {\n return new Promise((resolve) => {\n this.http.get<ExtensionConfig>(url).subscribe(\n (config) => {\n resolve({\n order,\n config\n });\n },\n () => {\n resolve(null);\n }\n );\n });\n }\n\n protected setActionDefaults(action: ContentActionRef): ContentActionRef {\n if (action) {\n action.type = action.type || ContentActionType.default;\n action.icon = action.icon || 'extension';\n }\n return action;\n }\n\n private filterIgnoredExtensions(extensions: Array<string | ExtensionRef>, ignoreReferenceList: string[]): Array<string | ExtensionRef> {\n if (!ignoreReferenceList?.length) {\n return extensions;\n }\n\n return extensions.map((file: string) => file.match('(?!.*/).+')[0]).filter((fileName: string) => !ignoreReferenceList.includes(fileName));\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RuleContext, RuleParameter } from '../config/rule.extensions';\n\nexport const not = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .every((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return !evaluator(context, ...(arg.parameters || []));\n });\n};\n\nexport const every = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .every((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return evaluator(context, ...(arg.parameters || []));\n });\n};\n\nexport const some = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .some((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return evaluator(context, ...(arg.parameters || []));\n });\n};\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable, Type } from '@angular/core';\n\nexport interface ExtensionComponent {\n data: any;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentRegisterService {\n components: { [key: string]: Type<any> } = {};\n\n setComponents(values: { [key: string]: Type<any> }) {\n if (values) {\n this.components = Object.assign({}, this.components, values);\n }\n }\n\n getComponentById<T>(id: string): Type<T> {\n return this.components[id];\n }\n\n hasComponentById(id: string): boolean {\n return !!this.getComponentById(id);\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from '@angular/core';\nimport { RuleRef, RuleContext, RuleEvaluator, RuleParameter } from '../config/rule.extensions';\nimport { ExtensionConfig } from '../config/extension.config';\nimport { ExtensionLoaderService } from './extension-loader.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RuleService {\n context: RuleContext = null;\n rules: Array<RuleRef> = [];\n evaluators: { [key: string]: RuleEvaluator } = {};\n\n constructor(protected loader: ExtensionLoaderService) {}\n\n setup(config: ExtensionConfig) {\n this.rules = this.loader.getRules(config);\n }\n\n /**\n * Adds one or more new rule evaluators to the existing set.\n *\n * @param values The new evaluators to add\n */\n setEvaluators(values: { [key: string]: RuleEvaluator }) {\n if (values) {\n this.evaluators = Object.assign({}, this.evaluators, values);\n }\n }\n\n /**\n * Retrieves a rule using its ID value.\n *\n * @param id The ID value to look for\n * @returns The rule or null if not found\n */\n getRuleById(id: string): RuleRef {\n return this.rules.find((ref) => ref.id === id);\n }\n\n /**\n * Retrieves a RuleEvaluator function using its key name.\n *\n * @param key Key name to look for\n * @returns RuleEvaluator or null if not found\n */\n getEvaluator(key: string): RuleEvaluator {\n if (key?.startsWith('!')) {\n const fn = this.evaluators[key.substring(1)];\n return (context: RuleContext, ...args: RuleParameter[]): boolean => !fn(context, ...args);\n }\n return this.evaluators[key];\n }\n\n /**\n * Evaluates a rule.\n *\n * @param ruleId ID of the rule to evaluate\n * @param context Custom rule execution context.\n * @returns True if the rule passed, false otherwise\n */\n evaluateRule(ruleId: string, context?: RuleContext): boolean {\n const ruleRef = this.getRuleById(ruleId);\n context = context || this.context;\n\n if (ruleRef) {\n const evaluator = this.getEvaluator(ruleRef.type);\n if (evaluator) {\n return evaluator(context, ...ruleRef.parameters);\n }\n } else {\n const evaluator = this.getEvaluator(ruleId);\n if (evaluator) {\n return evaluator(context);\n }\n }\n return false;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable, Type, InjectionToken, Inject } from '@angular/core';\nimport { RuleEvaluator, RuleRef, RuleContext } from '../config/rule.extensions';\nimport { ExtensionConfig } from '../config/extension.config';\nimport { ExtensionLoaderService } from './extension-loader.service';\nimport { RouteRef } from '../config/routing.extensions';\nimport { ActionRef } from '../config/action.extensions';\nimport * as core from '../evaluators/core.evaluators';\nimport { ComponentRegisterService } from './component-register.service';\nimport { RuleService } from './rule.service';\nimport { ExtensionElement } from '../config/extension-element';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n/**\n * The default extensions factory\n *\n * @returns the list of extension json files\n */\nexport function extensionJsonsFactory() {\n return [];\n};\n\nexport const EXTENSION_JSONS = new InjectionToken<string[][]>('extension-jsons', {\n providedIn: 'root',\n factory: extensionJsonsFactory\n});\n\nexport const EXTENSION_JSON_VALUES = new InjectionToken<string[][]>('extension-jsons-values', {\n providedIn: 'root',\n factory: extensionJsonsFactory\n});\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n/**\n * Provides the extension json values for the angular modules\n *\n * @param jsons files to provide\n * @returns a provider section\n */\nexport function provideExtensionConfig(jsons: string[]) {\n return {\n provide: EXTENSION_JSONS,\n useValue: jsons,\n multi: true\n };\n};\n\n/**\n * Provides the extension json raw values for the angular modules\n *\n * @param extensionConfigValue config value\n * @returns a provider section\n */\nexport function provideExtensionConfigValues(extensionConfigValue: ExtensionConfig[]) {\n return {\n provide: EXTENSION_JSON_VALUES,\n useValue: extensionConfigValue,\n multi: true\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtensionService {\n configPath = 'assets/app.extensions.json';\n pluginsPath = 'assets/plugins';\n\n routes: Array<RouteRef> = [];\n actions: Array<ActionRef> = [];\n features: Array<any> = [];\n authGuards: { [key: string]: Type<any> } = {};\n\n setup$: Observable<ExtensionConfig>;\n\n protected config: ExtensionConfig = null;\n protected onSetup$ = new BehaviorSubject<ExtensionConfig>(this.config);\n\n constructor(\n protected loader: ExtensionLoaderService,\n protected componentRegister: ComponentRegisterService,\n protected ruleService: RuleService,\n @Inject(EXTENSION_JSONS) protected extensionJsons: string[],\n @Inject(EXTENSION_JSON_VALUES) protected extensionJsonValues: ExtensionConfig[]\n ) {\n this.setup$ = this.onSetup$.asObservable();\n }\n\n /**\n * Loads and registers an extension config file and plugins (specified by path properties).\n *\n * @returns The loaded config data\n */\n async load(): Promise<ExtensionConfig> {\n const config = await this.loader.load(\n this.configPath,\n this.pluginsPath,\n this.extensionJsons.flat(),\n this.extensionJsonValues.flat()\n );\n\n this.setup(config);\n return config;\n }\n\n /**\n * Registers extensions from a config object.\n *\n * @param config Object with config data\n */\n setup(config: ExtensionConfig) {\n if (!config) {\n console.warn('Extension configuration not found');\n return;\n }\n\n this.config = config;\n\n this.setEvaluators({\n 'core.every': core.every,\n 'core.some': core.some,\n 'core.not': core.not\n });\n\n this.actions = this.loader.getActions(config);\n this.routes = this.loader.getRoutes(config);\n this.features = this.loader.getFeatures(config);\n\n this.ruleService.setup(config);\n this.onSetup$.next(config);\n }\n\n /**\n * Gets features by key.\n *\n * @param key Key string using dot notation or array of strings\n * @param defaultValue Default value returned if feature is not found, default is empty array\n * @returns Feature found by key\n */\n getFeature<T = any[]>(key: string | string[], defaultValue: any = []): T {\n const properties: string[] = Array.isArray(key) ? key : key.split('.');\n return properties.reduce((prev, curr) => prev?.[curr], this.features) || defaultValue;\n }\n\n getElements<T extends ExtensionElement>(key: string, fallback: Array<T> = []): Array<T> {\n return this.loader.getElements(this.config, key, fallback);\n }\n\n /**\n * Adds one or more new rule evaluators to the existing set.\n *\n * @param values The new evaluators to add\n */\n setEvaluators(values: { [key: string]: RuleEvaluator }) {\n this.ruleService.setEvaluators(values);\n }\n\n /**\n * Adds one or more new auth guards to the existing set.\n *\n * @param values The new auth guards to add\n */\n setAuthGuards(values: { [key: string]: Type<any> }) {\n if (values) {\n this.authGuards = Object.assign({}, this.authGuards, values);\n }\n }\n\n /**\n * Adds one or more new components to the existing set.\n *\n * @param values The new components to add\n */\n setComponents(values: { [key: string]: Type<any> }) {\n this.componentRegister.setComponents(values);\n }\n\n /**\n * Retrieves a route using its ID value.\n *\n * @param id The ID value to look for\n * @returns The route or null if not found\n */\n getRouteById(id: string): RouteRef {\n return this.routes.find((route) => route.id === id);\n }\n\n /**\n * Retrieves one or more auth guards using an array of ID values.\n *\n * @param ids Array of ID value to look for\n * @returns Array of auth guards or empty array if none were found\n */\n getAuthGuards(ids: string[]): Array<Type<any>> {\n return (ids || [])\n .map((id) => this.authGuards[id])\n .filter((guard) => guard);\n }\n\n /**\n * Retrieves an action using its ID value.\n *\n * @param id The ID value to look for\n * @returns Action or null if not found\n */\n getActionById(id: string): ActionRef {\n return this.actions.find((action) => action.id === id);\n }\n\n /**\n * Retrieves a RuleEvaluator function using its key name.\n *\n * @param key Key name to look for\n * @returns RuleEvaluator or null if not found\n */\n getEvaluator(key: string): RuleEvaluator {\n return this.ruleService.getEvaluator(key);\n }\n\n /**\n * Evaluates a rule.\n *\n * @param ruleId ID of the rule to evaluate\n * @param context Custom rule execution context.\n * @returns True if the rule passed, false otherwise\n */\n evaluateRule(ruleId: string, context?: RuleContext): boolean {\n return this.ruleService.evaluateRule(ruleId, context);\n }\n\n /**\n * Retrieves a registered extension component using its ID value.\n *\n * @param id The ID value to look for\n * @returns The component or null if not found\n */\n getComponentById<T>(id: string) {\n return this.componentRegister.getComponentById<T>(id);\n }\n\n /**\n * Retrieves a rule using its ID value.\n *\n * @param id The ID value to look for\n * @returns The rule or null if not found\n */\n getRuleById(id: string): RuleRef {\n return this.ruleService.getRuleById(id);\n }\n\n /**\n * Runs a lightweight expression stored in a string.\n *\n * @param value String containing the expression or literal value\n * @param context Parameter object for the expression with details of app state\n * @returns Result of evaluated expression, if found, or the literal value otherwise\n */\n runExpression(value: string | any , context?: any) {\n if (typeof value === 'string' ) {\n return this.evaluateExpression(value, context);\n } else {\n const duplicate = Object.assign({}, value);\n Object.keys(duplicate).forEach( (key) => {\n duplicate[key] = this.evaluateExpression(duplicate[key], context);\n });\n return duplicate;\n }\n }\n\n private evaluateExpression(value: string, context?: any): string {\n const pattern = new RegExp(/\\$\\((.*\\)?)\\)/g);\n const matches = pattern.exec(value);\n\n if (matches && matches.length > 1) {\n const expression = matches[1];\n const fn = new Function('context', `return ${expression}`);\n const result = fn(context);\n\n return result;\n }\n return value;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from '@angular/core';\nimport { ExtensionConfig, ExtensionRef } from '../config/extension.config';\nimport { ExtensionService } from '../services/extension.service';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { ViewerExtensionRef } from '../config/viewer.extensions';\nimport { DocumentListPresetRef } from '../config/document-list.extensions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppExtensionService {\n references$: Observable<ExtensionRef[]>;\n private _references = new BehaviorSubject<ExtensionRef[]>([]);\n\n constructor(protected extensionService: ExtensionService) {\n this.references$ = this._references.asObservable();\n }\n\n async load() {\n const config = await this.extensionService.load();\n this.setup(config);\n }\n\n setup(config: ExtensionConfig) {\n if (!config) {\n return;\n }\n\n const references = (config.$references || [])\n .filter((entry) => typeof entry === 'object')\n .map((entry) => entry as ExtensionRef);\n this._references.next(references);\n }\n\n /**\n * Provides a collection of document list columns for the particular preset.\n * The result is filtered by the **disabled** state.\n *\n * @param key Preset key.\n * @returns list of document list presets\n */\n getDocumentListPreset(key: string): DocumentListPresetRef[] {\n return this.extensionService\n .getElements<DocumentListPresetRef>(\n `features.documentList.${key}`\n )\n .filter((entry) => !entry.disabled);\n }\n\n /**\n * Provides a list of the Viewer content extensions,\n * filtered by **disabled** state and **rules**.\n *\n * @returns list of viewer extension references\n */\n getViewerExtensions(): ViewerExtensionRef[] {\n return this.extensionService\n .getElements<ViewerExtensionRef>('features.viewer.extensions')\n .filter((extension) => !this.isViewerExtensionDisabled(extension));\n }\n\n protected isViewerExtensionDisabled(extension: ViewerExtensionRef): boolean {\n if (extension) {\n if (extension.disabled) {\n return true;\n }\n\n if (extension.rules?.disabled) {\n return this.extensionService.evaluateRule(extension.rules.disabled);\n }\n }\n\n return false;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Node } from '@alfresco/js-api';\n\nexport interface NavigationState {\n currentFolder?: Node;\n url?: string;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Group } from '@alfresco/js-api';\n\nexport interface ProfileState {\n [key: string]: any;\n\n id: string;\n isAdmin: boolean;\n firstName: string;\n lastName: string;\n userName?: string;\n initials?: string;\n groups?: Group[];\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NodeEntry, SiteEntry } from '@alfresco/js-api';\n\nexport interface SelectionState {\n count: number;\n nodes: NodeEntry[];\n libraries: SiteEntry[];\n isEmpty: boolean;\n first?: NodeEntry;\n last?: NodeEntry;\n folder?: NodeEntry;\n file?: NodeEntry;\n library?: SiteEntry;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface RepositoryState {\n isAuditEnabled?: boolean;\n isQuickShareEnabled?: boolean;\n isReadOnly?: boolean;\n isThumbnailGenerationEnabled?: boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Node } from '@alfresco/js-api';\n\nexport interface ViewerExtensionInterface {\n url: string;\n nameFile: string;\n node: Node;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, ComponentRef, OnInit, ViewChild, ViewContainerRef, OnDestroy, OnChanges } from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-preview-extension',\n standalone: true,\n template: `<div #content></div>`\n})\nexport class PreviewExtensionComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** ID string of the component to preview. */\n @Input()\n id: string;\n\n /** URL of the content in the repository. */\n @Input()\n url: string;\n\n /** File extension (.jpg, .png, etc) for the viewer. */\n @Input()\n extension: string;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensionService: ExtensionService) {}\n\n ngOnInit() {\n if (!this.id) {\n return;\n }\n\n const componentType = this.extensionService.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges() {\n this.updateInstance();\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n const instance = this.componentRef.instance;\n\n instance.url = this.url;\n instance.extension = this.extension;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n Input,\n OnInit,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n ComponentRef,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-dynamic-column',\n standalone: true,\n template: `<ng-container #content></ng-container>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'adf-dynamic-column' },\n styles: [\n `\n .adf-dynamic-column {\n display: flex;\n align-items: center;\n width: inherit;\n }\n `\n ]\n})\nexport class DynamicColumnComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n @Input()\n id: string;\n\n @Input()\n context: any;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnInit() {\n const componentType = this.extensions.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.node) {\n this.updateInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.instance.context = this.context;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, ComponentRef, ViewChild, ViewContainerRef, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\nimport { ExtensionComponent } from '../../services/component-register.service';\n\n// cSpell:words lifecycle\n@Component({\n selector: 'adf-dynamic-component',\n standalone: true,\n template: `<div #content></div>`\n})\nexport class DynamicExtensionComponent implements OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** Unique ID string for the component to show. */\n @Input() id: string;\n\n /** Data for the dynamically-loaded component instance. */\n @Input() data: any;\n\n private componentRef: ComponentRef<ExtensionComponent>;\n private loaded: boolean = false;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this.loaded) {\n this.loadComponent();\n this.loaded = true;\n }\n\n if (changes.data) {\n this.data = changes.data.currentValue;\n }\n\n this.updateInstance();\n this.proxy('ngOnChanges', changes);\n }\n\n ngOnDestroy() {\n if (this.componentCreated()) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private loadComponent() {\n const componentType = this.extensions.getComponentById<ExtensionComponent>(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n }\n }\n\n private updateInstance() {\n if (this.componentCreated()) {\n this.componentRef.instance.data = this.data;\n }\n }\n\n private proxy(lifecycleMethod: string, ...args: any[]) {\n if (this.componentCreated() && this.lifecycleHookIsImplemented(lifecycleMethod)) {\n // eslint-disable-next-line prefer-spread\n this.componentRef.instance[lifecycleMethod].apply(this.componentRef.instance, args);\n }\n }\n\n private componentCreated(): boolean {\n return !!this.componentRef && !!this.componentRef.instance;\n }\n\n private lifecycleHookIsImplemented(lifecycleMethod: string): boolean {\n return !!this.componentRef.instance[lifecycleMethod];\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, OnInit, OnDestroy, ViewChild, ViewContainerRef, ComponentRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { Node } from '@alfresco/js-api';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-dynamic-tab',\n standalone: true,\n template: `<div #content></div>`\n})\nexport class DynamicTabComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** Unique ID string for the component to show. */\n @Input()\n id: string;\n\n @Input()\n node: Node;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnInit() {\n const componentType = this.extensions.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.node) {\n this.updateInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.instance.node = this.node;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './viewer/viewer-extension.interface';\nexport * from './viewer/preview-extension.component';\nexport * from './dynamic-column/dynamic-column.component';\nexport * from './dynamic-component/dynamic.component';\nexport * from './dynamic-tab/dynamic-tab.component';\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AppExtensionService } from './app-extension.service';\n\nexport const setupExtensions = (appExtensionService: AppExtensionService) => () => appExtensionService.load();\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DynamicExtensionComponent } from './components/dynamic-component/dynamic.component';\nimport { DynamicTabComponent } from './components/dynamic-tab/dynamic-tab.component';\nimport { DynamicColumnComponent } from './components/dynamic-column/dynamic-column.component';\nimport { PreviewExtensionComponent } from './components/viewer/preview-extension.component';\nimport { NgModule, ModuleWithProviders, APP_INITIALIZER } from '@angular/core';\nimport { AppExtensionService } from './services/app-extension.service';\nimport { setupExtensions } from './services/startup-extension-factory';\n\nexport const EXTENSION_DIRECTIVES = [DynamicExtensionComponent, DynamicTabComponent, DynamicColumnComponent, PreviewExtensionComponent] as const;\n\n/** @deprecated import EXTENSION_DIRECTIVES or standalone components instead */\n@NgModule({\n imports: [...EXTENSION_DIRECTIVES],\n exports: [...EXTENSION_DIRECTIVES]\n})\nexport class ExtensionsModule {\n static forRoot(): ModuleWithProviders<ExtensionsModule> {\n return {\n ngModule: ExtensionsModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: setupExtensions,\n deps: [AppExtensionService],\n multi: true\n }\n ]\n };\n }\n\n /**\n * @deprecated use `ExtensionsModule` instead, `EXTENSION_DIRECTIVES` or direct standalone components\n * @returns Module with providers\n */\n static forChild(): ModuleWithProviders<ExtensionsModule> {\n return {\n ngModule: ExtensionsModule\n };\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './lib/config/action.extensions';\nexport * from './lib/config/document-list.extensions';\nexport * from './lib/config/extension-element';\nexport * from './lib/config/extension-utils';\nexport * from './lib/config/extension.config';\nexport * from './lib/config/icon.extensions';\nexport * from './lib/config/navbar.extensions';\nexport * from './lib/config/permission.extensions';\nexport * from './lib/config/routing.extensions';\nexport * from './lib/config/rule.extensions';\nexport * from './lib/config/sidebar.extensions';\nexport * from './lib/config/viewer.extensions';\n\nexport * from './lib/services/extension-loader.service';\nexport * from './lib/services/extension.service';\nexport * from './lib/services/component-register.service';\nexport * from './lib/services/app-extension.service';\nexport * from './lib/services/rule.service';\n\nexport * from './lib/store/states/navigation.state';\nexport * from './lib/store/states/profile.state';\nexport * from './lib/store/states/selection.state';\nexport * from './lib/store/states/repository.state';\n\nexport * from './lib/components/public-api';\nexport * from './lib/extensions.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ExtensionLoaderService","core.every","core.some","core.not","i2.ComponentRegisterService","i3.RuleService","i1.ExtensionService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adf-extensions.mjs","sources":["../../../../lib/extensions/src/lib/config/action.extensions.ts","../../../../lib/extensions/src/lib/config/document-list.extensions.ts","../../../../lib/extensions/src/lib/config/extension-element.ts","../../../../lib/extensions/src/lib/config/extension-utils.ts","../../../../lib/extensions/src/lib/config/extension.config.ts","../../../../lib/extensions/src/lib/config/icon.extensions.ts","../../../../lib/extensions/src/lib/config/navbar.extensions.ts","../../../../lib/extensions/src/lib/config/permission.extensions.ts","../../../../lib/extensions/src/lib/config/routing.extensions.ts","../../../../lib/extensions/src/lib/config/rule.extensions.ts","../../../../lib/extensions/src/lib/config/sidebar.extensions.ts","../../../../lib/extensions/src/lib/config/viewer.extensions.ts","../../../../lib/extensions/src/lib/services/extension-loader.service.ts","../../../../lib/extensions/src/lib/evaluators/core.evaluators.ts","../../../../lib/extensions/src/lib/services/component-register.service.ts","../../../../lib/extensions/src/lib/services/rule.service.ts","../../../../lib/extensions/src/lib/services/extension.service.ts","../../../../lib/extensions/src/lib/services/app-extension.service.ts","../../../../lib/extensions/src/lib/store/states/navigation.state.ts","../../../../lib/extensions/src/lib/store/states/profile.state.ts","../../../../lib/extensions/src/lib/store/states/selection.state.ts","../../../../lib/extensions/src/lib/store/states/repository.state.ts","../../../../lib/extensions/src/lib/components/viewer/viewer-extension.interface.ts","../../../../lib/extensions/src/lib/components/viewer/preview-extension.component.ts","../../../../lib/extensions/src/lib/components/dynamic-column/dynamic-column.component.ts","../../../../lib/extensions/src/lib/components/dynamic-component/dynamic.component.ts","../../../../lib/extensions/src/lib/components/dynamic-tab/dynamic-tab.component.ts","../../../../lib/extensions/src/lib/components/public-api.ts","../../../../lib/extensions/src/lib/services/startup-extension-factory.ts","../../../../lib/extensions/src/lib/extensions.module.ts","../../../../lib/extensions/src/public-api.ts","../../../../lib/extensions/src/adf-extensions.ts"],"sourcesContent":["/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\n// eslint-disable-next-line no-shadow\nexport enum ContentActionType {\n default = 'default',\n button = 'button',\n separator = 'separator',\n menu = 'menu',\n custom = 'custom'\n}\n\nexport interface ContentActionRef extends ExtensionElement {\n type: ContentActionType;\n\n title?: string;\n tooltip?: string;\n description?: string;\n icon?: string;\n children?: Array<ContentActionRef>;\n component?: string;\n data?: any;\n color?: string;\n actions?: {\n [key: string]: string;\n click?: string;\n };\n rules?: {\n [key: string]: string;\n enabled?: string;\n visible?: string;\n };\n}\n\nexport interface ActionRef {\n id: string;\n type: string;\n payload?: any;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/* eslint-disable id-blacklist */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface DataColumnTypes {\n text: string;\n image: string;\n date: string;\n json: string;\n icon: string;\n fileSize: string;\n location: string;\n boolean: string;\n amount: string;\n number: string;\n}\n\nexport type DataColumnType = keyof DataColumnTypes;\n\nexport interface DocumentListPresetRef extends ExtensionElement {\n key: string;\n type: DataColumnType;\n title?: string;\n format?: string;\n class?: string;\n sortable: boolean;\n template: string;\n desktopOnly: boolean;\n sortingKey: string;\n isHidden?: boolean;\n rules?: {\n [key: string]: string;\n visible?: string;\n };\n draggable?: boolean;\n resizable?: boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface ExtensionElement {\n id: string;\n\n order?: number;\n disabled?: boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ContentActionRef, ContentActionType } from './action.extensions';\n\nexport const getValue = (target: any, key: string): any => {\n if (!target) {\n return undefined;\n }\n\n const keys = key.split('.');\n key = '';\n\n do {\n key += keys.shift();\n const value = target[key];\n if (\n value !== undefined &&\n (typeof value === 'object' || !keys.length)\n ) {\n target = value;\n key = '';\n } else if (!keys.length) {\n target = undefined;\n } else {\n key += '.';\n }\n } while (keys.length);\n\n return target;\n};\n\nexport const filterEnabled = (entry: { disabled?: boolean }): boolean => !entry.disabled;\n\nexport const sortByOrder = (\n a: { order?: number | undefined },\n b: { order?: number | undefined }\n) => {\n const left = a.order === undefined ? Number.MAX_SAFE_INTEGER : a.order;\n const right = b.order === undefined ? Number.MAX_SAFE_INTEGER : b.order;\n return left - right;\n};\n\nexport const reduceSeparators = (\n acc: ContentActionRef[],\n el: ContentActionRef,\n i: number,\n arr: ContentActionRef[]\n): ContentActionRef[] => {\n // remove leading separator\n if (i === 0) {\n if (arr[i].type === ContentActionType.separator) {\n return acc;\n }\n }\n // remove duplicate separators\n if (i > 0) {\n const prev = arr[i - 1];\n if (\n prev.type === ContentActionType.separator &&\n el.type === ContentActionType.separator\n ) {\n return acc;\n }\n\n // remove trailing separator\n if (i === arr.length - 1) {\n if (el.type === ContentActionType.separator) {\n return acc;\n }\n }\n }\n\n return acc.concat(el);\n};\n\nexport const reduceEmptyMenus = (\n acc: ContentActionRef[],\n el: ContentActionRef\n): ContentActionRef[] => {\n if (el.type === ContentActionType.menu) {\n if ((el.children || []).length === 0) {\n return acc;\n }\n }\n return acc.concat(el);\n};\n\nexport const mergeObjects = (...objects: any[]): any => {\n const result = {};\n\n objects.forEach((source) => {\n Object.keys(source).forEach((prop) => {\n let replace = false;\n\n if (prop.endsWith('.$replace')) {\n replace = true;\n prop = prop.replace('.$replace', '');\n }\n\n if (!prop.startsWith('$')) {\n if (replace) {\n result[prop] = source[`${prop}.$replace`];\n } else if (prop in result && Array.isArray(result[prop])) {\n if (Array.isArray(source[prop])) {\n result[prop] = mergeArrays(result[prop], source[prop]);\n } else {\n result[prop] = [...result[prop], source[prop]];\n }\n } else if (prop in result && typeof result[prop] === 'object') {\n result[prop] = mergeObjects(result[prop], source[prop]);\n } else {\n result[prop] = source[prop];\n }\n }\n });\n });\n\n return result;\n};\n\nexport const mergeArrays = (left: any[], right: any[]): any[] => {\n const result = [];\n const map = {};\n\n (left || []).forEach((entry) => {\n const element = entry;\n if (element && Object.prototype.hasOwnProperty.call(element, 'id')) {\n map[element.id] = element;\n } else {\n result.push(element);\n }\n });\n\n (right || []).forEach((entry) => {\n const element = entry;\n if (element && Object.prototype.hasOwnProperty.call(element, 'id') && map[element.id]) {\n const merged = mergeObjects(map[element.id], element);\n map[element.id] = merged;\n } else {\n result.push(element);\n }\n });\n\n return Object.keys(map).map((key) => map[key]).concat(result);\n};\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RouteRef } from './routing.extensions';\nimport { RuleRef } from './rule.extensions';\nimport { ActionRef } from './action.extensions';\n\nexport interface ExtensionRef {\n $id: string;\n $name: string;\n $version: string;\n $vendor: string;\n $license: string;\n $runtime?: string;\n $description?: string;\n $dependencies?: Array<string>;\n\n appConfig?: any;\n rules?: Array<RuleRef>;\n routes?: Array<RouteRef>;\n actions?: Array<ActionRef>;\n\n features?: {\n [key: string]: any;\n };\n}\n\nexport interface ExtensionConfig extends ExtensionRef {\n $references?: Array<string | ExtensionRef>;\n $ignoreReferenceList?: Array<string>;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface IconRef extends ExtensionElement {\n value: string;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface NavBarRules {\n [ruleId: string]: string;\n}\n\nexport interface NavBarGroupRef extends ExtensionElement {\n items: Array<NavBarLinkRef>;\n rules?: NavBarRules;\n}\n\nexport interface NavBarLinkRef extends ExtensionElement {\n icon: string;\n title: string;\n route: string;\n\n provider?: string;\n component?: string;\n url?: string; // evaluated at runtime based on route ref\n description?: string;\n children?: Array<NavBarLinkRef>;\n rules?: NavBarRules;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface NodePermissions {\n check(source: any, permissions: string[], options?: any): boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface RouteRef {\n id: string;\n path: string;\n component: string;\n parentRoute?: string;\n layout?: string;\n auth?: string[];\n data?: { [key: string]: string };\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SelectionState } from '../store/states/selection.state';\nimport { NavigationState } from '../store/states/navigation.state';\nimport { NodePermissions } from './permission.extensions';\nimport { ProfileState } from '../store/states/profile.state';\nimport { RepositoryInfo } from '@alfresco/js-api';\n\nexport type RuleEvaluator = (context: RuleContext, ...args: any[]) => boolean;\n\nexport interface RuleContext {\n repository: RepositoryInfo;\n auth: any;\n selection: SelectionState;\n navigation: NavigationState;\n profile: ProfileState;\n permissions: NodePermissions;\n\n getEvaluator(key: string): RuleEvaluator;\n}\n\nexport class RuleRef {\n type: string;\n id?: string;\n parameters?: Array<RuleParameter>;\n}\n\nexport interface RuleParameter {\n type: string;\n value: any;\n parameters?: Array<RuleParameter>;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface SidebarTabRef extends ExtensionElement {\n title: string;\n component: string;\n\n icon?: string;\n rules?: {\n [key: string]: string;\n visible?: string;\n };\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ExtensionElement } from './extension-element';\n\nexport interface ViewerExtensionRef extends ExtensionElement {\n fileExtension: string;\n component: string;\n\n rules?: {\n [key: string]: string;\n visible?: string;\n };\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { ActionRef, ContentActionRef, ContentActionType } from '../config/action.extensions';\nimport { ExtensionElement } from '../config/extension-element';\nimport { filterEnabled, getValue, mergeObjects, sortByOrder } from '../config/extension-utils';\nimport { ExtensionConfig, ExtensionRef } from '../config/extension.config';\nimport { RouteRef } from '../config/routing.extensions';\nimport { RuleRef } from '../config/rule.extensions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtensionLoaderService {\n constructor(private http: HttpClient) {\n }\n\n load(\n configPath: string,\n pluginsPath: string,\n extensions?: string[],\n extensionValues?: ExtensionConfig[]\n ): Promise<ExtensionConfig> {\n return new Promise<any>((resolve) => {\n this.loadConfig(configPath, 0).then((result) => {\n if (result) {\n let config = result.config;\n\n const override = sessionStorage.getItem('app.extension.config');\n if (override) {\n config = JSON.parse(override);\n }\n\n if (!config.$references?.length) {\n config.$references = this.filterIgnoredExtensions(extensions || [], config.$ignoreReferenceList);\n } else {\n config.$references = this.filterIgnoredExtensions(config.$references, config.$ignoreReferenceList);\n }\n\n if (config.$references?.length > 0 || extensionValues) {\n const plugins = (config.$references ?? []).map((name, idx) =>\n this.loadConfig(`${pluginsPath}/${name}`, idx)\n );\n\n Promise.all(plugins).then((results) => {\n let configs = results\n .filter((entry) => entry)\n .sort(sortByOrder)\n .map((entry) => entry.config);\n\n if (extensionValues) {\n configs = [\n ...configs,\n ...extensionValues\n ];\n }\n\n\n if (configs.length > 0) {\n config = mergeObjects(config, ...configs);\n }\n\n config = {\n ...config,\n ...this.getMetadata(result.config),\n $references: configs.map((ext) => this.getMetadata(ext))\n };\n\n resolve(config);\n });\n } else {\n resolve(config);\n }\n }\n });\n });\n }\n\n /**\n * Retrieves configuration elements.\n * Filters element by **enabled** and **order** attributes.\n * Example:\n * `getElements<ViewerExtensionRef>(config, 'features.viewer.extensions')`\n *\n * @param config configuration settings\n * @param key element key\n * @param fallback fallback array of values\n * @returns list of elements\n */\n getElements<T extends ExtensionElement>(\n config: ExtensionConfig,\n key: string,\n fallback: Array<T> = []\n ): Array<T> {\n const values = getValue(config, key) || fallback || [];\n return values.filter(filterEnabled).sort(sortByOrder);\n }\n\n getContentActions(\n config: ExtensionConfig,\n key: string\n ): Array<ContentActionRef> {\n return this.getElements(config, key).map(this.setActionDefaults);\n }\n\n getRules(config: ExtensionConfig): Array<RuleRef> {\n if (config?.rules) {\n return config.rules;\n }\n return [];\n }\n\n getRoutes(config: ExtensionConfig): Array<RouteRef> {\n if (config) {\n return config.routes || [];\n }\n return [];\n }\n\n getActions(config: ExtensionConfig): Array<ActionRef> {\n if (config) {\n return config.actions || [];\n }\n return [];\n }\n\n getFeatures(config: ExtensionConfig): any {\n if (config) {\n return config.features || [];\n }\n return [];\n }\n\n protected getMetadata(config: ExtensionConfig): ExtensionRef {\n const result: any = {};\n\n Object\n .keys(config)\n .filter((key) => key.startsWith('$'))\n .forEach((key) => {\n result[key] = config[key];\n });\n\n return result;\n }\n\n protected loadConfig(\n url: string,\n order: number\n ): Promise<{ order: number; config: ExtensionConfig }> {\n return new Promise((resolve) => {\n this.http.get<ExtensionConfig>(url).subscribe(\n (config) => {\n resolve({\n order,\n config\n });\n },\n () => {\n resolve(null);\n }\n );\n });\n }\n\n protected setActionDefaults(action: ContentActionRef): ContentActionRef {\n if (action) {\n action.type = action.type || ContentActionType.default;\n action.icon = action.icon || 'extension';\n }\n return action;\n }\n\n private filterIgnoredExtensions(extensions: Array<string | ExtensionRef>, ignoreReferenceList: string[]): Array<string | ExtensionRef> {\n if (!ignoreReferenceList?.length) {\n return extensions;\n }\n\n return extensions.map((file: string) => file.match('(?!.*/).+')[0]).filter((fileName: string) => !ignoreReferenceList.includes(fileName));\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RuleContext, RuleParameter } from '../config/rule.extensions';\n\nexport const not = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .every((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return !evaluator(context, ...(arg.parameters || []));\n });\n};\n\nexport const every = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .every((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return evaluator(context, ...(arg.parameters || []));\n });\n};\n\nexport const some = (context: RuleContext, ...args: RuleParameter[]): boolean => {\n if (!args || args.length === 0) {\n return false;\n }\n\n return args\n .some((arg) => {\n const evaluator = context.getEvaluator(arg.value);\n if (!evaluator) {\n console.warn('evaluator not found: ' + arg.value);\n return false;\n }\n return evaluator(context, ...(arg.parameters || []));\n });\n};\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable, Type } from '@angular/core';\n\nexport interface ExtensionComponent {\n data: any;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ComponentRegisterService {\n components: { [key: string]: Type<any> } = {};\n\n setComponents(values: { [key: string]: Type<any> }) {\n if (values) {\n this.components = Object.assign({}, this.components, values);\n }\n }\n\n getComponentById<T>(id: string): Type<T> {\n return this.components[id];\n }\n\n hasComponentById(id: string): boolean {\n return !!this.getComponentById(id);\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from '@angular/core';\nimport { RuleRef, RuleContext, RuleEvaluator, RuleParameter } from '../config/rule.extensions';\nimport { ExtensionConfig } from '../config/extension.config';\nimport { ExtensionLoaderService } from './extension-loader.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RuleService {\n context: RuleContext = null;\n rules: Array<RuleRef> = [];\n evaluators: { [key: string]: RuleEvaluator } = {};\n\n constructor(protected loader: ExtensionLoaderService) {}\n\n setup(config: ExtensionConfig) {\n this.rules = this.loader.getRules(config);\n }\n\n /**\n * Adds one or more new rule evaluators to the existing set.\n *\n * @param values The new evaluators to add\n */\n setEvaluators(values: { [key: string]: RuleEvaluator }) {\n if (values) {\n this.evaluators = Object.assign({}, this.evaluators, values);\n }\n }\n\n /**\n * Retrieves a rule using its ID value.\n *\n * @param id The ID value to look for\n * @returns The rule or null if not found\n */\n getRuleById(id: string): RuleRef {\n return this.rules.find((ref) => ref.id === id);\n }\n\n /**\n * Retrieves a RuleEvaluator function using its key name.\n *\n * @param key Key name to look for\n * @returns RuleEvaluator or null if not found\n */\n getEvaluator(key: string): RuleEvaluator {\n if (key?.startsWith('!')) {\n const fn = this.evaluators[key.substring(1)];\n return (context: RuleContext, ...args: RuleParameter[]): boolean => !fn(context, ...args);\n }\n return this.evaluators[key];\n }\n\n /**\n * Evaluates a rule.\n *\n * @param ruleId ID of the rule to evaluate\n * @param context Custom rule execution context.\n * @returns True if the rule passed, false otherwise\n */\n evaluateRule(ruleId: string, context?: RuleContext): boolean {\n const ruleRef = this.getRuleById(ruleId);\n context = context || this.context;\n\n if (ruleRef) {\n const evaluator = this.getEvaluator(ruleRef.type);\n if (evaluator) {\n return evaluator(context, ...ruleRef.parameters);\n }\n } else {\n const evaluator = this.getEvaluator(ruleId);\n if (evaluator) {\n return evaluator(context);\n }\n }\n return false;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable, Type, InjectionToken, Inject } from '@angular/core';\nimport { RuleEvaluator, RuleRef, RuleContext } from '../config/rule.extensions';\nimport { ExtensionConfig } from '../config/extension.config';\nimport { ExtensionLoaderService } from './extension-loader.service';\nimport { RouteRef } from '../config/routing.extensions';\nimport { ActionRef } from '../config/action.extensions';\nimport * as core from '../evaluators/core.evaluators';\nimport { ComponentRegisterService } from './component-register.service';\nimport { RuleService } from './rule.service';\nimport { ExtensionElement } from '../config/extension-element';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n/**\n * The default extensions factory\n *\n * @returns the list of extension json files\n */\nexport function extensionJsonsFactory() {\n return [];\n};\n\nexport const EXTENSION_JSONS = new InjectionToken<string[][]>('extension-jsons', {\n providedIn: 'root',\n factory: extensionJsonsFactory\n});\n\nexport const EXTENSION_JSON_VALUES = new InjectionToken<string[][]>('extension-jsons-values', {\n providedIn: 'root',\n factory: extensionJsonsFactory\n});\n\n// eslint-disable-next-line prefer-arrow/prefer-arrow-functions\n/**\n * Provides the extension json values for the angular modules\n *\n * @param jsons files to provide\n * @returns a provider section\n */\nexport function provideExtensionConfig(jsons: string[]) {\n return {\n provide: EXTENSION_JSONS,\n useValue: jsons,\n multi: true\n };\n};\n\n/**\n * Provides the extension json raw values for the angular modules\n *\n * @param extensionConfigValue config value\n * @returns a provider section\n */\nexport function provideExtensionConfigValues(extensionConfigValue: ExtensionConfig[]) {\n return {\n provide: EXTENSION_JSON_VALUES,\n useValue: extensionConfigValue,\n multi: true\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExtensionService {\n configPath = 'assets/app.extensions.json';\n pluginsPath = 'assets/plugins';\n\n routes: Array<RouteRef> = [];\n actions: Array<ActionRef> = [];\n features: Array<any> = [];\n authGuards: { [key: string]: Type<any> } = {};\n\n setup$: Observable<ExtensionConfig>;\n\n protected config: ExtensionConfig = null;\n protected onSetup$ = new BehaviorSubject<ExtensionConfig>(this.config);\n\n constructor(\n protected loader: ExtensionLoaderService,\n protected componentRegister: ComponentRegisterService,\n protected ruleService: RuleService,\n @Inject(EXTENSION_JSONS) protected extensionJsons: string[],\n @Inject(EXTENSION_JSON_VALUES) protected extensionJsonValues: ExtensionConfig[]\n ) {\n this.setup$ = this.onSetup$.asObservable();\n }\n\n /**\n * Loads and registers an extension config file and plugins (specified by path properties).\n *\n * @returns The loaded config data\n */\n async load(): Promise<ExtensionConfig> {\n const config = await this.loader.load(\n this.configPath,\n this.pluginsPath,\n this.extensionJsons.flat(),\n this.extensionJsonValues.flat()\n );\n\n this.setup(config);\n return config;\n }\n\n /**\n * Registers extensions from a config object.\n *\n * @param config Object with config data\n */\n setup(config: ExtensionConfig) {\n if (!config) {\n console.warn('Extension configuration not found');\n return;\n }\n\n this.config = config;\n\n this.setEvaluators({\n 'core.every': core.every,\n 'core.some': core.some,\n 'core.not': core.not\n });\n\n this.actions = this.loader.getActions(config);\n this.routes = this.loader.getRoutes(config);\n this.features = this.loader.getFeatures(config);\n\n this.ruleService.setup(config);\n this.onSetup$.next(config);\n }\n\n /**\n * Gets features by key.\n *\n * @param key Key string using dot notation or array of strings\n * @param defaultValue Default value returned if feature is not found, default is empty array\n * @returns Feature found by key\n */\n getFeature<T = any[]>(key: string | string[], defaultValue: any = []): T {\n const properties: string[] = Array.isArray(key) ? key : key.split('.');\n return properties.reduce((prev, curr) => prev?.[curr], this.features) || defaultValue;\n }\n\n getElements<T extends ExtensionElement>(key: string, fallback: Array<T> = []): Array<T> {\n return this.loader.getElements(this.config, key, fallback);\n }\n\n /**\n * Adds one or more new rule evaluators to the existing set.\n *\n * @param values The new evaluators to add\n */\n setEvaluators(values: { [key: string]: RuleEvaluator }) {\n this.ruleService.setEvaluators(values);\n }\n\n /**\n * Adds one or more new auth guards to the existing set.\n *\n * @param values The new auth guards to add\n */\n setAuthGuards(values: { [key: string]: Type<any> }) {\n if (values) {\n this.authGuards = Object.assign({}, this.authGuards, values);\n }\n }\n\n /**\n * Adds one or more new components to the existing set.\n *\n * @param values The new components to add\n */\n setComponents(values: { [key: string]: Type<any> }) {\n this.componentRegister.setComponents(values);\n }\n\n /**\n * Retrieves a route using its ID value.\n *\n * @param id The ID value to look for\n * @returns The route or null if not found\n */\n getRouteById(id: string): RouteRef {\n return this.routes.find((route) => route.id === id);\n }\n\n /**\n * Retrieves one or more auth guards using an array of ID values.\n *\n * @param ids Array of ID value to look for\n * @returns Array of auth guards or empty array if none were found\n */\n getAuthGuards(ids: string[]): Array<Type<any>> {\n return (ids || [])\n .map((id) => this.authGuards[id])\n .filter((guard) => guard);\n }\n\n /**\n * Retrieves an action using its ID value.\n *\n * @param id The ID value to look for\n * @returns Action or null if not found\n */\n getActionById(id: string): ActionRef {\n return this.actions.find((action) => action.id === id);\n }\n\n /**\n * Retrieves a RuleEvaluator function using its key name.\n *\n * @param key Key name to look for\n * @returns RuleEvaluator or null if not found\n */\n getEvaluator(key: string): RuleEvaluator {\n return this.ruleService.getEvaluator(key);\n }\n\n /**\n * Evaluates a rule.\n *\n * @param ruleId ID of the rule to evaluate\n * @param context Custom rule execution context.\n * @returns True if the rule passed, false otherwise\n */\n evaluateRule(ruleId: string, context?: RuleContext): boolean {\n return this.ruleService.evaluateRule(ruleId, context);\n }\n\n /**\n * Retrieves a registered extension component using its ID value.\n *\n * @param id The ID value to look for\n * @returns The component or null if not found\n */\n getComponentById<T>(id: string) {\n return this.componentRegister.getComponentById<T>(id);\n }\n\n /**\n * Retrieves a rule using its ID value.\n *\n * @param id The ID value to look for\n * @returns The rule or null if not found\n */\n getRuleById(id: string): RuleRef {\n return this.ruleService.getRuleById(id);\n }\n\n /**\n * Runs a lightweight expression stored in a string.\n *\n * @param value String containing the expression or literal value\n * @param context Parameter object for the expression with details of app state\n * @returns Result of evaluated expression, if found, or the literal value otherwise\n */\n runExpression(value: string | any , context?: any) {\n if (typeof value === 'string' ) {\n return this.evaluateExpression(value, context);\n } else {\n const duplicate = Object.assign({}, value);\n Object.keys(duplicate).forEach( (key) => {\n duplicate[key] = this.evaluateExpression(duplicate[key], context);\n });\n return duplicate;\n }\n }\n\n private evaluateExpression(value: string, context?: any): string {\n const pattern = new RegExp(/\\$\\((.*\\)?)\\)/g);\n const matches = pattern.exec(value);\n\n if (matches && matches.length > 1) {\n const expression = matches[1];\n const fn = new Function('context', `return ${expression}`);\n const result = fn(context);\n\n return result;\n }\n return value;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Injectable } from '@angular/core';\nimport { ExtensionConfig, ExtensionRef } from '../config/extension.config';\nimport { ExtensionService } from '../services/extension.service';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { ViewerExtensionRef } from '../config/viewer.extensions';\nimport { DocumentListPresetRef } from '../config/document-list.extensions';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AppExtensionService {\n references$: Observable<ExtensionRef[]>;\n private _references = new BehaviorSubject<ExtensionRef[]>([]);\n\n constructor(protected extensionService: ExtensionService) {\n this.references$ = this._references.asObservable();\n }\n\n async load() {\n const config = await this.extensionService.load();\n this.setup(config);\n }\n\n setup(config: ExtensionConfig) {\n if (!config) {\n return;\n }\n\n const references = (config.$references || [])\n .filter((entry) => typeof entry === 'object')\n .map((entry) => entry as ExtensionRef);\n this._references.next(references);\n }\n\n /**\n * Provides a collection of document list columns for the particular preset.\n * The result is filtered by the **disabled** state.\n *\n * @param key Preset key.\n * @returns list of document list presets\n */\n getDocumentListPreset(key: string): DocumentListPresetRef[] {\n return this.extensionService\n .getElements<DocumentListPresetRef>(\n `features.documentList.${key}`\n )\n .filter((entry) => !entry.disabled);\n }\n\n /**\n * Provides a list of the Viewer content extensions,\n * filtered by **disabled** state and **rules**.\n *\n * @returns list of viewer extension references\n */\n getViewerExtensions(): ViewerExtensionRef[] {\n return this.extensionService\n .getElements<ViewerExtensionRef>('features.viewer.extensions')\n .filter((extension) => !this.isViewerExtensionDisabled(extension));\n }\n\n protected isViewerExtensionDisabled(extension: ViewerExtensionRef): boolean {\n if (extension) {\n if (extension.disabled) {\n return true;\n }\n\n if (extension.rules?.disabled) {\n return this.extensionService.evaluateRule(extension.rules.disabled);\n }\n }\n\n return false;\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Node } from '@alfresco/js-api';\n\nexport interface NavigationState {\n currentFolder?: Node;\n url?: string;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Group } from '@alfresco/js-api';\n\nexport interface ProfileState {\n [key: string]: any;\n\n id: string;\n isAdmin: boolean;\n firstName: string;\n lastName: string;\n userName?: string;\n initials?: string;\n groups?: Group[];\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { NodeEntry, SiteEntry } from '@alfresco/js-api';\n\nexport interface SelectionState {\n count: number;\n nodes: NodeEntry[];\n libraries: SiteEntry[];\n isEmpty: boolean;\n first?: NodeEntry;\n last?: NodeEntry;\n folder?: NodeEntry;\n file?: NodeEntry;\n library?: SiteEntry;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport interface RepositoryState {\n isAuditEnabled?: boolean;\n isQuickShareEnabled?: boolean;\n isReadOnly?: boolean;\n isThumbnailGenerationEnabled?: boolean;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Node } from '@alfresco/js-api';\n\nexport interface ViewerExtensionInterface {\n url: string;\n nameFile: string;\n node: Node;\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, ComponentRef, OnInit, ViewChild, ViewContainerRef, OnDestroy, OnChanges } from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-preview-extension',\n standalone: true,\n template: `<div #content></div>`\n})\nexport class PreviewExtensionComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** ID string of the component to preview. */\n @Input()\n id: string;\n\n /** Identifier of a node that is opened by the viewer. */\n @Input()\n nodeId: string = null;\n\n /** URL of the content in the repository. */\n @Input()\n url: string;\n\n /** File extension (.jpg, .png, etc) for the viewer. */\n @Input()\n extension: string;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensionService: ExtensionService) {}\n\n ngOnInit() {\n if (!this.id) {\n return;\n }\n\n const componentType = this.extensionService.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges() {\n this.updateInstance();\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n const instance = this.componentRef.instance;\n\n instance.url = this.url;\n instance.extension = this.extension;\n instance.nodeId = this.nodeId;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n Component,\n Input,\n OnInit,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n ComponentRef,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n ChangeDetectionStrategy\n} from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-dynamic-column',\n standalone: true,\n template: `<ng-container #content></ng-container>`,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'adf-dynamic-column' },\n styles: [\n `\n .adf-dynamic-column {\n display: flex;\n align-items: center;\n width: inherit;\n }\n `\n ]\n})\nexport class DynamicColumnComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n @Input()\n id: string;\n\n @Input()\n context: any;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnInit() {\n const componentType = this.extensions.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.node) {\n this.updateInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.instance.context = this.context;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, ComponentRef, ViewChild, ViewContainerRef, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';\nimport { ExtensionService } from '../../services/extension.service';\nimport { ExtensionComponent } from '../../services/component-register.service';\n\n// cSpell:words lifecycle\n@Component({\n selector: 'adf-dynamic-component',\n standalone: true,\n template: `<div #content></div>`\n})\nexport class DynamicExtensionComponent implements OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** Unique ID string for the component to show. */\n @Input() id: string;\n\n /** Data for the dynamically-loaded component instance. */\n @Input() data: any;\n\n private componentRef: ComponentRef<ExtensionComponent>;\n private loaded: boolean = false;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (!this.loaded) {\n this.loadComponent();\n this.loaded = true;\n }\n\n if (changes.data) {\n this.data = changes.data.currentValue;\n }\n\n this.updateInstance();\n this.proxy('ngOnChanges', changes);\n }\n\n ngOnDestroy() {\n if (this.componentCreated()) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private loadComponent() {\n const componentType = this.extensions.getComponentById<ExtensionComponent>(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n }\n }\n\n private updateInstance() {\n if (this.componentCreated()) {\n this.componentRef.instance.data = this.data;\n }\n }\n\n private proxy(lifecycleMethod: string, ...args: any[]) {\n if (this.componentCreated() && this.lifecycleHookIsImplemented(lifecycleMethod)) {\n // eslint-disable-next-line prefer-spread\n this.componentRef.instance[lifecycleMethod].apply(this.componentRef.instance, args);\n }\n }\n\n private componentCreated(): boolean {\n return !!this.componentRef && !!this.componentRef.instance;\n }\n\n private lifecycleHookIsImplemented(lifecycleMethod: string): boolean {\n return !!this.componentRef.instance[lifecycleMethod];\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Component, Input, OnInit, OnDestroy, ViewChild, ViewContainerRef, ComponentRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { Node } from '@alfresco/js-api';\nimport { ExtensionService } from '../../services/extension.service';\n\n@Component({\n selector: 'adf-dynamic-tab',\n standalone: true,\n template: `<div #content></div>`\n})\nexport class DynamicTabComponent implements OnInit, OnChanges, OnDestroy {\n @ViewChild('content', { read: ViewContainerRef, static: true })\n content: ViewContainerRef;\n\n /** Unique ID string for the component to show. */\n @Input()\n id: string;\n\n @Input()\n node: Node;\n\n private componentRef: ComponentRef<any>;\n\n constructor(private extensions: ExtensionService) {}\n\n ngOnInit() {\n const componentType = this.extensions.getComponentById(this.id);\n if (componentType) {\n this.content.clear();\n this.componentRef = this.content.createComponent(componentType, { index: 0 });\n this.updateInstance();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes.node) {\n this.updateInstance();\n }\n }\n\n ngOnDestroy() {\n if (this.componentRef) {\n this.componentRef.destroy();\n this.componentRef = null;\n }\n }\n\n private updateInstance() {\n if (this.componentRef?.instance) {\n this.componentRef.instance.node = this.node;\n }\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './viewer/viewer-extension.interface';\nexport * from './viewer/preview-extension.component';\nexport * from './dynamic-column/dynamic-column.component';\nexport * from './dynamic-component/dynamic.component';\nexport * from './dynamic-tab/dynamic-tab.component';\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { AppExtensionService } from './app-extension.service';\n\nexport const setupExtensions = (appExtensionService: AppExtensionService) => () => appExtensionService.load();\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DynamicExtensionComponent } from './components/dynamic-component/dynamic.component';\nimport { DynamicTabComponent } from './components/dynamic-tab/dynamic-tab.component';\nimport { DynamicColumnComponent } from './components/dynamic-column/dynamic-column.component';\nimport { PreviewExtensionComponent } from './components/viewer/preview-extension.component';\nimport { NgModule, ModuleWithProviders, APP_INITIALIZER } from '@angular/core';\nimport { AppExtensionService } from './services/app-extension.service';\nimport { setupExtensions } from './services/startup-extension-factory';\n\nexport const EXTENSION_DIRECTIVES = [DynamicExtensionComponent, DynamicTabComponent, DynamicColumnComponent, PreviewExtensionComponent] as const;\n\n/** @deprecated import EXTENSION_DIRECTIVES or standalone components instead */\n@NgModule({\n imports: [...EXTENSION_DIRECTIVES],\n exports: [...EXTENSION_DIRECTIVES]\n})\nexport class ExtensionsModule {\n static forRoot(): ModuleWithProviders<ExtensionsModule> {\n return {\n ngModule: ExtensionsModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: setupExtensions,\n deps: [AppExtensionService],\n multi: true\n }\n ]\n };\n }\n\n /**\n * @deprecated use `ExtensionsModule` instead, `EXTENSION_DIRECTIVES` or direct standalone components\n * @returns Module with providers\n */\n static forChild(): ModuleWithProviders<ExtensionsModule> {\n return {\n ngModule: ExtensionsModule\n };\n }\n}\n","/*!\n * @license\n * Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './lib/config/action.extensions';\nexport * from './lib/config/document-list.extensions';\nexport * from './lib/config/extension-element';\nexport * from './lib/config/extension-utils';\nexport * from './lib/config/extension.config';\nexport * from './lib/config/icon.extensions';\nexport * from './lib/config/navbar.extensions';\nexport * from './lib/config/permission.extensions';\nexport * from './lib/config/routing.extensions';\nexport * from './lib/config/rule.extensions';\nexport * from './lib/config/sidebar.extensions';\nexport * from './lib/config/viewer.extensions';\n\nexport * from './lib/services/extension-loader.service';\nexport * from './lib/services/extension.service';\nexport * from './lib/services/component-register.service';\nexport * from './lib/services/app-extension.service';\nexport * from './lib/services/rule.service';\n\nexport * from './lib/store/states/navigation.state';\nexport * from './lib/store/states/profile.state';\nexport * from './lib/store/states/selection.state';\nexport * from './lib/store/states/repository.state';\n\nexport * from './lib/components/public-api';\nexport * from './lib/extensions.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ExtensionLoaderService","core.every","core.some","core.not","i2.ComponentRegisterService","i3.RuleService","i1.ExtensionService"],"mappings":"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"}
|
|
@@ -22,6 +22,8 @@ export declare class PreviewExtensionComponent implements OnInit, OnChanges, OnD
|
|
|
22
22
|
content: ViewContainerRef;
|
|
23
23
|
/** ID string of the component to preview. */
|
|
24
24
|
id: string;
|
|
25
|
+
/** Identifier of a node that is opened by the viewer. */
|
|
26
|
+
nodeId: string;
|
|
25
27
|
/** URL of the content in the repository. */
|
|
26
28
|
url: string;
|
|
27
29
|
/** File extension (.jpg, .png, etc) for the viewer. */
|
|
@@ -33,5 +35,5 @@ export declare class PreviewExtensionComponent implements OnInit, OnChanges, OnD
|
|
|
33
35
|
ngOnDestroy(): void;
|
|
34
36
|
private updateInstance;
|
|
35
37
|
static ɵfac: i0.ɵɵFactoryDeclaration<PreviewExtensionComponent, never>;
|
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PreviewExtensionComponent, "adf-preview-extension", never, { "id": "id"; "url": "url"; "extension": "extension"; }, {}, never, never, true, never>;
|
|
38
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<PreviewExtensionComponent, "adf-preview-extension", never, { "id": "id"; "nodeId": "nodeId"; "url": "url"; "extension": "extension"; }, {}, never, never, true, never>;
|
|
37
39
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfresco/adf-extensions",
|
|
3
3
|
"description": "Provides extensibility support for ADF applications.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "7.0.0-alpha.1",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Hyland Software, Inc. and its affiliates",
|
|
7
7
|
"repository": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"peerDependencies": {
|
|
15
15
|
"@angular/common": ">=14.1.3",
|
|
16
16
|
"@angular/core": ">=14.1.3",
|
|
17
|
-
"@alfresco/js-api": ">=
|
|
17
|
+
"@alfresco/js-api": ">=8.0.0-alpha.1+angular.15-10598074956"
|
|
18
18
|
},
|
|
19
19
|
"keywords": [
|
|
20
20
|
"extensions",
|