@odda-studio/cms-wrapper
Advanced tools
@@ -308,6 +308,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", deleteError: "deleteError", 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"] }] }); | ||
| 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", deleteError: "deleteError", 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 [pagination]=\"pagination\"\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\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" }] | ||
| 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 [pagination]=\"pagination\"\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: [{ | ||
@@ -390,2 +390,2 @@ type: Optional | ||
| }] } }); | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zLXdyYXBwZXIvc3JjL2xpYi9jbXMtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMtd3JhcHBlci9zcmMvbGliL2xpYi1jbXMtd3JhcHBlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUFFLE1BQU0sRUFDcEIsS0FBSyxFQUdHLFFBQVEsRUFDaEIsTUFBTSxFQUdOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWlCLFFBQVEsRUFBeUIsTUFBTSx1QkFBdUIsQ0FBQTtBQUN0RixPQUFPLEVBS0wsV0FBVyxFQUVaLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RyxPQUFPLEVBQUMsT0FBTyxFQUFnRCxNQUFNLHVCQUF1QixDQUFDO0FBQzdGLE9BQU8sRUFBbUIsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFDLDJCQUEyQixFQUFFLHNCQUFzQixFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBRWxGLE1BQU0sVUFBVSxjQUFjLENBQUksTUFBVyxFQUFFLElBQVk7SUFDekQsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1FBQUUsT0FBTyxNQUFNLENBQUM7S0FBRTtJQUNwQyw4REFBOEQ7SUFDOUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFD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O2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNFLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQXFCRyxVQUFVO3NCQUFsQixLQUFLO2dCQVVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLCBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDbXNDb3JlU2VydmljZSwgRm9ybUtpbmQsIElFbnRpdHksIElGb3JtLCBJVGFibGV9IGZyb20gJ0BvZGRhLXN0dWRpby9jbXMtY29yZSdcbmltcG9ydCB7XG4gIENtc1RhYmxlQ29tcG9uZW50LFxuICBJRmlsdGVyT3B0aW9ucyxcbiAgSVRhYmxlUGFnaW5hdGlvbixcbiAgU29ydGluZ0NoYW5nZWQsXG4gIFRhYmxlQ29sdW1uLFxuICBUYWJsZUNvbXBvbmVudFxufSBmcm9tIFwiQG9kZGEtc3R1ZGlvL2Ntcy10YWJsZVwiO1xuaW1wb3J0IHtDbXNXcmFwcGVyU2VydmljZX0gZnJvbSBcIi4vY21zLXdyYXBwZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0aHJvd0Vycm9yIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7Rm9ybUNvbCwgRm9ybUNvbmZpZ3VyYXRpb24sIEpzb25Gb3JtQnVpbGRlclYyQ29tcG9uZW50fSBmcm9tICdAb2RkYS1zdHVkaW8vY21zLWZvcm0nO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge19fREVGQVVMVF9JTlBVVF9DT01QT05FTlRfXywgX19ERUZBVUxUX1BBR0lOQVRJT05fX30gZnJvbSBcIi4uL3B1YmxpYy1hcGlcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIEdldFZhbHVlQnlQYXRoPFQ+KG9iamVjdDogYW55LCBwYXRoOiBzdHJpbmcpOiBUIHtcbiAgaWYgKHBhdGggPT0gbnVsbCkgeyByZXR1cm4gb2JqZWN0OyB9XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lIG9ubHktYXJyb3ctZnVuY3Rpb25zXG4gIGNvbnN0IF9wYXRoID0gcGF0aC5yZXBsYWNlKC9cXFsoXFx3KylcXF0vZywgJy4kMScpLnNwbGl0KCcuJykuZmlsdGVyKGYgPT4gZiAhPT0gJycpO1xuICBsZXQgcmVzID0gb2JqZWN0O1xuICBmb3IgKGNvbnN0IGsgb2YgX3BhdGgpIHtcbiAgICBpZiAoIXJlcykge1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICByZXMgPSByZXNba107XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNtcy13cmFwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICdsaWItY21zLXdyYXBwZXIuaHRtbCcsXG4gIHN0eWxlczogW10sXG4gIGV4cG9ydEFzOiAnd3JhcHBlcidcbn0pXG5leHBvcnQgY2xhc3MgQ21zV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0YWJsZU5hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNyZWF0ZUZvcm1OYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSB1cGRhdGVGb3JtTmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgZW50aXR5TmFtZSE6IHN0cmluZztcbiAgQFZpZXdDaGlsZCgnbGliVGFibGUnKSBsaWJUYWJsZSE6IENtc1RhYmxlQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCd0YWJsZUNvbXBvbmVudCcpIHRhYmxlQ29tcG9uZW50ITogVGFibGVDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2N1c3RvbUZvcm0nKSBmb3JtSXRlbSE6IEpzb25Gb3JtQnVpbGRlclYyQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdmb3JtVGVtcGxhdGUnKSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIHNob3dGb3JtOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBzaG93Rm9ybUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgZm9ybVZhbHVlQ2hhbmdlczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgYWRkaXRpb25hbERhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgQE91dHB1dCgpIGl0ZW1DcmVhdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGl0ZW1VcGRhdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGl0ZW1EZWxldGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHN1Ym1pdEVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHN1Ym1pdENsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGVsZXRlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkZWxldGVFcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIGFza0ZvckRlbGV0ZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHN1Ym1pdENvbmRpdGlvbjogJ0FMV0FZUycgfCAnVkFMSUQnIHwgJ05FVkVSJyA9ICdBTFdBWVMnO1xuICBASW5wdXQoKSB0YWJsZUZpbHRlcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzZWFyY2hJbnB1dDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJyk7XG5cbiAgc2VhcmNoRmlyZTogU3ViamVjdDx7IHNlYXJjaDogc3RyaW5nOyBwYWdpbmF0aW9uOiBJVGFibGVQYWdpbmF0aW9uIH0+ID0gbmV3IFN1YmplY3Q8e3NlYXJjaDogc3RyaW5nOyBwYWdpbmF0aW9uOiBJVGFibGVQYWdpbmF0aW9ufT4oKVxuICBzZWFyY2hGaXJlJDogT2JzZXJ2YWJsZTx7IHNlYXJjaDogc3RyaW5nOyBwYWdpbmF0aW9uOiBJVGFibGVQYWdpbmF0aW9uIH0+ID0gdGhpcy5zZWFyY2hGaXJlXG4gICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgLnBpcGUoXG4gICAgZGVib3VuY2VUaW1lKDEpXG4gICk7XG4gIGNvbHVtbnM6IFRhYmxlQ29sdW1uPGFueT5bXSA9IFtdO1xuICBkYXRhOiBhbnlbXSA9IFtdO1xuICB2aXNpYmxlSXRlbXM6IGFueVtdID0gW107XG4gIHRhYmxlOiBJVGFibGUgfCB1bmRlZmluZWQ7XG4gIGZvcm06IElGb3JtIHwgdW5kZWZpbmVkO1xuXG4gIGZvcm1TdWI6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgdGFibGVTdWI6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgZW50aXR5U3ViOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIGZvcm1Db25maWd1cmF0aW9uOiBGb3JtQ29uZmlndXJhdGlvbjxhbnk+ID0ge1xuICAgIHJvd3M6IFtdLFxuICAgIHRpdGxlOiAnJ1xuICB9O1xuICBASW5wdXQoKSBwYWdpbmF0aW9uOiBJVGFibGVQYWdpbmF0aW9uID0ge1xuICAgIHBhZ2VJbmRleDogMSxcbiAgICBwYWdlU2l6ZTogMTBcbiAgfTtcbiAgdmFsdWU6IGFueSA9IHt9O1xuICBwcml2YXRlIGVudGl0eSE6IElFbnRpdHk7XG4gIHByaXZhdGUgcGFnaW5hdGlvbkRhdGE/OiBJVGFibGVQYWdpbmF0aW9uO1xuICBwcml2YXRlIHNvcnRpbmdEYXRhPzogU29ydGluZ0NoYW5nZWQ8YW55PjtcbiAgcHJpdmF0ZSBmaWx0ZXJpbmdEYXRhPzogSUZpbHRlck9wdGlvbnM8YW55PjtcbiAgY3VycmVudFNlYXJjaDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBkZWZhdWx0U2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1Jvd051bWJlcjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGdldENsYXNzOiAocm93OiBhbnkpID0+IHN0cmluZyA9IChyb3cpID0+ICcnO1xuICBASW5wdXQoKSBzaG93UGFnaW5hdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBPdXRwdXQoKSBzY3JvbGxlZFRvQm90dG9tOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNjcm9sbGVkVG9Ub3A6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSB2aXJ0dWFsU2Nyb2xsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IHRvdGFsSXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdGlvbj8udG90YWxDb3VudCB8fCAwXG4gIH1cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbXNTZXJ2aWNlOiBDbXNDb3JlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjbXNXcmFwcGVyU2VydmljZTogQ21zV3JhcHBlclNlcnZpY2UsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoX19ERUZBVUxUX0lOUFVUX0NPTVBPTkVOVF9fKSBwcml2YXRlIGRlZmF1bHRJbnB1dDogYW55LFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KF9fREVGQVVMVF9QQUdJTkFUSU9OX18pIHB1YmxpYyBkZWZhdWx0UGFnaW5hdGlvbjogSVRhYmxlUGFnaW5hdGlvbikge1xuICAgIHRoaXMucGFnaW5hdGlvbiA9IHsgLi4uZGVmYXVsdFBhZ2luYXRpb24gfSB8fCB0aGlzLnBhZ2luYXRpb247XG4gICAgY21zU2VydmljZS5sb2FkKCk7XG4gICAgdGhpcy5zZWFyY2hGaXJlJC5zdWJzY3JpYmUoXG4gICAgICBkID0+IHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uID0geyAuLi4oZGVmYXVsdFBhZ2luYXRpb24gfHwgdGhpcy5wYWdpbmF0aW9uKSB9O1xuICAgICAgICB0aGlzLnNlYXJjaChkKTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZighdGhpcy5lbnRpdHlTdWIuY2xvc2VkKVxuICAgICAgdGhpcy5lbnRpdHlTdWIudW5zdWJzY3JpYmUoKTtcbiAgICBpZighdGhpcy5mb3JtU3ViLmNsb3NlZClcbiAgICAgIHRoaXMuZm9ybVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIGlmKCF0aGlzLnRhYmxlU3ViLmNsb3NlZClcbiAgICAgIHRoaXMudGFibGVTdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9ic2VydmVGb3JtKGZvcm1OYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzdWIgPSB0aGlzLmNtc1NlcnZpY2VcbiAgICAgIC5mb3JtcyRcbiAgICAgIC5waXBlKG1hcChmID0+IGZbZm9ybU5hbWVdKSwgZmlsdGVyKGYgPT4gZiAhPT0gdW5kZWZpbmVkKSkuc3Vic2NyaWJlKFxuICAgICAgICBmb3JtID0+IHtcbiAgICAgICAgICB0aGlzLmZvcm0gPSBmb3JtXG4gICAgICAgICAgdGhpcy5mb3JtQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgICAgIHRpdGxlOiBmb3JtLm5hbWUsXG4gICAgICAgICAgICByb3dzOiAoZm9ybS5yb3dzIHx8IFtdKS5tYXAoXG4gICAgICAgICAgICAgIGYgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgICAgICAgICByb3dDbGFzczogZi5jbGFzcyxcbiAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IGYuZmllbGRzLm1hcChcbiAgICAgICAgICAgICAgICAgICAgZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBlID0gIGZpZWxkLnR5cGUgfHwgZmllbGQuZmllbGQ/LnR5cGUgfHwgKHRoaXMuZGVmYXVsdElucHV0ID8gJ2RlZmF1bHQnIDogJ3RleHQnKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQucmVsYXRpb24gJiYgIWZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnX19hdXRvX2NvbXBsZXRlX18nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRm9ybUNvbCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGZpZWxkLmxhYmVsMThuIHx8IGZpZWxkLm5hbWUgfHwgZmllbGQuZmllbGQ/Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVNldDogZmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dENsYXNzOiBmaWVsZC5jbGFzcyxcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogKGZvcm06IEFic3RyYWN0Q29udHJvbCwgaW5wdXQ6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZihmaWVsZC5tZXRhPy5pZil7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheTogQXJyYXk8e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiAnZXEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGFueVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0+ID0gZmllbGQubWV0YS5pZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25kaXRpb25zID0gZGlzcGxheS5tYXAoY29uZGl0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IGZvcm0udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gR2V0VmFsdWVCeVBhdGgoaW5wdXRWYWx1ZSwgY29uZGl0aW9uLmZpZWxkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IGNvbmRpdGlvbi52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmZpbHRlcihrID0+ICFrKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAgY29uZGl0aW9ucy5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmllbGQucmVxdWlyZWQgfHwgZmllbGQuZmllbGQ/LnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaW46IGZpZWxkLm1pbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4OiBmaWVsZC5tYXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkxlbmd0aDogZmllbGQubWluTGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGg6IGZpZWxkLm1heExlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybjogZmllbGQubWV0YT8ucGF0dGVybiA/IG5ldyBSZWdFeHAoZmllbGQubWV0YS5wYXR0ZXJuKTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFRydWU6IGZpZWxkLnJlcXVpcmVkVHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICApO1xuICAgIHRoaXMuZm9ybVN1Yi5hZGQoc3ViKTtcbiAgfVxuXG4gIG9ic2VydmVUYWJsZSgpIHtcbiAgICBjb25zdCBzdWIgPSB0aGlzLmNtc1NlcnZpY2VcbiAgICAgIC50YWJsZXMkXG4gICAgICAucGlwZShtYXAoZiA9PiBmW3RoaXMudGFibGVOYW1lXSksIGZpbHRlcihmID0+IGYgIT09IHVuZGVmaW5lZCkpLnN1YnNjcmliZShcbiAgICAgICAgdGFibGUgPT4ge1xuICAgICAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHsgLi4udGhpcy5kZWZhdWx0UGFnaW5hdGlvbiB9IHx8IHRoaXMucGFnaW5hdGlvbjtcbiAgICAgICAgICB0aGlzLnRhYmxlID0gdGFibGU7XG4gICAgICAgICAgdGhpcy5jb2x1bW5zID0gdGhpcy50YWJsZS5jb2x1bW5zLm1hcChmID0+IG5ldyBUYWJsZUNvbHVtbjxhbnk+KHtcbiAgICAgICAgICAgIGZpZWxkOiBmLmZpZWxkLm5hbWUsXG4gICAgICAgICAgICBkYXRhVHlwZTogZi5oaWRkZW4gPyAnaGlkZGVuJyA6KCBmLmZpZWxkLnR5cGUgfHwgJ3RleHQnKSxcbiAgICAgICAgICAgIGxhYmVsOiBmLmxhYmVsMThuIHx8IGYuZmllbGQubmFtZSxcbiAgICAgICAgICAgIGlkZW50aWZpZXI6IGYuZmllbGQuaWRlbnRpZmllcixcbiAgICAgICAgICAgIHRlbXBsYXRlTmFtZTogZi5jdXN0b21UZW1wbGF0ZSxcbiAgICAgICAgICAgIG9wdGlvbnM6IGYuZmllbGQub3B0aW9ucyxcbiAgICAgICAgICAgIGZpbHRlcmluZ0tleXM6IGYuZmlsdGVyaW5nS2V5cz8uam9pbignLCcpIHx8IGYubWV0YT8uZmlsdGVyaW5nS2V5cz8uam9pbignLCcpLFxuICAgICAgICAgICAgZmlsdGVyYWJsZTogZi5maWx0ZXJhYmxlLFxuICAgICAgICAgICAgaGlkZGVuOiBmLmhpZGRlbixcbiAgICAgICAgICAgIG1ldGE6IGYubWV0YSxcbiAgICAgICAgICAgIHNvcnRhYmxlOiBmLnNvcnRhYmxlLFxuICAgICAgICAgICAgZnJlZXplOiBmLmZyZWV6ZSxcbiAgICAgICAgICAgIGZpbHRlckNvbmRpdGlvbjogZi5maWx0ZXJDb25kaXRpb24sXG4gICAgICAgICAgICBmaWx0ZXJPcHRpb25zOiBmLmZpbHRlck9wdGlvbnMsXG4gICAgICAgICAgICBmaWx0ZXI6IGYuZmlsdGVyLFxuICAgICAgICAgICAgZmlyc3RTb3J0aW5nOiBmLmZpcnN0U29ydGluZyxcbiAgICAgICAgICAgIHdpZHRoOiBmLndpZHRoXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIHRoaXMuc2VhcmNoRmlyZS5uZXh0KHtzZWFyY2g6ICcnLCBwYWdpbmF0aW9uOiB0aGlzLnBhZ2luYXRpb259KVxuICAgICAgICAgLy8gdGhpcy5zZWFyY2goe3NlYXJjaDogJycsIHBhZ2luYXRpb246IHt9fSlcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB0aGlzLnRhYmxlU3ViLmFkZChzdWIpXG4gIH1cblxuICBvYnNlcnZlRW50aXR5KGVudGl0eU5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHN1YiA9IHRoaXMuY21zU2VydmljZS5lbnRpdGllcyQucGlwZShcbiAgICAgIG1hcChmID0+IGZbZW50aXR5TmFtZV0pLFxuICAgICAgZmlsdGVyKGYgPT4gZiAhPT0gdW5kZWZpbmVkKVxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgZiA9PiB7XG4gICAgICAgIHRoaXMuZW50aXR5ID0gZlxuICAgICAgfVxuICAgIClcbiAgICB0aGlzLmVudGl0eVN1Yi5hZGQoc3ViKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZihjaGFuZ2VzWydzaG93Rm9ybSddKSB7XG4gICAgICBpZighdGhpcy5zaG93Rm9ybSkgdGhpcy52YWx1ZSA9IHt9O1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sndGFibGVOYW1lJ10pIHtcbiAgICAgIGNvbnNvbGUubG9nKCd0YWJsZSBjaGFuZ2VkJylcbiAgICAgIHRoaXMub2JzZXJ2ZVRhYmxlKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydjcmVhdGVGb3JtTmFtZSddKSB7XG4gICAgICB0aGlzLm9ic2VydmVGb3JtKHRoaXMuY3JlYXRlRm9ybU5hbWUhKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2VudGl0eU5hbWUnXSkge1xuICAgICAgdGhpcy5maWx0ZXJpbmdEYXRhID0ge307XG4gICAgICB0aGlzLnNvcnRpbmdEYXRhID0gdW5kZWZpbmVkO1xuICAgICAgaWYodGhpcy50YWJsZUNvbXBvbmVudClcbiAgICAgICAgdGhpcy50YWJsZUNvbXBvbmVudC5zZWFyY2ggPSAnJ1xuICAgICAgdGhpcy5vYnNlcnZlRW50aXR5KHRoaXMuZW50aXR5TmFtZSEpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgc2VhcmNoKCRldmVudDogeyBzZWFyY2g6IHN0cmluZzsgcGFnaW5hdGlvbjogSVRhYmxlUGFnaW5hdGlvbiB9KSB7XG4gICAgaWYoISRldmVudC5wYWdpbmF0aW9uPy5wYWdlU2l6ZSkge1xuICAgICAgJGV2ZW50LnBhZ2luYXRpb24gPSB0aGlzLnBhZ2luYXRpb24gfHwge1xuICAgICAgICBwYWdlU2l6ZTogMTAsXG4gICAgICAgIHBhZ2VJbmRleDogMVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRTZWFyY2ggPSAkZXZlbnQuc2VhcmNoIHx8ICcnO1xuXG4gICAgdGhpcy5maWx0ZXJpbmdEYXRhID0ge307XG4gICAgdGhpcy5wYWdpbmF0aW9uRGF0YSA9ICRldmVudC5wYWdpbmF0aW9uO1xuICAgIHRoaXMuY21zV3JhcHBlclNlcnZpY2UubG9hZCh0aGlzLnRhYmxlISxcbiAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgICRldmVudC5zZWFyY2gsXG4gICAgICAkZXZlbnQucGFnaW5hdGlvbixcbiAgICAgIHt9LFxuICAgICAgdGhpcy5zb3J0aW5nRGF0YSxcbiAgICAgIHRoaXMuYWRkaXRpb25hbERhdGEpLnN1YnNjcmliZShcbiAgICAgIGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhLmRhdGE7XG4gICAgICAgIHRoaXMudmlzaWJsZUl0ZW1zID0gZGF0YS5kYXRhO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24ucGFnZUNvdW50ID0gTWF0aC5jZWlsKGRhdGEucGFnaW5hdGlvbi50b3RhbCAvIHRoaXMucGFnaW5hdGlvbi5wYWdlU2l6ZSEpO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24udG90YWxDb3VudCA9IGRhdGEucGFnaW5hdGlvbi50b3RhbDtcbiAgICAgICAgLy90aGlzLnRhYmxlQ29tcG9uZW50LnJlZnJlc2hUYWJsZSgpO1xuICAgICAgICB0aGlzLmxpYlRhYmxlLnJlZnJlc2hUYWJsZSgpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIGZpbHRlcnNDaGFuZ2VkKCRldmVudDogeyBmaWx0ZXI6IElGaWx0ZXJPcHRpb25zPGFueT47IHBhZ2luYXRpb246IElUYWJsZVBhZ2luYXRpb24gfSkge1xuICAgIHRoaXMucGFnaW5hdGlvbiA9IHsgLi4udGhpcy5kZWZhdWx0UGFnaW5hdGlvbiB9O1xuICAgIHRoaXMuZmlsdGVyaW5nRGF0YSA9ICRldmVudC5maWx0ZXI7XG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5sb2FkKFxuICAgICAgdGhpcy50YWJsZSEsXG4gICAgICB0aGlzLmNvbHVtbnMsXG4gICAgICBcIlwiLFxuICAgICAgJGV2ZW50LnBhZ2luYXRpb24sXG4gICAgICAkZXZlbnQuZmlsdGVyLFxuICAgICAgdGhpcy5zb3J0aW5nRGF0YSxcbiAgICAgIHRoaXMuYWRkaXRpb25hbERhdGEpLnN1YnNjcmliZShcbiAgICAgIGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhLmRhdGE7XG4gICAgICAgIHRoaXMudmlzaWJsZUl0ZW1zID0gZGF0YS5kYXRhO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24ucGFnZUNvdW50ID0gTWF0aC5jZWlsKGRhdGEucGFnaW5hdGlvbi50b3RhbCAvIHRoaXMucGFnaW5hdGlvbi5wYWdlU2l6ZSEpO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24udG90YWxDb3VudCA9IGRhdGEucGFnaW5hdGlvbi50b3RhbDtcbiAgICAgICAgdGhpcy5saWJUYWJsZS5yZWZyZXNoVGFibGUoKTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBzYXZlKCRldmVudDogRm9ybUdyb3VwKSB7XG4gICAgY29uc3QgdjogYW55ID0ge307XG4gICAgT2JqZWN0LmtleXMoJGV2ZW50LnZhbHVlKS5mb3JFYWNoKFxuICAgICAgZiA9PiB7XG4gICAgICAgIHZbZl0gPSAkZXZlbnQudmFsdWVbZl0gfHwgdW5kZWZpbmVkXG4gICAgICB9XG4gICAgKVxuICAgIHRoaXMuY21zV3JhcHBlclNlcnZpY2Uuc2F2ZSh0aGlzLmZvcm0hLCB2KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoXG4gICAgICAgICAgKGVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdEVycm9yLmVtaXQoZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXIpXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgZCA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoRmlyZS5uZXh0KHtzZWFyY2g6ICcnLCBwYWdpbmF0aW9uOiB0aGlzLnBhZ2luYXRpb259KTtcbiAgICAgICAgdGhpcy5zaG93Rm9ybSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dGb3JtQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICBpZih0aGlzLmZvcm0/LmtpbmQgPT09IEZvcm1LaW5kLkNSRUFURSkgdGhpcy5pdGVtQ3JlYXRlZC5lbWl0KGQpO1xuICAgICAgICBpZih0aGlzLmZvcm0/LmtpbmQgPT09IEZvcm1LaW5kLlVQREFURSkgdGhpcy5pdGVtVXBkYXRlZC5lbWl0KGQpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcmVwYXJlVXBkYXRlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLm9ic2VydmVGb3JtKHRoaXMudXBkYXRlRm9ybU5hbWUhKTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5zaG93Rm9ybUNoYW5nZS5lbWl0KHRydWUpXG4gIH1cblxuICBkZWxldGUocm93OiBhbnkpIHtcbiAgICBpZih0aGlzLmFza0ZvckRlbGV0ZSkge1xuICAgICAgY29uc3QgY28gPSBjb25maXJtKCdTZWkgc2ljdXJvPycpO1xuICAgICAgaWYoIWNvKSByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kZWxldGVDbGlja2VkLmVtaXQocm93KVxuXG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5kZWxldGUodGhpcy5lbnRpdHksIHJvdylcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKFxuICAgICAgICAgIGVyID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlRXJyb3IuZW1pdChyb3cpO1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgIGQgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaEZpcmUubmV4dCh7c2VhcmNoOiAnJywgcGFnaW5hdGlvbjogdGhpcy5wYWdpbmF0aW9ufSk7XG4gICAgICAgIHRoaXMuaXRlbURlbGV0ZWQuZW1pdChkKTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBoYW5kbGVDcmVhdGVGb3JtKCkge1xuICAgIHRoaXMub2JzZXJ2ZUZvcm0odGhpcy5jcmVhdGVGb3JtTmFtZSEpXG4gICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDsgdGhpcy5zaG93Rm9ybUNoYW5nZS5lbWl0KHRydWUpXG4gIH1cblxuICBzb3J0aW5nQ2hhbmdlZCgkZXZlbnQ6IFNvcnRpbmdDaGFuZ2VkPGFueT4pIHtcbiAgICB0aGlzLnNvcnRpbmdEYXRhID0gJGV2ZW50O1xuICAgIHRoaXMuY21zV3JhcHBlclNlcnZpY2UubG9hZChcbiAgICAgIHRoaXMudGFibGUhLFxuICAgICAgdGhpcy5jb2x1bW5zLFxuICAgICAgdGhpcy5zZWFyY2hJbnB1dC52YWx1ZSB8fCAnJyxcbiAgICAgIHRoaXMucGFnaW5hdGlvbiEsXG4gICAgICB0aGlzLmZpbHRlcmluZ0RhdGEhLFxuICAgICAgdGhpcy5zb3J0aW5nRGF0YSxcbiAgICAgIHRoaXMuYWRkaXRpb25hbERhdGEpLnN1YnNjcmliZShcbiAgICAgIGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhLmRhdGE7XG4gICAgICAgIHRoaXMudmlzaWJsZUl0ZW1zID0gZGF0YS5kYXRhO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIGZpcmVkKCkge1xuICB9XG5cbiAgc2Nyb2xsZWRUb0JvdHRvbUhhbmRsZSgpIHtcbiAgICBpZih0aGlzLnZpc2libGVJdGVtcy5sZW5ndGggPT09IHRoaXMudG90YWxJdGVtcyB8fCAhdGhpcy52aXJ0dWFsU2Nyb2xsKSByZXR1cm4gO1xuICAgIHRoaXMuY21zV3JhcHBlclNlcnZpY2UubG9hZCh0aGlzLnRhYmxlISxcbiAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgIHRoaXMuY3VycmVudFNlYXJjaCEsXG4gICAgICB7XG4gICAgICAgIC4uLnRoaXMucGFnaW5hdGlvbixcbiAgICAgICAgcGFnZUluZGV4OiAodGhpcy5wYWdpbmF0aW9uPy5wYWdlSW5kZXggfHwgMCkgKyAxXG4gICAgICB9LFxuICAgICAgdGhpcy5maWx0ZXJpbmdEYXRhIHx8IHt9LFxuICAgICAgdGhpcy5zb3J0aW5nRGF0YSxcbiAgICAgIHRoaXMuYWRkaXRpb25hbERhdGEpLnN1YnNjcmliZShcbiAgICAgIGRhdGEgPT4ge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24ucGFnZUluZGV4ID0gdGhpcy5wYWdpbmF0aW9uLnBhZ2VJbmRleCEgKyAxO1xuICAgICAgICB0aGlzLnZpc2libGVJdGVtcyA9IFsuLi50aGlzLnZpc2libGVJdGVtcywgLi4uZGF0YS5kYXRhXTtcbiAgICAgICAgLy90aGlzLnRhYmxlQ29tcG9uZW50LnJlZnJlc2hUYWJsZSgpO1xuICAgICAgICB0aGlzLmxpYlRhYmxlLnJlZnJlc2hUYWJsZSgpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIHNjcm9sbGVkVG9Ub3BIYW5kbGUoKSB7XG5cbiAgfVxufVxuIiwiPGxpYi1jbXMtdGFibGUgW2NvbHNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICBbYXN5bmNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICBbc2VhcmNoSW5wdXRdPVwic2VhcmNoSW5wdXRcIlxuICAgICAgICAgICAgICAgKHNlYXJjaEZpcmVkKT1cImZpcmVkKCk7c2VhcmNoRmlyZS5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAgW2RlZmF1bHRTZWFyY2hdPVwiZGVmYXVsdFNlYXJjaFwiXG4gICAgICAgICAgICAgICBbc2hvd1Jvd051bWJlcl09XCJzaG93Um93TnVtYmVyXCJcbiAgICAgICAgICAgICAgIChzb3J0aW5nQ2hhbmdlZCk9XCJzb3J0aW5nQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgIChmaWx0ZXJzQ2hhbmdlZCk9XCJmaWx0ZXJzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgIFtjb250ZXh0XT1cInRoaXNcIlxuICAgICAgICAgICAgICAgW2dldENsYXNzXT1cImdldENsYXNzXCJcbiAgICAgICAgICAgICAgIFtzaG93UGFnaW5hdGlvbl09XCJzaG93UGFnaW5hdGlvblwiXG4gICAgICAgICAgICAgICAoc2Nyb2xsZWRUb0JvdHRvbSk9XCJzY3JvbGxlZFRvQm90dG9tSGFuZGxlKClcIlxuICAgICAgICAgICAgICAgKHNjcm9sbGVkVG9Ub3ApPVwic2Nyb2xsZWRUb1RvcEhhbmRsZSgpXCJcbiAgICAgICAgICAgICAgIFtkYXRhXT1cInZpc2libGVJdGVtc1wiICNsaWJUYWJsZT48L2xpYi1jbXMtdGFibGU+XG48bGliLXRhYmxlIFthc3luY109XCJ0cnVlXCJcbiAgICAgICAgICAgKm5nSWY9XCJmYWxzZVwiXG4gICAgICAgICAgIFtkYXRhXT1cInZpc2libGVJdGVtc1wiXG4gICAgICAgICAgIFtmaWx0ZXJhYmxlXT1cInRhYmxlRmlsdGVyYWJsZVwiXG4gICAgICAgICAgIFsocGFnaW5hdGlvbildPVwicGFnaW5hdGlvblwiXG4gICAgICAgICAgIChzb3J0aW5nQ2hhbmdlZCk9XCJzb3J0aW5nQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgKHNlYXJjaENoYW5nZWQpPVwic2VhcmNoKCRldmVudClcIlxuICAgICAgICAgICAoZmlsdGVyc0NoYW5nZWQpPVwiZmlsdGVyc0NoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgIFtjb2xzXT1cImNvbHVtbnNcIj5cbiAgPG5nLXRlbXBsYXRlIGxldC12YWx1ZSBjb2x1bW5UZW1wbGF0ZT1cInVwZGF0ZVwiPlxuICAgIDxidXR0b24gKGNsaWNrKT1cInByZXBhcmVVcGRhdGUodmFsdWUpXCI+XG4gICAgICBVcGRhdGVcbiAgICA8L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlIGNvbHVtblRlbXBsYXRlPVwiZGVsZXRlXCIgbGV0LXZhbHVlPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZSh2YWx1ZSlcIj5cbiAgICAgIGRlbGV0ZVxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuICA8YnV0dG9uIGFjdGlvbnMgKm5nSWY9XCJ0YWJsZT8uYWN0aW9ucz8uY3JlYXRlXCIgKGNsaWNrKT1cImhhbmRsZUNyZWF0ZUZvcm0oKVwiPlxuICAgIGNyZWF0ZVxuICA8L2J1dHRvbj5cbjwvbGliLXRhYmxlPlxuPG5nLXRlbXBsYXRlICNmb3JtVGVtcGxhdGU+XG4gIDxqc29uLWZvcm0tYnVpbGRlci12MiAjY3VzdG9tRm9ybVxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJzaG93Rm9ybVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3VibWl0Q29uZGl0aW9uXT1cInN1Ym1pdENvbmRpdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc3VibWl0Rm9ybSk9XCJzYXZlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgWyhmb3JtVmFsdWUpXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtVmFsdWVDaGFuZ2UpPVwidGhpcy5mb3JtVmFsdWVDaGFuZ2VzLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZm9ybV09XCJmb3JtQ29uZmlndXJhdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInN1Ym1pdC1jbGFzc1wiXG5cbiAgICAgICAgICAgW2NsYXNzLmludmFsaWRdPVwic3VibWl0Q29uZGl0aW9uID09PSAnVkFMSUQnICYmICFmb3JtSXRlbT8uZm9ybUdyb3VwPy52YWxpZFwiXG4gICAgICAgICAgIHN1Ym1pdFRlbXBsYXRlPlxuICAgICAgICA8aW5wdXQgKGNsaWNrKT1cInN1Ym1pdENsaWNrZWQuZW1pdCgpXCIgdHlwZT1cInN1Ym1pdFwiPlxuICAgICAgPC9kaXY+XG4gIDwvanNvbi1mb3JtLWJ1aWxkZXItdjI+XG48L25nLXRlbXBsYXRlPlxuIl19 | ||
| //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zLXdyYXBwZXIvc3JjL2xpYi9jbXMtd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMtd3JhcHBlci9zcmMvbGliL2xpYi1jbXMtd3JhcHBlci5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsWUFBWSxFQUFFLE1BQU0sRUFDcEIsS0FBSyxFQUdHLFFBQVEsRUFDaEIsTUFBTSxFQUdOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWlCLFFBQVEsRUFBeUIsTUFBTSx1QkFBdUIsQ0FBQTtBQUN0RixPQUFPLEVBS0wsV0FBVyxFQUVaLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RyxPQUFPLEVBQUMsT0FBTyxFQUFnRCxNQUFNLHVCQUF1QixDQUFDO0FBQzdGLE9BQU8sRUFBbUIsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFDLDJCQUEyQixFQUFFLHNCQUFzQixFQUFDLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBRWxGLE1BQU0sVUFBVSxjQUFjLENBQUksTUFBVyxFQUFFLElBQVk7SUFDekQsSUFBSSxJQUFJLElBQUksSUFBSSxFQUFFO1FBQUUsT0FBTyxNQUFNLENBQUM7S0FBRTtJQUNwQyw4REFBOEQ7SUFDOUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFD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O2dCQUNJLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNFLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQXFCRyxVQUFVO3NCQUFsQixLQUFLO2dCQVVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0UsYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLCBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LCBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDbXNDb3JlU2VydmljZSwgRm9ybUtpbmQsIElFbnRpdHksIElGb3JtLCBJVGFibGV9IGZyb20gJ0BvZGRhLXN0dWRpby9jbXMtY29yZSdcbmltcG9ydCB7XG4gIENtc1RhYmxlQ29tcG9uZW50LFxuICBJRmlsdGVyT3B0aW9ucyxcbiAgSVRhYmxlUGFnaW5hdGlvbixcbiAgU29ydGluZ0NoYW5nZWQsXG4gIFRhYmxlQ29sdW1uLFxuICBUYWJsZUNvbXBvbmVudFxufSBmcm9tIFwiQG9kZGEtc3R1ZGlvL2Ntcy10YWJsZVwiO1xuaW1wb3J0IHtDbXNXcmFwcGVyU2VydmljZX0gZnJvbSBcIi4vY21zLXdyYXBwZXIuc2VydmljZVwiO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0aHJvd0Vycm9yIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7Rm9ybUNvbCwgRm9ybUNvbmZpZ3VyYXRpb24sIEpzb25Gb3JtQnVpbGRlclYyQ29tcG9uZW50fSBmcm9tICdAb2RkYS1zdHVkaW8vY21zLWZvcm0nO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge19fREVGQVVMVF9JTlBVVF9DT01QT05FTlRfXywgX19ERUZBVUxUX1BBR0lOQVRJT05fX30gZnJvbSBcIi4uL3B1YmxpYy1hcGlcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIEdldFZhbHVlQnlQYXRoPFQ+KG9iamVjdDogYW55LCBwYXRoOiBzdHJpbmcpOiBUIHtcbiAgaWYgKHBhdGggPT0gbnVsbCkgeyByZXR1cm4gb2JqZWN0OyB9XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lIG9ubHktYXJyb3ctZnVuY3Rpb25zXG4gIGNvbnN0IF9wYXRoID0gcGF0aC5yZXBsYWNlKC9cXFsoXFx3KylcXF0vZywgJy4kMScpLnNwbGl0KCcuJykuZmlsdGVyKGYgPT4gZiAhPT0gJycpO1xuICBsZXQgcmVzID0gb2JqZWN0O1xuICBmb3IgKGNvbnN0IGsgb2YgX3BhdGgpIHtcbiAgICBpZiAoIXJlcykge1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICByZXMgPSByZXNba107XG4gIH1cbiAgcmV0dXJuIHJlcztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNtcy13cmFwcGVyJyxcbiAgdGVtcGxhdGVVcmw6ICdsaWItY21zLXdyYXBwZXIuaHRtbCcsXG4gIHN0eWxlczogW10sXG4gIGV4cG9ydEFzOiAnd3JhcHBlcidcbn0pXG5leHBvcnQgY2xhc3MgQ21zV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0YWJsZU5hbWUhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNyZWF0ZUZvcm1OYW1lPzogc3RyaW5nO1xuICBASW5wdXQoKSB1cGRhdGVGb3JtTmFtZT86IHN0cmluZztcbiAgQElucHV0KCkgZW50aXR5TmFtZSE6IHN0cmluZztcbiAgQFZpZXdDaGlsZCgnbGliVGFibGUnKSBsaWJUYWJsZSE6IENtc1RhYmxlQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCd0YWJsZUNvbXBvbmVudCcpIHRhYmxlQ29tcG9uZW50ITogVGFibGVDb21wb25lbnQ7XG4gIEBWaWV3Q2hpbGQoJ2N1c3RvbUZvcm0nKSBmb3JtSXRlbSE6IEpzb25Gb3JtQnVpbGRlclYyQ29tcG9uZW50O1xuICBAVmlld0NoaWxkKCdmb3JtVGVtcGxhdGUnKSB0ZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBJbnB1dCgpIHNob3dGb3JtOiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBzaG93Rm9ybUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgZm9ybVZhbHVlQ2hhbmdlczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgYWRkaXRpb25hbERhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgQE91dHB1dCgpIGl0ZW1DcmVhdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGl0ZW1VcGRhdGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGl0ZW1EZWxldGVkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHN1Ym1pdEVycm9yOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHN1Ym1pdENsaWNrZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgZGVsZXRlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBkZWxldGVFcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIGFza0ZvckRlbGV0ZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHN1Ym1pdENvbmRpdGlvbjogJ0FMV0FZUycgfCAnVkFMSUQnIHwgJ05FVkVSJyA9ICdBTFdBWVMnO1xuICBASW5wdXQoKSB0YWJsZUZpbHRlcmFibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBzZWFyY2hJbnB1dDogRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nPignJyk7XG5cbiAgc2VhcmNoRmlyZTogU3ViamVjdDx7IHNlYXJjaDogc3RyaW5nOyBwYWdpbmF0aW9uOiBJVGFibGVQYWdpbmF0aW9uIH0+ID0gbmV3IFN1YmplY3Q8e3NlYXJjaDogc3RyaW5nOyBwYWdpbmF0aW9uOiBJVGFibGVQYWdpbmF0aW9ufT4oKVxuICBzZWFyY2hGaXJlJDogT2JzZXJ2YWJsZTx7IHNlYXJjaDogc3RyaW5nOyBwYWdpbmF0aW9uOiBJVGFibGVQYWdpbmF0aW9uIH0+ID0gdGhpcy5zZWFyY2hGaXJlXG4gICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgLnBpcGUoXG4gICAgZGVib3VuY2VUaW1lKDEpXG4gICk7XG4gIGNvbHVtbnM6IFRhYmxlQ29sdW1uPGFueT5bXSA9IFtdO1xuICBkYXRhOiBhbnlbXSA9IFtdO1xuICB2aXNpYmxlSXRlbXM6IGFueVtdID0gW107XG4gIHRhYmxlOiBJVGFibGUgfCB1bmRlZmluZWQ7XG4gIGZvcm06IElGb3JtIHwgdW5kZWZpbmVkO1xuXG4gIGZvcm1TdWI6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgdGFibGVTdWI6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgZW50aXR5U3ViOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIGZvcm1Db25maWd1cmF0aW9uOiBGb3JtQ29uZmlndXJhdGlvbjxhbnk+ID0ge1xuICAgIHJvd3M6IFtdLFxuICAgIHRpdGxlOiAnJ1xuICB9O1xuICBASW5wdXQoKSBwYWdpbmF0aW9uOiBJVGFibGVQYWdpbmF0aW9uID0ge1xuICAgIHBhZ2VJbmRleDogMSxcbiAgICBwYWdlU2l6ZTogMTBcbiAgfTtcbiAgdmFsdWU6IGFueSA9IHt9O1xuICBwcml2YXRlIGVudGl0eSE6IElFbnRpdHk7XG4gIHByaXZhdGUgcGFnaW5hdGlvbkRhdGE/OiBJVGFibGVQYWdpbmF0aW9uO1xuICBwcml2YXRlIHNvcnRpbmdEYXRhPzogU29ydGluZ0NoYW5nZWQ8YW55PjtcbiAgcHJpdmF0ZSBmaWx0ZXJpbmdEYXRhPzogSUZpbHRlck9wdGlvbnM8YW55PjtcbiAgY3VycmVudFNlYXJjaDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBkZWZhdWx0U2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd1Jvd051bWJlcjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGdldENsYXNzOiAocm93OiBhbnkpID0+IHN0cmluZyA9IChyb3cpID0+ICcnO1xuICBASW5wdXQoKSBzaG93UGFnaW5hdGlvbjogYm9vbGVhbiA9IHRydWU7XG4gIEBPdXRwdXQoKSBzY3JvbGxlZFRvQm90dG9tOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNjcm9sbGVkVG9Ub3A6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSB2aXJ0dWFsU2Nyb2xsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZ2V0IHRvdGFsSXRlbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFnaW5hdGlvbj8udG90YWxDb3VudCB8fCAwXG4gIH1cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbXNTZXJ2aWNlOiBDbXNDb3JlU2VydmljZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBjbXNXcmFwcGVyU2VydmljZTogQ21zV3JhcHBlclNlcnZpY2UsXG4gICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoX19ERUZBVUxUX0lOUFVUX0NPTVBPTkVOVF9fKSBwcml2YXRlIGRlZmF1bHRJbnB1dDogYW55LFxuICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KF9fREVGQVVMVF9QQUdJTkFUSU9OX18pIHB1YmxpYyBkZWZhdWx0UGFnaW5hdGlvbjogSVRhYmxlUGFnaW5hdGlvbikge1xuICAgIHRoaXMucGFnaW5hdGlvbiA9IHsgLi4uZGVmYXVsdFBhZ2luYXRpb24gfSB8fCB0aGlzLnBhZ2luYXRpb247XG4gICAgY21zU2VydmljZS5sb2FkKCk7XG4gICAgdGhpcy5zZWFyY2hGaXJlJC5zdWJzY3JpYmUoXG4gICAgICBkID0+IHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uID0geyAuLi4oZGVmYXVsdFBhZ2luYXRpb24gfHwgdGhpcy5wYWdpbmF0aW9uKSB9O1xuICAgICAgICB0aGlzLnNlYXJjaChkKTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZighdGhpcy5lbnRpdHlTdWIuY2xvc2VkKVxuICAgICAgdGhpcy5lbnRpdHlTdWIudW5zdWJzY3JpYmUoKTtcbiAgICBpZighdGhpcy5mb3JtU3ViLmNsb3NlZClcbiAgICAgIHRoaXMuZm9ybVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIGlmKCF0aGlzLnRhYmxlU3ViLmNsb3NlZClcbiAgICAgIHRoaXMudGFibGVTdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG9ic2VydmVGb3JtKGZvcm1OYW1lOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzdWIgPSB0aGlzLmNtc1NlcnZpY2VcbiAgICAgIC5mb3JtcyRcbiAgICAgIC5waXBlKG1hcChmID0+IGZbZm9ybU5hbWVdKSwgZmlsdGVyKGYgPT4gZiAhPT0gdW5kZWZpbmVkKSkuc3Vic2NyaWJlKFxuICAgICAgICBmb3JtID0+IHtcbiAgICAgICAgICB0aGlzLmZvcm0gPSBmb3JtXG4gICAgICAgICAgdGhpcy5mb3JtQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgICAgIHRpdGxlOiBmb3JtLm5hbWUsXG4gICAgICAgICAgICByb3dzOiAoZm9ybS5yb3dzIHx8IFtdKS5tYXAoXG4gICAgICAgICAgICAgIGYgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgICAgICAgICByb3dDbGFzczogZi5jbGFzcyxcbiAgICAgICAgICAgICAgICAgIGNvbHVtbnM6IGYuZmllbGRzLm1hcChcbiAgICAgICAgICAgICAgICAgICAgZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBlID0gIGZpZWxkLnR5cGUgfHwgZmllbGQuZmllbGQ/LnR5cGUgfHwgKHRoaXMuZGVmYXVsdElucHV0ID8gJ2RlZmF1bHQnIDogJ3RleHQnKTtcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQucmVsYXRpb24gJiYgIWZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAnX19hdXRvX2NvbXBsZXRlX18nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRm9ybUNvbCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWVsZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGZpZWxkLmxhYmVsMThuIHx8IGZpZWxkLm5hbWUgfHwgZmllbGQuZmllbGQ/Lm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVNldDogZmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dENsYXNzOiBmaWVsZC5jbGFzcyxcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZTogKGZvcm06IEFic3RyYWN0Q29udHJvbCwgaW5wdXQ6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBpZihmaWVsZC5tZXRhPy5pZil7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheTogQXJyYXk8e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiAnZXEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGFueVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0+ID0gZmllbGQubWV0YS5pZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25kaXRpb25zID0gZGlzcGxheS5tYXAoY29uZGl0aW9uID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXRWYWx1ZSA9IGZvcm0udmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gR2V0VmFsdWVCeVBhdGgoaW5wdXRWYWx1ZSwgY29uZGl0aW9uLmZpZWxkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IGNvbmRpdGlvbi52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApLmZpbHRlcihrID0+ICFrKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAgY29uZGl0aW9ucy5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9yczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogZmllbGQucmVxdWlyZWQgfHwgZmllbGQuZmllbGQ/LnJlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaW46IGZpZWxkLm1pbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4OiBmaWVsZC5tYXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkxlbmd0aDogZmllbGQubWluTGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhMZW5ndGg6IGZpZWxkLm1heExlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybjogZmllbGQubWV0YT8ucGF0dGVybiA/IG5ldyBSZWdFeHAoZmllbGQubWV0YS5wYXR0ZXJuKTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZFRydWU6IGZpZWxkLnJlcXVpcmVkVHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIClcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICApO1xuICAgIHRoaXMuZm9ybVN1Yi5hZGQoc3ViKTtcbiAgfVxuXG4gIG9ic2VydmVUYWJsZSgpIHtcbiAgICBjb25zdCBzdWIgPSB0aGlzLmNtc1NlcnZpY2VcbiAgICAgIC50YWJsZXMkXG4gICAgICAucGlwZShtYXAoZiA9PiBmW3RoaXMudGFibGVOYW1lXSksIGZpbHRlcihmID0+IGYgIT09IHVuZGVmaW5lZCkpLnN1YnNjcmliZShcbiAgICAgICAgdGFibGUgPT4ge1xuICAgICAgICAgIHRoaXMucGFnaW5hdGlvbiA9IHsgLi4udGhpcy5kZWZhdWx0UGFnaW5hdGlvbiB9IHx8IHRoaXMucGFnaW5hdGlvbjtcbiAgICAgICAgICB0aGlzLnRhYmxlID0gdGFibGU7XG4gICAgICAgICAgdGhpcy5jb2x1bW5zID0gdGhpcy50YWJsZS5jb2x1bW5zLm1hcChmID0+IG5ldyBUYWJsZUNvbHVtbjxhbnk+KHtcbiAgICAgICAgICAgIGZpZWxkOiBmLmZpZWxkLm5hbWUsXG4gICAgICAgICAgICBkYXRhVHlwZTogZi5oaWRkZW4gPyAnaGlkZGVuJyA6KCBmLmZpZWxkLnR5cGUgfHwgJ3RleHQnKSxcbiAgICAgICAgICAgIGxhYmVsOiBmLmxhYmVsMThuIHx8IGYuZmllbGQubmFtZSxcbiAgICAgICAgICAgIGlkZW50aWZpZXI6IGYuZmllbGQuaWRlbnRpZmllcixcbiAgICAgICAgICAgIHRlbXBsYXRlTmFtZTogZi5jdXN0b21UZW1wbGF0ZSxcbiAgICAgICAgICAgIG9wdGlvbnM6IGYuZmllbGQub3B0aW9ucyxcbiAgICAgICAgICAgIGZpbHRlcmluZ0tleXM6IGYuZmlsdGVyaW5nS2V5cz8uam9pbignLCcpIHx8IGYubWV0YT8uZmlsdGVyaW5nS2V5cz8uam9pbignLCcpLFxuICAgICAgICAgICAgZmlsdGVyYWJsZTogZi5maWx0ZXJhYmxlLFxuICAgICAgICAgICAgaGlkZGVuOiBmLmhpZGRlbixcbiAgICAgICAgICAgIG1ldGE6IGYubWV0YSxcbiAgICAgICAgICAgIHNvcnRhYmxlOiBmLnNvcnRhYmxlLFxuICAgICAgICAgICAgZnJlZXplOiBmLmZyZWV6ZSxcbiAgICAgICAgICAgIGZpbHRlckNvbmRpdGlvbjogZi5maWx0ZXJDb25kaXRpb24sXG4gICAgICAgICAgICBmaWx0ZXJPcHRpb25zOiBmLmZpbHRlck9wdGlvbnMsXG4gICAgICAgICAgICBmaWx0ZXI6IGYuZmlsdGVyLFxuICAgICAgICAgICAgZmlyc3RTb3J0aW5nOiBmLmZpcnN0U29ydGluZyxcbiAgICAgICAgICAgIHdpZHRoOiBmLndpZHRoXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIHRoaXMuc2VhcmNoRmlyZS5uZXh0KHtzZWFyY2g6ICcnLCBwYWdpbmF0aW9uOiB0aGlzLnBhZ2luYXRpb259KVxuICAgICAgICAgLy8gdGhpcy5zZWFyY2goe3NlYXJjaDogJycsIHBhZ2luYXRpb246IHt9fSlcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB0aGlzLnRhYmxlU3ViLmFkZChzdWIpXG4gIH1cblxuICBvYnNlcnZlRW50aXR5KGVudGl0eU5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IHN1YiA9IHRoaXMuY21zU2VydmljZS5lbnRpdGllcyQucGlwZShcbiAgICAgIG1hcChmID0+IGZbZW50aXR5TmFtZV0pLFxuICAgICAgZmlsdGVyKGYgPT4gZiAhPT0gdW5kZWZpbmVkKVxuICAgICkuc3Vic2NyaWJlKFxuICAgICAgZiA9PiB7XG4gICAgICAgIHRoaXMuZW50aXR5ID0gZlxuICAgICAgfVxuICAgIClcbiAgICB0aGlzLmVudGl0eVN1Yi5hZGQoc3ViKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZihjaGFuZ2VzWydzaG93Rm9ybSddKSB7XG4gICAgICBpZighdGhpcy5zaG93Rm9ybSkgdGhpcy52YWx1ZSA9IHt9O1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sndGFibGVOYW1lJ10pIHtcbiAgICAgIGNvbnNvbGUubG9nKCd0YWJsZSBjaGFuZ2VkJylcbiAgICAgIHRoaXMub2JzZXJ2ZVRhYmxlKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydjcmVhdGVGb3JtTmFtZSddKSB7XG4gICAgICB0aGlzLm9ic2VydmVGb3JtKHRoaXMuY3JlYXRlRm9ybU5hbWUhKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZXNbJ2VudGl0eU5hbWUnXSkge1xuICAgICAgdGhpcy5maWx0ZXJpbmdEYXRhID0ge307XG4gICAgICB0aGlzLnNvcnRpbmdEYXRhID0gdW5kZWZpbmVkO1xuICAgICAgaWYodGhpcy50YWJsZUNvbXBvbmVudClcbiAgICAgICAgdGhpcy50YWJsZUNvbXBvbmVudC5zZWFyY2ggPSAnJ1xuICAgICAgdGhpcy5vYnNlcnZlRW50aXR5KHRoaXMuZW50aXR5TmFtZSEpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgc2VhcmNoKCRldmVudDogeyBzZWFyY2g6IHN0cmluZzsgcGFnaW5hdGlvbjogSVRhYmxlUGFnaW5hdGlvbiB9KSB7XG4gICAgaWYoISRldmVudC5wYWdpbmF0aW9uPy5wYWdlU2l6ZSkge1xuICAgICAgJGV2ZW50LnBhZ2luYXRpb24gPSB0aGlzLnBhZ2luYXRpb24gfHwge1xuICAgICAgICBwYWdlU2l6ZTogMTAsXG4gICAgICAgIHBhZ2VJbmRleDogMVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmN1cnJlbnRTZWFyY2ggPSAkZXZlbnQuc2VhcmNoIHx8ICcnO1xuXG4gICAgdGhpcy5maWx0ZXJpbmdEYXRhID0ge307XG4gICAgdGhpcy5wYWdpbmF0aW9uRGF0YSA9ICRldmVudC5wYWdpbmF0aW9uO1xuICAgIHRoaXMuY21zV3JhcHBlclNlcnZpY2UubG9hZCh0aGlzLnRhYmxlISxcbiAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgICRldmVudC5zZWFyY2gsXG4gICAgICAkZXZlbnQucGFnaW5hdGlvbixcbiAgICAgIHt9LFxuICAgICAgdGhpcy5zb3J0aW5nRGF0YSxcbiAgICAgIHRoaXMuYWRkaXRpb25hbERhdGEpLnN1YnNjcmliZShcbiAgICAgIGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhLmRhdGE7XG4gICAgICAgIHRoaXMudmlzaWJsZUl0ZW1zID0gZGF0YS5kYXRhO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24ucGFnZUNvdW50ID0gTWF0aC5jZWlsKGRhdGEucGFnaW5hdGlvbi50b3RhbCAvIHRoaXMucGFnaW5hdGlvbi5wYWdlU2l6ZSEpO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24udG90YWxDb3VudCA9IGRhdGEucGFnaW5hdGlvbi50b3RhbDtcbiAgICAgICAgLy90aGlzLnRhYmxlQ29tcG9uZW50LnJlZnJlc2hUYWJsZSgpO1xuICAgICAgICB0aGlzLmxpYlRhYmxlLnJlZnJlc2hUYWJsZSgpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIGZpbHRlcnNDaGFuZ2VkKCRldmVudDogeyBmaWx0ZXI6IElGaWx0ZXJPcHRpb25zPGFueT47IHBhZ2luYXRpb246IElUYWJsZVBhZ2luYXRpb24gfSkge1xuICAgIHRoaXMucGFnaW5hdGlvbiA9IHsgLi4udGhpcy5kZWZhdWx0UGFnaW5hdGlvbiB9O1xuICAgIHRoaXMuZmlsdGVyaW5nRGF0YSA9ICRldmVudC5maWx0ZXI7XG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5sb2FkKFxuICAgICAgdGhpcy50YWJsZSEsXG4gICAgICB0aGlzLmNvbHVtbnMsXG4gICAgICBcIlwiLFxuICAgICAgJGV2ZW50LnBhZ2luYXRpb24sXG4gICAgICAkZXZlbnQuZmlsdGVyLFxuICAgICAgdGhpcy5zb3J0aW5nRGF0YSxcbiAgICAgIHRoaXMuYWRkaXRpb25hbERhdGEpLnN1YnNjcmliZShcbiAgICAgIGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhLmRhdGE7XG4gICAgICAgIHRoaXMudmlzaWJsZUl0ZW1zID0gZGF0YS5kYXRhO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24ucGFnZUNvdW50ID0gTWF0aC5jZWlsKGRhdGEucGFnaW5hdGlvbi50b3RhbCAvIHRoaXMucGFnaW5hdGlvbi5wYWdlU2l6ZSEpO1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24udG90YWxDb3VudCA9IGRhdGEucGFnaW5hdGlvbi50b3RhbDtcbiAgICAgICAgdGhpcy5saWJUYWJsZS5yZWZyZXNoVGFibGUoKTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBzYXZlKCRldmVudDogRm9ybUdyb3VwKSB7XG4gICAgY29uc3QgdjogYW55ID0ge307XG4gICAgT2JqZWN0LmtleXMoJGV2ZW50LnZhbHVlKS5mb3JFYWNoKFxuICAgICAgZiA9PiB7XG4gICAgICAgIHZbZl0gPSAkZXZlbnQudmFsdWVbZl0gfHwgdW5kZWZpbmVkXG4gICAgICB9XG4gICAgKVxuICAgIHRoaXMuY21zV3JhcHBlclNlcnZpY2Uuc2F2ZSh0aGlzLmZvcm0hLCB2KVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoXG4gICAgICAgICAgKGVyKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdEVycm9yLmVtaXQoZXIpO1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXIpXG4gICAgICAgICAgfVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgZCA9PiB7XG4gICAgICAgIHRoaXMuc2VhcmNoRmlyZS5uZXh0KHtzZWFyY2g6ICcnLCBwYWdpbmF0aW9uOiB0aGlzLnBhZ2luYXRpb259KTtcbiAgICAgICAgdGhpcy5zaG93Rm9ybSA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dGb3JtQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICBpZih0aGlzLmZvcm0/LmtpbmQgPT09IEZvcm1LaW5kLkNSRUFURSkgdGhpcy5pdGVtQ3JlYXRlZC5lbWl0KGQpO1xuICAgICAgICBpZih0aGlzLmZvcm0/LmtpbmQgPT09IEZvcm1LaW5kLlVQREFURSkgdGhpcy5pdGVtVXBkYXRlZC5lbWl0KGQpO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBwcmVwYXJlVXBkYXRlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLm9ic2VydmVGb3JtKHRoaXMudXBkYXRlRm9ybU5hbWUhKTtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5zaG93Rm9ybUNoYW5nZS5lbWl0KHRydWUpXG4gIH1cblxuICBkZWxldGUocm93OiBhbnkpIHtcbiAgICBpZih0aGlzLmFza0ZvckRlbGV0ZSkge1xuICAgICAgY29uc3QgY28gPSBjb25maXJtKCdTZWkgc2ljdXJvPycpO1xuICAgICAgaWYoIWNvKSByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kZWxldGVDbGlja2VkLmVtaXQocm93KVxuXG4gICAgdGhpcy5jbXNXcmFwcGVyU2VydmljZS5kZWxldGUodGhpcy5lbnRpdHksIHJvdylcbiAgICAgIC5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKFxuICAgICAgICAgIGVyID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlRXJyb3IuZW1pdChyb3cpO1xuICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXIpO1xuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgIGQgPT4ge1xuICAgICAgICB0aGlzLnNlYXJjaEZpcmUubmV4dCh7c2VhcmNoOiAnJywgcGFnaW5hdGlvbjogdGhpcy5wYWdpbmF0aW9ufSk7XG4gICAgICAgIHRoaXMuaXRlbURlbGV0ZWQuZW1pdChkKTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBoYW5kbGVDcmVhdGVGb3JtKCkge1xuICAgIHRoaXMub2JzZXJ2ZUZvcm0odGhpcy5jcmVhdGVGb3JtTmFtZSEpXG4gICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDsgdGhpcy5zaG93Rm9ybUNoYW5nZS5lbWl0KHRydWUpXG4gIH1cblxuICBzb3J0aW5nQ2hhbmdlZCgkZXZlbnQ6IFNvcnRpbmdDaGFuZ2VkPGFueT4pIHtcbiAgICB0aGlzLnNvcnRpbmdEYXRhID0gJGV2ZW50O1xuICAgIHRoaXMuY21zV3JhcHBlclNlcnZpY2UubG9hZChcbiAgICAgIHRoaXMudGFibGUhLFxuICAgICAgdGhpcy5jb2x1bW5zLFxuICAgICAgdGhpcy5zZWFyY2hJbnB1dC52YWx1ZSB8fCAnJyxcbiAgICAgIHRoaXMucGFnaW5hdGlvbiEsXG4gICAgICB0aGlzLmZpbHRlcmluZ0RhdGEhLFxuICAgICAgdGhpcy5zb3J0aW5nRGF0YSxcbiAgICAgIHRoaXMuYWRkaXRpb25hbERhdGEpLnN1YnNjcmliZShcbiAgICAgIGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmRhdGEgPSBkYXRhLmRhdGE7XG4gICAgICAgIHRoaXMudmlzaWJsZUl0ZW1zID0gZGF0YS5kYXRhO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIGZpcmVkKCkge1xuICB9XG5cbiAgc2Nyb2xsZWRUb0JvdHRvbUhhbmRsZSgpIHtcbiAgICBpZih0aGlzLnZpc2libGVJdGVtcy5sZW5ndGggPT09IHRoaXMudG90YWxJdGVtcyB8fCAhdGhpcy52aXJ0dWFsU2Nyb2xsKSByZXR1cm4gO1xuICAgIHRoaXMuY21zV3JhcHBlclNlcnZpY2UubG9hZCh0aGlzLnRhYmxlISxcbiAgICAgIHRoaXMuY29sdW1ucyxcbiAgICAgIHRoaXMuY3VycmVudFNlYXJjaCEsXG4gICAgICB7XG4gICAgICAgIC4uLnRoaXMucGFnaW5hdGlvbixcbiAgICAgICAgcGFnZUluZGV4OiAodGhpcy5wYWdpbmF0aW9uPy5wYWdlSW5kZXggfHwgMCkgKyAxXG4gICAgICB9LFxuICAgICAgdGhpcy5maWx0ZXJpbmdEYXRhIHx8IHt9LFxuICAgICAgdGhpcy5zb3J0aW5nRGF0YSxcbiAgICAgIHRoaXMuYWRkaXRpb25hbERhdGEpLnN1YnNjcmliZShcbiAgICAgIGRhdGEgPT4ge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb24ucGFnZUluZGV4ID0gdGhpcy5wYWdpbmF0aW9uLnBhZ2VJbmRleCEgKyAxO1xuICAgICAgICB0aGlzLnZpc2libGVJdGVtcyA9IFsuLi50aGlzLnZpc2libGVJdGVtcywgLi4uZGF0YS5kYXRhXTtcbiAgICAgICAgLy90aGlzLnRhYmxlQ29tcG9uZW50LnJlZnJlc2hUYWJsZSgpO1xuICAgICAgICB0aGlzLmxpYlRhYmxlLnJlZnJlc2hUYWJsZSgpO1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIHNjcm9sbGVkVG9Ub3BIYW5kbGUoKSB7XG5cbiAgfVxufVxuIiwiPGxpYi1jbXMtdGFibGUgW2NvbHNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICBbYXN5bmNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICBbc2VhcmNoSW5wdXRdPVwic2VhcmNoSW5wdXRcIlxuICAgICAgICAgICAgICAgKHNlYXJjaEZpcmVkKT1cImZpcmVkKCk7c2VhcmNoRmlyZS5uZXh0KCRldmVudClcIlxuICAgICAgICAgICAgICAgW2RlZmF1bHRTZWFyY2hdPVwiZGVmYXVsdFNlYXJjaFwiXG4gICAgICAgICAgICAgICBbc2hvd1Jvd051bWJlcl09XCJzaG93Um93TnVtYmVyXCJcbiAgICAgICAgICAgICAgIChzb3J0aW5nQ2hhbmdlZCk9XCJzb3J0aW5nQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgIChmaWx0ZXJzQ2hhbmdlZCk9XCJmaWx0ZXJzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgIFtjb250ZXh0XT1cInRoaXNcIlxuICAgICAgICAgICAgICAgW2dldENsYXNzXT1cImdldENsYXNzXCJcbiAgICAgICAgICAgICAgIFtzaG93UGFnaW5hdGlvbl09XCJzaG93UGFnaW5hdGlvblwiXG4gICAgICAgICAgICAgICBbcGFnaW5hdGlvbl09XCJwYWdpbmF0aW9uXCJcbiAgICAgICAgICAgICAgIChzY3JvbGxlZFRvQm90dG9tKT1cInNjcm9sbGVkVG9Cb3R0b21IYW5kbGUoKVwiXG4gICAgICAgICAgICAgICAoc2Nyb2xsZWRUb1RvcCk9XCJzY3JvbGxlZFRvVG9wSGFuZGxlKClcIlxuICAgICAgICAgICAgICAgW2RhdGFdPVwidmlzaWJsZUl0ZW1zXCIgI2xpYlRhYmxlPjwvbGliLWNtcy10YWJsZT5cbjxsaWItdGFibGUgW2FzeW5jXT1cInRydWVcIlxuICAgICAgICAgICAqbmdJZj1cImZhbHNlXCJcbiAgICAgICAgICAgW2RhdGFdPVwidmlzaWJsZUl0ZW1zXCJcbiAgICAgICAgICAgW2ZpbHRlcmFibGVdPVwidGFibGVGaWx0ZXJhYmxlXCJcbiAgICAgICAgICAgWyhwYWdpbmF0aW9uKV09XCJwYWdpbmF0aW9uXCJcbiAgICAgICAgICAgKHNvcnRpbmdDaGFuZ2VkKT1cInNvcnRpbmdDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAoc2VhcmNoQ2hhbmdlZCk9XCJzZWFyY2goJGV2ZW50KVwiXG4gICAgICAgICAgIChmaWx0ZXJzQ2hhbmdlZCk9XCJmaWx0ZXJzQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgW2NvbHNdPVwiY29sdW1uc1wiPlxuICA8bmctdGVtcGxhdGUgbGV0LXZhbHVlIGNvbHVtblRlbXBsYXRlPVwidXBkYXRlXCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwicHJlcGFyZVVwZGF0ZSh2YWx1ZSlcIj5cbiAgICAgIFVwZGF0ZVxuICAgIDwvYnV0dG9uPlxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgY29sdW1uVGVtcGxhdGU9XCJkZWxldGVcIiBsZXQtdmFsdWU+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlKHZhbHVlKVwiPlxuICAgICAgZGVsZXRlXG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxidXR0b24gYWN0aW9ucyAqbmdJZj1cInRhYmxlPy5hY3Rpb25zPy5jcmVhdGVcIiAoY2xpY2spPVwiaGFuZGxlQ3JlYXRlRm9ybSgpXCI+XG4gICAgY3JlYXRlXG4gIDwvYnV0dG9uPlxuPC9saWItdGFibGU+XG48bmctdGVtcGxhdGUgI2Zvcm1UZW1wbGF0ZT5cbiAgPGpzb24tZm9ybS1idWlsZGVyLXYyICNjdXN0b21Gb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dGb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdWJtaXRDb25kaXRpb25dPVwic3VibWl0Q29uZGl0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzdWJtaXRGb3JtKT1cInNhdmUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbKGZvcm1WYWx1ZSldPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1WYWx1ZUNoYW5nZSk9XCJ0aGlzLmZvcm1WYWx1ZUNoYW5nZXMuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtXT1cImZvcm1Db25maWd1cmF0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic3VibWl0LWNsYXNzXCJcblxuICAgICAgICAgICBbY2xhc3MuaW52YWxpZF09XCJzdWJtaXRDb25kaXRpb24gPT09ICdWQUxJRCcgJiYgIWZvcm1JdGVtPy5mb3JtR3JvdXA/LnZhbGlkXCJcbiAgICAgICAgICAgc3VibWl0VGVtcGxhdGU+XG4gICAgICAgIDxpbnB1dCAoY2xpY2spPVwic3VibWl0Q2xpY2tlZC5lbWl0KClcIiB0eXBlPVwic3VibWl0XCI+XG4gICAgICA8L2Rpdj5cbiAgPC9qc29uLWZvcm0tYnVpbGRlci12Mj5cbjwvbmctdGVtcGxhdGU+XG4iXX0= |
@@ -395,6 +395,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", deleteError: "deleteError", 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"] }] }); | ||
| 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", deleteError: "deleteError", 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 [pagination]=\"pagination\"\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\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" }] | ||
| 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 [pagination]=\"pagination\"\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 () { | ||
@@ -401,0 +401,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 @Output() deleteError: 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 if(this.askForDelete) {\n const co = confirm('Sei sicuro?');\n if(!co) return;\n }\n\n this.deleteClicked.emit(row)\n\n this.cmsWrapperService.delete(this.entity, row)\n .pipe(\n catchError(\n er => {\n this.deleteError.emit(row);\n return throwError(er);\n }\n )\n )\n .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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"} | ||
| {"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 @Output() deleteError: 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 if(this.askForDelete) {\n const co = confirm('Sei sicuro?');\n if(!co) return;\n }\n\n this.deleteClicked.emit(row)\n\n this.cmsWrapperService.delete(this.entity, row)\n .pipe(\n catchError(\n er => {\n this.deleteError.emit(row);\n return throwError(er);\n }\n )\n )\n .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 [pagination]=\"pagination\"\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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"} |
@@ -383,6 +383,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", deleteError: "deleteError", 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"] }] }); | ||
| 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", deleteError: "deleteError", 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 [pagination]=\"pagination\"\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\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" }] | ||
| 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 [pagination]=\"pagination\"\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: [{ | ||
@@ -389,0 +389,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 @Output() deleteError: 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 if(this.askForDelete) {\n const co = confirm('Sei sicuro?');\n if(!co) return;\n }\n\n this.deleteClicked.emit(row)\n\n this.cmsWrapperService.delete(this.entity, row)\n .pipe(\n catchError(\n er => {\n this.deleteError.emit(row);\n return throwError(er);\n }\n )\n )\n .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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"} | ||
| {"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 @Output() deleteError: 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 if(this.askForDelete) {\n const co = confirm('Sei sicuro?');\n if(!co) return;\n }\n\n this.deleteClicked.emit(row)\n\n this.cmsWrapperService.delete(this.entity, row)\n .pipe(\n catchError(\n er => {\n this.deleteError.emit(row);\n return throwError(er);\n }\n )\n )\n .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 [pagination]=\"pagination\"\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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"} |
+1
-1
| { | ||
| "name": "@odda-studio/cms-wrapper", | ||
| "version": "0.0.54", | ||
| "version": "0.0.55", | ||
| "peerDependencies": { | ||
@@ -5,0 +5,0 @@ "@angular/common": "^15.2.7", |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
296323
0.14%