ontimize-web-ngx 15.8.2 → 15.9.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/esm2020/lib/components/grid/o-grid.component.mjs +2 -2
  2. package/esm2020/lib/components/input/listpicker/o-list-picker-dialog.component.mjs +2 -2
  3. package/esm2020/lib/components/input/search-input/o-search-input.component.mjs +2 -2
  4. package/esm2020/lib/components/o-data-toolbar/o-data-toolbar.component.mjs +2 -2
  5. package/esm2020/lib/components/o-service-component.class.mjs +16 -4
  6. package/esm2020/lib/components/table/column/cell-renderer/currency/o-table-cell-renderer-currency.component.mjs +19 -4
  7. package/esm2020/lib/components/table/column/o-table-column.component.mjs +3 -2
  8. package/esm2020/lib/components/table/extensions/header/table-quickfilter/o-table-quickfilter.component.mjs +2 -2
  9. package/esm2020/lib/components/table/o-table.component.mjs +3 -3
  10. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.component.mjs +45 -6
  11. package/esm2020/lib/layouts/form-layout/o-form-layout-manager.module.mjs +11 -3
  12. package/esm2020/lib/layouts/form-layout/sidenav/o-form-layout-sidenav.component.mjs +132 -0
  13. package/esm2020/lib/layouts/form-layout/sidenav/options/o-form-layout-sidenav-options.directive.mjs +42 -0
  14. package/esm2020/lib/layouts/index.mjs +3 -1
  15. package/esm2020/lib/services/base-service.class.mjs +2 -1
  16. package/esm2020/lib/services/request-adapter/base-request-argument.adapter.mjs +4 -1
  17. package/esm2020/lib/types/form-layout-sidenav-options.type.mjs +2 -0
  18. package/fesm2015/ontimize-web-ngx.mjs +274 -36
  19. package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
  20. package/fesm2020/ontimize-web-ngx.mjs +269 -36
  21. package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
  22. package/lib/components/o-service-component.class.d.ts +7 -2
  23. package/lib/components/table/column/cell-renderer/currency/o-table-cell-renderer-currency.component.d.ts +4 -1
  24. package/lib/components/table/column/o-table-column.component.d.ts +2 -1
  25. package/lib/layouts/form-layout/o-form-layout-manager.component.d.ts +13 -4
  26. package/lib/layouts/form-layout/o-form-layout-manager.module.d.ts +9 -7
  27. package/lib/layouts/form-layout/sidenav/o-form-layout-sidenav.component.d.ts +40 -0
  28. package/lib/layouts/form-layout/sidenav/options/o-form-layout-sidenav-options.directive.d.ts +16 -0
  29. package/lib/layouts/index.d.ts +2 -0
  30. package/lib/services/request-adapter/base-request-argument.adapter.d.ts +3 -0
  31. package/lib/types/form-layout-sidenav-options.type.d.ts +6 -0
  32. package/package.json +1 -1
  33. package/theme.scss +102 -0
  34. package/theming/styles/ontimize-v8/o-table-style.scss +0 -2
@@ -335,7 +335,7 @@ OGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
335
335
  OntimizeServiceProvider,
336
336
  ComponentStateServiceProvider,
337
337
  { provide: O_COMPONENT_STATE_SERVICE, useClass: OGridComponentStateService },
