@kando-env/kando-ui 1.2.55-alpha.8 → 1.2.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/lib/Router.js +3 -3
  2. package/lib/Widgets/Map/edges/Edge.js +1 -1
  3. package/lib/i18n/en.json +1 -2
  4. package/lib/i18n/he.json +0 -2
  5. package/lib/macros/getVersion.js +2 -2
  6. package/lib/pages/SamplingsPage/NewSamplingAction.js +2 -2
  7. package/lib/pages/SamplingsPage/SamplingActionDropdown.js +24 -19
  8. package/lib/pages/SamplingsPage/SamplingMobileModal.js +51 -79
  9. package/lib/pages/SamplingsPage/SamplingProperties/ImageUpload.js +2 -2
  10. package/lib/pages/SamplingsPage/SamplingProperties/SamplingMobileProperties.js +200 -0
  11. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +250 -114
  12. package/lib/pages/SamplingsPage/SamplingProperties/bootstrap.overrides.scss +7 -0
  13. package/lib/pages/SamplingsPage/SamplingProperties/samplingPropertiesUtils.js +10 -14
  14. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +17 -10
  15. package/lib/pages/SamplingsPage/SamplingsPage.js +2 -18
  16. package/lib/pages/SamplingsPage/samplingsPageUtils.js +4 -18
  17. package/lib/pages/SamplingsPage/style.module.scss +2 -37
  18. package/lib/pages/SamplingsPage/table.styles.scss +0 -1
  19. package/lib/pages/UtilityDashboardPage/UtilityDashboardMapContainer/UtilityDashboardMapContainer.js +3 -4
  20. package/lib/ui-kit/DropDown/DropDown.js +4 -2
  21. package/lib/ui-kit/ImageUploadButton/ImageUploadButton.js +1 -1
  22. package/lib/ui-kit/KandoTable/KandoTable.js +6 -10
  23. package/lib/ui-kit/MobileInput/MobileInput.js +4 -4
  24. package/lib/ui-kit/SamplingStatus/SamplingStatus.js +5 -11
  25. package/package.json +1 -1
  26. package/lib/hooks/useUserTimeZone.js +0 -36
  27. package/lib/pages/SamplingsPage/SamplingProperties/SamplingProperties.js +0 -317
  28. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHead.js +0 -198
  29. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesHeadMobile.js +0 -198
  30. package/lib/pages/SamplingsPage/SamplingProperties/style.module.scss +0 -82
  31. package/lib/ui-kit/KandoTable/style.module.scss +0 -5
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.SamplingMobileProperties = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
13
+
14
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _axios = _interopRequireDefault(require("axios"));
19
+
20
+ var _moment = _interopRequireDefault(require("moment"));
21
+
22
+ var _reactBootstrap = require("react-bootstrap");
23
+
24
+ var _reactDeviceDetect = require("react-device-detect");
25
+
26
+ var _reactRouterDom = require("react-router-dom");
27
+
28
+ var _Layout = _interopRequireDefault(require("ui-kit/Layout/Layout"));
29
+
30
+ var _samplingPropertiesPhone = _interopRequireDefault(require("assets/icons/sampling-properties-phone.svg"));
31
+
32
+ var _i18n = _interopRequireDefault(require("utilities/i18n"));
33
+
34
+ var _useQueryURL = _interopRequireDefault(require("hooks/useQueryURL"));
35
+
36
+ var _imageMissing = require("@svgr/webpack?-svgo!assets/image-missing.svg");
37
+
38
+ var _Spinner = require("components/Spinner/Spinner");
39
+
40
+ var _urls = require("utilities/urls");
41
+
42
+ var _styleModule = _interopRequireDefault(require("../style.module.scss"));
43
+
44
+ var _SamplingPropertiesForm = require("./SamplingPropertiesForm");
45
+
46
+ var _SamplingsMobileItem = require("../SamplingsMobileItem");
47
+
48
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
49
+
50
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
51
+
52
+ /*
53
+ * Properties and Cancelling forms.
54
+ **/
55
+ function ImageMissingComponent(props) {
56
+ var image;
57
+
58
+ if (props.samplingProperties.point_photo !== null) {
59
+ image = /*#__PURE__*/_react.default.createElement("div", {
60
+ className: _styleModule.default.imageWrapper,
61
+ style: {
62
+ height: '100%',
63
+ backgroundSize: 'cover',
64
+ backgroundPosition: 'center',
65
+ backgroundImage: "url(".concat(props.samplingProperties.point_photo, ")")
66
+ }
67
+ });
68
+ } else {
69
+ image = /*#__PURE__*/_react.default.createElement("div", {
70
+ className: _styleModule.default.imageWrapper
71
+ }, /*#__PURE__*/_react.default.createElement(_imageMissing.ReactComponent, null));
72
+ }
73
+
74
+ return image;
75
+ }
76
+
77
+ var SamplingMobileProperties = function SamplingMobileProperties() {
78
+ var currDate = Date.now();
79
+
80
+ var _useState = (0, _react.useState)(currDate),
81
+ _useState2 = (0, _slicedToArray2.default)(_useState, 1),
82
+ collectionDate = _useState2[0];
83
+
84
+ var _useState3 = (0, _react.useState)(false),
85
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
86
+ samplingUpdated = _useState4[0],
87
+ setSamplingUpdated = _useState4[1];
88
+
89
+ var _useState5 = (0, _react.useState)(undefined),
90
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
91
+ sampling = _useState6[0],
92
+ setSampling = _useState6[1];
93
+
94
+ var _useState7 = (0, _react.useState)('properties'),
95
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
96
+ pageType = _useState8[0],
97
+ setPageType = _useState8[1];
98
+
99
+ var _useState9 = (0, _react.useState)(),
100
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
101
+ samplingProperties = _useState10[0],
102
+ setSamplingProperties = _useState10[1];
103
+
104
+ var _useParams = (0, _reactRouterDom.useParams)(),
105
+ sampleId = _useParams.sampleId;
106
+
107
+ var fetchSamplingProperties = function fetchSamplingProperties() {
108
+ var samplingId = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : sampleId;
109
+
110
+ _axios.default.get((0, _urls.urls)({
111
+ samplingId: samplingId
112
+ }).samplingProperties.fetchSampling.url).then(function (res) {
113
+ var samplingRes = res.data;
114
+ setSamplingProperties(samplingRes.sampling_properties);
115
+ setSampling(samplingRes.sampling_plan);
116
+ });
117
+ };
118
+
119
+ var getCurrentDate = function getCurrentDate(epoch) {
120
+ return (0, _moment.default)(epoch).format('DD/MM/YYYY hh:mm');
121
+ };
122
+
123
+ var query = (0, _useQueryURL.default)();
124
+ (0, _react.useEffect)(function () {
125
+ fetchSamplingProperties(sampleId);
126
+ var op = query.get('op') === 'cancel' ? 'cancel' : 'collect';
127
+ setPageType(op);
128
+ }, [samplingUpdated]);
129
+ if (sampling === undefined) return /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, null);
130
+ return /*#__PURE__*/_react.default.createElement(_Layout.default, null, /*#__PURE__*/_react.default.createElement(SamplingPropertiesStyle, null, /*#__PURE__*/_react.default.createElement(Top, null, !_reactDeviceDetect.isMobile && samplingProperties !== undefined && /*#__PURE__*/_react.default.createElement(Start, null, /*#__PURE__*/_react.default.createElement(ImageMissingComponent, {
131
+ samplingProperties: samplingProperties
132
+ })), /*#__PURE__*/_react.default.createElement(End, null, /*#__PURE__*/_react.default.createElement(_SamplingsMobileItem.SamplingsMobileItem, {
133
+ isMobileProperties: true,
134
+ data: sampling
135
+ }), /*#__PURE__*/_react.default.createElement(PropertyItemLayout, null, /*#__PURE__*/_react.default.createElement(LeftSideLayout, null, sampling.contact), sampling.contact_number && /*#__PURE__*/_react.default.createElement(ContactNumberStyle, null, /*#__PURE__*/_react.default.createElement(PhoneIconStyle, {
136
+ src: _samplingPropertiesPhone.default
137
+ }), /*#__PURE__*/_react.default.createElement(UnderlineTextStyle, {
138
+ href: "tel:".concat(sampling.contact_number)
139
+ }, sampling.contact_number))), /*#__PURE__*/_react.default.createElement(PropertyItemLayout, null, /*#__PURE__*/_react.default.createElement(LeftSideLayout, null, _i18n.default.t('sampling.sampling_type')), sampling.type), /*#__PURE__*/_react.default.createElement(PropertyItemLayout, null, /*#__PURE__*/_react.default.createElement(LeftSideLayout, null, _i18n.default.t('samplings_page.samplings_properties.collection_time')), /*#__PURE__*/_react.default.createElement(UnderlineTextStyle, null, getCurrentDate(collectionDate))))), samplingProperties !== undefined && pageType !== undefined && /*#__PURE__*/_react.default.createElement(_SamplingPropertiesForm.SamplingPropertiesForm, {
140
+ samplingProperties: samplingProperties,
141
+ sampling: sampling,
142
+ pageType: pageType,
143
+ currentDate: getCurrentDate(collectionDate),
144
+ setSamplingUpdated: setSamplingUpdated
145
+ })));
146
+ };
147
+
148
+ exports.SamplingMobileProperties = SamplingMobileProperties;
149
+
150
+ var SamplingPropertiesStyle = _styledComponents.default.div.withConfig({
151
+ displayName: "SamplingMobileProperties__SamplingPropertiesStyle",
152
+ componentId: "sc-1qot0ip-0"
153
+ })(["", " ", ""], !_reactDeviceDetect.isMobile ? 'width: 830px;' : '', !_reactDeviceDetect.isMobile ? 'margin: 100px;' : '');
154
+
155
+ var PropertyItemLayout = (0, _styledComponents.default)(_reactBootstrap.ListGroup.Item).withConfig({
156
+ displayName: "SamplingMobileProperties__PropertyItemLayout",
157
+ componentId: "sc-1qot0ip-1"
158
+ })(["display:flex;justify-content:space-between;border:none;height:42px;align-items:center;padding:0 0 6px;"]);
159
+
160
+ var LeftSideLayout = _styledComponents.default.span.withConfig({
161
+ displayName: "SamplingMobileProperties__LeftSideLayout",
162
+ componentId: "sc-1qot0ip-2"
163
+ })(["font-weight:bold;font-family:Nunito;font-weight:700;color:", ";"], function (_ref) {
164
+ var theme = _ref.theme;
165
+ return theme.colorScheme.natural.n100;
166
+ });
167
+
168
+ var ContactNumberStyle = _styledComponents.default.div.withConfig({
169
+ displayName: "SamplingMobileProperties__ContactNumberStyle",
170
+ componentId: "sc-1qot0ip-3"
171
+ })(["display:flex;align-items:center;gap:5px;"]);
172
+
173
+ var UnderlineTextStyle = _styledComponents.default.a.withConfig({
174
+ displayName: "SamplingMobileProperties__UnderlineTextStyle",
175
+ componentId: "sc-1qot0ip-4"
176
+ })(["text-decoration:underline;color:", ";"], function (_ref2) {
177
+ var theme = _ref2.theme;
178
+ return theme.samplingsPage.mobile.propertiesClickItems;
179
+ });
180
+
181
+ var PhoneIconStyle = _styledComponents.default.img.withConfig({
182
+ displayName: "SamplingMobileProperties__PhoneIconStyle",
183
+ componentId: "sc-1qot0ip-5"
184
+ })(["width:14px;height:14px;"]);
185
+
186
+ var Top = _styledComponents.default.div.withConfig({
187
+ displayName: "SamplingMobileProperties__Top",
188
+ componentId: "sc-1qot0ip-6"
189
+ })(["display:flex;"]);
190
+
191
+ var Start = _styledComponents.default.div.withConfig({
192
+ displayName: "SamplingMobileProperties__Start",
193
+ componentId: "sc-1qot0ip-7"
194
+ })(["width:", ";overflow:hidden;margin-inline-end:25px;img{border:1px solid #858a94;border-radius:16px;height:100%;width:100%;}svg{width:100%;height:100%;opacity:0.1;}"], _reactDeviceDetect.isMobile ? '0%' : '40%');
195
+
196
+ var End = _styledComponents.default.div.withConfig({
197
+ displayName: "SamplingMobileProperties__End",
198
+ componentId: "sc-1qot0ip-8"
199
+ })(["width:100%;border:1px solid #a6acb9;border-radius:16px;overflow:hidden;padding:0 20px;box-sizing:content-box;"]);
200
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWdlcy9TYW1wbGluZ3NQYWdlL1NhbXBsaW5nUHJvcGVydGllcy9TYW1wbGluZ01vYmlsZVByb3BlcnRpZXMudHN4Il0sIm5hbWVzIjpbIkltYWdlTWlzc2luZ0NvbXBvbmVudCIsInByb3BzIiwiaW1hZ2UiLCJzYW1wbGluZ1Byb3BlcnRpZXMiLCJwb2ludF9waG90byIsIlN0eWxlIiwiaW1hZ2VXcmFwcGVyIiwiaGVpZ2h0IiwiYmFja2dyb3VuZFNpemUiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kSW1hZ2UiLCJTYW1wbGluZ01vYmlsZVByb3BlcnRpZXMiLCJjdXJyRGF0ZSIsIkRhdGUiLCJub3ciLCJjb2xsZWN0aW9uRGF0ZSIsInNhbXBsaW5nVXBkYXRlZCIsInNldFNhbXBsaW5nVXBkYXRlZCIsInVuZGVmaW5lZCIsInNhbXBsaW5nIiwic2V0U2FtcGxpbmciLCJwYWdlVHlwZSIsInNldFBhZ2VUeXBlIiwic2V0U2FtcGxpbmdQcm9wZXJ0aWVzIiwic2FtcGxlSWQiLCJmZXRjaFNhbXBsaW5nUHJvcGVydGllcyIsInNhbXBsaW5nSWQiLCJheGlvcyIsImdldCIsImZldGNoU2FtcGxpbmciLCJ1cmwiLCJ0aGVuIiwicmVzIiwic2FtcGxpbmdSZXMiLCJkYXRhIiwic2FtcGxpbmdfcHJvcGVydGllcyIsInNhbXBsaW5nX3BsYW4iLCJnZXRDdXJyZW50RGF0ZSIsImVwb2NoIiwiZm9ybWF0IiwicXVlcnkiLCJvcCIsImlzTW9iaWxlIiwiY29udGFjdCIsImNvbnRhY3RfbnVtYmVyIiwiUGhvbmUiLCJpMThuIiwidCIsInR5cGUiLCJTYW1wbGluZ1Byb3BlcnRpZXNTdHlsZSIsInN0eWxlZCIsImRpdiIsIlByb3BlcnR5SXRlbUxheW91dCIsIkxpc3RHcm91cCIsIkl0ZW0iLCJMZWZ0U2lkZUxheW91dCIsInNwYW4iLCJ0aGVtZSIsImNvbG9yU2NoZW1lIiwibmF0dXJhbCIsIm4xMDAiLCJDb250YWN0TnVtYmVyU3R5bGUiLCJVbmRlcmxpbmVUZXh0U3R5bGUiLCJhIiwic2FtcGxpbmdzUGFnZSIsIm1vYmlsZSIsInByb3BlcnRpZXNDbGlja0l0ZW1zIiwiUGhvbmVJY29uU3R5bGUiLCJpbWciLCJUb3AiLCJTdGFydCIsIkVuZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7QUFFQTs7QUFDQTs7OztBQUVBOztBQUNBOztBQUVBOztBQUVBOztBQUNBOzs7Ozs7QUF0QkE7QUFDQTtBQUNBO0FBd0NBLFNBQVNBLHFCQUFULENBQStCQyxLQUEvQixFQUVHO0FBQ0QsTUFBSUMsS0FBSjs7QUFDQSxNQUFJRCxLQUFLLENBQUNFLGtCQUFOLENBQXlCQyxXQUF6QixLQUF5QyxJQUE3QyxFQUFtRDtBQUNqREYsSUFBQUEsS0FBSyxnQkFDSDtBQUNFLE1BQUEsU0FBUyxFQUFFRyxxQkFBTUMsWUFEbkI7QUFFRSxNQUFBLEtBQUssRUFBRTtBQUNMQyxRQUFBQSxNQUFNLEVBQUUsTUFESDtBQUVMQyxRQUFBQSxjQUFjLEVBQUUsT0FGWDtBQUdMQyxRQUFBQSxrQkFBa0IsRUFBRSxRQUhmO0FBSUxDLFFBQUFBLGVBQWUsZ0JBQVNULEtBQUssQ0FBQ0Usa0JBQU4sQ0FBeUJDLFdBQWxDO0FBSlY7QUFGVCxNQURGO0FBV0QsR0FaRCxNQVlPO0FBQ0xGLElBQUFBLEtBQUssZ0JBQ0g7QUFBSyxNQUFBLFNBQVMsRUFBRUcscUJBQU1DO0FBQXRCLG9CQUNFLDZCQUFDLDRCQUFELE9BREYsQ0FERjtBQUtEOztBQUNELFNBQU9KLEtBQVA7QUFDRDs7QUFFTSxJQUFNUyx3QkFBNEIsR0FBRyxTQUEvQkEsd0JBQStCLEdBQU07QUFDaEQsTUFBTUMsUUFBUSxHQUFHQyxJQUFJLENBQUNDLEdBQUwsRUFBakI7O0FBQ0Esa0JBQXlCLHFCQUFTRixRQUFULENBQXpCO0FBQUE7QUFBQSxNQUFPRyxjQUFQOztBQUNBLG1CQUE4QyxxQkFBUyxLQUFULENBQTlD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QTtBQUFBO0FBQUEsK0JBQXBCOztBQUtBLElBQU1DLEdBQUcsR0FBR25CLDBCQUFPQyxHQUFWO0FBQUE7QUFBQTtBQUFBLHFCQUFUOztBQUdBLElBQU1tQixLQUFLLEdBQUdwQiwwQkFBT0MsR0FBVjtBQUFBO0FBQUE7QUFBQSwyS0FDQVQsOEJBQVcsSUFBWCxHQUFrQixLQURsQixDQUFYOztBQWtCQSxJQUFNNkIsR0FBRyxHQUFHckIsMEJBQU9DLEdBQVY7QUFBQTtBQUFBO0FBQUEscUhBQVQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHJvcGVydGllcyBhbmQgQ2FuY2VsbGluZyBmb3Jtcy5cbiAqKi9cbmltcG9ydCBSZWFjdCwgeyBGQywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzL21hY3JvJztcbmltcG9ydCB7IExpc3RHcm91cCB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgeyBpc01vYmlsZSB9IGZyb20gJ3JlYWN0LWRldmljZS1kZXRlY3QnO1xuaW1wb3J0IHsgdXNlUGFyYW1zIH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5cbmltcG9ydCBMYXlvdXQgZnJvbSAnc3JjL3VpLWtpdC9MYXlvdXQvTGF5b3V0JztcbmltcG9ydCBQaG9uZSBmcm9tICdzcmMvYXNzZXRzL2ljb25zL3NhbXBsaW5nLXByb3BlcnRpZXMtcGhvbmUuc3ZnJztcbmltcG9ydCBpMThuIGZyb20gJ3NyYy91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgdXNlUXVlcnlVUkwgZnJvbSAnc3JjL2hvb2tzL3VzZVF1ZXJ5VVJMJztcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIEltYWdlTWlzc2luZyB9IGZyb20gJ3NyYy9hc3NldHMvaW1hZ2UtbWlzc2luZy5zdmcnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJ3NyYy9jb21wb25lbnRzL1NwaW5uZXIvU3Bpbm5lcic7XG5pbXBvcnQgeyB1cmxzIH0gZnJvbSAnc3JjL3V0aWxpdGllcy91cmxzJztcblxuaW1wb3J0IFN0eWxlIGZyb20gJy4uL3N0eWxlLm1vZHVsZS5zY3NzJztcbmltcG9ydCB7IFNhbXBsaW5nRmV0Y2hEYXRhIH0gZnJvbSAnLi4vc2FtcGxpbmdzUGFnZVV0aWxzJztcbmltcG9ydCB7IFNhbXBsaW5nUHJvcGVydGllc0Zvcm0gfSBmcm9tICcuL1NhbXBsaW5nUHJvcGVydGllc0Zvcm0nO1xuaW1wb3J0IHsgU2FtcGxpbmdzTW9iaWxlSXRlbSBhcyBTYW1wbGluZ0l0ZW1JbmZvIH0gZnJvbSAnLi4vU2FtcGxpbmdzTW9iaWxlSXRlbSc7XG5cbmV4cG9ydCB0eXBlIFRTYW1wbGluZ1Byb3BlcnRpZXMgPSB7XG4gIHBvaW50X3Bob3RvOiBzdHJpbmc7XG4gIHBob3RvczogW3sgdXJsOiBzdHJpbmc7IGlkOiBudW1iZXIgfV07XG4gIGxhYnM6IFtdO1xuICBzYW1wbGluZzoge1xuICAgIGlkOiBudW1iZXI7XG4gICAgbGFiX2lkOiBudW1iZXI7XG4gICAgY29sbGVjdGlvbl90aW1lOiBzdHJpbmc7XG4gICAgcHVtcF9zYW1wbGluZ192b2x1bWU6IG51bWJlcjtcbiAgICBwdW1wX2JhdHRlcnlfbGV2ZWw6IG51bWJlcjtcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIGthbmRvX3JlcDogc3RyaW5nO1xuICAgIHNhbXBsaW5nX3BsYW5faWQ6IG51bWJlcjtcbiAgICBjYW5jZWxsYXRpb25fcmVhc29uOiBzdHJpbmc7XG4gICAgaXNfY2FuY2VsZWQ6IGJvb2xlYW47XG4gIH07XG59O1xuXG5mdW5jdGlvbiBJbWFnZU1pc3NpbmdDb21wb25lbnQocHJvcHM6IHtcbiAgc2FtcGxpbmdQcm9wZXJ0aWVzOiBUU2FtcGxpbmdQcm9wZXJ0aWVzO1xufSkge1xuICBsZXQgaW1hZ2U7XG4gIGlmIChwcm9wcy5zYW1wbGluZ1Byb3BlcnRpZXMucG9pbnRfcGhvdG8gIT09IG51bGwpIHtcbiAgICBpbWFnZSA9IChcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtTdHlsZS5pbWFnZVdyYXBwZXJ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgYmFja2dyb3VuZFNpemU6ICdjb3ZlcicsXG4gICAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9uOiAnY2VudGVyJyxcbiAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6IGB1cmwoJHtwcm9wcy5zYW1wbGluZ1Byb3BlcnRpZXMucG9pbnRfcGhvdG99KWAsXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgaW1hZ2UgPSAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17U3R5bGUuaW1hZ2VXcmFwcGVyfT5cbiAgICAgICAgPEltYWdlTWlzc2luZyAvPlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuICByZXR1cm4gaW1hZ2U7XG59XG5cbmV4cG9ydCBjb25zdCBTYW1wbGluZ01vYmlsZVByb3BlcnRpZXM6IEZDID0gKCkgPT4ge1xuICBjb25zdCBjdXJyRGF0ZSA9IERhdGUubm93KCk7XG4gIGNvbnN0IFtjb2xsZWN0aW9uRGF0ZV0gPSB1c2VTdGF0ZShjdXJyRGF0ZSk7XG4gIGNvbnN0IFtzYW1wbGluZ1VwZGF0ZWQsIHNldFNhbXBsaW5nVXBkYXRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtzYW1wbGluZywgc2V0U2FtcGxpbmddID0gdXNlU3RhdGU8U2FtcGxpbmdGZXRjaERhdGEgfCB1bmRlZmluZWQ+KFxuICAgIHVuZGVmaW5lZCxcbiAgKTtcbiAgY29uc3QgW3BhZ2VUeXBlLCBzZXRQYWdlVHlwZV0gPSB1c2VTdGF0ZTxzdHJpbmcgfCB1bmRlZmluZWQ+KCdwcm9wZXJ0aWVzJyk7XG4gIGNvbnN0IFtzYW1wbGluZ1Byb3BlcnRpZXMsIHNldFNhbXBsaW5nUHJvcGVydGllc10gPVxuICAgIHVzZVN0YXRlPFRTYW1wbGluZ1Byb3BlcnRpZXM+KCk7XG5cbiAgY29uc3QgeyBzYW1wbGVJZCB9ID0gdXNlUGFyYW1zKCk7XG5cbiAgY29uc3QgZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMgPSAoc2FtcGxpbmdJZCA9IHNhbXBsZUlkKSA9PiB7XG4gICAgYXhpb3NcbiAgICAgIC5nZXQoXG4gICAgICAgIHVybHMoeyBzYW1wbGluZ0lkOiBzYW1wbGluZ0lkIH0pLnNhbXBsaW5nUHJvcGVydGllcy5mZXRjaFNhbXBsaW5nLnVybCxcbiAgICAgIClcbiAgICAgIC50aGVuKChyZXMpID0+IHtcbiAgICAgICAgbGV0IHNhbXBsaW5nUmVzID0gcmVzLmRhdGE7XG4gICAgICAgIHNldFNhbXBsaW5nUHJvcGVydGllcyhzYW1wbGluZ1Jlcy5zYW1wbGluZ19wcm9wZXJ0aWVzKTtcbiAgICAgICAgc2V0U2FtcGxpbmcoc2FtcGxpbmdSZXMuc2FtcGxpbmdfcGxhbik7XG4gICAgICB9KTtcbiAgfTtcblxuICBjb25zdCBnZXRDdXJyZW50RGF0ZSA9IChlcG9jaDogbnVtYmVyKSA9PlxuICAgIG1vbWVudChlcG9jaCkuZm9ybWF0KCdERC9NTS9ZWVlZIGhoOm1tJyk7XG5cbiAgY29uc3QgcXVlcnkgPSB1c2VRdWVyeVVSTCgpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hTYW1wbGluZ1Byb3BlcnRpZXMoc2FtcGxlSWQpO1xuICAgIGNvbnN0IG9wID0gcXVlcnkuZ2V0KCdvcCcpID09PSAnY2FuY2VsJyA/ICdjYW5jZWwnIDogJ2NvbGxlY3QnO1xuICAgIHNldFBhZ2VUeXBlKG9wKTtcbiAgfSwgW3NhbXBsaW5nVXBkYXRlZF0pO1xuXG4gIGlmIChzYW1wbGluZyA9PT0gdW5kZWZpbmVkKSByZXR1cm4gPFNwaW5uZXIgLz47XG4gIHJldHVybiAoXG4gICAgPExheW91dD5cbiAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNTdHlsZT5cbiAgICAgICAgPFRvcD5cbiAgICAgICAgICB7IWlzTW9iaWxlICYmIHNhbXBsaW5nUHJvcGVydGllcyAhPT0gdW5kZWZpbmVkICYmIChcbiAgICAgICAgICAgIDxTdGFydD5cbiAgICAgICAgICAgICAgPEltYWdlTWlzc2luZ0NvbXBvbmVudCBzYW1wbGluZ1Byb3BlcnRpZXM9e3NhbXBsaW5nUHJvcGVydGllc30gLz5cbiAgICAgICAgICAgIDwvU3RhcnQ+XG4gICAgICAgICAgKX1cbiAgICAgICAgICA8RW5kPlxuICAgICAgICAgICAgPFNhbXBsaW5nSXRlbUluZm8gaXNNb2JpbGVQcm9wZXJ0aWVzPXt0cnVlfSBkYXRhPXtzYW1wbGluZ30gLz5cbiAgICAgICAgICAgIDxQcm9wZXJ0eUl0ZW1MYXlvdXQ+XG4gICAgICAgICAgICAgIDxMZWZ0U2lkZUxheW91dD57c2FtcGxpbmcuY29udGFjdH08L0xlZnRTaWRlTGF5b3V0PlxuICAgICAgICAgICAgICB7c2FtcGxpbmcuY29udGFjdF9udW1iZXIgJiYgKFxuICAgICAgICAgICAgICAgIDxDb250YWN0TnVtYmVyU3R5bGU+XG4gICAgICAgICAgICAgICAgICA8UGhvbmVJY29uU3R5bGUgc3JjPXtQaG9uZX0gLz5cbiAgICAgICAgICAgICAgICAgIDxVbmRlcmxpbmVUZXh0U3R5bGUgaHJlZj17YHRlbDoke3NhbXBsaW5nLmNvbnRhY3RfbnVtYmVyfWB9PlxuICAgICAgICAgICAgICAgICAgICB7c2FtcGxpbmcuY29udGFjdF9udW1iZXJ9XG4gICAgICAgICAgICAgICAgICA8L1VuZGVybGluZVRleHRTdHlsZT5cbiAgICAgICAgICAgICAgICA8L0NvbnRhY3ROdW1iZXJTdHlsZT5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvUHJvcGVydHlJdGVtTGF5b3V0PlxuICAgICAgICAgICAgPFByb3BlcnR5SXRlbUxheW91dD5cbiAgICAgICAgICAgICAgPExlZnRTaWRlTGF5b3V0PlxuICAgICAgICAgICAgICAgIHtpMThuLnQoJ3NhbXBsaW5nLnNhbXBsaW5nX3R5cGUnKX1cbiAgICAgICAgICAgICAgPC9MZWZ0U2lkZUxheW91dD5cbiAgICAgICAgICAgICAge3NhbXBsaW5nLnR5cGV9XG4gICAgICAgICAgICA8L1Byb3BlcnR5SXRlbUxheW91dD5cbiAgICAgICAgICAgIDxQcm9wZXJ0eUl0ZW1MYXlvdXQ+XG4gICAgICAgICAgICAgIDxMZWZ0U2lkZUxheW91dD5cbiAgICAgICAgICAgICAgICB7aTE4bi50KCdzYW1wbGluZ3NfcGFnZS5zYW1wbGluZ3NfcHJvcGVydGllcy5jb2xsZWN0aW9uX3RpbWUnKX1cbiAgICAgICAgICAgICAgPC9MZWZ0U2lkZUxheW91dD5cbiAgICAgICAgICAgICAgPFVuZGVybGluZVRleHRTdHlsZT5cbiAgICAgICAgICAgICAgICB7Z2V0Q3VycmVudERhdGUoY29sbGVjdGlvbkRhdGUpfVxuICAgICAgICAgICAgICA8L1VuZGVybGluZVRleHRTdHlsZT5cbiAgICAgICAgICAgIDwvUHJvcGVydHlJdGVtTGF5b3V0PlxuICAgICAgICAgIDwvRW5kPlxuICAgICAgICA8L1RvcD5cbiAgICAgICAge3NhbXBsaW5nUHJvcGVydGllcyAhPT0gdW5kZWZpbmVkICYmIHBhZ2VUeXBlICE9PSB1bmRlZmluZWQgJiYgKFxuICAgICAgICAgIDxTYW1wbGluZ1Byb3BlcnRpZXNGb3JtXG4gICAgICAgICAgICBzYW1wbGluZ1Byb3BlcnRpZXM9e3NhbXBsaW5nUHJvcGVydGllc31cbiAgICAgICAgICAgIHNhbXBsaW5nPXtzYW1wbGluZ31cbiAgICAgICAgICAgIHBhZ2VUeXBlPXtwYWdlVHlwZX1cbiAgICAgICAgICAgIGN1cnJlbnREYXRlPXtnZXRDdXJyZW50RGF0ZShjb2xsZWN0aW9uRGF0ZSl9XG4gICAgICAgICAgICBzZXRTYW1wbGluZ1VwZGF0ZWQ9e3NldFNhbXBsaW5nVXBkYXRlZH1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9TYW1wbGluZ1Byb3BlcnRpZXNTdHlsZT5cbiAgICA8L0xheW91dD5cbiAgKTtcbn07XG5cbmNvbnN0IFNhbXBsaW5nUHJvcGVydGllc1N0eWxlID0gc3R5bGVkLmRpdmBcbiAgJHshaXNNb2JpbGUgPyAnd2lkdGg6IDgzMHB4OycgOiAnJ31cbiAgJHshaXNNb2JpbGUgPyAnbWFyZ2luOiAxMDBweDsnIDogJyd9XG5gO1xuXG5jb25zdCBQcm9wZXJ0eUl0ZW1MYXlvdXQgPSBzdHlsZWQoTGlzdEdyb3VwLkl0ZW0pYFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGJvcmRlcjogbm9uZTtcbiAgaGVpZ2h0OiA0MnB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwIDAgNnB4O1xuYDtcbmNvbnN0IExlZnRTaWRlTGF5b3V0ID0gc3R5bGVkLnNwYW5gXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LWZhbWlseTogTnVuaXRvO1xuICBmb250LXdlaWdodDogNzAwO1xuICBjb2xvcjogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm4xMDB9O1xuYDtcbmNvbnN0IENvbnRhY3ROdW1iZXJTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogNXB4O1xuYDtcbmNvbnN0IFVuZGVybGluZVRleHRTdHlsZSA9IHN0eWxlZC5hYFxuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuc2FtcGxpbmdzUGFnZS5tb2JpbGUucHJvcGVydGllc0NsaWNrSXRlbXN9O1xuYDtcbmNvbnN0IFBob25lSWNvblN0eWxlID0gc3R5bGVkLmltZ2BcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMTRweDtcbmA7XG5cbmNvbnN0IFRvcCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xuY29uc3QgU3RhcnQgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogJHtpc01vYmlsZSA/ICcwJScgOiAnNDAlJ307XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiAyNXB4O1xuXG4gIGltZyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzg1OGE5NDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIHN2ZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9wYWNpdHk6IDAuMTtcbiAgfVxuYDtcbmNvbnN0IEVuZCA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYTZhY2I5O1xuICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuYDtcbiJdfQ==