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

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 (26) hide show
  1. package/lib/i18n/en.json +19 -11
  2. package/lib/i18n/he.json +64 -1
  3. package/lib/macros/getVersion.js +2 -2
  4. package/lib/pages/ImportGisPage/style.module.scss +6 -6
  5. package/lib/pages/NotificationsPageV2/NotificationsPage.js +160 -83
  6. package/lib/pages/NotificationsPageV2/components/NotificationsCard.js +19 -8
  7. package/lib/pages/NotificationsPageV2/components/NotificationsForm/NotificationsFormContent.js +289 -94
  8. package/lib/pages/NotificationsPageV2/components/NotificationsSidebar.js +101 -140
  9. package/lib/pages/NotificationsPageV2/components/NotificationsUtils.js +216 -0
  10. package/lib/pages/NotificationsPageV2/notificationUtils.js +60 -258
  11. package/lib/pages/SamplingsPage/NewSamplingAction.js +2 -2
  12. package/lib/pages/SamplingsPage/SamplingActionDropdown.js +25 -20
  13. package/lib/pages/SamplingsPage/SamplingMobileModal.js +49 -48
  14. package/lib/pages/SamplingsPage/SamplingProperties/SamplingMobileProperties.js +11 -73
  15. package/lib/pages/SamplingsPage/SamplingProperties/SamplingPropertiesForm.js +7 -4
  16. package/lib/pages/SamplingsPage/SamplingsMobileItem.js +1 -4
  17. package/lib/pages/SamplingsPage/SamplingsPage.js +2 -18
  18. package/lib/pages/SamplingsPage/samplingsPageUtils.js +24 -29
  19. package/lib/pages/SamplingsPage/style.module.scss +0 -31
  20. package/lib/pages/SamplingsPage/table.styles.scss +0 -1
  21. package/lib/ui-kit/Checkbox/Checkbox.js +18 -17
  22. package/lib/ui-kit/DropDown/DropDown.js +4 -2
  23. package/lib/ui-kit/KandoTable/KandoTable.js +6 -10
  24. package/lib/utilities/urls.js +12 -1
  25. package/package.json +1 -1
  26. package/lib/ui-kit/KandoTable/style.module.scss +0 -5
package/lib/i18n/en.json CHANGED
@@ -3557,23 +3557,29 @@
3557
3557
  "notification": "Notification",
3558
3558
  "add_new": "Add New Notification",
3559
3559
  "severity": "Severity",
3560
- "sources": "Sources",
3560
+ "sources": "Points",
3561
+ "tags": "Tags",
3562
+ "sensors": "Sensors",
3561
3563
  "water_authorities": "Water authorities",
3562
3564
  "edit_title": "Edit Notification",
3563
3565
  "edit_subtitle": "Here you can manage your notifications and configure the conditions and receiving options",
3564
- "edit_type": "type",
3566
+ "edit_type": "Type",
3565
3567
  "edit_severity": "Severity",
3566
3568
  "edit_severity_details": "Severity",
3567
3569
  "edit_water_authorities": "Water authorities",
3568
- "edit_Sources": "Sources",
3570
+ "edit_Sources": "Points",
3569
3571
  "edit_send_via": "Send via",
3572
+ "edit_send_via_no_telegram": "You don't have Telegram configured, please go to Profile page and follow the instructions.",
3573
+ "edit_send_via_no_phone": "You don't have Phone number configured, please go to Profile page and follow the instructions.",
3574
+ "ok": "Got it",
3570
3575
  "edit_telegram": "Telegram",
3571
3576
  "edit_email": "Email",
3572
3577
  "edit_sms": "SMS",
3573
3578
  "edit_web": "Web",
3574
3579
  "edit_delete_notifications": "Delete notifications",
3575
- "edit_delete_notification": "Delete notification",
3580
+ "edit_delete_notification": "Delete",
3576
3581
  "edit_save": "Save",
3582
+ "edit_add": "Add",
3577
3583
  "edit_extreme": "Extreme",
3578
3584
  "edit_high": "High",
3579
3585
  "edit_medium": "Medium",
@@ -3581,17 +3587,20 @@
3581
3587
  "edit_include": "Include",
3582
3588
  "edit_exclude": "Exclude",
3583
3589
  "edit_sampler_active": "Send notification only when sampler was activated",
3584
- "edit_pollution_event": "Pollution event",
3585
- "edit_thresholds_exceeded": "Thresholds exceeded",
3586
- "edit_water_level_overflow": "Water level overflow",
3587
- "edit_device_malfunctions": "Device malfunctions",
3588
- "edit_wbe_Weekly_Summary": "WBE weekly summary",
3589
- "edit_wbe_alert": "WBE alert",
3590
+ "sampler_activated": "when Sampler was activated.",
3591
+ "PollutionAlertConfig": "Pollution Event",
3592
+ "DataloggerThresholdAlertConfig": "Thresholds Exceeded",
3593
+ "DataloggerOverflowAlertConfig": "Water-Level Overflow",
3594
+ "DeviceHealthAlertConfig": "Device Malfunctions",
3595
+ "WbeWeeklyDigestAlertConfig": "WBE Weekly Summary",
3596
+ "WbeAlertConfig": "WBE Alert",
3590
3597
  "extreme": "Extreme",
3591
3598
  "high": "High",
3592
3599
  "medium": "Medium",
3593
3600
  "option": "Option",
3594
3601
  "no_notification": "There are no notifications defined yet, click the new button to create one.",
3602
+ "add_notification": "Add Notification",
3603
+ "edit_notification": "Edit Notification",
3595
3604
  "notifications_text": {
3596
3605
  "title": "You will get notification via",
3597
3606
  "about_pollution_events": "about pollution events with severity",
@@ -3639,7 +3648,6 @@
3639
3648
  },
3640
3649
  "page_title": "Samplings Operation",
3641
3650
  "manhole_properties": "Manhole Properties",
3642
- "sampling_properties": "Sampling Properties",
3643
3651
  "collect": "Collect",
3644
3652
  "cancellation_title": "Select the reason for cancellation",
3645
3653
  "samplings_properties": {
package/lib/i18n/he.json CHANGED
@@ -3507,6 +3507,70 @@
3507
3507
  "score": "ערך זיהום",
3508
3508
  "area-info": "סקירה אזורית"
3509
3509
  },
3510
+ "notifications_page": {
3511
+ "title": "הגדרת התראות",
3512
+ "subtitle": "כאן תוכל לנהל ולערוך התראות",
3513
+ "notification": "התראה",
3514
+ "add_new": "הוסף התראה",
3515
+ "severity": "חוּמרָה (רמת זיהום)",
3516
+ "sources": "נקודות דגימה",
3517
+ "tags": "טיוגים",
3518
+ "sensors": "חיישנים",
3519
+ "water_authorities": "תאגידי מים",
3520
+ "edit_title": "ערוך התראה",
3521
+ "edit_subtitle": "כאן תוכל לנהל ולערוך התראות",
3522
+ "edit_type": "סוג",
3523
+ "edit_severity": "חומרה",
3524
+ "edit_severity_details": "חומרה",
3525
+ "edit_water_authorities": "תאגידי מים",
3526
+ "edit_Sources": "ערוך נקודות",
3527
+ "edit_send_via": "שלח דרך",
3528
+ "edit_send_via_no_telegram": "לא הגדרת טלגרם במערכת, ניתן להגדיר בעמוד הפרופיל.",
3529
+ "edit_send_via_no_phone": "לא הגדרת מספר טלפון במערכת, ניתן להגדיר בעמוד הפרופיל.",
3530
+ "ok": "הבנתי",
3531
+ "edit_telegram": "טלגרם",
3532
+ "edit_email": "אימייל",
3533
+ "edit_sms": "סמס",
3534
+ "edit_web": "ווב",
3535
+ "edit_delete_notifications": "מחק התראות",
3536
+ "edit_delete_notification": "מחק",
3537
+ "edit_save": "שמור",
3538
+ "edit_add": "הוסף",
3539
+ "edit_extreme": "גבוהה מאוד",
3540
+ "edit_high": "גבוהה",
3541
+ "edit_medium": "בינונית",
3542
+ "edit_all": "הכל",
3543
+ "edit_include": "רק",
3544
+ "edit_exclude": "הכל מלבד",
3545
+ "edit_sampler_active": "דוגם הופעל",
3546
+ "sampler_activated": "כשהדוגם הופעל.",
3547
+ "PollutionAlertConfig": "ארוע זהום",
3548
+ "DataloggerThresholdAlertConfig": "חריגה בערכי סף",
3549
+ "DataloggerOverflowAlertConfig": "גלישה במד מפלס",
3550
+ "DeviceHealthAlertConfig": "תפקוד לקוי בבקר",
3551
+ "WbeWeeklyDigestAlertConfig": "אירוע אפידמי שבועי",
3552
+ "WbeAlertConfig": "אירוע אפידמי",
3553
+ "extreme": "גבוהה מאוד",
3554
+ "high": "גבוהה",
3555
+ "medium": "בינונית",
3556
+ "option": "אפשרות",
3557
+ "no_notification": "אין התראות מוגדרות, לחץ ״הוסף התראה״ בשביל ליצור אחת.",
3558
+ "add_notification": "הוסף התראה",
3559
+ "edit_notification": "ערוך התראה",
3560
+ "notifications_text": {
3561
+ "title": "ההתראה תשלח דרך",
3562
+ "about_pollution_events": "לגבי אירועי זיהום בחומרה",
3563
+ "or_higher": "או גבוהה יותר,",
3564
+ "in": "ב-",
3565
+ "in_all_sources": "בכל הנקודות",
3566
+ "excluding": "בכל הנקודות חוץ מ-",
3567
+ "sensors_thresholds": "כשאחד מהחיישנים חצה את הסף",
3568
+ "overflow_event": "כשיש אירוע מסוג גלישה במד מפלס",
3569
+ "device_malfunctioning": "כשיש תפקוד לקוי בבקר",
3570
+ "wbe_weekly": "כל שבוע עם סיכום סטטוס אפידימיולוגי",
3571
+ "wbe_alert": "כשיש התפרצות פוטנציאלית"
3572
+ }
3573
+ },
3510
3574
  "samplings_page": {
3511
3575
  "was_not_selected": "לא נבחרה",
3512
3576
  "no_contact": "אין איש קשר",
@@ -3531,7 +3595,6 @@
3531
3595
  },
