{"__symbolic":"module","version":4,"metadata":{"VqsTicketsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":26,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}],"exports":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":40,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":41,"character":4},{"__symbolic":"reference","module":"ng2-semantic-ui","name":"SuiModule","line":42,"character":4},{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":43,"character":4},{"__symbolic":"reference","module":"ngx-moment","name":"MomentModule","line":44,"character":4},{"__symbolic":"reference","module":"ngx-trumbowyg","name":"NgxTrumbowygModule","line":45,"character":4},{"__symbolic":"reference","module":"ngx-dropzone-wrapper","name":"DropzoneModule","line":46,"character":4}],"providers":[{"provide":{"__symbolic":"reference","module":"ngx-dropzone-wrapper","name":"DROPZONE_CONFIG","line":50,"character":15},"useValue":{"url":"https://app.zanoniconsultoria.com.br/post","acceptedFiles":"text/*,image/*,audio/*,video/*,application/*","uploadMultiple":false,"maxFilesize":20000,"withCredentials":false,"headers":{"Cache-Control":"","$quoted$":["Cache-Control"]}}}],"schemas":[{"__symbolic":"reference","module":"@angular/core","name":"CUSTOM_ELEMENTS_SCHEMA","line":55,"character":4}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":23,"character":1},"arguments":[{"selector":"vqs-tickets","template":"<ng-container *ngIf=\"TicketsItems$ | async; let TicketsItems; else loading\">\n\n  <div class=\"ui grid\">\n\n    <!--\n      SIDEBAR\n    -->\n    <div class=\"four wide column\">\n\n      <!-- TICKETS NOT FOUND -->\n      <div class=\"ui clearing segment\" *ngIf=\"TicketsItems.length === 0\">\n        <i class=\"info icon\"></i> {{ 'TICKETS.NOT.FOUND' | translate }}\n      </div>\n\n      <div class=\"scrollbar\" [ngClass]=\"{ 'overflowTickets' : ((!config) || (!config.inside)), 'overflowTicketsInside' : ((config) && (config.inside)) }\" *ngIf=\"TicketsItems.length > 0\">\n\n        <!-- LIST -->\n        <ng-container *ngFor=\"let group of TicketsItems | groupByDate\">\n\n          <div class=\"mTop20 ui relaxed list\">\n            <div class=\"item\" (click)=\"group.header.open = !group.header.open\">\n              <i *ngIf=\"!group.header.open\" class=\"large folder outline icon iconGroup\"></i>\n              <i *ngIf=\"group.header.open\" class=\"large folder open outline icon iconGroup\"></i>\n              <div class=\"content\">\n                <h3 class=\"dateGroup\">{{ group.header.date }}<br><small>Há {{ (group.header.number | amFromUnix) | amTimeAgo:true }}</small></h3>\n              </div>\n            </div>\n          </div>\n\n          <div class=\"ui middle aligned divided list\" [suiCollapse]=\"!group.header.open\">\n            <div *ngFor=\"let ticket of group.TicketsItems\" class=\"item itemList\" [ngClass]=\"{ 'cardActive' : ticket.number == selectedTicket.number }\" (click)=\"getMessages(ticket)\">\n              <div class=\"content\">\n                  <div class=\"header\">{{ ticket.subject }}</div>\n                  <div class=\"description\"><i style=\"color:#78909C\" class=\"user icon\"></i> {{ ticket.creator_name }}</div>\n                  <div style=\"margin-top:5px;\">\n                    <div class=\"ui small blue horizontal label\"\n                        *ngIf=\"(ticket.due_timestamp) && (((ticket.due_timestamp | amFromUnix) | amDifference: today :'hours': true) > 0)\">\n                        {{ (ticket.due_timestamp | amFromUnix) | amCalendar }}\n                    </div>\n                    <div class=\"ui small orange horizontal label\"\n                        *ngIf=\"(ticket.due_timestamp) && (((ticket.due_timestamp | amFromUnix) | amDifference: today :'hours': true) < 0)\">{{ 'TICKETS.EXPIRED' | translate }}\n                    </div>\n                    <div class=\"ui small horizontal label\">\n                        <span class=\"danger\" *ngIf=\"ticket.priority == 1\">{{ 'TICKETS.PRIORITY.CRITICAL' | translate }}</span>\n                        <span class=\"warning\" *ngIf=\"ticket.priority == 2\">{{ 'TICKETS.PRIORITY.HIGH' | translate }}</span>\n                        <span *ngIf=\"ticket.priority == 3\">{{ 'TICKETS.PRIORITY.MODERATE' | translate }}</span>\n                        <span *ngIf=\"ticket.priority == 4\">{{ 'TICKETS.PRIORITY.LOW' | translate }}</span>\n                    </div>\n                    <div *ngIf=\"ticket.unread > 0\" class=\"right floated\"><span class=\"ui red small horizontal label\">{{ ticket.unread }}</span></div>\n                  </div>\n              </div>\n            </div>\n          </div>\n\n        </ng-container>\n      </div>\n      <div style=\"margin-top:5px\" class=\"ui buttons\" *ngIf=\"TicketsItems.length > 0\">\n        <button class=\"ui icon button teal\" (click)=\"filterByQtdMonth(+1)\">\n          <i class=\"left chevron icon\"></i>\n        </button>\n        <button class=\"ui right icon button teal\" (click)=\"filterByQtdMonth(-1)\" *ngIf=\"qtdMonth > 1\">\n          <i class=\"right chevron icon\"></i>\n        </button>\n      </div>\n    </div>\n\n\n    <!--\n      TICKETS PROPERTIES / MESSAGES\n    -->\n    <div class=\"twelve wide column\">\n\n      <!--\n        BUTTONS HEADER\n      -->\n      <div class=\"buttonsHeader\">\n        <ng-template let-option #optionStatusTemplate>\n          {{ option.name | translate }}\n        </ng-template>\n        <sui-select\n          class=\"floating labeled icon button teal\"\n          icon=\"flag\"\n          [options]=\"statusOpt\"\n          labelField=\"name\"\n          valueField=\"id\"\n          [optionTemplate]=\"optionStatusTemplate\"\n          [(ngModel)]=\"selectedStatus\"\n          [isSearchable]=\"true\"\n          placeholder=\"Status\"\n          (selectedOptionChange)=\"filterByStatus(selectedStatus)\"\n          #templatedStatus>\n          <sui-select-option *ngFor=\"let o of templatedStatus.filteredOptions\" [value]=\"o\"></sui-select-option>\n        </sui-select>\n\n        <ng-template let-option #optionFolderTemplate>\n          {{ option.name | translate }}\n        </ng-template>\n        <sui-select\n          class=\"floating labeled icon button teal\"\n          icon=\"flag\"\n          [options]=\"folderOpt\"\n          labelField=\"name\"\n          valueField=\"id\"\n          [optionTemplate]=\"optionFolderTemplate\"\n          [(ngModel)]=\"selectedFolder\"\n          [isSearchable]=\"true\"\n          placeholder=\"Categorias\"\n          (selectedOptionChange)=\"filterByFolder(selectedFolder)\"\n          #templatedFolder>\n          <sui-select-option *ngFor=\"let o of templatedFolder.filteredOptions\" [value]=\"o\"></sui-select-option>\n        </sui-select>\n\n        <ng-template let-option #optionAttendantsTemplate>\n          {{ option.name | translate }}\n        </ng-template>\n        <sui-select\n          *ngIf=\"vqsAuthService.profile === 200\"\n          class=\"floating labeled icon button teal\"\n          icon=\"user\"\n          [options]=\"attendants\"\n          labelField=\"name\"\n          valueField=\"id\"\n          [optionTemplate]=\"optionAttendantsTemplate\"\n          [(ngModel)]=\"selectedAttendant\"\n          [isSearchable]=\"true\"\n          placeholder=\"{{ 'TICKETS.ATTENDANT' | translate }}\"\n          (selectedOptionChange)=\"filterByAttendant(selectedAttendant)\"\n          #templatedAttendant>\n          <sui-select-option *ngIf=\"vqsAuthService.profile == 200\" [value]=\"{id:undefined,name:'TICKETS.ALL.ATTENDANTS'}\"></sui-select-option>\n          <sui-select-option *ngFor=\"let o of templatedAttendant.filteredOptions\" [value]=\"o\"></sui-select-option>\n        </sui-select>\n\n        <ng-template let-option #optionRequestersTemplate>\n          {{ option.name | translate }}\n        </ng-template>\n        <sui-select\n          *ngIf=\"vqsAuthService.profile === 200\"\n          class=\"floating labeled icon button teal\"\n          icon=\"address book\"\n          [options]=\"requesters\"\n          labelField=\"name\"\n          valueField=\"id\"\n          [optionTemplate]=\"optionRequestersTemplate\"\n          [(ngModel)]=\"selectedRequester\"\n          [isSearchable]=\"true\"\n          placeholder=\"{{ 'TICKETS.ALL.REQUESTER' | translate }}\"\n          (selectedOptionChange)=\"filterByRequester(selectedRequester)\"\n          #templatedRequester>\n          <sui-select-option [value]=\"{id:undefined,name:'TICKETS.ALL.REQUESTER'}\"></sui-select-option>\n          <sui-select-option *ngFor=\"let o of templatedRequester.filteredOptions\" [value]=\"o\"></sui-select-option>\n        </sui-select>\n\n        <button class=\"ui button teal\" (click)=\"newTicket()\">\n          <i class=\"plus icon\"></i> {{ 'TICKETS.NEW' | translate }}\n        </button>\n\n        <div *ngIf=\"(!config) || (!config.searchNumberDisabled)\"\n          class=\"ui pointing dropdown icon button teal\" suiDropdown>\n          <i class=\"search icon\"></i>\n          <div class=\"menu\" suiDropdownMenu>\n            <div class=\"item\">\n              <div class=\"ui transparent input\">\n                <input type=\"number\" placeholder=\"Número\" [(ngModel)]=\"selectedNumber\" (keydown)=\"filterByNumber(selectedNumber)\">\n              </div>\n            </div>\n          </div>\n        </div>\n\n        <button  class=\"ui icon button teal\" (click)=\"refreshTicket()\">\n          <i *ngIf=\"!btnRefreshTicketLoading\" class=\"sync icon\"></i>\n          <i *ngIf=\"btnRefreshTicketLoading\" class=\"ui active inline tiny loader\"></i>\n        </button>\n\n      </div>\n\n\n      <!-- NONE TICKET SELECTED -->\n      <div class=\"ui clearing segment\" *ngIf=\"(!selectedTicket.number) && (TicketsItems.length > 0)\">\n        {{ 'TICKETS.NOT.SELECTED' | translate }}\n      </div>\n\n      <!-- TICKET SELECTED -->\n      <vqs-tickets-messages\n        *ngIf=\"(selectedTicket.number)\"\n        [config]=\"config\"\n        [ticket]=\"selectedTicket\"\n        [requesters]=\"requesters\"\n        [attendants]=\"attendants\"\n        [folders]=\"folderOpt\"\n        [(messages)]=\"getMessages\">\n      </vqs-tickets-messages>\n\n    </div>\n\n  </div>\n</ng-container>\n\n\n\n<ng-template let-context let-modal=\"modal\" #modalTemplateNewTicket>\n  <vqs-tickets-new\n    [config]=\"config\"\n    [modal]=\"modal\"\n    [message]=\"context.item\">\n  </vqs-tickets-new>\n</ng-template>\n\n\n\n<ng-template #loading>\n  <div class=\"ui active inline loader\"></div>\n</ng-template>\n","styles":[".cardActive{background-color:#fff3e0!important;color:#fff}.overflowTickets{height:calc(100vh - 190px);overflow-y:scroll;margin:0;background-color:#cfd8dc;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);border-radius:.28571429rem;border:1px solid rgba(34,36,38,.15);padding:0 5px}.overflowTicketsInside{height:calc(100vh - 355px);overflow-y:scroll;margin:0;background-color:#cfd8dc;-webkit-box-shadow:0 1px 2px 0 rgba(34,36,38,.15);box-shadow:0 1px 2px 0 rgba(34,36,38,.15);border-radius:.28571429rem;border:1px solid rgba(34,36,38,.15);padding:0 5px}.buttonsHeader{margin-bottom:20px}.scrollbar::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);background-color:#f5f5f5}.scrollbar::-webkit-scrollbar{width:6px;background-color:#f5f5f5}.scrollbar::-webkit-scrollbar-thumb{background-color:#78909c}.dateGroup{padding:0;color:#263238}.iconGroup{color:#263238}.itemList{padding:10px!important;min-height:90px!important;background-color:#fff}"]}]}],"members":{"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":30,"character":3}}]}],"modalTemplateNewTicket":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":32,"character":3},"arguments":["modalTemplateNewTicket",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":74,"character":5},"arguments":["vqsAppConfig"]}],null,null,null,null,null,null],"parameters":[null,{"__symbolic":"reference","module":"ng2-semantic-ui","name":"SuiModalService","line":75,"character":26},{"__symbolic":"reference","module":"ng2-semantic-ui","name":"SuiLocalizationService","line":76,"character":32},{"__symbolic":"reference","module":"@angular/fire/firestore","name":"AngularFirestore","line":77,"character":26},{"__symbolic":"reference","module":"@vqs/vqs-app","name":"VqsAuthService","line":78,"character":27},{"__symbolic":"reference","module":"@vqs/vqs-app","name":"VqsAppService","line":79,"character":26},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":80,"character":18}]}],"ngOnInit":[{"__symbolic":"method"}],"filterByFolder":[{"__symbolic":"method"}],"filterByStatus":[{"__symbolic":"method"}],"filterByQtdMonth":[{"__symbolic":"method"}],"filterByNumber":[{"__symbolic":"method"}],"filterByRequester":[{"__symbolic":"method"}],"filterByAttendant":[{"__symbolic":"method"}],"refreshTicket":[{"__symbolic":"method"}],"getMessages":[{"__symbolic":"method"}],"newTicket":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":29,"character":1},"arguments":[{"selector":"vqs-tickets-messages","template":"<!-- SHOW TICKET HEADER -->\n<div class=\"ui segment clearing\" *ngIf=\"(ticket.number)\">\n\n  <!-- SHOW PRIORITY -->\n  <a class=\"ui right ribbon label\" *ngIf=\"!config.optionPrioritiesDisabled\" (click)=\"changePriority()\" [ngClass]=\"{\n    'blue': (ticket.priority == 4),\n    'teal': (ticket.priority == 3),\n    'orange': (ticket.priority == 2),\n    'red': (ticket.priority == 1),\n    'black': (ticket.status == 'C')}\">\n    <ng-container *ngIf=\"ticket.status == 'O'\">\n      <span *ngIf=\"(ticket.priority == 4)\">{{ 'TICKETS.PRIORITY' | translate }}&nbsp;{{ 'TICKETS.PRIORITY.LOW' | translate }}</span>\n      <span *ngIf=\"(ticket.priority == 3)\">{{ 'TICKETS.PRIORITY' | translate }}&nbsp;{{ 'TICKETS.PRIORITY.MODERATE' | translate }}</span>\n      <span *ngIf=\"(ticket.priority == 2)\">{{ 'TICKETS.PRIORITY' | translate }}&nbsp;{{ 'TICKETS.PRIORITY.HIGH' | translate }}</span>\n      <span *ngIf=\"(ticket.priority == 1)\">{{ 'TICKETS.PRIORITY' | translate }}&nbsp;{{ 'TICKETS.PRIORITY.CRITICAL' | translate }}</span>\n    </ng-container>\n    <span *ngIf=\"ticket.status == 'C'\">{{ 'TICKETS.STATUS.CLOSE' | translate }}</span>\n  </a>\n\n  <!-- SHOW TICKET NUMBER / SUBJECT -->\n  <h3 *ngIf=\"!config.optionPrioritiesDisabled\" style=\"margin-top:-25px;\"># {{ ticket.number }} - {{ ticket.subject }}</h3>\n  <h3 *ngIf=\"config.optionPrioritiesDisabled\"># {{ ticket.number }} - {{ ticket.subject }}</h3>\n\n  <!-- SHOW TICKET PROPERTIES -->\n  <div class=\"ui stackable five column grid\">\n    <div class=\"column\">\n      <span class=\"title_box\">{{ 'TICKETS.REQUESTER' | translate }}:</span>\n      <br>\n      <!-- SELECT REQUESTER -->\n      <ng-template let-option #optionRequestersTemplate>\n        {{ option.name | translate }}\n      </ng-template>\n      <sui-select\n        class=\"selection fluid\"\n        [options]=\"requesters\"\n        labelField=\"name\"\n        valueField=\"id\"\n        [optionTemplate]=\"optionRequestersTemplate\"\n        [(ngModel)]=\"ticket.requester\"\n        [isDisabled]=\"config.requestersChangeDisabled\"\n        [isSearchable]=\"true\"\n        placeholder=\"{{ 'TICKETS.REQUESTER' | translate }}\"\n        (selectedOptionChange)=\"changeRequester(ticket.number, ticket.requester)\"\n        #templatedRequester>\n        <sui-select-option *ngFor=\"let o of templatedRequester.filteredOptions\" [value]=\"o\"></sui-select-option>\n      </sui-select>\n    </div>\n    <div class=\"column\">\n      <span class=\"title_box\">{{ 'TICKETS.ATTENDANT' | translate }}:</span>\n      <br>\n      <!-- SELECT ATTENDANT -->\n      <ng-template *ngIf=\"ticket.assignee\" let-option #optionAttendantsTemplate>\n        <i class=\"icon filter\"></i> {{ option.name | translate }}\n      </ng-template>\n      <sui-select class=\"selection fluid\" [options]=\"attendants\" labelField=\"name\" valueField=\"id\" [(ngModel)]=\"ticket.attendant\"\n        (selectedOptionChange)=\"changeAttendant(ticket.number, ticket.attendant)\"\n        [isDisabled]=\"config.attendantsDisabled\"\n        placeholder=\"{{ 'TICKETS.ATTENDANT' | translate }}\"\n        [optionTemplate]=\"optionAttendantsTemplate\" [isSearchable]=\"true\" #templatedAttendants>\n        <sui-select-option *ngFor=\"let o of templatedAttendants.filteredOptions\" [value]=\"o\"></sui-select-option>\n      </sui-select>\n    </div>\n    <div class=\"column\">\n      <span class=\"title_box\">{{ 'TICKETS.FOLDERS' | translate }}:</span>\n      <br>\n      <!-- SELECT CATEGORIA -->\n      <ng-template let-option #optionFoldersTemplate>\n        {{ option.name | translate }}\n      </ng-template>\n      <sui-select class=\"selection fluid\" [options]=\"folders\" labelField=\"name\" valueField=\"id\" [(ngModel)]=\"ticket.folder\"\n        (selectedOptionChange)=\"changeFolder(ticket.number, ticket.folder)\"\n        placeholder=\"{{ 'TICKETS.FOLDERS' | translate }}\"\n        [optionTemplate]=\"optionFoldersTemplate\" [isSearchable]=\"true\" #templatedFolders>\n        <sui-select-option *ngFor=\"let o of templatedFolders.filteredOptions\" [value]=\"o\"></sui-select-option>\n      </sui-select>\n    </div>\n    <div class=\"column\">\n      <span class=\"title_box\">{{ 'TICKETS.CREATED' | translate }}:</span>\n      <br>{{ (ticket.timestamp | amFromUnix) | amCalendar }}\n    </div>\n    <div class=\"column\" *ngIf=\"(ticket.status == 'O') && (ticket.due_timestamp > 0)\">\n      <span class=\"title_box\">{{ 'TICKETS.DUE.DATE' | translate }}:</span>\n      <br>{{ (ticket.due_timestamp | amFromUnix) | amCalendar }}\n    </div>\n    <div class=\"column\" *ngIf=\"ticket.status == 'C'\">\n      <span class=\"title_box\">{{ 'TICKETS.RESOLVED' | translate }}:</span>\n      <br>{{ (ticket.close_timestamp | amFromUnix) | amCalendar }}\n    </div>\n  </div>\n\n  <!-- SHOW TICKET BUTTOMS ACTIONS -->\n  <div class=\"mTop20\">\n    <button *ngIf=\"ticket.status == 'C'\" class=\"ui green button\" (click)=\"reOpenTicket(ticket)\">\n      <span class=\"light\">{{ 'TICKETS.REOPEN' | translate }}</span>\n    </button>\n    <button *ngIf=\"ticket.status == 'O' && (!config.setSpamDisabled)\" class=\"ui orange button\" (click)=\"spamTicket(ticket)\">\n      <span class=\"light\">{{ 'TICKETS.SPAM' | translate }}</span>\n    </button>\n    <button *ngIf=\"ticket.status == 'O'\" class=\"ui red button\" (click)=\"deleteTicket(ticket)\">\n      <span class=\"light\">{{ 'TICKETS.DELETE' | translate }}</span>\n    </button>\n    <button *ngIf=\"ticket.status == 'O'\" class=\"ui primary button\" (click)=\"replyTicket(ticket)\">\n      <span class=\"light\">{{ 'TICKETS.REPLY' | translate }}</span>\n    </button>\n    <button *ngIf=\"ticket.status == 'O' && (!config.forwardDisabled)\" class=\"ui olive button\" (click)=\"forwardTicket(ticket)\">\n      <span class=\"light\">{{ 'TICKETS.FORWARD' | translate }}</span>\n    </button>\n    <button *ngIf=\"ticket.status == 'O' && (!config.notesDisabled)\" class=\"ui button\" (click)=\"notesTicket(ticket)\">\n      {{ 'TICKETS.NOTE' | translate }}\n    </button>\n    <button *ngIf=\"(ticket.unread <= 1)\" class=\"ui yellow button\" (click)=\"changeUnRead(ticket)\">\n      {{ 'TICKETS.MARK.UNREAD' | translate }}\n    </button>\n    <button *ngIf=\"(ticket.status == 'O')\" class=\"ui purple button\" (click)=\"closeTicket(ticket)\">\n      {{ 'TICKETS.CLOSE' | translate }}\n    </button>\n  </div>\n\n</div>\n\n\n<!-- SHOW LOADING WHEN SENDING MAIL -->\n<div *ngIf=\"sending\" class=\"ui active inline loader\"></div>\n\n<!-- SHOW MESSAGES / NOTES -->\n<ng-container class=\"ui clearing segment\" *ngIf=\"(ticket.number)\">\n  <ng-container *ngIf=\"ticketMessages | async; let ticketMessages; else loading\">\n    <ng-container *ngIf=\"(ticket.number)\">\n\n      <!-- TEXTAREA REPLY -->\n      <div *ngIf=\"showReply\">\n        <h3>{{ 'TICKETS.REPLY' | translate }}</h3>\n        <div class=\"ui stackable three column grid\">\n            <div class=\"column\">\n                <div class=\"ui labeled fluid input\">\n                  <div class=\"ui label\">\n                      {{ 'TICKETS.TO' | translate }}:\n                    </div>\n                  <input type=\"email\" name=\"email\" [(ngModel)]=\"ticket.creator_email\"> <!-- readonly=\"true\" disabled=\"true\" -->\n                </div>\n            </div>\n            <div class=\"column\" *ngIf=\"!config.ccDisabled\">\n                <div class=\"ui labeled fluid input\">\n                    <div class=\"ui label\">\n                        {{ 'TICKETS.CC' | translate }}:\n                      </div>\n                    <input type=\"email\" name=\"email_cc\" [(ngModel)]=\"ticket.email_cc\" placeholder=\"{{ 'TICKETS.TEXT.CC' | translate }}\">\n                  </div>\n            </div>\n            <div class=\"column\" *ngIf=\"!config.ccoDisabled\">\n                <div class=\"ui labeled fluid input\">\n                    <div class=\"ui label\">\n                        {{ 'TICKETS.CCO' | translate }}:\n                      </div>\n                    <input type=\"email\" name=\"email_cco\" [(ngModel)]=\"ticket.email_cco\" placeholder=\"{{ 'TICKETS.TEXT.CCO' | translate }}\">\n                  </div>\n            </div>\n        </div>\n        <textarea ngxTrumbowygEditor [name]=\"reply\" [(ngModel)]=\"reply\"></textarea>\n        <div class=\"ui stackable two column grid\">\n          <div class=\"column\">\n            <div class=\"dropzoneSize\">\n              <dropzone [message]=\"'Anexar Arquivos'\" (error)=\"onUploadError($event)\" (success)=\"onUploadSuccess($event, replyId)\"></dropzone>\n            </div>\n            <ng-container *ngIf=\"Attachments_Items | async; let Attachments_Items; else loading\">\n              <div class=\"ui middle aligned divided list\">\n                <div class=\"item\" *ngFor=\"let file of Attachments_Items\">\n                  <div class=\"right floated content\">\n                    <button class=\"ui button\" (click)=\"deleteFile(file, replyId)\"><i class=\"icon trash\"></i> {{ 'APP.DELETE' | translate }}</button>\n                  </div>\n                  <img *ngIf=\"(file.file_extension == 'doc') || (file.file_extension == 'docx')\" class=\"ui avatar image\" src=\"assets/images/files/doc.png\">\n                  <img *ngIf=\"(file.file_extension == 'jpg') || (file.file_extension == 'jpeg')\" class=\"ui avatar image\" src=\"assets/images/files/jpg.png\">\n                  <img *ngIf=\"(file.file_extension == 'pdf')\" class=\"ui avatar image\" src=\"assets/images/files/pdf.png\">\n                  <img *ngIf=\"(file.file_extension == 'png')\" class=\"ui avatar image\" src=\"assets/images/files/png.png\">\n                  <img *ngIf=\"(file.file_extension == 'ppt') || (file.file_extension == 'pptx')\" class=\"ui avatar image\" src=\"assets/images/files/ppt.png\">\n                  <img *ngIf=\"(file.file_extension == 'txt') || (file.file_extension == 'csv')\" class=\"ui avatar image\" src=\"assets/images/files/txt.png\">\n                  <img *ngIf=\"(file.file_extension == 'xls') || (file.file_extension == 'xlsx')\" class=\"ui avatar image\" src=\"assets/images/files/xls.png\">\n                  <img *ngIf=\"(file.file_extension == 'zip') || (file.file_extension == 'rar')\" class=\"ui avatar image\" src=\"assets/images/files/zip.png\">\n                  <img *ngIf=\"(file.file_extension !== 'doc') &&\n                  (file.file_extension !== 'doc') &&\n                  (file.file_extension !== 'docx') &&\n                  (file.file_extension !== 'jpg') &&\n                  (file.file_extension !== 'jpeg') &&\n                  (file.file_extension !== 'pdf') &&\n                  (file.file_extension !== 'png') &&\n                  (file.file_extension !== 'ppt') &&\n                  (file.file_extension !== 'pptx') &&\n                  (file.file_extension !== 'txt') &&\n                  (file.file_extension !== 'csv') &&\n                  (file.file_extension !== 'xls') &&\n                  (file.file_extension !== 'xlsx') &&\n                  (file.file_extension !== 'zip')\" class=\"ui avatar image\" src=\"assets/images/files/other.png\">\n                  <div class=\"content\">\n                    {{ file.file_name }}\n                  </div>\n                </div>\n              </div>\n            </ng-container>\n          </div>\n          <div class=\"column\">\n            <div class=\"mTop10\">\n                <button class=\"ui right floated button red\" (click)=\"sendReply(true)\">\n                    <span class=\"light\">{{ 'TICKETS.SEND.CLOSE' | translate }}</span>\n                  </button>\n                  <button class=\"ui right floated button orange\" (click)=\"sendReply(false)\">\n                    <span class=\"light\">{{ 'TICKETS.SEND' | translate }}</span>\n                  </button>\n                  <button class=\"ui right floated button black\" (click)=\"hideAll()\">\n                    <span class=\"light\">{{ 'TICKETS.CANCEL' | translate }}</span>\n                  </button>\n            </div>\n          </div>\n        </div>\n        <div class=\"mTop50\"></div>\n      </div>\n\n\n      <!-- TEXTAREA NOTES -->\n      <div *ngIf=\"showNote && !notesDisabled\">\n        <h3>{{ 'TICKETS.NOTE' | translate }}</h3>\n        <textarea ngxTrumbowygEditor [name]=\"reply\" [(ngModel)]=\"reply\"></textarea>\n        <div class=\"mTop10\">\n          <button class=\"ui right floated button orange\" (click)=\"saveNote(reply)\">\n            <span class=\"light\">{{ 'TICKETS.SAVE.NOTE' | translate }}</span>\n          </button>\n          <button class=\"ui right floated button black\" (click)=\"hideAll()\">\n            <span class=\"light\">{{ 'TICKETS.CANCEL.NOTE' | translate }}</span>\n          </button>\n        </div>\n        <div class=\"mTop50\"></div>\n      </div>\n\n\n      <!-- TEXTAREA FORWARD -->\n      <div *ngIf=\"showForward\">\n        <h3>{{ 'TICKETS.FORWARD' | translate }}</h3>\n        <div class=\"ui stackable three column grid\">\n            <div class=\"column\">\n                <div class=\"ui labeled fluid input\">\n                  <div class=\"ui label\">\n                      {{ 'TICKETS.TO' | translate }}:\n                    </div>\n                  <input type=\"emailForward\" name=\"emailForward\" [(ngModel)]=\"emailForward\">\n                </div>\n            </div>\n            <div class=\"column\">\n              <div class=\"ui labeled fluid input\">\n                  <div class=\"ui label\">\n                      {{ 'TICKETS.CC' | translate }}:\n                    </div>\n                  <input type=\"email\" name=\"email_cc\" [(ngModel)]=\"emailForwardCC\" placeholder=\"{{ 'TICKETS.TEXT.CC' | translate }}\">\n                </div>\n          </div>\n          <div class=\"column\">\n              <div class=\"ui labeled fluid input\">\n                  <div class=\"ui label\">\n                      {{ 'TICKETS.CCO' | translate }}:\n                    </div>\n                  <input type=\"email\" name=\"email_cco\" [(ngModel)]=\"emailForwardCCO\" placeholder=\"{{ 'TICKETS.TEXT.CCO' | translate }}\">\n                </div>\n          </div>\n        </div>\n        <textarea ngxTrumbowygEditor [name]=\"reply\" [(ngModel)]=\"reply\"></textarea>\n        <div class=\"ui stackable two column grid\">\n          <div class=\"column\">\n            <div class=\"dropzoneSize\">\n              <dropzone [message]=\"'Anexar Arquivos'\" (error)=\"onUploadError($event)\" (success)=\"onUploadSuccess($event, replyId)\"></dropzone>\n            </div>\n            <ng-container *ngIf=\"Attachments_Items | async; let Attachments_Items; else loading\">\n              <div class=\"ui middle aligned divided list\">\n                <div class=\"item\" *ngFor=\"let file of Attachments_Items\">\n                  <div class=\"right floated content\">\n                    <button class=\"ui button\" (click)=\"deleteFile(file, replyId)\"><i class=\"icon trash\"></i> {{ 'APP.DELETE' | translate }}</button>\n                  </div>\n                  <img *ngIf=\"(file.file_extension == 'doc') || (file.file_extension == 'docx')\" class=\"ui avatar image\" src=\"assets/images/files/doc.png\">\n                  <img *ngIf=\"(file.file_extension == 'jpg') || (file.file_extension == 'jpeg')\" class=\"ui avatar image\" src=\"assets/images/files/jpg.png\">\n                  <img *ngIf=\"(file.file_extension == 'pdf')\" class=\"ui avatar image\" src=\"assets/images/files/pdf.png\">\n                  <img *ngIf=\"(file.file_extension == 'png')\" class=\"ui avatar image\" src=\"assets/images/files/png.png\">\n                  <img *ngIf=\"(file.file_extension == 'ppt') || (file.file_extension == 'pptx')\" class=\"ui avatar image\" src=\"assets/images/files/ppt.png\">\n                  <img *ngIf=\"(file.file_extension == 'txt') || (file.file_extension == 'csv')\" class=\"ui avatar image\" src=\"assets/images/files/txt.png\">\n                  <img *ngIf=\"(file.file_extension == 'xls') || (file.file_extension == 'xlsx')\" class=\"ui avatar image\" src=\"assets/images/files/xls.png\">\n                  <img *ngIf=\"(file.file_extension == 'zip') || (file.file_extension == 'rar')\" class=\"ui avatar image\" src=\"assets/images/files/zip.png\">\n                  <img *ngIf=\"(file.file_extension !== 'doc') &&\n                  (file.file_extension !== 'doc') &&\n                  (file.file_extension !== 'docx') &&\n                  (file.file_extension !== 'jpg') &&\n                  (file.file_extension !== 'jpeg') &&\n                  (file.file_extension !== 'pdf') &&\n                  (file.file_extension !== 'png') &&\n                  (file.file_extension !== 'ppt') &&\n                  (file.file_extension !== 'pptx') &&\n                  (file.file_extension !== 'txt') &&\n                  (file.file_extension !== 'csv') &&\n                  (file.file_extension !== 'xls') &&\n                  (file.file_extension !== 'xlsx') &&\n                  (file.file_extension !== 'zip')\" class=\"ui avatar image\" src=\"assets/images/files/other.png\">\n                  <div class=\"content\">\n                    {{ file.file_name }}\n                  </div>\n                </div>\n              </div>\n            </ng-container>\n          </div>\n          <div class=\"column\">\n            <div class=\"mTop10\">\n                  <button class=\"ui right floated button orange\" [disabled]=\"!emailForward\" (click)=\"sendForward()\">\n                    <span class=\"light\">{{ 'TICKETS.SEND' | translate }}</span>\n                  </button>\n                  <button class=\"ui right floated button black\" (click)=\"hideAll()\">\n                    <span class=\"light\">{{ 'TICKETS.CANCEL' | translate }}</span>\n                  </button>\n            </div>\n          </div>\n        </div>\n        <div class=\"mTop50\"></div>\n      </div>\n\n\n      <!-- LIST MESSAGES - ACCORDION -->\n      <h3>{{ 'TICKETS.MESSAGES.NOTES' | translate }}</h3>\n      <ng-container *ngFor=\"let message of ticketMessages; let index = index\">\n        <ng-container *ngIf=\"!message.note || (message.note && !config.notesDisabled)\">\n\n            <sui-accordion class=\"mTop10 styled fluid\" [ngClass]=\"{ 'tickets_bg_notes': message.note }\">\n              <sui-accordion-panel [isOpen]=\"!index\" closeOthers=\"true\">\n\n                  <!-- ACCORDION TITLE -->\n                  <div title>\n                      <i class=\"dropdown icon\"></i>\n                      <img *ngIf=\"message.from[0].photo\" class=\"ui mini avatar image\" [src]=\"message.from[0].photo\">\n                      <img *ngIf=\"!message.from[0].photo\" class=\"ui mini avatar image\" src=\"assets/images/user.png\">\n                      {{ message.from[0].name }} <div class=\"dateMessage\"> {{ (message.timestamp | amFromUnix) | amCalendar }}\n                        <i *ngIf=\"message.flagged\" class=\"flag icon red\"></i>\n                      </div>\n                  </div>\n\n                  <!-- ACCORDION CONTENT -->\n                  <div content>\n                    <div class=\"ui basic label\" *ngIf=\"message.to\">{{ 'TICKETS.TO' | translate }}: <div class=\"detail\">{{ message.to }}</div></div>\n                    <div class=\"mTop5\" *ngIf=\"(message.cc) && (message.cc[0].email) && (!config.ccDisabled)\"><div class=\"ui basic label\">{{ 'TICKETS.CC' | translate }}: <div class=\"detail\"><span *ngIf=\"message.cc[0].name\">{{ message.cc[0].name }} - </span><span>{{ message.cc[0].email }}</span></div></div></div>\n                    <div class=\"mTop5\" *ngIf=\"(message.cco) && (message.cco[0].email) && (!config.ccoDisabled)\"><div class=\"ui basic label\">{{ 'TICKETS.CCO' | translate }}: <div class=\"detail\"><span *ngIf=\"message.cco[0].name\">{{ message.cco[0].name }} - </span><span>{{ message.cco[0].email }}</span></div></div></div>\n\n                    <!-- BODY MESSAGE -->\n                    <div *ngIf=\"message.html\" class=\"mTop20\" [innerHTML]=\"message.html | safeHtml\"></div>\n                    <div *ngIf=\"!message.html && message.text\" class=\"mTop20\" style=\"white-space: pre-wrap;\">{{ message.text }}</div>\n\n                    <!-- ATTACHMENTS -->\n                    <ng-container *ngIf=\"message.hasAnexo\">\n                      <div class=\"mTop20\"></div>\n                      <ng-container *ngFor=\"let file of message.files\">\n                        <a *ngIf=\"file.path\" class=\"ui basic button\" href=\"{{ file.path }}\" target=\"_blank\">\n                          <i class=\"icon cloud download\"></i>{{ file.filename }}\n                        </a>\n                        <a *ngIf=\"file.url\" class=\"ui basic button\" href=\"{{ file.url }}\" target=\"_blank\">\n                          <i class=\"icon cloud download\"></i>{{ file.name }}\n                        </a>\n                      </ng-container>\n                    </ng-container>\n\n                  </div>\n\n                </sui-accordion-panel>\n              </sui-accordion>\n          </ng-container>\n      </ng-container>\n\n    </ng-container>\n  </ng-container>\n</ng-container>\n\n\n\n\n<!--\n|‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒\n| MODAL TICKET\n|‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒\n!-->\n<ng-template let-context let-modal=\"modal\" #modalTemplateTicket>\n  <!-- HEADER MODAL -->\n  <div class=\"header headerModal\">\n    <div *ngIf=\"context.item.action == 'change_priority'\"><i class=\"icon thermometer full\"></i> {{ 'TICKETS.TITLE.MODAL.PRIORITY' | translate }}</div>\n    <div *ngIf=\"context.item.action == 'change_step'\"><i class=\"icon filter\"></i> {{ 'TICKETS.TITLE.MODAL.STEP' | translate }}</div>\n    <div *ngIf=\"context.item.action == 'open'\"><i class=\"question circle outline icon\"></i> {{ 'TICKETS.TITLE.MODAL.REOPEN' | translate }}</div>\n    <div *ngIf=\"context.item.action == 'spam'\"><i class=\"ban icon\"></i> {{ 'TICKETS.TITLE.MODAL.SPAM' | translate }}</div>\n    <div *ngIf=\"context.item.action == 'reply'\"><i class=\"reply icon\"></i> {{ 'TICKETS.TITLE.MODAL.REPLY' | translate }}</div>\n    <div *ngIf=\"context.item.action == 'notes'\"><i class=\"edit icon\"></i> {{ 'TICKETS.TITLE.MODAL.NOTE' | translate }}</div>\n  </div>\n\n  <!-- CONTENT MODAL -->\n  <div class=\"content\">\n\n    <!-- CHANGE PRIORITY -->\n    <ng-container *ngIf=\"context.item.action == 'change_priority'\">\n      <div class=\"ui form\">\n        <div class=\"grouped fields\">\n          <div class=\"field\">\n            <sui-radio-button name=\"priority\" value=\"4\" [(ngModel)]=\"context.item.ticket.priority\">{{ 'TICKETS.PRIORITY.LOW' | translate }}</sui-radio-button>\n          </div>\n          <div class=\"field\">\n            <sui-radio-button name=\"priority\" value=\"3\" [(ngModel)]=\"context.item.ticket.priority\">{{ 'TICKETS.PRIORITY.MODERATE' | translate }}</sui-radio-button>\n          </div>\n          <div class=\"field\">\n            <sui-radio-button name=\"priority\" value=\"2\" [(ngModel)]=\"context.item.ticket.priority\">{{ 'TICKETS.PRIORITY.HIGH' | translate }}</sui-radio-button>\n          </div>\n          <div class=\"field\">\n            <sui-radio-button name=\"priority\" value=\"1\" [(ngModel)]=\"context.item.ticket.priority\">{{ 'TICKETS.PRIORITY.CRITICAL' | translate }}</sui-radio-button>\n          </div>\n        </div>\n      </div>\n    </ng-container>\n\n\n\n\n    <!-- RE OPEM -->\n    <ng-container *ngIf=\"context.item.action == 'open'\">\n      <h3 class=\"dark\">#{{ context.item.ticket.number }} - {{ context.item.ticket.subject }}<br>\n        <small>{{ context.item.ticket.creator_name }} ({{ context.item.ticket.creator_email }})</small></h3>\n    </ng-container>\n\n\n    <!-- SET SPAM -->\n    <ng-container *ngIf=\"context.item.action == 'spam'\">\n        <h3 class=\"dark\">#{{ context.item.ticket.number }} - {{ context.item.ticket.subject }}<br>\n          <small>{{ context.item.ticket.creator_name }} ({{ context.item.ticket.creator_email }})</small></h3>\n    </ng-container>\n\n\n    <!-- REPLY -->\n    <ng-container *ngIf=\"context.item.action == 'reply'\">\n      <textarea ngxTrumbowygEditor [name]=\"reply\" [(ngModel)]=\"reply\"></textarea>\n    </ng-container>\n\n  </div>\n\n  <!-- ACTIONS MODAL -->\n  <div class=\"actions\">\n\n    <!-- BUTTON DENY -->\n    <button *ngIf=\"context.item.action == 'search'\" class=\"ui button blue\" (click)=\"modal.deny(context.item)\">\n      <span >{{ 'TICKETS.CANCEL.FILTER' | translate }}</span>\n    </button>\n    <button class=\"ui button\" (click)=\"modal.deny(context.item)\">\n      <span *ngIf=\"context.item.action == 'change_priority'\">\n        <i class=\"remove icon\"></i> {{ 'APP.CLOSE' | translate }}</span>\n      <span *ngIf=\"context.item.action == 'change_step'\">\n        <i class=\"remove icon\"></i> {{ 'APP.CLOSE' | translate }}</span>\n      <span *ngIf=\"context.item.action == 'open'\">\n        <i class=\"remove icon\"></i> {{ 'APP.NO' | translate }}</span>\n      <span *ngIf=\"context.item.action == 'spam'\">\n        <i class=\"remove icon\"></i> {{ 'APP.NO' | translate }}</span>\n    </button>\n\n    <!-- BUTTON APPROVE -->\n    <button class=\"ui red button\" (click)=\"modal.approve(context.item)\" autofocus>\n      <span *ngIf=\"context.item.action == 'change_priority'\" class=\"light\"><i class=\"checkmark icon\"></i> {{ 'APP.SAVE' | translate }}</span>\n      <span *ngIf=\"context.item.action == 'change_step'\" class=\"light\"><i class=\"checkmark icon\"></i> {{ 'APP.SAVE' | translate }}</span>\n      <span *ngIf=\"context.item.action == 'open'\" class=\"light\"><i class=\"checkmark icon\"></i> {{ 'APP.YES' | translate }}</span>\n      <span *ngIf=\"context.item.action == 'spam'\" class=\"light\"><i class=\"checkmark icon\"></i> {{ 'APP.YES' | translate }}</span>\n    </button>\n  </div>\n</ng-template>\n\n\n\n<!--\n|‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒\n| MODAL DELETE\n|‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒\n!-->\n<ng-template let-context let-modal=\"modal\" #modalTemplateDelete>\n  <div class=\"header headerModal\">\n    <i class=\"trash icon\"></i> {{ context.item.header | translate }}</div>\n  <div class=\"content\">\n    <h3 class=\"dark\">#{{ context.item.ticket.number }} - {{ context.item.ticket.subject }}<br>\n      <small>{{ context.item.ticket.creator_name }} ({{ context.item.ticket.creator_email }})</small></h3>\n  </div>\n  <div class=\"actions\">\n    <button class=\"ui button\" (click)=\"modal.deny()\">\n      <i class=\"remove icon\"></i> {{ 'APP.NO' | translate }}</button>\n    <button class=\"ui red button\" (click)=\"modal.approve(context.item)\" autofocus>\n      <span class=\"light\">\n        <i class=\"checkmark icon\"></i> {{ 'APP.YES' | translate }}</span>\n    </button>\n  </div>\n</ng-template>\n\n\n<ng-template #loading>\n  <div class=\"ui active inline loader\"></div>\n</ng-template>\n","styles":[".title_box{color:#546e7a;font-size:.7em;text-transform:uppercase}.dateMessage{position:absolute!important;right:30px!important;margin-top:-28px}dropzone>.dropzone .dz-wrapper .dz-message{margin:0!important}"]}]}],"members":{"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":36,"character":3}}]}],"ticket":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":37,"character":3}}]}],"requesters":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":38,"character":3}}]}],"attendants":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":39,"character":3}}]}],"folders":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":40,"character":3}}]}],"modalTemplateTicket":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":42,"character":3},"arguments":["modalTemplateTicket",{"static":true}]}]}],"modalTemplateDelete":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":45,"character":3},"arguments":["modalTemplateDelete",{"static":true}]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ng2-semantic-ui","name":"SuiModalService","line":92,"character":26},{"__symbolic":"reference","module":"ng2-semantic-ui","name":"SuiLocalizationService","line":93,"character":32},{"__symbolic":"reference","module":"@angular/fire/firestore","name":"AngularFirestore","line":94,"character":26},{"__symbolic":"reference","module":"@vqs/vqs-app","name":"VqsAppService","line":95,"character":27},{"__symbolic":"reference","module":"@vqs/vqs-app","name":"VqsAuthService","line":96,"character":28},{"__symbolic":"reference","module":"@vqs/vqs-app","name":"VqsUploadService","line":97,"character":30},{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":98,"character":22}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}],"getMessages":[{"__symbolic":"method"}],"changePriority":[{"__symbolic":"method"}],"changeRequester":[{"__symbolic":"method"}],"changeAttendant":[{"__symbolic":"method"}],"changeFolder":[{"__symbolic":"method"}],"changeUnRead":[{"__symbolic":"method"}],"closeTicket":[{"__symbolic":"method"}],"reOpenTicket":[{"__symbolic":"method"}],"spamTicket":[{"__symbolic":"method"}],"deleteTicket":[{"__symbolic":"method"}],"forwardTicket":[{"__symbolic":"method"}],"getSafeUrl":[{"__symbolic":"method"}],"replyTicket":[{"__symbolic":"method"}],"notesTicket":[{"__symbolic":"method"}],"sendReply":[{"__symbolic":"method"}],"sendReply2":[{"__symbolic":"method"}],"sendForward":[{"__symbolic":"method"}],"hideAll":[{"__symbolic":"method"}],"saveNote":[{"__symbolic":"method"}],"onUploadError":[{"__symbolic":"method"}],"onUploadSuccess":[{"__symbolic":"method"}],"deleteFile":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":20,"character":1},"arguments":[{"selector":"vqs-tickets-new","template":"<div style=\"padding:20px\">\n  <form class=\"ui form\">\n\n    <h2>{{ 'TICKETS.TITLE.MODAL.OPEN' | translate }}</h2>\n    <input type=\"hidden\" name=\"message.id\" [(ngModel)]=\"message.id\">\n    <input type=\"hidden\" name=\"message.attendant\" [(ngModel)]=\"message.attendant\">\n    <div class=\"ui stackable three column grid\">\n\n      <div class=\"column\" *ngIf=\"(message.requesters) && (message.requesters.length > 0)\">\n        <input type=\"hidden\" name=\"message.email\" [(ngModel)]=\"message.email\">\n        <ng-template let-option #optionRequestersTemplate>\n          {{ option.name | translate }}\n        </ng-template>\n        <sui-select\n          name=\"message.requesters\"\n          class=\"floating labeled icon button\"\n          icon=\"address book\"\n          [options]=\"message.requesters\"\n          labelField=\"name\"\n          valueField=\"id\"\n          [optionTemplate]=\"optionRequestersTemplate\"\n          [(ngModel)]=\"message.requester\"\n          [isSearchable]=\"true\"\n          placeholder=\"Selecione o Destinatário\"\n          (selectedOptionChange)=\"changeRequester(message.requester)\"\n          #templatedRequester>\n          <sui-select-option *ngFor=\"let o of templatedRequester.filteredOptions\" [value]=\"o\"></sui-select-option>\n        </sui-select>\n      </div>\n\n      <div class=\"column\" *ngIf=\"(message.departaments) && (message.departaments.length > 0)\">\n        <input type=\"hidden\" name=\"message.email\" [(ngModel)]=\"message.email\">\n        <ng-template let-option #optionDepartamentsTemplate>\n          {{ option.name | translate }}\n        </ng-template>\n        <sui-select\n          name=\"message.departaments\"\n          class=\"floating labeled icon button\"\n          icon=\"address book\"\n          [options]=\"message.departaments\"\n          labelField=\"name\"\n          valueField=\"id\"\n          [optionTemplate]=\"optionDepartamentsTemplate\"\n          [(ngModel)]=\"message.departament\"\n          [isSearchable]=\"true\"\n          placeholder=\"Selecione o Destinatário\"\n          (selectedOptionChange)=\"changeDepartaments(message.departament)\"\n          #templatedDepartaments>\n          <sui-select-option *ngFor=\"let o of templatedDepartaments.filteredOptions\" [value]=\"o\"></sui-select-option>\n        </sui-select>\n      </div>\n\n      <div class=\"column\" *ngIf=\"((!message.requesters) || (message.requesters.length == 0)) && ((!message.departaments) || (message.departaments.length == 0))\">\n        <input type=\"hidden\" name=\"message.requester\" [(ngModel)]=\"message.requester\">\n        <div class=\"ui labeled fluid input\">\n          <div class=\"ui label\">{{ 'TICKETS.TO' | translate }}:</div>\n            <input type=\"email\" name=\"message.email\" [(ngModel)]=\"message.email\" [disabled]=\"message.requester\">\n        </div>\n      </div>\n\n\n      <div class=\"column\" *ngIf=\"!config.ccDisabled\">\n        <div class=\"ui labeled fluid input\">\n          <div class=\"ui label\">{{ 'TICKETS.CC' | translate }}:</div>\n            <input type=\"email\" name=\"message.email_cc\" [(ngModel)]=\"message.email_cc\">\n        </div>\n      </div>\n      <div class=\"column\" *ngIf=\"!config.ccoDisabled\">\n        <div class=\"ui labeled fluid input\">\n          <div class=\"ui label\">{{ 'TICKETS.CCO' | translate }}:</div>\n          <input type=\"email\" name=\"message.email_cco\" [(ngModel)]=\"message.email_cco\">\n        </div>\n      </div>\n    </div>\n\n    <div class=\"ui grid\" style=\"margin-top:-15px;\">\n      <div class=\"nine wide column\">\n        <div class=\"ui labeled fluid input\">\n          <div class=\"ui label\">{{ 'TICKETS.SUBJECT' | translate }}:</div>\n          <input type=\"text\" name=\"message.subject\" [(ngModel)]=\"message.subject\">\n        </div>\n      </div>\n      <div class=\"seven wide column\">\n        <ng-container *ngIf=\"!config.attendantsDisabled\">\n            <ng-template let-option #optionAttendantsTemplate>\n                {{ option.name | translate }}\n              </ng-template>\n              <sui-select\n                class=\"floating labeled icon button\"\n                icon=\"user\"\n                [options]=\"attendants\"\n                labelField=\"name\"\n                valueField=\"id\"\n                [optionTemplate]=\"optionAttendantsTemplate\"\n                name=\"message.attendant\"\n                [(ngModel)]=\"message.attendant\"\n                [isSearchable]=\"true\"\n                [isDisabled]=\"vqsAuthService.profile !== 200\"\n                placeholder=\"{{ 'TICKETS.ATTENDANT' | translate }}\"\n                #templatedAttendant>\n                <sui-select-option *ngFor=\"let o of templatedAttendant.filteredOptions\" [value]=\"o\"></sui-select-option>\n              </sui-select>\n        </ng-container>\n\n        <ng-container *ngIf=\"!config.optionDueDisabled\">\n            <ng-template let-option #optionDueTemplate>\n                {{ option.name | translate }}\n              </ng-template>\n              <sui-select class=\"floating labeled icon button\" icon=\"clock\"\n                [options]=\"dues_timestamp\" labelField=\"name\" valueField=\"id\" name=\"message.due_timestamp\" [(ngModel)]=\"message.due_timestamp\"\n                [optionTemplate]=\"optionDueTemplate\" [isSearchable]=\"true\" #templatedDue>\n                <sui-select-option *ngFor=\"let o of templatedDue.filteredOptions\" [value]=\"o\"></sui-select-option>\n              </sui-select>\n        </ng-container>\n\n        <ng-container *ngIf=\"!config.optionPrioritiesDisabled\">\n            <ng-template let-option #optionPrioritiesTemplate>\n                {{ option.name | translate }}\n              </ng-template>\n              <sui-select class=\"floating labeled icon button\" icon=\"flag\"\n                [options]=\"priorities\" labelField=\"name\" valueField=\"id\" name=\"message.priority\" [(ngModel)]=\"message.priority\"\n                [optionTemplate]=\"optionPrioritiesTemplate\" [isSearchable]=\"true\" #templatedPriorities>\n                <sui-select-option *ngFor=\"let o of templatedPriorities.filteredOptions\" [value]=\"o\"></sui-select-option>\n              </sui-select>\n        </ng-container>\n\n      </div>\n    </div>\n\n\n    <div class=\"ui grid\" style=\"margin-top:-15px;\">\n      <div class=\"eleven wide column \">\n          <textarea ngxTrumbowygEditor name=\"message.message\" [(ngModel)]=\"message.message\"></textarea>\n      </div>\n      <div class=\"five wide column mTop10\">\n        <div class=\"dropzoneSize\">\n          <dropzone [message]=\"'Anexar Arquivos'\" (error)=\"onUploadError($event)\" (success)=\"onUploadSuccess($event, message.id)\"></dropzone>\n        </div>\n\n        <ng-container *ngIf=\"Attachments_Items | async; let Attachments_Items; else loading\">\n            <div class=\"ui middle aligned divided list\">\n              <div class=\"item\" *ngFor=\"let file of Attachments_Items\">\n                <div class=\"right floated content\">\n                  <button class=\"ui button\" (click)=\"deleteFile(file, message.id)\"><i class=\"icon trash\"></i> {{ 'APP.DELETE' | translate }}</button>\n                </div>\n                <img *ngIf=\"(file.file_extension == 'doc') || (file.file_extension == 'docx')\" class=\"ui avatar image\" src=\"assets/images/files/doc.png\">\n                <img *ngIf=\"(file.file_extension == 'jpg') || (file.file_extension == 'jpeg')\" class=\"ui avatar image\" src=\"assets/images/files/jpg.png\">\n                <img *ngIf=\"(file.file_extension == 'pdf')\" class=\"ui avatar image\" src=\"assets/images/files/pdf.png\">\n                <img *ngIf=\"(file.file_extension == 'png')\" class=\"ui avatar image\" src=\"assets/images/files/png.png\">\n                <img *ngIf=\"(file.file_extension == 'ppt') || (file.file_extension == 'pptx')\" class=\"ui avatar image\" src=\"assets/images/files/ppt.png\">\n                <img *ngIf=\"(file.file_extension == 'txt') || (file.file_extension == 'csv')\" class=\"ui avatar image\" src=\"assets/images/files/txt.png\">\n                <img *ngIf=\"(file.file_extension == 'xls') || (file.file_extension == 'xlsx')\" class=\"ui avatar image\" src=\"assets/images/files/xls.png\">\n                <img *ngIf=\"(file.file_extension == 'zip') || (file.file_extension == 'rar')\" class=\"ui avatar image\" src=\"assets/images/files/zip.png\">\n                <img *ngIf=\"(file.file_extension !== 'doc') &&\n                (file.file_extension !== 'doc') &&\n                (file.file_extension !== 'docx') &&\n                (file.file_extension !== 'jpg') &&\n                (file.file_extension !== 'jpeg') &&\n                (file.file_extension !== 'pdf') &&\n                (file.file_extension !== 'png') &&\n                (file.file_extension !== 'ppt') &&\n                (file.file_extension !== 'pptx') &&\n                (file.file_extension !== 'txt') &&\n                (file.file_extension !== 'csv') &&\n                (file.file_extension !== 'xls') &&\n                (file.file_extension !== 'xlsx') &&\n                (file.file_extension !== 'zip')\" class=\"ui avatar image\" src=\"assets/images/files/other.png\">\n                <div class=\"content\">\n                  {{ file.file_name }}\n                </div>\n              </div>\n            </div>\n          </ng-container>\n      </div>\n    </div>\n\n  </form>\n\n  <button class=\"ui button uppercase\" (click)=\"deny(message)\">\n    <i class=\"remove icon\"></i> {{ 'APP.CANCEL' | translate }}\n  </button>\n\n  <button *ngIf=\"!sending\" class=\"ui red button uppercase\" (click)=\"approve(message)\" autofocus\n    [disabled]=\"(!message.email) || (!message.subject) || (!message.message)\">\n    <span class=\"light\"><i class=\"checkmark icon\"></i> {{ 'TICKETS.SEND' | translate }}</span>\n  </button>\n  <button *ngIf=\"sending\" type=\"button\" class=\"ui red button loading\">&nbsp;</button>\n\n</div>\n\n<ng-template #loading>\n  <div class=\"ui active inline loader\"></div>\n</ng-template>\n","styles":["dropzone>.dropzone .dz-wrapper .dz-message{margin:0!important}"]}]}],"members":{"config":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"modal":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":28,"character":3}}]}],"message":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":29,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/fire/firestore","name":"AngularFirestore","line":63,"character":26},{"__symbolic":"reference","module":"@vqs/vqs-app","name":"VqsAuthService","line":64,"character":27},{"__symbolic":"reference","module":"@vqs/vqs-app","name":"VqsAppService","line":65,"character":27},{"__symbolic":"reference","module":"@vqs/vqs-app","name":"VqsUploadService","line":66,"character":30},{"__symbolic":"reference","module":"@angular/fire/functions","name":"AngularFireFunctions","line":67,"character":19}]}],"ngOnInit":[{"__symbolic":"method"}],"deny":[{"__symbolic":"method"}],"approve":[{"__symbolic":"method"}],"sendTicket":[{"__symbolic":"method"}],"changeRequester":[{"__symbolic":"method"}],"changeDepartaments":[{"__symbolic":"method"}],"onUploadError":[{"__symbolic":"method"}],"onUploadSuccess":[{"__symbolic":"method"}],"deleteFile":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":3,"character":1},"arguments":[{"name":"safeHtml"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DomSanitizer","line":5,"character":33}]}],"transform":[{"__symbolic":"method"}]}},"ɵe":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":7,"character":1},"arguments":[{"name":"groupByDate"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"VqsTicketsModule":"./lib/vqs-tickets.module","ɵa":"./lib/vqs-tickets/vqs-tickets/vqs-tickets.component","ɵb":"./lib/vqs-tickets/vqs-tickets-messages/vqs-tickets-messages.component","ɵc":"./lib/vqs-tickets/vqs-tickets-new/vqs-tickets-new.component","ɵd":"./lib/vqs-tickets/pipes/safeHtml.pipe","ɵe":"./lib/vqs-tickets/pipes/groupByDate.pipe"},"importAs":"@vqs/vqs-tickets"}