UNPKG

114 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
7var React = require('react');
8var React__default = _interopDefault(React);
9var filesize = _interopDefault(require('filesize'));
10var reactstrap = require('reactstrap');
11var InputStyleOne = _interopDefault(require('input-style-one'));
12var notify = require('wx-notify');
13var notify__default = _interopDefault(notify);
14var reactApollo = require('react-apollo');
15var gql = _interopDefault(require('graphql-tag'));
16var ApolloClient = _interopDefault(require('apollo-client'));
17var apolloLinkHttp = require('apollo-link-http');
18var apolloCacheInmemory = require('apollo-cache-inmemory');
19var apolloLink = require('apollo-link');
20var apolloLinkContext = require('apollo-link-context');
21var Cookies = _interopDefault(require('js-cookie'));
22var apolloUploadClient = require('apollo-upload-client');
23var accepts = _interopDefault(require('attr-accept'));
24
25const img = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4NCg0KPHN2Zw0KICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIg0KICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyINCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyINCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiDQogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSINCiAgIHdpZHRoPSIxNjAiDQogICBoZWlnaHQ9IjE2MCINCiAgIHZpZXdCb3g9IjAgMCA0Mi4zMzMzMzIgNDIuMzMzMzM1Ig0KICAgdmVyc2lvbj0iMS4xIg0KICAgaWQ9InN2ZzgiDQogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjEgcjE1MzcxIg0KICAgc29kaXBvZGk6ZG9jbmFtZT0iTGlsRG9jV2l0aFBsdXMuc3ZnIj4NCiAgPGRlZnMNCiAgICAgaWQ9ImRlZnMyIiAvPg0KICA8c29kaXBvZGk6bmFtZWR2aWV3DQogICAgIGlkPSJiYXNlIg0KICAgICBwYWdlY29sb3I9IiNmZmZmZmYiDQogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2Ig0KICAgICBib3JkZXJvcGFjaXR5PSIxLjAiDQogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiDQogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiDQogICAgIGlua3NjYXBlOnpvb209IjAuMzUiDQogICAgIGlua3NjYXBlOmN4PSItNTAxLjQyODU3Ig0KICAgICBpbmtzY2FwZTpjeT0iMjYwIg0KICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iDQogICAgIGlua3NjYXBlOmN1cnJlbnQtbGF5ZXI9ImxheWVyMSINCiAgICAgc2hvd2dyaWQ9ImZhbHNlIg0KICAgICB1bml0cz0icHgiDQogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTYwMCINCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iODM3Ig0KICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTgiDQogICAgIGlua3NjYXBlOndpbmRvdy15PSItOCINCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4NCiAgPG1ldGFkYXRhDQogICAgIGlkPSJtZXRhZGF0YTUiPg0KICAgIDxyZGY6UkRGPg0KICAgICAgPGNjOldvcmsNCiAgICAgICAgIHJkZjphYm91dD0iIj4NCiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+DQogICAgICAgIDxkYzp0eXBlDQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+DQogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPg0KICAgICAgPC9jYzpXb3JrPg0KICAgIDwvcmRmOlJERj4NCiAgPC9tZXRhZGF0YT4NCiAgPGcNCiAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiDQogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiDQogICAgIGlkPSJsYXllcjEiDQogICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTI1NC42NjY2NSkiPg0KICAgIDxnDQogICAgICAgaWQ9Imc0MyINCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjEwMjQyNzcsMCwwLDEuMTAyNDI3NywtMzEzLjgwMDMxLC0yNDEuMzc3NTMpIj4NCiAgICAgIDxwYXRoDQogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIg0KICAgICAgICAgaWQ9InBhdGgyNiINCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmUiDQogICAgICAgICBkPSJtIDI4NC42NDQ4LDQ0OS45NTYyIHYgMzguNDAwMSBoIDM4LjQwMDEgdiAtMzguNDAwMSB6IiAvPg0KICAgICAgPHBhdGgNCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiDQogICAgICAgICBpZD0icGF0aDI4Ig0KICAgICAgICAgc3R5bGU9ImZpbGw6Izk5OTk5OTtmaWxsLXJ1bGU6ZXZlbm9kZCINCiAgICAgICAgIGQ9Im0gMjg0LjY0NDgsNDU4LjMzNTMgaCAxMy4yMjM2IGwgNi43MTgsNi43MTc5IHYgMTkuOTI2NyBoIC0xOS45NDE2IHogbSAxMy4yMjUsMS44MTg4IDQuODk3OSw0Ljg5NzggaCAtNC44OTc5IHoiIC8+DQogICAgICA8cGF0aA0KICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCINCiAgICAgICAgIGlkPSJwYXRoMzAiDQogICAgICAgICBzdHlsZT0iZmlsbDojOTk5OTk5O2ZpbGwtcnVsZTpldmVub2RkIg0KICAgICAgICAgZD0ibSAzMTIuOTM3NCw0NTMuMzMyNiBoIDUuMDI0MiB2IDUuMDgzMiBoIDUuMDgzMyB2IDUuMDI0NCBoIC01LjA4MzMgdiA1LjA4NDUgaCAtNS4wMjQyIHYgLTUuMDg0NSBoIC01LjA4NDYgdiAtNS4wMjQ0IGggNS4wODQ2IHoiIC8+DQogICAgPC9nPg0KICA8L2c+DQo8L3N2Zz4NCg==';
26
27/*! *****************************************************************************
28Copyright (c) Microsoft Corporation. All rights reserved.
29Licensed under the Apache License, Version 2.0 (the "License"); you may not use
30this file except in compliance with the License. You may obtain a copy of the
31License at http://www.apache.org/licenses/LICENSE-2.0
32
33THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
34KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
35WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
36MERCHANTABLITY OR NON-INFRINGEMENT.
37
38See the Apache Version 2.0 License for specific language governing permissions
39and limitations under the License.
40***************************************************************************** */
41
42var __assign = function() {
43 __assign = Object.assign || function __assign(t) {
44 for (var s, i = 1, n = arguments.length; i < n; i++) {
45 s = arguments[i];
46 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
47 }
48 return t;
49 };
50 return __assign.apply(this, arguments);
51};
52
53function __awaiter(thisArg, _arguments, P, generator) {
54 return new (P || (P = Promise))(function (resolve, reject) {
55 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
56 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
57 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
58 step((generator = generator.apply(thisArg, _arguments || [])).next());
59 });
60}
61
62function __generator(thisArg, body) {
63 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
64 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
65 function verb(n) { return function (v) { return step([n, v]); }; }
66 function step(op) {
67 if (f) throw new TypeError("Generator is already executing.");
68 while (_) try {
69 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
70 if (y = 0, t) op = [op[0] & 2, t.value];
71 switch (op[0]) {
72 case 0: case 1: t = op; break;
73 case 4: _.label++; return { value: op[1], done: false };
74 case 5: _.label++; y = op[1]; op = [0]; continue;
75 case 7: op = _.ops.pop(); _.trys.pop(); continue;
76 default:
77 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
78 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
79 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
80 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
81 if (t[2]) _.ops.pop();
82 _.trys.pop(); continue;
83 }
84 op = body.call(thisArg, _);
85 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
86 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
87 }
88}
89
90function __makeTemplateObject(cooked, raw) {
91 if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
92 return cooked;
93}
94
95function styleInject(css, ref) {
96 if ( ref === void 0 ) ref = {};
97 var insertAt = ref.insertAt;
98
99 if (!css || typeof document === 'undefined') { return; }
100
101 var head = document.head || document.getElementsByTagName('head')[0];
102 var style = document.createElement('style');
103 style.type = 'text/css';
104
105 if (insertAt === 'top') {
106 if (head.firstChild) {
107 head.insertBefore(style, head.firstChild);
108 } else {
109 head.appendChild(style);
110 }
111 } else {
112 head.appendChild(style);
113 }
114
115 if (style.styleSheet) {
116 style.styleSheet.cssText = css;
117 } else {
118 style.appendChild(document.createTextNode(css));
119 }
120}
121
122var css = ".f-manager{display:flex;flex-direction:column;margin-bottom:10px;box-shadow:0 0 5px rgba(0,0,0,.32);background:#fff;border-radius:5px;width:100%}.f-manager .jbtn{height:35px}.f-manager__block{position:relative;padding:0 12px;display:flex;height:46px;justify-content:space-between}.f-manager__block_item1,.f-manager__block_right{display:flex;align-items:center}.f-manager__block_item1{padding-left:0;margin-right:15px;width:100%;overflow:hidden}.f-manager__block_item1 .item1-text{overflow:hidden;width:60%;justify-content:flex-start;display:grid;flex-direction:column;align-items:start;padding:0;line-height:1.2}.f-manager__block_item1 .item1-text p{line-height:1.2;margin:0;font-size:15px;font-family:dinpro-bold;color:#333;white-space:nowrap;overflow:hidden;width:100%;text-overflow:ellipsis}.f-manager__block_item1 .item1-text span{font-size:11px;color:#b3b3b3;font-family:dinpro-med;text-align:left}.f-manager__block_item1 p{margin-bottom:0}.f-manager__block_item1 img{width:21px;height:21px;margin-right:10px}.f-manager__block_item4{box-shadow:none;background-color:transparent;border-left:1px solid #ccc;padding-left:10px;margin-left:10px;display:flex;align-items:center;height:65%}.f-manager__block_item4 a,.f-manager__block_item4 button,.f-manager__block_item4 span{color:#333;font-family:dinpro-med;text-decoration:none;font-size:14px}.f-manager__block_new-doc{text-transform:uppercase;font-size:10px;border-top-right-radius:5px;border-bottom-right-radius:5px;padding:3px 15px;line-height:1;color:#fff;font-family:dinpro-bold;height:20px;position:absolute;right:0;top:14px;margin:auto -118px auto auto;background:linear-gradient(135deg,transparent 8px,#8d1843 0) 0 0,linear-gradient(45deg,transparent 8px,#8d1843 0) 0 100%;background-size:100% 50%;background-repeat:no-repeat}.f-manager__block_remove{cursor:pointer;border-left:1px solid #ccc;padding:0 7px 0 16px;background:#fff;margin-left:10px;display:flex;height:65%}.f-manager__block_remove img{width:15px}.f-manager__block_status{margin-bottom:0;font-size:12px;display:flex;line-height:1;align-items:center;font-family:dinpro-med;color:grey;max-width:176px;border:none;padding-right:10px;height:65%}.f-manager__block_status img{width:15px;margin-right:5px}.f-manager__block_status_error{color:red}.f-manager__signs{display:flex;align-items:center;justify-content:flex-end;height:46px}.f-manager__signs_label{font-size:13px;color:#333;font-family:dinpro-bold;margin-right:10px}.sign-button{margin-top:10px;display:flex;justify-content:flex-end}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9maWxlLXZpZXdlci5zY3NzIiwic3JjL3N0eWxlcy9fZm9udHMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxXQUNFLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsa0JBQWtCLENBQ2xCLGtDQUF1QyxDQUN2QyxlQUFpQixDQUNqQixpQkFBa0IsQ0FDbEIsVUFBVyxDQVBiLGlCQVNJLFdBQVksQ0FHZCxrQkFDRSxpQkFBa0IsQ0FDbEIsY0FBaUIsQ0FDakIsWUFBYSxDQUNiLFdBQVksQ0FDWiw2QkFBOEIsQ0FNOUIsZ0RBSEUsWUFBYSxDQUNiLGtCQVFnQixDQU5sQix3QkFDRSxjQUFlLENBQ2YsaUJBQWtCLENBQ2xCLFVBQVcsQ0FHWCxlQUFnQixDQU5qQixvQ0FRRyxlQUFnQixDQUNoQixTQUFVLENBQ1YsMEJBQTJCLENBQzNCLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsaUJBQWtCLENBQ2xCLFNBQVUsQ0FDVixlQUFnQixDQWZuQixzQ0FpQkssZUFBZ0IsQ0FDaEIsUUFBUyxDQUNULGNBQWUsQ0FDZix1QkMzQ2EsQ0Q0Q2IsVUFBYyxDQUNkLGtCQUFtQixDQUNuQixlQUFnQixDQUNoQixVQUFXLENBQ1gsc0JBQW1ELENBekJ4RCx5Q0E0QkssY0FBZSxDQUNmLGFBQWMsQ0FDZCxzQkN0RFcsQ0R1RFgsZUFBZ0IsQ0EvQnJCLDBCQW1DRyxlQUFnQixDQW5DbkIsNEJBc0NHLFVBQVcsQ0FDWCxXQUFZLENBQ1osaUJBQWtCLENBR3RCLHdCQUNFLGVBQWdCLENBQ2hCLDRCQUE2QixDQUM3QiwwQkFBOEIsQ0FDOUIsaUJBQWtCLENBRWxCLGdCQUFpQixDQUNqQixZQUFhLENBQ2Isa0JBQW1CLENBQ25CLFVBQVcsQ0FUWixzRkFXRyxVQUFjLENBQ2Qsc0JDL0VhLENEZ0ZiLG9CQUFxQixDQUNyQixjQUFlLENBR25CLDBCQUNFLHdCQUF5QixDQUN6QixjQUFlLENBQ2YsMkJBQTRCLENBQzVCLDhCQUErQixDQUMvQixnQkFBaUIsQ0FDakIsYUFBYyxDQUNkLFVBQVksQ0FDWix1QkMzRmlCLENENEZqQixXQUFZLENBRVosaUJBQWtCLENBQ2xCLE9BQVEsQ0FDUixRQUFTLENBQ1QsNEJBQW9CLENBQ3BCLHdIQUM4RCxDQUM5RCx3QkFBeUIsQ0FDekIsMkJBQTRCLENBRTlCLHlCQUNFLGNBQWUsQ0FDZiwwQkFBOEIsQ0FDOUIsb0JBQXFCLENBQ3JCLGVBQWlCLENBQ2pCLGdCQUFpQixDQUNqQixZQUFhLENBQ2IsVUFBVyxDQVBaLDZCQVNHLFVBQVcsQ0FHZix5QkFDRSxlQUFnQixDQUNoQixjQUFlLENBQ2YsWUFBYSxDQUNiLGFBQWMsQ0FDZCxrQkFBbUIsQ0FDbkIsc0JDMUhlLENEMkhmLFVBQWMsQ0FDZCxlQUFnQixDQUVoQixXQUFZLENBRVosa0JBQW1CLENBQ25CLFVBQVcsQ0FiWiw2QkFlRyxVQUFXLENBQ1gsZ0JBQWlCLENBRW5CLCtCQUNFLFNBQVUsQ0FJaEIsa0JBQ0UsWUFBYSxDQUNiLGtCQUFtQixDQUNuQix3QkFBeUIsQ0FDekIsV0FBWSxDQUNaLHdCQUNFLGNBQWUsQ0FDZixVQUFjLENBQ2QsdUJBQXdCLENBQ3hCLGlCQUFrQixDQUl4QixhQUNFLGVBQWdCLENBQ2hCLFlBQWEsQ0FDYix3QkFBeUIiLCJmaWxlIjoiZmlsZS12aWV3ZXIuc2NzcyJ9 */";
123styleInject(css);
124
125const img$1 = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4NCg0KPHN2Zw0KICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIg0KICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyINCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyINCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiDQogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSINCiAgIHdpZHRoPSIxNjAiDQogICBoZWlnaHQ9IjE2MCINCiAgIHZpZXdCb3g9IjAgMCA0Mi4zMzMzMzIgNDIuMzMzMzM1Ig0KICAgdmVyc2lvbj0iMS4xIg0KICAgaWQ9InN2ZzgiDQogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjEgcjE1MzcxIg0KICAgc29kaXBvZGk6ZG9jbmFtZT0iZ2Fsa2Euc3ZnIj4NCiAgPGRlZnMNCiAgICAgaWQ9ImRlZnMyIiAvPg0KICA8c29kaXBvZGk6bmFtZWR2aWV3DQogICAgIGlkPSJiYXNlIg0KICAgICBwYWdlY29sb3I9IiNmZmZmZmYiDQogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2Ig0KICAgICBib3JkZXJvcGFjaXR5PSIxLjAiDQogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiDQogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiDQogICAgIGlua3NjYXBlOnpvb209IjIuNDMxMTk5NSINCiAgICAgaW5rc2NhcGU6Y3g9IjExMS4xMTY3OCINCiAgICAgaW5rc2NhcGU6Y3k9IjY1LjIzMDQ0OSINCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIg0KICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiDQogICAgIHNob3dncmlkPSJmYWxzZSINCiAgICAgdW5pdHM9InB4Ig0KICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjExNTMiDQogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9Ijc0NSINCiAgICAgaW5rc2NhcGU6d2luZG93LXg9IjU2MyINCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ijc5Ig0KICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIwIiAvPg0KICA8bWV0YWRhdGENCiAgICAgaWQ9Im1ldGFkYXRhNSI+DQogICAgPHJkZjpSREY+DQogICAgICA8Y2M6V29yaw0KICAgICAgICAgcmRmOmFib3V0PSIiPg0KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4NCiAgICAgICAgPGRjOnR5cGUNCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4NCiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+DQogICAgICA8L2NjOldvcms+DQogICAgPC9yZGY6UkRGPg0KICA8L21ldGFkYXRhPg0KICA8Zw0KICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSINCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciINCiAgICAgaWQ9ImxheWVyMSINCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwtMjU0LjY2NjY1KSI+DQogICAgPGcNCiAgICAgICBpZD0iZzM4MTYiDQogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMS4xMDI0Mjc3LDAsMCwxLjEwMjQyNzcsNi42MTQ1NjYyZS00LDI1NC42NjY1NCkiPg0KICAgICAgPHBhdGgNCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiDQogICAgICAgICBpZD0icGF0aDM4MDIiDQogICAgICAgICBzdHlsZT0iZmlsbDojNDVhMTI1O2ZpbGwtcnVsZTpldmVub2RkIg0KICAgICAgICAgZD0iTSAtNmUtNCwxNS4xOTc1IDE0LjQ1MjcsMzMuMjAzNyAzOC40MDAyLDUuMTk2MiAxMy44NDg5LDIyLjc3MDMgWiIgLz4NCiAgICAgIDxwYXRoDQogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIg0KICAgICAgICAgaWQ9InBhdGgzODA0Ig0KICAgICAgICAgc3R5bGU9ImZpbGw6bm9uZSINCiAgICAgICAgIGQ9Ik0gMWUtNCwxZS00IFYgMzguNDAwMiBIIDM4LjQwMDIgViAxZS00IFoiIC8+DQogICAgPC9nPg0KICA8L2c+DQo8L3N2Zz4NCg==';
126
127const img$2 = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMTYwIgogICBoZWlnaHQ9IjE2MCIKICAgdmlld0JveD0iMCAwIDQyLjMzMzMzMiA0Mi4zMzMzMzUiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzgiCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMSByMTUzNzEiCiAgIHNvZGlwb2RpOmRvY25hbWU9InJlZGNyb3NzLnN2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczIiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJiYXNlIgogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiIKICAgICBib3JkZXJjb2xvcj0iIzY2NjY2NiIKICAgICBib3JkZXJvcGFjaXR5PSIxLjAiCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCIKICAgICBpbmtzY2FwZTpwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnpvb209IjIuMDQxMDA3IgogICAgIGlua3NjYXBlOmN4PSIxOTQuMjY2MzciCiAgICAgaW5rc2NhcGU6Y3k9IjMwLjQ4NzA1NCIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0ibW0iCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICB1bml0cz0icHgiCiAgICAgaW5rc2NhcGU6d2luZG93LXdpZHRoPSIxNjAwIgogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjgzNyIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii04IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+CiAgPG1ldGFkYXRhCiAgICAgaWQ9Im1ldGFkYXRhNSI+CiAgICA8cmRmOlJERj4KICAgICAgPGNjOldvcmsKICAgICAgICAgcmRmOmFib3V0PSIiPgogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0PgogICAgICAgIDxkYzp0eXBlCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4KICAgICAgPC9jYzpXb3JrPgogICAgPC9yZGY6UkRGPgogIDwvbWV0YWRhdGE+CiAgPGcKICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSIKICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIgogICAgIGlkPSJsYXllcjEiCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwtMjU0LjY2NjY1KSI+CiAgICA8ZwogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC43NDI3NzQwMywwLDAsMC43NDI3NzQwMyw1LjQ0NDcyOCw3MC45NTE1MDcpIgogICAgICAgaWQ9ImxheWVyMS0wIgogICAgICAgaW5rc2NhcGU6bGFiZWw9IkxheWVyIDEiPgogICAgICA8ZwogICAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjEwMjQyNzcsMCwwLDEuMTAyNDI3NywtMS4xMDI0Mjc3ZS00LDI1NC42NjY1NCkiCiAgICAgICAgIGlkPSJnNDMiPgogICAgICAgIDxwYXRoCiAgICAgICAgICAgZD0iTSAxZS00LDFlLTQgViAzOC40MDAyIEggMzguNDAwMiBWIDFlLTQgWiIKICAgICAgICAgICBzdHlsZT0iZmlsbDpub25lIgogICAgICAgICAgIGlkPSJwYXRoMjkiCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgICAgICA8cGF0aAogICAgICAgICAgIGQ9Ik0gNi4wOTM1LDEuMDI5MSAxOS4yMDA5LDEzLjk3NDcgMzIuMzA4NiwxLjAyODggYyAxLjM4ODcsLTEuMzcxNyAzLjY2MTIsLTEuMzcxNCA1LjA1MDUsNmUtNCAxLjM4ODcsMS4zNzE3IDEuMzg5NSwzLjYxNjIgNWUtNCw0Ljk4NzggTCAyNC4yNTIsMTguOTYzNCAzNy4zNTk2LDMxLjkwOTIgYyAxLjM4ODQsMS4zNzE3IDEuMzg4NCwzLjYxNjEgLThlLTQsNC45ODgxIC0xLjM4ODcsMS4zNzE3IC0zLjY2MTIsMS4zNzIzIC01LjA1MDIsNmUtNCBMIDE5LjIwMDksMjMuOTUyIDYuMDkzNSwzNi44OTc2IEMgNC43MDQ4LDM4LjI2OSAyLjQzMjMsMzguMjY5IDEuMDQzMywzNi44OTcgLTAuMzQ1NywzNS41MjUzIC0wLjM0NjMsMzMuMjgwOSAxLjA0MjcsMzEuOTA4OSBMIDE0LjE1MDEsMTguOTYzNCAxLjA0MjQsNi4wMTc1IEMgLTAuMzQ2Myw0LjY0NjEgLTAuMzQ2LDIuNDAxNyAxLjA0MywxLjAyOTcgMi40MzIsLTAuMzQyIDQuNzA0NSwtMC4zNDI5IDYuMDkzNSwxLjAyOTEgWiIKICAgICAgICAgICBzdHlsZT0iZmlsbDojZmYwMDAwO2ZpbGwtcnVsZTpldmVub2RkIgogICAgICAgICAgIGlkPSJwYXRoMzEiCiAgICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4KICAgICAgPC9nPgogICAgPC9nPgogICAgPHJlY3QKICAgICAgIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlLXdpZHRoOjAuMjM0Nzg5NzMiCiAgICAgICBpZD0icmVjdDIyIgogICAgICAgd2lkdGg9IjQyLjMzMzMzMiIKICAgICAgIGhlaWdodD0iNDIuMzMzMzMyIgogICAgICAgeD0iMCIKICAgICAgIHk9IjI1NC42NjY2NiIgLz4KICA8L2c+Cjwvc3ZnPgo=';
128
129const img$3 = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4NCg0KPHN2Zw0KICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIg0KICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyINCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyINCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiDQogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSINCiAgIHdpZHRoPSIxNjAiDQogICBoZWlnaHQ9IjE2MCINCiAgIHZpZXdCb3g9IjAgMCA0Mi4zMzMzMzIgNDIuMzMzMzM1Ig0KICAgdmVyc2lvbj0iMS4xIg0KICAgaWQ9InN2ZzgiDQogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjEgcjE1MzcxIg0KICAgc29kaXBvZGk6ZG9jbmFtZT0iMzRDcm9zcy5zdmciPg0KICA8ZGVmcw0KICAgICBpZD0iZGVmczIiIC8+DQogIDxzb2RpcG9kaTpuYW1lZHZpZXcNCiAgICAgaWQ9ImJhc2UiDQogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiINCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiDQogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCINCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCINCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiINCiAgICAgaW5rc2NhcGU6em9vbT0iMi4xMSINCiAgICAgaW5rc2NhcGU6Y3g9IjczLjg5ODQxMyINCiAgICAgaW5rc2NhcGU6Y3k9IjY5LjYxNDA4MyINCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIg0KICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiDQogICAgIHNob3dncmlkPSJmYWxzZSINCiAgICAgdW5pdHM9InB4Ig0KICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9Ijc0MyINCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iNTkxIg0KICAgICBpbmtzY2FwZTp3aW5kb3cteD0iNzEwIg0KICAgICBpbmtzY2FwZTp3aW5kb3cteT0iNzUiDQogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjAiIC8+DQogIDxtZXRhZGF0YQ0KICAgICBpZD0ibWV0YWRhdGE1Ij4NCiAgICA8cmRmOlJERj4NCiAgICAgIDxjYzpXb3JrDQogICAgICAgICByZGY6YWJvdXQ9IiI+DQogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0Pg0KICAgICAgICA8ZGM6dHlwZQ0KICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPg0KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4NCiAgICAgIDwvY2M6V29yaz4NCiAgICA8L3JkZjpSREY+DQogIDwvbWV0YWRhdGE+DQogIDxnDQogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIg0KICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIg0KICAgICBpZD0ibGF5ZXIxIg0KICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLC0yNTQuNjY2NjUpIj4NCiAgICA8Zw0KICAgICAgIGlkPSJnMzk5MSINCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjA4NjkwMjYsMCwwLDEuMDg2OTAyNiwwLjI5ODE5MTczLDI1NC45Njc2NykiPg0KICAgICAgPHBhdGgNCiAgICAgICAgIGlua3NjYXBlOmNvbm5lY3Rvci1jdXJ2YXR1cmU9IjAiDQogICAgICAgICBpZD0icGF0aDM5NzciDQogICAgICAgICBzdHlsZT0iZmlsbDojOTk5OTk5O2ZpbGwtcnVsZTpldmVub2RkIg0KICAgICAgICAgZD0ibSAxLjMyMTksMzcuMDc1NCB2IDAgcSAzLjE5MjUsMy4xOTI1IDYuMzg1LDAgTCAzNy4wNzgsNy43MDQ0IHEgMy4xOTI1LC0zLjE5MjUgMCwtNi4zODUgdiAwIHEgLTMuMTkyNSwtMy4xOTI1IC02LjM4NSwwIEwgMS4zMjE5LDMwLjY5MDQgcSAtMy4xOTI1LDMuMTkyNSAwLDYuMzg1IHoiIC8+DQogICAgICA8cGF0aA0KICAgICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCINCiAgICAgICAgIGlkPSJwYXRoMzk3OSINCiAgICAgICAgIHN0eWxlPSJmaWxsOiM5OTk5OTk7ZmlsbC1ydWxlOmV2ZW5vZGQiDQogICAgICAgICBkPSJtIDEuMzIwNSw3LjcwODQgMjkuMzc0LDI5LjM3MzcgYyAxLjc1NDcsMS43NTUgNC42MjczLDEuNzU1IDYuMzgyLDAgbCAwLjAwMzEsLTAuMDAyOCBjIDEuNzU0NiwtMS43NTQ5IDEuNzU0NiwtNC42MjczIDAsLTYuMzgyMiBMIDcuNzA1NiwxLjMyMzQgYyAtMS43NTUsLTEuNzU1IC00LjYyNzMsLTEuNzU1IC02LjM4MjIsMCBMIDEuMzIwNSwxLjMyNjIgYyAtMS43NTQ5LDEuNzU0NiAtMS43NTQ5LDQuNjI3MyAwLDYuMzgyMiB6IiAvPg0KICAgIDwvZz4NCiAgPC9nPg0KPC9zdmc+DQo=';
130
131const img$4 = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4NCg0KPHN2Zw0KICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIg0KICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyINCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyINCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiDQogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSINCiAgIHdpZHRoPSIxNjAiDQogICBoZWlnaHQ9IjE2MCINCiAgIHZpZXdCb3g9IjAgMCA0Mi4zMzMzMzIgNDIuMzMzMzM1Ig0KICAgdmVyc2lvbj0iMS4xIg0KICAgaWQ9InN2ZzgiDQogICBpbmtzY2FwZTp2ZXJzaW9uPSIwLjkyLjEgcjE1MzcxIg0KICAgc29kaXBvZGk6ZG9jbmFtZT0i0YfQsNGB0YvRgS5zdmciPg0KICA8ZGVmcw0KICAgICBpZD0iZGVmczIiIC8+DQogIDxzb2RpcG9kaTpuYW1lZHZpZXcNCiAgICAgaWQ9ImJhc2UiDQogICAgIHBhZ2Vjb2xvcj0iI2ZmZmZmZiINCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiDQogICAgIGJvcmRlcm9wYWNpdHk9IjEuMCINCiAgICAgaW5rc2NhcGU6cGFnZW9wYWNpdHk9IjAuMCINCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiINCiAgICAgaW5rc2NhcGU6em9vbT0iMC4zNSINCiAgICAgaW5rc2NhcGU6Y3g9IjQwMCINCiAgICAgaW5rc2NhcGU6Y3k9IjU2MCINCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIg0KICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiDQogICAgIHNob3dncmlkPSJmYWxzZSINCiAgICAgdW5pdHM9InB4Ig0KICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE2MDAiDQogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjgzNyINCiAgICAgaW5rc2NhcGU6d2luZG93LXg9Ii04Ig0KICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiDQogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiIC8+DQogIDxtZXRhZGF0YQ0KICAgICBpZD0ibWV0YWRhdGE1Ij4NCiAgICA8cmRmOlJERj4NCiAgICAgIDxjYzpXb3JrDQogICAgICAgICByZGY6YWJvdXQ9IiI+DQogICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2Uvc3ZnK3htbDwvZGM6Zm9ybWF0Pg0KICAgICAgICA8ZGM6dHlwZQ0KICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPg0KICAgICAgICA8ZGM6dGl0bGU+PC9kYzp0aXRsZT4NCiAgICAgIDwvY2M6V29yaz4NCiAgICA8L3JkZjpSREY+DQogIDwvbWV0YWRhdGE+DQogIDxnDQogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIg0KICAgICBpbmtzY2FwZTpncm91cG1vZGU9ImxheWVyIg0KICAgICBpZD0ibGF5ZXIxIg0KICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLC0yNTQuNjY2NjUpIj4NCiAgICA8Zw0KICAgICAgIGlkPSJnMjQiDQogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMS4xMDI0MTkxLDAsMCwxLjEwMjQxOTEsMCwyNTQuNjY2ODcpIj4NCiAgICAgIDxwYXRoDQogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIg0KICAgICAgICAgaWQ9InBhdGgxMCINCiAgICAgICAgIHN0eWxlPSJmaWxsOiM4MDgwODA7ZmlsbC1ydWxlOmV2ZW5vZGQiDQogICAgICAgICBkPSJtIDE5LjI5MzYsNy41NzEyIGMgMS4wNzE4LDAgMS45NDU5LDAuODc0IDEuOTQ1OSwxLjk0NTkgdiA3LjUyMSBoIDcuNTIxIGMgMS4wNzE5LDAgMS45NDU5LDAuODc0IDEuOTQ1OSwxLjk0NTkgMCwxLjA3MTkgLTAuODc0LDEuOTQ1OSAtMS45NDU5LDEuOTQ1OSBoIC05LjQxNjYgYyAtMS4xMDA2LDAgLTEuOTk2MiwtMC44MzA5IC0xLjk5NjIsLTEuOTQ1OSBWIDkuNTE3MSBjIDAsLTEuMDcxOSAwLjg3NCwtMS45NDU5IDEuOTQ1OSwtMS45NDU5IHogTSAxOS4yLC0yZS00IGMgMTAuNjAzNiwwIDE5LjIwMDEsOC41OTY1IDE5LjIwMDEsMTkuMiAwLDEwLjYwMzYgLTguNTk2NSwxOS4yMDAxIC0xOS4yMDAxLDE5LjIwMDEgQyA4LjU5NjUsMzguMzk5OSAwLDI5LjgwMzQgMCwxOS4xOTk4IDAsOC41OTYzIDguNTk2NSwtMmUtNCAxOS4yLC0yZS00IFogbSAwLDQuNjE4MyBjIDguMDUzNCwwIDE0LjU4MTcsNi41MjgzIDE0LjU4MTcsMTQuNTgxNyAwLDguMDUzNCAtNi41MjgzLDE0LjU4MTcgLTE0LjU4MTcsMTQuNTgxNyAtOC4wNTMzLDAgLTE0LjU4MTYsLTYuNTI4MyAtMTQuNTgxNiwtMTQuNTgxNyAwLC04LjA1MzQgNi41MjgzLC0xNC41ODE3IDE0LjU4MTYsLTE0LjU4MTcgeiIgLz4NCiAgICAgIDxwYXRoDQogICAgICAgICBpbmtzY2FwZTpjb25uZWN0b3ItY3VydmF0dXJlPSIwIg0KICAgICAgICAgaWQ9InBhdGgxMiINCiAgICAgICAgIHN0eWxlPSJmaWxsOm5vbmUiDQogICAgICAgICBkPSJNIDFlLTQsMWUtNCBWIDM4LjQwMDIgSCAzOC40MDAyIFYgMWUtNCBaIiAvPg0KICAgIDwvZz4NCiAgPC9nPg0KPC9zdmc+DQo=';
132
133const img$5 = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQo8IS0tIENyZWF0ZWQgd2l0aCBJbmtzY2FwZSAoaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvKSAtLT4NCg0KPHN2Zw0KICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIg0KICAgeG1sbnM6Y2M9Imh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL25zIyINCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyINCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciDQogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiDQogICB4bWxuczppbmtzY2FwZT0iaHR0cDovL3d3dy5pbmtzY2FwZS5vcmcvbmFtZXNwYWNlcy9pbmtzY2FwZSINCiAgIHdpZHRoPSI2NCINCiAgIGhlaWdodD0iNjQiDQogICB2aWV3Qm94PSIwIDAgMTYuOTMzMzMzIDE2LjkzMzMzNCINCiAgIHZlcnNpb249IjEuMSINCiAgIGlkPSJzdmc4Ig0KICAgaW5rc2NhcGU6dmVyc2lvbj0iMC45Mi4xIHIxNTM3MSINCiAgIHNvZGlwb2RpOmRvY25hbWU9IjRkLnN2ZyI+DQogIDxkZWZzDQogICAgIGlkPSJkZWZzMiI+DQogICAgPHBhdHRlcm4NCiAgICAgICB5PSIwIg0KICAgICAgIHg9IjAiDQogICAgICAgaGVpZ2h0PSI2Ig0KICAgICAgIHdpZHRoPSI2Ig0KICAgICAgIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiDQogICAgICAgaWQ9IkVNRmhiYXNlcGF0dGVybiIgLz4NCiAgPC9kZWZzPg0KICA8c29kaXBvZGk6bmFtZWR2aWV3DQogICAgIGlkPSJiYXNlIg0KICAgICBwYWdlY29sb3I9IiNmZmZmZmYiDQogICAgIGJvcmRlcmNvbG9yPSIjNjY2NjY2Ig0KICAgICBib3JkZXJvcGFjaXR5PSIxLjAiDQogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiDQogICAgIGlua3NjYXBlOnBhZ2VzaGFkb3c9IjIiDQogICAgIGlua3NjYXBlOnpvb209IjMuMDkxNjY2NyINCiAgICAgaW5rc2NhcGU6Y3g9IjExNS44MTcyNCINCiAgICAgaW5rc2NhcGU6Y3k9IjI2LjkxNzc3NSINCiAgICAgaW5rc2NhcGU6ZG9jdW1lbnQtdW5pdHM9Im1tIg0KICAgICBpbmtzY2FwZTpjdXJyZW50LWxheWVyPSJsYXllcjEiDQogICAgIHNob3dncmlkPSJmYWxzZSINCiAgICAgdW5pdHM9InB4Ig0KICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjE5MjAiDQogICAgIGlua3NjYXBlOndpbmRvdy1oZWlnaHQ9IjEwMTciDQogICAgIGlua3NjYXBlOndpbmRvdy14PSItOCINCiAgICAgaW5rc2NhcGU6d2luZG93LXk9Ii04Ig0KICAgICBpbmtzY2FwZTp3aW5kb3ctbWF4aW1pemVkPSIxIiAvPg0KICA8bWV0YWRhdGENCiAgICAgaWQ9Im1ldGFkYXRhNSI+DQogICAgPHJkZjpSREY+DQogICAgICA8Y2M6V29yaw0KICAgICAgICAgcmRmOmFib3V0PSIiPg0KICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD4NCiAgICAgICAgPGRjOnR5cGUNCiAgICAgICAgICAgcmRmOnJlc291cmNlPSJodHRwOi8vcHVybC5vcmcvZGMvZGNtaXR5cGUvU3RpbGxJbWFnZSIgLz4NCiAgICAgICAgPGRjOnRpdGxlPjwvZGM6dGl0bGU+DQogICAgICA8L2NjOldvcms+DQogICAgPC9yZGY6UkRGPg0KICA8L21ldGFkYXRhPg0KICA8Zw0KICAgICBpbmtzY2FwZTpsYWJlbD0iTGF5ZXIgMSINCiAgICAgaW5rc2NhcGU6Z3JvdXBtb2RlPSJsYXllciINCiAgICAgaWQ9ImxheWVyMSINCiAgICAgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCwtMjgwLjA2NjY1KSI+DQogICAgPHBhdGgNCiAgICAgICBpZD0icGF0aDQ1Ig0KICAgICAgIGQ9Im0gMi41NzYzNDA3LDI4MC41NzQ0OSBoIDguMDQ3NjcyMyBsIDQuMDg2NzA4LDQuMDQyNjggdiAxMi4wMzQ3MiBIIDIuNTc2MzQwNyBaIG0gOC4wNDc2NzIzLDEuMDg4NDIgMi45ODY0NDEsMi45NTQyNiBoIC0yLjk4NjQ0MSB6Ig0KICAgICAgIHN0eWxlPSJmaWxsOiM0ZDRkNGQ7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlOm5vbmU7c3Ryb2tlLXdpZHRoOjAuODI4NTAwNzUiDQogICAgICAgaW5rc2NhcGU6Y29ubmVjdG9yLWN1cnZhdHVyZT0iMCIgLz4NCiAgPC9nPg0KPC9zdmc+DQo=';
134
135var messages = {
136 en: {
137 "chooseFile": "Choose File",
138 "download": "View",
139 "moderate": "Moderate",
140 "sign": "Sign",
141 "Select the file with EDS": "Select EDS file (GOST)",
142 "EDS": "EDS",
143 "BIN": "BIN",
144 "IIN": "IIN",
145 "Owner of EDS": "Owner of EDS",
146 "Authority issuing EDS": "Authority issuing EDS",
147 "Valid thought": "Valid thought"
148 },
149 ru: {
150 "chooseFile": "Выберите файл",
151 "download": "Просмотреть",
152 "moderate": "Модерация",
153 "sign": "Подписать",
154 "Select the file with EDS": "Выберите файл ЭЦП (GOST)",
155 "EDS": "ЭЦП",
156 "BIN": "БИН",
157 "IIN": "ИИН",
158 "Owner of EDS": "Владелец ЭЦП",
159 "Authority issuing EDS": "Орган, выдавший ЭЦП",
160 "Valid thought": "Действителен до",
161 "Key algorithm": "Алгоритм ключа"
162 },
163 kk: {
164 "chooseFile": "Файлды тандаңыз",
165 "download": "Карау",
166 "moderate": "Модерация",
167 "sign": "Қол қою",
168 "Select the file with EDS": "ЭЦҚ файлын таңданыз (GOST)",
169 "EDS": "ЭЦҚ",
170 "BIN": "БСН",
171 "BIK": "БСК",
172 "IIC": "ЖСК",
173 "IIN": "ЖСН",
174 "Beneficiary Code": "Кбе",
175 "Owner of EDS": "ЭЦҚ иесі",
176 "Authority issuing EDS": "ЭЦҚ берілген мекеме",
177 "Valid thought": "Жарамдылық мерзімі",
178 "Key algorithm": "Кілт алгоритмі"
179 }
180};
181
182var css$1 = ".loader{display:flex;flex-direction:column;align-items:center;position:absolute;left:0;bottom:0;z-index:1;width:100%;height:100%;background-color:hsla(0,0%,100%,.8);border-bottom-right-radius:10px;border-bottom-left-radius:10px}.loader:after,.loader:before{content:\"\";flex:1}.loader--eds .loader__spinner{width:100px;height:100px;background:#ffd012}.loader--modal{height:calc(100% - 81px)}.loader--modal-step{height:calc(100% - 95px)}.loader--grid-view{height:calc(100% - 38px)}.loader--goods{top:0;border-radius:10px}.loader--nav-right{top:50%;left:50%;transform:translate(-50%,-50%);background-color:#fff}.loader__content{display:flex;flex-direction:column;align-items:center}.loader__spinner{position:relative;width:140px;height:140px;margin:0;background-color:#f7f7f7;border-radius:50%}.loader--modal-step .loader__spinner,.loader--modal .loader__spinner{width:100px;height:100px;background-color:#ffd012}.loader--main .loader__spinner{background-color:#ffd012}.loader__text{margin:0;font-family:dinpro-med;text-align:center}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tdWx0aXBsZS11cGxvYWRlci9tb2RhbHMvaW5kZXguc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxRQUNJLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsa0JBQW1CLENBRW5CLGlCQUFrQixDQUNsQixNQUFPLENBQ1AsUUFBUyxDQUNULFNBQVUsQ0FFVixVQUFXLENBQ1gsV0FBWSxDQUVaLG1DQUEwQyxDQUUxQywrQkFBZ0MsQ0FDaEMsOEJBQStCLENBaEJuQyw2QkFvQk0sVUFBVyxDQUNYLE1BQU8sQ0FFUiw4QkFFRyxXQUFZLENBQ1osWUFBYSxDQUNiLGtCQUFtQixDQUd2QixlQUNFLHdCQUF5QixDQUczQixvQkFDRSx3QkFBeUIsQ0FHM0IsbUJBQ0Usd0JBQXlCLENBRzNCLGVBQ0UsS0FBTSxDQUVOLGtCQUFtQixDQUdyQixtQkFDRSxPQUFRLENBQ1IsUUFBUyxDQUNULDhCQUFnQyxDQUNoQyxxQkFBb0MsQ0FHdEMsaUJBQ0UsWUFBYSxDQUNiLHFCQUFzQixDQUN0QixrQkFBbUIsQ0FHckIsaUJBQ0UsaUJBQWtCLENBQ2xCLFdBQVksQ0FDWixZQUFhLENBQ2IsUUFBUyxDQUVULHdCQUF5QixDQUN6QixpQkFBa0IsQ0FHcEIscUVBRUUsV0FBWSxDQUNaLFlBQWEsQ0FFYix3QkFBeUIsQ0FHM0IsK0JBQ0Usd0JBQXlCLENBVzNCLGNBQ0UsUUFBUyxDQUNULHNCQUF1QixDQUN2QixpQkFBa0IiLCJmaWxlIjoiaW5kZXguc2NzcyJ9 */";
183styleInject(css$1);
184
185const img$6 = 'data:image/gif;base64,R0lGODlhSgEmApECAP/fTf///wAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDo5ODBjNGI0Ni05NzFmLWFiNDItYjdmZC1jNDEyZDJlMTIwMzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUMzNkNDRTQ2RTI3MTFFOTgxMzFEN0VBNDdGOTUxMUEiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUMzNkNDRTM2RTI3MTFFOTgxMzFEN0VBNDdGOTUxMUEiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjFlYTVjMTMtMzJlMy00ZDQxLTllMGQtMDc0NDc1ZTc1MWVlIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6MDQ1MTA2NDAtNmQ2Yy0xMWU5LWJmYTMtYjY4Njk4ZmQ4YmI5Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpS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';
186
187var language = localStorage.getItem("i18nextLng") ? localStorage.getItem("i18nextLng") : "ru";
188var Moderate = function (props) {
189 var _a = React.useState(false), modal = _a[0], setModal = _a[1];
190 var handleModerate = props.handleModerate, fileId = props.fileId;
191 var toggle = function (e) {
192 e.preventDefault();
193 setModal(!modal);
194 };
195 return (React__default.createElement(React__default.Fragment, null,
196 React__default.createElement("span", { className: "f-manager__block_item4" },
197 React__default.createElement("a", { href: "#", target: "_blank", onClick: toggle }, messages[language].moderate)),
198 React__default.createElement(reactstrap.Modal, { isOpen: modal, className: "prompt", centered: true, toggle: toggle, backdrop: "static" },
199 React__default.createElement(reactstrap.ModalHeader, null, "\u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430"),
200 React__default.createElement(reactstrap.ModalBody, null, "\u0412\u044B \u0443\u0432\u0435\u0440\u0435\u043D\u044B \u0447\u0442\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u0444\u0430\u0439\u043B?"),
201 React__default.createElement(reactstrap.ModalFooter, null,
202 React__default.createElement("button", { className: "jbtn jbtn-low jbtn-cancel", onClick: function (e) { return toggle(e); } }, "\u041E\u0442\u043C\u0435\u043D\u0430"),
203 React__default.createElement("button", { className: "jbtn jbtn-low jbtn-red", onClick: function (e) {
204 handleModerate(e, fileId, 0);
205 setModal(false);
206 } }, "\u0423\u0434\u0430\u043B\u0438\u0442\u044C"),
207 React__default.createElement("button", { className: "jbtn jbtn-low jbtn-green", onClick: function (e) {
208 handleModerate(e, fileId, 2);
209 setModal(false);
210 } }, "\u041F\u043E\u0434\u0432\u0435\u0440\u0434\u0438\u0442\u044C")))));
211};
212
213var grainReceiptsData = gql(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n fragment GrainReceiptsData on GrainReceiptsData {\n docNumber\n docTime\n ownerBIN\n elevator\n elevatorBIN\n specifications {\n status\n GRNumber\n createTime\n amount\n culture\n class\n cropYear\n category\n grade\n reproduction\n seedCompositionClass\n moisture\n weedyImpurity\n grainImpurity\n infection\n infectionLevel\n smell\n color\n type\n testWeight\n gluten\n glutenCU\n hoodness\n fallingNumber\n protein\n vitreousness\n otherIndicators\n }\n errors\n }\n"], ["\n fragment GrainReceiptsData on GrainReceiptsData {\n docNumber\n docTime\n ownerBIN\n elevator\n elevatorBIN\n specifications {\n status\n GRNumber\n createTime\n amount\n culture\n class\n cropYear\n category\n grade\n reproduction\n seedCompositionClass\n moisture\n weedyImpurity\n grainImpurity\n infection\n infectionLevel\n smell\n color\n type\n testWeight\n gluten\n glutenCU\n hoodness\n fallingNumber\n protein\n vitreousness\n otherIndicators\n }\n errors\n }\n"])));
214var fileFragments = {
215 common: gql(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n fragment CommonFiles on Files {\n _id\n path\n name\n size\n createTime\n metadata {\n title\n objId\n objType\n creatorId\n categoryId\n signs {\n userId\n time\n signed\n label\n }\n status\n }\n grainReceiptData {\n ...GrainReceiptsData\n }\n }\n ", "\n "], ["\n fragment CommonFiles on Files {\n _id\n path\n name\n size\n createTime\n metadata {\n title\n objId\n objType\n creatorId\n categoryId\n signs {\n userId\n time\n signed\n label\n }\n status\n }\n grainReceiptData {\n ...GrainReceiptsData\n }\n }\n ", "\n "])), grainReceiptsData)
216};
217var UPLOADFILE_LINK_MUTATION = gql(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n mutation singleUpload($file: Upload, $metadata: MetadataInput) {\n singleUpload(file: $file, metadata: $metadata) {\n ...CommonFiles\n }\n }\n ", "\n"], ["\n mutation singleUpload($file: Upload, $metadata: MetadataInput) {\n singleUpload(file: $file, metadata: $metadata) {\n ...CommonFiles\n }\n }\n ", "\n"])), fileFragments.common);
218var UPLOAD_MULTIPLE_LINK_MUTATION = gql(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n mutation multipleUpload($files: [Upload], $metadata: MetadataInput) {\n multipleUpload(files: $files, metadata: $metadata) {\n ...CommonFiles\n }\n }\n ", "\n"], ["\n mutation multipleUpload($files: [Upload], $metadata: MetadataInput) {\n multipleUpload(files: $files, metadata: $metadata) {\n ...CommonFiles\n }\n }\n ", "\n"])), fileFragments.common);
219var CHECK_EDS_DATA = gql(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n mutation checkEDSData($p12Base64: String, $password: String) {\n checkEDSData(p12Base64: $p12Base64, password: $password) {\n owner\n issuer\n expireTime\n iin\n bin\n }\n }\n"], ["\n mutation checkEDSData($p12Base64: String, $password: String) {\n checkEDSData(p12Base64: $p12Base64, password: $password) {\n owner\n issuer\n expireTime\n iin\n bin\n }\n }\n"])));
220var GET_AVERAGE_GRAIN_RECEIPT_DATA = gql(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n query getAverageGrainReceiptData($fileIds: [String]) {\n getAverageGrainReceiptData(fileIds: $fileIds) {\n ...GrainReceiptsData\n }\n }\n ", "\n"], ["\n query getAverageGrainReceiptData($fileIds: [String]) {\n getAverageGrainReceiptData(fileIds: $fileIds) {\n ...GrainReceiptsData\n }\n }\n ", "\n"])), grainReceiptsData);
221var READ_GRAIN_RECEIPT_DATA = gql(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n mutation readGrainReceiptData($fileId: String) {\n readGrainReceiptData(fileId: $fileId) {\n ...CommonFiles\n }\n }\n ", "\n"], ["\n mutation readGrainReceiptData($fileId: String) {\n readGrainReceiptData(fileId: $fileId) {\n ...CommonFiles\n }\n }\n ", "\n"])), fileFragments.common);
222var REMOVE_LINK_MUTATION = gql(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n mutation deleteFile($fileId: String) {\n deleteUpload(fileId: $fileId)\n }\n"], ["\n mutation deleteFile($fileId: String) {\n deleteUpload(fileId: $fileId)\n }\n"])));
223var MODERATE_LINK_MUTATION = gql(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n mutation moderateFile($fileId: String, $status: Int) {\n moderateUpload(fileId: $fileId, status: $status) {\n ...CommonFiles\n }\n }\n ", "\n"], ["\n mutation moderateFile($fileId: String, $status: Int) {\n moderateUpload(fileId: $fileId, status: $status) {\n ...CommonFiles\n }\n }\n ", "\n"])), fileFragments.common);
224var SIGN_FILE = gql(templateObject_10 || (templateObject_10 = __makeTemplateObject(["\n mutation signDocument($fileId: String, $p12Base64: String, $password: String) {\n signDocument(fileId: $fileId, p12Base64: $p12Base64, password: $password) {\n ...CommonFiles\n }\n }\n ", "\n"], ["\n mutation signDocument($fileId: String, $p12Base64: String, $password: String) {\n signDocument(fileId: $fileId, p12Base64: $p12Base64, password: $password) {\n ...CommonFiles\n }\n }\n ", "\n"])), fileFragments.common);
225var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10;
226
227var httpLink = function (uri) { return apolloLinkHttp.createHttpLink({ uri: uri }); };
228var authLink = apolloLinkContext.setContext(function (_, _a) {
229 var headers = _a.headers;
230 // get the authentication token from local storage if it exists
231 var token = Cookies.get("loginToken");
232 var language = "ru";
233 // return the headers to the context so httpLink can read them
234 return {
235 headers: __assign({}, headers, { "authorization": token ? token : "", "accept-language": language })
236 };
237});
238var gatewayClient = function (uri) {
239 return new ApolloClient({
240 link: apolloLink.ApolloLink.from([authLink, httpLink(uri)]),
241 cache: new apolloCacheInmemory.InMemoryCache({
242 dataIdFromObject: function (o) {
243 return o.id ? o.__typename + ":" + o.id : null;
244 }
245 })
246 });
247};
248
249var httpLink$1 = function (uri) { return apolloLinkHttp.createHttpLink({ uri: uri }); };
250var customFetch = function (uri, options) {
251 if (options.useUpload) {
252 return uploadFetch(uri, options);
253 }
254 return fetch(uri, options);
255};
256var uploadLink = function (uri) { return apolloUploadClient.createUploadLink({ uri: uri, fetch: customFetch }); };
257var authLink$1 = apolloLinkContext.setContext(function (_, _a) {
258 var headers = _a.headers;
259 // get the authentication token from local storage if it exists
260 var token = Cookies.get("loginToken");
261 var language = localStorage.getItem("i18nextLng") ? localStorage.getItem("i18nextLng") : "en-US";
262 // return the headers to the context so httpLink can read them
263 return {
264 headers: __assign({}, headers, { "authorization": token ? token : "", "accept-language": language })
265 };
266});
267var isObject = function (node) { return typeof node === "object" && node !== null; };
268var hasFiles = function (node, found) {
269 if (found === void 0) { found = []; }
270 Object.keys(node).forEach(function (key) {
271 if (!isObject(node[key]) || found.length > 0) {
272 return;
273 }
274 if ((typeof File !== "undefined" && node[key] instanceof File) ||
275 (typeof Blob !== "undefined" && node[key] instanceof Blob)) {
276 found.push(node[key]);
277 return;
278 }
279 hasFiles(node[key], found);
280 });
281 return found.length > 0;
282};
283var link2 = function (uri) { return apolloLink.split(function (_a) {
284 var variables = _a.variables;
285 return hasFiles(variables);
286}, uploadLink(uri), httpLink$1(uri)); };
287var client = function (uri) {
288 return new ApolloClient({
289 link: apolloLink.ApolloLink.from([authLink$1, link2(uri)]),
290 cache: new apolloCacheInmemory.InMemoryCache({
291 dataIdFromObject: function (o) {
292 return o.id ? o.__typename + ":" + o.id : null;
293 }
294 })
295 });
296};
297var parseHeaders = function (rawHeaders) {
298 var headers = new Headers();
299 // Replace instances of \r\n and \n followed by at least one space or horizontal tab with a space
300 // https://tools.ietf.org/html/rfc7230#section-3.2
301 var preProcessedHeaders = rawHeaders.replace(/\r?\n[\t ]+/g, " ");
302 preProcessedHeaders.split(/\r?\n/).forEach(function (line) {
303 var parts = line.split(":");
304 var key = parts.shift().trim();
305 if (key) {
306 var value = parts.join(":").trim();
307 headers.append(key, value);
308 }
309 });
310 return headers;
311};
312var uploadFetch = function (url, options) {
313 return new Promise(function (resolve, reject) {
314 var xhr = new XMLHttpRequest();
315 xhr.onload = function () {
316 var opts = {
317 status: xhr.status,
318 statusText: xhr.statusText,
319 headers: parseHeaders(xhr.getAllResponseHeaders() || "")
320 };
321 opts.url = "responseURL" in xhr ? xhr.responseURL : opts.headers.get("X-Request-URL");
322 var body = "response" in xhr ? xhr.response : xhr.responseText;
323 resolve(new Response(body, opts));
324 };
325 xhr.onerror = function () {
326 reject(new TypeError("Network request failed"));
327 };
328 xhr.ontimeout = function () {
329 reject(new TypeError("Network request failed"));
330 };
331 xhr.open(options.method, url, true);
332 Object.keys(options.headers).forEach(function (key) {
333 xhr.setRequestHeader(key, options.headers[key]);
334 });
335 if (xhr.upload) {
336 xhr.upload.onprogress = options.onProgress;
337 }
338 options.onAbortPossible(function () {
339 xhr.abort();
340 });
341 xhr.send(options.body);
342 });
343};
344
345var UploaderContext = React.createContext({
346 uploadUri: null,
347 gatewayUri: null
348});
349
350var _this = undefined;
351var language$1 = localStorage.getItem("i18nextLng") ? localStorage.getItem("i18nextLng") : "ru";
352var SignFile = function (props) {
353 var _a = React.useState(false), modal = _a[0], setModal = _a[1];
354 var _b = React.useState(false), modal2 = _b[0], setModal2 = _b[1];
355 var _c = React.useState({ value: "Qwerty12", isValid: false }), password = _c[0], setPassword = _c[1];
356 var _d = React.useState(null), p12Base64 = _d[0], setP12Base64 = _d[1];
357 var _e = React.useContext(UploaderContext), uploadUri = _e.uploadUri, gatewayUri = _e.gatewayUri;
358 React.useEffect(function () {
359 return function () {
360 setModal(false);
361 };
362 }, []);
363 /** Управление первой модалкой (данные ЭЦП) */
364 var toggle = function (e) {
365 e.preventDefault();
366 setModal(!modal);
367 };
368 /** Управление второй модалкой (пароль ЭЦП) */
369 var toggle2 = function (e) {
370 e.preventDefault();
371 setModal2(!modal2);
372 };
373 /** Обычный handler поля */
374 var handleChange = function (result, setStateCallback) {
375 var value = result.value, isValid = result.isValid;
376 setStateCallback({ value: value, isValid: isValid });
377 };
378 /** handler родителя */
379 var handleSignParent = props.handleSign;
380 /** Лучше mutation делать здесь т.к. легче хендлить loading, error непосредственно в компоненте, где она и используется */
381 var _f = reactApollo.useMutation(SIGN_FILE, { client: client(uploadUri) }), signFile = _f[0], sLoading = _f[1].loading;
382 var _g = React.useState(null), EDSdata = _g[0], setEDSData = _g[1];
383 var _h = reactApollo.useMutation(CHECK_EDS_DATA, { client: gatewayClient(gatewayUri) }), checkEDSData = _h[0], _j = _h[1], loading = _j.loading, error = _j.error;
384 var handleSign = function (e, fileId) { return __awaiter(_this, void 0, void 0, function () {
385 var file, error_1;
386 return __generator(this, function (_a) {
387 switch (_a.label) {
388 case 0:
389 e.preventDefault();
390 file = null;
391 _a.label = 1;
392 case 1:
393 _a.trys.push([1, 3, , 4]);
394 return [4 /*yield*/, signFile({ variables: { fileId: fileId, p12Base64: p12Base64, password: password.value } })];
395 case 2:
396 file = _a.sent();
397 return [3 /*break*/, 4];
398 case 3:
399 error_1 = _a.sent();
400 notify.notifyServer({
401 Content: function () {
402 return (React__default.createElement("span", null, error_1.graphQLErrors ? error_1.graphQLErrors[0].message : "Ошибка подписи, повторите попытку позже"));
403 },
404 type: "error"
405 });
406 return [3 /*break*/, 4];
407 case 4:
408 if (file) {
409 notify__default({
410 header: "Файл подписан",
411 description: "Файл успешно подписан!!!"
412 });
413 handleSignParent && handleSignParent(file.data.signDocument);
414 setModal(false);
415 }
416 else {
417 setEDSData(null);
418 }
419 return [2 /*return*/];
420 }
421 });
422 }); };
423 /**
424 * Берем содержимое файла ключа (base64) и помещаем ее в state, это много не занимает время тк. файли не весит много
425 * Потом вытаскиваем модалку с паролем
426 * @param e
427 */
428 var handleEDS = function (e) {
429 e.preventDefault();
430 var reader = new FileReader();
431 var _a = e.target, validity = _a.validity, file = _a.files[0];
432 if (validity.valid) {
433 reader.readAsDataURL(file);
434 reader.onload = function () {
435 setModal2(!modal2);
436 setP12Base64(reader.result);
437 };
438 }
439 };
440 /**
441 * У нас есть файл (base64), есть пароль - отправляем на проверку
442 * @param e
443 */
444 var handlePasswordSubmit = function (e) {
445 e.preventDefault();
446 checkEDSData({ variables: { p12Base64: p12Base64, password: password.value } })
447 .then(function (_a) {
448 var data = _a.data;
449 setEDSData(data.checkEDSData);
450 setModal2(false);
451 notify.notifyServer({ dismiss: true });
452 })
453 .catch(function (e) {
454 var errors = e.graphQLErrors[0].extensions.exception.inputErrors;
455 notify.notifyServer({
456 Content: function () {
457 return (React__default.createElement("ul", { style: { padding: 0, margin: 0 } }, errors
458 ? errors.map(function (error, key) { return React__default.createElement("li", { key: key }, error.message); })
459 : "Не удалось проверить данные. Повторите позже"));
460 },
461 type: "error"
462 });
463 });
464 };
465 var RenderContent = function () {
466 var randInd = Math.floor(Math.random() * (10000 - 1)) + 1;
467 if (EDSdata) {
468 return (React__default.createElement("ul", { className: "reg-info" },
469 React__default.createElement("li", null,
470 React__default.createElement("p", null,
471 messages[language$1]["Owner of EDS"],
472 ":"),
473 React__default.createElement("p", { className: "ecp-info" }, EDSdata.owner)),
474 React__default.createElement("li", null,
475 React__default.createElement("p", null,
476 messages[language$1]["Authority issuing EDS"],
477 ":"),
478 React__default.createElement("p", { className: "ecp-info" }, EDSdata.issuer)),
479 React__default.createElement("li", null,
480 React__default.createElement("p", null,
481 messages[language$1]["Valid thought"],
482 ":"),
483 React__default.createElement("p", { className: "ecp-info" }, EDSdata.expireTime)),
484 React__default.createElement("li", null,
485 React__default.createElement("p", null,
486 messages[language$1]["IIN"],
487 ":"),
488 React__default.createElement("p", { className: "ecp-info" }, EDSdata.iin)),
489 React__default.createElement("li", null,
490 React__default.createElement("p", null,
491 messages[language$1]["BIN"],
492 ":"),
493 React__default.createElement("p", { className: "ecp-info" }, EDSdata.bin))));
494 }
495 return (React__default.createElement("div", { style: { display: "flex", justifyContent: "center", marginBottom: "45px" } },
496 React__default.createElement("input", { type: "file", id: "EDS-sign-" + randInd, required: true, onChange: function (e) { return handleEDS(e); }, accept: ".p12", style: { display: "none" } }),
497 React__default.createElement("label", { htmlFor: "EDS-sign-" + randInd, className: "jbtn jbtn-fuksiya" }, messages[language$1]["Select the file with EDS"])));
498 };
499 return (React__default.createElement(React__default.Fragment, null,
500 React__default.createElement("div", { className: "sign-button" },
501 React__default.createElement("button", { className: "jbtn jbtn-wide jbtn-green", onClick: function (e) { return toggle(e); } }, messages[language$1].sign)),
502 React__default.createElement(reactstrap.Modal, { isOpen: modal, className: "prompt", centered: true, toggle: toggle, backdrop: "static" },
503 React__default.createElement(reactstrap.ModalHeader, null, "\u041F\u043E\u0434\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430"),
504 (sLoading || loading) && React__default.createElement(StdLoader, { type: "modal", text: "\u041F\u043E\u0434\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u0430, \u043F\u043E\u0434\u043E\u0436\u0434\u0438\u0442\u0435" }),
505 React__default.createElement("form", { className: "mad-form", onSubmit: function (e) { return handleSign(e, props.fileId); } },
506 React__default.createElement(reactstrap.ModalBody, null,
507 React__default.createElement("p", { style: { fontFamily: "dinpro-med", fontSize: "13px", lineHeight: "1.3" } }, "\u0421\u043E\u0433\u043B\u0430\u0441\u043D\u043E \u0441\u0442\u0430\u0442\u044C\u0438 24 \u0417\u0430\u043A\u043E\u043D\u0430 \u0420\u041A \u043E\u0442 7.01.2003 \u2116 370 \u00AB\u041E\u0431 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u043C \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0435 \u0438 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u0446\u0438\u0444\u0440\u043E\u0432\u043E\u0439 \u043F\u043E\u0434\u043F\u0438\u0441\u0438\u00BB, \u043F\u043E\u0434\u043F\u0438\u0441\u0430\u043D\u043D\u044B\u0439 \u042D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u044B\u0439 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442 \u0440\u0430\u0432\u043D\u043E\u0437\u043D\u0430\u0447\u0435\u043D \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0443 \u043D\u0430 \u0431\u0443\u043C\u0430\u0436\u043D\u043E\u043C \u043D\u043E\u0441\u0438\u0442\u0435\u043B\u0435."),
508 React__default.createElement("p", { style: { fontFamily: "dinpro-med", fontSize: "13px", lineHeight: "1.3" } }, "\u0414\u043B\u044F \u043F\u043E\u0434\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u044D\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0433\u043E \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430, \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0412\u0430\u0448 \u042D\u0426\u041F (GOST \u0438\u043B\u0438 RSA)"),
509 React__default.createElement(RenderContent, null)),
510 React__default.createElement(reactstrap.ModalFooter, null,
511 React__default.createElement("button", { className: "jbtn jbtn-low jbtn-cancel", onClick: function (e) { return toggle(e); } }, "\u041E\u0442\u043C\u0435\u043D\u0430"),
512 React__default.createElement("button", { className: "jbtn jbtn-low jbtn-green", type: "submit", disabled: !EDSdata }, "\u041F\u043E\u0434\u043F\u0438\u0441\u0430\u0442\u044C")))),
513 React__default.createElement(reactstrap.Modal, { isOpen: modal2, className: "eds-pass", centered: true, backdrop: true },
514 React__default.createElement("form", { className: "mad-form", onSubmit: function (e) { return handlePasswordSubmit(e); } },
515 loading && React__default.createElement(StdLoader, { type: "eds" }),
516 React__default.createElement(reactstrap.ModalBody, null,
517 React__default.createElement(InputStyleOne, { label: "\u041F\u0430\u0440\u043E\u043B\u044C \u042D\u0426\u041F", name: "password", value: password.value, enableTooltip: false, rules: ["required"], inputType: "password", handleChange: function (result) { return handleChange(result, setPassword); } })),
518 React__default.createElement(reactstrap.ModalFooter, null,
519 React__default.createElement("button", { className: "jbtn jbtn-low jbtn-cancel", onClick: function (e) { return toggle2(e); } }, "\u041E\u0442\u043C\u0435\u043D\u0430"),
520 React__default.createElement("button", { className: "jbtn jbtn-low jbtn-green", type: "submit", disabled: password.value == "" }, "\u041F\u043E\u0434\u0432\u0435\u0440\u0434\u0438\u0442\u044C"))))));
521};
522var StdLoader = function (_a) {
523 var _b = _a.type, type = _b === void 0 ? "" : _b, text = _a.text;
524 var clazz = type ? "loader loader--" + type : "loader";
525 return (React__default.createElement("div", { className: clazz },
526 React__default.createElement("div", { className: "loader__content" },
527 React__default.createElement("p", { className: "loader__spinner" },
528 React__default.createElement("img", { src: img$6, style: {
529 position: "absolute",
530 width: "40px",
531 left: "50%",
532 top: "50%",
533 transform: "translate(-50%, -50%)"
534 }, alt: "" })),
535 text && React__default.createElement("p", { className: "loader__text" }, text))));
536};
537
538var _this$1 = undefined;
539var OBJ_TYPE_GRAIN_RECEIPTS = 101;
540var language$2 = localStorage.getItem("i18nextLng") ? localStorage.getItem("i18nextLng") : "ru";
541var StdSpinner = function () {
542 return (React__default.createElement("div", { className: "mad-uploader-spinner" },
543 React__default.createElement("div", { className: "sk-three-bounce" },
544 React__default.createElement("div", { className: "sk-bounce-1 sk-child" }),
545 React__default.createElement("div", { className: "sk-bounce-2 sk-child" }),
546 React__default.createElement("div", { className: "sk-bounce-3 sk-child" }))));
547};
548var SignFileStatus = function (_a) {
549 var metadata = _a.metadata, showFileStatus = _a.showFileStatus;
550 var signs = metadata.signs, objType = metadata.objType, status = metadata.status;
551 if (!showFileStatus && signs.length == 0) {
552 return React__default.createElement(React__default.Fragment, null);
553 }
554 var FileStatus = function () {
555 if (!showFileStatus) {
556 return React__default.createElement(React__default.Fragment, null);
557 }
558 var data = {
559 icon: "",
560 className: "",
561 label: ""
562 };
563 // отклонен
564 if (status == 0) {
565 data = { icon: img$2, className: "f-manager__block_status_error", label: "Отклонен" };
566 }
567 //на модерации
568 if (status == 1) {
569 data = { icon: img$4, className: "", label: "Ожидает модерации" };
570 }
571 // проверен
572 if (status == 2) {
573 data = { icon: img$1, className: "", label: "Проверен" };
574 }
575 return (React__default.createElement(React__default.Fragment, null,
576 React__default.createElement("span", { className: "f-manager__signs_label" }, "\u0421\u0442\u0430\u0442\u0443\u0441 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430:"),
577 React__default.createElement("div", { className: "f-manager__block_status" },
578 React__default.createElement("img", { src: data.icon, alt: "" }),
579 React__default.createElement("span", { className: data.className }, data.label))));
580 };
581 var SignsStatus = function () {
582 if (signs.length == 0 || objType == OBJ_TYPE_GRAIN_RECEIPTS) {
583 return React__default.createElement(React__default.Fragment, null);
584 }
585 return (React__default.createElement(React__default.Fragment, null,
586 React__default.createElement("span", { className: "f-manager__signs_label" }, objType == OBJ_TYPE_GRAIN_RECEIPTS ? "Статус зерновой расписки:" : "Подписи:"),
587 signs.map(function (sign, key) { return (React__default.createElement("div", { className: "f-manager__block_status", key: key },
588 React__default.createElement("img", { src: sign.signed ? img$1 : img$4, alt: "" }),
589 React__default.createElement("span", null, sign.label))); })));
590 };
591 var GrainReceiptsStatus = function () {
592 if (signs.length == 0 || objType != OBJ_TYPE_GRAIN_RECEIPTS) {
593 return React__default.createElement(React__default.Fragment, null);
594 }
595 return (React__default.createElement(React__default.Fragment, null,
596 React__default.createElement("span", { className: "f-manager__signs_label" }, "\u0421\u0442\u0430\u0442\u0443\u0441 \u0437\u0435\u0440\u043D\u043E\u0432\u043E\u0439 \u0440\u0430\u0441\u043F\u0438\u0441\u043A\u0438:"),
597 signs.map(function (sign, key) { return (React__default.createElement("div", { className: "f-manager__block_status", key: key },
598 React__default.createElement("img", { src: sign.signed ? img$1 : img$2, alt: "" }),
599 React__default.createElement("span", { className: !sign.signed ? "f-manager__block_status_error" : "" }, sign.label))); })));
600 };
601 return (React__default.createElement("div", { className: "f-manager__signs" },
602 React__default.createElement(FileStatus, null),
603 React__default.createElement(GrainReceiptsStatus, null),
604 React__default.createElement(SignsStatus, null)));
605};
606var Download = function (_a) {
607 var path = _a.path;
608 return (React__default.createElement("span", { className: "f-manager__block_item4" },
609 React__default.createElement("a", { href: path, target: "_blank" }, messages[language$2].download)));
610};
611var Remove = function (_a) {
612 var removeDoc = _a.removeDoc;
613 return (React__default.createElement("span", { className: "f-manager__block_remove", onClick: function (e) { return removeDoc(e); } },
614 React__default.createElement("img", { src: img$3, alt: "" })));
615};
616var Viewer = function (_a) {
617 var _b = _a.enableRemove, enableRemove = _b === void 0 ? false : _b, _c = _a.enableModerate, enableModerate = _c === void 0 ? false : _c, file = _a.file, _d = _a.userId, userId = _d === void 0 ? null : _d, _e = _a.handleRemove, handleRemove = _e === void 0 ? null : _e, _f = _a.handleModerate, handleModerate = _f === void 0 ? null : _f, ExtraContent = _a.ExtraContent, _g = _a.handleSign, handleSign = _g === void 0 ? null : _g, showFilename = _a.showFilename, showFileStatus = _a.showFileStatus;
618 var isLoading = file ? file.loading : false;
619 var needToSign = false; // Нужно ли currentUser-у подписывать документ
620 var signed = false; // Подписал ли currentUser документ
621 /** Если он есть в списке sings то ему нужно подписать дкумент */
622 file.metadata.signs.forEach(function (sign) {
623 if (userId && sign.userId == userId) {
624 needToSign = true;
625 if (sign.signed) {
626 signed = true;
627 }
628 }
629 });
630 var onRemove = function (e, fileId) { return __awaiter(_this$1, void 0, void 0, function () {
631 return __generator(this, function (_a) {
632 e.preventDefault();
633 handleRemove(fileId);
634 return [2 /*return*/];
635 });
636 }); };
637 var onModerate = function (e, fileId, status) { return __awaiter(_this$1, void 0, void 0, function () {
638 return __generator(this, function (_a) {
639 e.preventDefault();
640 handleModerate(fileId, status);
641 return [2 /*return*/];
642 });
643 }); };
644 return (React__default.createElement(React__default.Fragment, null,
645 React__default.createElement("div", { className: "f-manager" },
646 React__default.createElement("div", { className: "f-manager__block" },
647 React__default.createElement("div", { className: "f-manager__block_item1" },
648 React__default.createElement("img", { src: img$5, alt: "" }),
649 React__default.createElement("div", { className: "item1-text" },
650 React__default.createElement("p", { title: showFilename ? file.name : file.metadata.title }, showFilename ? file.name : file.metadata.title))),
651 React__default.createElement("div", { className: "f-manager__block_right" },
652 !isLoading && enableModerate && React__default.createElement(Moderate, { fileId: file._id, handleModerate: onModerate }),
653 !isLoading && React__default.createElement(Download, { path: file.path }),
654 !isLoading && ExtraContent && React__default.createElement(ExtraContent, null),
655 !isLoading && enableRemove && React__default.createElement(Remove, { removeDoc: function (e) { return onRemove(e, file._id); } }),
656 isLoading && React__default.createElement(StdSpinner, null))),
657 !isLoading && React__default.createElement(SignFileStatus, { metadata: file.metadata, showFileStatus: showFileStatus })),
658 needToSign && !signed && React__default.createElement(SignFile, { fileId: file._id, handleSign: handleSign })));
659};
660
661var DragAndDrop = function (props) {
662 var _a = React.useState(false), drag = _a[0], setDrag = _a[1];
663 var dragCounter = 0; //, setDragCounter] = useState(0)
664 var dropRef = React.useRef();
665 // const
666 React.useEffect(function () {
667 var div = dropRef.current;
668 div.addEventListener("dragenter", handleDragIn);
669 div.addEventListener("dragleave", handleDragOut);
670 div.addEventListener("dragover", handleDrag);
671 div.addEventListener("drop", handleDrop);
672 return function () {
673 var div = dropRef.current;
674 div.removeEventListener("dragenter", handleDragIn);
675 div.removeEventListener("dragleave", handleDragOut);
676 div.removeEventListener("dragover", handleDrag);
677 div.removeEventListener("drop", handleDrop);
678 };
679 }, []);
680 var handleDrag = function (e) {
681 e.preventDefault();
682 e.stopPropagation();
683 };
684 var handleDragIn = function (e) {
685 e.preventDefault();
686 e.stopPropagation();
687 dragCounter++;
688 if (e.dataTransfer.items && e.dataTransfer.items.length > 0) {
689 setDrag(true);
690 }
691 };
692 var handleDragOut = function (e) {
693 e.preventDefault();
694 e.stopPropagation();
695 dragCounter--;
696 if (dragCounter - 1 === 0) {
697 setDrag(false);
698 }
699 };
700 var handleDrop = function (e) {
701 e.preventDefault();
702 e.stopPropagation();
703 setDrag(false);
704 if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {
705 props.handleDrop(e);
706 e.dataTransfer.clearData();
707 dragCounter = 0;
708 }
709 };
710 return (React__default.createElement("div", { style: { display: "inline-block", width: "100%", position: "relative" }, ref: dropRef },
711 drag && (React__default.createElement("div", { style: {
712 // border: "dashed grey 4px",
713 backgroundColor: "rgba(255,255,255,.8)",
714 position: "absolute",
715 top: 0,
716 bottom: 0,
717 left: 0,
718 right: 0,
719 zIndex: 9999
720 } },
721 React__default.createElement("div", { style: {
722 display: "flex",
723 alignItems: "center",
724 justifyContent: "center",
725 fontFamily: "dinpro-med",
726 color: "#666666",
727 fontSize: "16px",
728 height: "100%"
729 } },
730 React__default.createElement("div", null, "\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u0435 \u0444\u0430\u0439\u043B \u0441\u044E\u0434\u0430")))),
731 props.children));
732};
733
734var _this$2 = undefined;
735var OBJ_TYPE_GRAIN_RECEIPTS$1 = 101;
736var reducer = function (state, action) {
737 console.log("called twice?", state, action);
738 switch (action.type) {
739 case "loading": {
740 var file = action.file;
741 var fileObj = {
742 _id: action.file._id,
743 loading: true,
744 name: file.name,
745 size: filesize(file.size),
746 metadata: {
747 signs: [],
748 title: file.name
749 }
750 };
751 return { files: state.files.concat([fileObj]) };
752 }
753 case "uploaded": {
754 var newArr_1 = state.files.slice();
755 newArr_1.forEach(function (file, index) {
756 if (file._id == action.fileId) {
757 newArr_1[index] = action.file;
758 }
759 });
760 action.handleFileActions(newArr_1);
761 return { files: newArr_1 };
762 }
763 case "remove": {
764 var newArr = state.files.slice();
765 var filter = newArr.filter(function (file) { return file._id != action.fileId; });
766 action.handleFileActions(filter);
767 return { files: filter };
768 }
769 case "moderate": {
770 var newArr_2 = state.files.slice();
771 newArr_2.forEach(function (file, index) {
772 if (file._id == action.fileId) {
773 newArr_2[index].metadata.status = action.status;
774 }
775 });
776 return { files: newArr_2 };
777 }
778 case "sign": {
779 var newArr_3 = state.files.slice();
780 newArr_3.forEach(function (file, index) {
781 if (file._id == action.file._id) {
782 newArr_3[index] = action.file;
783 }
784 });
785 return { files: newArr_3 };
786 }
787 default:
788 return state;
789 }
790};
791var useUpload = function (_a) {
792 var metadata = _a.metadata, initialFiles = _a.initialFiles, maxFileSize = _a.maxFileSize, enableFakeRemove = _a.enableFakeRemove, extensions = _a.extensions, allowMultiple = _a.allowMultiple, _b = _a.handleFile, handleFile = _b === void 0 ? null : _b, _c = _a.handleFiles, handleFiles = _c === void 0 ? null : _c;
793 var initialState = { files: initialFiles };
794 var _d = React.useReducer(reducer, initialState), state = _d[0], dispatch = _d[1];
795 var _e = React.useContext(UploaderContext), uploadUri = _e.uploadUri, gatewayUri = _e.gatewayUri;
796 var uploadMutation = reactApollo.useMutation(UPLOADFILE_LINK_MUTATION, {
797 client: client(uploadUri),
798 context: {
799 fetchOptions: {
800 useUpload: true,
801 // signal: abortController.signal,
802 onProgress: function (ev) {
803 // console.log("loading...", ev.loaded * 100/ev.total + "%")
804 },
805 onAbortPossible: function (abortHandler) {
806 // abort = abortHandler
807 }
808 }
809 }
810 })[0];
811 var _f = reactApollo.useMutation(READ_GRAIN_RECEIPT_DATA, {
812 client: gatewayClient(gatewayUri)
813 }), readGrainReceiptData = _f[0], _g = _f[1], data = _g.data, loading = _g.loading, error = _g.error;
814 var removeMutation = reactApollo.useMutation(REMOVE_LINK_MUTATION, { client: client(uploadUri) })[0];
815 var moderateMutation = reactApollo.useMutation(MODERATE_LINK_MUTATION, { client: client(uploadUri) })[0];
816 // const [signMutation] = useMutation(SIGN_FILE, { client })
817 var handleFileActions = React.useCallback(function (files) {
818 handleFiles && allowMultiple && handleFiles(files);
819 handleFile && !allowMultiple && handleFile(files[0]);
820 }, []);
821 var upload = function (event) { return __awaiter(_this$2, void 0, void 0, function () {
822 var fileList, fileListWithIds, maxFileSizeList, invalidExtensionsList, i, fileId, file;
823 var _this = this;
824 return __generator(this, function (_a) {
825 fileList = event.dataTransfer ? event.dataTransfer.files : event.target.files;
826 fileListWithIds = [];
827 maxFileSizeList = [];
828 invalidExtensionsList = [];
829 if (!allowMultiple && fileList.length > 1) {
830 notify.notifyServer({
831 Content: function () {
832 return React__default.createElement("span", null, "\u041C\u043E\u0436\u043D\u043E \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0434\u0438\u043D \u0444\u0430\u0439\u043B!");
833 },
834 autoClose: 5000,
835 type: "error"
836 });
837 return [2 /*return*/];
838 }
839 //dobavlyaem unikalny ID
840 for (i = 0; i < fileList.length; i++) {
841 fileId = Math.random()
842 .toString(36)
843 .substring(2, 15);
844 file = fileList.item(i);
845 if (!accepts(file, extensions)) {
846 invalidExtensionsList.push(file);
847 continue;
848 }
849 if (file.size > maxFileSize) {
850 maxFileSizeList.push(file);
851 continue; //vse, 4to proisxodit dal'we avtomatom skipitsya
852 }
853 file._id = fileId;
854 fileListWithIds.push(file);
855 }
856 (invalidExtensionsList.length || maxFileSizeList.length > 0) &&
857 notify.notifyServer({
858 type: "error",
859 autoClose: 600000,
860 Content: function () {
861 return (React__default.createElement("ul", null,
862 maxFileSizeList.map(function (file, key) { return (React__default.createElement("li", { key: key },
863 "\u0420\u0430\u0437\u043C\u0435\u0440 \u0444\u0430\u0439\u043B\u0430 ",
864 file.name,
865 " \u043F\u0440\u0435\u0432\u044B\u0448\u0430\u0435\u0442\u044C \u0434\u043E\u043F\u0443\u0441\u0442\u0438\u043C\u044B\u0439 \u043B\u0438\u043C\u0438\u0442 ",
866 filesize(maxFileSize))); }),
867 invalidExtensionsList.map(function (file, key) { return (React__default.createElement("li", { key: key },
868 "\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043D\u0438\u0435 \u0444\u0430\u0439\u043B\u0430 ",
869 file.name,
870 " \u043D\u0435 \u0441\u043E\u043E\u0442\u0432\u0435\u0442\u0441\u0432\u0443\u0435\u0442 \u0442\u0440\u0435\u0431\u043E\u0432\u0430\u043D\u0438\u044F\u043C \u0444\u043E\u0440\u043C\u0430\u0442\u0430 ",
871 extensions)); })));
872 }
873 });
874 //zasovyvaem vse state s pometkoi loading
875 fileListWithIds.forEach(function (file) {
876 dispatch({ type: "loading", file: file });
877 });
878 //zagruzhem fayly na server... menyaem status uje zagruzhennogo fayla (loadin = false)
879 fileListWithIds.forEach(function (file) { return __awaiter(_this, void 0, void 0, function () {
880 var uploadedFile, isRead;
881 return __generator(this, function (_a) {
882 switch (_a.label) {
883 case 0: return [4 /*yield*/, uploadMutation({ variables: { file: file, metadata: metadata } })
884 // esly my rabotaem s zernovoi raspiskoi.. togda nuzhno poluchit' dannie zr
885 ];
886 case 1:
887 uploadedFile = _a.sent();
888 if (!(metadata.objType == OBJ_TYPE_GRAIN_RECEIPTS$1)) return [3 /*break*/, 3];
889 return [4 /*yield*/, readGrainReceiptData({ variables: { fileId: uploadedFile.data.singleUpload._id } })];
890 case 2:
891 isRead = _a.sent();
892 dispatch({
893 type: "uploaded",
894 file: isRead.data.readGrainReceiptData,
895 fileId: file._id,
896 handleFileActions: handleFileActions
897 });
898 return [3 /*break*/, 4];
899 case 3:
900 dispatch({
901 type: "uploaded",
902 file: uploadedFile.data.singleUpload,
903 fileId: file._id,
904 handleFileActions: handleFileActions
905 });
906 _a.label = 4;
907 case 4: return [2 /*return*/];
908 }
909 });
910 }); });
911 return [2 /*return*/];
912 });
913 }); };
914 var remove = function (fileId) { return __awaiter(_this$2, void 0, void 0, function () {
915 var isRemoved;
916 return __generator(this, function (_a) {
917 switch (_a.label) {
918 case 0:
919 if (!!enableFakeRemove) return [3 /*break*/, 2];
920 return [4 /*yield*/, removeMutation({ variables: { fileId: fileId } })];
921 case 1:
922 isRemoved = _a.sent();
923 _a.label = 2;
924 case 2:
925 dispatch({ type: "remove", fileId: fileId, handleFileActions: handleFileActions });
926 return [2 /*return*/];
927 }
928 });
929 }); };
930 var moderate = function (fileId, status) { return __awaiter(_this$2, void 0, void 0, function () {
931 var data;
932 return __generator(this, function (_a) {
933 switch (_a.label) {
934 case 0: return [4 /*yield*/, moderateMutation({ variables: { fileId: fileId, status: status } })];
935 case 1:
936 data = _a.sent();
937 dispatch({ type: "moderate", fileId: fileId, status: status });
938 return [2 /*return*/];
939 }
940 });
941 }); };
942 var sign = function (signedFile) { return __awaiter(_this$2, void 0, void 0, function () {
943 var newArr;
944 return __generator(this, function (_a) {
945 //Сделано по костыльски, тк. передавая и запуская функцию handleFileActions внутри reducer-a приводит
946 //к тому что dispatch срабатывает дважды, следовательно и сама функция что очен критично
947 dispatch({ type: "sign", file: signedFile });
948 newArr = state.files.slice();
949 newArr.forEach(function (file, index) {
950 if (file._id == signedFile._id) {
951 newArr[index] = signedFile;
952 }
953 });
954 handleFileActions(newArr);
955 return [2 /*return*/];
956 });
957 }); };
958 return {
959 acceptedFiles: state.files,
960 uploadFiles: upload,
961 removeFile: remove,
962 moderateFile: moderate,
963 signFile: sign,
964 cancelUpload: null
965 };
966};
967
968var css$2 = ".mad-uploader{display:flex}.mad-uploader-button input[type=file]{display:none}.mad-uploader-select-file{display:flex;flex-direction:column;align-items:flex-start;flex-grow:1;margin-bottom:10px}.mad-uploader-select-file input[type=file]{display:none}.mad-uploader-select-file>p{font-family:dinpro-med;margin-bottom:5px}.mad-uploader-select-file label{width:100%;cursor:pointer;border:2px dashed #b3b3b3;border-radius:5px;padding:9px 30px;margin-bottom:0;display:flex;justify-content:center;align-self:flex-start}.mad-uploader-select-file label img{width:25px;margin-left:4px}.mad-uploader-select-file label span{color:#999;font-size:16px;font-family:dinpro-med;margin-left:10px}.mad-uploader-uploaded{flex-grow:1;box-shadow:0 0 5px rgba(0,0,0,.32);border-radius:5px;padding:10px;margin-bottom:20px}.mad-uploader-uploaded-file{display:flex;flex-direction:row;align-items:center}.mad-uploader-uploaded img{width:25px}.mad-uploader-uploaded span{line-height:1.1;margin-left:10px}.mad-uploader-uploaded span:first-child{font-size:16px;font-family:dinpro-bold}.mad-uploader-uploaded span:nth-child(2){color:#b3b3b3;font-size:13px;font-family:dinpro-bold}.mad-uploader-spinner{align-self:center;margin-left:15px;padding-left:15px;padding-right:15px}.mad-uploader-download{align-self:center;margin-left:15px;padding:0 10px;border-left:1px solid #ccc}.mad-uploader-download a{text-decoration:none}.mad-uploader-remove{align-self:center;cursor:pointer;border-left:1px solid #ccc;padding:0 7px 0 16px}.mad-uploader-remove img{width:15px}.mad-uploader-load{display:flex;flex-direction:row;align-items:center;justify-content:center}.sk-three-bounce{width:3.2em;margin:auto;text-align:center}.sk-three-bounce .sk-child{width:.8em;height:.8em;background-color:#666;border-radius:100%;display:inline-block;animation:sk-three-bounce 1.4s ease-in-out 0s infinite both}.sk-three-bounce .sk-bounce-1{animation-delay:-.32s;margin-left:2px}.sk-three-bounce .sk-bounce-2{animation-delay:-.16s;margin-left:2px}@keyframes sk-three-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.eds-pass{display:flex;justify-content:center}.eds-pass .modal-content{width:440px}.eds-pass .modal-body{margin-top:0}.reg-info{margin-top:18px;padding-left:0;margin-bottom:18px}.reg-info li{margin-bottom:5px;list-style-type:none}.reg-info li .ecp-info{color:#4b4b4d;font-family:dinpro-bold}.reg-info li p{color:#999;font-size:12px;margin-bottom:0}.Toastify__toast-body ul{margin:0;padding:0}.Toastify__toast-body ul li{line-height:1.3;list-style:none;margin-top:15px}.Toastify__toast-body ul li:first-child{margin-top:0}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9pbmRleC5zY3NzIiwic3JjL3N0eWxlcy9fZm9udHMuc2NzcyIsInNyYy9zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLGNBQ0UsWUFBYSxDQUVaLHNDQUVHLFlBQWEsQ0FHakIsMEJBQ0UsWUFBYSxDQUNiLHFCQUFzQixDQUN0QixzQkFBdUIsQ0FDdkIsV0FBWSxDQUNaLGtCQUFtQixDQUxwQiwyQ0FPRyxZQUFhLENBUGhCLDRCQVVHLHNCQ3JCZSxDRHNCZixpQkFBa0IsQ0FYckIsZ0NBY0csVUFBVyxDQUNYLGNBQWUsQ0FDZix5QkFBMEIsQ0FDMUIsaUJBQWtCLENBQ2xCLGdCQUFpQixDQUNqQixlQUFnQixDQUNoQixZQUFhLENBQ2Isc0JBQXVCLENBQ3ZCLHFCQUFzQixDQXRCekIsb0NBd0JLLFVBQVcsQ0FDWCxlQUFnQixDQXpCckIscUNBNEJLLFVBQWMsQ0FDZCxjQUFlLENBQ2Ysc0JDekNhLENEMENiLGdCQUFpQixDQUl2Qix1QkFDRSxXQUFZLENBQ1osa0NFNUNpRCxDRjZDakQsaUJBQWtCLENBQ2xCLFlBQWEsQ0FDYixrQkFBbUIsQ0FDbkIsNEJBQ0UsWUFBYSxDQUNiLGtCQUFtQixDQUNuQixrQkFBbUIsQ0FUdEIsMkJBWUcsVUFBVyxDQVpkLDRCQWVHLGVBQWdCLENBQ2hCLGdCQUFpQixDQWhCcEIsd0NBa0JLLGNBQWUsQ0FDZix1QkNoRWUsQ0Q2Q3BCLHlDQXNCSyxhQUFjLENBQ2QsY0FBZSxDQUNmLHVCQ3JFZSxDRHlFckIsc0JBQ0UsaUJBQWtCLENBQ2xCLGdCQUFpQixDQUNqQixpQkFBa0IsQ0FDbEIsa0JBQW1CLENBRXJCLHVCQUNFLGlCQUFrQixDQUNsQixnQkFBaUIsQ0FDakIsY0FBZSxDQUNmLDBCQUE4QixDQUovQix5QkFNRyxvQkFBcUIsQ0FHekIscUJBQ0UsaUJBQWtCLENBQ2xCLGNBQWUsQ0FDZiwwQkFBOEIsQ0FDOUIsb0JBQXFCLENBSnRCLHlCQU1HLFVBQVcsQ0FHZixtQkFDRSxZQUFhLENBQ2Isa0JBQW1CLENBQ25CLGtCQUFtQixDQUNuQixzQkFBdUIsQ0FPM0IsaUJBR0UsV0FBMEIsQ0FDMUIsV0FBWSxDQUNaLGlCQUFrQixDQUxwQiwyQkFRSSxVQUEwQixDQUMxQixXQUEyQixDQUMzQixxQkFYMkIsQ0FhM0Isa0JBQW1CLENBQ25CLG9CQUFxQixDQUNyQiwyREFBMEUsQ0FkOUUsOEJBa0JJLHFCQWhCZ0IsQ0FpQmhCLGVBQWdCLENBbkJwQiw4QkFzQkkscUJBQW1DLENBQ25DLGVBQWdCLENBSXBCLDJCQUNFLFVBQ0Usa0JBQW1CLENBRXJCLElBQ0Usa0JBQXFCLENBQUEsQ0FHekIsVUFDRSxZQUFhLENBQ2Isc0JBQXVCLENBRnpCLHlCQUlJLFdBQVksQ0FKaEIsc0JBT0ksWUFDRixDQUVGLFVBQ0UsZUFBZ0IsQ0FDaEIsY0FBZSxDQUNmLGtCQUFtQixDQUhyQixhQU1JLGlCQUFrQixDQUNsQixvQkFBcUIsQ0FQekIsdUJBU00sYUFBYyxDQUNkLHVCQ25LaUIsQ0R5SnZCLGVBYU0sVUFBYyxDQUNkLGNBQWUsQ0FDZixlQUFnQixDQUl0Qix5QkFFSSxRQUFTLENBQ1QsU0FBVSxDQUhkLDRCQUtNLGVBQWdCLENBQ2hCLGVBQWdCLENBQ2hCLGVBQWdCLENBUHRCLHdDQVVRLFlBQ0YiLCJmaWxlIjoiaW5kZXguc2NzcyJ9 */";
969styleInject(css$2);
970
971/**
972 * Улучшенная версия загрузчика файлов.
973 * @param props
974 */
975var FileManager = function (props) {
976 var _a = props.allowMultiple, allowMultiple = _a === void 0 ? false : _a, files = props.files, file = props.file, _b = props.handleFile, handleFile = _b === void 0 ? null : _b, _c = props.handleFiles, handleFiles = _c === void 0 ? null : _c, _d = props.ExtraContent, ExtraContent = _d === void 0 ? function () { return React__default.createElement(React__default.Fragment, null); } : _d, _e = props.ExtraContents, ExtraContents = _e === void 0 ? [] : _e, _f = props.theme, theme = _f === void 0 ? "default" : _f, _g = props.userId, userId = _g === void 0 ? null : _g, _h = props.uploadText, uploadText = _h === void 0 ? "Загрузка файлов" : _h, _j = props.extensions, extensions = _j === void 0 ? "" : _j, _k = props.objId, objId = _k === void 0 ? "" : _k, _l = props.objType, objType = _l === void 0 ? 999 : _l, _m = props.objCode, objCode = _m === void 0 ? "" : _m, _o = props.maxFileSize, maxFileSize = _o === void 0 ? 1024 * 1024 * 5 : _o, //5MB
977 _p = props.needToSign, //5MB
978 needToSign = _p === void 0 ? false : _p, _q = props.enableRemove, enableRemove = _q === void 0 ? false : _q, _r = props.enableModerate, enableModerate = _r === void 0 ? false : _r, _s = props.enableFakeRemove, enableFakeRemove = _s === void 0 ? false : _s, _t = props.showFilename, showFilename = _t === void 0 ? false : _t, _u = props.showFileStatus, showFileStatus = _u === void 0 ? false : _u;
979 var metadata = { objType: objType, objId: objId, objCode: objCode, needToSign: needToSign };
980 var _v = useUpload({
981 allowMultiple: allowMultiple,
982 metadata: metadata,
983 initialFiles: allowMultiple ? files : file ? [file] : [],
984 maxFileSize: maxFileSize,
985 enableFakeRemove: enableFakeRemove,
986 extensions: extensions,
987 handleFile: handleFile,
988 handleFiles: handleFiles
989 }), acceptedFiles = _v.acceptedFiles, uploadFiles = _v.uploadFiles, removeFile = _v.removeFile, moderateFile = _v.moderateFile, signFile = _v.signFile;
990 //Передаем файлы родителю при каждом изменении
991 // @deprecated - пришлось эту логику отправлять в useUpload, тк handleFile должен срабатывать только тогда когда
992 // реально происходит зарузка-удаление-подписание. А по ЭТОЙ логике handleFiles будет вызываться как мин когда компонент
993 // замаунтиться
994 // useEffect(() => {
995 // handleFiles && allowMultiple && handleFiles(acceptedFiles)
996 // handleFile && !allowMultiple && handleFile(acceptedFiles[0])
997 // }, [acceptedFiles])
998 /**
999 * Загрузчик файлов
1000 * Если allowMultiple = true - то отображаем ее всегда независимо от количества загруженных файлов
1001 * Если allowMultiple = false files.lengh == 1 - тогда скрыть ее, показать только когда files.lengh == 0 т.е не загружен
1002 */
1003 var Uploader = function () {
1004 if (allowMultiple == false && acceptedFiles.length > 0) {
1005 return React__default.createElement(React__default.Fragment, null);
1006 }
1007 var randId = Math.floor(Math.random() * (10000 - 1)) + 1;
1008 var Default = function () {
1009 return (React__default.createElement(React__default.Fragment, null,
1010 React__default.createElement("div", { className: "mad-uploader-select-file" },
1011 uploadText && React__default.createElement("p", null, uploadText),
1012 React__default.createElement(DragAndDrop, { handleDrop: uploadFiles },
1013 React__default.createElement("label", { htmlFor: "file-manager-" + randId },
1014 React__default.createElement("div", { className: "mad-uploader-load" },
1015 React__default.createElement("img", { src: img, alt: "" }),
1016 React__default.createElement("span", null, "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043B"),
1017 extensions != "*" && (React__default.createElement("span", { style: { color: "#B3B3B3", marginLeft: "5px" } },
1018 "(",
1019 extensions,
1020 ", ",
1021 filesize(maxFileSize),
1022 ")"))))))));
1023 };
1024 var Button = function () {
1025 return (React__default.createElement("label", { htmlFor: "file-manager-" + randId, className: "jbtn jbtn-green mad-uploader-button" },
1026 uploadText,
1027 extensions != "*" && (React__default.createElement("span", { style: { fontFamily: "dinpro-med" } },
1028 "(",
1029 extensions,
1030 ", ",
1031 filesize(maxFileSize),
1032 ")"))));
1033 };
1034 return (React__default.createElement(React__default.Fragment, null,
1035 React__default.createElement("input", { type: "file", name: "mad-file", id: "file-manager-" + randId, accept: extensions, style: { display: "none" }, key: randId, multiple: allowMultiple, required: true, onChange: uploadFiles }),
1036 theme == "default" && React__default.createElement(Default, null),
1037 theme == "button" && React__default.createElement(Button, null)));
1038 };
1039 return (React__default.createElement("div", { style: { display: "flex", flexDirection: "column", width: "inherit" } },
1040 React__default.createElement(Uploader, null),
1041 React__default.createElement("div", null, acceptedFiles
1042 .map(function (file, key) {
1043 return (React__default.createElement(Viewer, { file: file, key: key, userId: userId, handleRemove: removeFile, handleModerate: moderateFile, enableRemove: enableRemove, enableModerate: enableModerate, handleSign: signFile, ExtraContent: allowMultiple ? (ExtraContents.length > 0 ? ExtraContents[key] : ExtraContent) : ExtraContent, showFilename: showFilename, showFileStatus: showFileStatus }));
1044 })
1045 .reverse())));
1046};
1047
1048exports.FileManager = FileManager;