3532
3596
  "page_title": "דיגומים",
3533
3597
  "manhole_properties": "מאפייני שוחה",
3534
- "sampling_properties": "מאפייני דגימה",
3535
3598
  "collect": "איסוף",
3536
3599
  "new_button": "דיגום חדש",
3537
3600
  "create_button": "יצירה",
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var packageJsonVersion = "1.2.47-alpha.8";
3
+ var packageJsonVersion = "1.2.47";
4
4
 
5
5
  if (typeof packageJsonVersion === 'string') {
6
6
  // eslint-disable-next-line no-console
@@ -8,4 +8,4 @@ if (typeof packageJsonVersion === 'string') {
8
8
  } else {
9
9
  console.error('getVersion.js got bad version from package.json, expected string.');
10
10
  }
11
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYWNyb3MvZ2V0VmVyc2lvbi5qcyJdLCJuYW1lcyI6WyJwYWNrYWdlSnNvblZlcnNpb24iLCJjb25zb2xlIiwibG9nIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7O0FBRUEsSUFBTUEsa0JBQWtCLG1CQUF4Qjs7QUFDQSxJQUFJLE9BQU9BLGtCQUFQLEtBQThCLFFBQWxDLEVBQTRDO0FBQzFDO0FBQ0FDLEVBQUFBLE9BQU8sQ0FBQ0MsR0FBUiwyQkFDcUJGLGtCQURyQixRQUVFLDBEQUZGLEVBR0UsNkVBSEYsMEJBSW1CRyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsUUFKL0I7QUFNRCxDQVJELE1BUU87QUFDTEosRUFBQUEsT0FBTyxDQUFDSyxLQUFSLENBQ0UsbUVBREY7QUFHRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwcmV2YWwgZnJvbSAncHJldmFsLm1hY3JvJztcblxuY29uc3QgcGFja2FnZUpzb25WZXJzaW9uID0gcHJldmFsYG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vYmluL2dldFZlcnNpb25Gcm9tUGFja2FnZUpzb24uanMnKWA7XG5pZiAodHlwZW9mIHBhY2thZ2VKc29uVmVyc2lvbiA9PT0gJ3N0cmluZycpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5sb2coXG4gICAgYCVjIEthbmRvIFVJICVjIHYke3BhY2thZ2VKc29uVmVyc2lvbn0gYCxcbiAgICAnZm9udC1zaXplOiAxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyBjb2xvcjogI2UyMGY1MzsnLFxuICAgICdmb250LXdlaWdodDogYm9sZDsgZm9udC1zaXplOiAxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZTIwZjUzOyBjb2xvcjogI2ZmZjsnLFxuICAgIGB3aXRoIE5PREVfRU5WPSR7cHJvY2Vzcy5lbnYuTk9ERV9FTlZ9YCxcbiAgKTtcbn0gZWxzZSB7XG4gIGNvbnNvbGUuZXJyb3IoXG4gICAgJ2dldFZlcnNpb24uanMgZ290IGJhZCB2ZXJzaW9uIGZyb20gcGFja2FnZS5qc29uLCBleHBlY3RlZCBzdHJpbmcuJyxcbiAgKTtcbn1cbiJdfQ==
11
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYWNyb3MvZ2V0VmVyc2lvbi5qcyJdLCJuYW1lcyI6WyJwYWNrYWdlSnNvblZlcnNpb24iLCJjb25zb2xlIiwibG9nIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7O0FBRUEsSUFBTUEsa0JBQWtCLFdBQXhCOztBQUNBLElBQUksT0FBT0Esa0JBQVAsS0FBOEIsUUFBbEMsRUFBNEM7QUFDMUM7QUFDQUMsRUFBQUEsT0FBTyxDQUFDQyxHQUFSLDJCQUNxQkYsa0JBRHJCLFFBRUUsMERBRkYsRUFHRSw2RUFIRiwwQkFJbUJHLE9BQU8sQ0FBQ0MsR0FBUixDQUFZQyxRQUovQjtBQU1ELENBUkQsTUFRTztBQUNMSixFQUFBQSxPQUFPLENBQUNLLEtBQVIsQ0FDRSxtRUFERjtBQUdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHByZXZhbCBmcm9tICdwcmV2YWwubWFjcm8nO1xuXG5jb25zdCBwYWNrYWdlSnNvblZlcnNpb24gPSBwcmV2YWxgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuLi8uLi9iaW4vZ2V0VmVyc2lvbkZyb21QYWNrYWdlSnNvbi5qcycpYDtcbmlmICh0eXBlb2YgcGFja2FnZUpzb25WZXJzaW9uID09PSAnc3RyaW5nJykge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICBjb25zb2xlLmxvZyhcbiAgICBgJWMgS2FuZG8gVUkgJWMgdiR7cGFja2FnZUpzb25WZXJzaW9ufSBgLFxuICAgICdmb250LXNpemU6IDE1cHg7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGNvbG9yOiAjZTIwZjUzOycsXG4gICAgJ2ZvbnQtd2VpZ2h0OiBib2xkOyBmb250LXNpemU6IDE1cHg7IGJhY2tncm91bmQtY29sb3I6ICNlMjBmNTM7IGNvbG9yOiAjZmZmOycsXG4gICAgYHdpdGggTk9ERV9FTlY9JHtwcm9jZXNzLmVudi5OT0RFX0VOVn1gLFxuICApO1xufSBlbHNlIHtcbiAgY29uc29sZS5lcnJvcihcbiAgICAnZ2V0VmVyc2lvbi5qcyBnb3QgYmFkIHZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb24sIGV4cGVjdGVkIHN0cmluZy4nLFxuICApO1xufVxuIl19
@@ -110,10 +110,6 @@
110
110
  flex-grow: 7;
111
111
  }
112
112
  .uploadFileBtn {
113
- &:hover,
114
- &:active {
115
- opacity: 0.85;
116
- }
117
113
  cursor: pointer;
118
114
  color: white;
119
115
  background: #e31b62;
@@ -122,15 +118,19 @@
122
118
  height: fit-content;
123
119
  text-align: center;
124
120
  flex-grow: 1;
125
- margin: auto auto auto 20px;
121
+ margin: auto;
122
+ margin-left: 20px;
126
123
  transition: all 0.2s;
124
+ &:hover,
125
+ &:active {
126
+ opacity: 85%;
127
+ }
127
128
  }
