{"__symbolic":"module","version":4,"metadata":{"NgxLoopReportService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":11,"character":44},"arguments":["environment"]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":11,"character":33},null]}],"getReportParameters":[{"__symbolic":"method"}],"getReportContent":[{"__symbolic":"method"}],"getReportData":[{"__symbolic":"method"}],"getAutoReportData":[{"__symbolic":"method"}],"getUserReports":[{"__symbolic":"method"}],"getExportData":[{"__symbolic":"method"}],"setReportFavorite":[{"__symbolic":"method"}],"getResource":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"MY_FORMATS":{"parse":{"dateInput":"MM/YYYY"},"display":{"dateInput":"MM/YYYY","monthYearLabel":"MMM YYYY","dateA11yLabel":"LL","monthYearA11yLabel":"MMMM YYYY"}},"NgxLoopReportComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":24,"character":1},"arguments":[{"selector":"NgxLoopReport","providers":[{"provide":{"__symbolic":"reference","module":"@angular/material","name":"DateAdapter","line":30,"character":15},"useClass":{"__symbolic":"reference","module":"@angular/material-moment-adapter","name":"MomentDateAdapter","line":31,"character":16},"deps":[{"__symbolic":"reference","module":"@angular/material","name":"MAT_DATE_LOCALE","line":32,"character":13},{"__symbolic":"reference","module":"@angular/material-moment-adapter","name":"MAT_MOMENT_DATE_ADAPTER_OPTIONS","line":32,"character":30}]},{"provide":{"__symbolic":"reference","module":"@angular/material","name":"MAT_DATE_FORMATS","line":34,"character":14},"useValue":{"__symbolic":"reference","name":"MY_FORMATS"}}],"template":"\n<iframe #iframe style=\"height: 0;width: 0;border: 0px;margin: 0px;position: absolute;padding: 0px;\"></iframe>\n<mat-progress-bar mode=\"indeterminate\" style=\"height: 3px;\" *ngIf=\"loading\" color=\"accent\"></mat-progress-bar>\n\n<div class=\"container-fluid\">\n  <div class=\"d-flex flex-row\">\n    <div *ngIf=\"!external && showOptions\" class=\"py-4 px-3 border-right scroller\" style=\"min-width:250px;width:250px;background-color:var(--background);height: calc(100vh - var(--header-height));overflow-y: auto;\">\n      <div class=\"header\" [hidden]=\"reportId!=null\">\n        <div class=\"d-flex flex-row\" >\n          <app-resource-selector\n            [resources]=\"reportTypes\"\n            displayField=\"label\"\n            [allowCreation]=\"false\"\n            [setFirstIfOnly]=\"false\"\n            (onItemSelected)=\"downloadFormModel($event.value)\"\n            [disabled]=\"loading==true\"\n          >\n          </app-resource-selector>\n        </div>\n      </div>\n      <form *ngIf=\"formModel != null\" [formGroup]=\"formGroup\" >\n        <div class=\"content\">\n          <div *ngFor=\"let field of formModel.fields\">\n            <mat-form-field class=\"w-100\" *ngIf=\"field.type == 'text'\">\n              <mat-label>{{field.label|translate}}</mat-label>\n              <input matInput type=\"text\" [formControlName]=\"field.name\"/>\n            </mat-form-field>\n            <!--mat-form-field class=\"w-100\" *ngIf=\"field.type == 'date'\">\n              <mat-label>{{field.label|translate}}</mat-label>\n              <input matInput type=\"date\" [formControlName]=\"field.name\"/>\n            </mat-form-field-->\n            <div *ngIf=\"field.type == 'date_range'\" class=\"col-12 pb-3 p-0\">\n              <p class=\"mb-1 foreground-color\" style=\"font-size: 0.75em\">{{'label.date_select' | translate}}</p>\n              <div (click)=\"rangePicker.open()\" class=\"w-100 date-input d-inline-flex flex-row align-items-center datepicker-range\">\n                  <input\n                      matInput\n                      class=\"border-0 w-100 rounded\"\n                      placeholder=\"Choose a date\"\n                      [satDatepicker]=\"rangePicker\"\n                      [formControlName]=\"field.name\"\n                      autocomplete=\"off\"\n                  />\n                  <sat-datepicker #rangePicker [rangeMode]=\"true\"></sat-datepicker>\n                  <i class=\"mdi mdi-calendar-range-outline cursor-pointer\" style=\"opacity: 0.6;\"></i>\n              </div>\n              <label *ngIf=\"formGroup.get(field.name).invalid\" style=\"color:var(--error-default);margin-bottom: 0px;font-size: 0.75em;font-weight: 500;\">{{'app.required_field'|translate}}!</label>\n            </div>\n            <div *ngIf=\"field.type == 'date'\" class=\"mb-3 w-100 date-input d-inline-flex flex-row align-items-center\" (click)=\"picker.open()\">\n              <input\n              class=\"border-0 w-100 rounded\"\n              readonly\n              matInput\n              placeholder=\"{{field.label|translate}}\"\n              (dateChange)=\"onDateChange(field.name)\"\n              [satDatepicker]=\"picker\"\n              [formControlName]=\"field.name\"\n              />\n              <i class=\"mdi mdi-calendar-outline cursor-pointer\" style=\"color:var(--foreground-secondary);opacity: 0.6;\"></i>\n              <sat-datepicker #picker panelClass=\"month-picker\"></sat-datepicker>\n            </div>\n            <!--mat-form-field class=\"w-100\" *ngIf=\"field.type == 'month'\">\n              <mat-label>{{field.label|translate}}</mat-label>\n              <input readonly matInput [matDatepicker]=\"dp\" placeholder=\"{{'app.custom_month'| translate }}\" [formControlName]=\"field.name\">\n              <mat-datepicker-toggle matSuffix [for]=\"dp\"></mat-datepicker-toggle>\n              <mat-datepicker #dp\n                startView=\"year\"\n                (monthSelected)=\"chosenMonthHandler($event,formGroup.get(field.name),dp)\"\n                panelClass=\"month-picker\">\n              </mat-datepicker>\n            </mat-form-field-->\n            <div *ngIf=\"field.type == 'month'\" class=\"date-input d-inline-flex flex-row align-items-center mb-3 w-100\" (click)=\"picker.open()\">\n              <input matInput [satDatepicker]=\"picker\" class=\"border-0 w-100 rounded\" [formControlName]=\"field.name\" placeholder=\"{{'app.custom_month'| translate }}\"/>\n              <i class=\"mdi mdi-calendar-outline cursor-pointer\" style=\"color:var(--foreground-secondary);opacity: 0.6;\"></i>\n              <sat-datepicker\n                #picker\n                startView=\"year\"\n                (monthSelected)=\"chosenMonthHandler($event,formGroup.get(field.name),picker)\"\n                panelClass=\"month-picker\"></sat-datepicker>\n            </div>\n            <div class=\"w-100\" *ngIf=\"field.type == 'check'\">\n              <mat-checkbox class=\"example-margin\" [formControlName]=\"field.name\">{{field.label|translate}}</mat-checkbox>\n            </div>\n            <mat-form-field class=\"w-100\" *ngIf=\"field.type == 'select'\">\n              <mat-label>{{field.label|translate}}</mat-label>\n              <mat-select [formControlName]=\"field.name\">\n                <mat-option *ngIf=\"field.required == false\" selected value=\"\">{{'nav.all'|translate}}</mat-option>\n                <mat-option *ngFor=\"let option of field.data\"  [value]=\"option.value\">{{option.label|translate}}</mat-option>\n              </mat-select>\n            </mat-form-field>\n\n            <div  class=\"w-100 pb-3\"  *ngIf=\"field.type == 'multiple_resource_selector'\">\n              <mat-label style=\"font-size: 0.75em;\">{{field.label|translate}}</mat-label>\n              <div loopFormField class=\" cursor-pointer multi-selector mdi mdi-chevron-down rounded w-100\">\n                <mat-select (selectionChange)=\"onMultipleChange($event,field)\" [formControlName]=\"field.name\" multiple>\n                  <mat-option class=\"mat-primary\" *ngFor=\"let option of field.data\" [value]=\"option.value\" loopSortedDropOption >{{option.label|translate}}</mat-option>\n                </mat-select>\n              </div>\n              <label *ngIf=\"formGroup.get(field.name).invalid\" style=\"color:var(--error-default);margin-bottom: 0px;font-size: 0.75em;font-weight: 500;\">{{'app.required_field'|translate}}!</label>\n            </div>\n          </div>\n        </div>\n        <div class=\"footer\">\n          <button mat-flat-button [disabled]=\"formGroup.invalid || loading==true\" color=\"primary\" color=\"accent\" class=\"ml-auto\" (click)=\"submit()\">{{'label.generate'|translate}}</button>\n        </div>\n      </form>\n    </div>\n\n    <!---------//-->\n\n    <div class=\"bg-white scroller w-100 px-3\" style=\"height: calc(100vh - var(--header-height));overflow-y: auto;\">\n      <div *ngIf=\"report == null\" class=\"d-flex flex-row pt-4 mb-3\">\n        <button class=\"noprint mr-3 \" type=\"button\" mat-flat-button color=\"primary\" (click)=\"toggleOptions()\" >\n          <i class=\"mdi mdi-menu  text-white\" style=\"font-size: 14pt;\"></i>\n        </button>\n      </div>\n      <div class=\"d-flex flex-column py-4 \" id=\"reports\" *ngIf=\"report != null && reportType != 'jsreport'\">\n        <div class=\"d-flex flex-row\" style=\"margin-bottom: 20px; position: relative;\">\n          <div class=\"d-flex\" style=\"width:100%;\">\n            <div class=\"d-flex flex-column\">\n            <button class=\"noprint mr-3\" type=\"button\" mat-flat-button color=\"primary\" (click)=\"toggleOptions()\" >\n              <i class=\"mdi mdi-menu  text-white\" style=\"font-size: 14pt;\"></i>\n            </button>\n            </div>\n\n            <div class=\"d-flex flex-column\">\n              <h3 *ngIf=\"(report.header_html == null || report.header_html.trim() == '') && report.title != null && report.title.trim() != ''\" style=\"font-size: 12pt;font-weight: 600;white-space:no-wrap;min-width:600px;text-transform: uppercase;\">{{report.title|translate}}</h3>\n              <h5 *ngIf=\"report.subtitle != null && report.subtitle.trim() != ''\" style=\"font-size: 12pt;font-weight: 400;color: #000;\" class=\"pb-3\">{{report.subtitle|translate}}</h5>\n            </div>\n\n            <div *ngIf=\"report.header_html != null && report.header_html.trim() != ''\" style=\"margin-bottom: 20px;\" [innerHTML]=\"translateContent(report.header_html) | safeHtml\"></div>\n            <div *ngIf=\"report.header_html != null && report.header_html.trim() != ''\" style=\"clear:both;\"></div>\n          </div>\n          <div *ngIf=\"!external\" class=\"noprint\" [ngClass]=\"['flex-row','ml-auto']\" style=\"position: absolute;right: 10px;\">\n            <button [disabled]=\"report == null || loading || printing\" type=\"button\" mat-flat-button color=\"primary\" matTooltip=\"{{'label.print'| translate}}\" (click)=\"downloadPDFV2()\">\n              <i class=\"mdi mdi-printer text-white\"></i>\n            </button>\n            <button  *ngIf=\"report.excel_exp == 1\" [disabled]=\"report == null || loading || exporting\" class=\"ml-3\" type=\"button\" mat-flat-button color=\"primary\" matTooltip=\"{{'label.exportexcel'| translate}}\" (click)=\"exportReport()\">\n              <i class=\"mdi mdi-file-excel text-white\"></i>\n            </button>\n            <mat-progress-spinner color=\"accent\" style=\"position:absolute; left:25px; top:7px; \" mode=\"indeterminate\" *ngIf=\"printing\" class=\"ml-2\" diameter=\"20\" ></mat-progress-spinner>\n          </div>\n        </div>\n\n        <!--GROUP TABLES-->\n        <div *ngIf=\"group_tables.length > 0\" [innerHTML]=\"translateContent(construct_table_groups(group_tables)) | safeHtml\"></div>\n\n        <!--ONE TABLE-->\n        <div *ngFor=\"let table of tables\" class=\"pb-3 border-bottom\">\n          <div *ngIf=\"table.header !=null && table.header.title != null && table.header.title.trim() != ''\" class=\"header w-100 pb-2\">\n            <h5 class=\"mb-0\" [ngStyle]=\"(table.header)?table.header.style:null\">{{table.header.title}}</h5>\n          </div>\n          <table class=\"w-100 mb-4\">\n            <thead>\n              <tr *ngIf=\"table.thead && table.thead.cols\" [ngStyle]=\"(table.thead)?table.thead.style:null\" class=\"border-bottom\">\n                <td *ngFor=\"let column of (table.thead.cols_header)?table.thead.cols_header:table.thead.cols\" style=\"font-weight: 400; font-size: 10pt;\" [ngStyle]=\"(column)?column.style:null\">{{column.label | translate}} {{column.unit|unit}}</td>\n              </tr>\n            </thead>\n            <tbody *ngIf=\"table.tbody\" [ngStyle]=\"(table.tbody)?table.tbody.style:null\">\n              <tr *ngFor=\"let row of table.tbody.rows\" class=\"border-bottom\">\n                <td *ngFor=\"let column of table.thead.cols\" [ngStyle]=\"column.style\">\n                  <div *ngIf=\"column.type != 'html'\">{{format(row[column.field], column.type, column.format)}}</div>\n                  <div *ngIf=\"column.type == 'html'\" [innerHTML]=\"format(row[column.field], column.type, column.format) | safeHtml\"></div>\n                </td>\n              </tr>\n            </tbody>\n            <tfoot [ngStyle]=\"(table.tfoot)?table.tfoot.style:null\">\n              <tr *ngIf=\"table.tfoot && table.tfoot.cols\">\n                <td *ngFor=\"let column of table.thead.cols\" style=\"font-weight: 400; font-size: 10pt;\" [ngStyle]=\"(column.style)?column.style:null\">{{(table.tfoot.cols[column.field] != null)? format(table.tfoot.cols[column.field], column.type, column.format):\"\"}}</td>\n              </tr>\n            </tfoot>\n          </table>\n        </div>\n        <button id=\"btexport\" mat-button (click)=\"exporter.exportTable('xls',{fileName:translate.data[report.title]})\"  style=\"display:none;\"></button>\n        <table mat-table [dataSource]=\"dataexport.data\" matTableExporter #exporter=\"matTableExporter\" style=\"display:none;\">\n          <ng-container *ngFor=\"let field of dataexportfields\" matColumnDef=\"{{field}}\">\n              <th mat-header-cell *matHeaderCellDef>{{field|translate}}</th>\n              <td mat-cell *matCellDef=\"let element\">{{element[field]}}</td>\n          </ng-container>\n          <tr mat-header-row *matHeaderRowDef=\"dataexportfields\"></tr>\n          <tr mat-row class=\"table_cell\" *matRowDef=\"let row; columns: dataexportfields;\"></tr>\n        </table>\n\n      </div>\n      <div  [ngClass]=\"(report == null || reportType != 'jsreport')?'d-none':''\" class=\"d-flex w-100\" style=\"height: calc(100vh - var(--header-height) - 77px);\">\n        <object\n            #pdfViewer\n            type='application/pdf'\n            width='100%'\n            height='100%'\n        ></object>\n      </div>\n\n    </div>\n  </div>\n</div>\n","styles":[".footer{display:flex;flex-direction:row;justify-content:flex-end}#reports{background-color:#fff}@media print{body,html,iframe{background-color:#fff!important}.noprint{display:none}}:host ::ng-deep .drawer-content{padding:0}:host ::ng-deep #reports h1,:host ::ng-deep #reports h2,:host ::ng-deep #reports h3,:host ::ng-deep #reports h4,:host ::ng-deep #reports h5{color:#000}.date-input{background-color:var(--background-input);border-radius:5px;padding-left:6px;padding-right:6px;min-height:30px;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.2)}.date-input input{font-size:.85em;opacity:.8;border-bottom:none!important;color:var(--foreground-default)}.date-input input::-webkit-input-placeholder{color:var(--foreground-secondary)}.date-input input::-moz-placeholder{color:var(--foreground-secondary)}.date-input input::-ms-input-placeholder{color:var(--foreground-secondary)}.date-input input::placeholder{color:var(--foreground-secondary)}.date-input textarea{font-size:.8em;opacity:1;margin-top:2px;margin-bottom:2px;border:none!important;overflow:auto;outline:0!important;height:70px;box-shadow:none!important}.date-input .mdi{cursor:pointer;color:var(--foreground-default);opacity:1}.multi-selector{padding-top:0;height:27px;width:190px;background-color:var(--input-background-color)}.multi-selector:before{top:5px;right:6px;z-index:3;color:var(--focus-text-color)}.multi-selector .mat-option{font-size:.85em!important;font-weight:400}:host ::ng-deep .multi-selector .mat-select-arrow{opacity:0}:host ::ng-deep .multi-selector .mat-select-value{padding-left:4px;color:var(--foreground-default)!important;font-weight:500;font-size:.7em}"]}]}],"members":{"reportId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"external":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3}}]}],"externalParams":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":3}}]}],"iframe":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":43,"character":3},"arguments":["iframe",{"static":true}]}]}],"stylePrint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":44,"character":3},"arguments":["stylePrint",{"static":true}]}]}],"exporter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":48,"character":3},"arguments":["exporter",{"static":true}]}]}],"pdfViewer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":49,"character":3},"arguments":["pdfViewer",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":70,"character":24},{"__symbolic":"reference","name":"NgxLoopReportService"},{"__symbolic":"reference","name":"FullDatePipe"},{"__symbolic":"reference","name":"ShortDatePipe"},{"__symbolic":"reference","name":"HourPipe"},{"__symbolic":"reference","name":"DayMonth"},{"__symbolic":"reference","name":"DayPipe"},{"__symbolic":"reference","name":"SecToDateTime"},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":79,"character":23},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBar","line":80,"character":23},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":82,"character":22},{"__symbolic":"reference","module":"@angular/common","name":"DecimalPipe","line":83,"character":24}]}],"ngOnInit":[{"__symbolic":"method"}],"downloadResorces":[{"__symbolic":"method"}],"onDateChange":[{"__symbolic":"method"}],"handleExternalReport":[{"__symbolic":"method"}],"concatStyles":[{"__symbolic":"method"}],"setFormGroup":[{"__symbolic":"method"}],"onMultipleChange":[{"__symbolic":"method"}],"downloadReportTypes":[{"__symbolic":"method"}],"downloadFormModel":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"disableForm":[{"__symbolic":"method"}],"generateReport":[{"__symbolic":"method"}],"translateTable":[{"__symbolic":"method"}],"exportReport":[{"__symbolic":"method"}],"jsonToStyleString":[{"__symbolic":"method"}],"translateContent":[{"__symbolic":"method"}],"construct_table_groups":[{"__symbolic":"method"}],"format":[{"__symbolic":"method"}],"chosenMonthHandler":[{"__symbolic":"method"}],"toggleOptions":[{"__symbolic":"method"}],"downloadPDFV2":[{"__symbolic":"method"}],"openSnackBar":[{"__symbolic":"method"}]}},"setupTranslateFactory":{"__symbolic":"function","parameters":["service"],"value":{"__symbolic":"error","message":"Lambda not supported","line":54,"character":9,"module":"./lib/ngx-loop.module"}},"NgxLoopModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":57,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"TranslatePipe"},{"__symbolic":"reference","name":"DurationPipe"},{"__symbolic":"reference","name":"SecToDateTime"},{"__symbolic":"reference","name":"NgxLoopReportComponent"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ResourceSelectorComponent"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"ɵn"},{"__symbolic":"reference","name":"ɵo"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵx"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":85,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressSpinnerModule","line":86,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatProgressBarModule","line":87,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":88,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":89,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTableModule","line":90,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":91,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTooltipModule","line":92,"character":4},{"__symbolic":"reference","module":"mat-table-exporter","name":"MatTableExporterModule","line":93,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatFormFieldModule","line":94,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatInputModule","line":95,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSelectModule","line":96,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTooltipModule","line":97,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDatepickerModule","line":98,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonModule","line":99,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatFormFieldModule","line":100,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTabsModule","line":101,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatExpansionModule","line":102,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDividerModule","line":103,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBarModule","line":104,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatCheckboxModule","line":105,"character":4},{"__symbolic":"reference","module":"@asymmetrik/ngx-leaflet","name":"LeafletModule","line":106,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatTableModule","line":107,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSortModule","line":108,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":109,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSlideToggleModule","line":110,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatButtonToggleModule","line":111,"character":4},{"__symbolic":"reference","module":"ngx-infinite-scroll","name":"InfiniteScrollModule","line":112,"character":4},{"__symbolic":"reference","module":"saturn-datepicker","name":"SatDatepickerModule","line":113,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatPaginatorModule","line":114,"character":4},{"__symbolic":"reference","module":"@angular/cdk/scrolling","name":"ScrollingModule","line":115,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatSliderModule","line":116,"character":4},{"__symbolic":"reference","module":"mat-progress-buttons","name":"MatProgressButtonsModule","line":117,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatDialogModule","line":118,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatRadioModule","line":119,"character":4},{"__symbolic":"reference","module":"@angular/material","name":"MatAutocompleteModule","line":120,"character":4},{"__symbolic":"reference","name":"ɵy"},{"__symbolic":"reference","module":"@angular/material","name":"MatMenuModule","line":122,"character":4}],"entryComponents":[{"__symbolic":"reference","name":"ɵv"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵt"}],"providers":[{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":130,"character":4},{"__symbolic":"reference","module":"@angular/common","name":"DecimalPipe","line":131,"character":4},{"__symbolic":"reference","name":"SecToDateTime"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"FullDatePipe"},{"__symbolic":"reference","name":"DayMonth"},{"__symbolic":"reference","name":"DayPipe"},{"__symbolic":"reference","name":"DayHourPipe"},{"__symbolic":"reference","name":"ShortDatePipe"},{"__symbolic":"reference","name":"HourPipe"},{"__symbolic":"reference","name":"TranslatePipe"},{"__symbolic":"reference","name":"DurationPipe"}],"exports":[{"__symbolic":"reference","name":"NgxLoopReportComponent"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ResourceSelectorComponent"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"TranslatePipe"},{"__symbolic":"reference","name":"DurationPipe"},{"__symbolic":"reference","name":"SecToDateTime"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"ɵl"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"ɵj"},{"__symbolic":"reference","name":"ɵk"},{"__symbolic":"reference","name":"ɵp"},{"__symbolic":"reference","name":"ɵq"},{"__symbolic":"reference","name":"ɵr"},{"__symbolic":"reference","name":"ɵt"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵw"},{"__symbolic":"reference","name":"ɵx"}]}]}],"members":{}},"BaseModel":{"__symbolic":"class","members":{},"statics":{"fromJson":{"__symbolic":"function","parameters":["jsonData"],"value":null}}},"FlespiConstants":{"BASE_DEVICES_TOPIC":"flespi/message/gw/devices/","BASE_CALCULATORS_TOPIC":"flespi/interval/gw/calcs/"},"MqttController":{"__symbolic":"class","members":{"onConnected":[{"__symbolic":"method"}],"onMessageArrived":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵi"}]}],"downloadFlespiTokenAndConnect":[{"__symbolic":"method"}],"connectToFlespi":[{"__symbolic":"method"}],"disconnect":[{"__symbolic":"method"}],"refreshConnection":[{"__symbolic":"method"}],"isConnected":[{"__symbolic":"method"}],"subscribeTo":[{"__symbolic":"method"}],"unsubscribeTo":[{"__symbolic":"method"}]}},"TranslateService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":9,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":24,"character":9},"arguments":["environment"]}]],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":18,"character":22},{"__symbolic":"reference","module":"ngx-webstorage","name":"SessionStorageService","line":19,"character":33},{"__symbolic":"reference","name":"DateAdapter","module":"@angular/material","arguments":[{"__symbolic":"reference","name":"Date"}]},{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":21,"character":26},{"__symbolic":"reference","module":"@angular/common","name":"DecimalPipe","line":22,"character":29},{"__symbolic":"reference","name":"SecToDateTime"},null]}],"use":[{"__symbolic":"method"}],"_downloadKeylangJson":[{"__symbolic":"method"}],"setLanguage":[{"__symbolic":"method"}],"getLanguage":[{"__symbolic":"method"}],"translateContent":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"TranslatePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"translate","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TranslateService"}]}],"transform":[{"__symbolic":"method"}]}},"IntercomService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-webstorage","name":"SessionStorageService","line":15,"character":33}]}],"initObservers":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"start":[{"__symbolic":"method"}],"shutDown":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"PreferencesService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-webstorage","name":"SessionStorageService","line":29,"character":28}]}],"checkAndSetCompany":[{"__symbolic":"method"}],"setCompany":[{"__symbolic":"method"}],"getSpeedUnit":[{"__symbolic":"method"}],"getTemperatureUnit":[{"__symbolic":"method"}],"convertSpeed":[{"__symbolic":"method"}],"getFormattedSpeed":[{"__symbolic":"method"}],"convertDistance":[{"__symbolic":"method"}],"getVolumeUnit":[{"__symbolic":"method"}],"getFuelUnit":[{"__symbolic":"method"}],"getDistUnit":[{"__symbolic":"method"}],"getDrumSpeedUnit":[{"__symbolic":"method"}],"timestampToMoment":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ResourceSelectorComponent":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":15,"character":1},"arguments":[{"selector":"app-resource-selector","template":"<div loopFormField #formDiv class=\"mdi mdi-chevron-down resource-selector\" [attr.valid]=\"isInvalid == true ? false : isValid()\" tabindex=\"0\" (focus)=\"!disabled ? showList('div') : null\" (blur)=\"onBlurSelector('div')\">\n    <span *ngIf=\"!hideLabel\" [class]=\"customLabelClass\" [style.color]=\"labelColor\">{{label}}</span>\n    <input #input [disabled]=\"disabled\" [class]=\"customInputClass\" (focus)=\"!disabled ? showList('input') : null\" (blur)=\"onBlurSelector('input')\" loopInput type=\"text\" (input)=\"_filterResources($event)\" placeholder=\"{{'app.search'|translate}}\"/>\n    <i class=\"mdi mdi-information-outline\" *ngIf=\"hideErrorIcon && ( !isValid() || isInvalid )\" matTooltip=\"{{'msg.invaliddata' | translate}}\"></i>\n    <mat-spinner [diameter]=\"14\" color=\"primary\" *ngIf=\"loading\"></mat-spinner>\n  <div loopSortedDrop [style.display]=\"_displayList\" [attr.position]=\"position\" [style.max-height.px]=\"maxHeight\">\n        <div tabindex=\"0\" *ngIf=\"allowCreation\" class=\"action_button\" (click)=\"emitNewItemButtonPressed()\">\n            <i class=\"mdi mdi-plus mr-2\"></i><span>{{'label.new' | translate}}</span>\n        </div>\n        <div loopSortedDropOption class=\"pr-3\" *ngFor=\"let resource of filteredResources; let i = index\" [tabindex]=\"i + 1\" (click)=\"emitItemSelection($event,resource)\">\n            <ng-template class=\"mr-auto wrap-content\" ngFor let-resource [ngForOf]=\"[resource]\" [ngForTemplate]=\"itemTemplate\"></ng-template>\n            <span *ngIf=\"!customRenderer && !translation\" class=\"mr-auto wrap-content\">{{showResourceValue(resource)|translate}}</span>\n            <span *ngIf=\"!customRenderer && translation\" class=\"mr-auto wrap-content\">{{showResourceValue(resource) | translate}}</span>\n        </div>\n  </div>\n</div>\n<button [disabled]=\"!canRemove()\" type=\"button\" *ngIf=\"canRemove() || hideRemoveButtonWithOpacity\" style=\"padding: 0px;height: 0px;line-height: 0px; text-align: left;\" (click)=\"cancelSelection()\" mat-button color=\"primary\" class=\"mt-2\">\n    <span [ngStyle]=\"{opacity:(hideRemoveButtonWithOpacity && !canRemove())?0:1}\" style=\"font-size: 0.8em\" >{{removeSelectedMessage ? removeSelectedMessage : 'label.remove' | translate}}</span>\n</button>\n","styles":[".action_button{padding:4px 16px;font-size:12px;display:flex;flex-direction:row;font-weight:500;align-items:center;cursor:pointer;color:#212121;background-color:#fafafa}.action_button .mdi{color:#212121}.wrap-content{white-space:nowrap;text-overflow:ellipsis;width:100%;overflow:hidden}.date-input{width:170px;height:30px;border:var(--table-border) solid 1px;background-color:var(--background-card);border-radius:5px;padding-left:6px;padding-right:6px;box-shadow:none}.date-input input::-webkit-input-placeholder{color:var(--foreground-secondary)}.date-input input::-moz-placeholder{color:var(--foreground-secondary)}.date-input input::-ms-input-placeholder{color:var(--foreground-secondary)}.date-input input::placeholder{color:var(--foreground-secondary)}"]}]}],"members":{"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":22,"character":5},"arguments":["input",{"static":true}]}]}],"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"displayField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"secondDisplayField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":26,"character":3}}]}],"customLabelClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":5}}]}],"resources":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"formOnly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":3}}]}],"loading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":44,"character":3}}]}],"allowCreation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":45,"character":3}}]}],"searchKeys":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"maxHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":3}}]}],"hideRemoveButtonWithOpacity":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":3}}]}],"hideLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"labelColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":55,"character":3}}]}],"customRenderer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":57,"character":3}}]}],"customInputClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"position":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":61,"character":3}}]}],"searchFunction":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"setFirstIfOnly":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"canRemoveSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":67,"character":3}}]}],"removeSelectedMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":68,"character":3}}]}],"translation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":70,"character":3}}]}],"hideErrorIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":72,"character":3}}]}],"allowFreeText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":74,"character":3}}]}],"itemTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":76,"character":3},"arguments":["itemTemplate",{"static":false}]}]}],"onCreateButtonPressed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":78,"character":3}}]}],"onItemSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":79,"character":3}}]}],"onSelectionCancelled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":80,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TranslateService"}]}],"setSelectedIfOnly":[{"__symbolic":"method"}],"setSelectedResourceFromForm":[{"__symbolic":"method"}],"setUncreatedResource":[{"__symbolic":"method"}],"setSelectedResourceByValue":[{"__symbolic":"method"}],"setResources":[{"__symbolic":"method"}],"setSelectedResource":[{"__symbolic":"method"}],"canRemove":[{"__symbolic":"method"}],"cancelSelection":[{"__symbolic":"method"}],"getSelectedresource":[{"__symbolic":"method"}],"_filterResources":[{"__symbolic":"method"}],"filterResource":[{"__symbolic":"method"}],"isValid":[{"__symbolic":"method"}],"emitNewItemButtonPressed":[{"__symbolic":"method"}],"showList":[{"__symbolic":"method"}],"onBlurSelector":[{"__symbolic":"method"}],"_hideList":[{"__symbolic":"method"}],"checkNoRequiredField":[{"__symbolic":"method"}],"emitItemSelection":[{"__symbolic":"method"}],"showResourceValue":[{"__symbolic":"method"}],"getInputValue":[{"__symbolic":"method"}],"setInputValue":[{"__symbolic":"method"}]}},"SafeSafari":{"__symbolic":"class","members":{}},"ShortDatePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":18,"character":3},"arguments":[{"name":"shortDate","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TranslateService"}]}],"transform":[{"__symbolic":"method"}]}},"HourPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":33,"character":3},"arguments":[{"name":"hourFormat","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TranslateService"}]}],"transform":[{"__symbolic":"method"}]}},"FullDatePipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":48,"character":3},"arguments":[{"name":"fullDate","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TranslateService"}]}],"transform":[{"__symbolic":"method"}]}},"DayMonth":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":64,"character":3},"arguments":[{"name":"dayMonth","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TranslateService"}]}],"transform":[{"__symbolic":"method"}]}},"DayPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":82,"character":3},"arguments":[{"name":"dayFormat","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TranslateService"}]}],"transform":[{"__symbolic":"method"}]}},"DayHourPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":98,"character":1},"arguments":[{"name":"dayHourFormat","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TranslateService"}]}],"transform":[{"__symbolic":"method"}]}},"SecToDateTime":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"secToDateTime","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"transform":[{"__symbolic":"method"}]}},"DurationPipe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":12,"character":1},"arguments":[{"name":"duration","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TranslateService"}]}],"transform":[{"__symbolic":"method"}]}},"NgxLoopDocumentService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":5,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":12,"character":41},"arguments":["environment"]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":12,"character":31},null]}],"getExternalDocument":[{"__symbolic":"method"}],"getDocument":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵa":{"__symbolic":"class","arity":1,"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":15,"character":35},null,{"__symbolic":"reference","name":"string"},{"__symbolic":"error","message":"Expression form not supported","line":15,"character":130,"module":"./lib/depends/base.service"}]}],"buildHeader":[{"__symbolic":"method"}],"logoutUser":[{"__symbolic":"method"}],"refreshToken":[{"__symbolic":"method"}],"willLogoutUser":[{"__symbolic":"method"}],"getResources":[{"__symbolic":"method"}],"getResource":[{"__symbolic":"method"}],"custom":[{"__symbolic":"method"}],"customGet":[{"__symbolic":"method"}],"customPost":[{"__symbolic":"method"}],"customPut":[{"__symbolic":"method"}],"create":[{"__symbolic":"method"}],"update":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"jsonDataToModel":[{"__symbolic":"method"}],"jsonDataToModels":[{"__symbolic":"method"}]},"statics":{"buildQueryParams":{"__symbolic":"function","parameters":["params"],"value":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"Object"},"member":"getOwnPropertyNames"},"arguments":[{"__symbolic":"reference","name":"params"}]},"member":"reduce"},"arguments":[{"__symbolic":"error","message":"Lambda not supported","line":55,"character":53,"module":"./lib/depends/base.service"},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/common/http","name":"HttpParams","line":55,"character":94}}]}}}},"ɵb":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":17,"character":9},"arguments":["environment"]}],null],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":16,"character":25},null,{"__symbolic":"reference","name":"TranslateService"}]}],"getCompanyConfiguration":[{"__symbolic":"method"}],"subscribeChanges":[{"__symbolic":"method"}],"getUserConfigurations":[{"__symbolic":"method"}],"getConfigValue":[{"__symbolic":"method"}],"updateUserConfigurations":[{"__symbolic":"method"}],"storeConfigurations":[{"__symbolic":"method"}],"updateConfiguration":[{"__symbolic":"method"}],"getConfigLocale":[{"__symbolic":"method"}],"getCompany":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":4,"character":1},"arguments":[{"name":"safeHtml"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":9,"character":35}]}],"transform":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"NgxLoopJsReport","template":"<iframe #iframe style=\"height: 0;width: 0;border: 0;margin: 0;position: absolute; padding: 0;\"></iframe>\n<mat-progress-bar mode=\"indeterminate\" style=\"height: 3px;\" *ngIf=\"loading\" color=\"accent\"></mat-progress-bar>\n\n<div class=\"container-fluid\">\n    <div class=\"d-flex flex-row\">\n\n        <div class=\"py-4 px-3 border-right scroller\" style=\"min-width: 250px; width:250px; background-color:var(--background); height: calc(100vh - var(--header-height)); overflow-y: auto; border-right-color:var(--table-border)!important\">\n            <form [formGroup]=\"formGroup\" *ngIf=\"formGroup\">\n                <div class=\"content\">\n                    <div *ngFor=\"let param of parameters\">\n                        <div *ngIf=\"param.type == 'date_range'\" class=\"col-12 pb-3 p-0\">\n                            <p class=\"mb-1 foreground-color\" style=\"font-size: 0.75em\">{{param.label | translate}}</p>\n                            <div (click)=\"rangePicker.open()\" class=\"w-100 date-input d-inline-flex flex-row align-items-center datepicker-range\">\n                                <input\n                                    matInput\n                                    class=\"border-0 w-100 rounded\"\n                                    placeholder=\"Choose a date\"\n                                    [satDatepicker]=\"rangePicker\"\n                                    [formControlName]=\"param.name\"\n                                    (dateChange)=\"onDateRangeSelected($event.value, param)\"\n                                    autocomplete=\"off\"\n                                />\n                                <sat-datepicker #rangePicker [rangeMode]=\"true\"></sat-datepicker>\n                                <i class=\"mdi mdi-calendar-range-outline cursor-pointer\" style=\"opacity: 0.6;\"></i>\n                            </div>\n                            <label *ngIf=\"formGroup.get(param.name).invalid\" style=\"color:var(--error-default);margin-bottom: 0px;font-size: 0.75em;font-weight: 500;\">{{'app.required_field'|translate}}!</label>\n                        </div>\n\n                        <div *ngIf=\"param.type == 'multiple_resource_selector'\" class=\"mb-3\">\n                            <p class=\"mb-1 foreground-color\" style=\"font-size: 0.75em\">{{param.label | translate}}</p>\n                            <div (click)=\"selector.open()\" loopFormField class=\" cursor-pointer multi-selector mdi mdi-chevron-down rounded w-100 date-input d-inline-flex flex-row align-items-center\">\n                                <mat-select #selector [formControlName]=\"param.name\" multiple >\n                                    <div style=\"height: 40px\" class=\"d-flex flex-row align-items-center\">\n                                        <mat-checkbox color=\"primary\" class=\"select-all mt-2\" [checked]=\"isAllMultipleChecked(param)\" (change)=\"toggleAllSelection($event, param)\"><span class=\"ml-3\" style=\"font-size: 1.1em\">{{'label.all' | translate }}</span></mat-checkbox>\n                                    </div>\n                                    <mat-option class=\"mat-primary\" *ngFor=\"let option of param.data\" [value]=\"option\" loopSortedDropOption >{{option.keylang | translate}}</mat-option>\n                                </mat-select>\n                            </div>\n                            <label *ngIf=\"formGroup.get(param.name).invalid\" style=\"color:var(--error-default);margin-bottom: 0px;font-size: 0.75em;font-weight: 500;\">{{'app.required_field'|translate}}!</label>\n                        </div>\n                        <div *ngIf=\"param.type == 'date'\" class=\"mb-3 w-100 date-input d-inline-flex flex-row align-items-center\" (click)=\"picker.open()\">\n                            <input\n                            class=\"border-0 w-100 rounded\"\n                            readonly\n                            matInput\n                            placeholder=\"{{param.label|translate}}\"\n                            (dateChange)=\"onDateChange(param.name)\"\n                            [satDatepicker]=\"picker\"\n                            [formControlName]=\"param.name\"\n                            />\n                            <i class=\"mdi mdi-calendar-outline cursor-pointer\" style=\"color:var(--foreground-secondary);opacity: 0.6;\"></i>\n                            <sat-datepicker #picker panelClass=\"month-picker\"></sat-datepicker>\n                        </div>\n                        <div *ngIf=\"param.type == 'month'\" class=\"date-input d-inline-flex flex-row align-items-center mb-3 w-100\" (click)=\"picker.open()\">\n                            <input matInput [satDatepicker]=\"picker\" class=\"border-0 w-100 rounded\" [formControlName]=\"param.name\" placeholder=\"{{'app.custom_month'| translate }}\"/>\n                            <i class=\"mdi mdi-calendar-outline cursor-pointer\" style=\"color:var(--foreground-secondary);opacity: 0.6;\"></i>\n                            <sat-datepicker\n                              #picker\n                              startView=\"year\"\n                              (monthSelected)=\"chosenMonthHandler($event,formGroup.get(param.name),picker)\"\n                              panelClass=\"month-picker\"></sat-datepicker>\n                        </div>\n                        <!--div *ngIf=\"param.type == 'date'\" class=\"col-12 pb-3 p-0\">\n                            <p class=\"mb-1 foreground-color\" style=\"font-size: 0.75em\">{{param.label | translate}}</p>\n                            <div (click)=\"picker.open()\" class=\"w-100 date-input d-inline-flex flex-row align-items-center datepicker-range\">\n                                <input\n                                    class=\"border-0 w-100 rounded\"\n                                    readonly\n                                    matInput\n                                    placeholder=\"{{param.label|translate}}\"\n                                    (dateChange)=\"onDateChange(param.name)\"\n                                    [satDatepicker]=\"picker\"\n                                    [formControlName]=\"param.name\"\n                                />\n                                <sat-datepicker #picker [rangeMode]=\"true\"></sat-datepicker>\n                                <i class=\"mdi mdi-calendar-outline cursor-pointer\" style=\"opacity: 0.6;\"></i>\n                            </div>\n                            <label *ngIf=\"formGroup.get(param.name).invalid\" style=\"color:var(--error-default);margin-bottom: 0px;font-size: 0.75em;font-weight: 500;\">{{'app.required_field'|translate}}!</label>\n                        </div-->\n                        \n                    </div>\n\n                </div>\n                <div class=\"footer\">\n                    <button mat-flat-button [disabled]=\"formGroup.invalid || loading==true\" color=\"primary\" color=\"accent\" class=\"w-100 mt-5\" (click)=\"submit()\">{{'label.generate'|translate}}</button>\n                </div>\n            </form>\n        </div>\n\n\n        <div class=\"scroller w-100 px-3\" style=\"height: calc(100vh - var(--header-height)); overflow-y: auto; background-color: var(--background-card);\">\n            <div class=\"d-flex w-100 h-100\">\n                <object\n                    #pdfViewer\n                    type='application/pdf'\n                    width='100%'\n                    height='100%'\n                ></object>\n            </div>\n        </div>\n    </div>\n</div>\n","styles":[".footer{display:flex;flex-direction:row;justify-content:flex-end}#reports{background-color:#fff}@media print{body,html,iframe{background-color:#fff!important}.noprint{display:none}}:host ::ng-deep .drawer-content{padding:0}:host ::ng-deep #reports h1,:host ::ng-deep #reports h2,:host ::ng-deep #reports h3,:host ::ng-deep #reports h4,:host ::ng-deep #reports h5{color:#000}.date-input{background-color:var(--background-input);border-radius:5px;padding-left:6px;padding-right:6px;min-height:30px;box-shadow:inset 0 0 2px 1px rgba(0,0,0,.2)}.date-input input{font-size:.85em;opacity:.8;border-bottom:none!important;color:var(--foreground-default)}.date-input input::-webkit-input-placeholder{color:var(--foreground-secondary)}.date-input input::-moz-placeholder{color:var(--foreground-secondary)}.date-input input::-ms-input-placeholder{color:var(--foreground-secondary)}.date-input input::placeholder{color:var(--foreground-secondary)}.date-input textarea{font-size:.8em;opacity:1;margin-top:2px;margin-bottom:2px;border:none!important;overflow:auto;outline:0!important;height:70px;box-shadow:none!important}.date-input .mdi{cursor:pointer;color:var(--foreground-default);opacity:1}.select-all{margin-left:16px;color:var(--foreground-default)!important;font-weight:500;font-size:.7em}.multi-selector{padding-top:0;height:27px;width:190px;background-color:var(--input-background-color)}.multi-selector:before{top:5px;right:6px;z-index:3;color:var(--focus-text-color)}.mat-option{font-size:.85em!important;font-weight:400}:host ::ng-deep .mat-select-arrow{opacity:0}::ng-deep .mat-select-value{padding-left:4px;color:var(--foreground-default)!important;font-weight:500;font-size:.7em}"]}]}],"members":{"idReport":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":5}}]}],"multiSelector":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":23,"character":5},"arguments":["multiSelector",{"static":false}]}]}],"iframe":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":25,"character":5},"arguments":["iframe",{"static":true}]}]}],"stylePrint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":26,"character":5},"arguments":["stylePrint",{"static":true}]}]}],"pdfViewer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":27,"character":5},"arguments":["pdfViewer",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":36,"character":29},{"__symbolic":"reference","name":"NgxLoopReportService"},{"__symbolic":"reference","name":"FullDatePipe"},{"__symbolic":"reference","name":"ShortDatePipe"},{"__symbolic":"reference","name":"HourPipe"},{"__symbolic":"reference","name":"DayMonth"},{"__symbolic":"reference","name":"DayPipe"},{"__symbolic":"reference","name":"SecToDateTime"},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","module":"@angular/common","name":"Location","line":45,"character":27},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBar","line":46,"character":27}]}],"ngOnInit":[{"__symbolic":"method"}],"downloadParameters":[{"__symbolic":"method"}],"setFormGroup":[{"__symbolic":"method"}],"chosenMonthHandler":[{"__symbolic":"method"}],"submit":[{"__symbolic":"method"}],"onDateChange":[{"__symbolic":"method"}],"generateReport":[{"__symbolic":"method"}],"onDateRangeSelected":[{"__symbolic":"method"}],"isAllMultipleChecked":[{"__symbolic":"method"}],"toggleAllSelection":[{"__symbolic":"method"}],"openSnackBar":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"NgxLoopDocument","template":"<iframe #iframe style=\"height: 0;width: 0;border: 0px;margin: 0px;position: absolute;padding: 0px;\"></iframe>\n<div *ngIf=\"externalLoading\" class=\"d-flex flex-row align-items-center justify-content-center w-100\" style=\"height: 400px\">\n  <div class=\"bg-white p-5 shadow-sm m-auto\" style=\"border-radius: 5px\">\n    <mat-progress-spinner\n      color=\"primary\"\n      mode=\"indeterminate\"\n      diameter=\"18\"\n    ></mat-progress-spinner>\n  </div>\n</div>\n<div class=\"container py-5\" *ngIf=\"structure != null\">\n    <div class=\"row d-flex justify-content-end mr-0 pb-3\">\n        <button *ngIf=\"showprintbutton\" [disabled]=\"loading || printing\" type=\"button\" mat-flat-button color=\"primary\" (click)=\"downloadPDFV2()\">\n            {{'label.print'| translate}}\n        </button>\n    </div>\n    <div class=\"bg-white p-4 shadow-sm\">\n        <div *ngIf=\"structure.rows\" id=\"document\" class=\"container-fluid printable\" [class.single_page_document]=\"external\" directive-main>\n            <div *ngFor=\"let row of structure.rows;let i_main = index\" class=\"row\" [ngClass]=\"row.class\" [ngStyle]=\"row.style\" directive-repeat>\n                <div *ngFor=\"let col of row.cols\" class=\"col\" [ngClass]=\"col.class\" [ngStyle]=\"col.style\">\n                    <div *ngIf=\"col.type == 'html'\" [innerHTML]=\" this.translateContent(col.content) | safeHtml\" ></div>\n                    <div *ngIf=\"col.type == 'report'\">\n                        <div *ngFor=\"let table of col.content.tables\" class=\"pb-3\" [ngStyle]=\"table.style\">\n                            <div *ngIf=\"table.header !=null && table.header.title != null && table.header.title.trim() != ''\" class=\"header w-100 pb-2\">\n                                <h5 class=\"mb-0\" [ngStyle]=\"(table.header)?table.header.style:null\">{{table.header.title}}</h5>\n                            </div>\n                            <table class=\"w-100 mb-4\">\n                                <thead>\n                                <tr *ngIf=\"table.thead && table.thead.cols\" [ngStyle]=\"(table.thead)?table.thead.style:null\">\n                                    <td *ngFor=\"let column of table.thead.cols_header\" style=\"font-weight: 400; font-size: 11pt !important;\" [ngStyle]=\"(column)?column.style:null\">{{column.label | translate}}</td>\n                                </tr>\n                                </thead>\n                                <tbody *ngIf=\"table.tbody\" [ngStyle]=\"(table.tbody)?table.tbody.style:null\">\n                                <tr *ngFor=\"let row of table.tbody.rows\">\n                                    <td *ngFor=\"let column of table.thead.cols\" [ngStyle]=\"column.style\">{{format(row[column.field], column.type, column.format)}}</td>\n                                </tr>\n                                </tbody>\n                                <tfoot [ngStyle]=\"(table.tfoot)?table.tfoot.style:null\">\n                                <tr *ngIf=\"table.tfoot && table.tfoot.cols\">\n                                    <td *ngFor=\"let column of table.thead.cols\" style=\"font-weight: 400; font-size: 11pt !important;\" [ngStyle]=\"(column.style)?column.style:null\">{{(table.tfoot.cols[column.field] != null)? format(table.tfoot.cols[column.field], column.type, column.format):\"\"}}</td>\n                                </tr>\n                                </tfoot>\n                            </table>\n                        </div>\n                    </div>\n                </div>\n                <div style=\"display:none;\" *ngIf=\"i_main == structure.rows.length-1\">\n                    {{finished()}}\n                </div>\n            </div>\n        </div>\n        <div *ngIf=\"structure.content\" id=\"document\">\n            <div class=\"w-100\" *ngFor=\"let row of structure.content;let i = index\" [ngStyle]=\"(i > 0)?{'page-break-before': 'always'}:null\">\n                <div  class=\"container-fluid\" [innerHTML]=\" this.translateContent(row) | safeHtml\" directive-main></div>\n                <div style=\"display:none;\" *ngIf=\"i == structure.content.length-1\">\n                    {{finished()}}\n                </div>\n            </div>\n        </div>\n        <div  style=\"display:none;\" *ngIf=\"(structure.rows == null || structure.rows.length == 0) && (structure.content == null || structure.content.length == 0)\">\n            {{finished()}}\n        </div>\n    </div>\n</div>\n","styles":[":host ::ng-deep table.driver td{font-weight:400;font-size:9pt;height:35px}.single_page_document{border-radius:4px;margin-left:auto;margin-right:auto}"]}]}],"members":{"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":22,"character":5}}]}],"resource_id":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":5}}]}],"customParams":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":5}}]}],"external":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5}}]}],"externalLoading":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":5}}]}],"showprintbutton":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":5}}]}],"isready":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":30,"character":5}}]}],"iframe":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":32,"character":5},"arguments":["iframe",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"FullDatePipe"},{"__symbolic":"reference","name":"ShortDatePipe"},{"__symbolic":"reference","name":"HourPipe"},{"__symbolic":"reference","name":"DayMonth"},{"__symbolic":"reference","name":"DayPipe"},{"__symbolic":"reference","name":"SecToDateTime"},{"__symbolic":"reference","module":"ngx-webstorage","name":"SessionStorageService","line":41,"character":28},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"NgxLoopDocumentService"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":45,"character":22},{"__symbolic":"reference","module":"@angular/common","name":"DecimalPipe","line":46,"character":24}]}],"ngOnInit":[{"__symbolic":"method"}],"concatStyles":[{"__symbolic":"method"}],"translateContent":[{"__symbolic":"method"}],"convertTranslateHTML":[{"__symbolic":"method"}],"finished":[{"__symbolic":"method"}],"getValueFromObject":[{"__symbolic":"method"}],"getDocumentCallback":[{"__symbolic":"method"}],"getDocumentErrorCallback":[{"__symbolic":"method"}],"getDocument":[{"__symbolic":"method"}],"format":[{"__symbolic":"method"}],"downloadPDFV2":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":29,"character":1},"arguments":[{"selector":"NgxLoopReportsList","template":"<div class=\"container pt-4\">\n    <div class=\"d-flex flex-row mb-3\">\n        <h3 class=\"mb-0\" style=\"color:var(--foreground-default)\">{{'label.reports'|translate}}</h3>\n        <div class=\"search_input_group ml-auto\">\n            <i class=\"mdi mdi-magnify h5 mb-0\"></i>\n            <input class=\"search_input\" placeholder=\"{{'dt.search' | translate}}:\" (input)=\"filterReports($event)\">\n        </div>\n    </div>\n    <mat-divider></mat-divider>\n    <mat-progress-bar *ngIf=\"loading\" mode=\"indeterminate\" color=\"accent\" style=\"height: 2px;\"></mat-progress-bar>\n\n    <div class=\"row\">\n        <div class=\"col-12\">\n            <div *ngFor=\"let group of groups\" class=\"w-100 pt-3\">\n                <mat-expansion-panel style=\"background: transparent;\" *ngIf=\"(group.name == 'label.favorites' && group.reports.length) || (group.name != 'label.favorites')\" [expanded]=\"group.expanded\">\n                    <mat-expansion-panel-header [expandedHeight]=\"'48px'\">\n                        <mat-panel-title style=\"font-size: 1.2em;color: var(--foreground-default);\">{{group.name | translate}}</mat-panel-title>\n                    </mat-expansion-panel-header>\n                    <div class=\"pt-3\" style=\"padding-left: 12px;padding-right: 12px\">\n                        <div class=\"row\" style=\"box-sizing: border-box;\">\n                            <div class=\"col-6 col-md-4 col-lg-3 mb-3 d-flex\" *ngFor=\"let report of group.reports\">\n                                <div (click)=\"onReportClicked($event,report)\" (mouseout)=\"onmouseout($event)\"  [attr.favorite]=\"report.favorite\" (mouseover)=\"onmouseover($event)\" [attr.show-pro]=\"false\" class=\"w-100 card_item\" [matTooltipDisabled]=\"true\" matTooltip=\"{{'msg.upgrade_pro' | translate}}\">\n                                    <i class=\"mdi\" [ngClass]=\"autoReportIcon\" style=\"font-size: 1.3em;position: absolute;right: 10px;top: 8px;color: var(--primary);\" *ngIf=\"report.type=='auto_reports'\" ></i>\n                                    <div class=\"d-flex flex-row\">\n                                        <i class=\"mdi\" [ngClass]=\"(report.icon != null)?[report.icon]:'mdi-file-chart'\"></i>\n                                    </div>\n                                    <span class=\"label\">{{((report.title != null)?report.title:'')|translate}}</span>\n                                    <div *ngIf=\"false\" class=\"beta-tag\">\n                                        <div class=\"text\">BETA</div>\n                                    </div>\n                                    <div *ngIf=\"false\" class=\"pro-tag\">\n                                        <div class=\"text\">PRO</div>\n                                    </div>\n                                    <i class=\"mdi mdi-star\" (click)=\"setReportFavorite($event,report)\"></i>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                </mat-expansion-panel>\n            </div>\n        </div>\n    </div>\n</div>\n","styles":[":host ::ng-deep .mat-expansion-panel-header{padding:0 16px}:host ::ng-deep .mat-expansion-panel-header .mat-expansion-indicator{width:12px;align-items:center;justify-content:center;display:flex}:host ::ng-deep .mat-tab-body-content{padding-bottom:15px}.report{cursor:pointer;display:flex;justify-content:space-between;padding:10px;border-radius:.3rem;width:100%;background:var(--background-card)}.report span{color:var(--foreground-default)}:host ::ng-deep .mat-tab-label .mat-tab-label-content{color:var(--foreground-default)}:host ::ng-deep .mat-expansion-indicator::after,:host ::ng-deep .mat-expansion-panel-header-description{color:var(--foreground-default);opacity:.8}:host ::ng-deep .mat-expansion-panel-body{padding:0}:host ::ng-deep .mat-expansion-panel{box-shadow:none;border-bottom:var(--divider-color) solid 1px;border-radius:0}.card_item{background-color:var(--background-card);display:flex;flex-direction:column;align-items:center;border-radius:5px;padding:12px 30px;box-shadow:rgba(0,0,0,.25) 0 2px 5px -1px,rgba(0,0,0,.3) 0 1px 3px -1px;border-top:none;font-size:12pt;transition:.5s;position:relative;min-height:100px;justify-content:center}.card_item *{pointer-events:none}.card_item.willOpenBlank::after{content:\"\\F03CC\";align-items:center;justify-content:center;position:absolute;bottom:0;right:0;height:30px;width:30px;color:var(--primary);display:inline-block;font:24px/1 \"Material Design Icons\";font-size:inherit;text-rendering:auto;line-height:inherit}.card_item:not([show-pro=true]){cursor:pointer}.card_item:not([show-pro=true]):hover{background:var(--background-card-hovered);box-shadow:rgba(1,1,2,.25) 0 6px 12px -2px,rgba(0,0,0,.3) 0 3px 7px -3px;transform:scale(1.02)}.card_item[show-pro=true]{background:var(--background-card-disabled)}.card_item[show-pro=true] i,.card_item[show-pro=true] span{opacity:.4}.card_item i{color:var(--primary-text-color);font-size:2em;line-height:1em}.card_item span{font-size:1em;color:var(--primary-text-color);text-align:center;margin-top:16px}.beta-tag{position:absolute;top:0;left:0;padding:7px;height:52px;width:52px;align-items:center;justify-content:center;display:flex;background:0 0;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;overflow:hidden;border-top-right-radius:5px}.card_item:hover i{color:var(--primary)!important}.card_item:hover span{color:var(--primary)}.beta-tag::after{content:'';display:flex;border-top:25px solid var(--primary);border-left:25px solid var(--primary);border-bottom:25px solid transparent;border-right:25px solid transparent;position:absolute;left:0;top:0}.beta-tag .text{transform:rotate(-45deg);z-index:1;margin-top:-16px;margin-left:-12px;color:#ffffffde;font-size:.85em;font-weight:600;letter-spacing:2px}.pro-tag{position:absolute;top:0;right:0;padding:7px;height:52px;width:52px;align-items:center;justify-content:center;display:flex;background:0 0;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent;overflow:hidden;border-top-right-radius:5px}.pro-tag::after{content:'';display:flex;border-top:25px solid var(--secondary);border-right:25px solid var(--secondary);border-bottom:25px solid transparent;border-left:25px solid transparent;position:absolute;right:0;top:0}.pro-tag .text{transform:rotate(45deg);z-index:1;margin-top:-12px;margin-left:15px;color:#ffffffde;font-size:.6em;font-weight:600;letter-spacing:2px}.card_item .mdi-star{cursor:pointer;pointer-events:all;display:flex;position:absolute;left:0;bottom:0;font-size:1em;color:var(--primary-text-color)!important;height:30px;width:30px;align-items:center;justify-content:center}.card_item[favorite=true] .mdi-star{color:#ffd000!important}"]}]}],"members":{"onReportClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":37,"character":5},"arguments":["onReportClick"]}]}],"basePath":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":5}}]}],"autoReportIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":5}}]}],"handleKeyboardEvent":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":47,"character":5},"arguments":["window:keydown",["$event"]]}]}],"handleKeyboardUpEvent":[{"__symbolic":"method","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostListener","line":56,"character":5},"arguments":["window:keyup",["$event"]]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":66,"character":23},{"__symbolic":"reference","name":"NgxLoopReportService"},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"TranslatePipe"},{"__symbolic":"reference","module":"@angular/router","name":"Router","line":70,"character":24}]}],"ngOnInit":[{"__symbolic":"method"}],"onmouseover":[{"__symbolic":"method"}],"onmouseout":[{"__symbolic":"method"}],"filterReports":[{"__symbolic":"method"}],"replaceAcents":[{"__symbolic":"method"}],"textIsContained":[{"__symbolic":"method"}],"downloadUserReports":[{"__symbolic":"method"}],"onReportClicked":[{"__symbolic":"method"}],"setReportFavorite":[{"__symbolic":"method"}],"openAutoReportsDialog":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":39,"character":1},"arguments":[{"selector":"NgxLoopVehicleLiveMap","template":"<div class=\"w-100 h-100 position-relative\">\n    <div\n        style=\"width: 100%;height: 100%\"\n        leaflet\n        [leafletOptions]=\"mapOptions\"\n        [leafletLayersControl]=\"mapLayersOptions\"\n        (leafletMapReady)=\"onMapReady($event)\">\n    </div>\n\n\n    <ngx-loop-context-menu\n        *ngIf=\"showContextMenu\"\n        [topPosition]=\"contextMenuPositionY\"\n        [leftPosition]=\"contextMenuPositionX\"\n        [contextMenuItems]=\"contextMenuItems\"\n    ></ngx-loop-context-menu>\n\n</div>\n\n\n\n","styles":["#map{height:100%;width:100%}.marker{-webkit-filter:drop-shadow(.5px .5px 0 #454545) drop-shadow(-.5px -.5px 0 #454545);filter:drop-shadow(1px 1px 0 #454545) drop-shadow(-.5px -.5px 0 #454545)}.transparent-tooltip{background:0 0;border:1px solid red;box-shadow:none}.transparent-tooltip::before{border:none}::ng-deep .vehicle-tooltip{border-color:var(--background-card);background-color:var(--background-card);color:var(--focus-text-color);background:var(--background-card);font-size:.85em;border-radius:10px;padding:2px;opacity:.4;font-weight:500}::ng-deep .vehicle-tooltip:before{display:none}::ng-deep .vehicle-tooltip:after{display:none}::ng-deep .vehicle-tooltip-to-plant{border-color:var(--to-plant-color);background-color:var(--to-plant-color);color:#f1f1f1;background:var(--to-plant-color);font-size:.85em;border-radius:10px;padding:2px;opacity:.4;font-weight:500}::ng-deep .vehicle-tooltip-to-plant:before{display:none}::ng-deep .vehicle-tooltip-to-plant:after{display:none}::ng-deep .vehicle-tooltip-to-job{border-color:var(--to-job-color);background-color:var(--to-job-color);color:#f1f1f1;background:var(--to-job-color);font-size:.85em;border-radius:10px;padding:2px;opacity:.4;font-weight:500}::ng-deep .vehicle-tooltip-to-job:before{display:none}::ng-deep .vehicle-tooltip-to-job:after{display:none}::ng-deep .vehicle-tooltip-on-job{border-color:var(--on-job-color);background-color:var(--on-job-color);color:var(--focus-text-color);background:var(--on-job-color);font-size:.85em;border-radius:10px;padding:2px;opacity:.4;font-weight:500}::ng-deep .vehicle-tooltip-on-job:before{display:none}::ng-deep .vehicle-tooltip-on-job:after{display:none}::ng-deep .vehicle-tooltip-loading{border-color:var(--loading-color);background-color:var(--loading-color);color:var(--focus-text-color);background:var(--loading-color);font-size:.85em;border-radius:10px;padding:2px;opacity:.4;font-weight:500}::ng-deep .vehicle-tooltip-loading:before{display:none}::ng-deep .vehicle-tooltip-loading:after{display:none}:host ::ng-deep .gps_ring{border:var(--primary-color) 3px solid;-webkit-border-radius:40px;height:18px;width:18px;-webkit-animation:1s ease-out infinite pulsate}:host ::ng-deep .event-marker{height:18px;width:18px;border:var(--primary-color) 3px solid;opacity:.6;-webkit-border-radius:40px}@-webkit-keyframes pulsate{0%{-webkit-transform:scale(.1,.1);opacity:0}50%{opacity:1}100%{-webkit-transform:scale(1.2,1.2);opacity:0}}"]}]}],"members":{"maxRouteSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":59,"character":3}}]}],"iconsUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":62,"character":3}}]}],"draw":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":65,"character":3}}]}],"onNewDrawing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":68,"character":3}}]}],"onEditedDrawing":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":71,"character":3}}]}],"onEditedDeleted":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":74,"character":3}}]}],"onMapClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":77,"character":3}}]}],"onMapInitialized":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":80,"character":3}}]}],"onVehiclesDownloaded":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":83,"character":3}}]}],"onVehicleDataChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":86,"character":3}}]}],"onVehicleMarkerClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":89,"character":3}}]}],"onResourceClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":92,"character":3}}]}],"onPolygonEditionChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":95,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"ɵi"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":138,"character":16},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBar","line":139,"character":23},{"__symbolic":"reference","name":"ɵb"}]}],"ngOnInit":[{"__symbolic":"method"}],"isReady":[{"__symbolic":"method"}],"cleanAndRebuild":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"getVehicleClusterLayer":[{"__symbolic":"method"}],"enableControl":[{"__symbolic":"method"}],"disableControl":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"setCustomVehiclePostBody":[{"__symbolic":"method"}],"isEditingResource":[{"__symbolic":"method"}],"createClusterLayer":[{"__symbolic":"method"}],"createHeatLayer":[{"__symbolic":"method"}],"hideHeatLayer":[{"__symbolic":"method"}],"showHeatLayer":[{"__symbolic":"method"}],"getHeatLayer":[{"__symbolic":"method"}],"addMarkersToCluster":[{"__symbolic":"method"}],"createLayer":[{"__symbolic":"method"}],"addPolygonResourceToLayer":[{"__symbolic":"method"}],"hideLayer":[{"__symbolic":"method"}],"removeLayer":[{"__symbolic":"method"}],"showLayer":[{"__symbolic":"method"}],"getLayer":[{"__symbolic":"method"}],"initMQTT":[{"__symbolic":"method"}],"isTrackingVehicle":[{"__symbolic":"method"}],"setOpacityToLayer":[{"__symbolic":"method"}],"setOpacityToVehicleMarkers":[{"__symbolic":"method"}],"resetTrackingVehicle":[{"__symbolic":"method"}],"setDrawingMode":[{"__symbolic":"method"}],"formatToCoordinates":[{"__symbolic":"method"}],"trackVehicle":[{"__symbolic":"method"}],"getVehiclesVisibility":[{"__symbolic":"method"}],"hideVehicleMarker":[{"__symbolic":"method"}],"showVehicleMarker":[{"__symbolic":"method"}],"toggleVehicleMapMarker":[{"__symbolic":"method"}],"hideVehicleMarkers":[{"__symbolic":"method"}],"showVehicleMarkers":[{"__symbolic":"method"}],"showVehicleClusters":[{"__symbolic":"method"}],"hideVehicleClusters":[{"__symbolic":"method"}],"toggleAllVehiclesVisibility":[{"__symbolic":"method"}],"findVehicleByMessage":[{"__symbolic":"method"}],"getIconsUrl":[{"__symbolic":"method"}],"returnSelectedToLayer":[{"__symbolic":"method"}],"getPolylineOptions":[{"__symbolic":"method"}],"downloadVehicles":[{"__symbolic":"method"}],"buildResourceMarker":[{"__symbolic":"method"}],"getVehicleMarkerIcon":[{"__symbolic":"method"}],"buildMarker":[{"__symbolic":"method"}],"buildVehiclesMarkers":[{"__symbolic":"method"}],"unbindToolTip":[{"__symbolic":"method"}],"bindToolTip":[{"__symbolic":"method"}],"toggleResourceVisibility":[{"__symbolic":"method"}],"toggleAllResourceVisibility":[{"__symbolic":"method"}],"cleanLayer":[{"__symbolic":"method"}],"resetEditing":[{"__symbolic":"method"}],"setupMap":[{"__symbolic":"method"}],"drawMarkers":[{"__symbolic":"method"}],"drawPolygons":[{"__symbolic":"method"}],"onSelectedPolygonResource":[{"__symbolic":"method"}],"locateResource":[{"__symbolic":"method"}],"drawPolygon":[{"__symbolic":"method"}],"getLatLngsFromCoords":[{"__symbolic":"method"}],"openSnackBar":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":10,"character":41},"arguments":["environment"]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":10,"character":31},null]}],"getVehicleTrackItMessages":[{"__symbolic":"method"}],"getVehicleWithMessages":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵi":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":10,"character":18},{"__symbolic":"reference","module":"ngx-webstorage","name":"SessionStorageService","line":11,"character":28}]}],"buildHeader":[{"__symbolic":"method"}],"getFlespiToken":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵj":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"app-ngx-medium-toggle","template":"<mat-slide-toggle\n  color=\"accent\"\n  [checked]=\"checked\"\n  [disabled]=\"disabled\"\n  (click)=\"$event.stopPropagation()\"\n  [disableRipple]=\"true\"\n  (change)=\"onValueChange.emit($event)\"\n>\n  {{title}}\n</mat-slide-toggle>\n","styles":[":host ::ng-deep .mat-slide-toggle-thumb{height:15px!important;width:15px!important;background-color:var(--background)!important}:host ::ng-deep .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(12px,0,0)!important}:host ::ng-deep .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:var(--primary-color)!important}:host ::ng-deep .mat-slide-toggle-bar{height:9px!important;width:25px!important}:host ::ng-deep .mat-slide-toggle-thumb-container{width:18px!important;height:18px!important;top:-3px!important}"]}]}],"members":{"onValueChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"checked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"app-ngx-small-toggle","template":"<mat-slide-toggle\n  color=\"accent\"\n  [checked]=\"checked\"\n  [disabled]=\"disabled\"\n  (click)=\"$event.stopPropagation()\"\n  [disableRipple]=\"true\"\n  (change)=\"onValueChange.emit($event)\"\n>\n  <span style=\"font-size: 0.7em;font-weight: 500;color: var(--focus-text-color)\">{{title}}</span>\n</mat-slide-toggle>\n","styles":[":host ::ng-deep .mat-slide-toggle-thumb{height:10px!important;width:10px!important;background-color:var(--background)!important}:host ::ng-deep .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb-container{transform:translate3d(8px,0,0)!important}:host ::ng-deep .mat-slide-toggle.mat-checked .mat-slide-toggle-thumb{background-color:var(--primary-color)!important}:host ::ng-deep .mat-slide-toggle-bar{height:6px!important;width:17px!important}:host ::ng-deep .mat-slide-toggle-thumb-container{width:15px!important;height:8px!important;top:-2px!important}"]}]}],"members":{"onValueChange":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":10,"character":3}}]}],"checked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"title":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":174,"character":1},"arguments":[{"selector":"NgxLoopMapVehiclePanel","template":"<mat-expansion-panel #masterPanel >\n  <mat-expansion-panel-header class=\"expansion-panel\">\n    <app-ngx-medium-toggle\n      [checked]=\"liveMap.getVehiclesVisibility()\"\n      (onValueChange)=\"toggleAllVehiclesVisibility()\"\n      [title]=\"'menu.vehicles' | translate\"\n    >\n    </app-ngx-medium-toggle>\n  </mat-expansion-panel-header>\n  <div class=\"vehicle-list-header\">\n    <div class=\"mx-2 mt-1 mb-2 aux-button d-flex flex-row align-items-center \" >\n      <div>\n        <app-ngx-small-toggle\n          [checked]=\"clustered\"\n          (onValueChange)=\"onClusterModeChanged($event)\"\n          [title]=\"'label.clusters' | translate\"\n        >\n        </app-ngx-small-toggle>\n      </div>\n      <div class=\"ml-3\">\n        <app-ngx-small-toggle\n          [checked]=\"showNames\"\n          (onValueChange)=\"onNameModeChanged($event)\"\n          [title]=\"'label.name' | translate\"\n        >\n        </app-ngx-small-toggle>\n      </div>\n    </div>\n\n    <div class=\"search_input_group mx-1 mb-1\">\n      <i class=\"mdi mdi-magnify h5 mb-0\"></i>\n      <input class=\"search_input w-100\" placeholder=\"{{'dt.search' | translate}}:\" (input)=\"vehicleFilter($event)\" />\n    </div>\n\n      <div class=\"d-flex flex-row align-items-center mt-1\">\n          <i class=\"ml-2 mdi mdi-filter\"></i>\n          <p class=\"mb-0 ml-1\" style=\"color: var(--foreground-default);font-weight: 500;font-size: 0.8em\">{{'label.filters' | translate }}:</p>\n      </div>\n      <form class=\"mt-2 my-1 aux-button px-2 py-1 mb-3 mx-2\" style=\"background: var(--background-card)\">\n          <div class=\"d-flex align-items-center\">\n              <i style=\"font-size: 15px\" [class]=\"'cursor-pointer ml-1 mdi ' + ignitionFilterValue.class\" [matTooltip]=\"ignitionFilterValue.label | translate\" (click)=\"handleIgnitionFilterChanged()\"></i>\n              <i style=\"font-size: 15px; margin-bottom: 2px\" [class]=\"'cursor-pointer ml-3 mdi ' + plantFilterValue.class\" [matTooltip]=\"plantFilterValue.label | translate\" (click)=\"handlePlantFilterChanged()\"></i>\n          </div>\n      </form>\n\n    <app-ngx-loop-vehicle-panel-group\n      *ngFor=\"let group of groupsByType;\"\n      [group]=\"group\"\n      [liveMap]=\"liveMap\"\n      [showTrackIt]=\"enableTrackTt\"\n      (onTrackItPressed)=\"onTrackItPressed($event)\"\n      [showVehicleEditionButton]=\"showVehicleEditionButton\"\n      (onVehicleEditButtonClicked)=\"onVehicleEditButtonClicked.emit($event)\"\n    ></app-ngx-loop-vehicle-panel-group>\n  </div>\n\n</mat-expansion-panel>\n<div *ngIf=\"trackItVehicle\">\n  <ngx-track-it-panel (ref)=\"trackItPanel=$event\" (onTrackItChanged)=\"onTrackItPeriodChanged.emit($event)\"\n                      [additionalFields]=\"trackItAdditionalFields\" [liveMap]=\"liveMap\" (onClosed)=\"trackItVehicle=null\" [trackItVehicleSetter]=\"trackItVehicle\"></ngx-track-it-panel>\n</div>\n","styles":["::ng-deep .drawer-content{padding-left:0!important;padding-right:0!important}.map-container{height:1000px;width:1000px}.expansion-panel{display:flex;flex-direction:row;background-color:var(--background-table-header);align-items:center;border-radius:0;color:var(--primary-text-color);height:38px!important}.mat-expansion-panel-header.mat-expanded:focus{background:var(--background-table-header)!important}.expansion-panel mat-checkbox{height:16px;margin-right:11px;margin-top:1px}.sub-expansion-panel{box-shadow:none!important}.sub-expansion-panel-header{display:flex;flex-direction:row;background-color:var(--background-table-header);align-items:center;border-radius:0;height:25px!important;font-size:.85em!important;color:var(--focus-text-color)}.sub-expansion-panel-header .mat-expansion-indicator::after{border-width:0 1px 1px 0}.sub-expansion-panel-header mat-checkbox{height:16px;margin-right:11px;margin-top:1px}.mat-expansion-panel-header{padding:0 15px;font-size:13px}.mat-accordion .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border-bottom:1px solid #00000018}:host ::ng-deep .mat-expansion-panel-body{padding:0!important;border-radius:0!important;box-shadow:none}.item-list{background-color:var(--background-card);padding:11px;border-bottom:1px solid var(--divider);color:var(--foreground-default)}.mdi{color:var(--primary-text-color)}.vehicle-icon{height:23px;width:auto;-webkit-filter:drop-shadow(.5px .5px 0 #454545) drop-shadow(-.5px -.5px 0 #454545);filter:drop-shadow(1px 1px 0 #454545) drop-shadow(-.5px -.5px 0 #454545)}tr.mat-header-row{height:32px}.table_options_button{border:unset;min-width:unset;position:relative;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:15px;transition:.25s;opacity:1;background:0 0}.table_options_button:hover{background:var(--background)}.table_options_button i{position:absolute!important;color:var(--foreground-default)}.vehicle-list-header{background:var(--background-table-header)!important;display:flex;flex-direction:column}.vehicle-list-header table th{color:var(--foreground-header-table)}.vehicle-list-header table td{padding-top:0;color:var(--foreground-default)}:host ::ng-deep .mat-checkbox-inner-container{width:13px;height:13px;margin:0}:host ::ng-deep label.mat-checkbox-layout{margin-bottom:0}.status-icon{font-size:1.5em}.table_options i{font-size:1.5em;cursor:pointer}td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,th.mat-header-cell:first-of-type{padding-left:12px}tr.mat-footer-row,tr.mat-row{height:35px}.mat-table{background-color:var(--background)!important}:host ::ng-deep .mat-expansion-panel{background-color:var(--background)!important}.flashit_row{-webkit-animation:.5s linear infinite fade;animation:.5s linear infinite fade;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);transform:scale(1.05);background-color:#22a66444!important}.flashit{color:#22a664;-webkit-animation:1s linear infinite flash;animation:1s linear infinite flash}@-webkit-keyframes flash{0%,100%{opacity:1}50%{opacity:.1}}@keyframes flash{0%,100%{opacity:1}50%{opacity:.1}}.aux-button{border-radius:8px;padding:4px 6px;border:1px solid var(--table-border)}.cluster-count{background-color:var(--background-card);text-align:center;font-weight:500;border-radius:5px;margin-bottom:0;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.form-label{line-height:11px;font-weight:500;opacity:.75;padding-top:4px;margin-bottom:3px;font-size:11px;color:var(--foreground-default)}.red-signal{color:var(--danger)}.grey-signal{color:#344447}.green-signal{color:var(--green)}"]}]}],"members":{"masterPanel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":181,"character":5},"arguments":["masterPanel",{"static":false}]}]}],"liveMap":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":193,"character":5}}]}],"setLoopVehiclesStatus":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":196,"character":5}}]}],"showVehicleEditionButton":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":206,"character":5}}]}],"enableTrackTt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":209,"character":5}}]}],"trackItAdditionalFields":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":212,"character":5}}]}],"onVehicleEditButtonClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":215,"character":5}}]}],"onVehiclesMapDoneBuilding":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":218,"character":5}}]}],"onTrackItPeriodChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":221,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"ngOnInit":[{"__symbolic":"method"}],"setTrackitPointExtras":[{"__symbolic":"method"}],"onVehicleDataChanged":[{"__symbolic":"method"}],"onTrackItPressed":[{"__symbolic":"method"}],"toggleAllVehiclesVisibility":[{"__symbolic":"method"}],"onNameModeChanged":[{"__symbolic":"method"}],"setVehiclesTooltip":[{"__symbolic":"method"}],"updateVehiclesTooltip":[{"__symbolic":"method"}],"getVehicleClass":[{"__symbolic":"method"}],"onClusterModeChanged":[{"__symbolic":"method"}],"vehicleFilter":[{"__symbolic":"method"}],"rotateVehicleFilters":[{"__symbolic":"method"}],"handlePlantFilterChanged":[{"__symbolic":"method"}],"handleIgnitionFilterChanged":[{"__symbolic":"method"}],"displayFilterVehicles":[{"__symbolic":"method"}],"isVehicleMatchingFilters":[{"__symbolic":"method"}],"hasFilterText":[{"__symbolic":"method"}],"vehicleHasLastPosition":[{"__symbolic":"method"}],"textIsContained":[{"__symbolic":"method"}],"organizeVehiclesWithTypes":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"setVehicleStatusAndColor":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":26,"character":1},"arguments":[{"selector":"NgxLoopTimeline","template":"<div class=\"card-1 p-3 pr-4\">\n  <table>\n    <thead>\n      <tr>\n        <td class=\"left\"></td>\n        <td class=\"right\">\n          <div *ngFor=\"let label of timeLabels\">\n            <span>{{formatTime(label)}}</span>\n          </div>\n        </td>\n      </tr>\n    </thead>\n    <tbody>\n      <tr *ngFor=\"let row of rows\">\n        <td class=\"left\">\n          <p>{{row.label}}</p>\n        </td>\n        <td class=\"right\">\n            <div class=\"event\" *ngFor=\"let event_item of row.events\" [attr.data-html]=\"'true'\" [attr.data-toggle]=\"'tooltip'\" [ngStyle]=\"getEventStyle(event_item)\" \n              (mouseenter)=\"emitMouseEventHover({timelineEvent:event_item,event:$event})\" \n              (click)=\"emitMouseEventClick({timelineEvent:event_item,event:$event})\">\n            </div>\n        </td>\n      </tr>\n    </tbody>\n  </table>\n</div>","styles":[".card-1{display:block;border-radius:5px;background:var(--background-card)!important}table{width:100%}table thead tr td.left{width:165px;max-width:165px}table thead tr td.right{position:relative}table thead tr td.right div{width:0;overflow:visible;display:inline-flex}table thead tr td.right div span{margin-left:-15px;min-width:30px;margin-bottom:4px;color:var(--foreground-default);font-size:7pt;font-weight:400;text-align:center;line-height:.95em}table thead tr td.right div:not(:first-child){margin-left:calc(100% / 24)}table tbody tr{border-bottom:1px solid var(--table-border)}table tbody tr td.left{color:var(--foreground-default)}table tbody tr td.left p{font-size:10px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;margin-bottom:0;width:165px;max-width:165px}table tbody tr td{height:23px;line-height:22px;padding:0;border-collapse:collapse;border-spacing:0}table tbody tr td.right{position:relative;display:flex;align-items:center;flex-direction:row}table tbody tr:nth-child(even) td.right{background:var(--background)}table tbody tr:nth-child(odd) td.right{background:0 0}table tbody tr td.right::before{content:\"\";position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-image:linear-gradient(to right,var(--table-border) 1px,transparent 1px);background-size:calc(100% / 48) auto}table tbody tr td.right::after{content:\"\";position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-image:linear-gradient(to right,var(--table-border),var(--table-border) 1px,var(--table-border) 1px,var(--table-border) 2px,var(--table-border) 2px,var(--table-border) 3px,transparent 3px,transparent);background-size:calc(100% / 24) auto}table tbody tr td.right .event{position:absolute;height:calc(100% - 10px);z-index:2;cursor:pointer}"]}]}],"members":{"date":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"rows":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"showEventTypes":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"startTime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"endTime":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"onEventMouseClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":41,"character":3}}]}],"onEventMouseHover":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":42,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"ngOnInit":[{"__symbolic":"method"}],"setChart":[{"__symbolic":"method"}],"getEventStyle":[{"__symbolic":"method"}],"emitMouseEventHover":[{"__symbolic":"method"}],"emitMouseEventClick":[{"__symbolic":"method"}],"formatTime":[{"__symbolic":"method"}]}},"ɵn":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":8,"character":1},"arguments":[{"selector":"lib-ngx-loop-vehicle-table","template":"<div class=\"vehicle-list-header\">\n  <div>\n    <table mat-table [dataSource]=\"dataSource\" matSort matSortActive=\"status\" matSortDirection=\"desc\" class=\"bg-transparent\">\n      <ng-container matColumnDef=\"name\">\n        <th mat-header-cell style=\"margin-left: 50px\" *matHeaderCellDef mat-sort-header>{{'label.name' | translate}}</th>\n        <td mat-cell *matCellDef=\"let element\">\n          <div class=\"d-flex flex-row align-items-center\">\n            <mat-checkbox color=\"primary\" (change)=\"toggleVehicleVisibility(element)\" [disabled]=\"!hasPosition(element)\" class=\"vehicle-checkbox\" [ngStyle]=\"{opacity:hasPosition(element)?1:0.5}\" [checked]=\"element.checked && hasPosition(element)\"></mat-checkbox>\n            <div [matTooltip]=\"getVehicleStatusTooltipMessage(element) | translate\" class=\"d-flex flex-column justify-content-center align-items-center\">\n                <img class=\"vehicle-icon mr-2 ml-2\" [src]=\"liveMap.getIconsUrl()+element.vehicle.icon\"/>\n                <div style=\"width: 25px; height: 3px; border-radius: 3px\" [ngStyle]=\"{backgroundColor: element.color}\"></div>\n            </div>\n            <span class=\"ml-2\" style=\"margin-top: 2px;font-size: 9px\">{{element.vehicle.name}}</span>\n            <i *ngIf=\"getDriverName(element) != null\" class=\"mdi mdi-steering ml-2\" [matTooltip]=\"getDriverName(element)\"></i>\n          </div>\n        </td>\n      </ng-container>\n      <ng-container matColumnDef=\"speed\">\n        <th mat-header-cell *matHeaderCellDef mat-sort-header>{{'nav.speed' | translate}}</th>\n        <td mat-cell *matCellDef=\"let element\">\n          <div class=\"d-flex flex-row align-items-center\">\n            <span class=\"ml-2\" style=\"margin-top: 2px;font-size: 9px\">{{getCurrentSpeed(element)}}</span>\n          </div>\n        </td>\n      </ng-container>\n      <ng-container matColumnDef=\"status\">\n        <th mat-header-cell *matHeaderCellDef mat-sort-header >{{'label.status' | translate}}</th>\n        <td mat-cell *matCellDef=\"let element\">\n            <div class=\"d-flex align-items-center mr-2\">\n                <i [class]=\"'mdi status-icon ' + getStatusIcon(element) +' '+getFlashingAnimation(element)\" [matTooltip]=\"(getLastMessageSince(element) | duration:'day':'second' )\" ></i>\n                <i style=\"font-size: 15px\" [class]=\"'ml-1 mdi mdi-minus-circle-outline ' + (getIgnitionStatus(element) == 'on' ? 'red-signal' : 'foreground-default')\" [matTooltip]=\"(getIgnitionStatus(element) == 'on' ? 'label.ignition_on' : 'label.ignition_off') | translate\"></i>\n                <i style=\"font-size: 15px\" [class]=\"'ml-1 mdi mdi-factory ' + (getVehicleGeofenceStatus(element) == 'in_geofence' ? 'green-signal' : 'red-signal')\" [matTooltip]=\"(getVehicleGeofenceStatus(element) == 'in_geofence' ? 'label.vehicle_in_plant' : 'label.vehicle_not_in_plant') | translate\"></i>\n            </div>\n        </td>\n      </ng-container>\n      <ng-container matColumnDef=\"options\">\n        <th mat-header-cell *matHeaderCellDef></th>\n        <td mat-cell *matCellDef=\"let element\">\n          <div class=\"table_options w-100 d-flex\">\n            <i *ngIf=\"showTrackItButton && hasPosition(element)\" class=\"mdi mdi-map-marker-path mr-2\" (click)=\"onTrackItPressed.emit(element)\" matTooltip=\"{{'label.tracking_history' | translate}}\"></i>\n            <i *ngIf=\"showVehicleEditionButton\" class=\"mdi mdi-square-edit-outline mr-2\" (click)=\"onVehicleEditButtonClicked.emit(element)\" matTooltip=\"{{'label.edit' | translate }}\"></i>\n            <i *ngIf=\"hasPosition(element)\" [class]=\"'ml-auto mdi '+getTrackingIcon(element)\" (click)=\"onTrackingClicked(element)\" matTooltip=\"{{'label.track_vehicle' | translate }}\"></i>\n          </div>\n        </td>\n      </ng-container>\n      <tr mat-header-row *matHeaderRowDef=\"displayedColumns\" style=\"background:var(--background-table-header)!important;\"></tr>\n      <tr mat-row [id]=\"row.vehicle.id\" [class]=\"'table_cell ' + getFlashingAnimationPanel(row)\" *matRowDef=\"let row; columns: displayedColumns; let index = index\" style=\"background:var(--background-table-body);height: 35px\"></tr>\n    </table>\n  </div>\n</div>\n","styles":["::ng-deep .drawer-content{padding-left:0!important;padding-right:0!important}.map-container{height:1000px;width:1000px}.expansion-panel{display:flex;flex-direction:row;background-color:var(--background-table-header);align-items:center;border-radius:0;color:var(--primary-text-color)}.expansion-panel mat-checkbox{height:16px;margin-right:11px;margin-top:1px}.mat-expansion-panel-header{padding:0 15px;font-size:13px;height:38px!important}.mat-accordion .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border-bottom:1px solid #00000018}:host ::ng-deep .mat-expansion-panel-body{padding:0!important;border-radius:0!important;box-shadow:none}.item-list{background-color:var(--background-card);padding:11px;border-bottom:1px solid var(--divider);color:var(--foreground-default)}.mdi{color:var(--primary-text-color)}.vehicle-icon{height:23px;width:auto;-webkit-filter:drop-shadow(.5px .5px 0 #454545) drop-shadow(-.5px -.5px 0 #454545);filter:drop-shadow(1px 1px 0 #454545) drop-shadow(-.5px -.5px 0 #454545)}tr.mat-header-row{height:32px}.table_options_button{border:unset;min-width:unset;position:relative;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:15px;transition:.25s;opacity:1;background:0 0}.table_options_button:hover{background:var(--background)}.table_options_button i{position:absolute!important;color:var(--foreground-default)}.vehicle-list-header{background:var(--background-table-header)!important;display:flex;flex-direction:column}.vehicle-list-header table th{color:var(--foreground-header-table);font-size:10px!important}.vehicle-list-header table td{padding-top:0;color:var(--foreground-default)}:host ::ng-deep .mat-checkbox-inner-container{width:13px;height:13px;margin:0}:host ::ng-deep label.mat-checkbox-layout{margin-bottom:0}.status-icon{font-size:1.5em}.table_options i{font-size:1.5em;cursor:pointer}td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,th.mat-header-cell:first-of-type{padding-left:12px}tr.mat-footer-row,tr.mat-row{height:35px}.mat-table{background-color:var(--background)!important}:host ::ng-deep .mat-expansion-panel{background-color:var(--background)!important}.flashit_row{-webkit-animation:.5s linear infinite fade;animation:.5s linear infinite fade;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);transform:scale(1.05);background-color:#22a66444!important}.flashit{color:#22a664;-webkit-animation:1s linear infinite flash;animation:1s linear infinite flash}.green-signal{color:var(--green)}.yellow-signal{color:var(--yellow)}.red-signal{color:var(--danger)}.grey-signal,.no-signal{color:#344447}@-webkit-keyframes flash{0%,100%{opacity:1}50%{opacity:.1}}@keyframes flash{0%,100%{opacity:1}50%{opacity:.1}}"]}]}],"members":{"group":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"dataSource":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"liveMap":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"showVehicleEditionButton":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"showTrackItButton":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"onVehicleEditButtonClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":31,"character":3}}]}],"onTrackItPressed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":34,"character":3}}]}],"sort":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":37,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MatSort","line":37,"character":13},{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"PreferencesService"}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"setupSorting":[{"__symbolic":"method"}],"getTrackingIcon":[{"__symbolic":"method"}],"onTrackingClicked":[{"__symbolic":"method"}],"toggleVehicleVisibility":[{"__symbolic":"method"}],"hasPosition":[{"__symbolic":"method"}],"getLastMessageSince":[{"__symbolic":"method"}],"getStatusIcon":[{"__symbolic":"method"}],"getIgnitionStatus":[{"__symbolic":"method"}],"getVehicleGeofenceStatus":[{"__symbolic":"method"}],"getNowTs":[{"__symbolic":"method"}],"getCurrentSpeed":[{"__symbolic":"method"}],"getDriverName":[{"__symbolic":"method"}],"getFlashingAnimation":[{"__symbolic":"method"}],"getFlashingAnimationPanel":[{"__symbolic":"method"}],"getVehicleStatusTooltipMessage":[{"__symbolic":"method"}]}},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":5,"character":1},"arguments":[{"selector":"app-ngx-loop-vehicle-panel-group","template":"<mat-expansion-panel #panel class=\"sub-expansion-panel\">\n  <mat-expansion-panel-header class=\"sub-expansion-panel-header\" [ngStyle]=\"{opacity:liveMap.getVehiclesVisibility()?1:0.6}\">\n    <mat-checkbox [indeterminate]=\"group.indeterminateChecked\" [checked]=\"group.allVisible\" (change)=\"onSectionCheckboxChanged($event)\" color=\"primary\" (click)=\"$event.stopPropagation()\"></mat-checkbox>\n    <span style=\"margin-top: 1px\">{{ group.keylangTitle | translate}}</span>\n  </mat-expansion-panel-header>\n  <lib-ngx-loop-vehicle-table\n    [group]=\"group\"\n    [liveMap]=\"liveMap\"\n    [showTrackItButton]=\"showTrackIt\"\n    (onTrackItPressed)=\"onTrackItPressed.emit($event)\"\n    (onVehicleEditButtonClicked)=\"onVehicleEditButtonClicked.emit($event)\"\n    [showVehicleEditionButton]=\"showVehicleEditionButton\"\n    [dataSource]=\"group.dataSource\"\n  >\n  </lib-ngx-loop-vehicle-table>\n</mat-expansion-panel>\n","styles":[":host ::ng-deep .mat-expansion-panel{background-color:var(--background)!important}:host ::ng-deep .mat-checkbox-inner-container{width:13px;height:13px;margin:0}:host ::ng-deep label.mat-checkbox-layout{margin-bottom:0}.sub-expansion-panel{box-shadow:none!important}.sub-expansion-panel-header{display:flex;flex-direction:row;background-color:var(--background-table-header);align-items:center;border-radius:0;height:25px!important;font-size:.85em!important;color:var(--focus-text-color)}.sub-expansion-panel-header .mat-expansion-indicator::after{border-width:0 1px 1px 0}.sub-expansion-panel-header mat-checkbox{height:16px;margin-right:11px;margin-top:1px}.mat-expansion-panel-header{padding:0 15px;font-size:13px}.mat-accordion .mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);border-bottom:1px solid #00000018}:host ::ng-deep .mat-expansion-panel-body{padding:0!important;border-radius:0!important;box-shadow:none}.expansion-panel{display:flex;flex-direction:row;background-color:var(--background-table-header);align-items:center;border-radius:0;color:var(--primary-text-color);height:38px!important}.mat-expansion-panel-header.mat-expanded:focus{background:var(--background-table-header)!important}"]}]}],"members":{"panel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":12,"character":3},"arguments":["panel",{"static":false}]}]}],"liveMap":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"group":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"showTrackIt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":21,"character":3}}]}],"showVehicleEditionButton":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"onVehicleEditButtonClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":27,"character":3}}]}],"onTrackItPressed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":30,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"onSectionCheckboxChanged":[{"__symbolic":"method"}]}},"ɵp":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":21,"character":1},"arguments":[{"selector":"app-dynamic-resource-selector","template":"<div loopFormField #formElement class=\"dynamic-resource-selector mdi mdi-chevron-down\" [attr.valid]=\"isInvalid ? !isInvalid : isValid()\" tabindex=\"0\" (focus)=\"!disabled ? showList('div') : null\" (blur)=\"_onBlurSelector('div')\">\n    <span *ngIf=\"!hideLabel\" [class]=\"customLabelClass\" [style.color]=\"labelColor\">{{label}}</span>\n\n    <div class=\"d-flex w-100\" [class]=\"customInputClass\">\n        <input #input [disabled]=\"disabled\" (focus)=\"!disabled ? showList('input') : null\" (blur)=\"_onBlurSelector('input')\" loopInput type=\"text\" (input)=\"_onSearchInput($event)\" placeholder=\"{{'app.search'|translate}}\">\n        <i class=\"mdi mdi-information-outline\" *ngIf=\"!_loading && !hideErrorIcon && ( !isValid() || isInvalid )\" matTooltip=\"{{'msg.invaliddata' | translate}}\"></i>\n<!--        <i class=\"mdi mdi-chevron-down\" tabindex=\"0\" *ngIf=\"!_loading && ( isValid() && !isInvalid)\" [attr.valid]=\"isInvalid ? !isInvalid : isValid()\" (focus)=\"!disabled ? showList('div') : null\" (blur)=\"_onBlurSelector('div')\"></i>-->\n        <mat-spinner [diameter]=\"14\" color=\"primary\" *ngIf=\"_loading\"></mat-spinner>\n    </div>\n\n    <div loopSortedDrop [style.display]=\"_displayList\" [attr.position]=\"position\" [style.max-height.px]=\"maxHeight\">\n        <div tabindex=\"0\" *ngIf=\"allowCreation\" class=\"action_button\" (click)=\"_emitNewItemButtonPressed()\">\n            <i class=\"mdi mdi-plus mr-2\"></i><span>{{'label.new' | translate}}</span>\n        </div>\n\n        <div class=\"search-results scroller\"\n             #resourceScroll\n             infinite-scroll\n             [infiniteScrollDistance]=\"2\"\n             [infiniteScrollThrottle]=\"1000\"\n             [scrollWindow]=\"false\"\n             (scrolled)=\"_onScroll($event)\"\n        >\n            <div loopSortedDropOption class=\"pr-3\" *ngFor=\"let resource of (_resources | async); let i = index\" [tabindex]=\"i + 1\" (click)=\"_emitItemSelection($event,resource)\">\n                <ng-template class=\"mr-auto wrap-content\" ngFor let-resource [ngForOf]=\"[resource]\" [ngForTemplate]=\"itemTemplate\"></ng-template>\n                <span *ngIf=\"!customRenderer\" class=\"mr-auto wrap-content\">{{_showResourceValue(resource)}}</span>\n            </div>\n        </div>\n\n        <div class=\"d-flex align-items-center justify-content-center\" style=\"padding: 8px 0\" *ngIf=\"_loading && pageIndex != 1\">\n            <mat-progress-spinner\n                diameter=\"16\"\n                strokeWidth=\"2\"\n                mode=\"indeterminate\"\n                color=\"primary\"\n            >\n            </mat-progress-spinner>\n        </div>\n    </div>\n\n\n</div>\n\n\n<button type=\"button\" *ngIf=\"canRemoveSelected && selectedResource != null\" style=\"padding: 0; height: 0; line-height: 0; text-align: left;\" (click)=\"cancelSelection()\" mat-button color=\"primary\" class=\"mt-2\">\n    <span style=\"font-size: 0.8em\">{{removeSelectedMessage ? removeSelectedMessage : 'label.remove' | translate}}</span>\n</button>\n","styles":[".search-results{height:100%;overflow-y:scroll}.action_button{padding:4px 16px;font-size:12px;display:flex;flex-direction:row;font-weight:500;align-items:center;cursor:pointer;color:#212121}.action_button .mdi{color:#212121}.wrap-content{white-space:nowrap;text-overflow:ellipsis;width:100%;overflow:hidden}"]}]}],"members":{"input":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":28,"character":5},"arguments":["input",{"static":true}]}]}],"resourceScroll":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":29,"character":5},"arguments":["resourceScroll",{"static":false}]}]}],"itemTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChild","line":30,"character":5},"arguments":["itemTemplate",{"static":false}]}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":33,"character":5}}]}],"displayField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":34,"character":5}}]}],"control":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":5}}]}],"secondDisplayField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":5}}]}],"labelColor":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":5}}]}],"customInputClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":5}}]}],"removeSelectedMessage":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":42,"character":5}}]}],"customLabelClass":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":43,"character":5}}]}],"batchSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":5}}]}],"allowCreation":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":47,"character":5}}]}],"maxHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":48,"character":5}}]}],"hideLabel":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":49,"character":5}}]}],"disabled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":5}}]}],"customRenderer":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":5}}]}],"position":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":5}}]}],"canRemoveSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":53,"character":5}}]}],"hideErrorIcon":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":54,"character":5}}]}],"onCreateButtonPressed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":57,"character":5}}]}],"onItemSelected":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":58,"character":5}}]}],"onSelectionCancelled":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":59,"character":5}}]}],"onDownloadResources":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":60,"character":5}}]}],"onComponentReady":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":61,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TranslateService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"_buildParams":[{"__symbolic":"method"}],"_downloadResources":[{"__symbolic":"method"}],"addResources":[{"__symbolic":"method"}],"_onScroll":[{"__symbolic":"method"}],"_onSearchInput":[{"__symbolic":"method"}],"_emitItemSelection":[{"__symbolic":"method"}],"setDirectResource":[{"__symbolic":"method"}],"setSelectedResource":[{"__symbolic":"method"}],"_emitNewItemButtonPressed":[{"__symbolic":"method"}],"isValid":[{"__symbolic":"method"}],"_showResourceValue":[{"__symbolic":"method"}],"cancelSelection":[{"__symbolic":"method"}],"showList":[{"__symbolic":"method"}],"_onBlurSelector":[{"__symbolic":"method"}],"_checkNoRequiredField":[{"__symbolic":"method"}],"setLoading":[{"__symbolic":"method"}]}},"ɵq":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":36,"character":1},"arguments":[{"selector":"ngx-track-it-panel","template":"<div class=\"position-absolute w-100 trackit-panel\">\n  <mat-progress-bar color=\"primary\" mode=\"indeterminate\" style=\"height: 2px\" *ngIf=\"loading\"></mat-progress-bar>\n  <div class=\"top-bar d-flex flex-row align-items-center\">\n\n    <span class=\"mr-3\" style=\"color: var(--foreground-default)!important;font-size: 8pt;font-weight: 500;white-space: pre;\">{{trackItVehicle.vehicle.name}}</span>\n\n    <div class=\"date-input d-inline-flex flex-row align-items-center border-gray-rounded mr-3\" (click)=\"rangePicker.open()\">\n      <input [satDatepicker]=\"rangePicker\" [(ngModel)]=\"selectedRange\" (dateChange)=\"onRangeSelected($event.value)\" class=\"border-0 w-100 rounded\" placeholder=\"{{'label.date_range'| translate }}\">\n      <i class=\"mdi mdi-calendar-range cursor-pointer\" style=\"color:var(--foreground-secondary);opacity: 0.6;\"></i>\n      <sat-datepicker #rangePicker [rangeMode]=\"true\"></sat-datepicker>\n    </div>\n    <div *ngIf=\"showEventsToggleButton()\" class=\"event-toggle-container\">\n      <app-ngx-small-toggle\n        [title]=\"'label.show_events' | translate\"\n        (onValueChange)=\"onShowEventsChanged($event)\"\n        [checked]=\"showEvents\"\n      >\n      </app-ngx-small-toggle>\n    </div>\n    <div class=\"w-100 mx-3 d-flex flex-row align-items-center\">\n      <span class=\"mr-1\" *ngIf=\"getAccDist()!=null\" style=\"color: var(--foreground-default)!important;font-size: 11px;font-weight: 500;white-space:nowrap;\">{{getAccDist()}} <span style=\"font-size: 8px;font-weight: 400\">{{preferenceService.getDistUnit()}}</span></span>\n      <button [disabled]=\"messages.length == 0\" mat-button color=\"primary\"  *ngIf=\"!isPlaying\" (click)=\"play()\" >\n        <i class=\"mdi mdi-play\" style=\"color: var(--foreground-default)!important;font-size: 14pt\"></i>\n      </button>\n      <button mat-button color=\"primary\" *ngIf=\"isPlaying\" (click)=\"cancelPlayInterval()\" >\n        <i class=\"mdi mdi-pause\" style=\"color: var(--foreground-default)!important;font-size: 14pt\"></i>\n      </button>\n      <mat-select class=\"ml-3\" [(value)]=\"playbackSpeed\" style=\"width: 50px\" (selectionChange)=\"onSpeedChanged($event)\">\n        <mat-option [value]=\"300\">x1</mat-option>\n        <mat-option [value]=\"150\">x2</mat-option>\n        <mat-option [value]=\"75\">x4</mat-option>\n        <mat-option [value]=\"37\">x8</mat-option>\n      </mat-select>\n      <div class=\"slide-area w-100\">\n        <div *ngFor=\"let extra of pointExtras\" [hidden]=\"getEventPointPositionInTimeline(extra) == null || showEvents == false\" [style.left]=\"getEventPointPositionInTimeline(extra)+'%'\" class=\"event-timeline\"></div>\n        <mat-slider\n          thumbLabel\n          [displayWith]=\"formatLabel\"\n          color=\"accent\"\n          [disabled]=\"messages.length<=0\"\n          (change)=\"onSeekerChanged($event)\"\n          class=\"w-100\"\n          min=\"0\"\n          [value]=\"sekkerIndex\"\n          [max]=\"sekkerSize\"></mat-slider>\n      </div>\n\n    </div>\n    <i class=\"ml-auto mdi mdi-unfold-less-horizontal close-icon\" (click)=\"minimized=!minimized\"></i>\n    <i class=\"ml-3 mdi mdi-close close-icon\" (click)=\"onClosed.emit()\"></i>\n  </div>\n  <div [hidden]=\"minimized\">\n    <div id=\"message-range-table\" class=\"vehicle-list-header\">\n      <table mat-table class=\"bg_transparent w-100\" [dataSource]=\"dataSource\" matSort>\n        <ng-container matColumnDef=\"options\">\n          <th mat-header-cell *matHeaderCellDef></th>\n          <td mat-cell *matCellDef=\"let element\">\n            <div class=\"table_options w-100 d-flex\">\n              <i style=\"color: var(--foreground-default)!important;\" class=\"mdi mdi-content-copy mr-2 cursor-pointer\" (click)=\"copyMessage(element,$event)\" matTooltip=\"{{'label.copy' | translate}}\"></i>\n            </div>\n          </td>\n        </ng-container>\n        <ng-container matColumnDef=\"timestamp\">\n          <th mat-header-cell style=\"margin-left: 50px\" *matHeaderCellDef>{{'nav.date' | translate}}</th>\n          <td mat-cell *matCellDef=\"let element\">{{getMessageDateTime(element) | fullDate}}</td>\n        </ng-container>\n        <ng-container matColumnDef=\"speed\">\n          <th mat-header-cell *matHeaderCellDef>{{'nav.speed' | translate}}</th>\n          <td mat-cell *matCellDef=\"let element\">\n            <div class=\"d-flex flex-row align-items-center\">\n              <span class=\"ml-2\" style=\"margin-top: 2px\">{{element['position.speed']}}</span>\n            </div>\n          </td>\n        </ng-container>\n        <ng-container matColumnDef=\"latitude\">\n          <th mat-header-cell *matHeaderCellDef  >{{'label.lat' | translate}}</th>\n          <td mat-cell *matCellDef=\"let element\">\n            {{element['position.latitude']}}\n          </td>\n        </ng-container>\n        <ng-container matColumnDef=\"longitude\">\n          <th mat-header-cell *matHeaderCellDef >{{'label.lng' | translate}}</th>\n          <td mat-cell *matCellDef=\"let element\">\n            {{element['position.longitude']}}\n          </td>\n        </ng-container>\n\n        <ng-container *ngFor=\"let additionalField of additionalFields\" [matColumnDef]=\"additionalField.field\">\n          <th mat-header-cell *matHeaderCellDef >{{(additionalField.title) | translate}}</th>\n          <td mat-cell *matCellDef=\"let element\">\n            {{getAdditionalFieldValue(additionalField.field,element)}}\n          </td>\n        </ng-container>\n\n        <tr mat-header-row *matHeaderRowDef=\"displayedColumns;sticky:false\" style=\"background:transparent!important;\"></tr>\n        <tr [id]=\"'MESSAGE_'+row.index\" mat-row (click)=\"onMessageSelected(row,false)\" [class]=\"'table_cell ' + getMessageClass(row)\" *matRowDef=\"let row; columns: displayedColumns; let index = index\" style=\"height: 20px;font-size: 10pt;color:var(--foreground-default)\"></tr>\n      </table>\n      <mat-paginator style=\"background-color: transparent !important;\" (page)=\"onPage($event)\" [pageSizeOptions]=\"[pageSize]\" showFirstLastButtons></mat-paginator>\n    </div>\n  </div>\n</div>\n","styles":[".trackit-panel{bottom:0;z-index:10;box-shadow:rgba(17,17,26,.1) 0 4px 16px,rgba(17,17,26,.1) 0 8px 24px,rgba(17,17,26,.1) 0 16px 56px}.trackit-panel::before{content:\"\";width:100%;height:100%;position:absolute;left:0;background-color:var(--background-search-input);opacity:.97;pointer-events:none;z-index:-1}.top-bar{padding-right:12px;padding-left:12px}.close-icon{color:var(--foreground-default);cursor:pointer}.event-toggle-container{height:30px;border:var(--table-border) solid 1px;border-radius:5px;padding-left:6px;padding-right:6px}.date-input{width:160px;min-width:160px;height:30px;border:var(--table-border) solid 1px;background-color:var(--background-card);border-radius:5px;padding-left:6px;padding-right:6px;box-shadow:none}.date-input input{font-size:9pt;opacity:1}.date-input input::-webkit-input-placeholder{color:var(--foreground-secondary);font-size:9pt}.date-input input::-moz-placeholder{color:var(--foreground-secondary);font-size:9pt}.date-input input::-ms-input-placeholder{color:var(--foreground-secondary);font-size:9pt}.date-input input::placeholder{color:var(--foreground-secondary);font-size:9pt}.resizable-dialog .mat-dialog-container{padding:0;position:relative;height:unset;overflow:hidden;resize:both!important}tr.mat-header-row{height:28px}.table_options_button{border:unset;min-width:unset;position:relative;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:15px;transition:.25s;opacity:1;background:0 0}.table_options_button i{position:absolute!important;color:var(--foreground-default)}.vehicle-list-header{background:0 0!important;display:flex;flex-direction:column}.vehicle-list-header table td{padding-top:0;color:var(--foreground-default);font-size:8pt!important}:host ::ng-deep .mat-checkbox-inner-container{width:13px;height:13px;margin:0}:host ::ng-deep label.mat-checkbox-layout{margin-bottom:0}.status-icon{font-size:1.5em}.vehicle-list-header table th{background-color:transparent!important;color:var(--foreground-header-table)}.table_options i{font-size:1.5em;cursor:pointer}td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,th.mat-header-cell:first-of-type{padding-left:12px}tr.mat-footer-row,tr.mat-row{height:35px}.mat-table{background-color:transparent!important}.flashit_row{background-color:#22a66444!important}::ng-deep .mat-slider{padding:0!important}::ng-deep .mat-slider-wrapper{left:0!important;right:0!important}::ng-deep .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb-label{width:50px;height:50px;top:-62px;right:-25px}::ng-deep .mat-slider-wrapper .mat-slider-thumb-container .mat-slider-thumb-label .mat-slider-thumb-label-text{font-size:7pt}#message-range-table{height:187px;width:100%;overflow:auto}.table_cell{background-color:transparent;transition:none}:host ::ng-deep .mat-select-value{font-weight:400!important;color:var(--foreground-default)!important;font-size:11pt!important}:host ::ng-deep .mat-select-arrow{opacity:0}::ng-deep .event-tooltip:before{display:none}::ng-deep .event-tooltip:after{display:none}::ng-deep .event-tooltip{border-color:var(--primary-color);background-color:var(--primary-color);color:#fff;background:var(--primary-color);font-size:.68em;border-radius:10px;padding:2px 6px;opacity:.4;font-weight:500}.slide-area{position:relative}.event-timeline{position:absolute;background-color:red;width:2px;height:10px;left:0;bottom:15px}"]}]}],"members":{"paginator":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":43,"character":3},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MatPaginator","line":43,"character":13},{"static":false}]}]}],"rangePicker":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":44,"character":3},"arguments":["rangePicker",{"static":false}]}]}],"trackItVehicleSetter":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":46,"character":3}}]}],"liveMap":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":60,"character":3}}]}],"additionalFields":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":63,"character":3}}]}],"onClosed":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":66,"character":3}}]}],"onTrackItChanged":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":69,"character":3}}]}],"ref":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":72,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵh"},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBar","line":113,"character":23},{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":114,"character":20},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"PreferencesService"},{"__symbolic":"reference","name":"TranslateService"}]}],"ngOnChanges":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"onShowEventsChanged":[{"__symbolic":"method"}],"showEventsToggleButton":[{"__symbolic":"method"}],"setEventsMakerVisibility":[{"__symbolic":"method"}],"getAccDist":[{"__symbolic":"method"}],"initFirstDate":[{"__symbolic":"method"}],"onPage":[{"__symbolic":"method"}],"cleanPointExtras":[{"__symbolic":"method"}],"setPointExtras":[{"__symbolic":"method"}],"processExtras":[{"__symbolic":"method"}],"getEventPointPositionInTimeline":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"onVehicleChanged":[{"__symbolic":"method"}],"scrollToMessage":[{"__symbolic":"method"}],"getAdditionalFieldValue":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"getPageIndex":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"copyMessage":[{"__symbolic":"method"}],"onSpeedChanged":[{"__symbolic":"method"}],"pauseAndStartPlayInterval":[{"__symbolic":"method"}],"cancelPlayInterval":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"nextFrame":[{"__symbolic":"method"}],"cleanMarkers":[{"__symbolic":"method"}],"onMessageSelected":[{"__symbolic":"method"}],"moveMarkers":[{"__symbolic":"method"}],"canProcessExtras":[{"__symbolic":"method"}],"addPulseMarker":[{"__symbolic":"method"}],"getMessageDateTime":[{"__symbolic":"method"}],"convertSeekerIndex":[{"__symbolic":"method"}],"convertMessageIndex":[{"__symbolic":"method"}],"onSeekerChanged":[{"__symbolic":"method"}],"seekMessage":[{"__symbolic":"method"}],"onRangeSelected":[{"__symbolic":"method"}],"downloadMessages":[{"__symbolic":"method"}],"getMessageClass":[{"__symbolic":"method"}],"buildPolyline":[{"__symbolic":"method"}],"openSnackBar":[{"__symbolic":"method"}]}},"ɵr":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"AutoReportsDialog","template":"<div class=\"h-100 d-flex flex-column\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\">\n    <mat-progress-bar mode=\"indeterminate\" *ngIf=\"loading > 0\"></mat-progress-bar>\n    <div class=\"dialog_header px-3 py-2\" cdkDragHandle>\n      <h3 id=\"title\"><i class=\"mdi mdi-file-chart mr-2\"></i> Auto Report</h3>\n      <i (click)=\"close()\" class=\"mdi mdi-close\"></i>\n    </div>\n    <div style=\"height:500px;background: var(--background-table-header);\">\n        <mat-tab-group class=\"h-100\">\n            <mat-tab>\n                <ng-template mat-tab-label>\n                    <span style=\"color:var(--foreground-default);\"><i class=\"mdi mdi-format-list-bulleted mr-2\"></i> {{'label.rules'|translate}}</span>\n                </ng-template>\n\n                <div class=\"w-100 h-100 d-flex flex-column scroller\">\n                    <div class=\"w-100 d-flex flex-row  p-3\">\n                        <button mat-flat-button class=\"ml-auto\" color=\"primary\" (click)=\"createRule()\">\n                            {{'label.create_rule'|translate}}\n                        </button>\n                    </div>\n                    <div class=\"d-flex flex-column flex-grow-1\">\n                        <table class=\"schedule\">\n                            <tr class=\"days py-0 px-3\" *ngFor=\"let schedule of reportSchedules\">\n                                <td class=\"d-flex align-items-center flex-wrap\" style=\"min-width: 70px;\">\n                                    <span class=\"mr-2\" style=\"font-size:11pt;\">\n                                        {{(schedule.month_rule != null)?('label.daily'|translate):''}}\n                                        {{(schedule.week_rule != null)?('label.weekly'|translate):''}}\n                                    </span>\n                                </td>\n                                <td class=\"d-flex align-items-center flex-wrap w-100\" style=\"min-width: 180px;\">    \n                                    <span style=\"font-size:9pt;font-weight:600;\">{{'label.next_send'|translate}}: {{schedule.next_ts|dayHourFormat}}</span>\n                                </td>\n                                <td class=\"d-flex align-items-center flex-wrap w-100\">    \n                                    <span style=\"font-size:9pt;font-weight: 400;margin-left: 15px;\">{{schedule.recipients.length}} {{'label.recipients'|translate}}</span>\n                                </td>\n                                <td class=\"d-flex align-items-center justify-content-center\">\n                                    <button class=\"table_options_button ml-auto\" (click)=\"edit(schedule)\" matTooltip=\"{{'label.edit'|translate}}\">\n                                        <i class=\"mdi mdi-square-edit-outline h6 mb-0\"></i>\n                                    </button>\n                                    <button class=\"table_options_button ml-2\" (click)=\"delete(schedule)\" matTooltip=\"{{'label.delete'|translate}}\">\n                                        <i class=\"mdi mdi-trash-can-outline h6 mb-0 \"></i>\n                                    </button>\n                                </td>\n                            </tr>\n                        </table>\n                    </div>\n                    <div class=\"w-100 d-flex flex-row  px-3 pb-3\">\n                        <button mat-button color=\"primary\" (click)=\"sendNow()\" class=\"ml-auto\" [disabled]=\"loading > 0\">\n                            {{'label.send_report_now'|translate}}\n                        </button>\n                    </div>\n                </div>\n            </mat-tab>\n            <mat-tab>\n                <ng-template mat-tab-label>\n                    <span style=\"color:var(--foreground-default);\"><i class=\"mdi mdi-file-multiple-outline mr-2\"></i> {{'label.files'|translate}}</span>\n                </ng-template>\n                <div class=\"w-100 h-100 d-flex flex-column  scroller\">\n                    <div class=\"file px-3 py-2\" *ngFor=\"let file of files\">\n                        <div class=\"d-flex align-items-center flex-wrap flex-grow-1\">\n                            <span style=\"font-size:9pt;\">{{ file['date']|dayHourFormat }}</span>\n                            <span style=\"font-size:9pt;font-weight: 600;\" class=\"ml-3\">{{file['name']}}</span>\n                            <span style=\"font-size: 9pt;color: var(--primary);font-weight: 600;\" class=\"ml-auto mr-3\">{{getFileSize(file['size'])}}</span>\n                        </div>\n                        <button class=\"table_options_button ml-auto\" (click)=\"downloadFile(file)\" matTooltip=\"{{'label.download'|translate}}\">\n                            <i class=\"mdi mdi-download h6 mb-0\"></i>\n                        </button>\n                        <button class=\"table_options_button ml-auto\" (click)=\"deleteFile(file)\" matTooltip=\"{{'label.remove'|translate}}\">\n                            <i class=\"mdi mdi-trash-can-outline h6 mb-0\"></i>\n                        </button>\n                    </div>\n                </div>\n            </mat-tab>\n        </mat-tab-group>\n    </div>\n    <div class=\"d-flex flex-row px-4 py-3 dialog_header\" style=\"border-top: 1px solid var(--table-border);\">\n        <button mat-button color=\"primary\" (click)=\"close()\" class=\"ml-auto\">\n            {{'label.close'|translate}}\n        </button>\n    </div>\n</div>","styles":["#title{font-size:14pt;font-weight:400;display:inline-flex;margin-bottom:0}.dialog_header{display:flex;align-items:center;background-color:var(--background-table-row)}.dialog_header i.mdi{cursor:pointer;margin:0 0 0 auto;display:flex;justify-content:center;align-items:center}form{overflow-y:auto;box-sizing:border-box}.language-selector span{height:27px;margin-top:4px;color:var(--focus-text-color)}.language-selector{padding-top:0;height:27px;width:190px;background-color:var(--input-background-color)}.language-selector:before{top:5px;right:6px;z-index:3;color:var(--focus-text-color)}#user_profile_box{width:100%}#user_profile_box [label]{height:20px;margin-bottom:4px}#user_profile_box [label] input[type=text]{font-size:9pt;font-weight:500;line-height:unset;border:unset}#user_profile_box [label] i.save,#user_profile_box [label] input[type=text],#user_profile_box [label].active i.edit,#user_profile_box [label].active label:nth-child(2){display:none}#user_profile_box [label].active input[type=text]{border:none;border-bottom:1px;height:20px}#user_profile_box [label].active i.save,#user_profile_box [label].active input[type=text]{display:inline-flex}#user_profile_box [label] label:nth-child(2){font-size:9pt;font-weight:500;display:inline-flex}#user_profile_box [label] label:nth-child(1){font-size:9pt;font-weight:500;color:#999}:host ::ng-deep .mat-tab-body-wrapper{height:100%}.delivery-types-selector span{height:27px;margin-top:4px;color:var(--focus-text-color)}.delivery-types-selector{padding-top:0;height:27px;width:190px;background-color:var(--input-background-color)}.label{line-height:11px;font-weight:500;opacity:.75;font-size:11px;transition:.25s;top:4px;left:0;color:var(--foreground-default)}[loopFormField] i{color:var(--foreground-default)}.delivery-types-selector:before{top:5px;right:6px;z-index:3;color:var(--focus-text-color)}::ng-deep .mat-option.mat-active{color:var(--foreground-default);font-weight:500!important}.mat-option{font-size:.85em!important;font-weight:400}::ng-deep .mat-select-arrow{opacity:0}::ng-deep .mat-select-value{padding-left:4px;color:var(--foreground-default)!important;font-weight:500;font-size:.7em}.subtitle{margin-bottom:8px;margin-left:-6px;color:var(--focus-text-color);border-bottom:1px solid var(--background)}:host ::ng-deep .mat-tab-header{background-color:var(--background-table-row)}.days,.file{display:flex;flex-direction:row;color:var(--foreground-default)}.file:nth-child(odd),.schedule .days:nth-child(odd){background:var(--background-sidebar-hover)}.table_options_button{border:unset;min-width:unset;position:relative;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:15px;transition:.25s;opacity:1;background:0 0}.table_options_button:hover{background:var(--background)}.table_options_button i{position:absolute!important;color:var(--foreground-default)}:host ::ng-deep .mat-tab-body-content{overflow:unset!important}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":26,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MAT_DIALOG_DATA","line":26,"character":16}]}],null,null],"parameters":[{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":23,"character":23},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material","arguments":[{"__symbolic":"reference","name":"ɵr"}]},{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBar","line":28,"character":25}]}],"ngOnInit":[{"__symbolic":"method"}],"createRule":[{"__symbolic":"method"}],"downloadReportSchedules":[{"__symbolic":"method"}],"downloadReportFiles":[{"__symbolic":"method"}],"sendNow":[{"__symbolic":"method"}],"getMonthDays":[{"__symbolic":"method"}],"getWeekDays":[{"__symbolic":"method"}],"edit":[{"__symbolic":"method"}],"delete":[{"__symbolic":"method"}],"downloadFile":[{"__symbolic":"method"}],"deleteFile":[{"__symbolic":"method"}],"download":[{"__symbolic":"method"}],"getFileSize":[{"__symbolic":"method"}],"isLoading":[{"__symbolic":"method"}],"setLoading":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}]}},"ɵs":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":9,"character":44},"arguments":["environment"]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":9,"character":34},null]}],"downloadAutoReportFile":[{"__symbolic":"method"}],"removeAutoReportFile":[{"__symbolic":"method"}],"getReportFiles":[{"__symbolic":"method"}],"sendScheduleReport":[{"__symbolic":"method"}],"getReportSchedules":[{"__symbolic":"method"}],"deleteReportSchedule":[{"__symbolic":"method"}],"createReportSchedule":[{"__symbolic":"method"}],"editReportSchedule":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵt":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":14,"character":1},"arguments":[{"selector":"AutoReportsDialog","template":"<div class=\"h-100 d-flex flex-column\" cdkDrag cdkDragRootElement=\".cdk-overlay-pane\">\n    <mat-progress-bar mode=\"indeterminate\" *ngIf=\"loading > 0\"></mat-progress-bar>\n    <div class=\"dialog_header px-3 py-2\" cdkDragHandle>\n      <h3 id=\"title\"><i class=\"mdi mdi-file-chart mr-2\"></i> {{'label.rule'|translate}}</h3>\n      <i (click)=\"close()\" class=\"mdi mdi-close\"></i>\n    </div>\n    <div style=\"height:500px;background: var(--background-table-header);\">\n        <mat-tab-group class=\"h-100\">\n            <mat-tab>\n                <ng-template mat-tab-label>\n                    <span style=\"color:var(--foreground-default);\"><i class=\"mdi mdi-format-list-bulleted mr-2\"></i> {{'label.shipping_rule'|translate}}</span>\n                </ng-template>\n                <div class=\"w-100 h-100 d-flex flex-column  scroller\">\n                    <div class=\"w-100 d-flex flex-row  px-3 pt-3\">\n                        <div class=\"d-flex flex-column\">\n                            <mat-radio-group class=\"d-flex align-items-center mb-2\" [(ngModel)]=\"shippingType\">\n                                <mat-radio-button class=\"mr-3\" *ngFor=\"let item of shippingTypes|keyvalue\" [value]=\"item.key\" style=\"color:var(--foreground-default);\">{{item.value|translate}}</mat-radio-button>\n                            </mat-radio-group>\n                            <div class=\"d-flex flex-row align-items-center\">\n                                <mat-checkbox color=\"primary\" [(ngModel)]=\"curdate\"></mat-checkbox>\n                                <span class=\"ml-2\">{{'label.include_current_day'|translate}}</span>\n                            </div>\n                        </div>\n\n                        <div [matMenuTriggerFor]=\"hourMenu\" class=\"d-flex flex-row ml-auto align-items-center\" style=\"color: var(--foreground-default)\">\n                            <span class=\"form-label mr-2\">{{'app.time' | translate}}</span>\n                            <button mat-button class=\"menu_button d-flex flex-row\" >\n                                <span class=\"mb-0 mr-2\">{{selectedTime}}:00</span>\n                                <i class=\"mdi mdi-clock\" ></i>\n                            </button>\n                            <mat-menu #hourMenu=\"matMenu\">\n                                <button mat-menu-item style=\"color: var(--foreground-default)\" *ngFor=\"let hour of hours\" (click)=\"selectedTime = hour\" >{{(hour<10)?'0':''}}{{hour}}:00</button>\n                            </mat-menu>\n                            <!--input\n                                type=\"time\"\n                                [(ngModel)]=\"selectedTime\"\n                                (change)=\"onHourChange($event)\"\n                                class=\"border-0 w-100 rounded\"\n                                matInput\n                                step=\"3600000\"\n                            /-->\n                        </div>\n                    </div>\n                    <div [ngClass]=\"(shippingType=='MONTHDAYS')?['d-flex']:['d-none']\" class=\"flex-column p-3\">\n                        <mat-button-toggle-group style=\"width:calc(500px - 29px);\" class=\"d-flex flex-row flex-wrap calendar\"  (change)=\"selectDay($event,selectedMonthDays)\" multiple>\n                            <mat-button-toggle class=\"calendar\" style=\"width:calc(((500px - 32px) / 7) - 8px);height:calc(((500px - 32px) / 7) - 8px);color:var(--foreground-default);\" *ngFor=\"let day of monthDays;let i = index;\"  [checked]=\"selectedMonthDays[i]==1\"  [value]=\"i\">{{i+1}}</mat-button-toggle>\n                        </mat-button-toggle-group>\n                    </div>\n                    <div [ngClass]=\"(shippingType=='WEEKDAYS')?['d-flex']:['d-none']\" class=\"flex-column p-3 weekdays\">\n                        <mat-button-toggle-group style=\"width:calc(500px - 30px);\" class=\"d-flex flex-row flex-wrap\" (change)=\"selectDay($event,selectedWeekDays)\" multiple>\n                            <mat-button-toggle style=\"width:calc((500px - 34px)/7);line-height: 34px!important;color:var(--foreground-default);\" *ngFor=\"let day of weekDays;let i = index;\"  [checked]=\"selectedWeekDays[i]==1\" [value]=\"i\">{{day|translate}}</mat-button-toggle>\n                        </mat-button-toggle-group>\n                    </div>\n                </div>\n            </mat-tab>\n            <mat-tab>\n                <ng-template mat-tab-label>\n                    <span style=\"color:var(--foreground-default);\"><i class=\"mdi mdi-account-group mr-2\"></i> {{'label.recipients'|translate}}</span>\n                </ng-template>\n                <div class=\"w-100 d-flex flex-column p-3 h-100  scroller\">\n                    <div class=\"d-flex flex-row pb-3\">\n\n                        <div loopFormField class=\"w-100 pt-2\" style=\"display: flex; flex-direction: column; font-size: 9pt; font-weight: 400;\">\n                            <input #recipientInput type=\"email\" loopInput (input)=\"onRecipientSearch($event)\" [matAutocomplete]=\"recipient\" />\n                            <label *ngIf=\"!validate(recipientInput.value)\" style=\"color:var(--error-default);margin-bottom: 0px;\">{{'label.invalid_email' | translate}}</label>\n                            <mat-autocomplete #recipient=\"matAutocomplete\" (optionSelected)=\"onRecipientSelect($event, recipientInput)\">\n                                <mat-option *ngFor=\"let option of recipientOptions\" [value]=\"option.email\">\n                                    {{option.email}}\n                                </mat-option>\n                            </mat-autocomplete>\n                        </div>\n                        <button mat-button class=\"ml-auto\" color=\"primary\" (click)=\"addRecipient(recipientInput)\">\n                            {{'label.add'|translate}}\n                        </button>\n                    </div>\n                    <div  class=\"w-100 d-flex flex-column flex-grow-1\">\n                        <div class=\"d-flex flex-row pb-3\" *ngFor=\"let recip of selectedRecipients;let i = index;\">\n                            <div loopFormField class=\"w-100 pt-2\" style=\"display: flex; flex-direction: column; font-size: 9pt; font-weight: 400;\">\n                                <input #recipientInput type=\"email\" loopInput  (blur)=\"onRecipientInputBlur(recipientInput, i)\" (input)=\"onRecipientSearch($event)\" [value]=\"recip\"  [matAutocomplete]=\"recipient\" />\n                                <label *ngIf=\"!validate(recipientInput.value)\" style=\"color:var(--error-default);margin-bottom: 0px;\">{{'label.invalid_email' | translate}}</label>\n                                <mat-autocomplete #recipient=\"matAutocomplete\" (optionSelected)=\"onRecipientSelect($event, recipientInput, i)\">\n                                    <mat-option *ngFor=\"let option of recipientOptions\" [value]=\"option.email\">\n                                        {{option.email}}\n                                    </mat-option>\n                                </mat-autocomplete>\n                            </div>\n                            <button mat-button class=\"ml-auto\" color=\"primary\" (click)=\"removeRecipient(recip)\">\n                                <i class=\"mdi mdi-trash-can-outline\"></i>\n                            </button>\n                        </div>\n                    </div>\n                </div>\n            </mat-tab>\n        </mat-tab-group>\n    </div>\n    <div class=\"d-flex flex-row px-4 py-3 dialog_header\" style=\"border-top: 1px solid var(--table-border);\">\n        <button mat-button color=\"primary\" (click)=\"cancel()\">\n            {{'k.cancel'|translate}}\n        </button>\n        <button mat-button class=\"ml-auto\" color=\"primary\" (click)=\"confirm()\">\n            {{'label.confirm'|translate}}\n        </button>\n    </div>\n</div>\n","styles":["#title{font-size:14pt;font-weight:400;display:inline-flex;margin-bottom:0;color:var(--foreground-default)}.dialog_header{display:flex;align-items:center;background-color:var(--background-table-row)}.dialog_header i.mdi{cursor:pointer;margin:0 0 0 auto;display:flex;justify-content:center;align-items:center}:host ::ng-deep .mat-tab-body-wrapper{height:100%}form{overflow-y:auto;box-sizing:border-box}:host ::ng-deep .mat-tab-header{background-color:var(--background-table-row)}.mat-button-toggle-checked::before,.mat-button-toggle-focused::before{content:\"\";display:block;position:absolute;left:-70%;top:-70%;width:100%;height:100%;background:#2196f3;transform:rotateZ(45deg)}:host ::ng-deep .mat-button-toggle-button{height:100%;color:var(--foreground-default);background:var(--background-table-row)}:host ::ng-deep .mat-button-toggle-appearance-standard{background:var(--background-table-row)}:host ::ng-deep .calendar.mat-button-toggle-appearance-standard,:host ::ng-deep .calendar.mat-button-toggle-appearance-standard .mat-button-toggle-button{border-radius:.3rem}.calendar.mat-button-toggle{margin:4px}.mat-button-toggle-label-content{display:flex;height:100%;align-items:center;justify-content:center;line-height:34px!important}.mat-button-toggle-checked,.mat-button-toggle-focused{overflow:hidden;background-color:#f4f4f4}.mat-button-toggle-group-appearance-standard .mat-button-toggle+.mat-button-toggle{border-left:none}.calendar.mat-button-toggle-group{border:none}.calendar.mat-button-toggle-checked,.calendar.mat-button-toggle-focused{border-radius:.3rem;background:var(--background-table-row)}.mat-menu-item{height:28px;line-height:28px}:host ::ng-deep .mat-menu-panel{max-height:316px!important}:host ::ng-deep .mat-radio-container{height:16px;width:16px}:host ::ng-deep .mat-radio-outer-circle{border-color:var(--foreground-default);height:16px;width:16px}:host ::ng-deep .mat-radio-inner-circle{height:16px;width:16px}:host ::ng-deep .mat-radio-button .mat-radio-ripple{height:32px;width:32px;left:calc(50% - 16px);top:calc(50% - 16px)}:host ::ng-deep .mat-radio-label{margin:0;font-size:.85em}.weekdays .mat-button-toggle-checked::before,.weekdays .mat-button-toggle-focused::before{left:-80%;top:-80%}:host ::ng-deep .mat-tab-body-content{overflow:unset!important}::ng-deep .mat-menu-content,::ng-deep .mat-menu-content:not(:empty){background-color:var(--background-dropdown)!important;padding:0!important}.mat-menu-item,::ng-deep .mat-menu-panel{background-color:var(--background-dropdown)!important;transition:.5s}::ng-deep .mat-menu-panel .dropdown-item{color:var(--foreground-default)!important}::ng-deep .mat-menu-content .mat-menu-item:hover,::ng-deep .mat-menu-panel .dropdown-item:hover{background-color:var(--background-dropdown-hover)!important}::ng-deep .mat-menu-panel{max-height:400px!important}::ng-deep .mat-menu-panel::-webkit-scrollbar{width:12px;height:12px;cursor:pointer}::ng-deep .mat-menu-panel::-webkit-scrollbar-button{width:0;height:0}::ng-deep .mat-menu-panel::-webkit-scrollbar-thumb{background:padding-box content-box #e1e1e1;border:3px solid transparent;border-radius:12px}::ng-deep .mat-menu-panel::-webkit-scrollbar-thumb:active{background:padding-box content-box #c9c9c9;border:3px solid transparent;border-radius:12px}::ng-deep .mat-menu-panel::-webkit-scrollbar-track{background:0 0;border:0 solid #fff;border-radius:4px}::ng-deep .mat-menu-panel::-webkit-scrollbar-track:active{background:0 0}::ng-deep .mat-menu-panel::-webkit-scrollbar-corner{background:0 0}:host ::ng-deep mat-checkbox label{margin-bottom:0}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":46,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/material","name":"MAT_DIALOG_DATA","line":46,"character":16}]}],null,null,null,null,null,null],"parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material","arguments":[{"__symbolic":"reference","name":"ɵt"}]},{"__symbolic":"error","message":"Expression form not supported","line":46,"character":45,"module":"./lib/ngx-loop-reports-list/auto-reports-create-dialog/auto-reports-create-dialog"},{"__symbolic":"reference","name":"ɵu"},{"__symbolic":"reference","name":"ɵs"},{"__symbolic":"reference","module":"ngx-webstorage","name":"SessionStorageService","line":49,"character":31},{"__symbolic":"reference","name":"TranslateService"},{"__symbolic":"reference","module":"@angular/material","name":"MatDialog","line":51,"character":23},{"__symbolic":"reference","module":"@angular/material","name":"MatSnackBar","line":52,"character":25}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"onRecipientSearch":[{"__symbolic":"method"}],"onRecipientInputBlur":[{"__symbolic":"method"}],"downloadUsers":[{"__symbolic":"method"}],"onRecipientSelect":[{"__symbolic":"method"}],"addRecipient":[{"__symbolic":"method"}],"removeRecipient":[{"__symbolic":"method"}],"validate":[{"__symbolic":"method"}],"confirm":[{"__symbolic":"method"}],"calcNextTs":[{"__symbolic":"method"}],"selectDay":[{"__symbolic":"method"}],"changeShippingType":[{"__symbolic":"method"}],"isLoading":[{"__symbolic":"method"}],"setLoading":[{"__symbolic":"method"}],"close":[{"__symbolic":"method"}],"cancel":[{"__symbolic":"method"}]}},"ɵu":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵa"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":11,"character":41},"arguments":["environment"]}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":11,"character":31},null]}],"getUserStoreObservable":[{"__symbolic":"method"}],"getUserStore":[{"__symbolic":"method"}],"storeUser":[{"__symbolic":"method"}],"cleanUserStore":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵv":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":17,"character":1},"arguments":[{"selector":"app-confirmation-dialog","template":"<div style=\"background: var(--background-card);\" class=\"rounded\">\n    <div mat-dialog-title class=\"mb-3\">\n        <i class=\"mr-2\" [ngClass]=\"['mdi', data.iconClass]\" style=\"font-size: 1.4rem;\" [ngStyle]=\"{color: ((data.iconColor) ? data.iconColor : '#ff9400')}\"></i>\n        <span class=\"mb-0 text-bold\" style=\"color: var(--foreground-default);\">{{data.title|translate}}</span>\n    </div>\n    <div mat-dialog-content>\n        <p class=\"mb-3 text-left mt-1 body-text font-small\">{{data.confirmationMessage}}</p>\n        <mat-checkbox class=\"checkbox-text\" [(ngModel)]=\"isCheckBoxChecked\" *ngIf=\"data.showCheckBox\">{{data.checkboxText}}</mat-checkbox>\n    </div>\n    <div mat-dialog-actions class=\"mt-3 d-flex flex-row justify-content-end\">\n        <button *ngIf=\"cancelable\" mat-button style=\"color: var(--foreground-default);\" (click)=\"cancelAndClose()\">{{'nav.btnCancelar'|translate}}</button>\n        <button mat-button style=\"color: var(--foreground-default);\" (click)=\"actionAndClose()\">{{data.buttonText}}</button>\n    </div>\n</div>\n","styles":[".body-text{font-weight:400;color:var(--foreground-default)}.checkbox-text{font-weight:400;color:var(--foreground-secondary);font-size:.85em}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":29,"character":9},"arguments":[{"__symbolic":"reference","module":"@angular/material/dialog","name":"MAT_DIALOG_DATA","line":29,"character":16}]}]],"parameters":[{"__symbolic":"reference","name":"MatDialogRef","module":"@angular/material/dialog","arguments":[{"__symbolic":"reference","name":"ɵv"}]},{"__symbolic":"reference","name":"any"}]}],"ngOnInit":[{"__symbolic":"method"}],"cancelAndClose":[{"__symbolic":"method"}],"actionAndClose":[{"__symbolic":"method"}]}},"ɵw":{"__symbolic":"class","arity":1,"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"lib-multiple-resource-selector","template":"<div loopFormField class=\"cursor-pointer multi-selector mdi mdi-chevron-down rounded\" (click)=\"selector.open()\">\n    <mat-select #selector [(value)]=\"selectedResources\" (closed)=\"onSelectionClosed()\" multiple (selectionChange)=\"setAllChecked()\">\n        <div style=\"height: 40px\" class=\"d-flex flex-row align-items-center\">\n            <mat-checkbox color=\"primary\" class=\"select-all mt-2\" [(ngModel)]=\"allResourcesSelected\" (change)=\"toggleAllSelection($event)\"><span class=\"ml-3\" style=\"font-size: 1.1em\">{{'label.all' | translate }}</span></mat-checkbox>\n        </div>\n        <mat-option class=\"mat-primary\" [value]=\"res\" *ngFor=\"let res of resources; let i = index\" loopSortedDropOption>{{_showResourceValue(res)}}</mat-option>\n    </mat-select>\n</div>\n","styles":[".select-all{margin-left:16px;color:var(--foreground-default)!important;font-weight:500;font-size:.7em}.multi-selector{padding-top:0;height:27px;width:190px;background-color:var(--input-background-color)}.multi-selector:before{top:5px;right:6px;z-index:3;color:var(--focus-text-color)}.mat-option{font-size:.85em!important;font-weight:400}:host ::ng-deep .mat-select-arrow{opacity:0}::ng-deep .mat-select-value{padding-left:4px;color:var(--foreground-default)!important;font-weight:500;font-size:.7em}"]}]}],"members":{"setResources":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":5}}]}],"displayField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":5}}]}],"secondDisplayField":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":5}}]}],"onResourcesSelection":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":27,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"initialSetup":[{"__symbolic":"method"}],"areAllResourcesSelected":[{"__symbolic":"method"}],"getSelectedResources":[{"__symbolic":"method"}],"toggleAllSelection":[{"__symbolic":"method"}],"setAllChecked":[{"__symbolic":"method"}],"onSelectionClosed":[{"__symbolic":"method"}],"_showResourceValue":[{"__symbolic":"method"}]}},"ɵx":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":7,"character":1},"arguments":[{"selector":"ngx-loop-context-menu","template":"<div class=\"context-menu\" [ngStyle]=\"{'left.px': leftPosition, 'top.px': topPosition}\">\n    <div\n        class=\"menu-line\"\n        *ngFor=\"let menuItem of contextMenuItems; index as i\"\n        (click)=\"onItemClick($event, menuItem)\">\n        {{ menuItem.menuText }}\n    </div>\n</div>\n","styles":[".context-menu{position:absolute;z-index:1001;border-radius:8px;bottom:0;padding:6px;font-size:.8em;display:flex;flex-direction:column;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;overflow-y:auto;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06);background-color:var(--background-card)!important}.menu-line{cursor:pointer;padding:3px 10px;color:var(--foreground-default)}.menu-line:hover{background-color:var(--background)!important}"]}]}],"members":{"contextMenuItems":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":5}}]}],"topPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":5}}]}],"leftPosition":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":5}}]}],"onMenuItemClick":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":19,"character":5}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"onItemClick":[{"__symbolic":"method"}]}},"ɵy":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":4,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"HourPipe"},{"__symbolic":"reference","name":"DayPipe"},{"__symbolic":"reference","name":"FullDatePipe"},{"__symbolic":"reference","name":"ShortDatePipe"},{"__symbolic":"reference","name":"DayMonth"},{"__symbolic":"reference","name":"DayHourPipe"},{"__symbolic":"reference","name":"ɵz"}],"exports":[{"__symbolic":"reference","name":"HourPipe"},{"__symbolic":"reference","name":"DayPipe"},{"__symbolic":"reference","name":"FullDatePipe"},{"__symbolic":"reference","name":"ShortDatePipe"},{"__symbolic":"reference","name":"DayMonth"},{"__symbolic":"reference","name":"DayHourPipe"},{"__symbolic":"reference","name":"ɵz"}]}]}],"members":{}},"ɵz":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":4,"character":3},"arguments":[{"name":"unit","pure":false}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-webstorage","name":"SessionStorageService","line":10,"character":40}]}],"transform":[{"__symbolic":"method"}]}}},"origins":{"NgxLoopReportService":"./lib/ngx-loop-report/ngx-loop-report.service","MY_FORMATS":"./lib/ngx-loop-report/ngx-loop-report.component","NgxLoopReportComponent":"./lib/ngx-loop-report/ngx-loop-report.component","setupTranslateFactory":"./lib/ngx-loop.module","NgxLoopModule":"./lib/ngx-loop.module","BaseModel":"./lib/depends/base.model","FlespiConstants":"./lib/controllers/mqtt-controller","MqttController":"./lib/controllers/mqtt-controller","TranslateService":"./lib/translate.service","TranslatePipe":"./lib/translate.pipe","IntercomService":"./lib/intercom.service","PreferencesService":"./lib/preferences.service","ResourceSelectorComponent":"./lib/resource-selector/resource-selector.component","SafeSafari":"./lib/depends/pipe/date.pipe","ShortDatePipe":"./lib/depends/pipe/date.pipe","HourPipe":"./lib/depends/pipe/date.pipe","FullDatePipe":"./lib/depends/pipe/date.pipe","DayMonth":"./lib/depends/pipe/date.pipe","DayPipe":"./lib/depends/pipe/date.pipe","DayHourPipe":"./lib/depends/pipe/date.pipe","SecToDateTime":"./lib/sec-to-date-pipe","DurationPipe":"./lib/time.pipe","NgxLoopDocumentService":"./lib/ngx-loop-document/ngx-loop-document.service","ɵa":"./lib/depends/base.service","ɵb":"./lib/depends/configuration.service","ɵc":"./pipes/safeHtmlPipe","ɵd":"./lib/ngx-loop-jsreport/ngx-loop-jsreport.component","ɵe":"./lib/ngx-loop-document/ngx-loop-document.component","ɵf":"./lib/ngx-loop-reports-list/ngx-loop-reports-list","ɵg":"./lib/ngx-loop-vehicle-livemap/ngx-loop-vehicle-livemap","ɵh":"./lib/depends/livemap.service","ɵi":"./lib/depends/custom.service","ɵj":"./lib/ngx-medium-toggle/ngx-medium-toggle.component","ɵk":"./lib/ngx-small-toggle/ngx-small-toggle.component","ɵl":"./lib/ngx-loop-map-vehicle-panel/ngx-loop-map-vehicle-panel","ɵm":"./lib/ngx-loop-timeline/ngx-loop-timeline.component","ɵn":"./lib/ngx-loop-vehicle-table/ngx-loop-vehicle-table.component","ɵo":"./lib/ngx-loop-vehicle-panel-group/ngx-loop-vehicle-panel-group","ɵp":"./lib/dynamic-resource-selector/dynamic-resource-selector.component","ɵq":"./lib/ngx-trackit-panel/ngx-track-it-panel.component","ɵr":"./lib/ngx-loop-reports-list/auto-reports-dialog/auto-reports-dialog","ɵs":"./lib/depends/auto-reports.service","ɵt":"./lib/ngx-loop-reports-list/auto-reports-create-dialog/auto-reports-create-dialog","ɵu":"./lib/depends/user.service","ɵv":"./lib/confirmation-dialog/confirmation-dialog.component","ɵw":"./lib/multiple-resource-selector/multiple-resource-selector.component","ɵx":"./lib/ngx-loop-context-menu/ngx-loop-context-menu.component","ɵy":"./lib/depends/pipe/pipe.module","ɵz":"./lib/depends/pipe/unit.pipe"},"importAs":"ngx-loop-components"}