338
- ], queries: [{ propertyName: "inputGridItems", predicate: i0.forwardRef(function () { return OGridItemComponent; }) }], viewQueries: [{ propertyName: "matpaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "gridItemDirectives", predicate: OGridItemDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [style.display]=\"isVisible()? '' : 'none'\" class=\"o-grid-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n\n <!--TOOLBAR-->\n <o-data-toolbar *ngIf=\"hasControls()\" class=\"o-grid-toolbar\" [title]=\"title\" [show-title]=\"hasTitle()\">\n <ng-container o-data-toolbar-projection-start>\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" type=\"button\" [disabled]=\"!enabledInsertButton\"\n class=\"o-grid-add-button o-grid-button text\" mat-stroked-button aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'ADD' | oTranslate }}</span>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-stroked-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\" *ngIf=\"refreshButton\"\n class=\"o-grid-button text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n </ng-container>\n\n <ng-template #showButtonsWithoutText>\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" type=\"button\"\n class=\"o-grid-button o-grid-add-button no-text\" mat-icon-button aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-icon-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\" *ngIf=\"refreshButton\"\n class=\"o-grid-button no-text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n </ng-template>\n\n <!--O-GRID-PAGINATOR-->\n <div class=\"o-grid-paginator\" *ngIf=\"showPageSize\">\n <div class=\"o-grid-page-size-label\">{{ 'GRID.ITEMS_PER_PAGE' | oTranslate }}:</div>\n <mat-form-field class=\"o-grid-select-page\">\n <mat-select placeholder=\"\" #pageSizeSelect [(value)]=\"queryRows\" (selectionChange)=\"pageSizeChanged()\">\n <mat-option *ngFor=\"let page of pageSizeOptions\" [value]=\"page\">\n {{ page }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!--O-GRID-SORT-->\n <div class=\"o-grid-sort\" *ngIf=\"showSort && sortableColumns.length > 0\">\n <mat-form-field class=\"o-grid-select-sort\">\n <mat-icon matPrefix>sort</mat-icon>\n <mat-select #sortSelect [value]=\"currentOrderColumn\" (selectionChange)=\"sortColumnChanged($event)\"\n placeholder=\" {{ 'GRID.SORT_BY' | oTranslate }}\">\n <mat-option *ngFor=\"let column of sortableColumns; let i = index\" [value]=\"i\">\n {{ getSortOptionText(column) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n </ng-container>\n <ng-content select=\"[o-grid-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <o-search-input *ngIf=\"quickFilter\" [columns]=\"quickFilterColumns\" [filter-case-sensitive]=\"filterCaseSensitive\"\n [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\" [placeholder]=\"quickFilterPlaceholder\" [appearance]=\"quickFilterAppearance\"\n float-label=\"never\"></o-search-input>\n </ng-container>\n </o-data-toolbar>\n\n <!--no results-->\n <div class=\"o-grid-no-results fill-remaining\" *ngIf=\"gridItems.length === 0\" fxLayoutAlign=\"center start\" layout-padding\n [ngStyle]=\"{'visibility': (loading | async) === false ? 'visible':'hidden'}\">\n {{'GRID.EMPTY' | oTranslate}}\n <ng-container *ngIf=\"quickFilter && searchInputComponent && searchInputComponent.getValue() && searchInputComponent.getValue().length > 0\">\n {{ 'GRID.EMPTY_USING_FILTER' | oTranslate : { values: [ searchInputComponent.getValue()] } }}\n </ng-container>\n </div>\n\n\n <!--MAT-GRID-LIST-->\n <mat-grid-list [cols]=\"cols\" [gutterSize]=\"gutterSize\" [rowHeight]=\"gridItemHeight\" class=\"o-mat-grid-list fill-remaining\"\n *ngIf=\"gridItems.length > 0\" [ngStyle]=\"{'visibility': (loading | async) === false ? 'visible':'hidden'}\">\n <mat-grid-tile o-grid-item *ngFor=\"let item of gridItems\" [colspan]=\"item.colspan\" [rowspan]=\"item.rowspan\">\n <ng-container *ngTemplateOutlet=\"item.template\"></ng-container>\n </mat-grid-tile>\n </mat-grid-list>\n <button type=\"button\" aria-label=\"Insert\" *ngIf=\"insertButton && insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" mat-fab (click)=\"add()\"\n class=\"o-grid-add-floatable-button\" [class.o-grid-add-bottom-floatable-button]=\"insertButtonPosition ==='bottom'\"\n [class.o-grid-add-top-floatable-button]=\"insertButtonPosition ==='top'\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!-- GRID FOOTER -->\n <div *ngIf=\"!paginationControls && showFooter && (loading | async)===false\" fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"o-grid-footer\">\n <button type=\"button\" mat-button *ngIf=\"getDataArray().length < totalRecords && getDataArray().length>0\" (click)=\"loadMore()\"\n class=\"mat-raised-button\">\n {{ 'GRID.BUTTON_NEXT' | oTranslate }}\n </button>\n <span fxFlex></span>\n <span class=\"o-grid-totals\">{{ 'GRID.TEXT_SHOWN_ITEMS' | oTranslate :{values: [getDataArray().length, totalRecords]}\n }}</span>\n </div>\n\n <mat-paginator class=\"o-mat-paginator\" #paginator *ngIf=\"paginationControls && showFooter\" [length]=\"totalRecords\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"pageSizeOptions\" [pageIndex]=\"currentPage\" [showFirstLastButtons]=\"true\" (page)=\"onChangePage($event)\"\n [ngStyle]=\"{'visibility': (loading | async) === false ? 'visible':'hidden'}\"></mat-paginator>\n\n <div *ngIf=\"loading | async\" fxLayout=\"row\" fxLayoutAlign=\"center end\" class=\"o-loading-blocker\">\n <div fxLayoutAlign=\"center center\" [class.o-spinner-container-controls]=\"hasControls()\" class=\"o-spinner-container\">\n <o-grid-skeleton></o-grid-skeleton>\n </div>\n </div>\n\n\n</div>\n", styles: [".o-grid{height:100%}.o-grid .o-grid-container{position:relative;height:100%;display:flex}.o-grid .o-grid-container .o-grid-toolbar .mat-mdc-form-field-subscript-wrapper{display:none}.o-grid .o-grid-container .o-grid-no-results{padding:16px}.o-grid .o-grid-container .o-grid-paginator,.o-grid .o-grid-container .o-grid-sort{margin-right:1em}.o-grid .o-grid-container .o-grid-paginator{display:flex}.o-grid .o-grid-container .o-grid-paginator .o-grid-select-page{width:60px}.o-grid .o-grid-container .o-grid-paginator .o-grid-page-size-label{margin:0 4px 0 8px;align-self:center}.o-grid .o-grid-container .o-grid-footer .o-grid-totals{margin-right:8px;font-size:14px}.o-grid .o-grid-container .o-grid-footer,.o-grid .o-grid-container .o-mat-paginator{flex-shrink:0}.o-grid .o-grid-container .o-loading-blocker{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container{width:100%;height:100%}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container.o-spinner-container-controls{height:calc(100% - 64px)}.o-grid.o-grid-fixed,.o-grid.o-grid-fixed .o-grid-container{max-height:100%;height:100%}.o-grid.o-grid-fixed .o-mat-grid-list{overflow:auto;padding-bottom:0!important}.o-grid.o-grid-fixed .o-grid-footer,.o-grid.o-grid-fixed .o-mat-paginator{flex:0 0 auto}.o-grid .o-grid-add-floatable-button{right:12px;position:absolute}.o-grid .o-grid-add-floatable-button.o-grid-add-bottom-floatable-button{bottom:36px}.o-grid .o-grid-add-floatable-button.o-grid-add-top-floatable-button{top:66px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.OSearchInputComponent, selector: "o-search-input", inputs: ["placeholder", "label", "width", "float-label", "appearance", "columns", "filter-case-sensitive", "show-case-sensitive-checkbox", "show-menu"], outputs: ["onSearch"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatFabButton, selector: "button[mat-fab]", inputs: ["disabled", "disableRipple", "color", "tabIndex", "extended"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i7.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i12.ODataToolbarComponent, selector: "o-data-toolbar", inputs: ["show-title", "title"] }, { kind: "directive", type: i13.OGridItemDirective, selector: "mat-grid-tile[o-grid-item]" }, { kind: "component", type: i14.OGridSkeletonComponent, selector: "o-grid-skeleton" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
338
+ ], queries: [{ propertyName: "inputGridItems", predicate: i0.forwardRef(function () { return OGridItemComponent; }) }], viewQueries: [{ propertyName: "matpaginator", first: true, predicate: MatPaginator, descendants: true }, { propertyName: "gridItemDirectives", predicate: OGridItemDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [style.display]=\"isVisible()? '' : 'none'\" class=\"o-grid-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n\n <!--TOOLBAR-->\n <o-data-toolbar *ngIf=\"hasControls()\" class=\"o-grid-toolbar\" [title]=\"title\" [show-title]=\"hasTitle()\">\n <ng-container o-data-toolbar-projection-start>\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" type=\"button\" [disabled]=\"!enabledInsertButton\"\n class=\"o-grid-add-button o-grid-button text\" mat-stroked-button aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'ADD' | oTranslate }}</span>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-stroked-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\" *ngIf=\"refreshButton\"\n class=\"o-grid-button text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n </ng-container>\n\n <ng-template #showButtonsWithoutText>\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" type=\"button\"\n class=\"o-grid-button o-grid-add-button no-text\" mat-icon-button aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-icon-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\" *ngIf=\"refreshButton\"\n class=\"o-grid-button no-text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n </ng-template>\n\n <!--O-GRID-PAGINATOR-->\n <div class=\"o-grid-paginator\" *ngIf=\"showPageSize\">\n <div class=\"o-grid-page-size-label\">{{ 'GRID.ITEMS_PER_PAGE' | oTranslate }}:</div>\n <mat-form-field class=\"o-grid-select-page\">\n <mat-select placeholder=\"\" #pageSizeSelect [(value)]=\"queryRows\" (selectionChange)=\"pageSizeChanged()\">\n <mat-option *ngFor=\"let page of pageSizeOptions\" [value]=\"page\">\n {{ page }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!--O-GRID-SORT-->\n <div class=\"o-grid-sort\" *ngIf=\"showSort && sortableColumns.length > 0\">\n <mat-form-field class=\"o-grid-select-sort\">\n <mat-icon matPrefix>sort</mat-icon>\n <mat-select #sortSelect [value]=\"currentOrderColumn\" (selectionChange)=\"sortColumnChanged($event)\"\n placeholder=\" {{ 'GRID.SORT_BY' | oTranslate }}\">\n <mat-option *ngFor=\"let column of sortableColumns; let i = index\" [value]=\"i\">\n {{ getSortOptionText(column) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n </ng-container>\n <ng-content select=\"[o-grid-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <o-search-input *ngIf=\"quickFilter\" [columns]=\"quickFilterColumns\" [filter-case-sensitive]=\"filterCaseSensitive\"\n [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\" [placeholder]=\"quickFilterPlaceholder\" [appearance]=\"quickFilterAppearance\"\n float-label=\"never\"></o-search-input>\n </ng-container>\n </o-data-toolbar>\n\n <!--no results-->\n <div class=\"o-grid-no-results fill-remaining\" *ngIf=\"gridItems.length === 0\" fxLayoutAlign=\"center start\" layout-padding\n [ngStyle]=\"{'visibility': (loading | async) === false ? 'visible':'hidden'}\">\n {{'GRID.EMPTY' | oTranslate}}\n <ng-container *ngIf=\"quickFilter && searchInputComponent && searchInputComponent.getValue() && searchInputComponent.getValue().length > 0\">\n {{ 'GRID.EMPTY_USING_FILTER' | oTranslate : { values: [ searchInputComponent.getValue()] } }}\n </ng-container>\n </div>\n\n\n <!--MAT-GRID-LIST-->\n <mat-grid-list [cols]=\"cols\" [gutterSize]=\"gutterSize\" [rowHeight]=\"gridItemHeight\" class=\"o-mat-grid-list fill-remaining\"\n *ngIf=\"gridItems.length > 0\" [ngStyle]=\"{'visibility': (loading | async) === false ? 'visible':'hidden'}\">\n <mat-grid-tile o-grid-item *ngFor=\"let item of gridItems\" [colspan]=\"item.colspan\" [rowspan]=\"item.rowspan\">\n <ng-container *ngTemplateOutlet=\"item.template\"></ng-container>\n </mat-grid-tile>\n </mat-grid-list>\n <button type=\"button\" aria-label=\"Insert\" *ngIf=\"insertButton && insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" mat-fab (click)=\"add()\"\n class=\"o-grid-add-floatable-button\" [class.o-grid-add-bottom-floatable-button]=\"insertButtonPosition ==='bottom'\"\n [class.o-grid-add-top-floatable-button]=\"insertButtonPosition ==='top'\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!-- GRID FOOTER -->\n <div *ngIf=\"!paginationControls && showFooter && (loading | async)===false\" fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"o-grid-footer\">\n <button type=\"button\" mat-button *ngIf=\"getDataArray().length < totalRecords && getDataArray().length>0\" (click)=\"loadMore()\"\n class=\"mat-raised-button\">\n {{ 'GRID.BUTTON_NEXT' | oTranslate }}\n </button>\n <span fxFlex></span>\n <span class=\"o-grid-totals\">{{ 'GRID.TEXT_SHOWN_ITEMS' | oTranslate :{values: [getDataArray().length, totalRecords]}\n }}</span>\n </div>\n\n <mat-paginator class=\"o-mat-paginator\" #paginator *ngIf=\"paginationControls && showFooter\" [length]=\"totalRecords\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"pageSizeOptions\" [pageIndex]=\"currentPage\" [showFirstLastButtons]=\"true\" (page)=\"onChangePage($event)\"\n [ngStyle]=\"{'visibility': (loading | async) === false ? 'visible':'hidden'}\"></mat-paginator>\n\n <div *ngIf=\"loading | async\" fxLayout=\"row\" fxLayoutAlign=\"center end\" class=\"o-loading-blocker\">\n <div fxLayoutAlign=\"center center\" [class.o-spinner-container-controls]=\"hasControls()\" class=\"o-spinner-container\">\n <o-grid-skeleton></o-grid-skeleton>\n </div>\n </div>\n\n\n</div>\n", styles: [".o-grid{height:100%}.o-grid .o-grid-container{position:relative;height:100%;display:flex}.o-grid .o-grid-container .o-grid-toolbar{margin-bottom:12px}.o-grid .o-grid-container .o-grid-toolbar .mat-mdc-form-field-type-mat-select .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:12px}.o-grid .o-grid-container .o-grid-no-results{padding:16px}.o-grid .o-grid-container .o-grid-paginator,.o-grid .o-grid-container .o-grid-sort{margin-right:1em}.o-grid .o-grid-container .o-grid-paginator{display:flex}.o-grid .o-grid-container .o-grid-paginator .o-grid-select-page{width:60px}.o-grid .o-grid-container .o-grid-paginator .o-grid-page-size-label{margin:0 4px 0 8px;align-self:center}.o-grid .o-grid-container .o-grid-footer .o-grid-totals{margin-right:8px;font-size:14px}.o-grid .o-grid-container .o-grid-footer,.o-grid .o-grid-container .o-mat-paginator{flex-shrink:0}.o-grid .o-grid-container .o-loading-blocker{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container{width:100%;height:100%}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container.o-spinner-container-controls{height:calc(100% - 64px)}.o-grid.o-grid-fixed,.o-grid.o-grid-fixed .o-grid-container{max-height:100%;height:100%}.o-grid.o-grid-fixed .o-mat-grid-list{overflow:auto;padding-bottom:0!important}.o-grid.o-grid-fixed .o-grid-footer,.o-grid.o-grid-fixed .o-mat-paginator{flex:0 0 auto}.o-grid .o-grid-add-floatable-button{right:12px;position:absolute}.o-grid .o-grid-add-floatable-button.o-grid-add-bottom-floatable-button{bottom:36px}.o-grid .o-grid-add-floatable-button.o-grid-add-top-floatable-button{top:66px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.OSearchInputComponent, selector: "o-search-input", inputs: ["placeholder", "label", "width", "float-label", "appearance", "columns", "filter-case-sensitive", "show-case-sensitive-checkbox", "show-menu"], outputs: ["onSearch"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatFabButton, selector: "button[mat-fab]", inputs: ["disabled", "disableRipple", "color", "tabIndex", "extended"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { kind: "component", type: i7.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i10.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i11.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i12.ODataToolbarComponent, selector: "o-data-toolbar", inputs: ["show-title", "title"] }, { kind: "directive", type: i13.OGridItemDirective, selector: "mat-grid-tile[o-grid-item]" }, { kind: "component", type: i14.OGridSkeletonComponent, selector: "o-grid-skeleton" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
339
339
  __decorate([
340
340
  BooleanInputConverter(),
341
341
  __metadata("design:type", Boolean)
@@ -377,7 +377,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
377
377
  ], inputs: DEFAULT_INPUTS_O_GRID, encapsulation: ViewEncapsulation.None, host: {
378
378
  '[class.o-grid]': 'true',
379
379
  '[class.o-grid-fixed]': 'fixedHeader'
380
- }, template: "<div [style.display]=\"isVisible()? '' : 'none'\" class=\"o-grid-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n\n <!--TOOLBAR-->\n <o-data-toolbar *ngIf=\"hasControls()\" class=\"o-grid-toolbar\" [title]=\"title\" [show-title]=\"hasTitle()\">\n <ng-container o-data-toolbar-projection-start>\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" type=\"button\" [disabled]=\"!enabledInsertButton\"\n class=\"o-grid-add-button o-grid-button text\" mat-stroked-button aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'ADD' | oTranslate }}</span>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-stroked-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\" *ngIf=\"refreshButton\"\n class=\"o-grid-button text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n </ng-container>\n\n <ng-template #showButtonsWithoutText>\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" type=\"button\"\n class=\"o-grid-button o-grid-add-button no-text\" mat-icon-button aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-icon-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\" *ngIf=\"refreshButton\"\n class=\"o-grid-button no-text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n </ng-template>\n\n <!--O-GRID-PAGINATOR-->\n <div class=\"o-grid-paginator\" *ngIf=\"showPageSize\">\n <div class=\"o-grid-page-size-label\">{{ 'GRID.ITEMS_PER_PAGE' | oTranslate }}:</div>\n <mat-form-field class=\"o-grid-select-page\">\n <mat-select placeholder=\"\" #pageSizeSelect [(value)]=\"queryRows\" (selectionChange)=\"pageSizeChanged()\">\n <mat-option *ngFor=\"let page of pageSizeOptions\" [value]=\"page\">\n {{ page }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!--O-GRID-SORT-->\n <div class=\"o-grid-sort\" *ngIf=\"showSort && sortableColumns.length > 0\">\n <mat-form-field class=\"o-grid-select-sort\">\n <mat-icon matPrefix>sort</mat-icon>\n <mat-select #sortSelect [value]=\"currentOrderColumn\" (selectionChange)=\"sortColumnChanged($event)\"\n placeholder=\" {{ 'GRID.SORT_BY' | oTranslate }}\">\n <mat-option *ngFor=\"let column of sortableColumns; let i = index\" [value]=\"i\">\n {{ getSortOptionText(column) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n </ng-container>\n <ng-content select=\"[o-grid-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <o-search-input *ngIf=\"quickFilter\" [columns]=\"quickFilterColumns\" [filter-case-sensitive]=\"filterCaseSensitive\"\n [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\" [placeholder]=\"quickFilterPlaceholder\" [appearance]=\"quickFilterAppearance\"\n float-label=\"never\"></o-search-input>\n </ng-container>\n </o-data-toolbar>\n\n <!--no results-->\n <div class=\"o-grid-no-results fill-remaining\" *ngIf=\"gridItems.length === 0\" fxLayoutAlign=\"center start\" layout-padding\n [ngStyle]=\"{'visibility': (loading | async) === false ? 'visible':'hidden'}\">\n {{'GRID.EMPTY' | oTranslate}}\n <ng-container *ngIf=\"quickFilter && searchInputComponent && searchInputComponent.getValue() && searchInputComponent.getValue().length > 0\">\n {{ 'GRID.EMPTY_USING_FILTER' | oTranslate : { values: [ searchInputComponent.getValue()] } }}\n </ng-container>\n </div>\n\n\n <!--MAT-GRID-LIST-->\n <mat-grid-list [cols]=\"cols\" [gutterSize]=\"gutterSize\" [rowHeight]=\"gridItemHeight\" class=\"o-mat-grid-list fill-remaining\"\n *ngIf=\"gridItems.length > 0\" [ngStyle]=\"{'visibility': (loading | async) === false ? 'visible':'hidden'}\">\n <mat-grid-tile o-grid-item *ngFor=\"let item of gridItems\" [colspan]=\"item.colspan\" [rowspan]=\"item.rowspan\">\n <ng-container *ngTemplateOutlet=\"item.template\"></ng-container>\n </mat-grid-tile>\n </mat-grid-list>\n <button type=\"button\" aria-label=\"Insert\" *ngIf=\"insertButton && insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" mat-fab (click)=\"add()\"\n class=\"o-grid-add-floatable-button\" [class.o-grid-add-bottom-floatable-button]=\"insertButtonPosition ==='bottom'\"\n [class.o-grid-add-top-floatable-button]=\"insertButtonPosition ==='top'\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!-- GRID FOOTER -->\n <div *ngIf=\"!paginationControls && showFooter && (loading | async)===false\" fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"o-grid-footer\">\n <button type=\"button\" mat-button *ngIf=\"getDataArray().length < totalRecords && getDataArray().length>0\" (click)=\"loadMore()\"\n class=\"mat-raised-button\">\n {{ 'GRID.BUTTON_NEXT' | oTranslate }}\n </button>\n <span fxFlex></span>\n <span class=\"o-grid-totals\">{{ 'GRID.TEXT_SHOWN_ITEMS' | oTranslate :{values: [getDataArray().length, totalRecords]}\n }}</span>\n </div>\n\n <mat-paginator class=\"o-mat-paginator\" #paginator *ngIf=\"paginationControls && showFooter\" [length]=\"totalRecords\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"pageSizeOptions\" [pageIndex]=\"currentPage\" [showFirstLastButtons]=\"true\" (page)=\"onChangePage($event)\"\n [ngStyle]=\"{'visibility': (loading | async) === false ? 'visible':'hidden'}\"></mat-paginator>\n\n <div *ngIf=\"loading | async\" fxLayout=\"row\" fxLayoutAlign=\"center end\" class=\"o-loading-blocker\">\n <div fxLayoutAlign=\"center center\" [class.o-spinner-container-controls]=\"hasControls()\" class=\"o-spinner-container\">\n <o-grid-skeleton></o-grid-skeleton>\n </div>\n </div>\n\n\n</div>\n", styles: [".o-grid{height:100%}.o-grid .o-grid-container{position:relative;height:100%;display:flex}.o-grid .o-grid-container .o-grid-toolbar .mat-mdc-form-field-subscript-wrapper{display:none}.o-grid .o-grid-container .o-grid-no-results{padding:16px}.o-grid .o-grid-container .o-grid-paginator,.o-grid .o-grid-container .o-grid-sort{margin-right:1em}.o-grid .o-grid-container .o-grid-paginator{display:flex}.o-grid .o-grid-container .o-grid-paginator .o-grid-select-page{width:60px}.o-grid .o-grid-container .o-grid-paginator .o-grid-page-size-label{margin:0 4px 0 8px;align-self:center}.o-grid .o-grid-container .o-grid-footer .o-grid-totals{margin-right:8px;font-size:14px}.o-grid .o-grid-container .o-grid-footer,.o-grid .o-grid-container .o-mat-paginator{flex-shrink:0}.o-grid .o-grid-container .o-loading-blocker{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container{width:100%;height:100%}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container.o-spinner-container-controls{height:calc(100% - 64px)}.o-grid.o-grid-fixed,.o-grid.o-grid-fixed .o-grid-container{max-height:100%;height:100%}.o-grid.o-grid-fixed .o-mat-grid-list{overflow:auto;padding-bottom:0!important}.o-grid.o-grid-fixed .o-grid-footer,.o-grid.o-grid-fixed .o-mat-paginator{flex:0 0 auto}.o-grid .o-grid-add-floatable-button{right:12px;position:absolute}.o-grid .o-grid-add-floatable-button.o-grid-add-bottom-floatable-button{bottom:36px}.o-grid .o-grid-add-floatable-button.o-grid-add-top-floatable-button{top:66px}\n"] }]
380
+ }, template: "<div [style.display]=\"isVisible()? '' : 'none'\" class=\"o-grid-container\" fxLayout=\"column\" fxLayoutAlign=\"start stretch\">\n\n <!--TOOLBAR-->\n <o-data-toolbar *ngIf=\"hasControls()\" class=\"o-grid-toolbar\" [title]=\"title\" [show-title]=\"hasTitle()\">\n <ng-container o-data-toolbar-projection-start>\n <ng-container *ngIf=\"showButtonsText;else showButtonsWithoutText\">\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" type=\"button\" [disabled]=\"!enabledInsertButton\"\n class=\"o-grid-add-button o-grid-button text\" mat-stroked-button aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n <span>{{ 'ADD' | oTranslate }}</span>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-stroked-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\" *ngIf=\"refreshButton\"\n class=\"o-grid-button text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n <span>{{ 'REFRESH' | oTranslate }}</span>\n </button>\n </ng-container>\n\n <ng-template #showButtonsWithoutText>\n <!-- button new-->\n <button *ngIf=\"insertButton && !insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" type=\"button\"\n class=\"o-grid-button o-grid-add-button no-text\" mat-icon-button aria-label=\"Insert\" (click)=\"add()\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!--button refresh-->\n <button type=\"button\" mat-icon-button aria-label=\"Refresh\" [disabled]=\"!enabledRefreshButton\" (click)=\"reloadData()\" *ngIf=\"refreshButton\"\n class=\"o-grid-button no-text\">\n <mat-icon svgIcon=\"ontimize:autorenew\"></mat-icon>\n </button>\n </ng-template>\n\n <!--O-GRID-PAGINATOR-->\n <div class=\"o-grid-paginator\" *ngIf=\"showPageSize\">\n <div class=\"o-grid-page-size-label\">{{ 'GRID.ITEMS_PER_PAGE' | oTranslate }}:</div>\n <mat-form-field class=\"o-grid-select-page\">\n <mat-select placeholder=\"\" #pageSizeSelect [(value)]=\"queryRows\" (selectionChange)=\"pageSizeChanged()\">\n <mat-option *ngFor=\"let page of pageSizeOptions\" [value]=\"page\">\n {{ page }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n <!--O-GRID-SORT-->\n <div class=\"o-grid-sort\" *ngIf=\"showSort && sortableColumns.length > 0\">\n <mat-form-field class=\"o-grid-select-sort\">\n <mat-icon matPrefix>sort</mat-icon>\n <mat-select #sortSelect [value]=\"currentOrderColumn\" (selectionChange)=\"sortColumnChanged($event)\"\n placeholder=\" {{ 'GRID.SORT_BY' | oTranslate }}\">\n <mat-option *ngFor=\"let column of sortableColumns; let i = index\" [value]=\"i\">\n {{ getSortOptionText(column) }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </div>\n\n </ng-container>\n <ng-content select=\"[o-grid-toolbar][position=start]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar][position=end]\" ngProjectAs=\"[o-data-toolbar-custom-projection-end]\">\n </ng-content>\n <ng-content select=\"[o-grid-toolbar]\" ngProjectAs=\"[o-data-toolbar-custom-projection-start]\">\n </ng-content>\n <ng-container o-data-toolbar-projection-end>\n <o-search-input *ngIf=\"quickFilter\" [columns]=\"quickFilterColumns\" [filter-case-sensitive]=\"filterCaseSensitive\"\n [show-case-sensitive-checkbox]=\"showCaseSensitiveCheckbox()\" [placeholder]=\"quickFilterPlaceholder\" [appearance]=\"quickFilterAppearance\"\n float-label=\"never\"></o-search-input>\n </ng-container>\n </o-data-toolbar>\n\n <!--no results-->\n <div class=\"o-grid-no-results fill-remaining\" *ngIf=\"gridItems.length === 0\" fxLayoutAlign=\"center start\" layout-padding\n [ngStyle]=\"{'visibility': (loading | async) === false ? 'visible':'hidden'}\">\n {{'GRID.EMPTY' | oTranslate}}\n <ng-container *ngIf=\"quickFilter && searchInputComponent && searchInputComponent.getValue() && searchInputComponent.getValue().length > 0\">\n {{ 'GRID.EMPTY_USING_FILTER' | oTranslate : { values: [ searchInputComponent.getValue()] } }}\n </ng-container>\n </div>\n\n\n <!--MAT-GRID-LIST-->\n <mat-grid-list [cols]=\"cols\" [gutterSize]=\"gutterSize\" [rowHeight]=\"gridItemHeight\" class=\"o-mat-grid-list fill-remaining\"\n *ngIf=\"gridItems.length > 0\" [ngStyle]=\"{'visibility': (loading | async) === false ? 'visible':'hidden'}\">\n <mat-grid-tile o-grid-item *ngFor=\"let item of gridItems\" [colspan]=\"item.colspan\" [rowspan]=\"item.rowspan\">\n <ng-container *ngTemplateOutlet=\"item.template\"></ng-container>\n </mat-grid-tile>\n </mat-grid-list>\n <button type=\"button\" aria-label=\"Insert\" *ngIf=\"insertButton && insertButtonFloatable\" [disabled]=\"!enabledInsertButton\" mat-fab (click)=\"add()\"\n class=\"o-grid-add-floatable-button\" [class.o-grid-add-bottom-floatable-button]=\"insertButtonPosition ==='bottom'\"\n [class.o-grid-add-top-floatable-button]=\"insertButtonPosition ==='top'\">\n <mat-icon svgIcon=\"ontimize:add\"></mat-icon>\n </button>\n\n <!-- GRID FOOTER -->\n <div *ngIf=\"!paginationControls && showFooter && (loading | async)===false\" fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"o-grid-footer\">\n <button type=\"button\" mat-button *ngIf=\"getDataArray().length < totalRecords && getDataArray().length>0\" (click)=\"loadMore()\"\n class=\"mat-raised-button\">\n {{ 'GRID.BUTTON_NEXT' | oTranslate }}\n </button>\n <span fxFlex></span>\n <span class=\"o-grid-totals\">{{ 'GRID.TEXT_SHOWN_ITEMS' | oTranslate :{values: [getDataArray().length, totalRecords]}\n }}</span>\n </div>\n\n <mat-paginator class=\"o-mat-paginator\" #paginator *ngIf=\"paginationControls && showFooter\" [length]=\"totalRecords\" [pageSize]=\"queryRows\"\n [pageSizeOptions]=\"pageSizeOptions\" [pageIndex]=\"currentPage\" [showFirstLastButtons]=\"true\" (page)=\"onChangePage($event)\"\n [ngStyle]=\"{'visibility': (loading | async) === false ? 'visible':'hidden'}\"></mat-paginator>\n\n <div *ngIf=\"loading | async\" fxLayout=\"row\" fxLayoutAlign=\"center end\" class=\"o-loading-blocker\">\n <div fxLayoutAlign=\"center center\" [class.o-spinner-container-controls]=\"hasControls()\" class=\"o-spinner-container\">\n <o-grid-skeleton></o-grid-skeleton>\n </div>\n </div>\n\n\n</div>\n", styles: [".o-grid{height:100%}.o-grid .o-grid-container{position:relative;height:100%;display:flex}.o-grid .o-grid-container .o-grid-toolbar{margin-bottom:12px}.o-grid .o-grid-container .o-grid-toolbar .mat-mdc-form-field-type-mat-select .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex:not(.mdc-text-field--outlined) .mat-mdc-form-field-infix{padding-top:12px}.o-grid .o-grid-container .o-grid-no-results{padding:16px}.o-grid .o-grid-container .o-grid-paginator,.o-grid .o-grid-container .o-grid-sort{margin-right:1em}.o-grid .o-grid-container .o-grid-paginator{display:flex}.o-grid .o-grid-container .o-grid-paginator .o-grid-select-page{width:60px}.o-grid .o-grid-container .o-grid-paginator .o-grid-page-size-label{margin:0 4px 0 8px;align-self:center}.o-grid .o-grid-container .o-grid-footer .o-grid-totals{margin-right:8px;font-size:14px}.o-grid .o-grid-container .o-grid-footer,.o-grid .o-grid-container .o-mat-paginator{flex-shrink:0}.o-grid .o-grid-container .o-loading-blocker{position:absolute;top:0;left:0;right:0;bottom:0;z-index:500;visibility:visible;opacity:1;transition:opacity .25s linear}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container{width:100%;height:100%}.o-grid .o-grid-container .o-loading-blocker .o-spinner-container.o-spinner-container-controls{height:calc(100% - 64px)}.o-grid.o-grid-fixed,.o-grid.o-grid-fixed .o-grid-container{max-height:100%;height:100%}.o-grid.o-grid-fixed .o-mat-grid-list{overflow:auto;padding-bottom:0!important}.o-grid.o-grid-fixed .o-grid-footer,.o-grid.o-grid-fixed .o-mat-paginator{flex:0 0 auto}.o-grid .o-grid-add-floatable-button{right:12px;position:absolute}.o-grid .o-grid-add-floatable-button.o-grid-add-bottom-floatable-button{bottom:36px}.o-grid .o-grid-add-floatable-button.o-grid-add-top-floatable-button{top:66px}\n"] }]
381
381
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }, { type: i16.OFormComponent, decorators: [{
382
382
  type: Optional
383
383
  }, {
@@ -102,12 +102,12 @@ export class OListPickerDialogComponent {
102
102
  }
103
103
  }
104
104
  OListPickerDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OListPickerDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: i0.Injector }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
105
- OListPickerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OListPickerDialogComponent, selector: "o-list-picker-dialog", inputs: { data: "data", visibleColumns: ["visible-columns", "visibleColumns"], filter: "filter" }, host: { properties: { "class.o-list-picker-dialog": "true" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "<div mat-dialog-title *ngIf=\"filter\">\n <o-search-input #searchInput [columns]=\"menuColumns\" show-menu=\"no\" (onSearch)=\"onFilterList($event)\" class=\"o-list-picker-search\"\n appearance=\"fill\"></o-search-input>\n</div>\n<div mat-dialog-content [class.o-list-picker-has-filter]=\"filter\" fxFlex>\n <cdk-virtual-scroll-viewport [itemSize]=\"itemSize\">\n <mat-list>\n <mat-list-item *ngIf=\"isEmptyData()\">\n {{ 'LIST.EMPTY' | oTranslate }}\n <ng-container *ngIf=\"filter && searchInput && searchInput.getValue() && searchInput.getValue().length > 0\">\n {{ 'LIST.EMPTY_USING_FILTER' | oTranslate : { values: [searchInput.getValue()] } }}\n </ng-container>\n </mat-list-item>\n <ng-container *cdkVirtualFor=\"let item of visibleData; trackBy: trackByFn\">\n <mat-list-item (click)=\"onClickListItem($event, item)\">\n <ng-container *ngIf=\"renderer\">\n <ng-template *ngTemplateOutlet=\"renderer?.templateref; context:{ value: item }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!renderer\">\n <span>{{ item['_parsedVisibleColumnText'] }}</span>\n </ng-container>\n </mat-list-item>\n <mat-divider></mat-divider>\n </ng-container>\n </mat-list>\n </cdk-virtual-scroll-viewport>\n\n</div>\n<mat-dialog-actions align=\"end\">\n <button type=\"button\" mat-stroked-button mat-dialog-close class=\"o-button-default cancel\">{{ 'CANCEL' | oTranslate }}</button>\n</mat-dialog-actions>\n", styles: [".cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog{display:flex;flex-direction:column;height:100%}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title{margin-top:-30px}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title .o-search-input mat-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title .o-search-input mat-form-field .mat-mdc-text-field-wrapper .mdc-line-ripple:after,.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title .o-search-input mat-form-field .mat-mdc-text-field-wrapper .mdc-line-ripple:before{border:none}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-content .cdk-virtual-scroll-viewport{height:100%}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-content .cdk-virtual-scroll-viewport mat-list mat-list-item{cursor:pointer}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-content .cdk-virtual-scroll-viewport mat-list mat-list-item .mdc-list-item__primary-text{white-space:pre-wrap}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i7.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i7.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i7.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i8.OSearchInputComponent, selector: "o-search-input", inputs: ["placeholder", "label", "width", "float-label", "appearance", "columns", "filter-case-sensitive", "show-case-sensitive-checkbox", "show-menu"], outputs: ["onSearch"] }, { kind: "pipe", type: i9.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
105
+ OListPickerDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OListPickerDialogComponent, selector: "o-list-picker-dialog", inputs: { data: "data", visibleColumns: ["visible-columns", "visibleColumns"], filter: "filter" }, host: { properties: { "class.o-list-picker-dialog": "true" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "<div mat-dialog-title *ngIf=\"filter\">\n <o-search-input #searchInput [columns]=\"menuColumns\" show-menu=\"no\" (onSearch)=\"onFilterList($event)\" class=\"o-list-picker-search\"\n appearance=\"fill\"></o-search-input>\n</div>\n<div mat-dialog-content [class.o-list-picker-has-filter]=\"filter\" fxFlex>\n <cdk-virtual-scroll-viewport [itemSize]=\"itemSize\">\n <mat-list>\n <mat-list-item *ngIf=\"isEmptyData()\">\n {{ 'LIST.EMPTY' | oTranslate }}\n <ng-container *ngIf=\"filter && searchInput && searchInput.getValue() && searchInput.getValue().length > 0\">\n {{ 'LIST.EMPTY_USING_FILTER' | oTranslate : { values: [searchInput.getValue()] } }}\n </ng-container>\n </mat-list-item>\n <ng-container *cdkVirtualFor=\"let item of visibleData; trackBy: trackByFn\">\n <mat-list-item (click)=\"onClickListItem($event, item)\">\n <ng-container *ngIf=\"renderer\">\n <ng-template *ngTemplateOutlet=\"renderer?.templateref; context:{ value: item }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!renderer\">\n <span>{{ item['_parsedVisibleColumnText'] }}</span>\n </ng-container>\n </mat-list-item>\n <mat-divider></mat-divider>\n </ng-container>\n </mat-list>\n </cdk-virtual-scroll-viewport>\n\n</div>\n<mat-dialog-actions align=\"end\">\n <button type=\"button\" mat-stroked-button mat-dialog-close class=\"o-button-default cancel\">{{ 'CANCEL' | oTranslate }}</button>\n</mat-dialog-actions>\n", styles: [".cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog{display:flex;flex-direction:column;height:100%}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title{margin-top:-30px}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title .o-search-input mat-form-field .mdc-line-ripple:after,.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title .o-search-input mat-form-field .mdc-line-ripple:before{border:none}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-content .cdk-virtual-scroll-viewport{height:100%}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-content .cdk-virtual-scroll-viewport mat-list mat-list-item{cursor:pointer}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-content .cdk-virtual-scroll-viewport mat-list mat-list-item .mdc-list-item__primary-text{white-space:pre-wrap}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i5.MatList, selector: "mat-list", exportAs: ["matList"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i7.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i7.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i7.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "component", type: i8.OSearchInputComponent, selector: "o-search-input", inputs: ["placeholder", "label", "width", "float-label", "appearance", "columns", "filter-case-sensitive", "show-case-sensitive-checkbox", "show-menu"], outputs: ["onSearch"] }, { kind: "pipe", type: i9.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
106
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OListPickerDialogComponent, decorators: [{
107
107
  type: Component,
108
108
  args: [{ selector: 'o-list-picker-dialog', inputs: DEFAULT_INPUTS_O_LIST_PICKER_DIALOG, encapsulation: ViewEncapsulation.None, host: {
109
109
  '[class.o-list-picker-dialog]': 'true'
110
- }, template: "<div mat-dialog-title *ngIf=\"filter\">\n <o-search-input #searchInput [columns]=\"menuColumns\" show-menu=\"no\" (onSearch)=\"onFilterList($event)\" class=\"o-list-picker-search\"\n appearance=\"fill\"></o-search-input>\n</div>\n<div mat-dialog-content [class.o-list-picker-has-filter]=\"filter\" fxFlex>\n <cdk-virtual-scroll-viewport [itemSize]=\"itemSize\">\n <mat-list>\n <mat-list-item *ngIf=\"isEmptyData()\">\n {{ 'LIST.EMPTY' | oTranslate }}\n <ng-container *ngIf=\"filter && searchInput && searchInput.getValue() && searchInput.getValue().length > 0\">\n {{ 'LIST.EMPTY_USING_FILTER' | oTranslate : { values: [searchInput.getValue()] } }}\n </ng-container>\n </mat-list-item>\n <ng-container *cdkVirtualFor=\"let item of visibleData; trackBy: trackByFn\">\n <mat-list-item (click)=\"onClickListItem($event, item)\">\n <ng-container *ngIf=\"renderer\">\n <ng-template *ngTemplateOutlet=\"renderer?.templateref; context:{ value: item }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!renderer\">\n <span>{{ item['_parsedVisibleColumnText'] }}</span>\n </ng-container>\n </mat-list-item>\n <mat-divider></mat-divider>\n </ng-container>\n </mat-list>\n </cdk-virtual-scroll-viewport>\n\n</div>\n<mat-dialog-actions align=\"end\">\n <button type=\"button\" mat-stroked-button mat-dialog-close class=\"o-button-default cancel\">{{ 'CANCEL' | oTranslate }}</button>\n</mat-dialog-actions>\n", styles: [".cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog{display:flex;flex-direction:column;height:100%}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title{margin-top:-30px}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title .o-search-input mat-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title .o-search-input mat-form-field .mat-mdc-text-field-wrapper .mdc-line-ripple:after,.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title .o-search-input mat-form-field .mat-mdc-text-field-wrapper .mdc-line-ripple:before{border:none}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-content .cdk-virtual-scroll-viewport{height:100%}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-content .cdk-virtual-scroll-viewport mat-list mat-list-item{cursor:pointer}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-content .cdk-virtual-scroll-viewport mat-list mat-list-item .mdc-list-item__primary-text{white-space:pre-wrap}\n"] }]
110
+ }, template: "<div mat-dialog-title *ngIf=\"filter\">\n <o-search-input #searchInput [columns]=\"menuColumns\" show-menu=\"no\" (onSearch)=\"onFilterList($event)\" class=\"o-list-picker-search\"\n appearance=\"fill\"></o-search-input>\n</div>\n<div mat-dialog-content [class.o-list-picker-has-filter]=\"filter\" fxFlex>\n <cdk-virtual-scroll-viewport [itemSize]=\"itemSize\">\n <mat-list>\n <mat-list-item *ngIf=\"isEmptyData()\">\n {{ 'LIST.EMPTY' | oTranslate }}\n <ng-container *ngIf=\"filter && searchInput && searchInput.getValue() && searchInput.getValue().length > 0\">\n {{ 'LIST.EMPTY_USING_FILTER' | oTranslate : { values: [searchInput.getValue()] } }}\n </ng-container>\n </mat-list-item>\n <ng-container *cdkVirtualFor=\"let item of visibleData; trackBy: trackByFn\">\n <mat-list-item (click)=\"onClickListItem($event, item)\">\n <ng-container *ngIf=\"renderer\">\n <ng-template *ngTemplateOutlet=\"renderer?.templateref; context:{ value: item }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!renderer\">\n <span>{{ item['_parsedVisibleColumnText'] }}</span>\n </ng-container>\n </mat-list-item>\n <mat-divider></mat-divider>\n </ng-container>\n </mat-list>\n </cdk-virtual-scroll-viewport>\n\n</div>\n<mat-dialog-actions align=\"end\">\n <button type=\"button\" mat-stroked-button mat-dialog-close class=\"o-button-default cancel\">{{ 'CANCEL' | oTranslate }}</button>\n</mat-dialog-actions>\n", styles: [".cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog{display:flex;flex-direction:column;height:100%}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title{margin-top:-30px}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title .o-search-input mat-form-field .mdc-line-ripple:after,.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-title .o-search-input mat-form-field .mdc-line-ripple:before{border:none}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-content .cdk-virtual-scroll-viewport{height:100%}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-content .cdk-virtual-scroll-viewport mat-list mat-list-item{cursor:pointer}.cdk-overlay-list-picker .mat-mdc-dialog-container .o-list-picker-dialog .mat-mdc-dialog-content .cdk-virtual-scroll-viewport mat-list mat-list-item .mdc-list-item__primary-text{white-space:pre-wrap}\n"] }]
111
111
  }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: i0.Injector }, { type: undefined, decorators: [{
112
112
  type: Inject,
113
113
  args: [MAT_DIALOG_DATA]
@@ -196,7 +196,7 @@ export class OSearchInputComponent {
196
196
  }
197
197
  }
198
198
  OSearchInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OSearchInputComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
199
- OSearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OSearchInputComponent, selector: "o-search-input", inputs: { placeholder: "placeholder", label: "label", width: "width", floatLabel: ["float-label", "floatLabel"], appearance: "appearance", columns: "columns", filterCaseSensitive: ["filter-case-sensitive", "filterCaseSensitive"], showCaseSensitiveCheckbox: ["show-case-sensitive-checkbox", "showCaseSensitiveCheckbox"], showMenu: ["show-menu", "showMenu"] }, outputs: { onSearch: "onSearch" }, host: { properties: { "class.o-search-input": "true" } }, ngImport: i0, template: "<form [formGroup]=\"getFormGroup()\">\n <div class=\"quickFilter\" fxLayout=\"row\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-icon *ngIf=\"!showFilterMenu\" svgIcon=\"ontimize:search\" matPrefix></mat-icon>\n <input #term matInput id=\"term\" type=\"search\" formControlName=\"term\" [placeholder]=\"placeholder\">\n <mat-label *ngIf=\"labelVisible\">{{ label | oTranslate }}</mat-label>\n <div *ngIf=\"showFilterMenu\" fxLayout=\"row\" matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button type=\"button\" mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n\n <mat-menu #menu=\"matMenu\" class=\"o-search-input-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <ng-container *ngIf=\"colArray.length > 1\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate }}</mat-checkbox>\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngFor=\"let item of colArray\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(item)\" (change)=\"onCheckboxChange(item, $event)\">\n {{ item.column | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"filterCaseSensitive\" (change)=\"onFilterCaseSensitiveChange($event)\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate }}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n </div>\n</form>\n", styles: [".o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{height:32px;line-height:32px;padding:0 10px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{border-top:0;padding:0 4px;align-self:center}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{align-self:stretch;display:flex}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{align-items:center;display:inline-flex;margin:2px 0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-badge-content{background-color:#3c8500;width:14px;height:14px;line-height:14px;top:-4px;right:-4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-icon,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button{margin-right:6px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button{height:100%;width:auto}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-flex{padding-top:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-underline{bottom:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper,.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{margin:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{border-right:1px solid rgba(0,0,0,.12)}.o-search-input-menu .mat-divider{margin:8px 0}.o-search-input-menu .checkbox-container{padding:6px 12px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i12.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
199
+ OSearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: OSearchInputComponent, selector: "o-search-input", inputs: { placeholder: "placeholder", label: "label", width: "width", floatLabel: ["float-label", "floatLabel"], appearance: "appearance", columns: "columns", filterCaseSensitive: ["filter-case-sensitive", "filterCaseSensitive"], showCaseSensitiveCheckbox: ["show-case-sensitive-checkbox", "showCaseSensitiveCheckbox"], showMenu: ["show-menu", "showMenu"] }, outputs: { onSearch: "onSearch" }, host: { properties: { "class.o-search-input": "true" } }, ngImport: i0, template: "<form [formGroup]=\"getFormGroup()\">\n <div class=\"quickFilter\" fxLayout=\"row\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-icon *ngIf=\"!showFilterMenu\" svgIcon=\"ontimize:search\" matPrefix></mat-icon>\n <input #term matInput id=\"term\" type=\"search\" formControlName=\"term\" [placeholder]=\"placeholder\">\n <mat-label *ngIf=\"labelVisible\">{{ label | oTranslate }}</mat-label>\n <div *ngIf=\"showFilterMenu\" fxLayout=\"row\" matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button type=\"button\" mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n\n <mat-menu #menu=\"matMenu\" class=\"o-search-input-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <ng-container *ngIf=\"colArray.length > 1\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate }}</mat-checkbox>\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngFor=\"let item of colArray\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(item)\" (change)=\"onCheckboxChange(item, $event)\">\n {{ item.column | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"filterCaseSensitive\" (change)=\"onFilterCaseSensitiveChange($event)\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate }}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n </div>\n</form>\n", styles: [".o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{height:32px;line-height:32px;padding:0 10px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{border-top:0;padding:0 4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{align-self:stretch;display:flex;padding-right:4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{margin:2px 0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-flex{padding-top:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-underline{bottom:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper,.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{margin:0}.o-search-input-menu .mat-divider{margin:8px 0}.o-search-input-menu .checkbox-container{padding:6px 12px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i12.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
200
200
  __decorate([
201
201
  BooleanInputConverter(),
202
202
  __metadata("design:type", Boolean)
@@ -213,6 +213,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
213
213
  type: Component,
214
214
  args: [{ selector: 'o-search-input', inputs: DEFAULT_INPUTS_O_SEARCH_INPUT, outputs: DEFAULT_OUTPUTS_O_SEARCH_INPUT, encapsulation: ViewEncapsulation.None, host: {
215
215
  '[class.o-search-input]': 'true'
216
- }, template: "<form [formGroup]=\"getFormGroup()\">\n <div class=\"quickFilter\" fxLayout=\"row\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-icon *ngIf=\"!showFilterMenu\" svgIcon=\"ontimize:search\" matPrefix></mat-icon>\n <input #term matInput id=\"term\" type=\"search\" formControlName=\"term\" [placeholder]=\"placeholder\">\n <mat-label *ngIf=\"labelVisible\">{{ label | oTranslate }}</mat-label>\n <div *ngIf=\"showFilterMenu\" fxLayout=\"row\" matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button type=\"button\" mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n\n <mat-menu #menu=\"matMenu\" class=\"o-search-input-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <ng-container *ngIf=\"colArray.length > 1\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate }}</mat-checkbox>\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngFor=\"let item of colArray\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(item)\" (change)=\"onCheckboxChange(item, $event)\">\n {{ item.column | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"filterCaseSensitive\" (change)=\"onFilterCaseSensitiveChange($event)\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate }}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n </div>\n</form>\n", styles: [".o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{height:32px;line-height:32px;padding:0 10px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{border-top:0;padding:0 4px;align-self:center}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{align-self:stretch;display:flex}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{align-items:center;display:inline-flex;margin:2px 0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-badge-content{background-color:#3c8500;width:14px;height:14px;line-height:14px;top:-4px;right:-4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-icon,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button{margin-right:6px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button{height:100%;width:auto}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-flex{padding-top:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-underline{bottom:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper,.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{margin:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{border-right:1px solid rgba(0,0,0,.12)}.o-search-input-menu .mat-divider{margin:8px 0}.o-search-input-menu .checkbox-container{padding:6px 12px}\n"] }]
216
+ }, template: "<form [formGroup]=\"getFormGroup()\">\n <div class=\"quickFilter\" fxLayout=\"row\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-icon *ngIf=\"!showFilterMenu\" svgIcon=\"ontimize:search\" matPrefix></mat-icon>\n <input #term matInput id=\"term\" type=\"search\" formControlName=\"term\" [placeholder]=\"placeholder\">\n <mat-label *ngIf=\"labelVisible\">{{ label | oTranslate }}</mat-label>\n <div *ngIf=\"showFilterMenu\" fxLayout=\"row\" matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button type=\"button\" mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n\n <mat-menu #menu=\"matMenu\" class=\"o-search-input-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <ng-container *ngIf=\"colArray.length > 1\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate }}</mat-checkbox>\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngFor=\"let item of colArray\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(item)\" (change)=\"onCheckboxChange(item, $event)\">\n {{ item.column | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"filterCaseSensitive\" (change)=\"onFilterCaseSensitiveChange($event)\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate }}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n </div>\n</form>\n", styles: [".o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{height:32px;line-height:32px;padding:0 10px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{border-top:0;padding:0 4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{align-self:stretch;display:flex;padding-right:4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{margin:2px 0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-flex{padding-top:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-underline{bottom:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper,.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{margin:0}.o-search-input-menu .mat-divider{margin:8px 0}.o-search-input-menu .checkbox-container{padding:6px 12px}\n"] }]
217
217
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { showCaseSensitiveCheckbox: [], showMenu: [], _filterCaseSensitive: [] } });
218
218
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1zZWFyY2gtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQvc2VhcmNoLWlucHV0L28tc2VhcmNoLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L3NlYXJjaC1pbnB1dC9vLXNlYXJjaC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUlwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBRTFDLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHO0lBQzNDLGFBQWE7SUFDYixPQUFPO0lBQ1AsT0FBTztJQUNQLHlCQUF5QjtJQUN6QixZQUFZO0lBQ1osU0FBUztJQUNULDRDQUE0QztJQUM1Qyx5REFBeUQ7SUFDekQscUJBQXFCO0NBQ3RCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRztJQUM1QyxVQUFVO0NBQ1gsQ0FBQztBQWtCRixNQUFNLE9BQU8scUJBQXFCO0lBT2hDLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLEtBQWE7UUFDM0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQW1CRCxZQUNZLFFBQWtCLEVBQ2xCLEtBQWlCO1FBRGpCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQXRDdEIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRXRELGFBQVEsR0FBbUIsRUFBRSxDQUFDO1FBQzlCLGlCQUFZLEdBQVcsUUFBUSxDQUFDO1FBbUJoQyw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFFM0MsYUFBUSxHQUFZLElBQUksQ0FBQztRQUV0Qix5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFjOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDM0MsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDN0MsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNyRCxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2pCLE1BQU0sRUFBRSxHQUFHO2dCQUNYLE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJO1lBQ0YsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzNEO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztTQUMxQjtRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFxQjtRQUNsQyxNQUFNLE1BQU0sR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDaEMsS0FBSyxHQUFHLFFBQVEsQ0FBQztTQUNsQjtRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksVUFBVSxDQUFDLEtBQTZCO1FBQzFDLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNoQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1NBQ25CO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLG1CQUFtQixDQUFDLEtBQWM7UUFDcEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRU0sWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxRQUFRLENBQUMsR0FBVyxFQUFFLE9BQTBCO1FBQ3JELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sY0FBYztRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQW9CO1FBQ25DLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsTUFBb0IsRUFBRSxLQUF3QjtRQUNwRSxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFFakMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQXdCO1FBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBaUIsRUFBRSxFQUFFO1lBQzFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUVMLENBQUM7SUFFTSxvQkFBb0I7UUFDekIsSUFBSSxNQUFNLEdBQVksSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBaUIsRUFBRSxFQUFFO1lBQzFDLE1BQU0sR0FBRyxNQUFNLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxzQkFBc0I7UUFDM0IsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFpQixFQUFFLEVBQUU7WUFDMUMsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFO2dCQUNmLEtBQUssRUFBRSxDQUFDO2FBQ1Q7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNNLDJCQUEyQixDQUFDLEtBQXdCO1FBQ3pELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBRTNDLENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEdBQWE7UUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFlLEVBQUUsRUFBRTtZQUN4QyxDQUFDLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsa0RBQWtELENBQUMsQ0FBQztZQUM5RSxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRVMsZUFBZTtRQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0MsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDekIsT0FBTyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDOUU7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O21IQWhOVSxxQkFBcUI7dUdBQXJCLHFCQUFxQiwwZkNoRGxDLGlqRUF3Q0E7QUQrQkU7SUFBQyxxQkFBcUIsRUFBRTs7d0VBQzBCO0FBQ2xEO0lBQUMscUJBQXFCLEVBQUU7O3VEQUNRO0FBQ2hDO0lBQUMscUJBQXFCLEVBQUU7O21FQUN3Qjs0RkE1QnJDLHFCQUFxQjtrQkFYakMsU0FBUzsrQkFDRSxnQkFBZ0IsVUFHbEIsNkJBQTZCLFdBQzVCLDhCQUE4QixpQkFDeEIsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSix3QkFBd0IsRUFBRSxNQUFNO3FCQUNqQzt3SEEwQk0seUJBQXlCLE1BRXpCLFFBQVEsTUFFTCxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgRmxvYXRMYWJlbFR5cGUsIE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE9fSU5QVVRTX09QVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25maWcvYXBwLWNvbmZpZyc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zbmFja2Jhci5zZXJ2aWNlJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2V4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBGb3JtVmFsdWVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvZm9ybS12YWx1ZS1vcHRpb25zLnR5cGUnO1xuaW1wb3J0IHsgT0lucHV0c09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9vLWlucHV0cy1vcHRpb25zLnR5cGUnO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvblV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9maWx0ZXItZXhwcmVzc2lvbi51dGlscyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC91dGlsJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fU0VBUkNIX0lOUFVUID0gW1xuICAncGxhY2Vob2xkZXInLFxuICAnbGFiZWwnLFxuICAnd2lkdGgnLFxuICAnZmxvYXRMYWJlbDogZmxvYXQtbGFiZWwnLFxuICAnYXBwZWFyYW5jZScsXG4gICdjb2x1bW5zJyxcbiAgJ2ZpbHRlckNhc2VTZW5zaXRpdmU6IGZpbHRlci1jYXNlLXNlbnNpdGl2ZScsXG4gICdzaG93Q2FzZVNlbnNpdGl2ZUNoZWNrYm94OiBzaG93LWNhc2Utc2Vuc2l0aXZlLWNoZWNrYm94JyxcbiAgJ3Nob3dNZW51OiBzaG93LW1lbnUnXG5dO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PVVRQVVRTX09fU0VBUkNIX0lOUFVUID0gW1xuICAnb25TZWFyY2gnXG5dO1xuXG5kZWNsYXJlIHR5cGUgQ29sdW1uT2JqZWN0ID0ge1xuICBjb2x1bW46IHN0cmluZztcbiAgY2hlY2tlZDogYm9vbGVhbjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tc2VhcmNoLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tc2VhcmNoLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vby1zZWFyY2gtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX1NFQVJDSF9JTlBVVCxcbiAgb3V0cHV0czogREVGQVVMVF9PVVRQVVRTX09fU0VBUkNIX0lOUFVULFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLXNlYXJjaC1pbnB1dF0nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPU2VhcmNoSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIHB1YmxpYyBvblNlYXJjaDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBjb2xBcnJheTogQ29sdW1uT2JqZWN0W10gPSBbXTtcbiAgcHVibGljIF9wbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NFQVJDSCc7XG5cbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodGhpcy5fcGxhY2Vob2xkZXIpO1xuICB9XG5cbiAgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodmFsdWUpKSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBsYWJlbFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHRoaXMubGFiZWwpO1xuICB9XG5cbiAgcHVibGljIHdpZHRoOiBzdHJpbmc7XG4gIHB1YmxpYyBjb2x1bW5zOiBzdHJpbmc7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgc2hvd0Nhc2VTZW5zaXRpdmVDaGVja2JveDogYm9vbGVhbiA9IGZhbHNlO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHVibGljIHNob3dNZW51OiBib29sZWFuID0gdHJ1ZTtcbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHByb3RlY3RlZCBfZmlsdGVyQ2FzZVNlbnNpdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX2Zsb2F0TGFiZWw6IEZsb2F0TGFiZWxUeXBlO1xuICBwcm90ZWN0ZWQgX2FwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XG5cbiAgcHJvdGVjdGVkIGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cDtcbiAgcHJvdGVjdGVkIHRlcm06IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IE9UcmFuc2xhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgb0lucHV0c09wdGlvbnM6IE9JbnB1dHNPcHRpb25zO1xuICBwcm90ZWN0ZWQgc25hY2tCYXJTZXJ2aWNlOiBTbmFja0JhclNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcm90ZWN0ZWQgZWxSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoT1RyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoU25hY2tCYXJTZXJ2aWNlKTtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRlcm0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgndGVybScsIHRoaXMudGVybSk7XG5cbiAgICB0aGlzLnRlcm0udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDQwMCkpXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUodGVybSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrQWN0aXZlQ29sdW1ucygpKSB7XG4gICAgICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KHRlcm0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGNvbEFycmF5ID0gVXRpbC5wYXJzZUFycmF5KHRoaXMuY29sdW1ucywgdHJ1ZSk7XG4gICAgY29sQXJyYXkuZm9yRWFjaCgoY29sOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuY29sQXJyYXkucHVzaCh7XG4gICAgICAgIGNvbHVtbjogY29sLFxuICAgICAgICBjaGVja2VkOiB0cnVlXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMub0lucHV0c09wdGlvbnMgPSB0aGlzLmluamVjdG9yLmdldChPX0lOUFVUU19PUFRJT05TKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLm9JbnB1dHNPcHRpb25zID0ge307XG4gICAgfVxuICAgIFV0aWwucGFyc2VPSW5wdXRzT3B0aW9ucyh0aGlzLmVsUmVmLCB0aGlzLm9JbnB1dHNPcHRpb25zKTtcbiAgfVxuXG4gIGdldCBmbG9hdExhYmVsKCk6IEZsb2F0TGFiZWxUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fZmxvYXRMYWJlbDtcbiAgfVxuXG4gIHNldCBmbG9hdExhYmVsKHZhbHVlOiBGbG9hdExhYmVsVHlwZSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IFsnYWx3YXlzJywgJ2F1dG8nXTtcbiAgICBpZiAodmFsdWVzLmluZGV4T2YodmFsdWUpID09PSAtMSkge1xuICAgICAgdmFsdWUgPSAnYWx3YXlzJztcbiAgICB9XG4gICAgdGhpcy5fZmxvYXRMYWJlbCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGFwcGVhcmFuY2UoKTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSB7XG4gICAgcmV0dXJuIHRoaXMuX2FwcGVhcmFuY2U7XG4gIH1cblxuICBzZXQgYXBwZWFyYW5jZSh2YWx1ZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IFsnZmlsbCcsICdvdXRsaW5lJ107XG4gICAgaWYgKHZhbHVlcy5pbmRleE9mKHZhbHVlKSA9PT0gLTEpIHtcbiAgICAgIHZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLl9hcHBlYXJhbmNlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZmlsdGVyQ2FzZVNlbnNpdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyQ2FzZVNlbnNpdGl2ZTtcbiAgfVxuXG4gIHNldCBmaWx0ZXJDYXNlU2Vuc2l0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZmlsdGVyQ2FzZVNlbnNpdGl2ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldEZvcm1Hcm91cCgpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbDogc3RyaW5nLCBvcHRpb25zPzogRm9ybVZhbHVlT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMudGVybS5zZXRWYWx1ZSh2YWwsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGdldEZvcm1Db250cm9sKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGdldCBoYXNDdXN0b21XaWR0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy53aWR0aCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IHNob3dGaWx0ZXJNZW51KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dNZW51ICYmIHRoaXMuY29sQXJyYXkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBpc0NoZWNrZWQoY29sdW1uOiBDb2x1bW5PYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29sdW1uLmNoZWNrZWQ7XG4gIH1cblxuICBwdWJsaWMgb25DaGVja2JveENoYW5nZShjb2x1bW46IENvbHVtbk9iamVjdCwgZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgY29sdW1uLmNoZWNrZWQgPSBldmVudC5jaGVja2VkO1xuICAgIC8vIHRyaWdnZXJPblNlYXJjaCBpZiB3ZSB3YW50IHRvIHRyaWdnZXIgc2VhcmNoIG9uIGVhY2ggY2hhbmdlXG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RBbGxDaGFuZ2UoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjb2w6IENvbHVtbk9iamVjdCkgPT4ge1xuICAgICAgY29sLmNoZWNrZWQgPSBldmVudC5jaGVja2VkO1xuICAgIH0pO1xuICAgIC8vIHRyaWdnZXJPblNlYXJjaCBpZiB3ZSB3YW50IHRvIHRyaWdnZXIgc2VhcmNoIG9uIGVhY2ggY2hhbmdlXG4gIH1cblxuICBwdWJsaWMgYXJlQWxsQ29sdW1uc0NoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IHRydWU7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjb2w6IENvbHVtbk9iamVjdCkgPT4ge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGNvbC5jaGVja2VkO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q291bnRDb2x1bW5zQ2hlY2tlZCgpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjb2w6IENvbHVtbk9iamVjdCkgPT4ge1xuICAgICAgaWYgKGNvbC5jaGVja2VkKSB7XG4gICAgICAgIGNvdW50Kys7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG4gIHB1YmxpYyBvbkZpbHRlckNhc2VTZW5zaXRpdmVDaGFuZ2UoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJDYXNlU2Vuc2l0aXZlID0gZXZlbnQuY2hlY2tlZDtcbiAgICAvLyB0cmlnZ2VyT25TZWFyY2ggaWYgd2Ugd2FudCB0byB0cmlnZ2VyIHNlYXJjaCBvbiBlYWNoIGNoYW5nZVxuICB9XG5cbiAgcHVibGljIGdldEFjdGl2ZUNvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbEFycmF5LmZpbHRlcihjb2wgPT4gY29sLmNoZWNrZWQpLm1hcChjb2wgPT4gY29sLmNvbHVtbik7XG4gIH1cblxuICBwdWJsaWMgc2V0QWN0aXZlQ29sdW1ucyhhcmc6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjOiBDb2x1bW5PYmplY3QpID0+IHtcbiAgICAgIGMuY2hlY2tlZCA9IGFyZy5pbmRleE9mKGMuY29sdW1uKSAhPT0gLTE7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tBY3RpdmVDb2x1bW5zKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmdldEFjdGl2ZUNvbHVtbnMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ01FU1NBR0VTLkFWT0lEX1FVRVJZX1dJVEhPVVRfUVVJQ0tGSUxURVJfQ09MVU1OUycpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0cmlnZ2VyT25TZWFyY2goKTogdm9pZCB7XG4gICAgY29uc3QgdGVybSA9IHRoaXMudGVybS52YWx1ZTtcbiAgICBpZiAodGhpcy5jaGVja0FjdGl2ZUNvbHVtbnMoKSAmJiBVdGlsLmlzRGVmaW5lZCh0ZXJtKSAmJiB0ZXJtLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25TZWFyY2guZW1pdCh0ZXJtKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25NZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgIHRoaXMudHJpZ2dlck9uU2VhcmNoKCk7XG4gIH1cblxuICBnZXQgZmlsdGVyRXhwcmVzc2lvbigpOiBFeHByZXNzaW9uIHtcbiAgICBjb25zdCB0ZXJtVmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRlcm1WYWx1ZSkgJiYgdGVybVZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbHRlckNvbHMgPSB0aGlzLmdldEFjdGl2ZUNvbHVtbnMoKTtcbiAgICAgIGlmIChmaWx0ZXJDb2xzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEFycmF5RXhwcmVzc2lvbkxpa2UoZmlsdGVyQ29scywgdGVybVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJnZXRGb3JtR3JvdXAoKVwiPlxuICA8ZGl2IGNsYXNzPVwicXVpY2tGaWx0ZXJcIiBmeExheW91dD1cInJvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCI+XG4gICAgICA8bWF0LWljb24gKm5nSWY9XCIhc2hvd0ZpbHRlck1lbnVcIiBzdmdJY29uPVwib250aW1pemU6c2VhcmNoXCIgbWF0UHJlZml4PjwvbWF0LWljb24+XG4gICAgICA8aW5wdXQgI3Rlcm0gbWF0SW5wdXQgaWQ9XCJ0ZXJtXCIgdHlwZT1cInNlYXJjaFwiIGZvcm1Db250cm9sTmFtZT1cInRlcm1cIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIj5cbiAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFZpc2libGVcIj57eyBsYWJlbCB8IG9UcmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93RmlsdGVyTWVudVwiIGZ4TGF5b3V0PVwicm93XCIgbWF0UHJlZml4PlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm9udGltaXplOnNlYXJjaFwiIFttYXRCYWRnZV09XCJhcmVBbGxDb2x1bW5zQ2hlY2tlZCgpPycnOmdldENvdW50Q29sdW1uc0NoZWNrZWQoKVwiIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCIgKG1lbnVDbG9zZWQpPVwib25NZW51Q2xvc2VkKClcIiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2VhcmNoLWljb25cIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG5cblxuICAgICAgPG1hdC1tZW51ICNtZW51PVwibWF0TWVudVwiIGNsYXNzPVwiby1zZWFyY2gtaW5wdXQtbWVudVwiPlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJjaGVja2JveC1jb250YWluZXJcIj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2xBcnJheS5sZW5ndGggPiAxXCI+XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2hlY2tlZF09XCJhcmVBbGxDb2x1bW5zQ2hlY2tlZCgpXCIgKGNoYW5nZSk9XCJvblNlbGVjdEFsbENoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIHt7ICdTRUxFQ1RfQUxMJyB8IG9UcmFuc2xhdGUgfX08L21hdC1jaGVja2JveD5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb2xBcnJheVwiPlxuICAgICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgW2NoZWNrZWRdPVwiaXNDaGVja2VkKGl0ZW0pXCIgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlKGl0ZW0sICRldmVudClcIj5cbiAgICAgICAgICAgICAge3sgaXRlbS5jb2x1bW4gfCBvVHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93Q2FzZVNlbnNpdGl2ZUNoZWNrYm94XCI+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cImZpbHRlckNhc2VTZW5zaXRpdmVcIiAoY2hhbmdlKT1cIm9uRmlsdGVyQ2FzZVNlbnNpdGl2ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgIHt7ICdUQUJMRS5GSUxURVIuQ0FTRV9TRU5TSVRJVkUnIHwgb1RyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYXQtbWVudT5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
@@ -15,13 +15,13 @@ export class ODataToolbarComponent {
15
15
  }
16
16
  }
17
17
  ODataToolbarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ODataToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18
- ODataToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ODataToolbarComponent, selector: "o-data-toolbar", inputs: { showTitle: ["show-title", "showTitle"], title: "title" }, host: { classAttribute: "o-data-toolbar" }, ngImport: i0, template: "<ng-content select=\"[o-data-toolbar-projection-start]\"></ng-content>\n<ng-content select=\"[o-data-toolbar-custom-projection-start]\"></ng-content>\n<div fxFlex>\n <span fxLayoutAlign=\"center center\" *ngIf=\"showTitle\" class=\"title\">{{ title | oTranslate }}</span>\n</div>\n<ng-content select=\"[o-data-toolbar-custom-projection-end]\"></ng-content>\n<ng-content select=\"[o-data-toolbar-projection-end]\"></ng-content>\n", styles: [".o-data-toolbar{padding:0 4px;height:64px;display:flex;align-items:center;align-content:space-between;width:100%;flex-direction:row;white-space:nowrap}.o-data-toolbar.dense{height:48px}.o-data-toolbar .title{font-size:18px;font-weight:400;text-align:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "pipe", type: i3.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
18
+ ODataToolbarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ODataToolbarComponent, selector: "o-data-toolbar", inputs: { showTitle: ["show-title", "showTitle"], title: "title" }, host: { classAttribute: "o-data-toolbar" }, ngImport: i0, template: "<ng-content select=\"[o-data-toolbar-projection-start]\"></ng-content>\n<ng-content select=\"[o-data-toolbar-custom-projection-start]\"></ng-content>\n<div fxFlex>\n <span fxLayoutAlign=\"center center\" *ngIf=\"showTitle\" class=\"title\">{{ title | oTranslate }}</span>\n</div>\n<ng-content select=\"[o-data-toolbar-custom-projection-end]\"></ng-content>\n<ng-content select=\"[o-data-toolbar-projection-end]\"></ng-content>\n", styles: [".o-data-toolbar{padding:8px 4px 0;height:40px;display:flex;align-items:center;align-content:space-between;width:100%;flex-direction:row;white-space:nowrap;margin:0 0 4px}.o-data-toolbar .title{font-size:18px;font-weight:400;text-align:center}.o-data-toolbar .mat-mdc-form-field-subscript-wrapper{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i2.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "pipe", type: i3.OTranslatePipe, name: "oTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
19
19
  __decorate([
20
20
  BooleanInputConverter(),
21
21
  __metadata("design:type", Boolean)
22
22
  ], ODataToolbarComponent.prototype, "showTitle", void 0);
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ODataToolbarComponent, decorators: [{
24
24
  type: Component,
25
- args: [{ selector: 'o-data-toolbar', inputs: DEFAULT_INPUTS_O_DATA_TOOLBAR, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'o-data-toolbar' }, template: "<ng-content select=\"[o-data-toolbar-projection-start]\"></ng-content>\n<ng-content select=\"[o-data-toolbar-custom-projection-start]\"></ng-content>\n<div fxFlex>\n <span fxLayoutAlign=\"center center\" *ngIf=\"showTitle\" class=\"title\">{{ title | oTranslate }}</span>\n</div>\n<ng-content select=\"[o-data-toolbar-custom-projection-end]\"></ng-content>\n<ng-content select=\"[o-data-toolbar-projection-end]\"></ng-content>\n", styles: [".o-data-toolbar{padding:0 4px;height:64px;display:flex;align-items:center;align-content:space-between;width:100%;flex-direction:row;white-space:nowrap}.o-data-toolbar.dense{height:48px}.o-data-toolbar .title{font-size:18px;font-weight:400;text-align:center}\n"] }]
25
+ args: [{ selector: 'o-data-toolbar', inputs: DEFAULT_INPUTS_O_DATA_TOOLBAR, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'o-data-toolbar' }, template: "<ng-content select=\"[o-data-toolbar-projection-start]\"></ng-content>\n<ng-content select=\"[o-data-toolbar-custom-projection-start]\"></ng-content>\n<div fxFlex>\n <span fxLayoutAlign=\"center center\" *ngIf=\"showTitle\" class=\"title\">{{ title | oTranslate }}</span>\n</div>\n<ng-content select=\"[o-data-toolbar-custom-projection-end]\"></ng-content>\n<ng-content select=\"[o-data-toolbar-projection-end]\"></ng-content>\n", styles: [".o-data-toolbar{padding:8px 4px 0;height:40px;display:flex;align-items:center;align-content:space-between;width:100%;flex-direction:row;white-space:nowrap;margin:0 0 4px}.o-data-toolbar .title{font-size:18px;font-weight:400;text-align:center}.o-data-toolbar .mat-mdc-form-field-subscript-wrapper{display:none}\n"] }]
26
26
  }], propDecorators: { showTitle: [] } });
27
27
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1kYXRhLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvby1kYXRhLXRvb2xiYXIvby1kYXRhLXRvb2xiYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvby1kYXRhLXRvb2xiYXIvby1kYXRhLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBR3pFLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHO0lBRTNDLHVCQUF1QjtJQUV2QixPQUFPO0NBRVIsQ0FBQztBQWFGLE1BQU0sT0FBTyxxQkFBcUI7SUFYbEM7UUFhRSxjQUFTLEdBQVksS0FBSyxDQUFDO0tBSTVCOzttSEFOWSxxQkFBcUI7dUdBQXJCLHFCQUFxQixzS0N4QmxDLCthQU9BO0FEa0JFO0lBQUMscUJBQXFCLEVBQUU7O3dEQUNHOzRGQUZoQixxQkFBcUI7a0JBWGpDLFNBQVM7K0JBQ0UsZ0JBQWdCLFVBR2xCLDZCQUE2QixtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUVuQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRTs4QkFLN0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJvb2xlYW5JbnB1dENvbnZlcnRlciB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvaW5wdXQtY29udmVydGVyJztcblxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9JTlBVVFNfT19EQVRBX1RPT0xCQVIgPSBbXG4gIC8vIHNob3ctdGl0bGUgW3llc3xub3x0cnVlfGZhbHNlXTogc2hvdyB0aGUgdGFibGUgdGl0bGUuIERlZmF1bHQ6IG5vLlxuICAnc2hvd1RpdGxlOiBzaG93LXRpdGxlJyxcbiAgLy90aXRsZTogVGhpcyB0aXRsZSB2YWx1ZSB3aWxsIGFwcGVhciBpbiB0aGUgdG9vbGJhclxuICAndGl0bGUnLFxuXG5dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLWRhdGEtdG9vbGJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWRhdGEtdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL28tZGF0YS10b29sYmFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19EQVRBX1RPT0xCQVIsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OlxuICAgIHsgY2xhc3M6ICdvLWRhdGEtdG9vbGJhcicgfVxuXG59KVxuZXhwb3J0IGNsYXNzIE9EYXRhVG9vbGJhckNvbXBvbmVudCB7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBzaG93VGl0bGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgdGl0bGU6IHN0cmluZztcblxufVxuIiwiPG5nLWNvbnRlbnQgc2VsZWN0PVwiW28tZGF0YS10b29sYmFyLXByb2plY3Rpb24tc3RhcnRdXCI+PC9uZy1jb250ZW50PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW28tZGF0YS10b29sYmFyLWN1c3RvbS1wcm9qZWN0aW9uLXN0YXJ0XVwiPjwvbmctY29udGVudD5cbjxkaXYgZnhGbGV4PlxuICA8c3BhbiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiICpuZ0lmPVwic2hvd1RpdGxlXCIgY2xhc3M9XCJ0aXRsZVwiPnt7IHRpdGxlIHwgb1RyYW5zbGF0ZSB9fTwvc3Bhbj5cbjwvZGl2PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiW28tZGF0YS10b29sYmFyLWN1c3RvbS1wcm9qZWN0aW9uLWVuZF1cIj48L25nLWNvbnRlbnQ+XG48bmctY29udGVudCBzZWxlY3Q9XCJbby1kYXRhLXRvb2xiYXItcHJvamVjdGlvbi1lbmRdXCI+PC9uZy1jb250ZW50PlxuIl19