128
129
  .uploadFileBtnSecondery {
129
130
  &:hover,
130
131
  &:active {
131
132
  color: white;
132
133
  background: #e31b62;
133
- opacity: 0.85;
134
134
  }
135
135
  background: white;
136
136
  color: #e31b62;
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.default = exports.NotificationsPageStyle = void 0;
10
+ exports.NotificationsPageStyle = exports.default = void 0;
11
11
 
12
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
13
13
 
@@ -29,21 +29,174 @@ var _NotificationsSidebar = _interopRequireDefault(require("./components/Notific
29
29
 
30
30
  var _notificationUtils = require("./notificationUtils");
31
31
 
32
+ var _axios = _interopRequireDefault(require("axios"));
33
+
34
+ var _Spinner = require("../../components/Spinner/Spinner");
35
+
36
+ var _urls = require("../../utilities/urls");
37
+
38
+ var _reactDeviceDetect = require("react-device-detect");
39
+
40
+ var _useInitializeHeaders = require("../../hooks/useInitializeHeaders");
41
+
42
+ var _useQueryURL = _interopRequireDefault(require("../../hooks/useQueryURL"));
43
+
32
44
  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); }
33
45
 
34
46
  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; }
35
47
 
48
+ var NotificationsPage = function NotificationsPage() {
49
+ var _useState = (0, _react.useState)(false),
50
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
51
+ isSidebarOpen = _useState2[0],
52
+ setIsSidebarOpen = _useState2[1];
53
+
54
+ var _useState3 = (0, _react.useState)([]),
55
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
56
+ data = _useState4[0],
57
+ setData = _useState4[1];
58
+
59
+ var _useState5 = (0, _react.useState)([]),
60
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
61
+ waterAuthorities = _useState6[0],
62
+ setWaterAuthorities = _useState6[1];
63
+
64
+ var _useState7 = (0, _react.useState)(false),
65
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
66
+ hasTelegram = _useState8[0],
67
+ setHasTelegram = _useState8[1];
68
+
69
+ var _useState9 = (0, _react.useState)(false),
70
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
71
+ hasPhone = _useState10[0],
72
+ setHasPhone = _useState10[1];
73
+
74
+ var _useState11 = (0, _react.useState)([]),
75
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
76
+ points = _useState12[0],
77
+ setPoints = _useState12[1];
78
+
79
+ var _useState13 = (0, _react.useState)([]),
80
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
81
+ tags = _useState14[0],
82
+ setTags = _useState14[1];
83
+
84
+ var _useState15 = (0, _react.useState)([]),
85
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
86
+ sensors = _useState16[0],
87
+ setSensors = _useState16[1];
88
+
89
+ var _useState17 = (0, _react.useState)([]),
90
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
91
+ allowedNotifications = _useState18[0],
92
+ setAllowedNotifications = _useState18[1];
93
+
94
+ var _useState19 = (0, _react.useState)(true),
95
+ _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
96
+ isFetching = _useState20[0],
97
+ setIsFetching = _useState20[1];
98
+
99
+ var _useState21 = (0, _react.useState)((0, _notificationUtils.getEmptyNotification)()),
100
+ _useState22 = (0, _slicedToArray2.default)(_useState21, 2),
101
+ currentNotification = _useState22[0],
102
+ setNotification = _useState22[1];
103
+
104
+ (0, _useInitializeHeaders.useInitializeHeaders)();
105
+ (0, _react.useEffect)(function () {
106
+ fetchNotificationsData();
107
+ }, []);
108
+ var query = (0, _useQueryURL.default)();
109
+
110
+ var getWAId = function getWAId() {
111
+ return query.get('water_authority_id');
112
+ };
113
+
114
+ var fetchNotificationsData = function fetchNotificationsData() {
115
+ setIsFetching(true);
116
+
117
+ _axios.default.get((0, _urls.urls)({
118
+ waterAuthorityId: getWAId()
119
+ }).notificationsPage.getNotifications.url).then(function (res) {
120
+ setData(res.data.notifications);
121
+ setWaterAuthorities(res.data.water_authorities);
122
+ setPoints(res.data.points);
123
+ setTags(res.data.tags);
124
+ setSensors(res.data.sensors);
125
+ setAllowedNotifications(res.data.allowed_alerts);
126
+ setHasTelegram(res.data.user_has_telegram);
127
+ setHasPhone(res.data.user_has_phone);
128
+ setIsFetching(false);
129
+ }).catch(function () {
130
+ setIsFetching(false);
131
+ });
132
+ };
133
+
134
+ var deleteNotification = function deleteNotification(notification) {
135
+ setIsFetching(true);
136
+
137
+ _axios.default.post((0, _urls.urls)().notificationsPage.deleteNotification.url, {
138
+ alert_id: notification.id
139
+ }).then(function () {
140
+ fetchNotificationsData();
141
+ });
142
+ };
143
+
144
+ var updateNotifications = function updateNotifications(notification) {
145
+ setIsFetching(true);
146
+
147
+ _axios.default.patch((0, _urls.urls)().notificationsPage.updateNotifications.url, notification).then(function () {
148
+ fetchNotificationsData();
149
+ });
150
+ };
151
+
152
+ var toggleSidebar = function toggleSidebar(notification) {
153
+ setNotification(notification);
154
+ setIsSidebarOpen(true);
155
+ };
156
+
157
+ return /*#__PURE__*/_react.default.createElement(_Layout.default, null, /*#__PURE__*/_react.default.createElement(NotificationsPageStyle, null, isSidebarOpen && /*#__PURE__*/_react.default.createElement(ScreenStyle, null), /*#__PURE__*/_react.default.createElement(NotificationsListHeadStyle, null, isFetching && /*#__PURE__*/_react.default.createElement(_Spinner.Spinner, null), /*#__PURE__*/_react.default.createElement("h1", null, _i18n.default.t('notifications_page.title')), /*#__PURE__*/_react.default.createElement(NotificationsListHeadContentStyle, null, /*#__PURE__*/_react.default.createElement("p", null, _i18n.default.t('notifications_page.subtitle')), /*#__PURE__*/_react.default.createElement(_Button.default, {
158
+ variant: _Button.variant.PRIMARY,
159
+ type: "submit",
160
+ size: "md",
161
+ onClick: function onClick() {
162
+ return toggleSidebar((0, _notificationUtils.getEmptyNotification)());
163
+ }
164
+ }, _i18n.default.t('notifications_page.add_new')))), /*#__PURE__*/_react.default.createElement(NotificationsListStyle, null, data && data.length > 0 ? data.map(function (notification, index) {
165
+ return /*#__PURE__*/_react.default.createElement(_NotificationsCard.default, {
166
+ key: notification.id,
167
+ notification: notification,
168
+ cardNumber: index + 1,
169
+ toggleSidebar: toggleSidebar
170
+ });
171
+ }) : !isFetching && /*#__PURE__*/_react.default.createElement("p", null, _i18n.default.t('notifications_page.no_notification'))), isSidebarOpen && /*#__PURE__*/_react.default.createElement(_NotificationsSidebar.default, {
172
+ notification: currentNotification,
173
+ setIsSidebarOpen: setIsSidebarOpen,
174
+ points: points,
175
+ tags: tags,
176
+ sensors: sensors,
177
+ hasTelegram: hasTelegram,
178
+ hasPhone: hasPhone,
179
+ waterAuthorities: waterAuthorities,
180
+ allowedNotifications: allowedNotifications,
181
+ deleteNotification: deleteNotification,
182
+ updateNotifications: updateNotifications
183
+ })));
184
+ };
185
+
186
+ var _default = NotificationsPage;
187
+ exports.default = _default;
188
+
36
189
  var NotificationsPageStyle = _styledComponents.default.div.withConfig({
37
190
  displayName: "NotificationsPage__NotificationsPageStyle",
38
191
  componentId: "sc-1trznik-0"
39
- })(["position:relative;height:88vh;"]);
192
+ })(["position:relative;height:max-content;"]);
40
193
 
41
194
  exports.NotificationsPageStyle = NotificationsPageStyle;
42
195
 
