@cuby-ui/core 0.0.430 → 0.0.432

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.
@@ -128,7 +128,7 @@ export class CuiInstructionInfoComponent {
128
128
  }))));
129
129
  }
130
130
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
131
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiInstructionInfoComponent, isStandalone: true, selector: "cui-instruction-info", inputs: { instruction: { classPropertyName: "instruction", publicName: "instruction", isSignal: true, isRequired: false, transformFunction: null }, tools: { classPropertyName: "tools", publicName: "tools", isSignal: true, isRequired: true, transformFunction: null }, editorResourceUrl: { classPropertyName: "editorResourceUrl", publicName: "editorResourceUrl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { instruction: "instructionChange", validationChanged: "validationChanged", instructionCreated: "instructionCreated" }, providers: [CuiSelectedCategoryService], viewQueries: [{ propertyName: "element", first: true, predicate: ["scrollContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\r\n class=\"wrapper\"\r\n *transloco=\"let t\"\r\n>\r\n <div\r\n #scrollContent\r\n class=\"content content_scrollable\"\r\n >\r\n <div class=\"category\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [for]=\"categoryId\"\r\n [isRequired]=\"true\"\r\n >\r\n {{ t('SELECT_CATEGORY') }}\r\n </label>\r\n <cui-categories\r\n [buttonId]=\"categoryId\"\r\n [treeStructType]=\"TYPE\"\r\n >\r\n <div class=\"select\">\r\n <span [style.color]=\"labelColor()\">\r\n {{ selectTitle() }}\r\n </span>\r\n\r\n <cui-svg icon=\"cuiIconChevronDown\" />\r\n </div>\r\n </cui-categories>\r\n </cui-form-field>\r\n </div>\r\n\r\n @let instructionData = instruction();\r\n @let editorConfigData = editorConfig();\r\n\r\n @if (editorConfigData && instructionData) {\r\n <cui-instruction-info-form\r\n [config]=\"editorConfigData\"\r\n [baseResourceUrl]=\"editorResourceUrl()\"\r\n [title]=\"instructionData.storageElement.title\"\r\n [description]=\"instructionData.storageElement.shortDescription\"\r\n [framerId]=\"instructionData.storageElement.framerInstructionId\"\r\n class=\"utility\"\r\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\r\n (formChanged)=\"onFormChanged($event, instructionData.id)\"\r\n />\r\n }\r\n </div>\r\n</div>\r\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiCategoriesComponent, selector: "cui-categories", inputs: ["treeStructType", "buttonId", "disabled"] }, { kind: "ngmodule", type: CuiDialogModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: i1.CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiInstructionInfoFormComponent, selector: "cui-instruction-info-form", inputs: ["title", "description", "framerId", "baseResourceUrl", "config"], outputs: ["formChanged", "isFormValidChanged"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: i2.CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiInstructionInfoComponent, isStandalone: true, selector: "cui-instruction-info", inputs: { instruction: { classPropertyName: "instruction", publicName: "instruction", isSignal: true, isRequired: false, transformFunction: null }, tools: { classPropertyName: "tools", publicName: "tools", isSignal: true, isRequired: true, transformFunction: null }, editorResourceUrl: { classPropertyName: "editorResourceUrl", publicName: "editorResourceUrl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { instruction: "instructionChange", validationChanged: "validationChanged", instructionCreated: "instructionCreated" }, providers: [CuiSelectedCategoryService], viewQueries: [{ propertyName: "element", first: true, predicate: ["scrollContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\r\n class=\"wrapper\"\r\n *transloco=\"let t\"\r\n>\r\n <div\r\n #scrollContent\r\n class=\"content content_scrollable\"\r\n >\r\n <div class=\"category\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [for]=\"categoryId\"\r\n [isRequired]=\"true\"\r\n >\r\n {{ t('SELECT_CATEGORY') }}\r\n </label>\r\n <cui-categories\r\n [buttonId]=\"categoryId\"\r\n [treeStructType]=\"TYPE\"\r\n >\r\n <div class=\"select\">\r\n <span [style.color]=\"labelColor()\">\r\n {{ selectTitle() }}\r\n </span>\r\n\r\n <cui-svg icon=\"cuiIconChevronDown\" />\r\n </div>\r\n </cui-categories>\r\n </cui-form-field>\r\n </div>\r\n\r\n @let instructionData = instruction();\r\n @let editorConfigData = editorConfig();\r\n\r\n @if (editorConfigData && instructionData) {\r\n <cui-instruction-info-form\r\n [config]=\"editorConfigData\"\r\n [baseResourceUrl]=\"editorResourceUrl()\"\r\n [title]=\"instructionData.storageElement.title\"\r\n [description]=\"instructionData.storageElement.shortDescription\"\r\n [framerId]=\"instructionData.storageElement.framerInstructionId\"\r\n class=\"utility\"\r\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\r\n (formChanged)=\"onFormChanged($event, instructionData.id)\"\r\n />\r\n }\r\n </div>\r\n</div>\r\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiCategoriesComponent, selector: "cui-categories", inputs: ["treeStructType", "buttonId", "disabled", "context"] }, { kind: "ngmodule", type: CuiDialogModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: i1.CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiInstructionInfoFormComponent, selector: "cui-instruction-info-form", inputs: ["title", "description", "framerId", "baseResourceUrl", "config"], outputs: ["formChanged", "isFormValidChanged"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: i2.CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
132
132
  }
133
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionInfoComponent, decorators: [{
134
134
  type: Component,
@@ -144,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
144
144
  TranslocoModule
145
145
  ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiSelectedCategoryService], template: "<div\r\n class=\"wrapper\"\r\n *transloco=\"let t\"\r\n>\r\n <div\r\n #scrollContent\r\n class=\"content content_scrollable\"\r\n >\r\n <div class=\"category\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [for]=\"categoryId\"\r\n [isRequired]=\"true\"\r\n >\r\n {{ t('SELECT_CATEGORY') }}\r\n </label>\r\n <cui-categories\r\n [buttonId]=\"categoryId\"\r\n [treeStructType]=\"TYPE\"\r\n >\r\n <div class=\"select\">\r\n <span [style.color]=\"labelColor()\">\r\n {{ selectTitle() }}\r\n </span>\r\n\r\n <cui-svg icon=\"cuiIconChevronDown\" />\r\n </div>\r\n </cui-categories>\r\n </cui-form-field>\r\n </div>\r\n\r\n @let instructionData = instruction();\r\n @let editorConfigData = editorConfig();\r\n\r\n @if (editorConfigData && instructionData) {\r\n <cui-instruction-info-form\r\n [config]=\"editorConfigData\"\r\n [baseResourceUrl]=\"editorResourceUrl()\"\r\n [title]=\"instructionData.storageElement.title\"\r\n [description]=\"instructionData.storageElement.shortDescription\"\r\n [framerId]=\"instructionData.storageElement.framerInstructionId\"\r\n class=\"utility\"\r\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\r\n (formChanged)=\"onFormChanged($event, instructionData.id)\"\r\n />\r\n }\r\n </div>\r\n</div>\r\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"] }]
146
146
  }], ctorParameters: () => [] });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24taW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5zdHJ1Y3Rpb24taW5mby9pbnN0cnVjdGlvbi1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9pbnN0cnVjdGlvbi1pbmZvL2luc3RydWN0aW9uLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQThCLE1BQU0sY0FBYyxDQUFDO0FBRTVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUNILGNBQWMsRUFDZCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsWUFBWSxFQUNmLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25GLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSwyQkFBMkIsRUFBdUIsTUFBTSxrQkFB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U0FBUzsrQkFDSSxzQkFBc0IsV0FDdkI7d0JBQ0wsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLCtCQUErQjt3QkFDL0IsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2xCLGNBQ1csSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVsZW1lbnRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBjb21wdXRlZCxcclxuICAgIERlc3Ryb3lSZWYsXHJcbiAgICBlZmZlY3QsXHJcbiAgICBpbmplY3QsXHJcbiAgICBpbnB1dCxcclxuICAgIG1vZGVsLFxyXG4gICAgb3V0cHV0LFxyXG4gICAgc2lnbmFsLFxyXG4gICAgdW50cmFja2VkLFxyXG4gICAgdmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmluYWxpemUsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB0eXBlIHsgSW5zdHJ1Y3Rpb24sIFN0b3JhZ2VPYmplY3QsIFRyZWVTdHJ1Y3QgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgeyBDdWlUcmVlU3RydWN0TmF2aWdhdG9yQXBpU2VydmljZSwgTW92aW5nVHlwZSwgVHJlZVN0cnVjdFR5cGUgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuaW1wb3J0IHsgQ3VpSWRTZXJ2aWNlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDdWlCYWRnZU1vZHVsZSxcclxuICAgIEN1aUJ1dHRvbk1vZHVsZSxcclxuICAgIEN1aURpYWxvZ01vZHVsZSxcclxuICAgIEN1aUZvcm1GaWVsZE1vZHVsZSxcclxuICAgIEN1aUxhYmVsTW9kdWxlLFxyXG4gICAgQ3VpU3ZnTW9kdWxlXHJcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEN1aUNhdGVnb3JpZXNDb21wb25lbnQsIEN1aVNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vY2F0ZWdvcmllcyc7XHJcbmltcG9ydCB7IEN1aUVkaXRvckNvbmZpZyB9IGZyb20gJy4uLy4uL2VkaXRvcic7XHJcbmltcG9ydCB0eXBlIHsgQ3VpVG9vbHMgfSBmcm9tICcuLi8uLi9lZGl0b3InO1xyXG5pbXBvcnQgeyBDdWlJbnN0cnVjdGlvbkluZm9Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5zdHJ1Y3Rpb24taW5mby1mb3JtJztcclxuaW1wb3J0IHR5cGUgeyBDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXMgfSBmcm9tICcuLi9pbnN0cnVjdGlvbi1pbmZvLWZvcm0nO1xyXG5pbXBvcnQgeyBVVElMSVRZX01PREFMX1NFUlZJQ0VfVE9LRU4sIFV0aWxpdHlNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi91dGlsaXR5LW1vZGFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjdWktaW5zdHJ1Y3Rpb24taW5mbycsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ3VpQmFkZ2VNb2R1bGUsXHJcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIEN1aUNhdGVnb3JpZXNDb21wb25lbnQsXHJcbiAgICAgICAgQ3VpRGlhbG9nTW9kdWxlLFxyXG4gICAgICAgIEN1aUZvcm1GaWVsZE1vZHVsZSxcclxuICAgICAgICBDdWlJbnN0cnVjdGlvbkluZm9Gb3JtQ29tcG9uZW50LFxyXG4gICAgICAgIEN1aUxhYmVsTW9kdWxlLFxyXG4gICAgICAgIEN1aVN2Z01vZHVsZSxcclxuICAgICAgICBUcmFuc2xvY29Nb2R1bGVcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2luc3RydWN0aW9uLWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5zdHJ1Y3Rpb24taW5mby5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtDdWlTZWxlY3RlZENhdGVnb3J5U2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aUluc3RydWN0aW9uSW5mb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUlkU2VydmljZSA9IGluamVjdChDdWlJZFNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdWlDYXRlZ29yaWVzTW9kYWxTZXJ2aWNlID0gaW5qZWN0KEN1aVNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpVHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnN0cnVjdGlvbkFwaVNlcnZpY2UgPSBpbmplY3Q8VXRpbGl0eU1vZGFsU2VydmljZTxJbnN0cnVjdGlvbj4+KFVUSUxJVFlfTU9EQUxfU0VSVklDRV9UT0tFTik7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IFRZUEUgPSBUcmVlU3RydWN0VHlwZS5JbnN0cnVjdGlvbjtcclxuXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgc2tpcENhdGVnb3J5Q2hhbmdlID0gZmFsc2U7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhdGVnb3J5SWQgPSB0aGlzLmN1aUlkU2VydmljZS5nZW5lcmF0ZSgpO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBjYXRlZ29yeSA9IHRoaXMuY3VpQ2F0ZWdvcmllc01vZGFsU2VydmljZS5jYXRlZ29yeTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0Zvcm1WYWxpZCA9IHNpZ25hbChmYWxzZSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJldkNhdGVnb3J5SWQgPSBzaWduYWw8Q3VpTnVsbGFibGU8c3RyaW5nPj4obnVsbCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yQ29uZmlnID0gc2lnbmFsPEN1aU51bGxhYmxlPEN1aUVkaXRvckNvbmZpZz4+KG51bGwpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhYmVsQ29sb3IgPSBjb21wdXRlZCgoKSA9PlxyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnkoKT8udGl0bGUgPyAndmFyKC0tY3VpLWJhc2UtOTAwKScgOiAndmFyKC0tY3VpLWJhc2UtNDAwKSdcclxuICAgICk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0VGl0bGUgPSBjb21wdXRlZChcclxuICAgICAgICAoKSA9PiB0aGlzLmNhdGVnb3J5KCk/LnRpdGxlIHx8IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ1NFTEVDVCcpICsgJy4uLidcclxuICAgICk7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnQgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdzY3JvbGxDb250ZW50Jyk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGluc3RydWN0aW9uID0gbW9kZWw8U3RvcmFnZU9iamVjdDxJbnN0cnVjdGlvbj4+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbHMgPSBpbnB1dC5yZXF1aXJlZDxDdWlUb29scz4oKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBlZGl0b3JSZXNvdXJjZVVybCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRhdGlvbkNoYW5nZWQgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBpbnN0cnVjdGlvbkNyZWF0ZWQgPSBvdXRwdXQ8c3RyaW5nPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdENvbmZpZ0VmZmVjdCgpO1xyXG4gICAgICAgIHRoaXMuaW5pdENhdGVnb3J5RWZmZWN0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5pdENhdGVnb3J5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRm9ybUNoYW5nZWQodmFsdWVzOiBQYXJ0aWFsPEN1aUluc3RydWN0aW9uRm9ybVZhbHVlcz4sIGluc3RydWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGFjdGlvbnM6IFJlY29yZDxrZXlvZiBDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXMsICh2YWx1ZTogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPHZvaWQ+PiA9IHtcclxuICAgICAgICAgICAgdGl0bGU6ICh0aXRsZTogc3RyaW5nKSA9PiB0aGlzLmNoYW5nZVRpdGxlKHRpdGxlLCBpbnN0cnVjdGlvbklkKSxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IChkZXNjcmlwdGlvbjogc3RyaW5nKSA9PiB0aGlzLmNoYW5nZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uLCBpbnN0cnVjdGlvbklkKVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGZvcmtKb2luKFxyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyh2YWx1ZXMpLm1hcCgoa2V5KSA9PlxyXG4gICAgICAgICAgICAgICAgYWN0aW9uc1trZXkgYXMga2V5b2YgQ3VpSW5zdHJ1Y3Rpb25Gb3JtVmFsdWVzXSh2YWx1ZXNba2V5IGFzIGtleW9mIEN1aUluc3RydWN0aW9uRm9ybVZhbHVlc10gfHwgJycpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRm9ybVZhbGlkYXRpb25DaGFuZ2VkKGlzVmFsaWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzRm9ybVZhbGlkLnNldChpc1ZhbGlkKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25DaGFuZ2VkLmVtaXQoaXNWYWxpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0Q2F0ZWdvcnlFZmZlY3QoKTogdm9pZCB7XHJcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSB0aGlzLmNhdGVnb3J5KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0b3JhZ2VPYmplY3RJbnN0cnVjdGlvbiA9IHVudHJhY2tlZCh0aGlzLmluc3RydWN0aW9uKTtcclxuXHJcbiAgICAgICAgICAgIGlmICghY2F0ZWdvcnkgfHwgdGhpcy5za2lwQ2F0ZWdvcnlDaGFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2tpcENhdGVnb3J5Q2hhbmdlID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoc3RvcmFnZU9iamVjdEluc3RydWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUNhdGVnb3J5KGNhdGVnb3J5LmlkLCBzdG9yYWdlT2JqZWN0SW5zdHJ1Y3Rpb24uaWQpO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVJbnN0cnVjdGlvbihjYXRlZ29yeS5pZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0Q29uZmlnRWZmZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnQoKT8ubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgICAgICAgIGlmICghZWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmVkaXRvckNvbmZpZy5zZXQoeyB0b29sczogdGhpcy50b29scygpLCBlbGVtZW50IH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdENhdGVnb3J5KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VPYmplY3RJZCA9IHRoaXMuaW5zdHJ1Y3Rpb24oKT8uaWQ7XHJcblxyXG4gICAgICAgIGlmICghc3RvcmFnZU9iamVjdElkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2VcclxuICAgICAgICAgICAgLmdldENhdGVnb3J5KHN0b3JhZ2VPYmplY3RJZCwgVHJlZVN0cnVjdFR5cGUuSW5zdHJ1Y3Rpb24pXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjYXRlZ29yeSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5za2lwQ2F0ZWdvcnlDaGFuZ2UgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2Q2F0ZWdvcnlJZC5zZXQoY2F0ZWdvcnkuaWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdWlDYXRlZ29yaWVzTW9kYWxTZXJ2aWNlLnNldEN1cnJlbnRDYXRlZ29yeShjYXRlZ29yeSBhcyBUcmVlU3RydWN0KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VDYXRlZ29yeShjYXRlZ29yeUlkOiBzdHJpbmcsIHRhcmdldElkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBwcmV2Q2F0ZWdvcnlJZCA9IHVudHJhY2tlZCh0aGlzLnByZXZDYXRlZ29yeUlkKTtcclxuXHJcbiAgICAgICAgaWYgKCFwcmV2Q2F0ZWdvcnlJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2VcclxuICAgICAgICAgICAgLm1vdmVFbGVtZW50KHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IE1vdmluZ1R5cGUuVEFSR0VUX1RSRUVfU1RSVUNULFxyXG4gICAgICAgICAgICAgICAgbW92YWJsZUl0ZW1JZDogdGFyZ2V0SWQsXHJcbiAgICAgICAgICAgICAgICB0cmVlU3RydWN0VGFyZ2V0SXRlbUlkOiBjYXRlZ29yeUlkLFxyXG4gICAgICAgICAgICAgICAgdHJlZVN0cnVjdE1vdmFibGVJdGVtSWQ6IHByZXZDYXRlZ29yeUlkXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5wcmV2Q2F0ZWdvcnlJZC5zZXQoY2F0ZWdvcnlJZCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlSW5zdHJ1Y3Rpb24oY2F0ZWdvcnlJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pbnN0cnVjdGlvbkNyZWF0ZWQuZW1pdChjYXRlZ29yeUlkKTtcclxuICAgICAgICB0aGlzLnByZXZDYXRlZ29yeUlkLnNldChjYXRlZ29yeUlkKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoYW5nZVRpdGxlKHZhbHVlOiBzdHJpbmcsIGluc3RydWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RydWN0aW9uQXBpU2VydmljZS5jaGFuZ2VUaXRsZShpbnN0cnVjdGlvbklkLCB2YWx1ZSkucGlwZShcclxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT5cclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb24udXBkYXRlKChwcmV2KSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLnByZXYhLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VFbGVtZW50OiB7IC4uLnByZXYhLnN0b3JhZ2VFbGVtZW50LCB0aXRsZTogdmFsdWUgfVxyXG4gICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hhbmdlRGVzY3JpcHRpb24odmFsdWU6IHN0cmluZywgaW5zdHJ1Y3Rpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmluc3RydWN0aW9uQXBpU2VydmljZS5jaGFuZ2VEZXNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NoYW5nZSBkZXNjcmlwdGlvbiBub3QgaW1wbGVtZW50ZWQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RydWN0aW9uQXBpU2VydmljZS5jaGFuZ2VEZXNjcmlwdGlvbihpbnN0cnVjdGlvbklkLCB2YWx1ZSkucGlwZShcclxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT5cclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb24udXBkYXRlKChwcmV2KSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLnByZXYhLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VFbGVtZW50OiB7IC4uLnByZXYhLnN0b3JhZ2VFbGVtZW50LCBzaG9ydERlc2NyaXB0aW9uOiB2YWx1ZSB9XHJcbiAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICAgY2xhc3M9XCJ3cmFwcGVyXCJcclxuICAgICp0cmFuc2xvY289XCJsZXQgdFwiXHJcbj5cclxuICAgIDxkaXZcclxuICAgICAgICAjc2Nyb2xsQ29udGVudFxyXG4gICAgICAgIGNsYXNzPVwiY29udGVudCBjb250ZW50X3Njcm9sbGFibGVcIlxyXG4gICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeVwiPlxyXG4gICAgICAgICAgICA8Y3VpLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBjdWlMYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY2F0ZWdvcnlJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgdCgnU0VMRUNUX0NBVEVHT1JZJykgfX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8Y3VpLWNhdGVnb3JpZXNcclxuICAgICAgICAgICAgICAgICAgICBbYnV0dG9uSWRdPVwiY2F0ZWdvcnlJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RyZWVTdHJ1Y3RUeXBlXT1cIlRZUEVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmNvbG9yXT1cImxhYmVsQ29sb3IoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VsZWN0VGl0bGUoKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y3VpLXN2ZyBpY29uPVwiY3VpSWNvbkNoZXZyb25Eb3duXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvY3VpLWNhdGVnb3JpZXM+XHJcbiAgICAgICAgICAgIDwvY3VpLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIEBsZXQgaW5zdHJ1Y3Rpb25EYXRhID0gaW5zdHJ1Y3Rpb24oKTtcclxuICAgICAgICBAbGV0IGVkaXRvckNvbmZpZ0RhdGEgPSBlZGl0b3JDb25maWcoKTtcclxuXHJcbiAgICAgICAgQGlmIChlZGl0b3JDb25maWdEYXRhICYmIGluc3RydWN0aW9uRGF0YSkge1xyXG4gICAgICAgICAgICA8Y3VpLWluc3RydWN0aW9uLWluZm8tZm9ybVxyXG4gICAgICAgICAgICAgICAgW2NvbmZpZ109XCJlZGl0b3JDb25maWdEYXRhXCJcclxuICAgICAgICAgICAgICAgIFtiYXNlUmVzb3VyY2VVcmxdPVwiZWRpdG9yUmVzb3VyY2VVcmwoKVwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaW5zdHJ1Y3Rpb25EYXRhLnN0b3JhZ2VFbGVtZW50LnRpdGxlXCJcclxuICAgICAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCJpbnN0cnVjdGlvbkRhdGEuc3RvcmFnZUVsZW1lbnQuc2hvcnREZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICBbZnJhbWVySWRdPVwiaW5zdHJ1Y3Rpb25EYXRhLnN0b3JhZ2VFbGVtZW50LmZyYW1lckluc3RydWN0aW9uSWRcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ1dGlsaXR5XCJcclxuICAgICAgICAgICAgICAgIChpc0Zvcm1WYWxpZENoYW5nZWQpPVwib25Gb3JtVmFsaWRhdGlvbkNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoZm9ybUNoYW5nZWQpPVwib25Gb3JtQ2hhbmdlZCgkZXZlbnQsIGluc3RydWN0aW9uRGF0YS5pZClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24taW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5zdHJ1Y3Rpb24taW5mby9pbnN0cnVjdGlvbi1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9pbnN0cnVjdGlvbi1pbmZvL2luc3RydWN0aW9uLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQThCLE1BQU0sY0FBYyxDQUFDO0FBRTVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUNILGNBQWMsRUFDZCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsWUFBWSxFQUNmLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25GLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSwyQkFBMkIsRUFBdUIsTUFBTSxrQkFB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U0FBUzsrQkFDSSxzQkFBc0IsV0FDdkI7d0JBQ0wsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLCtCQUErQjt3QkFDL0IsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2xCLGNBQ1csSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVsZW1lbnRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBjb21wdXRlZCxcclxuICAgIERlc3Ryb3lSZWYsXHJcbiAgICBlZmZlY3QsXHJcbiAgICBpbmplY3QsXHJcbiAgICBpbnB1dCxcclxuICAgIG1vZGVsLFxyXG4gICAgb3V0cHV0LFxyXG4gICAgc2lnbmFsLFxyXG4gICAgdW50cmFja2VkLFxyXG4gICAgdmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmluYWxpemUsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB0eXBlIHsgSW5zdHJ1Y3Rpb24sIFN0b3JhZ2VPYmplY3QsIFRyZWVTdHJ1Y3QgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgeyBDdWlUcmVlU3RydWN0TmF2aWdhdG9yQXBpU2VydmljZSwgTW92aW5nVHlwZSwgVHJlZVN0cnVjdFR5cGUgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuaW1wb3J0IHsgQ3VpSWRTZXJ2aWNlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDdWlCYWRnZU1vZHVsZSxcclxuICAgIEN1aUJ1dHRvbk1vZHVsZSxcclxuICAgIEN1aURpYWxvZ01vZHVsZSxcclxuICAgIEN1aUZvcm1GaWVsZE1vZHVsZSxcclxuICAgIEN1aUxhYmVsTW9kdWxlLFxyXG4gICAgQ3VpU3ZnTW9kdWxlXHJcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEN1aUNhdGVnb3JpZXNDb21wb25lbnQsIEN1aVNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vY2F0ZWdvcmllcyc7XHJcbmltcG9ydCB7IEN1aUVkaXRvckNvbmZpZyB9IGZyb20gJy4uLy4uL2VkaXRvcic7XHJcbmltcG9ydCB0eXBlIHsgQ3VpVG9vbHMgfSBmcm9tICcuLi8uLi9lZGl0b3InO1xyXG5pbXBvcnQgeyBDdWlJbnN0cnVjdGlvbkluZm9Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5zdHJ1Y3Rpb24taW5mby1mb3JtJztcclxuaW1wb3J0IHR5cGUgeyBDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXMgfSBmcm9tICcuLi9pbnN0cnVjdGlvbi1pbmZvLWZvcm0nO1xyXG5pbXBvcnQgeyBVVElMSVRZX01PREFMX1NFUlZJQ0VfVE9LRU4sIFV0aWxpdHlNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi91dGlsaXR5LW1vZGFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjdWktaW5zdHJ1Y3Rpb24taW5mbycsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ3VpQmFkZ2VNb2R1bGUsXHJcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIEN1aUNhdGVnb3JpZXNDb21wb25lbnQsXHJcbiAgICAgICAgQ3VpRGlhbG9nTW9kdWxlLFxyXG4gICAgICAgIEN1aUZvcm1GaWVsZE1vZHVsZSxcclxuICAgICAgICBDdWlJbnN0cnVjdGlvbkluZm9Gb3JtQ29tcG9uZW50LFxyXG4gICAgICAgIEN1aUxhYmVsTW9kdWxlLFxyXG4gICAgICAgIEN1aVN2Z01vZHVsZSxcclxuICAgICAgICBUcmFuc2xvY29Nb2R1bGVcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2luc3RydWN0aW9uLWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5zdHJ1Y3Rpb24taW5mby5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBwcm92aWRlcnM6IFtDdWlTZWxlY3RlZENhdGVnb3J5U2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aUluc3RydWN0aW9uSW5mb0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUlkU2VydmljZSA9IGluamVjdChDdWlJZFNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdWlDYXRlZ29yaWVzTW9kYWxTZXJ2aWNlID0gaW5qZWN0KEN1aVNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpVHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbnN0cnVjdGlvbkFwaVNlcnZpY2UgPSBpbmplY3Q8VXRpbGl0eU1vZGFsU2VydmljZTxJbnN0cnVjdGlvbj4+KFVUSUxJVFlfTU9EQUxfU0VSVklDRV9UT0tFTik7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IFRZUEUgPSBUcmVlU3RydWN0VHlwZS5JbnN0cnVjdGlvbjtcclxuXHJcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgc2tpcENhdGVnb3J5Q2hhbmdlID0gZmFsc2U7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGNhdGVnb3J5SWQgPSB0aGlzLmN1aUlkU2VydmljZS5nZW5lcmF0ZSgpO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBjYXRlZ29yeSA9IHRoaXMuY3VpQ2F0ZWdvcmllc01vZGFsU2VydmljZS5jYXRlZ29yeTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0Zvcm1WYWxpZCA9IHNpZ25hbChmYWxzZSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJldkNhdGVnb3J5SWQgPSBzaWduYWw8Q3VpTnVsbGFibGU8c3RyaW5nPj4obnVsbCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yQ29uZmlnID0gc2lnbmFsPEN1aU51bGxhYmxlPEN1aUVkaXRvckNvbmZpZz4+KG51bGwpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGxhYmVsQ29sb3IgPSBjb21wdXRlZCgoKSA9PlxyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnkoKT8udGl0bGUgPyAndmFyKC0tY3VpLWJhc2UtOTAwKScgOiAndmFyKC0tY3VpLWJhc2UtNDAwKSdcclxuICAgICk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc2VsZWN0VGl0bGUgPSBjb21wdXRlZChcclxuICAgICAgICAoKSA9PiB0aGlzLmNhdGVnb3J5KCk/LnRpdGxlIHx8IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ1NFTEVDVCcpICsgJy4uLidcclxuICAgICk7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnQgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdzY3JvbGxDb250ZW50Jyk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGluc3RydWN0aW9uID0gbW9kZWw8U3RvcmFnZU9iamVjdDxJbnN0cnVjdGlvbj4+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbHMgPSBpbnB1dC5yZXF1aXJlZDxDdWlUb29scz4oKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBlZGl0b3JSZXNvdXJjZVVybCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdmFsaWRhdGlvbkNoYW5nZWQgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBpbnN0cnVjdGlvbkNyZWF0ZWQgPSBvdXRwdXQ8c3RyaW5nPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdENvbmZpZ0VmZmVjdCgpO1xyXG4gICAgICAgIHRoaXMuaW5pdENhdGVnb3J5RWZmZWN0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5pdENhdGVnb3J5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRm9ybUNoYW5nZWQodmFsdWVzOiBQYXJ0aWFsPEN1aUluc3RydWN0aW9uRm9ybVZhbHVlcz4sIGluc3RydWN0aW9uSWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGFjdGlvbnM6IFJlY29yZDxrZXlvZiBDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXMsICh2YWx1ZTogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPHZvaWQ+PiA9IHtcclxuICAgICAgICAgICAgdGl0bGU6ICh0aXRsZTogc3RyaW5nKSA9PiB0aGlzLmNoYW5nZVRpdGxlKHRpdGxlLCBpbnN0cnVjdGlvbklkKSxcclxuICAgICAgICAgICAgZGVzY3JpcHRpb246IChkZXNjcmlwdGlvbjogc3RyaW5nKSA9PiB0aGlzLmNoYW5nZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uLCBpbnN0cnVjdGlvbklkKVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGZvcmtKb2luKFxyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyh2YWx1ZXMpLm1hcCgoa2V5KSA9PlxyXG4gICAgICAgICAgICAgICAgYWN0aW9uc1trZXkgYXMga2V5b2YgQ3VpSW5zdHJ1Y3Rpb25Gb3JtVmFsdWVzXSh2YWx1ZXNba2V5IGFzIGtleW9mIEN1aUluc3RydWN0aW9uRm9ybVZhbHVlc10gfHwgJycpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRm9ybVZhbGlkYXRpb25DaGFuZ2VkKGlzVmFsaWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzRm9ybVZhbGlkLnNldChpc1ZhbGlkKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRpb25DaGFuZ2VkLmVtaXQoaXNWYWxpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0Q2F0ZWdvcnlFZmZlY3QoKTogdm9pZCB7XHJcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY2F0ZWdvcnkgPSB0aGlzLmNhdGVnb3J5KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0b3JhZ2VPYmplY3RJbnN0cnVjdGlvbiA9IHVudHJhY2tlZCh0aGlzLmluc3RydWN0aW9uKTtcclxuXHJcbiAgICAgICAgICAgIGlmICghY2F0ZWdvcnkgfHwgdGhpcy5za2lwQ2F0ZWdvcnlDaGFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2tpcENhdGVnb3J5Q2hhbmdlID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoc3RvcmFnZU9iamVjdEluc3RydWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZUNhdGVnb3J5KGNhdGVnb3J5LmlkLCBzdG9yYWdlT2JqZWN0SW5zdHJ1Y3Rpb24uaWQpO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jcmVhdGVJbnN0cnVjdGlvbihjYXRlZ29yeS5pZCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0Q29uZmlnRWZmZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnQoKT8ubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgICAgICAgIGlmICghZWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmVkaXRvckNvbmZpZy5zZXQoeyB0b29sczogdGhpcy50b29scygpLCBlbGVtZW50IH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdENhdGVnb3J5KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VPYmplY3RJZCA9IHRoaXMuaW5zdHJ1Y3Rpb24oKT8uaWQ7XHJcblxyXG4gICAgICAgIGlmICghc3RvcmFnZU9iamVjdElkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2VcclxuICAgICAgICAgICAgLmdldENhdGVnb3J5KHN0b3JhZ2VPYmplY3RJZCwgVHJlZVN0cnVjdFR5cGUuSW5zdHJ1Y3Rpb24pXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChjYXRlZ29yeSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5za2lwQ2F0ZWdvcnlDaGFuZ2UgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2Q2F0ZWdvcnlJZC5zZXQoY2F0ZWdvcnkuaWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jdWlDYXRlZ29yaWVzTW9kYWxTZXJ2aWNlLnNldEN1cnJlbnRDYXRlZ29yeShjYXRlZ29yeSBhcyBUcmVlU3RydWN0KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VDYXRlZ29yeShjYXRlZ29yeUlkOiBzdHJpbmcsIHRhcmdldElkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBwcmV2Q2F0ZWdvcnlJZCA9IHVudHJhY2tlZCh0aGlzLnByZXZDYXRlZ29yeUlkKTtcclxuXHJcbiAgICAgICAgaWYgKCFwcmV2Q2F0ZWdvcnlJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2VcclxuICAgICAgICAgICAgLm1vdmVFbGVtZW50KHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IE1vdmluZ1R5cGUuVEFSR0VUX1RSRUVfU1RSVUNULFxyXG4gICAgICAgICAgICAgICAgbW92YWJsZUl0ZW1JZDogdGFyZ2V0SWQsXHJcbiAgICAgICAgICAgICAgICB0cmVlU3RydWN0VGFyZ2V0SXRlbUlkOiBjYXRlZ29yeUlkLFxyXG4gICAgICAgICAgICAgICAgdHJlZVN0cnVjdE1vdmFibGVJdGVtSWQ6IHByZXZDYXRlZ29yeUlkXHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5wcmV2Q2F0ZWdvcnlJZC5zZXQoY2F0ZWdvcnlJZCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlSW5zdHJ1Y3Rpb24oY2F0ZWdvcnlJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pbnN0cnVjdGlvbkNyZWF0ZWQuZW1pdChjYXRlZ29yeUlkKTtcclxuICAgICAgICB0aGlzLnByZXZDYXRlZ29yeUlkLnNldChjYXRlZ29yeUlkKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoYW5nZVRpdGxlKHZhbHVlOiBzdHJpbmcsIGluc3RydWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RydWN0aW9uQXBpU2VydmljZS5jaGFuZ2VUaXRsZShpbnN0cnVjdGlvbklkLCB2YWx1ZSkucGlwZShcclxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT5cclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb24udXBkYXRlKChwcmV2KSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLnByZXYhLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VFbGVtZW50OiB7IC4uLnByZXYhLnN0b3JhZ2VFbGVtZW50LCB0aXRsZTogdmFsdWUgfVxyXG4gICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hhbmdlRGVzY3JpcHRpb24odmFsdWU6IHN0cmluZywgaW5zdHJ1Y3Rpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmluc3RydWN0aW9uQXBpU2VydmljZS5jaGFuZ2VEZXNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NoYW5nZSBkZXNjcmlwdGlvbiBub3QgaW1wbGVtZW50ZWQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmluc3RydWN0aW9uQXBpU2VydmljZS5jaGFuZ2VEZXNjcmlwdGlvbihpbnN0cnVjdGlvbklkLCB2YWx1ZSkucGlwZShcclxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT5cclxuICAgICAgICAgICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb24udXBkYXRlKChwcmV2KSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLnByZXYhLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0b3JhZ2VFbGVtZW50OiB7IC4uLnByZXYhLnN0b3JhZ2VFbGVtZW50LCBzaG9ydERlc2NyaXB0aW9uOiB2YWx1ZSB9XHJcbiAgICAgICAgICAgICAgICB9KSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICAgY2xhc3M9XCJ3cmFwcGVyXCJcclxuICAgICp0cmFuc2xvY289XCJsZXQgdFwiXHJcbj5cclxuICAgIDxkaXZcclxuICAgICAgICAjc2Nyb2xsQ29udGVudFxyXG4gICAgICAgIGNsYXNzPVwiY29udGVudCBjb250ZW50X3Njcm9sbGFibGVcIlxyXG4gICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeVwiPlxyXG4gICAgICAgICAgICA8Y3VpLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBjdWlMYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JdPVwiY2F0ZWdvcnlJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgdCgnU0VMRUNUX0NBVEVHT1JZJykgfX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8Y3VpLWNhdGVnb3JpZXNcclxuICAgICAgICAgICAgICAgICAgICBbYnV0dG9uSWRdPVwiY2F0ZWdvcnlJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3RyZWVTdHJ1Y3RUeXBlXT1cIlRZUEVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmNvbG9yXT1cImxhYmVsQ29sb3IoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgc2VsZWN0VGl0bGUoKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y3VpLXN2ZyBpY29uPVwiY3VpSWNvbkNoZXZyb25Eb3duXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvY3VpLWNhdGVnb3JpZXM+XHJcbiAgICAgICAgICAgIDwvY3VpLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIEBsZXQgaW5zdHJ1Y3Rpb25EYXRhID0gaW5zdHJ1Y3Rpb24oKTtcclxuICAgICAgICBAbGV0IGVkaXRvckNvbmZpZ0RhdGEgPSBlZGl0b3JDb25maWcoKTtcclxuXHJcbiAgICAgICAgQGlmIChlZGl0b3JDb25maWdEYXRhICYmIGluc3RydWN0aW9uRGF0YSkge1xyXG4gICAgICAgICAgICA8Y3VpLWluc3RydWN0aW9uLWluZm8tZm9ybVxyXG4gICAgICAgICAgICAgICAgW2NvbmZpZ109XCJlZGl0b3JDb25maWdEYXRhXCJcclxuICAgICAgICAgICAgICAgIFtiYXNlUmVzb3VyY2VVcmxdPVwiZWRpdG9yUmVzb3VyY2VVcmwoKVwiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiaW5zdHJ1Y3Rpb25EYXRhLnN0b3JhZ2VFbGVtZW50LnRpdGxlXCJcclxuICAgICAgICAgICAgICAgIFtkZXNjcmlwdGlvbl09XCJpbnN0cnVjdGlvbkRhdGEuc3RvcmFnZUVsZW1lbnQuc2hvcnREZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICBbZnJhbWVySWRdPVwiaW5zdHJ1Y3Rpb25EYXRhLnN0b3JhZ2VFbGVtZW50LmZyYW1lckluc3RydWN0aW9uSWRcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ1dGlsaXR5XCJcclxuICAgICAgICAgICAgICAgIChpc0Zvcm1WYWxpZENoYW5nZWQpPVwib25Gb3JtVmFsaWRhdGlvbkNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAoZm9ybUNoYW5nZWQpPVwib25Gb3JtQ2hhbmdlZCgkZXZlbnQsIGluc3RydWN0aW9uRGF0YS5pZClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -7902,6 +7902,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
