UNPKG

@lucasferreiralsf/angular-frontend-library

Version:

This is a set of custom angular components to easy the development of any Subway frontend project.

1,571 lines 75.8 kB
(function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/cdk/collections'), require('rxjs/operators'), require('ng-animate'), require('@angular/material/input'), require('@angular/material/autocomplete'), require('@angular/material/datepicker'), require('@angular/material/form-field'), require('@angular/material/radio'), require('@angular/material/select'), require('@angular/material/slider'), require('@angular/material/slide-toggle'), require('@angular/material/menu'), require('@angular/material/sidenav'), require('@angular/material/toolbar'), require('@angular/material/list'), require('@angular/material/grid-list'), require('@angular/material/card'), require('@angular/material/stepper'), require('@angular/material/tabs'), require('@angular/material/expansion'), require('@angular/material/button-toggle'), require('@angular/material/chips'), require('@angular/material/icon'), require('@angular/material/progress-spinner'), require('@angular/material/progress-bar'), require('@angular/material/tooltip'), require('@angular/material/snack-bar'), require('@angular/material/table'), require('@angular/material/sort'), require('@angular/material/paginator'), require('@angular/material/core'), require('@angular/forms'), require('@angular/cdk/portal'), require('@angular/cdk/overlay'), require('@angular/flex-layout'), require('@angular/common'), require('@angular/animations'), require('@angular/platform-browser/animations'), require('ngx-perfect-scrollbar'), require('@angular/core'), require('@angular/material'), require('@angular/material/dialog')) :
    typeof define === 'function' && define.amd ? define('@lucasferreiralsf/angular-frontend-library', ['exports', '@angular/cdk/collections', 'rxjs/operators', 'ng-animate', '@angular/material/input', '@angular/material/autocomplete', '@angular/material/datepicker', '@angular/material/form-field', '@angular/material/radio', '@angular/material/select', '@angular/material/slider', '@angular/material/slide-toggle', '@angular/material/menu', '@angular/material/sidenav', '@angular/material/toolbar', '@angular/material/list', '@angular/material/grid-list', '@angular/material/card', '@angular/material/stepper', '@angular/material/tabs', '@angular/material/expansion', '@angular/material/button-toggle', '@angular/material/chips', '@angular/material/icon', '@angular/material/progress-spinner', '@angular/material/progress-bar', '@angular/material/tooltip', '@angular/material/snack-bar', '@angular/material/table', '@angular/material/sort', '@angular/material/paginator', '@angular/material/core', '@angular/forms', '@angular/cdk/portal', '@angular/cdk/overlay', '@angular/flex-layout', '@angular/common', '@angular/animations', '@angular/platform-browser/animations', 'ngx-perfect-scrollbar', '@angular/core', '@angular/material', '@angular/material/dialog'], factory) :
    (factory((global.lucasferreiralsf = global.lucasferreiralsf || {}, global.lucasferreiralsf['angular-frontend-library'] = {}),global.ng.cdk.collections,global.rxjs.operators,global.ngAnimate,global.ng.material.input,global.ng.material.autocomplete,global.ng.material.datepicker,global.ng.material['form-field'],global.ng.material.radio,global.ng.material.select,global.ng.material.slider,global.ng.material['slide-toggle'],global.ng.material.menu,global.ng.material.sidenav,global.ng.material.toolbar,global.ng.material.list,global.ng.material['grid-list'],global.ng.material.card,global.ng.material.stepper,global.ng.material.tabs,global.ng.material.expansion,global.ng.material['button-toggle'],global.ng.material.chips,global.ng.material.icon,global.ng.material['progress-spinner'],global.ng.material['progress-bar'],global.ng.material.tooltip,global.ng.material['snack-bar'],global.ng.material.table,global.ng.material.sort,global.ng.material.paginator,global.ng.material.core,global.ng.forms,global.ng.cdk.portal,global.ng.cdk.overlay,global.ng['flex-layout'],global.ng.common,global.ng.animations,global.ng.platformBrowser.animations,global.ngxPerfectScrollbar,global.ng.core,global.ng.material,global.ng.material.dialog));
}(this, (function (exports,collections,operators,ngAnimate,input,autocomplete,datepicker,formField,radio,select,slider,slideToggle,menu,sidenav,toolbar,list,gridList,card,stepper,tabs,expansion,buttonToggle,chips,icon,progressSpinner,progressBar,tooltip,snackBar,table,sort,paginator,core,forms,portal,overlay,flexLayout,common,animations,animations$1,ngxPerfectScrollbar,i0,material,i1) { 'use strict';

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var ViewContainerComponent = /** @class */ (function () {
        function ViewContainerComponent() {
            this.columnNames = [];
            this.actions = [];
            this.inputData = [];
            this.topActionButtons = [];
        }
        /**
         * @return {?}
         */
        ViewContainerComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () { };
        ViewContainerComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-view-container',
                        template: "<div class=\"view-container mat-elevation-z3\">\r\n  <sb-data-table [selectColumn]=\"tableSelectColumn\" [columnNames]=\"columnNames\" [actions]=\"actions\" [inputData]=\"inputData\" [topActionButtons]=\"topActionButtons\">\r\n      <ng-content select=\".filters\" class=\"sb-data-table-content\"></ng-content>\r\n  </sb-data-table>\r\n</div>\r\n",
                        styles: [".view-container{transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);display:block;position:relative;padding:16px 0;margin:5px;border-radius:4px;background:#fff}.filter-container{padding:5px 16px}"]
                    }] }
        ];
        /** @nocollapse */
        ViewContainerComponent.ctorParameters = function () { return []; };
        ViewContainerComponent.propDecorators = {
            tableSelectColumn: [{ type: i0.Input }],
            columnNames: [{ type: i0.Input }],
            actions: [{ type: i0.Input }],
            inputData: [{ type: i0.Input }],
            topActionButtons: [{ type: i0.Input }]
        };
        return ViewContainerComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var FilterTableComponent = /** @class */ (function () {
        function FilterTableComponent(overlay$$1, viewContainerRef) {
            this.overlay = overlay$$1;
            this.viewContainerRef = viewContainerRef;
            this.limpar = new i0.EventEmitter();
            this.pesquisa = new i0.EventEmitter();
            this.positions = [{
                    originX: 'end',
                    originY: 'bottom',
                    overlayX: 'end',
                    overlayY: 'top'
                }];
        }
        /**
         * @return {?}
         */
        FilterTableComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () {
                this.dropDownDialogOpen = 'out';
                this.btnLimparOutsideShow = 'out';
            };
        /**
         * @return {?}
         */
        FilterTableComponent.prototype.ngAfterViewInit = /**
         * @return {?}
         */
            function () {
                this.strategy = this.overlay.position()
                    .flexibleConnectedTo(this._overlayOrigin.elementRef)
                    .withPositions(this.positions).withTransformOriginOn('#filter-table-button');
                this.config = new overlay.OverlayConfig({
                    positionStrategy: this.strategy,
                    hasBackdrop: true,
                    backdropClass: 'cdk-overlay-transparent-backdrop'
                });
                this.overlayRef = this.overlay.create(this.config);
            };
        /**
         * @return {?}
         */
        FilterTableComponent.prototype.openFilterTableContentOverlay = /**
         * @return {?}
         */
            function () {
                var _this = this;
                this.overlayRef.backdropClick().subscribe(( /**
                 * @return {?}
                 */function () {
                    _this.overlayRef.detach();
                }));
                this.overlayRef.attach(this.overlayDropDownContentTemplate);
            };
        /**
         * closeDropdown
         */
        /**
         * closeDropdown
         * @return {?}
         */
        FilterTableComponent.prototype.closeDropdown = /**
         * closeDropdown
         * @return {?}
         */
            function () {
                if (this.overlayRef.hasAttached) {
                    this.overlayRef.detach();
                }
            };
        /* clickedInside($event: Event) {
          $event.preventDefault();
          $event.stopPropagation();  // <- that will stop propagation on lower layers
        } */
        /* @HostListener("document:click", ['$event']) clickedOutside($event) {
            this.dropDownDialogOpen = 'out'
        } */
        /* clickedInside($event: Event) {
            $event.preventDefault();
            $event.stopPropagation();  // <- that will stop propagation on lower layers
          } */
        /* @HostListener("document:click", ['$event']) clickedOutside($event) {
              this.dropDownDialogOpen = 'out'
          } */
        /**
         * @return {?}
         */
        FilterTableComponent.prototype.toggleFilter = /* clickedInside($event: Event) {
            $event.preventDefault();
            $event.stopPropagation();  // <- that will stop propagation on lower layers
          } */
            /* @HostListener("document:click", ['$event']) clickedOutside($event) {
                  this.dropDownDialogOpen = 'out'
              } */
            /**
             * @return {?}
             */
            function () {
                this.dropDownDialogOpen = this.dropDownDialogOpen === 'out' ? 'in' : 'out';
            };
        /**
         * @return {?}
         */
        FilterTableComponent.prototype.pesquisar = /**
         * @return {?}
         */
            function () {
                this.pesquisa.emit();
                this.btnLimparOutsideShow = 'in';
                this.closeDropdown();
            };
        /**
         * @return {?}
         */
        FilterTableComponent.prototype.limparFiltro = /**
         * @return {?}
         */
            function () {
                this.limpar.emit();
                this.btnLimparOutsideShow = 'out';
                this.closeDropdown();
            };
        FilterTableComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-filter-table',
                        template: "<div fxLayout=\"row\" fxLayoutAlign=\"flex-end center\">\r\n\t<button @flipInOut *ngIf=\"btnLimparOutsideShow == 'in'\" id=\"btn-filter-limpar-outside\" mat-button class=\"btn-filter\"\r\n\t\t(click)=\"limparFiltro();\">Limpar Filtro</button>\r\n\t<button mat-icon-button (click)=\"openFilterTableContentOverlay()\" cdk-overlay-origin id=\"filter-table-button\">\r\n\t\t<mat-icon>filter_list</mat-icon>\r\n\t</button>\r\n\t<ng-template cdk-portal #overlayDropDownContentTemplate=\"cdkPortal\">\r\n\t\t<mat-card @flipInOut style=\"z-index: 1;\" class=\"mat-elevation-z4\">\r\n\t\t\t<div fxLayout=\"row wrap\" fxLayoutGap=\"20px grid\" fxLayoutAlign=\"center\">\r\n\t\t\t\t<ng-content></ng-content>\r\n\t\t\t</div>\r\n\t\t\t<sb-filter-table-actions (limpar)=\"limparFiltro()\" (pesquisa)=\"pesquisar()\"></sb-filter-table-actions>\r\n\t\t</mat-card>\r\n\t</ng-template>\r\n</div>\r\n",
                        animations: [
                            animations.trigger('flipInOut', [
                                animations.transition('void => *', animations.useAnimation(ngAnimate.flipInX, {
                                    params: { timing: 0.4, delay: 0 }
                                })),
                                animations.transition('* => void', animations.useAnimation(ngAnimate.flipOutX, {
                                    params: { timing: 0.5, delay: 0 }
                                }))
                            ])
                        ],
                        styles: [""]
                    }] }
        ];
        /** @nocollapse */
        FilterTableComponent.ctorParameters = function () {
            return [
                { type: overlay.Overlay },
                { type: i0.ViewContainerRef }
            ];
        };
        FilterTableComponent.propDecorators = {
            limpar: [{ type: i0.Output }],
            pesquisa: [{ type: i0.Output }],
            _overlayOrigin: [{ type: i0.ViewChild, args: [overlay.CdkOverlayOrigin,] }],
            overlayDropDownContentTemplate: [{ type: i0.ViewChild, args: ['overlayDropDownContentTemplate',] }]
        };
        return FilterTableComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var MatFormFieldComponent = /** @class */ (function () {
        function MatFormFieldComponent(cdr) {
            this.cdr = cdr;
            this.showHint = false;
        }
        /**
         * @return {?}
         */
        MatFormFieldComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () { };
        /**
         * @return {?}
         */
        MatFormFieldComponent.prototype.ngAfterViewInit = /**
         * @return {?}
         */
            function () {
                this.formfields.forEach(( /**
                 * @param {?} ff
                 * @return {?}
                 */function (ff) {
                    ff.updateOutlineGap();
                }));
                this.cdr.detectChanges();
            };
        MatFormFieldComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-mat-form-field',
                        template: "<mat-form-field [appearance]=\"appearence\" fxFlex >\r\n  <mat-label>{{formName}}</mat-label>\r\n  <input  matInput placeholder=\"{{placeHolder ? placeHolder : formName}}\" />\r\n  <mat-icon matSuffix>{{iconName}}</mat-icon>\r\n  <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\r\n</mat-form-field>\r\n",
                        styles: [""]
                    }] }
        ];
        /** @nocollapse */
        MatFormFieldComponent.ctorParameters = function () {
            return [
                { type: i0.ChangeDetectorRef }
            ];
        };
        MatFormFieldComponent.propDecorators = {
            appearence: [{ type: i0.Input }],
            showHint: [{ type: i0.Input }],
            hint: [{ type: i0.Input }],
            matSuffix: [{ type: i0.Input }],
            matPrefix: [{ type: i0.Input }],
            iconName: [{ type: i0.Input }],
            placeHolder: [{ type: i0.Input }],
            formName: [{ type: i0.Input }],
            ngModel: [{ type: i0.Output }],
            formfields: [{ type: i0.ViewChildren, args: [material.MatFormField,] }]
        };
        return MatFormFieldComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var FilterTableActionsComponent = /** @class */ (function () {
        function FilterTableActionsComponent() {
            this.limpar = new i0.EventEmitter();
            this.pesquisa = new i0.EventEmitter();
        }
        /**
         * @return {?}
         */
        FilterTableActionsComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () {
            };
        /**
         * @return {?}
         */
        FilterTableActionsComponent.prototype.pesquisar = /**
         * @return {?}
         */
            function () {
                this.pesquisa.emit();
            };
        /**
         * @return {?}
         */
        FilterTableActionsComponent.prototype.limparFiltro = /**
         * @return {?}
         */
            function () {
                this.limpar.emit();
            };
        FilterTableActionsComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-filter-table-actions',
                        template: "<div fxLayout=\"row\" fxLayoutAlign=\"flex-end center\" fxLayoutGap=\"8px\">\n  <button\n    id=\"btn-filter-limpar-inside\"\n    mat-stroked-button\n    class=\"btn-filter\"\n    (click)=\"limparFiltro()\"\n  >\n    Limpar\n  </button>\n  <button\n    id=\"btn-filter-pesquisar\"\n    mat-flat-button\n    color=\"primary\"\n    class=\"btn-filter\"\n    (click)=\"pesquisar()\"\n  >\n    Pesquisar\n  </button>\n  <ng-content></ng-content>\n</div>\n",
                        styles: [""]
                    }] }
        ];
        /** @nocollapse */
        FilterTableActionsComponent.ctorParameters = function () { return []; };
        FilterTableActionsComponent.propDecorators = {
            limpar: [{ type: i0.Output }],
            pesquisa: [{ type: i0.Output }]
        };
        return FilterTableActionsComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var DataTableService = /** @class */ (function () {
        // tslint:disable-next-line: variable-name
        function DataTableService() {
            this.buttonRowEvent = new i0.EventEmitter();
            this.topButtonEvent = new i0.EventEmitter();
            this.inputDataEvent = new i0.EventEmitter();
            this.filterLimparEvent = new i0.EventEmitter();
            this.filterPesquisarEvent = new i0.EventEmitter();
        }
        /**
         * @return {?}
         */
        DataTableService.prototype.ngOnInit = /**
         * @return {?}
         */
            function () { };
        /**
         * @return {?}
         */
        DataTableService.prototype.getData = /**
         * @return {?}
         */
            function () {
                return this.data;
            };
        /**
         * @param {?} element
         * @return {?}
         */
        DataTableService.prototype.setDataSource = /**
         * @param {?} element
         * @return {?}
         */
            function (element) {
                this.data = new material.MatTableDataSource(element);
                return this.data;
            };
        /**
         * @param {?} element
         * @return {?}
         */
        DataTableService.prototype.setInputData = /**
         * @param {?} element
         * @return {?}
         */
            function (element) {
                this.inputDataEvent.emit(element);
            };
        /**
         * @param {?} event
         * @param {?} index
         * @return {?}
         */
        DataTableService.prototype.buttonRowClick = /**
         * @param {?} event
         * @param {?} index
         * @return {?}
         */
            function (event, index) {
                this.buttonRowEvent.emit({ event: event, index: index });
            };
        /**
         * @param {?} eventSlug
         * @return {?}
         */
        DataTableService.prototype.topButtonClick = /**
         * @param {?} eventSlug
         * @return {?}
         */
            function (eventSlug) {
                this.topButtonEvent.emit(eventSlug);
            };
        /**
         * @return {?}
         */
        DataTableService.prototype.filterLimparButtonClick = /**
         * @return {?}
         */
            function () {
                this.filterLimparEvent.emit();
            };
        /**
         * @return {?}
         */
        DataTableService.prototype.filterPesquisarButtonClick = /**
         * @return {?}
         */
            function () {
                this.filterPesquisarEvent.emit();
            };
        DataTableService.decorators = [
            { type: i0.Injectable, args: [{
                        providedIn: 'root'
                    },] }
        ];
        /** @nocollapse */
        DataTableService.ctorParameters = function () { return []; };
        /** @nocollapse */ DataTableService.ngInjectableDef = i0.defineInjectable({ factory: function DataTableService_Factory() { return new DataTableService(); }, token: DataTableService, providedIn: "root" });
        return DataTableService;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var PopoverService = /** @class */ (function () {
        function PopoverService() {
            this.emitirCloseEvent = new i0.EventEmitter();
            this.buttonClickEvent = new i0.EventEmitter();
        }
        /**
         * @return {?}
         */
        PopoverService.prototype.closeDropdown = /**
         * @return {?}
         */
            function () {
                this.emitirCloseEvent.emit();
            };
        /**
         * @param {?} event
         * @param {?} elementId
         * @return {?}
         */
        PopoverService.prototype.buttonClickEmit = /**
         * @param {?} event
         * @param {?} elementId
         * @return {?}
         */
            function (event, elementId) {
                this.buttonClickEvent.emit({ event: event, elementId: elementId });
            };
        PopoverService.decorators = [
            { type: i0.Injectable, args: [{
                        providedIn: 'root'
                    },] }
        ];
        /** @nocollapse */
        PopoverService.ctorParameters = function () { return []; };
        /** @nocollapse */ PopoverService.ngInjectableDef = i0.defineInjectable({ factory: function PopoverService_Factory() { return new PopoverService(); }, token: PopoverService, providedIn: "root" });
        return PopoverService;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var DataTableComponent = /** @class */ (function () {
        function DataTableComponent(dataTableService, popoverService, renderer) {
            this.dataTableService = dataTableService;
            this.popoverService = popoverService;
            this.renderer = renderer;
            this.selectColumn = false;
            this.columnNames = [];
            this.actions = [];
            this.inputData = [];
            this.topActionButtons = [];
            this.displayedColumns = [];
            this.columnsToDisplay = [];
            this.selection = new collections.SelectionModel(true, []);
            this.columnsNameApi = [];
            this.topButtonStyle = {
                height: '32px',
                'line-height': '32px'
            };
        }
        /**
         * @return {?}
         */
        DataTableComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () {
                var _this = this;
                this.data = this.dataTableService.setDataSource(this.inputData);
                this.columnsNameApi = this.columnNames.map(( /**
                 * @param {?} e
                 * @return {?}
                 */function (e) { return e.columnNameApi; }));
                this.displayColumns();
                this.dataTableService.inputDataEvent.subscribe(( /**
                 * @param {?} inputData
                 * @return {?}
                 */function (inputData) {
                    _this.load(inputData);
                }));
            };
        /**
         * @param {?} inputData
         * @return {?}
         */
        DataTableComponent.prototype.load = /**
         * @param {?} inputData
         * @return {?}
         */
            function (inputData) {
                var _this = this;
                this.inputData = inputData;
                this.columnsNameApi = this.columnNames.map(( /**
                 * @param {?} e
                 * @return {?}
                 */function (e) { return e.columnNameApi; }));
                this.data = this.dataTableService.setDataSource(this.inputData);
                this.noData = this.data.connect().pipe(operators.map(( /**
                 * @param {?} data
                 * @return {?}
                 */function (data) { return data.length === 0; })));
                this.data.paginator = this.paginator;
                this.addActionsToData();
                this.displayColumns();
                this.popoverService.buttonClickEvent.subscribe(( /**
                 * @param {?} event
                 * @return {?}
                 */function (event) {
                    _this.buttonRowClick(event.event, event.elementId);
                }));
            };
        /**
         * @return {?}
         */
        DataTableComponent.prototype.filterLimparButtonClick = /**
         * @return {?}
         */
            function () {
                this.dataTableService.filterLimparButtonClick();
            };
        /**
         * @return {?}
         */
        DataTableComponent.prototype.filterPesquisarButtonClick = /**
         * @return {?}
         */
            function () {
                this.dataTableService.filterPesquisarButtonClick();
            };
        /**
         * @param {?} eventSlug
         * @return {?}
         */
        DataTableComponent.prototype.topButtonClick = /**
         * @param {?} eventSlug
         * @return {?}
         */
            function (eventSlug) {
                this.dataTableService.topButtonClick(eventSlug);
            };
        /**
         * @param {?} event
         * @param {?} index
         * @return {?}
         */
        DataTableComponent.prototype.buttonRowClick = /**
         * @param {?} event
         * @param {?} index
         * @return {?}
         */
            function (event, index) {
                // console.log(`buttonRowClick: ${event.toLowerCase()}, ${index.toLowerCase()}`);
                this.dataTableService.buttonRowClick(event.toLowerCase(), index);
            };
        /**
         * @return {?}
         */
        DataTableComponent.prototype.addActionsToData = /**
         * @return {?}
         */
            function () {
                var _this = this;
                this.data.data.map(( /**
                 * @param {?} e
                 * @return {?}
                 */function (e) {
                    // tslint:disable-next-line: no-string-literal
                    e['actions'] = Object.assign({}, _this.actions);
                }));
            };
        /**
         * @return {?}
         */
        DataTableComponent.prototype.isAllSelected = /**
         * @return {?}
         */
            function () {
                /** @type {?} */
                var numSelected = this.selection.selected.length;
                /** @type {?} */
                var numRows = this.data.data.length;
                return numSelected === numRows;
            };
        /**
         * @return {?}
         */
        DataTableComponent.prototype.masterToggle = /**
         * @return {?}
         */
            function () {
                var _this = this;
                this.isAllSelected()
                    ? this.selection.clear()
                    : this.data.data.forEach(( /**
                     * @param {?} row
                     * @return {?}
                     */function (row) { return _this.selection.select(row); }));
            };
        /**
         * @return {?}
         */
        DataTableComponent.prototype.displayColumns = /**
         * @return {?}
         */
            function () {
                if (this.selectColumn) {
                    this.addSelectToDisplayedColumns();
                }
                if (this.actions.length >= 0) {
                    this.addActionsToDisplayedColumns();
                }
            };
        /**
         * @return {?}
         */
        DataTableComponent.prototype.addSelectToDisplayedColumns = /**
         * @return {?}
         */
            function () {
                /** @type {?} */
                var select$$1 = ['select'];
                if (this.columnsNameApi && this.columnsNameApi.length !== 0) {
                    this.columnsNameApi = select$$1.concat(this.columnsNameApi);
                    this.displayedColumns = this.columnsNameApi;
                    this.columnsToDisplay = this.displayedColumns.slice();
                }
                else {
                    this.displayedColumns = select$$1.concat(Object.keys(this.data[0]));
                    this.columnsToDisplay = this.displayedColumns.slice();
                }
            };
        /**
         * @return {?}
         */
        DataTableComponent.prototype.addActionsToDisplayedColumns = /**
         * @return {?}
         */
            function () {
                /** @type {?} */
                var actions = ['actions'];
                if (this.columnsNameApi && this.columnsNameApi.length !== 0) {
                    this.columnsNameApi.push(actions[0]);
                    this.displayedColumns = this.columnsNameApi;
                    this.columnsToDisplay = this.displayedColumns.slice();
                }
                else {
                    this.displayedColumns = actions.concat(Object.keys(this.data[0]));
                    this.columnsToDisplay = this.displayedColumns.slice();
                }
            };
        /**
         * @param {?} columnNameApi
         * @return {?}
         */
        DataTableComponent.prototype.verifyNameColumn = /**
         * @param {?} columnNameApi
         * @return {?}
         */
            function (columnNameApi) {
                /** @type {?} */
                var columnNameApiArray = this.columnNames.map(( /**
                 * @param {?} e
                 * @return {?}
                 */function (e) { return e.columnNameApi; }));
                /** @type {?} */
                var indexcolumnNameApi = columnNameApiArray.indexOf(columnNameApi);
                if (indexcolumnNameApi >= 0) {
                    return this.columnNames[indexcolumnNameApi].displayName;
                }
                else {
                    return columnNameApi;
                }
            };
        /**
         * @return {?}
         */
        DataTableComponent.prototype.addColumn = /**
         * @return {?}
         */
            function () {
                /** @type {?} */
                var randomColumn = Math.floor(Math.random() * this.displayedColumns.length);
                this.columnsToDisplay.push(this.displayedColumns[randomColumn]);
            };
        /**
         * @return {?}
         */
        DataTableComponent.prototype.removeColumn = /**
         * @return {?}
         */
            function () {
                if (this.columnsToDisplay.length) {
                    this.columnsToDisplay.pop();
                }
            };
        DataTableComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-data-table',
                        template: "<div>\r\n  <div fxLayout fxLayoutAlign=\"space-between center\" class=\"mr-16 ml-16 mb-5\">\r\n    <div #topButtonAction fxLayout=\"row wrap\" fxLayoutAlign=\"flex-start center\" fxLayoutGap=\"10px grid\">\r\n      <sb-button\r\n        *ngFor=\"let buttonElement of topActionButtons\"\r\n        [materialTypeButton]=\"buttonElement.buttonType\"\r\n        [color]=\"buttonElement.buttonColor\"\r\n        [actionName]=\"buttonElement.actionName\"\r\n        [customStyles]=\"topButtonStyle\"\r\n        (buttonClick)=\"topButtonClick(buttonElement.eventSlug)\"\r\n      ></sb-button>\r\n    </div>\r\n    <sb-filter-table (limpar)=\"filterLimparButtonClick()\" (pesquisa)=\"filterPesquisarButtonClick()\">\r\n      <ng-content select=\".sb-data-table-content\"></ng-content>\r\n    </sb-filter-table>\r\n  </div>\r\n  <table mat-table [dataSource]=\"data\" style=\"width: 100%;\" class=\"table-striped table-hover\">\r\n    <!-- Checkbox Column -->\r\n\r\n    <ng-container [matColumnDef]=\"column\" *ngFor=\"let column of displayedColumns\">\r\n      <div *ngIf=\"column == 'select'\">\r\n        <th mat-header-cell *matHeaderCellDef>\r\n          <mat-checkbox\r\n            (change)=\"$event ? masterToggle() : null\"\r\n            [checked]=\"selection.hasValue() && isAllSelected()\"\r\n            [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\r\n          >\r\n          </mat-checkbox>\r\n        </th>\r\n        <td mat-cell *matCellDef=\"let row\">\r\n          <mat-checkbox\r\n            (click)=\"$event.stopPropagation()\"\r\n            (change)=\"$event ? selection.toggle(row) : null\"\r\n            [checked]=\"selection.isSelected(row)\"\r\n          >\r\n          </mat-checkbox>\r\n        </td>\r\n      </div>\r\n      <div *ngIf=\"column !== 'select' && column !== 'actions'\">\r\n        <th mat-header-cell *matHeaderCellDef>\r\n          {{ verifyNameColumn(column) }}\r\n        </th>\r\n        <td mat-cell *matCellDef=\"let element\">{{ element[column] }}</td>\r\n      </div>\r\n      <div *ngIf=\"column == 'actions'\">\r\n        <th mat-header-cell *matHeaderCellDef>A\u00E7\u00F5es</th>\r\n        <td mat-cell *matCellDef=\"let element\">\r\n          <div fxLayout>\r\n            <div *ngFor=\"let buttonElement of (element.actions | keyvalue)\">\r\n              <button\r\n                mat-icon-button\r\n                *ngIf=\"!buttonElement.value.isDelete\"\r\n                (click)=\"buttonRowClick(buttonElement.value.actionName, element.id)\"\r\n                matTooltip=\"{{ buttonElement.value.actionDescription }}\"\r\n              >\r\n                <mat-icon>{{ buttonElement.value.actionIcon }}</mat-icon>\r\n              </button>\r\n              <sb-popover\r\n                *ngIf=\"buttonElement.value.isDelete\"\r\n                matTooltip=\"{{ buttonElement.value.actionDescription }}\"\r\n                elementId=\"{{ element.id }}\"\r\n                popoverTitle=\"{{ buttonElement.value.isDeleteTitle }}\"\r\n                popoverDescription=\"{{ buttonElement.value.isDeleteDescription }}\"\r\n              ></sb-popover>\r\n            </div>\r\n          </div>\r\n        </td>\r\n      </div>\r\n    </ng-container>\r\n\r\n    <tr mat-header-row *matHeaderRowDef=\"columnsToDisplay\"></tr>\r\n    <tr mat-row *matRowDef=\"let row; columns: columnsToDisplay\" (click)=\"selection.toggle(row)\"></tr>\r\n  </table>\r\n\r\n  <div @flipInOut *ngIf=\"data.data.length == 0\" fxLayout=\"column\" fxLayoutAlign=\"center center\" fxLayoutGap=\"5px\" class=\"m-30\">\r\n    <img src=\"../../../assets/img/nodata.svg\" />\r\n    <p class=\" mat-caption\">\r\n      Sem Registros\r\n    </p>\r\n  </div>\r\n\r\n  <mat-paginator [pageSizeOptions]=\"[5, 10, 25, 100]\" class=\"mt-10\"></mat-paginator>\r\n</div>\r\n",
                        animations: [
                            animations.trigger('flipInOut', [
                                animations.transition('void => *', animations.useAnimation(ngAnimate.flipInX, {
                                    params: { timing: 0.3, delay: 0, a: '10px', b: '0' }
                                })),
                                animations.transition('* => void', animations.useAnimation(ngAnimate.flipOutX, {
                                    params: { timing: 0.3, delay: 0 }
                                }))
                            ])
                        ],
                        styles: ["td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type,th.mat-header-cell:last-of-type{width:180px;text-align:center}"]
                    }] }
        ];
        /** @nocollapse */
        DataTableComponent.ctorParameters = function () {
            return [
                { type: DataTableService },
                { type: PopoverService },
                { type: i0.Renderer2 }
            ];
        };
        DataTableComponent.propDecorators = {
            selectColumn: [{ type: i0.Input }],
            columnNames: [{ type: i0.Input }],
            actions: [{ type: i0.Input }],
            inputData: [{ type: i0.Input }],
            topActionButtons: [{ type: i0.Input }],
            paginator: [{ type: i0.ViewChild, args: [material.MatPaginator,] }]
        };
        return DataTableComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var DataTableActionsComponent = /** @class */ (function () {
        function DataTableActionsComponent() {
        }
        /**
         * @return {?}
         */
        DataTableActionsComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () {
            };
        DataTableActionsComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-data-table-actions',
                        template: "<p>\n  data-table-actions works!\n</p>\n",
                        styles: [""]
                    }] }
        ];
        /** @nocollapse */
        DataTableActionsComponent.ctorParameters = function () { return []; };
        return DataTableActionsComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var DataTableRowActionsComponent = /** @class */ (function () {
        function DataTableRowActionsComponent() {
        }
        /**
         * @return {?}
         */
        DataTableRowActionsComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () {
            };
        DataTableRowActionsComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-data-table-row-actions',
                        template: "<p>\n  data-table-row-actions works!\n</p>\n",
                        styles: [""]
                    }] }
        ];
        /** @nocollapse */
        DataTableRowActionsComponent.ctorParameters = function () { return []; };
        return DataTableRowActionsComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var PopoverComponent = /** @class */ (function () {
        function PopoverComponent(overlay$$1, viewContainerRef, popoverService) {
            this.overlay = overlay$$1;
            this.viewContainerRef = viewContainerRef;
            this.popoverService = popoverService;
            this.positions = [
                {
                    originX: 'start',
                    originY: 'top',
                    overlayX: 'center',
                    overlayY: 'bottom'
                }
            ];
        }
        /**
         * @return {?}
         */
        PopoverComponent.prototype.ngAfterViewInit = /**
         * @return {?}
         */
            function () {
                this.strategy = this.overlay
                    .position()
                    .flexibleConnectedTo(this.popoverOrigin.elementRef)
                    .withPositions(this.positions)
                    .withTransformOriginOn('#action-dropdown-button');
                this.config = new overlay.OverlayConfig({
                    positionStrategy: this.strategy,
                    hasBackdrop: true,
                    backdropClass: 'cdk-overlay-transparent-backdrop'
                });
                this.overlayRef = this.overlay.create(this.config);
            };
        /**
         * @return {?}
         */
        PopoverComponent.prototype.openPopover = /**
         * @return {?}
         */
            function () {
                var _this = this;
                this.overlayRef.backdropClick().subscribe(( /**
                 * @return {?}
                 */function () {
                    _this.overlayRef.detach();
                }));
                this.popoverService.emitirCloseEvent.subscribe(( /**
                 * @return {?}
                 */function () {
                    _this.overlayRef.detach();
                }));
                this.overlayRef.attach(this.popoverContentTemplate);
            };
        /**
         * @param {?} event
         * @return {?}
         */
        PopoverComponent.prototype.clickActionButton = /**
         * @param {?} event
         * @return {?}
         */
            function (event) {
                this.popoverService.buttonClickEmit(event.toLowerCase(), this.elementId);
                this.popoverService.closeDropdown();
            };
        PopoverComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-popover',
                        template: "<button\r\n  mat-icon-button\r\n  type=\"button\"\r\n  id=\"action-dropdown-button\"\r\n  cdk-overlay-origin\r\n  (click)=\"openPopover()\"\r\n>\r\n  <mat-icon>delete</mat-icon>\r\n</button>\r\n<ng-template cdk-portal #popoverContentTemplate=\"cdkPortal\">\r\n  <div\r\n    @flipInOut\r\n    fxLayout=\"column\"\r\n    fxLayoutAlign=\"space-between\"\r\n    class=\"div-container-popover mat-elevation-z4 arrowBox\"\r\n  >\r\n    <div fxLayout>\r\n      <div class=\"mat-body\">{{ popoverTitle }}</div>\r\n    </div>\r\n    <div fxLayout class=\"p-10\">\r\n      <div class=\"mat-caption\">{{ popoverDescription }}</div>\r\n    </div>\r\n    <div fxLayout fxLayoutAlign=\"flex-end\" fxLayoutGap=\"5px\">\r\n      <button\r\n        mat-flat-button\r\n        class=\"button-popover\"\r\n        (click)=\"clickActionButton('canceldelete')\"\r\n      >\r\n        Cancelar\r\n      </button>\r\n      <button\r\n        mat-flat-button\r\n        color=\"primary\"\r\n        class=\"button-popover\"\r\n        (click)=\"clickActionButton('confirmdelete')\"\r\n      >\r\n        Confirmar\r\n      </button>\r\n    </div>\r\n  </div>\r\n</ng-template>\r\n",
                        animations: [
                            animations.trigger('flipInOut', [
                                animations.transition('void => *', animations.useAnimation(ngAnimate.fadeInUp, {
                                    params: { timing: 0.3, delay: 0, a: '10px', b: '0' }
                                })),
                                animations.transition('* => void', animations.useAnimation(ngAnimate.fadeOut, {
                                    params: { timing: 0.3, delay: 0 }
                                }))
                            ])
                        ],
                        styles: [".button-popover{font-size:.7em;height:20px;line-height:20px;padding:0}.mat-body{font-weight:500}.arrowBox{min-width:200px;min-height:30px;background-color:#fff;border-radius:5px;position:relative;padding:10px;font-family:Roboto,sans-serif;font-size:14px;line-height:22px;text-align:center;margin:0 0 7px 30px}.arrowBox:after{content:' ';width:0;height:0;border-top:10px solid #fff;border-left:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #fff;border-radius:0 30%;position:absolute;left:50%;top:100%;margin:-10px 0 0 -5px;-webkit-transform:rotate(135deg);transform:rotate(135deg);box-shadow:3px -4px 5px -1px rgba(0,0,0,.26)}#player{z-index:-1;position:relative;top:-16px;left:114px}#inner{-webkit-transform:rotate(45deg);transform:rotate(45deg);background-color:#fff;width:20px;height:20px;top:2px;left:-9px;position:relative;border-radius:6px}#outer{position:absolute;width:16px;height:25px;overflow:hidden;-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}"]
                    }] }
        ];
        /** @nocollapse */
        PopoverComponent.ctorParameters = function () {
            return [
                { type: overlay.Overlay },
                { type: i0.ViewContainerRef },
                { type: PopoverService }
            ];
        };
        PopoverComponent.propDecorators = {
            popoverTitle: [{ type: i0.Input }],
            popoverDescription: [{ type: i0.Input }],
            elementId: [{ type: i0.Input }],
            popoverOrigin: [{ type: i0.ViewChild, args: [overlay.CdkOverlayOrigin,] }],
            popoverContentTemplate: [{ type: i0.ViewChild, args: ['popoverContentTemplate',] }]
        };
        return PopoverComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var ButtonComponent = /** @class */ (function () {
        function ButtonComponent() {
            this.buttonClick = new i0.EventEmitter();
            /* if(this.testeVariavel === 'mat-button') {
              this.matButton = true;
            } */
        }
        /**
         * @return {?}
         */
        ButtonComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () {
            };
        /**
         * @return {?}
         */
        ButtonComponent.prototype.topButtonClick = /**
         * @return {?}
         */
            function () {
                this.buttonClick.emit();
            };
        ButtonComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-button',
                        template: "<div [ngSwitch]=\"materialTypeButton\">\r\n  <button\r\n    *ngSwitchCase=\"'mat-button'\"\r\n    mat-button\r\n    color=\"{{ color }}\"\r\n    [ngClass]=\"fullWidth ? 'button-full-width' : ''\"\r\n    [type]=\"typeButton\"\r\n    [ngStyle]=\"customStyles\"\r\n    (click)=\"topButtonClick()\"\r\n  >\r\n    <div *ngIf=\"actionName\">\r\n      {{ actionName }}\r\n    </div>\r\n    <div *ngIf=\"!actionName || actionName == '' || actionName == null\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </button>\r\n  <button\r\n    *ngSwitchCase=\"'mat-raised-button'\"\r\n    mat-raised-button\r\n    color=\"{{ color }}\"\r\n    [ngClass]=\"fullWidth ? 'button-full-width' : ''\"\r\n    [type]=\"typeButton\"\r\n    [ngStyle]=\"customStyles\"\r\n    (click)=\"topButtonClick()\"\r\n  >\r\n    <div *ngIf=\"actionName\">\r\n      {{ actionName }}\r\n    </div>\r\n    <div *ngIf=\"!actionName\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </button>\r\n  <button\r\n    *ngSwitchCase=\"'mat-icon-button'\"\r\n    mat-icon-button\r\n    color=\"{{ color }}\"\r\n    [ngClass]=\"fullWidth ? 'button-full-width' : ''\"\r\n    [type]=\"typeButton\"\r\n    [ngStyle]=\"customStyles\"\r\n    (click)=\"topButtonClick()\"\r\n  >\r\n    <div *ngIf=\"actionName\">\r\n      {{ actionName }}\r\n    </div>\r\n    <div *ngIf=\"!actionName\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </button>\r\n  <button\r\n    *ngSwitchCase=\"'mat-fab'\"\r\n    mat-fab\r\n    color=\"{{ color }}\"\r\n    [ngClass]=\"fullWidth ? 'button-full-width' : ''\"\r\n    [type]=\"typeButton\"\r\n    [ngStyle]=\"customStyles\"\r\n    (click)=\"topButtonClick()\"\r\n  >\r\n    <div *ngIf=\"actionName\">\r\n      {{ actionName }}\r\n    </div>\r\n    <div *ngIf=\"!actionName\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </button>\r\n  <button\r\n    *ngSwitchCase=\"'mat-mini-fab'\"\r\n    mat-mini-fab\r\n    color=\"{{ color }}\"\r\n    [ngClass]=\"fullWidth ? 'button-full-width' : ''\"\r\n    [type]=\"typeButton\"\r\n    [ngStyle]=\"customStyles\"\r\n    (click)=\"topButtonClick()\"\r\n  >\r\n    <div *ngIf=\"actionName\">\r\n      {{ actionName }}\r\n    </div>\r\n    <div *ngIf=\"!actionName\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </button>\r\n  <button\r\n    *ngSwitchCase=\"'mat-stroked-button'\"\r\n    mat-stroked-button\r\n    color=\"{{ color }}\"\r\n    [ngClass]=\"fullWidth ? 'button-full-width' : ''\"\r\n    [type]=\"typeButton\"\r\n    [ngStyle]=\"customStyles\"\r\n    (click)=\"topButtonClick()\"\r\n  >\r\n    <div *ngIf=\"actionName\">\r\n      {{ actionName }}\r\n    </div>\r\n    <div *ngIf=\"!actionName\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </button>\r\n  <button\r\n    *ngSwitchCase=\"'mat-flat-button'\"\r\n    mat-flat-button\r\n    color=\"{{ color }}\"\r\n    [ngClass]=\"fullWidth ? 'button-full-width' : ''\"\r\n    [type]=\"typeButton\"\r\n    [ngStyle]=\"customStyles\"\r\n    (click)=\"topButtonClick()\"\r\n  >\r\n    <div *ngIf=\"actionName\">\r\n      {{ actionName }}\r\n    </div>\r\n    <div *ngIf=\"!actionName\">\r\n      <ng-content></ng-content>\r\n    </div>\r\n  </button>\r\n</div>\r\n",
                        styles: [".button-full-width{width:100%}"]
                    }] }
        ];
        /** @nocollapse */
        ButtonComponent.ctorParameters = function () { return []; };
        ButtonComponent.propDecorators = {
            color: [{ type: i0.Input }],
            actionName: [{ type: i0.Input }],
            typeButton: [{ type: i0.Input }],
            materialTypeButton: [{ type: i0.Input }],
            fullWidth: [{ type: i0.Input }],
            customStyles: [{ type: i0.Input }],
            buttonClick: [{ type: i0.Output }]
        };
        return ButtonComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var DialogComponent = /** @class */ (function () {
        function DialogComponent(dialogRef) {
            this.dialogRef = dialogRef;
            this.confirmClick = new i0.EventEmitter();
        }
        /**
         * @return {?}
         */
        DialogComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () {
                //this.tabs = this.dialogService.getTabs();
            };
        /**
         * @return {?}
         */
        DialogComponent.prototype.onCancelClick = /**
         * @return {?}
         */
            function () {
                this.dialogRef.close();
            };
        /**
         * @return {?}
         */
        DialogComponent.prototype.onConfirmClick = /**
         * @return {?}
         */
            function () {
                this.confirmClick.emit();
            };
        DialogComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-dialog',
                        template: "<div mat-dialog-content>\r\n  <ng-content></ng-content>\r\n</div>\r\n<div mat-dialog-actions fxLayout fxLayoutAlign=\"flex-end center\" fxLayoutGap=\"5px\">\r\n  <sb-button actionName=\"Cancelar\" typeButton=\"button\" materialTypeButton=\"mat-stroked-button\" (buttonClick)=\"onCancelClick()\"></sb-button>\r\n  <sb-button actionName=\"Confirmar\" [typeButton]=\"typeButton\" materialTypeButton=\"mat-flat-button\" color=\"primary\" (buttonClick)=\"onConfirmClick()\"></sb-button>\r\n</div>\r\n<!-- <h1 mat-dialog-title>Hi {{data.name}}</h1>\r\n  <p>What's your favorite animal?</p>\r\n  <mat-form-field>\r\n    <input matInput [(ngModel)]=\"data\">\r\n  </mat-form-field>\r\n  <ng-content [select]=\"selectContentId\"></ng-content>\r\n</div>\r\n<div mat-dialog-actions>\r\n  <button mat-button (click)=\"onNoClick()\">No Thanks</button>\r\n  <button mat-button [mat-dialog-close]=\"data\" cdkFocusInitial>Ok</button>\r\n</div> -->\r\n",
                        styles: [""]
                    }] }
        ];
        /** @nocollapse */
        DialogComponent.ctorParameters = function () {
            return [
                { type: material.MatDialogRef }
            ];
        };
        DialogComponent.propDecorators = {
            typeButton: [{ type: i0.Input }],
            confirmClick: [{ type: i0.Output }]
        };
        return DialogComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var ViewEditContainerComponent = /** @class */ (function () {
        function ViewEditContainerComponent() {
            this.modalConfirmClick = new i0.EventEmitter();
        }
        /**
         * @return {?}
         */
        ViewEditContainerComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () {
            };
        /**
         * @return {?}
         */
        ViewEditContainerComponent.prototype.confirmClick = /**
         * @return {?}
         */
            function () {
                this.modalConfirmClick.emit();
            };
        ViewEditContainerComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-view-edit-container',
                        template: "<sb-dialog (confirmClick)=\"confirmClick()\" [typeButton]=\"typeButton ? typeButton : 'submit'\">\r\n  <mat-tab-group>\r\n    <mat-tab #matTabTag *ngFor=\"let tab of templates; let index = index\" [label]=\"tab[0]\">\r\n      <ng-container *ngTemplateOutlet=\"tab[1]\"></ng-container>\r\n    </mat-tab>\r\n  </mat-tab-group>\r\n</sb-dialog>\r\n\r\n<!-- <ng-content></ng-content> -->\r\n\r\n\r\n",
                        styles: [""]
                    }] }
        ];
        /** @nocollapse */
        ViewEditContainerComponent.ctorParameters = function () { return []; };
        ViewEditContainerComponent.propDecorators = {
            templates: [{ type: i0.Input }],
            typeButton: [{ type: i0.Input }],
            modalConfirmClick: [{ type: i0.Output }]
        };
        return ViewEditContainerComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var MatTabComponent = /** @class */ (function () {
        function MatTabComponent() {
        }
        /**
         * @return {?}
         */
        MatTabComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () {
            };
        MatTabComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-mat-tab',
                        template: "<mat-tab [label]=\"label\">\r\n    <ng-content></ng-content>\r\n</mat-tab>\r\n",
                        styles: [""]
                    }] }
        ];
        /** @nocollapse */
        MatTabComponent.ctorParameters = function () { return []; };
        MatTabComponent.propDecorators = {
            label: [{ type: i0.Input }]
        };
        return MatTabComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var HeaderService = /** @class */ (function () {
        function HeaderService() {
            this.showMenuClickEvent = new i0.EventEmitter();
        }
        /**
         * @return {?}
         */
        HeaderService.prototype.showMenuClick = /**
         * @return {?}
         */
            function () {
                this.showMenuClickEvent.emit();
            };
        /**
         * @param {?} e
         * @return {?}
         */
        HeaderService.prototype.showMenuButton = /**
         * @param {?} e
         * @return {?}
         */
            function (e) {
                this.hasSideNav = e;
            };
        HeaderService.decorators = [
            { type: i0.Injectable, args: [{
                        providedIn: 'root'
                    },] }
        ];
        /** @nocollapse */
        HeaderService.ctorParameters = function () { return []; };
        /** @nocollapse */ HeaderService.ngInjectableDef = i0.defineInjectable({ factory: function HeaderService_Factory() { return new HeaderService(); }, token: HeaderService, providedIn: "root" });
        return HeaderService;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var HeaderComponent = /** @class */ (function () {
        function HeaderComponent(headerService) {
            this.headerService = headerService;
        }
        /**
         * @return {?}
         */
        HeaderComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () {
                this.showMenuButton = this.headerService.hasSideNav;
            };
        /**
         * @return {?}
         */
        HeaderComponent.prototype.showMenuButtonClick = /**
         * @return {?}
         */
            function () {
                this.headerService.showMenuClick();
            };
        HeaderComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-header',
                        template: "<header>\n  <mat-toolbar color=\"primary\">\n    <mat-toolbar-row fxLayout fxLayoutAlign=\"space-between center\">\n      <div fxLayout fxLayoutAlign=\"center center\">\n        <div fxLayout fxLayoutAlign=\"center center\">\n          <img *ngIf=\"logoImgSrc\" [src]=\"logoImgSrc\" class=\"logo-principal\" />\n          <div class=\"sb-mat-title-appbar\">{{ appName }}</div>\n        </div>\n        <button\n          *ngIf=\"showMenuButton\"\n          mat-icon-button\n          (click)=\"showMenuButtonClick()\"\n        >\n          <mat-icon class=\"icons-toolbar\">menu</mat-icon>\n        </button>\n      </div>\n      <div>\n        <ng-content></ng-content>\n      </div>\n    </mat-toolbar-row>\n  </mat-toolbar>\n</header>\n",
                        styles: [".logo-principal{width:28px;margin:auto}.sb-mat-title-appbar{font:400 24px/36px Roboto,\"Helvetica Neue\",sans-serif;margin:0 0 0 8px;color:#fff}"]
                    }] }
        ];
        /** @nocollapse */
        HeaderComponent.ctorParameters = function () {
            return [
                { type: HeaderService }
            ];
        };
        HeaderComponent.propDecorators = {
            logoImgSrc: [{ type: i0.Input }],
            appName: [{ type: i0.Input }]
        };
        return HeaderComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    /** @type {?} */
    var MATERIAL_MODULES = [
        material.MatCheckboxModule,
        material.MatCheckboxModule,
        material.MatButtonModule,
        input.MatInputModule,
        autocomplete.MatAutocompleteModule,
        datepicker.MatDatepickerModule,
        formField.MatFormFieldModule,
        radio.MatRadioModule,
        select.MatSelectModule,
        slider.MatSliderModule,
        slideToggle.MatSlideToggleModule,
        menu.MatMenuModule,
        sidenav.MatSidenavModule,
        toolbar.MatToolbarModule,
        list.MatListModule,
        gridList.MatGridListModule,
        card.MatCardModule,
        stepper.MatStepperModule,
        tabs.MatTabsModule,
        expansion.MatExpansionModule,
        buttonToggle.MatButtonToggleModule,
        chips.MatChipsModule,
        icon.MatIconModule,
        progressSpinner.MatProgressSpinnerModule,
        progressBar.MatProgressBarModule,
        i1.MatDialogModule,
        tooltip.MatTooltipModule,
        snackBar.MatSnackBarModule,
        table.MatTableModule,
        sort.MatSortModule,
        paginator.MatPaginatorModule,
        core.MatRippleModule
    ];

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var SidenavService = /** @class */ (function () {
        function SidenavService() {
            this.isExpanded = true;
            this.isShowing = false;
            this.isHideToggle = !this.isExpanded;
            this.expandEmitter = new i0.EventEmitter();
            this.showEmitter = new i0.EventEmitter();
            this.hideToggleEmitter = new i0.EventEmitter();
        }
        /**
         * @return {?}
         */
        SidenavService.prototype.isExpandStatus = /**
         * @return {?}
         */
            function () {
                return this.isExpanded;
            };
        /**
         * @param {?} e
         * @return {?}
         */
        SidenavService.prototype.expandEmit = /**
         * @param {?} e
         * @return {?}
         */
            function (e) {
                this.expandEmitter.emit(e);
            };
        /**
         * @param {?} e
         * @return {?}
         */
        SidenavService.prototype.showEmit = /**
         * @param {?} e
         * @return {?}
         */
            function (e) {
                this.showEmitter.emit(e);
            };
        /**
         * @param {?} e
         * @return {?}
         */
        SidenavService.prototype.hideToggleEmit = /**
         * @param {?} e
         * @return {?}
         */
            function (e) {
                this.hideToggleEmitter.emit(e);
            };
        SidenavService.decorators = [
            { type: i0.Injectable, args: [{
                        providedIn: 'root'
                    },] }
        ];
        /** @nocollapse */
        SidenavService.ctorParameters = function () { return []; };
        /** @nocollapse */ SidenavService.ngInjectableDef = i0.defineInjectable({ factory: function SidenavService_Factory() { return new SidenavService(); }, token: SidenavService, providedIn: "root" });
        return SidenavService;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var SideNavComponent = /** @class */ (function () {
        function SideNavComponent(headerService, sidenavService) {
            this.headerService = headerService;
            this.sidenavService = sidenavService;
            this.isExpanded = true;
            this.isShowing = false;
            this.isHideToggle = !this.isExpanded;
        }
        /**
         * @return {?}
         */
        SideNavComponent.prototype.ngOnInit = /**
         * @return {?}
         */
            function () {
                var _this = this;
                this.headerService.showMenuClickEvent.subscribe(( /**
                 * @return {?}
                 */function () {
                    if (_this.isExpanded === true) {
                        _this.sidenavService.expandEmit(false);
                        _this.isExpanded = false;
                    }
                    else {
                        _this.sidenavService.expandEmit(true);
                        _this.isExpanded = true;
                    }
                    if (_this.isHideToggle === true) {
                        _this.sidenavService.hideToggleEmit(false);
                        _this.isHideToggle = false;
                    }
                    else {
                        _this.sidenavService.hideToggleEmit(true);
                        _this.isHideToggle = true;
                    }
                }));
            };
        /**
         * @return {?}
         */
        SideNavComponent.prototype.mouseenter = /**
         * @return {?}
         */
            function () {
                if (!this.isExpanded) {
                    this.isShowing = true;
                    this.sidenavService.showEmit(true);
                    this.isHideToggle = false;
                    this.sidenavService.hideToggleEmit(false);
                }
            };
        /**
         * @return {?}
         */
        SideNavComponent.prototype.mouseleave = /**
         * @return {?}
         */
            function () {
                if (!this.isExpanded) {
                    this.isShowing = false;
                    this.sidenavService.showEmit(false);
                    this.isHideToggle = true;
                    this.sidenavService.hideToggleEmit(true);
                }
            };
        SideNavComponent.decorators = [
            { type: i0.Component, args: [{
                        selector: 'sb-side-nav',
                        template: "<mat-sidenav-container class=\"sb-sidenav-container\" autosize>\n  <mat-sidenav\n    #sidenav\n    class=\"mat-elevation-z3 sb-sidenav\"\n    [@openClose]=\"isHideToggle ? 'closed' : 'open'\"\n    mode=\"side\"\n    opened=\"true\"\n    (mouseenter)=\"mouseenter()\"\n    (mouseleave)=\"mouseleave()\"\n    *ngIf=\"isRenderSidenav\"\n  >\n    <perfect-scrollbar>\n      <ng-content select=\".sb-sidenav-menus\"></ng-content>\n    </perfect-scrollbar>\n  </mat-sidenav>\n\n  <!-- Main content -->\n  <mat-sidenav-content>\n    <perfect-scrollbar>\n      <ng-content select=\".sb-sidenav-content\"></ng-content>\n    </perfect-scrollbar>\n  </mat-sidenav-content>\n</mat-sidenav-container>\n",
                        animations: [
                            animations.trigger('openClose', [
                                animations.state('open', animations.style({
                                    width: '238px'
                                })),
                                animations.state('closed', animations.style({
                                    width: '72px'
                                })),
                                animations.transition('open => closed', [
                                    animations.style({ width: '72px' }),
                                    animations.animate('200ms ease-in')
                                ]),
                                animations.transition('closed => open', [
                                    animations.style({ width: '238px' }),
                                    animations.animate('200ms ease-in')
                                ]),
                            ]),
                        ],
                        styles: [".sb-sidenav-container{height:100%}.sb-sidenav{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}"]
                    }] }
        ];
        /** @nocollapse */
        SideNavComponent.ctorParameters = function () {
            return [
                { type: HeaderService },
                { type: SidenavService }
            ];
        };
        SideNavComponent.propDecorators = {
            isRenderSidenav: [{ type: i0.Input }]
        };
        return SideNavComponent;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var HeaderDirective = /** @class */ (function () {
        function HeaderDirective(headerService) {
            headerService.showMenuButton(true);
        }
        HeaderDirective.decorators = [
            { type: i0.Directive, args: [{
                        selector: '[sbHasSideNav]'
                    },] }
        ];
        /** @nocollapse */
        HeaderDirective.ctorParameters = function () {
            return [
                { type: HeaderService }
            ];
        };
        return HeaderDirective;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    /** @type {?} */
    var DEFAULT_PERFECT_SCROLLBAR_CONFIG = {};
    var ɵ0 = DEFAULT_PERFECT_SCROLLBAR_CONFIG;
    var SubwayComponentsLibraryModule = /** @class */ (function () {
        function SubwayComponentsLibraryModule() {
        }
        SubwayComponentsLibraryModule.decorators = [
            { type: i0.NgModule, args: [{
                        declarations: [
                            ViewContainerComponent,
                            FilterTableComponent,
                            MatFormFieldComponent,
                            FilterTableActionsComponent,
                            DataTableComponent,
                            DataTableActionsComponent,
                            DataTableRowActionsComponent,
                            PopoverComponent,
                            ButtonComponent,
                            DialogComponent,
                            ViewEditContainerComponent,
                            MatTabComponent,
                            HeaderComponent,
                            HeaderDirective,
                            SideNavComponent
                        ],
                        imports: [
                            common.CommonModule,
                            animations$1.BrowserAnimationsModule,
                            forms.ReactiveFormsModule,
                            ngxPerfectScrollbar.PerfectScrollbarModule,
                            forms.FormsModule,
                            MATERIAL_MODULES,
                            flexLayout.FlexLayoutModule,
                            portal.PortalModule,
                            overlay.OverlayModule
                        ],
                        exports: [
                            ViewContainerComponent,
                            MatFormFieldComponent,
                            ButtonComponent,
                            ViewEditContainerComponent,
                            DialogComponent,
                            HeaderComponent,
                            HeaderDirective,
                            SideNavComponent
                        ],
                        providers: [
                            {
                                provide: ngxPerfectScrollbar.PERFECT_SCROLLBAR_CONFIG,
                                useValue: ɵ0
                            }
                        ]
                    },] }
        ];
        return SubwayComponentsLibraryModule;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */
    var DialogService = /** @class */ (function () {
        function DialogService(dialog) {
            this.dialog = dialog;
            this.tabs = ['First', 'Second', 'Third'];
        }
        /**
         * @return {?}
         */
        DialogService.prototype.ngOnInit = /**
         * @return {?}
         */
            function () {
            };
        /**
         * @return {?}
         */
        DialogService.prototype.getTabs = /**
         * @return {?}
         */
            function () {
                return this.tabs;
            };
        /**
         * @param {?} dialogComponent
         * @param {?} data
         * @return {?}
         */
        DialogService.prototype.openDialog = /**
         * @param {?} dialogComponent
         * @param {?} data
         * @return {?}
         */
            function (dialogComponent, data) {
                /** @type {?} */
                var dialogRef = this.dialog.open(dialogComponent, {
                    width: this.widthDialog,
                    data: data
                });
                dialogRef.afterClosed().subscribe(( /**
                 * @param {?} result
                 * @return {?}
                 */function (result) {
                }));
            };
        DialogService.decorators = [
            { type: i0.Injectable, args: [{
                        providedIn: 'root'
                    },] }
        ];
        /** @nocollapse */
        DialogService.ctorParameters = function () {
            return [
                { type: material.MatDialog }
            ];
        };
        /** @nocollapse */ DialogService.ngInjectableDef = i0.defineInjectable({ factory: function DialogService_Factory() { return new DialogService(i0.inject(i1.MatDialog)); }, token: DialogService, providedIn: "root" });
        return DialogService;
    }());

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */

    /**
     * @fileoverview added by tsickle
     * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
     */

    exports.SubwayComponentsLibraryModule = SubwayComponentsLibraryModule;
    exports.DialogService = DialogService;
    exports.DataTableService = DataTableService;
    exports.PopoverService = PopoverService;
    exports.SidenavService = SidenavService;
    exports.ViewContainerComponent = ViewContainerComponent;
    exports.MatFormFieldComponent = MatFormFieldComponent;
    exports.ButtonComponent = ButtonComponent;
    exports.ViewEditContainerComponent = ViewEditContainerComponent;
    exports.DialogComponent = DialogComponent;
    exports.HeaderComponent = HeaderComponent;
    exports.SideNavComponent = SideNavComponent;
    exports.DataTableComponent = DataTableComponent;
    exports.HeaderDirective = HeaderDirective;
    exports.ɵc = DataTableActionsComponent;
    exports.ɵd = DataTableRowActionsComponent;
    exports.ɵb = FilterTableActionsComponent;
    exports.ɵa = FilterTableComponent;
    exports.ɵe = PopoverComponent;
    exports.ɵg = HeaderService;
    exports.ɵh = MATERIAL_MODULES;
    exports.ɵf = MatTabComponent;

    Object.defineProperty(exports, '__esModule', { value: true });

})));

//# sourceMappingURL=lucasferreiralsf-angular-frontend-library.umd.js.map