43
196
  var NotificationsListHeadStyle = _styledComponents.default.div.withConfig({
44
197
  displayName: "NotificationsPage__NotificationsListHeadStyle",
45
198
  componentId: "sc-1trznik-1"
46
- })(["margin:20px 0 45px 0;h1{font-size:", ";font-weight:800;}", "{h1{font-size:", ";font-weight:600;}}"], function (_ref) {
199
+ })(["position:relative;margin:20px 0 20px 0;.spinner-container{display:flex;position:absolute;", " left:0;right:0;transform:scale(0.7);}h1{font-size:", ";font-weight:800;}", "{h1{text-align:center;font-size:", ";font-weight:600;}}"], _reactDeviceDetect.isMobile ? 'top: -47px;' : 'top: -3px;', function (_ref) {
47
200
  var theme = _ref.theme;
48
201
  return theme.fontSize.xxl;
49
202
  }, (0, _styledBreakpoints.down)('md'), function (_ref2) {
@@ -54,7 +207,7 @@ var NotificationsListHeadStyle = _styledComponents.default.div.withConfig({
54
207
  var NotificationsListHeadContentStyle = _styledComponents.default.div.withConfig({
55
208
  displayName: "NotificationsPage__NotificationsListHeadContentStyle",
56
209
  componentId: "sc-1trznik-2"
57
- })(["display:flex;justify-content:space-between;align-items:center;p{margin:0;font-size:18px;}.btn{padding:5.5px 26px;}", "{.btn{font-size:", ";}p{font-size:", ";}}", "{.btn{font-size:", ";}p{font-size:", ";}}", "{flex-direction:column;gap:12px;p{width:100%;}}"], (0, _styledBreakpoints.down)('xl'), function (_ref3) {
210
+ })(["display:flex;justify-content:space-between;align-items:center;p{margin:0;font-size:18px;}.btn{padding:5.5px 26px;}", "{.btn{font-size:", ";}p{text-align:center;font-size:", ";}}", "{.btn{font-size:", ";}p{font-size:", ";}}", "{flex-direction:column;gap:12px;p{width:100%;}}"], (0, _styledBreakpoints.down)('xl'), function (_ref3) {
58
211
  var theme = _ref3.theme;
59
212
  return theme.fontSize.sm;
60
213
  }, function (_ref4) {
@@ -76,87 +229,11 @@ var NotificationsListStyle = _styledComponents.default.div.withConfig({
76
229
  var ScreenStyle = _styledComponents.default.div.withConfig({
77
230
  displayName: "NotificationsPage__ScreenStyle",
78
231
  componentId: "sc-1trznik-4"
79
- })(["position:fixed;z-index:", ";height:100vh;width:100%;top:0;right:-20px;background:", ";opacity:0.5;"], function (_ref7) {
232
+ })(["position:fixed;z-index:", ";height:100vh;width:calc(100vw + 20px);top:0;right:-20px;background:", ";opacity:0.5;"], function (_ref7) {
80
233
  var theme = _ref7.theme;
81
- return theme.zIndexes.sidebar;
234
+ return theme.zIndexes.modal;
82
235
  }, function (_ref8) {
83
236
  var theme = _ref8.theme;
84
237
  return theme.colorScheme.natural.n80;
85
238
  });
86
-
87
- var NotificationsPage = function NotificationsPage() {
88
- var _useState = (0, _react.useState)([]),
89
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
90
- notifications = _useState2[0],
91
- setNotifications = _useState2[1];
92
-
93
- var _useState3 = (0, _react.useState)(false),
94
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
95
- isSidebarOpen = _useState4[0],
96
- setIsSidebarOpen = _useState4[1];
97
-
98
- var _useState5 = (0, _react.useState)((0, _notificationUtils.getEmptyNotification)()),
99
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
100
- currentNotification = _useState6[0],
101
- setNotification = _useState6[1];
102
-
103
- (0, _react.useEffect)(function () {
104
- if (_notificationUtils.notificationsData && _notificationUtils.notificationsData.length > 0) setNotifications(_notificationUtils.notificationsData);
105
- }, []);
106
-
107
- var toggleSidebar = function toggleSidebar(notification) {
108
- setNotification(notification);
109
- setIsSidebarOpen(true);
110
- };
111
-
112
- var removeNotification = function removeNotification(notificationId) {
113
- if (!notificationId) return;
114
-
115
- var newNotifications = _notificationUtils.notificationsData.filter(function (notification) {
116
- return notification.id !== notificationId;
117
- });
118
-
119
- setNotifications(newNotifications);
120
- };
121
-
122
- var saveNotification = function saveNotification(notificationToSave) {
123
- if (notificationToSave.id) {
124
- var NotificationIndex = _notificationUtils.notificationsData.findIndex(function (data) {
125
- return data.id === notificationToSave.id;
126
- });
127
-
128
- _notificationUtils.notificationsData.splice(NotificationIndex, 1, notificationToSave);
129
- } else {
130
- notificationToSave.id = 'n' + (123 + _notificationUtils.notificationsData.length);
131
-
132
- _notificationUtils.notificationsData.push(notificationToSave);
133
- }
134
-
135
- setNotifications(_notificationUtils.notificationsData);
136
- };
137
-
138
- return /*#__PURE__*/_react.default.createElement(_Layout.default, null, /*#__PURE__*/_react.default.createElement(NotificationsPageStyle, null, isSidebarOpen && /*#__PURE__*/_react.default.createElement(ScreenStyle, null), /*#__PURE__*/_react.default.createElement(NotificationsListHeadStyle, null, /*#__PURE__*/_react.default.createElement("h1", null, _i18n.default.t('notifications_page.title')), /*#__PURE__*/_react.default.createElement(NotificationsListHeadContentStyle, null, /*#__PURE__*/_react.default.createElement("p", null, _i18n.default.t('notifications_page.subtitle')), /*#__PURE__*/_react.default.createElement(_Button.default, {
139
- variant: _Button.variant.PRIMARY,
140
- type: "submit",
141
- size: "md",
142
- onClick: function onClick() {
143
- return toggleSidebar((0, _notificationUtils.getEmptyNotification)());
144
- }
145
- }, _i18n.default.t('notifications_page.add_new')))), /*#__PURE__*/_react.default.createElement(NotificationsListStyle, null, notifications && notifications.length > 0 ? notifications.map(function (notification, index) {
146
- return /*#__PURE__*/_react.default.createElement(_NotificationsCard.default, {
147
- key: notification.id,
148
- notification: notification,
149
- cardNumber: index + 1,
150
- toggleSidebar: toggleSidebar
151
- });
152
- }) : /*#__PURE__*/_react.default.createElement("p", null, _i18n.default.t('notifications_page.no_notification'))), isSidebarOpen && /*#__PURE__*/_react.default.createElement(_NotificationsSidebar.default, {
153
- notification: currentNotification,
154
- setIsSidebarOpen: setIsSidebarOpen,
155
- removeNotification: removeNotification,
156
- saveNotification: saveNotification
157
- })));
158
- };
159
-
160
- var _default = NotificationsPage;
161
- exports.default = _default;
162
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL05vdGlmaWNhdGlvbnNQYWdlLnRzeCJdLCJuYW1lcyI6WyJOb3RpZmljYXRpb25zUGFnZVN0eWxlIiwic3R5bGVkIiwiZGl2IiwiTm90aWZpY2F0aW9uc0xpc3RIZWFkU3R5bGUiLCJ0aGVtZSIsImZvbnRTaXplIiwieHhsIiwieGwiLCJOb3RpZmljYXRpb25zTGlzdEhlYWRDb250ZW50U3R5bGUiLCJzbSIsInhzIiwiTm90aWZpY2F0aW9uc0xpc3RTdHlsZSIsIlNjcmVlblN0eWxlIiwiekluZGV4ZXMiLCJzaWRlYmFyIiwiY29sb3JTY2hlbWUiLCJuYXR1cmFsIiwibjgwIiwiTm90aWZpY2F0aW9uc1BhZ2UiLCJub3RpZmljYXRpb25zIiwic2V0Tm90aWZpY2F0aW9ucyIsImlzU2lkZWJhck9wZW4iLCJzZXRJc1NpZGViYXJPcGVuIiwiY3VycmVudE5vdGlmaWNhdGlvbiIsInNldE5vdGlmaWNhdGlvbiIsIm5vdGlmaWNhdGlvbnNEYXRhIiwibGVuZ3RoIiwidG9nZ2xlU2lkZWJhciIsIm5vdGlmaWNhdGlvbiIsInJlbW92ZU5vdGlmaWNhdGlvbiIsIm5vdGlmaWNhdGlvbklkIiwibmV3Tm90aWZpY2F0aW9ucyIsImZpbHRlciIsImlkIiwic2F2ZU5vdGlmaWNhdGlvbiIsIm5vdGlmaWNhdGlvblRvU2F2ZSIsIk5vdGlmaWNhdGlvbkluZGV4IiwiZmluZEluZGV4IiwiZGF0YSIsInNwbGljZSIsInB1c2giLCJpMThuIiwidCIsInZhcmlhbnQiLCJQUklNQVJZIiwibWFwIiwiaW5kZXgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFNTyxJQUFNQSxzQkFBc0IsR0FBR0MsMEJBQU9DLEdBQVY7QUFBQTtBQUFBO0FBQUEsc0NBQTVCOzs7O0FBS1AsSUFBTUMsMEJBQTBCLEdBQUdGLDBC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QixLQUFmO0FBQUEsd0JBQ2hCLDZCQUFDLDBCQUFEO0FBQ0UsTUFBQSxHQUFHLEVBQUVsQixZQUFZLENBQUNLLEVBRHBCO0FBRUUsTUFBQSxZQUFZLEVBQUVMLFlBRmhCO0FBR0UsTUFBQSxVQUFVLEVBQUVrQixLQUFLLEdBQUcsQ0FIdEI7QUFJRSxNQUFBLGFBQWEsRUFBRW5CO0FBSmpCLE1BRGdCO0FBQUEsR0FBbEIsQ0FERCxnQkFVQyx3Q0FBSWMsY0FBS0MsQ0FBTCxDQUFPLG9DQUFQLENBQUosQ0FYSixDQWhCRixFQThCR3JCLGFBQWEsaUJBQ1osNkJBQUMsNkJBQUQ7QUFDRSxJQUFBLFlBQVksRUFBRUUsbUJBRGhCO0FBRUUsSUFBQSxnQkFBZ0IsRUFBRUQsZ0JBRnBCO0FBR0UsSUFBQSxrQkFBa0IsRUFBRU8sa0JBSHRCO0FBSUUsSUFBQSxnQkFBZ0IsRUFBRUs7QUFKcEIsSUEvQkosQ0FERixDQURGO0FBMkNELENBakZEOztlQW1GZWhCLGlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQnV0dG9uLCB7IHZhcmlhbnQgfSBmcm9tICdzcmMvdWkta2l0L0J1dHRvbi9CdXR0b24nO1xuaW1wb3J0IExheW91dCBmcm9tICdzcmMvdWkta2l0L0xheW91dC9MYXlvdXQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IHsgZG93biB9IGZyb20gJ3N0eWxlZC1icmVha3BvaW50cyc7XG5pbXBvcnQgTm90aWZpY2F0aW9uc0NhcmQgZnJvbSAnLi9jb21wb25lbnRzL05vdGlmaWNhdGlvbnNDYXJkJztcbmltcG9ydCBOb3RpZmljYXRpb25zU2lkZWJhciBmcm9tICcuL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc1NpZGViYXInO1xuaW1wb3J0IHtcbiAgZ2V0RW1wdHlOb3RpZmljYXRpb24sXG4gIE5vdGlmaWNhdGlvbixcbiAgbm90aWZpY2F0aW9uc0RhdGEsXG59IGZyb20gJy4vbm90aWZpY2F0aW9uVXRpbHMnO1xuXG5leHBvcnQgY29uc3QgTm90aWZpY2F0aW9uc1BhZ2VTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgaGVpZ2h0OiA4OHZoO1xuYDtcblxuY29uc3QgTm90aWZpY2F0aW9uc0xpc3RIZWFkU3R5bGUgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW46IDIwcHggMCA0NXB4IDA7XG4gIGgxIHtcbiAgICBmb250LXNpemU6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFNpemUueHhsfTtcbiAgICBmb250LXdlaWdodDogODAwO1xuICB9XG4gICR7ZG93bignbWQnKX0ge1xuICAgIGgxIHtcbiAgICAgIGZvbnQtc2l6ZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250U2l6ZS54bH07XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgTm90aWZpY2F0aW9uc0xpc3RIZWFkQ29udGVudFN0eWxlID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICB9XG4gIC5idG4ge1xuICAgIHBhZGRpbmc6IDUuNXB4IDI2cHg7XG4gIH1cbiAgJHtkb3duKCd4bCcpfSB7XG4gICAgLmJ0biB7XG4gICAgICBmb250LXNpemU6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFNpemUuc219O1xuICAgIH1cbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250U2l6ZS5zbX07XG4gICAgfVxuICB9XG4gICR7ZG93bignbGcnKX0ge1xuICAgIC5idG4ge1xuICAgICAgZm9udC1zaXplOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmZvbnRTaXplLnhzfTtcbiAgICB9XG4gICAgcCB7XG4gICAgICBmb250LXNpemU6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFNpemUueHN9O1xuICAgIH1cbiAgfVxuICAke2Rvd24oJ21kJyl9IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgICBwIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgTm90aWZpY2F0aW9uc0xpc3RTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDE0cHg7XG5gO1xuXG5jb25zdCBTY3JlZW5TdHlsZSA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgei1pbmRleDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS56SW5kZXhlcy5zaWRlYmFyfTtcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IC0yMHB4O1xuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9yU2NoZW1lLm5hdHVyYWwubjgwfTtcbiAgb3BhY2l0eTogMC41O1xuYDtcblxuY29uc3QgTm90aWZpY2F0aW9uc1BhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBbbm90aWZpY2F0aW9ucywgc2V0Tm90aWZpY2F0aW9uc10gPSB1c2VTdGF0ZTxOb3RpZmljYXRpb25bXT4oW10pO1xuICBjb25zdCBbaXNTaWRlYmFyT3Blbiwgc2V0SXNTaWRlYmFyT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtjdXJyZW50Tm90aWZpY2F0aW9uLCBzZXROb3RpZmljYXRpb25dID0gdXNlU3RhdGU8Tm90aWZpY2F0aW9uPihcbiAgICBnZXRFbXB0eU5vdGlmaWNhdGlvbigpLFxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKG5vdGlmaWNhdGlvbnNEYXRhICYmIG5vdGlmaWNhdGlvbnNEYXRhLmxlbmd0aCA+IDApXG4gICAgICBzZXROb3RpZmljYXRpb25zKG5vdGlmaWNhdGlvbnNEYXRhKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHRvZ2dsZVNpZGViYXIgPSAobm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pID0+IHtcbiAgICBzZXROb3RpZmljYXRpb24obm90aWZpY2F0aW9uKTtcbiAgICBzZXRJc1NpZGViYXJPcGVuKHRydWUpO1xuICB9O1xuXG4gIGNvbnN0IHJlbW92ZU5vdGlmaWNhdGlvbiA9IChub3RpZmljYXRpb25JZDogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFub3RpZmljYXRpb25JZCkgcmV0dXJuO1xuICAgIGNvbnN0IG5ld05vdGlmaWNhdGlvbnMgPSBub3RpZmljYXRpb25zRGF0YS5maWx0ZXIoXG4gICAgICAobm90aWZpY2F0aW9uKSA9PiBub3RpZmljYXRpb24uaWQgIT09IG5vdGlmaWNhdGlvbklkLFxuICAgICk7XG4gICAgc2V0Tm90aWZpY2F0aW9ucyhuZXdOb3RpZmljYXRpb25zKTtcbiAgfTtcblxuICBjb25zdCBzYXZlTm90aWZpY2F0aW9uID0gKG5vdGlmaWNhdGlvblRvU2F2ZTogTm90aWZpY2F0aW9uKSA9PiB7XG4gICAgaWYgKG5vdGlmaWNhdGlvblRvU2F2ZS5pZCkge1xuICAgICAgbGV0IE5vdGlmaWNhdGlvbkluZGV4ID0gbm90aWZpY2F0aW9uc0RhdGEuZmluZEluZGV4KFxuICAgICAgICAoZGF0YSkgPT4gZGF0YS5pZCA9PT0gbm90aWZpY2F0aW9uVG9TYXZlLmlkLFxuICAgICAgKTtcbiAgICAgIG5vdGlmaWNhdGlvbnNEYXRhLnNwbGljZShOb3RpZmljYXRpb25JbmRleCwgMSwgbm90aWZpY2F0aW9uVG9TYXZlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm90aWZpY2F0aW9uVG9TYXZlLmlkID0gJ24nICsgKDEyMyArIG5vdGlmaWNhdGlvbnNEYXRhLmxlbmd0aCk7XG4gICAgICBub3RpZmljYXRpb25zRGF0YS5wdXNoKG5vdGlmaWNhdGlvblRvU2F2ZSk7XG4gICAgfVxuICAgIHNldE5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uc0RhdGEpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPExheW91dD5cbiAgICAgIDxOb3RpZmljYXRpb25zUGFnZVN0eWxlPlxuICAgICAgICB7aXNTaWRlYmFyT3BlbiAmJiA8U2NyZWVuU3R5bGUgLz59XG4gICAgICAgIDxOb3RpZmljYXRpb25zTGlzdEhlYWRTdHlsZT5cbiAgICAgICAgICA8aDE+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLnRpdGxlJyl9PC9oMT5cbiAgICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3RIZWFkQ29udGVudFN0eWxlPlxuICAgICAgICAgICAgPHA+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLnN1YnRpdGxlJyl9PC9wPlxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICB2YXJpYW50PXt2YXJpYW50LlBSSU1BUll9XG4gICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICBzaXplPVwibWRcIlxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB0b2dnbGVTaWRlYmFyKGdldEVtcHR5Tm90aWZpY2F0aW9uKCkpfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2UuYWRkX25ldycpfVxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9Ob3RpZmljYXRpb25zTGlzdEhlYWRDb250ZW50U3R5bGU+XG4gICAgICAgIDwvTm90aWZpY2F0aW9uc0xpc3RIZWFkU3R5bGU+XG4gICAgICAgIDxOb3RpZmljYXRpb25zTGlzdFN0eWxlPlxuICAgICAgICAgIHtub3RpZmljYXRpb25zICYmIG5vdGlmaWNhdGlvbnMubGVuZ3RoID4gMCA/IChcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbnMubWFwKChub3RpZmljYXRpb24sIGluZGV4KSA9PiAoXG4gICAgICAgICAgICAgIDxOb3RpZmljYXRpb25zQ2FyZFxuICAgICAgICAgICAgICAgIGtleT17bm90aWZpY2F0aW9uLmlkfVxuICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbj17bm90aWZpY2F0aW9ufVxuICAgICAgICAgICAgICAgIGNhcmROdW1iZXI9e2luZGV4ICsgMX1cbiAgICAgICAgICAgICAgICB0b2dnbGVTaWRlYmFyPXt0b2dnbGVTaWRlYmFyfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSlcbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPHA+e2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLm5vX25vdGlmaWNhdGlvbicpfTwvcD5cbiAgICAgICAgICApfVxuICAgICAgICA8L05vdGlmaWNhdGlvbnNMaXN0U3R5bGU+XG4gICAgICAgIHtpc1NpZGViYXJPcGVuICYmIChcbiAgICAgICAgICA8Tm90aWZpY2F0aW9uc1NpZGViYXJcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbj17Y3VycmVudE5vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgIHNldElzU2lkZWJhck9wZW49e3NldElzU2lkZWJhck9wZW59XG4gICAgICAgICAgICByZW1vdmVOb3RpZmljYXRpb249e3JlbW92ZU5vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgIHNhdmVOb3RpZmljYXRpb249e3NhdmVOb3RpZmljYXRpb259XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvTm90aWZpY2F0aW9uc1BhZ2VTdHlsZT5cbiAgICA8L0xheW91dD5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IE5vdGlmaWNhdGlvbnNQYWdlO1xuIl19
239
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWdlcy9Ob3RpZmljYXRpb25zUGFnZVYyL05vdGlmaWNhdGlvbnNQYWdlLnRzeCJdLCJuYW1lcyI6WyJOb3RpZmljYXRpb25zUGFnZSIsImlzU2lkZWJhck9wZW4iLCJzZXRJc1NpZGViYXJPcGVuIiwiZGF0YSIsInNldERhdGEiLCJ3YXRlckF1dGhvcml0aWVzIiwic2V0V2F0ZXJBdXRob3JpdGllcyIsImhhc1RlbGVncmFtIiwic2V0SGFzVGVsZWdyYW0iLCJoYXNQaG9uZSIsInNldEhhc1Bob25lIiwicG9pbnRzIiwic2V0UG9pbnRzIiwidGFncyIsInNldFRhZ3MiLCJzZW5zb3JzIiwic2V0U2Vuc29ycyIsImFsbG93ZWROb3RpZmljYXRpb25zIiwic2V0QWxsb3dlZE5vdGlmaWNhdGlvbnMiLCJpc0ZldGNoaW5nIiwic2V0SXNGZXRjaGluZyIsImN1cnJlbnROb3RpZmljYXRpb24iLCJzZXROb3RpZmljYXRpb24iLCJmZXRjaE5vdGlmaWNhdGlvbnNEYXRhIiwicXVlcnkiLCJnZXRXQUlkIiwiZ2V0IiwiYXhpb3MiLCJ3YXRlckF1dGhvcml0eUlkIiwibm90aWZpY2F0aW9uc1BhZ2UiLCJnZXROb3RpZmljYXRpb25zIiwidXJsIiwidGhlbiIsInJlcyIsIm5vdGlmaWNhdGlvbnMiLCJ3YXRlcl9hdXRob3JpdGllcyIsImFsbG93ZWRfYWxlcnRzIiwidXNlcl9oYXNfdGVsZWdyYW0iLCJ1c2VyX2hhc19waG9uZSIsImNhdGNoIiwiZGVsZXRlTm90aWZpY2F0aW9uIiwibm90aWZpY2F0aW9uIiwicG9zdCIsImFsZXJ0X2lkIiwiaWQiLCJ1cGRhdGVOb3RpZmljYXRpb25zIiwicGF0Y2giLCJ0b2dnbGVTaWRlYmFyIiwiaTE4biIsInQiLCJ2YXJpYW50IiwiUFJJTUFSWSIsImxlbmd0aCIsIm1hcCIsImluZGV4IiwiTm90aWZpY2F0aW9uc1BhZ2VTdHlsZSIsInN0eWxlZCIsImRpdiIsIk5vdGlmaWNhdGlvbnNMaXN0SGVhZFN0eWxlIiwiaXNNb2JpbGUiLCJ0aGVtZSIsImZvbnRTaXplIiwieHhsIiwieGwiLCJOb3RpZmljYXRpb25zTGlzdEhlYWRDb250ZW50U3R5bGUiLCJzbSIsInhzIiwiTm90aWZpY2F0aW9uc0xpc3RTdHlsZSIsIlNjcmVlblN0eWxlIiwiekluZGV4ZXMiLCJtb2RhbCIsImNvbG9yU2NoZW1lIiwibmF0dXJhbCIsIm44MCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBS0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLGlCQUEyQixHQUFHLFNBQTlCQSxpQkFBOEIsR0FBTTtBQUN4QyxrQkFBMEMscUJBQVMsS0FBVCxDQUExQztBQUFBO0FBQUEsTUFBT0MsYUFBUDtBQUFBLE1BQXNCQyxnQkFBdEI7O0FBQ0EsbUJBQXdCLHFCQUF5QixFQUF6QixDQUF4QjtBQUFBO0FBQUEsTUFBT0MsSUFBUDtBQUFBLE1BQWFDLE9BQWI7O0FBQ0EsbUJBQWdELHFCQUM5QyxFQUQ4QyxDQUFoRDtBQUFBO0FBQUEsTUFBT0MsZ0JBQVA7QUFBQSxNQUF5QkMsbUJBQXpCOztBQUdBLG1CQUFzQyxxQkFBa0IsS0FBbEIsQ0FBdEM7QUFBQTtBQUFBLE1BQU9DLFdBQVA7QUFBQSxNQUFvQkMsY0FBcEI7O0FBQ0EsbUJBQWdDLHFCQUFrQixLQUFsQixDQUFoQztBQUFBO0FBQUEsTUFBT0MsUUFBUDtBQUFBLE1BQWlCQyxXQUFqQjs7QUFDQSxvQkFBNEIscUJBQThCLEVBQTlCLENBQTVCO0FBQUE7QUFBQSxNQUFPQyxNQUFQO0FBQUEsTUFBZUMsU0FBZjs7QUFDQSxvQkFBd0IscUJBQThCLEVBQTlCLENBQXhCO0FBQUE7QUFBQSxNQUFPQyxJQUFQO0FBQUEsTUFBYUMsT0FBYjs7QUFDQSxvQkFBOEIscUJBQThCLEVBQTlCLENBQTlCO0FBQUE7QUFBQSxNQUFPQyxPQUFQO0FBQUEsTUFBZ0JDLFVBQWhC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O0FBQUEsQ0FqQm9CLEVBb0JuQyw2QkFBSyxJQUFMLENBcEJtQyxFQXNCcEI7QUFBQSxNQUFHTCxLQUFILFNBQUdBLEtBQUg7QUFBQSxTQUFlQSxLQUFLLENBQUNDLFFBQU4sQ0FBZUssRUFBOUI7QUFBQSxDQXRCb0IsRUF5QnBCO0FBQUEsTUFBR04sS0FBSCxTQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDQyxRQUFOLENBQWVLLEVBQTlCO0FBQUEsQ0F6Qm9CLEVBNEJuQyw2QkFBSyxJQUFMLENBNUJtQyxDQUF2Qzs7QUFxQ0EsSUFBTUMsc0JBQXNCLEdBQUdYLDBCQUFPQyxHQUFWO0FBQUE7QUFBQTtBQUFBLCtEQUE1Qjs7QUFPQSxJQUFNVyxXQUFXLEdBQUdaLDBCQUFPQyxHQUFWO0FBQUE7QUFBQTtBQUFBLHlIQUVKO0FBQUEsTUFBR0csS0FBSCxTQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDUyxRQUFOLENBQWVDLEtBQTlCO0FBQUEsQ0FGSSxFQU9EO0FBQUEsTUFBR1YsS0FBSCxTQUFHQSxLQUFIO0FBQUEsU0FBZUEsS0FBSyxDQUFDVyxXQUFOLENBQWtCQyxPQUFsQixDQUEwQkMsR0FBekM7QUFBQSxDQVBDLENBQWpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQnV0dG9uLCB7IHZhcmlhbnQgfSBmcm9tICdzcmMvdWkta2l0L0J1dHRvbi9CdXR0b24nO1xuaW1wb3J0IExheW91dCBmcm9tICdzcmMvdWkta2l0L0xheW91dC9MYXlvdXQnO1xuaW1wb3J0IGkxOG4gZnJvbSAnc3JjL3V0aWxpdGllcy9pMThuJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMvbWFjcm8nO1xuaW1wb3J0IHsgZG93biB9IGZyb20gJ3N0eWxlZC1icmVha3BvaW50cyc7XG5pbXBvcnQgTm90aWZpY2F0aW9uc0NhcmQgZnJvbSAnLi9jb21wb25lbnRzL05vdGlmaWNhdGlvbnNDYXJkJztcbmltcG9ydCBOb3RpZmljYXRpb25zU2lkZWJhciBmcm9tICcuL2NvbXBvbmVudHMvTm90aWZpY2F0aW9uc1NpZGViYXInO1xuaW1wb3J0IHtcbiAgQWR2YW5jZWRTZWxlY3Rpb24sXG4gIGdldEVtcHR5Tm90aWZpY2F0aW9uLFxuICBOb3RpZmljYXRpb24sXG59IGZyb20gJy4vbm90aWZpY2F0aW9uVXRpbHMnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL1NwaW5uZXIvU3Bpbm5lcic7XG5pbXBvcnQgeyB1cmxzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3VybHMnO1xuaW1wb3J0IHsgaXNNb2JpbGUgfSBmcm9tICdyZWFjdC1kZXZpY2UtZGV0ZWN0JztcbmltcG9ydCB7IHVzZUluaXRpYWxpemVIZWFkZXJzIH0gZnJvbSAnLi4vLi4vaG9va3MvdXNlSW5pdGlhbGl6ZUhlYWRlcnMnO1xuaW1wb3J0IHVzZVF1ZXJ5VVJMIGZyb20gJy4uLy4uL2hvb2tzL3VzZVF1ZXJ5VVJMJztcblxuY29uc3QgTm90aWZpY2F0aW9uc1BhZ2U6IFJlYWN0LkZDID0gKCkgPT4ge1xuICBjb25zdCBbaXNTaWRlYmFyT3Blbiwgc2V0SXNTaWRlYmFyT3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtkYXRhLCBzZXREYXRhXSA9IHVzZVN0YXRlPE5vdGlmaWNhdGlvbltdPihbXSk7XG4gIGNvbnN0IFt3YXRlckF1dGhvcml0aWVzLCBzZXRXYXRlckF1dGhvcml0aWVzXSA9IHVzZVN0YXRlPEFkdmFuY2VkU2VsZWN0aW9uW10+KFxuICAgIFtdLFxuICApO1xuICBjb25zdCBbaGFzVGVsZWdyYW0sIHNldEhhc1RlbGVncmFtXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKTtcbiAgY29uc3QgW2hhc1Bob25lLCBzZXRIYXNQaG9uZV0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IFtwb2ludHMsIHNldFBvaW50c10gPSB1c2VTdGF0ZTxBZHZhbmNlZFNlbGVjdGlvbltdPihbXSk7XG4gIGNvbnN0IFt0YWdzLCBzZXRUYWdzXSA9IHVzZVN0YXRlPEFkdmFuY2VkU2VsZWN0aW9uW10+KFtdKTtcbiAgY29uc3QgW3NlbnNvcnMsIHNldFNlbnNvcnNdID0gdXNlU3RhdGU8QWR2YW5jZWRTZWxlY3Rpb25bXT4oW10pO1xuICBjb25zdCBbYWxsb3dlZE5vdGlmaWNhdGlvbnMsIHNldEFsbG93ZWROb3RpZmljYXRpb25zXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihcbiAgICBbXSxcbiAgKTtcbiAgY29uc3QgW2lzRmV0Y2hpbmcsIHNldElzRmV0Y2hpbmddID0gdXNlU3RhdGUodHJ1ZSk7XG4gIGNvbnN0IFtjdXJyZW50Tm90aWZpY2F0aW9uLCBzZXROb3RpZmljYXRpb25dID0gdXNlU3RhdGU8Tm90aWZpY2F0aW9uPihcbiAgICBnZXRFbXB0eU5vdGlmaWNhdGlvbigpLFxuICApO1xuXG4gIHVzZUluaXRpYWxpemVIZWFkZXJzKCk7XG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZmV0Y2hOb3RpZmljYXRpb25zRGF0YSgpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgcXVlcnkgPSB1c2VRdWVyeVVSTCgpO1xuICBjb25zdCBnZXRXQUlkID0gKCkgPT4ge1xuICAgIHJldHVybiBxdWVyeS5nZXQoJ3dhdGVyX2F1dGhvcml0eV9pZCcpO1xuICB9O1xuXG4gIGNvbnN0IGZldGNoTm90aWZpY2F0aW9uc0RhdGEgPSAoKSA9PiB7XG4gICAgc2V0SXNGZXRjaGluZyh0cnVlKTtcbiAgICBheGlvc1xuICAgICAgLmdldChcbiAgICAgICAgdXJscyh7IHdhdGVyQXV0aG9yaXR5SWQ6IGdldFdBSWQoKSB9KS5ub3RpZmljYXRpb25zUGFnZS5nZXROb3RpZmljYXRpb25zXG4gICAgICAgICAgLnVybCxcbiAgICAgIClcbiAgICAgIC50aGVuKChyZXMpID0+IHtcbiAgICAgICAgc2V0RGF0YShyZXMuZGF0YS5ub3RpZmljYXRpb25zKTtcbiAgICAgICAgc2V0V2F0ZXJBdXRob3JpdGllcyhyZXMuZGF0YS53YXRlcl9hdXRob3JpdGllcyk7XG4gICAgICAgIHNldFBvaW50cyhyZXMuZGF0YS5wb2ludHMpO1xuICAgICAgICBzZXRUYWdzKHJlcy5kYXRhLnRhZ3MpO1xuICAgICAgICBzZXRTZW5zb3JzKHJlcy5kYXRhLnNlbnNvcnMpO1xuICAgICAgICBzZXRBbGxvd2VkTm90aWZpY2F0aW9ucyhyZXMuZGF0YS5hbGxvd2VkX2FsZXJ0cyk7XG4gICAgICAgIHNldEhhc1RlbGVncmFtKHJlcy5kYXRhLnVzZXJfaGFzX3RlbGVncmFtKTtcbiAgICAgICAgc2V0SGFzUGhvbmUocmVzLmRhdGEudXNlcl9oYXNfcGhvbmUpO1xuICAgICAgICBzZXRJc0ZldGNoaW5nKGZhbHNlKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICBzZXRJc0ZldGNoaW5nKGZhbHNlKTtcbiAgICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IGRlbGV0ZU5vdGlmaWNhdGlvbiA9IChub3RpZmljYXRpb24pID0+IHtcbiAgICBzZXRJc0ZldGNoaW5nKHRydWUpO1xuXG4gICAgYXhpb3NcbiAgICAgIC5wb3N0KHVybHMoKS5ub3RpZmljYXRpb25zUGFnZS5kZWxldGVOb3RpZmljYXRpb24udXJsLCB7XG4gICAgICAgIGFsZXJ0X2lkOiBub3RpZmljYXRpb24uaWQsXG4gICAgICB9KVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICBmZXRjaE5vdGlmaWNhdGlvbnNEYXRhKCk7XG4gICAgICB9KTtcbiAgfTtcblxuICBjb25zdCB1cGRhdGVOb3RpZmljYXRpb25zID0gKG5vdGlmaWNhdGlvbikgPT4ge1xuICAgIHNldElzRmV0Y2hpbmcodHJ1ZSk7XG5cbiAgICBheGlvc1xuICAgICAgLnBhdGNoKHVybHMoKS5ub3RpZmljYXRpb25zUGFnZS51cGRhdGVOb3RpZmljYXRpb25zLnVybCwgbm90aWZpY2F0aW9uKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICBmZXRjaE5vdGlmaWNhdGlvbnNEYXRhKCk7XG4gICAgICB9KTtcbiAgfTtcblxuICBjb25zdCB0b2dnbGVTaWRlYmFyID0gKG5vdGlmaWNhdGlvbjogTm90aWZpY2F0aW9uKSA9PiB7XG4gICAgc2V0Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbik7XG4gICAgc2V0SXNTaWRlYmFyT3Blbih0cnVlKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxMYXlvdXQ+XG4gICAgICA8Tm90aWZpY2F0aW9uc1BhZ2VTdHlsZT5cbiAgICAgICAge2lzU2lkZWJhck9wZW4gJiYgPFNjcmVlblN0eWxlIC8+fVxuICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3RIZWFkU3R5bGU+XG4gICAgICAgICAge2lzRmV0Y2hpbmcgJiYgPFNwaW5uZXIgLz59XG4gICAgICAgICAgPGgxPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS50aXRsZScpfTwvaDE+XG4gICAgICAgICAgPE5vdGlmaWNhdGlvbnNMaXN0SGVhZENvbnRlbnRTdHlsZT5cbiAgICAgICAgICAgIDxwPntpMThuLnQoJ25vdGlmaWNhdGlvbnNfcGFnZS5zdWJ0aXRsZScpfTwvcD5cbiAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgdmFyaWFudD17dmFyaWFudC5QUklNQVJZfVxuICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgc2l6ZT1cIm1kXCJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gdG9nZ2xlU2lkZWJhcihnZXRFbXB0eU5vdGlmaWNhdGlvbigpKX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2kxOG4udCgnbm90aWZpY2F0aW9uc19wYWdlLmFkZF9uZXcnKX1cbiAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgIDwvTm90aWZpY2F0aW9uc0xpc3RIZWFkQ29udGVudFN0eWxlPlxuICAgICAgICA8L05vdGlmaWNhdGlvbnNMaXN0SGVhZFN0eWxlPlxuICAgICAgICA8Tm90aWZpY2F0aW9uc0xpc3RTdHlsZT5cbiAgICAgICAgICB7ZGF0YSAmJiBkYXRhLmxlbmd0aCA+IDBcbiAgICAgICAgICAgID8gZGF0YS5tYXAoKG5vdGlmaWNhdGlvbiwgaW5kZXgpID0+IChcbiAgICAgICAgICAgICAgICA8Tm90aWZpY2F0aW9uc0NhcmRcbiAgICAgICAgICAgICAgICAgIGtleT17bm90aWZpY2F0aW9uLmlkfVxuICAgICAgICAgICAgICAgICAgbm90aWZpY2F0aW9uPXtub3RpZmljYXRpb259XG4gICAgICAgICAgICAgICAgICBjYXJkTnVtYmVyPXtpbmRleCArIDF9XG4gICAgICAgICAgICAgICAgICB0b2dnbGVTaWRlYmFyPXt0b2dnbGVTaWRlYmFyfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkpXG4gICAgICAgICAgICA6ICFpc0ZldGNoaW5nICYmIChcbiAgICAgICAgICAgICAgICA8cD57aTE4bi50KCdub3RpZmljYXRpb25zX3BhZ2Uubm9fbm90aWZpY2F0aW9uJyl9PC9wPlxuICAgICAgICAgICAgICApfVxuICAgICAgICA8L05vdGlmaWNhdGlvbnNMaXN0U3R5bGU+XG4gICAgICAgIHtpc1NpZGViYXJPcGVuICYmIChcbiAgICAgICAgICA8Tm90aWZpY2F0aW9uc1NpZGViYXJcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbj17Y3VycmVudE5vdGlmaWNhdGlvbn1cbiAgICAgICAgICAgIHNldElzU2lkZWJhck9wZW49e3NldElzU2lkZWJhck9wZW59XG4gICAgICAgICAgICBwb2ludHM9e3BvaW50c31cbiAgICAgICAgICAgIHRhZ3M9e3RhZ3N9XG4gICAgICAgICAgICBzZW5zb3JzPXtzZW5zb3JzfVxuICAgICAgICAgICAgaGFzVGVsZWdyYW09e2hhc1RlbGVncmFtfVxuICAgICAgICAgICAgaGFzUGhvbmU9e2hhc1Bob25lfVxuICAgICAgICAgICAgd2F0ZXJBdXRob3JpdGllcz17d2F0ZXJBdXRob3JpdGllc31cbiAgICAgICAgICAgIGFsbG93ZWROb3RpZmljYXRpb25zPXthbGxvd2VkTm90aWZpY2F0aW9uc31cbiAgICAgICAgICAgIGRlbGV0ZU5vdGlmaWNhdGlvbj17ZGVsZXRlTm90aWZpY2F0aW9ufVxuICAgICAgICAgICAgdXBkYXRlTm90aWZpY2F0aW9ucz17dXBkYXRlTm90aWZpY2F0aW9uc31cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC9Ob3RpZmljYXRpb25zUGFnZVN0eWxlPlxuICAgIDwvTGF5b3V0PlxuICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTm90aWZpY2F0aW9uc1BhZ2U7XG5cbmV4cG9ydCBjb25zdCBOb3RpZmljYXRpb25zUGFnZVN0eWxlID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBoZWlnaHQ6IG1heC1jb250ZW50O1xuYDtcblxuY29uc3QgTm90aWZpY2F0aW9uc0xpc3RIZWFkU3R5bGUgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbjogMjBweCAwIDIwcHggMDtcbiAgLnNwaW5uZXItY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAke2lzTW9iaWxlID8gJ3RvcDogLTQ3cHg7JyA6ICd0b3A6IC0zcHg7J31cbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC43KTtcbiAgfVxuICBoMSB7XG4gICAgZm9udC1zaXplOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmZvbnRTaXplLnh4bH07XG4gICAgZm9udC13ZWlnaHQ6IDgwMDtcbiAgfVxuICAke2Rvd24oJ21kJyl9IHtcbiAgICBoMSB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFNpemUueGx9O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNMaXN0SGVhZENvbnRlbnRTdHlsZSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgfVxuICAuYnRuIHtcbiAgICBwYWRkaW5nOiA1LjVweCAyNnB4O1xuICB9XG4gICR7ZG93bigneGwnKX0ge1xuICAgIC5idG4ge1xuICAgICAgZm9udC1zaXplOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmZvbnRTaXplLnNtfTtcbiAgICB9XG4gICAgcCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBmb250LXNpemU6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuZm9udFNpemUuc219O1xuICAgIH1cbiAgfVxuICAke2Rvd24oJ2xnJyl9IHtcbiAgICAuYnRuIHtcbiAgICAgIGZvbnQtc2l6ZTogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5mb250U2l6ZS54c307XG4gICAgfVxuICAgIHAge1xuICAgICAgZm9udC1zaXplOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmZvbnRTaXplLnhzfTtcbiAgICB9XG4gIH1cbiAgJHtkb3duKCdtZCcpfSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG4gICAgcCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IE5vdGlmaWNhdGlvbnNMaXN0U3R5bGUgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAxNHB4O1xuYDtcblxuY29uc3QgU2NyZWVuU3R5bGUgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuekluZGV4ZXMubW9kYWx9O1xuICBoZWlnaHQ6IDEwMHZoO1xuICB3aWR0aDogY2FsYygxMDB2dyArIDIwcHgpO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAtMjBweDtcbiAgYmFja2dyb3VuZDogJHsoeyB0aGVtZSB9KSA9PiB0aGVtZS5jb2xvclNjaGVtZS5uYXR1cmFsLm44MH07XG4gIG9wYWNpdHk6IDAuNTtcbmA7XG4iXX0=