{"version":3,"sources":["webpack:///$_lazy_route_resources|lazy|groupOptions: {}|namespace object","webpack:///src/app/services/base.service.ts","webpack:///src/app/services/order.service.ts","webpack:///src/app/components/search-type-edict/search-type-edict.component.html","webpack:///src/app/components/search-type-edict/search-type-edict.component.ts","webpack:///src/app/components/main-type/main-type.component.ts","webpack:///src/app/components/main-type/main-type.component.html","webpack:///src/app/services/user.service.ts","webpack:///src/app/components/main-home/main-home.component.html","webpack:///src/app/components/main-home/main-home.component.ts","webpack:///src/app/services/navigate.service.ts","webpack:///src/app/components/type-order-table/type-order-table.component.html","webpack:///src/app/components/type-order-table/type-order-table.component.ts","webpack:///src/app/components/type-order/type-order.component.html","webpack:///src/app/components/type-order/type-order.component.ts","webpack:///src/app/services/statistics.service.ts","webpack:///src/app/services/time.service.ts","webpack:///src/app/services/ocr.service.ts","webpack:///src/app/components/ocr-control/ocr-control.component.ts","webpack:///src/app/components/ocr-control/ocr-control.component.html","webpack:///src/app/components/tiny-editor/tiny-editor.component.ts","webpack:///src/app/components/type-control/type-control.component.html","webpack:///src/app/components/type-control/type-control.component.ts","webpack:///src/app/components/type-order-item/type-order-item.component.html","webpack:///src/app/components/type-order-item/type-order-item.component.ts","webpack:///src/app/components/search-edict/search-edict.component.html","webpack:///src/app/components/search-edict/search-edict.component.ts","webpack:///src/app/components/order-history/order-history.component.html","webpack:///src/app/components/order-history/order-history.component.ts","webpack:///src/app/components/order-table/order-table.component.html","webpack:///src/app/components/order-table/order-table.component.ts","webpack:///src/app/components/order/order.component.html","webpack:///src/app/components/order/order.component.ts","webpack:///src/app/components/order-document-history/order-document-history.component.html","webpack:///src/app/components/order-document-history/order-document-history.component.ts","webpack:///src/app/components/order-item/order-item.component.html","webpack:///src/app/components/order-item/order-item.component.ts","webpack:///src/app/components/search-validate-edict/search-validate-edict.component.html","webpack:///src/app/components/search-validate-edict/search-validate-edict.component.ts","webpack:///src/app/components/validate-order-table/validate-order-table.component.html","webpack:///src/app/components/validate-order-table/validate-order-table.component.ts","webpack:///src/app/components/validate-order/validate-order.component.html","webpack:///src/app/components/validate-order/validate-order.component.ts","webpack:///src/app/components/main-report/main-report.component.ts","webpack:///src/app/components/main-report/main-report.component.html","webpack:///src/app/datasources/products-data-source.ts","webpack:///src/app/services/products.service.ts","webpack:///src/app/components/admin-products/admin-products.component.html","webpack:///src/app/components/admin-products/admin-products.component.ts","webpack:///src/app/models/product-field.model.ts","webpack:///src/app/components/product-detail/product-detail.component.html","webpack:///src/app/components/product-detail/product-detail.component.ts","webpack:///src/app/services/user-admin.service.ts","webpack:///src/app/services/roles.service.ts","webpack:///src/app/services/branches.service.ts","webpack:///src/app/components/admin-user-detail/admin-user-detail.component.html","webpack:///src/app/components/admin-user-detail/admin-user-detail.component.ts","webpack:///src/app/datasources/user-admin-data-source.ts","webpack:///src/app/models/usr-info.model.ts","webpack:///src/app/components/admin-user-create/admin-user-create.component.html","webpack:///src/app/components/admin-user-create/admin-user-create.component.ts","webpack:///src/app/components/admin-users/admin-users.component.html","webpack:///src/app/components/admin-users/admin-users.component.ts","webpack:///src/app/datasources/branches-data-source.ts","webpack:///src/app/components/admin-branches/admin-branches.component.html","webpack:///src/app/components/admin-branches/admin-branches.component.ts","webpack:///src/app/services/server-routes.service.ts","webpack:///src/app/components/admin-roles-detail/admin-roles-detail.component.html","webpack:///src/app/components/admin-roles-detail/admin-roles-detail.component.ts","webpack:///src/app/datasources/roles-data-source.ts","webpack:///src/app/components/admin-roles/admin-roles.component.html","webpack:///src/app/components/admin-roles/admin-roles.component.ts","webpack:///src/app/components/product-new/product-new.component.html","webpack:///src/app/components/product-new/product-new.component.ts","webpack:///src/app/services/editions.service.ts","webpack:///src/app/components/main-publish/main-publish.component.html","webpack:///src/app/components/main-publish/main-publish.component.ts","webpack:///src/app/services/publish.service.ts","webpack:///src/app/components/publish-edition/publish-edition.component.html","webpack:///src/app/components/publish-edition/publish-edition.component.ts","webpack:///src/app/services/auth-guard.service.ts","webpack:///src/app/components/login/login.component.html","webpack:///src/app/components/login/login.component.ts","webpack:///src/app/components/forbidden/forbidden.component.ts","webpack:///src/app/components/forbidden/forbidden.component.html","webpack:///src/app/components/no-access/no-access.component.ts","webpack:///src/app/components/no-access/no-access.component.html","webpack:///src/app/components/not-found/not-found.component.ts","webpack:///src/app/components/not-found/not-found.component.html","webpack:///src/app/components/logout/logout.component.ts","webpack:///src/app/components/logout/logout.component.html","webpack:///src/app/datasources/editions-data-source.ts","webpack:///src/app/components/admin-new-edition/admin-new-edition.component.html","webpack:///src/app/components/admin-new-edition/admin-new-edition.component.ts","webpack:///src/app/components/admin-editions/admin-editions.component.html","webpack:///src/app/components/admin-editions/admin-editions.component.ts","webpack:///src/app/components/admin-editions/confirm-delete-dialog.html","webpack:///src/app/services/cert.service.ts","webpack:///src/app/components/cert-index/cert-index.component.html","webpack:///src/app/components/cert-index/cert-index.component.ts","webpack:///src/app/components/cert-detail/cert-detail.component.html","webpack:///src/app/modules/app-routing.module.ts","webpack:///src/app/components/cert-detail/cert-detail.component.ts","webpack:///src/app/modules/material.module.ts","webpack:///src/app/animations/fade-in.animation.ts","webpack:///src/app/animations/slide.animation.ts","webpack:///src/app/components/edition-statistics/edition-statistics.component.html","webpack:///src/app/components/edition-statistics/edition-statistics.component.ts","webpack:///src/app/components/main-toolbar/main-toolbar.component.html","webpack:///src/app/components/main-toolbar/main-toolbar.component.ts","webpack:///src/app/app.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/app.module.ts","webpack:///src/main.ts","webpack:///node_modules/moment/locale|sync|/^/.*$"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","id","module","exports","BaseService","throwErrorSource","Subject","throwErrorSource$","this","asObservable","hostDomain","error","description","next","OrderService","httpClient","baseService","historySource","historySource$","topic","get","pipe","catchError","err","handleError","line","idx","orderDocument","post","orderId","index","orderDocumentData","lapse","key","value","comment","SearchTypeEdictComponent","orderService","router","autocompleteCtrl","filteredOrders","valueChanges","startWith","debounceTime","distinctUntilChanged","switchMap","val","autocompleteType","evt","navigateByUrl","option","itemSelected","MainTypeComponent","UserService","userSource","userSource$","subscribe","isLoggedIn","user","refreshStatus","navigate","menuRoutes","routes","filter","route","url","indexOf","MainHomeComponent","userService","NavigateService","location","back","TypeOrderTableComponent","displayedColumns","TypeOrderComponent","activatedRoute","snapshot","paramMap","getType","r","order","StatisticsService","statisticsSource","statisticsSource$","editionId","TimeService","workDateSource$","Observable","timer","v","OcrService","formData","OcrControlComponent","ocrService","ocrCtrl","event","fileList","target","files","length","isCopied","file","FormData","append","name","processOcr","success","setValue","ocrText","emitEvent","fileChange","TinyEditorComponent","editorContentChange","status","_disabled","editor","getBody","setAttribute","_isActive","tinymce","remove","init","branding","debounce","menubar","selector","language","language_url","skin_url","content_css","plugins","toolbar","autoresize_bottom_margin","autoresize_max_height","elementpath","paste_as_text","setup","on","disabled","content","getContent","emit","TypeControlComponent","debouncer","uuid","htmlChange","map","documentData","console","log","skip","isSaved","isSaving","saveDocumentData","inputCtrl","valueChange","disable","enable","subscription","add","setTimeout","TypeOrderItemComponent","statisticsService","timeService","PluginManager","forEach","ui","registry","addToggleButton","tooltip","text","toUpperCase","onAction","_","execCommand","onSetup","api","formatter","formatChanged","state","setActive","activeIndex","itemType","timeSubscription","workDate","isPastItem","items","publishDates","some","documents","data","a","interval","unsubscribe","document","saveDocument","refreshStatistics","cancelSaveDocument","SearchEdictComponent","autocompleteSearch","OrderHistoryComponent","getHistory","history","OrderTableComponent","OrderComponent","getSearch","OrderDocumentHistoryComponent","historyDocument","OrderItemComponent","loading","itemSearch","SearchValidateEdictComponent","autocompleteValidate","ValidateOrderTableComponent","ValidateOrderComponent","initOrder","getValidate","validate","internalStatus","refreshHistory","reason","invalidate","MainReportComponent","$event","selectedDate","selectedStartDate","selectedEndDate","certSelectedStartDate","certSelectedEndDate","onChange","onStartDateChange","onEndDateChange","onCertStartDateChange","onCertEndDateChange","ProductsDataSource","productsService","productsSubject","BehaviorSubject","loadingSubject","loading$","collectionViewer","complete","page","limit","sort","viewOnlyActive","getProducts","count","products","finalize","p","ProductsService","params","product","productCode","AdminProductsComponent","selection","dataSource","loadProducts","sortChange","paginator","pageIndex","tap","pageSize","direction","active","changeOnlyActive","ProductField","type","sortId","printTitle","ProductDetailComponent","productService","fb","createForm","productForm","group","productDescription","headerImage","legalReference","isPrintable","fields","array","reset","setFields","setControl","f","formModel","fieldsDeepCopy","Object","assign","getProduct","rebuildForm","push","removeAt","saveProduct","prepareSaveProduct","onSubmit","addField","revert","UserAdminService","email","roles","branches","userName","city","office","RolesService","roleName","delete","BranchesService","AdminUserDetailComponent","userAdminService","rolesService","branchesService","dialogRef","close","userInfo","getRoles","setupRoles","getBranches","setupBranches","rolesResp","role","userRole","checked","branchesResp","branch","userBranch","activeBranches","q","activeRoles","updateUserInfo","saveUserInfo","onNoClick","saveChanges","UserAdminDataSource","useradminService","usersSubject","getUsers","users","UsrInfoC","updated","updatedBy","AdminUserCreateComponent","saveUser","AdminUsersComponent","dialog","loadUsers","open","width","autoFocus","afterClosed","result","BranchesDataSource","branchesSubject","deleteBranches","AdminBranchesComponent","loadBranches","ServerRoutesService","routeIds","AdminRolesDetailComponent","routesService","roleInfo","getRoutes","setupRoutes","routesResp","roleRoutes","routeName","activeRoutes","routeId","saveRoutes","RolesDataSource","rolesSubject","AdminRolesComponent","loadRoles","toggleRoleStatus","ProductNewComponent","EditionsService","startDate","queryDate","endDate","closeDate","MainPublishComponent","editionService","exist","getEditionByDate","toDate","edition","PublishService","stopPropagation","PublishEditionComponent","publishService","omitInProgressDocuments","refresh","getEdition","getPublish","getPublishStatus","hasProducts","totalDocuments","quantity","reduce","b","selected","isAllSelected","clear","row","select","updateHref","d","selectedProducts","query","fromObject","draftHref","toString","definitiveHref","AuthGuardService","routeConfig","path","redirectUrl","LoginComponent","getUser","redirect","ForbiddenComponent","navigateService","NoAccessComponent","NotFoundComponent","LogoutComponent","EditionsDataSource","editionsService","editionsSubject","getEditionsPag","editions","AdminNewEditionComponent","snackBar","minutes","hours","i","validateDates","hour","selectedHour","minute","selectedMinute","createEdition","cancel","onCloseDateChange","saveEdition","AdminEditionsComponent","loadEditions","ConfirmDeleteDialogComponent","deleteEdition","CertService","request","publishDate","responseType","Blob","reader","FileReader","onloadend","customError","readAsText","errMsg","CertIndexComponent","certService","searchForm","term","searchEdicts","searchResults","doSearch","sendForm","component","canActivate","CertDetailComponent","downloadingPDF","showCertPDFIframe","certEmailSent","sendingEmail","getDetail","detailResponse","downloadCert","res","size","window","URL","createObjectURL","embedpdf","nativeElement","src","style","height","pdfSectionPosition","getBoundingClientRect","top","scrollTo","behavior","downloadCertError","sendEmailCert","sendEmailCertError","errorMessage","AppRoutingModule","relativeLinkResolution","MaterialModule","fadeInAnimation","opacity","slideAnimation","position","transform","optional","EditionStatisticsComponent","userSubscription","ngOnInit","showStatistics","statisticsHeader","editionHeader","getEditionHeader","eh","actual","getStatisticsHeader","changeValue","statistics","previous","date","format","clone","getStatistics","subtract","before","now","befItem","nowItem","statusId","totalDelay","difference","Math","abs","delta","ii","tt","takeUntil","MainToolbarComponent","msg","outlet","activatedRouteData","animation","AppComponent","title","AppModule","provide","useValue","useClass","deps","bootstrapModule","catch","webpackContext","webpackContextResolve","__webpack_require__","o"],"mappings":"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","file":"x","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 98255;\nmodule.exports = webpackEmptyAsyncContext;","import { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { throwError, Subject, Observable, BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class BaseService {\r\n private throwErrorSource = new Subject( );\r\n throwErrorSource$ = this.throwErrorSource.asObservable();\r\n hostDomain = '';\r\n constructor() {\r\n }\r\n handleError(error: HttpErrorResponse, description?: string) {\r\n // if (error.error instanceof ErrorEvent) {\r\n // // A client-side or network error occurred. Handle it accordingly.\r\n // console.error('An error occurred:', error.error.message);\r\n // } else {\r\n // // The backend returned an unsuccessful response code.\r\n // // The response body may contain clues as to what went wrong,\r\n // console.error(\r\n // `Backend returned code ${error.status}, ` + `body was: ${error.error}`\r\n // );\r\n // }\r\n // return an observable with a user-facing error message\r\n this.throwErrorSource.next(\r\n `Error Comunicación: ${description} ' intente de nuevo más tarde o comunique el error a el área de TI.`\r\n );\r\n return [];\r\n }\r\n customError(description?: string) {\r\n this.throwErrorSource.next(\r\n `Error: ${description}`\r\n );\r\n return [];\r\n }\r\n}\r\n","import { OrderHistory } from './../models/order-history.model';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { Order } from '../models/order.model';\r\nimport { BaseService } from './base.service';\r\nimport { OrderItemHeader } from '../models/order-item-header.model';\r\nimport { OrderDocument } from '../models/order-document.model';\r\nimport { OrderDocumentData } from '../models/order-document-data.model';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { OrderDocumentHistory } from '../models/order-document-history.model';\r\n\r\n@Injectable()\r\nexport class OrderService {\r\n private historySource = new Subject();\r\n historySource$ = this.historySource.asObservable();\r\n constructor(private httpClient: HttpClient,\r\n private baseService: BaseService\r\n ) { }\r\n autocompleteType(topic: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/type/ac/${topic}`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando las órdenes');\r\n return [];\r\n })\r\n );\r\n }\r\n getType(id: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/type/${id}`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Obteniendo la orden ${id}`);\r\n return [];\r\n })\r\n );\r\n }\r\n itemType(id: string, line: number): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/type/${id}/${line}`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Obteniendo la orden ${id}, item ${line}`);\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n autocompleteValidate(topic: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/validate/ac/${topic}`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando las órdenes');\r\n return [];\r\n })\r\n );\r\n }\r\n getValidate(id: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/validate/${id}`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Obteniendo la orden ${id}`);\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n autocompleteSearch(topic: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/search/ac/${topic}`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando las órdenes');\r\n return [];\r\n })\r\n );\r\n }\r\n getSearch(id: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/search/${id}`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Obteniendo la orden ${id}`);\r\n return [];\r\n })\r\n );\r\n }\r\n itemSearch(id: string, line: number): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/search/${id}/${line}`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Obteniendo la orden ${id}, item ${line}`);\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n refreshHistory() {\r\n this.historySource.next();\r\n }\r\n\r\n history(id: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/history/${id}`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Obteniendo la orden ${id}`);\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n historyDocument(id: string, line: number, idx: number): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/document/history/${id}-${line}-${idx}`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Obteniendo el historial del documento ${id}-${line}-${idx}`);\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n saveDocument(orderDocument: OrderDocument): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/document`;\r\n return this.httpClient.post(url, orderDocument).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Guardando el edicto ${orderDocument.orderId}-${orderDocument.line}-${orderDocument.index}`);\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n cancelSaveDocument(orderDocument: OrderDocument): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/document/cancel`;\r\n return this.httpClient.post(url, orderDocument).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Corregir digitación ${orderDocument.orderId}-${orderDocument.line}-${orderDocument.index}`);\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n saveDocumentData(orderDocument: OrderDocument, orderDocumentData: OrderDocumentData): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/document/data`;\r\n return this.httpClient.post(url, {\r\n lapse: orderDocument.lapse,\r\n orderId: orderDocument.orderId,\r\n line: orderDocument.line,\r\n index: orderDocument.index,\r\n key: orderDocumentData.key,\r\n value: orderDocumentData.value\r\n }).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Guardado automático.');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n validate(id: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/validate`;\r\n return this.httpClient.post(url, {\r\n id: id\r\n }).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Validando orden.');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n invalidate(id: string, comment: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/order/invalidate`;\r\n return this.httpClient.post(url, {\r\n id: id,\r\n comment: comment\r\n }).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Invalidando orden.');\r\n return [];\r\n })\r\n );\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
Digitar Pedido
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n description {{ order.id }}\r\n {{ order.clientName }}\r\n {{ order.internalStatus }} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith, debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\r\n\r\nimport { Order } from '../../models/order.model';\r\nimport { OrderService } from '../../services/order.service';\r\n\r\n@Component({\r\n selector: 'app-search-type-edict',\r\n templateUrl: './search-type-edict.component.html',\r\n styleUrls: ['./search-type-edict.component.scss']\r\n})\r\nexport class SearchTypeEdictComponent {\r\n autocompleteCtrl: FormControl;\r\n filteredOrders: Observable;\r\n constructor(private orderService: OrderService,\r\n private router: Router\r\n ) {\r\n this.autocompleteCtrl = new FormControl();\r\n this.filteredOrders = this.autocompleteCtrl.valueChanges\r\n .pipe(\r\n startWith(null),\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n switchMap(val => {\r\n if (val) {\r\n return orderService.autocompleteType(val);\r\n } else {\r\n return [];\r\n }\r\n })\r\n );\r\n }\r\n\r\n itemSelected(evt: MatAutocompleteSelectedEvent) {\r\n this.router.navigateByUrl(`digitar/${evt.option.value}`);\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-main-type',\r\n templateUrl: './main-type.component.html',\r\n styleUrls: ['./main-type.component.scss']\r\n})\r\nexport class MainTypeComponent {\r\n\r\n constructor() { }\r\n\r\n}\r\n","\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { catchError, delay, tap } from 'rxjs/operators';\r\n\r\nimport { User } from '../models/user.model';\r\nimport { BaseService } from './base.service';\r\nimport { Router } from '@angular/router';\r\nimport { ServerRoute } from '../models/server-route.model';\r\n\r\n@Injectable()\r\nexport class UserService {\r\n private userSource = new Subject();\r\n userSource$ = this.userSource.asObservable();\r\n constructor(\r\n private httpClient: HttpClient,\r\n private baseService: BaseService,\r\n private router: Router\r\n ) {}\r\n\r\n isLoggedIn: boolean;\r\n redirectUrl: string;\r\n user: User;\r\n menuRoutes: ServerRoute[];\r\n logout(): void {\r\n const url = `${this.baseService.hostDomain}/api/logout`;\r\n this.httpClient\r\n .post(url, null)\r\n .pipe(\r\n catchError(err => {\r\n this.baseService.handleError(\r\n err,\r\n 'Obteniendo información de usuario.'\r\n );\r\n return [];\r\n })\r\n )\r\n .subscribe(() => {\r\n this.isLoggedIn = false;\r\n this.user = null;\r\n this.refreshStatus();\r\n this.router.navigate(['/salir']);\r\n });\r\n }\r\n\r\n getUser(): Observable {\r\n const url = `${this.baseService.hostDomain}/api/user`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Obteniendo información de usuario.');\r\n return [];\r\n })\r\n );\r\n }\r\n refreshStatus() {\r\n if (this.user) {\r\n this.menuRoutes = this.user.routes\r\n .filter(route => route.url.indexOf(':') === -1)\r\n .filter(route => route.url.indexOf('nuevo') === -1)\r\n .filter(route => route.url.indexOf('.*') === -1);\r\n } else {\r\n this.menuRoutes = null;\r\n }\r\n this.userSource.next();\r\n }\r\n}\r\n","\r\n","import { UserService } from './../../services/user.service';\r\nimport { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-main-home',\r\n templateUrl: './main-home.component.html',\r\n styleUrls: ['./main-home.component.scss']\r\n})\r\nexport class MainHomeComponent {\r\n\r\n constructor(public userService: UserService) { }\r\n\r\n}\r\n","import { Location } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NavigateService {\r\n\r\n constructor(private location: Location) { }\r\n goBack() {\r\n this.location.back();\r\n }\r\n}\r\n","\r\n \r\n Número de Línea \r\n {{element.line}} \r\n \r\n\r\n \r\n Notas \r\n {{element.notes}} \r\n \r\n\r\n \r\n Cantidad \r\n {{element.quantity}} \r\n \r\n\r\n \r\n Producto \r\n {{element.productDescription}} \r\n \r\n\r\n \r\n Fechas de publicación \r\n \r\n
{{dt | date: 'MMM dd yyyy'}}
\r\n
\r\n
\r\n\r\n \r\n Acciones \r\n \r\n \r\n {{element.internalStatus === 'I'? 'create' : 'done'}}\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { OrderItem } from '../../models/order-item.model';\r\n\r\n@Component({\r\n selector: 'app-type-order-table',\r\n templateUrl: './type-order-table.component.html',\r\n styleUrls: ['./type-order-table.component.scss']\r\n})\r\nexport class TypeOrderTableComponent {\r\n @Input() items: OrderItem[];\r\n @Input() orderid: string;\r\n displayedColumns = ['line', 'notes', 'quantity', 'productDescription', 'publishDates', 'actions' ];\r\n constructor() { }\r\n\r\n}\r\n","\r\n
\r\n \r\n arrow_back\r\n \r\n
\r\n \r\n
Órden: {{order.id}}
\r\n
Estado: {{order.internalStatus}}
\r\n
\r\n Cliente: {{order.clientName}} - ({{order.nit}})\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Order } from '../../models/order.model';\r\n\r\nimport { NavigateService } from './../../services/navigate.service';\r\nimport { OrderService } from '../../services/order.service';\r\n\r\n@Component({\r\n selector: 'app-type-order',\r\n templateUrl: './type-order.component.html',\r\n styleUrls: ['./type-order.component.scss']\r\n})\r\nexport class TypeOrderComponent implements OnInit {\r\n\r\n id: string;\r\n order: Order;\r\n constructor(private activatedRoute: ActivatedRoute,\r\n private orderService: OrderService,\r\n public navigate: NavigateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.id = this.activatedRoute.snapshot.paramMap.get('id');\r\n this.orderService.getType(this.id)\r\n .subscribe(r => this.order = r);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { StatisticsHeader } from '../models/statistics-header.model';\r\nimport { BaseService } from './base.service';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class StatisticsService {\r\n private statisticsSource = new Subject();\r\n statisticsSource$ = this.statisticsSource.asObservable();\r\n constructor(private httpClient: HttpClient, private baseService: BaseService) { }\r\n getStatisticsHeader(id: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/productionstatistics`;\r\n return this.httpClient.post(url, {\r\n editionId: id\r\n }).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Obteniendo estadísticas');\r\n return [];\r\n })\r\n );\r\n }\r\n refreshStatistics() {\r\n this.statisticsSource.next();\r\n }\r\n}\r\n","import { BaseService } from './base.service';\r\nimport { Observable, interval, timer } from 'rxjs';\r\nimport { Injectable } from '@angular/core';\r\nimport { switchMap, catchError, distinctUntilChanged } from 'rxjs/operators';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TimeService {\r\n workDateSource$ = new Observable();\r\n\r\n constructor(private httpClient: HttpClient,\r\n private baseService: BaseService) {\r\n const url = `${baseService.hostDomain}/api/server/workdate`;\r\n this.workDateSource$ = timer(0, 30000).pipe(\r\n switchMap(v => {\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Sincronizando fechas con servidor.');\r\n return [];\r\n })\r\n );\r\n }),\r\n distinctUntilChanged()\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { BaseService } from './base.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Ocr } from '../models/ocr.model';\r\n\r\n@Injectable()\r\nexport class OcrService {\r\n\r\n constructor(private httpClient: HttpClient, private baseService: BaseService) { }\r\n\r\n processOcr(formData: FormData): Observable {\r\n const url = `${this.baseService.hostDomain}/api/ocr`;\r\n return this.httpClient.post(url, formData).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando las órdenes');\r\n return [];\r\n })\r\n );\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { OcrService } from '../../services/ocr.service';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-ocr-control',\r\n templateUrl: './ocr-control.component.html',\r\n styleUrls: ['./ocr-control.component.scss']\r\n})\r\nexport class OcrControlComponent {\r\n isCopied: boolean;\r\n ocrCtrl: FormControl;\r\n ocrText: string;\r\n constructor(private ocrService: OcrService) {\r\n this.ocrCtrl = new FormControl();\r\n }\r\n\r\n fileChange(event) {\r\n const fileList: FileList = event.target.files;\r\n if (fileList.length > 0) {\r\n this.isCopied = false;\r\n const file: File = fileList[0];\r\n const formData: FormData = new FormData();\r\n formData.append('file', file, file.name);\r\n this.ocrService.processOcr(formData).subscribe(val => {\r\n if (val.success) {\r\n this.ocrCtrl.setValue(val.ocrText, { emitEvent: false });\r\n this.ocrText = val.ocrText;\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n Resultado\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n","import {\r\n Component,\r\n Input,\r\n AfterViewInit,\r\n OnDestroy,\r\n Output,\r\n EventEmitter,\r\n AfterViewChecked\r\n} from '@angular/core';\r\n// import 'tinymce';\r\n// import 'tinymce/themes/silver';\r\n// import 'tinymce/plugins/autoresize';\r\n// import 'tinymce/plugins/fullscreen';\r\n// import 'tinymce/plugins/paste';\r\n// import 'tinymce/plugins/code';\r\n// import 'tinymce/plugins/wordcount';\r\n// import 'tinymce/plugins/image';\r\ndeclare var tinymce: any;\r\n@Component({\r\n selector: 'app-tiny-editor',\r\n template: `
`\r\n})\r\nexport class TinyEditorComponent implements OnDestroy {\r\n private editor: any;\r\n private _disabled: boolean;\r\n private _isActive: boolean;\r\n @Input() id: string;\r\n @Input()\r\n set disabled(status: boolean) {\r\n this._disabled = status;\r\n if (this.editor) {\r\n this.editor.getBody().setAttribute('contenteditable', !status);\r\n }\r\n }\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n @Input()\r\n get isActive(): boolean { return this._isActive; }\r\n set isActive(val: boolean) {\r\n this._isActive = val;\r\n if (this._isActive) {\r\n tinymce.remove();\r\n tinymce.init({\r\n branding: false,\r\n debounce: false,\r\n menubar: false,\r\n selector: `#${this.id}`,\r\n language: 'es_MX',\r\n language_url: '/assets/tinymce/languages/es_MX.js',\r\n skin_url: '/assets/tinymce/skins/ui/oxide',\r\n content_css: '/assets/tinymce/skins/content/default/content.css',\r\n plugins: ['autoresize', 'image', 'paste', 'wordcount', 'code', 'stylebuttons', 'fullscreen'],\r\n toolbar: 'bold italic | style-h2 | image | code | fullscreen',\r\n autoresize_bottom_margin: 0,\r\n autoresize_max_height: 1000,\r\n elementpath: false,\r\n paste_as_text: true,\r\n setup: editor => {\r\n this.editor = editor;\r\n editor.on('init', (e) => {\r\n e.target.getBody().setAttribute('contenteditable', !this.disabled);\r\n });\r\n editor.on('keyup change', () => {\r\n const content = editor.getContent();\r\n this.editorContentChange.emit(content);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n @Input() content: String;\r\n @Output() editorContentChange = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnDestroy() {\r\n tinymce.remove();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
{{isSaved ? 'Guardado' : (isSaving ? 'Guardando' : '')}}
\r\n
\r\n
\r\n
\r\n \r\n {{documentData.key}}\r\n \r\n {{isSaved ? 'Guardado' : (isSaving ? 'Guardando' : '')}}\r\n \r\n
\r\n
\r\n","import { FormControl } from '@angular/forms';\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { Observable, Subscription, timer, Subject } from 'rxjs';\r\nimport {\r\n startWith,\r\n debounceTime,\r\n distinctUntilChanged,\r\n map,\r\n switchMap,\r\n skip\r\n} from 'rxjs/operators';\r\nimport { v4 as uuid } from 'uuid';\r\n\r\nimport { OrderDocumentData } from '../../models/order-document-data.model';\r\nimport { OrderDocument } from '../../models/order-document.model';\r\nimport { OrderService } from '../../services/order.service';\r\nimport { OcrService } from '../../services/ocr.service';\r\n\r\n@Component({\r\n selector: 'app-type-control',\r\n templateUrl: './type-control.component.html',\r\n styleUrls: ['./type-control.component.scss']\r\n})\r\nexport class TypeControlComponent implements OnInit {\r\n private debouncer: Subject = new Subject();\r\n private valueChange: Observable;\r\n private htmlChange: Observable;\r\n @Input() private orderDocument: OrderDocument;\r\n private _isActive: boolean;\r\n private _disabled: boolean;\r\n @Input()\r\n set disabled(status: boolean) {\r\n this._disabled = status;\r\n if (status) {\r\n this.inputCtrl.disable();\r\n } else {\r\n this.inputCtrl.enable();\r\n }\r\n }\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n id: string;\r\n @Input() documentData: OrderDocumentData;\r\n @Input() subscription: Subscription;\r\n @Input()\r\n get isActive(): boolean {\r\n return this._isActive;\r\n }\r\n set isActive(val: boolean) {\r\n this._isActive = val;\r\n }\r\n inputCtrl: FormControl;\r\n isSaving: boolean;\r\n isSaved: boolean;\r\n constructor(\r\n private orderService: OrderService,\r\n private ocrService: OcrService\r\n ) {\r\n this.id = uuid();\r\n this.htmlChange = this.debouncer.asObservable().pipe(\r\n map(val => {\r\n this.documentData.value = val;\r\n console.log(this.documentData.value);\r\n return val;\r\n }),\r\n skip(1),\r\n debounceTime(5000),\r\n distinctUntilChanged(),\r\n switchMap(val => {\r\n if (!this.orderDocument.isSaved) {\r\n this.isSaving = true;\r\n return orderService.saveDocumentData(\r\n this.orderDocument,\r\n this.documentData\r\n );\r\n }\r\n return [];\r\n })\r\n );\r\n this.inputCtrl = new FormControl();\r\n this.valueChange = this.inputCtrl.valueChanges.pipe(\r\n map(val => {\r\n this.documentData.value = val;\r\n return val;\r\n }),\r\n skip(1),\r\n debounceTime(5000),\r\n distinctUntilChanged(),\r\n switchMap(val => {\r\n if (!this.orderDocument.isSaved) {\r\n this.isSaving = true;\r\n return orderService.saveDocumentData(\r\n this.orderDocument,\r\n this.documentData\r\n );\r\n }\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription.add(\r\n this.valueChange.subscribe(val => {\r\n this.isSaving = false;\r\n this.isSaved = true;\r\n setTimeout(() => {\r\n this.isSaved = false;\r\n }, 3000);\r\n this.orderDocument.status = 'PD';\r\n })\r\n );\r\n\r\n this.subscription.add(\r\n this.htmlChange.subscribe(val => {\r\n this.isSaving = false;\r\n this.isSaved = true;\r\n setTimeout(() => {\r\n this.isSaved = false;\r\n }, 3000);\r\n this.orderDocument.status = 'PD';\r\n })\r\n );\r\n this.inputCtrl.setValue(this.documentData.value, { emitEvent: false });\r\n }\r\n\r\n change(evt: string): void {\r\n console.log(evt);\r\n this.debouncer.next(evt);\r\n }\r\n}\r\n","\r\n
\r\n \r\n arrow_back\r\n \r\n
\r\n \r\n
Órden: {{order.id}} Línea: {{order.items[0].line}}
\r\n
Fecha de publicación:\r\n {{dt | date: 'MMM dd yyyy '}}\r\n
\r\n
Estado: {{order.internalStatus}}
\r\n
\r\n \r\n
Cliente: {{order.clientName}} - ({{order.nit}})
\r\n
Notas: {{order.items[0].notes}}
\r\n
Cantidad: {{order.items[0].quantity}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n OCR\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\n\r\nimport { NavigateService } from './../../services/navigate.service';\r\nimport { OrderService } from '../../services/order.service';\r\nimport { Order } from '../../models/order.model';\r\nimport { OrderDocument } from '../../models/order-document.model';\r\nimport { Subscription, empty, interval } from 'rxjs';\r\n\r\n// import 'tinymce';\r\nimport { StatisticsService } from '../../services/statistics.service';\r\nimport { TimeService } from '../../services/time.service';\r\ndeclare var tinymce: any;\r\n@Component({\r\n selector: 'app-type-order-item',\r\n templateUrl: './type-order-item.component.html',\r\n styleUrls: ['./type-order-item.component.scss']\r\n})\r\nexport class TypeOrderItemComponent\r\n implements OnInit, OnDestroy {\r\n private id: string;\r\n private line: number;\r\n order: Order;\r\n documents: OrderDocument[];\r\n subscription: Subscription;\r\n timeSubscription: Subscription;\r\n activeIndex: number;\r\n workDate: Date;\r\n isPastItem: boolean;\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private orderService: OrderService,\r\n public navigate: NavigateService,\r\n private statisticsService: StatisticsService,\r\n private timeService: TimeService\r\n ) {\r\n tinymce.PluginManager.add('stylebuttons', function(editor, url) {\r\n ['pre', 'p', 'code', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'].forEach(function(\r\n name\r\n ) {\r\n editor.ui.registry.addToggleButton('style-' + name, {\r\n tooltip: 'Cambiar ' + name,\r\n text: name.toUpperCase(),\r\n onAction: function (_) {\r\n editor.execCommand('mceToggleFormat', false, name);\r\n },\r\n onSetup: function (api) {\r\n editor.formatter.formatChanged(name, function (state) {\r\n api.setActive(state);\r\n });\r\n }\r\n });\r\n });\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.activeIndex = 0;\r\n this.id = this.activatedRoute.snapshot.paramMap.get('id');\r\n this.line = +this.activatedRoute.snapshot.paramMap.get('line');\r\n this.orderService.itemType(this.id, this.line).subscribe(r => {\r\n this.order = r.order;\r\n this.timeSubscription = this.timeService.workDateSource$.subscribe(\r\n val => {\r\n this.workDate = val;\r\n this.isPastItem = !this.order.items[0].publishDates.some(\r\n v => v >= val\r\n );\r\n console.log(this.workDate);\r\n }\r\n );\r\n setTimeout(() => {\r\n this.activeIndex = 1;\r\n if (this.documents[0].status === 'I') {\r\n this.orderService\r\n .saveDocumentData(this.documents[0], this.documents[0].data[0])\r\n .subscribe(a => {\r\n this.documents[0].status = 'PD';\r\n });\r\n }\r\n }, 500);\r\n this.documents = r.documents.map(v => {\r\n v.isSaved = !(v.status === 'I' || v.status === 'PD');\r\n return v;\r\n });\r\n });\r\n this.subscription = interval(10000).subscribe();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n saveOrder(document: OrderDocument): void {\r\n this.orderService.saveDocument(document).subscribe(val => {\r\n if (val) {\r\n document.status = 'F';\r\n document.isSaved = true;\r\n this.statisticsService.refreshStatistics();\r\n }\r\n });\r\n }\r\n cancelSave(document: OrderDocument): void {\r\n this.orderService.cancelSaveDocument(document).subscribe(val => {\r\n if (val) {\r\n document.status = 'PD';\r\n document.isSaved = false;\r\n this.statisticsService.refreshStatistics();\r\n }\r\n });\r\n }\r\n\r\n onChangeTab(evt): void {\r\n this.activeIndex = evt.index + 1;\r\n if (this.documents[evt.index].status === 'I') {\r\n this.orderService\r\n .saveDocumentData(this.documents[evt.index], this.documents[evt.index].data[0])\r\n .subscribe(a => {\r\n this.documents[evt.index].status = 'PD';\r\n });\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
Buscar Pedido
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n description {{ order.id }}\r\n {{ order.clientName }}\r\n {{ order.internalStatus }} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith, debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\r\n\r\nimport { Order } from '../../models/order.model';\r\nimport { OrderService } from '../../services/order.service';\r\n\r\n@Component({\r\n selector: 'app-search-edict',\r\n templateUrl: './search-edict.component.html',\r\n styleUrls: ['./search-edict.component.scss']\r\n})\r\nexport class SearchEdictComponent {\r\n autocompleteCtrl: FormControl;\r\n filteredOrders: Observable;\r\n constructor(private orderService: OrderService,\r\n private router: Router\r\n ) {\r\n this.autocompleteCtrl = new FormControl();\r\n this.filteredOrders = this.autocompleteCtrl.valueChanges\r\n .pipe(\r\n startWith(null),\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n switchMap(val => {\r\n if (val) {\r\n return orderService.autocompleteSearch(val);\r\n } else {\r\n return [];\r\n }\r\n })\r\n );\r\n }\r\n\r\n itemSelected(evt: MatAutocompleteSelectedEvent) {\r\n this.router.navigateByUrl(`buscar/${evt.option.value}`);\r\n }\r\n}\r\n","
\r\n
\r\n

{{item.updatedBy}}

\r\n

{{item.updated | date: 'yyyy/MM/dd HH:mm:ss'}}

\r\n
\r\n
\r\n \r\n {{item.oldStatusName}}\r\n arrow_forward\r\n {{item.newStatusName}}\r\n \r\n
\r\n
{{item.comment}}
\r\n
\r\n","import { OrderService } from './../../services/order.service';\r\nimport { OrderHistory } from './../../models/order-history.model';\r\nimport { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-order-history',\r\n templateUrl: './order-history.component.html',\r\n styleUrls: ['./order-history.component.scss']\r\n})\r\nexport class OrderHistoryComponent implements OnInit, OnDestroy {\r\n @Input() orderId: string;\r\n history: OrderHistory[];\r\n private subscription: Subscription;\r\n constructor(private orderService: OrderService) {\r\n this.subscription = orderService.historySource$.subscribe(val => {\r\n this.getHistory();\r\n });\r\n }\r\n ngOnInit() {\r\n this.getHistory();\r\n }\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n }\r\n getHistory() {\r\n this.orderService.history(this.orderId).subscribe(val => {\r\n this.history = val;\r\n });\r\n }\r\n}\r\n","\r\n \r\n Número de Línea \r\n {{element.line}} \r\n \r\n\r\n \r\n Notas \r\n {{element.notes}} \r\n \r\n\r\n \r\n Cantidad \r\n {{element.quantity}} \r\n \r\n\r\n \r\n Producto \r\n {{element.productDescription}} \r\n \r\n\r\n \r\n Fechas de publicación \r\n \r\n
\r\n
{{dt | date: 'MMM dd yyyy'}}
\r\n
\r\n
\r\n
\r\n\r\n \r\n Acciones \r\n \r\n \r\n check\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { OrderItem } from '../../models/order-item.model';\r\n\r\n@Component({\r\n selector: 'app-order-table',\r\n templateUrl: './order-table.component.html',\r\n styleUrls: ['./order-table.component.scss']\r\n})\r\nexport class OrderTableComponent {\r\n @Input() items: OrderItem[];\r\n @Input() orderid: string;\r\n displayedColumns = ['line', 'notes', 'quantity', 'productDescription', 'publishDates', 'actions' ];\r\n constructor() { }\r\n\r\n}\r\n","\r\n
\r\n \r\n arrow_back\r\n \r\n
\r\n \r\n
Órden: {{order.id}}
\r\n
Estado: {{order.internalStatus}}
\r\n
\r\n \r\n
Cliente: {{order.clientName}} - ({{order.nit}})
\r\n
Estado SGC: {{order.status}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Historial \r\n \r\n \r\n \r\n \r\n \r\n Contenido de la orden \r\n \r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Order } from '../../models/order.model';\r\n\r\nimport { NavigateService } from './../../services/navigate.service';\r\nimport { OrderService } from '../../services/order.service';\r\n\r\n@Component({\r\n selector: 'app-order',\r\n templateUrl: './order.component.html',\r\n styleUrls: ['./order.component.scss']\r\n})\r\nexport class OrderComponent implements OnInit {\r\n\r\n id: string;\r\n order: Order;\r\n panelOpenState: boolean;\r\n constructor(private activatedRoute: ActivatedRoute,\r\n private orderService: OrderService,\r\n public navigate: NavigateService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.id = this.activatedRoute.snapshot.paramMap.get('id');\r\n this.orderService.getSearch(this.id)\r\n .subscribe(r => this.order = r);\r\n }\r\n}\r\n","
\r\n
\r\n

{{item.updatedBy}}

\r\n

{{item.updated | date: 'yyyy/MM/dd HH:mm:ss'}}

\r\n
\r\n
\r\n \r\n {{item.oldStatusName}}\r\n arrow_forward\r\n {{item.newStatusName}}\r\n \r\n
\r\n
{{item.comment}}
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { OrderDocumentHistory } from '../../models/order-document-history.model';\r\nimport { OrderService } from '../../services/order.service';\r\n\r\n@Component({\r\n selector: 'app-order-document-history',\r\n templateUrl: './order-document-history.component.html',\r\n styleUrls: ['./order-document-history.component.scss']\r\n})\r\nexport class OrderDocumentHistoryComponent implements OnInit {\r\n @Input() orderId: string;\r\n @Input() line: number;\r\n @Input() index: number;\r\n history: OrderDocumentHistory[];\r\n constructor(private orderService: OrderService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.getHistory();\r\n }\r\n getHistory() {\r\n this.orderService.historyDocument(this.orderId, this.line, this.index).subscribe(val => {\r\n this.history = val;\r\n });\r\n }\r\n}\r\n"," 0\">\r\n
\r\n \r\n arrow_back\r\n \r\n
\r\n \r\n
Órden: {{order.id}} Línea: {{order.items[0].line}}
\r\n
Fecha de publicación:\r\n {{dt | date: 'MMM dd yyyy '}}\r\n
\r\n
Estado: {{order.internalStatus}}
\r\n
\r\n \r\n
Cliente: {{order.clientName}} - ({{order.nit}})
\r\n
Notas: {{order.items[0].notes}}
\r\n
Cantidad: {{order.items[0].quantity}}
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Historial \r\n \r\n \r\n \r\n \r\n \r\n Contenido \r\n \r\n
\r\n
\r\n

{{documentData.key}}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n arrow_back\r\n \r\n
\r\n \r\n No se tiene registro de la digitación de este item.\r\n \r\n \r\n Esto se debe a que la orden no se validó, o que el item nunca inició digitación.\r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { Order } from '../../models/order.model';\r\nimport { OrderDocument } from '../../models/order-document.model';\r\nimport { OrderService } from '../../services/order.service';\r\nimport { NavigateService } from '../../services/navigate.service';\r\n\r\n@Component({\r\n selector: 'app-order-item',\r\n templateUrl: './order-item.component.html',\r\n styleUrls: ['./order-item.component.scss']\r\n})\r\nexport class OrderItemComponent implements OnInit {\r\n private id: string;\r\n private line: number;\r\n order: Order;\r\n documents: OrderDocument[];\r\n loading: boolean;\r\n constructor( private activatedRoute: ActivatedRoute,\r\n private orderService: OrderService,\r\n public navigate: NavigateService) { }\r\n\r\n ngOnInit() {\r\n this.loading = true;\r\n this.id = this.activatedRoute.snapshot.paramMap.get('id');\r\n this.line = +this.activatedRoute.snapshot.paramMap.get('line');\r\n this.orderService.itemSearch(this.id, this.line).subscribe(r => {\r\n this.loading = false;\r\n this.order = r.order;\r\n this.documents = r.documents;\r\n });\r\n }\r\n\r\n}\r\n","\r\n \r\n
\r\n
\r\n
Validar Pedido
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n description {{ order.id }}\r\n {{ order.clientName }}\r\n {{ order.internalStatus }} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\nimport { Observable } from 'rxjs';\r\nimport { startWith, debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\r\n\r\nimport { Order } from '../../models/order.model';\r\nimport { OrderService } from '../../services/order.service';\r\n\r\n@Component({\r\n selector: 'app-validate-type-edict',\r\n templateUrl: './search-validate-edict.component.html',\r\n styleUrls: ['./search-validate-edict.component.scss']\r\n})\r\nexport class SearchValidateEdictComponent {\r\n autocompleteCtrl: FormControl;\r\n filteredOrders: Observable;\r\n constructor(private orderService: OrderService,\r\n private router: Router\r\n ) {\r\n this.autocompleteCtrl = new FormControl();\r\n this.filteredOrders = this.autocompleteCtrl.valueChanges\r\n .pipe(\r\n startWith(null),\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n switchMap(val => {\r\n if (val) {\r\n return orderService.autocompleteValidate(val);\r\n } else {\r\n return [];\r\n }\r\n })\r\n );\r\n }\r\n\r\n itemSelected(evt: MatAutocompleteSelectedEvent) {\r\n this.router.navigateByUrl(`validar/${evt.option.value}`);\r\n }\r\n}\r\n","\r\n \r\n Número de Línea \r\n {{element.line}} \r\n \r\n\r\n \r\n Notas \r\n {{element.notes}} \r\n \r\n\r\n \r\n Cantidad \r\n {{element.quantity}} \r\n \r\n\r\n \r\n Producto \r\n {{element.productDescription}} \r\n \r\n\r\n \r\n Fechas de publicación \r\n \r\n
{{dt | date: 'MMM dd yyyy'}}
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { OrderItem } from '../../models/order-item.model';\r\n\r\n@Component({\r\n selector: 'app-validate-order-table',\r\n templateUrl: './validate-order-table.component.html',\r\n styleUrls: ['./validate-order-table.component.scss']\r\n})\r\nexport class ValidateOrderTableComponent {\r\n @Input() items: OrderItem[];\r\n @Input() orderid: string;\r\n displayedColumns = ['line', 'notes', 'quantity', 'productDescription', 'publishDates' ];\r\n constructor() { }\r\n}\r\n","\r\n
\r\n \r\n arrow_back\r\n \r\n
\r\n \r\n
Órden: {{order.id}}
\r\n
Estado: {{order.internalStatus}}
\r\n
\r\n Cliente: {{order.clientName}} - ({{order.nit}})\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n Contenido \r\n \r\n \r\n \r\n \r\n \r\n Historial \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Order } from '../../models/order.model';\r\n\r\nimport { NavigateService } from './../../services/navigate.service';\r\nimport { OrderService } from '../../services/order.service';\r\nimport { StatisticsService } from '../../services/statistics.service';\r\n\r\n@Component({\r\n selector: 'app-validate-order',\r\n templateUrl: './validate-order.component.html',\r\n styleUrls: ['./validate-order.component.scss']\r\n})\r\nexport class ValidateOrderComponent implements OnInit {\r\n id: string;\r\n order: Order;\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private orderService: OrderService,\r\n public navigate: NavigateService,\r\n public statisticsService: StatisticsService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.id = this.activatedRoute.snapshot.paramMap.get('id');\r\n this.initOrder();\r\n }\r\n\r\n initOrder() {\r\n this.orderService.getValidate(this.id).subscribe(r => (this.order = r));\r\n }\r\n\r\n validate() {\r\n this.orderService.validate(this.order.id).subscribe(val => {\r\n if (val) {\r\n this.order.internalStatus = 'V';\r\n this.orderService.refreshHistory();\r\n this.statisticsService.refreshStatistics();\r\n }\r\n });\r\n }\r\n\r\n invalidate(reason: string) {\r\n this.orderService.invalidate(this.order.id, reason).subscribe(val => {\r\n if (val) {\r\n this.order.internalStatus = 'NV';\r\n this.orderService.refreshHistory();\r\n this.statisticsService.refreshStatistics();\r\n }\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\r\n\r\n@Component({\r\n selector: 'app-main-report',\r\n templateUrl: './main-report.component.html',\r\n styleUrls: ['./main-report.component.scss']\r\n})\r\nexport class MainReportComponent {\r\n selectedDate: Date;\r\n selectedStartDate: Date;\r\n selectedEndDate: Date;\r\n certSelectedStartDate: Date;\r\n certSelectedEndDate: Date;\r\n constructor() { }\r\n\r\n onChange($event: MatDatepickerInputEvent) {\r\n this.selectedDate = $event.value;\r\n }\r\n onStartDateChange($event: MatDatepickerInputEvent) {\r\n this.selectedStartDate = $event.value;\r\n }\r\n onEndDateChange($event: MatDatepickerInputEvent) {\r\n this.selectedEndDate = $event.value;\r\n }\r\n onCertStartDateChange($event: MatDatepickerInputEvent) {\r\n this.certSelectedStartDate = $event.value;\r\n }\r\n onCertEndDateChange($event: MatDatepickerInputEvent) {\r\n this.certSelectedEndDate = $event.value;\r\n }\r\n}\r\n","\r\n \r\n Reporte de órdenes y documentos por edición\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Ver Reporte\r\n
\r\n
\r\n \r\n Reporte de uso de OCR\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Ver Reporte\r\n
\r\n
\r\n \r\n Reporte de uso de Certificaciones\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Ver Reporte\r\n
\r\n
\r\n
\r\n","import { DataSource } from '@angular/cdk/table';\r\nimport { CollectionViewer } from '@angular/cdk/collections';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\n\r\nimport { Product } from './../models/product.model';\r\nimport { ProductsService } from '../services/products.service';\r\nimport { delay, map, finalize } from 'rxjs/operators';\r\n\r\nexport class ProductsDataSource implements DataSource {\r\n private productsSubject = new BehaviorSubject([]);\r\n private loadingSubject = new BehaviorSubject(false);\r\n\r\n public loading$ = this.loadingSubject.asObservable();\r\n count: number;\r\n constructor(private productsService: ProductsService) {}\r\n\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n return this.productsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.productsSubject.complete();\r\n this.loadingSubject.complete();\r\n }\r\n\r\n loadProducts(\r\n page?: number,\r\n limit?: number,\r\n sort?: string,\r\n viewOnlyActive?: boolean\r\n ) {\r\n this.loadingSubject.next(true);\r\n this.productsService\r\n .getProducts(page, limit, sort, viewOnlyActive)\r\n .pipe(\r\n map(val => {\r\n this.count = val.count;\r\n return val.products;\r\n }),\r\n finalize(() => this.loadingSubject.next(false))\r\n )\r\n .subscribe(p => this.productsSubject.next(p));\r\n }\r\n}\r\n","import { ProductApiResponse } from './../models/product-api-response.model';\r\nimport { BaseService } from './base.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Product } from '../models/product.model';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductsService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private baseService: BaseService\r\n ) {}\r\n\r\n getProduct(code: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/products/${code}`;\r\n return this.httpClient\r\n .get(url)\r\n .pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando los productos');\r\n return [];\r\n })\r\n );\r\n }\r\n getProducts(\r\n page?: number,\r\n limit?: number,\r\n sort?: string,\r\n viewOnlyActive?: boolean\r\n ): Observable {\r\n const url = `${this.baseService.hostDomain}/api/products`;\r\n const data: any = {};\r\n if (page) { data.page = page; }\r\n if (limit) { data.limit = limit; }\r\n if (sort) { data.sort = sort; }\r\n if (viewOnlyActive) { data.viewOnlyActive = viewOnlyActive; }\r\n return this.httpClient\r\n .get(url, { params: data })\r\n .pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando los productos');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n saveProduct(product: Product) {\r\n const url = `${this.baseService.hostDomain}/api/products`;\r\n return this.httpClient\r\n .post(url, product)\r\n .pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Guardando el producto ${product.productCode}`);\r\n return [];\r\n })\r\n );\r\n }\r\n}\r\n","\r\n \r\n
Administrador de productos
\r\n Ver Sólo Activos\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Id de producto \r\n {{element.productCode}} \r\n \r\n \r\n \r\n Descripción \r\n {{element.productDescription}} \r\n \r\n \r\n Estado \r\n {{element.status}} \r\n \r\n \r\n ¿Se imprime? \r\n {{element.isPrintable ? 'Si' : '' }} \r\n \r\n \r\n Fecha Actualización \r\n {{element.updated | date: 'yyyy/MM/dd HH:mm:ss'}} \r\n \r\n \r\n Actualizado por \r\n {{element.updatedBy}} \r\n \r\n \r\n \r\n \r\n add\r\n \r\n \r\n \r\n \r\n edit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { ProductsService } from './../../services/products.service';\r\nimport { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';\r\n\r\nimport { ProductsDataSource } from '../../datasources/products-data-source';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { Product } from '../../models/product.model';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-admin-products',\r\n templateUrl: './admin-products.component.html',\r\n styleUrls: ['./admin-products.component.scss']\r\n})\r\nexport class AdminProductsComponent implements OnInit, AfterViewInit {\r\n dataSource: ProductsDataSource;\r\n displayedColumns = [\r\n 'productCode',\r\n 'productDescription',\r\n 'status',\r\n 'updatedBy',\r\n 'isPrintable',\r\n 'updated',\r\n 'actions'\r\n ];\r\n selection = new SelectionModel(true, []);\r\n viewOnlyActive = true;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private productsService: ProductsService) {}\r\n\r\n ngOnInit() {\r\n this.dataSource = new ProductsDataSource(this.productsService);\r\n this.dataSource.loadProducts(null, null, null, true);\r\n }\r\n ngAfterViewInit() {\r\n this.sort.sortChange.subscribe(() => {\r\n this.paginator.pageIndex = 0;\r\n this.loadProducts();\r\n });\r\n this.paginator.page.pipe(tap(() => this.loadProducts())).subscribe();\r\n }\r\n\r\n loadProducts() {\r\n this.dataSource.loadProducts(\r\n this.paginator.pageIndex + 1,\r\n this.paginator.pageSize,\r\n (this.sort.direction === 'desc' ? '-' : '') + this.sort.active,\r\n this.viewOnlyActive\r\n );\r\n }\r\n\r\n changeOnlyActive() {\r\n this.viewOnlyActive = !this.viewOnlyActive;\r\n this.loadProducts();\r\n }\r\n}\r\n","export class ProductField {\r\n constructor(\r\n name?: string,\r\n type?: string,\r\n sortId?: number,\r\n printTitle?: boolean,\r\n status?: string\r\n ) {\r\n this.name = name;\r\n this.type = type;\r\n this.sortId = sortId;\r\n this.printTitle = printTitle;\r\n this.status = status;\r\n }\r\n name: string;\r\n type: string;\r\n sortId: number;\r\n printTitle: boolean;\r\n status: string;\r\n}\r\n","
\r\n \r\n
\r\n \r\n arrow_back\r\n \r\n
\r\n Edición de producto\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Activo\r\n Desactivado\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ¿Se imprime en el periódico?\r\n
\r\n
\r\n

Campos:

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Editor HTML\r\n Textarea\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Imprimir título\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { ProductsService } from '../../services/products.service';\r\nimport { Product } from '../../models/product.model';\r\nimport { FormBuilder, FormGroup, FormArray } from '@angular/forms';\r\nimport { ProductField } from '../../models/product-field.model';\r\nimport { NavigateService } from '../../services/navigate.service';\r\n\r\n@Component({\r\n selector: 'app-product-detail',\r\n templateUrl: './product-detail.component.html',\r\n styleUrls: ['./product-detail.component.scss']\r\n})\r\nexport class ProductDetailComponent implements OnInit {\r\n code: string;\r\n product: Product;\r\n productForm: FormGroup;\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private productService: ProductsService,\r\n private fb: FormBuilder,\r\n public navigate: NavigateService,\r\n private router: Router\r\n ) {\r\n this.createForm();\r\n }\r\n\r\n private createForm() {\r\n this.productForm = this.fb.group({\r\n productDescription: '',\r\n status: '',\r\n sort: 0,\r\n headerImage: '',\r\n legalReference: '',\r\n isPrintable: false,\r\n fields: this.fb.array([]),\r\n });\r\n }\r\n\r\n private rebuildForm() {\r\n this.productForm.reset({\r\n productDescription: this.product.productDescription,\r\n status: this.product.status,\r\n sort: this.product.sort,\r\n headerImage: this.product.headerImage,\r\n isPrintable: this.product.isPrintable,\r\n legalReference: this.product.legalReference\r\n });\r\n this.setFields(this.product.fields);\r\n }\r\n\r\n get fields(): FormArray {\r\n return this.productForm.get('fields') as FormArray;\r\n }\r\n\r\n private setFields(fields: ProductField[]) {\r\n this.productForm.setControl('fields', this.fb.array(fields.map(f => this.fb.group(f))));\r\n }\r\n\r\n private prepareSaveProduct(): Product {\r\n const formModel = this.productForm.value;\r\n\r\n const fieldsDeepCopy: ProductField[] = formModel.fields.map(\r\n (p: ProductField) => Object.assign({}, p)\r\n );\r\n\r\n const saveProduct: Product = {\r\n productCode : this.product.productCode,\r\n productDescription: formModel.productDescription as string,\r\n status: formModel.status as string,\r\n sort: formModel.sort as number,\r\n headerImage: formModel.headerImage as string,\r\n legalReference: formModel.legalReference as string,\r\n fields: fieldsDeepCopy,\r\n isPrintable: formModel.isPrintable as boolean\r\n };\r\n return saveProduct;\r\n }\r\n\r\n ngOnInit() {\r\n this.code = this.activatedRoute.snapshot.paramMap.get('code');\r\n this.productService\r\n .getProduct(this.code)\r\n .subscribe(val => {\r\n this.product = val;\r\n this.rebuildForm();\r\n });\r\n }\r\n\r\n addField() {\r\n this.fields.push(this.fb.group(new ProductField('', '', 1, false, '')));\r\n }\r\n\r\n spliceField(idx: number) {\r\n this.fields.removeAt(idx);\r\n }\r\n\r\n onSubmit() {\r\n this.productService.saveProduct(this.prepareSaveProduct()).subscribe(v => {\r\n this.router.navigateByUrl('/administrador/productos');\r\n });\r\n }\r\n revert() {\r\n this.rebuildForm();\r\n }\r\n}\r\n","import { UserAdminApiResponse } from './../models/user-admin-api-response';\r\nimport { BaseService } from './base.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { UsrInfo, UsrInfoC } from '../models/usr-info.model';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { Branch } from './../models/branch.model';\r\nimport { Role } from './../models/role.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserAdminService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private baseService: BaseService\r\n ) {}\r\n\r\n getUsers(\r\n page?: number,\r\n limit?: number,\r\n sort?: string,\r\n viewOnlyActive?: boolean\r\n ): Observable {\r\n const url = `${this.baseService.hostDomain}/api/useradmin`;\r\n const data: any = {};\r\n if (page) {\r\n data.page = page;\r\n }\r\n if (limit) {\r\n data.limit = limit;\r\n }\r\n if (sort) {\r\n data.sort = sort;\r\n }\r\n if (viewOnlyActive) {\r\n data.viewOnlyActive = viewOnlyActive;\r\n }\r\n return this.httpClient\r\n .get(url, { params: data })\r\n .pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando los usuarios');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n saveUser(user: UsrInfo): Observable {\r\n const url = `${this.baseService.hostDomain}/api/useradmin`;\r\n return this.httpClient.post(url, { email: user.email }).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Creando un nuevo usuario`);\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n saveUserInfo(roles: string[], branches: string[], email: string) {\r\n const url = `${this.baseService.hostDomain}/api/userrole`;\r\n const data: any = {};\r\n data.email = email;\r\n data.branches = branches;\r\n data.roles = roles;\r\n return this.httpClient.post(url, data).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Guardando el usuario ${email}`);\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n updateUserInfo(email: string, status: string, userName: string, city: string, office: string) {\r\n const url = `${this.baseService.hostDomain}/api/useradmin`;\r\n const data: any = {};\r\n data.email = email;\r\n data.status = status;\r\n data.userName = userName;\r\n data.city = city;\r\n data.office = office;\r\n return this.httpClient.post(url, data).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Guardando el usuario ${email}`);\r\n return [];\r\n })\r\n );\r\n }\r\n}\r\n","import { DeleteRoleApiResponse } from './../models/delete-role-api-response.model';\r\nimport { RolesApiResponse } from './../models/roles-api-response.model';\r\nimport { BaseService } from './base.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Role } from '../models/role.model';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RolesService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private baseService: BaseService\r\n ) {}\r\n\r\n getRoles(\r\n page?: number,\r\n limit?: number,\r\n sort?: string,\r\n viewOnlyActive?: boolean\r\n ): Observable {\r\n const url = `${this.baseService.hostDomain}/api/roles`;\r\n const data: any = {};\r\n if (page) {\r\n data.page = page;\r\n }\r\n if (limit) {\r\n data.limit = limit;\r\n }\r\n if (sort) {\r\n data.sort = sort;\r\n }\r\n if (viewOnlyActive) {\r\n data.viewOnlyActive = viewOnlyActive;\r\n }\r\n return this.httpClient.get(url, { params: data }).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando los roles');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n toggleRoleStatus(roleName: string) {\r\n const url = `${this.baseService.hostDomain}/api/roles/${roleName}`;\r\n return this.httpClient.delete(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando las rutas');\r\n return [];\r\n })\r\n );\r\n }\r\n}\r\n","import { BranchApiResponse } from './../models/branch-api-response.model';\r\nimport { BaseService } from './base.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { Branch } from '../models/branch.model';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BranchesService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private baseService: BaseService\r\n ) {}\r\n\r\n getBranches(\r\n page?: number,\r\n limit?: number,\r\n sort?: string,\r\n viewOnlyActive?: boolean\r\n ): Observable {\r\n const url = `${this.baseService.hostDomain}/api/branches`;\r\n const data: any = {};\r\n if (page) {\r\n data.page = page;\r\n }\r\n if (limit) {\r\n data.limit = limit;\r\n }\r\n if (sort) {\r\n data.sort = sort;\r\n }\r\n // if (viewOnlyActive) { data.viewOnlyActive = viewOnlyActive; }\r\n return this.httpClient.get(url, { params: data }).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando las sucursales');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n deleteBranches(id: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/branches`;\r\n const data: any = {};\r\n data.id = id;\r\n return this.httpClient.delete(url, { params: data }).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Borrando sucursal');\r\n return [];\r\n })\r\n );\r\n }\r\n}\r\n","
Detalle de usuario
\r\n
\r\n

Datos de Usuario

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n

Roles

\r\n
0\">\r\n
\r\n {{role.roleName}}\r\n
\r\n
\r\n\r\n

Sucursales

\r\n\r\n
0\">\r\n
\r\n {{branch.name}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n cancel Cancelar\r\n
\r\n","import { BranchApiResponse } from './../../models/branch-api-response.model';\r\nimport { Subscription } from 'rxjs';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UserAdminService } from './../../services/user-admin.service';\r\nimport { UsrInfo } from './../../models/usr-info.model';\r\nimport { FormBuilder, FormGroup, FormArray } from '@angular/forms';\r\nimport { Branch } from './../../models/branch.model';\r\nimport { RolesService } from './../../services/roles.service';\r\nimport { BranchesService } from './../../services/branches.service';\r\nimport { Role } from '../../models/role.model';\r\nimport { RolesApiResponse } from '../../models/roles-api-response.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nimport { NavigateService } from '../../services/navigate.service';\r\n\r\n@Component({\r\n selector: 'app-admin-user-detail',\r\n templateUrl: './admin-user-detail.component.html',\r\n styleUrls: ['./admin-user-detail.component.scss']\r\n})\r\nexport class AdminUserDetailComponent implements OnInit {\r\n rolesResp: RolesApiResponse;\r\n branchesResp: BranchApiResponse;\r\n email: string;\r\n user: UsrInfo;\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private userAdminService: UserAdminService,\r\n public navigate: NavigateService,\r\n private rolesService: RolesService,\r\n private branchesService: BranchesService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {}\r\n\r\n onNoClick() {\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnInit() {\r\n this.user = this.data.userInfo;\r\n this.rolesService.getRoles().subscribe(data => this.setupRoles(data));\r\n this.branchesService\r\n .getBranches()\r\n .subscribe(data => this.setupBranches(data));\r\n }\r\n\r\n setupRoles(rolesResp: RolesApiResponse) {\r\n for (const role of rolesResp.roles) {\r\n for (const userRole of this.user.roles) {\r\n if (role.roleName === userRole.roleName) {\r\n role.checked = true;\r\n }\r\n }\r\n }\r\n this.rolesResp = rolesResp;\r\n }\r\n\r\n setupBranches(branchesResp: BranchApiResponse) {\r\n for (const branch of branchesResp.branches) {\r\n for (const userBranch of this.user.branches) {\r\n if (branch.id === userBranch.id) {\r\n branch.checked = true;\r\n }\r\n }\r\n }\r\n this.branchesResp = branchesResp;\r\n }\r\n\r\n saveChanges() {\r\n const activeBranches = this.branchesResp.branches.filter(q => q.checked === true).map(p => p.id);\r\n const activeRoles = this.rolesResp.roles.filter(q => q.checked === true).map(p => p.roleName);\r\n this.userAdminService.updateUserInfo(this.user.email,\r\n this.user.status,\r\n this.user.userName,\r\n this.user.city,\r\n this.user.office).subscribe();\r\n this.userAdminService.saveUserInfo(activeRoles, activeBranches, this.user.email).subscribe(data => this.onNoClick());\r\n }\r\n}\r\n","\r\nimport { DataSource } from '@angular/cdk/table';\r\nimport { CollectionViewer } from '@angular/cdk/collections';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\n\r\nimport { UsrInfo } from './../models/usr-info.model';\r\nimport { UserAdminService } from './../services/user-admin.service';\r\nimport { delay, map, finalize } from 'rxjs/operators';\r\n\r\nexport class UserAdminDataSource implements DataSource {\r\n private usersSubject = new BehaviorSubject([]);\r\n private loadingSubject = new BehaviorSubject(false);\r\n\r\n public loading$ = this.loadingSubject.asObservable();\r\n count: number;\r\n constructor(private useradminService: UserAdminService) {}\r\n\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n return this.usersSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.usersSubject.complete();\r\n this.loadingSubject.complete();\r\n }\r\n\r\n loadUsers(\r\n page?: number,\r\n limit?: number,\r\n sort?: string,\r\n viewOnlyActive?: boolean\r\n ) {\r\n this.loadingSubject.next(true);\r\n this.useradminService\r\n .getUsers(page, limit, sort, viewOnlyActive)\r\n .pipe(\r\n map(val => {\r\n this.count = val.count;\r\n return val.users;\r\n }),\r\n finalize(() => this.loadingSubject.next(false))\r\n )\r\n .subscribe(p => this.usersSubject.next(p));\r\n }\r\n}\r\n","import { Branch } from '../models/branch.model';\r\nimport { Role } from '../models/role.model';\r\n\r\nexport interface UsrInfo {\r\n email: string;\r\n userName: string;\r\n city: string;\r\n office: string;\r\n status: string;\r\n updated?: Date;\r\n updatedBy?: string;\r\n branches: Branch[];\r\n roles: Role[];\r\n}\r\n\r\nexport class UsrInfoC implements UsrInfo {\r\n email: string = null;\r\n userName: string = null;\r\n city: string = null;\r\n office: string = null;\r\n status: string = null;\r\n updated?: Date = null;\r\n updatedBy?: string = null;\r\n branches: Branch[] = [];\r\n roles: Role[] = [];\r\n}\r\n","
Crear usuario
\r\n
\r\n
\r\n

Usuario

\r\n
\r\n \r\n \r\n \r\n
\r\n

Roles

\r\n
0\">\r\n
\r\n {{role.roleName}}\r\n
\r\n
\r\n

Sucursales

\r\n
0\">\r\n
\r\n {{branch.name}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n cancel Cancelar\r\n \r\n
\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { RolesApiResponse } from '../../models/roles-api-response.model';\r\nimport { BranchApiResponse } from '../../models/branch-api-response.model';\r\nimport { UsrInfo, UsrInfoC } from '../../models/usr-info.model';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UserAdminService } from '../../services/user-admin.service';\r\nimport { NavigateService } from '../../services/navigate.service';\r\nimport { RolesService } from '../../services/roles.service';\r\nimport { BranchesService } from '../../services/branches.service';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-admin-user-create',\r\n templateUrl: './admin-user-create.component.html',\r\n styleUrls: ['./admin-user-create.component.scss']\r\n})\r\nexport class AdminUserCreateComponent implements OnInit {\r\n rolesResp: RolesApiResponse;\r\n branchesResp: BranchApiResponse;\r\n email: string;\r\n user: UsrInfo;\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private userAdminService: UserAdminService,\r\n public navigate: NavigateService,\r\n private rolesService: RolesService,\r\n private branchesService: BranchesService,\r\n public dialogRef: MatDialogRef\r\n ) {}\r\n\r\n onNoClick() {\r\n this.dialogRef.close();\r\n }\r\n\r\n ngOnInit() {\r\n this.user = new UsrInfoC();\r\n this.rolesService.getRoles().subscribe(data => this.setupRoles(data));\r\n this.branchesService\r\n .getBranches()\r\n .subscribe(data => this.setupBranches(data));\r\n }\r\n\r\n setupRoles(rolesResp: RolesApiResponse) {\r\n for (const role of rolesResp.roles) {\r\n for (const userRole of this.user.roles) {\r\n if (role.roleName === userRole.roleName) {\r\n role.checked = true;\r\n }\r\n }\r\n }\r\n this.rolesResp = rolesResp;\r\n }\r\n\r\n setupBranches(branchesResp: BranchApiResponse) {\r\n for (const branch of branchesResp.branches) {\r\n for (const userBranch of this.user.branches) {\r\n if (branch.id === userBranch.id) {\r\n branch.checked = true;\r\n }\r\n }\r\n }\r\n this.branchesResp = branchesResp;\r\n }\r\n\r\n saveChanges() {\r\n this.userAdminService.saveUser(this.user).subscribe(v => {\r\n const activeBranches = this.branchesResp.branches\r\n .filter(q => q.checked === true)\r\n .map(p => p.id);\r\n const activeRoles = this.rolesResp.roles\r\n .filter(q => q.checked === true)\r\n .map(p => p.roleName);\r\n if (activeBranches.length > 0 || activeRoles.length > 0) {\r\n this.userAdminService\r\n .saveUserInfo(activeRoles, activeBranches, this.user.email)\r\n .subscribe(data => this.onNoClick());\r\n } else {\r\n this.onNoClick();\r\n }\r\n });\r\n }\r\n}\r\n","\r\n \r\n
Administrador de usuarios
\r\n Ver Sólo Activos\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Email \r\n {{element.email}} \r\n \r\n \r\n \r\n Estado \r\n {{element.status}} \r\n \r\n \r\n Fecha Actualización \r\n {{element.updated | date: 'yyyy/MM/dd HH:mm:ss'}} \r\n \r\n \r\n Actualizado por \r\n {{element.updatedBy}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { AdminUserDetailComponent } from './../../components/admin-user-detail/admin-user-detail.component';\r\nimport { UserAdminService } from './../../services/user-admin.service';\r\nimport { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';\r\n\r\nimport { UserAdminDataSource } from './../../datasources/user-admin-data-source';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { UsrInfo } from './../../models/usr-info.model';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { tap } from 'rxjs/operators';\r\nimport { AdminUserCreateComponent } from '../admin-user-create/admin-user-create.component';\r\n\r\n@Component({\r\n selector: 'app-admin-users',\r\n templateUrl: './admin-users.component.html',\r\n styleUrls: ['./admin-users.component.scss']\r\n})\r\nexport class AdminUsersComponent implements OnInit, AfterViewInit {\r\n dataSource: UserAdminDataSource;\r\n displayedColumns = ['email', 'status', 'updatedBy', 'updated', 'actions'];\r\n\r\n selection = new SelectionModel(true, []);\r\n viewOnlyActive = true;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private userAdminService: UserAdminService,\r\n public dialog: MatDialog\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.dataSource = new UserAdminDataSource(this.userAdminService);\r\n this.dataSource.loadUsers();\r\n }\r\n ngAfterViewInit() {\r\n this.sort.sortChange.subscribe(() => {\r\n this.paginator.pageIndex = 0;\r\n this.loadUsers();\r\n });\r\n this.paginator.page.pipe(tap(() => this.loadUsers())).subscribe();\r\n }\r\n\r\n loadUsers() {\r\n this.dataSource.loadUsers(\r\n this.paginator.pageIndex + 1,\r\n this.paginator.pageSize,\r\n (this.sort.direction === 'desc' ? '-' : '') + this.sort.active,\r\n this.viewOnlyActive\r\n );\r\n }\r\n\r\n changeOnlyActive() {\r\n this.viewOnlyActive = !this.viewOnlyActive;\r\n this.loadUsers();\r\n }\r\n\r\n deleteUser(user: UsrInfo) {\r\n user.status = 'D';\r\n }\r\n\r\n restoreUser(user: UsrInfo) {\r\n user.status = 'A';\r\n }\r\n\r\n openDetailDialog(user: UsrInfo): void {\r\n const dialogRef = this.dialog.open(AdminUserDetailComponent, {\r\n width: '700px',\r\n data: { userInfo: user },\r\n autoFocus: false\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadUsers();\r\n });\r\n }\r\n\r\n openCreateDialog(): void {\r\n const dialogRef = this.dialog.open(AdminUserCreateComponent, {\r\n width: '700px',\r\n autoFocus: false\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadUsers();\r\n });\r\n }\r\n\r\n toggleUserStatus(user: UsrInfo) {\r\n if (user.status === 'A') {\r\n user.status = 'D';\r\n } else {\r\n user.status = 'A';\r\n }\r\n this.userAdminService.updateUserInfo(user.email, user.status, user.userName, user.city, user.office).subscribe();\r\n }\r\n}\r\n","import { DataSource } from '@angular/cdk/table';\r\nimport { CollectionViewer } from '@angular/cdk/collections';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\n\r\nimport { Branch } from './../models/branch.model';\r\nimport { BranchesService } from '../services/branches.service';\r\nimport { delay, map, finalize } from 'rxjs/operators';\r\n\r\n\r\nexport class BranchesDataSource implements DataSource {\r\n private branchesSubject = new BehaviorSubject([]);\r\n private loadingSubject = new BehaviorSubject(false);\r\n\r\n public loading$ = this.loadingSubject.asObservable();\r\n count: number;\r\n constructor(private branchesService: BranchesService) { }\r\n\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n return this.branchesSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.branchesSubject.complete();\r\n this.loadingSubject.complete();\r\n }\r\n\r\n loadBranches(\r\n page?: number,\r\n limit?: number,\r\n sort?: string,\r\n viewOnlyActive?: boolean\r\n ) {\r\n this.loadingSubject.next(true);\r\n this.branchesService\r\n .getBranches(page, limit, sort, viewOnlyActive)\r\n .pipe(\r\n map(val => {\r\n this.count = val.count;\r\n return val.branches;\r\n\r\n }),\r\n finalize(() => this.loadingSubject.next(false))\r\n )\r\n .subscribe(p => this.branchesSubject.next(p));\r\n }\r\n\r\n deleteBranches(\r\n id: string\r\n ) {\r\n this.loadingSubject.next(true);\r\n this.branchesService.deleteBranches(id).pipe(\r\n finalize(() => this.loadingSubject.next(false))\r\n );\r\n }\r\n}\r\n","\r\n \r\n
Administrador de sucursales
\r\n \r\n
\r\n \r\n \r\n \r\n Id \r\n {{element.id}} \r\n \r\n \r\n Nombre \r\n {{element.name}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n","import { BranchesService } from './../../services/branches.service';\r\nimport { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';\r\n\r\nimport { BranchesDataSource } from '../../datasources/branches-data-source';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { Branch } from '../../models/branch.model';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-admin-branches',\r\n templateUrl: './admin-branches.component.html',\r\n styleUrls: ['./admin-branches.component.scss']\r\n})\r\nexport class AdminBranchesComponent implements OnInit, AfterViewInit {\r\n\r\n dataSource: BranchesDataSource;\r\n displayedColumns = [\r\n 'id',\r\n 'name',\r\n 'actions'\r\n ];\r\n selection = new SelectionModel(true, []);\r\n viewOnlyActive = true;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n // @ViewChild(MatSort) sort: MatSort;\r\n constructor(private branchesService: BranchesService) {}\r\n\r\n ngOnInit() {\r\n this.dataSource = new BranchesDataSource(this.branchesService);\r\n this.dataSource.loadBranches();\r\n }\r\n\r\n ngAfterViewInit() {\r\n // this.sort.sortChange.subscribe(() => {\r\n // this.paginator.pageIndex = 0;\r\n // this.loadBranches();\r\n // });\r\n this.paginator.page.pipe(tap(() => this.loadBranches())).subscribe();\r\n }\r\n\r\n loadBranches() {\r\n this.dataSource.loadBranches(\r\n this.paginator.pageIndex + 1,\r\n this.paginator.pageSize,\r\n null,\r\n this.viewOnlyActive\r\n );\r\n }\r\n\r\n deleteBranch(id: string) {\r\n this.dataSource.deleteBranches(id);\r\n }\r\n\r\n}\r\n","import { RoutesApiResponse } from './../models/route-api-response.model';\r\nimport { BaseService } from './base.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { ServerRoute } from './../models/server-route.model';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ServerRoutesService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private baseService: BaseService\r\n ) {}\r\n\r\n getRoutes(): Observable {\r\n const url = `${this.baseService.hostDomain}/api/routes`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando las rutas');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n saveRoutes(roleName: string, routes: string[]) {\r\n const url = `${this.baseService.hostDomain}/api/roles/${roleName}/routes`;\r\n const data: any = {};\r\n data.roleName = roleName;\r\n data.routeIds = routes;\r\n return this.httpClient.post(url, data).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Guardando rutas');\r\n return [];\r\n })\r\n );\r\n }\r\n}\r\n","
Detalle de Rol
\r\n
\r\n
\r\n
\r\n {{route.routeName}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n cancel Cancelar\r\n
\r\n","import { ServerRoutesService } from './../../services/server-routes.service';\r\nimport { RoutesApiResponse } from './../../models/route-api-response.model';\r\nimport { ServerRoute } from './../../models/server-route.model';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Role } from '../../models/role.model';\r\n\r\n\r\n@Component({\r\n selector: 'app-admin-roles-detail',\r\n templateUrl: './admin-roles-detail.component.html',\r\n styleUrls: ['./admin-roles-detail.component.scss']\r\n})\r\nexport class AdminRolesDetailComponent implements OnInit {\r\n role: Role;\r\n routesResp: RoutesApiResponse;\r\n constructor( public dialogRef: MatDialogRef,\r\n private routesService: ServerRoutesService,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit() {\r\n this.role = this.data.roleInfo;\r\n this.routesService.getRoutes().subscribe(data => this.setupRoutes(data));\r\n }\r\n\r\n setupRoutes(routesResp: RoutesApiResponse) {\r\n for (const route of routesResp.routes) {\r\n for (const roleRoutes of this.role.routes) {\r\n if (route.routeName === roleRoutes.routeName) {\r\n route.checked = true;\r\n }\r\n }\r\n }\r\n this.routesResp = routesResp;\r\n }\r\n\r\n close() {\r\n this.dialogRef.close();\r\n }\r\n\r\n saveChanges() {\r\n const activeRoutes = this.routesResp.routes.filter(q => q.checked === true).map(p => p.routeId);\r\n this.routesService.saveRoutes(this.role.roleName, activeRoutes).subscribe(data => this.close());\r\n }\r\n}\r\n","import { DataSource } from '@angular/cdk/table';\r\nimport { CollectionViewer } from '@angular/cdk/collections';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\n\r\nimport { Role } from './../models/role.model';\r\nimport { RolesService } from '../services/roles.service';\r\nimport { delay, map, finalize } from 'rxjs/operators';\r\n\r\nexport class RolesDataSource implements DataSource {\r\n private rolesSubject = new BehaviorSubject([]);\r\n private loadingSubject = new BehaviorSubject(false);\r\n\r\n public loading$ = this.loadingSubject.asObservable();\r\n count: number;\r\n constructor(private rolesService: RolesService) {}\r\n\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n return this.rolesSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.rolesSubject.complete();\r\n this.loadingSubject.complete();\r\n }\r\n\r\n loadRoles(\r\n page?: number,\r\n limit?: number,\r\n sort?: string,\r\n viewOnlyActive?: boolean\r\n ) {\r\n this.loadingSubject.next(true);\r\n this.rolesService\r\n .getRoles(page, limit, sort, viewOnlyActive)\r\n .pipe(\r\n map(val => {\r\n this.count = val.count;\r\n return val.roles;\r\n }),\r\n finalize(() => this.loadingSubject.next(false))\r\n )\r\n .subscribe(p => this.rolesSubject.next(p));\r\n }\r\n}\r\n","\r\n \r\n
Administrador de roles
\r\n Ver Sólo Activos\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Nombre \r\n {{element.roleName}} \r\n \r\n \r\n \r\n Estado \r\n {{element.status}} \r\n \r\n \r\n Fecha Actualización \r\n {{element.updated | date: 'yyyy/MM/dd HH:mm:ss'}} \r\n \r\n \r\n Actualizado por \r\n {{element.updatedBy}} \r\n \r\n \r\n \r\n \r\n \r\n edit\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { DeleteRoleApiResponse } from './../../models/delete-role-api-response.model';\r\nimport { AdminRolesDetailComponent } from './../admin-roles-detail/admin-roles-detail.component';\r\nimport { RolesService } from './../../services/roles.service';\r\nimport { Component, OnInit, ViewChild, AfterViewInit } from '@angular/core';\r\n\r\nimport { RolesDataSource } from '../../datasources/roles-data-source';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { Role } from '../../models/role.model';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { tap } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-admin-roles',\r\n templateUrl: './admin-roles.component.html',\r\n styleUrls: ['./admin-roles.component.scss']\r\n})\r\nexport class AdminRolesComponent implements OnInit, AfterViewInit {\r\n dataSource: RolesDataSource;\r\n displayedColumns = ['roleName', 'status', 'updatedBy', 'updated', 'actions'];\r\n\r\n selection = new SelectionModel(true, []);\r\n viewOnlyActive = true;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private rolesService: RolesService, public dialog: MatDialog) {}\r\n\r\n ngOnInit() {\r\n this.dataSource = new RolesDataSource(this.rolesService);\r\n this.dataSource.loadRoles(null, null, null, true);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sort.sortChange.subscribe(() => {\r\n this.paginator.pageIndex = 0;\r\n this.loadRoles();\r\n });\r\n this.paginator.page.pipe(tap(() => this.loadRoles())).subscribe();\r\n }\r\n\r\n loadRoles() {\r\n this.dataSource.loadRoles(\r\n this.paginator.pageIndex + 1,\r\n this.paginator.pageSize,\r\n (this.sort.direction === 'desc' ? '-' : '') + this.sort.active,\r\n this.viewOnlyActive\r\n );\r\n }\r\n\r\n changeOnlyActive() {\r\n this.viewOnlyActive = !this.viewOnlyActive;\r\n this.loadRoles();\r\n }\r\n\r\n editRole(role: Role) {\r\n const dialogRef = this.dialog.open(AdminRolesDetailComponent, {\r\n width: '',\r\n data: { roleInfo: role },\r\n autoFocus: false\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadRoles();\r\n });\r\n }\r\n\r\n toggleRole(role: Role) {\r\n this.rolesService.toggleRoleStatus(role.roleName).subscribe(data => {\r\n if (data.success) {\r\n if (role.status === 'A') {\r\n role.status = 'D';\r\n } else {\r\n role.status = 'A';\r\n }\r\n }\r\n });\r\n }\r\n // restoreRole(role: Role) {\r\n // role.status = 'A';\r\n // }\r\n}\r\n","
\r\n \r\n
\r\n \r\n arrow_back\r\n \r\n
\r\n Edición de producto\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Activo\r\n Desactivado\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ¿Se imprime en el periódico?\r\n
\r\n
\r\n

Campos:

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Editor HTML\r\n Textarea\r\n \r\n \r\n \r\n \r\n \r\n
\r\n Imprimir título\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n cancel Cancelar\r\n \r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ProductsService } from '../../services/products.service';\r\nimport { Product } from '../../models/product.model';\r\nimport { FormBuilder, FormGroup, FormArray } from '@angular/forms';\r\nimport { ProductField } from '../../models/product-field.model';\r\nimport { NavigateService } from '../../services/navigate.service';\r\n\r\n@Component({\r\n selector: 'app-product-new',\r\n templateUrl: './product-new.component.html',\r\n styleUrls: ['./product-new.component.scss']\r\n})\r\nexport class ProductNewComponent {\r\n code: string;\r\n product: Product;\r\n productForm: FormGroup;\r\n constructor(\r\n private productService: ProductsService,\r\n private fb: FormBuilder,\r\n public navigate: NavigateService,\r\n private router: Router\r\n ) {\r\n this.createForm();\r\n }\r\n\r\n private createForm() {\r\n this.productForm = this.fb.group({\r\n productCode: '',\r\n productDescription: '',\r\n status: '',\r\n sort: 0,\r\n headerImage: '',\r\n legalReference: '',\r\n isPrintable: false,\r\n fields: this.fb.array([])\r\n });\r\n }\r\n\r\n private rebuildForm() {\r\n this.productForm.reset({\r\n productDescription: this.product.productDescription,\r\n status: this.product.status,\r\n sort: this.product.sort,\r\n headerImage: this.product.headerImage,\r\n isPrintable: this.product.isPrintable,\r\n legalReference: this.product.legalReference\r\n });\r\n this.setFields(this.product.fields);\r\n }\r\n\r\n get fields(): FormArray {\r\n return this.productForm.get('fields') as FormArray;\r\n }\r\n\r\n private setFields(fields: ProductField[]) {\r\n this.productForm.setControl(\r\n 'fields',\r\n this.fb.array(fields.map(f => this.fb.group(f)))\r\n );\r\n }\r\n\r\n private prepareSaveProduct(): Product {\r\n const formModel = this.productForm.value;\r\n\r\n const fieldsDeepCopy: ProductField[] = formModel.fields.map(\r\n (p: ProductField) => Object.assign({}, p)\r\n );\r\n\r\n const saveProduct: Product = {\r\n productCode: formModel.productCode as string,\r\n productDescription: formModel.productDescription as string,\r\n status: formModel.status as string,\r\n sort: formModel.sort as number,\r\n headerImage: formModel.headerImage as string,\r\n legalReference: formModel.legalReference as string,\r\n fields: fieldsDeepCopy,\r\n isPrintable: formModel.isPrintable as boolean\r\n };\r\n return saveProduct;\r\n }\r\n\r\n addField() {\r\n this.fields.push(this.fb.group(new ProductField('', '', 1, false, '')));\r\n }\r\n\r\n spliceField(idx: number) {\r\n this.fields.removeAt(idx);\r\n }\r\n\r\n onSubmit() {\r\n this.productService.saveProduct(this.prepareSaveProduct()).subscribe(v => {\r\n this.router.navigateByUrl('/administrador/productos');\r\n });\r\n }\r\n revert() {\r\n this.rebuildForm();\r\n }\r\n}\r\n","import { EditionsApiResponse } from './../models/editions-api-response';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\n\r\nimport { EditionHeader } from '../models/edition-header.model';\r\nimport { BaseService } from './base.service';\r\nimport { Edition } from '../models/edition.model';\r\nimport { Moment } from 'moment';\r\n\r\n@Injectable()\r\nexport class EditionsService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private baseService: BaseService\r\n ) {}\r\n\r\n getEditionHeader(startDate?: Date): Observable {\r\n const url = `${this.baseService.hostDomain}/api/editions/bystatistics`;\r\n return this.httpClient\r\n .post(url, {\r\n startDate: startDate\r\n })\r\n .pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Obteniendo la edición actual');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n getEditionByDate(queryDate: Date): Observable {\r\n const url = `${this.baseService.hostDomain}/api/editions/bydate`;\r\n return this.httpClient\r\n .post(url, {\r\n startDate: queryDate\r\n })\r\n .pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Consultando la edición');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n getEdition(id: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/editions/${id}`;\r\n return this.httpClient.get(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Consultando la edición');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n getEditionsPag(\r\n page?: number,\r\n limit?: number\r\n ): Observable {\r\n const url = `${this.baseService.hostDomain}/api/editions`;\r\n const data: any = {};\r\n if (page) {\r\n data.page = page;\r\n }\r\n if (limit) {\r\n data.limit = limit;\r\n }\r\n return this.httpClient.get(url, { params: data }).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando las ediciones');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n createEdition(startDate: Moment, endDate: Moment, closeDate: Moment) {\r\n const url = `${this.baseService.hostDomain}/api/editions`;\r\n const data: any = {};\r\n data.startDate = startDate;\r\n data.endDate = endDate;\r\n data.closeDate = closeDate;\r\n return this.httpClient.post(url, data).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Guardando edicion`);\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n deleteEdition(id: string) {\r\n const url = `${this.baseService.hostDomain}/api/editions/delete/${id}`;\r\n return this.httpClient.delete(url).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, `Borrando edicion`);\r\n return [];\r\n })\r\n );\r\n }\r\n}\r\n","\r\n Exportar Para Diseño\r\n Seleccione la fecha de la edición a generar.\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Para la fecha seleccionada no se han encontrado ediciones.
\r\n
\r\n
\r\n
\r\n
\r\n","import { Edition } from './../../models/edition.model';\r\nimport { Moment } from 'moment';\r\nimport { Component } from '@angular/core';\r\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { EditionsService } from '../../services/editions.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-main-publish',\r\n templateUrl: './main-publish.component.html',\r\n styleUrls: ['./main-publish.component.scss']\r\n})\r\nexport class MainPublishComponent {\r\n selectedDate: Moment;\r\n edition: Edition;\r\n exist = true;\r\n constructor(\r\n private editionService: EditionsService,\r\n private router: Router\r\n ) { }\r\n\r\n onChange($event: MatDatepickerInputEvent) {\r\n this.selectedDate = $event.value;\r\n this.editionService\r\n .getEditionByDate($event.value.toDate())\r\n .subscribe(v => {\r\n this.edition = v;\r\n this.exist = !(!this.edition);\r\n if (this.exist) {\r\n this.router.navigateByUrl(`/exportar/${this.edition.id}`);\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { BaseService } from './base.service';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { PublishStatusApiResponse } from '../models/publish-status-api-response.model';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class PublishService {\r\n constructor(\r\n private httpClient: HttpClient,\r\n private baseService: BaseService\r\n ) {}\r\n\r\n getPublishStatus(editionId: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/export/status`;\r\n return this.httpClient.post(url, {\r\n editionId: editionId\r\n }).pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Consultando la edición');\r\n return [];\r\n })\r\n );\r\n }\r\n}\r\n","\r\n \r\n \r\n 1\">\r\n Edición: \r\n {{edition.publishDates[0] | date: 'dd MMMM \\'de\\' yyyy'}} \r\n al \r\n {{edition.publishDates[edition.publishDates.length -1] | date: 'dd MMMM \\'de\\' yyyy'}} \r\n \r\n \r\n Edición: \r\n {{edition.publishDates[0] | date: 'dd MMMM \\'de\\' yyyy'}} \r\n \r\n
\r\n \r\n
\r\n \r\n Edición ya publicada el {{data.publishLogging.publishTime | date: 'dd MMMM \\'de\\' yyyy \\'a las\\' HH:mm:ss'}}. {{data.publishLogging.total}}\r\n documentos publicados por {{data.publishLogging.userName}}\r\n \r\n \r\n Esta edición aún no ha sido publicada\r\n \r\n \r\n
\r\n
No hay ningún edicto para exportar en esta edición
\r\n
\r\n\r\n
\r\n \r\n Seleccione la familia de documentos a exportar\r\n
\r\n
\r\n
\r\n
\r\n
{{totalDocuments}}
\r\n \r\n Seleccionar Todos\r\n \r\n
\r\n
\r\n
{{item.quantity}}
\r\n \r\n {{item.productDescription}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Aún faltan {{data.pendingDocumentsCount}} por digitar en esta edición puede\r\n \r\n
\r\n Definitivo\r\n
\r\n \r\n description Borrador\r\n
\r\n
\r\n","import { EditionsService } from './../../services/editions.service';\r\nimport { Edition } from './../../models/edition.model';\r\nimport { PublishStatusApiResponse } from './../../models/publish-status-api-response.model';\r\nimport { PublishService } from './../../services/publish.service';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MatCheckboxChange } from '@angular/material/checkbox';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { ProductStatistics } from '../../models/product-statistics.model';\r\nimport { HttpParams } from '@angular/common/http';\r\n\r\n@Component({\r\n selector: 'app-publish-edition',\r\n templateUrl: './publish-edition.component.html',\r\n styleUrls: ['./publish-edition.component.scss']\r\n})\r\nexport class PublishEditionComponent implements OnInit {\r\n id: string;\r\n data: PublishStatusApiResponse;\r\n edition: Edition;\r\n totalDocuments: number;\r\n selection = new SelectionModel(true, []);\r\n omitInProgressDocuments = false;\r\n draftHref: string;\r\n definitiveHref: string;\r\n hasProducts: boolean;\r\n constructor(\r\n private activatedRoute: ActivatedRoute,\r\n private publishService: PublishService,\r\n private editionService: EditionsService,\r\n private router: Router\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.id = this.activatedRoute.snapshot.paramMap.get('id');\r\n this.refresh();\r\n }\r\n\r\n refresh() {\r\n this.getEdition();\r\n this.getPublish();\r\n }\r\n\r\n getPublish() {\r\n this.publishService.getPublishStatus(this.id).subscribe(v => {\r\n this.data = v;\r\n this.hasProducts = v.products && v.products.length > 0;\r\n if (this.hasProducts) {\r\n this.totalDocuments = v.products\r\n .map(r => r.quantity)\r\n .reduce((a, b) => a + b);\r\n }\r\n });\r\n }\r\n\r\n getEdition() {\r\n this.editionService.getEdition(this.id).subscribe(v => (this.edition = v));\r\n }\r\n\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.data.products.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle() {\r\n this.isAllSelected()\r\n ? this.selection.clear()\r\n : this.data.products.forEach(row => this.selection.select(row));\r\n this.updateHref();\r\n }\r\n\r\n updateHref() {\r\n const d: any = {};\r\n d.editionId = this.edition.id;\r\n d.selectedProducts = this.selection.selected.map(v => v.productCode);\r\n const query: HttpParams = new HttpParams({ fromObject: d });\r\n this.draftHref = `/generar?${query.toString()}`;\r\n this.definitiveHref = `/generar-definitivo?${query.toString()}`;\r\n }\r\n\r\n goBack() {\r\n this.router.navigateByUrl(`/exportar`);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n CanActivate,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n Router\r\n} from '@angular/router';\r\nimport { UserService } from './user.service';\r\n\r\n@Injectable()\r\nexport class AuthGuardService implements CanActivate {\r\n constructor(private userService: UserService, private router: Router) {}\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (!this.userService.isLoggedIn) {\r\n this.userService.redirectUrl = state.url;\r\n this.router.navigate(['/ingresar']);\r\n return false;\r\n }\r\n const authorized = this.userService.user.routes.some(v => v.url === `/${route.routeConfig.path}`);\r\n if (!authorized) {\r\n this.router.navigate(['/no-autorizado']);\r\n return false;\r\n }\r\n return authorized;\r\n }\r\n}\r\n","\r\n Validando la información del usuario\r\n \r\n \r\n \r\n\r\n\r\n Ingreso\r\n Para ingresar a la herramienta debe tener una cuenta de Google con los permisos necesarios. Si aún no dispone de esa cuenta,\r\n debe realizar la solicitud a través de su jefe inmediato.\r\n \r\n
\r\n account_circle Ingresar\r\n
\r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { UserService } from '../../services/user.service';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent {\r\n loading = true;\r\n constructor(private userService: UserService, private router: Router) {\r\n this.userService.getUser().subscribe(v => {\r\n if (v) {\r\n this.userService.user = v;\r\n this.userService.isLoggedIn = true;\r\n const redirect = this.userService.redirectUrl\r\n ? this.userService.redirectUrl\r\n : '/';\r\n this.loading = false;\r\n this.userService.refreshStatus();\r\n this.router.navigate([redirect]);\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { NavigateService } from '../../services/navigate.service';\r\n\r\n@Component({\r\n selector: 'app-forbidden',\r\n templateUrl: './forbidden.component.html',\r\n styleUrls: ['./forbidden.component.scss']\r\n})\r\nexport class ForbiddenComponent {\r\n\r\n constructor(public navigateService: NavigateService) { }\r\n\r\n\r\n\r\n}\r\n","\r\n No está autorizado para acceder a esta página\r\n Si cree que debería tener acceso a esta característica, debe informalo a su jefe inmediato.\r\n \r\n \r\n \r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-no-access',\r\n templateUrl: './no-access.component.html',\r\n styleUrls: ['./no-access.component.scss']\r\n})\r\nexport class NoAccessComponent {\r\n\r\n constructor() { }\r\n\r\n}\r\n","\r\n No tiene permisos para acceder a la aplicación\r\n La cuenta seleccionada no tiene permisos para acceder a la aplicación. Si cree que es un error puede solicitar la verificación con su jefe inmediato.\r\n \r\n account_circle Ingresar con otra cuenta de google\r\n \r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-not-found',\r\n templateUrl: './not-found.component.html',\r\n styleUrls: ['./not-found.component.scss']\r\n})\r\nexport class NotFoundComponent {\r\n\r\n constructor() { }\r\n}\r\n","\r\n Página no encontrada\r\n La página a la que está intentando acceder no existe.\r\n \r\n homeIr al inicio\r\n \r\n\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-logout',\r\n templateUrl: './logout.component.html',\r\n styleUrls: ['./logout.component.scss']\r\n})\r\nexport class LogoutComponent {\r\n\r\n constructor() { }\r\n\r\n\r\n\r\n}\r\n","\r\n Ha cerrado sesión correctamente\r\n \r\n Ingresar\r\n \r\n\r\n","import { DataSource } from '@angular/cdk/table';\r\nimport { CollectionViewer } from '@angular/cdk/collections';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\n\r\nimport { Edition } from './../models/edition.model';\r\nimport { EditionsService } from './../services/editions.service';\r\nimport { delay, map, finalize } from 'rxjs/operators';\r\n\r\nexport class EditionsDataSource implements DataSource {\r\n private editionsSubject = new BehaviorSubject([]);\r\n private loadingSubject = new BehaviorSubject(false);\r\n\r\n public loading$ = this.loadingSubject.asObservable();\r\n count: number;\r\n constructor(private editionsService: EditionsService) {}\r\n\r\n connect(collectionViewer: CollectionViewer): Observable {\r\n return this.editionsSubject.asObservable();\r\n }\r\n\r\n disconnect(collectionViewer: CollectionViewer): void {\r\n this.editionsSubject.complete();\r\n this.loadingSubject.complete();\r\n }\r\n\r\n loadEditions(\r\n page?: number,\r\n limit?: number\r\n ) {\r\n this.loadingSubject.next(true);\r\n this.editionsService\r\n .getEditionsPag(page, limit)\r\n .pipe(\r\n map(val => {\r\n this.count = val.count;\r\n return val.editions;\r\n }),\r\n finalize(() => this.loadingSubject.next(false))\r\n )\r\n .subscribe(p => this.editionsSubject.next(p));\r\n }\r\n}\r\n","
Nueva edición
\r\n
\r\n

Seleccione fecha de inicio y fin de la edición

\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n

Seleccione fecha y hora de cierre

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n schedule\r\n \r\n {{hour}}\r\n \r\n \r\n {{minute}}\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n \r\n cancel Cancelar\r\n
\r\n","import { Moment } from 'moment';\r\n\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { EditionsService } from './../../services/editions.service';\r\n\r\n@Component({\r\n selector: 'app-admin-new-edition',\r\n templateUrl: './admin-new-edition.component.html',\r\n styleUrls: ['./admin-new-edition.component.scss']\r\n})\r\nexport class AdminNewEditionComponent implements OnInit {\r\n minutes: number[];\r\n hours: number[];\r\n startDate: Moment;\r\n endDate: Moment;\r\n closeDate: Moment;\r\n completeCloseDate: Moment;\r\n selectedHour: number;\r\n selectedMinute: number;\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private editionsService: EditionsService,\r\n public snackBar: MatSnackBar\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.minutes = [];\r\n this.hours = [];\r\n for (let i = 0; i < 4; i++) {\r\n this.minutes.push(i * 15);\r\n }\r\n for (let i = 0; i < 24; i++) {\r\n this.hours.push(i);\r\n }\r\n }\r\n\r\n onStartDateChange($event: MatDatepickerInputEvent) {\r\n this.startDate = $event.value;\r\n }\r\n\r\n onEndDateChange($event: MatDatepickerInputEvent) {\r\n this.endDate = $event.value;\r\n }\r\n\r\n onCloseDateChange($event: MatDatepickerInputEvent) {\r\n this.closeDate = $event.value;\r\n }\r\n\r\n validateDates() {\r\n if (this.closeDate > this.startDate) {\r\n this.snackBar.open(\r\n 'La fecha de cierre debe ser menor a la fecha de inicio',\r\n 'cerrar'\r\n );\r\n return false;\r\n } else {\r\n if (this.endDate < this.startDate) {\r\n this.snackBar.open(\r\n 'La fecha final debe ser menor a la fecha de inicio',\r\n 'cerrar'\r\n );\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n cancel() {\r\n this.dialogRef.close();\r\n }\r\n\r\n saveEdition() {\r\n if (this.validateDates()) {\r\n this.closeDate.hour(this.selectedHour);\r\n this.closeDate.minute(this.selectedMinute);\r\n this.editionsService\r\n .createEdition(this.startDate, this.endDate, this.closeDate)\r\n .subscribe(data => {\r\n if (data.success) {\r\n this.cancel();\r\n } else {\r\n this.snackBar.open(\r\n 'Ya existe una edicion con esta fecha de inicio',\r\n 'cerrar'\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n saveDisabled() {\r\n if (this.startDate && this.endDate && this.closeDate) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n}\r\n","\r\n \r\n
Administrador de ediciones
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n Fecha(s) \r\n \r\n
{{element.publishDates| date: 'yyyy/MM/dd'}}
\r\n
1\"> {{element.publishDates[0]| date: 'yyyy/MM/dd'}} - {{element.publishDates[element.publishDates.length -1] | date: 'yyyy/MM/dd'}}
\r\n
\r\n
\r\n \r\n \r\n Cierre \r\n {{element.closeDate | date: 'yyyy/MM/dd HH:mm aa'}} \r\n \r\n \r\n Estado \r\n {{element.status}} \r\n \r\n \r\n Cantidad Edictos \r\n {{element.count}} \r\n \r\n \r\n \r\n \r\n add\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n","import { EditionsService } from './../../services/editions.service';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n AfterViewInit,\r\n Inject\r\n} from '@angular/core';\r\n\r\nimport { EditionsDataSource } from './../../datasources/editions-data-source';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { Edition } from './../../models/edition.model';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { tap } from 'rxjs/operators';\r\nimport { AdminNewEditionComponent } from './../admin-new-edition/admin-new-edition.component';\r\n\r\n@Component({\r\n selector: 'app-admin-editions',\r\n templateUrl: './admin-editions.component.html',\r\n styleUrls: ['./admin-editions.component.scss']\r\n})\r\nexport class AdminEditionsComponent implements OnInit, AfterViewInit {\r\n dataSource: EditionsDataSource;\r\n displayedColumns = [\r\n 'publishDates',\r\n 'closeDate',\r\n 'status',\r\n 'count',\r\n 'actions'\r\n ];\r\n\r\n selection = new SelectionModel(true, []);\r\n viewOnlyActive = true;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(\r\n private editionsService: EditionsService,\r\n public dialog: MatDialog\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.dataSource = new EditionsDataSource(this.editionsService);\r\n this.dataSource.loadEditions(null, null);\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.sort.sortChange.subscribe(() => {\r\n this.paginator.pageIndex = 0;\r\n this.loadEditions();\r\n });\r\n this.paginator.page.pipe(tap(() => this.loadEditions())).subscribe();\r\n }\r\n\r\n loadEditions() {\r\n this.dataSource.loadEditions(\r\n this.paginator.pageIndex + 1,\r\n this.paginator.pageSize\r\n );\r\n }\r\n\r\n changeOnlyActive() {\r\n this.viewOnlyActive = !this.viewOnlyActive;\r\n this.loadEditions();\r\n }\r\n\r\n openNewEditionModule() {\r\n const dialogRef = this.dialog.open(AdminNewEditionComponent, {\r\n width: '600px',\r\n autoFocus: false\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadEditions();\r\n });\r\n }\r\n\r\n deleteEdition(id: string) {\r\n const dialogRef = this.dialog.open(ConfirmDeleteDialogComponent, {\r\n width: '300px',\r\n data: { editionId: id },\r\n autoFocus: true\r\n });\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.loadEditions();\r\n });\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-confirm-delete-dialog',\r\n templateUrl: 'confirm-delete-dialog.html',\r\n styleUrls: ['./admin-editions.component.scss']\r\n})\r\nexport class ConfirmDeleteDialogComponent implements OnInit {\r\n id: string;\r\n constructor(\r\n private editionsService: EditionsService,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.id = this.data.editionId;\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n deleteEdition() {\r\n this.editionsService.deleteEdition(this.id).subscribe(data => this.close());\r\n }\r\n}\r\n","
Borrar Edicion
\r\n
\r\n

Esta seguro de que desea eliminar esta edición?

\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { BaseService } from './base.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { SearchEdictRequest } from '../models/search-edict-request.model';\r\nimport { SearchEdictResponse } from '../models/search-edict-response.model';\r\nimport { Observable } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { DetailEdictResponse } from '../models/detail-edict-response.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CertService {\r\n\r\n constructor(\r\n private httpClient: HttpClient,\r\n private baseService: BaseService) { }\r\n\r\n searchEdicts(request: SearchEdictRequest): Observable {\r\n const url = `${this.baseService.hostDomain}/api/cert/search`;\r\n return this.httpClient\r\n .post(url, request)\r\n .pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Buscando edictos');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n getDetail(id: string): Observable {\r\n const url = `${this.baseService.hostDomain}/api/cert/detail/${id}`;\r\n return this.httpClient\r\n .get(url)\r\n .pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Retornando el detalle de edictos');\r\n return [];\r\n })\r\n );\r\n }\r\n\r\n downloadCert(id: string, publishDate: Date): Observable {\r\n return this.httpClient\r\n .get(`/api/cert/generate/${id}?publishDate=${publishDate}`, {\r\n responseType: 'blob',\r\n })\r\n .pipe(\r\n catchError(err => {\r\n if (!(err.error instanceof Blob)) {\r\n this.baseService.handleError(err, 'Descargando PDF de certificación de edicto');\r\n }\r\n return [err];\r\n })\r\n );\r\n }\r\n\r\n downloadCertError(err: any) {\r\n const reader = new FileReader();\r\n\r\n reader.onloadend = () => {\r\n const text = reader.result as string;\r\n this.baseService.customError(text);\r\n };\r\n reader.readAsText(err.error);\r\n }\r\n\r\n sendEmailCert(id: string, email: string, publishDate: Date): Observable {\r\n return this.httpClient\r\n .get(`/api/cert/sendemail/${id}?email=${email}&publishDate=${publishDate}`)\r\n .pipe(\r\n catchError(err => {\r\n this.baseService.handleError(err, 'Enviando email de certificación de edicto');\r\n return [err];\r\n })\r\n );\r\n }\r\n\r\n sendEmailCertError(errMsg: string) {\r\n this.baseService.customError(errMsg);\r\n }\r\n}\r\n","
\r\n \r\n \r\n Buscar Edicto\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Id \r\n {{element.id}} \r\n \r\n\r\n \r\n Fechas \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n Fragmento \r\n \r\n {{element.matchText}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { CertService } from '../../services/cert.service';\r\nimport { SearchEdictResponse } from '../../models/search-edict-response.model';\r\n\r\n@Component({\r\n selector: 'app-cert-index',\r\n templateUrl: './cert-index.component.html',\r\n styleUrls: ['./cert-index.component.scss']\r\n})\r\nexport class CertIndexComponent {\r\n searchForm = this.fb.group({\r\n term: [''],\r\n startDate: [],\r\n endDate: []\r\n });\r\n searchResults: SearchEdictResponse;\r\n displayedColumns = ['id', 'dates', 'match', 'actions'];\r\n constructor(private fb: FormBuilder,\r\n private certService: CertService) { }\r\n doSearch() {\r\n this.certService.searchEdicts(this.searchForm.value).subscribe(v => this.searchResults = v);\r\n }\r\n}\r\n","\r\n
\r\n \r\n arrow_back\r\n \r\n
\r\n \r\n
{{detailResponse.product}}
\r\n
\r\n
\r\n Fecha de publicación\r\n {{dt | date: 'MMM dd yyyy '}}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {{item.name}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {{item | date: 'MMM dd yyyy'}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { MainTypeComponent } from '../components/main-type/main-type.component';\r\nimport { MainHomeComponent } from '../components/main-home/main-home.component';\r\nimport { TypeOrderComponent } from '../components/type-order/type-order.component';\r\nimport { TypeOrderItemComponent } from '../components/type-order-item/type-order-item.component';\r\nimport { SearchEdictComponent } from '../components/search-edict/search-edict.component';\r\nimport { OrderComponent } from './../components/order/order.component';\r\nimport { OrderItemComponent } from '../components/order-item/order-item.component';\r\nimport { SearchValidateEdictComponent } from '../components/search-validate-edict/search-validate-edict.component';\r\nimport { ValidateOrderComponent } from '../components/validate-order/validate-order.component';\r\nimport { MainReportComponent } from '../components/main-report/main-report.component';\r\nimport { AdminProductsComponent } from '../components/admin-products/admin-products.component';\r\nimport { ProductDetailComponent } from '../components/product-detail/product-detail.component';\r\nimport { AdminUsersComponent } from '../components/admin-users/admin-users.component';\r\nimport { AdminBranchesComponent } from '../components/admin-branches/admin-branches.component';\r\nimport { AdminRolesComponent } from '../components/admin-roles/admin-roles.component';\r\nimport { AdminUserDetailComponent } from './../components/admin-user-detail/admin-user-detail.component';\r\nimport { ProductNewComponent } from '../components/product-new/product-new.component';\r\nimport { MainPublishComponent } from '../components/main-publish/main-publish.component';\r\nimport { PublishEditionComponent } from '../components/publish-edition/publish-edition.component';\r\nimport { AuthGuardService } from '../services/auth-guard.service';\r\nimport { LoginComponent } from '../components/login/login.component';\r\nimport { ForbiddenComponent } from '../components/forbidden/forbidden.component';\r\nimport { NoAccessComponent } from '../components/no-access/no-access.component';\r\nimport { NotFoundComponent } from '../components/not-found/not-found.component';\r\nimport { LogoutComponent } from '../components/logout/logout.component';\r\nimport { AdminEditionsComponent } from './../components/admin-editions/admin-editions.component';\r\nimport { CertIndexComponent } from '../components/cert-index/cert-index.component';\r\nimport { CertDetailComponent } from '../components/cert-detail/cert-detail.component';\r\n\r\nconst routes: Routes = [\r\n { path: 'administrador/productos/nuevo', component: ProductNewComponent, canActivate: [AuthGuardService] },\r\n { path: 'administrador/productos/:code', component: ProductDetailComponent, canActivate: [AuthGuardService]},\r\n { path: 'administrador/productos', component: AdminProductsComponent, canActivate: [AuthGuardService]},\r\n { path: 'administrador/usuarios', component: AdminUsersComponent, canActivate: [AuthGuardService] },\r\n { path: 'administrador/usuarios:email', component: AdminUsersComponent, canActivate: [AuthGuardService] },\r\n { path: 'administrador/sucursales', component: AdminBranchesComponent, canActivate: [AuthGuardService]},\r\n { path: 'administrador/roles', component: AdminRolesComponent, canActivate: [AuthGuardService]},\r\n { path: 'administrador/ediciones', component: AdminEditionsComponent, canActivate: [AuthGuardService]},\r\n { path: 'certificaciones/:id', component: CertDetailComponent, canActivate: [AuthGuardService]},\r\n { path: 'certificaciones', component: CertIndexComponent, canActivate: [AuthGuardService]},\r\n { path: 'reportes', component: MainReportComponent, canActivate: [AuthGuardService]},\r\n { path: 'exportar/:id', component: PublishEditionComponent, canActivate: [AuthGuardService] },\r\n { path: 'exportar', component: MainPublishComponent, canActivate: [AuthGuardService] },\r\n { path: 'validar/:id', component: ValidateOrderComponent, canActivate: [AuthGuardService] },\r\n { path: 'validar', component: SearchValidateEdictComponent, canActivate: [AuthGuardService] },\r\n { path: 'digitar/:id/:line', component: TypeOrderItemComponent, canActivate: [AuthGuardService] },\r\n { path: 'digitar/:id', component: TypeOrderComponent, canActivate: [AuthGuardService] },\r\n { path: 'digitar', component: MainTypeComponent, canActivate: [AuthGuardService] },\r\n { path: 'buscar/:id/:line', component: OrderItemComponent, canActivate: [AuthGuardService]},\r\n { path: 'buscar/:id', component: OrderComponent, canActivate: [AuthGuardService] },\r\n { path: 'buscar', component: SearchEdictComponent, canActivate: [AuthGuardService] },\r\n { path: 'ingresar', component: LoginComponent },\r\n { path: 'no-autorizado', component: ForbiddenComponent },\r\n { path: 'sin-acceso', component: NoAccessComponent },\r\n { path: 'salir', component: LogoutComponent },\r\n { path: '', component: MainHomeComponent, canActivate: [AuthGuardService] },\r\n { path: '**', component: NotFoundComponent },\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' }),\r\n ],\r\n exports: [\r\n RouterModule\r\n ]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { catchError } from 'rxjs/operators';\r\nimport { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CertService } from '../../services/cert.service';\r\nimport { DetailEdictResponse } from '../../models/detail-edict-response.model';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'app-cert-detail',\r\n templateUrl: './cert-detail.component.html',\r\n styleUrls: ['./cert-detail.component.scss']\r\n})\r\nexport class CertDetailComponent implements OnInit {\r\n sendForm = this.fb.group({\r\n email: ['', [Validators.required, Validators.email]],\r\n selectedDate: []\r\n });\r\n detailResponse: DetailEdictResponse;\r\n @ViewChild('embedpdf') embedpdf: ElementRef;\r\n downloadingPDF = false;\r\n showCertPDFIframe = false;\r\n certEmailSent = false;\r\n sendingEmail = false;\r\n\r\n constructor(private fb: FormBuilder,\r\n private route: ActivatedRoute,\r\n private certService: CertService) { }\r\n\r\n ngOnInit() {\r\n this.route.params.subscribe(p => {\r\n this.getDetail(p['id']);\r\n });\r\n }\r\n\r\n getDetail(id: string) {\r\n this.certService.getDetail(id).subscribe(v => this.detailResponse = v);\r\n }\r\n\r\n downloadCert(id: string, publishDate: Date) {\r\n this.downloadingPDF = true;\r\n\r\n this.certService.downloadCert(id, publishDate)\r\n .subscribe(res => {\r\n if (res.size) {\r\n const url = window.URL.createObjectURL(res);\r\n this.embedpdf.nativeElement.src = url;\r\n\r\n this.embedpdf.nativeElement.style.height = '800px';\r\n\r\n this.showCertPDFIframe = true;\r\n\r\n const pdfSectionPosition = this.embedpdf.nativeElement.getBoundingClientRect().top;\r\n\r\n window.setTimeout(function () {\r\n window.scrollTo({\r\n top: pdfSectionPosition,\r\n behavior: 'smooth'\r\n });\r\n }, 150);\r\n } else if (res.error instanceof Blob) {\r\n this.certService.downloadCertError(res);\r\n }\r\n this.downloadingPDF = false;\r\n });\r\n }\r\n\r\n sendEmailCert(id: string, email: string, publishDate: Date) {\r\n this.sendingEmail = true;\r\n this.certService.sendEmailCert(id, email, publishDate)\r\n .subscribe(res => {\r\n if (res.success === false) {\r\n this.certService.sendEmailCertError(res.errorMessage);\r\n } else if (res.success === true) {\r\n this.certEmailSent = true;\r\n }\r\n this.sendingEmail = false;\r\n });\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatOptionModule, MatNativeDateModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\n@NgModule({\r\n exports: [\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatDialogModule,\r\n MatDatepickerModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatOptionModule,\r\n MatNativeDateModule,\r\n MatMenuModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatSelectModule,\r\n MatSnackBarModule,\r\n MatSidenavModule,\r\n MatSlideToggleModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n ]\r\n})\r\nexport class MaterialModule { }\r\n","import { trigger, state, animate, transition, style } from '@angular/animations';\r\n\r\nexport const fadeInAnimation =\r\n trigger('fadeInAnimation', [\r\n // route 'enter' transition\r\n transition('* <=> *', [\r\n\r\n // styles at start of transition\r\n style({ opacity: 0 }),\r\n\r\n // animation and styles at end of transition\r\n animate('.3s', style({ opacity: 1 }))\r\n ]),\r\n ]);\r\n","import {\r\n trigger,\r\n state,\r\n animate,\r\n transition,\r\n style,\r\n query\r\n} from '@angular/animations';\r\n\r\nexport const slideAnimation = trigger('slideAnimation', [\r\n transition('* <=> *', [\r\n // Initial state of new route\r\n query(\r\n ':enter',\r\n style({\r\n position: 'fixed',\r\n width: '100%',\r\n transform: 'translateX(-100%)'\r\n }),\r\n { optional: true }\r\n ),\r\n\r\n // move page off screen right on leave\r\n query(\r\n ':leave',\r\n animate(\r\n '500ms ease',\r\n style({\r\n position: 'fixed',\r\n width: '100%',\r\n transform: 'translateX(100%)'\r\n })\r\n ),\r\n { optional: true }\r\n ),\r\n\r\n // move page in screen from left to right\r\n query(\r\n ':enter',\r\n animate(\r\n '500ms ease',\r\n style({\r\n opacity: 1,\r\n transform: 'translateX(0%)'\r\n })\r\n ),\r\n { optional: true }\r\n )\r\n ])\r\n]);\r\n","\r\n \r\n
\r\n
\r\n \r\n Estadísticas Edictos\r\n
\r\n
\r\n ESTA EDICIÓN YA HA SIDO PUBLICADA\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{item.quantity}}\r\n {{item.statusName}}\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { interval, timer, Observable, Subscription } from 'rxjs';\r\nimport { takeUntil, filter } from 'rxjs/operators';\r\n\r\nimport { StatisticsService } from '../../services/statistics.service';\r\nimport { EditionsService } from '../../services/editions.service';\r\nimport { EditionHeader } from '../../models/edition-header.model';\r\nimport { StatisticsHeader } from '../../models/statistics-header.model';\r\nimport { Statistics } from '../../models/statistics.model';\r\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Moment } from 'moment';\r\nimport { UserService } from '../../services/user.service';\r\n\r\n@Component({\r\n selector: 'app-edition-statistics',\r\n templateUrl: './edition-statistics.component.html',\r\n styleUrls: ['./edition-statistics.component.scss']\r\n})\r\nexport class EditionStatisticsComponent implements OnInit, OnDestroy {\r\n statisticsHeader: StatisticsHeader;\r\n editionHeader: EditionHeader;\r\n loading = false;\r\n subscription: Subscription;\r\n userSubscription: Subscription;\r\n constructor(\r\n private statisticsService: StatisticsService,\r\n private editionsService: EditionsService,\r\n private userService: UserService,\r\n public snackBar: MatSnackBar\r\n ) {\r\n this.userSubscription = userService.userSource$.subscribe(q => {\r\n this.ngOnInit();\r\n });\r\n this.subscription = statisticsService.statisticsSource$.subscribe(q => {\r\n this.refreshStatistics();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n if (this.userService.isLoggedIn) {\r\n this.showStatistics();\r\n } else {\r\n this.statisticsHeader = null;\r\n this.editionHeader = null;\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n this.subscription.unsubscribe();\r\n this.userSubscription.unsubscribe();\r\n }\r\n\r\n showStatistics(id?: string): void {\r\n this.loading = true;\r\n this.editionsService.getEditionHeader().subscribe(eh => {\r\n if (eh && eh.actual) {\r\n this.editionHeader = eh;\r\n this.statisticsService\r\n .getStatisticsHeader(eh.actual.id)\r\n .subscribe(r => {\r\n this.statisticsHeader = r;\r\n this.loading = false;\r\n }, e => (this.loading = false));\r\n } else {\r\n this.loading = false;\r\n this.snackBar.open('No se encontró edición para el día de trabajo actual', 'cerrar');\r\n }\r\n });\r\n }\r\n nextStatistics(): void {\r\n this.loading = true;\r\n this.editionsService\r\n .getEditionHeader(this.editionHeader.next.publishDates[0])\r\n .subscribe(eh => {\r\n this.editionHeader = eh;\r\n this.statisticsService\r\n .getStatisticsHeader(eh.actual.id)\r\n .subscribe(r => {\r\n this.changeValue(this.statisticsHeader.statistics, r.statistics);\r\n this.loading = false;\r\n }, e => (this.loading = false));\r\n });\r\n }\r\n\r\n prevStatistics(): void {\r\n this.loading = true;\r\n this.editionsService\r\n .getEditionHeader(this.editionHeader.previous.publishDates[0])\r\n .subscribe(eh => {\r\n this.editionHeader = eh;\r\n this.statisticsService\r\n .getStatisticsHeader(eh.actual.id)\r\n .subscribe(r => {\r\n this.changeValue(this.statisticsHeader.statistics, r.statistics);\r\n this.loading = false;\r\n // this.statisticsHeader = r;\r\n }, e => (this.loading = false));\r\n });\r\n }\r\n\r\n getStatistics(date: Moment) {\r\n this.loading = true;\r\n this.editionsService.getEditionHeader(date.toDate()).subscribe(eh => {\r\n if (eh && eh.actual) {\r\n this.editionHeader = eh;\r\n this.statisticsService\r\n .getStatisticsHeader(eh.actual.id)\r\n .subscribe(r => {\r\n // eslint-disable-next-line no-debugger\r\n debugger;\r\n this.changeValue(this.statisticsHeader.statistics, r.statistics);\r\n this.loading = false;\r\n // this.statisticsHeader = r;\r\n }, e => (this.loading = false));\r\n } else {\r\n this.loading = false;\r\n this.snackBar.open(\r\n `Para el día ${date.add(1, 'days').format('MMMM DD [de] YYYY')} no existe edición creada`,\r\n 'Cerrar'\r\n );\r\n }\r\n });\r\n }\r\n\r\n refreshStatistics(): void {\r\n this.loading = true;\r\n this.statisticsService\r\n .getStatisticsHeader(this.editionHeader.actual.id)\r\n .subscribe(r => {\r\n this.changeValue(this.statisticsHeader.statistics, r.statistics);\r\n this.loading = false;\r\n // this.statisticsHeader = r;\r\n }, e => (this.loading = false));\r\n }\r\n\r\n onChangeDate($event: MatDatepickerInputEvent) {\r\n const queryDate = $event.value.clone();\r\n this.getStatistics(queryDate.subtract(1, 'days'));\r\n }\r\n private changeValue(before: Statistics[], now: Statistics[]): void {\r\n for (const befItem of before) {\r\n for (const nowItem of now) {\r\n if (befItem.statusId === nowItem.statusId) {\r\n if (befItem.quantity !== nowItem.quantity) {\r\n const totalDelay = 1000;\r\n const difference = Math.abs(befItem.quantity - nowItem.quantity);\r\n let delta = 1;\r\n const delay = totalDelay / difference;\r\n const ii = interval(delay);\r\n const tt = ii.pipe(filter(val => val > difference));\r\n if (befItem.quantity > nowItem.quantity) {\r\n delta = -delta;\r\n }\r\n ii.pipe(takeUntil(tt)).subscribe(q => {\r\n if (befItem.quantity !== nowItem.quantity) {\r\n this.loading = true;\r\n befItem.quantity = befItem.quantity + delta;\r\n } else {\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n Herramienta de digitación de edictos\r\n \r\n
\r\n
\r\n \r\n \r\n Cerrar Sesión\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { BaseService } from './../../services/base.service';\r\nimport { Component } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { fadeInAnimation } from '../../animations/fade-in.animation';\r\nimport { slideAnimation } from '../../animations/slide.animation';\r\nimport { UserService } from '../../services/user.service';\r\n\r\n@Component({\r\n selector: 'app-main-toolbar',\r\n templateUrl: './main-toolbar.component.html',\r\n styleUrls: ['./main-toolbar.component.scss'],\r\n animations: [slideAnimation, fadeInAnimation]\r\n})\r\nexport class MainToolbarComponent {\r\n constructor(\r\n baseService: BaseService,\r\n public snackBar: MatSnackBar,\r\n public userService: UserService\r\n ) {\r\n baseService.throwErrorSource$.subscribe(msg => {\r\n snackBar.open(msg, 'Cerrar');\r\n });\r\n }\r\n getRouteAnimation(outlet) {\r\n return outlet.activatedRouteData.animation;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n title = 'app';\r\n}\r\n","\r\n\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, LOCALE_ID } from '@angular/core';\r\nimport { MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MomentDateAdapter, MAT_MOMENT_DATE_FORMATS } from '@angular/material-moment-adapter';\r\nimport localeEsCo from '@angular/common/locales/es-CO';\r\nimport { ClipboardModule } from 'ngx-clipboard';\r\n\r\nimport { AppRoutingModule } from './modules/app-routing.module';\r\nimport { MaterialModule } from './modules/material.module';\r\nimport { UserService } from './services/user.service';\r\nimport { StatisticsService } from './services/statistics.service';\r\nimport { EditionsService } from './services/editions.service';\r\nimport { MainToolbarComponent } from './components/main-toolbar/main-toolbar.component';\r\nimport { MainTypeComponent } from './components/main-type/main-type.component';\r\nimport { AppComponent } from './app.component';\r\nimport { MainHomeComponent } from './components/main-home/main-home.component';\r\nimport { EditionStatisticsComponent } from './components/edition-statistics/edition-statistics.component';\r\nimport { SearchEdictComponent } from './components/search-edict/search-edict.component';\r\nimport { SearchTypeEdictComponent } from './components/search-type-edict/search-type-edict.component';\r\nimport { OrderService } from './services/order.service';\r\nimport { TypeOrderComponent } from './components/type-order/type-order.component';\r\nimport { TypeOrderTableComponent } from './components/type-order-table/type-order-table.component';\r\nimport { TypeOrderItemComponent } from './components/type-order-item/type-order-item.component';\r\nimport { BaseService } from './services/base.service';\r\nimport { TypeControlComponent } from './components/type-control/type-control.component';\r\nimport { TinyEditorComponent } from './components/tiny-editor/tiny-editor.component';\r\nimport { OrderComponent } from './components/order/order.component';\r\nimport { OrderTableComponent } from './components/order-table/order-table.component';\r\nimport { OrderItemComponent } from './components/order-item/order-item.component';\r\nimport { OrderHistoryComponent } from './components/order-history/order-history.component';\r\nimport { SearchValidateEdictComponent } from './components/search-validate-edict/search-validate-edict.component';\r\nimport { ValidateOrderComponent } from './components/validate-order/validate-order.component';\r\nimport { ValidateOrderTableComponent } from './components/validate-order-table/validate-order-table.component';\r\nimport { TimeService } from './services/time.service';\r\nimport { OrderDocumentHistoryComponent } from './components/order-document-history/order-document-history.component';\r\nimport { MainReportComponent } from './components/main-report/main-report.component';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport { AdminProductsComponent } from './components/admin-products/admin-products.component';\r\nimport { ProductDetailComponent } from './components/product-detail/product-detail.component';\r\nimport { AdminUsersComponent } from './components/admin-users/admin-users.component';\r\nimport { AdminBranchesComponent } from './components/admin-branches/admin-branches.component';\r\nimport { AdminRolesComponent } from './components/admin-roles/admin-roles.component';\r\nimport { AdminUserDetailComponent } from './components/admin-user-detail/admin-user-detail.component';\r\n\r\nimport { OcrService } from './services/ocr.service';\r\nimport { OcrControlComponent } from './components/ocr-control/ocr-control.component';\r\nimport { ProductNewComponent } from './components/product-new/product-new.component';\r\nimport { MainPublishComponent } from './components/main-publish/main-publish.component';\r\nimport { PublishEditionComponent } from './components/publish-edition/publish-edition.component';\r\nimport { PublishService } from './services/publish.service';\r\nimport { AuthGuardService } from './services/auth-guard.service';\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { ForbiddenComponent } from './components/forbidden/forbidden.component';\r\nimport { NoAccessComponent } from './components/no-access/no-access.component';\r\nimport { NotFoundComponent } from './components/not-found/not-found.component';\r\nimport { LogoutComponent } from './components/logout/logout.component';\r\nimport { AdminEditionsComponent } from './components/admin-editions/admin-editions.component';\r\nimport { AdminNewEditionComponent } from './components/admin-new-edition/admin-new-edition.component';\r\nimport { ConfirmDeleteDialogComponent } from './components/admin-editions/admin-editions.component';\r\nimport { AdminUserCreateComponent } from './components/admin-user-create/admin-user-create.component';\r\nimport { AdminRolesDetailComponent } from './components/admin-roles-detail/admin-roles-detail.component';\r\nimport { CertIndexComponent } from './components/cert-index/cert-index.component';\r\nimport { CertDetailComponent } from './components/cert-detail/cert-detail.component';\r\n\r\nregisterLocaleData(localeEsCo, 'es-CO');\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n MainToolbarComponent,\r\n MainTypeComponent,\r\n MainHomeComponent,\r\n EditionStatisticsComponent,\r\n SearchEdictComponent,\r\n SearchTypeEdictComponent,\r\n TypeOrderComponent,\r\n TypeOrderTableComponent,\r\n TypeOrderItemComponent,\r\n TypeControlComponent,\r\n TinyEditorComponent,\r\n OrderComponent,\r\n OrderTableComponent,\r\n OrderItemComponent,\r\n OrderHistoryComponent,\r\n SearchValidateEdictComponent,\r\n ValidateOrderComponent,\r\n ValidateOrderTableComponent,\r\n OrderDocumentHistoryComponent,\r\n MainReportComponent,\r\n AdminProductsComponent,\r\n ProductDetailComponent,\r\n AdminUsersComponent,\r\n AdminBranchesComponent,\r\n AdminRolesComponent,\r\n AdminUserDetailComponent,\r\n OcrControlComponent,\r\n ProductNewComponent,\r\n MainPublishComponent,\r\n PublishEditionComponent,\r\n LoginComponent,\r\n ForbiddenComponent,\r\n NoAccessComponent,\r\n NotFoundComponent,\r\n LogoutComponent,\r\n AdminEditionsComponent,\r\n AdminNewEditionComponent,\r\n ConfirmDeleteDialogComponent,\r\n AdminUserCreateComponent,\r\n AdminRolesDetailComponent,\r\n CertIndexComponent,\r\n CertDetailComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n ClipboardModule,\r\n FlexLayoutModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MaterialModule,\r\n HttpClientModule\r\n ],\r\n entryComponents: [\r\n AdminUserDetailComponent,\r\n AdminUserCreateComponent,\r\n AdminNewEditionComponent,\r\n ConfirmDeleteDialogComponent,\r\n AdminRolesDetailComponent\r\n ],\r\n providers: [\r\n\r\n AuthGuardService,\r\n BaseService,\r\n EditionsService,\r\n OrderService,\r\n OcrService,\r\n PublishService,\r\n StatisticsService,\r\n UserService,\r\n TimeService,\r\n { provide: LOCALE_ID, useValue: 'es-CO' },\r\n { provide: MAT_DATE_LOCALE, useValue: 'es-CO' },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\r\n { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n","var map = {\n\t\"./af\": 90776,\n\t\"./af.js\": 90776,\n\t\"./ar\": 67634,\n\t\"./ar-dz\": 42758,\n\t\"./ar-dz.js\": 42758,\n\t\"./ar-kw\": 64980,\n\t\"./ar-kw.js\": 64980,\n\t\"./ar-ly\": 9602,\n\t\"./ar-ly.js\": 9602,\n\t\"./ar-ma\": 52500,\n\t\"./ar-ma.js\": 52500,\n\t\"./ar-sa\": 36909,\n\t\"./ar-sa.js\": 36909,\n\t\"./ar-tn\": 92735,\n\t\"./ar-tn.js\": 92735,\n\t\"./ar.js\": 67634,\n\t\"./az\": 27798,\n\t\"./az.js\": 27798,\n\t\"./be\": 29949,\n\t\"./be.js\": 29949,\n\t\"./bg\": 44590,\n\t\"./bg.js\": 44590,\n\t\"./bm\": 15938,\n\t\"./bm.js\": 15938,\n\t\"./bn\": 60595,\n\t\"./bn-bd\": 51942,\n\t\"./bn-bd.js\": 51942,\n\t\"./bn.js\": 60595,\n\t\"./bo\": 4756,\n\t\"./bo.js\": 4756,\n\t\"./br\": 17277,\n\t\"./br.js\": 17277,\n\t\"./bs\": 4166,\n\t\"./bs.js\": 4166,\n\t\"./ca\": 13943,\n\t\"./ca.js\": 13943,\n\t\"./cs\": 53474,\n\t\"./cs.js\": 53474,\n\t\"./cv\": 92218,\n\t\"./cv.js\": 92218,\n\t\"./cy\": 21061,\n\t\"./cy.js\": 21061,\n\t\"./da\": 82743,\n\t\"./da.js\": 82743,\n\t\"./de\": 31899,\n\t\"./de-at\": 28580,\n\t\"./de-at.js\": 28580,\n\t\"./de-ch\": 3264,\n\t\"./de-ch.js\": 3264,\n\t\"./de.js\": 31899,\n\t\"./dv\": 98784,\n\t\"./dv.js\": 98784,\n\t\"./el\": 54654,\n\t\"./el.js\": 54654,\n\t\"./en-au\": 56277,\n\t\"./en-au.js\": 56277,\n\t\"./en-ca\": 76896,\n\t\"./en-ca.js\": 76896,\n\t\"./en-gb\": 71609,\n\t\"./en-gb.js\": 71609,\n\t\"./en-ie\": 24557,\n\t\"./en-ie.js\": 24557,\n\t\"./en-il\": 15836,\n\t\"./en-il.js\": 15836,\n\t\"./en-in\": 30262,\n\t\"./en-in.js\": 30262,\n\t\"./en-nz\": 43586,\n\t\"./en-nz.js\": 43586,\n\t\"./en-sg\": 38965,\n\t\"./en-sg.js\": 38965,\n\t\"./eo\": 62777,\n\t\"./eo.js\": 62777,\n\t\"./es\": 63357,\n\t\"./es-do\": 3128,\n\t\"./es-do.js\": 3128,\n\t\"./es-mx\": 69179,\n\t\"./es-mx.js\": 69179,\n\t\"./es-us\": 83256,\n\t\"./es-us.js\": 83256,\n\t\"./es.js\": 63357,\n\t\"./et\": 2654,\n\t\"./et.js\": 2654,\n\t\"./eu\": 57287,\n\t\"./eu.js\": 57287,\n\t\"./fa\": 73875,\n\t\"./fa.js\": 73875,\n\t\"./fi\": 73431,\n\t\"./fi.js\": 73431,\n\t\"./fil\": 39606,\n\t\"./fil.js\": 39606,\n\t\"./fo\": 41781,\n\t\"./fo.js\": 41781,\n\t\"./fr\": 61717,\n\t\"./fr-ca\": 11539,\n\t\"./fr-ca.js\": 11539,\n\t\"./fr-ch\": 19847,\n\t\"./fr-ch.js\": 19847,\n\t\"./fr.js\": 61717,\n\t\"./fy\": 42250,\n\t\"./fy.js\": 42250,\n\t\"./ga\": 47665,\n\t\"./ga.js\": 47665,\n\t\"./gd\": 85214,\n\t\"./gd.js\": 85214,\n\t\"./gl\": 36154,\n\t\"./gl.js\": 36154,\n\t\"./gom-deva\": 68222,\n\t\"./gom-deva.js\": 68222,\n\t\"./gom-latn\": 18518,\n\t\"./gom-latn.js\": 18518,\n\t\"./gu\": 89221,\n\t\"./gu.js\": 89221,\n\t\"./he\": 64743,\n\t\"./he.js\": 64743,\n\t\"./hi\": 77339,\n\t\"./hi.js\": 77339,\n\t\"./hr\": 13224,\n\t\"./hr.js\": 13224,\n\t\"./hu\": 50856,\n\t\"./hu.js\": 50856,\n\t\"./hy-am\": 76855,\n\t\"./hy-am.js\": 76855,\n\t\"./id\": 2190,\n\t\"./id.js\": 2190,\n\t\"./is\": 53887,\n\t\"./is.js\": 53887,\n\t\"./it\": 19270,\n\t\"./it-ch\": 85890,\n\t\"./it-ch.js\": 85890,\n\t\"./it.js\": 19270,\n\t\"./ja\": 46595,\n\t\"./ja.js\": 46595,\n\t\"./jv\": 93081,\n\t\"./jv.js\": 93081,\n\t\"./ka\": 27477,\n\t\"./ka.js\": 27477,\n\t\"./kk\": 13978,\n\t\"./kk.js\": 13978,\n\t\"./km\": 19205,\n\t\"./km.js\": 19205,\n\t\"./kn\": 60025,\n\t\"./kn.js\": 60025,\n\t\"./ko\": 50427,\n\t\"./ko.js\": 50427,\n\t\"./ku\": 79089,\n\t\"./ku.js\": 79089,\n\t\"./ky\": 19314,\n\t\"./ky.js\": 19314,\n\t\"./lb\": 23136,\n\t\"./lb.js\": 23136,\n\t\"./lo\": 29115,\n\t\"./lo.js\": 29115,\n\t\"./lt\": 27087,\n\t\"./lt.js\": 27087,\n\t\"./lv\": 95683,\n\t\"./lv.js\": 95683,\n\t\"./me\": 79454,\n\t\"./me.js\": 79454,\n\t\"./mi\": 35507,\n\t\"./mi.js\": 35507,\n\t\"./mk\": 98466,\n\t\"./mk.js\": 98466,\n\t\"./ml\": 82933,\n\t\"./ml.js\": 82933,\n\t\"./mn\": 19477,\n\t\"./mn.js\": 19477,\n\t\"./mr\": 43597,\n\t\"./mr.js\": 43597,\n\t\"./ms\": 85529,\n\t\"./ms-my\": 99965,\n\t\"./ms-my.js\": 99965,\n\t\"./ms.js\": 85529,\n\t\"./mt\": 30259,\n\t\"./mt.js\": 30259,\n\t\"./my\": 88061,\n\t\"./my.js\": 88061,\n\t\"./nb\": 72618,\n\t\"./nb.js\": 72618,\n\t\"./ne\": 28452,\n\t\"./ne.js\": 28452,\n\t\"./nl\": 1885,\n\t\"./nl-be\": 60413,\n\t\"./nl-be.js\": 60413,\n\t\"./nl.js\": 1885,\n\t\"./nn\": 45107,\n\t\"./nn.js\": 45107,\n\t\"./oc-lnc\": 71763,\n\t\"./oc-lnc.js\": 71763,\n\t\"./pa-in\": 702,\n\t\"./pa-in.js\": 702,\n\t\"./pl\": 31711,\n\t\"./pl.js\": 31711,\n\t\"./pt\": 10594,\n\t\"./pt-br\": 58238,\n\t\"./pt-br.js\": 58238,\n\t\"./pt.js\": 10594,\n\t\"./ro\": 74681,\n\t\"./ro.js\": 74681,\n\t\"./ru\": 16201,\n\t\"./ru.js\": 16201,\n\t\"./sd\": 62912,\n\t\"./sd.js\": 62912,\n\t\"./se\": 6002,\n\t\"./se.js\": 6002,\n\t\"./si\": 67942,\n\t\"./si.js\": 67942,\n\t\"./sk\": 25577,\n\t\"./sk.js\": 25577,\n\t\"./sl\": 41775,\n\t\"./sl.js\": 41775,\n\t\"./sq\": 36823,\n\t\"./sq.js\": 36823,\n\t\"./sr\": 59038,\n\t\"./sr-cyrl\": 83848,\n\t\"./sr-cyrl.js\": 83848,\n\t\"./sr.js\": 59038,\n\t\"./ss\": 96173,\n\t\"./ss.js\": 96173,\n\t\"./sv\": 5788,\n\t\"./sv.js\": 5788,\n\t\"./sw\": 76882,\n\t\"./sw.js\": 76882,\n\t\"./ta\": 82678,\n\t\"./ta.js\": 82678,\n\t\"./te\": 82797,\n\t\"./te.js\": 82797,\n\t\"./tet\": 52447,\n\t\"./tet.js\": 52447,\n\t\"./tg\": 31335,\n\t\"./tg.js\": 31335,\n\t\"./th\": 68667,\n\t\"./th.js\": 68667,\n\t\"./tk\": 9222,\n\t\"./tk.js\": 9222,\n\t\"./tl-ph\": 99914,\n\t\"./tl-ph.js\": 99914,\n\t\"./tlh\": 71389,\n\t\"./tlh.js\": 71389,\n\t\"./tr\": 3578,\n\t\"./tr.js\": 3578,\n\t\"./tzl\": 36969,\n\t\"./tzl.js\": 36969,\n\t\"./tzm\": 76509,\n\t\"./tzm-latn\": 690,\n\t\"./tzm-latn.js\": 690,\n\t\"./tzm.js\": 76509,\n\t\"./ug-cn\": 20055,\n\t\"./ug-cn.js\": 20055,\n\t\"./uk\": 22452,\n\t\"./uk.js\": 22452,\n\t\"./ur\": 91151,\n\t\"./ur.js\": 91151,\n\t\"./uz\": 31555,\n\t\"./uz-latn\": 46547,\n\t\"./uz-latn.js\": 46547,\n\t\"./uz.js\": 31555,\n\t\"./vi\": 16541,\n\t\"./vi.js\": 16541,\n\t\"./x-pseudo\": 42401,\n\t\"./x-pseudo.js\": 42401,\n\t\"./yo\": 2341,\n\t\"./yo.js\": 2341,\n\t\"./zh-cn\": 80619,\n\t\"./zh-cn.js\": 80619,\n\t\"./zh-hk\": 67058,\n\t\"./zh-hk.js\": 67058,\n\t\"./zh-mo\": 89141,\n\t\"./zh-mo.js\": 89141,\n\t\"./zh-tw\": 22782,\n\t\"./zh-tw.js\": 22782\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;"]}