7902
7902
  }] });
7903
7903
 
7904
7904
  class CuiCategoryItemComponent {
7905
+ ;
7905
7906
  constructor() {
7906
7907
  this.treeStructNavigatorApiService = inject(CuiTreeStructNavigatorApiService);
7907
7908
  this.selectedCategoryService = inject(CuiSelectedCategoryService);
@@ -7918,12 +7919,13 @@ class CuiCategoryItemComponent {
7918
7919
  this.isTitleEdit = computed(() => this.selectedCategoryService.editingId() === this.stageStorage().id);
7919
7920
  this.isCreateCategoryControlVisible = computed(() => (this.selectedCategoryService.creatingId() === this.stageStorage().id && this.isSubcategoryCreating()) ||
7920
7921
  this.isSubcategoryCreationLoading());
7921
- this.stageStorage = input.required();
7922
7922
  this.categoryTitle = signal('');
7923
7923
  this.category = computed(() => ({
7924
7924
  ...this.stageStorage(),
7925
7925
  title: this.categoryTitle() || this.stageStorage().title
7926
7926
  }));
7927
+ this.stageStorage = input.required();
7928
+ this.context = input();
7927
7929
  this.initStageStorageChildren();
7928
7930
  }
7929
7931
  onSelectCategory() {
@@ -7942,7 +7944,7 @@ class CuiCategoryItemComponent {
7942
7944
  if (title === this.category().title) {
7943
7945
  return;
7944
7946
  }
7945
- this.treeStructNavigatorApiService.updateTitle(this.stageStorage().id, title).subscribe(() => {
7947
+ this.treeStructNavigatorApiService.updateTitle(this.stageStorage().id, title, this.context()).subscribe(() => {
7946
7948
  this.categoryTitle.set(title);
7947
7949
  if (this.category().id === this.selectedCategoryService.category()?.id) {
7948
7950
  this.selectedCategoryService.setCurrentCategory(this.category());
@@ -7967,7 +7969,7 @@ class CuiCategoryItemComponent {
7967
7969
  this.isSubcategoryCreating.set(false);
7968
7970
  this.isSubcategoryCreationLoading.set(true);
7969
7971
  this.treeStructNavigatorApiService
7970
- .createStageStorageToParent(this.stageStorage().id, title)
7972
+ .createStageStorageToParent(this.stageStorage().id, title, this.context())
7971
7973
  .pipe(finalize(this.isSubcategoryCreationLoading.set.bind(this.isSubcategoryCreationLoading, false)))
7972
7974
  .subscribe((stateStorage) => {
7973
7975
  this.stageStorageChildren.update((value) => [...value, stateStorage]);
@@ -7991,13 +7993,13 @@ class CuiCategoryItemComponent {
7991
7993
  this.stageStorageChildren.set(stageStorageChildren);
7992
7994
  return;
7993
7995
  }
7994
- this.treeStructNavigatorApiService.getStageStoragesByParent(stageStorage.id).subscribe((storage) => {
7996
+ this.treeStructNavigatorApiService.getStageStoragesByParent(stageStorage.id, this.context()).subscribe((storage) => {
7995
7997
  this.stageStorageChildren.update((prevStageStorages) => prevStageStorages ? [...prevStageStorages, storage] : [storage]);
7996
7998
  });
7997
7999
  }, { allowSignalWrites: true });
7998
8000
  }
7999
8001
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCategoryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8000
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCategoryItemComponent, isStandalone: true, selector: "cui-category-item", inputs: { stageStorage: { classPropertyName: "stageStorage", publicName: "stageStorage", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *cuiLet=\"category() as stage\">\n <button\n type=\"button\"\n [style.align-items]=\"alignItems()\"\n [disabled]=\"isStageCreationLoading()\"\n class=\"category\"\n (click)=\"onSelectCategory()\"\n >\n <button\n type=\"button\"\n ccFlexContainerDirective\n class=\"category__open-close-button\"\n [class.category__open-close-button_hidden]=\"isOpenCloseButtonHidden()\"\n (click)=\"onToggleChildren($event)\"\n >\n <cui-svg\n [icon]=\"openCloseButtonIcon()\"\n color=\"var(--cui-base-500)\"\n />\n </button>\n <cui-svg\n [icon]=\"stageStorageIcon()\"\n color=\"var(--cui-base-500)\"\n class=\"icon\"\n />\n @if (isTitleEdit()) {\n <cui-category-form\n [defaultTitle]=\"stage.title\"\n (created)=\"onTitleChanged($event)\"\n (canceled)=\"onCancelTitleEdit()\"\n />\n } @else {\n <span class=\"category__title\">{{ stage.title }}</span>\n\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconEdit\"\n class=\"category__add-subcategory-button\"\n (click)=\"onStartTitleEdit($event)\"\n ></button>\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconPlus\"\n class=\"category__add-subcategory-button\"\n (click)=\"onStartCreatingSubcategory($event)\"\n ></button>\n }\n </button>\n <div\n [hidden]=\"!areChildrenOpened()\"\n class=\"list-wrapper\"\n >\n <cui-categories-list [stageStorages]=\"stageStorageChildren()\" />\n @if (isCreateCategoryControlVisible()) {\n <cui-create-category-item\n class=\"create-category\"\n [isDisabled]=\"isSubcategoryCreationLoading()\"\n (created)=\"onCreateNewSubcategoryCategory($event)\"\n (canceled)=\"onCreatingSubcategoryCanceled()\"\n />\n }\n </div>\n</ng-container>\n", styles: [".category{display:flex;gap:4px;padding:2px 4px;width:100%;min-height:32px;border-radius:8px}@media (hover: hover){.category:hover{background:var(--cui-base-10)}}.category:active{background:var(--cui-base-10)}.category__open-close-button{padding:2px;border-radius:4px;margin:4px 0}@media (hover: hover){.category__open-close-button:hover{background:var(--cui-base-100)}}.category__open-close-button:active{background:var(--cui-base-100)}.category__open-close-button_hidden{visibility:hidden}.category__title{flex:1;text-align:start;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.category__add-subcategory-button{--cui-base-50: var(--cui-base-200)}.list-wrapper{padding-left:8px}.create-category{margin-left:24px}.icon{padding-right:2px;padding-left:2px;height:28px}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CuiButtonModule) }, { kind: "component", type: i0.forwardRef(() => CuiButtonComponent), selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiIconButtonModule) }, { kind: "directive", type: i0.forwardRef(() => CuiLetDirective), selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiSvgModule) }, { kind: "component", type: i0.forwardRef(() => CuiSvgComponent), selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "component", type: i0.forwardRef(() => CuiCategoryFormComponent), selector: "cui-category-form", inputs: ["isDisabled", "defaultTitle"], outputs: ["created", "canceled"] }, { kind: "component", type: i0.forwardRef(() => CuiCreateCategoryItemComponent), selector: "cui-create-category-item", inputs: ["isDisabled"], outputs: ["created", "canceled"] }, { kind: "component", type: i0.forwardRef(() => CuiCategoriesListComponent), selector: "cui-categories-list", inputs: ["stageStorages"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8002
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCategoryItemComponent, isStandalone: true, selector: "cui-category-item", inputs: { stageStorage: { classPropertyName: "stageStorage", publicName: "stageStorage", isSignal: true, isRequired: true, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *cuiLet=\"category() as stage\">\n <button\n type=\"button\"\n [style.align-items]=\"alignItems()\"\n [disabled]=\"isStageCreationLoading()\"\n class=\"category\"\n (click)=\"onSelectCategory()\"\n >\n <button\n type=\"button\"\n ccFlexContainerDirective\n class=\"category__open-close-button\"\n [class.category__open-close-button_hidden]=\"isOpenCloseButtonHidden()\"\n (click)=\"onToggleChildren($event)\"\n >\n <cui-svg\n [icon]=\"openCloseButtonIcon()\"\n color=\"var(--cui-base-500)\"\n />\n </button>\n <cui-svg\n [icon]=\"stageStorageIcon()\"\n color=\"var(--cui-base-500)\"\n class=\"icon\"\n />\n @if (isTitleEdit()) {\n <cui-category-form\n [defaultTitle]=\"stage.title\"\n (created)=\"onTitleChanged($event)\"\n (canceled)=\"onCancelTitleEdit()\"\n />\n } @else {\n <span class=\"category__title\">{{ stage.title }}</span>\n\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconEdit\"\n class=\"category__add-subcategory-button\"\n (click)=\"onStartTitleEdit($event)\"\n ></button>\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconPlus\"\n class=\"category__add-subcategory-button\"\n (click)=\"onStartCreatingSubcategory($event)\"\n ></button>\n }\n </button>\n <div\n [hidden]=\"!areChildrenOpened()\"\n class=\"list-wrapper\"\n >\n <cui-categories-list [stageStorages]=\"stageStorageChildren()\" />\n @if (isCreateCategoryControlVisible()) {\n <cui-create-category-item\n class=\"create-category\"\n [isDisabled]=\"isSubcategoryCreationLoading()\"\n (created)=\"onCreateNewSubcategoryCategory($event)\"\n (canceled)=\"onCreatingSubcategoryCanceled()\"\n />\n }\n </div>\n</ng-container>\n", styles: [".category{display:flex;gap:4px;padding:2px 4px;width:100%;min-height:32px;border-radius:8px}@media (hover: hover){.category:hover{background:var(--cui-base-10)}}.category:active{background:var(--cui-base-10)}.category__open-close-button{padding:2px;border-radius:4px;margin:4px 0}@media (hover: hover){.category__open-close-button:hover{background:var(--cui-base-100)}}.category__open-close-button:active{background:var(--cui-base-100)}.category__open-close-button_hidden{visibility:hidden}.category__title{flex:1;text-align:start;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.category__add-subcategory-button{--cui-base-50: var(--cui-base-200)}.list-wrapper{padding-left:8px}.create-category{margin-left:24px}.icon{padding-right:2px;padding-left:2px;height:28px}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CuiButtonModule) }, { kind: "component", type: i0.forwardRef(() => CuiButtonComponent), selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiIconButtonModule) }, { kind: "directive", type: i0.forwardRef(() => CuiLetDirective), selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiSvgModule) }, { kind: "component", type: i0.forwardRef(() => CuiSvgComponent), selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "component", type: i0.forwardRef(() => CuiCategoryFormComponent), selector: "cui-category-form", inputs: ["isDisabled", "defaultTitle"], outputs: ["created", "canceled"] }, { kind: "component", type: i0.forwardRef(() => CuiCreateCategoryItemComponent), selector: "cui-create-category-item", inputs: ["isDisabled"], outputs: ["created", "canceled"] }, { kind: "component", type: i0.forwardRef(() => CuiCategoriesListComponent), selector: "cui-categories-list", inputs: ["stageStorages", "context"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8001
8003
  }
8002
8004
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCategoryItemComponent, decorators: [{
8003
8005
  type: Component,
@@ -8015,13 +8017,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
8015
8017
  class CuiCategoriesListComponent {
8016
8018
  constructor() {
8017
8019
  this.stageStorages = input.required();
8020
+ this.context = input();
8018
8021
  }
8019
8022
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCategoriesListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8020
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCategoriesListComponent, isStandalone: true, selector: "cui-categories-list", inputs: { stageStorages: { classPropertyName: "stageStorages", publicName: "stageStorages", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@for (stageStorage of stageStorages(); track stageStorage.id) {\n <cui-category-item [stageStorage]=\"stageStorage\" />\n}\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CuiIconButtonModule) }, { kind: "ngmodule", type: i0.forwardRef(() => CuiSvgModule) }, { kind: "component", type: i0.forwardRef(() => CuiCategoryItemComponent), selector: "cui-category-item", inputs: ["stageStorage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8023
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCategoriesListComponent, isStandalone: true, selector: "cui-categories-list", inputs: { stageStorages: { classPropertyName: "stageStorages", publicName: "stageStorages", isSignal: true, isRequired: true, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@for (stageStorage of stageStorages(); track stageStorage.id) {\n <cui-category-item\n [stageStorage]=\"stageStorage\"\n [context]=\"context()\"\n />\n}\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CuiIconButtonModule) }, { kind: "ngmodule", type: i0.forwardRef(() => CuiSvgModule) }, { kind: "component", type: i0.forwardRef(() => CuiCategoryItemComponent), selector: "cui-category-item", inputs: ["stageStorage", "context"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8021
8024
  }
8022
8025
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCategoriesListComponent, decorators: [{
8023
8026
  type: Component,
8024
- args: [{ selector: 'cui-categories-list', imports: [CuiIconButtonModule, CuiSvgModule, forwardRef(() => CuiCategoryItemComponent)], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (stageStorage of stageStorages(); track stageStorage.id) {\n <cui-category-item [stageStorage]=\"stageStorage\" />\n}\n", styles: [":host{display:block}\n"] }]
8027
+ args: [{ selector: 'cui-categories-list', imports: [CuiIconButtonModule, CuiSvgModule, forwardRef(() => CuiCategoryItemComponent)], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (stageStorage of stageStorages(); track stageStorage.id) {\n <cui-category-item\n [stageStorage]=\"stageStorage\"\n [context]=\"context()\"\n />\n}\n", styles: [":host{display:block}\n"] }]
8025
8028
  }] });
8026
8029
 
8027
8030
  class CuiCategoriesComponent {
@@ -8037,6 +8040,7 @@ class CuiCategoriesComponent {
8037
8040
  this.treeStructType = input.required();
8038
8041
  this.buttonId = input();
8039
8042
  this.disabled = input(false, { transform: booleanAttribute });
8043
+ this.context = input();
8040
8044
  this.initSelectCategoryEffect();
8041
8045
  }
8042
8046
  onOpenStageStorages() {
@@ -8045,7 +8049,7 @@ class CuiCategoriesComponent {
8045
8049
  if (this.stageStorages()?.length) {
8046
8050
  return;
8047
8051
  }
8048
- this.treeStructNavigatorApiService.getStageStorages(this.treeStructType()).subscribe((stageStorage) => {
8052
+ this.treeStructNavigatorApiService.getStageStorages(this.treeStructType(), this.context()).subscribe((stageStorage) => {
8049
8053
  this.stageStorages.update((prevStageStorages) => prevStageStorages ? [...prevStageStorages, stageStorage] : [stageStorage]);
8050
8054
  });
8051
8055
  }
@@ -8058,7 +8062,7 @@ class CuiCategoriesComponent {
8058
8062
  this.selectedCategoryService.clearCreatingId();
8059
8063
  this.isCategoryCreationLoading.set(true);
8060
8064
  this.treeStructNavigatorApiService
8061
- .createStageStorage(title, this.treeStructType())
8065
+ .createStageStorage(title, this.treeStructType(), this.context())
8062
8066
  .pipe(finalize(this.isCategoryCreationLoading.set.bind(this, false)))
8063
8067
  .subscribe((stateStorage) => this.stageStorages.update((value) => [...(value || []), stateStorage]));
8064
8068
  }
@@ -8073,7 +8077,7 @@ class CuiCategoriesComponent {
8073
8077
  }, { allowSignalWrites: true });
8074
8078
  }
8075
8079
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCategoriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8076
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCategoriesComponent, isStandalone: true, selector: "cui-categories", inputs: { treeStructType: { classPropertyName: "treeStructType", publicName: "treeStructType", isSignal: true, isRequired: true, transformFunction: null }, buttonId: { classPropertyName: "buttonId", publicName: "buttonId", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\r\n [attr.id]=\"buttonId()\"\r\n #dropdown=\"cuiDropdown\"\r\n [cuiDropdown]=\"dropdownContent\"\r\n orientation=\"stretch\"\r\n type=\"button\"\r\n class=\"target\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onOpenStageStorages()\"\r\n>\r\n <ng-content />\r\n</button>\r\n\r\n<ng-template #dropdownContent>\r\n <cui-dropdown-wrapper\r\n *transloco=\"let t\"\r\n [title]=\"t('SELECT_OR_CREATE_CATEGORY')\"\r\n width=\"100%\"\r\n class=\"dropdown-wrapper\"\r\n >\r\n <ng-container *cuiLet=\"stageStorages() as stageStorages\">\r\n @if (stageStorages && stageStorages?.length) {\r\n <cui-categories-list [stageStorages]=\"stageStorages\" />\r\n }\r\n @if (isCreateCategoryControlVisible()) {\r\n <cui-create-category-item\r\n class=\"create-category\"\r\n [isDisabled]=\"isCategoryCreationLoading()\"\r\n (created)=\"onCreateNewCategory($event)\"\r\n (canceled)=\"onCreatingCategoryCanceled()\"\r\n />\r\n } @else if (!stageStorages?.length) {\r\n <cui-empty-state\r\n class=\"empty\"\r\n [subtitle]=\"t('NO_CATEGORY_TO_VIEW_YET')\"\r\n />\r\n }\r\n </ng-container>\r\n <button\r\n ccDropdownFooterContent\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconPlus\"\r\n (click)=\"onStartCreatingNewCategory()\"\r\n >\r\n {{ t('NEW_CATEGORY') }}\r\n </button>\r\n </cui-dropdown-wrapper>\r\n</ng-template>\r\n", styles: ["::ng-deep .dropdown-wrapper .scrollable-content{flex:1;display:flex;flex-direction:column}.target{display:block;padding:0;width:100%;border-radius:8px;border:1px solid transparent}.target:focus{box-shadow:0 0 0 2px var(--cui-focus);border:1px solid var(--cui-info)}.target:disabled{cursor:default}.create-category{margin-left:24px}.empty{margin:auto}.dropdown-wrapper{display:block;height:350px}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "directive", type: CuiLetDirective, selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiDropdownWrapperComponent, selector: "cui-dropdown-wrapper", inputs: ["title", "width", "maxHeight"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "component", type: CuiCreateCategoryItemComponent, selector: "cui-create-category-item", inputs: ["isDisabled"], outputs: ["created", "canceled"] }, { kind: "component", type: CuiCategoriesListComponent, selector: "cui-categories-list", inputs: ["stageStorages"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8080
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCategoriesComponent, isStandalone: true, selector: "cui-categories", inputs: { treeStructType: { classPropertyName: "treeStructType", publicName: "treeStructType", isSignal: true, isRequired: true, transformFunction: null }, buttonId: { classPropertyName: "buttonId", publicName: "buttonId", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\r\n [attr.id]=\"buttonId()\"\r\n #dropdown=\"cuiDropdown\"\r\n [cuiDropdown]=\"dropdownContent\"\r\n orientation=\"stretch\"\r\n type=\"button\"\r\n class=\"target\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onOpenStageStorages()\"\r\n>\r\n <ng-content />\r\n</button>\r\n\r\n<ng-template #dropdownContent>\r\n <cui-dropdown-wrapper\r\n *transloco=\"let t\"\r\n [title]=\"t('SELECT_OR_CREATE_CATEGORY')\"\r\n width=\"100%\"\r\n class=\"dropdown-wrapper\"\r\n >\r\n <ng-container *cuiLet=\"stageStorages() as stageStorages\">\r\n @if (stageStorages && stageStorages?.length) {\r\n <cui-categories-list\r\n [stageStorages]=\"stageStorages\"\r\n [context]=\"context()\"\r\n />\r\n }\r\n @if (isCreateCategoryControlVisible()) {\r\n <cui-create-category-item\r\n class=\"create-category\"\r\n [isDisabled]=\"isCategoryCreationLoading()\"\r\n (created)=\"onCreateNewCategory($event)\"\r\n (canceled)=\"onCreatingCategoryCanceled()\"\r\n />\r\n } @else if (!stageStorages?.length) {\r\n <cui-empty-state\r\n class=\"empty\"\r\n [subtitle]=\"t('NO_CATEGORY_TO_VIEW_YET')\"\r\n />\r\n }\r\n </ng-container>\r\n <button\r\n ccDropdownFooterContent\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconPlus\"\r\n (click)=\"onStartCreatingNewCategory()\"\r\n >\r\n {{ t('NEW_CATEGORY') }}\r\n </button>\r\n </cui-dropdown-wrapper>\r\n</ng-template>\r\n", styles: ["::ng-deep .dropdown-wrapper .scrollable-content{flex:1;display:flex;flex-direction:column}.target{display:block;padding:0;width:100%;border-radius:8px;border:1px solid transparent}.target:focus{box-shadow:0 0 0 2px var(--cui-focus);border:1px solid var(--cui-info)}.target:disabled{cursor:default}.create-category{margin-left:24px}.empty{margin:auto}.dropdown-wrapper{display:block;height:350px}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "directive", type: CuiLetDirective, selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiDropdownWrapperComponent, selector: "cui-dropdown-wrapper", inputs: ["title", "width", "maxHeight"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "component", type: CuiCreateCategoryItemComponent, selector: "cui-create-category-item", inputs: ["isDisabled"], outputs: ["created", "canceled"] }, { kind: "component", type: CuiCategoriesListComponent, selector: "cui-categories-list", inputs: ["stageStorages", "context"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8077
8081
  }
8078
8082
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCategoriesComponent, decorators: [{
8079
8083
  type: Component,
@@ -8086,7 +8090,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
8086
8090
  CuiCreateCategoryItemComponent,
8087
8091
  CuiCategoriesListComponent,
8088
8092
  TranslocoDirective
8089
- ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n [attr.id]=\"buttonId()\"\r\n #dropdown=\"cuiDropdown\"\r\n [cuiDropdown]=\"dropdownContent\"\r\n orientation=\"stretch\"\r\n type=\"button\"\r\n class=\"target\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onOpenStageStorages()\"\r\n>\r\n <ng-content />\r\n</button>\r\n\r\n<ng-template #dropdownContent>\r\n <cui-dropdown-wrapper\r\n *transloco=\"let t\"\r\n [title]=\"t('SELECT_OR_CREATE_CATEGORY')\"\r\n width=\"100%\"\r\n class=\"dropdown-wrapper\"\r\n >\r\n <ng-container *cuiLet=\"stageStorages() as stageStorages\">\r\n @if (stageStorages && stageStorages?.length) {\r\n <cui-categories-list [stageStorages]=\"stageStorages\" />\r\n }\r\n @if (isCreateCategoryControlVisible()) {\r\n <cui-create-category-item\r\n class=\"create-category\"\r\n [isDisabled]=\"isCategoryCreationLoading()\"\r\n (created)=\"onCreateNewCategory($event)\"\r\n (canceled)=\"onCreatingCategoryCanceled()\"\r\n />\r\n } @else if (!stageStorages?.length) {\r\n <cui-empty-state\r\n class=\"empty\"\r\n [subtitle]=\"t('NO_CATEGORY_TO_VIEW_YET')\"\r\n />\r\n }\r\n </ng-container>\r\n <button\r\n ccDropdownFooterContent\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconPlus\"\r\n (click)=\"onStartCreatingNewCategory()\"\r\n >\r\n {{ t('NEW_CATEGORY') }}\r\n </button>\r\n </cui-dropdown-wrapper>\r\n</ng-template>\r\n", styles: ["::ng-deep .dropdown-wrapper .scrollable-content{flex:1;display:flex;flex-direction:column}.target{display:block;padding:0;width:100%;border-radius:8px;border:1px solid transparent}.target:focus{box-shadow:0 0 0 2px var(--cui-focus);border:1px solid var(--cui-info)}.target:disabled{cursor:default}.create-category{margin-left:24px}.empty{margin:auto}.dropdown-wrapper{display:block;height:350px}\n"] }]
8093
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n [attr.id]=\"buttonId()\"\r\n #dropdown=\"cuiDropdown\"\r\n [cuiDropdown]=\"dropdownContent\"\r\n orientation=\"stretch\"\r\n type=\"button\"\r\n class=\"target\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onOpenStageStorages()\"\r\n>\r\n <ng-content />\r\n</button>\r\n\r\n<ng-template #dropdownContent>\r\n <cui-dropdown-wrapper\r\n *transloco=\"let t\"\r\n [title]=\"t('SELECT_OR_CREATE_CATEGORY')\"\r\n width=\"100%\"\r\n class=\"dropdown-wrapper\"\r\n >\r\n <ng-container *cuiLet=\"stageStorages() as stageStorages\">\r\n @if (stageStorages && stageStorages?.length) {\r\n <cui-categories-list\r\n [stageStorages]=\"stageStorages\"\r\n [context]=\"context()\"\r\n />\r\n }\r\n @if (isCreateCategoryControlVisible()) {\r\n <cui-create-category-item\r\n class=\"create-category\"\r\n [isDisabled]=\"isCategoryCreationLoading()\"\r\n (created)=\"onCreateNewCategory($event)\"\r\n (canceled)=\"onCreatingCategoryCanceled()\"\r\n />\r\n } @else if (!stageStorages?.length) {\r\n <cui-empty-state\r\n class=\"empty\"\r\n [subtitle]=\"t('NO_CATEGORY_TO_VIEW_YET')\"\r\n />\r\n }\r\n </ng-container>\r\n <button\r\n ccDropdownFooterContent\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconPlus\"\r\n (click)=\"onStartCreatingNewCategory()\"\r\n >\r\n {{ t('NEW_CATEGORY') }}\r\n </button>\r\n </cui-dropdown-wrapper>\r\n</ng-template>\r\n", styles: ["::ng-deep .dropdown-wrapper .scrollable-content{flex:1;display:flex;flex-direction:column}.target{display:block;padding:0;width:100%;border-radius:8px;border:1px solid transparent}.target:focus{box-shadow:0 0 0 2px var(--cui-focus);border:1px solid var(--cui-info)}.target:disabled{cursor:default}.create-category{margin-left:24px}.empty{margin:auto}.dropdown-wrapper{display:block;height:350px}\n"] }]
8090
8094
  }], ctorParameters: () => [] });
8091
8095
 
8092
8096
  class CuiCheckListBlockService {
@@ -9666,7 +9670,7 @@ class CuiInstructionInfoComponent {
9666
9670
  }))));
9667
9671
  }
9668
9672
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9669
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiInstructionInfoComponent, isStandalone: true, selector: "cui-instruction-info", inputs: { instruction: { classPropertyName: "instruction", publicName: "instruction", isSignal: true, isRequired: false, transformFunction: null }, tools: { classPropertyName: "tools", publicName: "tools", isSignal: true, isRequired: true, transformFunction: null }, editorResourceUrl: { classPropertyName: "editorResourceUrl", publicName: "editorResourceUrl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { instruction: "instructionChange", validationChanged: "validationChanged", instructionCreated: "instructionCreated" }, providers: [CuiSelectedCategoryService], viewQueries: [{ propertyName: "element", first: true, predicate: ["scrollContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\r\n class=\"wrapper\"\r\n *transloco=\"let t\"\r\n>\r\n <div\r\n #scrollContent\r\n class=\"content content_scrollable\"\r\n >\r\n <div class=\"category\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [for]=\"categoryId\"\r\n [isRequired]=\"true\"\r\n >\r\n {{ t('SELECT_CATEGORY') }}\r\n </label>\r\n <cui-categories\r\n [buttonId]=\"categoryId\"\r\n [treeStructType]=\"TYPE\"\r\n >\r\n <div class=\"select\">\r\n <span [style.color]=\"labelColor()\">\r\n {{ selectTitle() }}\r\n </span>\r\n\r\n <cui-svg icon=\"cuiIconChevronDown\" />\r\n </div>\r\n </cui-categories>\r\n </cui-form-field>\r\n </div>\r\n\r\n @let instructionData = instruction();\r\n @let editorConfigData = editorConfig();\r\n\r\n @if (editorConfigData && instructionData) {\r\n <cui-instruction-info-form\r\n [config]=\"editorConfigData\"\r\n [baseResourceUrl]=\"editorResourceUrl()\"\r\n [title]=\"instructionData.storageElement.title\"\r\n [description]=\"instructionData.storageElement.shortDescription\"\r\n [framerId]=\"instructionData.storageElement.framerInstructionId\"\r\n class=\"utility\"\r\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\r\n (formChanged)=\"onFormChanged($event, instructionData.id)\"\r\n />\r\n }\r\n </div>\r\n</div>\r\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiCategoriesComponent, selector: "cui-categories", inputs: ["treeStructType", "buttonId", "disabled"] }, { kind: "ngmodule", type: CuiDialogModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiInstructionInfoFormComponent, selector: "cui-instruction-info-form", inputs: ["title", "description", "framerId", "baseResourceUrl", "config"], outputs: ["formChanged", "isFormValidChanged"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9673
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiInstructionInfoComponent, isStandalone: true, selector: "cui-instruction-info", inputs: { instruction: { classPropertyName: "instruction", publicName: "instruction", isSignal: true, isRequired: false, transformFunction: null }, tools: { classPropertyName: "tools", publicName: "tools", isSignal: true, isRequired: true, transformFunction: null }, editorResourceUrl: { classPropertyName: "editorResourceUrl", publicName: "editorResourceUrl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { instruction: "instructionChange", validationChanged: "validationChanged", instructionCreated: "instructionCreated" }, providers: [CuiSelectedCategoryService], viewQueries: [{ propertyName: "element", first: true, predicate: ["scrollContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\r\n class=\"wrapper\"\r\n *transloco=\"let t\"\r\n>\r\n <div\r\n #scrollContent\r\n class=\"content content_scrollable\"\r\n >\r\n <div class=\"category\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [for]=\"categoryId\"\r\n [isRequired]=\"true\"\r\n >\r\n {{ t('SELECT_CATEGORY') }}\r\n </label>\r\n <cui-categories\r\n [buttonId]=\"categoryId\"\r\n [treeStructType]=\"TYPE\"\r\n >\r\n <div class=\"select\">\r\n <span [style.color]=\"labelColor()\">\r\n {{ selectTitle() }}\r\n </span>\r\n\r\n <cui-svg icon=\"cuiIconChevronDown\" />\r\n </div>\r\n </cui-categories>\r\n </cui-form-field>\r\n </div>\r\n\r\n @let instructionData = instruction();\r\n @let editorConfigData = editorConfig();\r\n\r\n @if (editorConfigData && instructionData) {\r\n <cui-instruction-info-form\r\n [config]=\"editorConfigData\"\r\n [baseResourceUrl]=\"editorResourceUrl()\"\r\n [title]=\"instructionData.storageElement.title\"\r\n [description]=\"instructionData.storageElement.shortDescription\"\r\n [framerId]=\"instructionData.storageElement.framerInstructionId\"\r\n class=\"utility\"\r\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\r\n (formChanged)=\"onFormChanged($event, instructionData.id)\"\r\n />\r\n }\r\n </div>\r\n</div>\r\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiCategoriesComponent, selector: "cui-categories", inputs: ["treeStructType", "buttonId", "disabled", "context"] }, { kind: "ngmodule", type: CuiDialogModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiInstructionInfoFormComponent, selector: "cui-instruction-info-form", inputs: ["title", "description", "framerId", "baseResourceUrl", "config"], outputs: ["formChanged", "isFormValidChanged"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9670
9674
  }
9671
9675
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiInstructionInfoComponent, decorators: [{
9672
9676
  type: Component,
@@ -9939,7 +9943,7 @@ class CuiCriterionInfoComponent {
9939
9943
  }))));
9940
9944
  }
9941
9945
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9942
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCriterionInfoComponent, isStandalone: true, selector: "cui-criterion-info", inputs: { criterion: { classPropertyName: "criterion", publicName: "criterion", isSignal: true, isRequired: false, transformFunction: null }, tools: { classPropertyName: "tools", publicName: "tools", isSignal: true, isRequired: true, transformFunction: null }, editorResourceUrl: { classPropertyName: "editorResourceUrl", publicName: "editorResourceUrl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { criterion: "criterionChange", validationChanged: "validationChanged", criterionCreated: "criterionCreated" }, providers: [CuiSelectedCategoryService], viewQueries: [{ propertyName: "element", first: true, predicate: ["scrollContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"wrapper\"\n *transloco=\"let t\"\n>\n <div\n #scrollContent\n class=\"content content_scrollable\"\n >\n <div class=\"category\">\n <cui-form-field>\n <label\n cuiLabel\n [for]=\"categoryId\"\n [isRequired]=\"true\"\n >\n {{ t('SELECT_CATEGORY') }}\n </label>\n <cui-categories\n [buttonId]=\"categoryId\"\n [treeStructType]=\"TYPE\"\n >\n <div class=\"select\">\n <span [style.color]=\"labelColor()\">\n {{ selectTitle() }}\n </span>\n\n <cui-svg icon=\"cuiIconChevronDown\" />\n </div>\n </cui-categories>\n </cui-form-field>\n </div>\n\n @let criterionData = criterion();\n @let editorConfigData = editorConfig();\n\n @if (editorConfigData && criterionData) {\n <cui-criterion-info-form\n [config]=\"editorConfigData\"\n [baseResourceUrl]=\"editorResourceUrl()\"\n [title]=\"criterionData.storageElement.title\"\n [framerId]=\"criterionData.storageElement.framerCriterionId\"\n class=\"utility\"\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\n (formChanged)=\"onFormChanged($event, criterionData.id)\"\n />\n }\n </div>\n</div>\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiCategoriesComponent, selector: "cui-categories", inputs: ["treeStructType", "buttonId", "disabled"] }, { kind: "ngmodule", type: CuiDialogModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiCriterionInfoFormComponent, selector: "cui-criterion-info-form", inputs: ["title", "framerId", "baseResourceUrl", "config"], outputs: ["formChanged", "isFormValidChanged"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9946
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCriterionInfoComponent, isStandalone: true, selector: "cui-criterion-info", inputs: { criterion: { classPropertyName: "criterion", publicName: "criterion", isSignal: true, isRequired: false, transformFunction: null }, tools: { classPropertyName: "tools", publicName: "tools", isSignal: true, isRequired: true, transformFunction: null }, editorResourceUrl: { classPropertyName: "editorResourceUrl", publicName: "editorResourceUrl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { criterion: "criterionChange", validationChanged: "validationChanged", criterionCreated: "criterionCreated" }, providers: [CuiSelectedCategoryService], viewQueries: [{ propertyName: "element", first: true, predicate: ["scrollContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"wrapper\"\n *transloco=\"let t\"\n>\n <div\n #scrollContent\n class=\"content content_scrollable\"\n >\n <div class=\"category\">\n <cui-form-field>\n <label\n cuiLabel\n [for]=\"categoryId\"\n [isRequired]=\"true\"\n >\n {{ t('SELECT_CATEGORY') }}\n </label>\n <cui-categories\n [buttonId]=\"categoryId\"\n [treeStructType]=\"TYPE\"\n >\n <div class=\"select\">\n <span [style.color]=\"labelColor()\">\n {{ selectTitle() }}\n </span>\n\n <cui-svg icon=\"cuiIconChevronDown\" />\n </div>\n </cui-categories>\n </cui-form-field>\n </div>\n\n @let criterionData = criterion();\n @let editorConfigData = editorConfig();\n\n @if (editorConfigData && criterionData) {\n <cui-criterion-info-form\n [config]=\"editorConfigData\"\n [baseResourceUrl]=\"editorResourceUrl()\"\n [title]=\"criterionData.storageElement.title\"\n [framerId]=\"criterionData.storageElement.framerCriterionId\"\n class=\"utility\"\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\n (formChanged)=\"onFormChanged($event, criterionData.id)\"\n />\n }\n </div>\n</div>\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiCategoriesComponent, selector: "cui-categories", inputs: ["treeStructType", "buttonId", "disabled", "context"] }, { kind: "ngmodule", type: CuiDialogModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiCriterionInfoFormComponent, selector: "cui-criterion-info-form", inputs: ["title", "framerId", "baseResourceUrl", "config"], outputs: ["formChanged", "isFormValidChanged"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
9943
9947
  }
9944
9948
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCriterionInfoComponent, decorators: [{
9945
9949
  type: Component,