Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@odda-studio/cms-wrapper

Package Overview
Dependencies
Maintainers
1
Versions
57
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@odda-studio/cms-wrapper - npm Package Compare versions

Comparing version
0.0.51
to
0.0.52
+3
-3
esm2020/lib/cms-wrapper.component.mjs

@@ -302,6 +302,6 @@ import { Component, EventEmitter, Inject, Input, Optional, Output, ViewChild } from '@angular/core';

CmsWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CmsWrapperComponent, deps: [{ token: i1.CmsCoreService }, { token: i2.CmsWrapperService }, { token: __DEFAULT_INPUT_COMPONENT__, optional: true }, { token: __DEFAULT_PAGINATION__, optional: true }], target: i0.ɵɵFactoryTarget.Component });
CmsWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CmsWrapperComponent, selector: "lib-cms-wrapper", inputs: { tableName: "tableName", createFormName: "createFormName", updateFormName: "updateFormName", entityName: "entityName", showForm: "showForm", additionalData: "additionalData", askForDelete: "askForDelete", submitCondition: "submitCondition", tableFilterable: "tableFilterable", searchInput: "searchInput", pagination: "pagination", defaultSearch: "defaultSearch", showRowNumber: "showRowNumber", getClass: "getClass", showPagination: "showPagination", virtualScroll: "virtualScroll" }, outputs: { showFormChange: "showFormChange", formValueChanges: "formValueChanges", itemCreated: "itemCreated", itemUpdated: "itemUpdated", itemDeleted: "itemDeleted", submitError: "submitError", submitClicked: "submitClicked", deleteClicked: "deleteClicked", scrolledToBottom: "scrolledToBottom", scrolledToTop: "scrolledToTop" }, viewQueries: [{ propertyName: "libTable", first: true, predicate: ["libTable"], descendants: true }, { propertyName: "tableComponent", first: true, predicate: ["tableComponent"], descendants: true }, { propertyName: "formItem", first: true, predicate: ["customForm"], descendants: true }, { propertyName: "template", first: true, predicate: ["formTemplate"], descendants: true }], exportAs: ["wrapper"], usesOnChanges: true, ngImport: i0, template: "<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n (click)=\"submitClicked.emit()\"\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TableComponent, selector: "lib-table", inputs: ["data", "cols", "async", "delete", "draggable", "debounce", "lazy", "tableContainerContainer", "tableClass", "rowClickable", "tree", "treeData", "loading", "addChildrenToItem", "filterable", "pagination", "showPagination"], outputs: ["rowClicked", "sortingChanged", "filterChanged", "filtersChanged", "deleteItem", "dragEnded", "reloadData", "searchChanged", "paginationChange"], exportAs: ["jsonTable"] }, { kind: "directive", type: i4.ColumnTemplateDirectives, selector: "[columnTemplate]", inputs: ["columnTemplate"] }, { kind: "component", type: i4.CmsTableComponent, selector: "lib-cms-table", inputs: ["data", "cols", "async", "searchInput", "context", "pagination", "showPagination", "defaultSearch", "getClass", "showRowNumber"], outputs: ["searchFired", "selectionChange", "sortingChanged", "filtersChanged", "scrolledToBottom", "scrolledToTop"], exportAs: ["libTable"] }, { kind: "component", type: i5.JsonFormBuilderV2Component, selector: "json-form-builder-v2", inputs: ["form", "name", "formValue", "templates", "formGroup", "submitCondition"], outputs: ["formValueChange", "submitForm"] }] });
CmsWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CmsWrapperComponent, selector: "lib-cms-wrapper", inputs: { tableName: "tableName", createFormName: "createFormName", updateFormName: "updateFormName", entityName: "entityName", showForm: "showForm", additionalData: "additionalData", askForDelete: "askForDelete", submitCondition: "submitCondition", tableFilterable: "tableFilterable", searchInput: "searchInput", pagination: "pagination", defaultSearch: "defaultSearch", showRowNumber: "showRowNumber", getClass: "getClass", showPagination: "showPagination", virtualScroll: "virtualScroll" }, outputs: { showFormChange: "showFormChange", formValueChanges: "formValueChanges", itemCreated: "itemCreated", itemUpdated: "itemUpdated", itemDeleted: "itemDeleted", submitError: "submitError", submitClicked: "submitClicked", deleteClicked: "deleteClicked", scrolledToBottom: "scrolledToBottom", scrolledToTop: "scrolledToTop" }, viewQueries: [{ propertyName: "libTable", first: true, predicate: ["libTable"], descendants: true }, { propertyName: "tableComponent", first: true, predicate: ["tableComponent"], descendants: true }, { propertyName: "formItem", first: true, predicate: ["customForm"], descendants: true }, { propertyName: "template", first: true, predicate: ["formTemplate"], descendants: true }], exportAs: ["wrapper"], usesOnChanges: true, ngImport: i0, template: "<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input (click)=\"submitClicked.emit()\" type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TableComponent, selector: "lib-table", inputs: ["data", "cols", "async", "delete", "draggable", "debounce", "lazy", "tableContainerContainer", "tableClass", "rowClickable", "tree", "treeData", "loading", "addChildrenToItem", "filterable", "pagination", "showPagination"], outputs: ["rowClicked", "sortingChanged", "filterChanged", "filtersChanged", "deleteItem", "dragEnded", "reloadData", "searchChanged", "paginationChange"], exportAs: ["jsonTable"] }, { kind: "directive", type: i4.ColumnTemplateDirectives, selector: "[columnTemplate]", inputs: ["columnTemplate"] }, { kind: "component", type: i4.CmsTableComponent, selector: "lib-cms-table", inputs: ["data", "cols", "async", "searchInput", "context", "pagination", "showPagination", "defaultSearch", "getClass", "showRowNumber"], outputs: ["searchFired", "selectionChange", "sortingChanged", "filtersChanged", "scrolledToBottom", "scrolledToTop"], exportAs: ["libTable"] }, { kind: "component", type: i5.JsonFormBuilderV2Component, selector: "json-form-builder-v2", inputs: ["form", "name", "formValue", "templates", "formGroup", "submitCondition"], outputs: ["formValueChange", "submitForm"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CmsWrapperComponent, decorators: [{
type: Component,
args: [{ selector: 'lib-cms-wrapper', exportAs: 'wrapper', template: "<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n (click)=\"submitClicked.emit()\"\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n" }]
args: [{ selector: 'lib-cms-wrapper', exportAs: 'wrapper', template: "<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input (click)=\"submitClicked.emit()\" type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n" }]
}], ctorParameters: function () { return [{ type: i1.CmsCoreService }, { type: i2.CmsWrapperService }, { type: undefined, decorators: [{

@@ -382,2 +382,2 @@ type: Optional

}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zLXdyYXBwZXIvc3JjL2xpYi9jbXMtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMtd3JhcHBlci9zcmMvbGliL2xpYi1jbXMtd3JhcHBlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUFFLE1BQU0sRUFDcEIsS0FBSyxFQUdHLFFBQVEsRUFDaEIsTUFBTSxFQUdOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWlCLFFBQVEsRUFBeUIsTUFBTSx1QkFBdUIsQ0FBQTtBQUN0RixPQUFPLEVBS0wsV0FBVyxFQUVaLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RyxPQUFPLEVBQUMsT0FBTyxFQUFnRCxNQUFNLHVCQUF1QixDQUFDO0FBQzdGLE9BQU8sRUFBbUIsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFDLDJCQUEyQixFQUFFLHNCQUFzQixFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBRWxGLE1BQU0sVUFBVSxjQUFjLENBQUksTUFBVyxFQUFFLElBQVk7SUFDekQsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1FBQUUsT0FBTyxNQUFNLENBQUM7S0FBRTtJQUNwQyw4REFBOEQ7SUFDOUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFD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TTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBcUJHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBVUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRSxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Ntc0NvcmVTZXJ2aWNlLCBGb3JtS2luZCwgSUVudGl0eSwgSUZvcm0sIElUYWJsZX0gZnJvbSAnQG9kZGEtc3R1ZGlvL2Ntcy1jb3JlJ1xuaW1wb3J0IHtcbiAgQ21zVGFibGVDb21wb25lbnQsXG4gIElGaWx0ZXJPcHRpb25zLFxuICBJVGFibGVQYWdpbmF0aW9uLFxuICBTb3J0aW5nQ2hhbmdlZCxcbiAgVGFibGVDb2x1bW4sXG4gIFRhYmxlQ29tcG9uZW50XG59IGZyb20gXCJAb2RkYS1zdHVkaW8vY21zLXRhYmxlXCI7XG5pbXBvcnQge0Ntc1dyYXBwZXJTZXJ2aWNlfSBmcm9tIFwiLi9jbXMtd3JhcHBlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRocm93RXJyb3IgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtGb3JtQ29sLCBGb3JtQ29uZmlndXJhdGlvbiwgSnNvbkZvcm1CdWlsZGVyVjJDb21wb25lbnR9IGZyb20gJ0BvZGRhLXN0dWRpby9jbXMtZm9ybSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7X19ERUZBVUxUX0lOUFVUX0NPTVBPTkVOVF9fLCBfX0RFRkFVTFRfUEFHSU5BVElPTl9ffSBmcm9tIFwiLi4vcHVibGljLWFwaVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gR2V0VmFsdWVCeVBhdGg8VD4ob2JqZWN0OiBhbnksIHBhdGg6IHN0cmluZyk6IFQge1xuICBpZiAocGF0aCA9PSBudWxsKSB7IHJldHVybiBvYmplY3Q7IH1cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWUgb25seS1hcnJvdy1mdW5jdGlvbnNcbiAgY29uc3QgX3BhdGggPSBwYXRoLnJlcGxhY2UoL1xcWyhcXHcrKVxcXS9nLCAnLiQxJykuc3BsaXQoJy4nKS5maWx0ZXIoZiA9PiBmICE9PSAnJyk7XG4gIGxldCByZXMgPSBvYmplY3Q7XG4gIGZvciAoY29uc3QgayBvZiBfcGF0aCkge1xuICAgIGlmICghcmVzKSB7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHJlcyA9IHJlc1trXTtcbiAgfVxuICByZXR1cm4gcmVzO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY21zLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJ2xpYi1jbXMtd3JhcHBlci5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbiAgZXhwb3J0QXM6ICd3cmFwcGVyJ1xufSlcbmV4cG9ydCBjbGFzcyBDbXNXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRhYmxlTmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgY3JlYXRlRm9ybU5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVwZGF0ZUZvcm1OYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBlbnRpdHlOYW1lITogc3RyaW5nO1xuICBAVmlld0NoaWxkKCdsaWJUYWJsZScpIGxpYlRhYmxlITogQ21zVGFibGVDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlQ29tcG9uZW50JykgdGFibGVDb21wb25lbnQhOiBUYWJsZUNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnY3VzdG9tRm9ybScpIGZvcm1JdGVtITogSnNvbkZvcm1CdWlsZGVyVjJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2Zvcm1UZW1wbGF0ZScpIHRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgc2hvd0Zvcm06IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNob3dGb3JtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBmb3JtVmFsdWVDaGFuZ2VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBhZGRpdGlvbmFsRGF0YTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBAT3V0cHV0KCkgaXRlbUNyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgaXRlbVVwZGF0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgaXRlbURlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc3VibWl0RXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc3VibWl0Q2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkZWxldGVDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgYXNrRm9yRGVsZXRlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc3VibWl0Q29uZGl0aW9uOiAnQUxXQVlTJyB8ICdWQUxJRCcgfCAnTkVWRVInID0gJ0FMV0FZUyc7XG4gIEBJbnB1dCgpIHRhYmxlRmlsdGVyYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNlYXJjaElucHV0OiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKTtcblxuICBzZWFyY2hGaXJlOiBTdWJqZWN0PHsgc2VhcmNoOiBzdHJpbmc7IHBhZ2luYXRpb246IElUYWJsZVBhZ2luYXRpb24gfT4gPSBuZXcgU3ViamVjdDx7c2VhcmNoOiBzdHJpbmc7IHBhZ2luYXRpb246IElUYWJsZVBhZ2luYXRpb259PigpXG4gIHNlYXJjaEZpcmUkOiBPYnNlcnZhYmxlPHsgc2VhcmNoOiBzdHJpbmc7IHBhZ2luYXRpb246IElUYWJsZVBhZ2luYXRpb24gfT4gPSB0aGlzLnNlYXJjaEZpcmVcbiAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAucGlwZShcbiAgICBkZWJvdW5jZVRpbWUoMSlcbiAgKTtcbiAgY29sdW1uczogVGFibGVDb2x1bW48YW55PltdID0gW107XG4gIGRhdGE6IGFueVtdID0gW107XG4gIHZpc2libGVJdGVtczogYW55W10gPSBbXTtcbiAgdGFibGU6IElUYWJsZSB8IHVuZGVmaW5lZDtcbiAgZm9ybTogSUZvcm0gfCB1bmRlZmluZWQ7XG5cbiAgZm9ybVN1YjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICB0YWJsZVN1YjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBlbnRpdHlTdWI6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgZm9ybUNvbmZpZ3VyYXRpb246IEZvcm1Db25maWd1cmF0aW9uPGFueT4gPSB7XG4gICAgcm93czogW10sXG4gICAgdGl0bGU6ICcnXG4gIH07XG4gIEBJbnB1dCgpIHBhZ2luYXRpb246IElUYWJsZVBhZ2luYXRpb24gPSB7XG4gICAgcGFnZUluZGV4OiAxLFxuICAgIHBhZ2VTaXplOiAxMFxuICB9O1xuICB2YWx1ZTogYW55ID0ge307XG4gIHByaXZhdGUgZW50aXR5ITogSUVudGl0eTtcbiAgcHJpdmF0ZSBwYWdpbmF0aW9uRGF0YT86IElUYWJsZVBhZ2luYXRpb247XG4gIHByaXZhdGUgc29ydGluZ0RhdGE/OiBTb3J0aW5nQ2hhbmdlZDxhbnk+O1xuICBwcml2YXRlIGZpbHRlcmluZ0RhdGE/OiBJRmlsdGVyT3B0aW9uczxhbnk+O1xuICBjdXJyZW50U2VhcmNoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGRlZmF1bHRTZWFyY2g6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93Um93TnVtYmVyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZ2V0Q2xhc3M6IChyb3c6IGFueSkgPT4gc3RyaW5nID0gKHJvdykgPT4gJyc7XG4gIEBJbnB1dCgpIHNob3dQYWdpbmF0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHNjcm9sbGVkVG9Cb3R0b206IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2Nyb2xsZWRUb1RvcDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIHZpcnR1YWxTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBnZXQgdG90YWxJdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5wYWdpbmF0aW9uPy50b3RhbENvdW50IHx8IDBcbiAgfVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNtc1NlcnZpY2U6IENtc0NvcmVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNtc1dyYXBwZXJTZXJ2aWNlOiBDbXNXcmFwcGVyU2VydmljZSxcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChfX0RFRkFVTFRfSU5QVVRfQ09NUE9ORU5UX18pIHByaXZhdGUgZGVmYXVsdElucHV0OiBhbnksXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoX19ERUZBVUxUX1BBR0lOQVRJT05fXykgcHVibGljIGRlZmF1bHRQYWdpbmF0aW9uOiBJVGFibGVQYWdpbmF0aW9uKSB7XG4gICAgdGhpcy5wYWdpbmF0aW9uID0geyAuLi5kZWZhdWx0UGFnaW5hdGlvbiB9IHx8IHRoaXMucGFnaW5hdGlvbjtcbiAgICBjbXNTZXJ2aWNlLmxvYWQoKTtcbiAgICB0aGlzLnNlYXJjaEZpcmUkLnN1YnNjcmliZShcbiAgICAgIGQgPT4ge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24gPSB7IC4uLihkZWZhdWx0UGFnaW5hdGlvbiB8fCB0aGlzLnBhZ2luYXRpb24pIH07XG4gICAgICAgIHRoaXMuc2VhcmNoKGQpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmKCF0aGlzLmVudGl0eVN1Yi5jbG9zZWQpXG4gICAgICB0aGlzLmVudGl0eVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIGlmKCF0aGlzLmZvcm1TdWIuY2xvc2VkKVxuICAgICAgdGhpcy5mb3JtU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgaWYoIXRoaXMudGFibGVTdWIuY2xvc2VkKVxuICAgICAgdGhpcy50YWJsZVN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb2JzZXJ2ZUZvcm0oZm9ybU5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHN1YiA9IHRoaXMuY21zU2VydmljZVxuICAgICAgLmZvcm1zJFxuICAgICAgLnBpcGUobWFwKGYgPT4gZltmb3JtTmFtZV0pLCBmaWx0ZXIoZiA9PiBmICE9PSB1bmRlZmluZWQpKS5zdWJzY3JpYmUoXG4gICAgICAgIGZvcm0gPT4ge1xuICAgICAgICAgIHRoaXMuZm9ybSA9IGZvcm1cbiAgICAgICAgICB0aGlzLmZvcm1Db25maWd1cmF0aW9uID0ge1xuICAgICAgICAgICAgdGl0bGU6IGZvcm0ubmFtZSxcbiAgICAgICAgICAgIHJvd3M6IChmb3JtLnJvd3MgfHwgW10pLm1hcChcbiAgICAgICAgICAgICAgZiA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICAgICAgICAgIHJvd0NsYXNzOiBmLmNsYXNzLFxuICAgICAgICAgICAgICAgICAgY29sdW1uczogZi5maWVsZHMubWFwKFxuICAgICAgICAgICAgICAgICAgICBmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGUgPSAgZmllbGQudHlwZSB8fCBmaWVsZC5maWVsZD8udHlwZSB8fCAodGhpcy5kZWZhdWx0SW5wdXQgPyAnZGVmYXVsdCcgOiAndGV4dCcpO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5yZWxhdGlvbiAmJiAhZmllbGQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdfX2F1dG9fY29tcGxldGVfXydcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGb3JtQ29sKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpZWxkLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZmllbGQubGFiZWwxOG4gfHwgZmllbGQubmFtZSB8fCBmaWVsZC5maWVsZD8ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhU2V0OiBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0Q2xhc3M6IGZpZWxkLmNsYXNzLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiAoZm9ybTogQWJzdHJhY3RDb250cm9sLCBpbnB1dDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZpZWxkLm1ldGE/LmlmKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5OiBBcnJheTx7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6ICdlcScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYW55XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfT4gPSBmaWVsZC5tZXRhLmlmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBkaXNwbGF5Lm1hcChjb25kaXRpb24gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gZm9ybS52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBHZXRWYWx1ZUJ5UGF0aChpbnB1dFZhbHVlLCBjb25kaXRpb24uZmllbGQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuZmlsdGVyKGsgPT4gIWspXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICBjb25kaXRpb25zLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmaWVsZC5yZXF1aXJlZCB8fCBmaWVsZC5maWVsZD8ucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pbjogZmllbGQubWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg6IGZpZWxkLm1heCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWluTGVuZ3RoOiBmaWVsZC5taW5MZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1heExlbmd0aDogZmllbGQubWF4TGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiBmaWVsZC5tZXRhPy5wYXR0ZXJuID8gbmV3IFJlZ0V4cChmaWVsZC5tZXRhLnBhdHRlcm4pOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkVHJ1ZTogZmllbGQucmVxdWlyZWRUcnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgdGhpcy5mb3JtU3ViLmFkZChzdWIpO1xuICB9XG5cbiAgb2JzZXJ2ZVRhYmxlKCkge1xuICAgIGNvbnN0IHN1YiA9IHRoaXMuY21zU2VydmljZVxuICAgICAgLnRhYmxlcyRcbiAgICAgIC5waXBlKG1hcChmID0+IGZbdGhpcy50YWJsZU5hbWVdKSwgZmlsdGVyKGYgPT4gZiAhPT0gdW5kZWZpbmVkKSkuc3Vic2NyaWJlKFxuICAgICAgICB0YWJsZSA9PiB7XG4gICAgICAgICAgdGhpcy5wYWdpbmF0aW9uID0geyAuLi50aGlzLmRlZmF1bHRQYWdpbmF0aW9uIH0gfHwgdGhpcy5wYWdpbmF0aW9uO1xuICAgICAgICAgIHRoaXMudGFibGUgPSB0YWJsZTtcbiAgICAgICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLnRhYmxlLmNvbHVtbnMubWFwKGYgPT4gbmV3IFRhYmxlQ29sdW1uPGFueT4oe1xuICAgICAgICAgICAgZmllbGQ6IGYuZmllbGQubmFtZSxcbiAgICAgICAgICAgIGRhdGFUeXBlOiBmLmhpZGRlbiA/ICdoaWRkZW4nIDooIGYuZmllbGQudHlwZSB8fCAndGV4dCcpLFxuICAgICAgICAgICAgbGFiZWw6IGYubGFiZWwxOG4gfHwgZi5maWVsZC5uYW1lLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogZi5maWVsZC5pZGVudGlmaWVyLFxuICAgICAgICAgICAgdGVtcGxhdGVOYW1lOiBmLmN1c3RvbVRlbXBsYXRlLFxuICAgICAgICAgICAgb3B0aW9uczogZi5maWVsZC5vcHRpb25zLFxuICAgICAgICAgICAgZmlsdGVyaW5nS2V5czogZi5maWx0ZXJpbmdLZXlzPy5qb2luKCcsJykgfHwgZi5tZXRhPy5maWx0ZXJpbmdLZXlzPy5qb2luKCcsJyksXG4gICAgICAgICAgICBmaWx0ZXJhYmxlOiBmLmZpbHRlcmFibGUsXG4gICAgICAgICAgICBoaWRkZW46IGYuaGlkZGVuLFxuICAgICAgICAgICAgbWV0YTogZi5tZXRhLFxuICAgICAgICAgICAgc29ydGFibGU6IGYuc29ydGFibGUsXG4gICAgICAgICAgICBmcmVlemU6IGYuZnJlZXplLFxuICAgICAgICAgICAgZmlsdGVyQ29uZGl0aW9uOiBmLmZpbHRlckNvbmRpdGlvbixcbiAgICAgICAgICAgIGZpbHRlck9wdGlvbnM6IGYuZmlsdGVyT3B0aW9ucyxcbiAgICAgICAgICAgIGZpbHRlcjogZi5maWx0ZXIsXG4gICAgICAgICAgICBmaXJzdFNvcnRpbmc6IGYuZmlyc3RTb3J0aW5nLFxuICAgICAgICAgICAgd2lkdGg6IGYud2lkdGhcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgdGhpcy5zZWFyY2hGaXJlLm5leHQoe3NlYXJjaDogJycsIHBhZ2luYXRpb246IHRoaXMucGFnaW5hdGlvbn0pXG4gICAgICAgICAvLyB0aGlzLnNlYXJjaCh7c2VhcmNoOiAnJywgcGFnaW5hdGlvbjoge319KVxuICAgICAgICB9XG4gICAgICApO1xuICAgIHRoaXMudGFibGVTdWIuYWRkKHN1YilcbiAgfVxuXG4gIG9ic2VydmVFbnRpdHkoZW50aXR5TmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3Qgc3ViID0gdGhpcy5jbXNTZXJ2aWNlLmVudGl0aWVzJC5waXBlKFxuICAgICAgbWFwKGYgPT4gZltlbnRpdHlOYW1lXSksXG4gICAgICBmaWx0ZXIoZiA9PiBmICE9PSB1bmRlZmluZWQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICBmID0+IHtcbiAgICAgICAgdGhpcy5lbnRpdHkgPSBmXG4gICAgICB9XG4gICAgKVxuICAgIHRoaXMuZW50aXR5U3ViLmFkZChzdWIpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmKGNoYW5nZXNbJ3Nob3dGb3JtJ10pIHtcbiAgICAgIGlmKCF0aGlzLnNob3dGb3JtKSB0aGlzLnZhbHVlID0ge307XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd0YWJsZU5hbWUnXSkge1xuICAgICAgY29uc29sZS5sb2coJ3RhYmxlIGNoYW5nZWQnKVxuICAgICAgdGhpcy5vYnNlcnZlVGFibGUoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2NyZWF0ZUZvcm1OYW1lJ10pIHtcbiAgICAgIHRoaXMub2JzZXJ2ZUZvcm0odGhpcy5jcmVhdGVGb3JtTmFtZSEpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snZW50aXR5TmFtZSddKSB7XG4gICAgICB0aGlzLmZpbHRlcmluZ0RhdGEgPSB7fTtcbiAgICAgIHRoaXMuc29ydGluZ0RhdGEgPSB1bmRlZmluZWQ7XG4gICAgICBpZih0aGlzLnRhYmxlQ29tcG9uZW50KVxuICAgICAgICB0aGlzLnRhYmxlQ29tcG9uZW50LnNlYXJjaCA9ICcnXG4gICAgICB0aGlzLm9ic2VydmVFbnRpdHkodGhpcy5lbnRpdHlOYW1lISk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBzZWFyY2goJGV2ZW50OiB7IHNlYXJjaDogc3RyaW5nOyBwYWdpbmF0aW9uOiBJVGFibGVQYWdpbmF0aW9uIH0pIHtcbiAgICBpZighJGV2ZW50LnBhZ2luYXRpb24/LnBhZ2VTaXplKSB7XG4gICAgICAkZXZlbnQucGFnaW5hdGlvbiA9IHRoaXMucGFnaW5hdGlvbiB8fCB7XG4gICAgICAgIHBhZ2VTaXplOiAxMCxcbiAgICAgICAgcGFnZUluZGV4OiAxXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFNlYXJjaCA9ICRldmVudC5zZWFyY2ggfHwgJyc7XG5cbiAgICB0aGlzLmZpbHRlcmluZ0RhdGEgPSB7fTtcbiAgICB0aGlzLnBhZ2luYXRpb25EYXRhID0gJGV2ZW50LnBhZ2luYXRpb247XG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5sb2FkKHRoaXMudGFibGUhLFxuICAgICAgdGhpcy5jb2x1bW5zLFxuICAgICAgJGV2ZW50LnNlYXJjaCxcbiAgICAgICRldmVudC5wYWdpbmF0aW9uLFxuICAgICAge30sXG4gICAgICB0aGlzLnNvcnRpbmdEYXRhLFxuICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YSkuc3Vic2NyaWJlKFxuICAgICAgZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGEuZGF0YTtcbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXMgPSBkYXRhLmRhdGE7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdlQ291bnQgPSBNYXRoLmNlaWwoZGF0YS5wYWdpbmF0aW9uLnRvdGFsIC8gdGhpcy5wYWdpbmF0aW9uLnBhZ2VTaXplISk7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi50b3RhbENvdW50ID0gZGF0YS5wYWdpbmF0aW9uLnRvdGFsO1xuICAgICAgICAvL3RoaXMudGFibGVDb21wb25lbnQucmVmcmVzaFRhYmxlKCk7XG4gICAgICAgIHRoaXMubGliVGFibGUucmVmcmVzaFRhYmxlKCk7XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgZmlsdGVyc0NoYW5nZWQoJGV2ZW50OiB7IGZpbHRlcjogSUZpbHRlck9wdGlvbnM8YW55PjsgcGFnaW5hdGlvbjogSVRhYmxlUGFnaW5hdGlvbiB9KSB7XG4gICAgdGhpcy5wYWdpbmF0aW9uID0geyAuLi50aGlzLmRlZmF1bHRQYWdpbmF0aW9uIH07XG4gICAgdGhpcy5maWx0ZXJpbmdEYXRhID0gJGV2ZW50LmZpbHRlcjtcbiAgICB0aGlzLmNtc1dyYXBwZXJTZXJ2aWNlLmxvYWQoXG4gICAgICB0aGlzLnRhYmxlISxcbiAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgIFwiXCIsXG4gICAgICAkZXZlbnQucGFnaW5hdGlvbixcbiAgICAgICRldmVudC5maWx0ZXIsXG4gICAgICB0aGlzLnNvcnRpbmdEYXRhLFxuICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YSkuc3Vic2NyaWJlKFxuICAgICAgZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGEuZGF0YTtcbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXMgPSBkYXRhLmRhdGE7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdlQ291bnQgPSBNYXRoLmNlaWwoZGF0YS5wYWdpbmF0aW9uLnRvdGFsIC8gdGhpcy5wYWdpbmF0aW9uLnBhZ2VTaXplISk7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi50b3RhbENvdW50ID0gZGF0YS5wYWdpbmF0aW9uLnRvdGFsO1xuICAgICAgICB0aGlzLmxpYlRhYmxlLnJlZnJlc2hUYWJsZSgpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIHNhdmUoJGV2ZW50OiBGb3JtR3JvdXApIHtcbiAgICBjb25zdCB2OiBhbnkgPSB7fTtcbiAgICBPYmplY3Qua2V5cygkZXZlbnQudmFsdWUpLmZvckVhY2goXG4gICAgICBmID0+IHtcbiAgICAgICAgdltmXSA9ICRldmVudC52YWx1ZVtmXSB8fCB1bmRlZmluZWRcbiAgICAgIH1cbiAgICApXG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5zYXZlKHRoaXMuZm9ybSEsIHYpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihcbiAgICAgICAgICAoZXIpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3VibWl0RXJyb3IuZW1pdChlcik7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcilcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICBkID0+IHtcbiAgICAgICAgdGhpcy5zZWFyY2hGaXJlLm5leHQoe3NlYXJjaDogJycsIHBhZ2luYXRpb246IHRoaXMucGFnaW5hdGlvbn0pO1xuICAgICAgICB0aGlzLnNob3dGb3JtID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd0Zvcm1DaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICAgIGlmKHRoaXMuZm9ybT8ua2luZCA9PT0gRm9ybUtpbmQuQ1JFQVRFKSB0aGlzLml0ZW1DcmVhdGVkLmVtaXQoZCk7XG4gICAgICAgIGlmKHRoaXMuZm9ybT8ua2luZCA9PT0gRm9ybUtpbmQuVVBEQVRFKSB0aGlzLml0ZW1VcGRhdGVkLmVtaXQoZCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByZXBhcmVVcGRhdGUodmFsdWU6IGFueSkge1xuICAgIHRoaXMub2JzZXJ2ZUZvcm0odGhpcy51cGRhdGVGb3JtTmFtZSEpO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnNob3dGb3JtQ2hhbmdlLmVtaXQodHJ1ZSlcbiAgfVxuXG4gIGRlbGV0ZShyb3c6IGFueSkge1xuICAgIHRoaXMuZGVsZXRlQ2xpY2tlZC5lbWl0KHJvdylcbiAgICBpZih0aGlzLmFza0ZvckRlbGV0ZSkge1xuICAgICAgY29uc3QgY28gPSBjb25maXJtKCdTZWkgc2ljdXJvPycpO1xuICAgICAgaWYoIWNvKSByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5kZWxldGUodGhpcy5lbnRpdHksIHJvdykuc3Vic2NyaWJlKFxuICAgICAgZCA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoRmlyZS5uZXh0KHtzZWFyY2g6ICcnLCBwYWdpbmF0aW9uOiB0aGlzLnBhZ2luYXRpb259KTtcbiAgICAgICAgdGhpcy5pdGVtRGVsZXRlZC5lbWl0KGQpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIGhhbmRsZUNyZWF0ZUZvcm0oKSB7XG4gICAgdGhpcy5vYnNlcnZlRm9ybSh0aGlzLmNyZWF0ZUZvcm1OYW1lISlcbiAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkOyB0aGlzLnNob3dGb3JtQ2hhbmdlLmVtaXQodHJ1ZSlcbiAgfVxuXG4gIHNvcnRpbmdDaGFuZ2VkKCRldmVudDogU29ydGluZ0NoYW5nZWQ8YW55Pikge1xuICAgIHRoaXMuc29ydGluZ0RhdGEgPSAkZXZlbnQ7XG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5sb2FkKFxuICAgICAgdGhpcy50YWJsZSEsXG4gICAgICB0aGlzLmNvbHVtbnMsXG4gICAgICB0aGlzLnNlYXJjaElucHV0LnZhbHVlIHx8ICcnLFxuICAgICAgdGhpcy5wYWdpbmF0aW9uISxcbiAgICAgIHRoaXMuZmlsdGVyaW5nRGF0YSEsXG4gICAgICB0aGlzLnNvcnRpbmdEYXRhLFxuICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YSkuc3Vic2NyaWJlKFxuICAgICAgZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGEuZGF0YTtcbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXMgPSBkYXRhLmRhdGE7XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgZmlyZWQoKSB7XG4gIH1cblxuICBzY3JvbGxlZFRvQm90dG9tSGFuZGxlKCkge1xuICAgIGlmKHRoaXMudmlzaWJsZUl0ZW1zLmxlbmd0aCA9PT0gdGhpcy50b3RhbEl0ZW1zIHx8ICF0aGlzLnZpcnR1YWxTY3JvbGwpIHJldHVybiA7XG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5sb2FkKHRoaXMudGFibGUhLFxuICAgICAgdGhpcy5jb2x1bW5zLFxuICAgICAgdGhpcy5jdXJyZW50U2VhcmNoISxcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy5wYWdpbmF0aW9uLFxuICAgICAgICBwYWdlSW5kZXg6ICh0aGlzLnBhZ2luYXRpb24/LnBhZ2VJbmRleCB8fCAwKSArIDFcbiAgICAgIH0sXG4gICAgICB0aGlzLmZpbHRlcmluZ0RhdGEgfHwge30sXG4gICAgICB0aGlzLnNvcnRpbmdEYXRhLFxuICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YSkuc3Vic2NyaWJlKFxuICAgICAgZGF0YSA9PiB7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdlSW5kZXggPSB0aGlzLnBhZ2luYXRpb24ucGFnZUluZGV4ISArIDE7XG4gICAgICAgIHRoaXMudmlzaWJsZUl0ZW1zID0gWy4uLnRoaXMudmlzaWJsZUl0ZW1zLCAuLi5kYXRhLmRhdGFdO1xuICAgICAgICAvL3RoaXMudGFibGVDb21wb25lbnQucmVmcmVzaFRhYmxlKCk7XG4gICAgICAgIHRoaXMubGliVGFibGUucmVmcmVzaFRhYmxlKCk7XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgc2Nyb2xsZWRUb1RvcEhhbmRsZSgpIHtcblxuICB9XG59XG4iLCI8bGliLWNtcy10YWJsZSBbY29sc109XCJjb2x1bW5zXCJcbiAgICAgICAgICAgICAgIFthc3luY109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIFtzZWFyY2hJbnB1dF09XCJzZWFyY2hJbnB1dFwiXG4gICAgICAgICAgICAgICAoc2VhcmNoRmlyZWQpPVwiZmlyZWQoKTtzZWFyY2hGaXJlLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICBbZGVmYXVsdFNlYXJjaF09XCJkZWZhdWx0U2VhcmNoXCJcbiAgICAgICAgICAgICAgIFtzaG93Um93TnVtYmVyXT1cInNob3dSb3dOdW1iZXJcIlxuICAgICAgICAgICAgICAgKHNvcnRpbmdDaGFuZ2VkKT1cInNvcnRpbmdDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgKGZpbHRlcnNDaGFuZ2VkKT1cImZpbHRlcnNDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgW2NvbnRleHRdPVwidGhpc1wiXG4gICAgICAgICAgICAgICBbZ2V0Q2xhc3NdPVwiZ2V0Q2xhc3NcIlxuICAgICAgICAgICAgICAgW3Nob3dQYWdpbmF0aW9uXT1cInNob3dQYWdpbmF0aW9uXCJcbiAgICAgICAgICAgICAgIChzY3JvbGxlZFRvQm90dG9tKT1cInNjcm9sbGVkVG9Cb3R0b21IYW5kbGUoKVwiXG4gICAgICAgICAgICAgICAoc2Nyb2xsZWRUb1RvcCk9XCJzY3JvbGxlZFRvVG9wSGFuZGxlKClcIlxuICAgICAgICAgICAgICAgW2RhdGFdPVwidmlzaWJsZUl0ZW1zXCIgI2xpYlRhYmxlPjwvbGliLWNtcy10YWJsZT5cbjxsaWItdGFibGUgW2FzeW5jXT1cInRydWVcIlxuICAgICAgICAgICAqbmdJZj1cImZhbHNlXCJcbiAgICAgICAgICAgW2RhdGFdPVwidmlzaWJsZUl0ZW1zXCJcbiAgICAgICAgICAgW2ZpbHRlcmFibGVdPVwidGFibGVGaWx0ZXJhYmxlXCJcbiAgICAgICAgICAgWyhwYWdpbmF0aW9uKV09XCJwYWdpbmF0aW9uXCJcbiAgICAgICAgICAgKHNvcnRpbmdDaGFuZ2VkKT1cInNvcnRpbmdDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAoc2VhcmNoQ2hhbmdlZCk9XCJzZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgIChmaWx0ZXJzQ2hhbmdlZCk9XCJmaWx0ZXJzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgW2NvbHNdPVwiY29sdW1uc1wiPlxuICA8bmctdGVtcGxhdGUgbGV0LXZhbHVlIGNvbHVtblRlbXBsYXRlPVwidXBkYXRlXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicHJlcGFyZVVwZGF0ZSh2YWx1ZSlcIj5cbiAgICAgIFVwZGF0ZVxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgY29sdW1uVGVtcGxhdGU9XCJkZWxldGVcIiBsZXQtdmFsdWU+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlKHZhbHVlKVwiPlxuICAgICAgZGVsZXRlXG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxidXR0b24gYWN0aW9ucyAqbmdJZj1cInRhYmxlPy5hY3Rpb25zPy5jcmVhdGVcIiAoY2xpY2spPVwiaGFuZGxlQ3JlYXRlRm9ybSgpXCI+XG4gICAgY3JlYXRlXG4gIDwvYnV0dG9uPlxuPC9saWItdGFibGU+XG48bmctdGVtcGxhdGUgI2Zvcm1UZW1wbGF0ZT5cbiAgPGpzb24tZm9ybS1idWlsZGVyLXYyICNjdXN0b21Gb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dGb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdWJtaXRDb25kaXRpb25dPVwic3VibWl0Q29uZGl0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzdWJtaXRGb3JtKT1cInNhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKGZvcm1WYWx1ZSldPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1WYWx1ZUNoYW5nZSk9XCJ0aGlzLmZvcm1WYWx1ZUNoYW5nZXMuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1Db25maWd1cmF0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3VibWl0LWNsYXNzXCJcbiAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdENsaWNrZWQuZW1pdCgpXCJcbiAgICAgICAgICAgW2NsYXNzLmludmFsaWRdPVwic3VibWl0Q29uZGl0aW9uID09PSAnVkFMSUQnICYmICFmb3JtSXRlbT8uZm9ybUdyb3VwPy52YWxpZFwiXG4gICAgICAgICAgIHN1Ym1pdFRlbXBsYXRlPlxuICAgICAgICA8aW5wdXQgIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgIDwvZGl2PlxuICA8L2pzb24tZm9ybS1idWlsZGVyLXYyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zLXdyYXBwZXIvc3JjL2xpYi9jbXMtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMtd3JhcHBlci9zcmMvbGliL2xpYi1jbXMtd3JhcHBlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUFFLE1BQU0sRUFDcEIsS0FBSyxFQUdHLFFBQVEsRUFDaEIsTUFBTSxFQUdOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWlCLFFBQVEsRUFBeUIsTUFBTSx1QkFBdUIsQ0FBQTtBQUN0RixPQUFPLEVBS0wsV0FBVyxFQUVaLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RyxPQUFPLEVBQUMsT0FBTyxFQUFnRCxNQUFNLHVCQUF1QixDQUFDO0FBQzdGLE9BQU8sRUFBbUIsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFDLDJCQUEyQixFQUFFLHNCQUFzQixFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBRWxGLE1BQU0sVUFBVSxjQUFjLENBQUksTUFBVyxFQUFFLElBQVk7SUFDekQsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1FBQUUsT0FBTyxNQUFNLENBQUM7S0FBRTtJQUNwQyw4REFBOEQ7SUFDOUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFD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TTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBcUJHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBVUcsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRSxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Ntc0NvcmVTZXJ2aWNlLCBGb3JtS2luZCwgSUVudGl0eSwgSUZvcm0sIElUYWJsZX0gZnJvbSAnQG9kZGEtc3R1ZGlvL2Ntcy1jb3JlJ1xuaW1wb3J0IHtcbiAgQ21zVGFibGVDb21wb25lbnQsXG4gIElGaWx0ZXJPcHRpb25zLFxuICBJVGFibGVQYWdpbmF0aW9uLFxuICBTb3J0aW5nQ2hhbmdlZCxcbiAgVGFibGVDb2x1bW4sXG4gIFRhYmxlQ29tcG9uZW50XG59IGZyb20gXCJAb2RkYS1zdHVkaW8vY21zLXRhYmxlXCI7XG5pbXBvcnQge0Ntc1dyYXBwZXJTZXJ2aWNlfSBmcm9tIFwiLi9jbXMtd3JhcHBlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRocm93RXJyb3IgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtGb3JtQ29sLCBGb3JtQ29uZmlndXJhdGlvbiwgSnNvbkZvcm1CdWlsZGVyVjJDb21wb25lbnR9IGZyb20gJ0BvZGRhLXN0dWRpby9jbXMtZm9ybSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7X19ERUZBVUxUX0lOUFVUX0NPTVBPTkVOVF9fLCBfX0RFRkFVTFRfUEFHSU5BVElPTl9ffSBmcm9tIFwiLi4vcHVibGljLWFwaVwiO1xuXG5leHBvcnQgZnVuY3Rpb24gR2V0VmFsdWVCeVBhdGg8VD4ob2JqZWN0OiBhbnksIHBhdGg6IHN0cmluZyk6IFQge1xuICBpZiAocGF0aCA9PSBudWxsKSB7IHJldHVybiBvYmplY3Q7IH1cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnZhcmlhYmxlLW5hbWUgb25seS1hcnJvdy1mdW5jdGlvbnNcbiAgY29uc3QgX3BhdGggPSBwYXRoLnJlcGxhY2UoL1xcWyhcXHcrKVxcXS9nLCAnLiQxJykuc3BsaXQoJy4nKS5maWx0ZXIoZiA9PiBmICE9PSAnJyk7XG4gIGxldCByZXMgPSBvYmplY3Q7XG4gIGZvciAoY29uc3QgayBvZiBfcGF0aCkge1xuICAgIGlmICghcmVzKSB7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHJlcyA9IHJlc1trXTtcbiAgfVxuICByZXR1cm4gcmVzO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY21zLXdyYXBwZXInLFxuICB0ZW1wbGF0ZVVybDogJ2xpYi1jbXMtd3JhcHBlci5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbiAgZXhwb3J0QXM6ICd3cmFwcGVyJ1xufSlcbmV4cG9ydCBjbGFzcyBDbXNXcmFwcGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHRhYmxlTmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgY3JlYXRlRm9ybU5hbWU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVwZGF0ZUZvcm1OYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSBlbnRpdHlOYW1lITogc3RyaW5nO1xuICBAVmlld0NoaWxkKCdsaWJUYWJsZScpIGxpYlRhYmxlITogQ21zVGFibGVDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ3RhYmxlQ29tcG9uZW50JykgdGFibGVDb21wb25lbnQhOiBUYWJsZUNvbXBvbmVudDtcbiAgQFZpZXdDaGlsZCgnY3VzdG9tRm9ybScpIGZvcm1JdGVtITogSnNvbkZvcm1CdWlsZGVyVjJDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2Zvcm1UZW1wbGF0ZScpIHRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCkgc2hvd0Zvcm06IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNob3dGb3JtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gIEBPdXRwdXQoKSBmb3JtVmFsdWVDaGFuZ2VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBASW5wdXQoKSBhZGRpdGlvbmFsRGF0YTogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICBAT3V0cHV0KCkgaXRlbUNyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgaXRlbVVwZGF0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgaXRlbURlbGV0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc3VibWl0RXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc3VibWl0Q2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkZWxldGVDbGlja2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQElucHV0KCkgYXNrRm9yRGVsZXRlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc3VibWl0Q29uZGl0aW9uOiAnQUxXQVlTJyB8ICdWQUxJRCcgfCAnTkVWRVInID0gJ0FMV0FZUyc7XG4gIEBJbnB1dCgpIHRhYmxlRmlsdGVyYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNlYXJjaElucHV0OiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKTtcblxuICBzZWFyY2hGaXJlOiBTdWJqZWN0PHsgc2VhcmNoOiBzdHJpbmc7IHBhZ2luYXRpb246IElUYWJsZVBhZ2luYXRpb24gfT4gPSBuZXcgU3ViamVjdDx7c2VhcmNoOiBzdHJpbmc7IHBhZ2luYXRpb246IElUYWJsZVBhZ2luYXRpb259PigpXG4gIHNlYXJjaEZpcmUkOiBPYnNlcnZhYmxlPHsgc2VhcmNoOiBzdHJpbmc7IHBhZ2luYXRpb246IElUYWJsZVBhZ2luYXRpb24gfT4gPSB0aGlzLnNlYXJjaEZpcmVcbiAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAucGlwZShcbiAgICBkZWJvdW5jZVRpbWUoMSlcbiAgKTtcbiAgY29sdW1uczogVGFibGVDb2x1bW48YW55PltdID0gW107XG4gIGRhdGE6IGFueVtdID0gW107XG4gIHZpc2libGVJdGVtczogYW55W10gPSBbXTtcbiAgdGFibGU6IElUYWJsZSB8IHVuZGVmaW5lZDtcbiAgZm9ybTogSUZvcm0gfCB1bmRlZmluZWQ7XG5cbiAgZm9ybVN1YjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICB0YWJsZVN1YjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBlbnRpdHlTdWI6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgZm9ybUNvbmZpZ3VyYXRpb246IEZvcm1Db25maWd1cmF0aW9uPGFueT4gPSB7XG4gICAgcm93czogW10sXG4gICAgdGl0bGU6ICcnXG4gIH07XG4gIEBJbnB1dCgpIHBhZ2luYXRpb246IElUYWJsZVBhZ2luYXRpb24gPSB7XG4gICAgcGFnZUluZGV4OiAxLFxuICAgIHBhZ2VTaXplOiAxMFxuICB9O1xuICB2YWx1ZTogYW55ID0ge307XG4gIHByaXZhdGUgZW50aXR5ITogSUVudGl0eTtcbiAgcHJpdmF0ZSBwYWdpbmF0aW9uRGF0YT86IElUYWJsZVBhZ2luYXRpb247XG4gIHByaXZhdGUgc29ydGluZ0RhdGE/OiBTb3J0aW5nQ2hhbmdlZDxhbnk+O1xuICBwcml2YXRlIGZpbHRlcmluZ0RhdGE/OiBJRmlsdGVyT3B0aW9uczxhbnk+O1xuICBjdXJyZW50U2VhcmNoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGRlZmF1bHRTZWFyY2g6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzaG93Um93TnVtYmVyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgZ2V0Q2xhc3M6IChyb3c6IGFueSkgPT4gc3RyaW5nID0gKHJvdykgPT4gJyc7XG4gIEBJbnB1dCgpIHNob3dQYWdpbmF0aW9uOiBib29sZWFuID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHNjcm9sbGVkVG9Cb3R0b206IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgc2Nyb2xsZWRUb1RvcDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIHZpcnR1YWxTY3JvbGw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBnZXQgdG90YWxJdGVtcygpIHtcbiAgICByZXR1cm4gdGhpcy5wYWdpbmF0aW9uPy50b3RhbENvdW50IHx8IDBcbiAgfVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNtc1NlcnZpY2U6IENtc0NvcmVTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGNtc1dyYXBwZXJTZXJ2aWNlOiBDbXNXcmFwcGVyU2VydmljZSxcbiAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChfX0RFRkFVTFRfSU5QVVRfQ09NUE9ORU5UX18pIHByaXZhdGUgZGVmYXVsdElucHV0OiBhbnksXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoX19ERUZBVUxUX1BBR0lOQVRJT05fXykgcHVibGljIGRlZmF1bHRQYWdpbmF0aW9uOiBJVGFibGVQYWdpbmF0aW9uKSB7XG4gICAgdGhpcy5wYWdpbmF0aW9uID0geyAuLi5kZWZhdWx0UGFnaW5hdGlvbiB9IHx8IHRoaXMucGFnaW5hdGlvbjtcbiAgICBjbXNTZXJ2aWNlLmxvYWQoKTtcbiAgICB0aGlzLnNlYXJjaEZpcmUkLnN1YnNjcmliZShcbiAgICAgIGQgPT4ge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24gPSB7IC4uLihkZWZhdWx0UGFnaW5hdGlvbiB8fCB0aGlzLnBhZ2luYXRpb24pIH07XG4gICAgICAgIHRoaXMuc2VhcmNoKGQpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmKCF0aGlzLmVudGl0eVN1Yi5jbG9zZWQpXG4gICAgICB0aGlzLmVudGl0eVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIGlmKCF0aGlzLmZvcm1TdWIuY2xvc2VkKVxuICAgICAgdGhpcy5mb3JtU3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgaWYoIXRoaXMudGFibGVTdWIuY2xvc2VkKVxuICAgICAgdGhpcy50YWJsZVN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb2JzZXJ2ZUZvcm0oZm9ybU5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHN1YiA9IHRoaXMuY21zU2VydmljZVxuICAgICAgLmZvcm1zJFxuICAgICAgLnBpcGUobWFwKGYgPT4gZltmb3JtTmFtZV0pLCBmaWx0ZXIoZiA9PiBmICE9PSB1bmRlZmluZWQpKS5zdWJzY3JpYmUoXG4gICAgICAgIGZvcm0gPT4ge1xuICAgICAgICAgIHRoaXMuZm9ybSA9IGZvcm1cbiAgICAgICAgICB0aGlzLmZvcm1Db25maWd1cmF0aW9uID0ge1xuICAgICAgICAgICAgdGl0bGU6IGZvcm0ubmFtZSxcbiAgICAgICAgICAgIHJvd3M6IChmb3JtLnJvd3MgfHwgW10pLm1hcChcbiAgICAgICAgICAgICAgZiA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgICAgICAgICAgIHJvd0NsYXNzOiBmLmNsYXNzLFxuICAgICAgICAgICAgICAgICAgY29sdW1uczogZi5maWVsZHMubWFwKFxuICAgICAgICAgICAgICAgICAgICBmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGUgPSAgZmllbGQudHlwZSB8fCBmaWVsZC5maWVsZD8udHlwZSB8fCAodGhpcy5kZWZhdWx0SW5wdXQgPyAnZGVmYXVsdCcgOiAndGV4dCcpO1xuICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5yZWxhdGlvbiAmJiAhZmllbGQudHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICdfX2F1dG9fY29tcGxldGVfXydcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBGb3JtQ29sKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpZWxkLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZmllbGQubGFiZWwxOG4gfHwgZmllbGQubmFtZSB8fCBmaWVsZC5maWVsZD8ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhU2V0OiBmaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0Q2xhc3M6IGZpZWxkLmNsYXNzLFxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiAoZm9ybTogQWJzdHJhY3RDb250cm9sLCBpbnB1dDogQWJzdHJhY3RDb250cm9sKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGZpZWxkLm1ldGE/LmlmKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5OiBBcnJheTx7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I6ICdlcScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogYW55XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfT4gPSBmaWVsZC5tZXRhLmlmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbnMgPSBkaXNwbGF5Lm1hcChjb25kaXRpb24gPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dFZhbHVlID0gZm9ybS52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBHZXRWYWx1ZUJ5UGF0aChpbnB1dFZhbHVlLCBjb25kaXRpb24uZmllbGQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuZmlsdGVyKGsgPT4gIWspXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICBjb25kaXRpb25zLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmaWVsZC5yZXF1aXJlZCB8fCBmaWVsZC5maWVsZD8ucmVxdWlyZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pbjogZmllbGQubWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXg6IGZpZWxkLm1heCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWluTGVuZ3RoOiBmaWVsZC5taW5MZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1heExlbmd0aDogZmllbGQubWF4TGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuOiBmaWVsZC5tZXRhPy5wYXR0ZXJuID8gbmV3IFJlZ0V4cChmaWVsZC5tZXRhLnBhdHRlcm4pOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkVHJ1ZTogZmllbGQucmVxdWlyZWRUcnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgdGhpcy5mb3JtU3ViLmFkZChzdWIpO1xuICB9XG5cbiAgb2JzZXJ2ZVRhYmxlKCkge1xuICAgIGNvbnN0IHN1YiA9IHRoaXMuY21zU2VydmljZVxuICAgICAgLnRhYmxlcyRcbiAgICAgIC5waXBlKG1hcChmID0+IGZbdGhpcy50YWJsZU5hbWVdKSwgZmlsdGVyKGYgPT4gZiAhPT0gdW5kZWZpbmVkKSkuc3Vic2NyaWJlKFxuICAgICAgICB0YWJsZSA9PiB7XG4gICAgICAgICAgdGhpcy5wYWdpbmF0aW9uID0geyAuLi50aGlzLmRlZmF1bHRQYWdpbmF0aW9uIH0gfHwgdGhpcy5wYWdpbmF0aW9uO1xuICAgICAgICAgIHRoaXMudGFibGUgPSB0YWJsZTtcbiAgICAgICAgICB0aGlzLmNvbHVtbnMgPSB0aGlzLnRhYmxlLmNvbHVtbnMubWFwKGYgPT4gbmV3IFRhYmxlQ29sdW1uPGFueT4oe1xuICAgICAgICAgICAgZmllbGQ6IGYuZmllbGQubmFtZSxcbiAgICAgICAgICAgIGRhdGFUeXBlOiBmLmhpZGRlbiA/ICdoaWRkZW4nIDooIGYuZmllbGQudHlwZSB8fCAndGV4dCcpLFxuICAgICAgICAgICAgbGFiZWw6IGYubGFiZWwxOG4gfHwgZi5maWVsZC5uYW1lLFxuICAgICAgICAgICAgaWRlbnRpZmllcjogZi5maWVsZC5pZGVudGlmaWVyLFxuICAgICAgICAgICAgdGVtcGxhdGVOYW1lOiBmLmN1c3RvbVRlbXBsYXRlLFxuICAgICAgICAgICAgb3B0aW9uczogZi5maWVsZC5vcHRpb25zLFxuICAgICAgICAgICAgZmlsdGVyaW5nS2V5czogZi5maWx0ZXJpbmdLZXlzPy5qb2luKCcsJykgfHwgZi5tZXRhPy5maWx0ZXJpbmdLZXlzPy5qb2luKCcsJyksXG4gICAgICAgICAgICBmaWx0ZXJhYmxlOiBmLmZpbHRlcmFibGUsXG4gICAgICAgICAgICBoaWRkZW46IGYuaGlkZGVuLFxuICAgICAgICAgICAgbWV0YTogZi5tZXRhLFxuICAgICAgICAgICAgc29ydGFibGU6IGYuc29ydGFibGUsXG4gICAgICAgICAgICBmcmVlemU6IGYuZnJlZXplLFxuICAgICAgICAgICAgZmlsdGVyQ29uZGl0aW9uOiBmLmZpbHRlckNvbmRpdGlvbixcbiAgICAgICAgICAgIGZpbHRlck9wdGlvbnM6IGYuZmlsdGVyT3B0aW9ucyxcbiAgICAgICAgICAgIGZpbHRlcjogZi5maWx0ZXIsXG4gICAgICAgICAgICBmaXJzdFNvcnRpbmc6IGYuZmlyc3RTb3J0aW5nLFxuICAgICAgICAgICAgd2lkdGg6IGYud2lkdGhcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgdGhpcy5zZWFyY2hGaXJlLm5leHQoe3NlYXJjaDogJycsIHBhZ2luYXRpb246IHRoaXMucGFnaW5hdGlvbn0pXG4gICAgICAgICAvLyB0aGlzLnNlYXJjaCh7c2VhcmNoOiAnJywgcGFnaW5hdGlvbjoge319KVxuICAgICAgICB9XG4gICAgICApO1xuICAgIHRoaXMudGFibGVTdWIuYWRkKHN1YilcbiAgfVxuXG4gIG9ic2VydmVFbnRpdHkoZW50aXR5TmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3Qgc3ViID0gdGhpcy5jbXNTZXJ2aWNlLmVudGl0aWVzJC5waXBlKFxuICAgICAgbWFwKGYgPT4gZltlbnRpdHlOYW1lXSksXG4gICAgICBmaWx0ZXIoZiA9PiBmICE9PSB1bmRlZmluZWQpXG4gICAgKS5zdWJzY3JpYmUoXG4gICAgICBmID0+IHtcbiAgICAgICAgdGhpcy5lbnRpdHkgPSBmXG4gICAgICB9XG4gICAgKVxuICAgIHRoaXMuZW50aXR5U3ViLmFkZChzdWIpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmKGNoYW5nZXNbJ3Nob3dGb3JtJ10pIHtcbiAgICAgIGlmKCF0aGlzLnNob3dGb3JtKSB0aGlzLnZhbHVlID0ge307XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWyd0YWJsZU5hbWUnXSkge1xuICAgICAgY29uc29sZS5sb2coJ3RhYmxlIGNoYW5nZWQnKVxuICAgICAgdGhpcy5vYnNlcnZlVGFibGUoKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2NyZWF0ZUZvcm1OYW1lJ10pIHtcbiAgICAgIHRoaXMub2JzZXJ2ZUZvcm0odGhpcy5jcmVhdGVGb3JtTmFtZSEpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1snZW50aXR5TmFtZSddKSB7XG4gICAgICB0aGlzLmZpbHRlcmluZ0RhdGEgPSB7fTtcbiAgICAgIHRoaXMuc29ydGluZ0RhdGEgPSB1bmRlZmluZWQ7XG4gICAgICBpZih0aGlzLnRhYmxlQ29tcG9uZW50KVxuICAgICAgICB0aGlzLnRhYmxlQ29tcG9uZW50LnNlYXJjaCA9ICcnXG4gICAgICB0aGlzLm9ic2VydmVFbnRpdHkodGhpcy5lbnRpdHlOYW1lISk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxuICBzZWFyY2goJGV2ZW50OiB7IHNlYXJjaDogc3RyaW5nOyBwYWdpbmF0aW9uOiBJVGFibGVQYWdpbmF0aW9uIH0pIHtcbiAgICBpZighJGV2ZW50LnBhZ2luYXRpb24/LnBhZ2VTaXplKSB7XG4gICAgICAkZXZlbnQucGFnaW5hdGlvbiA9IHRoaXMucGFnaW5hdGlvbiB8fCB7XG4gICAgICAgIHBhZ2VTaXplOiAxMCxcbiAgICAgICAgcGFnZUluZGV4OiAxXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFNlYXJjaCA9ICRldmVudC5zZWFyY2ggfHwgJyc7XG5cbiAgICB0aGlzLmZpbHRlcmluZ0RhdGEgPSB7fTtcbiAgICB0aGlzLnBhZ2luYXRpb25EYXRhID0gJGV2ZW50LnBhZ2luYXRpb247XG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5sb2FkKHRoaXMudGFibGUhLFxuICAgICAgdGhpcy5jb2x1bW5zLFxuICAgICAgJGV2ZW50LnNlYXJjaCxcbiAgICAgICRldmVudC5wYWdpbmF0aW9uLFxuICAgICAge30sXG4gICAgICB0aGlzLnNvcnRpbmdEYXRhLFxuICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YSkuc3Vic2NyaWJlKFxuICAgICAgZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGEuZGF0YTtcbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXMgPSBkYXRhLmRhdGE7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdlQ291bnQgPSBNYXRoLmNlaWwoZGF0YS5wYWdpbmF0aW9uLnRvdGFsIC8gdGhpcy5wYWdpbmF0aW9uLnBhZ2VTaXplISk7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi50b3RhbENvdW50ID0gZGF0YS5wYWdpbmF0aW9uLnRvdGFsO1xuICAgICAgICAvL3RoaXMudGFibGVDb21wb25lbnQucmVmcmVzaFRhYmxlKCk7XG4gICAgICAgIHRoaXMubGliVGFibGUucmVmcmVzaFRhYmxlKCk7XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgZmlsdGVyc0NoYW5nZWQoJGV2ZW50OiB7IGZpbHRlcjogSUZpbHRlck9wdGlvbnM8YW55PjsgcGFnaW5hdGlvbjogSVRhYmxlUGFnaW5hdGlvbiB9KSB7XG4gICAgdGhpcy5wYWdpbmF0aW9uID0geyAuLi50aGlzLmRlZmF1bHRQYWdpbmF0aW9uIH07XG4gICAgdGhpcy5maWx0ZXJpbmdEYXRhID0gJGV2ZW50LmZpbHRlcjtcbiAgICB0aGlzLmNtc1dyYXBwZXJTZXJ2aWNlLmxvYWQoXG4gICAgICB0aGlzLnRhYmxlISxcbiAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgIFwiXCIsXG4gICAgICAkZXZlbnQucGFnaW5hdGlvbixcbiAgICAgICRldmVudC5maWx0ZXIsXG4gICAgICB0aGlzLnNvcnRpbmdEYXRhLFxuICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YSkuc3Vic2NyaWJlKFxuICAgICAgZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGEuZGF0YTtcbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXMgPSBkYXRhLmRhdGE7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdlQ291bnQgPSBNYXRoLmNlaWwoZGF0YS5wYWdpbmF0aW9uLnRvdGFsIC8gdGhpcy5wYWdpbmF0aW9uLnBhZ2VTaXplISk7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi50b3RhbENvdW50ID0gZGF0YS5wYWdpbmF0aW9uLnRvdGFsO1xuICAgICAgICB0aGlzLmxpYlRhYmxlLnJlZnJlc2hUYWJsZSgpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIHNhdmUoJGV2ZW50OiBGb3JtR3JvdXApIHtcbiAgICBjb25zdCB2OiBhbnkgPSB7fTtcbiAgICBPYmplY3Qua2V5cygkZXZlbnQudmFsdWUpLmZvckVhY2goXG4gICAgICBmID0+IHtcbiAgICAgICAgdltmXSA9ICRldmVudC52YWx1ZVtmXSB8fCB1bmRlZmluZWRcbiAgICAgIH1cbiAgICApXG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5zYXZlKHRoaXMuZm9ybSEsIHYpXG4gICAgICAucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcihcbiAgICAgICAgICAoZXIpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3VibWl0RXJyb3IuZW1pdChlcik7XG4gICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcilcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICBkID0+IHtcbiAgICAgICAgdGhpcy5zZWFyY2hGaXJlLm5leHQoe3NlYXJjaDogJycsIHBhZ2luYXRpb246IHRoaXMucGFnaW5hdGlvbn0pO1xuICAgICAgICB0aGlzLnNob3dGb3JtID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2hvd0Zvcm1DaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICAgIGlmKHRoaXMuZm9ybT8ua2luZCA9PT0gRm9ybUtpbmQuQ1JFQVRFKSB0aGlzLml0ZW1DcmVhdGVkLmVtaXQoZCk7XG4gICAgICAgIGlmKHRoaXMuZm9ybT8ua2luZCA9PT0gRm9ybUtpbmQuVVBEQVRFKSB0aGlzLml0ZW1VcGRhdGVkLmVtaXQoZCk7XG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHByZXBhcmVVcGRhdGUodmFsdWU6IGFueSkge1xuICAgIHRoaXMub2JzZXJ2ZUZvcm0odGhpcy51cGRhdGVGb3JtTmFtZSEpO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLnNob3dGb3JtQ2hhbmdlLmVtaXQodHJ1ZSlcbiAgfVxuXG4gIGRlbGV0ZShyb3c6IGFueSkge1xuICAgIHRoaXMuZGVsZXRlQ2xpY2tlZC5lbWl0KHJvdylcbiAgICBpZih0aGlzLmFza0ZvckRlbGV0ZSkge1xuICAgICAgY29uc3QgY28gPSBjb25maXJtKCdTZWkgc2ljdXJvPycpO1xuICAgICAgaWYoIWNvKSByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5kZWxldGUodGhpcy5lbnRpdHksIHJvdykuc3Vic2NyaWJlKFxuICAgICAgZCA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoRmlyZS5uZXh0KHtzZWFyY2g6ICcnLCBwYWdpbmF0aW9uOiB0aGlzLnBhZ2luYXRpb259KTtcbiAgICAgICAgdGhpcy5pdGVtRGVsZXRlZC5lbWl0KGQpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIGhhbmRsZUNyZWF0ZUZvcm0oKSB7XG4gICAgdGhpcy5vYnNlcnZlRm9ybSh0aGlzLmNyZWF0ZUZvcm1OYW1lISlcbiAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkOyB0aGlzLnNob3dGb3JtQ2hhbmdlLmVtaXQodHJ1ZSlcbiAgfVxuXG4gIHNvcnRpbmdDaGFuZ2VkKCRldmVudDogU29ydGluZ0NoYW5nZWQ8YW55Pikge1xuICAgIHRoaXMuc29ydGluZ0RhdGEgPSAkZXZlbnQ7XG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5sb2FkKFxuICAgICAgdGhpcy50YWJsZSEsXG4gICAgICB0aGlzLmNvbHVtbnMsXG4gICAgICB0aGlzLnNlYXJjaElucHV0LnZhbHVlIHx8ICcnLFxuICAgICAgdGhpcy5wYWdpbmF0aW9uISxcbiAgICAgIHRoaXMuZmlsdGVyaW5nRGF0YSEsXG4gICAgICB0aGlzLnNvcnRpbmdEYXRhLFxuICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YSkuc3Vic2NyaWJlKFxuICAgICAgZGF0YSA9PiB7XG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGEuZGF0YTtcbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXMgPSBkYXRhLmRhdGE7XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgZmlyZWQoKSB7XG4gIH1cblxuICBzY3JvbGxlZFRvQm90dG9tSGFuZGxlKCkge1xuICAgIGlmKHRoaXMudmlzaWJsZUl0ZW1zLmxlbmd0aCA9PT0gdGhpcy50b3RhbEl0ZW1zIHx8ICF0aGlzLnZpcnR1YWxTY3JvbGwpIHJldHVybiA7XG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5sb2FkKHRoaXMudGFibGUhLFxuICAgICAgdGhpcy5jb2x1bW5zLFxuICAgICAgdGhpcy5jdXJyZW50U2VhcmNoISxcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy5wYWdpbmF0aW9uLFxuICAgICAgICBwYWdlSW5kZXg6ICh0aGlzLnBhZ2luYXRpb24/LnBhZ2VJbmRleCB8fCAwKSArIDFcbiAgICAgIH0sXG4gICAgICB0aGlzLmZpbHRlcmluZ0RhdGEgfHwge30sXG4gICAgICB0aGlzLnNvcnRpbmdEYXRhLFxuICAgICAgdGhpcy5hZGRpdGlvbmFsRGF0YSkuc3Vic2NyaWJlKFxuICAgICAgZGF0YSA9PiB7XG4gICAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdlSW5kZXggPSB0aGlzLnBhZ2luYXRpb24ucGFnZUluZGV4ISArIDE7XG4gICAgICAgIHRoaXMudmlzaWJsZUl0ZW1zID0gWy4uLnRoaXMudmlzaWJsZUl0ZW1zLCAuLi5kYXRhLmRhdGFdO1xuICAgICAgICAvL3RoaXMudGFibGVDb21wb25lbnQucmVmcmVzaFRhYmxlKCk7XG4gICAgICAgIHRoaXMubGliVGFibGUucmVmcmVzaFRhYmxlKCk7XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgc2Nyb2xsZWRUb1RvcEhhbmRsZSgpIHtcblxuICB9XG59XG4iLCI8bGliLWNtcy10YWJsZSBbY29sc109XCJjb2x1bW5zXCJcbiAgICAgICAgICAgICAgIFthc3luY109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgIFtzZWFyY2hJbnB1dF09XCJzZWFyY2hJbnB1dFwiXG4gICAgICAgICAgICAgICAoc2VhcmNoRmlyZWQpPVwiZmlyZWQoKTtzZWFyY2hGaXJlLm5leHQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICBbZGVmYXVsdFNlYXJjaF09XCJkZWZhdWx0U2VhcmNoXCJcbiAgICAgICAgICAgICAgIFtzaG93Um93TnVtYmVyXT1cInNob3dSb3dOdW1iZXJcIlxuICAgICAgICAgICAgICAgKHNvcnRpbmdDaGFuZ2VkKT1cInNvcnRpbmdDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgKGZpbHRlcnNDaGFuZ2VkKT1cImZpbHRlcnNDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgW2NvbnRleHRdPVwidGhpc1wiXG4gICAgICAgICAgICAgICBbZ2V0Q2xhc3NdPVwiZ2V0Q2xhc3NcIlxuICAgICAgICAgICAgICAgW3Nob3dQYWdpbmF0aW9uXT1cInNob3dQYWdpbmF0aW9uXCJcbiAgICAgICAgICAgICAgIChzY3JvbGxlZFRvQm90dG9tKT1cInNjcm9sbGVkVG9Cb3R0b21IYW5kbGUoKVwiXG4gICAgICAgICAgICAgICAoc2Nyb2xsZWRUb1RvcCk9XCJzY3JvbGxlZFRvVG9wSGFuZGxlKClcIlxuICAgICAgICAgICAgICAgW2RhdGFdPVwidmlzaWJsZUl0ZW1zXCIgI2xpYlRhYmxlPjwvbGliLWNtcy10YWJsZT5cbjxsaWItdGFibGUgW2FzeW5jXT1cInRydWVcIlxuICAgICAgICAgICAqbmdJZj1cImZhbHNlXCJcbiAgICAgICAgICAgW2RhdGFdPVwidmlzaWJsZUl0ZW1zXCJcbiAgICAgICAgICAgW2ZpbHRlcmFibGVdPVwidGFibGVGaWx0ZXJhYmxlXCJcbiAgICAgICAgICAgWyhwYWdpbmF0aW9uKV09XCJwYWdpbmF0aW9uXCJcbiAgICAgICAgICAgKHNvcnRpbmdDaGFuZ2VkKT1cInNvcnRpbmdDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAoc2VhcmNoQ2hhbmdlZCk9XCJzZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgIChmaWx0ZXJzQ2hhbmdlZCk9XCJmaWx0ZXJzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgW2NvbHNdPVwiY29sdW1uc1wiPlxuICA8bmctdGVtcGxhdGUgbGV0LXZhbHVlIGNvbHVtblRlbXBsYXRlPVwidXBkYXRlXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicHJlcGFyZVVwZGF0ZSh2YWx1ZSlcIj5cbiAgICAgIFVwZGF0ZVxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgY29sdW1uVGVtcGxhdGU9XCJkZWxldGVcIiBsZXQtdmFsdWU+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlKHZhbHVlKVwiPlxuICAgICAgZGVsZXRlXG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxidXR0b24gYWN0aW9ucyAqbmdJZj1cInRhYmxlPy5hY3Rpb25zPy5jcmVhdGVcIiAoY2xpY2spPVwiaGFuZGxlQ3JlYXRlRm9ybSgpXCI+XG4gICAgY3JlYXRlXG4gIDwvYnV0dG9uPlxuPC9saWItdGFibGU+XG48bmctdGVtcGxhdGUgI2Zvcm1UZW1wbGF0ZT5cbiAgPGpzb24tZm9ybS1idWlsZGVyLXYyICNjdXN0b21Gb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dGb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdWJtaXRDb25kaXRpb25dPVwic3VibWl0Q29uZGl0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzdWJtaXRGb3JtKT1cInNhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKGZvcm1WYWx1ZSldPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1WYWx1ZUNoYW5nZSk9XCJ0aGlzLmZvcm1WYWx1ZUNoYW5nZXMuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1Db25maWd1cmF0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3VibWl0LWNsYXNzXCJcblxuICAgICAgICAgICBbY2xhc3MuaW52YWxpZF09XCJzdWJtaXRDb25kaXRpb24gPT09ICdWQUxJRCcgJiYgIWZvcm1JdGVtPy5mb3JtR3JvdXA/LnZhbGlkXCJcbiAgICAgICAgICAgc3VibWl0VGVtcGxhdGU+XG4gICAgICAgIDxpbnB1dCAoY2xpY2spPVwic3VibWl0Q2xpY2tlZC5lbWl0KClcIiB0eXBlPVwic3VibWl0XCI+XG4gICAgICA8L2Rpdj5cbiAgPC9qc29uLWZvcm0tYnVpbGRlci12Mj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=

@@ -389,6 +389,6 @@ import * as i0 from '@angular/core';

CmsWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CmsWrapperComponent, deps: [{ token: i1$1.CmsCoreService }, { token: CmsWrapperService }, { token: __DEFAULT_INPUT_COMPONENT__, optional: true }, { token: __DEFAULT_PAGINATION__, optional: true }], target: i0.ɵɵFactoryTarget.Component });
CmsWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CmsWrapperComponent, selector: "lib-cms-wrapper", inputs: { tableName: "tableName", createFormName: "createFormName", updateFormName: "updateFormName", entityName: "entityName", showForm: "showForm", additionalData: "additionalData", askForDelete: "askForDelete", submitCondition: "submitCondition", tableFilterable: "tableFilterable", searchInput: "searchInput", pagination: "pagination", defaultSearch: "defaultSearch", showRowNumber: "showRowNumber", getClass: "getClass", showPagination: "showPagination", virtualScroll: "virtualScroll" }, outputs: { showFormChange: "showFormChange", formValueChanges: "formValueChanges", itemCreated: "itemCreated", itemUpdated: "itemUpdated", itemDeleted: "itemDeleted", submitError: "submitError", submitClicked: "submitClicked", deleteClicked: "deleteClicked", scrolledToBottom: "scrolledToBottom", scrolledToTop: "scrolledToTop" }, viewQueries: [{ propertyName: "libTable", first: true, predicate: ["libTable"], descendants: true }, { propertyName: "tableComponent", first: true, predicate: ["tableComponent"], descendants: true }, { propertyName: "formItem", first: true, predicate: ["customForm"], descendants: true }, { propertyName: "template", first: true, predicate: ["formTemplate"], descendants: true }], exportAs: ["wrapper"], usesOnChanges: true, ngImport: i0, template: "<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n (click)=\"submitClicked.emit()\"\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TableComponent, selector: "lib-table", inputs: ["data", "cols", "async", "delete", "draggable", "debounce", "lazy", "tableContainerContainer", "tableClass", "rowClickable", "tree", "treeData", "loading", "addChildrenToItem", "filterable", "pagination", "showPagination"], outputs: ["rowClicked", "sortingChanged", "filterChanged", "filtersChanged", "deleteItem", "dragEnded", "reloadData", "searchChanged", "paginationChange"], exportAs: ["jsonTable"] }, { kind: "directive", type: i4.ColumnTemplateDirectives, selector: "[columnTemplate]", inputs: ["columnTemplate"] }, { kind: "component", type: i4.CmsTableComponent, selector: "lib-cms-table", inputs: ["data", "cols", "async", "searchInput", "context", "pagination", "showPagination", "defaultSearch", "getClass", "showRowNumber"], outputs: ["searchFired", "selectionChange", "sortingChanged", "filtersChanged", "scrolledToBottom", "scrolledToTop"], exportAs: ["libTable"] }, { kind: "component", type: i1$2.JsonFormBuilderV2Component, selector: "json-form-builder-v2", inputs: ["form", "name", "formValue", "templates", "formGroup", "submitCondition"], outputs: ["formValueChange", "submitForm"] }] });
CmsWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CmsWrapperComponent, selector: "lib-cms-wrapper", inputs: { tableName: "tableName", createFormName: "createFormName", updateFormName: "updateFormName", entityName: "entityName", showForm: "showForm", additionalData: "additionalData", askForDelete: "askForDelete", submitCondition: "submitCondition", tableFilterable: "tableFilterable", searchInput: "searchInput", pagination: "pagination", defaultSearch: "defaultSearch", showRowNumber: "showRowNumber", getClass: "getClass", showPagination: "showPagination", virtualScroll: "virtualScroll" }, outputs: { showFormChange: "showFormChange", formValueChanges: "formValueChanges", itemCreated: "itemCreated", itemUpdated: "itemUpdated", itemDeleted: "itemDeleted", submitError: "submitError", submitClicked: "submitClicked", deleteClicked: "deleteClicked", scrolledToBottom: "scrolledToBottom", scrolledToTop: "scrolledToTop" }, viewQueries: [{ propertyName: "libTable", first: true, predicate: ["libTable"], descendants: true }, { propertyName: "tableComponent", first: true, predicate: ["tableComponent"], descendants: true }, { propertyName: "formItem", first: true, predicate: ["customForm"], descendants: true }, { propertyName: "template", first: true, predicate: ["formTemplate"], descendants: true }], exportAs: ["wrapper"], usesOnChanges: true, ngImport: i0, template: "<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input (click)=\"submitClicked.emit()\" type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TableComponent, selector: "lib-table", inputs: ["data", "cols", "async", "delete", "draggable", "debounce", "lazy", "tableContainerContainer", "tableClass", "rowClickable", "tree", "treeData", "loading", "addChildrenToItem", "filterable", "pagination", "showPagination"], outputs: ["rowClicked", "sortingChanged", "filterChanged", "filtersChanged", "deleteItem", "dragEnded", "reloadData", "searchChanged", "paginationChange"], exportAs: ["jsonTable"] }, { kind: "directive", type: i4.ColumnTemplateDirectives, selector: "[columnTemplate]", inputs: ["columnTemplate"] }, { kind: "component", type: i4.CmsTableComponent, selector: "lib-cms-table", inputs: ["data", "cols", "async", "searchInput", "context", "pagination", "showPagination", "defaultSearch", "getClass", "showRowNumber"], outputs: ["searchFired", "selectionChange", "sortingChanged", "filtersChanged", "scrolledToBottom", "scrolledToTop"], exportAs: ["libTable"] }, { kind: "component", type: i1$2.JsonFormBuilderV2Component, selector: "json-form-builder-v2", inputs: ["form", "name", "formValue", "templates", "formGroup", "submitCondition"], outputs: ["formValueChange", "submitForm"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CmsWrapperComponent, decorators: [{
type: Component,
args: [{ selector: 'lib-cms-wrapper', exportAs: 'wrapper', template: "<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n (click)=\"submitClicked.emit()\"\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n" }]
args: [{ selector: 'lib-cms-wrapper', exportAs: 'wrapper', template: "<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input (click)=\"submitClicked.emit()\" type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n" }]
}], ctorParameters: function () {

@@ -395,0 +395,0 @@ return [{ type: i1$1.CmsCoreService }, { type: CmsWrapperService }, { type: undefined, decorators: [{

@@ -1,1 +0,1 @@

{"version":3,"file":"odda-studio-cms-wrapper.mjs","sources":["../../../projects/cms-wrapper/src/lib/cms-wrapper.service.ts","../../../projects/cms-wrapper/src/lib/cms-wrapper.component.ts","../../../projects/cms-wrapper/src/lib/lib-cms-wrapper.html","../../../projects/cms-wrapper/src/lib/form-meta-render/form-meta-render.component.ts","../../../projects/cms-wrapper/src/lib/form-meta-render/form-meta-render.component.html","../../../projects/cms-wrapper/src/lib/custom-template.directive.ts","../../../projects/cms-wrapper/src/lib/cms-wrapper.module.ts","../../../projects/cms-wrapper/src/public-api.ts","../../../projects/cms-wrapper/src/odda-studio-cms-wrapper.ts"],"sourcesContent":["import {Inject, Injectable, Optional} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {FormMethod, IEntity, IForm, IFormField, ITable} from '@odda-studio/cms-core'\nimport {IFilterOptions, ITablePagination, SortingChanged, TableColumn} from '@odda-studio/cms-table'\nimport {\n __DEFAULT_INPUT_COMPONENT__,\n __FORM_OPTIONS_MAPPER__,\n __RESPONSE__MAPPER__,\n __SEARCH__MAPPER__,\n BaseMapper,\n BaseResponse,\n FormOptionsMapper,\n SearchMapper\n} from \"../public-api\";\nimport {Observable} from \"rxjs\";\n\n@Injectable()\nexport class CmsWrapperService {\n\n constructor(\n private httpClient: HttpClient,\n @Inject(__RESPONSE__MAPPER__) private mapper: BaseMapper<BaseResponse<any>>,\n @Inject(__SEARCH__MAPPER__) private searchMapper: SearchMapper,\n @Optional() @Inject(__FORM_OPTIONS_MAPPER__) private formOptionsMapper: FormOptionsMapper\n ) {\n }\n\n load(table: ITable, col: TableColumn<any>[],\n search: string, pagination: ITablePagination,\n filter: IFilterOptions<any>,\n sorting?: SortingChanged<any>,\n additionalData?: Record<string, any>): Observable<BaseResponse<unknown>> {\n const application = table.entity.application;\n const entity = table.entity;\n const path = application?.endpoint +'/'+ entity.endpoint;\n return this.httpClient.get(\n path,\n {\n params: this.searchMapper(search, pagination, col, filter, table.meta, sorting, additionalData)\n }\n ).pipe(this.mapper(pagination))\n }\n\n getIdentifier(form: IForm): IFormField | null {\n let result: IFormField | null = null;\n let ended = false;\n while (result === null && ended === false) {\n form.rows?.forEach(\n (f, index) => {\n f.fields.forEach(\n field => {\n if(field.identifier || field.field?.identifier)\n result = field;\n }\n );\n ended = index === form.rows?.length! - 1;\n }\n )\n }\n return result;\n }\n\n save(form: IForm, $event: any) {\n const application = form.entity?.application;\n const entity = form.entity!;\n const path = application?.endpoint +'/'+ (form.action || entity.endpoint);\n const options = this.formOptionsMapper ? this.formOptionsMapper(form, $event) : undefined;\n if(form.method === FormMethod.POST)\n return this.httpClient.post(path, $event, options);\n if(form.method === FormMethod.PUT) {\n const identifier = this.getIdentifier(form);\n if(!identifier) throw '';\n return this.httpClient.put(path + '/' + $event[identifier.name], $event, this.formOptionsMapper ? this.formOptionsMapper(form, $event) : undefined);\n }\n if(form.method === FormMethod.PATCH) {\n const identifier = this.getIdentifier(form);\n if(!identifier) throw 'no identitifier';\n return this.httpClient.patch(path + '/' + $event[identifier.name], $event, this.formOptionsMapper ? this.formOptionsMapper(form, $event) : undefined);\n }\n throw 'method not found'\n }\n\n delete(entity: IEntity, item: any) {\n const application = entity?.application;\n const path = application?.endpoint +'/'+ entity.endpoint;\n return this.httpClient.delete(path + '/' + item['id']);\n }\n}\n\n","import {\n AfterContentInit,\n Component,\n EventEmitter, Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit, Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport {CmsCoreService, FormKind, IEntity, IForm, ITable} from '@odda-studio/cms-core'\nimport {\n CmsTableComponent,\n IFilterOptions,\n ITablePagination,\n SortingChanged,\n TableColumn,\n TableComponent\n} from \"@odda-studio/cms-table\";\nimport {CmsWrapperService} from \"./cms-wrapper.service\";\nimport { catchError, debounceTime, filter, map, Observable, Subject, Subscription, throwError } from \"rxjs\";\nimport {FormCol, FormConfiguration, JsonFormBuilderV2Component} from '@odda-studio/cms-form';\nimport { AbstractControl, FormControl, FormGroup } from \"@angular/forms\";\nimport {__DEFAULT_INPUT_COMPONENT__, __DEFAULT_PAGINATION__} from \"../public-api\";\n\nexport function GetValueByPath<T>(object: any, path: string): T {\n if (path == null) { return object; }\n // tslint:disable-next-line:variable-name only-arrow-functions\n const _path = path.replace(/\\[(\\w+)\\]/g, '.$1').split('.').filter(f => f !== '');\n let res = object;\n for (const k of _path) {\n if (!res) {\n return res;\n }\n\n res = res[k];\n }\n return res;\n}\n\n@Component({\n selector: 'lib-cms-wrapper',\n templateUrl: 'lib-cms-wrapper.html',\n styles: [],\n exportAs: 'wrapper'\n})\nexport class CmsWrapperComponent implements OnInit, OnChanges, AfterContentInit, OnDestroy {\n @Input() tableName!: string;\n @Input() createFormName?: string;\n @Input() updateFormName?: string;\n @Input() entityName!: string;\n @ViewChild('libTable') libTable!: CmsTableComponent;\n @ViewChild('tableComponent') tableComponent!: TableComponent;\n @ViewChild('customForm') formItem!: JsonFormBuilderV2Component;\n @ViewChild('formTemplate') template!: TemplateRef<any>;\n @Input() showForm: boolean = false;\n @Output() showFormChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() formValueChanges: EventEmitter<any> = new EventEmitter<any>();\n @Input() additionalData: Record<string, any> = {};\n @Output() itemCreated: EventEmitter<any> = new EventEmitter();\n @Output() itemUpdated: EventEmitter<any> = new EventEmitter();\n @Output() itemDeleted: EventEmitter<any> = new EventEmitter();\n @Output() submitError: EventEmitter<any> = new EventEmitter();\n @Output() submitClicked: EventEmitter<any> = new EventEmitter();\n @Output() deleteClicked: EventEmitter<any> = new EventEmitter();\n @Input() askForDelete: boolean = true;\n @Input() submitCondition: 'ALWAYS' | 'VALID' | 'NEVER' = 'ALWAYS';\n @Input() tableFilterable: boolean = true;\n @Input() searchInput: FormControl = new FormControl<string>('');\n\n searchFire: Subject<{ search: string; pagination: ITablePagination }> = new Subject<{search: string; pagination: ITablePagination}>()\n searchFire$: Observable<{ search: string; pagination: ITablePagination }> = this.searchFire\n .asObservable()\n .pipe(\n debounceTime(1)\n );\n columns: TableColumn<any>[] = [];\n data: any[] = [];\n visibleItems: any[] = [];\n table: ITable | undefined;\n form: IForm | undefined;\n\n formSub: Subscription = new Subscription();\n tableSub: Subscription = new Subscription();\n entitySub: Subscription = new Subscription();\n formConfiguration: FormConfiguration<any> = {\n rows: [],\n title: ''\n };\n @Input() pagination: ITablePagination = {\n pageIndex: 1,\n pageSize: 10\n };\n value: any = {};\n private entity!: IEntity;\n private paginationData?: ITablePagination;\n private sortingData?: SortingChanged<any>;\n private filteringData?: IFilterOptions<any>;\n currentSearch: string | undefined;\n @Input() defaultSearch: boolean = true;\n @Input() showRowNumber: boolean = true;\n @Input() getClass: (row: any) => string = (row) => '';\n @Input() showPagination: boolean = true;\n @Output() scrolledToBottom: EventEmitter<any> = new EventEmitter();\n @Output() scrolledToTop: EventEmitter<any> = new EventEmitter();\n @Input() virtualScroll: boolean = false;\n\n get totalItems() {\n return this.pagination?.totalCount || 0\n }\n constructor(private cmsService: CmsCoreService,\n private cmsWrapperService: CmsWrapperService,\n @Optional() @Inject(__DEFAULT_INPUT_COMPONENT__) private defaultInput: any,\n @Optional() @Inject(__DEFAULT_PAGINATION__) public defaultPagination: ITablePagination) {\n this.pagination = { ...defaultPagination } || this.pagination;\n cmsService.load();\n this.searchFire$.subscribe(\n d => {\n this.pagination = { ...(defaultPagination || this.pagination) };\n this.search(d);\n }\n )\n }\n\n ngOnDestroy(): void {\n if(!this.entitySub.closed)\n this.entitySub.unsubscribe();\n if(!this.formSub.closed)\n this.formSub.unsubscribe();\n if(!this.tableSub.closed)\n this.tableSub.unsubscribe();\n }\n\n observeForm(formName: string) {\n const sub = this.cmsService\n .forms$\n .pipe(map(f => f[formName]), filter(f => f !== undefined)).subscribe(\n form => {\n this.form = form\n this.formConfiguration = {\n title: form.name,\n rows: (form.rows || []).map(\n f => {\n return {\n title: '',\n rowClass: f.class,\n columns: f.fields.map(\n field => {\n let type = field.type || field.field?.type || (this.defaultInput ? 'default' : 'text');\n if (field.relation && !field.type) {\n type = '__auto_complete__'\n }\n return new FormCol({\n name: field.name,\n label: field.label18n || field.name || field.field?.name,\n type: type,\n dataSet: field,\n inputClass: field.class,\n\n visible: (form: AbstractControl, input: AbstractControl) => {\n if(field.meta?.if){\n const display: Array<{\n field: string,\n operator: 'eq',\n value: any\n }> = field.meta.if;\n const conditions = display.map(condition => {\n const inputValue = form.value;\n const value = GetValueByPath(inputValue, condition.field)\n return value === condition.value;\n }\n ).filter(k => !k)\n return conditions.length === 0;\n }\n return true;\n },\n validators: {\n required: field.required || field.field?.required,\n min: field.min,\n max: field.max,\n minLength: field.minLength,\n maxLength: field.maxLength,\n pattern: field.meta?.pattern ? new RegExp(field.meta.pattern): undefined,\n requiredTrue: field.requiredTrue\n }\n });\n\n }\n )\n }\n }\n )\n };\n }\n );\n this.formSub.add(sub);\n }\n\n observeTable() {\n const sub = this.cmsService\n .tables$\n .pipe(map(f => f[this.tableName]), filter(f => f !== undefined)).subscribe(\n table => {\n this.pagination = { ...this.defaultPagination } || this.pagination;\n this.table = table;\n this.columns = this.table.columns.map(f => new TableColumn<any>({\n field: f.field.name,\n dataType: f.hidden ? 'hidden' :( f.field.type || 'text'),\n label: f.label18n || f.field.name,\n identifier: f.field.identifier,\n templateName: f.customTemplate,\n options: f.field.options,\n filteringKeys: f.filteringKeys?.join(',') || f.meta?.filteringKeys?.join(','),\n filterable: f.filterable,\n hidden: f.hidden,\n meta: f.meta,\n sortable: f.sortable,\n freeze: f.freeze,\n filterCondition: f.filterCondition,\n filterOptions: f.filterOptions,\n filter: f.filter,\n firstSorting: f.firstSorting,\n width: f.width\n }));\n this.searchFire.next({search: '', pagination: this.pagination})\n // this.search({search: '', pagination: {}})\n }\n );\n this.tableSub.add(sub)\n }\n\n observeEntity(entityName: string) {\n const sub = this.cmsService.entities$.pipe(\n map(f => f[entityName]),\n filter(f => f !== undefined)\n ).subscribe(\n f => {\n this.entity = f\n }\n )\n this.entitySub.add(sub);\n }\n\n ngAfterContentInit(): void {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(changes['showForm']) {\n if(!this.showForm) this.value = {};\n }\n if (changes['tableName']) {\n console.log('table changed')\n this.observeTable();\n }\n if (changes['createFormName']) {\n this.observeForm(this.createFormName!);\n }\n if (changes['entityName']) {\n this.filteringData = {};\n this.sortingData = undefined;\n if(this.tableComponent)\n this.tableComponent.search = ''\n this.observeEntity(this.entityName!);\n }\n }\n\n ngOnInit(): void {\n }\n\n search($event: { search: string; pagination: ITablePagination }) {\n if(!$event.pagination?.pageSize) {\n $event.pagination = this.pagination || {\n pageSize: 10,\n pageIndex: 1\n }\n }\n this.currentSearch = $event.search || '';\n\n this.filteringData = {};\n this.paginationData = $event.pagination;\n this.cmsWrapperService.load(this.table!,\n this.columns,\n $event.search,\n $event.pagination,\n {},\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.data = data.data;\n this.visibleItems = data.data;\n this.pagination.pageCount = Math.ceil(data.pagination.total / this.pagination.pageSize!);\n this.pagination.totalCount = data.pagination.total;\n //this.tableComponent.refreshTable();\n this.libTable.refreshTable();\n }\n )\n }\n\n filtersChanged($event: { filter: IFilterOptions<any>; pagination: ITablePagination }) {\n this.pagination = { ...this.defaultPagination };\n this.filteringData = $event.filter;\n this.cmsWrapperService.load(\n this.table!,\n this.columns,\n \"\",\n $event.pagination,\n $event.filter,\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.data = data.data;\n this.visibleItems = data.data;\n this.pagination.pageCount = Math.ceil(data.pagination.total / this.pagination.pageSize!);\n this.pagination.totalCount = data.pagination.total;\n this.libTable.refreshTable();\n }\n )\n }\n\n save($event: FormGroup) {\n const v: any = {};\n Object.keys($event.value).forEach(\n f => {\n v[f] = $event.value[f] || undefined\n }\n )\n this.cmsWrapperService.save(this.form!, v)\n .pipe(\n catchError(\n (er) => {\n this.submitError.emit(er);\n return throwError(() => er)\n }\n )\n )\n .subscribe(\n d => {\n this.searchFire.next({search: '', pagination: this.pagination});\n this.showForm = false;\n this.showFormChange.emit(false);\n if(this.form?.kind === FormKind.CREATE) this.itemCreated.emit(d);\n if(this.form?.kind === FormKind.UPDATE) this.itemUpdated.emit(d);\n }\n );\n }\n\n prepareUpdate(value: any) {\n this.observeForm(this.updateFormName!);\n this.value = value;\n this.showFormChange.emit(true)\n }\n\n delete(row: any) {\n this.deleteClicked.emit(row)\n if(this.askForDelete) {\n const co = confirm('Sei sicuro?');\n if(!co) return;\n }\n\n this.cmsWrapperService.delete(this.entity, row).subscribe(\n d => {\n this.searchFire.next({search: '', pagination: this.pagination});\n this.itemDeleted.emit(d);\n }\n )\n }\n\n handleCreateForm() {\n this.observeForm(this.createFormName!)\n this.value = undefined; this.showFormChange.emit(true)\n }\n\n sortingChanged($event: SortingChanged<any>) {\n this.sortingData = $event;\n this.cmsWrapperService.load(\n this.table!,\n this.columns,\n this.searchInput.value || '',\n this.pagination!,\n this.filteringData!,\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.data = data.data;\n this.visibleItems = data.data;\n }\n )\n }\n\n fired() {\n }\n\n scrolledToBottomHandle() {\n if(this.visibleItems.length === this.totalItems || !this.virtualScroll) return ;\n this.cmsWrapperService.load(this.table!,\n this.columns,\n this.currentSearch!,\n {\n ...this.pagination,\n pageIndex: (this.pagination?.pageIndex || 0) + 1\n },\n this.filteringData || {},\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.pagination.pageIndex = this.pagination.pageIndex! + 1;\n this.visibleItems = [...this.visibleItems, ...data.data];\n //this.tableComponent.refreshTable();\n this.libTable.refreshTable();\n }\n )\n }\n\n scrolledToTopHandle() {\n\n }\n}\n","<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n (click)=\"submitClicked.emit()\"\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, EventEmitter, Input,\n OnChanges,\n OnInit, Output,\n SimpleChanges\n} from \"@angular/core\";\nimport {FormConfiguration} from '@odda-studio/cms-form'\nimport {IForm} from '@odda-studio/cms-core'\nimport {FormGroup} from \"@angular/forms\";\n\n@Component({\n selector: 'cms-form-meta-render',\n templateUrl: 'form-meta-render.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormMetaRenderComponent implements OnInit, OnChanges {\n\n @Input() formConfiguration: FormConfiguration<any> = {\n rows: [],\n title: ''\n };\n @Input() form!: IForm;\n @Output() save: EventEmitter<any> = new EventEmitter<any>();\n\n constructor(private changeDetector: ChangeDetectorRef) {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(changes['formConfiguration']) {\n this.changeDetector.detectChanges();\n }\n }\n\n ngOnInit(): void {\n }\n\n // save($event: FormGroup) {\n // // this.cmsWrapperService.save(this.form!, $event.value).subscribe(\n // // d => {\n // // //this.search({search: '', pagination: this.pagination})\n // // }\n // // );\n // }\n}\n","<app-json-form-builder submitCondition=\"ALWAYS\"\n (submitForm)=\"save.emit($event)\"\n [form]=\"formConfiguration\">\n\n <ng-template [inputTemplate]=\"'enum'\">\n test\n </ng-template>\n <div submitTemplate>\n <button type=\"submit\">\n salva\n </button>\n </div>\n\n\n</app-json-form-builder>\n","import {Directive, Input, TemplateRef} from \"@angular/core\";\n\n@Directive({\n selector: '[customTemplate]'\n})\nexport class CustomTemplateDirective {\n @Input() customTemplate: string = '';\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CmsWrapperComponent} from './cms-wrapper.component';\nimport {HttpContext, HttpHeaders, HttpParams} from \"@angular/common/http\";\nimport {CommonModule} from \"@angular/common\";\nimport {\n IFilterOptions,\n Col,\n CmsTableModule,\n ITablePagination,\n __TABLE_CONFIGURATION__, SortingChanged\n} from '@odda-studio/cms-table';\nimport {FormsModule} from \"@angular/forms\";\nimport {\n JsonFormModule,\n __BASE_INPUT_CLASS__,\n __BASE_ROW_CLASS__,\n CmsFormModule\n} from \"@odda-studio/cms-form\";\n\nimport {AutocompleteModule, AutocompleteComponent, JsonRendererComponent} from '@odda-studio/cms-ui';\n\nimport {FormMetaRenderComponent} from \"./form-meta-render/form-meta-render.component\";\nimport {Observable} from \"rxjs\";\nimport {CustomTemplateDirective} from \"./custom-template.directive\";\nimport {\n __DEFAULT_INPUT_COMPONENT__, __DEFAULT_PAGINATION__,\n __FILTER__MAPPER__, __FORM_OPTIONS_MAPPER__, __NEW_ITEM_RESPONSE__MAPPER__,\n __RESPONSE__MAPPER__,\n __SEARCH__MAPPER__,\n CmsWrapperService, WrapperModuleConfiguration\n} from \"../public-api\";\nimport {\n CmsCoreModule,\n __PATH__,\n IForm\n} from '@odda-studio/cms-core'\n\nexport type FilterMapper = (filters: IFilterOptions<any>, pagination: ITablePagination, q?: { [key: string]: string }) => HttpParams\nexport type SearchMapper = (search: string, pagination: ITablePagination, columns: Col<any>[], filters: IFilterOptions<any>, meta?: { [key: string]: string }, sorting?: SortingChanged<any>, additionalData?: Record<string, any>) => HttpParams\nexport type FormOptionsMapper = (form: IForm, value: any) => {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?: HttpParams | {\n [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n}\n\nexport type BaseResponse<T> = {\n data: T[];\n pagination: {\n start: number;\n limit: number;\n total: number;\n }\n}\nexport type BaseMapper<T> = <T>(pagination: ITablePagination) => (source: Observable<T>) => Observable<BaseResponse<T>> | any;\nexport type NewItemResponseMapper<T, TRES> = <T, TRES>(source: Observable<TRES>) => Observable<BaseResponse<TRES> | TRES>;\n\n@NgModule({\n declarations: [\n CmsWrapperComponent,\n FormMetaRenderComponent,\n CustomTemplateDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n CmsCoreModule,\n CmsTableModule,\n CmsFormModule,\n JsonFormModule.forRoot({\n defaultInputClass: 'base-input',\n components: {\n '__auto_complete__': AutocompleteComponent,\n 'json': JsonRendererComponent\n }\n }),\n AutocompleteModule\n ],\n exports: [\n CmsWrapperComponent,\n CustomTemplateDirective\n ],\n providers: [\n CmsWrapperService\n ]\n})\nexport class CmsWrapperModule {\n\n public static forRoot<T, TRES>(config: WrapperModuleConfiguration<T, TRES>): ModuleWithProviders<CmsWrapperModule> {\n return {\n ngModule: CmsWrapperModule,\n providers: [\n {\n provide: __SEARCH__MAPPER__,\n useValue: config.searchMapper\n },\n {\n provide: __FORM_OPTIONS_MAPPER__,\n useValue: config.formRequestOptionsMapper\n },\n {\n provide: __FILTER__MAPPER__,\n useValue: config.queryParamsMapper\n },\n {\n provide: __RESPONSE__MAPPER__,\n useValue: config.responseMapper\n },\n {\n provide: __NEW_ITEM_RESPONSE__MAPPER__,\n useValue: config.newItemResponseMapper\n },\n {\n provide: __BASE_INPUT_CLASS__,\n useValue: config.formConfiguration?.defaultInputClass\n },\n {\n provide: __BASE_ROW_CLASS__,\n useValue: config.formConfiguration?.defaultRowClass\n },\n {\n provide: __TABLE_CONFIGURATION__,\n useValue: config.tableConfiguration\n },\n {\n provide: __PATH__,\n useValue: config.serverPath\n },\n {\n provide: __DEFAULT_INPUT_COMPONENT__,\n useValue: config.formConfiguration?.defaultComponent\n },\n {\n provide: __DEFAULT_PAGINATION__,\n useValue: config.tableConfiguration?.defaultPagination\n }\n ]\n }\n }\n}\n","/*\n * Public API Surface of cms-wrapper\n */\n\nimport {InjectionToken} from \"@angular/core\";\nimport {FormModuleConfiguration} from \"@odda-studio/cms-form\";\nimport {TableModuleConfiguration} from \"@odda-studio/cms-table\";\nimport {\n BaseMapper,\n FilterMapper,\n FormOptionsMapper,\n NewItemResponseMapper,\n SearchMapper\n} from \"./lib/cms-wrapper.module\";\n\nexport * from './lib/cms-wrapper.service';\nexport * from './lib/cms-wrapper.component';\nexport * from './lib/cms-wrapper.module';\nexport * from './lib/custom-template.directive';\n\nexport interface WrapperModuleConfiguration<T, TRES> {\n serverPath?: string,\n formConfiguration?: FormModuleConfiguration,\n tableConfiguration?: TableModuleConfiguration,\n queryParamsMapper?: FilterMapper,\n searchMapper?: SearchMapper,\n responseMapper?: BaseMapper<TRES> | any,\n formRequestOptionsMapper?: FormOptionsMapper;\n newItemResponseMapper?: NewItemResponseMapper<T, TRES>\n}\n\nexport const __SEARCH__MAPPER__ = new InjectionToken('__SEARCH__MAPPER__');\nexport const __FORM_OPTIONS_MAPPER__ = new InjectionToken('__FORM_OPTIONS_MAPPER__');\nexport const __FILTER__MAPPER__ = new InjectionToken('__FILTER__MAPPER__');\nexport const __RESPONSE__MAPPER__ = new InjectionToken('__RESPONSE__MAPPER__');\nexport const __NEW_ITEM_RESPONSE__MAPPER__ = new InjectionToken('__NEW_ITEM_RESPONSE__MAPPER__');\nexport const __DEFAULT_INPUT_COMPONENT__ = new InjectionToken('__DEFAULT_INPUT_COMPONENT__');\nexport const __DEFAULT_PAGINATION__ = new InjectionToken('__DEFAULT_PAGINATION__');\n\nexport const TEST = new InjectionToken('TEST');\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.CmsWrapperService","i5"],"mappings":";;;;;;;;;;;;;;;MAiBa,iBAAiB,CAAA;AAE5B,IAAA,WAAA,CACU,UAAsB,EACQ,MAAqC,EACvC,YAA0B,EACT,iBAAoC,EAAA;AAHjF,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AACQ,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAA+B;AACvC,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AACT,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KAE1F;AAED,IAAA,IAAI,CAAC,KAAa,EAAE,GAAuB,EACtC,MAAc,EAAE,UAA4B,EAC5C,MAA2B,EAC3B,OAA6B,EAC7B,cAAoC,EAAA;AACvC,QAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;AAC7C,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;AAC5B,QAAA,MAAM,IAAI,GAAG,CAAA,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,QAAQ,IAAE,GAAG,GAAE,MAAM,CAAC,QAAQ,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,IAAI,EACJ;YACE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC;SAChG,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;KAChC;AAED,IAAA,aAAa,CAAC,IAAW,EAAA;;QACvB,IAAI,MAAM,GAAsB,IAAI,CAAC;QACrC,IAAI,KAAK,GAAG,KAAK,CAAC;AAClB,QAAA,OAAO,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,EAAE;YACzC,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAChB,CAAC,CAAC,EAAE,KAAK,KAAI;;AACX,gBAAA,CAAC,CAAC,MAAM,CAAC,OAAO,CACd,KAAK,IAAG;;oBACN,IAAG,KAAK,CAAC,UAAU,KAAI,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,CAAA;wBAC5C,MAAM,GAAG,KAAK,CAAC;AACnB,iBAAC,CACF,CAAC;AACF,gBAAA,KAAK,GAAG,KAAK,KAAK,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAO,IAAG,CAAC,CAAC;AAC3C,aAAC,CACF,CAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;IAED,IAAI,CAAC,IAAW,EAAE,MAAW,EAAA;;QAC3B,MAAM,WAAW,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,CAAC;AAC7C,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAO,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAA,WAAW,aAAX,WAAW,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAX,WAAW,CAAE,QAAQ,IAAE,GAAG,IAAG,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;AAC1F,QAAA,IAAG,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,IAAI;AAChC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACrD,QAAA,IAAG,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,GAAG,EAAE;YACjC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC5C,YAAA,IAAG,CAAC,UAAU;AAAE,gBAAA,MAAM,EAAE,CAAC;AACzB,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;AACrJ,SAAA;AACD,QAAA,IAAG,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,KAAK,EAAE;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC5C,YAAA,IAAG,CAAC,UAAU;AAAE,gBAAA,MAAM,iBAAiB,CAAC;AACxC,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;AACvJ,SAAA;AACD,QAAA,MAAM,kBAAkB,CAAA;KACzB;IAED,MAAM,CAAC,MAAe,EAAE,IAAS,EAAA;QAC/B,MAAM,WAAW,GAAG,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,WAAW,CAAC;AACxC,QAAA,MAAM,IAAI,GAAG,CAAA,WAAW,KAAA,IAAA,IAAX,WAAW,KAAX,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,WAAW,CAAE,QAAQ,IAAE,GAAG,GAAE,MAAM,CAAC,QAAQ,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACxD;;AArEU,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAIlB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,oBAAoB,EACpB,EAAA,EAAA,KAAA,EAAA,kBAAkB,aACN,uBAAuB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHANlC,iBAAiB,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;8BAKN,MAAM;+BAAC,oBAAoB,CAAA;;8BAC3B,MAAM;+BAAC,kBAAkB,CAAA;;8BACzB,QAAQ;;8BAAI,MAAM;+BAAC,uBAAuB,CAAA;;;;ACK/B,SAAA,cAAc,CAAI,MAAW,EAAE,IAAY,EAAA;IACzD,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,QAAA,OAAO,MAAM,CAAC;AAAE,KAAA;;IAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACjF,IAAI,GAAG,GAAG,MAAM,CAAC;AACjB,IAAA,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;QACrB,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,OAAO,GAAG,CAAC;AACZ,SAAA;AAED,QAAA,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACd,KAAA;AACD,IAAA,OAAO,GAAG,CAAC;AACb,CAAC;MAQY,mBAAmB,CAAA;AA6D9B,IAAA,IAAI,UAAU,GAAA;;QACZ,OAAO,CAAA,MAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,UAAU,KAAI,CAAC,CAAA;KACxC;AACD,IAAA,WAAA,CAAoB,UAA0B,EAC1B,iBAAoC,EACa,YAAiB,EACvB,iBAAmC,EAAA;AAH9E,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAgB;AAC1B,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AACa,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAK;AACvB,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;AA1DzF,QAAA,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AACzB,QAAA,IAAA,CAAA,cAAc,GAA0B,IAAI,YAAY,EAAW,CAAC;AACpE,QAAA,IAAA,CAAA,gBAAgB,GAAsB,IAAI,YAAY,EAAO,CAAC;AAC/D,QAAA,IAAc,CAAA,cAAA,GAAwB,EAAE,CAAC;AACxC,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;AACtD,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;AAC7B,QAAA,IAAe,CAAA,eAAA,GAAiC,QAAQ,CAAC;AACzD,QAAA,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;QAChC,IAAA,CAAA,WAAW,GAAgB,IAAI,WAAW,CAAS,EAAE,CAAC,CAAC;AAEhE,QAAA,IAAA,CAAA,UAAU,GAA8D,IAAI,OAAO,EAAkD,CAAA;AACrI,QAAA,IAAW,CAAA,WAAA,GAAiE,IAAI,CAAC,UAAU;AACxF,aAAA,YAAY,EAAE;AACd,aAAA,IAAI,CACL,YAAY,CAAC,CAAC,CAAC,CAChB,CAAC;AACF,QAAA,IAAO,CAAA,OAAA,GAAuB,EAAE,CAAC;AACjC,QAAA,IAAI,CAAA,IAAA,GAAU,EAAE,CAAC;AACjB,QAAA,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;AAIzB,QAAA,IAAA,CAAA,OAAO,GAAiB,IAAI,YAAY,EAAE,CAAC;AAC3C,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAI,YAAY,EAAE,CAAC;AAC5C,QAAA,IAAA,CAAA,SAAS,GAAiB,IAAI,YAAY,EAAE,CAAC;QAC7C,IAAA,CAAA,iBAAiB,GAA2B;AAC1C,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,KAAK,EAAE,EAAE;SACV,CAAC;QACO,IAAA,CAAA,UAAU,GAAqB;AACtC,YAAA,SAAS,EAAE,CAAC;AACZ,YAAA,QAAQ,EAAE,EAAE;SACb,CAAC;AACF,QAAA,IAAK,CAAA,KAAA,GAAQ,EAAE,CAAC;AAMP,QAAA,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;AAC9B,QAAA,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;QAC9B,IAAA,CAAA,QAAQ,GAAyB,CAAC,GAAG,KAAK,EAAE,CAAC;AAC7C,QAAA,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;AAC9B,QAAA,IAAA,CAAA,gBAAgB,GAAsB,IAAI,YAAY,EAAE,CAAC;AACzD,QAAA,IAAA,CAAA,aAAa,GAAsB,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAStC,IAAI,CAAC,UAAU,GAAG,MAAA,CAAA,MAAA,CAAA,EAAA,EAAK,iBAAiB,CAAM,IAAA,IAAI,CAAC,UAAU,CAAC;QAC9D,UAAU,CAAC,IAAI,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,WAAW,CAAC,SAAS,CACxB,CAAC,IAAG;YACF,IAAI,CAAC,UAAU,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,GAAS,iBAAiB,IAAI,IAAI,CAAC,UAAU,EAAG,CAAC;AAChE,YAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjB,SAAC,CACF,CAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM;AACvB,YAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;AAC/B,QAAA,IAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;AACrB,YAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC7B,QAAA,IAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM;AACtB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC/B;AAED,IAAA,WAAW,CAAC,QAAgB,EAAA;AAC1B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU;aACxB,MAAM;AACN,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAClE,IAAI,IAAG;AACL,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAChB,IAAI,CAAC,iBAAiB,GAAG;gBACvB,KAAK,EAAE,IAAI,CAAC,IAAI;AAChB,gBAAA,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,GAAG,CACzB,CAAC,IAAG;oBACF,OAAO;AACL,wBAAA,KAAK,EAAE,EAAE;wBACT,QAAQ,EAAE,CAAC,CAAC,KAAK;wBACjB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CACnB,KAAK,IAAG;;4BACN,IAAI,IAAI,GAAI,KAAK,CAAC,IAAI,KAAI,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAA,KAAK,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,CAAC;4BACxF,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gCACjC,IAAI,GAAG,mBAAmB,CAAA;AAC3B,6BAAA;4BACD,OAAO,IAAI,OAAO,CAAC;gCACjB,IAAI,EAAE,KAAK,CAAC,IAAI;AAChB,gCAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAI,MAAA,KAAK,CAAC,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAA;AACxD,gCAAA,IAAI,EAAE,IAAI;AACV,gCAAA,OAAO,EAAE,KAAK;gCACd,UAAU,EAAE,KAAK,CAAC,KAAK;AAEvB,gCAAA,OAAO,EAAE,CAAC,IAAqB,EAAE,KAAsB,KAAI;;AACzD,oCAAA,IAAG,MAAA,KAAK,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,EAAE,EAAC;AAChB,wCAAA,MAAM,OAAO,GAIR,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wCACnB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAG;AACvC,4CAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;4CAC9B,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAA;AACzD,4CAAA,OAAO,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC;yCAClC,CACF,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,wCAAA,OAAQ,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC;AACjC,qCAAA;AACD,oCAAA,OAAQ,IAAI,CAAC;iCACZ;AACH,gCAAA,UAAU,EAAE;oCACV,QAAQ,EAAE,KAAK,CAAC,QAAQ,KAAI,CAAA,EAAA,GAAA,KAAK,CAAC,KAAK,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,CAAA;oCACjD,GAAG,EAAE,KAAK,CAAC,GAAG;oCACd,GAAG,EAAE,KAAK,CAAC,GAAG;oCACd,SAAS,EAAE,KAAK,CAAC,SAAS;oCAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;oCAC1B,OAAO,EAAE,CAAA,CAAA,EAAA,GAAA,KAAK,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,IAAG,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAE,SAAS;oCACxE,YAAY,EAAE,KAAK,CAAC,YAAY;AACjC,iCAAA;AACF,6BAAA,CAAC,CAAC;AAEL,yBAAC,CACF;qBACF,CAAA;AACH,iBAAC,CACF;aACF,CAAC;AACJ,SAAC,CACF,CAAC;AACJ,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACvB;IAED,YAAY,GAAA;AACV,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU;aACxB,OAAO;AACP,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CACxE,KAAK,IAAG;YACN,IAAI,CAAC,UAAU,GAAG,MAAK,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,iBAAiB,CAAM,IAAA,IAAI,CAAC,UAAU,CAAC;AACnE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAG;;gBAAC,OAAA,IAAI,WAAW,CAAM;AAC9D,oBAAA,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI;AACnB,oBAAA,QAAQ,EAAE,CAAC,CAAC,MAAM,GAAG,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC;oBACxD,KAAK,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI;AACjC,oBAAA,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;oBAC9B,YAAY,EAAE,CAAC,CAAC,cAAc;AAC9B,oBAAA,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;oBACxB,aAAa,EAAE,CAAA,CAAA,EAAA,GAAA,CAAC,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC,GAAG,CAAC,MAAI,MAAA,CAAA,EAAA,GAAA,CAAC,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,aAAa,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAA;oBAC7E,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,eAAe,EAAE,CAAC,CAAC,eAAe;oBAClC,aAAa,EAAE,CAAC,CAAC,aAAa;oBAC9B,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,KAAK,EAAE,CAAC,CAAC,KAAK;AACf,iBAAA,CAAC,CAAA;AAAA,aAAA,CAAC,CAAC;AACJ,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAC,CAAC,CAAA;;AAEjE,SAAC,CACF,CAAC;AACJ,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;KACvB;AAED,IAAA,aAAa,CAAC,UAAkB,EAAA;AAC9B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CACxC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,EACvB,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAC7B,CAAC,SAAS,CACT,CAAC,IAAG;AACF,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;AACjB,SAAC,CACF,CAAA;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;KACzB;IAED,kBAAkB,GAAA;KACjB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAG,OAAO,CAAC,UAAU,CAAC,EAAE;YACtB,IAAG,CAAC,IAAI,CAAC,QAAQ;AAAE,gBAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AACpC,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;AACxB,YAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;YAC5B,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,gBAAgB,CAAC,EAAE;AAC7B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAe,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,IAAI,OAAO,CAAC,YAAY,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,YAAA,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC7B,IAAG,IAAI,CAAC,cAAc;AACpB,gBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAA;AACjC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;AACtC,SAAA;KACF;IAED,QAAQ,GAAA;KACP;AAED,IAAA,MAAM,CAAC,MAAwD,EAAA;;QAC7D,IAAG,EAAC,CAAA,EAAA,GAAA,MAAM,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAA,EAAE;AAC/B,YAAA,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI;AACrC,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,SAAS,EAAE,CAAC;aACb,CAAA;AACF,SAAA;QACD,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;AAEzC,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC;AACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAM,EACrC,IAAI,CAAC,OAAO,EACZ,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,UAAU,EACjB,EAAE,EACF,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAC9B,IAAI,IAAG;AACL,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAS,CAAC,CAAC;YACzF,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;;AAEnD,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;AAC/B,SAAC,CACF,CAAA;KACF;AAED,IAAA,cAAc,CAAC,MAAqE,EAAA;AAClF,QAAA,IAAI,CAAC,UAAU,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,IAAI,CAAC,iBAAiB,CAAE,CAAC;AAChD,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;AACnC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,KAAM,EACX,IAAI,CAAC,OAAO,EACZ,EAAE,EACF,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,MAAM,EACb,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAC9B,IAAI,IAAG;AACL,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,QAAS,CAAC,CAAC;YACzF,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACnD,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;AAC/B,SAAC,CACF,CAAA;KACF;AAED,IAAA,IAAI,CAAC,MAAiB,EAAA;QACpB,MAAM,CAAC,GAAQ,EAAE,CAAC;AAClB,QAAA,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAC/B,CAAC,IAAG;AACF,YAAA,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAA;AACrC,SAAC,CACF,CAAA;QACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAK,EAAE,CAAC,CAAC;AACvC,aAAA,IAAI,CACH,UAAU,CACR,CAAC,EAAE,KAAI;AACL,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1B,YAAA,OAAO,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;AAC7B,SAAC,CACF,CACF;aACA,SAAS,CACV,CAAC,IAAG;;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAC,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,IAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,MAAK,QAAQ,CAAC,MAAM;AAAE,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjE,IAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,0CAAE,IAAI,MAAK,QAAQ,CAAC,MAAM;AAAE,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACnE,SAAC,CACF,CAAC;KACH;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAe,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAC/B;AAED,IAAA,MAAM,CAAC,GAAQ,EAAA;AACb,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAG,IAAI,CAAC,YAAY,EAAE;AACpB,YAAA,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAClC,YAAA,IAAG,CAAC,EAAE;gBAAE,OAAO;AAChB,SAAA;AAED,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CACvD,CAAC,IAAG;AACF,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAC,CAAC,CAAC;AAChE,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,SAAC,CACF,CAAA;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAe,CAAC,CAAA;AACtC,QAAA,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;AAAC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACvD;AAED,IAAA,cAAc,CAAC,MAA2B,EAAA;AACxC,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CACzB,IAAI,CAAC,KAAM,EACX,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,EAC5B,IAAI,CAAC,UAAW,EAChB,IAAI,CAAC,aAAc,EACnB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAC9B,IAAI,IAAG;AACL,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;AAChC,SAAC,CACF,CAAA;KACF;IAED,KAAK,GAAA;KACJ;IAED,sBAAsB,GAAA;;AACpB,QAAA,IAAG,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAQ;QAChF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAM,EACrC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,aAAc,EAEd,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,UAAU,CAClB,EAAA,EAAA,SAAS,EAAE,CAAC,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,KAAI,CAAC,IAAI,CAAC,EAAA,CAAA,EAElD,IAAI,CAAC,aAAa,IAAI,EAAE,EACxB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAC9B,IAAI,IAAG;AACL,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,SAAU,GAAG,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;;AAEzD,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;AAC/B,SAAC,CACF,CAAA;KACF;IAED,mBAAmB,GAAA;KAElB;;gHAjXU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAkEE,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAC3B,sBAAsB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAnE3C,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,yxCCjDhC,2pEAqDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,UAAA,EAAA,MAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,aAAA,EAAA,SAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDJa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,YAGjB,SAAS,EAAA,QAAA,EAAA,2pEAAA,EAAA,CAAA;;;8BAoEN,QAAQ;;8BAAI,MAAM;+BAAC,2BAA2B,CAAA;;8BAC9C,QAAQ;;8BAAI,MAAM;+BAAC,sBAAsB,CAAA;;yBAlE7C,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACiB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;gBACQ,cAAc,EAAA,CAAA;sBAA1C,SAAS;uBAAC,gBAAgB,CAAA;gBACF,QAAQ,EAAA,CAAA;sBAAhC,SAAS;uBAAC,YAAY,CAAA;gBACI,QAAQ,EAAA,CAAA;sBAAlC,SAAS;uBAAC,cAAc,CAAA;gBAChB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACE,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAqBG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAUG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACE,aAAa,EAAA,CAAA;sBAArB,KAAK;;;ME5FK,uBAAuB,CAAA;AASlC,IAAA,WAAA,CAAoB,cAAiC,EAAA;AAAjC,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QAP5C,IAAA,CAAA,iBAAiB,GAA2B;AACnD,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,KAAK,EAAE,EAAE;SACV,CAAC;AAEQ,QAAA,IAAA,CAAA,IAAI,GAAsB,IAAI,YAAY,EAAO,CAAC;KAG3D;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAG,OAAO,CAAC,mBAAmB,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;AACrC,SAAA;KACF;IAED,QAAQ,GAAA;KACP;;oHAnBU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,8KChBpC,2WAeA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,EAAA,4BAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,OAAA,EAAA,OAAA,EAAA,kBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;2FDCa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,sBAAsB,EAAA,eAAA,EAEf,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2WAAA,EAAA,CAAA;wGAItC,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAIG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACI,IAAI,EAAA,CAAA;sBAAb,MAAM;;;MElBI,uBAAuB,CAAA;AAGlC,IAAA,WAAA,CAAmB,QAA0B,EAAA;AAA1B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAkB;AAFpC,QAAA,IAAc,CAAA,cAAA,GAAW,EAAE,CAAC;KAEa;;oHAHvC,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;wGAAvB,uBAAuB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;iBAC7B,CAAA;kGAEU,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;MCuFK,gBAAgB,CAAA;IAEpB,OAAO,OAAO,CAAU,MAA2C,EAAA;;QACxE,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,kBAAkB;oBAC3B,QAAQ,EAAE,MAAM,CAAC,YAAY;AAC9B,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,uBAAuB;oBAChC,QAAQ,EAAE,MAAM,CAAC,wBAAwB;AAC1C,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,kBAAkB;oBAC3B,QAAQ,EAAE,MAAM,CAAC,iBAAiB;AACnC,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,oBAAoB;oBAC7B,QAAQ,EAAE,MAAM,CAAC,cAAc;AAChC,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,6BAA6B;oBACtC,QAAQ,EAAE,MAAM,CAAC,qBAAqB;AACvC,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,oBAAoB;AAC7B,oBAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,MAAM,CAAC,iBAAiB,0CAAE,iBAAiB;AACtD,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,kBAAkB;AAC3B,oBAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,MAAM,CAAC,iBAAiB,0CAAE,eAAe;AACpD,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,uBAAuB;oBAChC,QAAQ,EAAE,MAAM,CAAC,kBAAkB;AACpC,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,QAAQ;oBACjB,QAAQ,EAAE,MAAM,CAAC,UAAU;AAC5B,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,2BAA2B;AACpC,oBAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,MAAM,CAAC,iBAAiB,0CAAE,gBAAgB;AACrD,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,sBAAsB;AAC/B,oBAAA,QAAQ,EAAE,CAAA,EAAA,GAAA,MAAM,CAAC,kBAAkB,0CAAE,iBAAiB;AACvD,iBAAA;AACF,aAAA;SACF,CAAA;KACF;;6GApDU,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBA3BzB,mBAAmB;QACnB,uBAAuB;AACvB,QAAA,uBAAuB,aAGvB,YAAY;QACZ,WAAW;QACX,aAAa;QACb,cAAc;QACd,aAAa,EAAAA,IAAA,CAAA,cAAA,EAQb,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAGlB,mBAAmB;QACnB,uBAAuB,CAAA,EAAA,CAAA,CAAA;AAMd,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAJhB,SAAA,EAAA;QACT,iBAAiB;KAClB,EAAA,OAAA,EAAA,CApBC,YAAY;QACZ,WAAW;QACX,aAAa;QACb,cAAc;QACd,aAAa;QACb,cAAc,CAAC,OAAO,CAAC;AACrB,YAAA,iBAAiB,EAAE,YAAY;AAC/B,YAAA,UAAU,EAAE;AACV,gBAAA,mBAAmB,EAAE,qBAAqB;AAC1C,gBAAA,MAAM,EAAE,qBAAqB;AAC9B,aAAA;SACF,CAAC;QACF,kBAAkB,CAAA,EAAA,CAAA,CAAA;2FAUT,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBA7B5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,uBAAuB;wBACvB,uBAAuB;AACxB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,cAAc,CAAC,OAAO,CAAC;AACrB,4BAAA,iBAAiB,EAAE,YAAY;AAC/B,4BAAA,UAAU,EAAE;AACV,gCAAA,mBAAmB,EAAE,qBAAqB;AAC1C,gCAAA,MAAM,EAAE,qBAAqB;AAC9B,6BAAA;yBACF,CAAC;wBACF,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,uBAAuB;AACxB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,iBAAiB;AAClB,qBAAA;iBACF,CAAA;;;AC5FD;;AAEG;MA6BU,kBAAkB,GAAG,IAAI,cAAc,CAAC,oBAAoB,EAAE;MAC9D,uBAAuB,GAAG,IAAI,cAAc,CAAC,yBAAyB,EAAE;MACxE,kBAAkB,GAAG,IAAI,cAAc,CAAC,oBAAoB,EAAE;MAC9D,oBAAoB,GAAG,IAAI,cAAc,CAAC,sBAAsB,EAAE;MAClE,6BAA6B,GAAG,IAAI,cAAc,CAAC,+BAA+B,EAAE;MACpF,2BAA2B,GAAG,IAAI,cAAc,CAAC,6BAA6B,EAAE;MAChF,sBAAsB,GAAG,IAAI,cAAc,CAAC,wBAAwB,EAAE;MAEtE,IAAI,GAAG,IAAI,cAAc,CAAC,MAAM;;ACvC7C;;AAEG;;;;"}
{"version":3,"file":"odda-studio-cms-wrapper.mjs","sources":["../../../projects/cms-wrapper/src/lib/cms-wrapper.service.ts","../../../projects/cms-wrapper/src/lib/cms-wrapper.component.ts","../../../projects/cms-wrapper/src/lib/lib-cms-wrapper.html","../../../projects/cms-wrapper/src/lib/form-meta-render/form-meta-render.component.ts","../../../projects/cms-wrapper/src/lib/form-meta-render/form-meta-render.component.html","../../../projects/cms-wrapper/src/lib/custom-template.directive.ts","../../../projects/cms-wrapper/src/lib/cms-wrapper.module.ts","../../../projects/cms-wrapper/src/public-api.ts","../../../projects/cms-wrapper/src/odda-studio-cms-wrapper.ts"],"sourcesContent":["import {Inject, Injectable, Optional} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {FormMethod, IEntity, IForm, IFormField, ITable} from '@odda-studio/cms-core'\nimport {IFilterOptions, ITablePagination, SortingChanged, TableColumn} from '@odda-studio/cms-table'\nimport {\n __DEFAULT_INPUT_COMPONENT__,\n __FORM_OPTIONS_MAPPER__,\n __RESPONSE__MAPPER__,\n __SEARCH__MAPPER__,\n BaseMapper,\n BaseResponse,\n FormOptionsMapper,\n SearchMapper\n} from \"../public-api\";\nimport {Observable} from \"rxjs\";\n\n@Injectable()\nexport class CmsWrapperService {\n\n constructor(\n private httpClient: HttpClient,\n @Inject(__RESPONSE__MAPPER__) private mapper: BaseMapper<BaseResponse<any>>,\n @Inject(__SEARCH__MAPPER__) private searchMapper: SearchMapper,\n @Optional() @Inject(__FORM_OPTIONS_MAPPER__) private formOptionsMapper: FormOptionsMapper\n ) {\n }\n\n load(table: ITable, col: TableColumn<any>[],\n search: string, pagination: ITablePagination,\n filter: IFilterOptions<any>,\n sorting?: SortingChanged<any>,\n additionalData?: Record<string, any>): Observable<BaseResponse<unknown>> {\n const application = table.entity.application;\n const entity = table.entity;\n const path = application?.endpoint +'/'+ entity.endpoint;\n return this.httpClient.get(\n path,\n {\n params: this.searchMapper(search, pagination, col, filter, table.meta, sorting, additionalData)\n }\n ).pipe(this.mapper(pagination))\n }\n\n getIdentifier(form: IForm): IFormField | null {\n let result: IFormField | null = null;\n let ended = false;\n while (result === null && ended === false) {\n form.rows?.forEach(\n (f, index) => {\n f.fields.forEach(\n field => {\n if(field.identifier || field.field?.identifier)\n result = field;\n }\n );\n ended = index === form.rows?.length! - 1;\n }\n )\n }\n return result;\n }\n\n save(form: IForm, $event: any) {\n const application = form.entity?.application;\n const entity = form.entity!;\n const path = application?.endpoint +'/'+ (form.action || entity.endpoint);\n const options = this.formOptionsMapper ? this.formOptionsMapper(form, $event) : undefined;\n if(form.method === FormMethod.POST)\n return this.httpClient.post(path, $event, options);\n if(form.method === FormMethod.PUT) {\n const identifier = this.getIdentifier(form);\n if(!identifier) throw '';\n return this.httpClient.put(path + '/' + $event[identifier.name], $event, this.formOptionsMapper ? this.formOptionsMapper(form, $event) : undefined);\n }\n if(form.method === FormMethod.PATCH) {\n const identifier = this.getIdentifier(form);\n if(!identifier) throw 'no identitifier';\n return this.httpClient.patch(path + '/' + $event[identifier.name], $event, this.formOptionsMapper ? this.formOptionsMapper(form, $event) : undefined);\n }\n throw 'method not found'\n }\n\n delete(entity: IEntity, item: any) {\n const application = entity?.application;\n const path = application?.endpoint +'/'+ entity.endpoint;\n return this.httpClient.delete(path + '/' + item['id']);\n }\n}\n\n","import {\n AfterContentInit,\n Component,\n EventEmitter, Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit, Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport {CmsCoreService, FormKind, IEntity, IForm, ITable} from '@odda-studio/cms-core'\nimport {\n CmsTableComponent,\n IFilterOptions,\n ITablePagination,\n SortingChanged,\n TableColumn,\n TableComponent\n} from \"@odda-studio/cms-table\";\nimport {CmsWrapperService} from \"./cms-wrapper.service\";\nimport { catchError, debounceTime, filter, map, Observable, Subject, Subscription, throwError } from \"rxjs\";\nimport {FormCol, FormConfiguration, JsonFormBuilderV2Component} from '@odda-studio/cms-form';\nimport { AbstractControl, FormControl, FormGroup } from \"@angular/forms\";\nimport {__DEFAULT_INPUT_COMPONENT__, __DEFAULT_PAGINATION__} from \"../public-api\";\n\nexport function GetValueByPath<T>(object: any, path: string): T {\n if (path == null) { return object; }\n // tslint:disable-next-line:variable-name only-arrow-functions\n const _path = path.replace(/\\[(\\w+)\\]/g, '.$1').split('.').filter(f => f !== '');\n let res = object;\n for (const k of _path) {\n if (!res) {\n return res;\n }\n\n res = res[k];\n }\n return res;\n}\n\n@Component({\n selector: 'lib-cms-wrapper',\n templateUrl: 'lib-cms-wrapper.html',\n styles: [],\n exportAs: 'wrapper'\n})\nexport class CmsWrapperComponent implements OnInit, OnChanges, AfterContentInit, OnDestroy {\n @Input() tableName!: string;\n @Input() createFormName?: string;\n @Input() updateFormName?: string;\n @Input() entityName!: string;\n @ViewChild('libTable') libTable!: CmsTableComponent;\n @ViewChild('tableComponent') tableComponent!: TableComponent;\n @ViewChild('customForm') formItem!: JsonFormBuilderV2Component;\n @ViewChild('formTemplate') template!: TemplateRef<any>;\n @Input() showForm: boolean = false;\n @Output() showFormChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() formValueChanges: EventEmitter<any> = new EventEmitter<any>();\n @Input() additionalData: Record<string, any> = {};\n @Output() itemCreated: EventEmitter<any> = new EventEmitter();\n @Output() itemUpdated: EventEmitter<any> = new EventEmitter();\n @Output() itemDeleted: EventEmitter<any> = new EventEmitter();\n @Output() submitError: EventEmitter<any> = new EventEmitter();\n @Output() submitClicked: EventEmitter<any> = new EventEmitter();\n @Output() deleteClicked: EventEmitter<any> = new EventEmitter();\n @Input() askForDelete: boolean = true;\n @Input() submitCondition: 'ALWAYS' | 'VALID' | 'NEVER' = 'ALWAYS';\n @Input() tableFilterable: boolean = true;\n @Input() searchInput: FormControl = new FormControl<string>('');\n\n searchFire: Subject<{ search: string; pagination: ITablePagination }> = new Subject<{search: string; pagination: ITablePagination}>()\n searchFire$: Observable<{ search: string; pagination: ITablePagination }> = this.searchFire\n .asObservable()\n .pipe(\n debounceTime(1)\n );\n columns: TableColumn<any>[] = [];\n data: any[] = [];\n visibleItems: any[] = [];\n table: ITable | undefined;\n form: IForm | undefined;\n\n formSub: Subscription = new Subscription();\n tableSub: Subscription = new Subscription();\n entitySub: Subscription = new Subscription();\n formConfiguration: FormConfiguration<any> = {\n rows: [],\n title: ''\n };\n @Input() pagination: ITablePagination = {\n pageIndex: 1,\n pageSize: 10\n };\n value: any = {};\n private entity!: IEntity;\n private paginationData?: ITablePagination;\n private sortingData?: SortingChanged<any>;\n private filteringData?: IFilterOptions<any>;\n currentSearch: string | undefined;\n @Input() defaultSearch: boolean = true;\n @Input() showRowNumber: boolean = true;\n @Input() getClass: (row: any) => string = (row) => '';\n @Input() showPagination: boolean = true;\n @Output() scrolledToBottom: EventEmitter<any> = new EventEmitter();\n @Output() scrolledToTop: EventEmitter<any> = new EventEmitter();\n @Input() virtualScroll: boolean = false;\n\n get totalItems() {\n return this.pagination?.totalCount || 0\n }\n constructor(private cmsService: CmsCoreService,\n private cmsWrapperService: CmsWrapperService,\n @Optional() @Inject(__DEFAULT_INPUT_COMPONENT__) private defaultInput: any,\n @Optional() @Inject(__DEFAULT_PAGINATION__) public defaultPagination: ITablePagination) {\n this.pagination = { ...defaultPagination } || this.pagination;\n cmsService.load();\n this.searchFire$.subscribe(\n d => {\n this.pagination = { ...(defaultPagination || this.pagination) };\n this.search(d);\n }\n )\n }\n\n ngOnDestroy(): void {\n if(!this.entitySub.closed)\n this.entitySub.unsubscribe();\n if(!this.formSub.closed)\n this.formSub.unsubscribe();\n if(!this.tableSub.closed)\n this.tableSub.unsubscribe();\n }\n\n observeForm(formName: string) {\n const sub = this.cmsService\n .forms$\n .pipe(map(f => f[formName]), filter(f => f !== undefined)).subscribe(\n form => {\n this.form = form\n this.formConfiguration = {\n title: form.name,\n rows: (form.rows || []).map(\n f => {\n return {\n title: '',\n rowClass: f.class,\n columns: f.fields.map(\n field => {\n let type = field.type || field.field?.type || (this.defaultInput ? 'default' : 'text');\n if (field.relation && !field.type) {\n type = '__auto_complete__'\n }\n return new FormCol({\n name: field.name,\n label: field.label18n || field.name || field.field?.name,\n type: type,\n dataSet: field,\n inputClass: field.class,\n\n visible: (form: AbstractControl, input: AbstractControl) => {\n if(field.meta?.if){\n const display: Array<{\n field: string,\n operator: 'eq',\n value: any\n }> = field.meta.if;\n const conditions = display.map(condition => {\n const inputValue = form.value;\n const value = GetValueByPath(inputValue, condition.field)\n return value === condition.value;\n }\n ).filter(k => !k)\n return conditions.length === 0;\n }\n return true;\n },\n validators: {\n required: field.required || field.field?.required,\n min: field.min,\n max: field.max,\n minLength: field.minLength,\n maxLength: field.maxLength,\n pattern: field.meta?.pattern ? new RegExp(field.meta.pattern): undefined,\n requiredTrue: field.requiredTrue\n }\n });\n\n }\n )\n }\n }\n )\n };\n }\n );\n this.formSub.add(sub);\n }\n\n observeTable() {\n const sub = this.cmsService\n .tables$\n .pipe(map(f => f[this.tableName]), filter(f => f !== undefined)).subscribe(\n table => {\n this.pagination = { ...this.defaultPagination } || this.pagination;\n this.table = table;\n this.columns = this.table.columns.map(f => new TableColumn<any>({\n field: f.field.name,\n dataType: f.hidden ? 'hidden' :( f.field.type || 'text'),\n label: f.label18n || f.field.name,\n identifier: f.field.identifier,\n templateName: f.customTemplate,\n options: f.field.options,\n filteringKeys: f.filteringKeys?.join(',') || f.meta?.filteringKeys?.join(','),\n filterable: f.filterable,\n hidden: f.hidden,\n meta: f.meta,\n sortable: f.sortable,\n freeze: f.freeze,\n filterCondition: f.filterCondition,\n filterOptions: f.filterOptions,\n filter: f.filter,\n firstSorting: f.firstSorting,\n width: f.width\n }));\n this.searchFire.next({search: '', pagination: this.pagination})\n // this.search({search: '', pagination: {}})\n }\n );\n this.tableSub.add(sub)\n }\n\n observeEntity(entityName: string) {\n const sub = this.cmsService.entities$.pipe(\n map(f => f[entityName]),\n filter(f => f !== undefined)\n ).subscribe(\n f => {\n this.entity = f\n }\n )\n this.entitySub.add(sub);\n }\n\n ngAfterContentInit(): void {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(changes['showForm']) {\n if(!this.showForm) this.value = {};\n }\n if (changes['tableName']) {\n console.log('table changed')\n this.observeTable();\n }\n if (changes['createFormName']) {\n this.observeForm(this.createFormName!);\n }\n if (changes['entityName']) {\n this.filteringData = {};\n this.sortingData = undefined;\n if(this.tableComponent)\n this.tableComponent.search = ''\n this.observeEntity(this.entityName!);\n }\n }\n\n ngOnInit(): void {\n }\n\n search($event: { search: string; pagination: ITablePagination }) {\n if(!$event.pagination?.pageSize) {\n $event.pagination = this.pagination || {\n pageSize: 10,\n pageIndex: 1\n }\n }\n this.currentSearch = $event.search || '';\n\n this.filteringData = {};\n this.paginationData = $event.pagination;\n this.cmsWrapperService.load(this.table!,\n this.columns,\n $event.search,\n $event.pagination,\n {},\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.data = data.data;\n this.visibleItems = data.data;\n this.pagination.pageCount = Math.ceil(data.pagination.total / this.pagination.pageSize!);\n this.pagination.totalCount = data.pagination.total;\n //this.tableComponent.refreshTable();\n this.libTable.refreshTable();\n }\n )\n }\n\n filtersChanged($event: { filter: IFilterOptions<any>; pagination: ITablePagination }) {\n this.pagination = { ...this.defaultPagination };\n this.filteringData = $event.filter;\n this.cmsWrapperService.load(\n this.table!,\n this.columns,\n \"\",\n $event.pagination,\n $event.filter,\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.data = data.data;\n this.visibleItems = data.data;\n this.pagination.pageCount = Math.ceil(data.pagination.total / this.pagination.pageSize!);\n this.pagination.totalCount = data.pagination.total;\n this.libTable.refreshTable();\n }\n )\n }\n\n save($event: FormGroup) {\n const v: any = {};\n Object.keys($event.value).forEach(\n f => {\n v[f] = $event.value[f] || undefined\n }\n )\n this.cmsWrapperService.save(this.form!, v)\n .pipe(\n catchError(\n (er) => {\n this.submitError.emit(er);\n return throwError(() => er)\n }\n )\n )\n .subscribe(\n d => {\n this.searchFire.next({search: '', pagination: this.pagination});\n this.showForm = false;\n this.showFormChange.emit(false);\n if(this.form?.kind === FormKind.CREATE) this.itemCreated.emit(d);\n if(this.form?.kind === FormKind.UPDATE) this.itemUpdated.emit(d);\n }\n );\n }\n\n prepareUpdate(value: any) {\n this.observeForm(this.updateFormName!);\n this.value = value;\n this.showFormChange.emit(true)\n }\n\n delete(row: any) {\n this.deleteClicked.emit(row)\n if(this.askForDelete) {\n const co = confirm('Sei sicuro?');\n if(!co) return;\n }\n\n this.cmsWrapperService.delete(this.entity, row).subscribe(\n d => {\n this.searchFire.next({search: '', pagination: this.pagination});\n this.itemDeleted.emit(d);\n }\n )\n }\n\n handleCreateForm() {\n this.observeForm(this.createFormName!)\n this.value = undefined; this.showFormChange.emit(true)\n }\n\n sortingChanged($event: SortingChanged<any>) {\n this.sortingData = $event;\n this.cmsWrapperService.load(\n this.table!,\n this.columns,\n this.searchInput.value || '',\n this.pagination!,\n this.filteringData!,\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.data = data.data;\n this.visibleItems = data.data;\n }\n )\n }\n\n fired() {\n }\n\n scrolledToBottomHandle() {\n if(this.visibleItems.length === this.totalItems || !this.virtualScroll) return ;\n this.cmsWrapperService.load(this.table!,\n this.columns,\n this.currentSearch!,\n {\n ...this.pagination,\n pageIndex: (this.pagination?.pageIndex || 0) + 1\n },\n this.filteringData || {},\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.pagination.pageIndex = this.pagination.pageIndex! + 1;\n this.visibleItems = [...this.visibleItems, ...data.data];\n //this.tableComponent.refreshTable();\n this.libTable.refreshTable();\n }\n )\n }\n\n scrolledToTopHandle() {\n\n }\n}\n","<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input (click)=\"submitClicked.emit()\" type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, EventEmitter, Input,\n OnChanges,\n OnInit, Output,\n SimpleChanges\n} from \"@angular/core\";\nimport {FormConfiguration} from '@odda-studio/cms-form'\nimport {IForm} from '@odda-studio/cms-core'\nimport {FormGroup} from \"@angular/forms\";\n\n@Component({\n selector: 'cms-form-meta-render',\n templateUrl: 'form-meta-render.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormMetaRenderComponent implements OnInit, OnChanges {\n\n @Input() formConfiguration: FormConfiguration<any> = {\n rows: [],\n title: ''\n };\n @Input() form!: IForm;\n @Output() save: EventEmitter<any> = new EventEmitter<any>();\n\n constructor(private changeDetector: ChangeDetectorRef) {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(changes['formConfiguration']) {\n this.changeDetector.detectChanges();\n }\n }\n\n ngOnInit(): void {\n }\n\n // save($event: FormGroup) {\n // // this.cmsWrapperService.save(this.form!, $event.value).subscribe(\n // // d => {\n // // //this.search({search: '', pagination: this.pagination})\n // // }\n // // );\n // }\n}\n","<app-json-form-builder submitCondition=\"ALWAYS\"\n (submitForm)=\"save.emit($event)\"\n [form]=\"formConfiguration\">\n\n <ng-template [inputTemplate]=\"'enum'\">\n test\n </ng-template>\n <div submitTemplate>\n <button type=\"submit\">\n salva\n </button>\n </div>\n\n\n</app-json-form-builder>\n","import {Directive, Input, TemplateRef} from \"@angular/core\";\n\n@Directive({\n selector: '[customTemplate]'\n})\nexport class CustomTemplateDirective {\n @Input() customTemplate: string = '';\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CmsWrapperComponent} from './cms-wrapper.component';\nimport {HttpContext, HttpHeaders, HttpParams} from \"@angular/common/http\";\nimport {CommonModule} from \"@angular/common\";\nimport {\n IFilterOptions,\n Col,\n CmsTableModule,\n ITablePagination,\n __TABLE_CONFIGURATION__, SortingChanged\n} from '@odda-studio/cms-table';\nimport {FormsModule} from \"@angular/forms\";\nimport {\n JsonFormModule,\n __BASE_INPUT_CLASS__,\n __BASE_ROW_CLASS__,\n CmsFormModule\n} from \"@odda-studio/cms-form\";\n\nimport {AutocompleteModule, AutocompleteComponent, JsonRendererComponent} from '@odda-studio/cms-ui';\n\nimport {FormMetaRenderComponent} from \"./form-meta-render/form-meta-render.component\";\nimport {Observable} from \"rxjs\";\nimport {CustomTemplateDirective} from \"./custom-template.directive\";\nimport {\n __DEFAULT_INPUT_COMPONENT__, __DEFAULT_PAGINATION__,\n __FILTER__MAPPER__, __FORM_OPTIONS_MAPPER__, __NEW_ITEM_RESPONSE__MAPPER__,\n __RESPONSE__MAPPER__,\n __SEARCH__MAPPER__,\n CmsWrapperService, WrapperModuleConfiguration\n} from \"../public-api\";\nimport {\n CmsCoreModule,\n __PATH__,\n IForm\n} from '@odda-studio/cms-core'\n\nexport type FilterMapper = (filters: IFilterOptions<any>, pagination: ITablePagination, q?: { [key: string]: string }) => HttpParams\nexport type SearchMapper = (search: string, pagination: ITablePagination, columns: Col<any>[], filters: IFilterOptions<any>, meta?: { [key: string]: string }, sorting?: SortingChanged<any>, additionalData?: Record<string, any>) => HttpParams\nexport type FormOptionsMapper = (form: IForm, value: any) => {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?: HttpParams | {\n [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n}\n\nexport type BaseResponse<T> = {\n data: T[];\n pagination: {\n start: number;\n limit: number;\n total: number;\n }\n}\nexport type BaseMapper<T> = <T>(pagination: ITablePagination) => (source: Observable<T>) => Observable<BaseResponse<T>> | any;\nexport type NewItemResponseMapper<T, TRES> = <T, TRES>(source: Observable<TRES>) => Observable<BaseResponse<TRES> | TRES>;\n\n@NgModule({\n declarations: [\n CmsWrapperComponent,\n FormMetaRenderComponent,\n CustomTemplateDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n CmsCoreModule,\n CmsTableModule,\n CmsFormModule,\n JsonFormModule.forRoot({\n defaultInputClass: 'base-input',\n components: {\n '__auto_complete__': AutocompleteComponent,\n 'json': JsonRendererComponent\n }\n }),\n AutocompleteModule\n ],\n exports: [\n CmsWrapperComponent,\n CustomTemplateDirective\n ],\n providers: [\n CmsWrapperService\n ]\n})\nexport class CmsWrapperModule {\n\n public static forRoot<T, TRES>(config: WrapperModuleConfiguration<T, TRES>): ModuleWithProviders<CmsWrapperModule> {\n return {\n ngModule: CmsWrapperModule,\n providers: [\n {\n provide: __SEARCH__MAPPER__,\n useValue: config.searchMapper\n },\n {\n provide: __FORM_OPTIONS_MAPPER__,\n useValue: config.formRequestOptionsMapper\n },\n {\n provide: __FILTER__MAPPER__,\n useValue: config.queryParamsMapper\n },\n {\n provide: __RESPONSE__MAPPER__,\n useValue: config.responseMapper\n },\n {\n provide: __NEW_ITEM_RESPONSE__MAPPER__,\n useValue: config.newItemResponseMapper\n },\n {\n provide: __BASE_INPUT_CLASS__,\n useValue: config.formConfiguration?.defaultInputClass\n },\n {\n provide: __BASE_ROW_CLASS__,\n useValue: config.formConfiguration?.defaultRowClass\n },\n {\n provide: __TABLE_CONFIGURATION__,\n useValue: config.tableConfiguration\n },\n {\n provide: __PATH__,\n useValue: config.serverPath\n },\n {\n provide: __DEFAULT_INPUT_COMPONENT__,\n useValue: config.formConfiguration?.defaultComponent\n },\n {\n provide: __DEFAULT_PAGINATION__,\n useValue: config.tableConfiguration?.defaultPagination\n }\n ]\n }\n }\n}\n","/*\n * Public API Surface of cms-wrapper\n */\n\nimport {InjectionToken} from \"@angular/core\";\nimport {FormModuleConfiguration} from \"@odda-studio/cms-form\";\nimport {TableModuleConfiguration} from \"@odda-studio/cms-table\";\nimport {\n BaseMapper,\n FilterMapper,\n FormOptionsMapper,\n NewItemResponseMapper,\n SearchMapper\n} from \"./lib/cms-wrapper.module\";\n\nexport * from './lib/cms-wrapper.service';\nexport * from './lib/cms-wrapper.component';\nexport * from './lib/cms-wrapper.module';\nexport * from './lib/custom-template.directive';\n\nexport interface WrapperModuleConfiguration<T, TRES> {\n serverPath?: string,\n formConfiguration?: FormModuleConfiguration,\n tableConfiguration?: TableModuleConfiguration,\n queryParamsMapper?: FilterMapper,\n searchMapper?: SearchMapper,\n responseMapper?: BaseMapper<TRES> | any,\n formRequestOptionsMapper?: FormOptionsMapper;\n newItemResponseMapper?: NewItemResponseMapper<T, TRES>\n}\n\nexport const __SEARCH__MAPPER__ = new InjectionToken('__SEARCH__MAPPER__');\nexport const __FORM_OPTIONS_MAPPER__ = new InjectionToken('__FORM_OPTIONS_MAPPER__');\nexport const __FILTER__MAPPER__ = new InjectionToken('__FILTER__MAPPER__');\nexport const __RESPONSE__MAPPER__ = new InjectionToken('__RESPONSE__MAPPER__');\nexport const __NEW_ITEM_RESPONSE__MAPPER__ = new InjectionToken('__NEW_ITEM_RESPONSE__MAPPER__');\nexport const __DEFAULT_INPUT_COMPONENT__ = new InjectionToken('__DEFAULT_INPUT_COMPONENT__');\nexport const __DEFAULT_PAGINATION__ = new InjectionToken('__DEFAULT_PAGINATION__');\n\nexport const TEST = new InjectionToken('TEST');\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.CmsWrapperService","i5"],"mappings":"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"}

@@ -377,6 +377,6 @@ import * as i0 from '@angular/core';

CmsWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CmsWrapperComponent, deps: [{ token: i1$1.CmsCoreService }, { token: CmsWrapperService }, { token: __DEFAULT_INPUT_COMPONENT__, optional: true }, { token: __DEFAULT_PAGINATION__, optional: true }], target: i0.ɵɵFactoryTarget.Component });
CmsWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CmsWrapperComponent, selector: "lib-cms-wrapper", inputs: { tableName: "tableName", createFormName: "createFormName", updateFormName: "updateFormName", entityName: "entityName", showForm: "showForm", additionalData: "additionalData", askForDelete: "askForDelete", submitCondition: "submitCondition", tableFilterable: "tableFilterable", searchInput: "searchInput", pagination: "pagination", defaultSearch: "defaultSearch", showRowNumber: "showRowNumber", getClass: "getClass", showPagination: "showPagination", virtualScroll: "virtualScroll" }, outputs: { showFormChange: "showFormChange", formValueChanges: "formValueChanges", itemCreated: "itemCreated", itemUpdated: "itemUpdated", itemDeleted: "itemDeleted", submitError: "submitError", submitClicked: "submitClicked", deleteClicked: "deleteClicked", scrolledToBottom: "scrolledToBottom", scrolledToTop: "scrolledToTop" }, viewQueries: [{ propertyName: "libTable", first: true, predicate: ["libTable"], descendants: true }, { propertyName: "tableComponent", first: true, predicate: ["tableComponent"], descendants: true }, { propertyName: "formItem", first: true, predicate: ["customForm"], descendants: true }, { propertyName: "template", first: true, predicate: ["formTemplate"], descendants: true }], exportAs: ["wrapper"], usesOnChanges: true, ngImport: i0, template: "<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n (click)=\"submitClicked.emit()\"\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TableComponent, selector: "lib-table", inputs: ["data", "cols", "async", "delete", "draggable", "debounce", "lazy", "tableContainerContainer", "tableClass", "rowClickable", "tree", "treeData", "loading", "addChildrenToItem", "filterable", "pagination", "showPagination"], outputs: ["rowClicked", "sortingChanged", "filterChanged", "filtersChanged", "deleteItem", "dragEnded", "reloadData", "searchChanged", "paginationChange"], exportAs: ["jsonTable"] }, { kind: "directive", type: i4.ColumnTemplateDirectives, selector: "[columnTemplate]", inputs: ["columnTemplate"] }, { kind: "component", type: i4.CmsTableComponent, selector: "lib-cms-table", inputs: ["data", "cols", "async", "searchInput", "context", "pagination", "showPagination", "defaultSearch", "getClass", "showRowNumber"], outputs: ["searchFired", "selectionChange", "sortingChanged", "filtersChanged", "scrolledToBottom", "scrolledToTop"], exportAs: ["libTable"] }, { kind: "component", type: i1$2.JsonFormBuilderV2Component, selector: "json-form-builder-v2", inputs: ["form", "name", "formValue", "templates", "formGroup", "submitCondition"], outputs: ["formValueChange", "submitForm"] }] });
CmsWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: CmsWrapperComponent, selector: "lib-cms-wrapper", inputs: { tableName: "tableName", createFormName: "createFormName", updateFormName: "updateFormName", entityName: "entityName", showForm: "showForm", additionalData: "additionalData", askForDelete: "askForDelete", submitCondition: "submitCondition", tableFilterable: "tableFilterable", searchInput: "searchInput", pagination: "pagination", defaultSearch: "defaultSearch", showRowNumber: "showRowNumber", getClass: "getClass", showPagination: "showPagination", virtualScroll: "virtualScroll" }, outputs: { showFormChange: "showFormChange", formValueChanges: "formValueChanges", itemCreated: "itemCreated", itemUpdated: "itemUpdated", itemDeleted: "itemDeleted", submitError: "submitError", submitClicked: "submitClicked", deleteClicked: "deleteClicked", scrolledToBottom: "scrolledToBottom", scrolledToTop: "scrolledToTop" }, viewQueries: [{ propertyName: "libTable", first: true, predicate: ["libTable"], descendants: true }, { propertyName: "tableComponent", first: true, predicate: ["tableComponent"], descendants: true }, { propertyName: "formItem", first: true, predicate: ["customForm"], descendants: true }, { propertyName: "template", first: true, predicate: ["formTemplate"], descendants: true }], exportAs: ["wrapper"], usesOnChanges: true, ngImport: i0, template: "<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input (click)=\"submitClicked.emit()\" type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TableComponent, selector: "lib-table", inputs: ["data", "cols", "async", "delete", "draggable", "debounce", "lazy", "tableContainerContainer", "tableClass", "rowClickable", "tree", "treeData", "loading", "addChildrenToItem", "filterable", "pagination", "showPagination"], outputs: ["rowClicked", "sortingChanged", "filterChanged", "filtersChanged", "deleteItem", "dragEnded", "reloadData", "searchChanged", "paginationChange"], exportAs: ["jsonTable"] }, { kind: "directive", type: i4.ColumnTemplateDirectives, selector: "[columnTemplate]", inputs: ["columnTemplate"] }, { kind: "component", type: i4.CmsTableComponent, selector: "lib-cms-table", inputs: ["data", "cols", "async", "searchInput", "context", "pagination", "showPagination", "defaultSearch", "getClass", "showRowNumber"], outputs: ["searchFired", "selectionChange", "sortingChanged", "filtersChanged", "scrolledToBottom", "scrolledToTop"], exportAs: ["libTable"] }, { kind: "component", type: i1$2.JsonFormBuilderV2Component, selector: "json-form-builder-v2", inputs: ["form", "name", "formValue", "templates", "formGroup", "submitCondition"], outputs: ["formValueChange", "submitForm"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: CmsWrapperComponent, decorators: [{
type: Component,
args: [{ selector: 'lib-cms-wrapper', exportAs: 'wrapper', template: "<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n (click)=\"submitClicked.emit()\"\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n" }]
args: [{ selector: 'lib-cms-wrapper', exportAs: 'wrapper', template: "<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input (click)=\"submitClicked.emit()\" type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n" }]
}], ctorParameters: function () { return [{ type: i1$1.CmsCoreService }, { type: CmsWrapperService }, { type: undefined, decorators: [{

@@ -383,0 +383,0 @@ type: Optional

@@ -1,1 +0,1 @@

{"version":3,"file":"odda-studio-cms-wrapper.mjs","sources":["../../../projects/cms-wrapper/src/lib/cms-wrapper.service.ts","../../../projects/cms-wrapper/src/lib/cms-wrapper.component.ts","../../../projects/cms-wrapper/src/lib/lib-cms-wrapper.html","../../../projects/cms-wrapper/src/lib/form-meta-render/form-meta-render.component.ts","../../../projects/cms-wrapper/src/lib/form-meta-render/form-meta-render.component.html","../../../projects/cms-wrapper/src/lib/custom-template.directive.ts","../../../projects/cms-wrapper/src/lib/cms-wrapper.module.ts","../../../projects/cms-wrapper/src/public-api.ts","../../../projects/cms-wrapper/src/odda-studio-cms-wrapper.ts"],"sourcesContent":["import {Inject, Injectable, Optional} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {FormMethod, IEntity, IForm, IFormField, ITable} from '@odda-studio/cms-core'\nimport {IFilterOptions, ITablePagination, SortingChanged, TableColumn} from '@odda-studio/cms-table'\nimport {\n __DEFAULT_INPUT_COMPONENT__,\n __FORM_OPTIONS_MAPPER__,\n __RESPONSE__MAPPER__,\n __SEARCH__MAPPER__,\n BaseMapper,\n BaseResponse,\n FormOptionsMapper,\n SearchMapper\n} from \"../public-api\";\nimport {Observable} from \"rxjs\";\n\n@Injectable()\nexport class CmsWrapperService {\n\n constructor(\n private httpClient: HttpClient,\n @Inject(__RESPONSE__MAPPER__) private mapper: BaseMapper<BaseResponse<any>>,\n @Inject(__SEARCH__MAPPER__) private searchMapper: SearchMapper,\n @Optional() @Inject(__FORM_OPTIONS_MAPPER__) private formOptionsMapper: FormOptionsMapper\n ) {\n }\n\n load(table: ITable, col: TableColumn<any>[],\n search: string, pagination: ITablePagination,\n filter: IFilterOptions<any>,\n sorting?: SortingChanged<any>,\n additionalData?: Record<string, any>): Observable<BaseResponse<unknown>> {\n const application = table.entity.application;\n const entity = table.entity;\n const path = application?.endpoint +'/'+ entity.endpoint;\n return this.httpClient.get(\n path,\n {\n params: this.searchMapper(search, pagination, col, filter, table.meta, sorting, additionalData)\n }\n ).pipe(this.mapper(pagination))\n }\n\n getIdentifier(form: IForm): IFormField | null {\n let result: IFormField | null = null;\n let ended = false;\n while (result === null && ended === false) {\n form.rows?.forEach(\n (f, index) => {\n f.fields.forEach(\n field => {\n if(field.identifier || field.field?.identifier)\n result = field;\n }\n );\n ended = index === form.rows?.length! - 1;\n }\n )\n }\n return result;\n }\n\n save(form: IForm, $event: any) {\n const application = form.entity?.application;\n const entity = form.entity!;\n const path = application?.endpoint +'/'+ (form.action || entity.endpoint);\n const options = this.formOptionsMapper ? this.formOptionsMapper(form, $event) : undefined;\n if(form.method === FormMethod.POST)\n return this.httpClient.post(path, $event, options);\n if(form.method === FormMethod.PUT) {\n const identifier = this.getIdentifier(form);\n if(!identifier) throw '';\n return this.httpClient.put(path + '/' + $event[identifier.name], $event, this.formOptionsMapper ? this.formOptionsMapper(form, $event) : undefined);\n }\n if(form.method === FormMethod.PATCH) {\n const identifier = this.getIdentifier(form);\n if(!identifier) throw 'no identitifier';\n return this.httpClient.patch(path + '/' + $event[identifier.name], $event, this.formOptionsMapper ? this.formOptionsMapper(form, $event) : undefined);\n }\n throw 'method not found'\n }\n\n delete(entity: IEntity, item: any) {\n const application = entity?.application;\n const path = application?.endpoint +'/'+ entity.endpoint;\n return this.httpClient.delete(path + '/' + item['id']);\n }\n}\n\n","import {\n AfterContentInit,\n Component,\n EventEmitter, Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit, Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport {CmsCoreService, FormKind, IEntity, IForm, ITable} from '@odda-studio/cms-core'\nimport {\n CmsTableComponent,\n IFilterOptions,\n ITablePagination,\n SortingChanged,\n TableColumn,\n TableComponent\n} from \"@odda-studio/cms-table\";\nimport {CmsWrapperService} from \"./cms-wrapper.service\";\nimport { catchError, debounceTime, filter, map, Observable, Subject, Subscription, throwError } from \"rxjs\";\nimport {FormCol, FormConfiguration, JsonFormBuilderV2Component} from '@odda-studio/cms-form';\nimport { AbstractControl, FormControl, FormGroup } from \"@angular/forms\";\nimport {__DEFAULT_INPUT_COMPONENT__, __DEFAULT_PAGINATION__} from \"../public-api\";\n\nexport function GetValueByPath<T>(object: any, path: string): T {\n if (path == null) { return object; }\n // tslint:disable-next-line:variable-name only-arrow-functions\n const _path = path.replace(/\\[(\\w+)\\]/g, '.$1').split('.').filter(f => f !== '');\n let res = object;\n for (const k of _path) {\n if (!res) {\n return res;\n }\n\n res = res[k];\n }\n return res;\n}\n\n@Component({\n selector: 'lib-cms-wrapper',\n templateUrl: 'lib-cms-wrapper.html',\n styles: [],\n exportAs: 'wrapper'\n})\nexport class CmsWrapperComponent implements OnInit, OnChanges, AfterContentInit, OnDestroy {\n @Input() tableName!: string;\n @Input() createFormName?: string;\n @Input() updateFormName?: string;\n @Input() entityName!: string;\n @ViewChild('libTable') libTable!: CmsTableComponent;\n @ViewChild('tableComponent') tableComponent!: TableComponent;\n @ViewChild('customForm') formItem!: JsonFormBuilderV2Component;\n @ViewChild('formTemplate') template!: TemplateRef<any>;\n @Input() showForm: boolean = false;\n @Output() showFormChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() formValueChanges: EventEmitter<any> = new EventEmitter<any>();\n @Input() additionalData: Record<string, any> = {};\n @Output() itemCreated: EventEmitter<any> = new EventEmitter();\n @Output() itemUpdated: EventEmitter<any> = new EventEmitter();\n @Output() itemDeleted: EventEmitter<any> = new EventEmitter();\n @Output() submitError: EventEmitter<any> = new EventEmitter();\n @Output() submitClicked: EventEmitter<any> = new EventEmitter();\n @Output() deleteClicked: EventEmitter<any> = new EventEmitter();\n @Input() askForDelete: boolean = true;\n @Input() submitCondition: 'ALWAYS' | 'VALID' | 'NEVER' = 'ALWAYS';\n @Input() tableFilterable: boolean = true;\n @Input() searchInput: FormControl = new FormControl<string>('');\n\n searchFire: Subject<{ search: string; pagination: ITablePagination }> = new Subject<{search: string; pagination: ITablePagination}>()\n searchFire$: Observable<{ search: string; pagination: ITablePagination }> = this.searchFire\n .asObservable()\n .pipe(\n debounceTime(1)\n );\n columns: TableColumn<any>[] = [];\n data: any[] = [];\n visibleItems: any[] = [];\n table: ITable | undefined;\n form: IForm | undefined;\n\n formSub: Subscription = new Subscription();\n tableSub: Subscription = new Subscription();\n entitySub: Subscription = new Subscription();\n formConfiguration: FormConfiguration<any> = {\n rows: [],\n title: ''\n };\n @Input() pagination: ITablePagination = {\n pageIndex: 1,\n pageSize: 10\n };\n value: any = {};\n private entity!: IEntity;\n private paginationData?: ITablePagination;\n private sortingData?: SortingChanged<any>;\n private filteringData?: IFilterOptions<any>;\n currentSearch: string | undefined;\n @Input() defaultSearch: boolean = true;\n @Input() showRowNumber: boolean = true;\n @Input() getClass: (row: any) => string = (row) => '';\n @Input() showPagination: boolean = true;\n @Output() scrolledToBottom: EventEmitter<any> = new EventEmitter();\n @Output() scrolledToTop: EventEmitter<any> = new EventEmitter();\n @Input() virtualScroll: boolean = false;\n\n get totalItems() {\n return this.pagination?.totalCount || 0\n }\n constructor(private cmsService: CmsCoreService,\n private cmsWrapperService: CmsWrapperService,\n @Optional() @Inject(__DEFAULT_INPUT_COMPONENT__) private defaultInput: any,\n @Optional() @Inject(__DEFAULT_PAGINATION__) public defaultPagination: ITablePagination) {\n this.pagination = { ...defaultPagination } || this.pagination;\n cmsService.load();\n this.searchFire$.subscribe(\n d => {\n this.pagination = { ...(defaultPagination || this.pagination) };\n this.search(d);\n }\n )\n }\n\n ngOnDestroy(): void {\n if(!this.entitySub.closed)\n this.entitySub.unsubscribe();\n if(!this.formSub.closed)\n this.formSub.unsubscribe();\n if(!this.tableSub.closed)\n this.tableSub.unsubscribe();\n }\n\n observeForm(formName: string) {\n const sub = this.cmsService\n .forms$\n .pipe(map(f => f[formName]), filter(f => f !== undefined)).subscribe(\n form => {\n this.form = form\n this.formConfiguration = {\n title: form.name,\n rows: (form.rows || []).map(\n f => {\n return {\n title: '',\n rowClass: f.class,\n columns: f.fields.map(\n field => {\n let type = field.type || field.field?.type || (this.defaultInput ? 'default' : 'text');\n if (field.relation && !field.type) {\n type = '__auto_complete__'\n }\n return new FormCol({\n name: field.name,\n label: field.label18n || field.name || field.field?.name,\n type: type,\n dataSet: field,\n inputClass: field.class,\n\n visible: (form: AbstractControl, input: AbstractControl) => {\n if(field.meta?.if){\n const display: Array<{\n field: string,\n operator: 'eq',\n value: any\n }> = field.meta.if;\n const conditions = display.map(condition => {\n const inputValue = form.value;\n const value = GetValueByPath(inputValue, condition.field)\n return value === condition.value;\n }\n ).filter(k => !k)\n return conditions.length === 0;\n }\n return true;\n },\n validators: {\n required: field.required || field.field?.required,\n min: field.min,\n max: field.max,\n minLength: field.minLength,\n maxLength: field.maxLength,\n pattern: field.meta?.pattern ? new RegExp(field.meta.pattern): undefined,\n requiredTrue: field.requiredTrue\n }\n });\n\n }\n )\n }\n }\n )\n };\n }\n );\n this.formSub.add(sub);\n }\n\n observeTable() {\n const sub = this.cmsService\n .tables$\n .pipe(map(f => f[this.tableName]), filter(f => f !== undefined)).subscribe(\n table => {\n this.pagination = { ...this.defaultPagination } || this.pagination;\n this.table = table;\n this.columns = this.table.columns.map(f => new TableColumn<any>({\n field: f.field.name,\n dataType: f.hidden ? 'hidden' :( f.field.type || 'text'),\n label: f.label18n || f.field.name,\n identifier: f.field.identifier,\n templateName: f.customTemplate,\n options: f.field.options,\n filteringKeys: f.filteringKeys?.join(',') || f.meta?.filteringKeys?.join(','),\n filterable: f.filterable,\n hidden: f.hidden,\n meta: f.meta,\n sortable: f.sortable,\n freeze: f.freeze,\n filterCondition: f.filterCondition,\n filterOptions: f.filterOptions,\n filter: f.filter,\n firstSorting: f.firstSorting,\n width: f.width\n }));\n this.searchFire.next({search: '', pagination: this.pagination})\n // this.search({search: '', pagination: {}})\n }\n );\n this.tableSub.add(sub)\n }\n\n observeEntity(entityName: string) {\n const sub = this.cmsService.entities$.pipe(\n map(f => f[entityName]),\n filter(f => f !== undefined)\n ).subscribe(\n f => {\n this.entity = f\n }\n )\n this.entitySub.add(sub);\n }\n\n ngAfterContentInit(): void {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(changes['showForm']) {\n if(!this.showForm) this.value = {};\n }\n if (changes['tableName']) {\n console.log('table changed')\n this.observeTable();\n }\n if (changes['createFormName']) {\n this.observeForm(this.createFormName!);\n }\n if (changes['entityName']) {\n this.filteringData = {};\n this.sortingData = undefined;\n if(this.tableComponent)\n this.tableComponent.search = ''\n this.observeEntity(this.entityName!);\n }\n }\n\n ngOnInit(): void {\n }\n\n search($event: { search: string; pagination: ITablePagination }) {\n if(!$event.pagination?.pageSize) {\n $event.pagination = this.pagination || {\n pageSize: 10,\n pageIndex: 1\n }\n }\n this.currentSearch = $event.search || '';\n\n this.filteringData = {};\n this.paginationData = $event.pagination;\n this.cmsWrapperService.load(this.table!,\n this.columns,\n $event.search,\n $event.pagination,\n {},\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.data = data.data;\n this.visibleItems = data.data;\n this.pagination.pageCount = Math.ceil(data.pagination.total / this.pagination.pageSize!);\n this.pagination.totalCount = data.pagination.total;\n //this.tableComponent.refreshTable();\n this.libTable.refreshTable();\n }\n )\n }\n\n filtersChanged($event: { filter: IFilterOptions<any>; pagination: ITablePagination }) {\n this.pagination = { ...this.defaultPagination };\n this.filteringData = $event.filter;\n this.cmsWrapperService.load(\n this.table!,\n this.columns,\n \"\",\n $event.pagination,\n $event.filter,\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.data = data.data;\n this.visibleItems = data.data;\n this.pagination.pageCount = Math.ceil(data.pagination.total / this.pagination.pageSize!);\n this.pagination.totalCount = data.pagination.total;\n this.libTable.refreshTable();\n }\n )\n }\n\n save($event: FormGroup) {\n const v: any = {};\n Object.keys($event.value).forEach(\n f => {\n v[f] = $event.value[f] || undefined\n }\n )\n this.cmsWrapperService.save(this.form!, v)\n .pipe(\n catchError(\n (er) => {\n this.submitError.emit(er);\n return throwError(() => er)\n }\n )\n )\n .subscribe(\n d => {\n this.searchFire.next({search: '', pagination: this.pagination});\n this.showForm = false;\n this.showFormChange.emit(false);\n if(this.form?.kind === FormKind.CREATE) this.itemCreated.emit(d);\n if(this.form?.kind === FormKind.UPDATE) this.itemUpdated.emit(d);\n }\n );\n }\n\n prepareUpdate(value: any) {\n this.observeForm(this.updateFormName!);\n this.value = value;\n this.showFormChange.emit(true)\n }\n\n delete(row: any) {\n this.deleteClicked.emit(row)\n if(this.askForDelete) {\n const co = confirm('Sei sicuro?');\n if(!co) return;\n }\n\n this.cmsWrapperService.delete(this.entity, row).subscribe(\n d => {\n this.searchFire.next({search: '', pagination: this.pagination});\n this.itemDeleted.emit(d);\n }\n )\n }\n\n handleCreateForm() {\n this.observeForm(this.createFormName!)\n this.value = undefined; this.showFormChange.emit(true)\n }\n\n sortingChanged($event: SortingChanged<any>) {\n this.sortingData = $event;\n this.cmsWrapperService.load(\n this.table!,\n this.columns,\n this.searchInput.value || '',\n this.pagination!,\n this.filteringData!,\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.data = data.data;\n this.visibleItems = data.data;\n }\n )\n }\n\n fired() {\n }\n\n scrolledToBottomHandle() {\n if(this.visibleItems.length === this.totalItems || !this.virtualScroll) return ;\n this.cmsWrapperService.load(this.table!,\n this.columns,\n this.currentSearch!,\n {\n ...this.pagination,\n pageIndex: (this.pagination?.pageIndex || 0) + 1\n },\n this.filteringData || {},\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.pagination.pageIndex = this.pagination.pageIndex! + 1;\n this.visibleItems = [...this.visibleItems, ...data.data];\n //this.tableComponent.refreshTable();\n this.libTable.refreshTable();\n }\n )\n }\n\n scrolledToTopHandle() {\n\n }\n}\n","<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n (click)=\"submitClicked.emit()\"\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, EventEmitter, Input,\n OnChanges,\n OnInit, Output,\n SimpleChanges\n} from \"@angular/core\";\nimport {FormConfiguration} from '@odda-studio/cms-form'\nimport {IForm} from '@odda-studio/cms-core'\nimport {FormGroup} from \"@angular/forms\";\n\n@Component({\n selector: 'cms-form-meta-render',\n templateUrl: 'form-meta-render.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormMetaRenderComponent implements OnInit, OnChanges {\n\n @Input() formConfiguration: FormConfiguration<any> = {\n rows: [],\n title: ''\n };\n @Input() form!: IForm;\n @Output() save: EventEmitter<any> = new EventEmitter<any>();\n\n constructor(private changeDetector: ChangeDetectorRef) {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(changes['formConfiguration']) {\n this.changeDetector.detectChanges();\n }\n }\n\n ngOnInit(): void {\n }\n\n // save($event: FormGroup) {\n // // this.cmsWrapperService.save(this.form!, $event.value).subscribe(\n // // d => {\n // // //this.search({search: '', pagination: this.pagination})\n // // }\n // // );\n // }\n}\n","<app-json-form-builder submitCondition=\"ALWAYS\"\n (submitForm)=\"save.emit($event)\"\n [form]=\"formConfiguration\">\n\n <ng-template [inputTemplate]=\"'enum'\">\n test\n </ng-template>\n <div submitTemplate>\n <button type=\"submit\">\n salva\n </button>\n </div>\n\n\n</app-json-form-builder>\n","import {Directive, Input, TemplateRef} from \"@angular/core\";\n\n@Directive({\n selector: '[customTemplate]'\n})\nexport class CustomTemplateDirective {\n @Input() customTemplate: string = '';\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CmsWrapperComponent} from './cms-wrapper.component';\nimport {HttpContext, HttpHeaders, HttpParams} from \"@angular/common/http\";\nimport {CommonModule} from \"@angular/common\";\nimport {\n IFilterOptions,\n Col,\n CmsTableModule,\n ITablePagination,\n __TABLE_CONFIGURATION__, SortingChanged\n} from '@odda-studio/cms-table';\nimport {FormsModule} from \"@angular/forms\";\nimport {\n JsonFormModule,\n __BASE_INPUT_CLASS__,\n __BASE_ROW_CLASS__,\n CmsFormModule\n} from \"@odda-studio/cms-form\";\n\nimport {AutocompleteModule, AutocompleteComponent, JsonRendererComponent} from '@odda-studio/cms-ui';\n\nimport {FormMetaRenderComponent} from \"./form-meta-render/form-meta-render.component\";\nimport {Observable} from \"rxjs\";\nimport {CustomTemplateDirective} from \"./custom-template.directive\";\nimport {\n __DEFAULT_INPUT_COMPONENT__, __DEFAULT_PAGINATION__,\n __FILTER__MAPPER__, __FORM_OPTIONS_MAPPER__, __NEW_ITEM_RESPONSE__MAPPER__,\n __RESPONSE__MAPPER__,\n __SEARCH__MAPPER__,\n CmsWrapperService, WrapperModuleConfiguration\n} from \"../public-api\";\nimport {\n CmsCoreModule,\n __PATH__,\n IForm\n} from '@odda-studio/cms-core'\n\nexport type FilterMapper = (filters: IFilterOptions<any>, pagination: ITablePagination, q?: { [key: string]: string }) => HttpParams\nexport type SearchMapper = (search: string, pagination: ITablePagination, columns: Col<any>[], filters: IFilterOptions<any>, meta?: { [key: string]: string }, sorting?: SortingChanged<any>, additionalData?: Record<string, any>) => HttpParams\nexport type FormOptionsMapper = (form: IForm, value: any) => {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?: HttpParams | {\n [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n}\n\nexport type BaseResponse<T> = {\n data: T[];\n pagination: {\n start: number;\n limit: number;\n total: number;\n }\n}\nexport type BaseMapper<T> = <T>(pagination: ITablePagination) => (source: Observable<T>) => Observable<BaseResponse<T>> | any;\nexport type NewItemResponseMapper<T, TRES> = <T, TRES>(source: Observable<TRES>) => Observable<BaseResponse<TRES> | TRES>;\n\n@NgModule({\n declarations: [\n CmsWrapperComponent,\n FormMetaRenderComponent,\n CustomTemplateDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n CmsCoreModule,\n CmsTableModule,\n CmsFormModule,\n JsonFormModule.forRoot({\n defaultInputClass: 'base-input',\n components: {\n '__auto_complete__': AutocompleteComponent,\n 'json': JsonRendererComponent\n }\n }),\n AutocompleteModule\n ],\n exports: [\n CmsWrapperComponent,\n CustomTemplateDirective\n ],\n providers: [\n CmsWrapperService\n ]\n})\nexport class CmsWrapperModule {\n\n public static forRoot<T, TRES>(config: WrapperModuleConfiguration<T, TRES>): ModuleWithProviders<CmsWrapperModule> {\n return {\n ngModule: CmsWrapperModule,\n providers: [\n {\n provide: __SEARCH__MAPPER__,\n useValue: config.searchMapper\n },\n {\n provide: __FORM_OPTIONS_MAPPER__,\n useValue: config.formRequestOptionsMapper\n },\n {\n provide: __FILTER__MAPPER__,\n useValue: config.queryParamsMapper\n },\n {\n provide: __RESPONSE__MAPPER__,\n useValue: config.responseMapper\n },\n {\n provide: __NEW_ITEM_RESPONSE__MAPPER__,\n useValue: config.newItemResponseMapper\n },\n {\n provide: __BASE_INPUT_CLASS__,\n useValue: config.formConfiguration?.defaultInputClass\n },\n {\n provide: __BASE_ROW_CLASS__,\n useValue: config.formConfiguration?.defaultRowClass\n },\n {\n provide: __TABLE_CONFIGURATION__,\n useValue: config.tableConfiguration\n },\n {\n provide: __PATH__,\n useValue: config.serverPath\n },\n {\n provide: __DEFAULT_INPUT_COMPONENT__,\n useValue: config.formConfiguration?.defaultComponent\n },\n {\n provide: __DEFAULT_PAGINATION__,\n useValue: config.tableConfiguration?.defaultPagination\n }\n ]\n }\n }\n}\n","/*\n * Public API Surface of cms-wrapper\n */\n\nimport {InjectionToken} from \"@angular/core\";\nimport {FormModuleConfiguration} from \"@odda-studio/cms-form\";\nimport {TableModuleConfiguration} from \"@odda-studio/cms-table\";\nimport {\n BaseMapper,\n FilterMapper,\n FormOptionsMapper,\n NewItemResponseMapper,\n SearchMapper\n} from \"./lib/cms-wrapper.module\";\n\nexport * from './lib/cms-wrapper.service';\nexport * from './lib/cms-wrapper.component';\nexport * from './lib/cms-wrapper.module';\nexport * from './lib/custom-template.directive';\n\nexport interface WrapperModuleConfiguration<T, TRES> {\n serverPath?: string,\n formConfiguration?: FormModuleConfiguration,\n tableConfiguration?: TableModuleConfiguration,\n queryParamsMapper?: FilterMapper,\n searchMapper?: SearchMapper,\n responseMapper?: BaseMapper<TRES> | any,\n formRequestOptionsMapper?: FormOptionsMapper;\n newItemResponseMapper?: NewItemResponseMapper<T, TRES>\n}\n\nexport const __SEARCH__MAPPER__ = new InjectionToken('__SEARCH__MAPPER__');\nexport const __FORM_OPTIONS_MAPPER__ = new InjectionToken('__FORM_OPTIONS_MAPPER__');\nexport const __FILTER__MAPPER__ = new InjectionToken('__FILTER__MAPPER__');\nexport const __RESPONSE__MAPPER__ = new InjectionToken('__RESPONSE__MAPPER__');\nexport const __NEW_ITEM_RESPONSE__MAPPER__ = new InjectionToken('__NEW_ITEM_RESPONSE__MAPPER__');\nexport const __DEFAULT_INPUT_COMPONENT__ = new InjectionToken('__DEFAULT_INPUT_COMPONENT__');\nexport const __DEFAULT_PAGINATION__ = new InjectionToken('__DEFAULT_PAGINATION__');\n\nexport const TEST = new InjectionToken('TEST');\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.CmsWrapperService","i5"],"mappings":"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"}
{"version":3,"file":"odda-studio-cms-wrapper.mjs","sources":["../../../projects/cms-wrapper/src/lib/cms-wrapper.service.ts","../../../projects/cms-wrapper/src/lib/cms-wrapper.component.ts","../../../projects/cms-wrapper/src/lib/lib-cms-wrapper.html","../../../projects/cms-wrapper/src/lib/form-meta-render/form-meta-render.component.ts","../../../projects/cms-wrapper/src/lib/form-meta-render/form-meta-render.component.html","../../../projects/cms-wrapper/src/lib/custom-template.directive.ts","../../../projects/cms-wrapper/src/lib/cms-wrapper.module.ts","../../../projects/cms-wrapper/src/public-api.ts","../../../projects/cms-wrapper/src/odda-studio-cms-wrapper.ts"],"sourcesContent":["import {Inject, Injectable, Optional} from '@angular/core';\nimport {HttpClient} from \"@angular/common/http\";\nimport {FormMethod, IEntity, IForm, IFormField, ITable} from '@odda-studio/cms-core'\nimport {IFilterOptions, ITablePagination, SortingChanged, TableColumn} from '@odda-studio/cms-table'\nimport {\n __DEFAULT_INPUT_COMPONENT__,\n __FORM_OPTIONS_MAPPER__,\n __RESPONSE__MAPPER__,\n __SEARCH__MAPPER__,\n BaseMapper,\n BaseResponse,\n FormOptionsMapper,\n SearchMapper\n} from \"../public-api\";\nimport {Observable} from \"rxjs\";\n\n@Injectable()\nexport class CmsWrapperService {\n\n constructor(\n private httpClient: HttpClient,\n @Inject(__RESPONSE__MAPPER__) private mapper: BaseMapper<BaseResponse<any>>,\n @Inject(__SEARCH__MAPPER__) private searchMapper: SearchMapper,\n @Optional() @Inject(__FORM_OPTIONS_MAPPER__) private formOptionsMapper: FormOptionsMapper\n ) {\n }\n\n load(table: ITable, col: TableColumn<any>[],\n search: string, pagination: ITablePagination,\n filter: IFilterOptions<any>,\n sorting?: SortingChanged<any>,\n additionalData?: Record<string, any>): Observable<BaseResponse<unknown>> {\n const application = table.entity.application;\n const entity = table.entity;\n const path = application?.endpoint +'/'+ entity.endpoint;\n return this.httpClient.get(\n path,\n {\n params: this.searchMapper(search, pagination, col, filter, table.meta, sorting, additionalData)\n }\n ).pipe(this.mapper(pagination))\n }\n\n getIdentifier(form: IForm): IFormField | null {\n let result: IFormField | null = null;\n let ended = false;\n while (result === null && ended === false) {\n form.rows?.forEach(\n (f, index) => {\n f.fields.forEach(\n field => {\n if(field.identifier || field.field?.identifier)\n result = field;\n }\n );\n ended = index === form.rows?.length! - 1;\n }\n )\n }\n return result;\n }\n\n save(form: IForm, $event: any) {\n const application = form.entity?.application;\n const entity = form.entity!;\n const path = application?.endpoint +'/'+ (form.action || entity.endpoint);\n const options = this.formOptionsMapper ? this.formOptionsMapper(form, $event) : undefined;\n if(form.method === FormMethod.POST)\n return this.httpClient.post(path, $event, options);\n if(form.method === FormMethod.PUT) {\n const identifier = this.getIdentifier(form);\n if(!identifier) throw '';\n return this.httpClient.put(path + '/' + $event[identifier.name], $event, this.formOptionsMapper ? this.formOptionsMapper(form, $event) : undefined);\n }\n if(form.method === FormMethod.PATCH) {\n const identifier = this.getIdentifier(form);\n if(!identifier) throw 'no identitifier';\n return this.httpClient.patch(path + '/' + $event[identifier.name], $event, this.formOptionsMapper ? this.formOptionsMapper(form, $event) : undefined);\n }\n throw 'method not found'\n }\n\n delete(entity: IEntity, item: any) {\n const application = entity?.application;\n const path = application?.endpoint +'/'+ entity.endpoint;\n return this.httpClient.delete(path + '/' + item['id']);\n }\n}\n\n","import {\n AfterContentInit,\n Component,\n EventEmitter, Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit, Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport {CmsCoreService, FormKind, IEntity, IForm, ITable} from '@odda-studio/cms-core'\nimport {\n CmsTableComponent,\n IFilterOptions,\n ITablePagination,\n SortingChanged,\n TableColumn,\n TableComponent\n} from \"@odda-studio/cms-table\";\nimport {CmsWrapperService} from \"./cms-wrapper.service\";\nimport { catchError, debounceTime, filter, map, Observable, Subject, Subscription, throwError } from \"rxjs\";\nimport {FormCol, FormConfiguration, JsonFormBuilderV2Component} from '@odda-studio/cms-form';\nimport { AbstractControl, FormControl, FormGroup } from \"@angular/forms\";\nimport {__DEFAULT_INPUT_COMPONENT__, __DEFAULT_PAGINATION__} from \"../public-api\";\n\nexport function GetValueByPath<T>(object: any, path: string): T {\n if (path == null) { return object; }\n // tslint:disable-next-line:variable-name only-arrow-functions\n const _path = path.replace(/\\[(\\w+)\\]/g, '.$1').split('.').filter(f => f !== '');\n let res = object;\n for (const k of _path) {\n if (!res) {\n return res;\n }\n\n res = res[k];\n }\n return res;\n}\n\n@Component({\n selector: 'lib-cms-wrapper',\n templateUrl: 'lib-cms-wrapper.html',\n styles: [],\n exportAs: 'wrapper'\n})\nexport class CmsWrapperComponent implements OnInit, OnChanges, AfterContentInit, OnDestroy {\n @Input() tableName!: string;\n @Input() createFormName?: string;\n @Input() updateFormName?: string;\n @Input() entityName!: string;\n @ViewChild('libTable') libTable!: CmsTableComponent;\n @ViewChild('tableComponent') tableComponent!: TableComponent;\n @ViewChild('customForm') formItem!: JsonFormBuilderV2Component;\n @ViewChild('formTemplate') template!: TemplateRef<any>;\n @Input() showForm: boolean = false;\n @Output() showFormChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n @Output() formValueChanges: EventEmitter<any> = new EventEmitter<any>();\n @Input() additionalData: Record<string, any> = {};\n @Output() itemCreated: EventEmitter<any> = new EventEmitter();\n @Output() itemUpdated: EventEmitter<any> = new EventEmitter();\n @Output() itemDeleted: EventEmitter<any> = new EventEmitter();\n @Output() submitError: EventEmitter<any> = new EventEmitter();\n @Output() submitClicked: EventEmitter<any> = new EventEmitter();\n @Output() deleteClicked: EventEmitter<any> = new EventEmitter();\n @Input() askForDelete: boolean = true;\n @Input() submitCondition: 'ALWAYS' | 'VALID' | 'NEVER' = 'ALWAYS';\n @Input() tableFilterable: boolean = true;\n @Input() searchInput: FormControl = new FormControl<string>('');\n\n searchFire: Subject<{ search: string; pagination: ITablePagination }> = new Subject<{search: string; pagination: ITablePagination}>()\n searchFire$: Observable<{ search: string; pagination: ITablePagination }> = this.searchFire\n .asObservable()\n .pipe(\n debounceTime(1)\n );\n columns: TableColumn<any>[] = [];\n data: any[] = [];\n visibleItems: any[] = [];\n table: ITable | undefined;\n form: IForm | undefined;\n\n formSub: Subscription = new Subscription();\n tableSub: Subscription = new Subscription();\n entitySub: Subscription = new Subscription();\n formConfiguration: FormConfiguration<any> = {\n rows: [],\n title: ''\n };\n @Input() pagination: ITablePagination = {\n pageIndex: 1,\n pageSize: 10\n };\n value: any = {};\n private entity!: IEntity;\n private paginationData?: ITablePagination;\n private sortingData?: SortingChanged<any>;\n private filteringData?: IFilterOptions<any>;\n currentSearch: string | undefined;\n @Input() defaultSearch: boolean = true;\n @Input() showRowNumber: boolean = true;\n @Input() getClass: (row: any) => string = (row) => '';\n @Input() showPagination: boolean = true;\n @Output() scrolledToBottom: EventEmitter<any> = new EventEmitter();\n @Output() scrolledToTop: EventEmitter<any> = new EventEmitter();\n @Input() virtualScroll: boolean = false;\n\n get totalItems() {\n return this.pagination?.totalCount || 0\n }\n constructor(private cmsService: CmsCoreService,\n private cmsWrapperService: CmsWrapperService,\n @Optional() @Inject(__DEFAULT_INPUT_COMPONENT__) private defaultInput: any,\n @Optional() @Inject(__DEFAULT_PAGINATION__) public defaultPagination: ITablePagination) {\n this.pagination = { ...defaultPagination } || this.pagination;\n cmsService.load();\n this.searchFire$.subscribe(\n d => {\n this.pagination = { ...(defaultPagination || this.pagination) };\n this.search(d);\n }\n )\n }\n\n ngOnDestroy(): void {\n if(!this.entitySub.closed)\n this.entitySub.unsubscribe();\n if(!this.formSub.closed)\n this.formSub.unsubscribe();\n if(!this.tableSub.closed)\n this.tableSub.unsubscribe();\n }\n\n observeForm(formName: string) {\n const sub = this.cmsService\n .forms$\n .pipe(map(f => f[formName]), filter(f => f !== undefined)).subscribe(\n form => {\n this.form = form\n this.formConfiguration = {\n title: form.name,\n rows: (form.rows || []).map(\n f => {\n return {\n title: '',\n rowClass: f.class,\n columns: f.fields.map(\n field => {\n let type = field.type || field.field?.type || (this.defaultInput ? 'default' : 'text');\n if (field.relation && !field.type) {\n type = '__auto_complete__'\n }\n return new FormCol({\n name: field.name,\n label: field.label18n || field.name || field.field?.name,\n type: type,\n dataSet: field,\n inputClass: field.class,\n\n visible: (form: AbstractControl, input: AbstractControl) => {\n if(field.meta?.if){\n const display: Array<{\n field: string,\n operator: 'eq',\n value: any\n }> = field.meta.if;\n const conditions = display.map(condition => {\n const inputValue = form.value;\n const value = GetValueByPath(inputValue, condition.field)\n return value === condition.value;\n }\n ).filter(k => !k)\n return conditions.length === 0;\n }\n return true;\n },\n validators: {\n required: field.required || field.field?.required,\n min: field.min,\n max: field.max,\n minLength: field.minLength,\n maxLength: field.maxLength,\n pattern: field.meta?.pattern ? new RegExp(field.meta.pattern): undefined,\n requiredTrue: field.requiredTrue\n }\n });\n\n }\n )\n }\n }\n )\n };\n }\n );\n this.formSub.add(sub);\n }\n\n observeTable() {\n const sub = this.cmsService\n .tables$\n .pipe(map(f => f[this.tableName]), filter(f => f !== undefined)).subscribe(\n table => {\n this.pagination = { ...this.defaultPagination } || this.pagination;\n this.table = table;\n this.columns = this.table.columns.map(f => new TableColumn<any>({\n field: f.field.name,\n dataType: f.hidden ? 'hidden' :( f.field.type || 'text'),\n label: f.label18n || f.field.name,\n identifier: f.field.identifier,\n templateName: f.customTemplate,\n options: f.field.options,\n filteringKeys: f.filteringKeys?.join(',') || f.meta?.filteringKeys?.join(','),\n filterable: f.filterable,\n hidden: f.hidden,\n meta: f.meta,\n sortable: f.sortable,\n freeze: f.freeze,\n filterCondition: f.filterCondition,\n filterOptions: f.filterOptions,\n filter: f.filter,\n firstSorting: f.firstSorting,\n width: f.width\n }));\n this.searchFire.next({search: '', pagination: this.pagination})\n // this.search({search: '', pagination: {}})\n }\n );\n this.tableSub.add(sub)\n }\n\n observeEntity(entityName: string) {\n const sub = this.cmsService.entities$.pipe(\n map(f => f[entityName]),\n filter(f => f !== undefined)\n ).subscribe(\n f => {\n this.entity = f\n }\n )\n this.entitySub.add(sub);\n }\n\n ngAfterContentInit(): void {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(changes['showForm']) {\n if(!this.showForm) this.value = {};\n }\n if (changes['tableName']) {\n console.log('table changed')\n this.observeTable();\n }\n if (changes['createFormName']) {\n this.observeForm(this.createFormName!);\n }\n if (changes['entityName']) {\n this.filteringData = {};\n this.sortingData = undefined;\n if(this.tableComponent)\n this.tableComponent.search = ''\n this.observeEntity(this.entityName!);\n }\n }\n\n ngOnInit(): void {\n }\n\n search($event: { search: string; pagination: ITablePagination }) {\n if(!$event.pagination?.pageSize) {\n $event.pagination = this.pagination || {\n pageSize: 10,\n pageIndex: 1\n }\n }\n this.currentSearch = $event.search || '';\n\n this.filteringData = {};\n this.paginationData = $event.pagination;\n this.cmsWrapperService.load(this.table!,\n this.columns,\n $event.search,\n $event.pagination,\n {},\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.data = data.data;\n this.visibleItems = data.data;\n this.pagination.pageCount = Math.ceil(data.pagination.total / this.pagination.pageSize!);\n this.pagination.totalCount = data.pagination.total;\n //this.tableComponent.refreshTable();\n this.libTable.refreshTable();\n }\n )\n }\n\n filtersChanged($event: { filter: IFilterOptions<any>; pagination: ITablePagination }) {\n this.pagination = { ...this.defaultPagination };\n this.filteringData = $event.filter;\n this.cmsWrapperService.load(\n this.table!,\n this.columns,\n \"\",\n $event.pagination,\n $event.filter,\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.data = data.data;\n this.visibleItems = data.data;\n this.pagination.pageCount = Math.ceil(data.pagination.total / this.pagination.pageSize!);\n this.pagination.totalCount = data.pagination.total;\n this.libTable.refreshTable();\n }\n )\n }\n\n save($event: FormGroup) {\n const v: any = {};\n Object.keys($event.value).forEach(\n f => {\n v[f] = $event.value[f] || undefined\n }\n )\n this.cmsWrapperService.save(this.form!, v)\n .pipe(\n catchError(\n (er) => {\n this.submitError.emit(er);\n return throwError(() => er)\n }\n )\n )\n .subscribe(\n d => {\n this.searchFire.next({search: '', pagination: this.pagination});\n this.showForm = false;\n this.showFormChange.emit(false);\n if(this.form?.kind === FormKind.CREATE) this.itemCreated.emit(d);\n if(this.form?.kind === FormKind.UPDATE) this.itemUpdated.emit(d);\n }\n );\n }\n\n prepareUpdate(value: any) {\n this.observeForm(this.updateFormName!);\n this.value = value;\n this.showFormChange.emit(true)\n }\n\n delete(row: any) {\n this.deleteClicked.emit(row)\n if(this.askForDelete) {\n const co = confirm('Sei sicuro?');\n if(!co) return;\n }\n\n this.cmsWrapperService.delete(this.entity, row).subscribe(\n d => {\n this.searchFire.next({search: '', pagination: this.pagination});\n this.itemDeleted.emit(d);\n }\n )\n }\n\n handleCreateForm() {\n this.observeForm(this.createFormName!)\n this.value = undefined; this.showFormChange.emit(true)\n }\n\n sortingChanged($event: SortingChanged<any>) {\n this.sortingData = $event;\n this.cmsWrapperService.load(\n this.table!,\n this.columns,\n this.searchInput.value || '',\n this.pagination!,\n this.filteringData!,\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.data = data.data;\n this.visibleItems = data.data;\n }\n )\n }\n\n fired() {\n }\n\n scrolledToBottomHandle() {\n if(this.visibleItems.length === this.totalItems || !this.virtualScroll) return ;\n this.cmsWrapperService.load(this.table!,\n this.columns,\n this.currentSearch!,\n {\n ...this.pagination,\n pageIndex: (this.pagination?.pageIndex || 0) + 1\n },\n this.filteringData || {},\n this.sortingData,\n this.additionalData).subscribe(\n data => {\n this.pagination.pageIndex = this.pagination.pageIndex! + 1;\n this.visibleItems = [...this.visibleItems, ...data.data];\n //this.tableComponent.refreshTable();\n this.libTable.refreshTable();\n }\n )\n }\n\n scrolledToTopHandle() {\n\n }\n}\n","<lib-cms-table [cols]=\"columns\"\n [async]=\"true\"\n [searchInput]=\"searchInput\"\n (searchFired)=\"fired();searchFire.next($event)\"\n [defaultSearch]=\"defaultSearch\"\n [showRowNumber]=\"showRowNumber\"\n (sortingChanged)=\"sortingChanged($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [context]=\"this\"\n [getClass]=\"getClass\"\n [showPagination]=\"showPagination\"\n (scrolledToBottom)=\"scrolledToBottomHandle()\"\n (scrolledToTop)=\"scrolledToTopHandle()\"\n [data]=\"visibleItems\" #libTable></lib-cms-table>\n<lib-table [async]=\"true\"\n *ngIf=\"false\"\n [data]=\"visibleItems\"\n [filterable]=\"tableFilterable\"\n [(pagination)]=\"pagination\"\n (sortingChanged)=\"sortingChanged($event)\"\n (searchChanged)=\"search($event)\"\n (filtersChanged)=\"filtersChanged($event)\"\n [cols]=\"columns\">\n <ng-template let-value columnTemplate=\"update\">\n <button (click)=\"prepareUpdate(value)\">\n Update\n </button>\n </ng-template>\n <ng-template columnTemplate=\"delete\" let-value>\n <button (click)=\"delete(value)\">\n delete\n </button>\n </ng-template>\n <button actions *ngIf=\"table?.actions?.create\" (click)=\"handleCreateForm()\">\n create\n </button>\n</lib-table>\n<ng-template #formTemplate>\n <json-form-builder-v2 #customForm\n *ngIf=\"showForm\"\n [submitCondition]=\"submitCondition\"\n (submitForm)=\"save($event)\"\n [(formValue)]=\"value\"\n (formValueChange)=\"this.formValueChanges.emit($event)\"\n [form]=\"formConfiguration\">\n <div class=\"submit-class\"\n\n [class.invalid]=\"submitCondition === 'VALID' && !formItem?.formGroup?.valid\"\n submitTemplate>\n <input (click)=\"submitClicked.emit()\" type=\"submit\">\n </div>\n </json-form-builder-v2>\n</ng-template>\n","import {\n ChangeDetectionStrategy, ChangeDetectorRef,\n Component, EventEmitter, Input,\n OnChanges,\n OnInit, Output,\n SimpleChanges\n} from \"@angular/core\";\nimport {FormConfiguration} from '@odda-studio/cms-form'\nimport {IForm} from '@odda-studio/cms-core'\nimport {FormGroup} from \"@angular/forms\";\n\n@Component({\n selector: 'cms-form-meta-render',\n templateUrl: 'form-meta-render.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormMetaRenderComponent implements OnInit, OnChanges {\n\n @Input() formConfiguration: FormConfiguration<any> = {\n rows: [],\n title: ''\n };\n @Input() form!: IForm;\n @Output() save: EventEmitter<any> = new EventEmitter<any>();\n\n constructor(private changeDetector: ChangeDetectorRef) {\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(changes['formConfiguration']) {\n this.changeDetector.detectChanges();\n }\n }\n\n ngOnInit(): void {\n }\n\n // save($event: FormGroup) {\n // // this.cmsWrapperService.save(this.form!, $event.value).subscribe(\n // // d => {\n // // //this.search({search: '', pagination: this.pagination})\n // // }\n // // );\n // }\n}\n","<app-json-form-builder submitCondition=\"ALWAYS\"\n (submitForm)=\"save.emit($event)\"\n [form]=\"formConfiguration\">\n\n <ng-template [inputTemplate]=\"'enum'\">\n test\n </ng-template>\n <div submitTemplate>\n <button type=\"submit\">\n salva\n </button>\n </div>\n\n\n</app-json-form-builder>\n","import {Directive, Input, TemplateRef} from \"@angular/core\";\n\n@Directive({\n selector: '[customTemplate]'\n})\nexport class CustomTemplateDirective {\n @Input() customTemplate: string = '';\n\n constructor(public template: TemplateRef<any>) { }\n\n}\n","import {ModuleWithProviders, NgModule} from '@angular/core';\nimport {CmsWrapperComponent} from './cms-wrapper.component';\nimport {HttpContext, HttpHeaders, HttpParams} from \"@angular/common/http\";\nimport {CommonModule} from \"@angular/common\";\nimport {\n IFilterOptions,\n Col,\n CmsTableModule,\n ITablePagination,\n __TABLE_CONFIGURATION__, SortingChanged\n} from '@odda-studio/cms-table';\nimport {FormsModule} from \"@angular/forms\";\nimport {\n JsonFormModule,\n __BASE_INPUT_CLASS__,\n __BASE_ROW_CLASS__,\n CmsFormModule\n} from \"@odda-studio/cms-form\";\n\nimport {AutocompleteModule, AutocompleteComponent, JsonRendererComponent} from '@odda-studio/cms-ui';\n\nimport {FormMetaRenderComponent} from \"./form-meta-render/form-meta-render.component\";\nimport {Observable} from \"rxjs\";\nimport {CustomTemplateDirective} from \"./custom-template.directive\";\nimport {\n __DEFAULT_INPUT_COMPONENT__, __DEFAULT_PAGINATION__,\n __FILTER__MAPPER__, __FORM_OPTIONS_MAPPER__, __NEW_ITEM_RESPONSE__MAPPER__,\n __RESPONSE__MAPPER__,\n __SEARCH__MAPPER__,\n CmsWrapperService, WrapperModuleConfiguration\n} from \"../public-api\";\nimport {\n CmsCoreModule,\n __PATH__,\n IForm\n} from '@odda-studio/cms-core'\n\nexport type FilterMapper = (filters: IFilterOptions<any>, pagination: ITablePagination, q?: { [key: string]: string }) => HttpParams\nexport type SearchMapper = (search: string, pagination: ITablePagination, columns: Col<any>[], filters: IFilterOptions<any>, meta?: { [key: string]: string }, sorting?: SortingChanged<any>, additionalData?: Record<string, any>) => HttpParams\nexport type FormOptionsMapper = (form: IForm, value: any) => {\n headers?: HttpHeaders | {\n [header: string]: string | string[];\n };\n context?: HttpContext;\n observe?: 'body';\n params?: HttpParams | {\n [param: string]: string | number | boolean | ReadonlyArray<string | number | boolean>;\n };\n reportProgress?: boolean;\n responseType?: 'json';\n withCredentials?: boolean;\n}\n\nexport type BaseResponse<T> = {\n data: T[];\n pagination: {\n start: number;\n limit: number;\n total: number;\n }\n}\nexport type BaseMapper<T> = <T>(pagination: ITablePagination) => (source: Observable<T>) => Observable<BaseResponse<T>> | any;\nexport type NewItemResponseMapper<T, TRES> = <T, TRES>(source: Observable<TRES>) => Observable<BaseResponse<TRES> | TRES>;\n\n@NgModule({\n declarations: [\n CmsWrapperComponent,\n FormMetaRenderComponent,\n CustomTemplateDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n CmsCoreModule,\n CmsTableModule,\n CmsFormModule,\n JsonFormModule.forRoot({\n defaultInputClass: 'base-input',\n components: {\n '__auto_complete__': AutocompleteComponent,\n 'json': JsonRendererComponent\n }\n }),\n AutocompleteModule\n ],\n exports: [\n CmsWrapperComponent,\n CustomTemplateDirective\n ],\n providers: [\n CmsWrapperService\n ]\n})\nexport class CmsWrapperModule {\n\n public static forRoot<T, TRES>(config: WrapperModuleConfiguration<T, TRES>): ModuleWithProviders<CmsWrapperModule> {\n return {\n ngModule: CmsWrapperModule,\n providers: [\n {\n provide: __SEARCH__MAPPER__,\n useValue: config.searchMapper\n },\n {\n provide: __FORM_OPTIONS_MAPPER__,\n useValue: config.formRequestOptionsMapper\n },\n {\n provide: __FILTER__MAPPER__,\n useValue: config.queryParamsMapper\n },\n {\n provide: __RESPONSE__MAPPER__,\n useValue: config.responseMapper\n },\n {\n provide: __NEW_ITEM_RESPONSE__MAPPER__,\n useValue: config.newItemResponseMapper\n },\n {\n provide: __BASE_INPUT_CLASS__,\n useValue: config.formConfiguration?.defaultInputClass\n },\n {\n provide: __BASE_ROW_CLASS__,\n useValue: config.formConfiguration?.defaultRowClass\n },\n {\n provide: __TABLE_CONFIGURATION__,\n useValue: config.tableConfiguration\n },\n {\n provide: __PATH__,\n useValue: config.serverPath\n },\n {\n provide: __DEFAULT_INPUT_COMPONENT__,\n useValue: config.formConfiguration?.defaultComponent\n },\n {\n provide: __DEFAULT_PAGINATION__,\n useValue: config.tableConfiguration?.defaultPagination\n }\n ]\n }\n }\n}\n","/*\n * Public API Surface of cms-wrapper\n */\n\nimport {InjectionToken} from \"@angular/core\";\nimport {FormModuleConfiguration} from \"@odda-studio/cms-form\";\nimport {TableModuleConfiguration} from \"@odda-studio/cms-table\";\nimport {\n BaseMapper,\n FilterMapper,\n FormOptionsMapper,\n NewItemResponseMapper,\n SearchMapper\n} from \"./lib/cms-wrapper.module\";\n\nexport * from './lib/cms-wrapper.service';\nexport * from './lib/cms-wrapper.component';\nexport * from './lib/cms-wrapper.module';\nexport * from './lib/custom-template.directive';\n\nexport interface WrapperModuleConfiguration<T, TRES> {\n serverPath?: string,\n formConfiguration?: FormModuleConfiguration,\n tableConfiguration?: TableModuleConfiguration,\n queryParamsMapper?: FilterMapper,\n searchMapper?: SearchMapper,\n responseMapper?: BaseMapper<TRES> | any,\n formRequestOptionsMapper?: FormOptionsMapper;\n newItemResponseMapper?: NewItemResponseMapper<T, TRES>\n}\n\nexport const __SEARCH__MAPPER__ = new InjectionToken('__SEARCH__MAPPER__');\nexport const __FORM_OPTIONS_MAPPER__ = new InjectionToken('__FORM_OPTIONS_MAPPER__');\nexport const __FILTER__MAPPER__ = new InjectionToken('__FILTER__MAPPER__');\nexport const __RESPONSE__MAPPER__ = new InjectionToken('__RESPONSE__MAPPER__');\nexport const __NEW_ITEM_RESPONSE__MAPPER__ = new InjectionToken('__NEW_ITEM_RESPONSE__MAPPER__');\nexport const __DEFAULT_INPUT_COMPONENT__ = new InjectionToken('__DEFAULT_INPUT_COMPONENT__');\nexport const __DEFAULT_PAGINATION__ = new InjectionToken('__DEFAULT_PAGINATION__');\n\nexport const TEST = new InjectionToken('TEST');\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.CmsWrapperService","i5"],"mappings":"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"}
{
"name": "@odda-studio/cms-wrapper",
"version": "0.0.51",
"version": "0.0.52",
"peerDependencies": {

@@ -5,0 +5,0 @@ "@angular/common": "^15.2.7",