{"version":3,"sources":["jsdelivr-header.js","webpack:///webpack/universalModuleDefinition","/npm/isogd-document@1.0.83/dist/webpack:/webpack/bootstrap 5116706eb9c35286f8a6","/npm/isogd-document@1.0.83/dist/webpack:/external \"lodash\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"oasi-widgets\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"isogd-document-rest\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"angular\"","webpack:///src/components/linkedDocuments/search-result-sorting.ts","/npm/isogd-document@1.0.83/dist/webpack:/external \"jquery\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"isogd-solar-rest\"","webpack:///src/components/common/confirmation.html","webpack:///src/index.ts","/npm/isogd-document@1.0.83/dist/webpack:/external \"oasi-main-theme/dist/oasi-main-theme.css\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"oasi-widgets/dist/index.css\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"cadesplugin-api/dist/cadesplugin_api.js\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"angular-animate\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"angular-cookies\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"angular-touch\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"angular-sanitize\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"angular-messages\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"angular-aria\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"angular-resource\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"angular-ui-bootstrap\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"angular-ui-router\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"isogd-dossier-rest\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"isogd-document-link-rest\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"angular-filter\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"oasi-cryptopro\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"oasi-bpm-rest\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"oasi-nsi-rest\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"isogd-file-rest\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"isogd-gis-rest\"","/npm/isogd-document@1.0.83/dist/webpack:/external \"ng-file-upload\"","webpack:///src/services/DocumentService.ts","webpack:///src/components/document/document-requisites/documentRequisitesEdit.ts","webpack:///src/components/document/document-requisites/documentRequisitesEdit.html","webpack:///src/components/document/document-requisites/documentRequisitesView.ts","webpack:///src/components/document/document-requisites/documentRequisitesView.html","webpack:///src/components/document/document-registration/documentRegistrationEdit.ts","webpack:///src/components/document/document-registration/documentRegistrationEdit.html","webpack:///src/components/document/document-registration/documentRegistrationView.ts","webpack:///src/components/document/document-registration/documentRegistrationView.html","webpack:///src/components/document/document-territory/documentTerritoryEdit.ts","webpack:///src/components/document/document-territory/documentTerritoryEdit.html","webpack:///src/components/document/document-territory/documentTerritoryView.ts","webpack:///src/components/document/document-territory/documentTerritoryView.html","webpack:///src/components/document/document-object/documentObjectEdit.ts","webpack:///src/components/document/document-object/documentObjectEdit.html","webpack:///src/components/document/document-object/documentObjectView.ts","webpack:///src/components/document/document-object/documentObjectView.html","webpack:///src/components/document/document-specific/documentSpecificEdit.ts","webpack:///src/components/document/document-specific/documentSpecificEdit.html","webpack:///src/components/document/document-specific/documentSpecificView.ts","webpack:///src/components/document/document-specific/documentSpecificView.html","webpack:///src/components/document/document-request/documentRequestEdit.ts","webpack:///src/components/document/document-request/documentRequestEdit.html","webpack:///src/components/document/document-request/documentRequestView.ts","webpack:///src/components/document/document-request/documentRequestView.html","webpack:///src/components/document/document-approve/documentApproveEdit.ts","webpack:///src/components/document/document-approve/documentApproveEdit.html","webpack:///src/components/document/document-approve/documentApproveView.ts","webpack:///src/components/document/document-approve/documentApproveView.html","webpack:///src/components/document/document-link/documentLinkEdit.ts","webpack:///src/components/document/document-link/documentLinkEdit.html","webpack:///src/components/document/document-link/documentLinkView.ts","webpack:///src/components/document/document-link/documentLinkView.html","webpack:///src/components/document/document-tep/documentTepEdit.ts","webpack:///src/components/document/document-tep/documentTepEdit.html","webpack:///src/components/document/document-tep/documentTepView.ts","webpack:///src/components/document/document-tep/documentTepView.html","webpack:///src/components/document/documentView.ts","webpack:///src/components/document/documentView.html","webpack:///src/components/document/documentEdit.ts","webpack:///src/services/ChapterFilter.ts","webpack:///src/components/document/documentEdit.html","webpack:///src/components/document/document-organization/documentOrganizationEdit.ts","webpack:///src/components/document/document-organization/documentOrganizationEdit.html","webpack:///src/components/document/document-organization/documentOrganizationView.ts","webpack:///src/components/document/document-organization/documentOrganizationView.html","webpack:///src/components/dossier/dossierCandidates.ts","webpack:///src/components/dossier/dossierCandidates.html","webpack:///src/components/dossier/dossierEdit.ts","webpack:///src/components/dossier/dossierEdit.html","webpack:///src/components/dossier/dossierView.ts","webpack:///src/components/dossier/dossierView.html","webpack:///src/components/dossier/linkedDossiers.ts","webpack:///src/components/dossier/linkedDossiers.html","webpack:///src/components/dossier/newDossier.ts","webpack:///src/components/dossier/newDossier.html","webpack:///src/components/dossier/searchDossiers.ts","webpack:///src/components/dossier/searchDossiers.html","webpack:///src/components/linkedDocuments/linked-documents-edit.ts","webpack:///src/components/linkedDocuments/search-result-sorting.html","webpack:///src/components/linkedDocuments/linked-documents-edit.html","webpack:///src/components/linkedDocuments/linked-documents-view.ts","webpack:///src/components/linkedDocuments/linked-documents-view.html","webpack:///src/components/linkedDocuments/linked-documents.ts","webpack:///src/components/linkedDocuments/linked-documents.html","webpack:///src/components/linkedDocuments/search-candidates.ts","webpack:///src/components/linkedDocuments/search-candidates.html","webpack:///src/components/linkedDocuments/search-filter.ts","webpack:///src/components/linkedDocuments/search-filter.html","webpack:///src/components/linkedDocuments/search-pagination.ts","webpack:///src/components/linkedDocuments/search-pagination.html","webpack:///src/components/linkedDocuments/search-result.ts","webpack:///src/components/linkedDocuments/search-result.html","webpack:///src/services/FileService.ts","webpack:///src/components/files/folder-tree/certificateInfo.ts","webpack:///src/components/files/folder-tree/certificateInfo.html","webpack:///src/components/files/folder-tree/file.ts","webpack:///src/components/files/folder-tree/signFile.html","webpack:///src/components/files/folder-tree/verify.html","webpack:///src/components/files/folder-tree/file.html","webpack:///src/components/files/folder-tree/folder.ts","webpack:///src/components/files/folder-tree/folder.html","webpack:///src/components/files/folder-tree/navigator.ts","webpack:///src/components/files/folder-tree/selectObjectType.html","webpack:///src/components/files/folder-tree/navigator.html","webpack:///src/components/files/folder-tree/selectObjectType.ts","webpack:///src/components/files/folder-tree/signFile.ts","webpack:///src/components/files/folder-tree/verify.ts","webpack:///src/components/files/files-view.ts","webpack:///src/components/files/files-view.html","webpack:///src/components/common/confirmation.ts","webpack:///src/components/files/files-edit.ts","webpack:///src/components/files/files-edit.html","webpack:///src/components/history/history.ts","webpack:///src/components/history/history.html","webpack:///src/components/gis/gis-edit.ts","webpack:///src/components/gis/gis-edit.html","webpack:///src/components/gis/gis-view.ts","webpack:///src/components/gis/gis-view.html","webpack:///src/components/log-files/logFileDlg.ts","webpack:///src/components/log-files/logFiles.ts","webpack:///src/components/log-files/logFileDlg.html","webpack:///src/components/log-files/logFiles.html","webpack:///src/components/registration-status/registrationStatus.ts","webpack:///src/components/registration-status/registrationStatus.html","webpack:///src/components/document-header/documentHeader.ts","webpack:///src/components/document-header/documentHeader.html","webpack:///src/services/LinkedDocumentService.ts"],"names":[],"mappings":"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","file":"/npm/isogd-document@1.0.83/dist/isogdDocument.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/isogd-document@1.0.83/dist/isogdDocument.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"oasi-widgets/dist/index.css\"), require(\"cadesplugin-api/dist/cadesplugin_api.js\"), require(\"angular\"), require(\"angular-animate\"), require(\"angular-cookies\"), require(\"angular-touch\"), require(\"angular-sanitize\"), require(\"angular-messages\"), require(\"angular-aria\"), require(\"angular-resource\"), require(\"angular-ui-bootstrap\"), require(\"angular-ui-router\"), require(\"isogd-dossier-rest\"), require(\"isogd-document-link-rest\"), require(\"angular-filter\"), require(\"oasi-widgets\"), require(\"oasi-cryptopro\"), require(\"oasi-bpm-rest\"), require(\"oasi-nsi-rest\"), require(\"isogd-solar-rest\"), require(\"isogd-file-rest\"), require(\"isogd-gis-rest\"), require(\"isogd-document-rest\"), require(\"jquery\"), require(\"ng-file-upload\"), require(\"oasi-main-theme/dist/oasi-main-theme.css\"), require(\"lodash\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"oasi-widgets/dist/index.css\", \"cadesplugin-api/dist/cadesplugin_api.js\", \"angular\", \"angular-animate\", \"angular-cookies\", \"angular-touch\", \"angular-sanitize\", \"angular-messages\", \"angular-aria\", \"angular-resource\", \"angular-ui-bootstrap\", \"angular-ui-router\", \"isogd-dossier-rest\", \"isogd-document-link-rest\", \"angular-filter\", \"oasi-widgets\", \"oasi-cryptopro\", \"oasi-bpm-rest\", \"oasi-nsi-rest\", \"isogd-solar-rest\", \"isogd-file-rest\", \"isogd-gis-rest\", \"isogd-document-rest\", \"jquery\", \"ng-file-upload\", \"oasi-main-theme/dist/oasi-main-theme.css\", \"lodash\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"isogd-document\"] = factory(require(\"oasi-widgets/dist/index.css\"), require(\"cadesplugin-api/dist/cadesplugin_api.js\"), require(\"angular\"), require(\"angular-animate\"), require(\"angular-cookies\"), require(\"angular-touch\"), require(\"angular-sanitize\"), require(\"angular-messages\"), require(\"angular-aria\"), require(\"angular-resource\"), require(\"angular-ui-bootstrap\"), require(\"angular-ui-router\"), require(\"isogd-dossier-rest\"), require(\"isogd-document-link-rest\"), require(\"angular-filter\"), require(\"oasi-widgets\"), require(\"oasi-cryptopro\"), require(\"oasi-bpm-rest\"), require(\"oasi-nsi-rest\"), require(\"isogd-solar-rest\"), require(\"isogd-file-rest\"), require(\"isogd-gis-rest\"), require(\"isogd-document-rest\"), require(\"jquery\"), require(\"ng-file-upload\"), require(\"oasi-main-theme/dist/oasi-main-theme.css\"), require(\"lodash\"));\n\telse\n\t\troot[\"isogd-document\"] = factory(root[\"oasi-widgets/dist/index.css\"], root[\"cadesplugin-api/dist/cadesplugin_api.js\"], root[\"angular\"], root[\"angular-animate\"], root[\"angular-cookies\"], root[\"angular-touch\"], root[\"angular-sanitize\"], root[\"angular-messages\"], root[\"angular-aria\"], root[\"angular-resource\"], root[\"angular-ui-bootstrap\"], root[\"angular-ui-router\"], root[\"isogd-dossier-rest\"], root[\"isogd-document-link-rest\"], root[\"angular-filter\"], root[\"oasi-widgets\"], root[\"oasi-cryptopro\"], root[\"oasi-bpm-rest\"], root[\"oasi-nsi-rest\"], root[\"isogd-solar-rest\"], root[\"isogd-file-rest\"], root[\"isogd-gis-rest\"], root[\"isogd-document-rest\"], root[\"jquery\"], root[\"ng-file-upload\"], root[\"oasi-main-theme/dist/oasi-main-theme.css\"], root[\"lodash\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_10__, __WEBPACK_EXTERNAL_MODULE_12__, __WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_13__, __WEBPACK_EXTERNAL_MODULE_14__, __WEBPACK_EXTERNAL_MODULE_15__, __WEBPACK_EXTERNAL_MODULE_16__, __WEBPACK_EXTERNAL_MODULE_17__, __WEBPACK_EXTERNAL_MODULE_18__, __WEBPACK_EXTERNAL_MODULE_19__, __WEBPACK_EXTERNAL_MODULE_20__, __WEBPACK_EXTERNAL_MODULE_21__, __WEBPACK_EXTERNAL_MODULE_22__, __WEBPACK_EXTERNAL_MODULE_23__, __WEBPACK_EXTERNAL_MODULE_24__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_25__, __WEBPACK_EXTERNAL_MODULE_26__, __WEBPACK_EXTERNAL_MODULE_27__, __WEBPACK_EXTERNAL_MODULE_6__, __WEBPACK_EXTERNAL_MODULE_28__, __WEBPACK_EXTERNAL_MODULE_29__, __WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_5__, __WEBPACK_EXTERNAL_MODULE_30__, __WEBPACK_EXTERNAL_MODULE_9__, __WEBPACK_EXTERNAL_MODULE_0__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition",null,null,null,null,null,"export class SortingType {\r\n    name: string;\r\n    value: string;\r\n    text: string;\r\n\r\n    constructor(name: string, value: string, text: string) {\r\n        this.name = name;\r\n        this.value = value;\r\n        this.text = text;\r\n    }\r\n}\r\n\r\nclass SearchResultSortingController {\r\n    sortings: SortingType[];\r\n    onSortingsChanged: (params: any) => void;\r\n\r\n    change(sorting: SortingType) {\r\n        this.update(sorting.name);\r\n        this.onSortingsChanged({ sorting: sorting });\r\n    }\r\n\r\n    private update(columnName: string) {\r\n        this.sortings.forEach(v => {\r\n            if (v.name === columnName) {\r\n                switch (v.value) {\r\n                    case 'desc':\r\n                        v.value = 'asc';\r\n                        break;\r\n                    default:\r\n                        v.value = 'desc';\r\n                        break;\r\n                }\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nexport const SearchResultSortingComponent: angular.IComponentOptions = {\r\n    controller: SearchResultSortingController,\r\n    template: require('./search-result-sorting.html'),\r\n    bindings: {\r\n        sortings: '<',\r\n        onSortingsChanged: '&'\r\n    }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/linkedDocuments/search-result-sorting.ts",null,null,"module.exports = \"<div class=inmodal> <div class=modal-header> <h3 class=modal-title><i class=\\\"fa fa-exclamation-triangle text-warning\\\" aria-hidden=true></i>&nbsp;{{ctrl.title}}</h3> </div> <div class=modal-body style=background:#fff> <h4>{{ctrl.message}}</h4> </div> <div class=modal-footer> <button type=button class=\\\"btn btn-primary\\\" ng-click=ctrl.ok()>{{ctrl.btnOk}}</button> <button type=button class=\\\"btn btn-white\\\" ng-click=ctrl.cancel()>Отмена</button> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/common/confirmation.html\n// module id = 7\n// module chunks = 0","import \"oasi-main-theme/dist/oasi-main-theme.css\";\r\nimport \"oasi-widgets/dist/index.css\";\r\nimport \"./index.scss\";\r\nimport \"cadesplugin-api/dist/cadesplugin_api.js\";\r\nimport * as angular from 'angular';\r\nimport 'angular-animate';\r\nimport 'angular-cookies';\r\nimport 'angular-touch';\r\nimport 'angular-sanitize';\r\nimport 'angular-messages';\r\nimport 'angular-aria';\r\nimport 'angular-resource';\r\nimport 'angular-ui-bootstrap';\r\nimport 'angular-ui-router';\r\nimport 'isogd-dossier-rest';\r\nimport 'isogd-document-link-rest';\r\nimport 'angular-filter';\r\nimport 'oasi-widgets';\r\nimport 'oasi-cryptopro';\r\nimport 'oasi-bpm-rest';\r\nimport 'oasi-nsi-rest';\r\nimport 'isogd-solar-rest';\r\nimport 'isogd-file-rest';\r\nimport 'isogd-gis-rest';\r\nimport 'isogd-document-rest';\r\nimport 'jquery';\r\nimport 'ng-file-upload';\r\nimport 'jquery';\r\n\r\nimport { DocumentService } from \"./services/DocumentService\";\r\nimport { DocumentRequisitesEditComponent } from \"./components/document/document-requisites/documentRequisitesEdit\";\r\nimport { DocumentRequisitesViewComponent } from \"./components/document/document-requisites/documentRequisitesView\";\r\nimport { DocumentRegistrationEditComponent } from \"./components/document/document-registration/documentRegistrationEdit\";\r\nimport { DocumentRegistrationViewComponent } from \"./components/document/document-registration/documentRegistrationView\";\r\nimport { DocumentTerritoryEditComponent } from \"./components/document/document-territory/documentTerritoryEdit\";\r\nimport { DocumentTerritoryViewComponent } from \"./components/document/document-territory/documentTerritoryView\";\r\nimport { DocumentObjectEditComponent } from \"./components/document/document-object/documentObjectEdit\";\r\nimport { DocumentObjectViewComponent } from \"./components/document/document-object/documentObjectView\";\r\nimport { DocumentSpecificEditComponent } from \"./components/document/document-specific/documentSpecificEdit\";\r\nimport { DocumentSpecificViewComponent } from \"./components/document/document-specific/documentSpecificView\";\r\nimport { DocumentRequestEditComponent } from \"./components/document/document-request/documentRequestEdit\";\r\nimport { DocumentRequestViewComponent } from \"./components/document/document-request/documentRequestView\";\r\nimport { DocumentApproveEditComponent } from \"./components/document/document-approve/documentApproveEdit\";\r\nimport { DocumentApproveViewComponent } from \"./components/document/document-approve/documentApproveView\";\r\nimport { DocumentLinkEditComponent } from \"./components/document/document-link/documentLinkEdit\";\r\nimport { DocumentLinkViewComponent } from \"./components/document/document-link/documentLinkView\";\r\nimport { DocumentTepEditComponent } from \"./components/document/document-tep/documentTepEdit\";\r\nimport { DocumentTepViewComponent } from \"./components/document/document-tep/documentTepView\";\r\nimport { DocumentViewComponent } from \"./components/document/documentView\";\r\nimport { DocumentEditComponent } from \"./components/document/documentEdit\";\r\nimport { DictionaryModalComponent } from \"./components/common/dictionaryModal\";\r\nimport { DocumentOrganizationEditComponent } from \"./components/document/document-organization/documentOrganizationEdit\";\r\nimport { DocumentOrganizationViewComponent } from \"./components/document/document-organization/documentOrganizationView\";\r\nimport { DossierCandidatesComponent } from \"./components/dossier/dossierCandidates\";\r\nimport { DossierEditComponent } from \"./components/dossier/dossierEdit\";\r\nimport { DossierViewComponent } from \"./components/dossier/dossierView\";\r\nimport { LinkedDossiersComponent } from \"./components/dossier/linkedDossiers\";\r\nimport { NewDossierComponent } from \"./components/dossier/newDossier\";\r\nimport { SearchDossiersComponent } from \"./components/dossier/searchDossiers\";\r\nimport { LinkedDocumentsEditComponent } from './components/linkedDocuments/linked-documents-edit';\r\nimport { LinkedDocumentsViewComponent } from './components/linkedDocuments/linked-documents-view';\r\nimport { LinkedDocumentsComponent } from './components/linkedDocuments/linked-documents';\r\nimport { SearchCandidatesComponent } from './components/linkedDocuments/search-candidates';\r\nimport { SearchFilterComponent } from './components/linkedDocuments/search-filter';\r\nimport { SearchPaginationComponent } from './components/linkedDocuments/search-pagination';\r\nimport { SearchResultSortingComponent } from './components/linkedDocuments/search-result-sorting';\r\nimport { SearchResultComponent } from './components/linkedDocuments/search-result';\r\nimport { FileService } from './services/FileService';\r\nimport { CertificateInfoComponent } from './components/files/folder-tree/certificateInfo';\r\nimport { file } from './components/files/folder-tree/file';\r\nimport { folder } from './components/files/folder-tree/folder';\r\nimport { folderNavigator } from './components/files/folder-tree/navigator';\r\nimport { SelectObjectTypeController } from './components/files/folder-tree/selectObjectType';\r\nimport { SignFileController } from './components/files/folder-tree/signFile';\r\nimport { VerifyController } from './components/files/folder-tree/verify';\r\nimport { FilesViewComponent } from './components/files/files-view';\r\nimport { ConfirmController } from './components/common/confirmation';\r\nimport { FilesEditComponent } from './components/files/files-edit';\r\nimport { HistoryComponent } from './components/history/history';\r\nimport { GisEditComponent } from './components/gis/gis-edit';\r\nimport { GisViewComponent } from './components/gis/gis-view';\r\nimport { LogFileGldController } from './components/log-files/logFileDlg';\r\nimport { LogFilesComponent } from './components/log-files/logFiles';\r\nimport { RegistrationStatusComponent } from './components/registration-status/registrationStatus';\r\nimport { DocumentHeaderComponent } from './components/document-header/documentHeader';\r\nimport { LinkedDocumentService } from './services/LinkedDocumentService';\r\n\r\nlet module = angular.module('isogd.document', ['ngAnimate',\r\n    'ngCookies',\r\n    'ngTouch',\r\n    'ngSanitize',\r\n    'ngMessages',\r\n    'ngAria',\r\n    'ngResource',\r\n    'ui.bootstrap',\r\n    'ui.router',\r\n    'angular.filter',\r\n    'isogd.solar.rest',\r\n    'isogd.dossier.rest',\r\n    'isogd.document.link.rest',\r\n    'oasi.bpm.rest',\r\n    'oasi.nsi.rest',\r\n    'isogd.file.rest',\r\n    'isogd.gis.rest',\r\n    'isogd.document.rest',\r\n    'oasi.cryptopro',\r\n    'oasi.widgets',\r\n    'ngFileUpload'])\r\n    .config(['blockUIConfig', blockUIConfig])\r\n    .service('documentService', DocumentService)\r\n    .service('linkedDocumentService', LinkedDocumentService)\r\n    .service('fileService', FileService)\r\n    .component('certificateInfo', CertificateInfoComponent)\r\n    .component('file', file)\r\n    .component('folder', folder)\r\n    .component('navigator', folderNavigator)\r\n    .component('documentRequisitesEdit', DocumentRequisitesEditComponent)\r\n    .component('documentRequisitesView', DocumentRequisitesViewComponent)\r\n    .component('documentRegistrationEdit', DocumentRegistrationEditComponent)\r\n    .component('documentRegistrationView', DocumentRegistrationViewComponent)\r\n    .component('documentTerritoryEdit', DocumentTerritoryEditComponent)\r\n    .component('documentTerritoryView', DocumentTerritoryViewComponent)\r\n    .component('documentObjectEdit', DocumentObjectEditComponent)\r\n    .component('documentObjectView', DocumentObjectViewComponent)\r\n    .component('documentSpecificEdit', DocumentSpecificEditComponent)\r\n    .component('documentSpecificView', DocumentSpecificViewComponent)\r\n    .component('documentRequestEdit', DocumentRequestEditComponent)\r\n    .component('documentRequestView', DocumentRequestViewComponent)\r\n    .component('documentApproveEdit', DocumentApproveEditComponent)\r\n    .component('documentApproveView', DocumentApproveViewComponent)\r\n    .component('documentLinkEdit', DocumentLinkEditComponent)\r\n    .component('documentLinkView', DocumentLinkViewComponent)\r\n    .component('documentTepEdit', DocumentTepEditComponent)\r\n    .component('documentTepView', DocumentTepViewComponent)\r\n    .component('documentView', DocumentViewComponent)\r\n    .component('documentEdit', DocumentEditComponent)\r\n    .component('documentOrganizationEdit', DocumentOrganizationEditComponent)\r\n    .component('documentOrganizationView', DocumentOrganizationViewComponent)\r\n    /*.component('dictionaryModal', DictionaryModalComponent)*/\r\n    .component('dossierCandidates', DossierCandidatesComponent)\r\n    .component('dossierEdit', DossierEditComponent)\r\n    .component('dossierView', DossierViewComponent)\r\n    .component('linkedDossiers', LinkedDossiersComponent)\r\n    .component('newDossier', NewDossierComponent)\r\n    .component('searchDossiers', SearchDossiersComponent)\r\n    .component('linkedDocumentsEdit', LinkedDocumentsEditComponent)\r\n    .component('linkedDocumentsView', LinkedDocumentsViewComponent)\r\n    .component('linkedDocuments', LinkedDocumentsComponent)\r\n    .component('searchCandidates', SearchCandidatesComponent)\r\n    .component('searchFilter', SearchFilterComponent)\r\n    .component('searchPagination', SearchPaginationComponent)\r\n    .component('searchResultSorting', SearchResultSortingComponent)\r\n    .component('searchResult', SearchResultComponent)\r\n    .controller('SelectObjectTypeController', SelectObjectTypeController)\r\n    .controller('SignFileController', SignFileController)\r\n    .controller('VerifyController', VerifyController)\r\n    .component('filesView', FilesViewComponent)\r\n    .component('filesEdit', FilesEditComponent)\r\n    .controller('ConfirmController', ConfirmController)\r\n    .component('history', HistoryComponent)\r\n    .component('gisEdit', GisEditComponent)\r\n    .component('gisView', GisViewComponent)\r\n    .controller('LogFileGldController', LogFileGldController)\r\n    .component('logFiles', LogFilesComponent)\r\n    .component('registrationStatus', RegistrationStatusComponent)\r\n    .component('documentHeader', DocumentHeaderComponent);\r\n\r\nfunction blockUIConfig(blockUIConfig: any) {\r\n    blockUIConfig.autoBlock = false;\r\n    blockUIConfig.message = '';\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/index.ts",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import * as angular from \"angular\";\r\n\r\nexport class DocumentService {\r\n    static $inject = ['dateFilter'];\r\n\r\n    constructor(private dateFilter: any) {\r\n    }\r\n\r\n    public parseResponseDates(response: any) {\r\n        this.parseDates(response);\r\n        return response;\r\n    }\r\n    \r\n    public formatRequestDates(request: any, hasTime?: any) {\r\n        let result: any = angular.copy(request);\r\n        this.formatDates(result, hasTime);\r\n        return angular.toJson(result);\r\n    } \r\n\r\n    private formatDate(date: Date): string {\r\n        return this.dateFilter(date, 'yyyy-MM-dd');\r\n    }\r\n    \r\n    private formatDateTime(date: Date): string {\r\n        return this.dateFilter(date, 'yyyy-MM-ddTHH:mm:ss');\r\n    }    \r\n    \r\n    private formatDates(input: any, hasTime?: any) {\r\n        for (let key in input) {\r\n            if (!input.hasOwnProperty(key)) continue;\r\n\r\n            if (angular.isDate(input[key])) {\r\n                let date: Date = input[key];\r\n            \tif (hasTime && hasTime[key]) {\r\n            \t\tinput[key] = this.formatDateTime(date);\r\n            \t} else {\r\n            \t\tinput[key] = this.formatDate(date);\r\n            \t}\r\n            } else if (typeof input[key] === \"object\") {\r\n                this.formatDates(input[key], hasTime);\r\n            }\r\n        }\r\n    }    \r\n    \r\n    private parseDates(input: any) {\r\n        for (let key in input) {\r\n            if (!input.hasOwnProperty(key)) continue;\r\n\r\n            if (typeof input[key] === \"object\") {\r\n                this.parseDates(input[key]);\r\n            } else {\r\n                let match = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.*$/.exec(input[key]);\r\n                if (typeof input[key] === \"string\" && match) {\r\n                    input[key] = new Date(input[key]);\r\n                }\r\n                match = /^\\d{4}-\\d{2}-\\d{2}$/.exec(input[key]);\r\n                if (typeof input[key] === \"string\" && match) {\r\n                \tlet date = new Date(input[key]);\r\n                \tdate.setHours(0);\r\n                    input[key] = date;\r\n                }\r\n            }\r\n        }\r\n    } \r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/services/DocumentService.ts","import { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass DocumentRequisitesEditController {\r\n    private document: DocumentIsogd;\r\n    private chapters: any[];\r\n    private selectedChapter: any;\r\n    private documentTypes: any[];\r\n    private selectedDocumentTypes: any[];\r\n    private selectedDocumentType: any;\r\n    private documentOrgs: any[];\r\n    private selectedDocumentOrg: any;\r\n    private documentStatuses: any[];\r\n    private selectedDocumentStatus: any;\r\n    private selectedDocumentOrgs: any[];\r\n    private notFoundDocStatuses: string[];\r\n    private documentTypeChanged: (params: any) => void;\r\n\r\n    $onInit() {\r\n        this.selectedDocumentOrgs = this.documentOrgs;\r\n        if (this.selectedDocumentType) this.onDocumentTypeChange();\r\n    }\r\n    onChapterChange() {\r\n        this.document.reestr = this.selectedChapter.code;\r\n\r\n        if (this.selectedChapter && this.selectedChapter.doc && this.selectedChapter.doc.length > 0) {\r\n            this.selectedDocumentTypes = this.selectedChapter.doc;\r\n        } else {\r\n            this.selectedDocumentTypes = this.documentTypes;\r\n        }\r\n\r\n        this.selectedDocumentType = undefined;\r\n        this.selectedDocumentOrgs = this.documentOrgs;\r\n    }\r\n\r\n    onDocumentTypeChange() {\r\n        this.document.documentType = this.selectedDocumentType.docCode;\r\n        this.document.documentTypeValue = this.selectedDocumentType.docName;\r\n\r\n        this.selectedDocumentOrgs = [];\r\n        this.documentOrgs.forEach(i => {\r\n            if (this.selectedDocumentType.org && ~this.selectedDocumentType.org.indexOf(i.orgCode)) this.selectedDocumentOrgs.push(i);\r\n        });\r\n        this.documentTypeChanged({ type: this.selectedDocumentType });\r\n    }\r\n\r\n    isChangeQueue() {\r\n        let registrationStatus = this.document.registration ? this.document.registration.registrationStatus : null;\r\n        return registrationStatus === 'CHANGE_QUEUE';\r\n    }\r\n\r\n    changeDocumentOrganization() {\r\n        this.document.documentRequisites.documentOrganizationCode = undefined;\r\n        this.selectedDocumentOrg = undefined\r\n    }\r\n\r\n    onDocumentOrgChange() {\r\n        this.document.documentRequisites.documentOrganization = this.selectedDocumentOrg ? this.selectedDocumentOrg.shortName : null;\r\n        this.document.documentRequisites.documentOrganizationCode = this.selectedDocumentOrg ? this.selectedDocumentOrg.orgCode : null;\r\n    }\r\n\r\n    onDocumentStatusChange() {\r\n        this.document.documentRequisites.documentStatusCode = this.selectedDocumentStatus.statusCode;\r\n        this.document.documentRequisites.documentStatusValue = this.selectedDocumentStatus.statusName;\r\n        this.document.documentRequisites.documentStatusColor = this.selectedDocumentStatus.statusColor[0];\r\n    }\r\n}\r\n\r\nexport const DocumentRequisitesEditComponent: angular.IComponentOptions = {\r\n    controller: DocumentRequisitesEditController,\r\n    template: require('./documentRequisitesEdit.html'),\r\n    bindings: {\r\n        document: \"<\",\r\n        chapters: \"<\",\r\n        selectedChapter: \"<\",\r\n        documentTypes: \"<\",\r\n        selectedDocumentType: \"<\",\r\n        selectedDocumentTypes: \"<\",\r\n        documentOrgs: \"<\",\r\n        selectedDocumentOrg: \"<\",\r\n        documentStatuses: \"<\",\r\n        selectedDocumentStatus: \"<\",\r\n        notFoundDocStatuses: \"<\",\r\n        documentTypeChanged: \"&\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-requisites/documentRequisitesEdit.ts","module.exports = \"<div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Реестр <span ng-show=!$ctrl.selectedChapter class=text-danger>*</span></label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <ui-select ng-model=$ctrl.selectedChapter theme=bootstrap ng-change=$ctrl.onChapterChange()> <ui-select-match placeholder=Реестр...>{{$select.selected.name}}</ui-select-match> <ui-select-choices group-by=\\\"'parent'\\\" repeat=\\\"chapter in $ctrl.chapters | filter: $select.search\\\"> <span style=font-size:13px title={{chapter.name}} ng-bind-html=\\\"chapter.name | highlight: $select.search\\\"></span> </ui-select-choices> </ui-select> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Тип документа <span ng-show=!$ctrl.selectedDocumentType class=text-danger>*</span></label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <select class=form-control ng-change=$ctrl.onDocumentTypeChange() ng-model=$ctrl.selectedDocumentType ng-options=\\\"item as item.docName for item in $ctrl.selectedDocumentTypes\\\"> </select> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Номер документа <span ng-show=!$ctrl.document.documentRequisites.documentNumber class=text-danger>*</span></label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text class=form-control ng-model=$ctrl.document.documentRequisites.documentNumber ng-disabled=$ctrl.isChangeQueue()> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Дата документа <span ng-show=!$ctrl.document.documentRequisites.documentDate class=text-danger>*</span></label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <date-selector ng-model=$ctrl.document.documentRequisites.documentDate disabled=$ctrl.isChangeQueue()> </date-selector> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Наименование документа </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <textarea class=form-control rows=2 ng-model=$ctrl.document.documentRequisites.documentName></textarea> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Организация, выдавшая документ </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <select class=form-control ng-change=$ctrl.onDocumentOrgChange() ng-model=$ctrl.selectedDocumentOrg ng-options=\\\"item as item.shortName for item in $ctrl.selectedDocumentOrgs\\\"></select> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"></label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text ng-change=$ctrl.changeDocumentOrganization() class=form-control ng-model=$ctrl.document.documentRequisites.documentOrganization> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Лицо, утвердившее документ (ФИО) </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text class=form-control ng-model=$ctrl.document.documentRequisites.documentApproverFIO> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Лицо, утвердившее документ (должность) </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text class=form-control ng-model=$ctrl.document.documentRequisites.documentApproverPost> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Статус действия документа </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <select name=documentStatus class=\\\"form-control our-select\\\" ng-change=$ctrl.onDocumentStatusChange() ng-model=$ctrl.selectedDocumentStatus ng-options=\\\"item as item.statusName for item in $ctrl.documentStatuses\\\"> </select> <div class=m-t-sm ng-if=\\\"$ctrl.notFoundDocStatuses && $ctrl.notFoundDocStatuses.length > 0\\\"> <span class=text-danger>Следующие значения из документа отсутствуют в справочнике: {{$ctrl.notFoundDocStatuses.join(', ')}}</span> </div> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Срок действия документа </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <date-selector ng-model=$ctrl.document.documentRequisites.documentExpireDate> </date-selector> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-requisites/documentRequisitesEdit.html\n// module id = 33\n// module chunks = 0","import { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass DocumentRequisitesViewController {\r\n    private document: DocumentIsogd;\r\n}\r\n\r\nexport const DocumentRequisitesViewComponent: angular.IComponentOptions = {\r\n    controller: DocumentRequisitesViewController,\r\n    template: require('./documentRequisitesView.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-requisites/documentRequisitesView.ts","module.exports = \"<div class=description> <dl class=\\\"dl-horizontal m-l-md\\\"> <dt><span>Номер документа</span></dt> <dd>{{$ctrl.document.documentRequisites.documentNumber}}</dd> <dt><span>Дата документа</span></dt> <dd>{{$ctrl.document.documentRequisites.documentDate | date: 'dd.MM.yyyy'}}</dd> <dt ng-if=$ctrl.document.documentRequisites.documentName><span>Наименование документа</span></dt> <dd ng-if=$ctrl.document.documentRequisites.documentName>{{$ctrl.document.documentRequisites.documentName}}</dd> <dt ng-if=$ctrl.document.documentRequisites.documentOrganization><span>Организация, выдавшая документ</span></dt> <dd ng-if=$ctrl.document.documentRequisites.documentOrganization>{{$ctrl.document.documentRequisites.documentOrganization}}</dd> <dt ng-if=$ctrl.document.documentRequisites.documentApproverFIO><span>Лицо, утвердившее документ</span></dt> <dd ng-if=$ctrl.document.documentRequisites.documentApproverFIO> {{$ctrl.document.documentRequisites.documentApproverFIO}} <span ng-if=$ctrl.document.documentRequisites.documentApproverPost>{{$ctrl.document.documentRequisites.documentApproverPost}}</span> </dd> <dt ng-if=$ctrl.document.documentRequisites.documentStatusValue><span>Статус действия документа</span></dt> <dd ng-if=$ctrl.document.documentRequisites.documentStatusValue>{{$ctrl.document.documentRequisites.documentStatusValue}}</dd> <dt ng-if=$ctrl.document.documentRequisites.documentExpireDate><span>Срок действия документа</span></dt> <dd ng-if=$ctrl.document.documentRequisites.documentExpireDate>{{$ctrl.document.documentRequisites.documentExpireDate | date: 'dd.MM.yyyy'}}</dd> </dl> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-requisites/documentRequisitesView.html\n// module id = 35\n// module chunks = 0","import { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass DocumentRegistrationEditController {\r\n    private document: DocumentIsogd;\r\n}\r\n\r\nexport const DocumentRegistrationEditComponent: angular.IComponentOptions = {\r\n    controller: DocumentRegistrationEditController,\r\n    template: require('./documentRegistrationEdit.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-registration/documentRegistrationEdit.ts","module.exports = \"<div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Номер регистрации в ИАИС ОГД </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\" style=margin-top:7px>{{$ctrl.document.registration.registrationNumber}}</div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Дата регистрации в ИАИС ОГД </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\" style=margin-top:7px>{{$ctrl.document.registration.registrationDate | date: 'dd.MM.yyyy'}}</div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Примечание</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <textarea class=\\\"form-control our-control\\\" rows=2 ng-model=$ctrl.document.registration.remark></textarea> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Дополнительная информация </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <textarea class=\\\"form-control our-control\\\" rows=2 ng-model=$ctrl.document.registration.addInfo></textarea> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-registration/documentRegistrationEdit.html\n// module id = 37\n// module chunks = 0","import { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass DocumentRegistrationViewController {\r\n    private document: DocumentIsogd;\r\n}\r\n\r\nexport const DocumentRegistrationViewComponent: angular.IComponentOptions = {\r\n    controller: DocumentRegistrationViewController,\r\n    template: require('./documentRegistrationView.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-registration/documentRegistrationView.ts","module.exports = \"<div class=description> <dl class=\\\"dl-horizontal m-l-md\\\"> <dt ng-if=$ctrl.document.registration.registrationNumber><span>Номер регистрации в ИАИС ОГД</span></dt> <dd ng-if=$ctrl.document.registration.registrationNumber>{{$ctrl.document.registration.registrationNumber}}</dd> <dt ng-if=$ctrl.document.registration.registrationDate><span>Дата регистрации в ИАИС ОГД</span></dt> <dd ng-if=$ctrl.document.registration.registrationDate>{{$ctrl.document.registration.registrationDate | date: 'dd.MM.yyyy'}}</dd> <dt ng-if=$ctrl.document.registration.remark><span>Примечание</span></dt> <dd ng-if=$ctrl.document.registration.remark><span>{{$ctrl.document.registration.remark}}</span></dd> <dt ng-if=$ctrl.document.registration.addInfo><span>Дополнительная информация</span></dt> <dd ng-if=$ctrl.document.registration.addInfo><span>{{$ctrl.document.registration.addInfo}}</span></dd> </dl> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-registration/documentRegistrationView.html\n// module id = 39\n// module chunks = 0","import * as _ from 'lodash';\r\nimport { DocumentIsogd, DocumentTerritoryDocTerritory, DocumentTerritoryArea, DocumentTerritoryDistrict } from 'isogd-document-rest';\r\nimport { NsiRestService } from 'oasi-nsi-rest';\r\n\r\nclass DocumentTerritoryEditController {\r\n\r\n    private document: DocumentIsogd;\r\n    private areas: any[];\r\n    private docTerritories: DocumentTerritoryDocTerritory[];\r\n    private selectedAreas: any[];\r\n\r\n    private districts: any[];\r\n    private districtsByArea: any[];\r\n    private selectedDistricts: any[];\r\n    private selectedDocTerritory: DocumentTerritoryDocTerritory;\r\n    private notFoundAreas: string[];\r\n    private notFoundDistricts: string[];\r\n    private workSheetNumbers: any[];\r\n    private selectedWorkSheetNumbers: any[];\r\n\r\n    static $inject = ['nsiRestService', 'toastr'];\r\n    constructor(private nsiRestService: NsiRestService, private toastr: Toastr) {  \r\n    }\r\n\r\n    public solicitorSearch(search: string, $select: any) {\r\n        if (search && search.length > 2) {\r\n            this.nsiRestService.getByStartwith(\"TabletNumbers\", {\r\n                nickAttr: \"list\",\r\n                values: [search]\r\n            }).then(response => {\r\n                if (response && response.length > 0) {\r\n                    this.workSheetNumbers = _.map(response, (r: any) => { return r.list; })\r\n                }\r\n            }).catch(error => {\r\n                this.toastr.error(\"Ошибка при получении информации из справочника!\");\r\n            });\r\n        }\r\n    }\r\n\r\n    public onWorkSheetNumbersChange() {\r\n        this.document.territory.workSheetNumber =this.selectedWorkSheetNumbers;\r\n    }\r\n\r\n    public onCadastralNumberChange(idx, value): void {\r\n        this.document.territory.cadastralNumber[idx] = value;\r\n        if (!this._hasEmptyCadastralNumber()) {\r\n            this._addNewCadastralNumber();\r\n        }\r\n        if (value === \"\" && this.document.territory.cadastralNumber.length > 1) {\r\n            this._deleteCadastralNumber(idx);\r\n        }\r\n    }\r\n\r\n    private _addNewCadastralNumber(): void {\r\n        this.document.territory.cadastralNumber.push(\"\");\r\n    }\r\n\r\n    private _hasEmptyCadastralNumber(): boolean {\r\n        return this.document.territory.cadastralNumber.some((cadastralNumber) => {\r\n            return cadastralNumber === \"\";\r\n        });\r\n    }\r\n\r\n    private _deleteCadastralNumber(idx): void {\r\n        this.document.territory.cadastralNumber.splice(idx, 1);\r\n    }\r\n\r\n    private onAreaChange() {\r\n        let areas: DocumentTerritoryArea[] = [];\r\n        this.selectedAreas.forEach(a => {\r\n            let _area = new DocumentTerritoryArea();\r\n            _area.areaName = a.name,\r\n            _area.areaCode = a.code\r\n            areas.push(_area);\r\n        });\r\n        this.document.territory.area = areas;\r\n        if (this.selectedAreas.length > 0) {\r\n            let _districts = [];\r\n            this.districts.forEach(d => {\r\n                this.selectedAreas.forEach(a => {\r\n                    if (d.perfectId && d.perfectId.length > 0) {\r\n                        d.perfectId.forEach(p => {\r\n                            if (p.code === a.code) {\r\n                                _districts.push(d);\r\n                            }\r\n                        });\r\n                    }\r\n                });\r\n            });\r\n            this.districtsByArea = _districts;\r\n        } else {\r\n            this.districtsByArea = this.districts;\r\n        }\r\n\r\n        let _selectedDistricts = [];\r\n        this.selectedDistricts.forEach(d => {\r\n            this.districtsByArea.forEach(da => {\r\n                if (d.code === da.code) {\r\n                    _selectedDistricts.push(d);\r\n                }\r\n            });\r\n        });\r\n        this.selectedDistricts = _selectedDistricts;\r\n        let _d: any[] = [];\r\n        this.selectedDistricts.forEach(d => {\r\n            _d.push({\r\n                districtName: d.name,\r\n                districtCode: d.code\r\n            })\r\n        });\r\n        this.document.territory.district = _d;\r\n    }\r\n\r\n    onDocTerritoryChange() {\r\n        this.document.territory.docTerritory = this.selectedDocTerritory;\r\n    }\r\n\r\n    onDistrictChange() {\r\n        let _d: any[] = [];\r\n        this.selectedDistricts.forEach(d => {\r\n            _d.push({\r\n                districtName: d.name,\r\n                districtCode: d.code\r\n            })\r\n        });\r\n        this.document.territory.district = _d;\r\n    }\r\n}\r\n\r\nexport const DocumentTerritoryEditComponent: angular.IComponentOptions = {\r\n    controller: DocumentTerritoryEditController,\r\n    template: require('./documentTerritoryEdit.html'),\r\n    bindings: {\r\n        document: \"<\",\r\n        areas: \"<\",\r\n        selectedAreas: \"<\",\r\n        districts: \"<\",\r\n        districtsByArea: \"<\",\r\n        selectedDistricts: \"<\",\r\n        docTerritories: \"<\",\r\n        selectedDocTerritory: \"<\",\r\n        notFoundAreas: \"<\",\r\n        notFoundDistricts: \"<\",\r\n        workSheetNumbers: \"<\",\r\n        selectedWorkSheetNumbers: \"<\"\r\n\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-territory/documentTerritoryEdit.ts","module.exports = \"<div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Округ</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <ui-select multiple=multiple ng-model=$ctrl.selectedAreas theme=bootstrap ng-change=$ctrl.onAreaChange()> <ui-select-match placeholder=Округ>{{$item.name}}</ui-select-match> <ui-select-choices repeat=\\\"item in $ctrl.areas track by item.code\\\"> {{item.name}} </ui-select-choices> </ui-select> <div class=m-t-sm ng-if=\\\"$ctrl.notFoundAreas && $ctrl.notFoundAreas.length > 0\\\"> <span class=text-danger>Следующие значения из документа отсутствуют в справочнике: {{$ctrl.notFoundAreas.join(', ')}}</span> </div> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Район </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <ui-select multiple=multiple ng-model=$ctrl.selectedDistricts theme=bootstrap ng-change=$ctrl.onDistrictChange()> <ui-select-match placeholder=Район>{{$item.name}}</ui-select-match> <ui-select-choices repeat=\\\"item in $ctrl.districtsByArea track by item.code\\\"> {{item.name}} </ui-select-choices> </ui-select> <div class=m-t-sm ng-if=\\\"$ctrl.notFoundDistricts && $ctrl.notFoundDistricts.length > 0\\\"> <span class=text-danger>Следующие значения из документа отсутствуют в справочнике: {{$ctrl.notFoundDistricts.join(', ')}}</span> </div> </div> </div> <div class=form-group ng-repeat=\\\"cadastralNumber in $ctrl.document.territory.cadastralNumber track by $index\\\"> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"><span ng-if=$first>Кадастровый номер</span> </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <div> <input name=\\\"{{'cadastralNumber' + $index}}\\\" type=text class=form-control ng-model=cadastralNumber ng-change=\\\"$ctrl.onCadastralNumberChange($index, cadastralNumber)\\\" pattern=[\\\\d:]*> </div> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"><span>Номер планшета</span> </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <ui-select multiple=multiple ng-model=$ctrl.selectedWorkSheetNumbers theme=bootstrap ng-change=$ctrl.onWorkSheetNumbersChange()> <ui-select-match placeholder=\\\"Номер планшета\\\">{{$item}}</ui-select-match> <ui-select-choices repeat=\\\"wn in $ctrl.workSheetNumbers | filter: $select.search\\\" refresh=\\\"$ctrl.solicitorSearch($select.search, $select)\\\" refresh-delay=100> {{wn}} </ui-select-choices> </ui-select> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Территория действия документа</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <ui-select ng-model=$ctrl.selectedDocTerritory theme=bootstrap ng-change=$ctrl.onDocTerritoryChange()> <ui-select-match>{{$select.selected.name}}</ui-select-match> <ui-select-choices repeat=\\\"item in $ctrl.docTerritories track by item.code\\\"> {{item.name}} </ui-select-choices> </ui-select> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-territory/documentTerritoryEdit.html\n// module id = 41\n// module chunks = 0","\r\nimport * as _ from \"lodash\";\r\nimport { DocumentIsogd, DocumentTerritoryArea, DocumentTerritoryDistrict } from \"isogd-document-rest\";\r\n\r\nclass DocumentTerritoryViewController {\r\n    private document: DocumentIsogd;\r\n\r\n    getAreaString(areas: DocumentTerritoryArea[]): string {\r\n        if (areas) {\r\n            return _.map(areas, (area) => {\r\n                return area.areaName;\r\n            }).join(', ');\r\n        }\r\n    }\r\n\r\n    getDistrictString(districts: DocumentTerritoryDistrict[]): string {\r\n        if (districts) {\r\n            return _.map(districts, (district) => {\r\n                return district.districtName;\r\n            }).join(', ');\r\n        }\r\n    }\r\n}\r\n\r\nexport const DocumentTerritoryViewComponent: angular.IComponentOptions = {\r\n    controller: DocumentTerritoryViewController,\r\n    template: require('./documentTerritoryView.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-territory/documentTerritoryView.ts","module.exports = \"<div class=description> <dl class=\\\"dl-horizontal m-l-md\\\"> <dt ng-if=\\\"$ctrl.document.territory.area && $ctrl.document.territory.area.length > 0\\\"><span>Округ</span></dt> <dd ng-if=\\\"$ctrl.document.territory.area && $ctrl.document.territory.area.length > 0\\\">{{$ctrl.getAreaString($ctrl.document.territory.area)}}</dd> <dt ng-if=\\\"$ctrl.document.territory.district && $ctrl.document.territory.district.length > 0\\\"><span>Район</span></dt> <dd ng-if=\\\"$ctrl.document.territory.district && $ctrl.document.territory.district.length > 0\\\">{{$ctrl.getDistrictString($ctrl.document.territory.district)}}</dd> <dt ng-if=\\\"$ctrl.document.territory.cadastralNumber && $ctrl.document.territory.cadastralNumber.length > 0\\\"><span>Кадастровый номер</span></dt> <dd ng-if=\\\"$ctrl.document.territory.cadastralNumber && $ctrl.document.territory.cadastralNumber.length > 0\\\">{{$ctrl.document.territory.cadastralNumber.join(', ')}}</dd> <dt ng-if=\\\"$ctrl.document.territory.workSheetNumber && $ctrl.document.territory.workSheetNumber.length > 0\\\"><span>Номер планшета</span></dt> <dd ng-if=\\\"$ctrl.document.territory.workSheetNumber && $ctrl.document.territory.workSheetNumber.length > 0\\\"> <div ng-repeat=\\\"w in $ctrl.document.territory.workSheetNumber\\\">{{w}}</div> </dd> <dt ng-if=$ctrl.document.territory.docTerritory><span>Территория действия документа</span></dt> <dd ng-if=$ctrl.document.territory.docTerritory>{{$ctrl.document.territory.docTerritory.name}}</dd> </dl> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-territory/documentTerritoryView.html\n// module id = 43\n// module chunks = 0","import { ITreeViewItemChecked } from \"oasi-widgets\";\r\nimport { DocumentIsogd, DocumentObject } from \"isogd-document-rest\";\r\n\r\nclass DocumentObjectEditController {\r\n    static $inject = ['$uibModal'];\r\n    private document: DocumentIsogd;\r\n    private finance: any[];\r\n    private selectedFinance: any;\r\n    private fnos: any[];\r\n    private notFoundFinance: string[];\r\n    constructor(private $uibModal: ng.ui.bootstrap.IModalService) {\r\n    }\r\n\r\n    onObjectFinanceChange() {\r\n        this.document.object.objectFinanceCode = this.selectedFinance.financeCode;\r\n        this.document.object.objectFinanceValue = this.selectedFinance.financeName;\r\n    }\r\n\r\n    clearFNO() {\r\n        delete this.document.object.objectTypeCode;\r\n        delete this.document.object.objectTypeName;\r\n    }\r\n\r\n    chooseFNO() {\r\n        let tree = this.buildSelectedTree(this.fnos);\r\n        this.$uibModal.open({\r\n            component: 'dictionary-modal',\r\n            size: 'lg',\r\n            resolve: {\r\n                name: () => {\r\n                    return 'Выбор функционального назначения (306-ПП)';\r\n                },\r\n                multiple: () => {\r\n                    return false;\r\n                },\r\n                tree: () => {\r\n                    return tree;\r\n                },\r\n                selectedItems: () => {\r\n                    let object = this.document.object;\r\n                    return object ? [object.objectTypeCode] : [];\r\n                }\r\n            }\r\n        }).result.then((result: string[]) => {\r\n            if (result && result.length > 0) {\r\n                let fno = this.findInDictByCode(this.fnos, result[0]);\r\n                this.document.object = new DocumentObject(this.document.object);\r\n                this.document.object.objectTypeCode = fno.fnoCode;\r\n                this.document.object.objectTypeName = fno.fnoName;\r\n            }\r\n        });\r\n    }\r\n\r\n    findInDictByCode(dict: any[], code: string): any {\r\n        let result: any = null;\r\n\r\n        dict.forEach(d => {\r\n            if (d.fnoCode === code) {\r\n                result = d;\r\n            }\r\n\r\n            if (d.children !== undefined && d.children !== null) {\r\n                let r = this.findInDictByCode(d.children, code);\r\n                if (r !== null) {\r\n                    result = r;\r\n                }\r\n            }\r\n        });\r\n\r\n        return result;\r\n    }\r\n\r\n    buildSelectedTree(dict: any[]): ITreeViewItemChecked[] {\r\n        let tree: ITreeViewItemChecked[] = null;\r\n\r\n        dict.forEach(item => {\r\n            if (tree === null) {\r\n                tree = [];\r\n            }\r\n\r\n            let children: ITreeViewItemChecked[] = (item.children === undefined || item.children === null) ? null : this.buildSelectedTree(item.children);\r\n            let template = item.fnoName + ' [' + item.fnoCode + ']';\r\n            let result: ITreeViewItemChecked = {\r\n                parent: null,\r\n                id: item.fnoCode,\r\n                template: template,\r\n                children: children,\r\n                expanded: false,\r\n                checked: false,\r\n                disabled: false,\r\n                selectable: true\r\n            };\r\n            if (children) {\r\n                children.forEach(ch => {\r\n                    ch.parent = result;\r\n                })\r\n            }\r\n            tree.push(result);\r\n        });\r\n\r\n        return tree;\r\n    }\r\n\r\n}\r\n\r\nexport const DocumentObjectEditComponent: angular.IComponentOptions = {\r\n    controller: DocumentObjectEditController,\r\n    template: require('./documentObjectEdit.html'),\r\n    bindings: {\r\n        document: \"<\",\r\n        finance: \"<\",\r\n        selectedFinance: \"<\",\r\n        fnos: \"<\",\r\n        notFoundFinance: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-object/documentObjectEdit.ts","module.exports = \"<div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Строительный адрес</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text class=form-control ng-model=$ctrl.document.object.objectAddress> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Присвоенный адрес</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text class=form-control ng-model=$ctrl.document.object.postAddress> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Наименование объекта</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text class=form-control ng-model=$ctrl.document.object.objectName> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Функциональное назначение</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text class=form-control ng-model=$ctrl.document.object.objectTypeDoc> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Функциональное назначение (306-ПП) </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <div ng-show=$ctrl.document.object.objectTypeCode> <label class=control-label>{{$ctrl.document.object.objectTypeName}}&nbsp; <button ng-show=$ctrl.document.object.objectTypeCode ng-click=$ctrl.clearFNO() type=button class=\\\"btn btn-link\\\" style=padding:0><i class=\\\"fa fa-trash text-danger\\\" aria-hidden=true></i></button> </label> </div> <button ng-show=!$ctrl.document.object.objectTypeCode ng-click=$ctrl.chooseFNO() type=button class=\\\"btn btn-primary\\\"><i class=\\\"fa fa-bars\\\"></i> &nbsp;Выбрать из справочника</button> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Источник финансирования</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <select class=\\\"form-control our-select\\\" ng-model=$ctrl.selectedFinance ng-change=$ctrl.onObjectFinanceChange() ng-options=\\\"item as item.financeName for item in $ctrl.finance\\\"> </select> <div class=m-t-sm ng-if=\\\"$ctrl.notFoundFinance && $ctrl.notFoundFinance.length > 0\\\"> <span class=text-danger>Следующие значения из документа отсутствуют в справочнике: {{$ctrl.notFoundFinance.join(', ')}}</span> </div> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-object/documentObjectEdit.html\n// module id = 45\n// module chunks = 0","import { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass DocumentObjectViewController {\r\n    private document: DocumentIsogd;\r\n}\r\n\r\nexport const DocumentObjectViewComponent: angular.IComponentOptions = {\r\n    controller: DocumentObjectViewController,\r\n    template: require('./documentObjectView.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-object/documentObjectView.ts","module.exports = \"<div class=description> <dl class=\\\"dl-horizontal m-l-md\\\"> <dt ng-if=$ctrl.document.object.objectAddress><span>Строительный адрес</span></dt> <dd ng-if=$ctrl.document.object.objectAddress>{{$ctrl.document.object.objectAddress}}</dd> <dt ng-if=$ctrl.document.object.postAddress><span>Присвоенный адрес</span></dt> <dd ng-if=$ctrl.document.object.postAddress>{{$ctrl.document.object.postAddress}}</dd> <dt ng-if=$ctrl.document.object.objectName><span>Наименование объекта</span></dt> <dd ng-if=$ctrl.document.object.objectName>{{$ctrl.document.object.objectName}}</dd> <dt ng-if=$ctrl.document.object.objectTypeDoc><span>Функциональное назначение</span></dt> <dd ng-if=$ctrl.document.object.objectTypeDoc>{{$ctrl.document.object.objectTypeDoc}}</dd> <dt ng-if=$ctrl.document.object.objectTypeName><span>Функциональное назначение (306-ПП)</span></dt> <dd ng-if=$ctrl.document.object.objectTypeName>{{$ctrl.document.object.objectTypeName}}</dd> <dt ng-if=$ctrl.document.object.objectFinanceValue><span>Источник финансирования</span></dt> <dd ng-if=$ctrl.document.object.objectFinanceValue>{{$ctrl.document.object.objectFinanceValue}}</dd> </dl> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-object/documentObjectView.html\n// module id = 47\n// module chunks = 0","\r\nimport * as _ from \"lodash\";\r\nimport { DocumentIsogd, DocumentSpecific } from \"isogd-document-rest\";\r\n\r\nclass DocumentSpecificEditController {\r\n\r\n    private document: DocumentIsogd;\r\n    private specifics: any[];\r\n\r\n    private _addNewSpecific(): void {\r\n        let newSpecific: DocumentSpecific = new DocumentSpecific();\r\n        newSpecific.specificCode = this.specifics[0].code;\r\n        newSpecific.specificName = this.specifics[0].name;\r\n        newSpecific.specificValue = \"\";\r\n\r\n        if (!this.document.specific) {\r\n            this.document.specific = [];\r\n        }\r\n        this.document.specific.push(newSpecific);\r\n    }\r\n\r\n    private _deleteSpecific(idx): void {\r\n        this.document.specific.splice(idx, 1);\r\n    }\r\n\r\n    private _hasEmptySpecific(): boolean {\r\n        return this.document.specific.some((specific) => {\r\n            return specific.specificValue === \"\";\r\n        });\r\n    }\r\n\r\n    public onSpecificTypeChanged(idx: number) {\r\n        let specific = _.find(this.specifics, specific => {\r\n            return specific.specificCode == this.document.specific[idx].specificCode;\r\n        });\r\n\r\n        this.document.specific[idx].specificName = specific.specificName;\r\n    }\r\n\r\n    public onSpecificValueChange(idx, value): void {\r\n        if (!this._hasEmptySpecific()) {\r\n            this._addNewSpecific();\r\n        }\r\n        if (value === \"\") {\r\n            this._deleteSpecific(idx);\r\n        }\r\n    }\r\n\r\n}\r\n\r\nexport const DocumentSpecificEditComponent: angular.IComponentOptions = {\r\n    controller: DocumentSpecificEditController,\r\n    template: require('./documentSpecificEdit.html'),\r\n    bindings: {\r\n        document: \"<\",\r\n        specifics: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-specific/documentSpecificEdit.ts","module.exports = \"<div class=m-l-md> <table class=table> <thead> <tr> <th class=\\\"col-lg-3 col-md-3\\\">Атрибут</th> <th>Значение</th> </tr> </thead> <tbody> <tr ng-repeat=\\\"specific in $ctrl.document.specific\\\"> <td> <select class=\\\"form-control our-select\\\" ng-model=specific.specificCode ng-change=$ctrl.onSpecificTypeChanged($index) ng-options=\\\"item.specificCode as item.specificName for item in $ctrl.specifics\\\"></select> </td> <td> <input type=text class=form-control ng-model=specific.specificValue ng-change=\\\"$ctrl.onSpecificValueChange($index, specific.specificValue)\\\"> </td> </tr> </tbody> </table> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-specific/documentSpecificEdit.html\n// module id = 49\n// module chunks = 0","import { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass DocumentSpecificViewController {\r\n    private document: DocumentIsogd;\r\n}\r\n\r\nexport const DocumentSpecificViewComponent: angular.IComponentOptions = {\r\n    controller: DocumentSpecificViewController,\r\n    template: require('./documentSpecificView.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-specific/documentSpecificView.ts","module.exports = \"<dl class=\\\"dl-horizontal m-l-md\\\"> <dt ng-repeat-start=\\\"item in $ctrl.document.specific\\\"><span>{{item.specificName}}</span></dt> <dd ng-repeat-end>{{item.specificValue}}</dd> </dl>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-specific/documentSpecificView.html\n// module id = 51\n// module chunks = 0","import { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass DocumentRequestEditController {\r\n    private document: DocumentIsogd;\r\n}\r\n\r\nexport const DocumentRequestEditComponent: angular.IComponentOptions = {\r\n    controller: DocumentRequestEditController,\r\n    template: require('./documentRequestEdit.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-request/documentRequestEdit.ts","module.exports = \"<div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Регистрационный номер заявления</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text class=form-control ng-model=$ctrl.document.request.requestNumber> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Дата регистрации заявления</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <date-selector ng-model=$ctrl.document.request.requestDate></date-selector> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Номер заявления ПГУ</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text class=form-control ng-model=$ctrl.document.request.pguRequestNumber> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Дата заявления ПГУ</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <date-selector ng-model=$ctrl.document.request.pguRequestDate></date-selector> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Единый номер обращения ПГУ</label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text class=form-control ng-model=$ctrl.document.request.eno> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-request/documentRequestEdit.html\n// module id = 53\n// module chunks = 0","import { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass DocumentRequestViewController {\r\n    private document: DocumentIsogd;\r\n}\r\n\r\nexport const DocumentRequestViewComponent: angular.IComponentOptions = {\r\n    controller: DocumentRequestViewController,\r\n    template: require('./documentRequestView.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-request/documentRequestView.ts","module.exports = \"<div class=description> <dl class=\\\"dl-horizontal m-l-md\\\"> <dt ng-if=\\\"$ctrl.document.request.requestNumber || $ctrl.document.request.requestDate\\\"><span>Заявление</span></dt> <dd ng-if=\\\"$ctrl.document.request.requestNumber || $ctrl.document.request.requestDate\\\"> <span ng-if=$ctrl.document.request.requestNumber>№ {{$ctrl.document.request.requestNumber}}</span> <span ng-if=$ctrl.document.request.requestDate>от {{$ctrl.document.request.requestDate | date: 'dd.MM.yyyy'}}</span> </dd> <dt ng-if=\\\"$ctrl.document.request.pguRequestNumber || $ctrl.document.request.pguRequestDate\\\"><span>Заявление ПГУ</span></dt> <dd ng-if=\\\"$ctrl.document.request.pguRequestNumber || $ctrl.document.request.pguRequestDate\\\"> <span ng-if=$ctrl.document.request.pguRequestNumber>№ {{$ctrl.document.request.pguRequestNumber}}</span> <span ng-if=$ctrl.document.request.pguRequestDate>от {{$ctrl.document.request.pguRequestDate | date: 'dd.MM.yyyy'}}</span> </dd> <dt ng-if=$ctrl.document.request.eno><span>Единый номер обращения ПГУ</span></dt> <dd ng-if=$ctrl.document.request.eno>{{$ctrl.document.request.eno}}</dd> </dl> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-request/documentRequestView.html\n// module id = 55\n// module chunks = 0","import { DocumentIsogd } from 'isogd-document-rest';\r\n\r\nclass DocumentApproveEditController {\r\n\r\n    private document: DocumentIsogd;\r\n    private selectedDocumentOrg:  any;\r\n    private documentOrgs: any[];\r\n    private approvedocTypes: any[];\r\n    private selectedApprovedocType: any;\r\n\r\n    changeDocumentOrganization() {\r\n        this.document.approveDocument.approveOrganizationCode = undefined;\r\n        this.selectedDocumentOrg = undefined\r\n    }\r\n\r\n    onDocumentOrgChange() {\r\n        this.document.approveDocument.approveOrganization = this.selectedDocumentOrg.shortName;\r\n        this.document.approveDocument.approveOrganizationCode = this.selectedDocumentOrg.orgCode;\r\n    }\r\n\r\n    onApproveDocumentTypeChange() {\r\n        this.document.approveDocument.approveDocumentValue = this.selectedApprovedocType.approvedocName;\r\n        this.document.approveDocument.approveDocumentType = this.selectedApprovedocType.approvedocCode;\r\n    }\r\n}\r\n\r\nexport const DocumentApproveEditComponent: angular.IComponentOptions = {\r\n    controller: DocumentApproveEditController,\r\n    template: require('./documentApproveEdit.html'),\r\n    bindings: {\r\n        document: \"<\",\r\n        selectedDocumentOrg: \"<\",\r\n        documentOrgs: \"<\",\r\n        approvedocTypes: \"<\",\r\n        selectedApprovedocType: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-approve/documentApproveEdit.ts","module.exports = \"<div class=form-group> <label class=\\\"col-md-3 control-label\\\"> Тип утверждающего документа </label> <div class=col-md-9> <select class=form-control ng-model=$ctrl.selectedApprovedocType ng-change=$ctrl.onApproveDocumentTypeChange() ng-options=\\\"item as item.approvedocName for item in $ctrl.approvedocTypes\\\"></select> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Номер утверждающего документа </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text class=form-control ng-model=$ctrl.document.approveDocument.approveDocumentNumber> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Дата утверждающего документа </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <date-selector ng-model=$ctrl.document.approveDocument.approveDocumentDate></date-selector> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Организация, выдавшая утверждающий документ </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <select class=form-control ng-change=$ctrl.onDocumentOrgChange() ng-model=$ctrl.selectedDocumentOrg ng-options=\\\"item as item.shortName for item in $ctrl.documentOrgs\\\"></select> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"></label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text ng-change=$ctrl.changeDocumentOrganization() class=form-control ng-model=$ctrl.document.approveDocument.approveOrganization> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-approve/documentApproveEdit.html\n// module id = 57\n// module chunks = 0","import { DocumentApproveDocument } from \"isogd-document-rest\";\r\n\r\nclass DocumentApproveViewController {\r\n    private approveDocument: DocumentApproveDocument;\r\n}\r\n\r\nexport const DocumentApproveViewComponent: angular.IComponentOptions = {\r\n    controller: DocumentApproveViewController,\r\n    template: require('./documentApproveView.html'),\r\n    bindings: {\r\n        approveDocument: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-approve/documentApproveView.ts","module.exports = \"<div class=description> <dl class=\\\"dl-horizontal m-l-md\\\"> <dt ng-if=\\\"$ctrl.approveDocument.approveDocumentNumber || $ctrl.approveDocument.approveDocumentDate\\\"><span>Утверждающий документ</span> </dt> <dd ng-if=\\\"$ctrl.approveDocument.approveDocumentNumber || $ctrl.approveDocument.approveDocumentDate\\\"> <span>{{$ctrl.approveDocument.approveDocumentValue}}</span> <span ng-if=$ctrl.approveDocument.approveDocumentNumber>№ {{$ctrl.approveDocument.approveDocumentNumber}}</span> <span ng-if=$ctrl.approveDocument.approveDocumentDate>от {{$ctrl.approveDocument.approveDocumentDate | date: 'dd.MM.yyyy'}}</span> </dd> <dt ng-if=$ctrl.approveDocument.approveOrganization><span>Организация, выдавшая утверждающий документ</span></dt> <dd ng-if=$ctrl.approveDocument.approveOrganization>{{$ctrl.approveDocument.approveOrganization}}</dd> </dl> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-approve/documentApproveView.html\n// module id = 59\n// module chunks = 0","import { DocumentIsogd, DocumentLinkDocument } from \"isogd-document-rest\";\r\n\r\nclass DocumentLinkEditController {\r\n    private document: DocumentIsogd;\r\n    private documentTypes: any[];\r\n\r\n    addLinkDocument() {\r\n        if (!this.document.linkDocument) {\r\n            this.document.linkDocument = [];\r\n        }\r\n        let linkDocumentNumber = new DocumentLinkDocument();\r\n        linkDocumentNumber.linkDocumentNumber = '';\r\n        this.document.linkDocument.push(linkDocumentNumber)\r\n    }\r\n\r\n    linkDocChange(i, item) {\r\n\r\n        this.documentTypes.forEach(t => {\r\n            if (t.docCode === item) {\r\n                this.document.linkDocument[i].linkDocumentTypeName = t.docName;\r\n            }\r\n        });\r\n    }\r\n\r\n    deleteLinkDocument(index) {\r\n        this.document.linkDocument.splice(index, 1);\r\n    }\r\n}\r\n\r\nexport const DocumentLinkEditComponent: angular.IComponentOptions = {\r\n    controller: DocumentLinkEditController,\r\n    template: require('./documentLinkEdit.html'),\r\n    bindings: {\r\n        document: \"<\",\r\n        documentTypes: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-link/documentLinkEdit.ts","module.exports = \"<div class=m-l-md> <table class=table> <thead> <tr> <th style=vertical-align:bottom>Тип документа</th> <th style=vertical-align:bottom>Номер</th> <th style=vertical-align:bottom;width:220px>Дата</th> <th style=width:50px> <button ng-click=$ctrl.addLinkDocument() class=\\\"btn btn-primary\\\"><i class=\\\"fa fa-plus\\\" aria-hidden=true></i></button> </th> </tr> </thead> <tbody> <tr ng-if=\\\"$ctrl.document.linkDocument && $ctrl.document.linkDocument.length > 0\\\" ng-repeat=\\\"l in $ctrl.document.linkDocument\\\"> <td> <select class=form-control ng-change=\\\"$ctrl.linkDocChange($index, l.linkDocumentTypeCode)\\\" ng-model=l.linkDocumentTypeCode ng-options=\\\"item.docCode as item.docName for item in $ctrl.documentTypes\\\"></select> </td> <td> <input type=text class=form-control ng-model=l.linkDocumentNumber> </td> <td> <date-selector ng-model=l.linkDocumentDate></date-selector> </td> <td> <button ng-click=$ctrl.deleteLinkDocument($index) class=\\\"btn btn-danger\\\"><i class=\\\"fa fa-trash\\\" aria-hidden=true></i></button> </td> </tr> <tr ng-if=\\\"!($ctrl.document.linkDocument && $ctrl.document.linkDocument.length > 0)\\\"> <td colspan=4 style=text-align:center> данные отсутствуют </td> </tr> </tbody> </table> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-link/documentLinkEdit.html\n// module id = 61\n// module chunks = 0","import { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass DocumentLinkViewController {\r\n    private document: DocumentIsogd;\r\n}\r\n\r\nexport const DocumentLinkViewComponent: angular.IComponentOptions = {\r\n    controller: DocumentLinkViewController,\r\n    template: require('./documentLinkView.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-link/documentLinkView.ts","module.exports = \"<div class=description> <dl class=\\\"dl-horizontal m-l-md\\\"> <dt ng-repeat-start=\\\"item in $ctrl.document.linkDocument\\\"><span>{{item.linkDocumentTypeName}}</span></dt> <dd ng-repeat-end> <span ng-if=item.linkDocumentNumber>№ {{item.linkDocumentNumber}}</span> <span ng-if=item.linkDocumentDate>от {{item.linkDocumentDate | date: 'dd.MM.yyyy'}}</span> </dd> </dl> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-link/documentLinkView.html\n// module id = 63\n// module chunks = 0","import * as _ from \"lodash\";\r\nimport { DocumentIsogd, TEP } from \"isogd-document-rest\";\r\n\r\nclass DocumentTepEditController {\r\n\r\n    private document: DocumentIsogd;\r\n    private teps: any[];\r\n    tepCodeChanged(tep: any) {\r\n    \tif (tep.tepCode) {\r\n\t        let dictTep = this.getTepByCode(tep.tepCode);\r\n\t        tep.tepName = dictTep.tepName;\r\n        } else {\r\n        \ttep.tepName = '';\r\n        }\r\n    }\r\n\r\n    tepValueChanged(idx, value) {\r\n        if (!this.hasEmptyTep()) {\r\n            this.addNewTep();\r\n        }\r\n\r\n        if (value === \"\") {\r\n            this.document.teps\r\n            this.document.teps.splice(idx, 1);\r\n        }\r\n    }\r\n\r\n    getTepByCode(code): any {\r\n        return _.find(this.teps, tep => {\r\n            return tep.tepCode == code;\r\n        });\r\n    }\r\n\r\n    addNewTep() {\r\n        let newTep: TEP = new TEP();\r\n\t\tthis.document.teps.push(newTep);\r\n    }\r\n\r\n    hasEmptyTep() {\r\n        return _.some(this.document.teps, tep => {\r\n            return tep.tepValue === \"\";\r\n        });\r\n    }\r\n}\r\n\r\nexport const DocumentTepEditComponent: angular.IComponentOptions = {\r\n    controller: DocumentTepEditController,\r\n    template: require('./documentTepEdit.html'),\r\n    bindings: {\r\n        document: \"<\",\r\n        teps: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-tep/documentTepEdit.ts","module.exports = \"<table class=table> <thead> <tr> <th class=\\\"col-lg-4 col-md-4\\\">Классификатор ТЭПов</th> <th>Наименование показателя</th> <th class=\\\"col-lg-3 col-md-3\\\">Значение</th> </tr> </thead> <tbody> <tr ng-repeat=\\\"tep in $ctrl.document.teps\\\"> <td> <select name=tepCode class=\\\"form-control our-select\\\" ng-model=tep.tepCode ng-change=$ctrl.tepCodeChanged(tep) ng-init=tep ng-options=\\\"item.tepCode as (item.tepCode + ' ' + item.tepName) for item in $ctrl.teps\\\"></select> </td> <td> <input type=text class=form-control ng-disabled=tep.tepCode ng-model=tep.tepName>  </td> <td> <input type=text class=form-control ng-disabled=\\\"!tep.tepCode && !tep.tepName\\\" ng-model=tep.tepValue ng-change=\\\"$ctrl.tepValueChanged($index, tep.tepValue)\\\"> </td> </tr> </tbody> </table> <div class=\\\"form-group m-t-md\\\"> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Дополнительная информация </label> <div class=\\\"col-lg-9 col-md-9 col-sm-9\\\"> <textarea type=text class=form-control ng-model=$ctrl.document.tepsAddInfo></textarea> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-tep/documentTepEdit.html\n// module id = 65\n// module chunks = 0","import { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass DocumentTepViewController {\r\n    private document: DocumentIsogd;\r\n}\r\n\r\nexport const DocumentTepViewComponent: angular.IComponentOptions = {\r\n    controller: DocumentTepViewController,\r\n    template: require('./documentTepView.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-tep/documentTepView.ts","module.exports = \"<div ng-if=$ctrl.document.teps class=\\\"table-responsive m-l-md\\\"> <table class=table> <thead> <tr> <th class=\\\"col-lg-2 col-md-2\\\">Код</th> <th>Наименование показателя</th> <th class=\\\"col-lg-3 col-md-3\\\">Значение</th> </tr> </thead> <tbody> <tr ng-repeat=\\\"tep in $ctrl.document.teps\\\"> <td>{{tep.tepCode}}</td> <td>{{tep.tepName}}</td> <td>{{tep.tepValue}}</td> </tr> </tbody> </table> </div> <div ng-if=$ctrl.document.tepsAddInfo class=description> <dl class=\\\"dl-horizontal m-l-md\\\"> <dt><span>Дополнительная информация</span></dt> <dd>{{$ctrl.document.tepsAddInfo}}</dd> </dl> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-tep/documentTepView.html\n// module id = 67\n// module chunks = 0","import * as _ from \"lodash\";\r\nimport { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass DocumentViewController {\r\n    private document: DocumentIsogd;\r\n    private documentRequisitesShow: boolean = true;\r\n    private registrationShow: boolean = true;\r\n    private territoryShow: boolean = true;\r\n    private objectShow: boolean = true;\r\n    private specificShow: boolean = true;\r\n    private requestShow: boolean = true;\r\n    private approveDocumentShow: boolean = true;\r\n    private linkDocumentShow: boolean = true;\r\n    private organizationsShow: boolean = true;\r\n    private tepShow: boolean = true;\r\n    private operatorShow: boolean = true;\r\n}\r\n\r\nexport const DocumentViewComponent: angular.IComponentOptions = {\r\n    controller: DocumentViewController,\r\n    template: require('./documentView.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/documentView.ts","module.exports = \" <expanded-section show=$ctrl.document.documentRequisites expand=$ctrl.documentRequisitesShow> <header style=display:inline>Реквизиты документа</header> <content> <document-requisites-view document=$ctrl.document></document-requisites-view> </content> </expanded-section> <expanded-section show=\\\"$ctrl.document.registration && ($ctrl.document.registration.registrationNumber || $ctrl.document.registration.registrationDate)\\\" expand=$ctrl.registrationShow> <header style=display:inline>Регистрация в ИАИС ОГД</header> <content> <document-registration-view document=$ctrl.document></document-registration-view> </content> </expanded-section> <expanded-section show=$ctrl.document.territory expand=$ctrl.territoryShow> <header style=display:inline>Территория</header> <content> <document-territory-view document=$ctrl.document></document-territory-view> </content> </expanded-section> <expanded-section show=$ctrl.document.object expand=$ctrl.objectShow> <header style=display:inline>Объект капитального строительства</header> <content> <document-object-view document=$ctrl.document></document-object-view> </content> </expanded-section> <expanded-section show=$ctrl.document.specific expand=$ctrl.specificShow> <header style=display:inline>Атрибуты документа</header> <content> <div class=description> <document-specific-view document=$ctrl.document specifics=$ctrl.specifics></document-specific-view> </div> </content> </expanded-section> <expanded-section show=$ctrl.document.request expand=$ctrl.requestShow> <header style=display:inline>Заявление на подготовку документа</header> <content> <document-request-view document=$ctrl.document></document-request-view> </content> </expanded-section> <expanded-section show=$ctrl.document.approveDocument expand=$ctrl.approveDocumentShow> <header style=display:inline>Утверждающий документ</header> <content> <document-approve-view approve-document=$ctrl.document.approveDocument></document-approve-view> </content> </expanded-section> <expanded-section show=$ctrl.document.linkDocument expand=$ctrl.linkDocumentShow> <header style=display:inline>Связанные документы</header> <content> <document-link-view document=$ctrl.document></document-link-view> </content> </expanded-section> <expanded-section show=$ctrl.document.organizations expand=$ctrl.organizationsShow> <header style=display:inline>Организации</header> <content> <document-organization-view document=$ctrl.document></document-organization-view> </content> </expanded-section> <expanded-section show=\\\"$ctrl.document.teps || $ctrl.document.tepsAddInfo\\\" expand=$ctrl.tepShow> <header style=display:inline>ТЭПы</header> <content> <document-tep-view document=$ctrl.document></document-tep-view> </content> </expanded-section> <expanded-section show=$ctrl.document.operator expand=$ctrl.operatorShow> <header style=display:inline>Оператор</header> <content> <div class=description> <dl class=\\\"dl-horizontal m-l-md\\\"> <dt><span>ФИО оператора</span></dt> <dd><span>{{$ctrl.document.operator.operatorFIO}}</span></dd> <dt><span>Взято в работу</span></dt> <dd><span>{{$ctrl.document.operator.operatorDate | date: 'dd.MM.yyyy'}}</span></dd> </dl> </div> </content> </expanded-section> \";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/documentView.html\n// module id = 69\n// module chunks = 0","\r\nimport * as _ from \"lodash\";\r\nimport { ChapterFilter } from \"../../services/ChapterFilter\";\r\nimport { DocumentService } from '../../services/DocumentService';\r\nimport * as widgets from \"oasi-widgets\";\r\nimport { DocumentIsogd, DocumentTerritoryDocTerritory, DocumentSpecific, TEP, DocumentApproveDocument, DocumentTerritory } from \"isogd-document-rest\";\r\nimport { NsiRestService } from \"oasi-nsi-rest\";\r\n\r\nclass DocumentEditController {\r\n    static $inject = ['nsiRestService', 'documentService'];\r\n    private loadingStatus: widgets.LoadingStatus = widgets.LoadingStatus.LOADING;\r\n    private document: DocumentIsogd;\r\n    private documentRequisitesShow: boolean = true;\r\n    private registrationShow: boolean = true;\r\n    private territoryShow: boolean = true;\r\n    private objectShow: boolean = true;\r\n    private specificShow: boolean = true;\r\n    private requestShow: boolean = true;\r\n    private approveDocumentShow: boolean = true;\r\n    private linkDocumentShow: boolean = true;\r\n    private organizationsShow: boolean = true;\r\n    private tepShow: boolean = true;\r\n    private operatorShow: boolean = true;\r\n    private chapters: any[];\r\n    private selectedChapter: any;\r\n    private documentTypes: any[];\r\n    private selectedDocumentType: any = null;\r\n    private selectedDocumentTypes: any[];\r\n    private documentOrgs: any[];\r\n    private selectedDocumentOrg: any;\r\n    private selectedDocumentOrg1: any;\r\n    private documentStatuses: any[];\r\n    private selectedDocumentStatus: any;\r\n    private workSheetNumbers: any[];\r\n    private selectedWorkSheetNumbers: any[] = [];\r\n    private areas: any[];\r\n    private selectedAreas: any[] = [];\r\n    private districts: any[];\r\n    private districtsByArea: any[] = [];\r\n    private selectedDistricts: any[] = [];\r\n    private finance: any[] = [];\r\n    private selectedFinance: any;\r\n    private specifics: any[];\r\n    private approvedocTypes: any[];\r\n    private selectedApprovedocType: any;\r\n    private orgRoles: any[];\r\n    private orgTypes: any[];\r\n    private teps: any[];\r\n    private fnos: any[];\r\n    private docTerritories: DocumentTerritoryDocTerritory[];\r\n    private selectedDocTerritory: DocumentTerritoryDocTerritory;\r\n    private copy: boolean;\r\n    private notFoundAreas: string[] = [];\r\n    private notFoundDistricts: string[] = [];\r\n    private notFoundFinance: string[] = [];\r\n    private notFoundDocStatuses: string[] = [];\r\n    private fieldsDocumentISOGD: any[];\r\n    private showRegistration: boolean;\r\n    private showTerritory: boolean;\r\n    private showObject: boolean;\r\n    private showSpecific: boolean;\r\n    private showRequest: boolean;\r\n    private showApproveDocument: boolean;\r\n    private showLinkDocument: boolean;\r\n    private showOrganizations: boolean;\r\n    private showTeps: boolean;\r\n\r\n    constructor(private nsiRestService: NsiRestService, private documentService: DocumentService) {\r\n    }\r\n\r\n    $onChanges(changes: any) {\r\n        if (changes.selectedDocumentType && changes.selectedDocumentType.currentValue) {\r\n            this.showSections();\r\n        }\r\n    }\r\n\r\n    hideSection(name: string): boolean {\r\n        let result = false;\r\n        if(this.selectedDocumentType) {\r\n            this.fieldsDocumentISOGD.forEach(f => {\r\n                if (f.xPath === name && f.hideDoc && f.hideDoc.length && f.hideDoc.length > 0) {\r\n                   if (_.find(f.hideDoc, d => {return d === this.selectedDocumentType.docCode})) {\r\n                       result = true;\r\n                   }\r\n                }\r\n            });\r\n        }\r\n        return result;\r\n    }\r\n\r\n    documentTypeChanged(type: any) {\r\n        this.selectedDocumentType = type;\r\n        this.showSections();\r\n    }\r\n\r\n    showSections() {\r\n        this.showRegistration = !(this.hideSection('registration') && this.isEmptyObject(this.document.registration));\r\n        this.showTerritory = !(this.hideSection('territory') && this.isEmptyObject(this.document.territory));\r\n        this.showObject = !(this.hideSection('object') && this.isEmptyObject(this.document.object));\r\n        this.showSpecific = !(this.hideSection('specific') && this.isEmptyObject(this.document.specific));\r\n        this.showRequest = !(this.hideSection('request') && this.isEmptyObject(this.document.request));\r\n        this.showApproveDocument = !(this.hideSection('approveDocument') && this.isEmptyObject(this.document.approveDocument));\r\n        this.showLinkDocument = !(this.hideSection('linkDocument') && this.isEmptyObject(this.document.linkDocument));\r\n        this.showOrganizations = !(this.hideSection('organizations') && this.isEmptyObject(this.document.organizations));\r\n        this.showTeps = !(this.hideSection('teps') && this.isEmptyObject(this.document.teps));\r\n    }\r\n\r\n    $onInit() {\r\n        this.nsiRestService.get(\"OldChapters\").then(response => {\r\n            this.chapters = ChapterFilter.transform(response);\r\n\r\n\r\n            if (this.copy) {\r\n                this.chapters = _.filter(this.chapters, (ch) => {\r\n                    return ch.code === \"8400\" || ch.code === \"8599\";\r\n                });\r\n            }\r\n\r\n            this.chapters.forEach(ch => {\r\n                if (ch.code === this.document.reestr) {\r\n                    this.selectedChapter = ch;\r\n                }\r\n            });\r\n            return this.nsiRestService.get(\"DocumentTypes\");\r\n        }).then(response => {\r\n            this.documentTypes = response;\r\n\r\n            if (this.selectedChapter && this.selectedChapter.doc && this.selectedChapter.doc.length > 0) {\r\n                this.selectedDocumentTypes = this.selectedChapter.doc;\r\n            } else {\r\n                this.selectedDocumentTypes = this.documentTypes;\r\n            }\r\n\r\n            this.selectedDocumentTypes.forEach(d => {\r\n                if (d.docCode === this.document.documentType) {\r\n                    this.selectedDocumentType = d;\r\n                }\r\n            });\r\n            return this.nsiRestService.get(\"fieldsDocumentISOGD\");\r\n        }).then(response => {\r\n            this.fieldsDocumentISOGD = response;\r\n            return this.nsiRestService.get(\"DocumentOrg\");\r\n        }).then(response => {\r\n            this.documentOrgs = response;\r\n            if (this.document.documentRequisites && this.document.documentRequisites.documentOrganizationCode) {\r\n                this.documentOrgs.forEach(d => {\r\n                    if (d.orgCode === this.document.documentRequisites.documentOrganizationCode) {\r\n                        this.selectedDocumentOrg = d;\r\n                    }\r\n                });\r\n            }\r\n            if (this.document.approveDocument && this.document.approveDocument.approveOrganizationCode) {\r\n                this.documentOrgs.forEach(d => {\r\n                    if (d.orgCode === this.document.approveDocument.approveOrganizationCode) {\r\n                        this.selectedDocumentOrg1 = d;\r\n                    }\r\n                });\r\n            }\r\n            if (this.document.territory && this.document.territory.workSheetNumber && this.document.territory.workSheetNumber.length > 0) {\r\n                this.selectedWorkSheetNumbers = this.document.territory.workSheetNumber\r\n            }\r\n            return this.nsiRestService.get(\"DocumentStatus\");\r\n        }).then(response => {\r\n            this.documentStatuses = response;\r\n            if (this.document.documentRequisites) {\r\n                if (this.document.documentRequisites.documentStatusCode) {\r\n                    this.documentStatuses.forEach(d => {\r\n                        if (d.statusCode === this.document.documentRequisites.documentStatusCode) {\r\n                            this.selectedDocumentStatus = d;\r\n                        }\r\n                    });\r\n                } else {\r\n                    if (this.document.documentRequisites.documentStatusValue) {\r\n                        let newValue: any;\r\n                        this.documentStatuses.forEach(d => {\r\n                            if (d.synonym && d.synonym.length > 0) {\r\n                                d.synonym.forEach(s => {\r\n                                    if (s === this.document.documentRequisites.documentStatusValue) {\r\n                                        newValue = d;\r\n                                    }\r\n                                });                \r\n                            }\r\n                        });\r\n                        if (newValue) {\r\n                            this.selectedDocumentStatus = newValue;              \r\n                            this.document.documentRequisites.documentStatusCode = this.selectedDocumentStatus.statusCode;\r\n                            this.document.documentRequisites.documentStatusColor = this.selectedDocumentStatus.statusColor[0];\r\n                            this.document.documentRequisites.documentStatusValue = this.selectedDocumentStatus.statusValue;\r\n                        } else {\r\n                            this.notFoundDocStatuses.push(this.document.documentRequisites.documentStatusValue);\r\n                        }\r\n                    }\r\n\r\n                }\r\n            }\r\n            return this.nsiRestService.get(\"Prefect\");\r\n        }).then(response => {\r\n            this.areas = response;\r\n            if (this.document.territory && this.document.territory.area && this.document.territory.area.length > 0) {\r\n                this.document.territory.area.forEach(a => {\r\n                    \r\n                    if (a.areaCode) {\r\n                        this.areas.forEach(d => {\r\n                            if (d.code === a.areaCode) {\r\n                                this.selectedAreas.push(d);\r\n                            }\r\n                        });\r\n                    } else {\r\n                        if (a.areaName) {\r\n                            let newValue: any;\r\n                            this.areas.forEach(d => {\r\n                                if (d.synonyms && d.synonyms.length > 0) {\r\n                                    d.synonyms.forEach(s => {\r\n                                        if (s === a.areaName) {\r\n                                            newValue = d;\r\n                                        }\r\n                                    });\r\n                                }\r\n                            });\r\n                            if (newValue) {\r\n                                a.areaCode = newValue.code;\r\n                                a.areaName = newValue.name;\r\n                                this.selectedAreas.push(newValue);\r\n                            } else {\r\n                                this.notFoundAreas.push(a.areaName);\r\n                            }\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n            return this.nsiRestService.get(\"District\");\r\n        }).then(response => {\r\n            this.districts = response;\r\n            if (this.document.territory && this.document.territory.district && this.document.territory.district.length > 0) {\r\n                this.document.territory.district.forEach(a => {\r\n                    if (a.districtCode) {\r\n                        this.districts.forEach(d => {\r\n                            if (d.code === a.districtCode) {\r\n                                this.selectedDistricts.push(d);\r\n                            }\r\n                        });\r\n                    } else {\r\n                        if (a.districtName) {\r\n                            let newValue: any;\r\n                            this.districts.forEach(d => {\r\n                                if (d.synonyms && d.synonyms.length > 0) {\r\n                                    d.synonyms.forEach(s => {\r\n                                        if (s === a.districtName) {\r\n                                            newValue = d;\r\n                                        }\r\n                                    });\r\n                                }\r\n                            });\r\n                            if (newValue) {\r\n                                a.districtCode = newValue.code;\r\n                                a.districtName = newValue.name;\r\n                                this.selectedDistricts.push(newValue);\r\n                            } else {\r\n                                this.notFoundDistricts.push(a.districtName);\r\n                            }\r\n                        }\r\n                    }\r\n                });\r\n            }\r\n            if (this.selectedAreas.length > 0) {\r\n                let _districts = [];\r\n                this.districts.forEach(d => {\r\n                    this.selectedAreas.forEach(a => {\r\n                        if (d.perfectId && d.perfectId.length > 0) {\r\n                            d.perfectId.forEach(p => {\r\n                                if (p.code === a.code) {\r\n                                    _districts.push(d);\r\n                                }\r\n                            });\r\n                        }\r\n                    });\r\n                });\r\n                this.districtsByArea = _districts;\r\n            } else {\r\n                this.districtsByArea = this.districts;\r\n            }\r\n            return this.nsiRestService.get(\"Finance\");\r\n        }).then(response => {\r\n            this.finance = response;\r\n            if (this.document.object) {\r\n                if (this.document.object.objectFinanceCode) {\r\n                    this.finance.forEach(f => {\r\n                        if (f.financeCode === this.document.object.objectFinanceCode) {\r\n                            this.selectedFinance = f;\r\n                        }\r\n                    });\r\n                } else {\r\n                    if (this.document.object.objectFinanceValue) {\r\n                        let newValue: any;\r\n                        \r\n                        this.finance.forEach(f => {\r\n                            if (f.synonyms && f.synonyms.length > 0) {\r\n                                f.synonyms.forEach(s => {\r\n                                    if (s === this.document.object.objectFinanceValue) {\r\n                                        newValue = f;\r\n                                    }\r\n                                });\r\n                            }\r\n                        });\r\n\r\n                        if (newValue) {\r\n                            this.selectedFinance = newValue;\r\n                            this.document.object.objectFinanceCode = this.selectedFinance.financeCode;\r\n                            this.document.object.objectFinanceValue = this.selectedFinance.financeName;\r\n                        } else {\r\n                            this.notFoundFinance.push(this.document.object.objectFinanceValue);\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n            return this.nsiRestService.get(\"Specific\");\r\n        }).then(response => {\r\n            this.specifics = response;\r\n            return this.nsiRestService.get(\"DocTerritory\");\r\n        }).then((response: any[]) => {\r\n            this.docTerritories = response;\r\n            if (this.document.territory && this.document.territory.docTerritory) {\r\n                this.docTerritories.forEach(d => {\r\n                    if (d.code === this.document.territory.docTerritory.code) {\r\n                        this.selectedDocTerritory = d;\r\n                    }\r\n                })\r\n            }\r\n            return this.nsiRestService.get(\"ApprovedocTypes\");\r\n        }).then(response => {\r\n            this.approvedocTypes = response;\r\n            if (this.document.approveDocument && this.document.approveDocument.approveDocumentType) {\r\n                this.approvedocTypes.forEach(d => {\r\n                    if (d.approvedocCode === this.document.approveDocument.approveDocumentType) {\r\n                        this.selectedApprovedocType = d;\r\n                    }\r\n                });\r\n            }\r\n            return this.nsiRestService.get(\"OrgRoles\");\r\n        }).then(response => {\r\n            this.orgRoles = response;\r\n            return this.nsiRestService.get(\"OrgTypes\");\r\n        }).then(response => {\r\n            this.orgTypes = response;\r\n            return this.nsiRestService.get(\"TEP\");\r\n        }).then(response => {\r\n            this.teps = _.concat([<any>{\r\n                tepCode: \"\",\r\n                tepName: \"\"\r\n            }], response);\r\n            return this.nsiRestService.get(\"FNO\");\r\n        }).then(response => {\r\n            this.fnos = response;\r\n            if (!this.document.approveDocument) {\r\n                this.document.approveDocument = new DocumentApproveDocument();\r\n            }\r\n            if (!this.document.territory) {\r\n                this.document.territory = new DocumentTerritory();\r\n            }\r\n            if (this.document.territory) {\r\n                if (!this.document.territory.cadastralNumber) {\r\n                    this.document.territory.cadastralNumber = [];\r\n                }\r\n                if (this.document.territory.cadastralNumber && this.document.territory.cadastralNumber.length === 0) {\r\n                    this.document.territory.cadastralNumber.push(\"\");\r\n                }\r\n\r\n                if (!this.document.territory.workSheetNumber) {\r\n                    this.document.territory.workSheetNumber = [];\r\n                }\r\n                if (this.document.territory.workSheetNumber && this.document.territory.workSheetNumber.length === 0) {\r\n                    this.document.territory.workSheetNumber.push(\"\");\r\n                }\r\n            }\r\n            let newSpecific: DocumentSpecific = new DocumentSpecific();\r\n            newSpecific.specificCode = this.specifics[0].code;\r\n            newSpecific.specificName = this.specifics[0].name;\r\n            newSpecific.specificValue = \"\";\r\n\r\n            if (!this.document.specific) {\r\n                this.document.specific = [];\r\n            }\r\n            this.document.specific.push(newSpecific);\r\n            let newTep: TEP = new TEP();\r\n            newTep.tepName = \"\";\r\n            newTep.tepValue = \"\";\r\n            newTep.tepCode = \"\";\r\n            \r\n            if (!this.document.teps) {\r\n                this.document.teps = [];\r\n            }\r\n            this.document.teps.push(newTep);\r\n            this.showSections();\r\n            this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n        }).catch(error => {\r\n            console.log(error);\r\n            this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n        });\r\n    }\r\n\r\n    isEmptyObject(obj: any) {\r\n        for (var i in obj) {\r\n          if (obj.hasOwnProperty(i) && obj[i]) {\r\n            return false;\r\n          }\r\n        }\r\n        return true;\r\n      }\r\n}\r\n\r\nexport const DocumentEditComponent: angular.IComponentOptions = {\r\n    controller: DocumentEditController,\r\n    template: require('./documentEdit.html'),\r\n    bindings: {\r\n        document: \"<\",\r\n        copy: \"=\"\r\n    },\r\n    transclude: {\r\n        actionsSlot: \"?actions\"\r\n    },\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/documentEdit.ts","export class ChapterFilter {\r\n    type: string;\r\n    code: string;\r\n    name: string;\r\n    parent: string;\r\n    doc: any[];\r\n\r\n    static transform(chapters: any[]): ChapterFilter[] {\r\n        let result = [];\r\n\r\n        chapters.forEach(ch => {\r\n            if (ch.children) {\r\n                ch.children.forEach(s => {\r\n                    result.push(new ChapterFilter(ch.name, s.chapterCode, s.name, ch.name, s.doc));\r\n                });\r\n            }\r\n        });\r\n\r\n        return result;\r\n    }\r\n\r\n    constructor(type: string, code: string, name: string, parent: string, doc: any[]) {\r\n        this.type = type;\r\n        this.code = code;\r\n        this.name = name;\r\n        this.parent = parent;\r\n        if (doc) {\r\n            this.doc = doc;\r\n        }\r\n    }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/services/ChapterFilter.ts","module.exports = \"<loading-block loading-status=$ctrl.loadingStatus> <success> <form class=form-horizontal> <expanded-section expand=$ctrl.documentRequisitesShow show=true> <header style=display:inline>Реквизиты документа</header> <content> <document-requisites-edit document-type-changed=$ctrl.documentTypeChanged(type) not-found-doc-statuses=$ctrl.notFoundDocStatuses document=$ctrl.document chapters=$ctrl.chapters selected-chapter=$ctrl.selectedChapter document-types=$ctrl.documentTypes selected-document-type=$ctrl.selectedDocumentType document-orgs=$ctrl.documentOrgs selected-document-org=$ctrl.selectedDocumentOrg selected-document-types=$ctrl.selectedDocumentTypes document-statuses=$ctrl.documentStatuses selected-document-status=$ctrl.selectedDocumentStatus></document-requisites-edit> </content> </expanded-section> <expanded-section expand=$ctrl.registrationShow show=true ng-if=$ctrl.showRegistration> <header style=display:inline>Регистрация в ИАИС ОГД</header> <content> <document-registration-edit document=$ctrl.document></document-registration-edit> </content> </expanded-section> <expanded-section expand=$ctrl.territoryShow show=true ng-if=$ctrl.showTerritory> <header style=display:inline>Территория</header> <content> <document-territory-edit not-found-areas=$ctrl.notFoundAreas work-sheet-numbers=$ctrl.workSheetNumbers selected-work-sheet-numbers=$ctrl.selectedWorkSheetNumbers not-found-districts=$ctrl.notFoundDistricts document=$ctrl.document areas=$ctrl.areas selected-areas=$ctrl.selectedAreas districts=$ctrl.districts districts-by-area=$ctrl.districtsByArea selected-districts=$ctrl.selectedDistricts doc-territories=$ctrl.docTerritories selected-doc-territory=$ctrl.selectedDocTerritory></document-territory-edit> </content> </expanded-section> <expanded-section expand=$ctrl.objectShow show=true ng-if=$ctrl.showObject> <header style=display:inline>Объект капитального строительства</header> <content> <document-object-edit not-found-finance=$ctrl.notFoundFinance document=$ctrl.document finance=$ctrl.finance selected-finance=$ctrl.selectedFinance fnos=$ctrl.fnos></document-object-edit> </content> </expanded-section> <expanded-section expand=$ctrl.specificShow show=true ng-if=$ctrl.showSpecific> <header style=display:inline>Атрибуты документа</header> <content> <document-specific-edit document=$ctrl.document specifics=$ctrl.specifics></document-specific-edit> </content> </expanded-section> <expanded-section expand=$ctrl.requestShow show=true ng-if=$ctrl.showRequest> <header style=display:inline>Заявление на подготовку документа</header> <content> <document-request-edit document=$ctrl.document></document-request-edit> </content> </expanded-section> <expanded-section expand=$ctrl.approveDocumentShow show=true ng-if=$ctrl.showApproveDocument> <header style=display:inline>Утверждающий документ</header> <content> <document-approve-edit document=$ctrl.document selected-document-org=$ctrl.selectedDocumentOrg1 document-orgs=$ctrl.documentOrgs approvedoc-types=$ctrl.approvedocTypes selected-approvedoc-type=$ctrl.selectedApprovedocType></document-approve-edit> </content> </expanded-section> <expanded-section expand=$ctrl.linkDocumentShow show=true ng-if=$ctrl.showLinkDocument> <header style=display:inline>Связанные документы</header> <content> <document-link-edit document=$ctrl.document document-types=$ctrl.documentTypes></document-link-edit> </content> </expanded-section> <expanded-section expand=$ctrl.organizationsShow show=true ng-if=$ctrl.showOrganizations> <header style=display:inline>Организации</header> <content> <document-organization-edit document=$ctrl.document org-roles=$ctrl.orgRoles org-types=$ctrl.orgTypes></document-organization-edit> </content> </expanded-section> <expanded-section expand=$ctrl.tepShow show=true ng-if=$ctrl.showTeps> <header style=display:inline>ТЭПы</header> <content> <document-tep-edit document=$ctrl.document teps=$ctrl.teps></document-tep-edit> </content> </expanded-section> <div class=\\\"form-group row\\\"> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"></label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <div ng-transclude=actionsSlot></div> </div> </div> </form> </success> <loading> <div style=height:200px;padding-top:70px> <spinner style=margin:5px type=\\\"'three-bounce'\\\"></spinner> </div> </loading> </loading-block>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/documentEdit.html\n// module id = 72\n// module chunks = 0","import * as _ from \"lodash\";\r\nimport { DocumentIsogd, DocumentOrganization } from \"isogd-document-rest\";\r\n\r\nclass DocumentOrganizationEditController {\r\n    private document: DocumentIsogd;\r\n    private orgRoles: any[];\r\n    private orgTypes: any[];\r\n\r\n    onOrganizationRoleChange(ind: number) {\r\n        let orgRole = _.find(this.orgRoles, o => {\r\n            return o.roleCode == this.document.organizations[ind].organizationRoleCode;\r\n        });\r\n        this.document.organizations[ind].organizationRole = orgRole.roleName;\r\n    }\r\n\r\n    onOrganizationTypeChange(ind: number) {\r\n        let orgType = _.find(this.orgTypes, o => {\r\n            return o.typeCode == this.document.organizations[ind].organizationTypeCode;\r\n        });\r\n        this.document.organizations[ind].organizationType = orgType.typeName;\r\n    }\r\n\r\n    public onAddOrganizationClick(): void {\r\n        let newOrganization: DocumentOrganization = new DocumentOrganization();\r\n        \r\n        if (!this.document.organizations) {\r\n            this.document.organizations = [];\r\n        }\r\n        this.document.organizations.push(newOrganization);\r\n    }\r\n\r\n    public onRemoveOrganizationClick(idx): void {\r\n        this.document.organizations.splice(idx, 1);\r\n    }\r\n\r\n}\r\n\r\nexport const DocumentOrganizationEditComponent: angular.IComponentOptions = {\r\n    controller: DocumentOrganizationEditController,\r\n    template: require('./documentOrganizationEdit.html'),\r\n    bindings: {\r\n        document: \"<\",\r\n        orgRoles: \"<\",\r\n        orgTypes: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-organization/documentOrganizationEdit.ts","module.exports = \"<div ng-repeat=\\\"organization in $ctrl.document.organizations\\\"> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\">Роль организации </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <select class=\\\"form-control our-select\\\" ng-model=organization.organizationRoleCode ng-change=$ctrl.onOrganizationRoleChange($index) ng-options=\\\"item.roleCode as item.roleName for item in $ctrl.orgRoles\\\"></select> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Тип организации </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <select class=\\\"form-control our-select\\\" ng-model=organization.organizationTypeCode ng-change=$ctrl.onOrganizationTypeChange($index) ng-options=\\\"item.typeCode as item.typeName for item in $ctrl.orgTypes\\\"></select> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> Полное наименование для ЮЛ, ФИО для ФЛ </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input type=text class=form-control ng-model=organization.organizationName> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> ОГРН </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input name=\\\"{{'orgOgrn' + $index}}\\\" type=text class=form-control ng-model=organization.ogrn> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> ИНН </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input name=\\\"{{'orgInn' + $index}}\\\" type=text class=form-control ng-model=organization.inn> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> КПП </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input name=\\\"{{'orgKpp' + $index}}\\\" type=text class=form-control ng-model=organization.kpp> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"> СНИЛС </label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <input name=\\\"{{'orgSnils' + $index}}\\\" type=text class=form-control ng-model=organization.snils> </div> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"></label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <button class=\\\"btn btn-sm btn-danger\\\" ng-click=$ctrl.onRemoveOrganizationClick($index)><i class=\\\"fa fa-trash-o m-r-xs\\\"></i>Удалить организацию</button> </div> </div> <hr> </div> <div class=form-group> <label class=\\\"col-lg-3 col-md-3 col-sm-3 control-label\\\"></label> <div class=\\\"col-lg-7 col-md-8 col-sm-9\\\"> <button class=\\\"btn btn-sm btn-primary\\\" ng-click=$ctrl.onAddOrganizationClick()><i class=\\\"fa fa-plus m-r-xs\\\"></i>Добавить организацию</button> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-organization/documentOrganizationEdit.html\n// module id = 74\n// module chunks = 0","import { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass DocumentOrganizationViewController {\r\n    private document: DocumentIsogd;\r\n}\r\n\r\nexport const DocumentOrganizationViewComponent: angular.IComponentOptions = {\r\n    controller: DocumentOrganizationViewController,\r\n    template: require('./documentOrganizationView.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document/document-organization/documentOrganizationView.ts","module.exports = \"<div class=m-l-md ng-repeat=\\\"item in $ctrl.document.organizations\\\"> <h5>{{item.organizationRole}}</h5> <div class=description> <dl class=\\\"dl-horizontal m-l-md\\\"> <dt ng-if=item.organizationName><span>Наименование</span></dt> <dd ng-if=item.organizationName>{{item.organizationName}}</dd> <dt ng-if=item.ogrn><span>ОГРН</span></dt> <dd ng-if=item.ogrn>{{item.ogrn}}</dd> <dt ng-if=item.inn><span>ИНН</span></dt> <dd ng-if=item.inn>{{item.inn}}</dd> <dt ng-if=item.kpp><span>КПП</span></dt> <dd ng-if=item.kpp>{{item.kpp}}</dd> <dt ng-if=item.snils><span>СНИЛС</span></dt> <dd ng-if=item.snils>{{item.snils}}</dd> </dl> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document/document-organization/documentOrganizationView.html\n// module id = 76\n// module chunks = 0","\r\nimport { DocumentLinkRestService } from \"isogd-document-link-rest\";\r\nimport { IParcelDossierWrapper, DossierRestService, DossierLinkRestService } from \"isogd-dossier-rest\";\r\nimport * as _ from \"lodash\";\r\nimport { LinkedDocumentService } from \"../../services/LinkedDocumentService\";\r\nimport { DocumentIsogd, DocumentRestService, DocumentTerritory } from \"isogd-document-rest\";\r\nimport { NsiRestService } from \"oasi-nsi-rest\";\r\n\r\n\r\nclass DossierCandidatesController {\r\n    static $inject = ['linkedDocumentService', 'toastr', '$timeout', 'documentLinkRestService', 'blockUI', 'nsiRestService', '$q', 'dossierRestService', 'dossierLinkRestService', 'documentRestService'];\r\n    private document: DocumentIsogd;\r\n    private dossiers: IParcelDossierWrapper[];\r\n    private chapters: any[];\r\n    private onUpdate: () => void;\r\n    private myBlockUI: any;\r\n    private selectAll: boolean = false;\r\n    private disabledAll: boolean = true;\r\n\r\n    constructor(private linkedDocumentService: LinkedDocumentService, private toastr: Toastr, private $timeout: ng.ITimeoutService, \r\n        private documentLinkRestService: DocumentLinkRestService, \r\n        private blockUI: any, \r\n        private nsiRestService: NsiRestService, \r\n        private $q: ng.IQService, \r\n        private dossierRestService: DossierRestService, \r\n        private dossierLinkRestService: DossierLinkRestService, \r\n        private documentRestService: DocumentRestService) {\r\n    }\r\n\r\n    $onInit() {\r\n        this.myBlockUI = this.blockUI.instances.get(\"dossierCandidates\");\r\n    }\r\n\r\n    $onDestroy() {\r\n        this.myBlockUI.reset();\r\n    }\r\n\r\n    $onChanges(changes: any) {\r\n        if (changes.dossiers && changes.dossiers.currentValue) {\r\n            this.dossiers.forEach(r => {\r\n                (<any>r).checked = false;\r\n            });\r\n            this.selectAll = false;\r\n            this.disabledAll = true;\r\n        }\r\n    }\r\n\r\n    selectAllLinks() {\r\n        this.dossiers.forEach(l => {\r\n            (<any>l).checked = this.selectAll;\r\n        });\r\n\r\n        this.disabledAll = !this.selectAll;\r\n    }\r\n\r\n    changeSelection() {\r\n        let selectAll = true;\r\n        let anyChecked = false;\r\n        this.dossiers.forEach(l => {\r\n            if ((<any>l).checked === false) {\r\n                selectAll = false;\r\n            }\r\n            if ((<any>l).checked === true) {\r\n                anyChecked = true;\r\n            }\r\n        });\r\n        this.selectAll = selectAll;\r\n\r\n        this.disabledAll = !anyChecked;\r\n    }\r\n\r\n    addLink(dossier: IParcelDossierWrapper) {\r\n        this.myBlockUI.start();\r\n        this.$timeout(1500).then(response => {\r\n            this.dossierLinkRestService.create({\r\n                dossierId: dossier.parcelDossier.dossierId,\r\n                docId: this.document.documentID\r\n            }).then(response => {\r\n                this.toastr.success(\"Связь успешно установлена!\");\r\n                this.myBlockUI.stop();\r\n                this.onUpdate();\r\n            }).catch(error => {\r\n                this.toastr.error(\"Ошибка при установлении связи!\");\r\n                this.myBlockUI.stop();\r\n            });\r\n        });\r\n    }\r\n\r\n\r\n    addSelectedLinks() {\r\n        let promises: ng.IPromise<any>[] = [];\r\n        this.dossiers.forEach(d => {\r\n            if ((<any>d).checked === true) {\r\n                promises.push(this.dossierLinkRestService.create({\r\n                    dossierId: d.parcelDossier.dossierId,\r\n                    docId: this.document.documentID\r\n                }));\r\n            }\r\n        });\r\n        this.myBlockUI.start();\r\n        this.$q.all(promises).then(response => {\r\n            this.myBlockUI.stop();\r\n            this.onUpdate();\r\n            this.toastr.success(\"Выделенные связи успешно добавлены!\", \"Успех\");\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n            this.toastr.error(\"Ошибка при добавлении выделенных связей!\", \"Ошибка\");\r\n        });\r\n    }\r\n\r\n    dossierToString(dossier: IParcelDossierWrapper): string {\r\n        let result: string = \"\";\r\n        if (dossier.parcelDossier.cadastralNumber) {\r\n            result += dossier.parcelDossier.cadastralNumber;\r\n            result += \" \";\r\n        }\r\n        result += this.getAddress(dossier);\r\n        return result.trim();\r\n    }\r\n\r\n    getAddress(dossier: IParcelDossierWrapper): string {\r\n        let result: string = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.address) {\r\n            result += dossier.parcelDossier.address;\r\n            result += \" \";\r\n        }\r\n\r\n        let areaName = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.area && dossier.parcelDossier.area.areaName) {\r\n            areaName = dossier.parcelDossier.area.areaName;\r\n        }\r\n\r\n        let districtName = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.district && dossier.parcelDossier.district.districtName) {\r\n            districtName = dossier.parcelDossier.district.districtName;\r\n        }\r\n\r\n        let secondPart = '';\r\n\r\n        if (areaName) {\r\n            secondPart += areaName;\r\n        }\r\n\r\n        if (districtName) {\r\n            secondPart += (areaName) ? ', ' : '';\r\n            secondPart += districtName;\r\n        }\r\n\r\n        if (secondPart) {\r\n            secondPart = ' (' + secondPart + ')';\r\n        }\r\n\r\n        result += secondPart;\r\n\r\n        return result;\r\n    }\r\n\r\n    getAddressString(document: DocumentIsogd): string {\r\n        if (document.territory) {\r\n            let territoryValues = this.getTerritoryValues(document.territory);\r\n            if (document.object && document.object.objectAddress) {\r\n                let result = document.object.objectAddress;\r\n                if (territoryValues && territoryValues.length > 0) {\r\n                    result += ' (' + territoryValues.join(', ') + ')';\r\n                }\r\n                return result;\r\n            } else if (territoryValues && territoryValues.length > 0) {\r\n                return territoryValues.join(', ');\r\n            }\r\n        } else \r\n        {\r\n            return \"\";\r\n        }\r\n    }\r\n\r\n    getTerritoryValues(territory: DocumentTerritory): string[] {\r\n        let areas: string[] = territory ? _.map(territory.area, (area) => {\r\n            return area.areaName;\r\n        }) : [];\r\n        let districts: string[] = territory ? _.map(territory.district, (district) => {\r\n            return district.districtName;\r\n        }) : [];\r\n        return areas.concat(districts);\r\n    }\r\n}\r\n\r\nexport const DossierCandidatesComponent: angular.IComponentOptions = {\r\n    controller: DossierCandidatesController,\r\n    template: require('./dossierCandidates.html'),\r\n    bindings: {\r\n        document: '<',\r\n        chapters: '<',\r\n        dossiers: '<',\r\n        onUpdate: \"&\"\r\n    }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dossier/dossierCandidates.ts","module.exports = \"<div ng-class=dossierCandidatesClass class=m-t-lg block-ui=dossierCandidates> <div ng-if=\\\"$ctrl.dossiers.length > 0\\\" class=m-t-lg> <div ng-repeat=\\\"dossier in $ctrl.dossiers\\\"> <h4 ng-init=\\\"cycleShow = true\\\" style=outline:0 class=\\\"m-t-sm m-b-xs clearfix\\\"> <div class=pull-left ng-click=\\\"cycleShow = !cycleShow\\\" style=outline:0> <i style=width:15px class=\\\"fa fa-caret-right\\\" ng-show=\\\"cycleShow === false\\\"></i> <i style=width:15px class=\\\"fa fa-angle-down\\\" ng-show=\\\"cycleShow === true\\\"></i> <label style=margin-bottom:0> <input icheck type=checkbox ng-model=dossier.checked ng-change=$ctrl.changeSelection()> </label> {{$ctrl.dossierToString(dossier)}} </div> <div class=pull-right> <button type=button ng-click=$ctrl.addLink(dossier) title=\\\"Привязать документ к делу\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-chain\\\" aria-hidden=true></i></button> </div> </h4> <div ng-show=cycleShow class=\\\"m-b-md m-t-md\\\" style=margin-left:20px> <div class=description> <dl class=dl-horizontal> <dt ng-if=dossier.parcelDossier.cadastralNumber><span>Кадастровый номер</span></dt> <dd ng-if=dossier.parcelDossier.cadastralNumber>{{dossier.parcelDossier.cadastralNumber}}</dd> <dt ng-if=dossier.parcelDossier.area.areaName><span>Округ</span></dt> <dd ng-if=dossier.parcelDossier.area.areaName>{{dossier.parcelDossier.area.areaName}}</dd> <dt ng-if=dossier.parcelDossier.district.districtName><span>Район</span></dt> <dd ng-if=dossier.parcelDossier.district.districtName>{{dossier.parcelDossier.district.districtName}}</dd> <dt ng-if=dossier.parcelDossier.address><span>Адрес</span></dt> <dd ng-if=dossier.parcelDossier.address>{{dossier.parcelDossier.address}}</dd> </dl> </div> <loading-block loading-status=dossier.loading> <success> <table ng-show=\\\"dossier.documents.length > 0\\\" class=\\\"table animated fadeIn m-b-md\\\"> <thead> <tr> <th width=25% style=vertical-align:bottom>Тип документа</th> <th width=15% style=vertical-align:bottom>Номер</th> <th width=10% style=vertical-align:bottom>Дата</th> <th width=50% style=vertical-align:bottom>Содержание</th> </tr> </thead> <tbody> <tr ng-repeat=\\\"doc in dossier.documents\\\"> <td style=white-space:pre-wrap ng-init=\\\"name = $ctrl.linkedDocumentService.findChapterByCode($ctrl.chapters, doc.reestr)\\\">{{name}}</td> <td style=white-space:pre-wrap><a ng-class=\\\"{'red-link': (doc.documentRequisites && doc.documentRequisites.documentStatusCode && doc.documentRequisites.documentStatusCode === 'CANCELED')}\\\" ui-sref=\\\"app.isogd.card({id: doc.documentID})\\\">{{doc.documentRequisites.documentNumber}}</a></td> <td style=white-space:pre-wrap>{{doc.documentRequisites.documentDate | date:\\\"dd.MM.yyyy\\\"}}</td> <td ng-init=\\\"addressString = $ctrl.getAddressString(doc)\\\"> <b ng-if=doc.documentRequisites.documentName>{{doc.documentRequisites.documentName}}<br></b> <b ng-if=addressString>{{addressString}}<br/></b> <span ng-if=doc.object.objectName>{{doc.object.objectName}}</span> </td> </tr> </tbody> </table> </success> <error> <span class=\\\"text-danger fa fa-times-circle\\\"></span> <span> Ошибка при получении информации о документах</span> </error> </loading-block> </div> </div> <div class=pull-right> <label style=margin-bottom:0;margin-right:20px> <input icheck type=checkbox ng-model=$ctrl.selectAll ng-change=$ctrl.selectAllLinks()> Выделить все </label> <button type=button ng-click=$ctrl.addSelectedLinks() ng-disabled=$ctrl.disabledAll title=\\\"Привязать выбраные связи\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-chain\\\" aria-hidden=true></i></button> </div> </div> <div ng-if=\\\"$ctrl.dossiers.length === 0\\\" class=m-t-lg> <span> <i class=\\\"text-warning fa fa-exclamation-triangle\\\" aria-hidden=true></i> <span> Кандидаты на привязку отсутствуют</span></span> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/dossier/dossierCandidates.html\n// module id = 78\n// module chunks = 0","import * as widgets from \"oasi-widgets\";\r\nimport { DocumentLinkRestService } from \"isogd-document-link-rest\";\r\nimport { IParcelDossierWrapper, DossierRestService, DossierLinkRestService } from \"isogd-dossier-rest\";\r\n\r\nimport * as _ from \"lodash\";\r\nimport { LinkedDocumentService } from \"../../services/LinkedDocumentService\";\r\nimport { DocumentIsogd, DocumentRestService, DocumentIsogdWrapper } from \"isogd-document-rest\";\r\nimport { NsiRestService } from \"oasi-nsi-rest\";\r\n\r\nclass DossierEditController {\r\n    static $inject = ['linkedDocumentService', '$timeout', 'documentLinkRestService', 'blockUI', 'nsiRestService', '$q', 'dossierRestService', 'dossierLinkRestService', 'documentRestService'];\r\n    private document: DocumentIsogd;\r\n    private hasDoc: boolean;\r\n    private dossiers: IParcelDossierWrapper[] = [];\r\n\r\n    private dossierCandidates: IParcelDossierWrapper[] = [];\r\n\r\n    private loadingStatus: widgets.LoadingStatus = widgets.LoadingStatus.LOADING;\r\n    private districts: any[];\r\n    private prefects: any[];\r\n    private chapters: any[] = [];\r\n    private myBlockUI: any;\r\n\r\n    constructor(private linkedDocumentService: LinkedDocumentService, private $timeout: ng.ITimeoutService, \r\n        private documentLinkRestService: DocumentLinkRestService, \r\n        private blockUI: any, \r\n        private nsiRestService: NsiRestService, \r\n        private $q: ng.IQService, \r\n        private dossierRestService: DossierRestService, \r\n        private dossierLinkRestService: DossierLinkRestService, \r\n        private documentRestService: DocumentRestService) {\r\n    }\r\n\r\n    update() {\r\n        this.myBlockUI.start();\r\n        this.$timeout(1500).then(response => {\r\n            this.getDossiersByDocumentId(this.document.documentID).then(response => {\r\n                this.dossiers = response;\r\n                this.documentLinkRestService.getAll(this.document.documentID).then(response => {\r\n                    let uniqDocIds = _.map(response, d => {\r\n                        return (d.doc1Id === this.document.documentID) ? d.doc2Id : d.doc1Id;\r\n                    })\r\n                    let promises: ng.IPromise<IParcelDossierWrapper[]>[] = [];\r\n                    uniqDocIds.forEach(id => {\r\n                        promises.push(this.getDossiersByDocumentId(id));\r\n                    });\r\n                    if (this.document.territory && this.document.territory.cadastralNumber && this.document.territory.cadastralNumber.length > 0) {\r\n                        promises.push(this.getDossiersByCadastrals(this.document.territory.cadastralNumber));\r\n                    }\r\n                    this.$q.all(promises).then(response => {\r\n                        response.forEach((r: any[]) => {\r\n                            r.forEach(p => {\r\n                                this.dossierCandidates.push(p);\r\n                            });\r\n                        });\r\n                        this.dossierCandidates = (<any>_).uniqBy(this.dossierCandidates, d => { return d.parcelDossier.dossierId });\r\n                        let newDossierCandidates: any[] = [];\r\n                        this.dossierCandidates.forEach(dc => {\r\n                            let exist: boolean = false;\r\n                            this.dossiers.forEach(d => {\r\n                                if (d.parcelDossier.dossierId === dc.parcelDossier.dossierId) {\r\n                                    exist = true;\r\n                                }\r\n                            });\r\n                            if (!exist) {\r\n                                newDossierCandidates.push(dc);\r\n                            }\r\n                        });\r\n                        this.dossierCandidates = newDossierCandidates;\r\n                        this.myBlockUI.stop();\r\n                    }).catch(error => {\r\n                        this.myBlockUI.stop();\r\n                    });\r\n                }).catch(error => {\r\n                    this.myBlockUI.stop();\r\n                });\r\n            }).catch(error => {\r\n                this.myBlockUI.stop();\r\n            });\r\n        });\r\n    }\r\n\r\n    getDossiersByDocumentId(id: string): ng.IPromise<IParcelDossierWrapper[]> {\r\n        let defer: ng.IDeferred<IParcelDossierWrapper[]> = this.$q.defer<IParcelDossierWrapper[]>();\r\n        let dossiers: IParcelDossierWrapper[] = [];\r\n        this.dossierLinkRestService.getToDocument(id).then(response => {\r\n            let links = response;\r\n            if (response.length > 0) {\r\n                let data = _.map(response, r => { return r.dossierId; });\r\n                this.dossierRestService.getDossiers(data).then(response => {\r\n                    dossiers = response;\r\n                    dossiers.forEach(d => {\r\n                        links.forEach(l => {\r\n                            if (d.parcelDossier.dossierId === l.dossierId) {\r\n                                (<any>d).link = l;\r\n                            }\r\n                        });\r\n                    });\r\n                    dossiers.forEach(d => {\r\n                        (<any>d).documents = [];\r\n                        (<any>d).loading = widgets.LoadingStatus.LOADING;\r\n                        this.dossierLinkRestService.getFromDossier(d.parcelDossier.dossierId).then(response => {\r\n                            let promises: ng.IPromise<DocumentIsogdWrapper>[] = [];\r\n                            response.forEach(r => {\r\n                                promises.push(this.documentRestService.getDocument(r.docId));\r\n                            });\r\n                            this.$q.all(promises).then(response => {\r\n                                (<any>d).documents = _.map(response, d => { return d.document; });\r\n                                (<any>d).documents = _.orderBy((<any>d).documents, function (e) { return e.documentRequisites.documentDate }, ['asc']);\r\n                                (<any>d).loading = widgets.LoadingStatus.SUCCESS;\r\n                            }).catch(error => {\r\n                                (<any>d).loading = widgets.LoadingStatus.ERROR;\r\n                            });\r\n                        }).catch(error => {\r\n                            defer.reject(error);\r\n                        });\r\n                    });\r\n                    defer.resolve(dossiers);\r\n                }).catch(error => {\r\n                    defer.reject(error);\r\n                });\r\n            } else {\r\n                defer.resolve(dossiers);\r\n            }\r\n        }).catch(error => {\r\n            defer.reject(error);\r\n        });\r\n\r\n        return defer.promise;\r\n    }\r\n\r\n\r\n    getDossiersByCadastrals(nums: string[]): ng.IPromise<IParcelDossierWrapper[]> {\r\n        let defer: ng.IDeferred<IParcelDossierWrapper[]> = this.$q.defer<IParcelDossierWrapper[]>();\r\n        let dossiers: IParcelDossierWrapper[] = [];\r\n        this.dossierRestService.findDossiersByCadastralNumbers(nums).then(response => {\r\n            dossiers = response;\r\n            dossiers.forEach(d => {\r\n                (<any>d).documents = [];\r\n                (<any>d).loading = widgets.LoadingStatus.LOADING;\r\n                this.dossierLinkRestService.getFromDossier(d.parcelDossier.dossierId).then(response => {\r\n                    let promises: ng.IPromise<DocumentIsogdWrapper>[] = [];\r\n                    response.forEach(r => {\r\n                        promises.push(this.documentRestService.getDocument(r.docId));\r\n                    });\r\n                    this.$q.all(promises).then(response => {\r\n                        (<any>d).documents = _.map(response, d => { return d.document; });\r\n                        (<any>d).documents = _.orderBy((<any>d).documents, function (e) { return e.documentRequisites.documentDate }, ['asc']);\r\n                        (<any>d).loading = widgets.LoadingStatus.SUCCESS;\r\n                    }).catch(error => {\r\n                        (<any>d).loading = widgets.LoadingStatus.ERROR;\r\n                    });\r\n                }).catch(error => {\r\n                    defer.reject(error);\r\n                });\r\n            });\r\n            defer.resolve(dossiers);\r\n        }).catch(error => {\r\n            defer.reject(error);\r\n        });\r\n\r\n\r\n        return defer.promise;\r\n    }\r\n\r\n    $onInit() {\r\n        this.myBlockUI = this.blockUI.instances.get(\"dossierEdit\");\r\n        this.loadingStatus = widgets.LoadingStatus.LOADING;\r\n        this.nsiRestService.get(\"District\").then(response => {\r\n            this.districts = response;\r\n            return this.nsiRestService.get(\"Prefect\");\r\n        }).then(response => {\r\n            this.prefects = response;\r\n            return this.nsiRestService.get(\"OldChapters\");\r\n        }).then(res => {\r\n            this.chapters = res;\r\n            return this.getDossiersByDocumentId(this.document.documentID);\r\n        }).then(response => {\r\n            this.dossiers = response;\r\n            this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n            this.documentLinkRestService.getAll(this.document.documentID).then(response => {\r\n                let uniqDocIds = _.map(response, d => {\r\n                    return (d.doc1Id === this.document.documentID) ? d.doc2Id : d.doc1Id;\r\n                })\r\n                let promises: ng.IPromise<IParcelDossierWrapper[]>[] = [];\r\n                uniqDocIds.forEach(id => {\r\n                    promises.push(this.getDossiersByDocumentId(id));\r\n                });\r\n                if (this.document.territory && this.document.territory.cadastralNumber && this.document.territory.cadastralNumber.length > 0) {\r\n                    promises.push(this.getDossiersByCadastrals(this.document.territory.cadastralNumber));\r\n                }\r\n                this.$q.all(promises).then(response => {\r\n                    response.forEach((r: any[]) => {\r\n                        r.forEach(p => {\r\n                            this.dossierCandidates.push(p);\r\n                        });\r\n                    });\r\n                    this.dossierCandidates = (<any>_).uniqBy(this.dossierCandidates, d => { return d.parcelDossier.dossierId });\r\n                    let newDossierCandidates: any[] = [];\r\n                    this.dossierCandidates.forEach(dc => {\r\n                        let exist: boolean = false;\r\n                        this.dossiers.forEach(d => {\r\n                            if (d.parcelDossier.dossierId === dc.parcelDossier.dossierId) {\r\n                                exist = true;\r\n                            }\r\n                        });\r\n                        if (!exist) {\r\n                            newDossierCandidates.push(dc);\r\n                        }\r\n                    });\r\n                    this.dossierCandidates = newDossierCandidates;\r\n                    this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n                }).catch(error => {\r\n                    this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n                });\r\n            }).catch(error => {\r\n                this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n            });\r\n        }).catch(error => {\r\n            this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n        });\r\n    }\r\n\r\n    $onDestroy() {\r\n        this.myBlockUI.reset();\r\n    }\r\n}\r\n\r\n\r\nexport const DossierEditComponent: angular.IComponentOptions = {\r\n    controller: DossierEditController,\r\n    template: require('./dossierEdit.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dossier/dossierEdit.ts","module.exports = \"<div class=dossierEdit block-ui=dossierEdit> <loading-block loading-status=$ctrl.loadingStatus> <success> <uib-tabset class=our-nav-tab active=0> <uib-tab index=0> <uib-tab-heading> <i class=\\\"fa fa-chain\\\" aria-hidden=true></i> Связанные дела </uib-tab-heading> <linked-dossiers chapters=$ctrl.chapters dossiers=$ctrl.dossiers on-update=$ctrl.update() document=$ctrl.document></linked-dossiers> </uib-tab> <uib-tab index=1> <uib-tab-heading> Кандидаты на привязку </uib-tab-heading> <dossier-candidates chapters=$ctrl.chapters dossiers=$ctrl.dossierCandidates on-update=$ctrl.update() document=$ctrl.document></dossier-candidates> </uib-tab> <uib-tab index=2> <uib-tab-heading> <i class=\\\"fa fa-search\\\" aria-hidden=true></i> Поиск кандидатов </uib-tab-heading> <search-dossiers chapters=$ctrl.chapters dossiers=$ctrl.dossiers on-update=$ctrl.update() document=$ctrl.document></search-dossiers> </uib-tab> <uib-tab index=3> <uib-tab-heading> <i class=\\\"fa fa-plus\\\" aria-hidden=true></i> Создание нового дела </uib-tab-heading> <new-dossier on-update=$ctrl.update() document=$ctrl.document districts=$ctrl.districts prefects=$ctrl.prefects chapters=$ctrl.chapters></new-dossier> </uib-tab> </uib-tabset> </success> <error> <span class=\\\"text-danger fa fa-times-circle\\\"></span> <span> Ошибка при получении информации о делах</span> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:45px> <spinner style=margin:5px type=\\\"'three-bounce'\\\"></spinner> </div> </div> </loading> </loading-block> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/dossier/dossierEdit.html\n// module id = 80\n// module chunks = 0","import * as widgets from \"oasi-widgets\";\r\nimport { DocumentLinkRestService } from \"isogd-document-link-rest\";\r\nimport { IParcelDossierWrapper, DossierRestService, DossierLinkRestService } from \"isogd-dossier-rest\";\r\nimport * as _ from \"lodash\";\r\nimport { LinkedDocumentService } from \"../../services/LinkedDocumentService\";\r\nimport { DocumentIsogd, DocumentRestService, DocumentIsogdWrapper, DocumentTerritory } from \"isogd-document-rest\";\r\nimport { NsiRestService } from \"oasi-nsi-rest\";\r\n\r\nclass DossierViewController {\r\n    static $inject = ['linkedDocumentService', '$timeout', 'documentLinkRestService', 'blockUI', 'nsiRestService', '$q', 'dossierRestService', 'dossierLinkRestService', 'documentRestService'];\r\n    document: DocumentIsogd;\r\n    hasDoc: boolean;\r\n    dossiers: IParcelDossierWrapper[] = [];\r\n    chapters: any[] = [];\r\n\r\n    private loadingStatus: widgets.LoadingStatus = widgets.LoadingStatus.LOADING;\r\n    constructor(private linkedDocumentService: LinkedDocumentService, private $timeout: ng.ITimeoutService, \r\n        private documentLinkRestService: DocumentLinkRestService, \r\n        private blockUI: any, \r\n        private nsiRestService: NsiRestService, \r\n        private $q: ng.IQService, \r\n        private dossierRestService: DossierRestService, \r\n        private dossierLinkRestService: DossierLinkRestService, \r\n        private documentRestService: DocumentRestService) {\r\n    }\r\n\r\n    $onInit() {\r\n        this.loadingStatus = widgets.LoadingStatus.LOADING;\r\n        this.dossierLinkRestService.getToDocument(this.document.documentID).then(response => {\r\n            this.hasDoc = response.length > 0;\r\n            if (this.hasDoc) {\r\n                this.nsiRestService.get(\"OldChapters\").then(res => {\r\n                    this.chapters = res;\r\n                    let data = _.map(response, r => { return r.dossierId; });\r\n                    this.dossierRestService.getDossiers(data).then(response => {\r\n                        this.dossiers = response;\r\n                        this.dossiers.forEach(d => {\r\n                            (<any>d).documents = [];\r\n                            (<any>d).loading = widgets.LoadingStatus.LOADING;\r\n                            this.dossierLinkRestService.getFromDossier(d.parcelDossier.dossierId).then(response => {\r\n                                let promises: ng.IPromise<DocumentIsogdWrapper>[] = [];               \r\n                                response.forEach(r => {\r\n                                    promises.push(this.documentRestService.getDocument(r.docId));\r\n                                });\r\n                                this.$q.all(promises).then(response => {\r\n                                    (<any>d).documents = _.map(response, d => { return d.document; });\r\n                                    (<any>d).documents = _.orderBy((<any>d).documents, function (e) { return e.documentRequisites.documentDate }, ['asc']);\r\n                                    (<any>d).loading = widgets.LoadingStatus.SUCCESS;\r\n                                }).catch(error => {\r\n                                    (<any>d).loading = widgets.LoadingStatus.ERROR;\r\n                                });\r\n    \r\n                            }).catch(error => {\r\n                                (<any>d).loading = widgets.LoadingStatus.ERROR;\r\n                            });\r\n                        });\r\n                        this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n                    }).catch(error => {\r\n                        this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n                        console.log(error);\r\n                    });\r\n                }).catch(error => {\r\n                    this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n                    console.log(error);\r\n                });\r\n            } else {\r\n                this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n            }\r\n        }).catch(error => {\r\n            this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n            console.log(error);\r\n        });\r\n    }\r\n\r\n    dossierToString(dossier: IParcelDossierWrapper): string {\r\n        let result: string = \"\";\r\n\r\n        if (dossier.parcelDossier.cadastralNumber) {\r\n            result += dossier.parcelDossier.cadastralNumber;\r\n            result += \" \";\r\n        }\r\n\r\n        result += this.getAddress(dossier);\r\n\r\n        return result.trim();\r\n    }\r\n\r\n    getAddress(dossier: IParcelDossierWrapper): string {\r\n        let result: string = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.address) {\r\n            result += dossier.parcelDossier.address;\r\n            result += \" \";\r\n        }\r\n\r\n        let areaName = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.area && dossier.parcelDossier.area.areaName) {\r\n            areaName = dossier.parcelDossier.area.areaName;\r\n        }\r\n\r\n        let districtName = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.district && dossier.parcelDossier.district.districtName) {\r\n            districtName = dossier.parcelDossier.district.districtName;\r\n        }\r\n\r\n        let secondPart = '';\r\n\r\n        if (areaName) {\r\n            secondPart += areaName;\r\n        }\r\n\r\n        if (districtName) {\r\n            secondPart += (areaName) ? ', ' : '';\r\n            secondPart += districtName;\r\n        }\r\n\r\n        if (secondPart) {\r\n            secondPart = ' (' + secondPart + ')';\r\n        }\r\n\r\n        result += secondPart;\r\n\r\n        return result;\r\n    }\r\n\r\n    _findChapterByCode(chapters: any[], code: string): any {\r\n        let result = null;\r\n\r\n        chapters.forEach(ch =>{\r\n            if (ch.chapterCode === code) {\r\n                result = ch;\r\n            }\r\n            if (ch.children && ch.children.length > 0) {\r\n                let r = this._findChapterByCode(ch.children, code);\r\n                if (r !== null) {\r\n                    result = r;\r\n                }\r\n            }\r\n        });\r\n\r\n        return result;\r\n    }\r\n\r\n    findChapterByCode(chapters: any[], code: string): string {\r\n        let result = this._findChapterByCode(chapters, code);\r\n\r\n        return (result) ? result.name : \"\";\r\n    }\r\n\r\n    getAddressString(document: DocumentIsogd): string {\r\n    \tif (document.territory) {\r\n            let territoryValues = this.getTerritoryValues(document.territory);\r\n            if (document.object && document.object.objectAddress) {\r\n                let result = document.object.objectAddress;\r\n                if (territoryValues && territoryValues.length > 0) {\r\n                    result += ' (' + territoryValues.join(', ') + ')';\r\n                }\r\n                return result;\r\n            } else if (territoryValues && territoryValues.length > 0) {\r\n                return territoryValues.join(', ');\r\n            }\r\n        } else \r\n        {\r\n            return \"\";\r\n        }\r\n    }\r\n    \r\n    getTerritoryValues(territory: DocumentTerritory): string[] {\r\n    \tlet areas: string[] = territory ? _.map(territory.area, (area) => {\r\n\t\t\treturn area.areaName;\r\n\t\t}) : [];\r\n    \tlet districts: string[] = territory ? _.map(territory.district, (district) => {\r\n\t\t\treturn district.districtName;\r\n\t\t}) : [];\r\n\t\treturn areas.concat(districts);\r\n\t}\t\r\n}\r\n\r\nexport const DossierViewComponent: angular.IComponentOptions = {\r\n    controller: DossierViewController,\r\n    template: require('./dossierView.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/dossier/dossierView.ts","module.exports = \"<loading-block loading-status=$ctrl.loadingStatus> <success> <div ng-if=$ctrl.hasDoc> <div ng-repeat=\\\"dossier in $ctrl.dossiers\\\"> <h4 ng-init=\\\"cycleShow = true\\\" style=outline:0 ng-click=\\\"cycleShow = !cycleShow\\\" class=\\\"m-t-sm m-b-md\\\"> <i style=width:15px class=\\\"fa fa-caret-right\\\" ng-show=\\\"cycleShow === false\\\"></i> <i style=width:15px class=\\\"fa fa-angle-down\\\" ng-show=\\\"cycleShow === true\\\"></i> {{$ctrl.dossierToString(dossier)}} </h4> <div ng-show=cycleShow style=margin-left:20px> <div class=description> <dl class=dl-horizontal> <dt ng-if=dossier.parcelDossier.cadastralNumber><span>Кадастровый номер</span></dt> <dd ng-if=dossier.parcelDossier.cadastralNumber>{{dossier.parcelDossier.cadastralNumber}}</dd> <dt ng-if=dossier.parcelDossier.area.areaName><span>Округ</span></dt> <dd ng-if=dossier.parcelDossier.area.areaName>{{dossier.parcelDossier.area.areaName}}</dd> <dt ng-if=dossier.parcelDossier.district.districtName><span>Район</span></dt> <dd ng-if=dossier.parcelDossier.district.districtName>{{dossier.parcelDossier.district.districtName}}</dd> <dt ng-if=dossier.parcelDossier.address><span>Адрес</span></dt> <dd ng-if=dossier.parcelDossier.address>{{dossier.parcelDossier.address}}</dd> </dl> </div> <loading-block loading-status=dossier.loading> <success> <table class=\\\"table animated fadeIn\\\"> <thead> <tr> <th width=25% style=vertical-align:bottom>Тип документа</th> <th width=15% style=vertical-align:bottom>Номер</th> <th width=10% style=vertical-align:bottom>Дата</th> <th width=50% style=vertical-align:bottom>Содержание</th> </tr> </thead> <tbody> <tr ng-repeat=\\\"doc in dossier.documents\\\"> <td style=white-space:pre-wrap ng-init=\\\"name = $ctrl.findChapterByCode($ctrl.chapters, doc.reestr)\\\">{{name}}</td> <td style=white-space:pre-wrap><a ng-class=\\\"{'red-link': (doc.documentRequisites && doc.documentRequisites.documentStatusCode && doc.documentRequisites.documentStatusCode === 'CANCELED')}\\\" ui-sref=\\\"app.isogd.card({id: doc.documentID})\\\">{{doc.documentRequisites.documentNumber}}</a></td> <td style=white-space:pre-wrap>{{doc.documentRequisites.documentDate | date:\\\"dd.MM.yyyy\\\"}}</td> <td ng-init=\\\"addressString = $ctrl.getAddressString(doc)\\\"> <b ng-if=doc.documentRequisites.documentName>{{doc.documentRequisites.documentName}}<br></b> <b ng-if=addressString>{{addressString}}<br/></b> <span ng-if=doc.document.object.objectName>{{doc.object.objectName}}</span> </td> </tr> </tbody> </table> </success> <error> <span class=\\\"text-danger fa fa-times-circle\\\"></span> <span> Ошибка при получении информации о документах</span> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:45px> <spinner style=margin:5px type=\\\"'three-bounce'\\\"></spinner> </div> </div> </loading> </loading-block> </div> </div> </div> <div ng-if=!$ctrl.hasDoc> <span> <i class=\\\"text-warning fa fa-exclamation-triangle\\\" aria-hidden=true></i> <span> Дел о земельном участке нет</span></span> </div> </success> <error> <span class=\\\"text-danger fa fa-times-circle\\\"></span> <span> Ошибка при получении информации о делах</span> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:45px> <spinner style=margin:5px type=\\\"'three-bounce'\\\"></spinner> </div> </div> </loading> </loading-block>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/dossier/dossierView.html\n// module id = 82\n// module chunks = 0","\r\nimport { DocumentLinkRestService } from \"isogd-document-link-rest\";\r\nimport { IParcelDossierWrapper, DossierRestService, DossierLinkRestService } from \"isogd-dossier-rest\";\r\nimport * as _ from \"lodash\";\r\nimport { LinkedDocumentService } from \"../../services/LinkedDocumentService\";\r\nimport { DocumentIsogd, DocumentRestService, DocumentTerritory } from \"isogd-document-rest\";\r\nimport { NsiRestService } from \"oasi-nsi-rest\";\r\n\r\nclass LinkedDossiersController {\r\n    static $inject = ['linkedDocumentService', 'toastr', '$timeout', 'documentLinkRestService', 'blockUI', 'nsiRestService', '$q', 'dossierRestService', 'dossierLinkRestService', 'documentRestService'];\r\n    private document: DocumentIsogd; \r\n    private dossiers: IParcelDossierWrapper[];\r\n    private chapters: any[];\r\n    private onUpdate: () => void;\r\n    private myBlockUI: any;\r\n    private selectAll: boolean = false;\r\n    private disabledAll: boolean = true;\r\n\r\n    constructor(private linkedDocumentService: LinkedDocumentService, private toastr: Toastr,\r\n        private $timeout: ng.ITimeoutService, \r\n        private documentLinkRestService: DocumentLinkRestService, \r\n        private blockUI: any, \r\n        private nsiRestService: NsiRestService, \r\n        private $q: ng.IQService, \r\n        private dossierRestService: DossierRestService, \r\n        private dossierLinkRestService: DossierLinkRestService, \r\n        private documentRestService: DocumentRestService) {\r\n    }\r\n\r\n    $onInit() {\r\n        this.myBlockUI = this.blockUI.instances.get(\"linkedDossiers\");\r\n    }\r\n\r\n    $onDestroy() {\r\n        this.myBlockUI.reset();\r\n    }\r\n\r\n    $onChanges(changes: any) {\r\n        if (changes.dossiers && changes.dossiers.currentValue) {\r\n            this.dossiers.forEach(r => {\r\n                (<any>r).checked = false;\r\n            });\r\n            this.selectAll = false;\r\n            this.disabledAll = true;\r\n        }\r\n    }\r\n\r\n    selectAllLinks() {\r\n        this.dossiers.forEach(l => {\r\n            (<any>l).checked = this.selectAll;\r\n        });\r\n\r\n        this.disabledAll = !this.selectAll;\r\n    }\r\n\r\n    changeSelection() {\r\n        let selectAll = true;\r\n        let anyChecked = false;\r\n        this.dossiers.forEach(l => {\r\n            if ((<any>l).checked === false) {\r\n                selectAll = false;\r\n            }\r\n            if ((<any>l).checked === true) {\r\n                anyChecked = true;\r\n            }\r\n        });\r\n        this.selectAll = selectAll;\r\n\r\n        this.disabledAll = !anyChecked;\r\n    }\r\n\r\n    deleteLink(dossier: IParcelDossierWrapper) {\r\n        this.myBlockUI.start();\r\n        this.$timeout(1500).then(response => {\r\n            this.dossierLinkRestService.deleteDossierLink((<any>dossier).link.linkId).then(response => {\r\n                this.toastr.success(\"Связь успешно удалена!\");\r\n                this.myBlockUI.stop();\r\n                this.onUpdate();\r\n            }).catch(error => {\r\n                this.toastr.error(\"Ошибка при удалении связи!\");\r\n                this.myBlockUI.stop();\r\n            });\r\n        });\r\n    }\r\n\r\n    deleteSelectedLinks() {\r\n        let promises: ng.IPromise<any>[] = [];\r\n        this.dossiers.forEach(d => {\r\n            if ((<any>d).checked === true) {\r\n                promises.push(this.dossierLinkRestService.deleteDossierLink((<any>d).link.linkId));\r\n            }\r\n        });\r\n        this.myBlockUI.start();\r\n        this.$q.all(promises).then(response => {\r\n            this.myBlockUI.stop();\r\n            this.onUpdate();\r\n            this.toastr.success(\"Выделенные связи успешно удалены!\", \"Успех\");\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n            this.toastr.error(\"Ошибка при удалении выделенных связей!\", \"Ошибка\");\r\n        });\r\n    }\r\n\r\n    dossierToString(dossier: IParcelDossierWrapper): string {\r\n        let result: string = \"\";\r\n        if (dossier.parcelDossier.cadastralNumber) {\r\n            result += dossier.parcelDossier.cadastralNumber;\r\n            result += \" \";\r\n        }\r\n        result += this.getAddress(dossier);\r\n        return result.trim();\r\n    }\r\n\r\n    getAddress(dossier: IParcelDossierWrapper): string {\r\n        let result: string = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.address) {\r\n            result += dossier.parcelDossier.address;\r\n            result += \" \";\r\n        }\r\n\r\n        let areaName = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.area && dossier.parcelDossier.area.areaName) {\r\n            areaName = dossier.parcelDossier.area.areaName;\r\n        }\r\n\r\n        let districtName = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.district && dossier.parcelDossier.district.districtName) {\r\n            districtName = dossier.parcelDossier.district.districtName;\r\n        }\r\n\r\n        let secondPart = '';\r\n\r\n        if (areaName) {\r\n            secondPart += areaName;\r\n        }\r\n\r\n        if (districtName) {\r\n            secondPart += (areaName) ? ', ' : '';\r\n            secondPart += districtName;\r\n        }\r\n\r\n        if (secondPart) {\r\n            secondPart = ' (' + secondPart + ')';\r\n        }\r\n\r\n        result += secondPart;\r\n\r\n        return result;\r\n    }\r\n\r\n    getAddressString(document: DocumentIsogd): string {\r\n        if (document.territory) {\r\n            let territoryValues = this.getTerritoryValues(document.territory);\r\n            if (document.object && document.object.objectAddress) {\r\n                let result = document.object.objectAddress;\r\n                if (territoryValues && territoryValues.length > 0) {\r\n                    result += ' (' + territoryValues.join(', ') + ')';\r\n                }\r\n                return result;\r\n            } else if (territoryValues && territoryValues.length > 0) {\r\n                return territoryValues.join(', ');\r\n            }\r\n        } else \r\n        {\r\n            return \"\";\r\n        }\r\n    }\r\n\r\n    getTerritoryValues(territory: DocumentTerritory): string[] {\r\n        let areas: string[] = territory ? _.map(territory.area, (area) => {\r\n            return area.areaName;\r\n        }) : [];\r\n        let districts: string[] = territory ? _.map(territory.district, (district) => {\r\n            return district.districtName;\r\n        }) : [];\r\n        return areas.concat(districts);\r\n    }\r\n}\r\n\r\nexport const LinkedDossiersComponent: angular.IComponentOptions = {\r\n    controller: LinkedDossiersController,\r\n    template: require('./linkedDossiers.html'),\r\n    bindings: {\r\n        document: '<',\r\n        chapters: '<',\r\n        dossiers: '<',\r\n        onUpdate: \"&\"\r\n    }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dossier/linkedDossiers.ts","module.exports = \"<div ng-class=linkedDossiersClass class=m-t-lg block-ui=linkedDossiers> <div ng-if=\\\"$ctrl.dossiers.length > 0\\\" class=m-t-lg> <div ng-repeat=\\\"dossier in $ctrl.dossiers\\\"> <h4 ng-init=\\\"cycleShow = true\\\" style=outline:0 class=\\\"m-t-sm m-b-xs clearfix\\\"> <div class=pull-left ng-click=\\\"cycleShow = !cycleShow\\\" style=outline:0> <i style=width:15px class=\\\"fa fa-caret-right\\\" ng-show=\\\"cycleShow === false\\\"></i> <i style=width:15px class=\\\"fa fa-angle-down\\\" ng-show=\\\"cycleShow === true\\\"></i> <label style=margin-bottom:0> <input icheck type=checkbox ng-model=dossier.checked ng-change=$ctrl.changeSelection()> </label> {{$ctrl.dossierToString(dossier)}} </div> <div class=pull-right> <button type=button ng-click=$ctrl.deleteLink(dossier) title=\\\"Удалить связь\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-chain-broken text-danger\\\" aria-hidden=true></i></button> </div> </h4> <div ng-show=cycleShow class=m-b-md style=margin-left:20px> <div class=description> <dl class=dl-horizontal> <dt ng-if=dossier.parcelDossier.cadastralNumber><span>Кадастровый номер</span></dt> <dd ng-if=dossier.parcelDossier.cadastralNumber>{{dossier.parcelDossier.cadastralNumber}}</dd> <dt ng-if=dossier.parcelDossier.area.areaName><span>Округ</span></dt> <dd ng-if=dossier.parcelDossier.area.areaName>{{dossier.parcelDossier.area.areaName}}</dd> <dt ng-if=dossier.parcelDossier.district.districtName><span>Район</span></dt> <dd ng-if=dossier.parcelDossier.district.districtName>{{dossier.parcelDossier.district.districtName}}</dd> <dt ng-if=dossier.parcelDossier.address><span>Адрес</span></dt> <dd ng-if=dossier.parcelDossier.address>{{dossier.parcelDossier.address}}</dd> </dl> </div> <loading-block loading-status=dossier.loading> <success> <table ng-show=\\\"dossier.documents.length > 0\\\" class=\\\"table animated fadeIn m-b-md\\\"> <thead> <tr> <th width=25% style=vertical-align:bottom>Тип документа</th> <th width=15% style=vertical-align:bottom>Номер</th> <th width=10% style=vertical-align:bottom>Дата</th> <th width=50% style=vertical-align:bottom>Содержание</th> </tr> </thead> <tbody> <tr ng-repeat=\\\"doc in dossier.documents\\\"> <td style=white-space:pre-wrap ng-init=\\\"name = $ctrl.linkedDocumentService.findChapterByCode($ctrl.chapters, doc.reestr)\\\">{{name}}</td> <td style=white-space:pre-wrap><a ng-class=\\\"{'red-link': (doc.documentRequisites && doc.documentRequisites.documentStatusCode && doc.documentRequisites.documentStatusCode === 'CANCELED')}\\\" ui-sref=\\\"app.isogd.card({id: doc.documentID})\\\">{{doc.documentRequisites.documentNumber}}</a></td> <td style=white-space:pre-wrap>{{doc.documentRequisites.documentDate | date:\\\"dd.MM.yyyy\\\"}}</td> <td ng-init=\\\"addressString = $ctrl.getAddressString(doc)\\\"> <b ng-if=doc.documentRequisites.documentName>{{doc.documentRequisites.documentName}}<br></b> <b ng-if=addressString>{{addressString}}<br/></b> <span ng-if=doc.object.objectName>{{doc.object.objectName}}</span> </td> </tr> </tbody> </table> </success> <error> <span class=\\\"text-danger fa fa-times-circle\\\"></span> <span> Ошибка при получении информации о документах</span> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:45px> <spinner style=margin:5px type=\\\"'three-bounce'\\\"></spinner> </div> </div> </loading> </loading-block> </div> </div> <div class=pull-right> <label style=margin-bottom:0;margin-right:20px> <input icheck type=checkbox ng-model=$ctrl.selectAll ng-change=$ctrl.selectAllLinks()> Выделить все </label> <button type=button ng-click=$ctrl.deleteSelectedLinks() ng-disabled=$ctrl.disabledAll title=\\\"Удалить выбраные связь\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-chain-broken text-danger\\\" aria-hidden=true></i></button> </div> </div> <div ng-if=\\\"$ctrl.dossiers.length === 0\\\" class=m-t-lg> <span> <i class=\\\"text-warning fa fa-exclamation-triangle\\\" aria-hidden=true></i> <span> Связанные дела отсутствуют</span></span> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/dossier/linkedDossiers.html\n// module id = 84\n// module chunks = 0","import { DocumentLinkRestService } from \"isogd-document-link-rest\";\r\nimport { IParcelDossierWrapper, DossierRestService, DossierLinkRestService } from \"isogd-dossier-rest\";\r\nimport * as _ from \"lodash\";\r\nimport { LinkedDocumentService } from \"../../services/LinkedDocumentService\";\r\nimport { DocumentIsogd, DocumentRestService } from \"isogd-document-rest\";\r\nimport { NsiRestService } from \"oasi-nsi-rest\";\r\n\r\ninterface INewDossier {\r\n    reason: string;\r\n    cadastral: string;\r\n    district: any;\r\n    prefect: any;\r\n    address: string;\r\n}\r\n\r\nclass NewDossierController {\r\n    static $inject = ['linkedDocumentService', 'toastr', '$timeout', 'documentLinkRestService', 'blockUI', 'nsiRestService', '$q', 'dossierRestService', 'dossierLinkRestService', 'documentRestService'];\r\n    private document: DocumentIsogd;\r\n    private newDossier: INewDossier = {\r\n        reason: \"cad\",\r\n        cadastral: \"\",\r\n        district: null,\r\n        prefect: null,\r\n        address: \"\"\r\n    };\r\n    private districts: any[];\r\n    private prefects: any[];\r\n    private chapters: any[];\r\n    private onUpdate: () => void;\r\n    private myBlockUI: any;\r\n\r\n    constructor(private linkedDocumentService: LinkedDocumentService, private toastr: Toastr,\r\n        private $timeout: ng.ITimeoutService, \r\n        private documentLinkRestService: DocumentLinkRestService, \r\n        private blockUI: any, \r\n        private nsiRestService: NsiRestService, \r\n        private $q: ng.IQService, \r\n        private dossierRestService: DossierRestService, \r\n        private dossierLinkRestService: DossierLinkRestService, \r\n        private documentRestService: DocumentRestService) {\r\n    }\r\n\r\n    $onInit() {\r\n        if (this.document.object && this.document.object.objectAddress) {\r\n            this.newDossier.address = this.document.object.objectAddress;\r\n        }\r\n        this.newDossier.address = this.newDossier.address.trim();\r\n        this.myBlockUI = this.blockUI.instances.get(\"newDossier\");\r\n    }\r\n\r\n    $onDestroy() {\r\n        this.myBlockUI.reset();\r\n    }\r\n\r\n    create() {\r\n        this.myBlockUI.start();\r\n        this.$timeout(1500).then(response => {\r\n            this.dossierRestService.findDossierByCadastralNumber(this.newDossier.cadastral).then(response => {\r\n                if (response) {\r\n                    this.myBlockUI.stop();\r\n                    this.toastr.warning(\"Дело с таким кадастровым номером уже существует!\");\r\n                } else {\r\n                    let params: IParcelDossierWrapper = {\r\n                        parcelDossier: {\r\n                            cadastralNumber: this.newDossier.cadastral,\r\n                            address: this.newDossier.address\r\n                        }\r\n                    };\r\n\r\n                    if (this.newDossier.reason === \"cad\" && this.newDossier.cadastral !== \"\") {\r\n                        params.parcelDossier.cadastralNumber = this.newDossier.cadastral;\r\n                    }\r\n\r\n                    if (this.newDossier.prefect) {\r\n                        params.parcelDossier.area = {\r\n                            areaName: this.newDossier.prefect.name,\r\n                            areaCode: this.newDossier.prefect.code\r\n                        };\r\n                    }\r\n\r\n                    if (this.newDossier.district) {\r\n                        params.parcelDossier.district = {\r\n                            districtName: this.newDossier.district.name,\r\n                            districtCode: this.newDossier.district.code\r\n                        };\r\n                    }\r\n\r\n                    this.dossierRestService.createDossier(params).then(response => {\r\n                        this.toastr.success(\"Новое дело успешно создано!\");\r\n                        this.dossierLinkRestService.create({\r\n                            dossierId: response.parcelDossier.dossierId,\r\n                            docId: this.document.documentID\r\n                        }).then(response => {\r\n                            this.myBlockUI.stop();\r\n                            this.toastr.success(\"Связь дела и документа установлена!\");\r\n                            this.onUpdate();\r\n                        }).catch(error => {\r\n                            this.myBlockUI.stop();\r\n                            this.toastr.error(\"Ошибка при связывании дела и документа!\");\r\n                        });\r\n                    }).catch(error => {\r\n                        this.myBlockUI.stop();\r\n                        this.toastr.error(\"Ошибка при создании нового дела!\");\r\n                    });\r\n                }\r\n            }).catch(error => {\r\n                this.myBlockUI.stop();\r\n                this.toastr.warning(\"Ошибка при создании нового дела!\");\r\n                console.log(error);\r\n            });\r\n        });\r\n    }\r\n}\r\n\r\nexport const NewDossierComponent: angular.IComponentOptions = {\r\n    controller: NewDossierController,\r\n    template: require('./newDossier.html'),\r\n    bindings: {\r\n        document: '<',\r\n        districts: '<',\r\n        prefects: '<',\r\n        chapters: '<',\r\n        onUpdate: \"&\"\r\n    }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dossier/newDossier.ts","module.exports = \"<div ng-class=newDossierClass class=m-t-lg block-ui=newDossier> <div class=row> <div class=col-sm-3 style=text-align:right>Основание:</div> <div class=col-sm-9> <div class=form-group> <label style=padding-left:0 class=checkbox-inline> <input icheck type=radio ng-model=$ctrl.newDossier.reason value=cad> Кадастровый номер</label> <label class=checkbox-inline> <input icheck type=radio ng-model=$ctrl.newDossier.reason value=doc> Документ</label> </div> </div> </div> <div ng-if=\\\"$ctrl.newDossier.reason === 'cad'\\\" class=row> <div class=col-sm-3 style=text-align:right>Кадастровый номер по документу:</div> <div class=col-sm-9> <select class=form-control ng-model=$ctrl.newDossier.cadastral> <option ng-repeat=\\\"c in $ctrl.document.territory.cadastralNumber\\\">{{c}}</option> </select> </div> </div> <div ng-if=\\\"$ctrl.newDossier.reason === 'cad'\\\" class=\\\"row m-t-sm\\\"> <div class=col-sm-3 style=text-align:right>Кадастровый номер дела:</div> <div class=col-sm-9> <input class=form-control ng-model=$ctrl.newDossier.cadastral> </div> </div> <div class=\\\"row m-t-sm\\\"> <div class=col-sm-3 style=text-align:right>Округ:</div> <div class=col-sm-9> <select class=form-control ng-options=\\\"p as p.fullName for p in $ctrl.prefects\\\" ng-model=$ctrl.newDossier.prefect></select> </div> </div> <div class=\\\"row m-t-sm\\\"> <div class=col-sm-3 style=text-align:right>Район:</div> <div class=col-sm-9> <select class=form-control ng-options=\\\"p as p.name for p in $ctrl.districts\\\" ng-model=$ctrl.newDossier.district></select> </div> </div> <div class=\\\"row m-t-sm\\\" ng-class=\\\"{'has-error': $ctrl.newDossier.address === ''}\\\"> <div class=col-sm-3 style=text-align:right> Адрес: <span ng-show=\\\"$ctrl.newDossier.address === ''\\\" class=our-mandatory>*</span></div> <div class=col-sm-9> <input class=form-control ng-model=$ctrl.newDossier.address> </div> </div> <div class=\\\"row m-t-md\\\"> <div class=col-sm-3></div> <div class=col-sm-9> <button ng-disabled=\\\"$ctrl.newDossier.address === ''\\\" class=\\\"btn btn-primary\\\" ng-click=$ctrl.create()>Создать дело</button> </div> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/dossier/newDossier.html\n// module id = 86\n// module chunks = 0","import { DocumentLinkRestService } from \"isogd-document-link-rest\";\r\nimport { IParcelDossierWrapper, DossierRestService, DossierLinkRestService } from \"isogd-dossier-rest\";\r\nimport * as _ from \"lodash\";\r\nimport { LinkedDocumentService } from \"../../services/LinkedDocumentService\";\r\nimport * as widgets from \"oasi-widgets\";\r\nimport { DocumentIsogd, DocumentRestService, DocumentIsogdWrapper, DocumentTerritory } from \"isogd-document-rest\";\r\nimport { NsiRestService } from \"oasi-nsi-rest\";\r\n\r\nclass SearchDossiersController {\r\n    static $inject = ['linkedDocumentService', 'toastr', '$timeout', 'documentLinkRestService', 'blockUI', 'nsiRestService', '$q', 'dossierRestService', 'dossierLinkRestService', 'documentRestService'];\r\n    private document: DocumentIsogd;\r\n    private dossiers: IParcelDossierWrapper[];\r\n    private chapters: any[];\r\n    private onUpdate: () => void;\r\n    private myBlockUI: any;\r\n    private cadastral: string = \"\";\r\n    private result: IParcelDossierWrapper[] = [];\r\n\r\n    constructor(private linkedDocumentService: LinkedDocumentService, private toastr: Toastr,\r\n        private $timeout: ng.ITimeoutService, \r\n        private documentLinkRestService: DocumentLinkRestService, \r\n        private blockUI: any, \r\n        private nsiRestService: NsiRestService, \r\n        private $q: ng.IQService, \r\n        private dossierRestService: DossierRestService, \r\n        private dossierLinkRestService: DossierLinkRestService, \r\n        private documentRestService: DocumentRestService) {\r\n    }\r\n\r\n    $onInit() {\r\n        this.myBlockUI = this.blockUI.instances.get(\"searchDossiers\");\r\n    }\r\n\r\n    $onDestroy() {\r\n        this.myBlockUI.reset();\r\n    }\r\n\r\n    $onChanges(changes: any) {\r\n        if (changes.dossiers && changes.dossiers.currentValue) {\r\n            if (this.cadastral !== \"\") {\r\n\r\n                this.myBlockUI.start();\r\n                this.$timeout(1500).then(response => {\r\n                    this.dossierRestService.findDossierByCadastralNumber(this.cadastral).then(response => {\r\n                        this.result = [];\r\n                        if (response) {\r\n                            this.result.push(response);\r\n                        }\r\n                        this.result.forEach(r => {\r\n                            (<any>r).exist = false;\r\n                            this.dossiers.forEach(d => {\r\n                                if (r.parcelDossier.dossierId === d.parcelDossier.dossierId) {\r\n                                    (<any>r).exist = true;\r\n                                }\r\n                            });\r\n                        });\r\n\r\n                        this.result.forEach(d => {\r\n                            (<any>d).documents = [];\r\n                            (<any>d).loading = widgets.LoadingStatus.LOADING;\r\n                            this.dossierLinkRestService.getFromDossier(d.parcelDossier.dossierId).then(response => {\r\n                                let promises: ng.IPromise<DocumentIsogdWrapper>[] = [];\r\n                                response.forEach(r => {\r\n                                    promises.push(this.documentRestService.getDocument(r.docId));\r\n                                });\r\n                                this.$q.all(promises).then(response => {\r\n                                    (<any>d).documents = _.map(response, d => { return d.document; });\r\n                                    (<any>d).documents = _.orderBy((<any>d).documents, function (e) { return e.documentRequisites.documentDate }, ['asc']);\r\n                                    (<any>d).loading = widgets.LoadingStatus.SUCCESS;\r\n                                }).catch(error => {\r\n                                    (<any>d).loading = widgets.LoadingStatus.ERROR;\r\n                                });\r\n                            }).catch(error => {\r\n                            });\r\n                        });\r\n\r\n                        this.myBlockUI.stop();\r\n                    }).catch(error => {\r\n                        this.myBlockUI.stop();\r\n                    });\r\n                });\r\n            } else {\r\n                this.result = [];\r\n            }\r\n        }\r\n    }\r\n\r\n    find() {\r\n        this.myBlockUI.start();\r\n        this.$timeout(1500).then(response => {\r\n            this.dossierRestService.findDossierByCadastralNumber(this.cadastral).then(response => {\r\n                this.result = [];\r\n                if (response) {\r\n                    this.result.push(response);\r\n                }\r\n                this.result.forEach(r => {\r\n                    (<any>r).exist = false;\r\n                    this.dossiers.forEach(d => {\r\n                        if (r.parcelDossier.dossierId === d.parcelDossier.dossierId) {\r\n                            (<any>r).exist = true;\r\n                        }\r\n                    });\r\n                });\r\n\r\n                this.result.forEach(d => {\r\n                    (<any>d).documents = [];\r\n                    (<any>d).loading = widgets.LoadingStatus.LOADING;\r\n                    this.dossierLinkRestService.getFromDossier(d.parcelDossier.dossierId).then(response => {\r\n                        let promises: ng.IPromise<DocumentIsogdWrapper>[] = [];\r\n                        response.forEach(r => {\r\n                            promises.push(this.documentRestService.getDocument(r.docId));\r\n                        });\r\n                        this.$q.all(promises).then(response => {\r\n                            (<any>d).documents = _.map(response, d => { return d.document; });\r\n                            (<any>d).documents = _.orderBy((<any>d).documents, function (e) { return e.documentRequisites.documentDate }, ['asc']);\r\n                            (<any>d).loading = widgets.LoadingStatus.SUCCESS;\r\n                        }).catch(error => {\r\n                            (<any>d).loading = widgets.LoadingStatus.ERROR;\r\n                        });\r\n                    }).catch(error => {\r\n                    });\r\n                });\r\n\r\n                this.myBlockUI.stop();\r\n            }).catch(error => {\r\n                this.myBlockUI.stop();\r\n            });\r\n        });\r\n    }\r\n\r\n    addLink(dossier: IParcelDossierWrapper) {\r\n        this.myBlockUI.start();\r\n        this.$timeout(1500).then(response => {\r\n            this.dossierLinkRestService.create({\r\n                dossierId: dossier.parcelDossier.dossierId,\r\n                docId: this.document.documentID\r\n            }).then(response => {\r\n                this.toastr.success(\"Связь успешно установлена!\");\r\n                this.myBlockUI.stop();\r\n                this.onUpdate();\r\n            }).catch(error => {\r\n                this.toastr.error(\"Ошибка при установлении связи!\");\r\n                this.myBlockUI.stop();\r\n            });\r\n        });\r\n    }\r\n\r\n    dossierToString(dossier: IParcelDossierWrapper): string {\r\n        let result: string = \"\";\r\n        if (dossier.parcelDossier.cadastralNumber) {\r\n            result += dossier.parcelDossier.cadastralNumber;\r\n            result += \" \";\r\n        }\r\n        result += this.getAddress(dossier);\r\n        return result.trim();\r\n    }\r\n\r\n    getAddress(dossier: IParcelDossierWrapper): string {\r\n        let result: string = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.address) {\r\n            result += dossier.parcelDossier.address;\r\n            result += \" \";\r\n        }\r\n\r\n        let areaName = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.area && dossier.parcelDossier.area.areaName) {\r\n            areaName = dossier.parcelDossier.area.areaName;\r\n        }\r\n\r\n        let districtName = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.district && dossier.parcelDossier.district.districtName) {\r\n            districtName = dossier.parcelDossier.district.districtName;\r\n        }\r\n\r\n        let secondPart = '';\r\n\r\n        if (areaName) {\r\n            secondPart += areaName;\r\n        }\r\n\r\n        if (districtName) {\r\n            secondPart += (areaName) ? ', ' : '';\r\n            secondPart += districtName;\r\n        }\r\n\r\n        if (secondPart) {\r\n            secondPart = ' (' + secondPart + ')';\r\n        }\r\n\r\n        result += secondPart;\r\n\r\n        return result;\r\n    }\r\n\r\n    getAddressString(document: DocumentIsogd): string {\r\n        if (document.territory) {\r\n            let territoryValues = this.getTerritoryValues(document.territory);\r\n            if (document.object && document.object.objectAddress) {\r\n                let result = document.object.objectAddress;\r\n                if (territoryValues && territoryValues.length > 0) {\r\n                    result += ' (' + territoryValues.join(', ') + ')';\r\n                }\r\n                return result;\r\n            } else if (territoryValues && territoryValues.length > 0) {\r\n                return territoryValues.join(', ');\r\n            }\r\n        } else \r\n        {\r\n            return \"\";\r\n        }\r\n    }\r\n\r\n    getTerritoryValues(territory: DocumentTerritory): string[] {\r\n        let areas: string[] = territory ? _.map(territory.area, (area) => {\r\n            return area.areaName;\r\n        }) : [];\r\n        let districts: string[] = territory ? _.map(territory.district, (district) => {\r\n            return district.districtName;\r\n        }) : [];\r\n        return areas.concat(districts);\r\n    }\r\n}\r\n\r\nexport const SearchDossiersComponent: angular.IComponentOptions = {\r\n    controller: SearchDossiersController,\r\n    template: require('./searchDossiers.html'),\r\n    bindings: {\r\n        document: '<',\r\n        chapters: '<',\r\n        dossiers: '<',\r\n        onUpdate: \"&\"\r\n    }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/dossier/searchDossiers.ts","module.exports = \"<div class=\\\"searchDossiers m-t-lg\\\" block-ui=searchDossiers> <h4>Параметры поиска:</h4> <div class=\\\"clearfix m-b-xs\\\"> <div class=col-sm-3 style=text-align:right>Кадастровый номер:</div> <div class=\\\"col-lg-8 col-md-7 col-sm-7\\\"> <input class=form-control ng-model=$ctrl.cadastral style=width:100%> </div> <div class=\\\"col-lg-1 col-md-2 col-sm-2\\\"> <button class=\\\"btn btn-primary\\\" ng-disabled=\\\"$ctrl.cadastral === ''\\\" ng-click=$ctrl.find() style=width:100%>Найти</button> </div> </div> <h4>Результаты поиска:</h4> <div class=container-fluid ng-if=\\\"$ctrl.result.length > 0\\\"> <div class=row> <div ng-repeat=\\\"dossier in $ctrl.result\\\"> <h4 ng-init=\\\"cycleShow = true\\\" style=outline:0 class=\\\"m-t-sm m-b-xs clearfix\\\"> <div class=pull-left ng-click=\\\"cycleShow = !cycleShow\\\" style=outline:0> <i style=width:15px class=\\\"fa fa-caret-right\\\" ng-show=\\\"cycleShow === false\\\"></i> <i style=width:15px class=\\\"fa fa-angle-down\\\" ng-show=\\\"cycleShow === true\\\"></i> {{$ctrl.dossierToString(dossier)}} </div> <div class=pull-right> <button ng-show=!dossier.exist type=button ng-click=$ctrl.addLink(dossier) title=\\\"Привязать документ к делу\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-chain\\\" aria-hidden=true></i></button> </div> </h4> <div ng-show=cycleShow class=\\\"m-b-md m-t-md\\\" style=margin-left:20px> <div class=description> <dl class=dl-horizontal> <dt ng-if=dossier.parcelDossier.cadastralNumber><span>Кадастровый номер</span></dt> <dd ng-if=dossier.parcelDossier.cadastralNumber>{{dossier.parcelDossier.cadastralNumber}}</dd> <dt ng-if=dossier.parcelDossier.area.areaName><span>Округ</span></dt> <dd ng-if=dossier.parcelDossier.area.areaName>{{dossier.parcelDossier.area.areaName}}</dd> <dt ng-if=dossier.parcelDossier.district.districtName><span>Район</span></dt> <dd ng-if=dossier.parcelDossier.district.districtName>{{dossier.parcelDossier.district.districtName}}</dd> <dt ng-if=dossier.parcelDossier.address><span>Адрес</span></dt> <dd ng-if=dossier.parcelDossier.address>{{dossier.parcelDossier.address}}</dd> </dl> </div> <loading-block loading-status=dossier.loading> <success> <table ng-show=\\\"dossier.documents.length > 0\\\" class=\\\"table animated fadeIn m-b-md\\\"> <thead> <tr> <th width=25% style=vertical-align:bottom>Тип документа</th> <th width=15% style=vertical-align:bottom>Номер</th> <th width=10% style=vertical-align:bottom>Дата</th> <th width=50% style=vertical-align:bottom>Содержание</th> </tr> </thead> <tbody> <tr ng-repeat=\\\"doc in dossier.documents\\\"> <td style=white-space:pre-wrap ng-init=\\\"name = $ctrl.linkedDocumentService.findChapterByCode($ctrl.chapters, doc.reestr)\\\">{{name}}</td> <td style=white-space:pre-wrap><a ng-class=\\\"{'red-link': (doc.documentRequisites && doc.documentRequisites.documentStatusCode && doc.documentRequisites.documentStatusCode === 'CANCELED')}\\\" ui-sref=\\\"app.isogd.card({id: doc.documentID})\\\">{{doc.documentRequisites.documentNumber}}</a></td> <td style=white-space:pre-wrap>{{doc.documentRequisites.documentDate | date:\\\"dd.MM.yyyy\\\"}}</td> <td ng-init=\\\"addressString = $ctrl.getAddressString(doc)\\\"> <b ng-if=doc.documentRequisites.documentName>{{doc.documentRequisites.documentName}}<br></b> <b ng-if=addressString>{{addressString}}<br/></b> <span ng-if=doc.object.objectName>{{doc.object.objectName}}</span> </td> </tr> </tbody> </table> </success> <error> <span class=\\\"text-danger fa fa-times-circle\\\"></span> <span> Ошибка при получении информации о документах</span> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:45px> <spinner style=margin:5px type=\\\"'three-bounce'\\\"></spinner> </div> </div> </loading> </loading-block> </div> </div> </div> </div> <div class=container-fluid ng-if=\\\"$ctrl.result.length === 0\\\"> <div class=row> <span class=\\\"text-warning fa fa-times-circle\\\"></span> <span> Дела не найдены</span> </div> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/dossier/searchDossiers.html\n// module id = 88\n// module chunks = 0","import { DocumentIsogdWrapper } from 'isogd-document-rest';\nimport { SearchResult, SolarRestService, SearchExtData } from 'isogd-solar-rest';\nimport { DocumentLinkRestService, IDocumentLink } from 'isogd-document-link-rest';\nimport * as _ from 'lodash';\nimport { SearchResultDocumentEx } from './search-candidates';\nimport { SortingType } from './search-result-sorting';\nimport { IPagination } from './search-pagination';\nimport { ISearchParams } from './search-filter';\nimport * as widgets from \"oasi-widgets\";\nimport { LinkedDocumentService } from '../../services/LinkedDocumentService';\nimport { DocumentIsogd, DocumentRestService } from 'isogd-document-rest';\nimport { NsiRestService } from 'oasi-nsi-rest';\n\nexport interface ILinkWithDocument {\n    link: IDocumentLink;\n    document: DocumentIsogd;\n    checked: boolean;\n}\n\nclass LinkedDocumentsEditController {\n    static $inject = ['$filter', \n    'solarRestService', \n    'linkedDocumentService', \n    '$timeout', \n    'toastr', \n    'blockUI', \n    'documentLinkRestService', \n    'documentRestService', \n    'nsiRestService', \n    '$q'];\n\n    private document: DocumentIsogd;\n    private linksWithDocument: ILinkWithDocument[] = [];\n    private linksWithDocumentApprove: ILinkWithDocument[] = [];\n    private linksWithDocumentReview: ILinkWithDocument[] = [];\n    private linksWithDocumentReject: ILinkWithDocument[] = [];\n    private chapters: any[];\n    private linkdocTypes: any[];\n    private linkdocStatuses: any[];\n    private documentTypes: any[];\n    private statuses: any[];\n    private loadingStatus: widgets.LoadingStatus = widgets.LoadingStatus.LOADING;\n    private myBlockUI: any;\n    private searchParams: ISearchParams;\n    private sortings: SortingType[];\n    private pagination: IPagination;\n    private searchResult: SearchResultDocumentEx[] = [];\n\n    constructor(private $filter: ng.IFilterService, \n        private solarRestService: SolarRestService, \n        private linkedDocumentService: LinkedDocumentService,\n        private $timeout: ng.ITimeoutService, \n        private toastr: Toastr, \n        private blockUI: any, \n        private documentLinksRestService: DocumentLinkRestService, \n        private documentRestService: DocumentRestService, \n        private nsiRestService: NsiRestService, private $q: ng.IQService) {\n        this.searchParams = {\n            search: \"\",\n            documentType: \"\",\n            documentNumber: \"\",\n            documentDate: {\n                startDate: null,\n                endDate: null\n            },\n            searchType: \"\",\n            docStatuse: null\n        };\n\n        this.pagination = {\n            currentPage: 1,\n            totalItems: 0,\n            disable: false\n        };\n\n        this.sortings = [\n            new SortingType('documentDate', 'desc', 'по дате'),\n            new SortingType('documentNumber', 'desc', 'по номеру')\n        ];\n    }\n\n    $onDestroy() {\n        this.myBlockUI.reset();\n    }\n\n    $onInit() {\n        this.myBlockUI = this.blockUI.instances.get('linkedDocumentEditor');\n        this.nsiRestService.get(\"LinkdocTypes\").then(response => {\n            this.linkdocTypes = response;\n            return this.nsiRestService.get(\"LinkdocStatuses\")\n        }).then(response => {\n            this.linkdocStatuses = response;\n            return this.nsiRestService.get(\"OldChapters\");\n        }).then(response => {\n            this.chapters = response;\n            return this.nsiRestService.get(\"DocumentTypes\");\n        }).then(response => {\n            this.documentTypes = response;\n            return this.nsiRestService.get(\"DocumentStatus\");\n        }).then(response => {\n            this.statuses = response;\n            return this.documentLinksRestService.getAll(this.document.documentID);\n        }).then(response => {\n            let links = response;\n            if (links.length > 0) {\n                let promises: ng.IPromise<DocumentIsogdWrapper>[] = [];\n                links.forEach(i => {\n                    promises.push(this.documentRestService.getDocument(this.getLinkedDocId(i)));\n                });\n                this.$q.all(promises).then(response => {\n                    let linkedDocuments: DocumentIsogd[] = _.map(response, d => { return d.document; });\n                    links.forEach(l => {\n                        linkedDocuments.forEach(d => {\n                            if (this.getLinkedDocId(l) === d.documentID) {\n                                this.linksWithDocument.push({\n                                    link: l,\n                                    document: d,\n                                    checked: false\n                                });\n                            }\n                        });\n                    });\n                    this.linksWithDocumentApprove = _.filter(this.linksWithDocument, r => { return r.link.status === 'approve'; });\n                    this.linksWithDocumentReview = _.filter(this.linksWithDocument, r => { return r.link.status === 'review'; });\n                    this.linksWithDocumentReject = _.filter(this.linksWithDocument, r => { return r.link.status === 'reject'; });\n                    this.linksWithDocumentApprove = _.orderBy(this.linksWithDocumentApprove, function (e) { return e.document.documentRequisites.documentDate }, ['asc']);        \n                    this.linksWithDocumentReview = _.orderBy(this.linksWithDocumentReview, function (e) { return e.document.documentRequisites.documentDate }, ['asc']);        \n                    this.linksWithDocumentReject = _.orderBy(this.linksWithDocumentReject, function (e) { return e.document.documentRequisites.documentDate }, ['asc']);        \n                    this.loadingStatus = widgets.LoadingStatus.SUCCESS;\n                }).catch(error => {\n                    this.loadingStatus = widgets.LoadingStatus.ERROR;\n                });\n            } else {\n                this.loadingStatus = widgets.LoadingStatus.SUCCESS;\n            }\n        }).catch(error => {\n            this.loadingStatus = widgets.LoadingStatus.ERROR;\n            console.log(error);\n        });\n    }\n    update() {\n        this.myBlockUI.start();\n        this.$timeout(1500).then(response => {\n            this.documentLinksRestService.getAll(this.document.documentID).then(response => {\n                let links = response;\n                if (links.length > 0) {\n                    let promises: ng.IPromise<DocumentIsogdWrapper>[] = [];\n                    links.forEach(i => {\n                        promises.push(this.documentRestService.getDocument(this.getLinkedDocId(i)));\n                    });\n                    this.$q.all(promises).then(response => {\n                        let linkedDocuments: DocumentIsogd[] = _.map(response, d => { return d.document; });\n                        this.linksWithDocument = [];\n                        links.forEach(l => {\n                            linkedDocuments.forEach(d => {\n                                if (this.getLinkedDocId(l) === d.documentID) {\n                                    this.linksWithDocument.push({\n                                        link: l,\n                                        document: d,\n                                        checked: false\n                                    });\n                                }\n                            });\n                        });\n                        this.linksWithDocumentApprove = _.filter(this.linksWithDocument, r => { return r.link.status === 'approve'; });\n                        this.linksWithDocumentReview = _.filter(this.linksWithDocument, r => { return r.link.status === 'review'; });\n                        this.linksWithDocumentReject = _.filter(this.linksWithDocument, r => { return r.link.status === 'reject'; });\n\n                        this.linksWithDocumentApprove = _.orderBy(this.linksWithDocumentApprove, function (e) { return e.document.documentRequisites.documentDate }, ['asc']);        \n                        this.linksWithDocumentReview = _.orderBy(this.linksWithDocumentReview, function (e) { return e.document.documentRequisites.documentDate }, ['asc']);        \n                        this.linksWithDocumentReject = _.orderBy(this.linksWithDocumentReject, function (e) { return e.document.documentRequisites.documentDate }, ['asc']);        \n                        \n                        this.myBlockUI.stop();\n                    }).catch(error => {\n                        this.myBlockUI.stop();\n                        console.log(error);\n                    });\n                } else {\n                    this.myBlockUI.stop();\n                }\n            }).catch(error => {\n                this.myBlockUI.stop();\n                console.log(error);\n            });\n        });\n    }\n\n    updateAndFind() {\n        this.myBlockUI.start();\n        this.$timeout(1500).then(response => {\n            this.documentLinksRestService.getAll(this.document.documentID).then(response => {\n                let links = response;\n                if (links.length > 0) {\n                    let promises: ng.IPromise<DocumentIsogdWrapper>[] = [];\n                    links.forEach(i => {\n                        promises.push(this.documentRestService.getDocument(this.getLinkedDocId(i)));\n                    });\n                    this.$q.all(promises).then(response => {\n                        let linkedDocuments: DocumentIsogd[] = _.map(response, d => { return d.document; });\n                        this.linksWithDocument = [];\n                        links.forEach(l => {\n                            linkedDocuments.forEach(d => {\n                                if (this.getLinkedDocId(l) === d.documentID) {\n                                    this.linksWithDocument.push({\n                                        link: l,\n                                        document: d,\n                                        checked: false\n                                    });\n                                }\n                            });\n                        });\n                        this.linksWithDocumentApprove = _.filter(this.linksWithDocument, r => { return r.link.status === 'approve'; });\n                        this.linksWithDocumentReview = _.filter(this.linksWithDocument, r => { return r.link.status === 'review'; });\n                        this.linksWithDocumentReject = _.filter(this.linksWithDocument, r => { return r.link.status === 'reject'; });\n\n\n                        if (this.searchParams.searchType !== \"\") {\n                            let promise: ng.IPromise<SearchResult> = null;\n                            if (this.searchParams.searchType === \"common\") {\n                                promise = this.solarRestService.searchCommon({\n                                    page: this.pagination.currentPage - 1,\n                                    sort: this.sortingsToString(),\n                                    text: this.searchParams.search,\n                                    reestr: [],\n                                    documentRegistrationCode: ['REGISTERED', 'QUEUE', 'REFUSED', 'DELETED', 'DOUBLE', \n                                    'CHANGE_QUEUE', 'CHANGE_REFUSED', 'CHANGE_REGISTERED', 'CHANGE_DELETED']\n                                });\n                            } else if (this.searchParams.searchType === \"ext\") {\n                                promise = this.solarRestService.searchExt(this.updateData());\n                            }\n                            this.$timeout(1500).then(response => {\n                                promise.then(response => {\n                                    this.searchResult = <any[]>response.docs;\n                                    this.searchResult.forEach(r => {\n                                        let link = this.findLinkedDocumentById(r.documentId)\n                                        r.checked = false;\n                                        r.linkStatus = link !== null ? link.link.status : \"approve\";\n                                        r.linkType = link !== null ? link.link.linkType : \"link\";\n                                        r.hasLink = link !== null;\n                                    });\n                                    this.pagination.totalItems = response.numFound;\n                                    this.pagination.currentPage = response.start / response.pageSize + 1;\n                                    this.myBlockUI.stop();\n                                }).catch(error => {\n                                    console.log(error);\n                                    this.myBlockUI.stop();\n                                });\n                            });\n                        } else {\n                            this.myBlockUI.stop();\n                        }\n                    }).catch(error => {\n                        this.myBlockUI.stop();\n                        console.log(error);\n                    });\n                } else {\n                    this.myBlockUI.stop();\n                }\n            }).catch(error => {\n                this.myBlockUI.stop();\n                console.log(error);\n            });\n        });\n    }\n\n\n    getLinkedDocId(link: IDocumentLink): string {\n        return (link.doc1Id === this.document.documentID) ? link.doc2Id : link.doc1Id;\n    }\n\n    find() {\n        if (this.searchParams.searchType !== \"\") {\n            let promise: ng.IPromise<SearchResult> = null;\n            this.myBlockUI.start();\n            if (this.searchParams.searchType === \"common\") {\n                promise = this.solarRestService.searchCommon({\n                    page: this.pagination.currentPage - 1,\n                    sort: this.sortingsToString(),\n                    reestr: [],\n                    text: this.searchParams.search,\n                    documentRegistrationCode: ['REGISTERED', 'QUEUE', 'REFUSED', 'DELETED', 'DOUBLE', \n                        'CHANGE_QUEUE', 'CHANGE_REFUSED', 'CHANGE_REGISTERED', 'CHANGE_DELETED']\n                });\n            } else if (this.searchParams.searchType === \"ext\") {\n                promise = this.solarRestService.searchExt(this.updateData());\n            }\n            this.$timeout(1500).then(response => {\n                promise.then(response => {\n                    this.searchResult = <any[]>response.docs;\n                    this.searchResult.forEach(r => {\n                        let link = this.findLinkedDocumentById(r.documentId)\n                        r.checked = false;\n                        r.linkStatus = link !== null ? link.link.status : \"approve\";\n                        r.linkType = link !== null ? link.link.linkType : \"link\";\n                        r.hasLink = link !== null;\n                    });\n                    this.pagination.totalItems = response.numFound;\n                    this.pagination.currentPage = response.start / response.pageSize + 1;\n                    this.myBlockUI.stop();\n                }).catch(error => {\n                    console.log(error);\n                    this.myBlockUI.stop();\n                });\n            });\n        }\n    }\n\n    sortingsToString(): string {\n        let result = \"\";\n\n        this.sortings.forEach((s, i) => {\n            result += s.name + ' ' + s.value;\n            if (i < this.sortings.length - 1) {\n                result += \",\";\n            }\n        });\n\n        return result;\n    }\n\n    updateData(): SearchExtData {\n        let result = new SearchExtData();\n        result.page = this.pagination.currentPage - 1;\n        result.sort = this.sortingsToString();\n        result.reestr = [];\n        result.documentRegistrationCode = ['REGISTERED', 'QUEUE', 'REFUSED', 'DELETED', 'DOUBLE', \n        'CHANGE_QUEUE', 'CHANGE_REFUSED', 'CHANGE_REGISTERED', 'CHANGE_DELETED']\n\n        if (this.searchParams.docStatuse) {\n            result.documentStatusCode = this.searchParams.docStatuse.statusCode;\n        }\n        if (this.searchParams.documentType !== \"\") {\n            result.reestr = [this.searchParams.documentType];\n        }\n\n        if (this.searchParams.documentNumber !== \"\") {\n            result.documentNumber = this.searchParams.documentNumber;\n        }\n        if (this.searchParams.documentDate.startDate !== null) {\n            result.documentDateFrom = this.$filter('date')(this.searchParams.documentDate.startDate, 'yyyy-MM-dd');\n        }\n        if (this.searchParams.documentDate.endDate !== null) {\n            result.documentDateTo = this.$filter('date')(this.searchParams.documentDate.endDate, 'yyyy-MM-dd');\n        }\n\n        return result;\n    }\n\n    findLinkedDocumentById(id): ILinkWithDocument {\n        let result = null;\n\n        this.linksWithDocument.forEach(l => {\n            if (l.document.documentID === id) {\n                result = l;\n            }\n        });\n\n        return result;\n    }\n}\n\nexport const LinkedDocumentsEditComponent: angular.IComponentOptions = {\n    controller: LinkedDocumentsEditController,\n    template: require('./linked-documents-edit.html'),\n    bindings: {\n        document: '<'\n    }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/linkedDocuments/linked-documents-edit.ts","module.exports = \"<span style=margin-right:5px>Сортировать: </span> <span class=\\\"m-r-sm sorting\\\" style=margin-right:5px ng-repeat=\\\"sorting in $ctrl.sortings\\\"> <a ng-if=\\\"sorting.value === 'none'\\\" ng-class=\\\"{'sorting-inactive-a': sorting.value === 'none'}\\\" ng-click=$ctrl.change(sorting)>{{sorting.text}}</a> <a ng-if=\\\"sorting.value === 'asc'\\\" class=filter-sorter__link_asc ng-class=\\\"{'sorting-inactive-a': sorting.value === 'none'}\\\" ng-click=$ctrl.change(sorting)>{{sorting.text}}</a> <a ng-if=\\\"sorting.value === 'desc'\\\" class=filter-sorter__link_desc ng-class=\\\"{'sorting-inactive-a': sorting.value === 'none'}\\\" ng-click=$ctrl.change(sorting)>{{sorting.text}}</a> </span>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/linkedDocuments/search-result-sorting.html\n// module id = 90\n// module chunks = 0","module.exports = \"<loading-block loading-status=$ctrl.loadingStatus> <success> <div class=linkedDocumentEditor block-ui=linkedDocumentEditor> <uib-tabset class=our-nav-tab active=0> <uib-tab heading=Связи index=0> <h4 class=m-t-lg>1. Связанные документы <span class=text-success><i class=\\\"fa fa-check\\\" aria-hidden=true></i></span></h4> <linked-documents type=\\\"'approve'\\\" update-and-find=$ctrl.updateAndFind() document=$ctrl.document links-with-document=$ctrl.linksWithDocumentApprove chapters=$ctrl.chapters linkdoc-types=$ctrl.linkdocTypes linkdoc-statuses=$ctrl.linkdocStatuses> </linked-documents> <h4>2. Кандидаты на привязку <span class=text-warning><i class=\\\"fa fa-clock-o\\\" aria-hidden=true></i></span></h4> <linked-documents type=\\\"'review'\\\" update-and-find=$ctrl.updateAndFind() document=$ctrl.document links-with-document=$ctrl.linksWithDocumentReview chapters=$ctrl.chapters linkdoc-types=$ctrl.linkdocTypes linkdoc-statuses=$ctrl.linkdocStatuses> </linked-documents> <h4>3. Отклоненные кандидаты <span class=text-danger><i class=\\\"fa fa-times\\\" aria-hidden=true></i></span></h4> <linked-documents type=\\\"'reject'\\\" update-and-find=$ctrl.updateAndFind() document=$ctrl.document links-with-document=$ctrl.linksWithDocumentReject chapters=$ctrl.chapters linkdoc-types=$ctrl.linkdocTypes linkdoc-statuses=$ctrl.linkdocStatuses>  </linked-documents></uib-tab> <uib-tab index=1> <uib-tab-heading> <i class=\\\"fa fa-search\\\" aria-hidden=true></i> Поиск кандидатов </uib-tab-heading> <search-candidates statuses=$ctrl.statuses search-params=$ctrl.searchParams sortings=$ctrl.sortings pagination=$ctrl.pagination response=$ctrl.searchResult linkdoc-statuses=$ctrl.linkdocStatuses linkdoc-types=$ctrl.linkdocTypes linked-documents=$ctrl.linksWithDocument on-update=$ctrl.updateAndFind() on-find=$ctrl.find() document=$ctrl.document chapters=$ctrl.chapters></search-candidates> </uib-tab> </uib-tabset> </div> </success> <error> <span class=\\\"text-danger fa fa-times-circle\\\"></span> <span> Ошибка при получении информации о связанных документа</span> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:45px> <spinner style=margin:5px type=\\\"'three-bounce'\\\"></spinner> </div> </div> </loading> </loading-block>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/linkedDocuments/linked-documents-edit.html\n// module id = 91\n// module chunks = 0","\nimport { DocumentLinkRestService, IDocumentLink } from 'isogd-document-link-rest';\n\nimport { SolarRestService } from 'isogd-solar-rest';\nimport * as widgets from \"oasi-widgets\";\nimport * as _ from 'lodash';\nimport { SearchResultDocumentEx } from './search-candidates';\nimport { LinkedDocumentService } from '../../services/LinkedDocumentService';\nimport { DocumentIsogd, DocumentRestService, DocumentIsogdWrapper } from 'isogd-document-rest';\nimport { NsiRestService } from 'oasi-nsi-rest';\n\nclass LinkedDocumentsViewController {\n    static $inject = ['$filter', \n    'solarRestService', \n    'linkedDocumentService', \n    '$timeout', \n    'toastr', \n    'blockUI', \n    'documentLinkRestService', \n    'documentRestService', \n    '$q', \n    'nsiRestService'];\n    \n    private document: DocumentIsogd;\n    private linkedDocuments: IDocumentLink[];\n    private documents: any[];\n    private chapters: any[] = [];\n    private linkdocTypes: any[];\n    private loadingStatus: widgets.LoadingStatus = widgets.LoadingStatus.LOADING;\n\n    constructor(private $filter: ng.IFilterService, \n        private solarService: SolarRestService, \n        private linkedDocumentService: LinkedDocumentService, \n        private $timeout: ng.ITimeoutService, \n        private toastr: Toastr, \n        private blockUI: any, \n        private documentLinkRestService: DocumentLinkRestService, \n        private documentRestService: DocumentRestService, \n        private $q: ng.IQService,\n        private nsiRestService: NsiRestService) {\n        \n    }\n\n    $onInit() {\n        this.documentLinkRestService.getAll(this.document.documentID).then(response => {\n            this.linkedDocuments = _.filter(response, r => { return r.status === 'approve'; });\n            if (this.linkedDocuments.length > 0) {\n                this.nsiRestService.get(\"LinkdocTypes\").then(res => {\n                    this.linkdocTypes = res;\n                    return this.nsiRestService.get(\"OldChapters\").then(res => {\n                        this.chapters = res;\n                        let docIds: any[] = _.map(this.linkedDocuments, d => {\n                            return d.doc2Id === this.document.documentID ? { id: d.doc1Id, linkType: d.linkType} : { id: d.doc2Id, linkType: d.linkType};\n                        });\n                        let promises: ng.IPromise<DocumentIsogdWrapper>[] = [];\n                        docIds.forEach(i => {\n                            promises.push(this.documentRestService.getDocument(i.id));\n                        });\n                        this.$q.all(promises).then(response => {\n                            this.documents = _.map(response, d => { return d.document; });\n                            this.documents = _.orderBy(this.documents, function (e) { return e.documentRequisites.documentDate }, ['asc']);\n                            \n                            this.documents.forEach(d => {\n                                docIds.forEach(di => {\n                                    if (di.id === d.documentID) {\n                                        d.linkType = this.linkedDocumentService.findLinkTypeByCode(this.linkdocTypes, di.linkType);\n                                    }\n                                });\n                            });\n\n                            this.loadingStatus = widgets.LoadingStatus.SUCCESS;\n                        }).catch(error => {\n                            this.loadingStatus = widgets.LoadingStatus.ERROR;\n                            console.log(error);\n                        });\n                    }).catch(error => {\n                        this.loadingStatus = widgets.LoadingStatus.ERROR;\n                        console.log(error);\n                    });\n                }).catch(error => {\n                    this.loadingStatus = widgets.LoadingStatus.ERROR;\n                    console.log(error);\n                });\n            } else {\n                this.loadingStatus = widgets.LoadingStatus.SUCCESS;\n            }\n        }).catch(error => {\n            this.loadingStatus = widgets.LoadingStatus.ERROR;\n            console.log(error);\n        });\n    }\n}\n\n\nexport const LinkedDocumentsViewComponent: angular.IComponentOptions = {\n    controller: LinkedDocumentsViewController,\n    template: require('./linked-documents-view.html'),\n    bindings: {\n        document: '<'\n    }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/linkedDocuments/linked-documents-view.ts","module.exports = \"<loading-block loading-status=$ctrl.loadingStatus> <success> <div ng-if=\\\"$ctrl.linkedDocuments.length > 0\\\"> <table class=\\\"table animated fadeIn\\\"> <thead> <tr> <th width=25% style=vertical-align:bottom>Тип документа</th> <th width=15% style=vertical-align:bottom>Номер</th> <th width=10% style=vertical-align:bottom>Дата</th> <th width=10% style=vertical-align:bottom>Тип связи</th> <th width=40% style=vertical-align:bottom>Содержание</th> </tr> </thead> <tbody> <tr ng-repeat=\\\"doc in $ctrl.documents\\\"> <td style=white-space:pre-wrap ng-init=\\\"name = $ctrl.linkedDocumentService.findChapterByCode($ctrl.chapters, doc.reestr)\\\">{{name}}</td> <td style=white-space:pre-wrap><a ng-class=\\\"{'red-link': (doc.documentRequisites && doc.documentRequisites.documentStatusCode && doc.documentRequisites.documentStatusCode === 'CANCELED')}\\\" ui-sref=\\\"app.isogd.card({id: doc.documentID})\\\">{{doc.documentRequisites.documentNumber}}</a></td> <td style=white-space:pre-wrap>{{doc.documentRequisites.documentDate | date:\\\"dd.MM.yyyy\\\"}}</td> <td> {{doc.linkType}} </td> <td ng-init=\\\"addressString = $ctrl.linkedDocumentService.getAddressString(doc)\\\"> <b ng-if=doc.documentRequisites.documentName>{{doc.documentRequisites.documentName}}<br></b> <b ng-if=addressString>{{addressString}}<br/></b> <span ng-if=doc.document.object.objectName>{{doc.object.objectName}}</span> </td> </tr> </tbody> </table> </div> <div ng-if=\\\"$ctrl.linkedDocuments.length === 0\\\"> <span> <i class=\\\"text-warning fa fa-exclamation-triangle\\\" aria-hidden=true></i> <span> Связанных документов нет</span></span> </div> </success> <error> <span class=\\\"text-danger fa fa-times-circle\\\"></span> <span> Ошибка при получении информации о делах</span> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:45px> <spinner style=margin:5px type=\\\"'three-bounce'\\\"></spinner> </div> </div> </loading> </loading-block>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/linkedDocuments/linked-documents-view.html\n// module id = 93\n// module chunks = 0","import { DocumentLinkRestService, IDocumentLink } from 'isogd-document-link-rest';\r\nimport { SolarRestService } from 'isogd-solar-rest';\r\nimport * as _ from 'lodash';\r\nimport { SearchResultDocumentEx } from './search-candidates';\r\nimport { ILinkWithDocument } from './linked-documents-edit';\r\nimport { LinkedDocumentService } from '../../services/LinkedDocumentService';\r\nimport { DocumentIsogd, DocumentRestService } from 'isogd-document-rest';\r\nimport { NsiRestService } from 'oasi-nsi-rest';\r\n\r\nclass LinkedDocumentsController {\r\n    static $inject = ['$filter', \r\n        'solarRestService', \r\n        'linkedDocumentService', \r\n        '$timeout', \r\n        'toastr', \r\n        'blockUI', \r\n        'documentLinkRestService', \r\n        'documentRestService', \r\n        '$q', \r\n        'nsiRestService'];\r\n    \r\n    private document: DocumentIsogd;\r\n    private linksWithDocument: ILinkWithDocument[];\r\n    private chapters: any[];\r\n    private linkdocTypes: any[];\r\n    private linkdocStatuses: any[];\r\n    private myBlockUI: any;\r\n    private type: string;\r\n    private selectAll: boolean = false;\r\n    private disabledAll: boolean = true;\r\n    private allLinkType: string = \"\";\r\n    private updateAndFind: () => void;\r\n    private linkedDocumentEditorClass: string;\r\n    private linkedDocumentEditorBlockUIName: string;\r\n\r\n    constructor(private $filter: ng.IFilterService, \r\n        private solarService: SolarRestService, \r\n        private linkedDocumentService: LinkedDocumentService, \r\n        private $timeout: ng.ITimeoutService, \r\n        private toastr: Toastr, \r\n        private blockUI: any, \r\n        private documentLinkRestService: DocumentLinkRestService, \r\n        private documentRestService: DocumentRestService, \r\n        private $q: ng.IQService, \r\n        private nsiRestService: NsiRestService) {\r\n        \r\n    }\r\n\r\n    clear() {\r\n        this.selectAll = false;\r\n        this.disabledAll = true;\r\n        this.allLinkType = \"\";\r\n    }\r\n\r\n    $onInit() {\r\n        switch (this.type) {\r\n            case \"approve\":\r\n                this.linkedDocumentEditorClass = \"linkedDocumentApproveEditor\";\r\n                this.linkedDocumentEditorBlockUIName = \"linkedDocumentApproveEditor\";\r\n                break;\r\n            case \"review\":\r\n                this.linkedDocumentEditorClass = \"linkedDocumentReviewEditor\";\r\n                this.linkedDocumentEditorBlockUIName = \"linkedDocumentReviewEditor\";\r\n                break;\r\n            case \"reject\":\r\n                this.linkedDocumentEditorClass = \"linkedDocumentRejectditor\";\r\n                this.linkedDocumentEditorBlockUIName = \"linkedDocumentRejectditor\";\r\n                break;\r\n        }\r\n\r\n        this.myBlockUI = this.blockUI.instances.get(this.linkedDocumentEditorBlockUIName);\r\n\r\n    }\r\n\r\n    $onChanges(changes: any) {\r\n        if(changes.linksWithDocument && changes.linksWithDocument.currentValue) {\r\n            this.clear();\r\n        }\r\n    }\r\n\r\n    $onDestroy() {\r\n        this.myBlockUI.reset();\r\n    }\r\n\r\n    selectAllLinks() {\r\n        this.linksWithDocument.forEach(l => {\r\n            l.checked = this.selectAll;\r\n        });\r\n\r\n        this.disabledAll = !this.selectAll;\r\n    }\r\n\r\n    changeSelection() {\r\n        let selectAll = true;\r\n        let anyChecked = false;\r\n        this.linksWithDocument.forEach(l => {\r\n            if (l.checked === false) {\r\n                selectAll = false;\r\n            }\r\n            if (l.checked === true) {\r\n                anyChecked = true;\r\n            }\r\n        });\r\n        this.selectAll = selectAll;\r\n\r\n        this.disabledAll = !anyChecked;\r\n    }\r\n\r\n    changeLinkType(doc: ILinkWithDocument) {\r\n        this.myBlockUI.start();\r\n        this.linkedDocumentService.changeLink(doc.link).then(response => {\r\n            this.myBlockUI.stop();\r\n            this.updateAndFind();\r\n            this.toastr.success(\"Тип связи успешно изменён!\", \"Успех\");\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n            this.toastr.error(\"Ошибка при изменении типа связи!\", \"Ошибка\");\r\n        });\r\n    }\r\n\r\n    changeSelectedLinkType() {\r\n        let promises: ng.IPromise<void>[] = [];\r\n\r\n        this.linksWithDocument.forEach(l => {\r\n            if (l.checked === true) {\r\n                l.link.linkType = this.allLinkType;\r\n                promises.push(this.linkedDocumentService.changeLink(l.link));\r\n            }\r\n        });\r\n\r\n        this.myBlockUI.start();\r\n        this.$q.all(promises).then(response => {\r\n            this.myBlockUI.stop();\r\n            this.updateAndFind();\r\n            this.toastr.success(\"Тип выделенных связей успешно изменён!\", \"Успех\");\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n            this.toastr.error(\"Ошибка при изменении типа выделенных связей!\", \"Ошибка\");\r\n        });\r\n    }\r\n\r\n    deleteLink(doc: ILinkWithDocument, index: number) {\r\n        this.myBlockUI.start();\r\n        this.linkedDocumentService.deleteLink(doc.link).then(response => {\r\n            this.linksWithDocument.splice(index, 1);\r\n            this.myBlockUI.stop();\r\n            this.updateAndFind();\r\n            this.toastr.success(\"Связь успешно удалена!\", \"Успех\");\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n            this.toastr.error(\"Ошибка при удалении связи!\", \"Ошибка\");\r\n        });\r\n    }\r\n\r\n    deleteSelectedLink() {\r\n        let promises: ng.IPromise<void>[] = [];\r\n\r\n        this.linksWithDocument.forEach(l => {\r\n            if (l.checked === true) {\r\n                promises.push(this.linkedDocumentService.deleteLink(l.link));\r\n            }\r\n        });\r\n\r\n        this.myBlockUI.start();\r\n        this.$q.all(promises).then(response => {\r\n            this.myBlockUI.stop();\r\n            this.updateAndFind();\r\n            this.toastr.success(\"Выделенные связи успешно удалены!\", \"Успех\");\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n            this.toastr.error(\"Ошибка при удалении выделенных связей!\", \"Ошибка\");\r\n        });\r\n    }\r\n\r\n    changeLinkStatus(doc: ILinkWithDocument, status: string) {\r\n        this.myBlockUI.start();\r\n        doc.link.status = status;\r\n        this.linkedDocumentService.changeLink(doc.link).then(response => {\r\n            this.myBlockUI.stop();\r\n            this.updateAndFind();\r\n            this.toastr.success(\"Изменение статуса связи прошло успешно!\", \"Успех\");\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n            this.toastr.error(\"Ошибка при изменении статуса связи!\", \"Ошибка\");\r\n        });\r\n    }\r\n\r\n    changeLinkStatusToApprove(doc: ILinkWithDocument) {\r\n        this.changeLinkStatus(doc, \"approve\");\r\n    }\r\n\r\n    changeLinkStatusToReview(doc: ILinkWithDocument) {\r\n        this.changeLinkStatus(doc, \"review\");\r\n    }\r\n\r\n    changeLinkStatusToReject(doc: ILinkWithDocument) {\r\n        this.changeLinkStatus(doc, \"reject\");\r\n    }\r\n\r\n    changeSelectedLinkStatus(status: string) {\r\n        let promises: ng.IPromise<void>[] = [];\r\n\r\n        this.linksWithDocument.forEach(l => {\r\n            if (l.checked === true) {\r\n                l.link.status = status;\r\n                promises.push(this.linkedDocumentService.changeLink(l.link));\r\n            }\r\n        });\r\n\r\n        this.myBlockUI.start();\r\n        this.$q.all(promises).then(response => {\r\n            this.myBlockUI.stop();\r\n            this.updateAndFind();\r\n            this.toastr.success(\"Изменение статуса выделенных связей прошло успешно!\", \"Успех\");\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n            this.toastr.error(\"Ошибка при изменении статуса выделенных связей!\", \"Ошибка\");\r\n        });\r\n    }\r\n\r\n    changeSelectedLinkStatusToApprove() {\r\n        this.changeSelectedLinkStatus(\"approve\");\r\n    }\r\n\r\n    changeSelectedLinkStatusToReview() {\r\n        this.changeSelectedLinkStatus(\"review\");\r\n    }\r\n\r\n    changeSelectedLinkStatusToReject() {\r\n        this.changeSelectedLinkStatus(\"reject\");\r\n    }\r\n}\r\n\r\nexport const LinkedDocumentsComponent: angular.IComponentOptions = {\r\n    controller: LinkedDocumentsController,\r\n    template: require('./linked-documents.html'),\r\n    bindings: {\r\n        document: \"<\",\r\n        linksWithDocument: \"<\",\r\n        chapters: \"<\",\r\n        linkdocTypes: \"<\",\r\n        linkdocStatuses: \"<\",\r\n        updateAndFind: \"&\",\r\n        type: \"<\"\r\n    }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/linkedDocuments/linked-documents.ts","module.exports = \"<div ng-class=$ctrl.linkedDocumentEditorClass block-ui={{$ctrl.linkedDocumentEditorBlockUIName}} class=m-l-md> <div ng-if=\\\"$ctrl.linksWithDocument.length > 0\\\"> <table class=\\\"table animated fadeIn\\\"> <thead> <tr> <th> </th> <th width=25% style=vertical-align:bottom>Тип документа</th> <th width=15% style=vertical-align:bottom>Номер</th> <th width=10% style=vertical-align:bottom>Дата</th> <th width=10% style=vertical-align:bottom>Тип связи</th> <th width=40% style=vertical-align:bottom>Содержание</th> <th></th> </tr> </thead> <tbody> <tr style=background-color:#f5f5f5> <td> <label style=margin-bottom:0 title=\\\"Выделить все\\\"> <input icheck type=checkbox ng-model=$ctrl.selectAll ng-change=$ctrl.selectAllLinks()> </label> </td> <td></td> <td></td> <td></td> <td> <select title=\\\"Изменение типа связей выбранных документов\\\" ng-disabled=$ctrl.disabledAll class=form-control ng-model=$ctrl.allLinkType ng-change=$ctrl.changeSelectedLinkType()> <option ng-repeat=\\\"lt in $ctrl.linkdocTypes\\\" value={{lt.code}}>{{lt.name}}</option> </select> </td> <td> </td> <td> <div class=btn-group role=group style=width:140px> <button ng-disabled=$ctrl.disabledAll type=button ng-click=$ctrl.deleteSelectedLink() title=\\\"Удалить выделенные связи\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-chain-broken text-danger\\\" aria-hidden=true></i></button> <button ng-if=\\\"$ctrl.type === 'review' || $ctrl.type === 'reject'\\\" ng-disabled=$ctrl.disabledAll type=button ng-click=$ctrl.changeSelectedLinkStatusToApprove() title=\\\"Перенести выделенные связи в связанные документы\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-check text-success\\\" aria-hidden=true></i></button> <button ng-if=\\\"$ctrl.type === 'approve' || $ctrl.type === 'reject'\\\" ng-disabled=$ctrl.disabledAll type=button ng-click=$ctrl.changeSelectedLinkStatusToReview() title=\\\"Перенести выделенные связи в кандидаты на привязку\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-clock-o text-warning\\\" aria-hidden=true></i></button> <button ng-if=\\\"$ctrl.type === 'review' || $ctrl.type === 'approve'\\\" ng-disabled=$ctrl.disabledAll type=button ng-click=$ctrl.changeSelectedLinkStatusToReject() title=\\\"Перенести выделенные связи в отклоненные кандидаты\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-times text-danger\\\" aria-hidden=true></i></button> </div> </td> </tr> <tr ng-repeat=\\\"ld in $ctrl.linksWithDocument\\\"> <td> <label style=margin-bottom:0> <input icheck type=checkbox ng-model=ld.checked ng-change=$ctrl.changeSelection()> </label> </td> <td style=white-space:pre-wrap ng-init=\\\"name = $ctrl.linkedDocumentService.findChapterByCode($ctrl.chapters, ld.document.reestr)\\\">{{name}}</td> <td style=white-space:pre-wrap><a ng-class=\\\"{'red-link': (ld.document.documentRequisites && ld.document.documentRequisites.documentStatusCode && ld.document.documentRequisites.documentStatusCode === 'CANCELED')}\\\" ui-sref=\\\"app.isogd.card({id: ld.document.documentID})\\\">{{ld.document.documentRequisites.documentNumber}}</a></td> <td style=white-space:pre-wrap>{{ld.document.documentRequisites.documentDate | date:\\\"dd.MM.yyyy\\\"}}</td> <td> <select class=form-control ng-model=ld.link.linkType ng-change=$ctrl.changeLinkType(ld)> <option ng-repeat=\\\"lt in $ctrl.linkdocTypes\\\" value={{lt.code}}>{{lt.name}}</option> </select> </td> <td ng-init=\\\"addressString = $ctrl.linkedDocumentService.getAddressString(ld.document)\\\"> <b ng-if=doc.document.documentRequisites.documentName>{{ld.document.documentRequisites.documentName}}<br></b> <b ng-if=addressString>{{addressString}}<br/></b> <span ng-if=ld.document.object.objectName>{{ld.document.object.objectName}}</span> </td> <td> <div class=btn-group role=group style=width:140px> <button type=button ng-click=\\\"$ctrl.deleteLink(ld, $index)\\\" title=\\\"Удалить связь\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-chain-broken text-danger\\\" aria-hidden=true></i></button> <button ng-if=\\\"$ctrl.type === 'review' || $ctrl.type === 'reject'\\\" type=button ng-click=$ctrl.changeLinkStatusToApprove(ld) title=\\\"Перенести в связанные документы\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-check text-success\\\" aria-hidden=true></i></button> <button ng-if=\\\"$ctrl.type === 'approve' || $ctrl.type === 'reject'\\\" type=button ng-click=$ctrl.changeLinkStatusToReview(ld) title=\\\"Перенести в кандидаты на привязку\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-clock-o text-warning\\\" aria-hidden=true></i></button> <button ng-if=\\\"$ctrl.type === 'review' || $ctrl.type === 'approve'\\\" type=button ng-click=$ctrl.changeLinkStatusToReject(ld) title=\\\"Перенести в отклоненные кандидаты\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-times text-danger\\\" aria-hidden=true></i></button> </div> </td> </tr> </tbody> </table> </div> <div ng-if=\\\"$ctrl.linksWithDocument.length === 0\\\" class=m-b-md> <span> <i class=\\\"text-warning fa fa-exclamation-triangle\\\" aria-hidden=true></i> <span> Связанные документы отсутствуют</span></span> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/linkedDocuments/linked-documents.html\n// module id = 95\n// module chunks = 0","import { SearchResultDocument, SearchResult, SolarRestService} from 'isogd-solar-rest';\r\nimport { DocumentLinkRestService, IDocumentLink } from 'isogd-document-link-rest';\r\nimport * as _ from 'lodash';\r\nimport { ILinkWithDocument } from './linked-documents-edit';\r\nimport * as angular from 'angular';\r\nimport { ISearchParams } from './search-filter';\r\nimport { SortingType } from './search-result-sorting';\r\nimport { IPagination } from './search-pagination';\r\nimport { LinkedDocumentService } from \"../../services/LinkedDocumentService\";\r\nimport { DocumentIsogd } from 'isogd-document-rest';\r\nimport { NsiRestService } from 'oasi-nsi-rest';\r\n\r\nexport class SearchResultDocumentEx {\r\n    documentDate: string;\r\n    documentId: string;\r\n    documentName: string;\r\n    documentNumber: string;\r\n    documentType: string;\r\n    id: string;\r\n    objectAddress: string;\r\n    objectName: string;\r\n    postAddress: string;\r\n    reestr: string;\r\n    registrationDate: string;\r\n    registrationNumber: string;\r\n    title: string;\r\n    type: string;\r\n    organizationName: string;\r\n    organizationRoleCode: string;\r\n    inn: string;\r\n    ogrn: string;\r\n    documentRegistrationCode: string;\r\n    documentStatusCode: string;\r\n    areaNames: string[];\r\n    cadastralNumbers: string[];\r\n    districtNames: string[];\r\n\r\n\r\n    checked: boolean;\r\n    linkType: string;\r\n    linkStatus: string;\r\n    hasLink: boolean;\r\n}\r\n\r\nclass SearchCandidatesController {\r\n    static $inject = ['$filter',\r\n        'solarRestService',\r\n        'linkedDocumentService',\r\n        '$timeout',\r\n        'toastr',\r\n        'blockUI',\r\n        'documentLinkRestService',\r\n        'nsiRestService',\r\n        '$q'];\r\n\r\n    private document: DocumentIsogd;\r\n    private chapters: any[];\r\n    private groupedChapters: any[] = [];\r\n    private searchParams: ISearchParams;\r\n    private notFound: boolean = true;\r\n    private onUpdate: () => void;\r\n    private onFind: () => void;\r\n    private linkdocTypes: any[];\r\n    private linkdocStatuses: any[];\r\n    private sortings: SortingType[];\r\n    private pagination: IPagination;\r\n    private response: SearchResultDocument[];\r\n    private linkedDocuments: ILinkWithDocument[];\r\n    private myBlockUI: any;\r\n    private statuses: any[];\r\n\r\n    constructor(private $filter: ng.IFilterService, \r\n        private solarService: SolarRestService, \r\n        private linkedDocumentService: LinkedDocumentService,\r\n         private $timeout: ng.ITimeoutService, \r\n         private toastr: Toastr, \r\n         private blockUI: any, \r\n         private documentLinkRestService: DocumentLinkRestService, \r\n         private nsiRestService: NsiRestService, \r\n         private $q: ng.IQService) {\r\n\r\n    }\r\n\r\n    $onDestroy() {\r\n        this.myBlockUI.reset();\r\n    }\r\n\r\n    $onInit() {\r\n        this.myBlockUI = this.blockUI.instances.get('searchCandidateEditor');\r\n        this.chapters.forEach(ch => {\r\n            if (ch.children) {\r\n                ch.children.forEach(c => {\r\n                    let _ch = angular.copy(c);\r\n                    angular.extend(_ch, {\r\n                        parentName: ch.name\r\n                    });\r\n                    this.groupedChapters.push(_ch);\r\n                });\r\n            }\r\n        });\r\n    }\r\n\r\n    findLinkedDocumentById(id): ILinkWithDocument {\r\n        let result = null;\r\n        this.linkedDocuments.forEach(l => {\r\n            if (l.document.documentID === id) {\r\n                result = l;\r\n            }\r\n        });\r\n\r\n        return result;\r\n    }\r\n\r\n    find() {\r\n        this.searchParams.searchType = \"common\";\r\n        this.searchParams.documentType = \"\";\r\n        this.searchParams.documentNumber = \"\";\r\n        this.searchParams.documentDate.startDate = null;\r\n        this.searchParams.documentDate.endDate = null;\r\n        this.onFind();\r\n    }\r\n\r\n    search() {\r\n        this.searchParams.searchType = \"ext\";\r\n        this.searchParams.search = \"\";\r\n        this.pagination.currentPage = 1;\r\n        this.sortings = [\r\n            new SortingType('documentDate', 'desc', 'по дате'),\r\n            new SortingType('documentNumber', 'desc', 'по номеру')\r\n        ];\r\n        this.onFind();\r\n    }\r\n\r\n    sortingsToString(): string {\r\n        let result = \"\";\r\n\r\n        this.sortings.forEach((s, i) => {\r\n            result += s.name + ' ' + s.value;\r\n            if (i < this.sortings.length - 1) {\r\n                result += \",\";\r\n            }\r\n        });\r\n\r\n        return result;\r\n    }\r\n\r\n\r\n    onPaginationChange() {\r\n        this.onFind();\r\n    }\r\n\r\n    onSortingChange() {\r\n        this.onFind();\r\n    }\r\n\r\n    onFilterChanged() {\r\n        this.searchParams.search = \"\";\r\n        this.pagination.currentPage = 1;\r\n        this.sortings = [\r\n            new SortingType('documentDate', 'desc', 'по дате'),\r\n            new SortingType('documentNumber', 'desc', 'по номеру')\r\n        ];\r\n        this.onFind();\r\n    }\r\n\r\n    addLink(link: any) {\r\n        this.myBlockUI.start();\r\n        this.documentLinkRestService.create(link).then(response => {\r\n            this.myBlockUI.stop();\r\n            this.toastr.success(\"Связь успешно добавлена!\", \"Успех\");\r\n            this.onUpdate();\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n            this.toastr.error(\"Ошибка при добавлении связи!\", \"Ошибка\");\r\n        });\r\n    }\r\n\r\n    addLinks(links: any[]) {\r\n        let promises: ng.IPromise<any>[] = [];\r\n        links.forEach(l => {\r\n            promises.push(this.documentLinkRestService.create(l));\r\n        });\r\n\r\n        this.myBlockUI.start();\r\n        this.$q.all(promises).then(response => {\r\n            this.myBlockUI.stop();\r\n            this.onUpdate();\r\n            this.toastr.success(\"Тип выделенных связей успешно изменён!\", \"Успех\");\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n            this.toastr.error(\"Ошибка при изменении типа выделенных связей!\", \"Ошибка\");\r\n        });\r\n    }\r\n}\r\n\r\nexport const SearchCandidatesComponent: angular.IComponentOptions = {\r\n    controller: SearchCandidatesController,\r\n    template: require('./search-candidates.html'),\r\n    bindings: {\r\n        document: \"<\",\r\n        chapters: \"<\",\r\n        onUpdate: \"&\",\r\n        onFind: \"&\",\r\n        linkedDocuments: \"<\",\r\n        linkdocStatuses: \"<\",\r\n        linkdocTypes: \"<\",\r\n        searchParams: \"<\",\r\n        sortings: \"<\",\r\n        pagination: \"<\",\r\n        response: \"<\",\r\n        statuses: \"<\"\r\n    }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/linkedDocuments/search-candidates.ts","module.exports = \"<div class=\\\"searchCandidateEditor m-t-lg\\\" block-ui=searchCandidateEditor> <h4>Параметры поиска:</h4> <search-filter statuses=$ctrl.statuses grouped-chapters=$ctrl.groupedChapters params=$ctrl.searchParams on-find=$ctrl.find() on-search=$ctrl.search()></search-filter> <h4>Результаты поиска:</h4> <div class=container-fluid> <div class=\\\"row m-b-md\\\"> <span style=margin-right:15px>Найдено — {{$ctrl.pagination.totalItems}}</span> </div> </div> <div class=container-fluid ng-if=\\\"$ctrl.response.length > 0\\\"> <div class=row> <search-result on-add-links=$ctrl.addLinks(links) on-add-link=$ctrl.addLink(link) document=$ctrl.document linkdoc-types=$ctrl.linkdocTypes linkdoc-statuses=$ctrl.linkdocStatuses sortings=$ctrl.sortings on-sortings-changed=$ctrl.onSortingChange() chapters=$ctrl.chapters doc-types=$ctrl.docTypes documents=$ctrl.response></search-result> </div> </div> <div class=container-fluid ng-if=\\\"$ctrl.response.length > 0\\\"> <div class=row> <search-pagination data=$ctrl.pagination on-change=$ctrl.onPaginationChange()></search-pagination> </div> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/linkedDocuments/search-candidates.html\n// module id = 97\n// module chunks = 0","export interface ISearchParams {\r\n  search: string;\r\n  documentType: string;\r\n  documentNumber: string;\r\n  documentDate: any\r\n  searchType: string; // common, ext\r\n  docStatuse: any;\r\n}\r\n\r\nclass SearchFilterController {\r\n  private params: ISearchParams;\r\n  private onFind: () => void;\r\n  private onSearch: () => void;\r\n  private statuses: any[];\r\n  private groupedChapters: any[];\r\n\r\n  search() {\r\n    this.onSearch();\r\n  }\r\n\r\n  find() {\r\n    this.onFind();\r\n  }\r\n}\r\n\r\nexport const SearchFilterComponent: angular.IComponentOptions = {\r\n  controller: SearchFilterController,\r\n  template: require('./search-filter.html'),\r\n  bindings: {\r\n    params: \"<\",\r\n    onFind: \"&\",\r\n    onSearch: \"&\",\r\n    groupedChapters: \"<\",\r\n    statuses: \"<\"\r\n  }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/linkedDocuments/search-filter.ts","module.exports = \"<div class=\\\"clearfix m-b-xs\\\"> <div class=col-sm-3 style=text-align:right>Найти:</div> <div class=col-sm-9> <div class=input-group> <input style=text-align:left type=text ng-enter=$ctrl.find() class=form-control ng-model=$ctrl.params.search placeholder=\\\"Адрес, номер или дата документа ...\\\"> <span class=input-group-btn><button ng-disabled=\\\"$ctrl.params.search.length < 3\\\" class=\\\"btn btn-primary\\\" ng-click=$ctrl.find() type=button>Найти</button></span> </div> </div> </div> <div class=\\\"clearfix m-b-xs\\\"> <div class=col-sm-3 style=text-align:right><b>Расширенный поиск:</b></div> <div class=col-sm-9> </div> </div> <div class=\\\"clearfix m-b-xs\\\"> <div class=col-sm-3 style=text-align:right>Тип документа:</div> <div class=col-sm-9> <select class=form-control style=width:100% ng-model=$ctrl.params.documentType ng-options=\\\"ch.chapterCode as ch.name group by ch.parentName for ch in $ctrl.groupedChapters\\\"></select> </div> </div> <div class=\\\"clearfix m-b-xs\\\"> <div class=col-sm-3 style=text-align:right>Номер документа:</div> <div class=col-sm-9> <input class=form-control ng-model=$ctrl.params.documentNumber style=width:100%> </div> </div> <div class=\\\"clearfix m-b-xs\\\"> <div class=col-sm-3 style=text-align:right>Дата документа:</div> <div class=col-sm-9> <date-range-selector model-from=$ctrl.params.documentDate.startDate model-to=$ctrl.params.documentDate.endDate my-width=450 /> </div> </div> <div class=\\\"clearfix m-b-xs\\\"> <div class=col-sm-3 style=text-align:right>Статус действия документа</div> <div class=col-md-9> <ui-select ng-model=$ctrl.params.docStatuse theme=bootstrap> <ui-select-match>{{$select.selected.statusName}}</ui-select-match> <ui-select-choices repeat=\\\"status in $ctrl.statuses | filter: $select.search\\\"> <span style=font-size:13px title={{status.statusName}} ng-bind-html=\\\"status.statusName | highlight: $select.search\\\"></span> </ui-select-choices> </ui-select> </div> </div> <div class=\\\"clearfix m-b-xs\\\"> <div class=col-sm-3 style=text-align:right></div> <div class=col-sm-9> <button class=\\\"btn btn-primary\\\" ng-click=$ctrl.search()>Найти</button> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/linkedDocuments/search-filter.html\n// module id = 99\n// module chunks = 0","export interface IPagination {\r\n  currentPage: number;\r\n  totalItems: number;\r\n  disable: boolean;\r\n}\r\n\r\nclass SearchPaginationController {\r\n  data: IPagination;\r\n  onChange: () => void;\r\n  onPaginationChange() {\r\n    this.onChange();\r\n  }\r\n}\r\n\r\nexport const SearchPaginationComponent: angular.IComponentOptions = {\r\n  controller: SearchPaginationController,\r\n  template: require('./search-pagination.html'),\r\n  bindings: {\r\n    data: '<',\r\n    onChange: '&'\r\n  }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/linkedDocuments/search-pagination.ts","module.exports = \"<ul uib-pagination rotate=true previous-text=Предыдущая items-per-page=20 next-text=Следующая max-size=3 total-items=$ctrl.data.totalItems ng-model=$ctrl.data.currentPage ng-disabled=$ctrl.data.disable boundary-link-numbers=true ng-change=$ctrl.onPaginationChange()></ul>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/linkedDocuments/search-pagination.html\n// module id = 101\n// module chunks = 0","import { DocumentLinkRestService, IDocumentLink } from 'isogd-document-link-rest';\r\nimport { SolarRestService } from 'isogd-solar-rest';\r\nimport * as _ from 'lodash';\r\nimport { SearchResult } from 'isogd-solar-rest';\r\nimport { SearchResultDocument } from 'isogd-solar-rest';\r\nimport { SearchResultDocumentEx } from './search-candidates';\r\nimport { SearchExtData } from 'isogd-solar-rest';\r\nimport { SortingType } from './search-result-sorting';\r\nimport { LinkedDocumentService } from '../../services/LinkedDocumentService';\r\nimport { DocumentIsogd, DocumentRestService } from 'isogd-document-rest';\r\nimport { NsiRestService } from 'oasi-nsi-rest';\r\n\r\nclass SearchResultController {\r\n  static $inject = ['$filter',\r\n    'solarRestService',\r\n    'linkedDocumentService',\r\n    '$timeout',\r\n    'toastr',\r\n    'blockUI',\r\n    'documentLinkRestService',\r\n    'documentRestService',\r\n    '$q',\r\n    'nsiRestService'];\r\n\r\n  document: DocumentIsogd;\r\n  documents: SearchResultDocumentEx[];\r\n  docTypes: any[];\r\n  chapters: any[];\r\n  statuses: any[];\r\n  sortings: SortingType[];\r\n  onSortingsChanged: (params: any) => void;\r\n  count = 0;\r\n  private linkdocTypes: any[];\r\n  private linkdocStatuses: any[];\r\n\r\n  onAddLink: (link: any) => void;\r\n  onAddLinks: (links: any) => void;\r\n\r\n  private disabledAll: boolean = true;\r\n  private allLinkType: string = \"\";\r\n  private allLinkStatus: string = \"\";\r\n\r\n  constructor(private $filter: ng.IFilterService, \r\n    private solarService: SolarRestService, \r\n    private linkedDocumentService: LinkedDocumentService, \r\n    private $timeout: ng.ITimeoutService, \r\n    private toastr: Toastr, \r\n    private blockUI: any, \r\n    private documentLinkRestService: DocumentLinkRestService, \r\n    private documentRestService: DocumentRestService, \r\n    private $q: ng.IQService, \r\n    private nsiRestService: NsiRestService) {\r\n  }\r\n\r\n  clear() {\r\n    this.disabledAll = true;\r\n    this.allLinkType = \"\";\r\n    this.allLinkStatus = \"\";\r\n  }\r\n\r\n  $onChanges(changes: any) {\r\n    if (changes.documents && changes.documents.currentValue) {\r\n      this.clear();\r\n    }\r\n  }\r\n\r\n  getRegOgd(document: SearchResultDocument): string {\r\n    let result: string = \"\";\r\n\r\n    if (document && document.registrationNumber) {\r\n      result += \"Регистрация в ИАИС ОГД — \";\r\n      result += document.registrationNumber;\r\n      if (document && document.registrationDate) {\r\n        result += \" от \";\r\n        result += this.$filter('date')(document.registrationDate, 'dd.MM.yyyy');\r\n      }\r\n    }\r\n\r\n    return result;\r\n  }\r\n\r\n  getCad(document: SearchResultDocument): string {\r\n    let result: string = \"\";\r\n\r\n    if (document && document.cadastralNumbers && document.cadastralNumbers.length > 0) {\r\n      document.cadastralNumbers.forEach((d, i) => {\r\n        result += d;\r\n        if (i < document.cadastralNumbers.length - 1) {\r\n          result += \", \";\r\n        }\r\n      });\r\n    }\r\n\r\n    return result;\r\n  }\r\n\r\n  getFirstString(document: SearchResultDocument): string {\r\n    let result: string = \"\";\r\n\r\n    result += this.findDocShortName(document);\r\n    result += \" № \";\r\n    result += document.documentNumber;\r\n    if (document && document.documentDate) {\r\n      result += \" от \";\r\n      result += this.$filter('date')(document.documentDate, 'dd.MM.yyyy');\r\n    }\r\n\r\n    return result;\r\n  }\r\n\r\n  findDocShortName(document: SearchResultDocument): string {\r\n    let result: string = \"\";\r\n    this.docTypes.forEach(d => {\r\n      if (d.docCode === document.documentType) {\r\n        result = (d.docNameShort) ? d.docNameShort : \"\";\r\n      }\r\n    });\r\n    return result;\r\n  }\r\n\r\n  getAddress(document: SearchResultDocument): string {\r\n    let result: string = '';\r\n\r\n    if (document && document.objectAddress) {\r\n      result += document.objectAddress;\r\n    } else if (document && document.postAddress) {\r\n      result += document.postAddress;\r\n    }\r\n\r\n    let areaName = '';\r\n\r\n    if (document && document.areaNames && document.areaNames.length > 0) {\r\n      areaName = document.areaNames[0];\r\n    }\r\n\r\n    let districtName = '';\r\n\r\n    if (document && document.districtNames && document.districtNames.length > 0) {\r\n      districtName = document.districtNames[0];\r\n    }\r\n\r\n    let secondPart = '';\r\n\r\n    if (areaName) {\r\n      secondPart += areaName;\r\n    }\r\n\r\n    if (districtName) {\r\n      secondPart += (areaName) ? ', ' : '';\r\n      secondPart += districtName;\r\n    }\r\n\r\n    if (result !== \"\") {\r\n      if (secondPart) {\r\n        secondPart = ' (' + secondPart + ')';\r\n      }\r\n    }\r\n\r\n    result += secondPart;\r\n    console.log(\"address\");\r\n    return result;\r\n  }\r\n\r\n  change(sorting: SortingType) {\r\n    this.update(sorting.name);\r\n    this.onSortingsChanged({ sorting: sorting });\r\n  }\r\n\r\n  private update(columnName: string) {\r\n    this.sortings.forEach(v => {\r\n      if (v.name === columnName) {\r\n        switch (v.value) {\r\n          case 'desc':\r\n            v.value = 'asc';\r\n            break;\r\n          default:\r\n            v.value = 'desc';\r\n            break;\r\n        }\r\n      }\r\n    });\r\n  }\r\n\r\n  addLink(d: SearchResultDocumentEx, index: number) {\r\n    this.onAddLink({\r\n      link: {\r\n        doc1Id: this.document.documentID,\r\n        doc2Id: d.documentId,\r\n        linkType: d.linkType,\r\n        status: d.linkStatus\r\n      }\r\n    });\r\n  }\r\n\r\n  getLinkStatusNameByCode(code: string): string {\r\n    let result: string = \"\";\r\n\r\n    this.linkdocStatuses.forEach(s => {\r\n      if (s.code === code) {\r\n        result = s.name;\r\n      }\r\n    });\r\n\r\n    return result;\r\n  }\r\n\r\n  getLinkTypeNameByCode(code: string): string {\r\n    let result: string = \"\";\r\n\r\n    this.linkdocTypes.forEach(s => {\r\n      if (s.code === code) {\r\n        result = s.name;\r\n      }\r\n    });\r\n\r\n    return result;\r\n  }\r\n\r\n  changeSelection() {\r\n    let selectAll = true;\r\n    let anyChecked = false;\r\n    this.documents.forEach(l => {\r\n      if (l.checked === false) {\r\n        selectAll = false;\r\n      }\r\n      if (l.checked === true) {\r\n        anyChecked = true;\r\n      }\r\n    });\r\n\r\n    this.disabledAll = !anyChecked;\r\n  }\r\n\r\n  changeSelectedLinkType() {\r\n    this.documents.forEach(l => {\r\n      if (l.checked === true) {\r\n        l.linkType = this.allLinkType;\r\n      }\r\n    });\r\n  }\r\n\r\n  changeSelectedLinkStatus() {\r\n    this.documents.forEach(l => {\r\n      if (l.checked === true) {\r\n        l.linkStatus = this.allLinkStatus;\r\n      }\r\n    });\r\n  }\r\n\r\n  addSelectedLink() {\r\n    let links: any[] = [];\r\n\r\n    this.documents.forEach(l => {\r\n      if (l.checked === true) {\r\n        links.push({\r\n          doc1Id: this.document.documentID,\r\n          doc2Id: l.documentId,\r\n          linkType: l.linkType,\r\n          status: l.linkStatus\r\n        })\r\n      }\r\n    });\r\n\r\n    this.onAddLinks({ links: links });\r\n  }\r\n}\r\n\r\nexport const SearchResultComponent: angular.IComponentOptions = {\r\n  controller: SearchResultController,\r\n  template: require('./search-result.html'),\r\n  bindings: {\r\n    document: '<',\r\n    documents: '<',\r\n    docTypes: '<',\r\n    chapters: '<',\r\n    statuses: '<',\r\n    sortings: '<',\r\n    onSortingsChanged: '&',\r\n    linkdocStatuses: \"<\",\r\n    linkdocTypes: \"<\",\r\n    onAddLink: \"&\",\r\n    onAddLinks: \"&\"\r\n  }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/linkedDocuments/search-result.ts","module.exports = \"<table class=\\\"table search-result-table\\\" style=font-size:14px;color:#676a6c> <thead> <tr style=\\\"border-top:1px solid #f0f0f0;font-weight:600\\\"> <th></th> <th style=width:15%;font-weight:600>Тип документа</th> <th style=width:8%;font-weight:500> <span class=\\\"m-r-sm sorting\\\" style=margin-right:5px> <a ng-if=\\\"$ctrl.sortings[0].value === 'none'\\\" ng-class=\\\"{'sorting-inactive-a': $ctrl.sortings[0].value === 'none'}\\\" ng-click=$ctrl.change($ctrl.sortings[0])>Дата</a> <a ng-if=\\\"$ctrl.sortings[0].value === 'asc'\\\" class=filter-sorter__link_asc ng-class=\\\"{'sorting-inactive-a': $ctrl.sortings[0].value === 'none'}\\\" ng-click=$ctrl.change($ctrl.sortings[0])>Дата</a> <a ng-if=\\\"$ctrl.sortings[0].value === 'desc'\\\" class=filter-sorter__link_desc ng-class=\\\"{'sorting-inactive-a': $ctrl.sortings[0].value === 'none'}\\\" ng-click=$ctrl.change($ctrl.sortings[0])>Дата</a> </span> </th> <th style=width:15%;font-weight:500> <span class=\\\"m-r-sm sorting\\\" style=margin-right:5px> <a ng-if=\\\"$ctrl.sortings[1].value === 'none'\\\" ng-class=\\\"{'sorting-inactive-a': $ctrl.sortings[1].value === 'none'}\\\" ng-click=$ctrl.change($ctrl.sortings[1])>Номер</a> <a ng-if=\\\"$ctrl.sortings[1].value === 'asc'\\\" class=filter-sorter__link_asc ng-class=\\\"{'sorting-inactive-a': $ctrl.sortings[1].value === 'none'}\\\" ng-click=$ctrl.change($ctrl.sortings[1])>Номер</a> <a ng-if=\\\"$ctrl.sortings[1].value === 'desc'\\\" class=filter-sorter__link_desc ng-class=\\\"{'sorting-inactive-a': $ctrl.sortings[1].value === 'none'}\\\" ng-click=$ctrl.change($ctrl.sortings[1])>Номер</a> </span> </th> <th style=font-weight:600>Содержание</th> <th>Тип связи</th> <th>Статус связи</th> <th></th> </tr> </thead> <tbody> <tr style=background-color:#f5f5f5> <td> </td> <td></td> <td> </td> <td> </td> <td> </td> <td> <select title=\\\"Изменение типа связей выбранных документов\\\" ng-disabled=$ctrl.disabledAll class=form-control ng-model=$ctrl.allLinkType ng-change=$ctrl.changeSelectedLinkType()> <option ng-repeat=\\\"lt in $ctrl.linkdocTypes\\\" value={{lt.code}}>{{lt.name}}</option> </select> </td> <td> <select title=\\\"Изменение статусов связей выбранных документов\\\" ng-disabled=$ctrl.disabledAll class=form-control ng-model=$ctrl.allLinkStatus ng-change=$ctrl.changeSelectedLinkStatus()> <option ng-repeat=\\\"lt in $ctrl.linkdocStatuses\\\" value={{lt.code}}>{{lt.name}}</option> </select> </td> <td> <button ng-disabled=$ctrl.disabledAll type=button ng-click=$ctrl.addSelectedLink() title=\\\"Привязать выбранные документы\\\" class=\\\"btn btn-default\\\"><i class=\\\"fa fa-chain text-primary\\\" aria-hidden=true></i></button> </td> </tr> <tr ng-repeat=\\\"d in $ctrl.documents track by d.documentId\\\"> <td> <label ng-if=!d.hasLink style=margin-bottom:0> <input ng-cloak icheck class=icheckbox_square-green type=checkbox ng-model=d.checked ng-change=$ctrl.changeSelection()> </label> </td> <td style=white-space:pre-wrap ng-init=\\\"name = $ctrl.linkedDocumentService.findChapterByCode($ctrl.chapters, d.reestr)\\\">{{name}}</td> <td>{{d.documentDate | date: 'MM.dd.yyyy'}} </td> <td> <a ng-class=\\\"{'red-link': d.documentStatusCode === 'CANCELED'}\\\" ui-sref=\\\"app.isogd.card({id: d.documentId})\\\">{{d.documentNumber}}</a> </td> <td> <div style=font-weight:600;margin-bottom:5px ng-if=d.documentName>{{d.documentName}}</div> <div ng-init=\\\"address = $ctrl.getAddress(d)\\\"> <div style=font-weight:600;margin-bottom:5px ng-if=address>{{address}}</div> </div> <div ng-if=d.objectName> <div style=margin-bottom:5px> {{d.objectName}} </div> </div> <div ng-init=\\\"cad = $ctrl.getCad(d)\\\"> <div style=margin-bottom:5px> <div ng-if=cad>{{cad}}</div> </div> </div> </td> <td style=width:150px> <select ng-if=!d.hasLink class=form-control ng-model=d.linkType> <option ng-repeat=\\\"lt in $ctrl.linkdocTypes\\\" value={{lt.code}}>{{lt.name}}</option> </select> <span ng-if=d.hasLink>{{$ctrl.getLinkTypeNameByCode(d.linkType)}}</span> </td> <td style=width:180px> <select ng-if=!d.hasLink class=form-control ng-model=d.linkStatus> <option ng-repeat=\\\"lt in $ctrl.linkdocStatuses\\\" value={{lt.code}}>{{lt.name}}</option> </select> <span ng-if=d.hasLink>{{$ctrl.getLinkStatusNameByCode(d.linkStatus)}}</span> </td> <td> <button ng-if=!d.hasLink type=button ng-click=\\\"$ctrl.addLink(d, $index)\\\" title=Привязать class=\\\"btn btn-default\\\"><i class=\\\"fa fa-chain text-primary\\\" aria-hidden=true></i></button> <span ng-if=d.hasLink> <span ng-if=\\\"d.linkStatus === 'approve'\\\" class=text-success><i class=\\\"fa fa-check\\\" aria-hidden=true></i></span> <span ng-if=\\\"d.linkStatus === 'review'\\\" class=text-warning><i class=\\\"fa fa-clock-o\\\" aria-hidden=true></i></span> <span ng-if=\\\"d.linkStatus === 'reject'\\\" class=text-danger><i class=\\\"fa fa-times\\\" aria-hidden=true></i></span> </span> </td> </tr> </tbody> </table>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/linkedDocuments/search-result.html\n// module id = 103\n// module chunks = 0","export class FileService {\r\n  static $inject = ['$q'];\r\n\r\n  constructor(private $q: ng.IQService) {\r\n  }\r\n \r\n  getContentFromBlobAsBinaryString(blob: Blob): ng.IPromise<any> {\r\n    let deferred = this.$q.defer();\r\n\r\n    if (!FileReader.prototype.readAsBinaryString) {\r\n      FileReader.prototype.readAsBinaryString = function (fileData) {\r\n        var binary = \"\";\r\n        var pt = this;\r\n        var reader = new FileReader();\r\n        reader.onload = function (e) {\r\n          var bytes = new Uint8Array(reader.result);\r\n          var length = bytes.byteLength;\r\n          for (var i = 0; i < length; i++) {\r\n            binary += String.fromCharCode(bytes[i]);\r\n          }\r\n          pt.content = binary;\r\n          $(pt).trigger('onload');\r\n        };\r\n\r\n        reader.readAsArrayBuffer(fileData);\r\n      };\r\n    }\r\n\r\n    let fileReader = new FileReader();\r\n\r\n    fileReader.onload = function (e: any) {\r\n      let data = (!e) ? (<any>this).content : e.target.result;\r\n      deferred.resolve(data);\r\n    };\r\n\r\n    fileReader.onerror = function (error) {\r\n      deferred.reject(error);\r\n    };\r\n\r\n    fileReader.readAsBinaryString(blob);\r\n\r\n    return deferred.promise;\r\n  }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/services/FileService.ts","class CertificateInfoController {\r\n    private ngModel: any;\r\n    subject: string;\r\n\r\n    $onInit() {\r\n        this.subject = (this.ngModel.lastName !== '' || this.ngModel.firstName !== '') ? \r\n            this.ngModel.lastName + ' ' + this.ngModel.firstName: \r\n            this.ngModel.subject;\r\n\r\n        this.subject = this.subject.trim();\r\n    }\r\n}\r\n\r\nexport const CertificateInfoComponent: angular.IComponentOptions = {\r\n    controller: CertificateInfoController,\r\n    template: require('./certificateInfo.html'),\r\n    bindings: {\r\n        ngModel: '<'\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/files/folder-tree/certificateInfo.ts","module.exports = \"<p class=text-left>Владелец: <b>{{$ctrl.subject}}</b></p> <p class=text-left>Организация: <b>{{$ctrl.ngModel.organisation}}</b></p> <p class=text-left>Должность: <b>{{$ctrl.ngModel.position}}</b></p> <p class=text-left>Серийный номер: <b>{{$ctrl.ngModel.serialNumber}}</b></p> <p class=text-left>Издатель: <b>{{$ctrl.ngModel.issuer}}</b></p> <p class=text-left>Выдан: <b>{{$ctrl.ngModel.from}}</b>&nbsp;&nbsp;Действителен до: <b>{{$ctrl.ngModel.till}}</b></p> <p class=text-left>Криптопровайдер: <b>{{$ctrl.ngModel.provname}}</b></p> <p class=text-left>Алгоритм ключа: <b>{{$ctrl.ngModel.algorithm}}</b></p>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/files/folder-tree/certificateInfo.html\n// module id = 106\n// module chunks = 0","import * as angular from \"angular\";\r\nimport { IFileInfo, FileRestService } from 'isogd-file-rest';\r\n\r\nclass FileController {\r\n    fileInfo: IFileInfo;\r\n    onOpen: (args: any) => void;\r\n    notOpenable: boolean;\r\n    fileExtension: string;\r\n    fileSize: string;\r\n    fileName: string;\r\n    myBlockUI: any;\r\n    availableExtensions: string[] = ['csv', 'doc', 'docx', 'dwg', 'jpg', 'jpeg', 'pdf', 'png', 'rar', 'sig', 'tiff', 'tif', 'txt', 'xml', 'zip'];\r\n    folderId: string;\r\n    editor: boolean;\r\n    isOld: boolean;\r\n    deletable: boolean;\r\n    static $inject = ['fileRestService', 'toastr', '$uibModal', 'blockUI', '$state'];\r\n\r\n    constructor(private fileRestService: FileRestService,\r\n        private toastr: Toastr,\r\n        private $uibModal: angular.ui.bootstrap.IModalService,\r\n        private blockUI: any,\r\n        private $state: ng.ui.IStateService) {\r\n    }\r\n    $onInit() {\r\n        this.myBlockUI = this.blockUI.instances.get('folderLoad');\r\n        this.fileExtension = this.fileInfo.fileName.split('.').pop().toLowerCase();\r\n        this.fileName = this.removeExtension(this.fileInfo.fileName);\r\n        let correctExtension = false;\r\n        this.availableExtensions.forEach(ex => {\r\n            if (ex === this.fileExtension) {\r\n                correctExtension = true;\r\n            }\r\n        });\r\n\r\n        if (!correctExtension) {\r\n            this.fileExtension = 'unknown';\r\n        }\r\n\r\n        let sizeKB = this.fileInfo.contentLength / 1024.0;\r\n        let isKB = (sizeKB < 1024.0) ? true : false;\r\n        this.fileSize = (isKB) ? sizeKB.toFixed(1).toString() + ' Кб' : (sizeKB / 1024.0).toFixed(2).toString() + ' Мб';\r\n    }\r\n\r\n    $onDestroy() {\r\n        this.myBlockUI.reset();\r\n    }\r\n\r\n    removeExtension(filename: string): string {\r\n        var lastDotPosition = filename.lastIndexOf('.');\r\n        if (lastDotPosition === -1) {\r\n            return filename;\r\n        } else {\r\n            return filename.substr(0, lastDotPosition);\r\n        }\r\n    }\r\n\r\n    openFile(id: string) {\r\n        this.openFileInNewWindow(id);\r\n    }\r\n\r\n    open(id: string) {\r\n        this.openFileInNewWindow(id);\r\n    }\r\n\r\n    openFileInNewWindow(id: string) {\r\n        let url;\r\n        if (!this.isOld) {\r\n            url = `isogd-api/v2/files/view/${id}`;\r\n        } else {\r\n            url = `isogd-oldsystem-rest/v1/files/${id}/view`;\r\n        }\r\n        window.open(url, '_blank');\r\n    }\r\n\r\n    delete(id: string) {\r\n        let modalInstance = this.$uibModal.open({\r\n            template: require('../../common/confirmation.html'),\r\n            controller: 'ConfirmController as ctrl',\r\n            size: \"md\",\r\n            backdrop: 'static',\r\n            keyboard: false,\r\n            windowClass: \"delete-file-modal\",\r\n            resolve: {\r\n                title: () => { return \"Удаление файла\" },\r\n                message: () => { return \"Удалить файл '\" + this.fileInfo.fileName + \"' из FileNet?\" },\r\n                btnOk: () => { return \"Удалить\" }\r\n            }\r\n        });\r\n        modalInstance.result.then((result: any) => {\r\n            this.myBlockUI.start();\r\n            this.fileRestService.deleteFile(this.fileInfo.fileId).then(response => {\r\n                this.toastr.success(\"Файл '\" + this.fileInfo.fileName + \"' успешно удален\");\r\n                this.$state.reload();\r\n                this.myBlockUI.stop();\r\n            }).catch(error => {\r\n                this.toastr.error(\"Ошибка при удалении файла!\");\r\n                this.myBlockUI.stop();\r\n            });\r\n        }).catch(error => {\r\n\r\n        });\r\n    }\r\n\r\n    sign() {\r\n        let modalInstance = this.$uibModal.open({\r\n            template: require('./signFile.html'),\r\n            controller: 'SignFileController as ctrl',\r\n            backdrop: 'static',\r\n            keyboard: false,\r\n            size: \"md\",\r\n            resolve: {\r\n                fileInfo: this.fileInfo,\r\n                folderGuid: () => { return this.folderId; }\r\n            }\r\n        });\r\n\r\n        modalInstance.result.then((result: any) => {\r\n            if (result.error === null) {\r\n                this.toastr.success(\"Время подписания: \" + result.result.time + \" мс.\", \"Файл \" + this.fileInfo.fileName + \" подписан.\");\r\n                this.$state.reload();\r\n\r\n            } else {\r\n                this.toastr.error(\"Ошибка при подписании файла: \" + result.error.message);\r\n                this.$state.reload();\r\n            }\r\n        });\r\n    }\r\n    verify() {\r\n        let modalInstance = this.$uibModal.open({\r\n            template: require('./verify.html'),\r\n            controller: 'VerifyController as ctrl',\r\n            size: \"md\",\r\n            backdrop: 'static',\r\n            keyboard: false,\r\n            resolve: {\r\n                fileInfo: this.fileInfo\r\n            }\r\n        });\r\n        modalInstance.result.then((result: any) => {\r\n\r\n        }).catch(error => {\r\n\r\n        });\r\n    }\r\n\r\n    uploadSign(files: File[]) {\r\n        if (files && files.length) {\r\n            if (files.length > 1) {\r\n                this.toastr.error('Допустимое число файлов: ' + 1);\r\n                return;\r\n            } else {\r\n                let fileExtension = files[0].name.split('.').pop();\r\n                if (fileExtension !== \"sig\") {\r\n                    this.toastr.error('Допустимые расширения файлов: .sig');\r\n                    return;\r\n                } else {\r\n                    var fd = new FormData();\r\n                    var _file = files[0];\r\n                    fd.append('signature', _file);\r\n                    this.fileRestService.handleFileUploadWithSign(this.fileInfo.fileId, fd).then(resp => {\r\n                        this.toastr.success('Подпись успешно добавлена к файлу!');\r\n                        this.$state.reload();\r\n                        this.fileInfo.signed = true;\r\n                    }).catch(resp => {\r\n                        this.toastr.error('Ошибка при добавлении подписи к файлу!');\r\n                        this.fileInfo.signed = false;\r\n                    });\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\nexport const file: angular.IComponentOptions = {\r\n    controller: FileController,\r\n    template: require('./file.html'),\r\n    bindings: {\r\n        fileInfo: '<',\r\n        onOpen: '&',\r\n        folderId: \"<\",\r\n        editor: '<',\r\n        isOld: '<',\r\n        notOpenable: '<?',\r\n        deletable: '<?'\r\n    }\r\n};\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/files/folder-tree/file.ts","module.exports = \"<div class=inmodal style=backface-visibility:hidden> <div class=modal-header> <h3 class=modal-title>Подписать файл</h3> </div> <div class=modal-body> <form name=form class=form-horizontal> <div class=ex-provInfo> <p class=text-center> <i ng-show=\\\"ctrl.state === 'danger'\\\" class=\\\"fa fa-exclamation-circle text-danger\\\" aria-hidden=true></i> <i ng-show=\\\"ctrl.state === 'success'\\\" class=\\\"fa fa-check-circle text-success\\\" aria-hidden=true></i> &nbsp;{{ctrl.stateValue}}&nbsp;&nbsp; <span ng-show=\\\"ctrl.state === 'success'\\\">Версия плагина: {{ctrl.pluginInfo.version}}</span> </p> <p ng-show=\\\"ctrl.state === 'success'\\\" class=text-center>Криптопровайдер: {{ctrl.pluginInfo.crypto}}</p> <p ng-show=\\\"ctrl.state === 'success'\\\" class=text-center>Версия криптопровайдера: {{ctrl.pluginInfo.cryptoVersion}}</p> </div> <h3 ng-show=\\\"ctrl.state === 'success'\\\" style=margin-top:20px>Список сертификатов: </h3> <div ng-show=\\\"ctrl.state === 'success'\\\" class=ex-sertList> <select style=width:100%;resize:none;border:0 ng-show=\\\"ctrl.certificatesState === true\\\" class=form-control ng-model=ctrl.selectedCertificate ng-options=\\\"org as org.text for org in ctrl.certificates\\\" ng-change=ctrl.onChangeCertificate()> </select> </div> <div class=ex-sertInfo ng-show=\\\"ctrl.certificateInfoEx !== null\\\"> <h2 style=margin-top:0 class=text-left>Информация о сертификате</h2> <certificate-info ng-if=ctrl.certificateInfoEx ng-model=ctrl.certificateInfoEx></certificate-info> </div> </form> </div> <div class=modal-footer> <button ng-show=\\\"ctrl.state === 'success' && ctrl.certificates.length > 0 && ctrl.selectedCertificate !== null\\\" type=button ladda=ctrl.finishing data-spinner-size=18 data-spinner-color=#FFFFFF data-style=expand-right type=button class=\\\"btn btn-primary\\\" ng-click=ctrl.ok()> Подписать </button> <button type=button class=\\\"btn btn-white\\\" ng-click=ctrl.cancel()>Отмена</button> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/files/folder-tree/signFile.html\n// module id = 108\n// module chunks = 0","module.exports = \"<div class=inmodal style=backface-visibility:hidden> <div class=modal-header> <h3 class=modal-title>Проверка электронной подписи</h3> </div> <div class=modal-body style=background:#fff> <loading-block loading-status=ctrl.loading> <success> <div class=\\\"description description-sm\\\"> <dl class=\\\"dl-horizontal m-b-none\\\"> <dt><span>Файл</span></dt> <dd><a ng-href=isogd-api/v2/files/{{ctrl.fileInfo.fileId}}>{{ctrl.fileInfo.fileName}}</a></dd> <dt><span>Подпись</span></dt> <dd><a ng-href=isogd-api/v2/files/sign/{{ctrl.fileInfo.fileId}}>{{ctrl.fileInfo.fileName + \\\".sig\\\"}}</a></dd> <dt><span>Статус подписи</span></dt> <dd ng-show=\\\"ctrl.result.success === true\\\"><span class=\\\"label label-success\\\"><i class=\\\"fa fa-check\\\"></i> Подпись подтверждена</span></dd> <dd ng-show=\\\"ctrl.result.success === false\\\"><span class=\\\"label label-danger\\\"><i class=\\\"fa fa-times\\\"></i> Подпись не подтверждена</span></dd> </dl> <div class=ex-sertInfo-err ng-if=ctrl.result.errorMessage> <dl class=\\\"dl-horizontal m-b-none\\\"> <dt><span>Сообщение об ошибке</span></dt> <dd>{{ctrl.result.errorMessage}}</dd> </dl> </div> <div class=ex-sertInfo ng-repeat=\\\"r in ctrl.result.signaturesInfo\\\"> <dl class=\\\"dl-horizontal m-b-none\\\"> <dt><span>Дата подписи</span></dt> <dd>{{r.dateSign}}</dd> <dt><span>Серийный номер сертификата</span></dt> <dd><span style=white-space:pre-wrap>{{r.serialNumber}}</span></dd> <dt><span>Владелец сертификата</span></dt> <dd><span style=white-space:pre-wrap>{{r.subject}}</span></dd> <dt><span>Сертификат выдан</span></dt> <dd>{{r.issuer}}</dd> <dt><span>Срок действия сертификата</span></dt> <dd>с {{r.dateFrom}} по {{r.dateTo}}</dd> <dt ng-if=r.signatureTimeStampTime><span>Штамп времени</span></dt> <dd ng-if=r.signatureTimeStampTime>{{r.signatureTimeStampTime | date:'dd.MM.yyyy HH:mm'}}</dd> </dl> </div> </div> </success> <error> <span class=text-danger> <span class=\\\"fa fa-times-circle\\\"></span> <span> Ошибка при проверке электронной подписи</span> </span> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:45px> <spinner style=margin:5px type=\\\"'three-bounce'\\\"></spinner> </div> </div> </loading> </loading-block> </div> <div class=modal-footer> <button type=button class=\\\"btn btn-white\\\" ng-click=ctrl.cancel()>Закрыть</button> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/files/folder-tree/verify.html\n// module id = 109\n// module chunks = 0","module.exports = \"<div class=\\\"file col-lg-6 col-md-6 col-sm-12\\\"> <div class=fileIcon ng-switch=$ctrl.fileExtension> <div ng-switch-when=csv ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=csv-img></div> <div ng-switch-when=doc ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=doc-img></div> <div ng-switch-when=docx ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=docx-img></div> <div ng-switch-when=dwg ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=dwg-img></div> <div ng-switch-when=jpeg ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=jpeg-img></div> <div ng-switch-when=jpg ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=jpeg-img></div> <div ng-switch-when=pdf ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=pdf-img></div> <div ng-switch-when=png ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=png-img></div> <div ng-switch-when=ppt ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=ppt-img></div> <div ng-switch-when=pptx ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=pptx-img></div> <div ng-switch-when=rar ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=rar-img></div> <div ng-switch-when=sig ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=sig-img></div> <div ng-switch-when=tif ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=tif-img></div> <div ng-switch-when=tiff ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=tiff-img></div> <div ng-switch-when=txt ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=txt-img></div> <div ng-switch-when=xml ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=xml-img></div> <div ng-switch-when=zip ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=zip-img></div> <div ng-switch-default ng-click=$ctrl.openFile($ctrl.fileInfo.fileId) class=unknown-img></div> </div> <div class=\\\"fileName clearfix\\\" title={{$ctrl.fileInfo.fileName}}> <div class=fileName_name ng-click=$ctrl.openFile($ctrl.fileInfo.fileId)> <p data-ng-bind=$ctrl.fileInfo.fileName data-ellipsis></p> </div> <div class=fileName_size> <span>{{$ctrl.fileSize}}</span> </div> <div ng-if=$ctrl.fileInfo.signed class=fileName_sign_icon> <div class=certificate-img></div> </div> </div> <div class=fileInfo> <span ng-if=!$ctrl.notOpenable style=cursor:pointer;margin-right:5px><a ng-click=$ctrl.open($ctrl.fileInfo.fileId)>Открыть</a></span> <span ng-if=!$ctrl.isOld style=cursor:pointer;margin-right:5px><a ng-href=isogd-api/v2/files/{{$ctrl.fileInfo.fileId}} target=_blank>Скачать</a></span> <span ng-if=$ctrl.isOld style=cursor:pointer;margin-right:5px><a ng-href=isogd-oldsystem-rest/v1/files/{{$ctrl.fileInfo.fileId}}/download target=_blank>Скачать</a></span> <span ng-disabled=true style=cursor:pointer;margin-right:5px ng-if=$ctrl.fileInfo.signed><a ng-href=isogd-api/v2/files/sign/{{$ctrl.fileInfo.fileId}} target=_blank>Скачать ЭЦП</a></span> <span ng-disabled=true style=cursor:pointer;margin-right:5px ng-if=$ctrl.fileInfo.signed><a ng-click=$ctrl.verify()>Проверить ЭЦП</a></span> <span ng-if=$ctrl.editor style=cursor:pointer;margin-right:5px><a ng-click=$ctrl.sign()>Подписать</a></span> <span ng-if=$ctrl.editor style=cursor:pointer;margin-right:5px ng-show=\\\"$ctrl.fileInfo.signed !== true\\\"><a ngf-select=$ctrl.uploadSign($files)>Приложить ЭЦП</a></span> <span ng-if=\\\"$ctrl.editor || $ctrl.deletable\\\" style=cursor:pointer><a ng-click=$ctrl.delete($ctrl.fileInfo.fileId) class=\\\"fa fa-trash-o\\\"></a></span> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/files/folder-tree/file.html\n// module id = 110\n// module chunks = 0","import * as angular from \"angular\";\r\nimport { FolderInfo, FileRestService } from 'isogd-file-rest';\r\n\r\nclass FolderController {\r\n  folderInfo: FolderInfo;\r\n  onOpen: (args: any) => void;\r\n  myBlockUI: any;\r\n  editor: boolean;\r\n\r\n  static $inject = ['$state', 'fileRestService', 'blockUI', 'toastr'];\r\n  constructor(private $state: any, private fileRestService: FileRestService, private blockUI: any, private toastr: Toastr) {\r\n  }\r\n\r\n  $onInit() {\r\n    this.myBlockUI = this.blockUI.instances.get('folderLoad');\r\n  }\r\n\r\n  open(id: string) {\r\n    this.onOpen({ folderInfo: this.folderInfo });\r\n  }\r\n\r\n  $onDestroy() {\r\n    this.myBlockUI.reset();\r\n  }\r\n\r\n  changeVisibl() {\r\n    let hide: string = \"\";\r\n    let message: string = \"\";\r\n    if ((<any>this.folderInfo).hidden) {\r\n      hide = \"hide\";\r\n      message = \"Каталог скрыт на портале\";\r\n    } else {\r\n      hide = \"show\";\r\n      message = \"Каталог отображается на портале\";\r\n    }\r\n\r\n    this.fileRestService.hideFolder(this.folderInfo.folderId, hide).then(response => {\r\n      this.toastr.success(message);\r\n      this.$state.reload();\r\n    }).catch(error => {\r\n      this.toastr.success(\"Ошибка при изменении видимости каталога\");\r\n    });\r\n  }\r\n}\r\n\r\nexport const folder: angular.IComponentOptions = {\r\n  controller: FolderController,\r\n  template: require('./folder.html'),\r\n  bindings: {\r\n    folderInfo: '<',\r\n    onOpen: '&',\r\n    editor: '<'\r\n  }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/files/folder-tree/folder.ts","module.exports = \"<div class=\\\"folder col-lg-6 col-md-6 col-sm-12\\\" ng-click=$ctrl.open()> <div class=folderIcon> <div ng-class=\\\"{'hidden-folder': $ctrl.folderInfo.hidden}\\\" class=folder-img></div> </div> <div class=folderName title={{$ctrl.folderInfo.folderName}}> <p ng-class=\\\"{'hidden-folder-p': $ctrl.folderInfo.hidden}\\\" data-ng-bind=$ctrl.folderInfo.folderName data-ellipsis></p> </div> <div class=folderInfo> <span ng-if=\\\"$ctrl.folderInfo.files.length > 0\\\">Файлов: {{$ctrl.folderInfo.files.length}}&nbsp;</span> <span ng-if=$ctrl.editor>Скрыть: <input icheck ng-model=$ctrl.folderInfo.hidden ng-change=$ctrl.changeVisibl() id=checkBox type=checkbox></span> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/files/folder-tree/folder.html\n// module id = 112\n// module chunks = 0","import { FolderInfo, IFolderInfo, IFileInfo, FileRestService, FileOldSystemRestService } from 'isogd-file-rest';\r\nimport * as _ from \"lodash\";\r\nimport * as angular from \"angular\";\r\nimport { INavFolderInfo } from '../../../models/NavFolderInfo';\r\nimport { INavItem } from '../../../models/INavItem';\r\nimport { DocumentRestService } from 'isogd-document-rest';\r\n\r\nclass NavigatorController {\r\n  private folderInfo: FolderInfo;\r\n  private myBlockUI: any;\r\n  private document: any;\r\n  private registry: any;\r\n  private navFolderInfo: INavFolderInfo;\r\n  private selected: INavFolderInfo | IFileInfo;\r\n  private navigation: INavItem[] = [];\r\n  private fileIsOpened = false;\r\n  private fileContent: any;\r\n  private extPattern: string = \"\";\r\n  private extensions: string[];\r\n  private classFile: string;\r\n  private code: string;\r\n  private availableExtensions: string[] = ['csv', 'doc', 'docx', 'dwg', 'jpg', 'jpeg', 'pdf', 'png', 'rar', 'sig', 'tiff', 'tif', 'txt', 'xml', 'zip'];\r\n  private showBtnCreate: boolean = false;\r\n  private showBtnCreateFolder: boolean = false;\r\n  private isUploaded: boolean;\r\n  private editor: boolean;\r\n  private isOld: boolean;\r\n  static $inject = ['fileRestService', 'fileOldSystemRestService', 'toastr', '$state', '$sce', 'blockUI', '$uibModal', '$timeout', 'documentRestService'];\r\n  constructor(private fileRestService: FileRestService, private fileOldSystemRestService: FileOldSystemRestService, private toastr: Toastr,\r\n    private $state: ng.ui.IStateService,\r\n    private $sce: ng.ISCEService, private blockUI: any,\r\n    private $uibModal: angular.ui.bootstrap.IModalService, private $timeout: ng.ITimeoutService, private documentRestService: DocumentRestService) {\r\n  }\r\n\r\n  $onInit() {\r\n    this.myBlockUI = this.blockUI.instances.get('folderLoad');\r\n    this.showBtnCreate = (this.folderInfo.folders.length === 0 && this.folderInfo.files.length === 0 && this.code === '8400');\r\n    this.navFolderInfo = this.buildNavFolderInfo(this.folderInfo);\r\n    this.navFolderInfo.loaded = true;\r\n    this.navigation.push({\r\n      id: this.navFolderInfo.folderId,\r\n      name: this.navFolderInfo.folderName\r\n    });\r\n    this.selected = this.navFolderInfo;\r\n    this.extensions.forEach((e, i) => {\r\n      this.extPattern += e;\r\n      if (i < this.extensions.length - 1)\r\n        this.extPattern += \", \"\r\n    });\r\n  }\r\n\r\n  buildNavFolderInfo(folderInfo: FolderInfo): INavFolderInfo {\r\n    let result: INavFolderInfo = <any>folderInfo;\r\n    result.loaded = false;\r\n    if (folderInfo.folders && folderInfo.folders.length > 0) {\r\n      folderInfo.folders.forEach((f, i) => {\r\n        result.folders[i].loaded = false;\r\n      });\r\n    }\r\n    return result;\r\n  }\r\n\r\n  createFolderStructure() {\r\n    let modalInstance = this.$uibModal.open({\r\n      template: require('./selectObjectType.html'),\r\n      controller: 'SelectObjectTypeController as ctrl',\r\n      backdrop: 'static',\r\n      keyboard: false,\r\n      size: \"md\"\r\n    });\r\n    modalInstance.result.then((result: string) => {\r\n      this.myBlockUI.start();\r\n      this.fileRestService.createTreeStructure(this.folderInfo.folderId, result).then(response => {\r\n        this.toastr.success(\"Структура каталогов успешно создана!\");\r\n        this.myBlockUI.stop();\r\n        this.$state.reload();\r\n      }).catch(error => {\r\n        this.toastr.error(\"Ошибка при создании структуры каталогов!\");\r\n        this.myBlockUI.stop();\r\n      });\r\n    }).catch(error => {\r\n\r\n    });\r\n  }\r\n\r\n  openFolder(folderInfo: INavFolderInfo) {\r\n    if (!folderInfo.loaded) {\r\n      this.myBlockUI.start();\r\n\r\n      let promise: ng.IPromise<FolderInfo>;\r\n\r\n      if (this.isOld) {\r\n        promise = this.fileOldSystemRestService.filesTreeOld(folderInfo.folderId, \"1levels\")\r\n      } else {\r\n        promise = this.fileRestService.filesTree(folderInfo.folderId, \"1level\")\r\n      }\r\n\r\n      promise.then(response => {\r\n        folderInfo.folders = this.buildNavFolderInfo(response).folders;\r\n        folderInfo.files = response.files;\r\n        folderInfo.loaded = true;\r\n        this.myBlockUI.stop();\r\n        this.navigation.push({\r\n          id: folderInfo.folderId,\r\n          name: folderInfo.folderName\r\n        });\r\n        this.selected = folderInfo;\r\n        this.fileIsOpened = false;\r\n      }).catch(error => {\r\n        this.myBlockUI.stop();\r\n        console.log(error);\r\n      });\r\n    } else if (folderInfo.loaded === true) {\r\n      this.navigation.push({\r\n        id: folderInfo.folderId,\r\n        name: folderInfo.folderName\r\n      });\r\n      this.selected = folderInfo;\r\n      this.fileIsOpened = false;\r\n    }\r\n  }\r\n  open(id: string, index: number) {\r\n    this.navigation.splice(_.findIndex(this.navigation, (n => {\r\n      return n.id === id;\r\n    })) + 1);\r\n    this.selected = this.findFolder(this.navFolderInfo, id);\r\n    this.fileIsOpened = false;\r\n  }\r\n\r\n  findFolder(folder: INavFolderInfo, id: string): INavFolderInfo {\r\n    let result = null;\r\n    if (folder.folderId === id) {\r\n      result = folder;\r\n    } else {\r\n      if (folder.folders && folder.folders.length > 0) {\r\n        for (let i = 0; i < folder.folders.length; i++) {\r\n          let _result = this.findFolder(folder.folders[i], id);\r\n          if (_result !== null) {\r\n            result = _result;\r\n          }\r\n        }\r\n      }\r\n    }\r\n    return result;\r\n  }\r\n\r\n  openFile(id: string) {\r\n    var url = this.$state.href('viewFile', { id: id });\r\n    window.open(url, '_blank');\r\n  }\r\n\r\n  $onDestroy() {\r\n    this.myBlockUI.reset();\r\n  }\r\n\r\n  private serial(promisesFn: any[]): ng.IPromise<any> {\r\n    let prevPromise = null;\r\n    angular.forEach(promisesFn, (pFn) => {\r\n      if (prevPromise === null) {\r\n        prevPromise = pFn();\r\n      } else {\r\n        prevPromise = prevPromise.then(pFn);\r\n      }\r\n    });\r\n\r\n    return prevPromise;\r\n  }\r\n\r\n  upload(files: File[]): void {\r\n    if (this.classFile === undefined || this.classFile === null || this.classFile === \"\") {\r\n      this.toastr.error(\"Не указан класс файла!\");\r\n      return;\r\n    }\r\n\r\n    let extPattern = this.extPattern.split(',');\r\n    if (files && files.length) {\r\n\r\n      let promises: any[] = [];\r\n\r\n      for (let i = 0; i < files.length; i++) {\r\n        let fileExtension = files[i].name.split('.').pop();\r\n        let correctExtension: boolean = false;\r\n        this.availableExtensions.forEach(ex => {\r\n          if (ex === fileExtension)\r\n            correctExtension = true;\r\n        });\r\n        if (!correctExtension)\r\n          fileExtension = \"unknown\";\r\n        if (fileExtension === \"sig\") {\r\n          let arr: string[] = files[i].name.split('.');\r\n          let fileExtension = arr[arr.length - 2];\r\n        }\r\n        let isAllowableFile: boolean = false;\r\n        extPattern.forEach(t => {\r\n          let ext = t.trim();\r\n          if (fileExtension === ext) {\r\n            isAllowableFile = true;\r\n          }\r\n        });\r\n\r\n        if (extPattern.length > 0 && !isAllowableFile) {\r\n          this.toastr.warning('Файл: ' + files[i].name + \" имеет недопустимое расширение!\");\r\n        }\r\n\r\n        let fd = new FormData();\r\n        let _file = files[i];\r\n        fd.append('file', _file);\r\n\r\n        if (this.selected.folderId) {\r\n          fd.append('folderGuid', this.selected.folderId);\r\n        }\r\n\r\n        if (this.classFile) {\r\n          fd.append('fileType', this.classFile);\r\n        }\r\n\r\n        if (isAllowableFile) {\r\n          promises.push(() => {\r\n            return  this.fileRestService.handleFileUpload(fd); \r\n          });\r\n        }\r\n      }\r\n      if (promises.length > 0) {\r\n        this.isUploaded = true;\r\n        this.serial(promises).then(response => {\r\n          this.toastr.success((promises.length === 1) ? 'Файл успешно загружен!' : 'Файлы успешно загружены!');\r\n          this.isUploaded = false;\r\n          \r\n          let promise: any;\r\n          if (this.isOld) {\r\n            promise = this.fileOldSystemRestService.filesTreeOld(this.selected.folderId, \"1levels\")\r\n          } else {\r\n            promise = this.fileRestService.filesTree(this.selected.folderId, \"1level\")\r\n          }\r\n    \r\n          promise.then(response => {\r\n            this.isUploaded = false;\r\n            (<any>this.selected).files = response.files;\r\n            this.fileIsOpened = false;\r\n          }).catch(error => {\r\n            this.toastr.error(((promises.length === 1) ? 'Ошибка при загрузке файла: ' : 'Ошибка при загрузке файлов: ') + error.status);\r\n            this.isUploaded = false;\r\n          });\r\n\r\n\r\n        }).catch(error => {\r\n          this.toastr.error(((promises.length === 1) ? 'Ошибка при загрузке файла: ' : 'Ошибка при загрузке файлов: ') + error.status);\r\n          this.isUploaded = false;\r\n        });\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\nexport const folderNavigator: angular.IComponentOptions = {\r\n  controller: NavigatorController,\r\n  template: require('./navigator.html'),\r\n  bindings: {\r\n    folderInfo: '<',\r\n    extensions: '<',\r\n    classFile: '<',\r\n    code: '<',\r\n    editor: '<',\r\n    isOld: '<',\r\n    document: '<',\r\n    registry: '<'\r\n  }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/files/folder-tree/navigator.ts","module.exports = \"<div class=inmodal style=backface-visibility:hidden> <div class=modal-header> <h3 class=modal-title>Определите вид объекта</h3> </div> <div class=modal-body style=background:#fff;padding-bottom:20px> <label class=m-r-sm> <input icheck type=radio value=1000 ng-model=ctrl.code> <i></i> Объект капитального строительства </label> <label> <input icheck type=radio value=2000 ng-model=ctrl.code> <i></i> Линейный объект </label> </div> <div class=modal-footer> <button type=button ng-disabled=\\\"ctrl.code === ''\\\" type=button class=\\\"btn btn-primary\\\" ng-click=ctrl.select()>Выбрать</button> <button type=button class=\\\"btn btn-white\\\" ng-click=ctrl.cancel()>Закрыть</button> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/files/folder-tree/selectObjectType.html\n// module id = 114\n// module chunks = 0","module.exports = \"<div class=navigator block-ui=folderLoad> <ul class=file-nav> <li ng-repeat=\\\"n in $ctrl.navigation\\\"> <span data-ng-bind=n.name ng-class=\\\"{'hover': $index < $ctrl.navigation.length - 1,'last': $index === $ctrl.navigation.length - 1 }\\\" ng-click=\\\"$ctrl.open(n.id, $index)\\\"></span> </li> </ul> <div class=container-fluid> <div class=row> <div style=margin-top:20px ng-if=!$ctrl.fileIsOpened> <div class=clearfix> <div ng-if=\\\"$ctrl.selected.folders && $ctrl.selected.folders.length > 0\\\"> <div ng-repeat=\\\"f in $ctrl.selected.folders\\\"> <folder folder-info=f editor=$ctrl.editor on-open=$ctrl.openFolder(folderInfo)></folder> </div> </div> <div ng-if=\\\"$ctrl.selected.files && $ctrl.selected.files.length > 0\\\"> <div ng-repeat=\\\"f in $ctrl.selected.files\\\"> <file is-old=$ctrl.isOld editor=$ctrl.editor folder-id=$ctrl.selected.folderId file-info=f on-open=$ctrl.openFile(id)></file> </div> </div> </div> </div> </div> <div class=row ng-if=\\\"$ctrl.editor && !$ctrl.showBtnCreate\\\"> <div class=ex-dropzone-outer style=margin-top:15px> <div ngf-multiple=true ngf-select=$ctrl.upload($files) ngf-drag-over-class=\\\"'dragover'\\\" style=cursor:pointer class=ex-dropzone ng-show=!$ctrl.isUploaded> <i class=\\\"fa fa-download\\\" aria-hidden=true></i>&nbsp;Загрузить файл <br> <span style=font-size:13px>Допустимые расширения: {{$ctrl.extPattern}}</span> </div> <div class=ex-dropzone ng-show=$ctrl.isUploaded> <spinner style=margin:5px type=\\\"'three-bounce'\\\"></spinner> </div> </div> </div> <div class=row ng-if=$ctrl.showBtnCreate> <button class=\\\"btn btn-default\\\" ng-click=$ctrl.createFolderStructure()>Создать структуру проектной документации</button> </div> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/files/folder-tree/navigator.html\n// module id = 115\n// module chunks = 0","import * as angular from \"angular\";\r\n\r\nexport class SelectObjectTypeController {\r\n    static $inject = ['$uibModalInstance', 'fileRestService'];\r\n    code: string = '';\r\n\r\n    constructor(private $uibModalInstance: angular.ui.bootstrap.IModalServiceInstance) {\r\n    }\r\n\r\n    cancel() {\r\n        this.$uibModalInstance.dismiss('cancel');\r\n    };\r\n\r\n    select() {\r\n        this.$uibModalInstance.close(this.code);\r\n    }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/files/folder-tree/selectObjectType.ts","import * as angular from \"angular\";\r\nimport { IFileInfo, FileRestService } from 'isogd-file-rest';\r\nimport { FileService } from \"../../../services/FileService\";\r\n\r\ndeclare var cadesplugin: any;\r\ndeclare var FileAPI: any;\r\n\r\nexport class SignFileController {\r\n    private pluginInfo: any;\r\n    private certificates: any[] = [];\r\n    private selectedCertificate: any = null;\r\n    private certificatesState: boolean;\r\n    private certificateInfoEx: any = null;\r\n    private finishing: boolean = false;\r\n    private fileExtension: string;\r\n    private fileSize: string;\r\n    private isKB: boolean;\r\n    private signature: any;\r\n    private state: string;\r\n    private stateValue: string;\r\n\r\n    static $inject = ['fileRestService', '$uibModalInstance', 'toastr', 'cryptoService', '$log', 'fileService', 'fileInfo', 'folderGuid'];\r\n    constructor(private fileRestService: FileRestService, \r\n        private $uibModalInstance: angular.ui.bootstrap.IModalServiceInstance,\r\n        private toastr: Toastr,\r\n        private cryptoService: any,\r\n        private $log: ng.ILogService,\r\n        private fileService: FileService,\r\n        private fileInfo: IFileInfo, \r\n        private folderGuid: string) {\r\n\r\n        this.fileExtension = this.fileInfo.fileName.split('.').pop();\r\n        let sizeKB = this.fileInfo.contentLength / 1024.0;\r\n        this.isKB = (sizeKB < 1024.0) ? true : false;\r\n        this.fileSize = (this.isKB) ? sizeKB.toFixed(1) : (sizeKB / 1024.0).toFixed(2);\r\n        this.pluginInfo = {\r\n            version: \"\",\r\n            cryptoVersion: \"\",\r\n            crypto: \"\"\r\n        };\r\n        if (cadesplugin) {\r\n            this.CheckPlugIn();\r\n        } else {\r\n            this.state = \"danger\";\r\n            this.stateValue = \"Плагин не загружен\";\r\n        }\r\n    }\r\n\r\n    ok() {\r\n        this.finishing = true;\r\n        if (!this.fileInfo.signed) {\r\n            this.fileRestService.getFileHash(this.fileInfo.fileId).then(data => {\r\n                this.cryptoService.signHash(this.selectedCertificate, data.hash, \"http://cryptopro.ru/tsp/\").then((response) => {\r\n                    this.signature = response;\r\n                    let formData = new FormData();\r\n                    formData.append(\"folderGuid\", this.folderGuid);\r\n                    formData.append(\"signature\", new Blob([this.signature.value], { type: 'application/octet-stream' }), this.fileInfo.fileName + \".sig\");\r\n                    this.fileRestService.handleFileUploadWithSign(this.fileInfo.fileId, formData).then(response => {\r\n                        this.$uibModalInstance.close({\r\n                            result: {\r\n                                guid: this.fileInfo.fileId,\r\n                                time: this.signature.time\r\n                            },\r\n                            error: null\r\n                        });\r\n                    }).catch(error => {\r\n                        this.toastr.error(\"Ошибка при сохранении файла с подписью!\");\r\n                        this.$uibModalInstance.close({\r\n                            result: null,\r\n                            error: \"Ошибка при сохранении файла с подписью!\"\r\n                        });\r\n                    });\r\n                }).catch((error) => {\r\n                    this.$log.error(error);\r\n                    this.$uibModalInstance.close({\r\n                        result: null,\r\n                        error: error\r\n                    });\r\n                });\r\n            }, (error) => {\r\n                this.$log.error(error);\r\n                this.$uibModalInstance.close({\r\n                    result: null,\r\n                    error: error\r\n                });\r\n            });\r\n        } else {\r\n            this.fileRestService.getFileHash(this.fileInfo.fileId).then(data => {\r\n                let hash: string = data.hash;\r\n                this.fileRestService.getSign(this.fileInfo.fileId).then(data => {\r\n                    let sign: Blob = data;\r\n                    this.fileService.getContentFromBlobAsBinaryString(sign).then((result) => {\r\n\r\n                        this.cryptoService.coSignHash(this.selectedCertificate, hash, result, \"http://cryptopro.ru/tsp/\").then((response) => {\r\n                            this.signature = response;\r\n                            let formData = new FormData();\r\n                            formData.append(\"folderGuid\", this.folderGuid);\r\n                            let _sig = new Blob([this.signature.value], { type: 'application/octet-stream' });\r\n                            formData.append(\"signature\", _sig, this.fileInfo.fileName + \".sig\");\r\n                            this.fileRestService.handleFileUploadWithSign(this.fileInfo.fileId, formData).then(response => {\r\n                                this.$uibModalInstance.close({\r\n                                    result: {\r\n                                        guid: this.fileInfo.fileId,\r\n                                        time: this.signature.time\r\n                                    },\r\n                                    error: null\r\n                                });\r\n                            }).catch(error => {\r\n                                this.toastr.error(\"Ошибка при сохранении файла с подписью!\");\r\n                                this.$uibModalInstance.close({\r\n                                    result: null,\r\n                                    error: \"Ошибка при сохранении файла с подписью!\"\r\n                                });\r\n                            });\r\n\r\n                        }).catch((error) => {\r\n                            this.$log.error(error);\r\n                            this.$uibModalInstance.close({\r\n                                result: null,\r\n                                error: error\r\n                            });\r\n                        });\r\n                    }).catch((error) => {\r\n                        this.$log.error(error);\r\n                        this.$uibModalInstance.close({\r\n                            result: null,\r\n                            error: error\r\n                        });\r\n                    });\r\n                }, (error) => {\r\n                    this.$log.error(error);\r\n                    this.$uibModalInstance.close({\r\n                        result: null,\r\n                        error: error\r\n                    });\r\n                });\r\n            }, (error) => {\r\n                this.$log.error(error);\r\n                this.$uibModalInstance.close({\r\n                    result: null,\r\n                    error: error\r\n                });\r\n            });\r\n        }\r\n    };\r\n\r\n    cancel() {\r\n        this.$uibModalInstance.dismiss('cancel');\r\n    };\r\n\r\n    CheckPlugIn() {\r\n        this.state = \"success\";\r\n        this.stateValue = \"Плагин загружен.\";\r\n\r\n        this.cryptoService.getInfoAboutPlugin().then((pluginInfo: any) => {\r\n            this.pluginInfo = pluginInfo;\r\n            this.cryptoService.getCertificates().then((certificates: any[]) => {\r\n                this.certificates = certificates;\r\n\r\n                if (this.certificates.length > 0) {\r\n                    this.selectedCertificate = this.certificates[0];\r\n                    this.onChangeCertificate();\r\n                }\r\n\r\n                this.certificatesState = true;\r\n            }, (error) => {\r\n                this.$log.error(error);\r\n                this.certificatesState = false;\r\n            });\r\n        }, (err) => {\r\n            this.$log.error(\"Ошибка при загрузке плагина CryptoPro: \" + err);\r\n            this.state = \"danger\";\r\n            this.stateValue = \"Ошибка при работе с плагином!\";\r\n            this.certificatesState = false;\r\n        });\r\n    }\r\n\r\n    onChangeCertificate() {\r\n        this.cryptoService.fillCertInfo(this.selectedCertificate).then((certificateInfoEx: any) => {\r\n            this.certificateInfoEx = certificateInfoEx;\r\n        }, (err) => {\r\n            this.$log.error(\"Ошибка при загрузке сертификата: \" + err);\r\n        });\r\n    }\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/files/folder-tree/signFile.ts","import * as widgets from \"oasi-widgets\";\r\nimport * as angular from \"angular\";\r\nimport { IFileInfo, IVerifyResult, FileRestService } from 'isogd-file-rest/';\r\n\r\nexport class VerifyController {\r\n    static $inject = ['$uibModalInstance', 'fileRestService', 'toastr', 'fileInfo'];\r\n    \r\n    private loading: widgets.LoadingStatus = widgets.LoadingStatus.LOADING;\r\n    private result: IVerifyResult;\r\n\r\n    constructor(private $uibModalInstance: angular.ui.bootstrap.IModalServiceInstance, \r\n        private fileRestService: FileRestService, \r\n        private toastr: Toastr,\r\n        private fileInfo: IFileInfo) {\r\n        this.fileRestService.verifySign(this.fileInfo.fileId).then((data: IVerifyResult) => {\r\n            this.result = data;\r\n            this.loading = widgets.LoadingStatus.SUCCESS;\r\n        }, (error) => {\r\n            this.toastr.error(\"Ошибка при проверке подписи!\");\r\n            this.loading = widgets.LoadingStatus.ERROR;\r\n            this.$uibModalInstance.dismiss('cancel');\r\n        });\r\n    }\r\n\r\n    cancel() {\r\n        this.$uibModalInstance.dismiss('cancel');\r\n    };\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/files/folder-tree/verify.ts","import * as widgets from \"oasi-widgets\";\r\nimport { FolderInfo, FileRestService, FileOldSystemRestService } from 'isogd-file-rest';\r\nimport { DocumentIsogd } from \"isogd-document-rest\";\r\nimport { NsiRestService } from \"oasi-nsi-rest\";\r\n\r\nclass FilesViewController {\r\n    static $inject = ['fileRestService', 'fileOldSystemRestService', 'nsiRestService'];\r\n    private loadingStatus: widgets.LoadingStatus = widgets.LoadingStatus.LOADING;\r\n    private document: DocumentIsogd;\r\n    private folder: FolderInfo;\r\n    private code: string;\r\n    private isOld: boolean;\r\n    private registry: any;\r\n    private extensions = ['pdf', 'tiff', 'jpg', 'jpeg', 'doc', 'docx'];\r\n\r\n    constructor(private fileRestService: FileRestService, private fileOldSystemRestService: FileOldSystemRestService, private nsiRestService: NsiRestService) {\r\n    }\r\n\r\n    $onInit() {\r\n        this.loadingStatus = widgets.LoadingStatus.LOADING;\r\n        this.nsiRestService.getBy(\"OldChapters\", {  \r\n            nickAttr: \"chapterCode\",\r\n            values: [this.document.reestr ]\r\n        }).then(response => {\r\n            this.registry = response[0];\r\n\r\n            if (this.document.folderID) {\r\n                this.isOld = false; \r\n            } else {\r\n                if (this.document.oldFolderID) {\r\n                    this.isOld = true; \r\n                } else {\r\n                    this.isOld = undefined; \r\n                }\r\n            }\r\n            let promise: ng.IPromise<FolderInfo>;\r\n            if (this.isOld !== undefined) {\r\n                if (!this.isOld) {\r\n                    promise = this.fileRestService.filesTree(this.document.folderID, \"1level\");\r\n                } else {\r\n                    promise = this.fileOldSystemRestService.filesTreeOld(this.document.oldFolderID, \"1levels\");\r\n                }\r\n    \r\n                promise.then(response => {\r\n                    this.folder = response;\r\n                    this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n                }).catch(error => {\r\n                    this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n                    console.log(error);\r\n                });\r\n            } else {\r\n                this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n            }\r\n        });\r\n    }\r\n}\r\n\r\nexport const FilesViewComponent: angular.IComponentOptions = {\r\n    controller: FilesViewController,\r\n    template: require('./files-view.html'),\r\n    bindings: {\r\n        document: '<'\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/files/files-view.ts","module.exports = \"<loading-block loading-status=$ctrl.loadingStatus> <success> <div ng-if=\\\"$ctrl.isOld !== undefined\\\"> <navigator document=$ctrl.document registry=$ctrl.registry is-old=$ctrl.isOld editor=false class-file=$ctrl.registry.docClass code=$ctrl.document.reestr extensions=$ctrl.extensions folder-info=$ctrl.folder> </navigator> </div> <div ng-if=\\\"$ctrl.isOld === undefined\\\"> <span> <span class=\\\"fa fa-times-circle text-warning\\\"></span> <span> Отсутствует каталог связанный с данным документом</span></span> </div> </success> <error> <span> <span class=\\\"fa fa-times-circle text-danger\\\"></span> <span> Ошибка при получении информации о каталоге</span></span> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:45px> <spinner style=margin:5px type=\\\"'three-bounce'\\\"></spinner> </div> </div> </loading> </loading-block>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/files/files-view.html\n// module id = 120\n// module chunks = 0","export class ConfirmController {\r\n    static $inject = ['$uibModalInstance', 'title', 'message', 'btnOk'];\r\n\r\n    constructor(private $uibModalInstance: angular.ui.bootstrap.IModalServiceInstance, \r\n        private title: any, \r\n        private message: any,\r\n        private btnOk: any) {\r\n    }\r\n\r\n    ok() {\r\n        this.$uibModalInstance.close();\r\n    }\r\n\r\n    cancel() {\r\n        this.$uibModalInstance.dismiss('cancel');\r\n    };\r\n}\r\n\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/common/confirmation.ts","import * as widgets from \"oasi-widgets\";\r\nimport { FolderInfo, FileRestService, FileOldSystemRestService } from 'isogd-file-rest';\r\nimport { DocumentIsogd, DocumentRestService, DocumentIsogdWrapper } from \"isogd-document-rest\";\r\nimport { NsiRestService } from \"oasi-nsi-rest\";\r\n\r\nclass FilesEditController {\r\n    static $inject = ['$state', 'documentRestService', '$timeout', 'blockUI', '$uibModal', 'fileRestService', 'fileOldSystemRestService', 'nsiRestService'];\r\n    private loadingStatus: widgets.LoadingStatus = widgets.LoadingStatus.LOADING;\r\n    private document: DocumentIsogd;\r\n    private folder: FolderInfo;\r\n    private code: string;\r\n    private isOld: boolean;\r\n    private registry: any;\r\n    private extensions = ['pdf', 'tiff', 'tif', 'jpg', 'jpeg', 'doc', 'docx'];\r\n\r\n    constructor(private $state: any, private documentRestService: DocumentRestService, private $timeout: any, private blockUI: any, private $uibModal: any, private fileRestService: FileRestService, private fileOldSystemRestService: FileOldSystemRestService, private nsiRestService: NsiRestService) {\r\n    }\r\n\r\n    $onInit() {\r\n\r\n        this.loadingStatus = widgets.LoadingStatus.LOADING;\r\n        this.nsiRestService.getBy(\"OldChapters\", {\r\n            nickAttr: \"chapterCode\",\r\n            values: [this.document.reestr]\r\n        }).then(response => {\r\n            this.registry = response[0];\r\n\r\n            if (this.document.folderID) {\r\n                this.isOld = false;\r\n            } else {\r\n                if (this.document.oldFolderID) {\r\n                    this.isOld = true;\r\n                } else {\r\n                    this.isOld = undefined;\r\n                }\r\n            }\r\n            let promise: ng.IPromise<FolderInfo>;\r\n            if (this.isOld !== undefined) {\r\n                if (!this.isOld) {\r\n                    promise = this.fileRestService.filesTree(this.document.folderID, \"1level\");\r\n                } else {\r\n                    promise = this.fileOldSystemRestService.filesTreeOld(this.document.oldFolderID, \"1levels\");\r\n                }\r\n\r\n                promise.then(response => {\r\n                    this.folder = response;\r\n                    this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n                }).catch(error => {\r\n                    this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n                    console.log(error);\r\n                });\r\n            } else {\r\n                this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n            }\r\n        });\r\n    }\r\n\r\n    createFolder() {\r\n        let modalInstance = this.$uibModal.open({\r\n            template: require('../common/confirmation.html'),\r\n            controller: 'ConfirmController as ctrl',\r\n            size: \"md\",\r\n            backdrop: 'static',\r\n            keyboard: false,\r\n            windowClass: \"delete-file-modal\",\r\n            resolve: {\r\n                title: () => { return \"Создание каталога\" },\r\n                message: () => { return \"Создать каталог {\" + this.document.documentID + \"} в FileNet?\" },\r\n                btnOk: () => { return \"Создать\" }\r\n            }\r\n        });\r\n        modalInstance.result.then((result: any) => {\r\n            this.$timeout(1500).then(response => {\r\n                let params = {\r\n                    folderName: this.document.documentID,\r\n                    parentGuid: this.registry.folderID,\r\n                    folderType: this.registry.folderClass,\r\n                    folderAttrs: []\r\n                };\r\n                return this.fileRestService.createFolder(params);\r\n            }).then((response) => {\r\n                this.document.folderID = response.guid;\r\n                return this.$timeout(1500);\r\n            }).then(response => {\r\n                return this.documentRestService.getDocument(this.document.documentID);\r\n            }).then((response: DocumentIsogdWrapper)  => {\r\n                response.document.folderID = this.document.folderID;\r\n                return this.documentRestService.update(this.document.documentID, { document:  response.document });\r\n            }).then(response => {\r\n                this.$state.reload();\r\n            }).catch((error) => {\r\n                console.log(error);\r\n            });\r\n        }).catch(error => {\r\n        });\r\n    }\r\n}\r\n\r\nexport const FilesEditComponent: angular.IComponentOptions = {\r\n    controller: FilesEditController,\r\n    template: require('./files-edit.html'),\r\n    bindings: {\r\n        document: '<'\r\n    }\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/files/files-edit.ts","module.exports = \"<loading-block loading-status=$ctrl.loadingStatus> <success> <div ng-if=\\\"$ctrl.isOld !== undefined\\\"> <navigator document=$ctrl.document registry=$ctrl.registry is-old=$ctrl.isOld editor=true class-file=$ctrl.registry.docClass code=$ctrl.document.reestr extensions=$ctrl.extensions folder-info=$ctrl.folder> </navigator> </div> <div ng-if=\\\"$ctrl.isOld === undefined\\\"> <button class=\\\"btn btn-default\\\" ng-click=$ctrl.createFolder()>Создать каталог</button> </div> </success> <error> <span class=text-danger> <span class=\\\"fa fa-times-circle\\\"></span> <span> Ошибка при получении информации о каталоге</span></span> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:45px> <spinner style=margin:5px type=\\\"'three-bounce'\\\"></spinner> </div> </div> </loading> </loading-block>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/files/files-edit.html\n// module id = 123\n// module chunks = 0","import * as widgets from \"oasi-widgets\";\nimport { DocumentRestService, DocumentLogItem } from \"isogd-document-rest\";\n\ninterface ILog {\n    dateEdit: string;\n    userName: string;\n    jsonPatch: string;\n}\n\nclass HistoryController {\n    static $inject = ['documentRestService'];\n    private loadingStatus: widgets.LoadingStatus = widgets.LoadingStatus.LOADING;\n    private logs: DocumentLogItem[];\n    private id: string;\n\n    constructor(private documentRestService: DocumentRestService) {\n    }\n\n    $onInit() {\n        this.loadingStatus = widgets.LoadingStatus.LOADING;\n        this.documentRestService.log(this.id).then(response => {\n            this.logs = response;\n            this.logs.forEach(l => {\n                l.jsonPatch = JSON.parse(l.jsonPatch);\n            });\n            this.loadingStatus = widgets.LoadingStatus.SUCCESS;\n        }).catch(error => {\n            this.loadingStatus = widgets.LoadingStatus.ERROR;\n        });\n    }\n}\n\nexport const HistoryComponent: angular.IComponentOptions = {\n    controller: HistoryController,\n    template: require('./history.html'),\n    bindings: {\n        id: '<'\n    }\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/history/history.ts","module.exports = \"<loading-block loading-status=$ctrl.loadingStatus> <success> <div class=m-t-md> <table class=\\\"table animated fadeIn\\\"> <thead> <tr> <th style=width:150px>Дата изменения</th> <th style=width:150px>Пользователь</th> <th>Содержимое</th> </tr> </thead> <tbody ng-show=\\\"$ctrl.logs.length > 0\\\"> <tr ng-repeat=\\\"log in $ctrl.logs | orderBy:'-'\\\"> <td style=vertical-align:middle!important>{{log.dateEdit | date: 'dd.MM.yyyy HH:mm'}}</td> <td style=vertical-align:middle!important>{{log.userName}}</td> <td style=vertical-align:middle!important> <table class=\\\"table animated fadeIn table-without-header\\\"> <tbody> <tr ng-repeat=\\\"p in log.jsonPatch\\\"> <td style=vertical-align:middle!important> {{p.op}} </td> <td style=vertical-align:middle!important>{{p.path}}</td> <td style=vertical-align:middle!important>{{p.value}}</td> </tr> </tbody> </table> </td> </tr> </tbody> <tbody ng-show=\\\"$ctrl.logs.length === 0\\\"> <tr> <td colspan=3 style=padding:20px> <span> <i class=\\\"fa fa-exclamation-triangle text-warning\\\"></i> В таблице отсутствуют значения </span> </td> </tr> </tbody> </table> </div> </success> <error> <div class=m-t-md> <span class=\\\"fa fa-times-circle text-danger\\\"></span> <span> Ошибка при формировании раздела</span> </div> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:40px> <div class=\\\"sk-spinner sk-spinner-three-bounce\\\"> <div class=sk-bounce1></div> <div class=sk-bounce2></div> <div class=sk-bounce3></div> </div> </div> </div> </loading> </loading-block>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/history/history.html\n// module id = 125\n// module chunks = 0","import * as widgets from \"oasi-widgets\";\r\nimport { GisRestService } from 'isogd-gis-rest/dist/types/isogd-gis-rest/services/GisRestService';\r\nimport { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass GisEditController {\r\n    static $inject = ['$state', '$timeout', 'gisRestService', '$filter', 'blockUI'];\r\n    private document: DocumentIsogd;\r\n    private allLinks: any[]\r\n    private links: any[];\r\n    private myBlockUI: any;\r\n    private errorMessage: string;\r\n    private loadingStatus: widgets.LoadingStatus = widgets.LoadingStatus.LOADING;\r\n\r\n    constructor(private $state: ng.ui.IStateService, private $timeout: ng.ITimeoutService, private gisRestService: GisRestService, private $filter: ng.IFilterService, private blockUI: any) {\r\n    }\r\n\r\n    $onInit() {\r\n        let allLinks: any;\r\n        let links: any;\r\n        this.myBlockUI = this.blockUI.instances.get('gisLoad');\r\n        this.gisRestService.linksSearch({\r\n            registryCode: this.document.reestr,\r\n            docNumber: this.document.documentRequisites.documentNumber,\r\n            docDate: this.$filter('date')(new Date(this.document.documentRequisites.documentDate.toString()), 'yyyy-MM-dd')\r\n        }).then(response => {\r\n            allLinks = this.transformAllLinks(response);\r\n            return this.gisRestService.findByDocId(this.document.documentID);\r\n        }).then(response => {\r\n            links = this.transformLinks(response);\r\n            let newAllLinks = [];\r\n            allLinks.forEach(al => {\r\n                let find = false;\r\n                links.forEach(l => {\r\n                    if (al.layerTableId === l.layerTableId && al.objectContourId === l.objectContourId) {\r\n                        find = true;\r\n                    }\r\n                });\r\n                if (!find) {\r\n                    newAllLinks.push(al);\r\n                }\r\n            });\r\n            this.allLinks = newAllLinks;\r\n            this.links = links;\r\n\r\n            this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n        }).catch(error => {\r\n            this.errorMessage =  \"Данные не найдены\"\r\n            this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n        });\r\n    }\r\n\r\n    $onDestroy() {\r\n        this.myBlockUI.reset();\r\n    }\r\n\r\n    updateData() {\r\n        let allLinks: any;\r\n        let links: any;\r\n        this.gisRestService.linksSearch({\r\n            registryCode: this.document.reestr,\r\n            docNumber: this.document.documentRequisites.documentNumber,\r\n            docDate: this.$filter('date')(new Date(this.document.documentRequisites.documentDate.toString()), 'yyyy-MM-dd')\r\n        }).then(response => {\r\n            allLinks = this.transformAllLinks(response);\r\n            return this.gisRestService.findByDocId(this.document.documentID);\r\n        }).then(response => {\r\n            links = this.transformLinks(response);\r\n            let newAllLinks = [];\r\n            allLinks.forEach(al => {\r\n                let find = false;\r\n                links.forEach(l => {\r\n                    if (al.layerTableId === l.layerTableId && al.objectContourId === l.objectContourId) {\r\n                        find = true;\r\n                    }\r\n                });\r\n                if (!find) {\r\n                    newAllLinks.push(al);\r\n                }\r\n            });\r\n            this.allLinks = newAllLinks;\r\n            this.links = links;\r\n            this.myBlockUI.stop();\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n        });\r\n    }\r\n\r\n    transformAllLinks(response: any[]): any[] {\r\n        let allLinks = [];\r\n        response.forEach(r => {\r\n            allLinks.push({\r\n                layerTable: r.layerTable,\r\n                layerTableId: r.layerTableId,\r\n                objectContourId: r.objectContourId\r\n            });\r\n        });\r\n\r\n        return allLinks;\r\n    }\r\n\r\n    transformLinks(response: any): any[] {\r\n        let links = [];\r\n        response._embedded.links.forEach(r => {\r\n            links.push({\r\n                docId: r.docId,\r\n                hide: (r.hide),\r\n                id: r.id,\r\n                layerTable: r.layerTable,\r\n                layerTableId: r.layerTableId,\r\n                objectContourId: r.objectContourId\r\n            });\r\n        });\r\n        return links;\r\n    }\r\n\r\n    openMap(l: any) {\r\n        let url = \"/portal-gis/\" + l.layerTableId + \"/\" + l.objectContourId;\r\n        window.open(url, '_blank');\r\n    }\r\n\r\n    delete(l: any) {\r\n        this.myBlockUI.start();\r\n        this.$timeout(1500).then(response => {\r\n            this.gisRestService.deleteLink(l.id).then(response => {\r\n                this.updateData();\r\n            }).catch(error => {\r\n                this.myBlockUI.stop();\r\n            });\r\n        });\r\n    }\r\n    \r\n    hide(l: any) {\r\n        this.myBlockUI.start();\r\n        this.$timeout(1500).then(response => {\r\n            this.gisRestService.updateLink(l.id, l).then(response => {\r\n                this.updateData();\r\n            }).catch(error => {\r\n                this.myBlockUI.stop();\r\n            });\r\n        });\r\n    }\r\n\r\n    bind(l: any) {\r\n        this.myBlockUI.start();\r\n        this.$timeout(1500).then(response => {\r\n            let newLinks: any[] = [];;\r\n            this.links.forEach(ll => {\r\n                newLinks.push({\r\n                    docId: this.document.documentID,\r\n                    layerTable: ll.layerTable,\r\n                    layerTableId: ll.layerTableId,\r\n                    objectContourId: ll.objectContourId\r\n                });\r\n            });\r\n            newLinks.push({\r\n                docId: this.document.documentID,\r\n                layerTable: l.layerTable,\r\n                layerTableId: l.layerTableId,\r\n                objectContourId: l.objectContourId\r\n            })\r\n            this.gisRestService.replaceLinks(newLinks).then(response => {\r\n                this.updateData();\r\n            }).catch(error => {\r\n                this.myBlockUI.stop();\r\n            });\r\n        });\r\n    }\r\n}\r\n\r\nexport const GisEditComponent: angular.IComponentOptions = {\r\n    controller: GisEditController,\r\n    template: require('./gis-edit.html'),\r\n    bindings: {\r\n        document: '<'\r\n    }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/gis/gis-edit.ts","module.exports = \"<loading-block loading-status=$ctrl.loadingStatus> <success> <div class=\\\"row gisSelctor\\\" block-ui=gisLoad> <div class=col-xs-6> <h4>Привязанные контура</h4> <div ng-class=\\\"{'alert-success': !l.hide, 'alert-warning': l.hide}\\\" class=\\\"alert alert-success\\\" style=margin-bottom:20px;margin-right:20px ng-if=\\\"$ctrl.links.length > 0\\\" ng-repeat=\\\"l in $ctrl.links\\\"> <div style=margin-bottom:10px> <span>ID контура: <b>{{l.objectContourId}}</b></span> </div> <div> <button ng-click=$ctrl.openMap(l) class=\\\"btn btn-primary\\\">Открыть на карте</button> <button ng-click=$ctrl.delete(l) class=\\\"btn btn-default\\\" title=\\\"Удалить связь\\\"><i class=\\\"fa fa-trash text-danger\\\"></i></button> <button ng-click=$ctrl.hide(l) uib-btn-checkbox ng-model=l.hide class=\\\"btn btn-default\\\" title=\\\"Скрыть связь\\\"><i class=\\\"fa fa-eye-slash\\\"></i></button> </div> </div> <div ng-if=\\\"$ctrl.links.length === 0\\\"> отсутствуют </div> </div> <div class=col-xs-6> <h4>Кандидаты на привязку</h4> <div class=\\\"alert alert-info\\\" style=margin-bottom:20px;margin-right:20px ng-if=\\\"$ctrl.allLinks.length > 0\\\" ng-repeat=\\\"l in $ctrl.allLinks\\\"> <div style=margin-bottom:10px> <span>ID контура: <b>{{l.objectContourId}}</b></span> </div> <div> <button ng-click=$ctrl.openMap(l) class=\\\"btn btn-primary\\\">Открыть на карте</button> <button ng-click=$ctrl.bind(l) class=\\\"btn btn-default\\\">Привязать</button> </div> </div> <div ng-if=\\\"$ctrl.allLinks.length === 0\\\"> отсутствуют </div> </div> </div> </success> <error> <div class=m-t-sm> <span class=\\\"fa fa-times-circle text-danger\\\"></span> <span> {{$ctrl.errorMessage}}</span> </div> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:40px> <div class=\\\"sk-spinner sk-spinner-three-bounce\\\"> <div class=sk-bounce1></div> <div class=sk-bounce2></div> <div class=sk-bounce3></div> </div> </div> </div> </loading> </loading-block>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/gis/gis-edit.html\n// module id = 127\n// module chunks = 0","import { DocumentIsogd } from 'isogd-document-rest';\r\nimport * as widgets from \"oasi-widgets\";\r\nimport { GisRestService } from 'isogd-gis-rest/dist/types/isogd-gis-rest/services/GisRestService';\r\n\r\nclass GisViewController {\r\n    static $inject = ['$state', '$timeout', 'gisRestService', '$filter', 'blockUI'];\r\n    \r\n    private document: DocumentIsogd;\r\n    private allLinks: any[]\r\n    private links: any[];\r\n    private myBlockUI: any;\r\n    private errorMessage: string;\r\n    private loadingStatus: widgets.LoadingStatus = widgets.LoadingStatus.LOADING;\r\n\r\n    constructor(private $state: ng.ui.IStateService, private $timeout: ng.ITimeoutService, private gisRestService: GisRestService, private $filter: ng.IFilterService, private blockUI: any) {\r\n    }\r\n\r\n    $onInit() {\r\n        let allLinks: any;\r\n        let links: any;\r\n        this.myBlockUI = this.blockUI.instances.get('gisLoad');\r\n        this.gisRestService.linksSearch({\r\n            registryCode: this.document.reestr,\r\n            docNumber: this.document.documentRequisites.documentNumber,\r\n            docDate: this.$filter('date')(new Date(this.document.documentRequisites.documentDate.toString()), 'yyyy-MM-dd')\r\n        }).then(response => {\r\n            allLinks = this.transformAllLinks(response);\r\n            return this.gisRestService.findByDocId(this.document.documentID);\r\n        }).then(response => {\r\n            links = this.transformLinks(response);\r\n            let newAllLinks = [];\r\n            allLinks.forEach(al => {\r\n                let find = false;\r\n                links.forEach(l => {\r\n                    if (al.layerTableId === l.layerTableId && al.objectContourId === l.objectContourId) {\r\n                        find = true;\r\n                    }\r\n                });\r\n                if (!find) {\r\n                    newAllLinks.push(al);\r\n                }\r\n            });\r\n            this.allLinks = newAllLinks;\r\n            this.links = links;\r\n\r\n            this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n        }).catch(error => {\r\n            this.errorMessage =  \"Данные не найдены\"\r\n            this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n        });\r\n    }\r\n\r\n    $onDestroy() {\r\n        this.myBlockUI.reset();\r\n    }\r\n\r\n    updateData() {\r\n        let allLinks: any;\r\n        let links: any;\r\n        this.gisRestService.linksSearch({\r\n            registryCode: this.document.reestr,\r\n            docNumber: this.document.documentRequisites.documentNumber,\r\n            docDate: this.$filter('date')(new Date(this.document.documentRequisites.documentDate.toString()), 'yyyy-MM-dd')\r\n        }).then(response => {\r\n            allLinks = this.transformAllLinks(response);\r\n            return this.gisRestService.findByDocId(this.document.documentID);\r\n        }).then(response => {\r\n            links = this.transformLinks(response);\r\n            let newAllLinks = [];\r\n            allLinks.forEach(al => {\r\n                let find = false;\r\n                links.forEach(l => {\r\n                    if (al.layerTableId === l.layerTableId && al.objectContourId === l.objectContourId) {\r\n                        find = true;\r\n                    }\r\n                });\r\n                if (!find) {\r\n                    newAllLinks.push(al);\r\n                }\r\n            });\r\n            this.allLinks = newAllLinks;\r\n            this.links = links;\r\n            this.myBlockUI.stop();\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n        });\r\n    }\r\n\r\n    transformAllLinks(response: any[]): any[] {\r\n        let allLinks = [];\r\n        response.forEach(r => {\r\n            allLinks.push({\r\n                layerTable: r.layerTable,\r\n                layerTableId: r.layerTableId,\r\n                objectContourId: r.objectContourId\r\n            });\r\n        });\r\n\r\n        return allLinks;\r\n    }\r\n\r\n    transformLinks(response: any): any[] {\r\n        let links = [];\r\n        response._embedded.links.forEach(r => {\r\n            links.push({\r\n                docId: r.docId,\r\n                hide: (r.hide),\r\n                id: r.id,\r\n                layerTable: r.layerTable,\r\n                layerTableId: r.layerTableId,\r\n                objectContourId: r.objectContourId\r\n            });\r\n        });\r\n        return links;\r\n    }\r\n\r\n    openMap(l: any) {\r\n        let url = \"/portal-gis/\" + l.layerTableId + \"/\" + l.objectContourId;\r\n        window.open(url, '_blank');\r\n    }\r\n\r\n    bind(l: any) {\r\n        this.myBlockUI.start();\r\n        this.$timeout(1500).then(response => {\r\n            let newLinks: any[] = [];;\r\n            this.links.forEach(ll => {\r\n                newLinks.push({\r\n                    docId: this.document.documentID,\r\n                    layerTable: ll.layerTable,\r\n                    layerTableId: ll.layerTableId,\r\n                    objectContourId: ll.objectContourId\r\n                });\r\n            });\r\n            newLinks.push({\r\n                docId: this.document.documentID,\r\n                layerTable: l.layerTable,\r\n                layerTableId: l.layerTableId,\r\n                objectContourId: l.objectContourId\r\n            })\r\n            this.gisRestService.replaceLinks(newLinks).then(response => {\r\n                this.updateData();\r\n            }).catch(error => {\r\n                this.myBlockUI.stop();\r\n            });\r\n        });\r\n    }\r\n}\r\n\r\nexport const GisViewComponent: angular.IComponentOptions = {\r\n    controller: GisViewController,\r\n    template: require('./gis-view.html'),\r\n    bindings: {\r\n        document: '<'\r\n    }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/gis/gis-view.ts","module.exports = \"<loading-block loading-status=$ctrl.loadingStatus> <success> <div class=\\\"row gisSelctor\\\" block-ui=gisLoad> <div class=col-xs-6> <h4>Привязанные контура</h4> <div ng-class=\\\"{'alert-success': !l.hide, 'alert-warning': l.hide}\\\" class=\\\"alert alert-success\\\" style=margin-bottom:20px;margin-right:20px ng-if=\\\"$ctrl.links.length > 0\\\" ng-repeat=\\\"l in $ctrl.links\\\"> <div style=margin-bottom:10px> <span>ID контура: <b>{{l.objectContourId}}</b></span> </div> <div> <button ng-click=$ctrl.openMap(l) class=\\\"btn btn-primary\\\">Открыть на карте</button> </div> </div> <div ng-if=\\\"$ctrl.links.length === 0\\\"> отсутствуют </div> </div> <div class=col-xs-6> <h4>Кандидаты на привязку</h4> <div class=\\\"alert alert-info\\\" style=margin-bottom:20px;margin-right:20px ng-if=\\\"$ctrl.allLinks.length > 0\\\" ng-repeat=\\\"l in $ctrl.allLinks\\\"> <div style=margin-bottom:10px> <span>ID контура: <b>{{l.objectContourId}}</b></span> </div> <div> <button ng-click=$ctrl.openMap(l) class=\\\"btn btn-primary\\\">Открыть на карте</button> </div> </div> <div ng-if=\\\"$ctrl.allLinks.length === 0\\\"> отсутствуют </div> </div> </div> </success> <error> <div class=m-t-sm> <span class=\\\"fa fa-times-circle text-danger\\\"></span> <span> {{$ctrl.errorMessage}}</span> </div> </error> <loading> <div class=m-t-sm> <div style=height:200px;padding-top:40px> <div class=\\\"sk-spinner sk-spinner-three-bounce\\\"> <div class=sk-bounce1></div> <div class=sk-bounce2></div> <div class=sk-bounce3></div> </div> </div> </div> </loading> </loading-block>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/gis/gis-view.html\n// module id = 129\n// module chunks = 0","import { IZepdLog } from 'isogd-file-rest';\r\n\r\nexport class LogFileGldController {\r\n    static $inject = ['$uibModalInstance', 'logs'];\r\n    constructor(private $uibModalInstance: angular.ui.bootstrap.IModalServiceInstance, private logs: IZepdLog[]) {\r\n    }\r\n\r\n    cancel() {\r\n        this.$uibModalInstance.close();\r\n    }\r\n}\n\n\n// WEBPACK FOOTER //\n// ./src/components/log-files/logFileDlg.ts","import * as widgets from \"oasi-widgets\";\r\nimport { SortingType } from \"../linkedDocuments/search-result-sorting\";\r\nimport * as _ from \"lodash\";\r\nimport { IZepdFile, ZeptRestService } from 'isogd-file-rest';\r\nimport { DocumentIsogd } from \"isogd-document-rest\";\r\n\r\nclass LogFilesController {\r\n    static $inject = ['$state', '$timeout', 'zeptRestService', '$filter', 'blockUI', '$uibModal', 'toastr'];\r\n    private document: DocumentIsogd;\r\n    private myBlockUI: any;\r\n    private files: IZepdFile[];\r\n    private loadingStatus: widgets.LoadingStatus = widgets.LoadingStatus.LOADING;\r\n    private status: boolean;\r\n    private loadedFilesNumber: number;\r\n    private allFilesNumber: number;\r\n    private summLoadedFilesSize: number;\r\n    private summAllFilesSize: number;\r\n    private sortings: SortingType[];\r\n    private firstTime: boolean;\r\n    private editor: boolean;\r\n\r\n    constructor(private $state: ng.ui.IStateService,\r\n        private $timeout: ng.ITimeoutService,\r\n        private zeptService: ZeptRestService,\r\n        private $filter: ng.IFilterService,\r\n        private blockUI: any,\r\n        private $uibModal: angular.ui.bootstrap.IModalService,\r\n        private toastr: Toastr) {\r\n    }\r\n\r\n    $onInit() {\r\n        this.sortings = [\r\n            new SortingType('lfileName', 'none', ''),\r\n            new SortingType('lfileSize', 'none', ''),\r\n            new SortingType('lfolderName', 'asc', ''),\r\n            new SortingType('ldateOper', 'none', ''),\r\n            new SortingType('lstatus', 'none', '')\r\n        ];\r\n\r\n        this.myBlockUI = this.blockUI.instances.get('logFiles');\r\n        this.zeptService.get(this.document.documentID).then(response => {\r\n            this.files = response;\r\n\r\n            this.calculate();\r\n            this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n        }).catch(error => {\r\n            this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n        });\r\n    }\r\n\r\n    private orderBy(files: any, sortings: SortingType[]): any[] {\r\n        let result: any[] = files;\r\n\r\n        sortings.slice().reverse().forEach(sorting => {\r\n            switch (sorting.value) {\r\n                case 'desc':\r\n                    result = this.$filter('orderBy')(result, sorting.name, true);\r\n                    break;\r\n                case 'asc':\r\n                    result = this.$filter('orderBy')(result, sorting.name, false);\r\n                    break;\r\n                default:\r\n                    break;\r\n            }\r\n        });\r\n\r\n        return result;\r\n    }\r\n\r\n    change(sorting: SortingType) {\r\n        this.update(sorting.name);\r\n        this.files = this.orderBy(this.files, this.sortings);\r\n    }\r\n\r\n    private update(columnName: string) {\r\n        this.sortings.forEach(v => {\r\n            if (v.name === columnName) {\r\n                switch (v.value) {\r\n                    case 'desc':\r\n                        v.value = 'asc';\r\n                        break;\r\n                    default:\r\n                        v.value = 'desc';\r\n                        break;\r\n                }\r\n            } else {\r\n                v.value = 'none';\r\n            }\r\n        });\r\n    }\r\n\r\n    private calculate(): void {\r\n        this.firstTime = !_.every(this.files, f => { return f.status === \"SUCCESS\" });\r\n\r\n\r\n        this.files.forEach(f => {\r\n            (<any>f).lfileName = f.fileName;\r\n            (<any>f).lstatus = f.status;\r\n            (<any>f).lfileSize = f.fileSize;\r\n            (<any>f).lfolderName = (<any>f).folderName;\r\n            (<any>f).ldateOper = (<any>f).dateOper;\r\n            (<any>f).lfileId = f.id;\r\n            (<any>f).lfolderId = f.guidFolder;\r\n            (<any>f).lurlPart = f.urlPart;\r\n            (<any>f).lattempt = f.attempt;\r\n        });\r\n\r\n        this.files = this.orderBy(this.files, this.sortings);\r\n\r\n        let result: boolean = true;\r\n        this.loadedFilesNumber = 0;\r\n        this.allFilesNumber = this.files.length;\r\n\r\n        this.summLoadedFilesSize = 0;\r\n        this.summAllFilesSize = 0;\r\n\r\n        this.files.forEach(f => {\r\n            this.summAllFilesSize += (f.fileSize === null) ? 0 : parseInt(f.fileSize);\r\n            if (f.status !== \"SUCCESS\") {\r\n                result = false;\r\n            } else {\r\n                this.loadedFilesNumber++;\r\n                this.summLoadedFilesSize += (f.fileSize === null) ? 0 : parseInt(f.fileSize);\r\n            }\r\n        });\r\n\r\n        this.summLoadedFilesSize = this.summLoadedFilesSize / (1024 * 1024);\r\n        this.summAllFilesSize = this.summAllFilesSize / (1024 * 1024);\r\n\r\n        this.status = result;\r\n    }\r\n\r\n    $onDestroy() {\r\n        this.myBlockUI.reset();\r\n    }\r\n\r\n    showHistory(file: IZepdFile) {\r\n        let modalInstance = this.$uibModal.open({\r\n            template: require('./logFileDlg.html'),\r\n            controller: 'LogFileGldController as ctrl',\r\n            size: \"lg\",\r\n            backdrop: 'static',\r\n            keyboard: false,\r\n            resolve: {\r\n                logs: () => { return file.zepdLogs }\r\n            }\r\n        });\r\n        modalInstance.result.then((result: any) => {\r\n        }).catch(error => {\r\n\r\n        });\r\n    }\r\n\r\n    upload() {\r\n        this.myBlockUI.start();\r\n        this.zeptService.post(this.document.documentID).then(response => {\r\n            this.zeptService.get(this.document.documentID).then(response => {\r\n                this.files = response;\r\n                this.calculate();\r\n                this.myBlockUI.stop();\r\n            }).catch(error => {\r\n                this.myBlockUI.stop();\r\n                this.toastr.error(\"Ошибка при дозагрузке файлов!\");\r\n            });\r\n        }).catch(error => {\r\n            this.myBlockUI.stop();\r\n            this.toastr.error(\"Ошибка при дозагрузке файлов!\");\r\n        });\r\n    }\r\n}\r\n\r\nexport const LogFilesComponent: angular.IComponentOptions = {\r\n    controller: LogFilesController,\r\n    template: require('./logFiles.html'),\r\n    bindings: {\r\n        document: '<',\r\n        editor: '<'\r\n    }\r\n};\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/log-files/logFiles.ts","module.exports = \"<div class=inmodal> <div class=modal-header> <h3 class=modal-title><i class=\\\"fa fa-history\\\" aria-hidden=true></i>&nbsp;История загрузки</h3> </div> <div class=modal-body style=background:#fff> <table class=\\\"table animated fadeIn\\\"> <thead> <tr> <th style=width:auto;vertical-align:bottom>Статус загрузки</th> <th style=width:auto;vertical-align:bottom>Дата загрузки</th> </tr> </thead> <tbody> <tr ng-repeat=\\\"log in ctrl.logs\\\"> <td style=vertical-align:middle!important;outline:0> <span class=\\\"label label-success\\\" ng-if=\\\"log.status === 'SUCCESS'\\\">Успешно</span> <span class=\\\"label label-danger\\\" ng-if=\\\"log.status === 'ERROR'\\\">Ошибка</span> </td> <td style=vertical-align:middle!important;outline:0>{{log.dateOper | date: \\\"dd.MM.yyyy\\\"}}</td> </tr> </tbody> </table> </div> <div class=modal-footer> <button type=button class=\\\"btn btn-white\\\" ng-click=ctrl.cancel()>Закрыть</button> </div> </div>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/log-files/logFileDlg.html\n// module id = 132\n// module chunks = 0","module.exports = \"<loading-block loading-status=$ctrl.loadingStatus> <success> <div ng-if=\\\"$ctrl.files.length === 0\\\"> <span class=\\\"text-warning fa fa-exclamation-triangle\\\"></span> <span> История загрузки файлов пуста</span> </div> <div class=logFiles block-ui=logFiles ng-if=\\\"$ctrl.files.length > 0\\\"> <div class=clearfix> <div style=margin-bottom:0 class=\\\"pull-left alert\\\" ng-class=\\\"{'alert-success': $ctrl.status, 'alert-danger': !$ctrl.status}\\\"> <p>Общий статус: <b><span ng-if=$ctrl.status>Загружены все файлы</span><span ng-if=!$ctrl.status>Не все файлы загружены</span></b></p> <p>Загружено: <b>{{$ctrl.loadedFilesNumber}} из {{$ctrl.allFilesNumber}} ({{$ctrl.summLoadedFilesSize | number:2}} Мб из {{$ctrl.summAllFilesSize | number:2}} Мб) </b></p> </div> <div style=margin-bottom:0 class=pull-right> <button class=\\\"btn btn-primary\\\" ng-if=$ctrl.firstTime ng-click=$ctrl.upload()>Догрузить файлы</button> </div> </div> <table class=\\\"table animated fadeIn\\\"> <thead> <tr> <th style=width:30px;vertical-align:bottom></th> <th style=width:300px;vertical-align:bottom> <span class=\\\"m-r-sm sorting\\\" style=margin-right:5px> <a ng-if=\\\"$ctrl.sortings[0].value === 'none'\\\" ng-click=$ctrl.change($ctrl.sortings[0])>Название документа</a> <a ng-if=\\\"$ctrl.sortings[0].value === 'asc'\\\" ng-click=$ctrl.change($ctrl.sortings[0])>Название документа <span class=\\\"fa fa-sort-asc\\\"></span></a> <a ng-if=\\\"$ctrl.sortings[0].value === 'desc'\\\" ng-click=$ctrl.change($ctrl.sortings[0])>Название документа <span class=\\\"fa fa-sort-desc\\\"></span></a> </span> </th> <th style=width:150px;vertical-align:bottom> <span class=\\\"m-r-sm sorting\\\" style=margin-right:5px> <a ng-if=\\\"$ctrl.sortings[1].value === 'none'\\\" ng-click=$ctrl.change($ctrl.sortings[1])>Размер</a> <a ng-if=\\\"$ctrl.sortings[1].value === 'asc'\\\" ng-click=$ctrl.change($ctrl.sortings[1])>Размер <span class=\\\"fa fa-sort-asc\\\"></span></a> <a ng-if=\\\"$ctrl.sortings[1].value === 'desc'\\\" ng-click=$ctrl.change($ctrl.sortings[1])>Размер <span class=\\\"fa fa-sort-desc\\\"></span></a> </span> </th> <th style=width:auto;vertical-align:bottom> <span class=\\\"m-r-sm sorting\\\" style=margin-right:5px> <a ng-if=\\\"$ctrl.sortings[2].value === 'none'\\\" ng-click=$ctrl.change($ctrl.sortings[2])>Название папки</a> <a ng-if=\\\"$ctrl.sortings[2].value === 'asc'\\\" ng-click=$ctrl.change($ctrl.sortings[2])>Название папки <span class=\\\"fa fa-sort-asc\\\"></span></a> <a ng-if=\\\"$ctrl.sortings[2].value === 'desc'\\\" ng-click=$ctrl.change($ctrl.sortings[2])>Название папки <span class=\\\"fa fa-sort-desc\\\"></span></a> </span> </th> <th style=width:150px;vertical-align:bottom> <span class=\\\"m-r-sm sorting\\\" style=margin-right:5px> <a ng-if=\\\"$ctrl.sortings[3].value === 'none'\\\" ng-click=$ctrl.change($ctrl.sortings[3])>Дата загрузки</a> <a ng-if=\\\"$ctrl.sortings[3].value === 'asc'\\\" ng-click=$ctrl.change($ctrl.sortings[3])>Дата загрузки <span class=\\\"fa fa-sort-asc\\\"></span></a> <a ng-if=\\\"$ctrl.sortings[3].value === 'desc'\\\" ng-click=$ctrl.change($ctrl.sortings[3])>Дата загрузки <span class=\\\"fa fa-sort-desc\\\"></span></a> </span> </th> <th style=width:150px;vertical-align:bottom> <span class=\\\"m-r-sm sorting\\\" style=margin-right:5px> <a ng-if=\\\"$ctrl.sortings[4].value === 'none'\\\" ng-click=$ctrl.change($ctrl.sortings[4])>Статус загрузки</a> <a ng-if=\\\"$ctrl.sortings[4].value === 'asc'\\\" ng-click=$ctrl.change($ctrl.sortings[4])>Статус загрузки <span class=\\\"fa fa-sort-asc\\\"></span></a> <a ng-if=\\\"$ctrl.sortings[4].value === 'desc'\\\" ng-click=$ctrl.change($ctrl.sortings[4])>Статус загрузки <span class=\\\"fa fa-sort-desc\\\"></span></a> </span> </th> <th style=padding-right:0;padding-top:0> </th> </tr> </thead> <tbody> <tr ng-repeat-start=\\\"f in $ctrl.files\\\" ng-init=\\\"rowShow = false;\\\"> <td ng-click=\\\"rowShow = !rowShow\\\" style=outline:0;vertical-align:middle!important> <span> <i class=\\\"fa fa-angle-right\\\" ng-show=\\\"rowShow === false\\\"></i><i class=\\\"fa fa-angle-down\\\" ng-show=\\\"rowShow === true\\\"></i> </span> </td> <td ng-click=\\\"rowShow = !rowShow\\\" style=vertical-align:middle!important;outline:0>{{f.lfileName}}</td> <td ng-click=\\\"rowShow = !rowShow\\\" style=vertical-align:middle!important;outline:0> <span ng-if=\\\"f.lfileSize !== null\\\">{{(f.lfileSize / (1024*1024)) | number:2}} Мб</span> </td> <td ng-click=\\\"rowShow = !rowShow\\\" style=vertical-align:middle!important;outline:0>{{f.lfolderName}}</td> <td ng-click=\\\"rowShow = !rowShow\\\" style=vertical-align:middle!important;outline:0>{{f.ldateOper | date: \\\"dd.MM.yyyy HH:mm\\\"}}</td> <td ng-click=\\\"rowShow = !rowShow\\\" style=vertical-align:middle!important;outline:0> <span class=\\\"label label-success\\\" ng-if=\\\"f.lstatus === 'SUCCESS'\\\">Успешно</span> <span class=\\\"label label-danger\\\" ng-if=\\\"f.lstatus === 'ERROR'\\\">Ошибка</span> <span class=\\\"label label-primary\\\" ng-if=\\\"f.lstatus === 'CREATE'\\\">Создан</span> </td> <th style=vertical-align:middle!important> <button ng-if=\\\"f.zepdLogs.length > 1\\\" class=\\\"btn btn-default\\\" title=\\\"Посмотреть историю\\\" ng-click=$ctrl.showHistory(f)><i class=\\\"fa fa-columns\\\"></i></button> </th> </tr> <tr ng-repeat-end ng-show=rowShow style=\\\"border-top:2px solid #de8650\\\"> <td colspan=7> <div class=\\\"row m-t-sm\\\"> <div class=\\\"col-lg-3 col-md-3 col-sm-3 control-label our-form-label\\\">Идентификатор файла</div> <div class=\\\"col-lg-9 col-md-9 col-sm-9\\\"> <p ng-if=f.lfileId class=specified>{{f.lfileId}}</p> <p ng-if=!f.lfileId class=not-specified>отсутсвует</p> </div> </div> <div class=row> <div class=\\\"col-lg-3 col-md-3 col-sm-3 control-label our-form-label\\\">Идентификатор папки файла</div> <div class=\\\"col-lg-9 col-md-9 col-sm-9\\\"> <p ng-if=f.lfolderId class=specified>{{f.lfolderId}}</p> <p ng-if=!f.lfolderId class=not-specified>отсутсвует</p> </div> </div> <div class=row> <div class=\\\"col-lg-3 col-md-3 col-sm-3 control-label our-form-label\\\">Значение тэга URLPart входящего документа</div> <div class=\\\"col-lg-9 col-md-9 col-sm-9\\\"> <p ng-if=f.lurlPart class=specified>{{f.lurlPart}}</p> <p ng-if=!f.lurlPart class=not-specified>отсутсвует</p> </div> </div> <div class=row> <div class=\\\"col-lg-3 col-md-3 col-sm-3 control-label our-form-label\\\">Колличество попыток</div> <div class=\\\"col-lg-9 col-md-9 col-sm-9\\\"> <p ng-if=f.lattempt class=specified>{{f.lattempt}}</p> <p ng-if=!f.lattempt class=not-specified>отсутсвует</p> </div> </div> </td> </tr> </tbody> </table> </div> </success> <error> <span class=\\\"text-danger fa fa-exclamation-triangle\\\"></span> <span> Ошибка при формировании истории загрузки файлов</span> </error> </loading-block>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/log-files/logFiles.html\n// module id = 133\n// module chunks = 0","import { DocumentIsogd } from \"isogd-document-rest\";\n\nclass RegistrationStatusController {\n    private document: DocumentIsogd;\n    private statuses: any[];\n    private color: string;\n    private value: string;\n\n    constructor() {\n    }\n\n    $onInit() {\n        this.statuses.forEach(s => {\n            if (s.code === this.document.registration.registrationStatus) {\n                this.color = s.color;\n                this.value = s.name;\n            }\n        });\n    }\n}\n\nexport const RegistrationStatusComponent: angular.IComponentOptions = {\n    controller: RegistrationStatusController,\n    template: require('./registrationStatus.html'),\n    bindings: {\n        document: '<',\n        statuses: '<'\n    }\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/registration-status/registrationStatus.ts","module.exports = \"Статус регистрации: <span class=\\\"label label-{{$ctrl.color}}\\\">{{$ctrl.value}}</span>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/registration-status/registrationStatus.html\n// module id = 135\n// module chunks = 0","import { SolarRestService } from 'isogd-solar-rest';\r\nimport * as widgets from \"oasi-widgets\";\r\nimport * as _ from \"lodash\";\r\nimport { DocumentIsogd, DocumentRestService, DocumentIsogdWrapper } from \"isogd-document-rest\";\r\nimport { NSIRegistrationStatus, NsiRestService } from \"oasi-nsi-rest\";\r\n\r\nclass DocumentHeaderController {\r\n    private document: DocumentIsogd;\r\n    private loadingStatus: widgets.LoadingStatus;\r\n    private registry: any\r\n    private changedDoc: DocumentIsogd[] = [];\r\n    private isDanger: boolean = false;\r\n    private message: string = \"Внесение изменений в зарегистрированный документ\";\r\n    private statuses: any[];\r\n    private showUnregistered: boolean = false;\r\n\tprivate showRegistered: boolean = true;\r\n\r\n    static $inject = ['$q', '$timeout', 'solarRestService', '$filter', 'nsiRestService', 'documentRestService'];\r\n\r\n    constructor(private $q: ng.IQService, private $timeout: any, private solarRestService: SolarRestService, private $filter: ng.IFilterService, private nsiRestService: NsiRestService, private documentRestService: DocumentRestService) {\r\n    }\r\n\r\n    $onInit() {\r\n        this.nsiRestService.get<NSIRegistrationStatus>('registrationStatus').then((response: NSIRegistrationStatus[])  => {\r\n            this.statuses = response;\r\n            this.loadingStatus = widgets.LoadingStatus.LOADING;\r\n\r\n            if (this.document && this.document.registration && this.document.registration.registrationStatus === 'CHANGE_QUEUE') {\r\n                let search = null;\r\n                if ((this.document.reestr === '8050') && (this.document.documentType = 'GPZU')) {\r\n                    search = {\r\n                        documentRegistrationCode: ['CHANGE_QUEUE', 'QUEUE', 'REGISTERED'],\r\n                        reestr: [this.document.reestr],\r\n                        documentNumber: this.document.documentRequisites.documentNumber\r\n                    };\r\n                } else {\r\n                    search = {\r\n                        documentRegistrationCode: ['CHANGE_QUEUE', 'QUEUE', 'REGISTERED'],\r\n                        reestr: [this.document.reestr],\r\n                        documentDateFrom: this.$filter('date')(this.document.documentRequisites.documentDate, 'yyyy-MM-dd'),\r\n                        documentDateTo: this.$filter('date')(this.document.documentRequisites.documentDate, 'yyyy-MM-dd'),\r\n                        documentNumber: this.document.documentRequisites.documentNumber\r\n                    };\r\n                }\r\n                this.solarRestService.searchExt(<any>(search)).then(response => {\r\n                    if (response.docs.length > 0) {\r\n                        response.docs.forEach(d => {\r\n                            let promises: ng.IPromise<DocumentIsogdWrapper>[] = [];\r\n                            if (d.documentId !== this.document.documentID) {\r\n                                promises.push(this.documentRestService.getDocument(d.documentId));\r\n                                this.$q.all(promises).then((docs: DocumentIsogdWrapper[]) => {\r\n                                    docs.forEach(_d => {\r\n                                        let d = _d.document;\r\n                                        if (d.registration.registrationStatus === 'QUEUE') {\r\n                                            this.isDanger = true;\r\n                                            this.message = \"Внесение изменений в незарегистрированный документ\";\r\n                                        }\r\n                                        this.changedDoc.push(d);\r\n                                    });\r\n                                    if (this.changedDoc.length > 0 && !this.isDanger) {\r\n                                        this.showUnregistered = true;\r\n                                    }\r\n                                    if (this.changedDoc.length > 0 && this.isDanger) {\r\n                                        this.showRegistered = false;\r\n                                    }\r\n                                    this.loadingStatus = widgets.LoadingStatus.SUCCESS;  \r\n                                }).catch(error => {\r\n                                    console.log(error);\r\n                                    this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n                                });\r\n                            } else {\r\n                                this.loadingStatus = widgets.LoadingStatus.SUCCESS; \r\n                            }\r\n                        });\r\n                    } else {\r\n                        this.loadingStatus = widgets.LoadingStatus.SUCCESS;     \r\n                    }\r\n                }).catch(error => {\r\n                    this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n                    console.log(error);\r\n                });\r\n            } else {\r\n                this.loadingStatus = widgets.LoadingStatus.SUCCESS;\r\n            }\r\n        }).catch(error => {\r\n            console.log(error);\r\n            this.loadingStatus = widgets.LoadingStatus.ERROR;\r\n        })\r\n   \r\n    }\r\n\r\n    getAddressString(): string {\r\n\t\tlet territoryValues = this.getTerritoryValues();\r\n\t\tif (this.document.object && this.document.object.objectAddress) {\r\n\t\t\tlet result = this.document.object.objectAddress;\r\n\t\t\tif (territoryValues && territoryValues.length > 0) {\r\n\t\t\t\tresult += ' (' + territoryValues.join(', ') + ')';\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t} else if (territoryValues && territoryValues.length > 0) {\r\n\t\t\treturn territoryValues.join(', ');\r\n\t\t}\r\n\t}\r\n\r\n\tgetTerritoryValues(): string[] {\r\n\t\tlet territory = (this.document.territory) ? this.document.territory : undefined;\r\n\t\tlet areas: string[] = territory ? _.map(this.document.territory.area, (area) => {\r\n\t\t\treturn area.areaName;\r\n\t\t}) : [];\r\n\t\tlet districts: string[] = territory ? _.map(this.document.territory.district, (district) => {\r\n\t\t\treturn district.districtName;\r\n\t\t}) : [];\r\n\t\treturn areas.concat(districts);\r\n\t}\r\n}\r\n\r\nexport const DocumentHeaderComponent: angular.IComponentOptions = {\r\n    controller: DocumentHeaderController,\r\n    template: require('./documentHeader.html'),\r\n    bindings: {\r\n        document: \"<\"\r\n    },\r\n    transclude: {\r\n        headerMenuSlot: \"headerMenu\"\r\n    },\r\n};\n\n\n// WEBPACK FOOTER //\n// ./src/components/document-header/documentHeader.ts","module.exports = \"<loading-block loading-status=$ctrl.loadingStatus> <success> <div class=m-b-xs ng-init=\\\"addressString = $ctrl.getAddressString()\\\"> <h3 class=m-t-xs ng-class=\\\"{'text-warning': !$ctrl.isDanger, 'text-danger': $ctrl.isDanger}\\\" ng-if=\\\"$ctrl.changedDoc.length > 0\\\"> {{$ctrl.message}} <a ng-repeat=\\\"doc in $ctrl.changedDoc\\\" class=\\\"fa fa-link\\\" ui-sref=\\\"app.isogd.card({id: doc.documentID})\\\" target=_blank aria-hidden=true></a> </h3> <div ng-if=$ctrl.isDanger class=\\\"alert alert-danger m-b-xs\\\" role=alert> Редактирование документа невозможно, до момента регистрации первичного документа </div> <div class=clearfix> <h2 class=\\\"m-t-sm m-b-xs semibold pull-left\\\" style=font-weight:600> <span>{{$ctrl.document.documentTypeValue}}</span> <span ng-if=$ctrl.document.documentRequisites.documentNumber>№ {{$ctrl.document.documentRequisites.documentNumber}}</span> <span ng-if=$ctrl.document.documentRequisites.documentDate>от {{$ctrl.document.documentRequisites.documentDate | date: 'dd.MM.yyyy'}}</span> </h2> <div class=pull-right ng-if=!$ctrl.isDanger> <div ng-transclude=headerMenuSlot></div> </div> </div> <h2 style=font-weight:500 class=\\\"m-t-xs normal\\\" ng-if=$ctrl.document.documentRequisites.documentName>{{$ctrl.document.documentRequisites.documentName}}</h2> <h2 style=font-weight:500 class=\\\"m-t-xs normal\\\" ng-if=addressString> {{addressString}} </h2> <h3 class=m-t-xs ng-if=$ctrl.document.object.objectName>{{$ctrl.document.object.objectName}}</h3> <div ng-if=$ctrl.document.territory.cadastralNumber>Кадастровый номер: {{$ctrl.document.territory.cadastralNumber.join(', ')}}</div> <div class=\\\"m-t-xs m-b-xs\\\"> <span style=margin-right:10px ng-if=$ctrl.document.documentRequisites.documentStatusValue>Статус действия: <span class=\\\"label label-{{$ctrl.document.documentRequisites.documentStatusColor}}\\\">{{$ctrl.document.documentRequisites.documentStatusValue}}</span></span> <registration-status document=$ctrl.document statuses=$ctrl.statuses></registration-status> </div> </div> </success> <error> <div class=m-t-sm> <span class=\\\"fa fa-times-circle text-danger\\\"></span> <span> Ошибка при формировании заголовка документа</span> </div> </error> <loading> <div class=m-t-sm> <div style=height:100px;padding-top:40px> <div class=\\\"sk-spinner sk-spinner-three-bounce\\\"> <div class=sk-bounce1></div> <div class=sk-bounce2></div> <div class=sk-bounce3></div> </div> </div> </div> </loading> </loading-block>\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/document-header/documentHeader.html\n// module id = 137\n// module chunks = 0","import { IParcelDossierWrapper } from 'isogd-dossier-rest';\r\nimport { DocumentLinkRestService, IDocumentLink } from 'isogd-document-link-rest';\r\nimport * as _ from 'lodash';\r\nimport { DocumentIsogd, DocumentTerritory } from 'isogd-document-rest';\r\n\r\nexport class LinkedDocumentService {\r\n    static $inject = ['$timeout', 'toastr', 'documentLinkRestService', '$q'];\r\n\r\n    constructor(private $timeout: ng.ITimeoutService,\r\n        private toastr: Toastr, private documentLinkRestService: DocumentLinkRestService, private $q: ng.IQService) {\r\n    }\r\n\r\n    public changeLink(link: IDocumentLink): ng.IPromise<void> {\r\n        let defer: ng.IDeferred<void> = this.$q.defer<void>();\r\n        this.$timeout(1500).then(response => {\r\n            this.documentLinkRestService.update(link).then(response => {\r\n                defer.resolve();\r\n            }).catch(error => {\r\n                defer.reject(error);\r\n            });\r\n        });\r\n        return defer.promise;\r\n    }\r\n\r\n    public deleteLink(link: IDocumentLink): ng.IPromise<void> {\r\n        let defer: ng.IDeferred<void> = this.$q.defer<void>();\r\n        this.$timeout(1500).then(response => {\r\n            this.documentLinkRestService.delete(link.linkId).then(response => {\r\n                defer.resolve();\r\n            }).catch(error => {\r\n                defer.reject(error);\r\n            });\r\n        });\r\n        return defer.promise;\r\n    }\r\n\r\n    public getAddress(dossier: IParcelDossierWrapper): string {\r\n        let result: string = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.address) {\r\n            result += dossier.parcelDossier.address;\r\n            result += \" \";\r\n        }\r\n\r\n        let areaName = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.area && dossier.parcelDossier.area.areaName) {\r\n            areaName = dossier.parcelDossier.area.areaName;\r\n        }\r\n\r\n        let districtName = '';\r\n\r\n        if (dossier && dossier.parcelDossier && dossier.parcelDossier.district && dossier.parcelDossier.district.districtName) {\r\n            districtName = dossier.parcelDossier.district.districtName;\r\n        }\r\n\r\n        let secondPart = '';\r\n\r\n        if (areaName) {\r\n            secondPart += areaName;\r\n        }\r\n\r\n        if (districtName) {\r\n            secondPart += (areaName) ? ', ' : '';\r\n            secondPart += districtName;\r\n        }\r\n\r\n        if (secondPart) {\r\n            secondPart = ' (' + secondPart + ')';\r\n        }\r\n\r\n        result += secondPart;\r\n\r\n        return result;\r\n    }\r\n\r\n    public findChapterByCode(chapters: any[], code: string): string {\r\n        let result = this._findChapterByCode(chapters, code);\r\n\r\n        return (result) ? result.name : \"\";\r\n    }\r\n\r\n    public findLinkTypeByCode(linkdocTypes: any[], code: string): string {\r\n        let result: string = null;\r\n\r\n        linkdocTypes.forEach(ch => {\r\n            if (ch.code === code) {\r\n                result = ch.name;\r\n            }\r\n        });\r\n\r\n        return result;\r\n    }\r\n\r\n    public getAddressString(document: DocumentIsogd): string {\r\n        if (document.territory) {\r\n            let territoryValues = this.getTerritoryValues(document.territory);\r\n            if (document.object && document.object.objectAddress) {\r\n                let result = document.object.objectAddress;\r\n                if (territoryValues && territoryValues.length > 0) {\r\n                    result += ' (' + territoryValues.join(', ') + ')';\r\n                }\r\n                return result;\r\n            } else if (territoryValues && territoryValues.length > 0) {\r\n                return territoryValues.join(', ');\r\n            }\r\n        } else {\r\n            return \"\";\r\n        }\r\n    }\r\n\r\n    public getTerritoryValues(territory: DocumentTerritory): string[] {\r\n        let areas: string[] = territory ? _.map(territory.area, (area) => {\r\n            return area.areaName;\r\n        }) : [];\r\n        let districts: string[] = territory ? _.map(territory.district, (district) => {\r\n            return district.districtName;\r\n        }) : [];\r\n        return areas.concat(districts);\r\n    }\r\n\r\n    private _findChapterByCode(chapters: any[], code: string): any {\r\n        let result: any = null;\r\n\r\n        chapters.forEach(ch => {\r\n            if (ch.chapterCode === code) {\r\n                result = ch;\r\n            }\r\n            if (ch.children && ch.children.length > 0) {\r\n                let r = this._findChapterByCode(ch.children, code);\r\n                if (r !== null) {\r\n                    result = r;\r\n                }\r\n            }\r\n        });\r\n\r\n        return result;\r\n    }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./src/services/LinkedDocumentService.ts"]}